#include <openssl/arm_arch.h>
#include <openssl/asm_base.h>
#include <openssl/target.h>
.text
.file 1 "inserted_by_delocate.c"
.loc 1 1 0
BORINGSSL_bcm_text_start:
	.file	"bcm.c"
	.text
# WAS .section	.text.aes_nohw_sub_bytes,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_sub_bytes, @function
.Laes_nohw_sub_bytes_local_target:
aes_nohw_sub_bytes:
.LFB766:

	.cfi_startproc
	subq	$96, %rsp
	.cfi_def_cfa_offset 104
	movdqa	112(%rdi), %xmm2
	movdqa	96(%rdi), %xmm0
	movdqa	(%rdi), %xmm3
	pxor	80(%rdi), %xmm0
	movdqa	64(%rdi), %xmm1
	movdqa	16(%rdi), %xmm5
	movdqa	%xmm2, %xmm10
	movdqa	%xmm2, %xmm7
	pxor	%xmm0, %xmm3
	movdqa	32(%rdi), %xmm4
	movdqa	16(%rdi), %xmm14
	pxor	%xmm2, %xmm5
	pxor	%xmm1, %xmm10
	movdqa	%xmm1, %xmm13
	pxor	%xmm3, %xmm1
	pxor	%xmm4, %xmm13
	movdqa	%xmm5, %xmm11
	movaps	%xmm1, 8(%rsp)
	movdqa	48(%rdi), %xmm1
	pxor	%xmm13, %xmm11
	movdqa	%xmm3, %xmm6
	movdqa	%xmm4, %xmm8
	pxor	%xmm2, %xmm6
	pxor	%xmm4, %xmm7
	movaps	%xmm11, 72(%rsp)
	pxor	%xmm11, %xmm1
	movaps	%xmm6, -8(%rsp)
	movdqa	(%rdi), %xmm6
	pxor	%xmm3, %xmm14
	pxor	%xmm1, %xmm8
	pxor	96(%rdi), %xmm1
	movaps	%xmm14, -24(%rsp)
	pxor	%xmm7, %xmm14
	pxor	%xmm8, %xmm6
	movdqa	%xmm8, %xmm12
	movaps	%xmm7, -120(%rsp)
	movdqa	-120(%rsp), %xmm4
	movdqa	%xmm1, %xmm15
	pxor	%xmm0, %xmm12
	movaps	%xmm6, -56(%rsp)
	movdqa	(%rdi), %xmm6
	pxor	%xmm10, %xmm15
	movaps	%xmm14, -40(%rsp)
	movdqa	%xmm12, %xmm7
	pxor	%xmm15, %xmm0
	movdqa	%xmm15, %xmm9
	pxor	%xmm15, %xmm7
	movaps	%xmm12, 56(%rsp)
	movdqa	%xmm0, %xmm14
	movdqa	%xmm11, %xmm0
	pxor	%xmm15, %xmm6
	movaps	%xmm7, 40(%rsp)
	pand	%xmm8, %xmm0
	pand	%xmm10, %xmm9
	movaps	%xmm6, -104(%rsp)
	movdqa	%xmm14, %xmm11
	movdqa	%xmm0, %xmm6
	movdqa	%xmm9, %xmm0
	movdqa	%xmm7, %xmm9
	movdqa	-120(%rsp), %xmm7
	pand	%xmm13, %xmm9
	pxor	%xmm6, %xmm1
	pxor	%xmm12, %xmm6
	pand	%xmm12, %xmm7
	pxor	%xmm0, %xmm9
	pand	%xmm5, %xmm11
	pxor	%xmm0, %xmm7
	movdqa	-56(%rsp), %xmm0
	pand	-40(%rsp), %xmm0
	pxor	%xmm14, %xmm2
	pxor	%xmm9, %xmm0
	pxor	%xmm1, %xmm0
	movdqa	8(%rsp), %xmm1
	pand	(%rdi), %xmm1
	pxor	%xmm1, %xmm4
	movdqa	-24(%rsp), %xmm1
	pxor	%xmm6, %xmm4
	movdqa	%xmm5, %xmm6
	pand	%xmm3, %xmm1
	pandn	%xmm14, %xmm6
	pxor	%xmm7, %xmm4
	pxor	%xmm5, %xmm1
	pxor	%xmm6, %xmm1
	movdqa	-104(%rsp), %xmm6
	pand	-8(%rsp), %xmm6
	pxor	%xmm9, %xmm1
	pxor	%xmm11, %xmm6
	pxor	%xmm2, %xmm6
	movdqa	%xmm4, %xmm2
	pxor	%xmm0, %xmm2
	pand	%xmm1, %xmm0
	pxor	%xmm7, %xmm6
	movdqa	%xmm2, %xmm9
	movdqa	%xmm0, %xmm2
	pxor	%xmm6, %xmm2
	movdqa	%xmm2, %xmm11
	pand	%xmm9, %xmm2
	pxor	%xmm4, %xmm2
	pxor	%xmm0, %xmm4
	movdqa	%xmm4, %xmm7
	movdqa	%xmm6, %xmm4
	pxor	%xmm1, %xmm4
	pand	%xmm7, %xmm4
	movdqa	%xmm4, %xmm7
	pxor	%xmm0, %xmm4
	pxor	%xmm6, %xmm7
	pand	%xmm6, %xmm4
	pxor	%xmm7, %xmm1
	pxor	%xmm4, %xmm1
	pxor	%xmm11, %xmm4
	movdqa	%xmm4, %xmm0
	movdqa	%xmm7, %xmm4
	pand	%xmm2, %xmm0
	pxor	%xmm2, %xmm4
	pxor	%xmm9, %xmm0
	movdqa	(%rdi), %xmm9
	pand	%xmm4, %xmm10
	movdqa	%xmm0, %xmm11
	movdqa	%xmm0, %xmm6
	pand	%xmm0, %xmm3
	pxor	%xmm2, %xmm11
	pand	%xmm7, %xmm9
	pxor	%xmm1, %xmm6
	movdqa	%xmm11, %xmm12
	movdqa	%xmm1, %xmm11
	movaps	%xmm9, -88(%rsp)
	movdqa	-40(%rsp), %xmm9
	pand	%xmm12, %xmm14
	pxor	%xmm7, %xmm11
	pand	%xmm5, %xmm12
	movaps	%xmm14, 24(%rsp)
	movdqa	-104(%rsp), %xmm14
	pand	%xmm1, %xmm9
	pand	-24(%rsp), %xmm0
	movaps	%xmm11, -72(%rsp)
	movdqa	-72(%rsp), %xmm5
	movdqa	%xmm4, %xmm11
	pand	%xmm15, %xmm4
	pand	%xmm2, %xmm14
	movaps	%xmm9, -40(%rsp)
	movdqa	56(%rsp), %xmm15
	movdqa	24(%rsp), %xmm9
	movaps	%xmm14, -104(%rsp)
	pxor	%xmm6, %xmm11
	movdqa	40(%rsp), %xmm14
	pand	%xmm8, %xmm5
	pand	-8(%rsp), %xmm2
	pxor	%xmm9, %xmm5
	pxor	%xmm9, %xmm4
	movdqa	-88(%rsp), %xmm8
	pand	%xmm11, %xmm14
	pand	%xmm13, %xmm11
	pand	%xmm6, %xmm15
	movdqa	-72(%rsp), %xmm9
	pxor	%xmm11, %xmm10
	pxor	%xmm12, %xmm8
	pxor	-104(%rsp), %xmm0
	pxor	%xmm5, %xmm8
	pxor	%xmm14, %xmm4
	movdqa	%xmm10, %xmm13
	pxor	%xmm14, %xmm15
	pxor	%xmm3, %xmm13
	pxor	%xmm8, %xmm2
	movdqa	-40(%rsp), %xmm14
	pand	72(%rsp), %xmm9
	pxor	%xmm10, %xmm8
	pxor	%xmm13, %xmm15
	pand	-56(%rsp), %xmm1
	pand	8(%rsp), %xmm7
	pxor	%xmm0, %xmm8
	pxor	%xmm14, %xmm9
	pxor	%xmm12, %xmm0
	pcmpeqd	%xmm10, %xmm10
	pand	-120(%rsp), %xmm6
	pxor	%xmm13, %xmm9
	pxor	%xmm15, %xmm0
	pxor	%xmm4, %xmm3
	pxor	%xmm15, %xmm2
	pxor	%xmm9, %xmm1
	pxor	%xmm10, %xmm0
	pxor	%xmm14, %xmm7
	pxor	%xmm1, %xmm5
	movaps	%xmm0, 16(%rdi)
	pxor	%xmm2, %xmm7
	movdqa	-104(%rsp), %xmm0
	pxor	%xmm3, %xmm2
	pxor	-88(%rsp), %xmm0
	pxor	%xmm11, %xmm6
	pxor	%xmm5, %xmm3
	movaps	%xmm7, 32(%rdi)
	pxor	%xmm2, %xmm6
	pxor	%xmm10, %xmm8
	pxor	%xmm10, %xmm3
	movaps	%xmm5, 64(%rdi)
	pxor	%xmm1, %xmm0
	pxor	%xmm10, %xmm6
	pxor	%xmm9, %xmm4
	movaps	%xmm8, (%rdi)
	movaps	%xmm0, 48(%rdi)
	movaps	%xmm6, 80(%rdi)
	movaps	%xmm3, 96(%rdi)
	movaps	%xmm4, 112(%rdi)
	addq	$96, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE766:

	.size	aes_nohw_sub_bytes, .-aes_nohw_sub_bytes
# WAS .section	.text.bn_cmp_words_consttime,"ax",@progbits
.text
	.p2align 4
	.type	bn_cmp_words_consttime, @function
.Lbn_cmp_words_consttime_local_target:
bn_cmp_words_consttime:
.LFB870:

	.cfi_startproc
	movq	%rsi, %r8
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %rsi
	movq	%rcx, %r9
	cmpq	%r8, %rcx
	movq	%r8, %r10
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	cmovbe	%rcx, %r10
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%r10, %r10
	je	.L15
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	.p2align 4,,10
	.p2align 3
.L6:

	movq	(%rsi,%rdx,8), %r12
	movq	(%rdi,%rdx,8), %rbx
	addq	$1, %rdx
	movq	%r12, %rbp
	xorq	%rbx, %rbp
	movq	%rbp, %r11
	leaq	-1(%rbp), %rax
	notq	%r11
	andq	%rax, %r11
	movq	%rbx, %rax
	subq	%r12, %rax
	sarq	$63, %r11
	xorq	%rbx, %rax
	orq	%rbp, %rax
	xorq	%rbx, %rax
	movq	%r11, %rbx
	notq	%r11
	sarq	$63, %rax
	movq	%rax, %rbp
	notq	%rax
	andl	$1, %eax
	orq	%rbp, %rax
	andl	%ecx, %ebx
	andl	%r11d, %eax
	orl	%ebx, %eax
	movl	%eax, %ecx
	cmpq	%rdx, %r10
	jne	.L6
.L5:

	cmpq	%r9, %r8
	jnb	.L7
	subq	%r8, %r9
	cmpq	$1, %r9
	je	.L16
	movq	%r9, %rdx
	leaq	(%rsi,%r8,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rdx
	salq	$4, %rdx
	addq	%rax, %rdx
	.p2align 4,,10
	.p2align 3
.L9:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rdx
	jne	.L9
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %r9b
	je	.L10
	andq	$-2, %r9
	addq	%r9, %r8
.L8:

	orq	(%rsi,%r8,8), %rax
.L10:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rdx, %rax
	sarq	$63, %rax
	movq	%rax, %rdx
	notq	%rax
	andl	%ecx, %edx
	movl	%edx, %ecx
	orl	%eax, %ecx
.L4:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7:

	.cfi_restore_state
	cmpq	%r8, %r9
	jnb	.L4
	subq	%r9, %r8
	cmpq	$1, %r8
	je	.L17
	movq	%r8, %rdx
	leaq	(%rdi,%r9,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rdx
	salq	$4, %rdx
	addq	%rax, %rdx
	.p2align 4,,10
	.p2align 3
.L13:

	movdqu	(%rax), %xmm3
	addq	$16, %rax
	por	%xmm3, %xmm0
	cmpq	%rdx, %rax
	jne	.L13
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %r8b
	je	.L14
	andq	$-2, %r8
	addq	%r8, %r9
.L12:

	orq	(%rdi,%r9,8), %rax
.L14:

	movq	%rax, %rdx
	subq	$1, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	notq	%rdx
	popq	%r12
	.cfi_def_cfa_offset 8
	andq	%rdx, %rax
	sarq	$63, %rax
	movq	%rax, %rdx
	notq	%rax
	andl	%ecx, %edx
	movl	%edx, %ecx
	andl	$1, %eax
	orl	%eax, %ecx
	movl	%ecx, %eax
	ret
.L16:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L15:

	xorl	%ecx, %ecx
	jmp	.L5
.L17:

	xorl	%eax, %eax
	jmp	.L12
	.cfi_endproc
.LFE870:

	.size	bn_cmp_words_consttime, .-bn_cmp_words_consttime
# WAS .section	.text.sk_BIGNUM_call_free_func,"ax",@progbits
.text
	.p2align 4
	.type	sk_BIGNUM_call_free_func, @function
.Lsk_BIGNUM_call_free_func_local_target:
sk_BIGNUM_call_free_func:
.LFB882:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	jmp	*%rax
	.cfi_endproc
.LFE882:

	.size	sk_BIGNUM_call_free_func, .-sk_BIGNUM_call_free_func
# WAS .section	.text.to_words52,"ax",@progbits
.text
	.p2align 4
	.type	to_words52, @function
.Lto_words52_local_target:
to_words52:
.LFB1070:

	.cfi_startproc
	cmpl	$103, %ecx
	jle	.L30
	movabsq	$4503599627370495, %r8
	.p2align 4,,10
	.p2align 3
.L31:

	movq	(%rdx), %rax
	subl	$104, %ecx
	addq	$13, %rdx
	subl	$2, %esi
	addq	$16, %rdi
	andq	%r8, %rax
	movq	%rax, -16(%rdi)
	movq	-7(%rdx), %rax
	shrq	$4, %rax
	andq	%r8, %rax
	movq	%rax, -8(%rdi)
	cmpl	$103, %ecx
	jg	.L31
.L30:

	cmpl	$52, %ecx
	jle	.L32
	movzbl	6(%rdx), %eax
	movzbl	5(%rdx), %r8d
	subl	$45, %ecx
	sarl	$3, %ecx
	salq	$8, %rax
	addq	%rax, %r8
	movzbl	4(%rdx), %eax
	salq	$8, %r8
	addq	%r8, %rax
	movzbl	3(%rdx), %r8d
	salq	$8, %rax
	addq	%rax, %r8
	movzbl	2(%rdx), %eax
	salq	$8, %r8
	addq	%r8, %rax
	movzbl	1(%rdx), %r8d
	salq	$8, %rax
	addq	%rax, %r8
	movzbl	(%rdx), %eax
	salq	$8, %r8
	addq	%r8, %rax
	movabsq	$4503599627370495, %r8
	andq	%r8, %rax
	movq	%rax, (%rdi)
	leal	5(%rcx), %eax
	cltq
	movzbl	(%rdx,%rax), %eax
	cmpl	$1, %ecx
	je	.L33
	leal	4(%rcx), %r8d
	salq	$8, %rax
	movslq	%r8d, %r8
	movzbl	(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$2, %ecx
	je	.L33
	leal	3(%rcx), %r8d
	salq	$8, %rax
	movslq	%r8d, %r8
	movzbl	(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$3, %ecx
	je	.L33
	leal	2(%rcx), %r8d
	salq	$8, %rax
	movslq	%r8d, %r8
	movzbl	(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$4, %ecx
	je	.L33
	leal	1(%rcx), %r8d
	salq	$8, %rax
	movslq	%r8d, %r8
	movzbl	(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$5, %ecx
	je	.L33
	movslq	%ecx, %r8
	salq	$8, %rax
	movzbl	(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$6, %ecx
	je	.L33
	movzbl	6(%rdx), %edx
	salq	$8, %rax
	addq	%rdx, %rax
.L33:

	shrq	$4, %rax
	addq	$16, %rdi
	subl	$2, %esi
	movq	%rax, -8(%rdi)
.L34:

	testl	%esi, %esi
	jle	.L29
.L74:

	movslq	%esi, %rdx
	xorl	%esi, %esi
	salq	$3, %rdx
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L32:

	testl	%ecx, %ecx
	jle	.L34
	addl	$7, %ecx
	sarl	$3, %ecx
	movslq	%ecx, %r8
	movzbl	-1(%rdx,%r8), %eax
	cmpl	$1, %ecx
	je	.L35
	movzbl	-2(%rdx,%r8), %r8d
	salq	$8, %rax
	addq	%r8, %rax
	movl	%ecx, %r8d
	subl	$2, %r8d
	je	.L35
	movslq	%r8d, %r8
	salq	$8, %rax
	movzbl	-1(%rdx,%r8), %r8d
	addq	%r8, %rax
	movl	%ecx, %r8d
	subl	$3, %r8d
	je	.L35
	movslq	%r8d, %r8
	salq	$8, %rax
	movzbl	-1(%rdx,%r8), %r8d
	addq	%r8, %rax
	movl	%ecx, %r8d
	subl	$4, %r8d
	je	.L35
	movslq	%r8d, %r8
	salq	$8, %rax
	movzbl	-1(%rdx,%r8), %r8d
	addq	%r8, %rax
	movl	%ecx, %r8d
	subl	$5, %r8d
	je	.L35
	movslq	%r8d, %r8
	salq	$8, %rax
	movzbl	-1(%rdx,%r8), %r8d
	addq	%r8, %rax
	cmpl	$6, %ecx
	je	.L35
	movzbl	(%rdx), %edx
	salq	$8, %rax
	addq	%rdx, %rax
.L35:

	subl	$1, %esi
	movq	%rax, (%rdi)
	addq	$8, %rdi
	testl	%esi, %esi
	jg	.L74
.L29:

	ret
	.cfi_endproc
.LFE1070:

	.size	to_words52, .-to_words52
# WAS .section	.text.aes_ecb_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_ecb_cipher, @function
.Laes_ecb_cipher_local_target:
aes_ecb_cipher:
.LFB1159:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movq	(%rdi), %rax
	movl	4(%rax), %r15d
	cmpq	%r15, %rcx
	jb	.L76
	movq	%rcx, %r12
	movq	16(%rdi), %rbp
	movq	%rsi, %r13
	movq	%rdx, %r14
	subq	%r15, %r12
	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L77:

	leaq	0(%r13,%rbx), %rsi
	leaq	(%r14,%rbx), %rdi
	addq	%r15, %rbx
	movq	%rbp, %rdx
	call	*248(%rbp)
	cmpq	%rbx, %r12
	jnb	.L77
.L76:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1159:

	.size	aes_ecb_cipher, .-aes_ecb_cipher
# WAS .section	.text.aes_xts_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	aes_xts_ctrl, @function
.Laes_xts_ctrl_local_target:
aes_xts_ctrl:
.LFB1170:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	cmpl	$8, %esi
	je	.L94
	movl	$-1, %edx
	testl	%esi, %esi
	jne	.L80
	pxor	%xmm0, %xmm0
	movups	%xmm0, 496(%rax)
.L85:

	movl	$1, %edx
.L80:

	movl	%edx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L94:

	movq	496(%rax), %rdx
	movq	16(%rcx), %rcx
	testq	%rdx, %rdx
	je	.L82
	cmpq	%rax, %rdx
	je	.L83
.L86:

	xorl	%edx, %edx
	movl	%edx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L83:

	movq	%rcx, 496(%rcx)
.L82:

	movq	504(%rax), %rdx
	testq	%rdx, %rdx
	je	.L85
	addq	$248, %rax
	cmpq	%rax, %rdx
	jne	.L86
	leaq	248(%rcx), %rax
	movq	%rax, 504(%rcx)
	jmp	.L85
	.cfi_endproc
.LFE1170:

	.size	aes_xts_ctrl, .-aes_xts_ctrl
# WAS .section	.text.aead_aes_gcm_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_cleanup, @function
.Laead_aes_gcm_cleanup_local_target:
aead_aes_gcm_cleanup:
.LFB1239:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE1239:

	.size	aead_aes_gcm_cleanup, .-aead_aes_gcm_cleanup
# WAS .section	.text.fiat_25519_carry_mul,"ax",@progbits
.text
	.p2align 4
	.type	fiat_25519_carry_mul, @function
.Lfiat_25519_carry_mul_local_target:
fiat_25519_carry_mul:
.LFB1351:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	32(%rdx), %rdi
	movq	24(%rdx), %rbp
	movq	32(%rsi), %r14
	leaq	(%rdi,%rdi,8), %rcx
	movq	16(%rdx), %rsi
	movq	24(%rax), %r11
	movq	8(%rax), %r10
	movq	(%rdx), %r15
	movq	%rdi, -48(%rsp)
	leaq	(%rdi,%rcx,2), %rdi
	leaq	0(%rbp,%rbp,8), %rcx
	movq	%rdi, -56(%rsp)
	movq	16(%rax), %rdi
	leaq	0(%rbp,%rcx,2), %r8
	leaq	(%rsi,%rsi,8), %rcx
	movq	(%rax), %rax
	movq	%r10, -64(%rsp)
	leaq	(%rsi,%rcx,2), %r9
	movq	8(%rdx), %rcx
	movq	%r11, -72(%rsp)
	movq	%rax, -80(%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r13
	movq	%r13, %rax
	mulq	%r14
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, %r10
	mulq	%r15
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%rax, %r12
	movq	-72(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	movq	%r10, -40(%rsp)
	adcq	%rdx, %r13
	movq	%r11, -32(%rsp)
	mulq	%rcx
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r14
	movq	%r12, -24(%rsp)
	movq	%r13, -16(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	-56(%rsp), %rax
	mulq	-72(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	-64(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %r10
	movq	%r12, %r8
	mulq	%rcx
	movq	%r9, %r11
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	-72(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-64(%rsp), %rax
	adcq	%rdx, %r10
	mulq	%rsi
	movq	%r10, %r11
	movq	%r9, %r10
	movq	%r12, %r9
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movq	%rax, %r14
	movq	-72(%rsp), %rax
	movq	%rdx, %r15
	mulq	%rcx
	movabsq	$2251799813685247, %rcx
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rsi
	movq	%rax, %rsi
	movq	-64(%rsp), %rax
	movq	%rdx, %rdi
	addq	%r14, %rsi
	adcq	%r15, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	-80(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	-48(%rsp)
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	andq	%rcx, %r12
	andq	%rcx, %r8
	shrdq	$51, %rdx, %rax
	movq	%r8, 24(%rbx)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	-40(%rsp), %rdx
	movq	%r14, %rax
	andq	%rcx, %rax
	andq	%rcx, %rdx
	movq	%rax, 32(%rbx)
	addq	%rdx, %rsi
	movq	-24(%rsp), %rdx
	movq	%rsi, %rdi
	andq	%rcx, %rsi
	andq	%rcx, %rdx
	shrq	$51, %rdi
	movq	%rsi, (%rbx)
	addq	%rdi, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	addq	%r12, %rdx
	andq	%rcx, %rsi
	movq	%rsi, 8(%rbx)
	movq	%rdx, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1351:

	.size	fiat_25519_carry_mul, .-fiat_25519_carry_mul
# WAS .section	.text.fiat_25519_carry_square,"ax",@progbits
.text
	.p2align 4
	.type	fiat_25519_carry_square, @function
.Lfiat_25519_carry_square_local_target:
fiat_25519_carry_square:
.LFB1352:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	32(%rsi), %r14
	movq	%rdi, %rbx
	movq	24(%rsi), %r10
	movq	16(%rsi), %r9
	leaq	(%r14,%r14,8), %rax
	movq	(%rsi), %rbp
	leaq	(%r14,%rax,2), %r15
	leaq	(%r10,%r10), %rax
	movq	%r9, -56(%rsp)
	movq	%rax, -48(%rsp)
	leaq	(%r9,%r9), %rcx
	leaq	(%r10,%r10,8), %rax
	movq	%rcx, -64(%rsp)
	movq	8(%rsi), %rcx
	leaq	(%r10,%rax,2), %rsi
	leaq	(%r15,%r15), %r11
	leaq	(%rsi,%rsi), %rdi
	movq	%rdi, %rax
	mulq	%r9
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%r10
	movq	%r12, -40(%rsp)
	movq	%r13, -32(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%rsi, %r8
	leaq	(%rcx,%rcx), %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %rax
	movq	%rdi, %r9
	mulq	%rbp
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rsi, -24(%rsp)
	movq	%rdi, -16(%rsp)
	movq	%rax, %r10
	movq	-64(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rdi, %rsi
	xorl	%edx, %edx
	movq	-56(%rsp), %rdi
	addq	%rsi, %r8
	movq	-48(%rsp), %rsi
	adcq	%rdx, %r9
	mulq	%r14
	movq	%r8, %r10
	movq	%rax, %r12
	movq	-64(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r10
	xorl	%r11d, %r11d
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%r14, %r14
	movq	%r14, %rax
	mulq	%rbp
	movq	%rax, %r14
	movq	%rsi, %rax
	movq	%rdx, %r15
	movq	-24(%rsp), %rsi
	mulq	%rcx
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	movq	%r10, %rdi
	addq	%r14, %rax
	adcq	%r15, %rdx
	shrdq	$51, %r11, %rdi
	xorl	%r13d, %r13d
	addq	%rdi, %rax
	movq	-40(%rsp), %rdi
	adcq	%r13, %rdx
	movq	%rax, %r14
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	%r14, %rax
	movabsq	$2251799813685247, %rdx
	andq	%rdx, %rdi
	andq	%rdx, %rsi
	andq	%rdx, %r8
	andq	%rdx, %r10
	addq	%rdi, %rcx
	andq	%rdx, %rax
	movq	%rcx, %rdi
	andq	%rdx, %rcx
	shrq	$51, %rdi
	movq	%rcx, (%rbx)
	addq	%rdi, %rsi
	movq	%rsi, %rcx
	shrq	$51, %rsi
	andq	%rdx, %rcx
	addq	%r8, %rsi
	movq	%rcx, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%r10, 24(%rbx)
	movq	%rax, 32(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1352:

	.size	fiat_25519_carry_square, .-fiat_25519_carry_square
# WAS .section	.text.fiat_25519_to_bytes,"ax",@progbits
.text
	.p2align 4
	.type	fiat_25519_to_bytes, @function
.Lfiat_25519_to_bytes_local_target:
fiat_25519_to_bytes:
.LFB1358:

	.cfi_startproc
	movabsq	$-2251799813685247, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	8(%rsi), %rcx
	movabsq	$-2251799813685229, %rbx
	movabsq	$2251799813685247, %r10
	addq	(%rsi), %rbx
	movabsq	$2251799813685229, %r11
	movq	%rbx, %rax
	sarq	$51, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %rcx
	movq	16(%rsi), %rax
	addq	%rdx, %rcx
	movq	%rcx, %r8
	addq	%rdx, %rax
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rax
	movq	24(%rsi), %r8
	movq	%rax, %r9
	sarq	$51, %r9
	addq	%rdx, %r8
	addq	32(%rsi), %rdx
	negl	%r9d
	movzbl	%r9b, %r9d
	subq	%r9, %r8
	movq	%r8, %r9
	sarq	$51, %r9
	negl	%r9d
	movzbl	%r9b, %r9d
	subq	%r9, %rdx
	movq	%rdx, %rsi
	sarq	$51, %rsi
	negb	%sil
	sbbb	%r9b, %r9b
	andq	%r10, %rbx
	andq	%r10, %rcx
	andq	%r10, %rax
	movsbq	%r9b, %r9
	andq	%r10, %r8
	andq	%r10, %rdx
	andq	%r9, %r11
	andq	%r10, %r9
	addq	%rbx, %r11
	addq	%r9, %rcx
	addq	%r9, %rax
	addq	%r9, %r8
	movabsq	$144115188075855808, %rbx
	movq	%r11, %rsi
	addq	%r9, %rdx
	shrq	$51, %r11
	addq	%r11, %rcx
	andq	%r10, %rsi
	movq	%rcx, %r11
	salq	$3, %rcx
	movl	%esi, (%rdi)
	shrq	$51, %r11
	addq	%r11, %rax
	movq	%rax, %r11
	salq	$6, %rax
	shrq	$51, %r11
	andq	%rbx, %rax
	addq	%r11, %r8
	movabsq	$18014398509481976, %r11
	andq	%r11, %rcx
	movq	%rsi, %r11
	movq	%r8, %rbx
	shrq	$51, %r8
	shrq	$48, %r11
	andq	%r10, %rbx
	addq	%rcx, %r11
	shrq	$48, %rcx
	addq	%rcx, %rax
	movl	%r11d, 6(%rdi)
	movq	%rax, %rcx
	movl	%eax, 12(%rdi)
	shrq	$56, %rcx
	addq	%r8, %rdx
	movabsq	$36028797018963952, %r8
	leaq	(%rcx,%rbx,2), %rcx
	salq	$4, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 8
	andq	%r8, %rdx
	movq	%rcx, %r8
	movl	%ecx, 19(%rdi)
	shrq	$48, %r8
	addq	%r8, %rdx
	movq	%rsi, %r8
	shrq	$40, %rsi
	movb	%sil, 5(%rdi)
	movq	%r11, %rsi
	shrq	$32, %r8
	shrq	$32, %rsi
	movl	%edx, 25(%rdi)
	shrq	$40, %r11
	movb	%sil, 10(%rdi)
	movq	%rax, %rsi
	shrq	$32, %rsi
	movb	%r8b, 4(%rdi)
	movb	%sil, 16(%rdi)
	movq	%rax, %rsi
	shrq	$48, %rax
	movb	%al, 18(%rdi)
	movq	%rcx, %rax
	shrq	$40, %rsi
	shrq	$32, %rax
	shrq	$40, %rcx
	movb	%r11b, 11(%rdi)
	movb	%al, 23(%rdi)
	movq	%rdx, %rax
	shrq	$32, %rax
	movb	%sil, 17(%rdi)
	movb	%al, 29(%rdi)
	movq	%rdx, %rax
	shrq	$48, %rdx
	shrq	$40, %rax
	movb	%cl, 24(%rdi)
	movb	%al, 30(%rdi)
	movb	%dl, 31(%rdi)
	ret
	.cfi_endproc
.LFE1358:

	.size	fiat_25519_to_bytes, .-fiat_25519_to_bytes
# WAS .section	.text.slide,"ax",@progbits
.text
	.p2align 4
	.type	slide, @function
.Lslide_local_target:
slide:
.LFB1422:

	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	xorl	%eax, %eax
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	.p2align 4,,10
	.p2align 3
.L103:

	movl	%eax, %ecx
	sarl	$3, %ecx
	movslq	%ecx, %rcx
	movzbl	(%rsi,%rcx), %edx
	movl	%eax, %ecx
	andl	$7, %ecx
	sarl	%cl, %edx
	andl	$1, %edx
	movb	%dl, (%rdi,%rax)
	addq	$1, %rax
	cmpq	$256, %rax
	jne	.L103
	leaq	1(%rdi), %rdx
	xorl	%r9d, %r9d
	movl	$257, %r11d
	movl	$255, %ebx
	jmp	.L106
	.p2align 4,,10
	.p2align 3
.L127:

	addq	$1, %rdx
	cmpl	$256, %edi
	je	.L102
.L115:

	movl	%edi, %r9d
.L106:

	cmpb	$0, -1(%rdx)
	leal	1(%r9), %edi
	je	.L127
	cmpl	$256, %edi
	je	.L102
	movl	%r11d, %r10d
	movq	%rdx, %rsi
	movl	$1, %ecx
	subl	%edi, %r10d
	jmp	.L107
	.p2align 4,,10
	.p2align 3
.L128:

	addq	$1, %rsi
	cmpl	%r10d, %ecx
	je	.L111
.L107:

	movsbl	(%rsi), %eax
	testb	%al, %al
	je	.L109
	movsbl	-1(%rdx), %ebp
	sall	%cl, %eax
	leal	0(%rbp,%rax), %r12d
	movl	%ebp, %r8d
	cmpl	$15, %r12d
	jg	.L110
	addl	%ebp, %eax
	movb	%al, -1(%rdx)
	movb	$0, (%rsi)
.L109:

	addl	$1, %ecx
	cmpl	$7, %ecx
	jne	.L128
.L111:

	addq	$1, %rdx
	jmp	.L115
	.p2align 4,,10
	.p2align 3
.L110:

	subl	%eax, %ebp
	cmpl	$-15, %ebp
	jl	.L111
	subl	%eax, %r8d
	movl	%ebx, %eax
	subl	%r9d, %eax
	movb	%r8b, -1(%rdx)
	subl	%ecx, %eax
	leaq	1(%rsi,%rax), %r8
	movq	%rsi, %rax
	jmp	.L113
	.p2align 4,,10
	.p2align 3
.L112:

	movb	$0, (%rax)
	addq	$1, %rax
	cmpq	%rax, %r8
	je	.L109
.L113:

	cmpb	$0, (%rax)
	jne	.L112
	movb	$1, (%rax)
	jmp	.L109
.L102:

	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1422:

	.size	slide, .-slide
# WAS .section	.text.p224_felem_to_generic,"ax",@progbits
.text
	.p2align 4
	.type	p224_felem_to_generic, @function
.Lp224_felem_to_generic_local_target:
p224_felem_to_generic:
.LFB1918:

	.cfi_startproc
	movabsq	$1099511627775, %r11
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rsi), %rbx
	movq	(%rsi), %r9
	movq	16(%rsi), %r8
	movq	%rbx, %rax
	movq	24(%rsi), %rsi
	movq	%rbx, %r10
	andq	%r11, %rax
	orq	%r11, %r10
	leaq	-1(%r9,%rax), %rdx
	movq	%r8, %rax
	movq	%rsi, %rcx
	sarq	$63, %rdx
	andq	%rsi, %rax
	shrq	$56, %rcx
	andq	%r10, %rax
	subq	%rcx, %r9
	salq	$40, %rcx
	movabsq	$72057594037927935, %r10
	addq	$1, %rax
	orq	%rax, %rdx
	leaq	(%rcx,%rbx), %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	andq	%r10, %rdx
	subq	$1, %rdx
	sarq	$63, %rdx
	movq	%rdx, %rbp
	andl	$1, %edx
	notq	%rbp
	subq	%rdx, %r9
	orq	%rbp, %r11
	movq	%r9, %rdx
	andq	%rbp, %r8
	andq	%rbp, %rsi
	shrq	$63, %rdx
	andq	%r11, %rax
	andq	%r10, %rsi
	movq	%r9, %r12
	subq	%rdx, %rax
	sarq	$63, %r12
	popq	%rbp
	.cfi_def_cfa_offset 16
	movq	%rax, %rdx
	andq	%r10, %rax
	sarq	$56, %rdx
	addq	%rdx, %r8
	movq	%r8, %rcx
	sarq	$56, %r8
	leaq	(%rsi,%r8), %rdx
	andq	%r10, %rcx
	movabsq	$72057594037927936, %rsi
	andq	%rsi, %r12
	movq	%rax, %rsi
	salq	$56, %rsi
	addq	%r9, %r12
	orq	%rsi, %r12
	movq	%rcx, %rsi
	shrq	$8, %rax
	salq	$48, %rsi
	shrq	$16, %rcx
	movq	%r12, (%rdi)
	popq	%r12
	.cfi_def_cfa_offset 8
	orq	%rsi, %rax
	movq	%rax, 8(%rdi)
	movq	%rdx, %rax
	shrq	$24, %rdx
	salq	$40, %rax
	movq	%rdx, 24(%rdi)
	orq	%rax, %rcx
	movq	%rcx, 16(%rdi)
	ret
	.cfi_endproc
.LFE1918:

	.size	p224_felem_to_generic, .-p224_felem_to_generic
# WAS .section	.text.p224_felem_square,"ax",@progbits
.text
	.p2align 4
	.type	p224_felem_square, @function
.Lp224_felem_square_local_target:
p224_felem_square:
.LFB1926:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %rcx
	movq	%rsi, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rsi), %rsi
	movq	8(%rdi), %rbx
	movq	16(%rdi), %r11
	movq	%rsi, %rax
	movq	24(%rdi), %r8
	mulq	%rsi
	leaq	(%rbx,%rbx), %r9
	leaq	(%r11,%r11), %r10
	movq	%rax, (%rcx)
	movq	%rsi, %rax
	movq	%rdx, 8(%rcx)
	mulq	%r9
	movq	%rax, 16(%rcx)
	movq	%rsi, %rax
	movq	%rdx, 24(%rcx)
	mulq	%r10
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	adcq	%rdx, %r13
	addq	%rsi, %rsi
	movq	%r12, 32(%rcx)
	movq	%rsi, %rax
	movq	%r13, 40(%rcx)
	mulq	%r8
	movq	%rax, %rsi
	movq	%rbx, %rax
	movq	%rdx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	mulq	%r10
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 48(%rcx)
	movq	%rdi, 56(%rcx)
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 64(%rcx)
	movq	%rdi, 72(%rcx)
	movq	%rax, 80(%rcx)
	movq	%r8, %rax
	movq	%rdx, 88(%rcx)
	mulq	%r8
	movq	%rax, 96(%rcx)
	movq	%rdx, 104(%rcx)
	ret
	.cfi_endproc
.LFE1926:

	.size	p224_felem_square, .-p224_felem_square
# WAS .section	.text.p224_felem_mul,"ax",@progbits
.text
	.p2align 4
	.type	p224_felem_mul, @function
.Lp224_felem_mul_local_target:
p224_felem_mul:
.LFB1927:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r11
	movq	%rdi, %rcx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	(%rsi), %r10
	movq	(%rdx), %rbx
	movq	8(%rbp), %r8
	movq	%r10, %rax
	movq	8(%rsi), %r9
	mulq	%rbx
	movq	%rax, (%rdi)
	movq	%r10, %rax
	movq	%rdx, 8(%rdi)
	mulq	%r8
	movq	%rax, %rsi
	movq	%rbx, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	movq	%rsi, 16(%rcx)
	movq	16(%r11), %rsi
	movq	%rdi, 24(%rcx)
	movq	16(%rbp), %rdi
	movq	24(%rbp), %rbp
	mulq	%rdi
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, 32(%rcx)
	movq	24(%r11), %r12
	movq	%r13, 40(%rcx)
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 48(%rcx)
	movq	%r11, 56(%rcx)
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 64(%rcx)
	movq	%r11, 72(%rcx)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r12
	addq	%r8, %rax
	movq	%rax, 80(%rcx)
	adcq	%r9, %rdx
	movq	%rbp, %rax
	movq	%rdx, 88(%rcx)
	mulq	%r12
	movq	%rax, 96(%rcx)
	movq	%rdx, 104(%rcx)
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1927:

	.size	p224_felem_mul, .-p224_felem_mul
# WAS .section	.text.p224_felem_reduce,"ax",@progbits
.text
	.p2align 4
	.type	p224_felem_reduce, @function
.Lp224_felem_reduce_local_target:
p224_felem_reduce:
.LFB1928:

	.cfi_startproc
	movq	%rsi, %rax
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rdx
	movabsq	$72056494526300160, %r10
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	104(%rax), %rdi
	movabsq	$9223372036854775680, %rbx
	movq	96(%rsi), %rsi
	movq	80(%rax), %r12
	movq	%rdi, %r15
	movq	88(%rax), %r13
	movq	%rsi, %r14
	shrq	$16, %r15
	movq	%r12, %r8
	shrdq	$16, %rdi, %r14
	addq	64(%rax), %r14
	adcq	72(%rax), %r15
	xorl	%ecx, %ecx
	addq	32(%rax), %rcx
	adcq	40(%rax), %rbx
	movq	%r13, %r9
	subq	%rsi, %rcx
	sbbq	%rdi, %rbx
	salq	$40, %r8
	xorl	%r11d, %r11d
	shldq	$40, %r12, %r9
	andq	%r10, %r8
	andq	%r11, %r9
	addq	%rcx, %r8
	movq	%r14, %rcx
	adcq	%rbx, %r9
	movq	%r15, %rbx
	shrdq	$16, %rbx, %rcx
	shrq	$16, %rbx
	addq	%rcx, %r8
	movq	%r12, %rcx
	adcq	%rbx, %r9
	movq	%r13, %rbx
	movq	%r8, -32(%rsp)
	shrdq	$16, %rbx, %rcx
	shrq	$16, %rbx
	addq	48(%rax), %rcx
	adcq	56(%rax), %rbx
	shldq	$40, %rsi, %rdi
	salq	$40, %rsi
	movq	%r9, -24(%rsp)
	andq	%r10, %rsi
	andq	%r11, %rdi
	addq	%rcx, %rsi
	movq	%r8, %rcx
	adcq	%rbx, %rdi
	shrdq	$56, %r9, %rcx
	movq	%r9, %rbx
	shrq	$56, %rbx
	addq	%rcx, %rsi
	movl	$32768, %ecx
	adcq	%rbx, %rdi
	movq	%rsi, %r8
	movq	%rsi, -16(%rsp)
	movabsq	$-9223372036854775808, %rbx
	movq	%rdi, %r9
	shrdq	$56, %rdi, %r8
	movq	%rdi, -8(%rsp)
	movabsq	$-36028797018963968, %rsi
	movabsq	$9223372036854775679, %rdi
	shrq	$56, %r9
	addq	(%rax), %rcx
	adcq	8(%rax), %rbx
	subq	%r14, %rcx
	sbbq	%r15, %rbx
	subq	%r8, %rcx
	sbbq	%r9, %rbx
	addq	16(%rax), %rsi
	adcq	24(%rax), %rdi
	movabsq	$72057594037927935, %rax
	subq	%r12, %rsi
	movq	-8(%rsp), %r12
	sbbq	%r13, %rdi
	shldq	$40, %r14, %r15
	salq	$40, %r14
	andq	%r11, %r15
	andq	%r10, %r14
	addq	%r14, %rsi
	movq	%r8, %r14
	adcq	%r15, %rdi
	movq	%r9, %r15
	salq	$40, %r14
	shldq	$40, %r8, %r15
	andq	%r10, %r14
	movabsq	$72057594037927935, %r8
	andq	%r11, %r15
	addq	%rsi, %r14
	movq	%rcx, %rsi
	movq	-16(%rsp), %r11
	adcq	%rdi, %r15
	shrdq	$56, %rbx, %rsi
	movq	%rbx, %rdi
	shrq	$56, %rdi
	addq	%rsi, %r14
	movq	-32(%rsp), %rsi
	adcq	%rdi, %r15
	andq	%rax, %rcx
	movq	-24(%rsp), %rdi
	xorl	%r9d, %r9d
	movq	%rcx, (%rdx)
	movq	%r12, %rcx
	andq	%r8, %rsi
	xorl	%ebx, %ebx
	shrq	$8, %rcx
	andq	%r9, %rdi
	addq	%rcx, %rsi
	movq	%r14, %rcx
	adcq	%rbx, %rdi
	movq	%r15, %rbx
	shrdq	$56, %r15, %rcx
	shrq	$56, %rbx
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	andq	%rax, %r14
	andq	%r11, %r8
	andq	%rcx, %rax
	shrdq	$56, %rbx, %rcx
	movq	%r14, 8(%rdx)
	popq	%rbx
	.cfi_def_cfa_offset 40
	addq	%r8, %rcx
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	movq	%rax, 16(%rdx)
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	movq	%rcx, 24(%rdx)
	ret
	.cfi_endproc
.LFE1928:

	.size	p224_felem_reduce, .-p224_felem_reduce
# WAS .section	.text.fiat_p256_mul,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_mul, @function
.Lfiat_p256_mul_local_target:
fiat_p256_mul:
.LFB1954:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r8
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movabsq	$-4294967295, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$64, %rsp
	.cfi_def_cfa_offset 120
	movq	8(%rsi), %r9
	movq	24(%rdx), %rbx
	movq	24(%rsi), %rax
	movq	16(%r8), %rcx
	movq	%rdi, 48(%rsp)
	movq	8(%r8), %r10
	movq	(%r8), %r15
	movq	%r9, -40(%rsp)
	movq	(%rsi), %r9
	movq	16(%rsi), %r11
	movq	%rax, 40(%rsp)
	movq	%rbx, %rax
	movq	%rcx, -104(%rsp)
	mulq	%r9
	movq	%rbx, -120(%rsp)
	movq	%r11, -24(%rsp)
	xorl	%r11d, %r11d
	movq	%r10, -88(%rsp)
	movq	%rax, -56(%rsp)
	movq	%rcx, %rax
	movq	%rdx, -48(%rsp)
	mulq	%r9
	movq	%r15, -72(%rsp)
	movq	%rax, %rcx
	movq	%r10, %rax
	movq	%rdx, %rbx
	mulq	%r9
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, %r12
	movq	%rdi, %rsi
	addq	%rdx, %r12
	adcq	%r11, %r13
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	addq	%rcx, %rsi
	movq	%r13, %r14
	movq	%r12, 8(%rsp)
	adcq	%r9, %rdi
	xorl	%r15d, %r15d
	addq	%rsi, %r14
	movq	-56(%rsp), %rsi
	movq	%rbx, %rcx
	movq	%r13, 16(%rsp)
	adcq	%rdi, %r15
	xorl	%edi, %edi
	xorl	%ebx, %ebx
	movq	8(%rsp), %r12
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	xorl	%edi, %edi
	addq	%r15, %rcx
	adcq	%rdi, %rbx
	xorl	%edx, %edx
	movq	%rcx, -8(%rsp)
	movq	%rax, %rcx
	movq	%rbx, (%rsp)
	movq	%rdx, %r13
	movq	%rdx, %rbx
	movq	%rcx, %rsi
	mulq	%rbp
	movq	%rbx, %rdi
	salq	$32, %rsi
	imulq	%rbp, %r13
	shldq	$32, %rcx, %rdi
	movq	%rdx, %r9
	movq	%rax, %r8
	movq	$-1, %rax
	addq	%r13, %r9
	subq	%rcx, %rsi
	sbbq	%rbx, %rdi
	mulq	%rcx
	xorl	%r13d, %r13d
	xorl	%r11d, %r11d
	subq	%rbx, %rdx
	movq	%rdx, %r10
	addq	%rsi, %r10
	adcq	%r13, %r11
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r10, %rcx
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	movq	-8(%rsp), %r10
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	xorl	%r13d, %r13d
	addq	%rcx, %r12
	movq	%r11, %rcx
	adcq	%rbx, %r13
	addq	%rdi, %rcx
	xorl	%edx, %edx
	movq	(%rsp), %r11
	movq	%r13, %rax
	addq	%rcx, %rax
	movq	%r11, %rcx
	adcq	$0, %rdx
	xorl	%r15d, %r15d
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	xorl	%ebx, %ebx
	xorl	%edx, %edx
	addq	%r10, %rax
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	addq	%r15, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rbx
	movq	-48(%rsp), %rax
	movq	%rdx, %rsi
	xorl	%edx, %edx
	movq	%rbx, 24(%rsp)
	addq	%rax, %rcx
	movq	%r9, %rax
	movq	-40(%rsp), %r9
	movq	%rsi, 32(%rsp)
	addq	%rcx, %rax
	adcq	$0, %rdx
	xorl	%ebx, %ebx
	addq	%rsi, %rax
	adcq	%rbx, %rdx
	movq	%rax, -8(%rsp)
	movq	%r9, %rax
	xorl	%r11d, %r11d
	movq	%rdx, (%rsp)
	mulq	-120(%rsp)
	movq	(%rsp), %r13
	movq	%rax, -56(%rsp)
	movq	%r9, %rax
	movq	-56(%rsp), %r10
	movq	%rdx, -48(%rsp)
	mulq	-104(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	-88(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r9, %rax
	xorl	%r9d, %r9d
	mulq	-72(%rsp)
	movq	%rdx, %r8
	addq	%rcx, %r8
	movq	%rbx, %rcx
	adcq	%r11, %r9
	xorl	%r11d, %r11d
	xorl	%ebx, %ebx
	addq	%rsi, %rcx
	adcq	%r11, %rbx
	movq	%rdi, %rsi
	xorl	%r11d, %r11d
	addq	%r9, %rcx
	adcq	%r11, %rbx
	xorl	%r11d, %r11d
	xorl	%edi, %edi
	addq	%r10, %rsi
	adcq	%r11, %rdi
	xorl	%r11d, %r11d
	addq	%rbx, %rsi
	adcq	%r11, %rdi
	movq	%r12, %r11
	xorl	%edx, %edx
	xorl	%r12d, %r12d
	addq	%r11, %rax
	adcq	%r12, %rdx
	xorl	%r12d, %r12d
	xorl	%r9d, %r9d
	addq	%rdx, %r8
	adcq	%r12, %r9
	xorl	%r15d, %r15d
	addq	%r14, %r8
	movq	-8(%rsp), %r12
	adcq	%r15, %r9
	movq	%r8, 8(%rsp)
	movq	24(%rsp), %r8
	xorl	%r11d, %r11d
	movq	%r9, %r10
	movq	%r9, 16(%rsp)
	xorl	%r9d, %r9d
	addq	%r10, %r8
	adcq	%r11, %r9
	movq	%r8, %r14
	xorl	%ebx, %ebx
	movq	%r9, %r15
	addq	%rcx, %r14
	movq	%rsi, %rcx
	movq	%rdi, %rsi
	adcq	%rbx, %r15
	xorl	%r9d, %r9d
	xorl	%ebx, %ebx
	addq	%r12, %rcx
	adcq	%r9, %rbx
	xorl	%r10d, %r10d
	movq	%r15, (%rsp)
	movq	%r10, %r11
	movq	%r15, %r10
	movq	%r14, -8(%rsp)
	addq	%rcx, %r10
	movq	-48(%rsp), %rcx
	adcq	%rbx, %r11
	xorl	%ebx, %ebx
	addq	%rcx, %rsi
	movq	%r13, %rcx
	addq	%rsi, %rcx
	adcq	$0, %rbx
	xorl	%edi, %edi
	addq	%r11, %rcx
	adcq	%rdi, %rbx
	xorl	%esi, %esi
	movq	%rcx, -40(%rsp)
	movq	%rax, %rcx
	movq	%rsi, %rdx
	movq	%rbx, -32(%rsp)
	movq	%rsi, %rbx
	imulq	%rbp, %rdx
	movq	%rbx, %rdi
	shldq	$32, %rcx, %rdi
	movq	%rdx, %rsi
	mulq	%rbp
	movq	%rdx, %r13
	movq	%rax, %r12
	movq	$-1, %rax
	addq	%rsi, %r13
	movq	%rcx, %rsi
	salq	$32, %rsi
	subq	%rcx, %rsi
	sbbq	%rbx, %rdi
	mulq	%rcx
	xorl	%r15d, %r15d
	xorl	%r9d, %r9d
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%rsi, %r8
	adcq	%r15, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	8(%rsp), %rax
	adcq	%rdx, %rbx
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %r14
	movq	%r9, %rcx
	xorl	%edx, %edx
	movq	%r14, 24(%rsp)
	addq	%rdi, %rcx
	movq	%rbx, %rax
	movq	%rbx, 32(%rsp)
	movq	-8(%rsp), %r14
	addq	%rcx, %rax
	adcq	$0, %rdx
	xorl	%r15d, %r15d
	movq	-24(%rsp), %r11
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	xorl	%esi, %esi
	movq	%rsi, %rdx
	xorl	%esi, %esi
	addq	%r12, %rax
	movq	%r13, %r12
	adcq	%rsi, %rdx
	xorl	%esi, %esi
	addq	%r15, %rax
	adcq	%rsi, %rdx
	movq	%rax, %rbx
	movq	-40(%rsp), %rax
	xorl	%r13d, %r13d
	movq	%rdx, %rsi
	xorl	%edx, %edx
	movq	%rbx, 8(%rsp)
	addq	%r12, %rax
	movq	%rsi, %r12
	movq	%rsi, 16(%rsp)
	adcq	%r13, %rdx
	xorl	%r13d, %r13d
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	-120(%rsp)
	xorl	%r9d, %r9d
	movq	%rax, -56(%rsp)
	movq	%r11, %rax
	movq	-56(%rsp), %r10
	movq	%rdx, -48(%rsp)
	mulq	-104(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	mulq	-88(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r11, %rax
	xorl	%r11d, %r11d
	mulq	-72(%rsp)
	movq	%rdx, %r8
	addq	%rcx, %r8
	movq	%rbx, %rcx
	adcq	%r11, %r9
	xorl	%r11d, %r11d
	xorl	%ebx, %ebx
	addq	%rsi, %rcx
	adcq	%r11, %rbx
	movq	%rdi, %rsi
	xorl	%r11d, %r11d
	addq	%r9, %rcx
	adcq	%r11, %rbx
	xorl	%r11d, %r11d
	xorl	%edi, %edi
	addq	%r10, %rsi
	movq	24(%rsp), %r10
	adcq	%r11, %rdi
	xorl	%r11d, %r11d
	addq	%rbx, %rsi
	adcq	%r11, %rdi
	xorl	%r11d, %r11d
	xorl	%edx, %edx
	movq	%rsi, -8(%rsp)
	addq	%r10, %rax
	movq	%rdi, (%rsp)
	movq	%r14, %r10
	movq	8(%rsp), %r14
	adcq	%r11, %rdx
	xorl	%edi, %edi
	xorl	%r9d, %r9d
	movq	%r13, %rsi
	addq	%rdx, %r8
	adcq	%rdi, %r9
	xorl	%r15d, %r15d
	addq	%r8, %r10
	movq	%r15, %r11
	movq	%r10, -24(%rsp)
	movq	-8(%rsp), %r10
	adcq	%r9, %r11
	xorl	%r9d, %r9d
	xorl	%ebx, %ebx
	addq	%r11, %rcx
	movq	%r11, -16(%rsp)
	movq	(%rsp), %r11
	adcq	%r9, %rbx
	xorl	%r15d, %r15d
	addq	%rcx, %r14
	adcq	%rbx, %r15
	xorl	%r9d, %r9d
	xorl	%ebx, %ebx
	movq	%r15, %rcx
	addq	%r12, %rcx
	adcq	%r9, %rbx
	xorl	%edi, %edi
	addq	%r10, %rcx
	movq	%rcx, %r8
	movq	-32(%rsp), %rcx
	adcq	%rdi, %rbx
	movq	-48(%rsp), %rdi
	movq	%rbx, -32(%rsp)
	addq	%rcx, %rsi
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	movq	%r8, -40(%rsp)
	addq	%rsi, %rcx
	movq	%r11, %rsi
	adcq	$0, %rbx
	addq	%rdi, %rsi
	addq	%rsi, %rcx
	adcq	$0, %rbx
	xorl	%edx, %edx
	movq	%rcx, -56(%rsp)
	movq	%rax, %rcx
	movq	%rbx, -48(%rsp)
	movq	%rdx, %rbx
	imulq	%rbp, %rdx
	movq	%rbx, %rdi
	shldq	$32, %rcx, %rdi
	movq	%rdx, %rsi
	mulq	%rbp
	movq	%rdx, %r13
	movq	%rax, %r12
	movq	$-1, %rax
	addq	%rsi, %r13
	movq	%rcx, %rsi
	salq	$32, %rsi
	subq	%rcx, %rsi
	sbbq	%rbx, %rdi
	mulq	%rcx
	xorl	%r11d, %r11d
	xorl	%r9d, %r9d
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%rsi, %r8
	adcq	%r11, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%r11d, %r11d
	movq	%rdx, %rax
	xorl	%edx, %edx
	movq	%r11, %rbx
	addq	%rax, %rcx
	movq	-24(%rsp), %rax
	adcq	%rdx, %rbx
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	xorl	%edx, %edx
	xorl	%r15d, %r15d
	movq	%rcx, -24(%rsp)
	addq	%rbx, %r14
	movq	%rbx, -16(%rsp)
	adcq	%rdx, %r15
	addq	%rdi, %rax
	addq	%rax, %r14
	movq	-40(%rsp), %rax
	adcq	$0, %r15
	xorl	%esi, %esi
	xorl	%edx, %edx
	addq	%r15, %rax
	adcq	%rsi, %rdx
	xorl	%esi, %esi
	movq	%rsi, %rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r12, %rsi
	movq	%r13, %r12
	adcq	%rbx, %rdi
	movq	%rsi, -40(%rsp)
	xorl	%esi, %esi
	movq	%rdi, -32(%rsp)
	movq	%rsi, %rbx
	movq	-56(%rsp), %rsi
	movq	%rdi, %rcx
	xorl	%edi, %edi
	movq	40(%rsp), %r11
	movq	%rsi, %rax
	movq	%rdi, %rdx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	xorl	%r13d, %r13d
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	xorl	%ebx, %ebx
	mulq	%r11
	movq	%rax, -120(%rsp)
	movq	-104(%rsp), %rax
	movq	%rdx, -112(%rsp)
	movq	-120(%rsp), %rcx
	mulq	%r11
	movq	%rax, %rsi
	movq	-88(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r11, %rax
	xorl	%r11d, %r11d
	mulq	-72(%rsp)
	movq	%r8, %r10
	movq	%r9, %r8
	addq	%rdx, %r10
	adcq	%rbx, %r11
	xorl	%ebx, %ebx
	xorl	%r9d, %r9d
	addq	%rsi, %r8
	adcq	%rbx, %r9
	movq	%rdi, %rsi
	xorl	%ebx, %ebx
	addq	%r11, %r8
	adcq	%rbx, %r9
	xorl	%ebx, %ebx
	xorl	%edi, %edi
	addq	%rcx, %rsi
	movq	-24(%rsp), %rcx
	adcq	%rbx, %rdi
	xorl	%ebx, %ebx
	addq	%r9, %rsi
	adcq	%rbx, %rdi
	xorl	%edx, %edx
	xorl	%ebx, %ebx
	addq	%rax, %rcx
	movq	%r12, %rax
	movq	%rdi, -96(%rsp)
	movq	-112(%rsp), %rdi
	adcq	%rdx, %rbx
	xorl	%edx, %edx
	xorl	%r11d, %r11d
	addq	%rbx, %r10
	adcq	%rdx, %r11
	xorl	%edx, %edx
	addq	%r14, %r10
	movq	-40(%rsp), %r14
	adcq	%rdx, %r11
	xorl	%edx, %edx
	xorl	%r9d, %r9d
	addq	%r11, %r8
	adcq	%rdx, %r9
	xorl	%r15d, %r15d
	addq	%r8, %r14
	adcq	%r9, %r15
	xorl	%r9d, %r9d
	xorl	%edx, %edx
	addq	%r15, %rax
	adcq	%r9, %rdx
	xorl	%r9d, %r9d
	addq	%rsi, %rax
	movq	%r13, %rsi
	movq	%rax, %r8
	movq	-48(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, -80(%rsp)
	addq	%rax, %rsi
	movq	%rdx, %rax
	xorl	%edx, %edx
	movq	%r8, -88(%rsp)
	addq	%rsi, %rax
	movq	-96(%rsp), %rsi
	adcq	$0, %rdx
	movq	%rax, %r12
	movq	%rbp, %rax
	addq	%rdi, %rsi
	movq	%rdx, %r13
	addq	%rsi, %r12
	adcq	$0, %r13
	mulq	%rcx
	xorl	%ebx, %ebx
	movq	%r12, -104(%rsp)
	movq	%rbx, %rsi
	movq	%r13, -96(%rsp)
	movq	%rbx, %rdi
	imulq	%rbp, %rsi
	shldq	$32, %rcx, %rdi
	movq	%rdx, %r13
	movq	%rdi, %rdx
	movq	%rax, %r12
	movq	$-1, %rax
	movq	%rdx, %rbp
	addq	%rsi, %r13
	movq	%rcx, %rsi
	salq	$32, %rsi
	movq	%rsi, %rdi
	subq	%rcx, %rdi
	sbbq	%rbx, %rbp
	mulq	%rcx
	movq	%rdi, %r8
	xorl	%edi, %edi
	movq	%rbp, -112(%rsp)
	xorl	%ebp, %ebp
	movq	%rbp, %r9
	subq	%rbx, %rdx
	addq	%rdx, %r8
	adcq	%rdi, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	xorl	%edi, %edi
	movq	%r9, %rbx
	movq	%rdx, %rax
	movq	%rdi, %r9
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	xorl	%r11d, %r11d
	addq	%r10, %r8
	movq	-112(%rsp), %rdx
	adcq	%r11, %r9
	xorl	%r15d, %r15d
	xorl	%edi, %edi
	movq	-104(%rsp), %r10
	movq	%r9, %rsi
	addq	%r14, %rsi
	adcq	%r15, %rdi
	addq	%rdx, %rax
	addq	%rax, %rsi
	movq	-88(%rsp), %rax
	adcq	$0, %rdi
	movq	%rsi, -120(%rsp)
	xorl	%edx, %edx
	movq	%rdi, %rsi
	movq	%rdi, -112(%rsp)
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	-120(%rsp), %rsi
	adcq	%rdi, %rdx
	xorl	%ebx, %ebx
	addq	%r12, %rax
	movq	%r13, %r12
	adcq	%rbx, %rdx
	xorl	%r11d, %r11d
	movq	%rax, %r14
	movq	%r8, %rax
	movq	%rdx, %r15
	xorl	%edx, %edx
	movq	%rsi, %rcx
	movq	%r14, -72(%rsp)
	addq	%r15, %r10
	movq	%r15, -64(%rsp)
	adcq	%rdx, %r11
	xorl	%r13d, %r13d
	addq	%r12, %r10
	movabsq	$-4294967295, %r12
	adcq	%r13, %r11
	xorl	%ebx, %ebx
	addq	$1, %rax
	movq	$-1, %r13
	movq	%rbx, %rdx
	movq	%rax, -88(%rsp)
	movq	-88(%rsp), %r9
	adcq	$-1, %rdx
	xorl	%edi, %edi
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	movq	%rdx, -80(%rsp)
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rcx
	sbbq	$0, %rbx
	addq	%r12, %rcx
	movl	$4294967295, %r12d
	adcq	%r13, %rbx
	xorl	%r15d, %r15d
	movq	%rcx, %rdi
	movq	%r10, %rcx
	movq	%rbx, %rdx
	movq	$-1, %r13
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r14
	sbbq	$0, %r15
	xorl	%ebx, %ebx
	movq	%r15, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %rcx
	movq	-96(%rsp), %rdx
	movq	48(%rsp), %rax
	sbbq	$0, %rbx
	addq	%rcx, %r12
	movq	%r11, %rcx
	movq	-120(%rsp), %rsi
	adcq	%rbx, %r13
	addq	%rdx, %rcx
	xorl	%ebx, %ebx
	movq	%r13, %rdx
	negl	%edx
	movzbl	%dl, %edx
	cmpq	%rdx, %rcx
	sbbq	$0, %rbx
	movq	%rbx, %rdx
	movq	%rbx, %rcx
	notq	%rdx
	andq	%rcx, %r8
	andq	%rdx, %rdi
	andq	%rdx, %r9
	andq	%rcx, %rsi
	orq	%rdi, %rsi
	orq	%r9, %r8
	movq	%rax, %rdi
	andq	%rdx, %r14
	movq	%r8, (%rax)
	andq	%r12, %rdx
	movq	%rsi, 8(%rax)
	movq	-72(%rsp), %rax
	andq	%rcx, %rax
	andq	%r10, %rcx
	orq	%r14, %rax
	orq	%rdx, %rcx
	movq	%rax, 16(%rdi)
	movq	%rcx, 24(%rdi)
	addq	$64, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1954:

	.size	fiat_p256_mul, .-fiat_p256_mul
# WAS .section	.text.fiat_p256_square,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_square, @function
.Lfiat_p256_square_local_target:
fiat_p256_square:
.LFB1955:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	xorl	%r12d, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movabsq	$-4294967295, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$144, %rsp
	.cfi_def_cfa_offset 200
	movq	24(%rsi), %rbx
	movq	(%rsi), %rcx
	movq	16(%rsi), %r11
	movq	%rdi, 128(%rsp)
	movq	%rbx, %rax
	movq	8(%rsi), %rdi
	movq	%rbx, -120(%rsp)
	mulq	%rcx
	movq	%r12, -32(%rsp)
	movq	%r11, -88(%rsp)
	movq	%r15, 64(%rsp)
	movq	%rdx, %rsi
	movq	%rax, %rbx
	xorl	%edx, %edx
	movq	%r11, %rax
	movq	%rdx, 112(%rsp)
	mulq	%rcx
	xorl	%r11d, %r11d
	movq	%r11, -48(%rsp)
	movq	%rsi, 104(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, -40(%rsp)
	mulq	%rcx
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r14
	mulq	%rcx
	movq	%r12, %r10
	movq	%r14, 56(%rsp)
	movq	%r10, -56(%rsp)
	movq	%rdx, %r12
	addq	%r10, %r12
	movq	%rbx, %r10
	adcq	%r11, %r13
	xorl	%r9d, %r9d
	movq	%r12, -104(%rsp)
	movq	%r8, %r11
	movq	%r13, -96(%rsp)
	movq	%r9, %r12
	movq	-96(%rsp), %r9
	movq	%r11, -24(%rsp)
	movq	-40(%rsp), %rcx
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r11, %r14
	movq	-32(%rsp), %rbx
	adcq	%r12, %r15
	addq	%r8, %r14
	movq	%rsi, 32(%rsp)
	adcq	%r9, %r15
	xorl	%r11d, %r11d
	xorl	%r9d, %r9d
	addq	%r10, %rcx
	movq	%r15, %r8
	adcq	%r11, %rbx
	movq	%r12, -16(%rsp)
	addq	%rcx, %r8
	movq	%rax, %rcx
	movq	%r10, -8(%rsp)
	adcq	%rbx, %r9
	xorl	%ebx, %ebx
	movq	%rcx, %r12
	movq	%r11, (%rsp)
	mulq	%rbp
	movq	%rbx, %rsi
	salq	$32, %r12
	movq	%rbx, %r13
	imulq	%rbp, %rsi
	shldq	$32, %rcx, %r13
	movq	%r8, 8(%rsp)
	movq	%r9, 16(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%rsi, %r11
	subq	%rcx, %rax
	movq	32(%rsp), %rsi
	sbbq	%rbx, %rdx
	movq	%rax, -72(%rsp)
	movq	-72(%rsp), %r12
	xorl	%r13d, %r13d
	movq	$-1, %rax
	movq	%rdx, -64(%rsp)
	movq	%r13, %r9
	xorl	%r13d, %r13d
	mulq	%rcx
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%r12, %r8
	movq	-104(%rsp), %r12
	adcq	%r13, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	movq	8(%rsp), %r8
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	-64(%rsp), %rax
	adcq	%rdx, %rbx
	xorl	%r13d, %r13d
	addq	%rcx, %r12
	movq	%r9, %rcx
	adcq	%rbx, %r13
	addq	%rax, %rcx
	xorl	%edx, %edx
	movq	16(%rsp), %r9
	movq	%r13, %rax
	addq	%rcx, %rax
	movq	%r14, %rcx
	adcq	$0, %rdx
	movq	%rax, %r14
	xorl	%ebx, %ebx
	movq	%r10, %rax
	addq	%rcx, %r14
	movq	%rdx, %r15
	movq	%r9, %rcx
	adcq	%rbx, %r15
	movq	%r14, 40(%rsp)
	xorl	%ebx, %ebx
	xorl	%edx, %edx
	movq	%r15, %r14
	addq	%r8, %rax
	movq	%r15, 48(%rsp)
	adcq	%rbx, %rdx
	xorl	%r15d, %r15d
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	addq	%rsi, %rcx
	xorl	%r10d, %r10d
	movq	%r10, %rdx
	addq	%rcx, %rax
	adcq	$0, %rdx
	movq	%rax, %r9
	movq	-120(%rsp), %rax
	xorl	%ebx, %ebx
	movq	%rdx, %r10
	addq	%r15, %r9
	adcq	%rbx, %r10
	mulq	%rdi
	movq	%r9, 24(%rsp)
	xorl	%ecx, %ecx
	movq	%r10, 32(%rsp)
	movq	%rcx, 96(%rsp)
	xorl	%ecx, %ecx
	movq	%rax, %r8
	movq	-88(%rsp), %rax
	movq	%rdx, 88(%rsp)
	movq	%rdx, %r9
	movq	%rcx, -64(%rsp)
	mulq	%rdi
	movq	%r8, 8(%rsp)
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, -72(%rsp)
	mulq	%rdi
	xorl	%edi, %edi
	movq	%r10, -104(%rsp)
	movq	%rdi, %rbx
	movq	%rax, %rcx
	movq	%rdx, %rax
	addq	56(%rsp), %rcx
	adcq	64(%rsp), %rbx
	xorl	%edi, %edi
	xorl	%edx, %edx
	addq	%r10, %rax
	movq	%r8, %r10
	movq	%rdi, -96(%rsp)
	adcq	%rdi, %rdx
	xorl	%edi, %edi
	addq	%rbx, %rax
	adcq	%rdi, %rdx
	xorl	%edi, %edi
	movq	%rdi, %r11
	movq	%rdx, %rsi
	xorl	%edi, %edi
	movq	%r11, 16(%rsp)
	addq	-72(%rsp), %r10
	adcq	-64(%rsp), %r11
	addq	%r10, %rsi
	movq	40(%rsp), %r10
	adcq	%r11, %rdi
	xorl	%r13d, %r13d
	addq	-56(%rsp), %r12
	adcq	-48(%rsp), %r13
	xorl	%r11d, %r11d
	xorl	%ebx, %ebx
	addq	%r13, %rcx
	adcq	%r11, %rbx
	xorl	%r11d, %r11d
	addq	%r10, %rcx
	adcq	%r11, %rbx
	movq	%rcx, 40(%rsp)
	xorl	%r15d, %r15d
	movq	%rbx, %rcx
	movq	%rbx, 48(%rsp)
	xorl	%ebx, %ebx
	movq	%rcx, %r10
	movq	%r14, %rcx
	movq	%rbx, %r11
	movq	%r15, %rbx
	addq	%r10, %rcx
	adcq	%r11, %rbx
	movq	%rcx, %r14
	xorl	%edx, %edx
	movq	%rdi, %rcx
	addq	%rax, %r14
	movq	%rbx, %r15
	movq	%rsi, %rax
	adcq	%rdx, %r15
	movq	%r14, %r10
	movq	24(%rsp), %r14
	xorl	%ebx, %ebx
	movq	%r15, %r11
	movq	%r10, 24(%rsp)
	movq	32(%rsp), %r15
	xorl	%edx, %edx
	movq	%r11, %r10
	addq	%r14, %rax
	movq	%r11, 32(%rsp)
	movq	24(%rsp), %r14
	adcq	%rbx, %rdx
	xorl	%r11d, %r11d
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	addq	%r9, %rcx
	xorl	%edi, %edi
	movq	%rdi, %rdx
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	$0, %rdx
	xorl	%esi, %esi
	movq	%rsi, %rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	addq	%r11, %rsi
	adcq	%rbx, %rdi
	mulq	%rbp
	xorl	%r13d, %r13d
	movq	%rsi, -56(%rsp)
	movq	%r13, %r15
	movq	%r13, %rbx
	movq	%rcx, %rsi
	movq	%rdi, -48(%rsp)
	imulq	%rbp, %r15
	movq	%rbx, %rdi
	salq	$32, %rsi
	movq	%rdx, %r13
	movq	%rax, %r12
	shldq	$32, %rcx, %rdi
	movq	$-1, %rax
	addq	%r15, %r13
	subq	%rcx, %rsi
	sbbq	%rbx, %rdi
	mulq	%rcx
	xorl	%r15d, %r15d
	xorl	%r9d, %r9d
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%rsi, %r8
	adcq	%r15, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%r15d, %r15d
	movq	%rdx, %rax
	movq	%r15, %rdx
	xorl	%r15d, %r15d
	addq	%rax, %rcx
	movq	40(%rsp), %rax
	movq	%r15, %rbx
	adcq	%rdx, %rbx
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	movq	%r10, %r9
	adcq	%rdx, %rbx
	movq	%rcx, 72(%rsp)
	addq	%rdi, %rax
	movq	%rbx, %rcx
	movq	%rbx, 80(%rsp)
	xorl	%ebx, %ebx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	$0, %rbx
	movq	%rcx, %rsi
	xorl	%r15d, %r15d
	movq	%rbx, %rdi
	addq	%r14, %rsi
	adcq	%r15, %rdi
	xorl	%r10d, %r10d
	movq	%rsi, 56(%rsp)
	movq	%r10, %rdx
	movq	%rdi, %r14
	xorl	%r10d, %r10d
	addq	%r12, %rax
	adcq	%r10, %rdx
	xorl	%r15d, %r15d
	addq	%rax, %r14
	movq	%r13, %r12
	adcq	%rdx, %r15
	movq	-56(%rsp), %rdx
	xorl	%ecx, %ecx
	xorl	%r13d, %r13d
	movq	%rdi, 64(%rsp)
	movq	%rdx, %rax
	movq	%rcx, %rdx
	addq	%r12, %rax
	movq	-104(%rsp), %r12
	adcq	%r13, %rdx
	movq	%rax, %r9
	movq	-88(%rsp), %r13
	xorl	%r10d, %r10d
	movq	%r10, %rbx
	addq	%r15, %r9
	movq	%rdx, %r10
	adcq	%rbx, %r10
	movq	%r13, %rax
	movq	%r9, 40(%rsp)
	xorl	%esi, %esi
	mulq	-120(%rsp)
	movq	%r10, 48(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rax, %r8
	movq	%r13, %rax
	movq	%rdx, 24(%rsp)
	movq	%rdx, %r9
	mulq	%r13
	addq	-40(%rsp), %r12
	movq	-96(%rsp), %r13
	adcq	-32(%rsp), %r13
	movq	%r12, %rsi
	movq	%r8, -104(%rsp)
	movq	%r13, %rdi
	xorl	%r13d, %r13d
	movq	%rax, %rcx
	addq	-72(%rsp), %rcx
	movq	%r13, %rbx
	movq	%rdx, %rax
	adcq	-64(%rsp), %rbx
	xorl	%r13d, %r13d
	addq	%rdi, %rcx
	adcq	%r13, %rbx
	xorl	%r12d, %r12d
	xorl	%edx, %edx
	addq	%r8, %rax
	adcq	%r12, %rdx
	movq	%r12, -96(%rsp)
	movq	%rbx, %r12
	xorl	%r13d, %r13d
	addq	%rax, %r12
	movq	72(%rsp), %rax
	adcq	%rdx, %r13
	xorl	%edx, %edx
	addq	-24(%rsp), %rax
	adcq	-16(%rsp), %rdx
	movq	%rdx, %r10
	xorl	%edi, %edi
	xorl	%r11d, %r11d
	addq	%rsi, %r10
	movq	56(%rsp), %rsi
	adcq	%rdi, %r11
	xorl	%edi, %edi
	addq	%rsi, %r10
	adcq	%rdi, %r11
	xorl	%edi, %edi
	xorl	%ebx, %ebx
	addq	%r11, %rcx
	adcq	%rdi, %rbx
	xorl	%r15d, %r15d
	addq	%rcx, %r14
	adcq	%rbx, %r15
	movq	%r14, %rcx
	movq	40(%rsp), %r14
	xorl	%edi, %edi
	movq	%r15, %rbx
	movq	%rcx, -40(%rsp)
	movq	48(%rsp), %r15
	movq	%rbx, %rcx
	movq	%rbx, -32(%rsp)
	xorl	%ebx, %ebx
	addq	%r14, %rcx
	movq	%r15, %rsi
	movq	-40(%rsp), %r14
	adcq	%rdi, %rbx
	xorl	%edi, %edi
	addq	%r12, %rcx
	adcq	%rdi, %rbx
	movq	%rcx, -72(%rsp)
	movq	-48(%rsp), %rcx
	movq	%rbx, -64(%rsp)
	movq	-64(%rsp), %rbx
	addq	%rcx, %rsi
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rsi, %rcx
	movq	%r13, %rsi
	adcq	$0, %rbx
	movq	%rcx, %r12
	addq	%r9, %rsi
	movq	%rax, %rcx
	addq	%rsi, %r12
	movq	%rbx, %r13
	adcq	$0, %r13
	xorl	%edx, %edx
	movq	%r12, -88(%rsp)
	movq	%rdx, %rbx
	movq	%rdx, %rsi
	movq	%r13, -80(%rsp)
	mulq	%rbp
	movq	%rbx, %rdi
	imulq	%rbp, %rsi
	shldq	$32, %rcx, %rdi
	movq	%rdx, %r13
	movq	%rax, %r12
	movq	$-1, %rax
	addq	%rsi, %r13
	movq	%rcx, %rsi
	salq	$32, %rsi
	subq	%rcx, %rsi
	sbbq	%rbx, %rdi
	mulq	%rcx
	xorl	%r15d, %r15d
	xorl	%r9d, %r9d
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%rsi, %r8
	adcq	%r15, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%r15d, %r15d
	movq	8(%rsp), %r8
	movq	%rdx, %rax
	movq	%r15, %rbx
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	movq	-120(%rsp), %r9
	adcq	%rdx, %rbx
	xorl	%r11d, %r11d
	addq	%rcx, %r10
	movq	-72(%rsp), %rcx
	adcq	%rbx, %r11
	xorl	%edx, %edx
	xorl	%r15d, %r15d
	addq	%r11, %r14
	adcq	%rdx, %r15
	addq	%rdi, %rax
	addq	%rax, %r14
	movq	%rcx, %rax
	adcq	$0, %r15
	xorl	%ebx, %ebx
	movq	%rbx, %rdx
	xorl	%ebx, %ebx
	addq	%r15, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rsi
	xorl	%ebx, %ebx
	movq	-88(%rsp), %rax
	addq	%r12, %rsi
	movq	%rdx, %rdi
	movq	%r13, %r12
	adcq	%rbx, %rdi
	xorl	%ebx, %ebx
	xorl	%edx, %edx
	movq	%rsi, -72(%rsp)
	addq	%rdi, %rax
	movq	%rdi, -64(%rsp)
	adcq	%rbx, %rdx
	xorl	%r13d, %r13d
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%r9
	movq	16(%rsp), %r9
	movq	%rax, -120(%rsp)
	movq	%rdx, -112(%rsp)
	addq	104(%rsp), %r8
	movq	-104(%rsp), %rsi
	adcq	112(%rsp), %r9
	addq	88(%rsp), %rsi
	movq	-96(%rsp), %rdi
	movq	-120(%rsp), %rax
	adcq	96(%rsp), %rdi
	xorl	%ecx, %ecx
	addq	%r9, %rsi
	adcq	%rcx, %rdi
	xorl	%edx, %edx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	addq	24(%rsp), %rcx
	adcq	32(%rsp), %rbx
	xorl	%edx, %edx
	movq	%rdi, -104(%rsp)
	movq	%rcx, %rax
	movq	%r10, %rcx
	addq	-104(%rsp), %rax
	movq	%rdx, -96(%rsp)
	movq	%rbx, %rdx
	adcq	-96(%rsp), %rdx
	xorl	%ebx, %ebx
	addq	-8(%rsp), %rcx
	adcq	(%rsp), %rbx
	xorl	%r9d, %r9d
	xorl	%r11d, %r11d
	movq	%rdx, -64(%rsp)
	movq	%rbx, %r10
	movq	-112(%rsp), %rdx
	addq	%r8, %r10
	adcq	%r9, %r11
	xorl	%r9d, %r9d
	addq	%r14, %r10
	movq	-72(%rsp), %r14
	adcq	%r9, %r11
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	addq	%r11, %rsi
	adcq	%r9, %rdi
	xorl	%r15d, %r15d
	addq	%rsi, %r14
	movq	%r12, %rsi
	adcq	%rdi, %r15
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	addq	%r15, %rsi
	adcq	%r9, %rdi
	xorl	%r9d, %r9d
	addq	%rax, %rsi
	movq	%r13, %rax
	movq	%rsi, %r8
	movq	-80(%rsp), %rsi
	adcq	%r9, %rdi
	movq	%rdi, -96(%rsp)
	addq	%rsi, %rax
	movq	%rdi, %rsi
	xorl	%edi, %edi
	movq	%r8, -104(%rsp)
	addq	%rax, %rsi
	movq	-64(%rsp), %rax
	adcq	$0, %rdi
	addq	%rdx, %rax
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	$0, %rdi
	xorl	%ebx, %ebx
	movq	%rsi, -120(%rsp)
	movq	%rbx, %rdx
	movq	%rdi, -112(%rsp)
	imulq	%rbp, %rdx
	movq	%rdx, %rsi
	mulq	%rcx
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	movq	%rbx, %rdx
	salq	$32, %rax
	addq	%rsi, %r13
	shldq	$32, %rcx, %rdx
	subq	%rcx, %rax
	sbbq	%rbx, %rdx
	movq	%rax, %rsi
	movq	$-1, %rax
	xorl	%ebp, %ebp
	movq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, %r8
	movq	%rbp, %r9
	xorl	%ebp, %ebp
	movq	%rdi, -80(%rsp)
	subq	%rbx, %rdx
	addq	%rdx, %r8
	adcq	%rbp, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r9, %rbp
	xorl	%r9d, %r9d
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	xorl	%edx, %edx
	addq	%r10, %r8
	movq	-120(%rsp), %r10
	adcq	%rdx, %r9
	xorl	%edx, %edx
	movq	%r9, %rsi
	movq	%rdx, %rdi
	xorl	%edx, %edx
	addq	%r14, %rsi
	adcq	%rdx, %rdi
	movq	-80(%rsp), %rdx
	addq	%rdx, %rax
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	$0, %rdi
	xorl	%ebx, %ebx
	xorl	%edx, %edx
	movq	%rsi, -72(%rsp)
	addq	%rdi, %rax
	movq	%rdi, -64(%rsp)
	movq	%rsi, %rcx
	movq	-72(%rsp), %rsi
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	addq	%r12, %rax
	movq	%r13, %r12
	adcq	%rbx, %rdx
	xorl	%r11d, %r11d
	movq	%rax, %r14
	movq	%r8, %rax
	movq	%rdx, %r15
	xorl	%edx, %edx
	movq	%r14, -88(%rsp)
	addq	%r15, %r10
	movq	%r15, -80(%rsp)
	adcq	%rdx, %r11
	xorl	%r13d, %r13d
	addq	%r12, %r10
	movabsq	$-4294967295, %r12
	adcq	%r13, %r11
	xorl	%ebx, %ebx
	addq	$1, %rax
	movq	$-1, %r13
	movq	%rbx, %rdx
	movq	%rax, -104(%rsp)
	movq	-104(%rsp), %r9
	adcq	$-1, %rdx
	xorl	%ebx, %ebx
	movq	128(%rsp), %rax
	movq	%rdx, %rdi
	movq	%rdx, -96(%rsp)
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rcx
	sbbq	$0, %rbx
	addq	%r12, %rcx
	movl	$4294967295, %r12d
	adcq	%r13, %rbx
	xorl	%r15d, %r15d
	movq	%rcx, %rdi
	movq	%r10, %rcx
	movq	%rbx, %rdx
	movq	$-1, %r13
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r14
	sbbq	$0, %r15
	xorl	%ebx, %ebx
	movq	%r15, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %rcx
	movq	-112(%rsp), %rdx
	sbbq	$0, %rbx
	addq	%rcx, %r12
	movq	%r11, %rcx
	adcq	%rbx, %r13
	addq	%rdx, %rcx
	xorl	%ebx, %ebx
	movq	%r13, %rdx
	negl	%edx
	movzbl	%dl, %edx
	cmpq	%rdx, %rcx
	sbbq	$0, %rbx
	movq	%rbx, %rdx
	movq	%rbx, %rcx
	notq	%rdx
	andq	%rcx, %r8
	andq	%rdx, %rdi
	andq	%rdx, %r9
	andq	%rcx, %rsi
	orq	%rdi, %rsi
	orq	%r9, %r8
	movq	%rax, %rdi
	andq	%rdx, %r14
	movq	%r8, (%rax)
	andq	%r12, %rdx
	movq	%rsi, 8(%rax)
	movq	-88(%rsp), %rax
	andq	%rcx, %rax
	andq	%r10, %rcx
	orq	%r14, %rax
	orq	%rdx, %rcx
	movq	%rax, 16(%rdi)
	movq	%rcx, 24(%rdi)
	addq	$144, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1955:

	.size	fiat_p256_square, .-fiat_p256_square
# WAS .section	.text.fiat_p256_add,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_add, @function
.Lfiat_p256_add_local_target:
fiat_p256_add:
.LFB1956:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r9
	movq	%rdi, %rcx
	xorl	%edi, %edi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r8
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	(%rsi), %r10
	movq	(%rdx), %rax
	movq	8(%rdx), %rsi
	addq	8(%r9), %rsi
	leaq	(%rax,%r10), %rbx
	adcq	$0, %rdi
	xorl	%edx, %edx
	addq	%r10, %rax
	adcq	$0, %rdx
	movq	%rsi, %r12
	movq	%rdi, %r13
	movq	24(%r8), %r10
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	16(%r8), %rax
	adcq	%rdx, %r13
	xorl	%edx, %edx
	addq	16(%r9), %rax
	movq	%r12, -24(%rsp)
	adcq	$0, %rdx
	movq	%rax, %r14
	xorl	%edi, %edi
	movq	%r13, -16(%rsp)
	addq	%r13, %r14
	movq	%rdx, %r15
	movq	-24(%rsp), %rsi
	adcq	%rdi, %r15
	xorl	%r11d, %r11d
	addq	24(%r9), %r10
	movq	%r14, -40(%rsp)
	adcq	$0, %r11
	movq	%r10, %r8
	xorl	%edx, %edx
	movq	%r12, %r10
	addq	%r15, %r8
	movq	%r11, %r9
	movq	%rbx, %r12
	movq	%r15, -32(%rsp)
	adcq	%rdx, %r9
	xorl	%edi, %edi
	xorl	%r13d, %r13d
	addq	$1, %r12
	adcq	$-1, %r13
	movq	%rdi, %r11
	movq	-40(%rsp), %rax
	movabsq	$-4294967295, %r12
	movq	%r13, %rdi
	movq	$-1, %r13
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %r10
	sbbq	$0, %r11
	movq	%r10, %rdi
	movq	%r8, %r10
	addq	%r12, %rdi
	movq	%r11, %rbp
	movl	$4294967295, %r12d
	adcq	%r13, %rbp
	xorl	%edx, %edx
	movq	$-1, %r13
	movq	%rdx, %r15
	movq	%rbp, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r14
	sbbq	$0, %r15
	xorl	%r11d, %r11d
	movq	%r15, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r10
	sbbq	$0, %r11
	addq	%r10, %r12
	leaq	1(%rbx), %r10
	adcq	%r11, %r13
	xorl	%r11d, %r11d
	movq	%r13, %rdx
	negl	%edx
	movzbl	%dl, %edx
	cmpq	%rdx, %r9
	sbbq	$0, %r11
	movq	%r11, %rdx
	andq	%r11, %rbx
	andq	%r11, %rsi
	andq	%r11, %rax
	andq	%r8, %r11
	notq	%rdx
	movq	%r11, %r9
	andq	%rdx, %r14
	andq	%rdx, %r10
	andq	%rdx, %rdi
	andq	%r12, %rdx
	orq	%r10, %rbx
	orq	%r14, %rax
	orq	%rdi, %rsi
	orq	%rdx, %r9
	movq	%rbx, (%rcx)
	movq	%rsi, 8(%rcx)
	movq	%rax, 16(%rcx)
	movq	%r9, 24(%rcx)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1956:

	.size	fiat_p256_add, .-fiat_p256_add
# WAS .section	.text.fiat_p256_sub,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_sub, @function
.Lfiat_p256_sub_local_target:
fiat_p256_sub:
.LFB1957:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	(%rdx), %rcx
	movq	%rdi, %r10
	xorl	%r9d, %r9d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	(%rsi), %r8
	xorl	%edi, %edi
	movq	%rsi, %rax
	movq	8(%rsi), %rsi
	movq	24(%rax), %r12
	movq	%r8, %r11
	subq	%rcx, %r11
	cmpq	%rcx, %r8
	movq	16(%rax), %r8
	sbbq	$0, %r9
	movq	%r9, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %rsi
	sbbq	$0, %rdi
	subq	8(%rdx), %rsi
	sbbq	$0, %rdi
	xorl	%r9d, %r9d
	movq	%rdi, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %r8
	sbbq	$0, %r9
	subq	16(%rdx), %r8
	sbbq	$0, %r9
	xorl	%r13d, %r13d
	movq	%r9, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %r12
	sbbq	$0, %r13
	subq	24(%rdx), %r12
	sbbq	$0, %r13
	movq	%r12, %rax
	xorl	%edi, %edi
	movq	%r13, %rcx
	movl	%ecx, %r12d
	addq	%r12, %rsi
	movq	%rcx, %r12
	adcq	$0, %rdi
	xorl	%r13d, %r13d
	addq	%r11, %r12
	adcq	$0, %r13
	movq	%r13, %r12
	xorl	%r13d, %r13d
	addq	%r12, %rsi
	adcq	%r13, %rdi
	movq	%rsi, 8(%r10)
	xorl	%r9d, %r9d
	xorl	%r13d, %r13d
	movabsq	$-4294967295, %rsi
	movq	%rdi, %r12
	addq	%r8, %r12
	adcq	%r9, %r13
	addq	%rcx, %r11
	andq	%rsi, %rcx
	movq	%r12, 16(%r10)
	addq	%rcx, %rax
	popq	%r12
	.cfi_def_cfa_offset 16
	movq	%r11, (%r10)
	addq	%r13, %rax
	popq	%r13
	.cfi_def_cfa_offset 8
	movq	%rax, 24(%r10)
	ret
	.cfi_endproc
.LFE1957:

	.size	fiat_p256_sub, .-fiat_p256_sub
# WAS .section	.text.fiat_p256_opp,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_opp, @function
.Lfiat_p256_opp_local_target:
fiat_p256_opp:
.LFB1958:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %rcx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rsi), %r10
	movq	%rdi, %rbx
	negq	%r10
	sbbq	%r11, %r11
	movq	%r11, %rsi
	negl	%esi
	movzbl	%sil, %esi
	negq	%rsi
	sbbq	%rdi, %rdi
	subq	8(%rcx), %rsi
	sbbq	$0, %rdi
	movq	%rdi, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	negq	%r8
	sbbq	%r9, %r9
	subq	16(%rcx), %r8
	sbbq	$0, %r9
	movq	%r9, %rax
	negl	%eax
	movzbl	%al, %eax
	negq	%rax
	sbbq	%rdx, %rdx
	subq	24(%rcx), %rax
	sbbq	$0, %rdx
	xorl	%r11d, %r11d
	movq	%rdx, %rcx
	addq	%rcx, %r10
	movl	%ecx, %r12d
	adcq	$0, %r11
	xorl	%edi, %edi
	addq	%r12, %rsi
	movq	%r10, (%rbx)
	movq	%r11, %r12
	adcq	$0, %rdi
	xorl	%r13d, %r13d
	addq	%rsi, %r12
	adcq	%rdi, %r13
	xorl	%r9d, %r9d
	xorl	%edi, %edi
	movq	%r12, 8(%rbx)
	movq	%r13, %rsi
	addq	%r8, %rsi
	movabsq	$-4294967295, %r8
	adcq	%r9, %rdi
	andq	%r8, %rcx
	movq	%rsi, 16(%rbx)
	addq	%rcx, %rax
	addq	%rdi, %rax
	movq	%rax, 24(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1958:

	.size	fiat_p256_opp, .-fiat_p256_opp
# WAS .section	.text.fiat_p256_nz,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_nz, @function
.Lfiat_p256_nz_local_target:
fiat_p256_nz:
.LFB1969:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	orq	8(%rdi), %rax
	orq	16(%rdi), %rax
	orq	24(%rdi), %rax
	ret
	.cfi_endproc
.LFE1969:

	.size	fiat_p256_nz, .-fiat_p256_nz
# WAS .section	.text.p521_felem_nz,"ax",@progbits
.text
	.p2align 4
	.type	p521_felem_nz, @function
.Lp521_felem_nz_local_target:
p521_felem_nz:
.LFB2039:

	.cfi_startproc
	endbr64
	movdqu	48(%rdi), %xmm0
	movdqu	32(%rdi), %xmm2
	movdqu	(%rdi), %xmm1
	movdqu	16(%rdi), %xmm3
	por	%xmm2, %xmm0
	por	%xmm3, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	orq	64(%rdi), %rax
	ret
	.cfi_endproc
.LFE2039:

	.size	p521_felem_nz, .-p521_felem_nz
# WAS .section	.text.pkey_ed25519_copy,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ed25519_copy, @function
.Lpkey_ed25519_copy_local_target:
pkey_ed25519_copy:
.LFB2230:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2230:

	.size	pkey_ed25519_copy, .-pkey_ed25519_copy
# WAS .section	.text.cbd2,"ax",@progbits
.text
	.p2align 4
	.type	cbd2, @function
.Lcbd2_local_target:
cbd2:
.LFB2463:

	.cfi_startproc
	leaq	128(%rsi), %rax
	movq	%rdi, %rdx
	movq	%rsi, %rcx
	cmpq	%rax, %rdi
	jnb	.L156
	leaq	512(%rdi), %r8
	cmpq	%r8, %rsi
	jb	.L155
.L156:

	movdqa	.LC0(%rip), %xmm10
	movdqa	.LC1(%rip), %xmm6
.L153:

	movdqu	(%rcx), %xmm1
	movdqu	16(%rcx), %xmm2
	addq	$32, %rcx
	subq	$-128, %rdx
	movdqa	%xmm1, %xmm0
	pand	%xmm10, %xmm1
	psrld	$1, %xmm0
	pand	%xmm10, %xmm0
	paddd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	pand	%xmm10, %xmm2
	psrld	$1, %xmm1
	movdqa	%xmm0, %xmm3
	pand	%xmm10, %xmm1
	paddd	%xmm2, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm3
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm1, %xmm5
	movdqa	%xmm3, %xmm4
	punpcklwd	%xmm2, %xmm3
	movdqa	%xmm1, %xmm7
	punpckhwd	%xmm2, %xmm4
	movdqa	%xmm0, %xmm2
	movdqa	%xmm1, %xmm8
	psrld	$2, %xmm5
	psrld	$2, %xmm2
	punpcklwd	%xmm4, %xmm3
	movdqa	%xmm2, %xmm4
	punpcklwd	%xmm5, %xmm2
	pand	%xmm6, %xmm3
	punpckhwd	%xmm5, %xmm4
	movdqa	%xmm2, %xmm5
	movdqa	%xmm1, %xmm9
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm2
	movdqa	%xmm1, %xmm11
	punpcklwd	%xmm5, %xmm2
	movdqa	%xmm1, %xmm5
	movdqa	%xmm1, %xmm12
	pand	%xmm6, %xmm2
	psrld	$4, %xmm5
	movdqa	%xmm1, %xmm13
	psrld	$6, %xmm7
	psrld	$10, %xmm8
	psubw	%xmm2, %xmm3
	psrld	$14, %xmm9
	psrld	$18, %xmm11
	movdqa	%xmm0, %xmm2
	psrld	$4, %xmm2
	psrld	$22, %xmm12
	movdqa	%xmm2, %xmm4
	psrld	$26, %xmm13
	punpcklwd	%xmm5, %xmm2
	punpckhwd	%xmm5, %xmm4
	movdqa	%xmm2, %xmm5
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm2
	movdqa	%xmm0, %xmm4
	psrld	$6, %xmm4
	punpcklwd	%xmm5, %xmm2
	movdqa	%xmm4, %xmm5
	punpcklwd	%xmm7, %xmm4
	pand	%xmm6, %xmm2
	punpckhwd	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhwd	%xmm5, %xmm7
	punpcklwd	%xmm5, %xmm4
	movdqa	%xmm0, %xmm5
	punpcklwd	%xmm7, %xmm4
	psrld	$8, %xmm5
	movdqa	%xmm1, %xmm7
	psrld	$8, %xmm7
	pand	%xmm6, %xmm4
	psubw	%xmm4, %xmm2
	movdqa	%xmm5, %xmm4
	punpcklwd	%xmm7, %xmm5
	punpckhwd	%xmm7, %xmm4
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm4, %xmm7
	punpcklwd	%xmm4, %xmm5
	movdqa	%xmm0, %xmm4
	psrld	$10, %xmm4
	punpcklwd	%xmm7, %xmm5
	movdqa	%xmm4, %xmm7
	punpcklwd	%xmm8, %xmm4
	pand	%xmm6, %xmm5
	punpckhwd	%xmm8, %xmm7
	movdqa	%xmm4, %xmm8
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm7, %xmm4
	punpcklwd	%xmm8, %xmm4
	movdqa	%xmm1, %xmm8
	pand	%xmm6, %xmm4
	psrld	$12, %xmm8
	psubw	%xmm4, %xmm5
	movdqa	%xmm0, %xmm4
	psrld	$12, %xmm4
	movdqa	%xmm4, %xmm7
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm8, %xmm7
	movdqa	%xmm4, %xmm8
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm7, %xmm4
	movdqa	%xmm0, %xmm7
	psrld	$14, %xmm7
	punpcklwd	%xmm8, %xmm4
	movdqa	%xmm7, %xmm8
	punpcklwd	%xmm9, %xmm7
	pand	%xmm6, %xmm4
	punpckhwd	%xmm9, %xmm8
	movdqa	%xmm7, %xmm9
	punpckhwd	%xmm8, %xmm9
	punpcklwd	%xmm8, %xmm7
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm9, %xmm7
	psrld	$16, %xmm8
	movdqa	%xmm1, %xmm9
	psrld	$16, %xmm9
	pand	%xmm6, %xmm7
	psubw	%xmm7, %xmm4
	movdqa	%xmm8, %xmm7
	punpcklwd	%xmm9, %xmm8
	punpckhwd	%xmm9, %xmm7
	movdqa	%xmm8, %xmm9
	punpckhwd	%xmm7, %xmm9
	punpcklwd	%xmm7, %xmm8
	movdqa	%xmm0, %xmm7
	psrld	$18, %xmm7
	punpcklwd	%xmm9, %xmm8
	movdqa	%xmm7, %xmm9
	punpcklwd	%xmm11, %xmm7
	pand	%xmm6, %xmm8
	punpckhwd	%xmm11, %xmm9
	movdqa	%xmm7, %xmm11
	punpckhwd	%xmm9, %xmm11
	punpcklwd	%xmm9, %xmm7
	punpcklwd	%xmm11, %xmm7
	movdqa	%xmm1, %xmm11
	pand	%xmm6, %xmm7
	psrld	$20, %xmm11
	psubw	%xmm7, %xmm8
	movdqa	%xmm0, %xmm7
	psrld	$20, %xmm7
	movdqa	%xmm7, %xmm9
	punpcklwd	%xmm11, %xmm7
	punpckhwd	%xmm11, %xmm9
	movdqa	%xmm7, %xmm11
	punpckhwd	%xmm9, %xmm11
	punpcklwd	%xmm9, %xmm7
	movdqa	%xmm0, %xmm9
	psrld	$22, %xmm9
	punpcklwd	%xmm11, %xmm7
	movdqa	%xmm9, %xmm11
	punpcklwd	%xmm12, %xmm9
	pand	%xmm6, %xmm7
	punpckhwd	%xmm12, %xmm11
	movdqa	%xmm9, %xmm12
	punpckhwd	%xmm11, %xmm12
	punpcklwd	%xmm11, %xmm9
	movdqa	%xmm0, %xmm11
	punpcklwd	%xmm12, %xmm9
	psrld	$24, %xmm11
	movdqa	%xmm1, %xmm12
	psrld	$24, %xmm12
	pand	%xmm6, %xmm9
	psubw	%xmm9, %xmm7
	movdqa	%xmm11, %xmm9
	punpcklwd	%xmm12, %xmm11
	punpckhwd	%xmm12, %xmm9
	movdqa	%xmm11, %xmm12
	punpckhwd	%xmm9, %xmm12
	punpcklwd	%xmm9, %xmm11
	movdqa	%xmm0, %xmm9
	psrld	$26, %xmm9
	punpcklwd	%xmm12, %xmm11
	movdqa	%xmm9, %xmm12
	punpcklwd	%xmm13, %xmm9
	pand	%xmm6, %xmm11
	punpckhwd	%xmm13, %xmm12
	movdqa	%xmm9, %xmm13
	punpckhwd	%xmm12, %xmm13
	punpcklwd	%xmm12, %xmm9
	punpcklwd	%xmm13, %xmm9
	movdqa	%xmm1, %xmm13
	psrld	$28, %xmm13
	psrld	$30, %xmm1
	pand	%xmm6, %xmm9
	psubw	%xmm9, %xmm11
	movdqa	%xmm0, %xmm9
	psrld	$28, %xmm9
	psrld	$30, %xmm0
	movdqa	%xmm9, %xmm12
	punpcklwd	%xmm13, %xmm9
	punpckhwd	%xmm13, %xmm12
	movdqa	%xmm9, %xmm13
	punpckhwd	%xmm12, %xmm13
	punpcklwd	%xmm12, %xmm9
	movdqa	%xmm0, %xmm12
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm12
	punpcklwd	%xmm13, %xmm9
	movdqa	%xmm0, %xmm1
	punpcklwd	%xmm12, %xmm0
	pand	%xmm6, %xmm9
	punpckhwd	%xmm12, %xmm1
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm3, %xmm1
	punpckhwd	%xmm8, %xmm3
	psubw	%xmm0, %xmm9
	punpcklwd	%xmm8, %xmm1
	movdqa	%xmm5, %xmm0
	movdqa	%xmm2, %xmm8
	punpcklwd	%xmm11, %xmm0
	punpckhwd	%xmm7, %xmm2
	punpcklwd	%xmm7, %xmm8
	movdqa	%xmm1, %xmm7
	punpckhwd	%xmm11, %xmm5
	punpcklwd	%xmm0, %xmm7
	punpckhwd	%xmm0, %xmm1
	movdqa	%xmm4, %xmm11
	movdqa	%xmm3, %xmm0
	punpckhwd	%xmm9, %xmm4
	punpcklwd	%xmm9, %xmm11
	punpcklwd	%xmm5, %xmm0
	punpckhwd	%xmm5, %xmm3
	movdqa	%xmm8, %xmm9
	movdqa	%xmm2, %xmm5
	punpcklwd	%xmm11, %xmm9
	punpckhwd	%xmm4, %xmm2
	punpcklwd	%xmm4, %xmm5
	movdqa	%xmm7, %xmm4
	punpckhwd	%xmm11, %xmm8
	punpcklwd	%xmm9, %xmm4
	punpckhwd	%xmm9, %xmm7
	movups	%xmm4, -128(%rdx)
	movdqa	%xmm1, %xmm4
	punpckhwd	%xmm8, %xmm1
	movups	%xmm1, -80(%rdx)
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm5, %xmm0
	punpcklwd	%xmm8, %xmm4
	movups	%xmm0, -48(%rdx)
	movdqa	%xmm3, %xmm0
	punpcklwd	%xmm5, %xmm1
	punpckhwd	%xmm2, %xmm3
	punpcklwd	%xmm2, %xmm0
	movups	%xmm7, -112(%rdx)
	movups	%xmm4, -96(%rdx)
	movups	%xmm1, -64(%rdx)
	movups	%xmm0, -32(%rdx)
	movups	%xmm3, -16(%rdx)
	cmpq	%rax, %rcx
	jne	.L153
	ret
	.p2align 4,,10
	.p2align 3
.L155:

	movl	(%rcx), %eax
	movl	%eax, %esi
	shrl	%eax
	andl	$1431655765, %esi
	andl	$1431655765, %eax
	addl	%esi, %eax
	movl	%eax, %edi
	movl	%eax, %esi
	shrl	$2, %edi
	andl	$3, %esi
	andl	$3, %edi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, (%rdx)
	movl	%eax, %esi
	shrl	$6, %edi
	shrl	$4, %esi
	andl	$3, %edi
	andl	$3, %esi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, 2(%rdx)
	movl	%eax, %esi
	shrl	$10, %edi
	shrl	$8, %esi
	andl	$3, %edi
	andl	$3, %esi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, 4(%rdx)
	movl	%eax, %esi
	shrw	$14, %di
	shrl	$12, %esi
	andl	$3, %esi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, 6(%rdx)
	movl	%eax, %esi
	shrl	$18, %edi
	shrl	$16, %esi
	andl	$3, %edi
	andl	$3, %esi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, 8(%rdx)
	movl	%eax, %esi
	shrl	$22, %edi
	shrl	$20, %esi
	andl	$3, %edi
	andl	$3, %esi
	subl	%edi, %esi
	movl	%eax, %edi
	movw	%si, 10(%rdx)
	movl	%eax, %esi
	shrl	$24, %esi
	shrl	$26, %edi
	addq	$16, %rdx
	addq	$4, %rcx
	andl	$3, %esi
	andl	$3, %edi
	subl	%edi, %esi
	movw	%si, -4(%rdx)
	movl	%eax, %esi
	shrl	$30, %eax
	shrl	$28, %esi
	andl	$3, %esi
	subl	%eax, %esi
	movw	%si, -2(%rdx)
	cmpq	%r8, %rdx
	jne	.L155
	ret
	.cfi_endproc
.LFE2463:

	.size	cbd2, .-cbd2
# WAS .section	.text.byte_decode_12,"ax",@progbits
.text
	.p2align 4
	.type	byte_decode_12, @function
.Lbyte_decode_12_local_target:
byte_decode_12:
.LFB2483:

	.cfi_startproc
	movq	%rsi, %rcx
	movq	%rdi, %rsi
	leaq	384(%rcx), %rdi
	.p2align 4,,10
	.p2align 3
.L160:

	movzbl	1(%rcx), %r8d
	movzbl	(%rcx), %eax
	movl	%r8d, %edx
	shrw	$4, %r8w
	sall	$8, %edx
	andw	$3840, %dx
	orl	%eax, %edx
	movzbl	2(%rcx), %eax
	sall	$4, %eax
	orl	%r8d, %eax
	movswl	%dx, %r8d
	imull	$20159, %r8d, %r8d
	addl	$33554432, %r8d
	sarl	$26, %r8d
	negl	%r8d
	andw	$3329, %r8w
	subl	%r8d, %edx
	movl	%edx, %r8d
	leal	3329(%rdx), %r9d
	movswq	%dx, %rdx
	sarw	$15, %r8w
	movzwl	%r9w, %r9d
	cmpw	$1, %r8w
	sbbq	%r8, %r8
	movq	%r8, %r10
	notq	%r8
	andq	%r10, %rdx
	andq	%r9, %r8
	orq	%r8, %rdx
	movw	%dx, (%rsi)
	movzwl	%ax, %edx
	imull	$20159, %edx, %edx
	addl	$33554432, %edx
	sarl	$26, %edx
	negl	%edx
	andw	$3329, %dx
	subl	%edx, %eax
	movl	%eax, %edx
	leal	3329(%rax), %r8d
	movswq	%ax, %rax
	sarw	$15, %dx
	movzwl	%r8w, %r8d
	cmpw	$1, %dx
	sbbq	%rdx, %rdx
	addq	$3, %rcx
	addq	$4, %rsi
	movq	%rdx, %r9
	notq	%rdx
	andq	%r9, %rax
	andq	%r8, %rdx
	orq	%rdx, %rax
	movw	%ax, -2(%rsi)
	cmpq	%rcx, %rdi
	jne	.L160
	ret
	.cfi_endproc
.LFE2483:

	.size	byte_decode_12, .-byte_decode_12
# WAS .section	.text.gcm_mul64_nohw,"ax",@progbits
.text
	.p2align 4
	.type	gcm_mul64_nohw, @function
.Lgcm_mul64_nohw_local_target:
gcm_mul64_nohw:
.LFB2573:

	.cfi_startproc
	movabsq	$4919131752989213760, %rax
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movabsq	$1229782938247303441, %r15
	movabsq	$-8608480567731124088, %r9
	movabsq	$4919131752989213764, %r8
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	andq	%rdx, %rax
	movabsq	$2459565876494606882, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rax, %rbp
	movabsq	$-8608480567731124096, %rax
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	andq	%rdx, %rax
	movq	%rcx, %rbx
	movabsq	$2459565876494606880, %rcx
	andq	%rbx, %r15
	movq	%rax, %r10
	andq	%rdx, %rcx
	andq	%rbx, %r9
	andq	%rbx, %r8
	andq	%rbx, %r14
	movq	%rdi, -24(%rsp)
	movabsq	$1229782938247303440, %rdi
	andq	%rdx, %rdi
	movq	%rsi, -16(%rsp)
	movq	%rdx, %rsi
	movq	%rdi, %rax
	movq	%r10, -64(%rsp)
	mulq	%r15
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r9
	xorq	%rax, %r12
	movq	%rbp, %rax
	xorq	%rdx, %r13
	mulq	%r8
	xorq	%rax, %r12
	movq	%r10, %rax
	xorq	%rdx, %r13
	mulq	%r14
	xorq	%rax, %r12
	movq	%rdi, %rax
	xorq	%rdx, %r13
	mulq	%r14
	movq	%r12, -56(%rsp)
	movq	%r13, -48(%rsp)
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%rcx
	xorq	%rax, %r12
	movq	%r9, %rax
	xorq	%rdx, %r13
	mulq	%rbp
	xorq	%rax, %r12
	movq	%r10, %rax
	xorq	%rdx, %r13
	mulq	%r8
	movq	%r12, %r11
	movq	%r13, %r12
	xorq	%rax, %r11
	movq	%rdi, %rax
	xorq	%rdx, %r12
	mulq	%r8
	movq	%r12, -32(%rsp)
	movq	%r11, -40(%rsp)
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r14
	xorq	%rax, %r12
	movq	%r15, %rax
	xorq	%rdx, %r13
	mulq	%rbp
	xorq	%rax, %r12
	movq	%r10, %rax
	xorq	%rdx, %r13
	mulq	%r9
	xorq	%rax, %r12
	movq	%rdi, %rax
	xorq	%rdx, %r13
	mulq	%r9
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	movabsq	$1229782938247303441, %rcx
	mulq	%r8
	movq	%rax, %r8
	movq	%rbp, %rax
	movq	%rdx, %r9
	mulq	%r14
	xorq	%r10, %r8
	xorq	%r11, %r9
	movq	-40(%rsp), %r14
	xorq	%rax, %r8
	movq	-64(%rsp), %rax
	xorq	%rdx, %r9
	movq	%r8, %r10
	movq	%rsi, %r8
	movq	%r9, %r11
	xorl	%r9d, %r9d
	mulq	%r15
	salq	$61, %r8
	movq	-32(%rsp), %r15
	sarq	$63, %r8
	andq	%rbx, %r8
	xorq	%rax, %r10
	movq	%rsi, %rax
	xorq	%rdx, %r11
	xorl	%edx, %edx
	salq	$62, %rax
	shldq	$2, %r8, %r9
	sarq	$63, %rax
	salq	$2, %r8
	andq	%rbx, %rax
	shldq	$1, %rax, %rdx
	addq	%rax, %rax
	xorq	%rax, %r8
	movq	%rsi, %rax
	xorq	%rdx, %r9
	andl	$1, %eax
	negq	%rax
	andq	%rbx, %rax
	salq	$60, %rsi
	xorl	%edi, %edi
	xorl	%edx, %edx
	sarq	$63, %rsi
	xorq	%r8, %rax
	xorq	%r9, %rdx
	andq	%rbx, %rsi
	movabsq	$2459565876494606882, %rbx
	shldq	$3, %rsi, %rdi
	salq	$3, %rsi
	andq	%r14, %rbx
	xorq	%rsi, %rax
	movq	%rbx, %rsi
	xorq	%rdi, %rdx
	movq	-24(%rsp), %rdi
	movabsq	$-8608480567731124088, %rbx
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	-56(%rsp), %rax
	andq	%r10, %rbx
	movq	-48(%rsp), %rdx
	andq	%rax, %rcx
	orq	%rcx, %rsi
	movq	%rdx, %rax
	movabsq	$4919131752989213764, %rcx
	andq	%r12, %rcx
	orq	%rbx, %rcx
	movabsq	$2459565876494606882, %rbx
	xorq	%rcx, %rsi
	movq	%r15, %rcx
	xorq	%r8, %rsi
	andq	%rbx, %rcx
	movabsq	$-8608480567731124088, %rbx
	movq	%rsi, (%rdi)
	movq	%r11, %rsi
	movabsq	$1229782938247303441, %rdi
	andq	%rdi, %rax
	andq	%rbx, %rsi
	movabsq	$4919131752989213764, %rdi
	orq	%rcx, %rax
	movq	%r13, %rcx
	andq	%rdi, %rcx
	movq	-16(%rsp), %rdi
	orq	%rsi, %rcx
	xorq	%rcx, %rax
	xorq	%r9, %rax
	movq	%rax, (%rdi)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2573:

	.size	gcm_mul64_nohw, .-gcm_mul64_nohw
# WAS .section	.text.is_md_fips_approved_for_signing,"ax",@progbits
.text
	.p2align 4
	.type	is_md_fips_approved_for_signing, @function
.Lis_md_fips_approved_for_signing_local_target:
is_md_fips_approved_for_signing:
.LFB2815:

	.cfi_startproc
	endbr64
	cmpl	$675, %edi
	jle	.L168
	subl	$962, %edi
	cmpl	$16, %edi
	ja	.L169
	movl	$65657, %eax
	btq	%rdi, %rax
	setc	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L168:

	xorl	%eax, %eax
	cmpl	$671, %edi
	setg	%al
	ret
	.p2align 4,,10
	.p2align 3
.L169:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2815:

	.size	is_md_fips_approved_for_signing, .-is_md_fips_approved_for_signing
# WAS .section	.text.is_md_fips_approved_for_verifying,"ax",@progbits
.text
	.p2align 4
	.type	is_md_fips_approved_for_verifying, @function
.Lis_md_fips_approved_for_verifying_local_target:
is_md_fips_approved_for_verifying:
.LFB2816:

	.cfi_startproc
	endbr64
	cmpl	$978, %edi
	jg	.L173
	cmpl	$961, %edi
	jg	.L172
	movl	$1, %eax
	cmpl	$64, %edi
	je	.L170
	subl	$672, %edi
	xorl	%eax, %eax
	cmpl	$3, %edi
	setbe	%al
	ret
	.p2align 4,,10
	.p2align 3
.L172:

	subl	$962, %edi
	movl	$65657, %eax
	btq	%rdi, %rax
	setc	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L173:

	xorl	%eax, %eax
.L170:

	ret
	.cfi_endproc
.LFE2816:

	.size	is_md_fips_approved_for_verifying, .-is_md_fips_approved_for_verifying
# WAS .section	.text.aes_nohw_transpose,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_transpose, @function
.Laes_nohw_transpose_local_target:
aes_nohw_transpose:
.LFB762:

	.cfi_startproc
	movdqa	(%rdi), %xmm0
	movdqa	.LC2(%rip), %xmm5
	movdqa	32(%rdi), %xmm4
	movdqa	(%rdi), %xmm2
	psrld	$1, %xmm0
	pxor	16(%rdi), %xmm0
	movdqa	32(%rdi), %xmm6
	psrld	$1, %xmm4
	pxor	48(%rdi), %xmm4
	movdqa	64(%rdi), %xmm9
	pand	%xmm5, %xmm0
	movdqa	96(%rdi), %xmm7
	movdqa	.LC3(%rip), %xmm8
	movdqa	%xmm0, %xmm1
	pand	%xmm5, %xmm4
	pxor	16(%rdi), %xmm0
	pslld	$1, %xmm1
	pxor	%xmm1, %xmm2
	movdqa	%xmm4, %xmm1
	pxor	48(%rdi), %xmm4
	pslld	$1, %xmm1
	pxor	%xmm1, %xmm6
	movdqa	64(%rdi), %xmm1
	psrld	$1, %xmm1
	pxor	80(%rdi), %xmm1
	pand	%xmm5, %xmm1
	movdqa	%xmm1, %xmm3
	pxor	80(%rdi), %xmm1
	pslld	$1, %xmm3
	pxor	%xmm3, %xmm9
	movdqa	96(%rdi), %xmm3
	psrld	$1, %xmm3
	pxor	112(%rdi), %xmm3
	pand	%xmm5, %xmm3
	movdqa	%xmm3, %xmm5
	pxor	112(%rdi), %xmm3
	pslld	$1, %xmm5
	pxor	%xmm5, %xmm7
	movdqa	%xmm2, %xmm5
	psrld	$2, %xmm5
	pxor	%xmm6, %xmm5
	pand	%xmm8, %xmm5
	movdqa	%xmm5, %xmm10
	pxor	%xmm6, %xmm5
	movdqa	%xmm0, %xmm6
	psrld	$2, %xmm6
	pslld	$2, %xmm10
	pxor	%xmm4, %xmm6
	pxor	%xmm10, %xmm2
	pand	%xmm8, %xmm6
	pxor	%xmm6, %xmm4
	movdqa	%xmm6, %xmm10
	movdqa	%xmm9, %xmm6
	psrld	$2, %xmm6
	pslld	$2, %xmm10
	pxor	%xmm7, %xmm6
	pxor	%xmm10, %xmm0
	pand	%xmm8, %xmm6
	movdqa	%xmm6, %xmm10
	pxor	%xmm7, %xmm6
	movdqa	%xmm1, %xmm7
	psrld	$2, %xmm7
	pslld	$2, %xmm10
	pxor	%xmm3, %xmm7
	pxor	%xmm10, %xmm9
	pand	%xmm8, %xmm7
	movdqa	%xmm7, %xmm8
	pxor	%xmm7, %xmm3
	movdqa	.LC4(%rip), %xmm7
	pslld	$2, %xmm8
	pxor	%xmm8, %xmm1
	movdqa	%xmm2, %xmm8
	psrld	$4, %xmm8
	pxor	%xmm9, %xmm8
	pand	%xmm7, %xmm8
	movdqa	%xmm8, %xmm10
	pxor	%xmm9, %xmm8
	pslld	$4, %xmm10
	movaps	%xmm8, 64(%rdi)
	pxor	%xmm10, %xmm2
	movaps	%xmm2, (%rdi)
	movdqa	%xmm0, %xmm2
	psrld	$4, %xmm2
	pxor	%xmm1, %xmm2
	pand	%xmm7, %xmm2
	movdqa	%xmm2, %xmm8
	pxor	%xmm1, %xmm2
	pslld	$4, %xmm8
	movaps	%xmm2, 80(%rdi)
	pxor	%xmm8, %xmm0
	movaps	%xmm0, 16(%rdi)
	movdqa	%xmm5, %xmm0
	psrld	$4, %xmm0
	pxor	%xmm6, %xmm0
	pand	%xmm7, %xmm0
	movdqa	%xmm0, %xmm1
	pxor	%xmm6, %xmm0
	movaps	%xmm0, 96(%rdi)
	movdqa	%xmm4, %xmm0
	pslld	$4, %xmm1
	psrld	$4, %xmm0
	pxor	%xmm1, %xmm5
	pxor	%xmm3, %xmm0
	movaps	%xmm5, 32(%rdi)
	pand	%xmm7, %xmm0
	movdqa	%xmm0, %xmm1
	pxor	%xmm3, %xmm0
	pslld	$4, %xmm1
	movaps	%xmm0, 112(%rdi)
	pxor	%xmm1, %xmm4
	movaps	%xmm4, 48(%rdi)
	ret
	.cfi_endproc
.LFE762:

	.size	aes_nohw_transpose, .-aes_nohw_transpose
# WAS .section	.text.aes_nohw_mix_columns,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_mix_columns, @function
.Laes_nohw_mix_columns_local_target:
aes_nohw_mix_columns:
.LFB773:

	.cfi_startproc
	movdqa	(%rdi), %xmm3
	movdqa	16(%rdi), %xmm7
	movdqa	32(%rdi), %xmm2
	movdqa	48(%rdi), %xmm1
	movdqa	%xmm3, %xmm8
	movdqa	%xmm3, %xmm14
	movdqa	%xmm7, %xmm13
	movdqa	64(%rdi), %xmm6
	pslld	$24, %xmm8
	psrld	$8, %xmm14
	movdqa	%xmm2, %xmm12
	movdqa	80(%rdi), %xmm5
	por	%xmm8, %xmm14
	movdqa	%xmm7, %xmm8
	movdqa	%xmm1, %xmm11
	movdqa	96(%rdi), %xmm4
	pslld	$24, %xmm8
	movdqa	%xmm6, %xmm10
	movdqa	%xmm5, %xmm9
	movdqa	112(%rdi), %xmm0
	psrld	$8, %xmm13
	psrld	$8, %xmm12
	pxor	%xmm14, %xmm3
	por	%xmm8, %xmm13
	movdqa	%xmm2, %xmm8
	pslld	$24, %xmm8
	psrld	$8, %xmm11
	pxor	%xmm13, %xmm7
	por	%xmm8, %xmm12
	movdqa	%xmm1, %xmm8
	pslld	$24, %xmm8
	psrld	$8, %xmm10
	pxor	%xmm12, %xmm2
	por	%xmm8, %xmm11
	psrld	$8, %xmm9
	movdqa	%xmm6, %xmm8
	pslld	$24, %xmm8
	movdqa	%xmm9, %xmm15
	movdqa	%xmm4, %xmm9
	por	%xmm8, %xmm10
	movdqa	%xmm5, %xmm8
	pxor	%xmm11, %xmm1
	pslld	$24, %xmm8
	psrld	$8, %xmm9
	pxor	%xmm10, %xmm6
	por	%xmm8, %xmm15
	movdqa	%xmm4, %xmm8
	pslld	$24, %xmm8
	pxor	%xmm15, %xmm5
	movaps	%xmm15, -40(%rsp)
	por	%xmm8, %xmm9
	movdqa	%xmm0, %xmm8
	pxor	%xmm9, %xmm4
	pslld	$24, %xmm8
	movdqa	%xmm9, %xmm15
	movdqa	%xmm0, %xmm9
	psrld	$8, %xmm9
	por	%xmm8, %xmm9
	movdqa	%xmm3, %xmm8
	pslld	$16, %xmm8
	pxor	%xmm9, %xmm0
	movaps	%xmm8, -24(%rsp)
	movdqa	%xmm3, %xmm8
	pxor	%xmm0, %xmm3
	psrld	$16, %xmm8
	por	-24(%rsp), %xmm8
	pxor	%xmm14, %xmm8
	movdqa	%xmm7, %xmm14
	pxor	%xmm0, %xmm8
	pslld	$16, %xmm14
	movaps	%xmm8, (%rdi)
	movdqa	%xmm7, %xmm8
	psrld	$16, %xmm8
	por	%xmm14, %xmm8
	pxor	%xmm13, %xmm8
	pxor	%xmm3, %xmm8
	movdqa	%xmm2, %xmm3
	movaps	%xmm8, 16(%rdi)
	movdqa	%xmm2, %xmm8
	psrld	$16, %xmm3
	pxor	%xmm0, %xmm2
	pslld	$16, %xmm8
	por	%xmm8, %xmm3
	pxor	%xmm12, %xmm3
	pxor	%xmm7, %xmm3
	movdqa	%xmm1, %xmm7
	movaps	%xmm3, 32(%rdi)
	movdqa	%xmm1, %xmm3
	pslld	$16, %xmm7
	pxor	%xmm0, %xmm1
	psrld	$16, %xmm3
	por	%xmm7, %xmm3
	pxor	%xmm11, %xmm3
	pxor	%xmm3, %xmm2
	movdqa	%xmm6, %xmm3
	movaps	%xmm2, 48(%rdi)
	movdqa	%xmm6, %xmm2
	pslld	$16, %xmm3
	psrld	$16, %xmm2
	por	%xmm3, %xmm2
	pxor	%xmm10, %xmm2
	pxor	%xmm2, %xmm1
	movdqa	%xmm5, %xmm2
	movaps	%xmm1, 64(%rdi)
	movdqa	%xmm5, %xmm1
	psrld	$16, %xmm2
	pslld	$16, %xmm1
	por	%xmm2, %xmm1
	pxor	-40(%rsp), %xmm1
	movdqa	%xmm4, %xmm2
	psrld	$16, %xmm2
	pxor	%xmm6, %xmm1
	movaps	%xmm1, 80(%rdi)
	movdqa	%xmm4, %xmm1
	pslld	$16, %xmm1
	por	%xmm2, %xmm1
	pxor	%xmm15, %xmm1
	pxor	%xmm5, %xmm1
	movaps	%xmm1, 96(%rdi)
	movdqa	%xmm0, %xmm1
	psrld	$16, %xmm0
	pslld	$16, %xmm1
	por	%xmm1, %xmm0
	pxor	%xmm9, %xmm0
	pxor	%xmm4, %xmm0
	movaps	%xmm0, 112(%rdi)
	ret
	.cfi_endproc
.LFE773:

	.size	aes_nohw_mix_columns, .-aes_nohw_mix_columns
# WAS .section	.text.from_words52,"ax",@progbits
.text
	.p2align 4
	.type	from_words52, @function
.Lfrom_words52_local_target:
from_words52:
.LFB1072:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rcx
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdx, %rbx
	leal	63(%rsi), %edx
	sarl	$6, %edx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testl	%edx, %edx
	jle	.L179
	salq	$3, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	%rax, %rcx
	cmpl	$103, %ebp
	jle	.L180
	.p2align 4,,10
	.p2align 3
.L181:

	movq	(%rbx), %rdx
	subl	$104, %ebp
	addq	$13, %rcx
	addq	$16, %rbx
	movq	%rdx, -13(%rcx)
	movq	-8(%rbx), %rax
	shrq	$48, %rdx
	salq	$4, %rax
	orq	%rdx, %rax
	movq	%rax, -7(%rcx)
	cmpl	$103, %ebp
	jg	.L181
	cmpl	$52, %ebp
	jle	.L179
.L185:

	movq	(%rbx), %rax
	movl	(%rbx), %edx
	subl	$45, %ebp
	sarl	$3, %ebp
	movl	%edx, (%rcx)
	movq	%rax, %rdx
	shrq	$32, %rdx
	movb	%dl, 4(%rcx)
	movq	%rax, %rdx
	shrq	$48, %rax
	shrq	$40, %rdx
	movb	%al, 6(%rcx)
	movb	%dl, 5(%rcx)
	movq	8(%rbx), %rax
	movq	(%rbx), %rdx
	salq	$4, %rax
	shrq	$48, %rdx
	orq	%rdx, %rax
	movq	%rax, %rdx
	movb	%al, 6(%rcx)
	shrq	$8, %rdx
	cmpl	$1, %ebp
	je	.L178
	movb	%dl, 7(%rcx)
	movq	%rax, %rdx
	shrq	$16, %rdx
	cmpl	$2, %ebp
	je	.L178
	movb	%dl, 8(%rcx)
	movq	%rax, %rdx
	shrq	$24, %rdx
	cmpl	$3, %ebp
	je	.L178
	movb	%dl, 9(%rcx)
	movq	%rax, %rdx
	shrq	$32, %rdx
	cmpl	$4, %ebp
	je	.L178
	movb	%dl, 10(%rcx)
	movq	%rax, %rdx
	shrq	$40, %rdx
	cmpl	$5, %ebp
	je	.L178
	movb	%dl, 11(%rcx)
	shrq	$48, %rax
	cmpl	$6, %ebp
	je	.L178
	movb	%al, 12(%rcx)
.L178:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L179:

	.cfi_restore_state
	testl	%ebp, %ebp
	je	.L178
	addl	$7, %ebp
	movq	(%rbx), %rax
	sarl	$3, %ebp
	testl	%ebp, %ebp
	jle	.L178
.L186:

	movq	%rax, %rdx
	movb	%al, (%rcx)
	shrq	$8, %rdx
	cmpl	$1, %ebp
	je	.L178
	movb	%dl, 1(%rcx)
	movq	%rax, %rdx
	shrq	$16, %rdx
	cmpl	$2, %ebp
	je	.L178
	movb	%dl, 2(%rcx)
	movq	%rax, %rdx
	shrq	$24, %rdx
	cmpl	$3, %ebp
	je	.L178
	movb	%dl, 3(%rcx)
	movq	%rax, %rdx
	shrq	$32, %rdx
	cmpl	$4, %ebp
	je	.L178
	movb	%dl, 4(%rcx)
	movq	%rax, %rdx
	shrq	$40, %rdx
	cmpl	$5, %ebp
	je	.L178
	movb	%dl, 5(%rcx)
	shrq	$48, %rax
	cmpl	$6, %ebp
	je	.L178
	movb	%al, 6(%rcx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L180:

	.cfi_restore_state
	cmpl	$52, %ebp
	jg	.L185
	addl	$7, %ebp
	movq	(%rbx), %rax
	sarl	$3, %ebp
	jmp	.L186
	.cfi_endproc
.LFE1072:

	.size	from_words52, .-from_words52
# WAS .section	.text.BN_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_free
	.type	BN_free, @function
.LBN_free_local_target:
BN_free:
.LFB829:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L236
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	20(%rdi), %eax
	movq	%rdi, %rbx
	testb	$2, %al
	je	.L239
	testb	$1, %al
	jne	.L240
.L231:

	movq	$0, (%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L239:

	.cfi_restore_state
	movq	(%rdi), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rbx), %eax
	testb	$1, %al
	je	.L231
.L240:

	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L236:

	ret
	.cfi_endproc
.LFE829:

	.size	BN_free, .-BN_free
# WAS .section	.text.pkey_ec_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_cleanup, @function
.Lpkey_ec_cleanup_local_target:
pkey_ec_cleanup:
.LFB2217:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L241
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L241:

	ret
	.cfi_endproc
.LFE2217:

	.size	pkey_ec_cleanup, .-pkey_ec_cleanup
# WAS .section	.text.hmac_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	hmac_cleanup, @function
.Lhmac_cleanup_local_target:
hmac_cleanup:
.LFB2253:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rdi
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.cfi_endproc
.LFE2253:

	.size	hmac_cleanup, .-hmac_cleanup
# WAS .section	.text.pkey_rsa_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_cleanup, @function
.Lpkey_rsa_cleanup_local_target:
pkey_rsa_cleanup:
.LFB2285:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	40(%rdi), %rbx
	testq	%rbx, %rbx
	je	.L244
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	48(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	56(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L244:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2285:

	.size	pkey_rsa_cleanup, .-pkey_rsa_cleanup
# WAS .section	.rodata.pkey_kem_decapsulate.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC5:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_kem.c"
# WAS .section	.text.pkey_kem_decapsulate,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_decapsulate, @function
.Lpkey_kem_decapsulate_local_target:
pkey_kem_decapsulate:
.LFB2266:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rax
	movq	%rdx, %rbp
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	40(%rax), %rdx
	movq	(%rdx), %rbx
	testq	%rbx, %rbx
	je	.L270
.L248:

	testq	%rdi, %rdi
	je	.L269
	cmpq	%r8, 48(%rbx)
	jne	.L253
	movq	56(%rbx), %rsi
	cmpq	%rsi, 0(%rbp)
	jb	.L253
	movq	16(%rax), %rax
	testq	%rax, %rax
	je	.L256
	movq	8(%rax), %rdx
	testq	%rdx, %rdx
	je	.L256
	cmpl	$970, 4(%rax)
	jne	.L256
	movq	16(%rdx), %rdx
	testq	%rdx, %rdx
	je	.L271
	movq	80(%rbx), %rax
	movq	%rcx, %rsi
	call	*32(%rax)
	testl	%eax, %eax
	je	.L250
.L269:

	movq	56(%rbx), %rax
	movq	%rax, 0(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L253:

	.cfi_restore_state
	movl	$274, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$137, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L250:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L256:

	.cfi_restore_state
	movl	$282, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L250
	.p2align 4,,10
	.p2align 3
.L270:

	movq	16(%rax), %rdx
	testq	%rdx, %rdx
	je	.L272
	movq	8(%rdx), %rdx
	movq	(%rdx), %rbx
	jmp	.L248
	.p2align 4,,10
	.p2align 3
.L272:

	movl	$259, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L250
	.p2align 4,,10
	.p2align 3
.L271:

	movl	$289, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L250
	.cfi_endproc
.LFE2266:

	.size	pkey_kem_decapsulate, .-pkey_kem_decapsulate
# WAS .section	.text.pkey_kem_encapsulate,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_encapsulate, @function
.Lpkey_kem_encapsulate_local_target:
pkey_kem_encapsulate:
.LFB2265:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %r9
	movq	%rdx, %rbp
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	40(%r9), %rax
	movq	(%rax), %rbx
	testq	%rbx, %rbx
	je	.L298
.L274:

	movq	%rcx, %rax
	orq	%rdi, %rax
	je	.L299
	testq	%rdi, %rdi
	je	.L287
	testq	%rcx, %rcx
	je	.L287
	movq	48(%rbx), %rax
	cmpq	%rax, 0(%rbp)
	jb	.L282
	movq	56(%rbx), %rax
	cmpq	%rax, (%r8)
	jb	.L282
	movq	16(%r9), %rax
	testq	%rax, %rax
	je	.L284
	movq	8(%rax), %rdx
	testq	%rdx, %rdx
	je	.L284
	cmpl	$970, 4(%rax)
	jne	.L284
	movq	8(%rdx), %rdx
	testq	%rdx, %rdx
	je	.L300
	movq	80(%rbx), %rax
	movq	%r8, 8(%rsp)
	movq	%rcx, %rsi
	call	*24(%rax)
	testl	%eax, %eax
	je	.L276
	movq	48(%rbx), %rax
	movq	8(%rsp), %r8
	movq	%rax, 0(%rbp)
	movq	56(%rbx), %rax
	movq	%rax, (%r8)
	jmp	.L278
	.p2align 4,,10
	.p2align 3
.L282:

	movl	$219, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L276:

	xorl	%eax, %eax
.L273:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L299:

	.cfi_restore_state
	movq	48(%rbx), %rax
	movq	%rax, 0(%rbp)
	movq	56(%rbx), %rax
	movq	%rax, (%r8)
.L278:

	movl	$1, %eax
	jmp	.L273
	.p2align 4,,10
	.p2align 3
.L298:

	movq	16(%r9), %rax
	testq	%rax, %rax
	je	.L301
	movq	8(%rax), %rax
	movq	(%rax), %rbx
	jmp	.L274
	.p2align 4,,10
	.p2align 3
.L284:

	movl	$227, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L273
	.p2align 4,,10
	.p2align 3
.L287:

	movl	$212, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L273
	.p2align 4,,10
	.p2align 3
.L301:

	movl	$196, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L273
.L300:

	movl	$234, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L273
	.cfi_endproc
.LFE2265:

	.size	pkey_kem_encapsulate, .-pkey_kem_encapsulate
# WAS .section	.text.pkey_kem_encapsulate_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_encapsulate_deterministic, @function
.Lpkey_kem_encapsulate_deterministic_local_target:
pkey_kem_encapsulate_deterministic:
.LFB2264:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rax
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L334
	movq	%rdx, %rbx
	movq	40(%rdi), %rdx
	testq	%rdx, %rdx
	je	.L335
	movq	(%rdx), %rbp
	movq	%rsi, %rdi
	movq	%rcx, %rsi
	testq	%rbp, %rbp
	je	.L336
.L307:

	cmpq	$0, 48(%rsp)
	sete	%dl
	testq	%r8, %r8
	sete	%cl
	orb	%cl, %dl
	jne	.L322
	testq	%rbx, %rbx
	je	.L322
	movq	%rsi, %rcx
	orq	%rdi, %rcx
	jne	.L311
	testq	%r9, %r9
	je	.L337
.L312:

	movl	$143, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	.p2align 4,,10
	.p2align 3
.L304:

	xorl	%eax, %eax
.L302:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L311:

	.cfi_restore_state
	testq	%rsi, %rsi
	sete	%dl
	testq	%r9, %r9
	sete	%cl
	orb	%cl, %dl
	jne	.L312
	testq	%rdi, %rdi
	je	.L312
	movq	48(%rbp), %rcx
	cmpq	%rcx, (%rbx)
	jb	.L316
	movq	56(%rbp), %rcx
	cmpq	%rcx, (%r8)
	jb	.L316
	movq	48(%rsp), %rcx
	movq	72(%rbp), %rdx
	cmpq	%rdx, (%rcx)
	jne	.L338
	movq	16(%rax), %rax
	testq	%rax, %rax
	je	.L319
	movq	8(%rax), %rdx
	testq	%rdx, %rdx
	je	.L319
	cmpl	$970, 4(%rax)
	jne	.L319
	movq	8(%rdx), %rdx
	testq	%rdx, %rdx
	je	.L339
	movq	80(%rbp), %rax
	movq	%r8, 8(%rsp)
	movq	%r9, %rcx
	call	*16(%rax)
	testl	%eax, %eax
	je	.L304
	movq	48(%rbp), %rax
	movq	8(%rsp), %r8
	movq	%rax, (%rbx)
	movq	56(%rbp), %rax
	movq	%rax, (%r8)
.L313:

	movl	$1, %eax
	jmp	.L302
	.p2align 4,,10
	.p2align 3
.L322:

	movl	$128, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.p2align 4,,10
	.p2align 3
.L336:

	movq	16(%rax), %rdx
	testq	%rdx, %rdx
	je	.L340
	movq	8(%rdx), %rdx
	movq	(%rdx), %rbp
	jmp	.L307
	.p2align 4,,10
	.p2align 3
.L316:

	movl	$150, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.p2align 4,,10
	.p2align 3
.L319:

	movl	$164, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.p2align 4,,10
	.p2align 3
.L334:

	movl	$114, %r8d
.L333:

	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.p2align 4,,10
	.p2align 3
.L335:

	movl	$116, %r8d
	jmp	.L333
	.p2align 4,,10
	.p2align 3
.L338:

	movl	$156, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.p2align 4,,10
	.p2align 3
.L337:

	movq	48(%rbp), %rax
	movq	%rax, (%rbx)
	movq	56(%rbp), %rax
	movq	48(%rsp), %rbx
	movq	%rax, (%r8)
	movq	72(%rbp), %rax
	movq	%rax, (%rbx)
	jmp	.L313
	.p2align 4,,10
	.p2align 3
.L340:

	movl	$120, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
.L339:

	movl	$171, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L304
	.cfi_endproc
.LFE2264:

	.size	pkey_kem_encapsulate_deterministic, .-pkey_kem_encapsulate_deterministic
# WAS .section	.text.pkey_ec_init,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_init, @function
.Lpkey_ec_init_local_target:
pkey_ec_init:
.LFB2215:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movl	$16, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L343
	movq	%rax, 40(%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L343:

	.cfi_restore_state
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2215:

	.size	pkey_ec_init, .-pkey_ec_init
# WAS .section	.text.pkey_ec_copy,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_copy, @function
.Lpkey_ec_copy_local_target:
pkey_ec_copy:
.LFB2216:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	movl	$16, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L347
	movq	%rax, 40(%rbp)
	movq	40(%rbx), %rdx
	movq	(%rdx), %rdx
	movq	%rdx, (%rax)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L347:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2216:

	.size	pkey_ec_copy, .-pkey_ec_copy
# WAS .section	.text.pkey_kem_init,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_init, @function
.Lpkey_kem_init_local_target:
pkey_kem_init:
.LFB2260:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movl	$8, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L351
	movq	%rax, 40(%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L351:

	.cfi_restore_state
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2260:

	.size	pkey_kem_init, .-pkey_kem_init
# WAS .section	.text.pkey_rsa_init,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_init, @function
.Lpkey_rsa_init_local_target:
pkey_rsa_init:
.LFB2283:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movl	$72, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L356
	movq	(%rbx), %rdx
	movl	$2048, (%rax)
	cmpl	$912, (%rdx)
	movq	$-2, 40(%rax)
	sete	%dl
	movzbl	%dl, %edx
	leal	1(%rdx,%rdx,4), %edx
	movl	%edx, 16(%rax)
	movq	%rax, 40(%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L356:

	.cfi_restore_state
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2283:

	.size	pkey_rsa_init, .-pkey_rsa_init
# WAS .section	.text.BN_value_one_init,"ax",@progbits
.text
	.p2align 4
	.type	BN_value_one_init, @function
.LBN_value_one_init_local_target:
BN_value_one_init:
.LFB834:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	BN_value_one_storage_bss_get@PLT
	call	BN_value_one_storage_bss_get
	movdqa	.LC7(%rip), %xmm0
# WAS leaq	kOneLimbs.87(%rip), %rdx
	leaq	.LkOneLimbs.87_local_target(%rip), %rdx
	movq	%rdx, (%rax)
	movups	%xmm0, 8(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE834:

	.size	BN_value_one_init, .-BN_value_one_init
# WAS .section	.text.aes_gcm_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	aes_gcm_cleanup, @function
.Laes_gcm_cleanup_local_target:
aes_gcm_cleanup:
.LFB1165:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$384, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	addq	$52, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	16(%rdi), %rbp
	movq	%rbp, %rax
	andl	$8, %eax
	addq	%rax, %rbp
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	640(%rbp), %rdi
	cmpq	%rbx, %rdi
	je	.L361
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L361:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1165:

	.size	aes_gcm_cleanup, .-aes_gcm_cleanup
# WAS .section	.text.pkey_hkdf_init,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_init, @function
.Lpkey_hkdf_init_local_target:
pkey_hkdf_init:
.LFB2237:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	movl	$96, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L365
	xorl	%esi, %esi
	leaq	48(%rax), %rdi
	movq	%rax, %rbx
# WAS call	CBB_init@PLT
	call	.Lbcm_redirector_CBB_init
	testl	%eax, %eax
	je	.L372
	movq	%rbx, 40(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L372:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L365:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2237:

	.size	pkey_hkdf_init, .-pkey_hkdf_init
# WAS .section	.text.pkey_hkdf_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_cleanup, @function
.Lpkey_hkdf_cleanup_local_target:
pkey_hkdf_cleanup:
.LFB2239:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	40(%rdi), %rbp
	testq	%rbp, %rbp
	je	.L373
	movq	%rdi, %rbx
	movq	16(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	32(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	leaq	48(%rbp), %rdi
# WAS call	CBB_cleanup@PLT
	call	.Lbcm_redirector_CBB_cleanup
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 40(%rbx)
.L373:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2239:

	.size	pkey_hkdf_cleanup, .-pkey_hkdf_cleanup
# WAS .section	.text.EVP_aes_128_cbc_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_128_cbc_init, @function
.LEVP_aes_128_cbc_init_local_target:
EVP_aes_128_cbc_init:
.LFB1173:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_cbc_storage_bss_get@PLT
	call	EVP_aes_128_cbc_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_cbc_cipher(%rip), %rdx
	leaq	.Laes_cbc_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC8(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$419, (%rax)
	movl	$2, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1173:

	.size	EVP_aes_128_cbc_init, .-EVP_aes_128_cbc_init
# WAS .section	.text.EVP_aes_128_ctr_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_128_ctr_init, @function
.LEVP_aes_128_ctr_init_local_target:
EVP_aes_128_ctr_init:
.LFB1176:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ctr_storage_bss_get@PLT
	call	EVP_aes_128_ctr_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ctr_cipher(%rip), %rdx
	leaq	.Laes_ctr_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC10(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$904, (%rax)
	movl	$5, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1176:

	.size	EVP_aes_128_ctr_init, .-EVP_aes_128_ctr_init
# WAS .section	.text.EVP_aes_128_ofb_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_128_ofb_init, @function
.LEVP_aes_128_ofb_init_local_target:
EVP_aes_128_ofb_init:
.LFB1182:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ofb_storage_bss_get@PLT
	call	EVP_aes_128_ofb_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ofb_cipher(%rip), %rdx
	leaq	.Laes_ofb_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC10(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$420, (%rax)
	movl	$4, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1182:

	.size	EVP_aes_128_ofb_init, .-EVP_aes_128_ofb_init
# WAS .section	.text.EVP_aes_128_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_128_gcm_init, @function
.LEVP_aes_128_gcm_init_local_target:
EVP_aes_128_gcm_init:
.LFB1185:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_gcm_storage_bss_get@PLT
	call	EVP_aes_128_gcm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_gcm_cipher(%rip), %rdx
	leaq	.Laes_gcm_cipher_local_target(%rip), %rdx
# WAS leaq	aes_gcm_init_key(%rip), %rcx
	leaq	.Laes_gcm_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movdqa	.LC11(%rip), %xmm0
	movq	%rdx, %xmm1
# WAS leaq	aes_gcm_cleanup(%rip), %rsi
	leaq	.Laes_gcm_cleanup_local_target(%rip), %rsi
# WAS leaq	aes_gcm_ctrl(%rip), %rdx
	leaq	.Laes_gcm_ctrl_local_target(%rip), %rdx
	movl	$895, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm2
	punpcklqdq	%xmm1, %xmm0
	movl	$8070, 20(%rax)
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 48(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1185:

	.size	EVP_aes_128_gcm_init, .-EVP_aes_128_gcm_init
# WAS .section	.text.EVP_aes_192_cbc_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_192_cbc_init, @function
.LEVP_aes_192_cbc_init_local_target:
EVP_aes_192_cbc_init:
.LFB1188:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_cbc_storage_bss_get@PLT
	call	EVP_aes_192_cbc_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_cbc_cipher(%rip), %rdx
	leaq	.Laes_cbc_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC12(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$423, (%rax)
	movl	$2, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1188:

	.size	EVP_aes_192_cbc_init, .-EVP_aes_192_cbc_init
# WAS .section	.text.EVP_aes_192_ctr_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_192_ctr_init, @function
.LEVP_aes_192_ctr_init_local_target:
EVP_aes_192_ctr_init:
.LFB1191:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ctr_storage_bss_get@PLT
	call	EVP_aes_192_ctr_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ctr_cipher(%rip), %rdx
	leaq	.Laes_ctr_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC13(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$905, (%rax)
	movl	$5, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1191:

	.size	EVP_aes_192_ctr_init, .-EVP_aes_192_ctr_init
# WAS .section	.text.EVP_aes_192_ofb_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_192_ofb_init, @function
.LEVP_aes_192_ofb_init_local_target:
EVP_aes_192_ofb_init:
.LFB1197:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ofb_storage_bss_get@PLT
	call	EVP_aes_192_ofb_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ofb_cipher(%rip), %rdx
	leaq	.Laes_ofb_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC13(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$424, (%rax)
	movl	$4, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1197:

	.size	EVP_aes_192_ofb_init, .-EVP_aes_192_ofb_init
# WAS .section	.text.EVP_aes_192_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_192_gcm_init, @function
.LEVP_aes_192_gcm_init_local_target:
EVP_aes_192_gcm_init:
.LFB1200:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_gcm_storage_bss_get@PLT
	call	EVP_aes_192_gcm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_gcm_cipher(%rip), %rdx
	leaq	.Laes_gcm_cipher_local_target(%rip), %rdx
# WAS leaq	aes_gcm_init_key(%rip), %rcx
	leaq	.Laes_gcm_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movdqa	.LC14(%rip), %xmm0
	movq	%rdx, %xmm1
# WAS leaq	aes_gcm_cleanup(%rip), %rsi
	leaq	.Laes_gcm_cleanup_local_target(%rip), %rsi
# WAS leaq	aes_gcm_ctrl(%rip), %rdx
	leaq	.Laes_gcm_ctrl_local_target(%rip), %rdx
	movl	$898, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm2
	punpcklqdq	%xmm1, %xmm0
	movl	$8070, 20(%rax)
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 48(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1200:

	.size	EVP_aes_192_gcm_init, .-EVP_aes_192_gcm_init
# WAS .section	.text.EVP_aes_256_cbc_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_cbc_init, @function
.LEVP_aes_256_cbc_init_local_target:
EVP_aes_256_cbc_init:
.LFB1203:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_cbc_storage_bss_get@PLT
	call	EVP_aes_256_cbc_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_cbc_cipher(%rip), %rdx
	leaq	.Laes_cbc_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC15(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$427, (%rax)
	movl	$2, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1203:

	.size	EVP_aes_256_cbc_init, .-EVP_aes_256_cbc_init
# WAS .section	.text.EVP_aes_256_ctr_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_ctr_init, @function
.LEVP_aes_256_ctr_init_local_target:
EVP_aes_256_ctr_init:
.LFB1206:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ctr_storage_bss_get@PLT
	call	EVP_aes_256_ctr_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ctr_cipher(%rip), %rdx
	leaq	.Laes_ctr_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC16(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$906, (%rax)
	movl	$5, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1206:

	.size	EVP_aes_256_ctr_init, .-EVP_aes_256_ctr_init
# WAS .section	.text.EVP_aes_256_ofb_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_ofb_init, @function
.LEVP_aes_256_ofb_init_local_target:
EVP_aes_256_ofb_init:
.LFB1212:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ofb_storage_bss_get@PLT
	call	EVP_aes_256_ofb_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_ofb_cipher(%rip), %rdx
	leaq	.Laes_ofb_cipher_local_target(%rip), %rdx
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC16(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$428, (%rax)
	movl	$4, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1212:

	.size	EVP_aes_256_ofb_init, .-EVP_aes_256_ofb_init
# WAS .section	.text.EVP_aes_256_wrap_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_wrap_init, @function
.LEVP_aes_256_wrap_init_local_target:
EVP_aes_256_wrap_init:
.LFB1215:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_wrap_storage_bss_get@PLT
	call	EVP_aes_256_wrap_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_wrap_cipher(%rip), %rdx
	leaq	.Laes_wrap_cipher_local_target(%rip), %rdx
# WAS leaq	aes_wrap_init_key(%rip), %rcx
	leaq	.Laes_wrap_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
	movups	%xmm0, 40(%rax)
	movdqa	.LC17(%rip), %xmm0
	movq	$0, 56(%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$790, (%rax)
	movl	$1418, 20(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1215:

	.size	EVP_aes_256_wrap_init, .-EVP_aes_256_wrap_init
# WAS .section	.text.EVP_aes_256_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_gcm_init, @function
.LEVP_aes_256_gcm_init_local_target:
EVP_aes_256_gcm_init:
.LFB1218:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_gcm_storage_bss_get@PLT
	call	EVP_aes_256_gcm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_gcm_cipher(%rip), %rdx
	leaq	.Laes_gcm_cipher_local_target(%rip), %rdx
# WAS leaq	aes_gcm_init_key(%rip), %rcx
	leaq	.Laes_gcm_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movdqa	.LC18(%rip), %xmm0
	movq	%rdx, %xmm1
# WAS leaq	aes_gcm_cleanup(%rip), %rsi
	leaq	.Laes_gcm_cleanup_local_target(%rip), %rsi
# WAS leaq	aes_gcm_ctrl(%rip), %rdx
	leaq	.Laes_gcm_ctrl_local_target(%rip), %rdx
	movl	$901, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm2
	punpcklqdq	%xmm1, %xmm0
	movl	$8070, 20(%rax)
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 48(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1218:

	.size	EVP_aes_256_gcm_init, .-EVP_aes_256_gcm_init
# WAS .section	.text.EVP_aes_256_xts_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_xts_init, @function
.LEVP_aes_256_xts_init_local_target:
EVP_aes_256_xts_init:
.LFB1221:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_xts_storage_bss_get@PLT
	call	EVP_aes_256_xts_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	aes_xts_cipher(%rip), %rdx
	leaq	.Laes_xts_cipher_local_target(%rip), %rdx
# WAS leaq	aes_xts_init_key(%rip), %rcx
	leaq	.Laes_xts_init_key_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
# WAS leaq	aes_xts_ctrl(%rip), %rsi
	leaq	.Laes_xts_ctrl_local_target(%rip), %rsi
	movups	%xmm0, 40(%rax)
	movdqa	.LC19(%rip), %xmm0
	movl	$914, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$4999, 20(%rax)
	movq	%rsi, 56(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1221:

	.size	EVP_aes_256_xts_init, .-EVP_aes_256_xts_init
# WAS .section	.text.aes_hw_128_ecb_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_hw_128_ecb_init, @function
.Laes_hw_128_ecb_init_local_target:
aes_hw_128_ecb_init:
.LFB1225:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_hw_128_ecb_storage_bss_get@PLT
	call	aes_hw_128_ecb_storage_bss_get
	movq	.LC20(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_hw_ecb_cipher(%rip), %rdx
	leaq	.Laes_hw_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$418, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1225:

	.size	aes_hw_128_ecb_init, .-aes_hw_128_ecb_init
# WAS .section	.text.aes_128_ecb_generic_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_128_ecb_generic_init, @function
.Laes_128_ecb_generic_init_local_target:
aes_128_ecb_generic_init:
.LFB1179:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_128_ecb_generic_storage_bss_get@PLT
	call	aes_128_ecb_generic_storage_bss_get
	movq	.LC20(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_ecb_cipher(%rip), %rdx
	leaq	.Laes_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$418, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1179:

	.size	aes_128_ecb_generic_init, .-aes_128_ecb_generic_init
# WAS .section	.text.aes_hw_192_ecb_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_hw_192_ecb_init, @function
.Laes_hw_192_ecb_init_local_target:
aes_hw_192_ecb_init:
.LFB1228:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_hw_192_ecb_storage_bss_get@PLT
	call	aes_hw_192_ecb_storage_bss_get
	movq	.LC22(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_hw_ecb_cipher(%rip), %rdx
	leaq	.Laes_hw_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$422, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1228:

	.size	aes_hw_192_ecb_init, .-aes_hw_192_ecb_init
# WAS .section	.text.aes_192_ecb_generic_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_192_ecb_generic_init, @function
.Laes_192_ecb_generic_init_local_target:
aes_192_ecb_generic_init:
.LFB1194:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_192_ecb_generic_storage_bss_get@PLT
	call	aes_192_ecb_generic_storage_bss_get
	movq	.LC22(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_ecb_cipher(%rip), %rdx
	leaq	.Laes_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$422, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1194:

	.size	aes_192_ecb_generic_init, .-aes_192_ecb_generic_init
# WAS .section	.text.aes_hw_256_ecb_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_hw_256_ecb_init, @function
.Laes_hw_256_ecb_init_local_target:
aes_hw_256_ecb_init:
.LFB1231:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_hw_256_ecb_storage_bss_get@PLT
	call	aes_hw_256_ecb_storage_bss_get
	movq	.LC23(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_hw_ecb_cipher(%rip), %rdx
	leaq	.Laes_hw_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$426, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1231:

	.size	aes_hw_256_ecb_init, .-aes_hw_256_ecb_init
# WAS .section	.text.aes_256_ecb_generic_init,"ax",@progbits
.text
	.p2align 4
	.type	aes_256_ecb_generic_init, @function
.Laes_256_ecb_generic_init_local_target:
aes_256_ecb_generic_init:
.LFB1209:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aes_256_ecb_generic_storage_bss_get@PLT
	call	aes_256_ecb_generic_storage_bss_get
	movq	.LC23(%rip), %rdx
	pxor	%xmm0, %xmm0
# WAS leaq	aes_init_key(%rip), %rcx
	leaq	.Laes_init_key_local_target(%rip), %rcx
	movups	%xmm0, 12(%rax)
	movq	%rdx, 4(%rax)
	movq	.LC21(%rip), %rdx
	movups	%xmm0, 28(%rax)
	movq	%rdx, 16(%rax)
# WAS leaq	aes_ecb_cipher(%rip), %rdx
	leaq	.Laes_ecb_cipher_local_target(%rip), %rdx
	movups	%xmm0, 44(%rax)
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$0, 60(%rax)
	movl	$426, (%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1209:

	.size	aes_256_ecb_generic_init, .-aes_256_ecb_generic_init
# WAS .section	.text.EVP_aead_aes_128_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_gcm_init, @function
.LEVP_aead_aes_128_gcm_init_local_target:
EVP_aead_aes_128_gcm_init:
.LFB1244:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_storage_bss_get@PLT
	call	EVP_aead_aes_128_gcm_storage_bss_get
# WAS leaq	aead_aes_gcm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$16, %eax
	movl	$269487120, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_init(%rip), %rax
	leaq	.Laead_aes_gcm_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1244:

	.size	EVP_aead_aes_128_gcm_init, .-EVP_aead_aes_128_gcm_init
# WAS .section	.text.EVP_aead_aes_192_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_192_gcm_init, @function
.LEVP_aead_aes_192_gcm_init_local_target:
EVP_aead_aes_192_gcm_init:
.LFB1247:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_192_gcm_storage_bss_get@PLT
	call	EVP_aead_aes_192_gcm_storage_bss_get
# WAS leaq	aead_aes_gcm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$17, %eax
	movl	$269487128, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_init(%rip), %rax
	leaq	.Laead_aes_gcm_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1247:

	.size	EVP_aead_aes_192_gcm_init, .-EVP_aead_aes_192_gcm_init
# WAS .section	.text.EVP_aead_aes_256_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_256_gcm_init, @function
.LEVP_aead_aes_256_gcm_init_local_target:
EVP_aead_aes_256_gcm_init:
.LFB1250:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_storage_bss_get@PLT
	call	EVP_aead_aes_256_gcm_storage_bss_get
# WAS leaq	aead_aes_gcm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$18, %eax
	movl	$269487136, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_init(%rip), %rax
	leaq	.Laead_aes_gcm_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1250:

	.size	EVP_aead_aes_256_gcm_init, .-EVP_aead_aes_256_gcm_init
# WAS .section	.text.EVP_aead_aes_128_gcm_randnonce_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_gcm_randnonce_init, @function
.LEVP_aead_aes_128_gcm_randnonce_init_local_target:
EVP_aead_aes_128_gcm_randnonce_init:
.LFB1256:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_randnonce_storage_bss_get@PLT
	call	EVP_aead_aes_128_gcm_randnonce_storage_bss_get
# WAS leaq	aead_aes_gcm_seal_scatter_randnonce(%rip), %rsi
	leaq	.Laead_aes_gcm_seal_scatter_randnonce_local_target(%rip), %rsi
	leaq	9(%rax), %rdi
	movq	$0, 1(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
# WAS leaq	aead_aes_gcm_init_randnonce(%rip), %rax
	leaq	.Laead_aes_gcm_init_randnonce_local_target(%rip), %rax
	movb	$16, (%rdx)
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather_randnonce(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_randnonce_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1252380, 2(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movl	$1, 8(%rdx)
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1256:

	.size	EVP_aead_aes_128_gcm_randnonce_init, .-EVP_aead_aes_128_gcm_randnonce_init
# WAS .section	.text.EVP_aead_aes_256_gcm_randnonce_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_256_gcm_randnonce_init, @function
.LEVP_aead_aes_256_gcm_randnonce_init_local_target:
EVP_aead_aes_256_gcm_randnonce_init:
.LFB1259:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_randnonce_storage_bss_get@PLT
	call	EVP_aead_aes_256_gcm_randnonce_storage_bss_get
# WAS leaq	aead_aes_gcm_seal_scatter_randnonce(%rip), %rsi
	leaq	.Laead_aes_gcm_seal_scatter_randnonce_local_target(%rip), %rsi
	leaq	9(%rax), %rdi
	movq	$0, 1(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
# WAS leaq	aead_aes_gcm_init_randnonce(%rip), %rax
	leaq	.Laead_aes_gcm_init_randnonce_local_target(%rip), %rax
	movb	$32, (%rdx)
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather_randnonce(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_randnonce_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1317916, 2(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movl	$1, 8(%rdx)
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1259:

	.size	EVP_aead_aes_256_gcm_randnonce_init, .-EVP_aead_aes_256_gcm_randnonce_init
# WAS .section	.text.EVP_aead_aes_128_gcm_tls12_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_gcm_tls12_init, @function
.LEVP_aead_aes_128_gcm_tls12_init_local_target:
EVP_aead_aes_128_gcm_tls12_init:
.LFB1264:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_tls12_storage_bss_get@PLT
	call	EVP_aead_aes_128_gcm_tls12_storage_bss_get
# WAS leaq	aead_aes_gcm_tls12_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_tls12_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$21, %eax
	movl	$269487120, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_tls12_init(%rip), %rax
	leaq	.Laead_aes_gcm_tls12_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1264:

	.size	EVP_aead_aes_128_gcm_tls12_init, .-EVP_aead_aes_128_gcm_tls12_init
# WAS .section	.text.EVP_aead_aes_256_gcm_tls12_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_256_gcm_tls12_init, @function
.LEVP_aead_aes_256_gcm_tls12_init_local_target:
EVP_aead_aes_256_gcm_tls12_init:
.LFB1267:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_tls12_storage_bss_get@PLT
	call	EVP_aead_aes_256_gcm_tls12_storage_bss_get
# WAS leaq	aead_aes_gcm_tls12_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_tls12_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$22, %eax
	movl	$269487136, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_tls12_init(%rip), %rax
	leaq	.Laead_aes_gcm_tls12_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1267:

	.size	EVP_aead_aes_256_gcm_tls12_init, .-EVP_aead_aes_256_gcm_tls12_init
# WAS .section	.text.EVP_aead_aes_128_gcm_tls13_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_gcm_tls13_init, @function
.LEVP_aead_aes_128_gcm_tls13_init_local_target:
EVP_aead_aes_128_gcm_tls13_init:
.LFB1274:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_tls13_storage_bss_get@PLT
	call	EVP_aead_aes_128_gcm_tls13_storage_bss_get
# WAS leaq	aead_aes_gcm_tls13_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_tls13_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
# WAS leaq	aead_aes_gcm_tls13_serialize_state(%rip), %rsi
	leaq	.Laead_aes_gcm_tls13_serialize_state_local_target(%rip), %rsi
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$23, %eax
	movl	$269487120, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_tls13_init(%rip), %rax
	leaq	.Laead_aes_gcm_tls13_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
# WAS leaq	aead_aes_gcm_tls13_deserialize_state(%rip), %rax
	leaq	.Laead_aes_gcm_tls13_deserialize_state_local_target(%rip), %rax
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movq	%rax, %xmm2
	movups	%xmm0, 48(%rdx)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 80(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1274:

	.size	EVP_aead_aes_128_gcm_tls13_init, .-EVP_aead_aes_128_gcm_tls13_init
# WAS .section	.rodata.aead_aes_gcm_tls13_deserialize_state.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC27:

	.string	"/aws-lc/crypto/fipsmodule/cipher/e_aes.c"
# WAS .section	.text.aead_aes_gcm_tls13_deserialize_state,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls13_deserialize_state, @function
.Laead_aes_gcm_tls13_deserialize_state_local_target:
aead_aes_gcm_tls13_deserialize_state:
.LFB1273:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$536870928, %edx
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$72, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %rbx
	movq	%rbx, %rsi
# WAS call	CBS_get_asn1@PLT
	call	.Lbcm_redirector_CBS_get_asn1
	movl	$1662, %r8d
	testl	%eax, %eax
	je	.L449
	leaq	8(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	CBS_get_asn1_uint64@PLT
	call	.Lbcm_redirector_CBS_get_asn1_uint64
	testl	%eax, %eax
	je	.L438
	cmpq	$1, 8(%rsp)
	je	.L439
.L438:

	movl	$1669, %r8d
.L449:

	leaq	.LC27(%rip), %rcx
	movl	$141, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L435:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L450
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L439:

	.cfi_restore_state
	leaq	16(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	CBS_get_asn1_uint64@PLT
	call	.Lbcm_redirector_CBS_get_asn1_uint64
	movl	$1675, %r8d
	testl	%eax, %eax
	je	.L449
	movq	16(%rsp), %rax
	leaq	24(%rsp), %rsi
	movq	%rbx, %rdi
	movq	%rax, 552(%rbp)
# WAS call	CBS_get_asn1_uint64@PLT
	call	.Lbcm_redirector_CBS_get_asn1_uint64
	movl	$1682, %r8d
	testl	%eax, %eax
	je	.L449
	movq	24(%rsp), %rax
	leaq	4(%rsp), %rsi
	movq	%rbx, %rdi
	movq	%rax, 560(%rbp)
# WAS call	CBS_get_asn1_bool@PLT
	call	.Lbcm_redirector_CBS_get_asn1_bool
	movl	$1689, %r8d
	testl	%eax, %eax
	je	.L449
	movl	4(%rsp), %eax
	testl	%eax, %eax
	movl	$1, %eax
	setne	568(%rbp)
	jmp	.L435
.L450:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1273:

	.size	aead_aes_gcm_tls13_deserialize_state, .-aead_aes_gcm_tls13_deserialize_state
# WAS .section	.text.aead_aes_gcm_tls13_serialize_state,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls13_serialize_state, @function
.Laead_aes_gcm_tls13_serialize_state_local_target:
aead_aes_gcm_tls13_serialize_state:
.LFB1272:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	$536870928, %edx
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	movq	%rbx, %rdi
	subq	$64, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rsi
# WAS call	CBB_add_asn1@PLT
	call	.Lbcm_redirector_CBB_add_asn1
	testl	%eax, %eax
	je	.L454
	movl	$1, %esi
	movq	%rbp, %rdi
# WAS call	CBB_add_asn1_uint64@PLT
	call	.Lbcm_redirector_CBB_add_asn1_uint64
	testl	%eax, %eax
	jne	.L465
.L454:

	movl	$1630, %r8d
.L464:

	leaq	.LC27(%rip), %rcx
	movl	$65, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L451:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L466
	addq	$64, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L465:

	.cfi_restore_state
	movq	552(%r12), %rsi
	movq	%rbp, %rdi
# WAS call	CBB_add_asn1_uint64@PLT
	call	.Lbcm_redirector_CBB_add_asn1_uint64
	testl	%eax, %eax
	je	.L467
	movq	560(%r12), %rsi
	movq	%rbp, %rdi
# WAS call	CBB_add_asn1_uint64@PLT
	call	.Lbcm_redirector_CBB_add_asn1_uint64
	movl	$1640, %r8d
	testl	%eax, %eax
	je	.L464
	xorl	%esi, %esi
	movq	%rbp, %rdi
	cmpb	$0, 568(%r12)
	setne	%sil
# WAS call	CBB_add_asn1_bool@PLT
	call	.Lbcm_redirector_CBB_add_asn1_bool
	movl	$1645, %r8d
	testl	%eax, %eax
	je	.L464
	movq	%rbx, %rdi
# WAS call	CBB_flush@PLT
	call	.Lbcm_redirector_CBB_flush
	jmp	.L451
	.p2align 4,,10
	.p2align 3
.L467:

	movl	$1635, %r8d
	jmp	.L464
.L466:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1272:

	.size	aead_aes_gcm_tls13_serialize_state, .-aead_aes_gcm_tls13_serialize_state
# WAS .section	.text.EVP_aead_aes_256_gcm_tls13_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_256_gcm_tls13_init, @function
.LEVP_aead_aes_256_gcm_tls13_init_local_target:
EVP_aead_aes_256_gcm_tls13_init:
.LFB1277:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_tls13_storage_bss_get@PLT
	call	EVP_aead_aes_256_gcm_tls13_storage_bss_get
# WAS leaq	aead_aes_gcm_tls13_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_gcm_tls13_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
# WAS leaq	aead_aes_gcm_tls13_serialize_state(%rip), %rsi
	leaq	.Laead_aes_gcm_tls13_serialize_state_local_target(%rip), %rsi
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$24, %eax
	movl	$269487136, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_gcm_tls13_init(%rip), %rax
	leaq	.Laead_aes_gcm_tls13_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_gcm_cleanup(%rip), %rax
	leaq	.Laead_aes_gcm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_gcm_open_gather(%rip), %rax
	leaq	.Laead_aes_gcm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
# WAS leaq	aead_aes_gcm_tls13_deserialize_state(%rip), %rax
	leaq	.Laead_aes_gcm_tls13_deserialize_state_local_target(%rip), %rax
	movl	$1, 8(%rdx)
	punpcklqdq	%xmm1, %xmm0
	movq	%rax, %xmm2
	movups	%xmm0, 48(%rdx)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 80(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1277:

	.size	EVP_aead_aes_256_gcm_tls13_init, .-EVP_aead_aes_256_gcm_tls13_init
# WAS .section	.text.EVP_aead_aes_128_ccm_bluetooth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_ccm_bluetooth_init, @function
.LEVP_aead_aes_128_ccm_bluetooth_init_local_target:
EVP_aead_aes_128_ccm_bluetooth_init:
.LFB1293:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_bluetooth_storage_bss_get@PLT
	call	EVP_aead_aes_128_ccm_bluetooth_storage_bss_get
# WAS leaq	aead_aes_ccm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_ccm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$25, %eax
	movl	$67374352, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_ccm_bluetooth_init(%rip), %rax
	leaq	.Laead_aes_ccm_bluetooth_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_ccm_cleanup(%rip), %rax
	leaq	.Laead_aes_ccm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_ccm_open_gather(%rip), %rax
	leaq	.Laead_aes_ccm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1293:

	.size	EVP_aead_aes_128_ccm_bluetooth_init, .-EVP_aead_aes_128_ccm_bluetooth_init
# WAS .section	.text.EVP_aead_aes_128_ccm_bluetooth_8_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_ccm_bluetooth_8_init, @function
.LEVP_aead_aes_128_ccm_bluetooth_8_init_local_target:
EVP_aead_aes_128_ccm_bluetooth_8_init:
.LFB1297:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get@PLT
	call	EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get
# WAS leaq	aead_aes_ccm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_ccm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$26, %eax
	movl	$134745360, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_ccm_bluetooth_8_init(%rip), %rax
	leaq	.Laead_aes_ccm_bluetooth_8_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_ccm_cleanup(%rip), %rax
	leaq	.Laead_aes_ccm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_ccm_open_gather(%rip), %rax
	leaq	.Laead_aes_ccm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1297:

	.size	EVP_aead_aes_128_ccm_bluetooth_8_init, .-EVP_aead_aes_128_ccm_bluetooth_8_init
# WAS .section	.text.EVP_aead_aes_128_ccm_matter_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aead_aes_128_ccm_matter_init, @function
.LEVP_aead_aes_128_ccm_matter_init_local_target:
EVP_aead_aes_128_ccm_matter_init:
.LFB1301:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_matter_storage_bss_get@PLT
	call	EVP_aead_aes_128_ccm_matter_storage_bss_get
# WAS leaq	aead_aes_ccm_seal_scatter(%rip), %rsi
	leaq	.Laead_aes_ccm_seal_scatter_local_target(%rip), %rsi
	leaq	14(%rax), %rdi
	movq	$0, 6(%rax)
	movq	%rax, %rdx
	movq	%rsi, %xmm0
	andq	$-8, %rdi
	movq	$0, 88(%rax)
	subl	%edi, %eax
	leal	96(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	movl	$27, %eax
	movl	$269487376, (%rdx)
	movw	%ax, 4(%rdx)
# WAS leaq	aead_aes_ccm_matter_init(%rip), %rax
	leaq	.Laead_aes_ccm_matter_init_local_target(%rip), %rax
	movq	%rax, 16(%rdx)
# WAS leaq	aead_aes_ccm_cleanup(%rip), %rax
	leaq	.Laead_aes_ccm_cleanup_local_target(%rip), %rax
	movq	%rax, 32(%rdx)
# WAS leaq	aead_aes_ccm_open_gather(%rip), %rax
	leaq	.Laead_aes_ccm_open_gather_local_target(%rip), %rax
	movq	%rax, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 48(%rdx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1301:

	.size	EVP_aead_aes_128_ccm_matter_init, .-EVP_aead_aes_128_ccm_matter_init
# WAS .section	.text.EVP_aes_128_ccm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_128_ccm_init, @function
.LEVP_aes_128_ccm_init_local_target:
EVP_aes_128_ccm_init:
.LFB1309:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ccm_storage_bss_get@PLT
	call	EVP_aes_128_ccm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	cipher_aes_ccm_cipher(%rip), %rdx
	leaq	.Lcipher_aes_ccm_cipher_local_target(%rip), %rdx
# WAS leaq	cipher_aes_ccm_init(%rip), %rcx
	leaq	.Lcipher_aes_ccm_init_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
# WAS leaq	cipher_aes_ccm_ctrl(%rip), %rsi
	leaq	.Lcipher_aes_ccm_ctrl_local_target(%rip), %rsi
	movups	%xmm0, 40(%rax)
	movdqa	.LC31(%rip), %xmm0
	movl	$896, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$8072, 20(%rax)
	movq	%rsi, 56(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1309:

	.size	EVP_aes_128_ccm_init, .-EVP_aes_128_ccm_init
# WAS .section	.text.EVP_aes_192_ccm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_192_ccm_init, @function
.LEVP_aes_192_ccm_init_local_target:
EVP_aes_192_ccm_init:
.LFB1312:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ccm_storage_bss_get@PLT
	call	EVP_aes_192_ccm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	cipher_aes_ccm_cipher(%rip), %rdx
	leaq	.Lcipher_aes_ccm_cipher_local_target(%rip), %rdx
# WAS leaq	cipher_aes_ccm_init(%rip), %rcx
	leaq	.Lcipher_aes_ccm_init_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
# WAS leaq	cipher_aes_ccm_ctrl(%rip), %rsi
	leaq	.Lcipher_aes_ccm_ctrl_local_target(%rip), %rsi
	movups	%xmm0, 40(%rax)
	movdqa	.LC32(%rip), %xmm0
	movl	$896, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$8072, 20(%rax)
	movq	%rsi, 56(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1312:

	.size	EVP_aes_192_ccm_init, .-EVP_aes_192_ccm_init
# WAS .section	.text.EVP_aes_256_ccm_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_aes_256_ccm_init, @function
.LEVP_aes_256_ccm_init_local_target:
EVP_aes_256_ccm_init:
.LFB1315:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ccm_storage_bss_get@PLT
	call	EVP_aes_256_ccm_storage_bss_get
	pxor	%xmm0, %xmm0
# WAS leaq	cipher_aes_ccm_cipher(%rip), %rdx
	leaq	.Lcipher_aes_ccm_cipher_local_target(%rip), %rdx
# WAS leaq	cipher_aes_ccm_init(%rip), %rcx
	leaq	.Lcipher_aes_ccm_init_local_target(%rip), %rcx
	movups	%xmm0, 24(%rax)
	movq	%rdx, %xmm1
# WAS leaq	cipher_aes_ccm_ctrl(%rip), %rsi
	leaq	.Lcipher_aes_ccm_ctrl_local_target(%rip), %rsi
	movups	%xmm0, 40(%rax)
	movdqa	.LC33(%rip), %xmm0
	movl	$896, (%rax)
	movups	%xmm0, 4(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movl	$8072, 20(%rax)
	movq	%rsi, 56(%rax)
	movups	%xmm0, 32(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1315:

	.size	EVP_aes_256_ccm_init, .-EVP_aes_256_ccm_init
# WAS .section	.rodata.handle_cpu_env.str1.1,"aMS",@progbits,1
.text
.LC34:

	.string	"%lx"
.LC35:

	.string	"%lu"
# WAS .section	.rodata.handle_cpu_env.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC36:

	.string	"Fatal Error: HW capability found: 0x%02X 0x%02X, but HW capability requested: 0x%02X 0x%02X.\n"
# WAS .section	.text.handle_cpu_env,"ax",@progbits
.text
	.p2align 4
	.type	handle_cpu_env, @function
.Lhandle_cpu_env_local_target:
handle_cpu_env:
.LFB1320:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movzbl	(%rsi), %ebp
	movl	(%rbx), %r12d
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movl	4(%rbx), %r13d
	movq	%rsp, %rdx
	movl	%ebp, %eax
	andl	$-3, %eax
	cmpb	$124, %al
	sete	%al
	movzbl	%al, %eax
	leaq	(%rsi,%rax), %rdi
	cmpb	$48, (%rdi)
	je	.L498
.L483:

	leaq	.LC35(%rip), %rsi
	xorl	%eax, %eax
# WAS call	__isoc23_sscanf@PLT
	call	.Lbcm_redirector___isoc23_sscanf
.L484:

	testl	%eax, %eax
	je	.L482
	movq	(%rsp), %r9
	movq	%r9, %rdx
	shrq	$32, %rdx
	cmpb	$126, %bpl
	je	.L486
	movl	%r12d, %eax
	orl	%r13d, %eax
	je	.L487
	movl	%r12d, %eax
	movl	%r13d, %ecx
	orl	$1073741824, %eax
	notl	%ecx
	notl	%eax
	andl	%edx, %ecx
	andl	%r9d, %eax
	orl	%ecx, %eax
	jne	.L499
.L487:

	cmpb	$124, %bpl
	je	.L500
	movq	%r9, (%rbx)
.L482:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L501
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L486:

	.cfi_restore_state
	movq	(%rbx), %xmm1
	movq	%r9, %xmm0
	pandn	%xmm1, %xmm0
	movq	%xmm0, (%rbx)
	jmp	.L482
	.p2align 4,,10
	.p2align 3
.L498:

	cmpb	$120, 1(%rsi,%rax)
	jne	.L483
	leaq	2(%rsi,%rax), %rdi
	leaq	.LC34(%rip), %rsi
	xorl	%eax, %eax
# WAS call	__isoc23_sscanf@PLT
	call	.Lbcm_redirector___isoc23_sscanf
	jmp	.L484
	.p2align 4,,10
	.p2align 3
.L500:

	movq	(%rbx), %xmm0
	movq	%r9, %xmm2
	por	%xmm2, %xmm0
	movq	%xmm0, (%rbx)
	jmp	.L482
.L501:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L499:

	pushq	%rax
	.cfi_def_cfa_offset 72
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	%r13d, %r8d
	movl	%r12d, %ecx
	pushq	%rdx
	.cfi_def_cfa_offset 80
	movl	$2, %esi
	leaq	.LC36(%rip), %rdx
	movq	(%rax), %rdi
	xorl	%eax, %eax
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1320:

	.size	handle_cpu_env, .-handle_cpu_env
# WAS .section	.text.EVP_md4_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_md4_init, @function
.LEVP_md4_init_local_target:
EVP_md4_init:
.LFB1635:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md4_storage_bss_get@PLT
	call	EVP_md4_storage_bss_get
# WAS leaq	md4_update(%rip), %rdx
	leaq	.Lmd4_update_local_target(%rip), %rdx
# WAS leaq	md4_init(%rip), %rcx
	leaq	.Lmd4_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC39(%rip), %rdx
# WAS leaq	md4_final(%rip), %rsi
	leaq	.Lmd4_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$257, (%rax)
	movq	$16, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1635:

	.size	EVP_md4_init, .-EVP_md4_init
# WAS .section	.text.EVP_md5_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_md5_init, @function
.LEVP_md5_init_local_target:
EVP_md5_init:
.LFB1641:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md5_storage_bss_get@PLT
	call	EVP_md5_storage_bss_get
# WAS leaq	md5_update(%rip), %rdx
	leaq	.Lmd5_update_local_target(%rip), %rdx
# WAS leaq	md5_init(%rip), %rcx
	leaq	.Lmd5_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC39(%rip), %rdx
# WAS leaq	md5_final(%rip), %rsi
	leaq	.Lmd5_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$4, (%rax)
	movq	$16, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1641:

	.size	EVP_md5_init, .-EVP_md5_init
# WAS .section	.text.EVP_ripemd160_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_ripemd160_init, @function
.LEVP_ripemd160_init_local_target:
EVP_ripemd160_init:
.LFB1647:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_ripemd160_storage_bss_get@PLT
	call	EVP_ripemd160_storage_bss_get
# WAS leaq	ripemd160_update(%rip), %rdx
	leaq	.Lripemd160_update_local_target(%rip), %rdx
# WAS leaq	ripemd160_init(%rip), %rcx
	leaq	.Lripemd160_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC41(%rip), %rdx
# WAS leaq	ripemd160_final(%rip), %rsi
	leaq	.Lripemd160_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$117, (%rax)
	movq	$20, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1647:

	.size	EVP_ripemd160_init, .-EVP_ripemd160_init
# WAS .section	.text.ripemd160_final,"ax",@progbits
.text
	.p2align 4
	.type	ripemd160_final, @function
.Lripemd160_final_local_target:
ripemd160_final:
.LFB1646:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	RIPEMD160_Final@PLT
	jmp	.Lbcm_redirector_RIPEMD160_Final
	.cfi_endproc
.LFE1646:

	.size	ripemd160_final, .-ripemd160_final
# WAS .section	.text.ripemd160_update,"ax",@progbits
.text
	.p2align 4
	.type	ripemd160_update, @function
.Lripemd160_update_local_target:
ripemd160_update:
.LFB1645:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	RIPEMD160_Update@PLT
	jmp	.Lbcm_redirector_RIPEMD160_Update
	.cfi_endproc
.LFE1645:

	.size	ripemd160_update, .-ripemd160_update
# WAS .section	.text.ripemd160_init,"ax",@progbits
.text
	.p2align 4
	.type	ripemd160_init, @function
.Lripemd160_init_local_target:
ripemd160_init:
.LFB1644:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	RIPEMD160_Init@PLT
	jmp	.Lbcm_redirector_RIPEMD160_Init
	.cfi_endproc
.LFE1644:

	.size	ripemd160_init, .-ripemd160_init
# WAS .section	.text.EVP_sha1_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha1_init, @function
.LEVP_sha1_init_local_target:
EVP_sha1_init:
.LFB1653:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha1_storage_bss_get@PLT
	call	EVP_sha1_storage_bss_get
# WAS leaq	sha1_update(%rip), %rdx
	leaq	.Lsha1_update_local_target(%rip), %rdx
# WAS leaq	sha1_init(%rip), %rcx
	leaq	.Lsha1_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC41(%rip), %rdx
# WAS leaq	sha1_final(%rip), %rsi
	leaq	.Lsha1_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$64, (%rax)
	movq	$20, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1653:

	.size	EVP_sha1_init, .-EVP_sha1_init
# WAS .section	.text.EVP_sha224_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha224_init, @function
.LEVP_sha224_init_local_target:
EVP_sha224_init:
.LFB1659:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha224_storage_bss_get@PLT
	call	EVP_sha224_storage_bss_get
# WAS leaq	sha224_update(%rip), %rdx
	leaq	.Lsha224_update_local_target(%rip), %rdx
# WAS leaq	sha224_init(%rip), %rcx
	leaq	.Lsha224_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC43(%rip), %rdx
# WAS leaq	sha224_final(%rip), %rsi
	leaq	.Lsha224_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$675, (%rax)
	movq	$28, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1659:

	.size	EVP_sha224_init, .-EVP_sha224_init
# WAS .section	.text.EVP_sha256_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha256_init, @function
.LEVP_sha256_init_local_target:
EVP_sha256_init:
.LFB1665:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha256_storage_bss_get@PLT
	call	EVP_sha256_storage_bss_get
# WAS leaq	sha256_update(%rip), %rdx
	leaq	.Lsha256_update_local_target(%rip), %rdx
# WAS leaq	sha256_init(%rip), %rcx
	leaq	.Lsha256_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC43(%rip), %rdx
# WAS leaq	sha256_final(%rip), %rsi
	leaq	.Lsha256_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$672, (%rax)
	movq	$32, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1665:

	.size	EVP_sha256_init, .-EVP_sha256_init
# WAS .section	.text.EVP_sha384_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha384_init, @function
.LEVP_sha384_init_local_target:
EVP_sha384_init:
.LFB1671:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha384_storage_bss_get@PLT
	call	EVP_sha384_storage_bss_get
# WAS leaq	sha384_update(%rip), %rdx
	leaq	.Lsha384_update_local_target(%rip), %rdx
# WAS leaq	sha384_init(%rip), %rcx
	leaq	.Lsha384_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC46(%rip), %rdx
# WAS leaq	sha384_final(%rip), %rsi
	leaq	.Lsha384_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$673, (%rax)
	movq	$48, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1671:

	.size	EVP_sha384_init, .-EVP_sha384_init
# WAS .section	.text.EVP_sha512_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha512_init, @function
.LEVP_sha512_init_local_target:
EVP_sha512_init:
.LFB1677:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_storage_bss_get@PLT
	call	EVP_sha512_storage_bss_get
# WAS leaq	sha512_update(%rip), %rdx
	leaq	.Lsha512_update_local_target(%rip), %rdx
# WAS leaq	sha512_init(%rip), %rcx
	leaq	.Lsha512_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC46(%rip), %rdx
# WAS leaq	sha512_final(%rip), %rsi
	leaq	.Lsha512_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$674, (%rax)
	movq	$64, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1677:

	.size	EVP_sha512_init, .-EVP_sha512_init
# WAS .section	.text.EVP_sha512_224_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha512_224_init, @function
.LEVP_sha512_224_init_local_target:
EVP_sha512_224_init:
.LFB1683:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_224_storage_bss_get@PLT
	call	EVP_sha512_224_storage_bss_get
# WAS leaq	sha512_224_update(%rip), %rdx
	leaq	.Lsha512_224_update_local_target(%rip), %rdx
# WAS leaq	sha512_224_init(%rip), %rcx
	leaq	.Lsha512_224_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC46(%rip), %rdx
# WAS leaq	sha512_224_final(%rip), %rsi
	leaq	.Lsha512_224_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$978, (%rax)
	movq	$28, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1683:

	.size	EVP_sha512_224_init, .-EVP_sha512_224_init
# WAS .section	.text.EVP_sha512_256_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha512_256_init, @function
.LEVP_sha512_256_init_local_target:
EVP_sha512_256_init:
.LFB1689:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_256_storage_bss_get@PLT
	call	EVP_sha512_256_storage_bss_get
# WAS leaq	sha512_256_update(%rip), %rdx
	leaq	.Lsha512_256_update_local_target(%rip), %rdx
# WAS leaq	sha512_256_init(%rip), %rcx
	leaq	.Lsha512_256_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC46(%rip), %rdx
# WAS leaq	sha512_256_final(%rip), %rsi
	leaq	.Lsha512_256_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$962, (%rax)
	movq	$32, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1689:

	.size	EVP_sha512_256_init, .-EVP_sha512_256_init
# WAS .section	.text.EVP_sha3_224_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha3_224_init, @function
.LEVP_sha3_224_init_local_target:
EVP_sha3_224_init:
.LFB1695:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_224_storage_bss_get@PLT
	call	EVP_sha3_224_storage_bss_get
# WAS leaq	sha3_224_update(%rip), %rdx
	leaq	.Lsha3_224_update_local_target(%rip), %rdx
# WAS leaq	sha3_224_init(%rip), %rcx
	leaq	.Lsha3_224_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC48(%rip), %rdx
# WAS leaq	sha3_224_final(%rip), %rsi
	leaq	.Lsha3_224_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$965, (%rax)
	movq	$28, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1695:

	.size	EVP_sha3_224_init, .-EVP_sha3_224_init
# WAS .section	.text.EVP_sha3_256_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha3_256_init, @function
.LEVP_sha3_256_init_local_target:
EVP_sha3_256_init:
.LFB1701:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_256_storage_bss_get@PLT
	call	EVP_sha3_256_storage_bss_get
# WAS leaq	sha3_256_update(%rip), %rdx
	leaq	.Lsha3_256_update_local_target(%rip), %rdx
# WAS leaq	sha3_256_init(%rip), %rcx
	leaq	.Lsha3_256_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC49(%rip), %rdx
# WAS leaq	sha3_256_final(%rip), %rsi
	leaq	.Lsha3_256_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$966, (%rax)
	movq	$32, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1701:

	.size	EVP_sha3_256_init, .-EVP_sha3_256_init
# WAS .section	.text.EVP_sha3_384_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha3_384_init, @function
.LEVP_sha3_384_init_local_target:
EVP_sha3_384_init:
.LFB1707:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_384_storage_bss_get@PLT
	call	EVP_sha3_384_storage_bss_get
# WAS leaq	sha3_384_update(%rip), %rdx
	leaq	.Lsha3_384_update_local_target(%rip), %rdx
# WAS leaq	sha3_384_init(%rip), %rcx
	leaq	.Lsha3_384_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC50(%rip), %rdx
# WAS leaq	sha3_384_final(%rip), %rsi
	leaq	.Lsha3_384_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$967, (%rax)
	movq	$48, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1707:

	.size	EVP_sha3_384_init, .-EVP_sha3_384_init
# WAS .section	.text.EVP_sha3_512_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_sha3_512_init, @function
.LEVP_sha3_512_init_local_target:
EVP_sha3_512_init:
.LFB1713:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_512_storage_bss_get@PLT
	call	EVP_sha3_512_storage_bss_get
# WAS leaq	sha3_512_update(%rip), %rdx
	leaq	.Lsha3_512_update_local_target(%rip), %rdx
# WAS leaq	sha3_512_init(%rip), %rcx
	leaq	.Lsha3_512_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC51(%rip), %rdx
# WAS leaq	sha3_512_final(%rip), %rsi
	leaq	.Lsha3_512_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$968, (%rax)
	movq	$64, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1713:

	.size	EVP_sha3_512_init, .-EVP_sha3_512_init
# WAS .section	.text.EVP_shake128_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_shake128_init, @function
.LEVP_shake128_init_local_target:
EVP_shake128_init:
.LFB1719:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_shake128_storage_bss_get@PLT
	call	EVP_shake128_storage_bss_get
	movq	.LC52(%rip), %rdx
# WAS leaq	shake128_init(%rip), %rcx
	leaq	.Lshake128_init_local_target(%rip), %rcx
# WAS leaq	shake128_final(%rip), %rsi
	leaq	.Lshake128_final_local_target(%rip), %rsi
	movq	%rcx, %xmm0
	movl	$979, (%rax)
	movq	%rdx, 4(%rax)
# WAS leaq	shake128_update(%rip), %rdx
	leaq	.Lshake128_update_local_target(%rip), %rdx
	movq	%rdx, %xmm1
	movq	.LC53(%rip), %rdx
	movq	$0, 32(%rax)
	punpcklqdq	%xmm1, %xmm0
	movq	%rsi, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1719:

	.size	EVP_shake128_init, .-EVP_shake128_init
# WAS .section	.text.EVP_shake256_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_shake256_init, @function
.LEVP_shake256_init_local_target:
EVP_shake256_init:
.LFB1725:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_shake256_storage_bss_get@PLT
	call	EVP_shake256_storage_bss_get
	movq	.LC52(%rip), %rdx
# WAS leaq	shake256_init(%rip), %rcx
	leaq	.Lshake256_init_local_target(%rip), %rcx
# WAS leaq	shake256_finalXOF(%rip), %rsi
	leaq	.Lshake256_finalXOF_local_target(%rip), %rsi
	movq	%rcx, %xmm0
	movl	$980, (%rax)
	movq	%rdx, 4(%rax)
# WAS leaq	shake256_update(%rip), %rdx
	leaq	.Lshake256_update_local_target(%rip), %rdx
	movq	%rdx, %xmm1
	movq	.LC49(%rip), %rdx
	movq	$0, 32(%rax)
	punpcklqdq	%xmm1, %xmm0
	movq	%rsi, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1725:

	.size	EVP_shake256_init, .-EVP_shake256_init
# WAS .section	.text.EVP_md5_sha1_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_md5_sha1_init, @function
.LEVP_md5_sha1_init_local_target:
EVP_md5_sha1_init:
.LFB1731:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md5_sha1_storage_bss_get@PLT
	call	EVP_md5_sha1_storage_bss_get
# WAS leaq	md5_sha1_update(%rip), %rdx
	leaq	.Lmd5_sha1_update_local_target(%rip), %rdx
# WAS leaq	md5_sha1_init(%rip), %rcx
	leaq	.Lmd5_sha1_init_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
	movq	.LC55(%rip), %rdx
# WAS leaq	md5_sha1_final(%rip), %rsi
	leaq	.Lmd5_sha1_final_local_target(%rip), %rsi
	punpcklqdq	%xmm1, %xmm0
	movl	$114, (%rax)
	movq	$36, 4(%rax)
	movq	%rsi, 32(%rax)
	movq	$0, 48(%rax)
	movq	%rdx, 40(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1731:

	.size	EVP_md5_sha1_init, .-EVP_md5_sha1_init
# WAS .section	.text.EC_GFp_mont_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_mont_method_init, @function
.LEC_GFp_mont_method_init_local_target:
EC_GFp_mont_method_init:
.LFB1888:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_mont_method_storage_bss_get@PLT
	call	EC_GFp_mont_method_storage_bss_get
# WAS leaq	ec_GFp_mont_jacobian_to_affine_batch(%rip), %rdx
	leaq	.Lec_GFp_mont_jacobian_to_affine_batch_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_point_get_affine_coordinates(%rip), %rcx
	leaq	.Lec_GFp_mont_point_get_affine_coordinates_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
# WAS leaq	ec_GFp_mont_dbl(%rip), %rdx
	leaq	.Lec_GFp_mont_dbl_local_target(%rip), %rdx
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ec_GFp_mont_add(%rip), %rsi
	leaq	.Lec_GFp_mont_add_local_target(%rip), %rsi
	movq	%rdx, %xmm2
	movups	%xmm0, (%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_mont_mul_base(%rip), %rdx
	leaq	.Lec_GFp_mont_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_mul(%rip), %rdi
	leaq	.Lec_GFp_mont_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ec_GFp_mont_mul_public_batch(%rip), %rsi
	leaq	.Lec_GFp_mont_mul_public_batch_local_target(%rip), %rsi
	movups	%xmm0, 16(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_init_precomp(%rip), %rdx
	leaq	.Lec_GFp_mont_init_precomp_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_mul_precomp(%rip), %rdi
	leaq	.Lec_GFp_mont_mul_precomp_local_target(%rip), %rdi
	punpcklqdq	%xmm3, %xmm0
	movq	%rdx, %xmm4
# WAS leaq	ec_GFp_mont_felem_mul(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_mul_local_target(%rip), %rdx
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_mont_mul_batch(%rip), %rcx
	leaq	.Lec_GFp_mont_mul_batch_local_target(%rip), %rcx
	movq	%rdx, %xmm5
	punpcklqdq	%xmm4, %xmm0
	movq	%rcx, 48(%rax)
# WAS leaq	ec_GFp_mont_felem_to_bytes(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_to_bytes_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_sqr(%rip), %rcx
	leaq	.Lec_GFp_mont_felem_sqr_local_target(%rip), %rcx
	movups	%xmm0, 64(%rax)
	movq	%rdi, %xmm0
	movq	%rdx, %xmm6
# WAS leaq	ec_GFp_mont_felem_from_bytes(%rip), %rsi
	leaq	.Lec_GFp_mont_felem_from_bytes_local_target(%rip), %rsi
	punpcklqdq	%xmm5, %xmm0
# WAS leaq	ec_GFp_mont_felem_reduce(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_reduce_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_exp(%rip), %rdi
	leaq	.Lec_GFp_mont_felem_exp_local_target(%rip), %rdi
	movups	%xmm0, 80(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm7
# WAS leaq	ec_simple_scalar_inv0_montgomery(%rip), %rdx
	leaq	.Lec_simple_scalar_inv0_montgomery_local_target(%rip), %rdx
	punpcklqdq	%xmm6, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ec_simple_scalar_to_montgomery_inv_vartime(%rip), %rcx
	leaq	.Lec_simple_scalar_to_montgomery_inv_vartime_local_target(%rip), %rcx
	movups	%xmm0, 96(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_mont_cmp_x_coordinate(%rip), %rdx
	leaq	.Lec_GFp_mont_cmp_x_coordinate_local_target(%rip), %rdx
	punpcklqdq	%xmm7, %xmm0
	movq	%rdx, %xmm2
	movups	%xmm0, 112(%rax)
	movq	%rdi, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 128(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 144(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1888:

	.size	EC_GFp_mont_method_init, .-EC_GFp_mont_method_init
# WAS .section	.text.EC_GFp_nistp224_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_nistp224_method_init, @function
.LEC_GFp_nistp224_method_init_local_target:
EC_GFp_nistp224_method_init:
.LFB1946:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp224_method_storage_bss_get@PLT
	call	EC_GFp_nistp224_method_storage_bss_get
# WAS leaq	ec_GFp_nistp224_dbl(%rip), %rdx
	leaq	.Lec_GFp_nistp224_dbl_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp224_add(%rip), %rsi
	leaq	.Lec_GFp_nistp224_add_local_target(%rip), %rsi
	movq	%rsi, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ec_GFp_nistp224_point_mul(%rip), %rdi
	leaq	.Lec_GFp_nistp224_point_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ec_GFp_nistp224_point_mul_base(%rip), %rdx
	leaq	.Lec_GFp_nistp224_point_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp224_felem_mul(%rip), %rsi
	leaq	.Lec_GFp_nistp224_felem_mul_local_target(%rip), %rsi
	movups	%xmm0, 16(%rax)
	movq	%rdx, %xmm2
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_nistp224_felem_sqr(%rip), %rdx
	leaq	.Lec_GFp_nistp224_felem_sqr_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ec_GFp_nistp224_point_get_affine_coordinates(%rip), %rcx
	leaq	.Lec_GFp_nistp224_point_get_affine_coordinates_local_target(%rip), %rcx
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_simple_felem_from_bytes(%rip), %rdx
	leaq	.Lec_GFp_simple_felem_from_bytes_local_target(%rip), %rdx
# WAS leaq	ec_GFp_simple_felem_to_bytes(%rip), %rdi
	leaq	.Lec_GFp_simple_felem_to_bytes_local_target(%rip), %rdi
	punpcklqdq	%xmm3, %xmm0
	movq	%rcx, (%rax)
	movq	%rdx, %xmm4
# WAS leaq	ec_GFp_nistp224_point_mul_public(%rip), %rcx
	leaq	.Lec_GFp_nistp224_point_mul_public_local_target(%rip), %rcx
	movups	%xmm0, 88(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_simple_scalar_to_montgomery_inv_vartime(%rip), %rdx
	leaq	.Lec_simple_scalar_to_montgomery_inv_vartime_local_target(%rip), %rdx
# WAS leaq	ec_GFp_simple_cmp_x_coordinate(%rip), %rsi
	leaq	.Lec_GFp_simple_cmp_x_coordinate_local_target(%rip), %rsi
	movq	%rcx, 56(%rax)
	punpcklqdq	%xmm4, %xmm0
# WAS leaq	ec_simple_scalar_inv0_montgomery(%rip), %rcx
	leaq	.Lec_simple_scalar_inv0_montgomery_local_target(%rip), %rcx
	movq	%rdx, %xmm5
	movups	%xmm0, 104(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm5, %xmm0
	movq	%rsi, 152(%rax)
	movups	%xmm0, 136(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1946:

	.size	EC_GFp_nistp224_method_init, .-EC_GFp_nistp224_method_init
# WAS .section	.text.p256_methods_init,"ax",@progbits
.text
	.p2align 4
	.type	p256_methods_init, @function
.Lp256_methods_init_local_target:
p256_methods_init:
.LFB1978:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	movdqa	.LC56(%rip), %xmm0
# WAS leaq	fiat_p256_sub(%rip), %rdx
	leaq	.Lfiat_p256_sub_local_target(%rip), %rdx
# WAS leaq	fiat_p256_add(%rip), %rcx
	leaq	.Lfiat_p256_add_local_target(%rip), %rcx
	movq	%rdx, %xmm1
# WAS leaq	fiat_p256_mul(%rip), %rsi
	leaq	.Lfiat_p256_mul_local_target(%rip), %rsi
# WAS leaq	fiat_p256_square(%rip), %rdx
	leaq	.Lfiat_p256_square_local_target(%rip), %rdx
	movups	%xmm0, (%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm2
# WAS leaq	fiat_p256_opp(%rip), %rdi
	leaq	.Lfiat_p256_opp_local_target(%rip), %rdi
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	fiat_p256_nz(%rip), %rdx
	leaq	.Lfiat_p256_nz_local_target(%rip), %rdx
# WAS leaq	fiat_p256_point_double(%rip), %rcx
	leaq	.Lfiat_p256_point_double_local_target(%rip), %rcx
	movups	%xmm0, 16(%rax)
	movq	%rsi, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	fiat_p256_point_add(%rip), %rdx
	leaq	.Lfiat_p256_point_add_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm4
	movups	%xmm0, 32(%rax)
	movq	%rdi, %xmm0
	punpcklqdq	%xmm3, %xmm0
	movups	%xmm0, 48(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm4, %xmm0
	movups	%xmm0, 64(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1978:

	.size	p256_methods_init, .-p256_methods_init
# WAS .section	.text.EC_GFp_nistp256_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_nistp256_method_init, @function
.LEC_GFp_nistp256_method_init_local_target:
EC_GFp_nistp256_method_init:
.LFB1990:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp256_method_storage_bss_get@PLT
	call	EC_GFp_nistp256_method_storage_bss_get
# WAS leaq	ec_GFp_nistp256_dbl(%rip), %rdx
	leaq	.Lec_GFp_nistp256_dbl_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp256_add(%rip), %rsi
	leaq	.Lec_GFp_nistp256_add_local_target(%rip), %rsi
	movq	%rsi, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ec_GFp_nistp256_point_mul(%rip), %rdi
	leaq	.Lec_GFp_nistp256_point_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ec_GFp_nistp256_point_mul_base(%rip), %rdx
	leaq	.Lec_GFp_nistp256_point_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_mul(%rip), %rsi
	leaq	.Lec_GFp_mont_felem_mul_local_target(%rip), %rsi
	movups	%xmm0, 16(%rax)
	movq	%rdx, %xmm2
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_felem_sqr(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_sqr_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ec_GFp_nistp256_point_get_affine_coordinates(%rip), %rcx
	leaq	.Lec_GFp_nistp256_point_get_affine_coordinates_local_target(%rip), %rcx
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_mont_felem_from_bytes(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_from_bytes_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_to_bytes(%rip), %rdi
	leaq	.Lec_GFp_mont_felem_to_bytes_local_target(%rip), %rdi
	punpcklqdq	%xmm3, %xmm0
	movq	%rcx, (%rax)
	movq	%rdx, %xmm4
# WAS leaq	ec_GFp_nistp256_point_mul_public(%rip), %rcx
	leaq	.Lec_GFp_nistp256_point_mul_public_local_target(%rip), %rcx
	movups	%xmm0, 88(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_felem_exp(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_exp_local_target(%rip), %rdx
# WAS leaq	ec_simple_scalar_inv0_montgomery(%rip), %rsi
	leaq	.Lec_simple_scalar_inv0_montgomery_local_target(%rip), %rsi
	movq	%rcx, 56(%rax)
	punpcklqdq	%xmm4, %xmm0
# WAS leaq	ec_GFp_mont_felem_reduce(%rip), %rcx
	leaq	.Lec_GFp_mont_felem_reduce_local_target(%rip), %rcx
	movq	%rdx, %xmm5
	movups	%xmm0, 104(%rax)
	movq	%rcx, %xmm0
# WAS leaq	ec_simple_scalar_to_montgomery_inv_vartime(%rip), %rdx
	leaq	.Lec_simple_scalar_to_montgomery_inv_vartime_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp256_cmp_x_coordinate(%rip), %rdi
	leaq	.Lec_GFp_nistp256_cmp_x_coordinate_local_target(%rip), %rdi
	punpcklqdq	%xmm5, %xmm0
	movq	%rdx, %xmm6
	movq	%rdi, 152(%rax)
	movups	%xmm0, 120(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm6, %xmm0
	movups	%xmm0, 136(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1990:

	.size	EC_GFp_nistp256_method_init, .-EC_GFp_nistp256_method_init
# WAS .section	.text.EC_GFp_nistz256_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_nistz256_method_init, @function
.LEC_GFp_nistz256_method_init_local_target:
EC_GFp_nistz256_method_init:
.LFB2011:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistz256_method_storage_bss_get@PLT
	call	EC_GFp_nistz256_method_storage_bss_get
# WAS leaq	ecp_nistz256_dbl(%rip), %rdx
	leaq	.Lecp_nistz256_dbl_local_target(%rip), %rdx
# WAS leaq	ecp_nistz256_add(%rip), %rsi
	leaq	.Lecp_nistz256_add_local_target(%rip), %rsi
	movq	%rsi, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ecp_nistz256_point_mul(%rip), %rdi
	leaq	.Lecp_nistz256_point_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ecp_nistz256_point_mul_base(%rip), %rdx
	leaq	.Lecp_nistz256_point_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_mul(%rip), %rsi
	leaq	.Lec_GFp_mont_felem_mul_local_target(%rip), %rsi
	movups	%xmm0, 16(%rax)
	movq	%rdx, %xmm2
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_felem_sqr(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_sqr_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ecp_nistz256_get_affine(%rip), %rcx
	leaq	.Lecp_nistz256_get_affine_local_target(%rip), %rcx
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_mont_felem_from_bytes(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_from_bytes_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_to_bytes(%rip), %rdi
	leaq	.Lec_GFp_mont_felem_to_bytes_local_target(%rip), %rdi
	punpcklqdq	%xmm3, %xmm0
	movq	%rcx, (%rax)
	movq	%rdx, %xmm4
# WAS leaq	ecp_nistz256_points_mul_public(%rip), %rcx
	leaq	.Lecp_nistz256_points_mul_public_local_target(%rip), %rcx
	movups	%xmm0, 88(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_felem_exp(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_exp_local_target(%rip), %rdx
# WAS leaq	ecp_nistz256_inv0_mod_ord(%rip), %rsi
	leaq	.Lecp_nistz256_inv0_mod_ord_local_target(%rip), %rsi
	movq	%rcx, 56(%rax)
	punpcklqdq	%xmm4, %xmm0
# WAS leaq	ec_GFp_mont_felem_reduce(%rip), %rcx
	leaq	.Lec_GFp_mont_felem_reduce_local_target(%rip), %rcx
	movq	%rdx, %xmm5
	movups	%xmm0, 104(%rax)
	movq	%rcx, %xmm0
# WAS leaq	ecp_nistz256_scalar_to_montgomery_inv_vartime(%rip), %rdx
	leaq	.Lecp_nistz256_scalar_to_montgomery_inv_vartime_local_target(%rip), %rdx
# WAS leaq	ecp_nistz256_cmp_x_coordinate(%rip), %rdi
	leaq	.Lecp_nistz256_cmp_x_coordinate_local_target(%rip), %rdi
	punpcklqdq	%xmm5, %xmm0
	movq	%rdx, %xmm6
	movq	%rdi, 152(%rax)
	movups	%xmm0, 120(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm6, %xmm0
	movups	%xmm0, 136(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2011:

	.size	EC_GFp_nistz256_method_init, .-EC_GFp_nistz256_method_init
# WAS .section	.text.p384_methods_init,"ax",@progbits
.text
	.p2align 4
	.type	p384_methods_init, @function
.Lp384_methods_init_local_target:
p384_methods_init:
.LFB2023:

	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
# WAS leaq	p384_felem_nz(%rip), %rax
	leaq	.Lp384_felem_nz_local_target(%rip), %rax
# WAS movq	bignum_add_p384@GOTPCREL(%rip), %xmm1
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_add_p384_local_target(%rip), %rax
	movq %rax, %xmm1
	popq %rax
	leaq 128(%rsp), %rsp
# WAS movq	bignum_neg_p384@GOTPCREL(%rip), %xmm0
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_neg_p384_local_target(%rip), %rax
	movq %rax, %xmm0
	popq %rax
	leaq 128(%rsp), %rsp
	movq	%rax, %xmm3
# WAS movhps	bignum_sub_p384@GOTPCREL(%rip), %xmm1
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_sub_p384_local_target(%rip), %rax
	pushq %rax
	movhps (%rsp), %xmm1
	leaq 8(%rsp), %rsp
	popq %rax
	leaq 128(%rsp), %rsp
	punpcklqdq	%xmm3, %xmm0
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm0, (%rsp)
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	movdqa	16(%rsp), %xmm1
	movdqa	(%rsp), %xmm0
# WAS leaq	bignum_montsqr_p384_selector(%rip), %rdx
	leaq	.Lbignum_montsqr_p384_selector_local_target(%rip), %rdx
	movq	%rdx, %xmm4
# WAS leaq	bignum_montmul_p384_selector(%rip), %rcx
	leaq	.Lbignum_montmul_p384_selector_local_target(%rip), %rcx
# WAS leaq	p384_point_add(%rip), %rdx
	leaq	.Lp384_point_add_local_target(%rip), %rdx
	movdqa	.LC57(%rip), %xmm2
# WAS leaq	p384_point_double(%rip), %rsi
	leaq	.Lp384_point_double_local_target(%rip), %rsi
	movups	%xmm1, 16(%rax)
	movq	%rdx, %xmm5
	movq	%rcx, %xmm1
	movups	%xmm0, 48(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm4, %xmm1
	punpcklqdq	%xmm5, %xmm0
	movups	%xmm2, (%rax)
	movups	%xmm1, 32(%rax)
	movups	%xmm0, 64(%rax)
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2023:

	.size	p384_methods_init, .-p384_methods_init
# WAS .section	.text.p384_felem_nz,"ax",@progbits
.text
	.p2align 4
	.type	p384_felem_nz, @function
.Lp384_felem_nz_local_target:
p384_felem_nz:
.LFB2014:

	.cfi_startproc
	endbr64
# WAS jmp	bignum_nonzero_6@PLT
	jmp	.Lbignum_nonzero_6_local_target
	.cfi_endproc
.LFE2014:

	.size	p384_felem_nz, .-p384_felem_nz
# WAS .section	.text.bignum_montsqr_p384_selector,"ax",@progbits
.text
	.p2align 4
	.type	bignum_montsqr_p384_selector, @function
.Lbignum_montsqr_p384_selector_local_target:
bignum_montsqr_p384_selector:
.LFB1436:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L555
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_montsqr_p384_alt@PLT
	jmp	.Lbignum_montsqr_p384_alt_local_target
	.p2align 4,,10
	.p2align 3
.L555:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_montsqr_p384@PLT
	jmp	.Lbignum_montsqr_p384_local_target
	.cfi_endproc
.LFE1436:

	.size	bignum_montsqr_p384_selector, .-bignum_montsqr_p384_selector
# WAS .section	.text.bignum_montmul_p384_selector,"ax",@progbits
.text
	.p2align 4
	.type	bignum_montmul_p384_selector, @function
.Lbignum_montmul_p384_selector_local_target:
bignum_montmul_p384_selector:
.LFB1435:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L559
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_montmul_p384_alt@PLT
	jmp	.Lbignum_montmul_p384_alt_local_target
	.p2align 4,,10
	.p2align 3
.L559:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_montmul_p384@PLT
	jmp	.Lbignum_montmul_p384_local_target
	.cfi_endproc
.LFE1435:

	.size	bignum_montmul_p384_selector, .-bignum_montmul_p384_selector
# WAS .section	.text.EC_GFp_nistp384_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_nistp384_method_init, @function
.LEC_GFp_nistp384_method_init_local_target:
EC_GFp_nistp384_method_init:
.LFB2036:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp384_method_storage_bss_get@PLT
	call	EC_GFp_nistp384_method_storage_bss_get
# WAS leaq	ec_GFp_mont_jacobian_to_affine_batch(%rip), %rdx
	leaq	.Lec_GFp_mont_jacobian_to_affine_batch_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp384_point_get_affine_coordinates(%rip), %rcx
	leaq	.Lec_GFp_nistp384_point_get_affine_coordinates_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
# WAS leaq	ec_GFp_nistp384_dbl(%rip), %rdx
	leaq	.Lec_GFp_nistp384_dbl_local_target(%rip), %rdx
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ec_GFp_nistp384_add(%rip), %rsi
	leaq	.Lec_GFp_nistp384_add_local_target(%rip), %rsi
	movq	%rdx, %xmm2
	movups	%xmm0, (%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_nistp384_point_mul_base(%rip), %rdx
	leaq	.Lec_GFp_nistp384_point_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp384_point_mul(%rip), %rdi
	leaq	.Lec_GFp_nistp384_point_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ec_GFp_mont_mul_batch(%rip), %rcx
	leaq	.Lec_GFp_mont_mul_batch_local_target(%rip), %rcx
	movups	%xmm0, 16(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_nistp384_point_mul_public(%rip), %rdx
	leaq	.Lec_GFp_nistp384_point_mul_public_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_mul_public_batch(%rip), %rsi
	leaq	.Lec_GFp_mont_mul_public_batch_local_target(%rip), %rsi
	punpcklqdq	%xmm3, %xmm0
	movq	%rdx, %xmm4
# WAS leaq	ec_GFp_mont_init_precomp(%rip), %rdx
	leaq	.Lec_GFp_mont_init_precomp_local_target(%rip), %rdx
	movups	%xmm0, 32(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm5
# WAS leaq	ec_GFp_mont_mul_precomp(%rip), %rdi
	leaq	.Lec_GFp_mont_mul_precomp_local_target(%rip), %rdi
	punpcklqdq	%xmm4, %xmm0
# WAS leaq	ec_GFp_mont_felem_mul(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_mul_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_sqr(%rip), %rcx
	leaq	.Lec_GFp_mont_felem_sqr_local_target(%rip), %rcx
	movups	%xmm0, 48(%rax)
	movq	%rsi, %xmm0
	movq	%rdx, %xmm6
# WAS leaq	ec_GFp_nistp384_mont_felem_to_bytes(%rip), %rdx
	leaq	.Lec_GFp_nistp384_mont_felem_to_bytes_local_target(%rip), %rdx
	punpcklqdq	%xmm5, %xmm0
	movq	%rdx, %xmm7
# WAS leaq	ec_GFp_nistp384_mont_felem_from_bytes(%rip), %rsi
	leaq	.Lec_GFp_nistp384_mont_felem_from_bytes_local_target(%rip), %rsi
	movups	%xmm0, 64(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_mont_felem_reduce(%rip), %rdx
	leaq	.Lec_GFp_mont_felem_reduce_local_target(%rip), %rdx
# WAS leaq	ec_GFp_mont_felem_exp(%rip), %rdi
	leaq	.Lec_GFp_mont_felem_exp_local_target(%rip), %rdi
	punpcklqdq	%xmm6, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ec_simple_scalar_inv0_montgomery(%rip), %rdx
	leaq	.Lec_simple_scalar_inv0_montgomery_local_target(%rip), %rdx
	movups	%xmm0, 80(%rax)
	movq	%rcx, %xmm0
	movq	%rdx, %xmm2
# WAS leaq	ec_simple_scalar_to_montgomery_inv_vartime(%rip), %rcx
	leaq	.Lec_simple_scalar_to_montgomery_inv_vartime_local_target(%rip), %rcx
	punpcklqdq	%xmm7, %xmm0
# WAS leaq	ec_GFp_nistp384_cmp_x_coordinate(%rip), %rdx
	leaq	.Lec_GFp_nistp384_cmp_x_coordinate_local_target(%rip), %rdx
	movups	%xmm0, 96(%rax)
	movq	%rsi, %xmm0
	movq	%rdx, %xmm3
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 112(%rax)
	movq	%rdi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 128(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm3, %xmm0
	movups	%xmm0, 144(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2036:

	.size	EC_GFp_nistp384_method_init, .-EC_GFp_nistp384_method_init
# WAS .section	.text.p521_methods_init,"ax",@progbits
.text
	.p2align 4
	.type	p521_methods_init, @function
.Lp521_methods_init_local_target:
p521_methods_init:
.LFB2047:

	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
# WAS leaq	p521_felem_nz(%rip), %rax
	leaq	.Lp521_felem_nz_local_target(%rip), %rax
# WAS movq	bignum_add_p521@GOTPCREL(%rip), %xmm1
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_add_p521_local_target(%rip), %rax
	movq %rax, %xmm1
	popq %rax
	leaq 128(%rsp), %rsp
# WAS movq	bignum_neg_p521@GOTPCREL(%rip), %xmm0
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_neg_p521_local_target(%rip), %rax
	movq %rax, %xmm0
	popq %rax
	leaq 128(%rsp), %rsp
	movq	%rax, %xmm3
# WAS movhps	bignum_sub_p521@GOTPCREL(%rip), %xmm1
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.Lbignum_sub_p521_local_target(%rip), %rax
	pushq %rax
	movhps (%rsp), %xmm1
	leaq 8(%rsp), %rsp
	popq %rax
	leaq 128(%rsp), %rsp
	punpcklqdq	%xmm3, %xmm0
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm0, (%rsp)
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	movdqa	16(%rsp), %xmm1
	movdqa	(%rsp), %xmm0
# WAS leaq	bignum_sqr_p521_selector(%rip), %rdx
	leaq	.Lbignum_sqr_p521_selector_local_target(%rip), %rdx
	movq	%rdx, %xmm4
# WAS leaq	bignum_mul_p521_selector(%rip), %rcx
	leaq	.Lbignum_mul_p521_selector_local_target(%rip), %rcx
# WAS leaq	p521_point_add(%rip), %rdx
	leaq	.Lp521_point_add_local_target(%rip), %rdx
	movdqa	.LC58(%rip), %xmm2
# WAS leaq	p521_point_double(%rip), %rsi
	leaq	.Lp521_point_double_local_target(%rip), %rsi
	movups	%xmm1, 16(%rax)
	movq	%rdx, %xmm5
	movq	%rcx, %xmm1
	movups	%xmm0, 48(%rax)
	movq	%rsi, %xmm0
	punpcklqdq	%xmm4, %xmm1
	punpcklqdq	%xmm5, %xmm0
	movups	%xmm2, (%rax)
	movups	%xmm1, 32(%rax)
	movups	%xmm0, 64(%rax)
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2047:

	.size	p521_methods_init, .-p521_methods_init
# WAS .section	.text.bignum_sqr_p521_selector,"ax",@progbits
.text
	.p2align 4
	.type	bignum_sqr_p521_selector, @function
.Lbignum_sqr_p521_selector_local_target:
bignum_sqr_p521_selector:
.LFB1439:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L567
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_sqr_p521_alt@PLT
	jmp	.Lbignum_sqr_p521_alt_local_target
	.p2align 4,,10
	.p2align 3
.L567:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_sqr_p521@PLT
	jmp	.Lbignum_sqr_p521_local_target
	.cfi_endproc
.LFE1439:

	.size	bignum_sqr_p521_selector, .-bignum_sqr_p521_selector
# WAS .section	.text.bignum_mul_p521_selector,"ax",@progbits
.text
	.p2align 4
	.type	bignum_mul_p521_selector, @function
.Lbignum_mul_p521_selector_local_target:
bignum_mul_p521_selector:
.LFB1438:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L571
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_mul_p521_alt@PLT
	jmp	.Lbignum_mul_p521_alt_local_target
	.p2align 4,,10
	.p2align 3
.L571:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bignum_mul_p521@PLT
	jmp	.Lbignum_mul_p521_local_target
	.cfi_endproc
.LFE1438:

	.size	bignum_mul_p521_selector, .-bignum_mul_p521_selector
# WAS .section	.text.EC_GFp_nistp521_method_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_GFp_nistp521_method_init, @function
.LEC_GFp_nistp521_method_init_local_target:
EC_GFp_nistp521_method_init:
.LFB2059:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp521_method_storage_bss_get@PLT
	call	EC_GFp_nistp521_method_storage_bss_get
# WAS leaq	ec_GFp_nistp521_dbl(%rip), %rdx
	leaq	.Lec_GFp_nistp521_dbl_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp521_add(%rip), %rsi
	leaq	.Lec_GFp_nistp521_add_local_target(%rip), %rsi
	movq	%rsi, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	ec_GFp_nistp521_point_mul(%rip), %rdi
	leaq	.Lec_GFp_nistp521_point_mul_local_target(%rip), %rdi
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ec_GFp_nistp521_point_mul_base(%rip), %rdx
	leaq	.Lec_GFp_nistp521_point_mul_base_local_target(%rip), %rdx
# WAS leaq	ec_GFp_nistp521_felem_mul(%rip), %rsi
	leaq	.Lec_GFp_nistp521_felem_mul_local_target(%rip), %rsi
	movups	%xmm0, 16(%rax)
	movq	%rdx, %xmm2
	movq	%rdi, %xmm0
# WAS leaq	ec_GFp_nistp521_felem_sqr(%rip), %rdx
	leaq	.Lec_GFp_nistp521_felem_sqr_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
	movq	%rdx, %xmm3
# WAS leaq	ec_GFp_nistp521_point_get_affine_coordinates(%rip), %rcx
	leaq	.Lec_GFp_nistp521_point_get_affine_coordinates_local_target(%rip), %rcx
	movups	%xmm0, 32(%rax)
	movq	%rsi, %xmm0
# WAS leaq	ec_GFp_simple_felem_from_bytes(%rip), %rdx
	leaq	.Lec_GFp_simple_felem_from_bytes_local_target(%rip), %rdx
# WAS leaq	ec_GFp_simple_felem_to_bytes(%rip), %rdi
	leaq	.Lec_GFp_simple_felem_to_bytes_local_target(%rip), %rdi
	punpcklqdq	%xmm3, %xmm0
	movq	%rcx, (%rax)
	movq	%rdx, %xmm4
# WAS leaq	ec_GFp_nistp521_point_mul_public(%rip), %rcx
	leaq	.Lec_GFp_nistp521_point_mul_public_local_target(%rip), %rcx
	movups	%xmm0, 88(%rax)
	movq	%rdi, %xmm0
# WAS leaq	ec_simple_scalar_to_montgomery_inv_vartime(%rip), %rdx
	leaq	.Lec_simple_scalar_to_montgomery_inv_vartime_local_target(%rip), %rdx
# WAS leaq	ec_GFp_simple_cmp_x_coordinate(%rip), %rsi
	leaq	.Lec_GFp_simple_cmp_x_coordinate_local_target(%rip), %rsi
	movq	%rcx, 56(%rax)
	punpcklqdq	%xmm4, %xmm0
# WAS leaq	ec_simple_scalar_inv0_montgomery(%rip), %rcx
	leaq	.Lec_simple_scalar_inv0_montgomery_local_target(%rip), %rcx
	movq	%rdx, %xmm5
	movups	%xmm0, 104(%rax)
	movq	%rcx, %xmm0
	punpcklqdq	%xmm5, %xmm0
	movq	%rsi, 152(%rax)
	movups	%xmm0, 136(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2059:

	.size	EC_GFp_nistp521_method_init, .-EC_GFp_nistp521_method_init
# WAS .section	.text.EVP_MD_pctx_ops_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_MD_pctx_ops_init, @function
.LEVP_MD_pctx_ops_init_local_target:
EVP_MD_pctx_ops_init:
.LFB2107:

	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
# WAS movq	EVP_PKEY_CTX_free@GOTPCREL(%rip), %xmm0
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.LEVP_PKEY_CTX_free_local_target(%rip), %rax
	movq %rax, %xmm0
	popq %rax
	leaq 128(%rsp), %rsp
# WAS movhps	EVP_PKEY_CTX_dup@GOTPCREL(%rip), %xmm0
	leaq -128(%rsp), %rsp
	pushq %rax
	leaq	.LEVP_PKEY_CTX_dup_local_target(%rip), %rax
	pushq %rax
	movhps (%rsp), %xmm0
	leaq 8(%rsp), %rsp
	popq %rax
	leaq 128(%rsp), %rsp
	movaps	%xmm0, (%rsp)
# WAS call	EVP_MD_pctx_ops_storage_bss_get@PLT
	call	EVP_MD_pctx_ops_storage_bss_get
	movdqa	(%rsp), %xmm0
	movups	%xmm0, (%rax)
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2107:

	.size	EVP_MD_pctx_ops_init, .-EVP_MD_pctx_ops_init
# WAS .section	.text.EVP_PKEY_ec_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_ec_pkey_meth_init, @function
.LEVP_PKEY_ec_pkey_meth_init_local_target:
EVP_PKEY_ec_pkey_meth_init:
.LFB2225:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_ec_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_ec_pkey_meth_storage_bss_get
# WAS leaq	pkey_ec_copy(%rip), %rdx
	leaq	.Lpkey_ec_copy_local_target(%rip), %rdx
# WAS leaq	pkey_ec_init(%rip), %rcx
	leaq	.Lpkey_ec_init_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	pkey_ec_cleanup(%rip), %rsi
	leaq	.Lpkey_ec_cleanup_local_target(%rip), %rsi
	movl	$408, (%rax)
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	pkey_ec_keygen(%rip), %rdx
	leaq	.Lpkey_ec_keygen_local_target(%rip), %rdx
# WAS leaq	pkey_ec_sign(%rip), %rdi
	leaq	.Lpkey_ec_sign_local_target(%rip), %rdi
	movq	$0, 40(%rax)
	movups	%xmm0, 8(%rax)
	movq	%rdx, %xmm2
	movq	%rsi, %xmm0
# WAS leaq	pkey_ec_verify(%rip), %rcx
	leaq	.Lpkey_ec_verify_local_target(%rip), %rcx
	movq	%rdi, 48(%rax)
	punpcklqdq	%xmm2, %xmm0
# WAS leaq	pkey_ec_derive(%rip), %rsi
	leaq	.Lpkey_ec_derive_local_target(%rip), %rsi
# WAS leaq	pkey_ec_paramgen(%rip), %rdi
	leaq	.Lpkey_ec_paramgen_local_target(%rip), %rdi
	movq	%rcx, 72(%rax)
# WAS leaq	pkey_ec_ctrl(%rip), %rdx
	leaq	.Lpkey_ec_ctrl_local_target(%rip), %rdx
# WAS leaq	pkey_ec_ctrl_str(%rip), %rcx
	leaq	.Lpkey_ec_ctrl_str_local_target(%rip), %rcx
	movq	$0, 56(%rax)
	movq	$0, 64(%rax)
	movq	$0, 80(%rax)
	movq	$0, 88(%rax)
	movq	$0, 96(%rax)
	movq	$0, 104(%rax)
	movq	%rsi, 112(%rax)
	movq	%rdi, 120(%rax)
	movq	%rdx, 128(%rax)
	movq	%rcx, 136(%rax)
	movups	%xmm0, 24(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2225:

	.size	EVP_PKEY_ec_pkey_meth_init, .-EVP_PKEY_ec_pkey_meth_init
# WAS .section	.text.EVP_PKEY_ed25519_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_ed25519_pkey_meth_init, @function
.LEVP_PKEY_ed25519_pkey_meth_init_local_target:
EVP_PKEY_ed25519_pkey_meth_init:
.LFB2234:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_ed25519_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_ed25519_pkey_meth_storage_bss_get
# WAS leaq	pkey_ed25519_copy(%rip), %rdx
	leaq	.Lpkey_ed25519_copy_local_target(%rip), %rdx
# WAS leaq	pkey_ed25519_keygen(%rip), %rcx
	leaq	.Lpkey_ed25519_keygen_local_target(%rip), %rcx
# WAS leaq	pkey_ed25519_sign_message(%rip), %rsi
	leaq	.Lpkey_ed25519_sign_message_local_target(%rip), %rsi
# WAS leaq	pkey_ed25519_verify_message(%rip), %rdi
	leaq	.Lpkey_ed25519_verify_message_local_target(%rip), %rdi
	movq	%rdx, 16(%rax)
	movl	$949, (%rax)
	movq	$0, 8(%rax)
	movq	$0, 24(%rax)
	movq	%rcx, 32(%rax)
	movq	$0, 40(%rax)
	movq	$0, 48(%rax)
	movq	%rsi, 56(%rax)
	movq	$0, 64(%rax)
	movq	$0, 72(%rax)
	movq	%rdi, 80(%rax)
	movq	$0, 88(%rax)
	movq	$0, 96(%rax)
	movq	$0, 104(%rax)
	movq	$0, 112(%rax)
	movq	$0, 120(%rax)
	movq	$0, 128(%rax)
	movq	$0, 136(%rax)
	movq	$0, 144(%rax)
	movq	$0, 152(%rax)
	movq	$0, 160(%rax)
	movq	$0, 168(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2234:

	.size	EVP_PKEY_ed25519_pkey_meth_init, .-EVP_PKEY_ed25519_pkey_meth_init
# WAS .section	.text.EVP_PKEY_hkdf_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_hkdf_pkey_meth_init, @function
.LEVP_PKEY_hkdf_pkey_meth_init_local_target:
EVP_PKEY_hkdf_pkey_meth_init:
.LFB2243:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_hkdf_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_hkdf_pkey_meth_storage_bss_get
# WAS leaq	pkey_hkdf_copy(%rip), %rdx
	leaq	.Lpkey_hkdf_copy_local_target(%rip), %rdx
# WAS leaq	pkey_hkdf_init(%rip), %rcx
	leaq	.Lpkey_hkdf_init_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	pkey_hkdf_cleanup(%rip), %rsi
	leaq	.Lpkey_hkdf_cleanup_local_target(%rip), %rsi
	movl	$969, (%rax)
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	pkey_hkdf_derive(%rip), %rdi
	leaq	.Lpkey_hkdf_derive_local_target(%rip), %rdi
	movq	%rsi, 24(%rax)
# WAS leaq	pkey_hkdf_ctrl(%rip), %rdx
	leaq	.Lpkey_hkdf_ctrl_local_target(%rip), %rdx
	movups	%xmm0, 8(%rax)
# WAS leaq	pkey_hkdf_ctrl_str(%rip), %rcx
	leaq	.Lpkey_hkdf_ctrl_str_local_target(%rip), %rcx
	pxor	%xmm0, %xmm0
	movq	%rdi, 112(%rax)
	movq	$0, 120(%rax)
	movq	%rdx, 128(%rax)
	movq	%rcx, 136(%rax)
	movups	%xmm0, 32(%rax)
	movups	%xmm0, 48(%rax)
	movups	%xmm0, 64(%rax)
	movups	%xmm0, 80(%rax)
	movups	%xmm0, 96(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2243:

	.size	EVP_PKEY_hkdf_pkey_meth_init, .-EVP_PKEY_hkdf_pkey_meth_init
# WAS .section	.text.EVP_PKEY_hmac_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_hmac_pkey_meth_init, @function
.LEVP_PKEY_hmac_pkey_meth_init_local_target:
EVP_PKEY_hmac_pkey_meth_init:
.LFB2255:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_hmac_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_hmac_pkey_meth_storage_bss_get
# WAS leaq	hmac_copy(%rip), %rdx
	leaq	.Lhmac_copy_local_target(%rip), %rdx
# WAS leaq	hmac_init(%rip), %rcx
	leaq	.Lhmac_init_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	hmac_cleanup(%rip), %rsi
	leaq	.Lhmac_cleanup_local_target(%rip), %rsi
	movl	$855, (%rax)
	punpcklqdq	%xmm1, %xmm0
	movq	%rsi, 24(%rax)
# WAS leaq	hmac_ctrl(%rip), %rdi
	leaq	.Lhmac_ctrl_local_target(%rip), %rdi
	movups	%xmm0, 8(%rax)
	pxor	%xmm0, %xmm0
	movq	%rdi, 128(%rax)
	movq	$0, 136(%rax)
	movups	%xmm0, 32(%rax)
	movups	%xmm0, 48(%rax)
	movups	%xmm0, 64(%rax)
	movups	%xmm0, 80(%rax)
	movups	%xmm0, 96(%rax)
	movups	%xmm0, 112(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2255:

	.size	EVP_PKEY_hmac_pkey_meth_init, .-EVP_PKEY_hmac_pkey_meth_init
# WAS .section	.text.EVP_PKEY_kem_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_kem_pkey_meth_init, @function
.LEVP_PKEY_kem_pkey_meth_init_local_target:
EVP_PKEY_kem_pkey_meth_init:
.LFB2267:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_kem_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_kem_pkey_meth_storage_bss_get
# WAS leaq	pkey_kem_init(%rip), %rdx
	leaq	.Lpkey_kem_init_local_target(%rip), %rdx
# WAS leaq	pkey_kem_cleanup(%rip), %rcx
	leaq	.Lpkey_kem_cleanup_local_target(%rip), %rcx
# WAS leaq	pkey_kem_keygen(%rip), %rsi
	leaq	.Lpkey_kem_keygen_local_target(%rip), %rsi
	movq	%rdx, 8(%rax)
# WAS leaq	pkey_kem_keygen_deterministic(%rip), %rdi
	leaq	.Lpkey_kem_keygen_deterministic_local_target(%rip), %rdi
	movq	%rcx, 24(%rax)
# WAS leaq	pkey_kem_encapsulate_deterministic(%rip), %rdx
	leaq	.Lpkey_kem_encapsulate_deterministic_local_target(%rip), %rdx
# WAS leaq	pkey_kem_encapsulate(%rip), %rcx
	leaq	.Lpkey_kem_encapsulate_local_target(%rip), %rcx
	movq	%rsi, 32(%rax)
# WAS leaq	pkey_kem_decapsulate(%rip), %rsi
	leaq	.Lpkey_kem_decapsulate_local_target(%rip), %rsi
	movl	$970, (%rax)
	movq	$0, 16(%rax)
	movq	$0, 40(%rax)
	movq	$0, 48(%rax)
	movq	$0, 56(%rax)
	movq	$0, 64(%rax)
	movq	$0, 72(%rax)
	movq	$0, 80(%rax)
	movq	$0, 88(%rax)
	movq	$0, 96(%rax)
	movq	$0, 104(%rax)
	movq	$0, 112(%rax)
	movq	$0, 120(%rax)
	movq	$0, 128(%rax)
	movq	$0, 136(%rax)
	movq	%rdi, 144(%rax)
	movq	%rdx, 152(%rax)
	movq	%rcx, 160(%rax)
	movq	%rsi, 168(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2267:

	.size	EVP_PKEY_kem_pkey_meth_init, .-EVP_PKEY_kem_pkey_meth_init
# WAS .section	.text.EVP_PKEY_rsa_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_rsa_pkey_meth_init, @function
.LEVP_PKEY_rsa_pkey_meth_init_local_target:
EVP_PKEY_rsa_pkey_meth_init:
.LFB2297:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_rsa_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_rsa_pkey_meth_storage_bss_get
# WAS leaq	pkey_rsa_copy(%rip), %rdx
	leaq	.Lpkey_rsa_copy_local_target(%rip), %rdx
# WAS leaq	pkey_rsa_init(%rip), %rcx
	leaq	.Lpkey_rsa_init_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	pkey_rsa_cleanup(%rip), %rsi
	leaq	.Lpkey_rsa_cleanup_local_target(%rip), %rsi
	movl	$6, (%rax)
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	pkey_rsa_keygen(%rip), %rdx
	leaq	.Lpkey_rsa_keygen_local_target(%rip), %rdx
# WAS leaq	pkey_rsa_sign(%rip), %rdi
	leaq	.Lpkey_rsa_sign_local_target(%rip), %rdi
	movq	$0, 40(%rax)
	movups	%xmm0, 8(%rax)
	movq	%rdx, %xmm2
	movq	%rsi, %xmm0
# WAS leaq	pkey_rsa_verify(%rip), %rcx
	leaq	.Lpkey_rsa_verify_local_target(%rip), %rcx
# WAS leaq	pkey_rsa_verify_recover(%rip), %rsi
	leaq	.Lpkey_rsa_verify_recover_local_target(%rip), %rsi
	movq	%rdi, 48(%rax)
	punpcklqdq	%xmm2, %xmm0
# WAS leaq	pkey_rsa_encrypt(%rip), %rdi
	leaq	.Lpkey_rsa_encrypt_local_target(%rip), %rdi
	movq	%rcx, 72(%rax)
# WAS leaq	pkey_rsa_decrypt(%rip), %rdx
	leaq	.Lpkey_rsa_decrypt_local_target(%rip), %rdx
# WAS leaq	pkey_rsa_ctrl(%rip), %rcx
	leaq	.Lpkey_rsa_ctrl_local_target(%rip), %rcx
	movq	%rsi, 88(%rax)
# WAS leaq	pkey_rsa_ctrl_str(%rip), %rsi
	leaq	.Lpkey_rsa_ctrl_str_local_target(%rip), %rsi
	movq	$0, 56(%rax)
	movq	$0, 64(%rax)
	movq	$0, 80(%rax)
	movq	%rdi, 96(%rax)
	movq	%rdx, 104(%rax)
	movq	$0, 112(%rax)
	movq	$0, 120(%rax)
	movq	%rcx, 128(%rax)
	movq	%rsi, 136(%rax)
	movups	%xmm0, 24(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2297:

	.size	EVP_PKEY_rsa_pkey_meth_init, .-EVP_PKEY_rsa_pkey_meth_init
# WAS .section	.text.EVP_PKEY_rsa_pss_pkey_meth_init,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_rsa_pss_pkey_meth_init, @function
.LEVP_PKEY_rsa_pss_pkey_meth_init_local_target:
EVP_PKEY_rsa_pss_pkey_meth_init:
.LFB2300:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get
# WAS leaq	pkey_rsa_copy(%rip), %rdx
	leaq	.Lpkey_rsa_copy_local_target(%rip), %rdx
# WAS leaq	pkey_rsa_init(%rip), %rcx
	leaq	.Lpkey_rsa_init_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
# WAS leaq	pkey_rsa_cleanup(%rip), %rsi
	leaq	.Lpkey_rsa_cleanup_local_target(%rip), %rsi
	movl	$912, (%rax)
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	pkey_rsa_keygen(%rip), %rdx
	leaq	.Lpkey_rsa_keygen_local_target(%rip), %rdx
# WAS leaq	pkey_pss_init_sign(%rip), %rdi
	leaq	.Lpkey_pss_init_sign_local_target(%rip), %rdi
	movq	$0, 56(%rax)
	movups	%xmm0, 8(%rax)
	movq	%rdx, %xmm2
	movq	%rsi, %xmm0
# WAS leaq	pkey_rsa_sign(%rip), %rdx
	leaq	.Lpkey_rsa_sign_local_target(%rip), %rdx
	punpcklqdq	%xmm2, %xmm0
# WAS leaq	pkey_pss_init_verify(%rip), %rcx
	leaq	.Lpkey_pss_init_verify_local_target(%rip), %rcx
	movq	%rdx, %xmm3
	movq	$0, 80(%rax)
	movups	%xmm0, 24(%rax)
	movq	%rdi, %xmm0
# WAS leaq	pkey_rsa_verify(%rip), %rsi
	leaq	.Lpkey_rsa_verify_local_target(%rip), %rsi
# WAS leaq	pkey_rsa_ctrl(%rip), %rdi
	leaq	.Lpkey_rsa_ctrl_local_target(%rip), %rdi
	movq	%rcx, 64(%rax)
	punpcklqdq	%xmm3, %xmm0
# WAS leaq	pkey_rsa_ctrl_str(%rip), %rcx
	leaq	.Lpkey_rsa_ctrl_str_local_target(%rip), %rcx
	movq	%rsi, 72(%rax)
	movq	$0, 88(%rax)
	movq	$0, 96(%rax)
	movq	$0, 104(%rax)
	movq	$0, 112(%rax)
	movq	$0, 120(%rax)
	movq	%rdi, 128(%rax)
	movq	%rcx, 136(%rax)
	movups	%xmm0, 40(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2300:

	.size	EVP_PKEY_rsa_pss_pkey_meth_init, .-EVP_PKEY_rsa_pss_pkey_meth_init
# WAS .section	.text.sskdf_variant_digest_init,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_digest_init, @function
.Lsskdf_variant_digest_init_local_target:
sskdf_variant_digest_init:
.LFB2391:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	sskdf_variant_digest_storage_bss_get@PLT
	call	sskdf_variant_digest_storage_bss_get
# WAS leaq	sskdf_variant_digest_compute(%rip), %rdx
	leaq	.Lsskdf_variant_digest_compute_local_target(%rip), %rdx
# WAS leaq	sskdf_variant_digest_output_size(%rip), %rcx
	leaq	.Lsskdf_variant_digest_output_size_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, (%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2391:

	.size	sskdf_variant_digest_init, .-sskdf_variant_digest_init
# WAS .section	.text.sskdf_variant_hmac_init,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_hmac_init, @function
.Lsskdf_variant_hmac_init_local_target:
sskdf_variant_hmac_init:
.LFB2398:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	sskdf_variant_hmac_storage_bss_get@PLT
	call	sskdf_variant_hmac_storage_bss_get
# WAS leaq	sskdf_variant_hmac_compute(%rip), %rdx
	leaq	.Lsskdf_variant_hmac_compute_local_target(%rip), %rdx
# WAS leaq	sskdf_variant_hmac_output_size(%rip), %rcx
	leaq	.Lsskdf_variant_hmac_output_size_local_target(%rip), %rcx
	movq	%rcx, %xmm0
	movq	%rdx, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, (%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2398:

	.size	sskdf_variant_hmac_init, .-sskdf_variant_hmac_init
# WAS .section	.rodata.KEM_ml_kem_512_init.str1.1,"aMS",@progbits,1
.text
.LC59:

	.string	"MLKEM512 "
# WAS .section	.text.KEM_ml_kem_512_init,"ax",@progbits
.text
	.p2align 4
	.type	KEM_ml_kem_512_init, @function
.LKEM_ml_kem_512_init_local_target:
KEM_ml_kem_512_init:
.LFB2428:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	KEM_ml_kem_512_storage_bss_get@PLT
	call	KEM_ml_kem_512_storage_bss_get
	movdqa	.LC60(%rip), %xmm0
	movq	%rax, %rbx
	movl	$988, (%rax)
# WAS leaq	kOIDMLKEM512(%rip), %rax
	leaq	.LkOIDMLKEM512_local_target(%rip), %rax
	movups	%xmm0, 32(%rbx)
	movdqa	.LC61(%rip), %xmm0
	movq	%rax, 8(%rbx)
	leaq	.LC59(%rip), %rax
	movups	%xmm0, 48(%rbx)
	movdqa	.LC62(%rip), %xmm0
	movb	$9, 16(%rbx)
	movq	%rax, 24(%rbx)
	movups	%xmm0, 64(%rbx)
# WAS call	kem_ml_kem_512_method_once_bss_get@PLT
	call	kem_ml_kem_512_method_once_bss_get
# WAS leaq	kem_ml_kem_512_method_init(%rip), %rsi
	leaq	.Lkem_ml_kem_512_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	kem_ml_kem_512_method_storage_bss_get@PLT
	call	kem_ml_kem_512_method_storage_bss_get
	movq	%rax, 80(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2428:

	.size	KEM_ml_kem_512_init, .-KEM_ml_kem_512_init
# WAS .section	.text.kem_ml_kem_512_method_init,"ax",@progbits
.text
	.p2align 4
	.type	kem_ml_kem_512_method_init, @function
.Lkem_ml_kem_512_method_init_local_target:
kem_ml_kem_512_method_init:
.LFB2425:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	kem_ml_kem_512_method_storage_bss_get@PLT
	call	kem_ml_kem_512_method_storage_bss_get
# WAS leaq	ml_kem_512_keygen(%rip), %rdx
	leaq	.Lml_kem_512_keygen_local_target(%rip), %rdx
# WAS leaq	ml_kem_512_keygen_deterministic(%rip), %rcx
	leaq	.Lml_kem_512_keygen_deterministic_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
# WAS leaq	ml_kem_512_encaps(%rip), %rdx
	leaq	.Lml_kem_512_encaps_local_target(%rip), %rdx
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ml_kem_512_encaps_deterministic(%rip), %rsi
	leaq	.Lml_kem_512_encaps_deterministic_local_target(%rip), %rsi
	movq	%rdx, %xmm2
	movups	%xmm0, (%rax)
	movq	%rsi, %xmm0
# WAS leaq	ml_kem_512_decaps(%rip), %rdi
	leaq	.Lml_kem_512_decaps_local_target(%rip), %rdi
	punpcklqdq	%xmm2, %xmm0
	movq	%rdi, 32(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2425:

	.size	kem_ml_kem_512_method_init, .-kem_ml_kem_512_method_init
# WAS .section	.rodata.KEM_ml_kem_768_init.str1.1,"aMS",@progbits,1
.text
.LC63:

	.string	"MLKEM768 "
# WAS .section	.text.KEM_ml_kem_768_init,"ax",@progbits
.text
	.p2align 4
	.type	KEM_ml_kem_768_init, @function
.LKEM_ml_kem_768_init_local_target:
KEM_ml_kem_768_init:
.LFB2431:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	KEM_ml_kem_768_storage_bss_get@PLT
	call	KEM_ml_kem_768_storage_bss_get
	movdqa	.LC64(%rip), %xmm0
	movq	%rax, %rbx
	movl	$989, (%rax)
# WAS leaq	kOIDMLKEM768(%rip), %rax
	leaq	.LkOIDMLKEM768_local_target(%rip), %rax
	movups	%xmm0, 32(%rbx)
	movdqa	.LC65(%rip), %xmm0
	movq	%rax, 8(%rbx)
	leaq	.LC63(%rip), %rax
	movups	%xmm0, 48(%rbx)
	movdqa	.LC62(%rip), %xmm0
	movb	$9, 16(%rbx)
	movq	%rax, 24(%rbx)
	movups	%xmm0, 64(%rbx)
# WAS call	kem_ml_kem_768_method_once_bss_get@PLT
	call	kem_ml_kem_768_method_once_bss_get
# WAS leaq	kem_ml_kem_768_method_init(%rip), %rsi
	leaq	.Lkem_ml_kem_768_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	kem_ml_kem_768_method_storage_bss_get@PLT
	call	kem_ml_kem_768_method_storage_bss_get
	movq	%rax, 80(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2431:

	.size	KEM_ml_kem_768_init, .-KEM_ml_kem_768_init
# WAS .section	.text.kem_ml_kem_768_method_init,"ax",@progbits
.text
	.p2align 4
	.type	kem_ml_kem_768_method_init, @function
.Lkem_ml_kem_768_method_init_local_target:
kem_ml_kem_768_method_init:
.LFB2417:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	kem_ml_kem_768_method_storage_bss_get@PLT
	call	kem_ml_kem_768_method_storage_bss_get
# WAS leaq	ml_kem_768_keygen(%rip), %rdx
	leaq	.Lml_kem_768_keygen_local_target(%rip), %rdx
# WAS leaq	ml_kem_768_keygen_deterministic(%rip), %rcx
	leaq	.Lml_kem_768_keygen_deterministic_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
# WAS leaq	ml_kem_768_encaps(%rip), %rdx
	leaq	.Lml_kem_768_encaps_local_target(%rip), %rdx
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ml_kem_768_encaps_deterministic(%rip), %rsi
	leaq	.Lml_kem_768_encaps_deterministic_local_target(%rip), %rsi
	movq	%rdx, %xmm2
	movups	%xmm0, (%rax)
	movq	%rsi, %xmm0
# WAS leaq	ml_kem_768_decaps(%rip), %rdi
	leaq	.Lml_kem_768_decaps_local_target(%rip), %rdi
	punpcklqdq	%xmm2, %xmm0
	movq	%rdi, 32(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2417:

	.size	kem_ml_kem_768_method_init, .-kem_ml_kem_768_method_init
# WAS .section	.rodata.KEM_ml_kem_1024_init.str1.1,"aMS",@progbits,1
.text
.LC66:

	.string	"MLKEM1024 "
# WAS .section	.text.KEM_ml_kem_1024_init,"ax",@progbits
.text
	.p2align 4
	.type	KEM_ml_kem_1024_init, @function
.LKEM_ml_kem_1024_init_local_target:
KEM_ml_kem_1024_init:
.LFB2434:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	KEM_ml_kem_1024_storage_bss_get@PLT
	call	KEM_ml_kem_1024_storage_bss_get
	movdqa	.LC67(%rip), %xmm0
	movq	%rax, %rbx
	movl	$990, (%rax)
# WAS leaq	kOIDMLKEM1024(%rip), %rax
	leaq	.LkOIDMLKEM1024_local_target(%rip), %rax
	movups	%xmm0, 32(%rbx)
	movdqa	.LC68(%rip), %xmm0
	movq	%rax, 8(%rbx)
	leaq	.LC66(%rip), %rax
	movups	%xmm0, 48(%rbx)
	movdqa	.LC62(%rip), %xmm0
	movb	$9, 16(%rbx)
	movq	%rax, 24(%rbx)
	movups	%xmm0, 64(%rbx)
# WAS call	kem_ml_kem_1024_method_once_bss_get@PLT
	call	kem_ml_kem_1024_method_once_bss_get
# WAS leaq	kem_ml_kem_1024_method_init(%rip), %rsi
	leaq	.Lkem_ml_kem_1024_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	kem_ml_kem_1024_method_storage_bss_get@PLT
	call	kem_ml_kem_1024_method_storage_bss_get
	movq	%rax, 80(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2434:

	.size	KEM_ml_kem_1024_init, .-KEM_ml_kem_1024_init
# WAS .section	.text.kem_ml_kem_1024_method_init,"ax",@progbits
.text
	.p2align 4
	.type	kem_ml_kem_1024_method_init, @function
.Lkem_ml_kem_1024_method_init_local_target:
kem_ml_kem_1024_method_init:
.LFB2409:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	kem_ml_kem_1024_method_storage_bss_get@PLT
	call	kem_ml_kem_1024_method_storage_bss_get
# WAS leaq	ml_kem_1024_keygen(%rip), %rdx
	leaq	.Lml_kem_1024_keygen_local_target(%rip), %rdx
# WAS leaq	ml_kem_1024_keygen_deterministic(%rip), %rcx
	leaq	.Lml_kem_1024_keygen_deterministic_local_target(%rip), %rcx
	movq	%rdx, %xmm1
	movq	%rcx, %xmm0
# WAS leaq	ml_kem_1024_encaps(%rip), %rdx
	leaq	.Lml_kem_1024_encaps_local_target(%rip), %rdx
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	ml_kem_1024_encaps_deterministic(%rip), %rsi
	leaq	.Lml_kem_1024_encaps_deterministic_local_target(%rip), %rsi
	movq	%rdx, %xmm2
	movups	%xmm0, (%rax)
	movq	%rsi, %xmm0
# WAS leaq	ml_kem_1024_decaps(%rip), %rdi
	leaq	.Lml_kem_1024_decaps_local_target(%rip), %rdi
	punpcklqdq	%xmm2, %xmm0
	movq	%rdi, 32(%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2409:

	.size	kem_ml_kem_1024_method_init, .-kem_ml_kem_1024_method_init
# WAS .section	.text.init_fork_detect,"ax",@progbits
.text
	.p2align 4
	.type	init_fork_detect, @function
.Linit_fork_detect_local_target:
init_fork_detect:
.LFB2605:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	g_ignore_madv_wipeonfork_bss_get@PLT
	call	g_ignore_madv_wipeonfork_bss_get
	cmpl	$1, (%rax)
	je	.L606
	movl	$30, %edi
# WAS call	sysconf@PLT
	call	.Lbcm_redirector_sysconf
	movq	%rax, %rbx
	testq	%rax, %rax
	jle	.L606
	xorl	%r9d, %r9d
	movl	$-1, %r8d
	movl	$34, %ecx
	xorl	%edi, %edi
	movl	$3, %edx
	movq	%rax, %rsi
# WAS call	mmap@PLT
	call	.Lbcm_redirector_mmap
	movq	%rax, %rbp
	cmpq	$-1, %rax
	je	.L606
	movl	$-1, %edx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	madvise@PLT
	call	.Lbcm_redirector_madvise
	testl	%eax, %eax
	jne	.L618
.L610:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	munmap@PLT
	jmp	.Lbcm_redirector_munmap
	.p2align 4,,10
	.p2align 3
.L618:

	.cfi_restore_state
	movl	$18, %edx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	madvise@PLT
	call	.Lbcm_redirector_madvise
	testl	%eax, %eax
	jne	.L610
	movb	$1, 0(%rbp)
# WAS call	g_fork_detect_addr_bss_get@PLT
	call	g_fork_detect_addr_bss_get
	movq	%rbp, (%rax)
# WAS call	g_fork_generation_bss_get@PLT
	call	g_fork_generation_bss_get
	movq	$1, (%rax)
.L606:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2605:

	.size	init_fork_detect, .-init_fork_detect
# WAS .section	.text.g_small_factors_init,"ax",@progbits
.text
	.p2align 4
	.type	g_small_factors_init, @function
.Lg_small_factors_init_local_target:
g_small_factors_init:
.LFB2739:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_small_factors_storage_bss_get@PLT
	call	g_small_factors_storage_bss_get
	movdqa	.LC69(%rip), %xmm0
# WAS leaq	kSmallFactorsLimbs(%rip), %rdx
	leaq	.LkSmallFactorsLimbs_local_target(%rip), %rdx
	movq	%rdx, (%rax)
	movups	%xmm0, 8(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2739:

	.size	g_small_factors_init, .-g_small_factors_init
# WAS .section	.rodata.bn_range_to_mask.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC70:

	.string	"/aws-lc/crypto/fipsmodule/bn/random.c"
# WAS .section	.text.bn_range_to_mask,"ax",@progbits
.text
	.p2align 4
	.type	bn_range_to_mask, @function
.Lbn_range_to_mask_local_target:
bn_range_to_mask:
.LFB1059:

	.cfi_startproc
	testq	%r8, %r8
	je	.L622
	leaq	-8(,%r8,8), %rax
	jmp	.L623
	.p2align 4,,10
	.p2align 3
.L624:

	subq	$8, %rax
	subq	$1, %r8
	je	.L622
.L623:

	cmpq	$0, (%rcx,%rax)
	je	.L624
	cmpq	$1, %r8
	je	.L639
.L626:

	movq	(%rcx,%rax), %rdx
	movq	%r8, (%rdi)
	movq	%rdx, %rax
	shrq	%rax
	orq	%rdx, %rax
	movq	%rax, %rdx
	shrq	$2, %rdx
	orq	%rax, %rdx
	movq	%rdx, %rax
	shrq	$4, %rax
	orq	%rdx, %rax
	movq	%rax, %rdx
	shrq	$8, %rdx
	orq	%rax, %rdx
	movq	%rdx, %rax
	shrq	$16, %rax
	orq	%rdx, %rax
	movq	%rax, %rdx
	shrq	$32, %rdx
	orq	%rdx, %rax
	movq	%rax, (%rsi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L639:

	cmpq	(%rcx), %rdx
	jb	.L626
.L622:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$108, %edx
	xorl	%esi, %esi
	movl	$3, %edi
	movl	$231, %r8d
	leaq	.LC70(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1059:

	.size	bn_range_to_mask, .-bn_range_to_mask
# WAS .section	.rodata.hmac_ctrl.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC71:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_hmac.c"
# WAS .section	.text.hmac_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	hmac_ctrl, @function
.Lhmac_ctrl_local_target:
hmac_ctrl:
.LFB2254:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rax
	cmpl	$1, %esi
	jne	.L641
	movq	%rcx, (%rax)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L641:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$103, %r8d
	leaq	.LC71(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2254:

	.size	hmac_ctrl, .-hmac_ctrl
# WAS .section	.text.sha1_block_data_order,"ax",@progbits
.text
	.p2align 4
	.type	sha1_block_data_order, @function
.Lsha1_block_data_order_local_target:
sha1_block_data_order:
.LFB2850:

	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	4(%rax), %ecx
	movl	8(%rax), %edx
	movl	%ecx, %esi
	andl	$512, %esi
	testl	$536870912, %edx
	je	.L647
	testl	%esi, %esi
	je	.L648
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_hw@PLT
	jmp	.Lsha1_block_data_order_hw_local_target
	.p2align 4,,10
	.p2align 3
.L647:

	.cfi_restore_state
	movl	%edx, %edi
	notl	%edi
	andl	$288, %edi
	je	.L669
.L649:

	andl	$268435456, %ecx
	je	.L650
	testl	%esi, %esi
	je	.L648
	movl	(%rax), %eax
	testl	$1073741824, %eax
	jne	.L651
.L652:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_ssse3@PLT
	jmp	.Lsha1_block_data_order_ssse3_local_target
	.p2align 4,,10
	.p2align 3
.L650:

	.cfi_restore_state
	testl	%esi, %esi
	jne	.L652
.L648:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_nohw@PLT
	jmp	.Lsha1_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L669:

	.cfi_restore_state
	andl	$8, %edx
	je	.L649
	testl	%esi, %esi
	je	.L648
.L651:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_avx@PLT
	jmp	.Lsha1_block_data_order_avx_local_target
	.cfi_endproc
.LFE2850:

	.size	sha1_block_data_order, .-sha1_block_data_order
# WAS .section	.text.bn_mul_add_words.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_add_words.part.0, @function
.Lbn_mul_add_words.part.0_local_target:
bn_mul_add_words.part.0:
.LFB2949:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %r11
	movq	%rdx, %r10
	movq	%rcx, %r9
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	cmpq	$3, %rdx
	jbe	.L674
	movq	%rsi, %r8
	movq	%rdx, %rbp
	xorl	%esi, %esi
	.p2align 4,,10
	.p2align 3
.L672:

	subq	$4, %rbp
	movq	%r9, %rax
	addq	$32, %r8
#APP
# 106 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -32(%r8)
# 0 "" 2
# 106 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r9, %rax
#APP
# 106 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rsi,(%rdi); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rcx
#APP
# 107 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -24(%r8)
# 0 "" 2
# 107 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r9, %rax
#APP
# 107 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rcx,8(%rdi); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rsi
#APP
# 108 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -16(%r8)
# 0 "" 2
# 108 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r9, %rax
#APP
# 108 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rsi,16(%rdi); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rcx
#APP
# 109 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -8(%r8)
# 0 "" 2
# 109 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq $0,%rdx
# 0 "" 2
# 109 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rcx,24(%rdi); adcq $0,%rdx
# 0 "" 2
#NO_APP
	addq	$32, %rdi
	movq	%rdx, %rsi
	cmpq	$3, %rbp
	ja	.L672
	leaq	-4(%r10), %rax
	andl	$3, %r10d
	shrq	$2, %rax
	addq	$1, %rax
	salq	$5, %rax
	addq	%rax, %rbx
	addq	%rax, %r11
.L671:

	testq	%r10, %r10
	je	.L670
	movq	%r9, %rax
#APP
# 115 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rbx)
# 0 "" 2
# 115 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
# 115 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rsi,(%r11); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rsi
	cmpq	$1, %r10
	je	.L670
	movq	%r9, %rax
#APP
# 119 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rbx)
# 0 "" 2
# 119 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
# 119 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rsi,8(%r11); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rsi
	cmpq	$2, %r10
	je	.L670
	movq	%r9, %rax
#APP
# 123 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rbx)
# 0 "" 2
# 123 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
# 123 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rsi,16(%r11); adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rdx, %rsi
.L670:

	movq	%rsi, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L674:

	.cfi_restore_state
	xorl	%esi, %esi
	jmp	.L671
	.cfi_endproc
.LFE2949:

	.size	bn_mul_add_words.part.0, .-bn_mul_add_words.part.0
# WAS .section	.text.bn_mul_words.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_words.part.0, @function
.Lbn_mul_words.part.0_local_target:
bn_mul_words.part.0:
.LFB2950:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %r11
	movq	%rdx, %r10
	movq	%rcx, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	cmpq	$3, %rdx
	jbe	.L689
	movq	%rdi, %r9
	movq	%rdx, %rbp
	movq	%rsi, %rdi
	xorl	%esi, %esi
	.p2align 4,,10
	.p2align 3
.L687:

	subq	$4, %rbp
	movq	%r8, %rax
	addq	$32, %rdi
	addq	$32, %r9
#APP
# 139 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -32(%rdi)
# 0 "" 2
# 139 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r8, %rax
	movq	%rsi, -32(%r9)
	movq	%rdx, %rcx
#APP
# 140 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -24(%rdi)
# 0 "" 2
# 140 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r8, %rax
	movq	%rcx, -24(%r9)
	movq	%rdx, %rsi
#APP
# 141 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -16(%rdi)
# 0 "" 2
# 141 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%r8, %rax
	movq	%rsi, -16(%r9)
	movq	%rdx, %rcx
#APP
# 142 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq -8(%rdi)
# 0 "" 2
# 142 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rcx, -8(%r9)
	movq	%rdx, %rsi
	cmpq	$3, %rbp
	ja	.L687
	leaq	-4(%r10), %rax
	andl	$3, %r10d
	shrq	$2, %rax
	addq	$1, %rax
	salq	$5, %rax
	addq	%rax, %rbx
	addq	%rax, %r11
.L686:

	testq	%r10, %r10
	je	.L685
	movq	%r8, %rax
#APP
# 148 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rbx)
# 0 "" 2
# 148 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rsi, (%r11)
	movq	%rdx, %rsi
	cmpq	$1, %r10
	je	.L685
	movq	%r8, %rax
#APP
# 152 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rbx)
# 0 "" 2
# 152 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rsi; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rsi, 8(%r11)
	movq	%rdx, %rsi
	cmpq	$2, %r10
	je	.L685
	movq	%rsi, %rcx
	movq	%r8, %rax
#APP
# 156 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rbx)
# 0 "" 2
# 156 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq $0,%rdx
# 0 "" 2
#NO_APP
	movq	%rcx, 16(%r11)
	movq	%rdx, %rsi
.L685:

	movq	%rsi, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L689:

	.cfi_restore_state
	xorl	%esi, %esi
	jmp	.L686
	.cfi_endproc
.LFE2950:

	.size	bn_mul_words.part.0, .-bn_mul_words.part.0
# WAS .section	.text.bn_sqr_words.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_sqr_words.part.0, @function
.Lbn_sqr_words.part.0_local_target:
bn_sqr_words.part.0:
.LFB2951:

	.cfi_startproc
	movq	%rdi, %r9
	movq	%rsi, %r10
	movq	%rdx, %r8
	cmpq	$3, %rdx
	jbe	.L700
	movq	%rdx, %rdi
	movq	%r9, %rcx
	.p2align 4,,10
	.p2align 3
.L701:

	subq	$4, %rdi
	movq	(%rsi), %rax
	addq	$64, %rcx
	addq	$32, %rsi
#APP
# 167 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rdx, -56(%rcx)
	movq	%rax, -64(%rcx)
	movq	-24(%rsi), %rax
#APP
# 168 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rdx, -40(%rcx)
	movq	%rax, -48(%rcx)
	movq	-16(%rsi), %rax
#APP
# 169 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rdx, -24(%rcx)
	movq	%rax, -32(%rcx)
	movq	-8(%rsi), %rax
#APP
# 170 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rax, -16(%rcx)
	movq	%rdx, -8(%rcx)
	cmpq	$3, %rdi
	ja	.L701
	leaq	-4(%r8), %rax
	andl	$3, %r8d
	shrq	$2, %rax
	addq	$1, %rax
	movq	%rax, %rdx
	salq	$6, %rax
	salq	$5, %rdx
	addq	%rax, %r9
	addq	%rdx, %r10
.L700:

	testq	%r8, %r8
	je	.L699
	movq	(%r10), %rax
#APP
# 176 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rax, (%r9)
	movq	%rdx, 8(%r9)
	cmpq	$1, %r8
	je	.L699
	movq	8(%r10), %rax
#APP
# 180 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rax, 16(%r9)
	movq	%rdx, 24(%r9)
	cmpq	$2, %r8
	je	.L699
	movq	16(%r10), %rax
#APP
# 184 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%rax, 32(%r9)
	movq	%rdx, 40(%r9)
.L699:

	ret
	.cfi_endproc
.LFE2951:

	.size	bn_sqr_words.part.0, .-bn_sqr_words.part.0
# WAS .section	.text.bn_add_words.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_add_words.part.0, @function
.Lbn_add_words.part.0_local_target:
bn_add_words.part.0:
.LFB2952:

	.cfi_startproc
	movq	%rdx, %r8
	xorl	%edx, %edx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rax,%rax		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rdx,8),%rax	
	adcq	(%r8,%rdx,8),%rax	
	movq	%rax,(%rdi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rax,%rax		

# 0 "" 2
#NO_APP
	andl	$1, %eax
	ret
	.cfi_endproc
.LFE2952:

	.size	bn_add_words.part.0, .-bn_add_words.part.0
# WAS .section	.text.bn_sub_words.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_sub_words.part.0, @function
.Lbn_sub_words.part.0_local_target:
bn_sub_words.part.0:
.LFB2954:

	.cfi_startproc
	movq	%rdx, %r8
	xorl	%edx, %edx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rax,%rax		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rdx,8),%rax	
	sbbq	(%r8,%rdx,8),%rax	
	movq	%rax,(%rdi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rax,%rax		

# 0 "" 2
#NO_APP
	andl	$1, %eax
	ret
	.cfi_endproc
.LFE2954:

	.size	bn_sub_words.part.0, .-bn_sub_words.part.0
# WAS .section	.rodata.ecp_nistz256_get_affine.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC72:

	.string	"/aws-lc/crypto/fipsmodule/ec/p256-nistz.c"
# WAS .section	.text.ecp_nistz256_get_affine,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_get_affine, @function
.Lecp_nistz256_get_affine_local_target:
ecp_nistz256_get_affine:
.LFB2005:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$344, %rsp
	.cfi_def_cfa_offset 400
	movq	%rcx, 8(%rsp)
	movl	328(%rdi), %ecx
	movq	%rdx, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	testl	%ecx, %ecx
	jle	.L732
	cmpl	$1, %ecx
	je	.L733
	movl	%ecx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L717
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L717
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L717
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L717
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L717
	xorl	%edx, %edx
.L718:

	movq	%rdx, %rsi
	addq	$1, %rdx
	salq	$4, %rsi
	movdqu	224(%rbx,%rsi), %xmm1
	leal	5(%rdx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L718
.L717:

	movdqa	%xmm0, %xmm1
	movl	%ecx, %edx
	psrldq	$8, %xmm1
	andl	$-2, %edx
	andl	$1, %ecx
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	je	.L719
.L716:

	movslq	%edx, %rdx
	orq	144(%rbx,%rdx,8), %rax
.L719:

	leaq	-1(%rax), %rdx
	notq	%rax
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
.L715:

	testl	%eax, %eax
	jne	.L760
	leaq	144(%rbx), %rax
	leaq	64(%rsp), %r15
	movq	%rax, %rbp
	movq	%rax, %rsi
	movq	%r15, %rdi
	movq	%rax, 16(%rsp)
	leaq	96(%rsp), %r14
	leaq	128(%rsp), %r13
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r15, %rsi
	movq	%r14, %rdi
	leaq	160(%rsp), %r12
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%rbp, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r14, %rsi
	movq	%r13, %rdi
	movl	$5, %ebp
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	.p2align 4,,10
	.p2align 3
.L722:

	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %ebp
	jne	.L722
	leaq	192(%rsp), %rbp
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	leaq	224(%rsp), %r12
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$14, %r13d
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	.p2align 4,,10
	.p2align 3
.L723:

	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %r13d
	jne	.L723
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movl	$31, %r14d
	leaq	256(%rsp), %r13
	leaq	288(%rsp), %rbp
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%r15, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	.p2align 4,,10
	.p2align 3
.L724:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %r14d
	jne	.L724
	movq	16(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$128, %r14d
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	.p2align 4,,10
	.p2align 3
.L725:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %r14d
	jne	.L725
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$32, %r14d
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	.p2align 4,,10
	.p2align 3
.L726:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %r14d
	jne	.L726
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$30, %r13d
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	.p2align 4,,10
	.p2align 3
.L727:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	subl	$1, %r13d
	jne	.L727
	movq	%r12, %rdx
	movq	%rbp, %rsi
	leaq	32(%rsp), %r12
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	movq	24(%rsp), %rax
	testq	%rax, %rax
	je	.L728
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
.L728:

	cmpq	$0, 8(%rsp)
	je	.L730
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_sqr_mont@PLT
	call	.Lecp_nistz256_sqr_mont_local_target
	leaq	72(%rbx), %rsi
	movq	8(%rsp), %rbx
	movq	16(%rsp), %rdx
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
.L730:

	movl	$1, %eax
.L714:

	movq	328(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L761
	addq	$344, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L760:

	.cfi_restore_state
	movl	$442, %r8d
	leaq	.LC72(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L714
.L732:

	movl	$1, %eax
	jmp	.L715
.L733:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L716
.L761:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2005:

	.size	ecp_nistz256_get_affine, .-ecp_nistz256_get_affine
# WAS .section	.rodata.CRYPTO_sysrand.part.0.str1.1,"aMS",@progbits,1
.text
.LC73:

	.string	"entropy fill failed"
# WAS .section	.text.unlikely.CRYPTO_sysrand.part.0,"ax",@progbits
.text
	.type	CRYPTO_sysrand.part.0, @function
.LCRYPTO_sysrand.part.0_local_target:
CRYPTO_sysrand.part.0:
.LFB3049:

	.cfi_startproc
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	leaq	.LC73(%rip), %rdi
	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE3049:

	.size	CRYPTO_sysrand.part.0, .-CRYPTO_sysrand.part.0
	.set	CRYPTO_sysrand_for_seed.part.0,CRYPTO_sysrand.part.0
# WAS .section	.rodata.assert_not_within.part.0.constprop.0.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC74:

	.string	"FIPS module spans unexpected symbol (%s), expected %p < %p || %p > %p\n"
# WAS .section	.text.unlikely.assert_not_within.part.0.constprop.0,"ax",@progbits
.text
	.type	assert_not_within.part.0.constprop.0, @function
.Lassert_not_within.part.0.constprop.0_local_target:
assert_not_within.part.0.constprop.0:
.LFB3198:

	.cfi_startproc
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	leaq	.LC74(%rip), %rdx
	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movq	%rdi, %r8
	movq	%rsi, %rcx
# WAS pushq	BORINGSSL_bcm_text_end@GOTPCREL(%rip)
	pushq %rax
	leaq	BORINGSSL_bcm_text_end(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_def_cfa_offset 24
# WAS movq	BORINGSSL_bcm_text_start@GOTPCREL(%rip), %r9
	leaq	BORINGSSL_bcm_text_start(%rip), %r9
	movl	$2, %esi
	pushq	%rdi
	.cfi_def_cfa_offset 32
	movq	(%rax), %rdi
	xorl	%eax, %eax
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE3198:

	.size	assert_not_within.part.0.constprop.0, .-assert_not_within.part.0.constprop.0
# WAS .section	.rodata.assert_within.part.0.constprop.0.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC75:

	.string	"FIPS module doesn't span expected symbol (%s). Expected %p <= %p < %p\n"
# WAS .section	.text.unlikely.assert_within.part.0.constprop.0,"ax",@progbits
.text
	.type	assert_within.part.0.constprop.0, @function
.Lassert_within.part.0.constprop.0_local_target:
assert_within.part.0.constprop.0:
.LFB3199:

	.cfi_startproc
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	leaq	.LC75(%rip), %rdx
	subq	$16, %rsp
	.cfi_def_cfa_offset 24
# WAS pushq	BORINGSSL_bcm_text_end@GOTPCREL(%rip)
	pushq %rax
	leaq	BORINGSSL_bcm_text_end(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_def_cfa_offset 32
	movq	%rdi, %r9
	movq	%rsi, %rcx
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$2, %esi
# WAS movq	BORINGSSL_bcm_text_start@GOTPCREL(%rip), %r8
	leaq	BORINGSSL_bcm_text_start(%rip), %r8
	movq	(%rax), %rdi
	xorl	%eax, %eax
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE3199:

	.size	assert_within.part.0.constprop.0, .-assert_within.part.0.constprop.0
# WAS .section	.text.aead_aes_ccm_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_cleanup, @function
.Laead_aes_ccm_cleanup_local_target:
aead_aes_ccm_cleanup:
.LFB3113:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3113:

	.size	aead_aes_ccm_cleanup, .-aead_aes_ccm_cleanup
# WAS .section	.text.aes_hw_ecb_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_hw_ecb_cipher, @function
.Laes_hw_ecb_cipher_local_target:
aes_hw_ecb_cipher:
.LFB1224:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdx, %rdi
	movq	%rcx, %rdx
	movq	(%rax), %rcx
	movl	4(%rcx), %ecx
	cmpq	%rcx, %rdx
	jnb	.L775
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L775:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	16(%rax), %rcx
	movl	28(%rax), %r8d
# WAS call	aes_hw_ecb_encrypt@PLT
	call	.Laes_hw_ecb_encrypt_local_target
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1224:

	.size	aes_hw_ecb_cipher, .-aes_hw_ecb_cipher
# WAS .section	.text.OPENSSL_memcpy.part.0.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	OPENSSL_memcpy.part.0.isra.0, @function
.LOPENSSL_memcpy.part.0.isra.0_local_target:
OPENSSL_memcpy.part.0.isra.0:
.LFB3201:

	.cfi_startproc
# WAS jmp	memcpy@PLT
	jmp	.Lbcm_redirector_memcpy
	.cfi_endproc
.LFE3201:

	.size	OPENSSL_memcpy.part.0.isra.0, .-OPENSSL_memcpy.part.0.isra.0
# WAS .section	.text.gcm_polyval_nohw.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	gcm_polyval_nohw.isra.0, @function
.Lgcm_polyval_nohw.isra.0_local_target:
gcm_polyval_nohw.isra.0:
.LFB3203:

	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %rcx
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$64, %rsp
	.cfi_def_cfa_offset 112
	movq	(%rdi), %r12
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rsi
	leaq	8(%rsp), %rdi
	movq	%r12, %rdx
# WAS call	gcm_mul64_nohw
	call	.Lgcm_mul64_nohw_local_target
	movq	8(%rbx), %r14
	leaq	32(%rsp), %rsi
	movq	%r13, %rcx
	leaq	24(%rsp), %rdi
	movq	%r14, %rdx
# WAS call	gcm_mul64_nohw
	call	.Lgcm_mul64_nohw_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	leaq	48(%rsp), %rsi
	xorq	%r13, %rcx
	xorq	%r14, %rdx
	leaq	40(%rsp), %rdi
# WAS call	gcm_mul64_nohw
	call	.Lgcm_mul64_nohw_local_target
	movq	8(%rsp), %rsi
	movq	16(%rsp), %rax
	movq	24(%rsp), %rdi
	movq	40(%rsp), %rdx
	movq	32(%rsp), %rcx
	movq	%rsi, %r8
	xorq	%rsi, %rdi
	xorq	%rax, %rdx
	salq	$63, %r8
	xorq	%rdi, %rdx
	xorq	%rcx, %rax
	xorq	48(%rsp), %rax
	xorq	%r8, %rdx
	xorq	%rdi, %rax
	movq	%rsi, %r8
	movq	%rsi, %rdi
	salq	$62, %r8
	shrq	%rdi
	xorq	%r8, %rdx
	xorq	%rdi, %rax
	movq	%rsi, %r8
	movq	%rsi, %rdi
	salq	$57, %r8
	shrq	$2, %rdi
	xorq	%r8, %rdx
	shrq	$7, %rsi
	xorq	%rdi, %rax
	xorq	%rsi, %rax
	movq	%rdx, %rsi
	xorq	%rdx, %rcx
	salq	$63, %rsi
	xorq	%rsi, %rax
	movq	%rdx, %rsi
	salq	$62, %rsi
	xorq	%rsi, %rax
	movq	%rdx, %rsi
	salq	$57, %rsi
	xorq	%rsi, %rax
	movq	%rax, (%rbx)
	movq	%rdx, %rax
	shrq	%rax
	xorq	%rax, %rcx
	movq	%rdx, %rax
	shrq	$7, %rdx
	shrq	$2, %rax
	xorq	%rax, %rcx
	xorq	%rcx, %rdx
	movq	%rdx, 8(%rbx)
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L780
	addq	$64, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L780:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3203:

	.size	gcm_polyval_nohw.isra.0, .-gcm_polyval_nohw.isra.0
# WAS .section	.text.pkey_kem_cleanup,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_cleanup, @function
.Lpkey_kem_cleanup_local_target:
pkey_kem_cleanup:
.LFB3175:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rdi
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.cfi_endproc
.LFE3175:

	.size	pkey_kem_cleanup, .-pkey_kem_cleanup
# WAS .section	.rodata.check_test.part.0.str1.1,"aMS",@progbits,1
.text
.LC76:

	.string	"%s failed.\nExpected:   "
.LC77:

	.string	"%02x"
.LC78:

	.string	"\nCalculated: "
# WAS .section	.text.check_test.part.0,"ax",@progbits
.text
	.p2align 4
	.type	check_test.part.0, @function
.Lcheck_test.part.0_local_target:
check_test.part.0:
.LFB2946:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	leaq	.LC77(%rip), %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	leaq	.LC76(%rip), %rdx
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movl	$2, %esi
	leaq	0(%rbp,%r13), %r15
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS movq	stderr@GOTPCREL(%rip), %r12
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %r12
	addq (%r12), %r12
	movq (%r12), %r12
	popf
	leaq	128(%rsp), %rsp
	movq	(%r12), %rdi
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
	.p2align 4,,10
	.p2align 3
.L783:

	movzbl	0(%rbp), %ecx
	movq	(%r12), %rdi
	movq	%r14, %rdx
	movl	$2, %esi
	xorl	%eax, %eax
	addq	$1, %rbp
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
	cmpq	%r15, %rbp
	jne	.L783
	movq	(%r12), %rcx
	movl	$13, %edx
	movl	$1, %esi
	addq	%rbx, %r13
	leaq	.LC78(%rip), %rdi
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	.p2align 4,,10
	.p2align 3
.L784:

	movzbl	(%rbx), %ecx
	movq	(%r12), %rdi
	movq	%r14, %rdx
	movl	$2, %esi
	xorl	%eax, %eax
	addq	$1, %rbx
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
	cmpq	%rbx, %r13
	jne	.L784
	movq	(%r12), %rsi
	movl	$10, %edi
# WAS call	fputc@PLT
	call	.Lbcm_redirector_fputc
	movq	(%r12), %rdi
# WAS call	fflush@PLT
	call	.Lbcm_redirector_fflush
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2946:

	.size	check_test.part.0, .-check_test.part.0
# WAS .section	.text.check_test,"ax",@progbits
.text
	.p2align 4
	.type	check_test, @function
.Lcheck_test_local_target:
check_test:
.LFB2770:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	movq	%rdi, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	movq	%rbp, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	jne	.L791
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L791:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	check_test.part.0
	jmp	.Lcheck_test.part.0_local_target
	.cfi_endproc
.LFE2770:

	.size	check_test, .-check_test
# WAS .section	.rodata.init_once.str1.1,"aMS",@progbits,1
.text
.LC79:

	.string	"getrandom"
.LC80:

	.string	"/dev/urandom"
.LC81:

	.string	"failed to open /dev/urandom"
# WAS .section	.rodata.init_once.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC82:

	.string	"failed to get flags from urandom fd"
	.align 8
.LC83:

	.string	"failed to set FD_CLOEXEC on urandom fd"
# WAS .section	.text.unlikely.init_once,"ax",@progbits
.text
.LCOLDB84:

# WAS .section	.text.init_once,"ax",@progbits
.text
.LHOTB84:

	.p2align 4
	.type	init_once, @function
.Linit_once_local_target:
init_once:
.LFB2650:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	7(%rsp), %rbx
.L795:

	xorl	%eax, %eax
	movl	$1, %ecx
	movl	$1, %edx
	movq	%rbx, %rsi
	movl	$318, %edi
# WAS call	syscall@PLT
	call	.Lbcm_redirector_syscall
	cmpq	$-1, %rax
	je	.L815
	cmpq	$1, %rax
	jne	.L816
# WAS call	getrandom_ready_bss_get@PLT
	call	getrandom_ready_bss_get
	movl	$1, (%rax)
.L796:

# WAS call	urandom_fd_bss_get@PLT
	call	urandom_fd_bss_get
	movl	$-3, (%rax)
	jmp	.L792
	.p2align 4,,10
	.p2align 3
.L815:

# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	cmpl	$4, (%rax)
	je	.L795
# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	movq	%rax, %rbp
	movl	(%rax), %eax
	cmpl	$11, %eax
	je	.L796
	cmpl	$38, %eax
	jne	.L805
	leaq	.LC80(%rip), %r12
	jmp	.L797
	.p2align 4,,10
	.p2align 3
.L817:

	cmpl	$4, 0(%rbp)
	jne	.L800
.L797:

	xorl	%esi, %esi
	movq	%r12, %rdi
	xorl	%eax, %eax
# WAS call	open@PLT
	call	.Lbcm_redirector_open
	movl	%eax, %ebx
	cmpl	$-1, %eax
	je	.L817
	testl	%eax, %eax
	js	.L800
	movl	%eax, %edi
	movl	$1, %esi
	xorl	%eax, %eax
# WAS call	fcntl@PLT
	call	.Lbcm_redirector_fcntl
	cmpl	$-1, %eax
	jne	.L802
	cmpl	$38, 0(%rbp)
	jne	.L812
.L803:

# WAS call	urandom_fd_bss_get@PLT
	call	urandom_fd_bss_get
	movl	%ebx, (%rax)
.L792:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L818
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L802:

	.cfi_restore_state
	orl	$1, %eax
	movl	$2, %esi
	movl	%ebx, %edi
	movl	%eax, %edx
	xorl	%eax, %eax
# WAS call	fcntl@PLT
	call	.Lbcm_redirector_fcntl
	cmpl	$-1, %eax
	jne	.L803
	jmp	.L813
.L818:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L816:

	jmp	.L805
.L800:

	leaq	.LC81(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
# WAS .section	.text.unlikely.init_once
.text
	.cfi_startproc
	.type	init_once.cold, @function
.Linit_once.cold_local_target:
init_once.cold:
.LFSB2650:

.L813:

	.cfi_def_cfa_offset 48
	.cfi_offset 3, -32
	.cfi_offset 6, -24
	.cfi_offset 12, -16
	leaq	.LC83(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L805:

	leaq	.LC79(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L812:

	leaq	.LC82(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2650:

# WAS .section	.text.init_once
.text
	.size	init_once, .-init_once
# WAS .section	.text.unlikely.init_once
.text
	.size	init_once.cold, .-init_once.cold
.LCOLDE84:

# WAS .section	.text.init_once
.text
.LHOTE84:

# WAS .section	.text.AWSLC_fips_evp_pkey_methods_init,"ax",@progbits
.text
	.p2align 4
	.type	AWSLC_fips_evp_pkey_methods_init, @function
.LAWSLC_fips_evp_pkey_methods_init_local_target:
AWSLC_fips_evp_pkey_methods_init:
.LFB2177:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	AWSLC_fips_evp_pkey_methods_storage_bss_get@PLT
	call	AWSLC_fips_evp_pkey_methods_storage_bss_get
	movq	%rax, %rbx
# WAS call	EVP_PKEY_rsa_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_rsa_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_rsa_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_rsa_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_rsa_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_rsa_pkey_meth_storage_bss_get
	movq	%rax, (%rbx)
# WAS call	EVP_PKEY_rsa_pss_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_rsa_pss_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_rsa_pss_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_rsa_pss_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get
	movq	%rax, 8(%rbx)
# WAS call	EVP_PKEY_ec_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_ec_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_ec_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_ec_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_ec_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_ec_pkey_meth_storage_bss_get
	movq	%rax, 16(%rbx)
# WAS call	EVP_PKEY_hkdf_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_hkdf_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_hkdf_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_hkdf_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_hkdf_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_hkdf_pkey_meth_storage_bss_get
	movq	%rax, 24(%rbx)
# WAS call	EVP_PKEY_hmac_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_hmac_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_hmac_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_hmac_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_hmac_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_hmac_pkey_meth_storage_bss_get
	movq	%rax, 32(%rbx)
# WAS call	EVP_PKEY_ed25519_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_ed25519_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_ed25519_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_ed25519_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_ed25519_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_ed25519_pkey_meth_storage_bss_get
	movq	%rax, 40(%rbx)
# WAS call	EVP_PKEY_kem_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_kem_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_kem_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_kem_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_PKEY_kem_pkey_meth_storage_bss_get@PLT
	call	EVP_PKEY_kem_pkey_meth_storage_bss_get
	movq	%rax, 48(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2177:

	.size	AWSLC_fips_evp_pkey_methods_init, .-AWSLC_fips_evp_pkey_methods_init
# WAS .section	.text.sha256_block_data_order,"ax",@progbits
.text
	.p2align 4
	.type	sha256_block_data_order, @function
.Lsha256_block_data_order_local_target:
sha256_block_data_order:
.LFB2867:

	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$32, 11(%rax)
	jne	.L832
	movl	4(%rax), %edx
	movl	%edx, %ecx
	notl	%edx
	andl	$512, %ecx
	andl	$268435968, %edx
	je	.L823
.L826:

	testl	%ecx, %ecx
	jne	.L833
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_nohw@PLT
	jmp	.Lsha256_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L833:

	.cfi_restore_state
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_ssse3@PLT
	jmp	.Lsha256_block_data_order_ssse3_local_target
	.p2align 4,,10
	.p2align 3
.L832:

	.cfi_restore_state
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_hw@PLT
	jmp	.Lsha256_block_data_order_hw_local_target
	.p2align 4,,10
	.p2align 3
.L823:

	.cfi_restore_state
	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L826
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_avx@PLT
	jmp	.Lsha256_block_data_order_avx_local_target
	.cfi_endproc
.LFE2867:

	.size	sha256_block_data_order, .-sha256_block_data_order
# WAS .section	.text.pkey_hkdf_copy,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_copy, @function
.Lpkey_hkdf_copy_local_target:
pkey_hkdf_copy:
.LFB2238:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	movl	$96, %edi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L836
	leaq	48(%rax), %r12
	xorl	%esi, %esi
	movq	%rax, %rbx
	movq	%r12, %rdi
# WAS call	CBB_init@PLT
	call	.Lbcm_redirector_CBB_init
	testl	%eax, %eax
	je	.L855
	movq	%rbx, 40(%r13)
	movq	40(%rbp), %rbp
	movl	0(%rbp), %eax
	movq	24(%rbp), %rsi
	movl	%eax, (%rbx)
	movq	8(%rbp), %rax
	movq	%rax, 8(%rbx)
	testq	%rsi, %rsi
	jne	.L856
	movq	40(%rbp), %rsi
	testq	%rsi, %rsi
	je	.L841
.L857:

	movq	32(%rbp), %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 32(%rbx)
	testq	%rax, %rax
	je	.L836
	movq	40(%rbp), %rax
	movq	%rax, 40(%rbx)
.L841:

	addq	$48, %rbp
	movq	%rbp, %rdi
# WAS call	CBB_len@PLT
	call	.Lbcm_redirector_CBB_len
	movq	%rbp, %rdi
	movq	%rax, %rbx
# WAS call	CBB_data@PLT
	call	.Lbcm_redirector_CBB_data
	movq	%rbx, %rdx
	movq	%r12, %rdi
	movq	%rax, %rsi
# WAS call	CBB_add_bytes@PLT
	call	.Lbcm_redirector_CBB_add_bytes
	testl	%eax, %eax
	setne	%al
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L856:

	.cfi_restore_state
	movq	16(%rbp), %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L836
	movq	24(%rbp), %rax
	movq	40(%rbp), %rsi
	movq	%rax, 24(%rbx)
	testq	%rsi, %rsi
	je	.L841
	jmp	.L857
	.p2align 4,,10
	.p2align 3
.L855:

	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L836:

	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2238:

	.size	pkey_hkdf_copy, .-pkey_hkdf_copy
# WAS .section	.text.fill_with_entropy,"ax",@progbits
.text
	.p2align 4
	.type	fill_with_entropy, @function
.Lfill_with_entropy_local_target:
fill_with_entropy:
.LFB2652:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L872
	movl	%edx, %r13d
	movq	%rdi, %rbp
	movq	%rsi, %rbx
	movl	%edx, %r12d
	xorl	$1, %r13d
	testl	%ecx, %ecx
	je	.L861
# WAS call	extra_getrandom_flags_for_seed_bss_get@PLT
	call	extra_getrandom_flags_for_seed_bss_get
	orl	(%rax), %r13d
.L861:

# WAS call	rand_once_bss_get@PLT
	call	rand_once_bss_get
# WAS leaq	init_once(%rip), %rsi
	leaq	.Linit_once_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	testl	%r12d, %r12d
	jne	.L889
.L862:

# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	leaq	32(%rsp), %r14
	movl	$0, (%rax)
	movq	%rax, %r15
# WAS call	urandom_fd_bss_get@PLT
	call	urandom_fd_bss_get
	movq	%rax, 8(%rsp)
	movl	%r13d, %eax
	andl	$1, %eax
	movb	%al, 31(%rsp)
	jmp	.L871
	.p2align 4,,10
	.p2align 3
.L864:

	testq	%rax, %rax
	jle	.L870
	addq	%rax, %rbp
	subq	%rax, %rbx
	je	.L872
.L871:

	movq	8(%rsp), %rax
	movl	$1, %r12d
	movq	$10, 16(%rsp)
	movl	(%rax), %edi
	cmpl	$-3, %edi
	je	.L890
	.p2align 4,,10
	.p2align 3
.L869:

	movq	%rbx, %rdx
	movq	%rbp, %rsi
# WAS call	read@PLT
	call	.Lbcm_redirector_read
	cmpq	$-1, %rax
	jne	.L864
	cmpl	$4, (%r15)
	je	.L888
	subq	$1, 16(%rsp)
	je	.L870
	leaq	(%r12,%r12,4), %r12
	movl	$999999999, %eax
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	$0, 32(%rsp)
	addq	%r12, %r12
	cmpq	%rax, %r12
	cmovg	%rax, %r12
	movq	%r12, 40(%rsp)
# WAS call	nanosleep@PLT
	call	.Lbcm_redirector_nanosleep
.L888:

	movq	8(%rsp), %rax
	movl	(%rax), %edi
	jmp	.L869
	.p2align 4,,10
	.p2align 3
.L890:

	movq	$0, 16(%rsp)
	.p2align 4,,10
	.p2align 3
.L865:

	xorl	%eax, %eax
	movl	%r13d, %ecx
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movl	$318, %edi
# WAS call	syscall@PLT
	call	.Lbcm_redirector_syscall
	cmpq	$-1, %rax
	jne	.L864
	cmpl	$4, (%r15)
	je	.L865
	cmpq	$8, 16(%rsp)
	ja	.L870
	cmpb	$0, 31(%rsp)
	jne	.L870
	leaq	(%r12,%r12,4), %r12
	movl	$999999999, %eax
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	$0, 32(%rsp)
	addq	%r12, %r12
	cmpq	%rax, %r12
	cmovg	%rax, %r12
	movq	%r12, 40(%rsp)
# WAS call	nanosleep@PLT
	call	.Lbcm_redirector_nanosleep
	addq	$1, 16(%rsp)
	jmp	.L865
	.p2align 4,,10
	.p2align 3
.L872:

	movl	$1, %eax
.L858:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L891
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L889:

	.cfi_restore_state
# WAS call	wait_for_entropy_once_bss_get@PLT
	call	wait_for_entropy_once_bss_get
# WAS leaq	wait_for_entropy(%rip), %rsi
	leaq	.Lwait_for_entropy_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	jmp	.L862
	.p2align 4,,10
	.p2align 3
.L870:

	xorl	%eax, %eax
	jmp	.L858
.L891:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2652:

	.size	fill_with_entropy, .-fill_with_entropy
# WAS .section	.text.encapsulation_key_modulus_check.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	encapsulation_key_modulus_check.isra.0, @function
.Lencapsulation_key_modulus_check.isra.0_local_target:
encapsulation_key_modulus_check.isra.0:
.LFB3207:

	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$3600, %rsp
	.cfi_def_cfa_offset 3648
	movq	%fs:40, %rax
	movq	%rax, 3592(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L898
	movq	%rdi, %r11
	movq	%rsi, %rbx
	movq	%rsp, %r12
	movq	%rsi, %r14
	leaq	2432(%rsp), %rbp
	xorl	%r13d, %r13d
.L895:

	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	byte_decode_12
	call	.Lbyte_decode_12_local_target
	leaq	-384(%rbp), %rdx
	movq	%r12, %rsi
	.p2align 4,,10
	.p2align 3
.L894:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ecx
	addq	$3, %rdx
	addq	$4, %rsi
	movl	%ecx, %edi
	movb	%al, -3(%rdx)
	sarw	$8, %ax
	sall	$4, %edi
	andl	$15, %eax
	sarw	$4, %cx
	orl	%edi, %eax
	movb	%cl, -1(%rdx)
	movb	%al, -2(%rdx)
	cmpq	%rbp, %rdx
	jne	.L894
	addq	$1, %r13
	addq	$512, %r12
	addq	$384, %r14
	leaq	384(%rdx), %rbp
	cmpq	%r11, %r13
	jne	.L895
	leaq	0(%r13,%r13,2), %rdx
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	salq	$7, %rdx
	leaq	2048(%rsp), %rcx
.L896:

	movdqu	(%rbx,%rax), %xmm1
	pxor	(%rcx,%rax), %xmm1
	addq	$16, %rax
	por	%xmm1, %xmm0
	cmpq	%rax, %rdx
	jne	.L896
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
.L892:

	movq	3592(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L903
	addq	$3600, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L898:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L892
.L903:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3207:

	.size	encapsulation_key_modulus_check.isra.0, .-encapsulation_key_modulus_check.isra.0
# WAS .section	.text.encapsulation_key_modulus_check.constprop.2.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	encapsulation_key_modulus_check.constprop.2.isra.0, @function
.Lencapsulation_key_modulus_check.constprop.2.isra.0_local_target:
encapsulation_key_modulus_check.constprop.2.isra.0:
.LFB3210:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$3608, %rsp
	.cfi_def_cfa_offset 3648
	movq	%fs:40, %rax
	movq	%rax, 3592(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	2432(%rsp), %rbp
	leaq	2048(%rsp), %r11
	.p2align 4,,10
	.p2align 3
.L906:

	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	byte_decode_12
	call	.Lbyte_decode_12_local_target
	leaq	-384(%rbp), %rdx
	movq	%r12, %rsi
	.p2align 4,,10
	.p2align 3
.L905:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ecx
	addq	$3, %rdx
	addq	$4, %rsi
	movl	%ecx, %edi
	movb	%al, -3(%rdx)
	sarw	$8, %ax
	sall	$4, %edi
	andl	$15, %eax
	sarw	$4, %cx
	orl	%edi, %eax
	movb	%cl, -1(%rdx)
	movb	%al, -2(%rdx)
	cmpq	%rbp, %rdx
	jne	.L905
	addq	$512, %r12
	addq	$384, %r13
	leaq	384(%rdx), %rbp
	cmpq	%r12, %r11
	jne	.L906
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
.L907:

	movdqu	(%rbx,%rax), %xmm1
	pxor	(%r11,%rax), %xmm1
	addq	$16, %rax
	por	%xmm1, %xmm0
	cmpq	$1536, %rax
	jne	.L907
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
	movq	3592(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L913
	addq	$3608, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L913:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3210:

	.size	encapsulation_key_modulus_check.constprop.2.isra.0, .-encapsulation_key_modulus_check.constprop.2.isra.0
# WAS .section	.text.encapsulation_key_modulus_check.constprop.1.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	encapsulation_key_modulus_check.constprop.1.isra.0, @function
.Lencapsulation_key_modulus_check.constprop.1.isra.0_local_target:
encapsulation_key_modulus_check.constprop.1.isra.0:
.LFB3212:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$3608, %rsp
	.cfi_def_cfa_offset 3648
	movq	%fs:40, %rax
	movq	%rax, 3592(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	2432(%rsp), %rbp
	leaq	1536(%rsp), %r11
	.p2align 4,,10
	.p2align 3
.L916:

	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	byte_decode_12
	call	.Lbyte_decode_12_local_target
	leaq	-384(%rbp), %rdx
	movq	%r12, %rsi
	.p2align 4,,10
	.p2align 3
.L915:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ecx
	addq	$3, %rdx
	addq	$4, %rsi
	movl	%ecx, %edi
	movb	%al, -3(%rdx)
	sarw	$8, %ax
	sall	$4, %edi
	andl	$15, %eax
	sarw	$4, %cx
	orl	%edi, %eax
	movb	%cl, -1(%rdx)
	movb	%al, -2(%rdx)
	cmpq	%rbp, %rdx
	jne	.L915
	addq	$512, %r12
	addq	$384, %r13
	leaq	384(%rdx), %rbp
	cmpq	%r12, %r11
	jne	.L916
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	leaq	2048(%rsp), %rdx
.L917:

	movdqu	(%rbx,%rax), %xmm1
	pxor	(%rdx,%rax), %xmm1
	addq	$16, %rax
	por	%xmm1, %xmm0
	cmpq	$1152, %rax
	jne	.L917
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
	movq	3592(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L923
	addq	$3608, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L923:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3212:

	.size	encapsulation_key_modulus_check.constprop.1.isra.0, .-encapsulation_key_modulus_check.constprop.1.isra.0
# WAS .section	.text.encapsulation_key_modulus_check.constprop.0.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	encapsulation_key_modulus_check.constprop.0.isra.0, @function
.Lencapsulation_key_modulus_check.constprop.0.isra.0_local_target:
encapsulation_key_modulus_check.constprop.0.isra.0:
.LFB3214:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$3608, %rsp
	.cfi_def_cfa_offset 3648
	movq	%fs:40, %rax
	movq	%rax, 3592(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	2432(%rsp), %rbp
	leaq	1024(%rsp), %r11
	.p2align 4,,10
	.p2align 3
.L926:

	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	byte_decode_12
	call	.Lbyte_decode_12_local_target
	leaq	-384(%rbp), %rdx
	movq	%r12, %rsi
	.p2align 4,,10
	.p2align 3
.L925:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ecx
	addq	$3, %rdx
	addq	$4, %rsi
	movl	%ecx, %edi
	movb	%al, -3(%rdx)
	sarw	$8, %ax
	sall	$4, %edi
	andl	$15, %eax
	sarw	$4, %cx
	orl	%edi, %eax
	movb	%cl, -1(%rdx)
	movb	%al, -2(%rdx)
	cmpq	%rbp, %rdx
	jne	.L925
	addq	$512, %r12
	addq	$384, %r13
	leaq	384(%rdx), %rbp
	cmpq	%r12, %r11
	jne	.L926
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	leaq	2048(%rsp), %rdx
.L927:

	movdqu	(%rbx,%rax), %xmm1
	pxor	(%rdx,%rax), %xmm1
	addq	$16, %rax
	por	%xmm1, %xmm0
	cmpq	$768, %rax
	jne	.L927
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
	movq	3592(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L933
	addq	$3608, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L933:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3214:

	.size	encapsulation_key_modulus_check.constprop.0.isra.0, .-encapsulation_key_modulus_check.constprop.0.isra.0
# WAS .section	.text.EC_KEY_OpenSSL_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_KEY_OpenSSL_init, @function
.LEC_KEY_OpenSSL_init_local_target:
EC_KEY_OpenSSL_init:
.LFB1863:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_KEY_OpenSSL_storage_bss_get@PLT
	call	EC_KEY_OpenSSL_storage_bss_get
	pxor	%xmm0, %xmm0
	movq	$0, 32(%rax)
	movups	%xmm0, (%rax)
	movups	%xmm0, 16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1863:

	.size	EC_KEY_OpenSSL_init, .-EC_KEY_OpenSSL_init
# WAS .section	.text.RSA_get_default_method_init,"ax",@progbits
.text
	.p2align 4
	.type	RSA_get_default_method_init, @function
.LRSA_get_default_method_init_local_target:
RSA_get_default_method_init:
.LFB2763:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	RSA_get_default_method_storage_bss_get@PLT
	call	RSA_get_default_method_storage_bss_get
	leaq	8(%rax), %rdi
	movq	$0, (%rax)
	andq	$-8, %rdi
	movq	$0, 80(%rax)
	subq	%rdi, %rax
	leal	88(%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2763:

	.size	RSA_get_default_method_init, .-RSA_get_default_method_init
# WAS .section	.text.maybe_rshift1_words,"ax",@progbits
.text
	.p2align 4
	.type	maybe_rshift1_words, @function
.Lmaybe_rshift1_words_local_target:
maybe_rshift1_words:
.LFB980:

	.cfi_startproc
	movq	%rsi, %r10
	movq	%rcx, %r8
	movq	%rdx, %rsi
	testq	%rcx, %rcx
	je	.L938
	leaq	-1(%rcx), %r9
	cmpq	$1, %rcx
	je	.L947
	leaq	-2(%rcx), %rax
	cmpq	$1, %rax
	jbe	.L951
	movq	%rdx, %rax
	subq	%rdi, %rax
	subq	$8, %rax
	cmpq	$8, %rax
	ja	.L943
.L951:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L944:

	movq	(%rdi,%rax,8), %rcx
	addq	$1, %rax
	movq	(%rdi,%rax,8), %rdx
	shldq	$63, %rcx, %rdx
	movq	%rdx, -8(%rsi,%rax,8)
	cmpq	%rax, %r9
	jne	.L944
	.p2align 4,,10
	.p2align 3
.L947:

	leaq	0(,%r8,8), %rdx
	movq	%r10, %r9
	movq	-8(%rdi,%rdx), %rax
	notq	%r9
	shrq	%rax
	movq	%rax, -8(%rsi,%rdx)
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L941:

	movq	(%rsi,%rax,8), %rdx
	movq	(%rdi,%rax,8), %rcx
	andq	%r10, %rdx
	andq	%r9, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L941
.L938:

	ret
	.p2align 4,,10
	.p2align 3
.L943:

	movq	%r9, %rdx
	xorl	%eax, %eax
	shrq	%rdx
	salq	$4, %rdx
	.p2align 4,,10
	.p2align 3
.L945:

	movdqu	(%rdi,%rax), %xmm0
	movdqu	8(%rdi,%rax), %xmm1
	psrlq	$1, %xmm0
	psllq	$63, %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, (%rsi,%rax)
	addq	$16, %rax
	cmpq	%rax, %rdx
	jne	.L945
	movq	%r9, %rdx
	andq	$-2, %rdx
	andl	$1, %r9d
	je	.L947
	movq	8(%rdi,%rdx,8), %rcx
	movq	(%rdi,%rdx,8), %rax
	shrdq	$1, %rcx, %rax
	movq	%rax, (%rsi,%rdx,8)
	jmp	.L947
	.cfi_endproc
.LFE980:

	.size	maybe_rshift1_words, .-maybe_rshift1_words
# WAS .section	.text.maybe_rshift1_words_carry,"ax",@progbits
.text
	.p2align 4
	.type	maybe_rshift1_words_carry, @function
.Lmaybe_rshift1_words_carry_local_target:
maybe_rshift1_words_carry:
.LFB981:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r11
	movq	%rsi, %rbp
	movq	%rcx, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%r8, %rcx
	movq	%r8, %rbx
	movq	%r11, %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	maybe_rshift1_words
	call	.Lmaybe_rshift1_words_local_target
	testq	%rbx, %rbx
	je	.L958
	andq	%rbp, %r11
	salq	$63, %r11
	orq	%r11, -8(%rdi,%rbx,8)
.L958:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE981:

	.size	maybe_rshift1_words_carry, .-maybe_rshift1_words_carry
# WAS .section	.text.gcm_gmult_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	gcm_gmult_nohw
	.hidden	gcm_gmult_nohw
	.type	gcm_gmult_nohw, @function
.Lgcm_gmult_nohw_local_target:
gcm_gmult_nohw:
.LFB2576:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	movq	8(%rsi), %rdx
	movq	(%rsi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	movq	8(%rdi), %rax
	bswap	%rax
	movq	%rax, (%rsp)
	movq	(%rdi), %rax
	movq	%rsp, %rdi
	bswap	%rax
	movq	%rax, 8(%rsp)
# WAS call	gcm_polyval_nohw.isra.0
	call	.Lgcm_polyval_nohw.isra.0_local_target
	movq	8(%rsp), %rax
	bswap	%rax
	movq	%rax, (%rbx)
	movq	(%rsp), %rax
	bswap	%rax
	movq	%rax, 8(%rbx)
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L967
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L967:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2576:

	.size	gcm_gmult_nohw, .-gcm_gmult_nohw
# WAS .section	.text.ec_GFp_nistp521_felem_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_felem_mul, @function
.Lec_GFp_nistp521_felem_mul_local_target:
ec_GFp_nistp521_felem_mul:
.LFB2057:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$248, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	80(%rsp), %r13
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	movq	%rbp, %rsi
	movq	%r13, %rdi
	leaq	160(%rsp), %rbp
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L973
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L970:

	movq	$0, 64(%rbx)
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L974
	addq	$248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L973:

	.cfi_restore_state
# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L970
.L974:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2057:

	.size	ec_GFp_nistp521_felem_mul, .-ec_GFp_nistp521_felem_mul
# WAS .section	.text.ecp_nistz256_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_dbl, @function
.Lecp_nistz256_dbl_local_target:
ecp_nistz256_dbl:
.LFB2007:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
	subq	$112, %rsp
	.cfi_def_cfa_offset 128
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movdqu	72(%rdx), %xmm2
	movdqu	88(%rdx), %xmm3
	movq	%rsp, %rdi
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movdqu	144(%rdx), %xmm4
	movq	%rdi, %rsi
	movaps	%xmm0, (%rsp)
	movdqu	160(%rdx), %xmm5
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm3, 48(%rsp)
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 80(%rsp)
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movdqa	(%rsp), %xmm6
	movdqa	16(%rsp), %xmm7
	movdqa	32(%rsp), %xmm0
	movdqa	48(%rsp), %xmm1
	movdqa	64(%rsp), %xmm2
	movdqa	80(%rsp), %xmm3
	movups	%xmm6, (%rbx)
	movups	%xmm7, 16(%rbx)
	movups	%xmm0, 72(%rbx)
	movups	%xmm1, 88(%rbx)
	movups	%xmm2, 144(%rbx)
	movups	%xmm3, 160(%rbx)
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L978
	addq	$112, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L978:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2007:

	.size	ecp_nistz256_dbl, .-ecp_nistz256_dbl
# WAS .section	.text.ec_GFp_nistp521_felem_sqr,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_felem_sqr, @function
.Lec_GFp_nistp521_felem_sqr_local_target:
ec_GFp_nistp521_felem_sqr:
.LFB2058:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$160, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	80(%rsp), %rbp
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L984
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L981:

	movq	$0, 64(%rbx)
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L985
	addq	$160, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L984:

	.cfi_restore_state
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L981
.L985:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2058:

	.size	ec_GFp_nistp521_felem_sqr, .-ec_GFp_nistp521_felem_sqr
# WAS .section	.text.gcm_ghash_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	gcm_ghash_nohw
	.hidden	gcm_ghash_nohw
	.type	gcm_ghash_nohw, @function
.Lgcm_ghash_nohw_local_target:
gcm_ghash_nohw:
.LFB2577:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	(%rdi), %rdx
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	movq	8(%rdi), %rax
	bswap	%rdx
	movq	%rdx, %xmm3
	movq	%rdx, 8(%rsp)
	bswap	%rax
	movq	%rax, %xmm1
	movq	%rax, (%rsp)
	punpcklqdq	%xmm3, %xmm1
	cmpq	$15, %rcx
	jbe	.L987
	subq	$16, %rcx
	movq	(%rsi), %r13
	movq	8(%rsi), %r12
	movq	%rsp, %rbx
	andq	$-16, %rcx
	leaq	16(%r15,%rcx), %rbp
	jmp	.L989
	.p2align 4,,10
	.p2align 3
.L988:

	movdqa	(%rsp), %xmm1
.L989:

	movq	8(%r15), %rax
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	addq	$16, %r15
	bswap	%rax
	movq	%rax, %xmm0
	movq	-16(%r15), %rax
	bswap	%rax
	movq	%rax, %xmm2
	punpcklqdq	%xmm2, %xmm0
	pxor	%xmm1, %xmm0
	movaps	%xmm0, (%rsp)
# WAS call	gcm_polyval_nohw.isra.0
	call	.Lgcm_polyval_nohw.isra.0_local_target
	cmpq	%r15, %rbp
	jne	.L988
	movq	8(%rsp), %rdx
	movq	(%rsp), %rax
.L987:

	bswap	%rdx
	bswap	%rax
	movq	%rdx, (%r14)
	movq	%rax, 8(%r14)
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L992
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L992:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2577:

	.size	gcm_ghash_nohw, .-gcm_ghash_nohw
# WAS .section	.text.ecp_nistz256_add,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_add, @function
.Lecp_nistz256_add_local_target:
ecp_nistz256_add:
.LFB2006:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
	subq	$208, %rsp
	.cfi_def_cfa_offset 224
	movdqu	(%rdx), %xmm0
	movdqu	(%rcx), %xmm6
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movdqu	16(%rdx), %xmm1
	movdqu	72(%rdx), %xmm2
	movq	%rsp, %rdi
	movdqu	88(%rdx), %xmm3
	movdqu	144(%rdx), %xmm4
	movaps	%xmm0, (%rsp)
	movq	%rdi, %rsi
	movdqu	16(%rcx), %xmm7
	movdqu	72(%rcx), %xmm0
	movaps	%xmm1, 16(%rsp)
	movdqu	160(%rdx), %xmm5
	movdqu	88(%rcx), %xmm1
	movaps	%xmm2, 32(%rsp)
	leaq	96(%rsp), %rdx
	movdqu	144(%rcx), %xmm2
	movaps	%xmm3, 48(%rsp)
	movdqu	160(%rcx), %xmm3
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm6, 96(%rsp)
	movaps	%xmm7, 112(%rsp)
	movaps	%xmm0, 128(%rsp)
	movaps	%xmm1, 144(%rsp)
	movaps	%xmm2, 160(%rsp)
	movaps	%xmm3, 176(%rsp)
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movdqa	(%rsp), %xmm4
	movdqa	16(%rsp), %xmm5
	movdqa	32(%rsp), %xmm6
	movdqa	48(%rsp), %xmm7
	movdqa	64(%rsp), %xmm0
	movdqa	80(%rsp), %xmm1
	movups	%xmm4, (%rbx)
	movups	%xmm5, 16(%rbx)
	movups	%xmm6, 72(%rbx)
	movups	%xmm7, 88(%rbx)
	movups	%xmm0, 144(%rbx)
	movups	%xmm1, 160(%rbx)
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L996
	addq	$208, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L996:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2006:

	.size	ecp_nistz256_add, .-ecp_nistz256_add
# WAS .section	.text.CRYPTO_cbc128_encrypt.part.0,"ax",@progbits
.text
	.p2align 4
	.type	CRYPTO_cbc128_encrypt.part.0, @function
.LCRYPTO_cbc128_encrypt.part.0_local_target:
CRYPTO_cbc128_encrypt.part.0:
.LFB3042:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%rsi, 16(%rsp)
	movq	%r8, 8(%rsp)
	cmpq	$15, %rdx
	jbe	.L1034
	leaq	-16(%rdx), %rax
	movq	%rsi, %r12
	movq	%r8, %rdx
	movq	%rax, 32(%rsp)
	andq	$-16, %rax
	addq	$16, %rax
	movq	%rax, 40(%rsp)
	leaq	(%rdi,%rax), %r14
	jmp	.L999
	.p2align 4,,10
	.p2align 3
.L1035:

	movq	%rax, %r12
.L999:

	movq	0(%rbp), %rax
	xorq	(%rdx), %rax
	addq	$16, %rbp
	movq	%r12, %rsi
	movq	%rax, (%r12)
	movq	-8(%rbp), %rax
	movq	%r12, %rdi
	xorq	8(%rdx), %rax
	movq	%r15, %rdx
	movq	%rax, 8(%r12)
	call	*%r13
	leaq	16(%r12), %rax
	movq	%r12, %rdx
	cmpq	%r14, %rbp
	jne	.L1035
	movq	32(%rsp), %r12
	movq	16(%rsp), %rax
	andl	$15, %ebx
	movq	40(%rsp), %rbp
	andq	$-16, %r12
	addq	%rax, %rbp
	addq	%r12, %rax
.L998:

	testq	%rbx, %rbx
	je	.L1052
	leaq	-1(%rbx), %rsi
	cmpq	$2, %rsi
	jbe	.L1027
	leaq	-1(%rbp), %rdx
	movq	%rdx, %rdi
	subq	%rax, %rdi
	cmpq	$6, %rdi
	jbe	.L1030
	subq	%r14, %rdx
	cmpq	$6, %rdx
	jbe	.L1030
	cmpq	$6, %rsi
	jbe	.L1049
	movq	(%r14), %xmm0
	movq	(%rax), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, 0(%rbp)
	cmpq	$8, %rbx
	je	.L1116
	leaq	-9(%rbx), %rdx
	leaq	-8(%rbx), %rsi
	cmpq	$2, %rdx
	movl	$8, %edx
	jbe	.L1000
.L1020:

	movd	(%rax,%rdx), %xmm0
	movd	(%r14,%rdx), %xmm2
	pxor	%xmm2, %xmm0
	movd	%xmm0, 0(%rbp,%rdx)
	cmpq	$4, %rsi
	je	.L1001
	addq	$4, %rdx
.L1000:

	movzbl	(%r14,%rdx), %esi
	xorb	(%rax,%rdx), %sil
	movb	%sil, 0(%rbp,%rdx)
	leaq	1(%rdx), %rsi
	cmpq	%rbx, %rsi
	jnb	.L1001
	movzbl	1(%r14,%rdx), %esi
	xorb	1(%rax,%rdx), %sil
	movb	%sil, 1(%rbp,%rdx)
	leaq	2(%rdx), %rsi
	cmpq	%rbx, %rsi
	jnb	.L1001
	movzbl	2(%r14,%rdx), %ecx
	xorb	2(%rax,%rdx), %cl
	movb	%cl, 2(%rbp,%rdx)
.L1001:

	movl	$15, %ecx
	subq	%rbx, %rcx
	cmpq	$2, %rcx
	ja	.L1117
	movzbl	(%rax,%rbx), %edx
	movb	%dl, 0(%rbp,%rbx)
	leaq	1(%rbx), %rdx
	cmpq	$15, %rbx
	jne	.L1033
	.p2align 4,,10
	.p2align 3
.L1019:

	movq	%r15, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	call	*%r13
.L1026:

	movdqu	0(%rbp), %xmm3
	movq	8(%rsp), %rax
	movaps	%xmm3, 16(%rsp)
	movups	%xmm3, (%rax)
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1030:

	.cfi_restore_state
	movzbl	(%r14), %edx
	xorb	(%rax), %dl
	movb	%dl, 0(%rbp)
	movzbl	1(%rax), %edx
	xorb	1(%r14), %dl
	movb	%dl, 1(%rbp)
.L1005:

	movzbl	2(%r14), %edx
	xorb	2(%rax), %dl
	movb	%dl, 2(%rbp)
	cmpq	$3, %rbx
	je	.L1118
	movzbl	3(%r14), %edx
	xorb	3(%rax), %dl
	movb	%dl, 3(%rbp)
	cmpq	$4, %rbx
	je	.L1119
	movzbl	4(%r14), %edx
	xorb	4(%rax), %dl
	movb	%dl, 4(%rbp)
	cmpq	$5, %rbx
	je	.L1120
	movzbl	5(%r14), %edx
	xorb	5(%rax), %dl
	movb	%dl, 5(%rbp)
	cmpq	$6, %rbx
	je	.L1121
	movzbl	6(%r14), %edx
	xorb	6(%rax), %dl
	movb	%dl, 6(%rbp)
	cmpq	$7, %rbx
	je	.L1122
	movzbl	7(%r14), %edx
	xorb	7(%rax), %dl
	movb	%dl, 7(%rbp)
	cmpq	$8, %rbx
	je	.L1116
	movzbl	8(%r14), %edx
	xorb	8(%rax), %dl
	movb	%dl, 8(%rbp)
	cmpq	$9, %rbx
	je	.L1123
	movzbl	9(%r14), %edx
	xorb	9(%rax), %dl
	movb	%dl, 9(%rbp)
	cmpq	$10, %rbx
	je	.L1124
	movzbl	10(%r14), %edx
	xorb	10(%rax), %dl
	movb	%dl, 10(%rbp)
	cmpq	$11, %rbx
	je	.L1125
	movzbl	11(%r14), %edx
	xorb	11(%rax), %dl
	movb	%dl, 11(%rbp)
	cmpq	$12, %rbx
	je	.L1126
	movzbl	12(%r14), %edx
	xorb	12(%rax), %dl
	movb	%dl, 12(%rbp)
	cmpq	$13, %rbx
	je	.L1017
	movzbl	13(%r14), %edx
	xorb	13(%rax), %dl
	movb	%dl, 13(%rbp)
	cmpq	$15, %rbx
	jne	.L1018
	movzbl	14(%r14), %edx
	xorb	14(%rax), %dl
	movb	%dl, 14(%rbp)
	movzbl	15(%rax), %eax
	movb	%al, 15(%rbp)
	jmp	.L1019
	.p2align 4,,10
	.p2align 3
.L1117:

	leaq	0(%rbp,%rbx), %rdx
	leaq	1(%rax,%rbx), %rdi
	movq	%rdx, %rsi
	subq	%rdi, %rsi
	cmpq	$6, %rsi
	ja	.L1127
.L1004:

	movzbl	(%rax,%rbx), %edx
	movb	%dl, 0(%rbp,%rbx)
	movzbl	1(%rax,%rbx), %edx
	movb	%dl, 1(%rbp,%rbx)
	leaq	2(%rbx), %rdx
.L1031:

	movzbl	(%rax,%rdx), %ecx
	movb	%cl, 0(%rbp,%rdx)
	cmpq	$13, %rbx
	je	.L1019
	movzbl	3(%rax,%rbx), %edx
	movb	%dl, 3(%rbp,%rbx)
	cmpq	$12, %rbx
	je	.L1019
	movzbl	4(%rax,%rbx), %edx
	movb	%dl, 4(%rbp,%rbx)
	cmpq	$11, %rbx
	je	.L1019
	movzbl	5(%rax,%rbx), %edx
	movb	%dl, 5(%rbp,%rbx)
	cmpq	$10, %rbx
	je	.L1019
	movzbl	6(%rax,%rbx), %edx
	movb	%dl, 6(%rbp,%rbx)
	cmpq	$9, %rbx
	je	.L1019
	movzbl	7(%rax,%rbx), %edx
	movb	%dl, 7(%rbp,%rbx)
	cmpq	$8, %rbx
	je	.L1019
	movzbl	8(%rax,%rbx), %edx
	movb	%dl, 8(%rbp,%rbx)
	cmpq	$7, %rbx
	je	.L1019
	movzbl	9(%rax,%rbx), %edx
	movb	%dl, 9(%rbp,%rbx)
	cmpq	$6, %rbx
	je	.L1019
	movzbl	10(%rax,%rbx), %edx
	movb	%dl, 10(%rbp,%rbx)
	cmpq	$5, %rbx
	je	.L1019
	movzbl	11(%rax,%rbx), %edx
	movb	%dl, 11(%rbp,%rbx)
	cmpq	$4, %rbx
	je	.L1019
	movzbl	12(%rax,%rbx), %edx
	movb	%dl, 12(%rbp,%rbx)
	cmpq	$3, %rbx
	je	.L1019
	movzbl	13(%rax,%rbx), %edx
	movb	%dl, 13(%rbp,%rbx)
	cmpq	$1, %rbx
	jne	.L1019
	movzbl	15(%rax), %eax
	movb	%al, 15(%rbp)
	jmp	.L1019
	.p2align 4,,10
	.p2align 3
.L1127:

	movl	$16, %esi
	subq	%rbx, %rsi
	cmpq	$6, %rcx
	jbe	.L1128
.L1003:

	movq	(%rax,%rbx), %rcx
	movq	%rcx, (%rdx)
	cmpq	$8, %rsi
	je	.L1019
	leaq	8(%rbx), %rcx
	movl	$15, %esi
	movl	$16, %edx
	subq	%rcx, %rsi
	movq	%rcx, %rbx
	subq	%rcx, %rdx
	cmpq	$2, %rsi
	jbe	.L1024
.L1032:

	movl	(%rax,%rbx), %esi
	movl	%esi, 0(%rbp,%rbx)
	testb	$3, %dl
	je	.L1019
	andq	$-4, %rdx
	addq	%rdx, %rcx
.L1024:

	movzbl	(%rax,%rcx), %edx
	movb	%dl, 0(%rbp,%rcx)
	cmpq	$15, %rcx
	je	.L1019
	movzbl	1(%rax,%rcx), %edx
	movb	%dl, 1(%rbp,%rcx)
	cmpq	$14, %rcx
	je	.L1019
	movzbl	2(%rax,%rcx), %eax
	movb	%al, 2(%rbp,%rcx)
	jmp	.L1019
	.p2align 4,,10
	.p2align 3
.L1116:

	leaq	8(%rbp), %rdx
	leaq	9(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$8, %esi
	jmp	.L1003
	.p2align 4,,10
	.p2align 3
.L1027:

	movzbl	(%r14), %edx
	xorb	(%rax), %dl
	movb	%dl, 0(%rbp)
	cmpq	$1, %rbx
	jne	.L1002
	leaq	1(%rbp), %rdx
	leaq	2(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$15, %esi
	jmp	.L1003
.L1052:

	movq	%rax, %rbp
	jmp	.L1026
.L1118:

	leaq	3(%rbp), %rdx
	leaq	4(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$13, %esi
	jmp	.L1003
.L1049:

	movq	%rbx, %rsi
	xorl	%edx, %edx
	jmp	.L1020
.L1119:

	leaq	4(%rbp), %rdx
	leaq	5(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$12, %esi
	jmp	.L1003
.L1120:

	leaq	5(%rbp), %rdx
	leaq	6(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$11, %esi
	jmp	.L1003
.L1121:

	leaq	6(%rbp), %rdx
	leaq	7(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$10, %esi
	jmp	.L1003
.L1122:

	leaq	7(%rbp), %rdx
	leaq	8(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$9, %esi
	jmp	.L1003
.L1123:

	movq	%rax, %rdx
	notq	%rdx
	addq	%rbp, %rdx
	cmpq	$6, %rdx
	jbe	.L1004
	movl	$9, %ecx
.L1013:

	movl	$16, %edx
	subq	%rbx, %rdx
	jmp	.L1032
.L1124:

	movq	%rax, %rdx
	notq	%rdx
	addq	%rbp, %rdx
	cmpq	$6, %rdx
	jbe	.L1004
	movl	$10, %ecx
	jmp	.L1013
.L1125:

	movq	%rax, %rdx
	notq	%rdx
	addq	%rbp, %rdx
	cmpq	$6, %rdx
	jbe	.L1004
	movl	$11, %ecx
	jmp	.L1013
.L1126:

	movq	%rax, %rdx
	notq	%rdx
	addq	%rbp, %rdx
	cmpq	$6, %rdx
	jbe	.L1004
	movl	$12, %ecx
	jmp	.L1013
.L1017:

	movzbl	13(%rax), %edx
	movb	%dl, 13(%rbp)
	movl	$14, %edx
.L1033:

	movzbl	(%rax,%rdx), %ecx
	movb	%cl, 0(%rbp,%rdx)
	cmpq	$14, %rbx
	je	.L1019
	movl	$15, %edx
	jmp	.L1031
	.p2align 4,,10
	.p2align 3
.L1018:

	movzbl	14(%rax), %edx
	movb	%dl, 14(%rbp)
	movl	$15, %edx
	jmp	.L1033
.L1034:

	movq	16(%rsp), %rbp
	movq	%r8, %rax
	movq	%rdi, %r14
	jmp	.L998
.L1128:

	movq	%rbx, %rcx
	jmp	.L1013
.L1002:

	movzbl	1(%r14), %edx
	xorb	1(%rax), %dl
	movb	%dl, 1(%rbp)
	cmpq	$3, %rbx
	je	.L1005
	leaq	2(%rbp), %rdx
	leaq	3(%rax), %rsi
	movq	%rdx, %rcx
	subq	%rsi, %rcx
	cmpq	$6, %rcx
	jbe	.L1004
	movl	$14, %esi
	jmp	.L1003
	.cfi_endproc
.LFE3042:

	.size	CRYPTO_cbc128_encrypt.part.0, .-CRYPTO_cbc128_encrypt.part.0
# WAS .section	.text.ecp_nistz256_inv0_mod_ord,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_inv0_mod_ord, @function
.Lecp_nistz256_inv0_mod_ord_local_target:
ecp_nistz256_inv0_mod_ord:
.LFB2008:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$504, %rsp
	.cfi_def_cfa_offset 560
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movl	$1, %edx
	movq	%fs:40, %rax
	movq	%rax, 488(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %r12
	movq	%rsp, %rbp
	leaq	64(%rsp), %r14
	movq	%r12, %rdi
	movq	%rbp, %rsi
	movaps	%xmm0, (%rsp)
	leaq	96(%rsp), %r13
	movaps	%xmm1, 16(%rsp)
	leaq	160(%rsp), %r15
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r12, %rdx
	movq	%r13, %rdi
	movq	%r14, %rsi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r12, %rdx
	movq	%r13, %rsi
	leaq	128(%rsp), %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r13, %rsi
	movq	%r15, %rdi
	movl	$1, %edx
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	leaq	224(%rsp), %r12
	movq	%r13, %rdx
	movq	%r15, %rsi
	leaq	192(%rsp), %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r15, %rsi
	movq	%r12, %rdi
	movl	$1, %edx
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	%rbp, %rdx
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	leaq	256(%rsp), %r15
	movq	%r12, %rsi
	movl	$1, %edx
	movq	%r15, %rdi
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r13, %rdx
	leaq	288(%rsp), %rdi
	leaq	320(%rsp), %r13
	movq	%r15, %rsi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r12, %rdx
	movq	%r13, %rdi
	movq	%r15, %rsi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	leaq	352(%rsp), %r12
	movq	%r13, %rsi
	movl	$2, %edx
	movq	%r12, %rdi
	leaq	384(%rsp), %r13
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	%r14, %rdx
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r12, %rsi
	movq	%r13, %rdi
	movl	$8, %edx
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	leaq	416(%rsp), %r12
	movq	%r13, %rsi
	movl	$16, %edx
	movq	%r12, %rdi
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	movq	%r12, %rsi
	movl	$64, %edx
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
# WAS leaq	kChain.70(%rip), %r13
	leaq	.LkChain.70_local_target(%rip), %r13
	leaq	54(%r13), %r12
	.p2align 4,,10
	.p2align 3
.L1130:

	movzbl	0(%r13), %edx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	addq	$2, %r13
# WAS call	ecp_nistz256_ord_sqr_mont@PLT
	call	.Lecp_nistz256_ord_sqr_mont_local_target
	movzbl	-1(%r13), %edx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	salq	$5, %rdx
	addq	%rbp, %rdx
# WAS call	ecp_nistz256_ord_mul_mont@PLT
	call	.Lecp_nistz256_ord_mul_mont_local_target
	cmpq	%r12, %r13
	jne	.L1130
	movq	488(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1134
	addq	$504, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1134:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2008:

	.size	ecp_nistz256_inv0_mod_ord, .-ecp_nistz256_inv0_mod_ord
# WAS .section	.text.maybe_add_words,"ax",@progbits
.text
	.p2align 4
	.type	maybe_add_words, @function
.Lmaybe_add_words_local_target:
maybe_add_words:
.LFB982:

	.cfi_startproc
	movq	%rsi, %r9
	movq	%rcx, %r10
	xorl	%eax, %eax
	testq	%r8, %r8
	je	.L1135
	movq	%r8, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%rsi	
	adcq	(%rdx,%rax,8),%rsi	
	movq	%rsi,(%r10,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	xorl	%edx, %edx
	movq	%r9, %r11
	movq	%rsi, %rax
	andq	%r9, %rax
	notq	%r11
	.p2align 4,,10
	.p2align 3
.L1137:

	movq	(%r10,%rdx,8), %rcx
	movq	(%rdi,%rdx,8), %rsi
	andq	%r9, %rcx
	andq	%r11, %rsi
	orq	%rsi, %rcx
	movq	%rcx, (%rdi,%rdx,8)
	addq	$1, %rdx
	cmpq	%rdx, %r8
	jne	.L1137
	andl	$1, %eax
.L1135:

	ret
	.cfi_endproc
.LFE982:

	.size	maybe_add_words, .-maybe_add_words
# WAS .section	.rodata.bn_from_montgomery_in_place.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC85:

	.string	"/aws-lc/crypto/fipsmodule/bn/montgomery.c"
# WAS .section	.text.bn_from_montgomery_in_place,"ax",@progbits
.text
	.p2align 4
	.type	bn_from_montgomery_in_place, @function
.Lbn_from_montgomery_in_place_local_target:
bn_from_montgomery_in_place:
.LFB1001:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movslq	32(%r8), %rbp
	movq	24(%r8), %rbx
	movq	%rdx, 8(%rsp)
	cmpq	%rsi, %rbp
	jne	.L1142
	leaq	(%rbp,%rbp), %rax
	cmpq	%rcx, %rax
	je	.L1143
.L1142:

	movl	$326, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1143:

	.cfi_restore_state
	movq	48(%r8), %rax
	movq	%rdi, %r15
	movq	%rdx, %r14
	xorl	%r12d, %r12d
	xorl	%r13d, %r13d
	movq	%rax, (%rsp)
	testq	%rbp, %rbp
	je	.L1148
	.p2align 4,,10
	.p2align 3
.L1146:

	movq	(%rsp), %rcx
	imulq	(%r14), %rcx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	movq	%rbp, %rdx
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	(%r14,%rbp,8), %rsi
	xorl	%ecx, %ecx
	addq	%r13, %rax
	addq	%rsi, %rax
	cmpq	%rax, %rsi
	movq	%rax, (%r14,%rbp,8)
	setne	%cl
	orq	%r13, %rcx
	xorl	%r13d, %r13d
	cmpq	%rax, %rsi
	movq	%r12, %rsi
	setnb	%r13b
	leaq	1(%r12), %r12
	addq	$8, %r14
	andq	%rcx, %r13
	cmpq	%r12, %rbp
	jne	.L1146
	movq	8(%rsp), %rax
	movq	%rbp, %rcx
	leaq	(%rax,%rbp,8), %rdi
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%rdx	
	sbbq	(%rbx,%rax,8),%rdx	
	movq	%rdx,(%r15,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	andl	$1, %edx
	xorl	%eax, %eax
	subq	%rdx, %r13
	movq	%r13, %r8
	notq	%r8
	.p2align 4,,10
	.p2align 3
.L1147:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r15,%rax,8), %rcx
	andq	%r13, %rdx
	andq	%r8, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%r15,%rax,8)
	movq	%rax, %rdx
	addq	$1, %rax
	cmpq	%rdx, %rsi
	jne	.L1147
.L1148:

	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1001:

	.size	bn_from_montgomery_in_place, .-bn_from_montgomery_in_place
# WAS .section	.text.bn_sub_part_words,"ax",@progbits
.text
	.p2align 4
	.type	bn_sub_part_words, @function
.Lbn_sub_part_words_local_target:
bn_sub_part_words:
.LFB1018:

	.cfi_startproc
	movq	%rsi, %r9
	movslq	%ecx, %rsi
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L1154
	movq	%rsi, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%r9,%rax,8),%r10	
	sbbq	(%rdx,%rax,8),%r10	
	movq	%r10,(%rdi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	movq	%r10, %rax
	andl	$1, %eax
.L1154:

	testl	%r8d, %r8d
	je	.L1153
	leaq	0(,%rsi,8), %rcx
	addq	%rcx, %rdi
	testl	%r8d, %r8d
	js	.L1156
	movslq	%r8d, %r8
	xorl	%edx, %edx
	leaq	0(,%r8,8), %rsi
	leaq	(%r9,%rcx), %r8
	.p2align 4,,10
	.p2align 3
.L1157:

	movq	(%r8,%rdx), %rcx
	movq	%rcx, %r9
	subq	%rax, %r9
	testq	%rcx, %rcx
	sete	%cl
	movq	%r9, (%rdi,%rdx)
	addq	$8, %rdx
	movzbl	%cl, %ecx
	andq	%rcx, %rax
	cmpq	%rdx, %rsi
	jne	.L1157
.L1153:

	ret
	.p2align 4,,10
	.p2align 3
.L1156:

	negl	%r8d
	leaq	(%rdx,%rcx), %r10
	xorl	%edx, %edx
	movslq	%r8d, %r8
	salq	$3, %r8
	.p2align 4,,10
	.p2align 3
.L1158:

	movq	(%r10,%rdx), %r9
	xorl	%esi, %esi
	leaq	(%r9,%rax), %rcx
	negq	%rcx
	testq	%r9, %r9
	sete	%sil
	movq	%rcx, (%rdi,%rdx)
	andq	%rax, %rsi
	xorl	%eax, %eax
	testq	%r9, %r9
	setne	%al
	addq	$8, %rdx
	orq	%rsi, %rax
	cmpq	%r8, %rdx
	jne	.L1158
	ret
	.cfi_endproc
.LFE1018:

	.size	bn_sub_part_words, .-bn_sub_part_words
# WAS .section	.text.cfbr_encrypt_block.part.0.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	cfbr_encrypt_block.part.0.constprop.0, @function
.Lcfbr_encrypt_block.part.0.constprop.0_local_target:
cfbr_encrypt_block.part.0.constprop.0:
.LFB3218:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	movq	%rcx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movl	%r8d, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	movq	%rcx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rcx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	movdqu	(%rcx), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, (%rsp)
	call	*%r9
	movzbl	0(%r13), %eax
	testl	%r12d, %r12d
	jne	.L1167
	movzbl	(%rbx), %edx
	xorl	%eax, %edx
.L1168:

	movb	%dl, 0(%rbp)
	movb	%al, 16(%rsp)
	movdqu	1(%rsp), %xmm1
	movups	%xmm1, (%rbx)
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1171
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1167:

	.cfi_restore_state
	xorb	(%rbx), %al
	movl	%eax, %edx
	jmp	.L1168
.L1171:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3218:

	.size	cfbr_encrypt_block.part.0.constprop.0, .-cfbr_encrypt_block.part.0.constprop.0
# WAS .section	.text.SSKDF.part.0,"ax",@progbits
.text
	.p2align 4
	.type	SSKDF.part.0, @function
.LSSKDF.part.0_local_target:
SSKDF.part.0:
.LFB2942:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$168, %rsp
	.cfi_def_cfa_offset 224
	movq	224(%rsp), %rax
	movq	%rdi, (%rsp)
	movq	%rax, 48(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L1188
	movq	%rdx, %rbp
	movq	%rcx, %rbx
	testq	%rcx, %rcx
	je	.L1173
	cmpq	$1073741824, %rcx
	ja	.L1174
	testq	%r8, %r8
	movq	%r8, 24(%rsp)
	je	.L1174
	leaq	-1(%r9), %rax
	movq	%r9, 32(%rsp)
	cmpq	$1073741823, %rax
	ja	.L1174
	cmpq	$1073741824, 232(%rsp)
	ja	.L1174
	movq	%rdi, %r11
	movq	%rsi, 16(%rsp)
	movq	%rsi, %rdi
	call	*(%r11)
	movq	%rax, %r13
	leaq	-1(%rax), %rax
	cmpq	$63, %rax
	ja	.L1174
	leaq	-1(%r13,%rbx), %rax
	xorl	%edx, %edx
	leaq	80(%rsp), %r14
	xorl	%r15d, %r15d
	divq	%r13
	movq	%rbp, 56(%rsp)
	leaq	76(%rsp), %rdx
	movq	%r15, %rbp
	xorl	%r12d, %r12d
	movq	48(%rsp), %r15
	movq	%rdx, 8(%rsp)
	movq	%r14, %rdx
	movq	%r13, %r14
	movq	%rdx, %r13
	movq	%rax, 40(%rsp)
	movl	$16777216, %eax
	jmp	.L1187
	.p2align 4,,10
	.p2align 3
.L1207:

	testb	$4, %al
	jne	.L1203
	testl	%eax, %eax
	je	.L1177
	movzbl	0(%r13), %esi
	movb	%sil, (%rcx)
	testb	$2, %al
	jne	.L1204
	.p2align 4,,10
	.p2align 3
.L1177:

	addq	%rax, %r12
	cmpq	%r12, %rbx
	je	.L1205
.L1184:

	movq	40(%rsp), %rax
	addq	$1, %rbp
	cmpq	%rax, %rbp
	jnb	.L1186
.L1185:

	leal	1(%rbp), %eax
	bswap	%eax
.L1187:

	movl	%eax, 76(%rsp)
	movq	%r14, %rdx
	movq	%r13, %rsi
	pushq	232(%rsp)
	.cfi_def_cfa_offset 232
	pushq	%r15
	.cfi_def_cfa_offset 240
	movq	16(%rsp), %rax
	movq	48(%rsp), %r9
	movq	40(%rsp), %r8
	movq	24(%rsp), %rcx
	movq	32(%rsp), %rdi
	call	*8(%rax)
	popq	%rdx
	.cfi_def_cfa_offset 232
	popq	%rcx
	.cfi_def_cfa_offset 224
	testl	%eax, %eax
	je	.L1206
	movq	%rbx, %rax
	subq	%r12, %rax
	cmpq	%r14, %rax
	cmova	%r14, %rax
	testq	%rax, %rax
	je	.L1177
	movq	56(%rsp), %rdi
	leaq	(%rdi,%r12), %rcx
	cmpl	$8, %eax
	jb	.L1207
	movq	0(%r13), %rsi
	leaq	8(%rcx), %r8
	movq	%r13, %r9
	andq	$-8, %r8
	movq	%rsi, (%rcx)
	movl	%eax, %esi
	movq	-8(%r13,%rsi), %rdi
	movq	%rdi, -8(%rcx,%rsi)
	subq	%r8, %rcx
	subq	%rcx, %r9
	addl	%eax, %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L1177
	andl	$-8, %ecx
	xorl	%esi, %esi
.L1182:

	movl	%esi, %edx
	addl	$8, %esi
	movq	(%r9,%rdx), %rdi
	movq	%rdi, (%r8,%rdx)
	cmpl	%ecx, %esi
	jb	.L1182
	addq	%rax, %r12
	cmpq	%r12, %rbx
	jne	.L1184
	.p2align 4,,10
	.p2align 3
.L1205:

	movl	$64, %esi
	movq	%r13, %rdi
	addq	$1, %rbp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	40(%rsp), %rax
	cmpq	%rax, %rbp
	jb	.L1185
.L1186:

	movl	$1, %eax
	jmp	.L1172
	.p2align 4,,10
	.p2align 3
.L1206:

	movl	$64, %esi
	movq	%r13, %rdi
	movq	56(%rsp), %rbp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	.p2align 4,,10
	.p2align 3
.L1174:

	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L1188:

	xorl	%eax, %eax
.L1172:

	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L1208
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1173:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L1188
	testq	%rcx, %rcx
	je	.L1188
	jmp	.L1174
	.p2align 4,,10
	.p2align 3
.L1203:

	movl	0(%r13), %esi
	movl	%esi, (%rcx)
	movl	%eax, %esi
	movl	-4(%r13,%rsi), %edi
	movl	%edi, -4(%rcx,%rsi)
	jmp	.L1177
.L1204:

	movl	%eax, %esi
	movzwl	-2(%r13,%rsi), %edi
	movw	%di, -2(%rcx,%rsi)
	jmp	.L1177
.L1208:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2942:

	.size	SSKDF.part.0, .-SSKDF.part.0
# WAS .section	.rodata.EVP_AEAD_CTX_seal.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC86:

	.string	"/aws-lc/crypto/fipsmodule/cipher/aead.c"
# WAS .section	.text.EVP_AEAD_CTX_seal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_seal
	.type	EVP_AEAD_CTX_seal, @function
.LEVP_AEAD_CTX_seal_local_target:
EVP_AEAD_CTX_seal:
.LFB1101:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movq	(%rdi), %r10
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	72(%rsp), %rbx
	movq	64(%rsp), %rdx
	movzbl	2(%r10), %eax
	movq	80(%rsp), %rcx
	addq	%rbx, %rax
	jc	.L1230
	cmpq	%rbx, %rbp
	jb	.L1231
	leaq	(%rbx,%rdx), %rax
	cmpq	%rax, %rsi
	jnb	.L1213
	leaq	0(%rbp,%rsi), %rax
	cmpq	%rax, %rdx
	jnb	.L1213
	cmpq	%rsi, %rdx
	je	.L1213
	movl	$140, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	.p2align 4,,10
	.p2align 3
.L1211:

	testq	%rbp, %rbp
	jne	.L1232
.L1215:

	xorl	%ebx, %ebx
	xorl	%eax, %eax
.L1214:

	movq	%rbx, 0(%r13)
	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L1233
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1213:

	.cfi_restore_state
	movq	%rsp, %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	leaq	(%r12,%rbx), %rax
	pushq	96(%rsp)
	.cfi_def_cfa_offset 80
	pushq	%rcx
	.cfi_def_cfa_offset 88
	movq	%rsi, %rcx
	movq	%r12, %rsi
	pushq	$0
	.cfi_def_cfa_offset 96
	pushq	$0
	.cfi_def_cfa_offset 104
	pushq	%rbx
	.cfi_def_cfa_offset 112
	pushq	%rdx
	.cfi_def_cfa_offset 120
	movq	%rax, %rdx
	pushq	%r9
	.cfi_def_cfa_offset 128
	movq	%r8, %r9
	movq	%rbp, %r8
	subq	%rbx, %r8
	call	*48(%r10)
	addq	$64, %rsp
	.cfi_def_cfa_offset 64
	testl	%eax, %eax
	je	.L1211
	addq	(%rsp), %rbx
	movl	$1, %eax
	jmp	.L1214
	.p2align 4,,10
	.p2align 3
.L1232:

	movq	%rbp, %rdx
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L1215
	.p2align 4,,10
	.p2align 3
.L1230:

	xorl	%esi, %esi
	movl	$130, %r8d
	movl	$117, %edx
	movl	$30, %edi
	leaq	.LC86(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	testq	%rbp, %rbp
	je	.L1215
	jmp	.L1232
	.p2align 4,,10
	.p2align 3
.L1231:

	xorl	%esi, %esi
	movl	$135, %r8d
	movl	$103, %edx
	movl	$30, %edi
	leaq	.LC86(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	testq	%rbp, %rbp
	je	.L1215
	jmp	.L1232
.L1233:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1101:

	.size	EVP_AEAD_CTX_seal, .-EVP_AEAD_CTX_seal
# WAS .section	.text.ecp_nistz256_point_mul_base,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_point_mul_base, @function
.Lecp_nistz256_point_mul_base_local_target:
ecp_nistz256_point_mul_base:
.LFB2003:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$424, %rsp
	.cfi_def_cfa_offset 480
	movzbl	(%rdx), %ebx
	movdqu	(%rdx), %xmm4
	movq	%rsi, 40(%rsp)
	leaq	176(%rsp), %r8
	movdqu	16(%rdx), %xmm5
	leaq	272(%rsp), %r12
	leal	(%rbx,%rbx), %edx
	andl	$254, %edx
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%r8, %rax
	movq	%rdx, %rcx
	movaps	%xmm4, 64(%rsp)
	negq	%rax
	shrq	$7, %rcx
	movaps	%xmm5, 80(%rsp)
	andl	$31, %eax
	movq	%rcx, %rsi
	movb	$0, 96(%rsp)
	leaq	(%r8,%rax), %r15
	movq	%r12, %rax
	negq	%rsi
	negq	%rax
	movq	%r15, %rdi
	leaq	32(%r15), %r13
	andl	$31, %eax
	addq	%rax, %r12
	movl	$255, %eax
	subq	%rdx, %rax
	andq	%rax, %rsi
	leaq	-1(%rcx), %rax
	andq	%rdx, %rax
	orq	%rsi, %rax
# WAS leaq	ecp_nistz256_precomputed(%rip), %rsi
	leaq	.Lecp_nistz256_precomputed_local_target(%rip), %rsi
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rdx, %rax
	leaq	(%rcx,%rax,2), %rbp
	movq	%rbp, %r14
	andl	$1, %ebp
	shrq	%r14
	movl	%r14d, %edx
# WAS call	ecp_nistz256_select_w7@PLT
	call	.Lecp_nistz256_select_w7_local_target
	leaq	64(%r12), %rax
	movq	%r13, %rsi
	movq	%r13, (%rsp)
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
	movl	$6, %r13d
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	movq	%rbp, %rsi
	movq	%r14, %rdx
	movq	24(%rsp), %rax
	negq	%rsi
	movdqa	80(%r12), %xmm3
	negq	%rdx
	movdqa	(%r15), %xmm6
	movq	%rsi, %xmm1
	leaq	-1(%rbp), %rsi
	movdqa	48(%r15), %xmm2
	orq	%rdx, %r14
	movq	%rsi, %xmm0
	punpcklqdq	%xmm1, %xmm1
	movdqa	16(%r15), %xmm7
	shrq	$63, %rdx
	punpcklqdq	%xmm0, %xmm0
	pand	%xmm1, %xmm3
	sarq	$63, %r14
	pand	64(%r12), %xmm1
	pand	%xmm0, %xmm2
	pand	32(%r15), %xmm0
	movaps	%xmm6, (%r12)
	leaq	112(%rsp), %rbp
	pxor	%xmm3, %xmm2
	movaps	%xmm7, 16(%r12)
	leaq	32(%r12), %rsi
	pxor	%xmm1, %xmm0
	movaps	%xmm2, 48(%r15)
	movdqa	48(%r15), %xmm4
	movaps	%xmm0, 32(%r12)
	movaps	%xmm0, 32(%r15)
	pxor	%xmm0, %xmm0
	movaps	%xmm4, 48(%r12)
	movaps	%xmm0, 16(%rax)
	leaq	-1(%rdx), %rax
	movq	%rdx, 64(%r12)
	movabsq	$-4294967296, %rdx
	andq	%r14, %rdx
	movq	%rsi, 32(%rsp)
	movq	%rdx, 72(%r12)
	movq	80(%r12), %rdx
	movaps	%xmm4, 48(%rsp)
	andq	%rax, %rdx
	andq	88(%r12), %rax
	xorq	%r14, %rdx
	andl	$4294967294, %r14d
	xorq	%r14, %rax
	movq	%rdx, 80(%r12)
# WAS leaq	4096+ecp_nistz256_precomputed(%rip), %r14
	leaq	.Lecp_nistz256_precomputed_local_target+4096(%rip), %r14
	movq	%rax, 88(%r12)
	movq	%rbp, %rax
	negq	%rax
	andl	$31, %eax
	addq	%rax, %rbp
	jmp	.L1236
	.p2align 4,,10
	.p2align 3
.L1239:

	movq	%r13, %rax
	shrq	$3, %rax
	movzbl	64(%rsp,%rax), %ebx
.L1236:

	movq	%r13, %rax
	movl	%r13d, %ecx
	movl	$255, %edx
	movq	%r15, %rdi
	shrq	$3, %rax
	andl	$7, %ecx
	addq	$7, %r13
	movzbl	65(%rsp,%rax), %eax
	salq	$8, %rax
	orq	%rbx, %rax
	shrq	%cl, %rax
	movzbl	%al, %eax
	movq	%rax, %rcx
	subq	%rax, %rdx
	shrq	$7, %rcx
	movq	%rcx, %rsi
	negq	%rsi
	andq	%rdx, %rsi
	leaq	-1(%rcx), %rdx
	andq	%rdx, %rax
	orq	%rsi, %rax
	movq	%r14, %rsi
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rax, %rdx
	leaq	(%rcx,%rdx,2), %rbx
	movl	%edx, %edx
# WAS call	ecp_nistz256_select_w7@PLT
	call	.Lecp_nistz256_select_w7_local_target
	movq	(%rsp), %rsi
	andl	$1, %ebx
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	movq	0(%rbp), %rdx
	movq	32(%r15), %rcx
	movq	%rbx, %rax
	negq	%rax
	leaq	-1(%rbx), %rbx
	movq	%r12, %rsi
	movq	%r12, %rdi
	andq	%rbx, %rcx
	andq	%rax, %rdx
	xorq	%rcx, %rdx
	movq	40(%r15), %rcx
	movq	%rdx, 32(%r15)
	movq	8(%rbp), %rdx
	andq	%rbx, %rcx
	andq	%rax, %rdx
	xorq	%rcx, %rdx
	movq	48(%r15), %rcx
	movq	%rdx, 40(%r15)
	movq	16(%rbp), %rdx
	andq	%rbx, %rcx
	andq	56(%r15), %rbx
	andq	%rax, %rdx
	xorq	%rcx, %rdx
	movq	%rdx, 48(%r15)
	andq	24(%rbp), %rax
	movq	%r15, %rdx
	xorq	%rax, %rbx
	movq	%rbx, 56(%r15)
# WAS call	ecp_nistz256_point_add_affine@PLT
	call	.Lecp_nistz256_point_add_affine_local_target
	addq	$4096, %r14
# WAS leaq	151552+ecp_nistz256_precomputed(%rip), %rax
	leaq	.Lecp_nistz256_precomputed_local_target+151552(%rip), %rax
	cmpq	%rax, %r14
	jne	.L1239
	movq	32(%rsp), %rdi
	movq	40(%rsp), %rax
	movdqa	16(%r12), %xmm7
	movdqa	32(%r12), %xmm4
	movdqa	16(%rdi), %xmm5
	movq	24(%rsp), %rdi
	movdqa	(%r12), %xmm6
	movups	%xmm7, 16(%rax)
	movdqa	64(%r12), %xmm7
	movups	%xmm4, 72(%rax)
	movdqa	16(%rdi), %xmm4
	movups	%xmm6, (%rax)
	movups	%xmm5, 88(%rax)
	movups	%xmm7, 144(%rax)
	movaps	%xmm4, (%rsp)
	movups	%xmm4, 160(%rax)
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1240
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1240:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2003:

	.size	ecp_nistz256_point_mul_base, .-ecp_nistz256_point_mul_base
# WAS .section	.text.ecp_nistz256_windowed_mul.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_windowed_mul.isra.0, @function
.Lecp_nistz256_windowed_mul.isra.0_local_target:
ecp_nistz256_windowed_mul.isra.0:
.LFB3219:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$1848, %rsp
	.cfi_def_cfa_offset 1904
	movdqu	(%rdx), %xmm4
	movdqu	(%rsi), %xmm6
	movq	%fs:40, %rax
	movq	%rax, 1832(%rsp)
	xorl	%eax, %eax
	movdqu	16(%rdx), %xmm5
	movdqu	16(%rsi), %xmm7
	leaq	224(%rsp), %rbp
	movq	%rbp, %rax
	movaps	%xmm4, 48(%rsp)
	movdqu	72(%rsi), %xmm4
	negq	%rax
	movaps	%xmm5, 64(%rsp)
	movdqu	88(%rsi), %xmm5
	andl	$63, %eax
	movb	$0, 80(%rsp)
	addq	%rax, %rbp
	leaq	96(%rbp), %r12
	movaps	%xmm6, 0(%rbp)
	movdqu	144(%rsi), %xmm6
	leaq	192(%rbp), %r15
	movaps	%xmm7, 16(%rbp)
	movdqu	160(%rsi), %xmm7
	movq	%r12, %rdi
	movq	%rbp, %rsi
	movaps	%xmm4, 32(%rbp)
	leaq	288(%rbp), %r14
	leaq	480(%rbp), %r13
	movaps	%xmm5, 48(%rbp)
	movaps	%xmm6, 64(%rbp)
	movaps	%xmm7, 80(%rbp)
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	%r12, %rsi
	movq	%r14, %rdi
	leaq	672(%rbp), %r12
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%r15, %rsi
	movq	%r13, %rdi
	leaq	384(%rbp), %r15
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	leaq	1056(%rbp), %rcx
	movq	%r13, %rsi
	movq	%rcx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%r14, %rsi
	movq	%rbp, %rdx
	movq	%r15, %rdi
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	leaq	576(%rbp), %rax
	movq	%r13, %rsi
	movq	%rbp, %rdx
	movq	%rax, %rdi
	movq	%rax, (%rsp)
	leaq	1248(%rbp), %r14
	leaq	864(%rbp), %r13
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	%r12, %rsi
	leaq	768(%rbp), %rdi
	movq	%rbp, %rdx
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	8(%rsp), %rsi
	movq	%rbp, %rdx
	leaq	1152(%rbp), %rdi
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%r13, %rdi
	movq	%r15, %rsi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%r14, %rsi
	leaq	1344(%rbp), %rdi
	movq	%rbp, %rdx
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	%rbp, %rdx
	movq	%r13, %rsi
	leaq	960(%rbp), %rdi
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	%r12, %rsi
	leaq	1440(%rbp), %rdi
	movl	$254, %r12d
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	leaq	96(%rsp), %r9
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%r9, %rax
	negq	%rax
	andl	$31, %eax
	leaq	(%r9,%rax), %r13
	movzbl	79(%rsp), %eax
	leaq	32(%r13), %r14
	movq	%rax, %rdx
	shrq	$7, %rax
	shrq	$6, %rdx
	andl	$1, %edx
	addl	%eax, %edx
# WAS call	ecp_nistz256_select_w5@PLT
	call	.Lecp_nistz256_select_w5_local_target
	leaq	16(%rsp), %rax
	movq	%rax, (%rsp)
	.p2align 4,,10
	.p2align 3
.L1243:

	cmpq	$254, %r12
	jne	.L1245
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movl	$249, %r12d
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
.L1245:

	movq	%r12, %rdx
	movl	%r12d, %ecx
	movq	%r13, %rdi
	subq	$5, %r12
	shrq	$3, %rdx
	andl	$7, %ecx
	movzbl	49(%rsp,%rdx), %eax
	movzbl	48(%rsp,%rdx), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movl	$63, %edx
	shrq	%cl, %rax
	andl	$63, %eax
	movq	%rax, %rcx
	subq	%rax, %rdx
	shrq	$5, %rcx
	movq	%rcx, %rsi
	negq	%rsi
	andq	%rdx, %rsi
	leaq	-1(%rcx), %rdx
	andq	%rdx, %rax
	orq	%rsi, %rax
	movq	%rbp, %rsi
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rax, %rdx
	leaq	(%rcx,%rdx,2), %r15
	movl	%edx, %edx
# WAS call	ecp_nistz256_select_w5@PLT
	call	.Lecp_nistz256_select_w5_local_target
	movq	(%rsp), %rdi
	movq	%r14, %rsi
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	movq	%r15, %rax
	movq	%r13, %rdx
	movq	%rbx, %rsi
	andl	$1, %eax
	movdqa	48(%r13), %xmm3
	movdqa	32(%rsp), %xmm2
	movq	%rbx, %rdi
	movq	%rax, %rcx
	subq	$1, %rax
	negq	%rcx
	movq	%rax, %xmm0
	movq	%rcx, %xmm1
	punpcklqdq	%xmm0, %xmm0
	punpcklqdq	%xmm1, %xmm1
	pand	%xmm0, %xmm3
	pand	32(%r13), %xmm0
	pand	%xmm1, %xmm2
	pand	16(%rsp), %xmm1
	pxor	%xmm3, %xmm2
	pxor	%xmm0, %xmm1
	movaps	%xmm2, 48(%r13)
	movaps	%xmm1, 32(%r13)
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_double@PLT
	call	.Lecp_nistz256_point_double_local_target
	cmpq	$-1, %r12
	jne	.L1243
	movzbl	48(%rsp), %edx
	movl	$63, %r12d
	movq	%r13, %rdi
	addq	%rdx, %rdx
	andl	$63, %edx
	movq	%rdx, %rcx
	subq	%rdx, %r12
	shrq	$5, %rcx
	movq	%rcx, %rsi
	leaq	-1(%rcx), %rax
	negq	%rsi
	andq	%rdx, %rax
	andq	%r12, %rsi
	orq	%rsi, %rax
	movq	%rbp, %rsi
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rax, %rdx
	leaq	(%rcx,%rdx,2), %r12
	movl	%edx, %edx
# WAS call	ecp_nistz256_select_w5@PLT
	call	.Lecp_nistz256_select_w5_local_target
	movq	(%rsp), %rdi
	movq	%r14, %rsi
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	movq	%r12, %rax
	movq	%r13, %rdx
	movq	%rbx, %rsi
	andl	$1, %eax
	movdqa	48(%r13), %xmm3
	movdqa	32(%rsp), %xmm2
	movq	%rax, %rdi
	subq	$1, %rax
	negq	%rdi
	movq	%rax, %xmm0
	movq	%rdi, %xmm1
	punpcklqdq	%xmm0, %xmm0
	movq	%rbx, %rdi
	punpcklqdq	%xmm1, %xmm1
	pand	%xmm0, %xmm3
	pand	32(%r13), %xmm0
	pand	%xmm1, %xmm2
	pand	16(%rsp), %xmm1
	pxor	%xmm3, %xmm2
	pxor	%xmm0, %xmm1
	movaps	%xmm2, 48(%r13)
	movaps	%xmm1, 32(%r13)
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movq	1832(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1250
	addq	$1848, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1250:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3219:

	.size	ecp_nistz256_windowed_mul.isra.0, .-ecp_nistz256_windowed_mul.isra.0
# WAS .section	.text.ecp_nistz256_point_mul,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_point_mul, @function
.Lecp_nistz256_point_mul_local_target:
ecp_nistz256_point_mul:
.LFB2002:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$152, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rbx, %rax
	negq	%rax
	andl	$31, %eax
	addq	%rax, %rbx
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_windowed_mul.isra.0
	call	.Lecp_nistz256_windowed_mul.isra.0_local_target
	movdqa	(%rbx), %xmm0
	movdqa	16(%rbx), %xmm1
	movdqa	32(%rbx), %xmm2
	movdqa	48(%rbx), %xmm3
	movdqa	64(%rbx), %xmm4
	movdqa	80(%rbx), %xmm5
	movups	%xmm0, 0(%rbp)
	movups	%xmm1, 16(%rbp)
	movups	%xmm2, 72(%rbp)
	movups	%xmm3, 88(%rbp)
	movups	%xmm4, 144(%rbp)
	movups	%xmm5, 160(%rbp)
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1254
	addq	$152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L1254:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2002:

	.size	ecp_nistz256_point_mul, .-ecp_nistz256_point_mul
# WAS .section	.text.CRYPTO_cbc128_decrypt.part.0,"ax",@progbits
.text
	.p2align 4
	.type	CRYPTO_cbc128_decrypt.part.0, @function
.LCRYPTO_cbc128_decrypt.part.0_local_target:
CRYPTO_cbc128_decrypt.part.0:
.LFB3043:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	movq	%rcx, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	xorl	%ecx, %ecx
	cmpq	$31, %rdi
	jbe	.L1256
	leaq	-32(%rdi), %rcx
	cmpq	%rsi, %rcx
	jb	.L1256
.L1257:

	cmpq	$15, %r12
	jbe	.L1278
	leaq	-16(%r12), %rcx
	movq	%rbx, %r8
	movq	%rax, %rbp
	movq	%rcx, 32(%rsp)
	andq	$-16, %rcx
	addq	$16, %rcx
	movq	%rcx, 40(%rsp)
	leaq	(%r14,%rcx), %r15
	jmp	.L1261
	.p2align 4,,10
	.p2align 3
.L1279:

	movq	%rsi, %rbp
.L1261:

	movq	%r14, %rsi
	movq	%rax, 24(%rsp)
	movq	%rbp, %rdi
	movq	%r8, 16(%rsp)
	movq	%rdx, 8(%rsp)
	call	*%r13
	movq	16(%rsp), %r8
	movq	8(%rsp), %rdx
	movq	24(%rsp), %rax
	movq	(%r8), %rsi
	xorq	%rsi, (%r14)
	movq	8(%r8), %rsi
	xorq	%rsi, 8(%r14)
	addq	$16, %r14
	leaq	16(%rbp), %rsi
	cmpq	%r15, %r14
	movq	%rbp, %r8
	jne	.L1279
	movq	32(%rsp), %rcx
	movq	40(%rsp), %rbp
	andl	$15, %r12d
	andq	$-16, %rcx
	addq	%rax, %rbp
	addq	%rax, %rcx
.L1260:

	movdqu	(%rcx), %xmm0
	movups	%xmm0, (%rbx)
.L1259:

	testq	%r12, %r12
	je	.L1255
	leaq	48(%rsp), %rsi
	movq	%rbp, %rdi
	call	*%r13
	movzbl	0(%rbp), %edx
	movzbl	48(%rsp), %eax
	xorb	(%rbx), %al
	movb	%al, (%r15)
	movb	%dl, (%rbx)
	cmpq	$1, %r12
	je	.L1265
	movzbl	1(%rbp), %edx
	movzbl	49(%rsp), %eax
	xorb	1(%rbx), %al
	movb	%al, 1(%r15)
	movb	%dl, 1(%rbx)
	cmpq	$2, %r12
	je	.L1265
	movzbl	2(%rbp), %edx
	movzbl	50(%rsp), %eax
	xorb	2(%rbx), %al
	movb	%al, 2(%r15)
	movb	%dl, 2(%rbx)
	cmpq	$3, %r12
	je	.L1265
	movzbl	3(%rbp), %edx
	movzbl	51(%rsp), %eax
	xorb	3(%rbx), %al
	movb	%al, 3(%r15)
	movb	%dl, 3(%rbx)
	cmpq	$4, %r12
	je	.L1265
	movzbl	4(%rbp), %edx
	movzbl	52(%rsp), %eax
	xorb	4(%rbx), %al
	movb	%al, 4(%r15)
	movb	%dl, 4(%rbx)
	cmpq	$5, %r12
	je	.L1265
	movzbl	5(%rbp), %edx
	movzbl	53(%rsp), %eax
	xorb	5(%rbx), %al
	movb	%al, 5(%r15)
	movb	%dl, 5(%rbx)
	cmpq	$6, %r12
	je	.L1265
	movzbl	6(%rbp), %edx
	movzbl	54(%rsp), %eax
	xorb	6(%rbx), %al
	movb	%al, 6(%r15)
	movb	%dl, 6(%rbx)
	cmpq	$7, %r12
	je	.L1265
	movzbl	7(%rbp), %edx
	movzbl	55(%rsp), %eax
	xorb	7(%rbx), %al
	movb	%al, 7(%r15)
	movb	%dl, 7(%rbx)
	cmpq	$8, %r12
	je	.L1265
	movzbl	8(%rbp), %edx
	movzbl	56(%rsp), %eax
	xorb	8(%rbx), %al
	movb	%al, 8(%r15)
	movb	%dl, 8(%rbx)
	cmpq	$9, %r12
	je	.L1265
	movzbl	9(%rbp), %edx
	movzbl	57(%rsp), %eax
	xorb	9(%rbx), %al
	movb	%al, 9(%r15)
	movb	%dl, 9(%rbx)
	cmpq	$10, %r12
	je	.L1265
	movzbl	10(%rbp), %edx
	movzbl	58(%rsp), %eax
	xorb	10(%rbx), %al
	movb	%al, 10(%r15)
	movb	%dl, 10(%rbx)
	cmpq	$11, %r12
	je	.L1265
	movzbl	11(%rbp), %edx
	movzbl	59(%rsp), %eax
	xorb	11(%rbx), %al
	movb	%al, 11(%r15)
	movb	%dl, 11(%rbx)
	cmpq	$12, %r12
	je	.L1265
	movzbl	12(%rbp), %edx
	movzbl	60(%rsp), %eax
	xorb	12(%rbx), %al
	movb	%al, 12(%r15)
	movb	%dl, 12(%rbx)
	cmpq	$13, %r12
	je	.L1266
	movzbl	13(%rbp), %edx
	movzbl	61(%rsp), %eax
	xorb	13(%rbx), %al
	movb	%al, 13(%r15)
	movb	%dl, 13(%rbx)
	cmpq	$15, %r12
	jne	.L1280
	movzbl	14(%rbp), %edx
	movzbl	62(%rsp), %eax
	xorb	14(%rbx), %al
	movb	%al, 14(%r15)
	movb	%dl, 14(%rbx)
.L1266:

	movzbl	0(%rbp,%r12), %eax
	movb	%al, (%rbx,%r12)
	cmpq	$15, %r12
	jne	.L1276
.L1255:

	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1371
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1256:

	.cfi_restore_state
	cmpq	%r14, %rax
	jb	.L1257
	movq	%r14, %r15
	movq	%rax, %rbp
	cmpq	$15, %r12
	jbe	.L1259
	leaq	-16(%r12), %rcx
	andq	$-16, %rcx
	addq	$16, %rcx
	movq	%rcx, 32(%rsp)
	leaq	(%rax,%rcx), %rbp
	leaq	48(%rsp), %rcx
	movq	%rcx, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L1264:

	movq	%rax, %rdi
	movq	%rdx, 16(%rsp)
	movq	24(%rsp), %rsi
	addq	$16, %r15
	movq	%rax, 8(%rsp)
	call	*%r13
	movq	8(%rsp), %rax
	movq	48(%rsp), %rsi
	xorq	(%rbx), %rsi
	movq	16(%rsp), %rdx
	movq	(%rax), %rdi
	movq	%rsi, -16(%r15)
	addq	$16, %rax
	movq	56(%rsp), %rsi
	xorq	8(%rbx), %rsi
	movq	%rdi, (%rbx)
	movq	-8(%rax), %rdi
	movq	%rsi, -8(%r15)
	cmpq	%rbp, %rax
	movq	%rdi, 8(%rbx)
	jne	.L1264
	movq	32(%rsp), %r15
	andl	$15, %r12d
	addq	%r14, %r15
	jmp	.L1259
	.p2align 4,,10
	.p2align 3
.L1265:

	leaq	(%rbx,%r12), %rax
	leaq	1(%rbp,%r12), %rcx
	movq	%rax, %rdx
	subq	%rcx, %rdx
	cmpq	$6, %rdx
	ja	.L1372
	movzbl	0(%rbp,%r12), %eax
	movb	%al, (%rbx,%r12)
	movzbl	1(%rbp,%r12), %eax
	movb	%al, 1(%rbx,%r12)
	leaq	2(%r12), %rax
.L1272:

	movzbl	0(%rbp,%rax), %edx
	movb	%dl, (%rbx,%rax)
	cmpq	$13, %r12
	je	.L1255
	movzbl	3(%rbp,%r12), %eax
	movb	%al, 3(%rbx,%r12)
	cmpq	$12, %r12
	je	.L1255
	movzbl	4(%rbp,%r12), %eax
	movb	%al, 4(%rbx,%r12)
	cmpq	$11, %r12
	je	.L1255
	movzbl	5(%rbp,%r12), %eax
	movb	%al, 5(%rbx,%r12)
	cmpq	$10, %r12
	je	.L1255
	movzbl	6(%rbp,%r12), %eax
	movb	%al, 6(%rbx,%r12)
	cmpq	$9, %r12
	je	.L1255
	movzbl	7(%rbp,%r12), %eax
	movb	%al, 7(%rbx,%r12)
	cmpq	$8, %r12
	je	.L1255
	movzbl	8(%rbp,%r12), %eax
	movb	%al, 8(%rbx,%r12)
	cmpq	$7, %r12
	je	.L1255
	movzbl	9(%rbp,%r12), %eax
	movb	%al, 9(%rbx,%r12)
	cmpq	$6, %r12
	je	.L1255
	movzbl	10(%rbp,%r12), %eax
	movb	%al, 10(%rbx,%r12)
	cmpq	$5, %r12
	je	.L1255
	movzbl	11(%rbp,%r12), %eax
	movb	%al, 11(%rbx,%r12)
	cmpq	$4, %r12
	je	.L1255
	movzbl	12(%rbp,%r12), %eax
	movb	%al, 12(%rbx,%r12)
	cmpq	$3, %r12
	je	.L1255
	movzbl	13(%rbp,%r12), %eax
	movb	%al, 13(%rbx,%r12)
	cmpq	$1, %r12
	jne	.L1255
	movzbl	15(%rbp), %eax
	movb	%al, 15(%rbx)
	jmp	.L1255
.L1280:

	movl	$14, %r12d
	jmp	.L1266
.L1372:

	movl	$15, %esi
	movl	$16, %edi
	movq	%rsi, %rcx
	movq	%rdi, %rdx
	subq	%r12, %rcx
	subq	%r12, %rdx
	cmpq	$6, %rcx
	jbe	.L1267
	movq	0(%rbp,%r12), %rcx
	movq	%rcx, (%rax)
	cmpq	$8, %rdx
	je	.L1255
	leaq	8(%r12), %rax
	subq	%rax, %rdi
	subq	%rax, %rsi
	movq	%rax, %r12
	movq	%rdi, %rdx
	cmpq	$2, %rsi
	jbe	.L1269
.L1273:

	movl	0(%rbp,%r12), %ecx
	addq	$4, %rax
	movl	%ecx, (%rbx,%r12)
	cmpq	$4, %rdx
	je	.L1255
.L1269:

	movzbl	0(%rbp,%rax), %edx
	movb	%dl, (%rbx,%rax)
	cmpq	$15, %rax
	je	.L1255
	movzbl	1(%rbp,%rax), %edx
	movb	%dl, 1(%rbx,%rax)
	cmpq	$14, %rax
	je	.L1255
	movzbl	2(%rbp,%rax), %edx
	movb	%dl, 2(%rbx,%rax)
	jmp	.L1255
.L1278:

	movq	%rbx, %rcx
	movq	%r14, %r15
	movq	%rax, %rbp
	jmp	.L1260
.L1267:

	movq	%r12, %rax
	jmp	.L1273
.L1371:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L1276:

	movzbl	1(%rbp,%r12), %eax
	movb	%al, 1(%rbx,%r12)
	cmpq	$14, %r12
	je	.L1255
	movl	$13, %r12d
	movl	$15, %eax
	jmp	.L1272
	.cfi_endproc
.LFE3043:

	.size	CRYPTO_cbc128_decrypt.part.0, .-CRYPTO_cbc128_decrypt.part.0
# WAS .section	.text.aes_cbc_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_cbc_cipher, @function
.Laes_cbc_cipher_local_target:
aes_cbc_cipher:
.LFB1158:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	movq	%rcx, %rdx
	movq	16(%rax), %rcx
	movl	28(%rax), %r9d
	movq	256(%rcx), %r10
	testq	%r10, %r10
	je	.L1374
	leaq	52(%rax), %r8
	call	*%r10
.L1375:

	movl	$1, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1374:

	.cfi_restore_state
	movq	248(%rcx), %r8
	testl	%r9d, %r9d
	je	.L1376
	testq	%rdx, %rdx
	je	.L1375
	movq	%r8, %r9
	leaq	52(%rax), %r8
# WAS call	CRYPTO_cbc128_encrypt.part.0
	call	.LCRYPTO_cbc128_encrypt.part.0_local_target
	jmp	.L1375
	.p2align 4,,10
	.p2align 3
.L1376:

	testq	%rdx, %rdx
	je	.L1375
	movq	%r8, %r9
	leaq	52(%rax), %r8
# WAS call	CRYPTO_cbc128_decrypt.part.0
	call	.LCRYPTO_cbc128_decrypt.part.0_local_target
	jmp	.L1375
	.cfi_endproc
.LFE1158:

	.size	aes_cbc_cipher, .-aes_cbc_cipher
# WAS .section	.rodata.EC_group_secp256k1_init.str1.1,"aMS",@progbits,1
.text
.LC87:

	.string	"secp256k1"
# WAS .section	.text.EC_group_secp256k1_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_group_secp256k1_init, @function
.LEC_group_secp256k1_init_local_target:
EC_group_secp256k1_init:
.LFB1768:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EC_group_secp256k1_storage_bss_get@PLT
	call	EC_group_secp256k1_storage_bss_get
	movl	$714, 512(%rax)
	movq	%rax, %rbx
	leaq	.LC87(%rip), %rax
	movq	%rax, 504(%rbx)
	movl	340(%rbx), %eax
	movl	$295211, 516(%rbx)
	movb	$10, 520(%rbx)
	movb	$5, 525(%rbx)
	testb	$2, %al
	je	.L1390
.L1385:

	orl	$2, %eax
	movq	.LC88(%rip), %rbp
# WAS leaq	ksecp256k1Field(%rip), %rcx
	leaq	.Lksecp256k1Field_local_target(%rip), %rcx
	movl	$0, 336(%rbx)
	movl	%eax, 340(%rbx)
	movl	316(%rbx), %eax
	movq	%rcx, 320(%rbx)
	movq	%rbp, 328(%rbx)
	testb	$2, %al
	je	.L1391
.L1386:

	orl	$2, %eax
# WAS leaq	ksecp256k1FieldRR(%rip), %rcx
	leaq	.Lksecp256k1FieldRR_local_target(%rip), %rcx
	movq	%rbp, 304(%rbx)
	movl	%eax, 316(%rbx)
	movabsq	$-2866531139136965327, %rax
	movq	%rax, 344(%rbx)
	movl	276(%rbx), %eax
	movq	%rcx, 296(%rbx)
	movl	$0, 312(%rbx)
	testb	$2, %al
	je	.L1392
.L1387:

	orl	$2, %eax
# WAS leaq	ksecp256k1Order(%rip), %rsi
	leaq	.Lksecp256k1Order_local_target(%rip), %rsi
	movq	%rbp, 264(%rbx)
	movl	%eax, 276(%rbx)
	movl	252(%rbx), %eax
	movq	%rsi, 256(%rbx)
	movl	$0, 272(%rbx)
	testb	$2, %al
	je	.L1393
.L1388:

	orl	$2, %eax
# WAS leaq	ksecp256k1OrderRR(%rip), %rdx
	leaq	.Lksecp256k1OrderRR_local_target(%rip), %rdx
	movq	%rbp, 240(%rbx)
	movl	%eax, 252(%rbx)
	movabsq	$5408259542528602431, %rax
	movq	%rdx, 232(%rbx)
	movl	$0, 248(%rbx)
	movq	%rax, 280(%rbx)
# WAS call	EC_GFp_mont_method_once_bss_get@PLT
	call	EC_GFp_mont_method_once_bss_get
# WAS leaq	EC_GFp_mont_method_init(%rip), %rsi
	leaq	.LEC_GFp_mont_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_mont_method_storage_bss_get@PLT
	call	EC_GFp_mont_method_storage_bss_get
	movdqa	.LC90(%rip), %xmm0
	xorl	%edx, %edx
	movq	%rbx, 8(%rbx)
	movq	%rax, (%rbx)
	movabsq	$4294968273, %rax
	movups	%xmm0, 16(%rbx)
	movdqa	.LC91(%rip), %xmm0
	movq	%rax, 160(%rbx)
	movabsq	$30064777911, %rax
	movups	%xmm0, 32(%rbx)
	movdqa	.LC92(%rip), %xmm0
	movq	%rax, 432(%rbx)
	movq	.LC89(%rip), %rax
	movups	%xmm0, 88(%rbx)
	movdqa	.LC93(%rip), %xmm0
	movq	%rdx, 168(%rbx)
	xorl	%edx, %edx
	movups	%xmm0, 104(%rbx)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 176(%rbx)
	movups	%xmm0, 448(%rbx)
	pxor	%xmm0, %xmm0
	movq	%rdx, 440(%rbx)
	movl	$0, 528(%rbx)
	movq	$0, 424(%rbx)
	movq	%rax, 532(%rbx)
	movups	%xmm0, 360(%rbx)
	movups	%xmm0, 376(%rbx)
	movups	%xmm0, 392(%rbx)
	movups	%xmm0, 408(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1390:

	.cfi_restore_state
	movq	320(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	340(%rbx), %eax
	jmp	.L1385
	.p2align 4,,10
	.p2align 3
.L1393:

	movq	232(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	252(%rbx), %eax
	jmp	.L1388
	.p2align 4,,10
	.p2align 3
.L1392:

	movq	256(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	276(%rbx), %eax
	jmp	.L1387
	.p2align 4,,10
	.p2align 3
.L1391:

	movq	296(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	316(%rbx), %eax
	jmp	.L1386
	.cfi_endproc
.LFE1768:

	.size	EC_group_secp256k1_init, .-EC_group_secp256k1_init
# WAS .section	.text.KeccakF1600,"ax",@progbits
.text
	.p2align 4
	.type	KeccakF1600, @function
.LKeccakF1600_local_target:
KeccakF1600:
.LFB2838:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rdx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$96, %rsp
	.cfi_def_cfa_offset 152
	movq	8(%rdi), %rax
	movq	(%rdi), %r13
	movq	96(%rdi), %r12
	notq	%rax
	movq	%rax, -112(%rsp)
	movq	16(%rdi), %rax
	notq	%r12
	notq	%rax
	movq	%rax, -104(%rsp)
	movq	64(%rdi), %rax
	notq	%rax
	movq	%rax, -64(%rsp)
	movq	136(%rdi), %rax
	notq	%rax
	movq	%rax, -8(%rsp)
	movq	160(%rdi), %rax
	notq	%rax
	movq	%rax, 8(%rsp)
	movq	40(%rdi), %rax
	movq	%rax, -80(%rsp)
	movq	80(%rdi), %rax
	movq	%rax, -48(%rsp)
	movq	120(%rdi), %rax
	movq	%rax, -16(%rsp)
	movq	48(%rdi), %rax
	movq	88(%rdi), %rsi
	movq	56(%rdi), %rcx
	movq	%r13, 24(%rsp)
	movq	128(%rdi), %r14
	movq	%rdx, 88(%rsp)
	movq	%rax, %r13
	movq	%rsi, -40(%rsp)
	movq	168(%rdi), %rsi
	movq	%rcx, -72(%rsp)
	movq	104(%rdx), %rcx
	movq	%rsi, 16(%rsp)
	movq	24(%rdx), %rsi
	movq	%rcx, -32(%rsp)
	movq	72(%rdx), %rcx
	movq	%rsi, -96(%rsp)
	movq	32(%rdx), %rsi
	movq	%rcx, -56(%rsp)
	movq	152(%rdx), %rcx
	movq	%rsi, -88(%rsp)
	movq	112(%rdx), %rsi
	movq	%rcx, (%rsp)
	movq	192(%rdx), %rcx
	movq	%rsi, -24(%rsp)
# WAS leaq	iotas(%rip), %rsi
	leaq	.Liotas_local_target(%rip), %rsi
	movq	176(%rdi), %rdi
	movq	%rsi, -120(%rsp)
	movq	144(%rdx), %r11
	movq	184(%rdx), %r15
	movq	%rcx, %rdx
	.p2align 4,,10
	.p2align 3
.L1395:

	movq	-112(%rsp), %rbx
	movq	24(%rsp), %rbp
	movq	-80(%rsp), %rax
	movq	-40(%rsp), %r10
	xorq	%r13, %rbx
	movq	-104(%rsp), %r9
	movq	-48(%rsp), %rcx
	xorq	%rax, %rbp
	xorq	%r10, %rbx
	movq	16(%rsp), %rax
	movq	-16(%rsp), %rsi
	xorq	%r14, %rbx
	xorq	%rdi, %r9
	movq	-64(%rsp), %r10
	xorq	%rcx, %rbp
	xorq	%rax, %rbx
	movq	-72(%rsp), %rax
	movq	-8(%rsp), %rcx
	xorq	%rsi, %rbp
	movq	8(%rsp), %rsi
	xorq	%rax, %r9
	movq	-96(%rsp), %rax
	xorq	%r12, %r9
	xorq	%rsi, %rbp
	movq	-32(%rsp), %rsi
	xorq	%r10, %rax
	movq	-88(%rsp), %r10
	xorq	%rcx, %r9
	movq	-56(%rsp), %rcx
	movq	%rax, %r8
	xorq	%rdx, %r10
	xorq	%rsi, %r8
	movq	(%rsp), %rsi
	xorq	%rcx, %r10
	movq	-24(%rsp), %rcx
	xorq	%r11, %r8
	xorq	%r15, %r8
	xorq	%rcx, %r10
	movq	%r9, %rcx
	movq	%r8, %rax
	rolq	%rcx
	xorq	%rsi, %r10
	movq	%rbx, %rsi
	rolq	%rax
	xorq	%rbp, %rcx
	rolq	%rsi
	xorq	%rbx, %rax
	movq	-120(%rsp), %rbx
	rolq	%rbp
	xorq	%r10, %rsi
	xorq	%rcx, %r13
	rolq	%r10
	xorq	%r8, %rbp
	movq	24(%rsp), %r8
	xorq	%r9, %r10
	movq	%r13, %r9
	movq	(%rbx), %r13
	xorq	%rsi, %r8
	rorq	$20, %r9
	xorq	%rax, %r12
	xorq	%r10, %r11
	rorq	$21, %r12
	movq	%r9, %rbx
	xorq	%r8, %r13
	rolq	$21, %r11
	orq	%r12, %rbx
	xorq	%rbp, %rdx
	xorq	%rcx, %r14
	xorq	%rax, %rdi
	rolq	$14, %rdx
	xorq	%rbx, %r13
	movq	%r12, %rbx
	rorq	$19, %r14
	movq	%r13, 24(%rsp)
	movq	%r11, %r13
	notq	%rbx
	rorq	$3, %rdi
	andq	%rdx, %r13
	orq	%r11, %rbx
	xorq	%r12, %r13
	movq	%r8, %r12
	andq	%r9, %r8
	xorq	%r9, %rbx
	orq	%rdx, %r12
	xorq	%rdx, %r8
	movq	-48(%rsp), %r9
	movq	-96(%rsp), %rdx
	xorq	%r11, %r12
	movq	-56(%rsp), %r11
	movq	%r8, 56(%rsp)
	xorq	%rsi, %r9
	movq	%r12, 48(%rsp)
	movq	%rdi, %r12
	xorq	%r10, %rdx
	xorq	%rbp, %r11
	rolq	$3, %r9
	movq	%r13, 40(%rsp)
	notq	%r12
	movq	%r11, %r8
	movq	%r14, %r11
	rolq	$28, %rdx
	movq	%rbx, 32(%rsp)
	rolq	$20, %r8
	movq	%r12, %rbx
	movq	%r8, %r14
	orq	%r9, %r14
	movq	%r14, %r13
	movq	%r9, %r14
	andq	%r11, %r14
	xorq	%rdx, %r13
	xorq	%r8, %r14
	orq	%r11, %rbx
	movq	%rbx, %r12
	xorq	%r9, %r12
	movq	%rdx, %r9
	andq	%r8, %rdx
	orq	%rdi, %r9
	movq	%r12, -48(%rsp)
	xorq	%r11, %r9
	movq	%rdx, %r11
	xorq	%rdi, %r11
	movq	%r9, 64(%rsp)
	movq	%r11, -56(%rsp)
	movq	-112(%rsp), %rdx
	movq	-72(%rsp), %r8
	movq	-32(%rsp), %r9
	movq	(%rsp), %r11
	xorq	%rcx, %rdx
	movq	8(%rsp), %rdi
	xorq	%r10, %r9
	xorq	%rax, %r8
	rolq	%rdx
	rolq	$6, %r8
	movq	%r9, %rbx
	xorq	%rbp, %r11
	xorq	%rsi, %rdi
	rolq	$25, %rbx
	movq	%r8, %r9
	rolq	$8, %r11
	orq	%rbx, %r9
	movq	%r11, %r12
	rolq	$18, %rdi
	xorq	%rdx, %r9
	notq	%r12
	movq	%r9, -72(%rsp)
	movq	%rbx, %r9
	andq	%r11, %r9
	xorq	%r8, %r9
	movq	%r9, (%rsp)
	movq	%r12, %r9
	andq	%rdi, %r9
	xorq	%rbx, %r9
	movq	%rdx, %rbx
	andq	%r8, %rdx
	movq	-8(%rsp), %r8
	orq	%rdi, %rbx
	xorq	%rdi, %rdx
	movq	-80(%rsp), %rdi
	xorq	%r11, %rbx
	movq	-40(%rsp), %r11
	movq	%rdx, 8(%rsp)
	movq	-88(%rsp), %rdx
	notq	%rbx
	xorq	%rsi, %rdi
	xorq	%rcx, %r11
	movq	%rbx, -32(%rsp)
	rorq	$28, %rdi
	xorq	%rbp, %rdx
	movq	%r11, %rbx
	movq	%rdi, %r11
	rolq	$10, %rbx
	rolq	$27, %rdx
	xorq	%rax, %r8
	xorq	%r10, %r15
	rolq	$15, %r8
	rorq	$8, %r15
	andq	%rbx, %r11
	movq	%r8, %r12
	xorq	%rdx, %r11
	notq	%r12
	movq	%r11, 72(%rsp)
	movq	%rbx, %r11
	orq	%r15, %r12
	orq	%r8, %r11
	xorq	%rbx, %r12
	movq	%rdx, %rbx
	orq	%rdi, %rdx
	xorq	%rdi, %r11
	xorq	%r15, %rdx
	andq	%r15, %rbx
	movq	-64(%rsp), %r15
	movq	-104(%rsp), %rdi
	movq	%rdx, -40(%rsp)
	xorq	%r8, %rbx
	xorq	%r15, %r10
	xorq	%rdi, %rax
	movq	-16(%rsp), %rdi
	movq	%r12, -8(%rsp)
	rorq	$9, %r10
	rorq	$2, %rax
	movq	-8(%rsp), %r8
	notq	%rbx
	movq	%r10, %rdx
	movq	-24(%rsp), %r10
	xorq	%rdi, %rsi
	movq	16(%rsp), %rdi
	rorq	$23, %rsi
	movq	%rax, %r15
	movq	%r13, 16(%rsp)
	xorq	%r10, %rbp
	xorq	%rdi, %rcx
	rorq	$25, %rbp
	rolq	$2, %rcx
	movq	%rbp, %r10
	movq	%rcx, %rdi
	movq	%rdx, %rcx
	orq	%rsi, %r10
	orq	%rdi, %r15
	notq	%rcx
	xorq	%rdx, %r10
	andq	%rbp, %rcx
	notq	%r10
	xorq	%rax, %rcx
	movq	%r10, %r12
	movq	%rsi, %r10
	andq	%rdi, %r10
	movq	%r12, 80(%rsp)
	xorq	%rbp, %r10
	movq	%r15, %rbp
	movq	-72(%rsp), %r15
	xorq	%rsi, %rbp
	andq	%rdx, %rax
	movq	(%rsp), %rdx
	movq	32(%rsp), %rsi
	xorq	%rdi, %rax
	movq	%rbp, -16(%rsp)
	movq	%r13, %rdi
	movq	72(%rsp), %rbp
	xorq	%r14, %rdx
	xorq	%r15, %rdi
	movq	24(%rsp), %r15
	movq	%rdx, %r13
	xorq	%rbp, %rdi
	movq	-48(%rsp), %rdx
	xorq	%r11, %r13
	xorq	%r15, %rdi
	xorq	%rsi, %r13
	xorq	%rcx, %rdi
	xorq	%r12, %r13
	movq	40(%rsp), %r12
	movq	48(%rsp), %rbp
	movq	64(%rsp), %r15
	movq	-16(%rsp), %rsi
	xorq	%r10, %r12
	xorq	%r15, %rbp
	xorq	%rdx, %r12
	movq	-40(%rsp), %rdx
	movq	%r13, %r15
	xorq	%rsi, %rbp
	movq	-32(%rsp), %rsi
	xorq	%r9, %r12
	rolq	%r15
	xorq	%r8, %r12
	movq	-56(%rsp), %r8
	xorq	%rsi, %rbp
	movq	56(%rsp), %rsi
	xorq	%rbx, %rbp
	xorq	%r8, %rsi
	movq	8(%rsp), %r8
	xorq	%r8, %rsi
	movq	%r12, %r8
	xorq	%rdx, %rsi
	rolq	%r8
	movq	%rbp, %rdx
	xorq	%rdi, %r8
	xorq	%rax, %rsi
	rolq	%rdi
	xorq	%rbp, %rdi
	xorq	%rsi, %r15
	movq	24(%rsp), %rbp
	rolq	%rdx
	rolq	%rsi
	xorq	%r13, %rdx
	movq	-120(%rsp), %r13
	xorq	%r12, %rsi
	movq	%r14, %r12
	xorq	%r15, %rbp
	xorq	%rdx, %r9
	xorq	%r8, %r12
	movq	8(%r13), %r14
	rorq	$21, %r9
	xorq	%rsi, %rbx
	rorq	$20, %r12
	rolq	$21, %rbx
	xorq	%rdi, %rax
	xorq	%r8, %r11
	movq	%r12, %r13
	xorq	%rbp, %r14
	rolq	$14, %rax
	xorq	%rdx, %r10
	rorq	$19, %r11
	orq	%r9, %r13
	rorq	$3, %r10
	xorq	%r13, %r14
	movq	%r9, %r13
	notq	%r13
	movq	%r14, 24(%rsp)
	movq	-56(%rsp), %r14
	orq	%rbx, %r13
	xorq	%r12, %r13
	xorq	%rdi, %r14
	movq	%r13, -112(%rsp)
	movq	%rbx, %r13
	andq	%rax, %r13
	xorq	%r9, %r13
	movq	%rbp, %r9
	andq	%r12, %rbp
	orq	%rax, %r9
	movq	%r13, -104(%rsp)
	xorq	%rbx, %r9
	movq	%rbp, %rbx
	movq	%r9, -96(%rsp)
	movq	%r14, %r9
	movq	-72(%rsp), %r14
	xorq	%rax, %rbx
	movq	48(%rsp), %rax
	rolq	$20, %r9
	movq	%rbx, -88(%rsp)
	xorq	%r15, %r14
	movq	%r14, %rbx
	xorq	%rsi, %rax
	movq	%r9, %r14
	rolq	$3, %rbx
	rolq	$28, %rax
	orq	%rbx, %r14
	xorq	%rax, %r14
	movq	%r14, -80(%rsp)
	movq	%rbx, %r14
	andq	%r11, %r14
	xorq	%r15, %rcx
	xorq	%r9, %r14
	rolq	$18, %rcx
	movq	%r14, %r13
	movq	%r10, %r14
	notq	%r14
	movq	%r14, %rbp
	orq	%r11, %rbp
	movq	%rbp, %r14
	xorq	%rbx, %r14
	movq	%rax, %rbx
	andq	%r9, %rax
	movq	-48(%rsp), %r9
	movq	%r14, -72(%rsp)
	movq	%rax, %r14
	orq	%r10, %rbx
	movq	32(%rsp), %rax
	xorq	%r10, %r14
	xorq	%r11, %rbx
	movq	-32(%rsp), %r11
	xorq	%rdx, %r9
	movq	%r14, -56(%rsp)
	movq	-40(%rsp), %r14
	rolq	$6, %r9
	xorq	%r8, %rax
	xorq	%rsi, %r11
	rolq	%rax
	movq	%rbx, -64(%rsp)
	xorq	%rdi, %r14
	rolq	$25, %r11
	movq	%r14, %r10
	movq	%r9, %r14
	orq	%r11, %r14
	rolq	$8, %r10
	xorq	%rax, %r14
	movq	%r14, -48(%rsp)
	movq	%r11, %r14
	andq	%r10, %r14
	xorq	%r9, %r14
	movq	%r14, -40(%rsp)
	movq	%r10, %r14
	notq	%r14
	movq	%r14, %r12
	andq	%rcx, %r12
	xorq	%r11, %r12
	movq	%rax, %r11
	andq	%r9, %rax
	orq	%rcx, %r11
	movq	%rax, %r14
	movq	56(%rsp), %rax
	xorq	%r10, %r11
	xorq	%rcx, %r14
	notq	%r11
	movq	%r14, -24(%rsp)
	xorq	%rdi, %rax
	movq	%r11, -32(%rsp)
	movq	16(%rsp), %r9
	rolq	$27, %rax
	movq	(%rsp), %r10
	movq	-8(%rsp), %rcx
	xorq	%r15, %r9
	movq	72(%rsp), %rbp
	rorq	$28, %r9
	xorq	%r8, %r10
	xorq	%rdx, %rcx
	rolq	$10, %r10
	movq	%r9, %r11
	movq	%rcx, %rbx
	movq	-16(%rsp), %rcx
	andq	%r10, %r11
	rolq	$15, %rbx
	movq	%r10, %r14
	xorq	%rbp, %r15
	xorq	%rax, %r11
	xorq	%rsi, %rcx
	orq	%rbx, %r14
	movq	%r11, -16(%rsp)
	movq	%rbx, %r11
	rorq	$8, %rcx
	xorq	%r9, %r14
	notq	%r11
	orq	%rcx, %r11
	xorq	%r10, %r11
	movq	%r11, -8(%rsp)
	movq	%rax, %r11
	orq	%r9, %rax
	movq	64(%rsp), %r9
	movq	%rax, %r10
	movq	40(%rsp), %rax
	andq	%rcx, %r11
	xorq	%rcx, %r10
	xorq	%r9, %rsi
	xorq	%rbx, %r11
	xorq	%rax, %rdx
	movq	8(%rsp), %rax
	rorq	$9, %rsi
	movq	%r10, (%rsp)
	rorq	$2, %rdx
	notq	%r11
	xorq	%rax, %rdi
	movq	%r15, %rax
	movq	%rdx, %r15
	movq	%rdi, %rcx
	movq	80(%rsp), %rdi
	rorq	$23, %rax
	rorq	$25, %rcx
	xorq	%rdi, %r8
	movq	%rsi, %rdi
	notq	%rdi
	rolq	$2, %r8
	andq	%rcx, %rdi
	xorq	%rdx, %rdi
	movq	%rdi, 8(%rsp)
	movq	%rcx, %rdi
	orq	%rax, %rdi
	xorq	%rsi, %rdi
	notq	%rdi
	movq	%rdi, 16(%rsp)
	movq	%rax, %rdi
	andq	%r8, %rdi
	xorq	%rcx, %rdi
	orq	%r8, %r15
	addq	$16, -120(%rsp)
	andq	%rsi, %rdx
	movq	-120(%rsp), %rbx
	xorq	%rax, %r15
# WAS leaq	192+iotas(%rip), %rax
	leaq	.Liotas_local_target+192(%rip), %rax
	xorq	%r8, %rdx
	cmpq	%rbx, %rax
	jne	.L1395
	movq	-96(%rsp), %rax
	movq	%rdx, %rcx
	movq	88(%rsp), %rdx
	movq	%r13, %rsi
	movq	24(%rsp), %r13
	notq	%r12
	movq	%rax, 24(%rdx)
	movq	-88(%rsp), %rax
	movq	%r13, (%rdx)
	movq	%rax, 32(%rdx)
	movq	-80(%rsp), %rax
	movq	%r14, 128(%rdx)
	movq	%rax, 40(%rdx)
	movq	-72(%rsp), %rax
	movq	%r15, 184(%rdx)
	movq	%rax, 56(%rdx)
	movq	-56(%rsp), %rax
	movq	%rsi, 48(%rdx)
	movq	%rax, 72(%rdx)
	movq	-48(%rsp), %rax
	movq	%r11, 144(%rdx)
	movq	%rax, 80(%rdx)
	movq	-40(%rsp), %rax
	movq	%r10, 152(%rdx)
	movq	%rax, 88(%rdx)
	movq	-32(%rsp), %rax
	movq	%rdi, 176(%rdx)
	movq	%rax, 104(%rdx)
	movq	-24(%rsp), %rax
	movq	%rcx, 192(%rdx)
	movq	%rax, 112(%rdx)
	movq	-16(%rsp), %rax
	movq	%rax, 120(%rdx)
	movq	16(%rsp), %rax
	movq	%rax, 168(%rdx)
	movq	-112(%rsp), %rax
	movq	%r12, 96(%rdx)
	notq	%rax
	movq	%rax, 8(%rdx)
	movq	-104(%rsp), %rax
	notq	%rax
	movq	%rax, 16(%rdx)
	movq	-64(%rsp), %rax
	notq	%rax
	movq	%rax, 64(%rdx)
	movq	-8(%rsp), %rax
	notq	%rax
	movq	%rax, 136(%rdx)
	movq	8(%rsp), %rax
	notq	%rax
	movq	%rax, 160(%rdx)
	addq	$96, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2838:

	.size	KeccakF1600, .-KeccakF1600
# WAS .section	.text.bn_sqr_normal.part.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_sqr_normal.part.0, @function
.Lbn_sqr_normal.part.0_local_target:
bn_sqr_normal.part.0:
.LFB2953:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	(%rdx,%rdx), %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rax, 8(%rsp)
	movq	%rdx, %rax
	salq	$4, %rax
	movq	%rsi, (%rsp)
	movq	$0, -8(%rdi,%rax)
	movq	%rcx, 16(%rsp)
	movq	$0, (%rdi)
	cmpq	$1, %rdx
	jne	.L1399
.L1403:

	movq	8(%rsp), %r15
	xorl	%r11d, %r11d
	movq	%r11, %rax
	movq	%r15, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rax,8),%rdx	
	adcq	(%rbp,%rax,8),%rdx	
	movq	%rdx,(%rbp,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	movq	16(%rsp), %rbx
	movq	(%rsp), %rsi
	movq	%r12, %rdx
	movq	%rbx, %rdi
# WAS call	bn_sqr_words.part.0
	call	.Lbn_sqr_words.part.0_local_target
	movq	%r15, %rcx
	movq	%r11, %rax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rax,8),%rdx	
	adcq	(%rbx,%rax,8),%rdx	
	movq	%rdx,(%rbp,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1399:

	.cfi_restore_state
	movq	(%rsi), %rcx
	leaq	0(,%rdx,8), %r14
	leaq	8(%rsi), %rbx
	leaq	(%rdi,%r14), %r13
	leaq	-1(%rdx), %rdx
	movq	%rbx, %rsi
	leaq	8(%rdi), %rdi
	leaq	24(%rbp), %r15
# WAS call	bn_mul_words.part.0
	call	.Lbn_mul_words.part.0_local_target
	movq	%rax, 0(%r13)
	cmpq	$2, %r12
	jbe	.L1401
	leaq	-2(%r12), %r13
	leaq	8(%rbp,%r14), %r14
	.p2align 4,,10
	.p2align 3
.L1402:

	addq	$8, %rbx
	movq	-8(%rbx), %rcx
	movq	%r15, %rdi
	movq	%r13, %rdx
	movq	%rbx, %rsi
	addq	$16, %r15
	addq	$8, %r14
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	%rax, -8(%r14)
	subq	$1, %r13
	jne	.L1402
.L1401:

	cmpq	$0, 8(%rsp)
	jne	.L1403
	movq	(%rsp), %rsi
	movq	16(%rsp), %rdi
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movq	%r12, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr_words.part.0
	jmp	.Lbn_sqr_words.part.0_local_target
	.cfi_endproc
.LFE2953:

	.size	bn_sqr_normal.part.0, .-bn_sqr_normal.part.0
# WAS .section	.rodata.wait_for_entropy.str1.1,"aMS",@progbits,1
.text
.LC95:

	.string	"<unknown>"
# WAS .section	.rodata.wait_for_entropy.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC96:

	.string	"%s: getrandom indicates that the entropy pool has not been initialized. Rather than continue with poor entropy, this process will block until entropy is available.\n"
	.align 8
.LC97:

	.string	"RNDGETENTCNT on /dev/urandom failed. We cannot continue in this case when in FIPS mode.\n"
# WAS .section	.text.unlikely.wait_for_entropy,"ax",@progbits
.text
.LCOLDB99:

# WAS .section	.text.wait_for_entropy,"ax",@progbits
.text
.LHOTB99:

	.p2align 4
	.type	wait_for_entropy, @function
.Lwait_for_entropy_local_target:
wait_for_entropy:
.LFB2651:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movl	$2147766784, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$48, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	12(%rsp), %r12
	leaq	16(%rsp), %rbx
# WAS call	urandom_fd_bss_get@PLT
	call	urandom_fd_bss_get
	movl	(%rax), %ebp
	cmpl	$-3, %ebp
	jne	.L1408
	jmp	.L1432
	.p2align 4,,10
	.p2align 3
.L1434:

	movdqa	.LC98(%rip), %xmm0
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movaps	%xmm0, 16(%rsp)
# WAS call	nanosleep@PLT
	call	.Lbcm_redirector_nanosleep
.L1408:

	xorl	%eax, %eax
	movq	%r12, %rdx
	movq	%r13, %rsi
	movl	%ebp, %edi
# WAS call	ioctl@PLT
	call	.Lbcm_redirector_ioctl
	testl	%eax, %eax
	jne	.L1433
	cmpl	$255, 12(%rsp)
	jle	.L1434
.L1407:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1435
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1432:

	.cfi_restore_state
# WAS call	getrandom_ready_bss_get@PLT
	call	getrandom_ready_bss_get
	movl	(%rax), %eax
	testl	%eax, %eax
	jne	.L1407
.L1411:

	xorl	%eax, %eax
	movl	$1, %ecx
	movl	$1, %edx
	movq	%r12, %rsi
	movl	$318, %edi
# WAS call	syscall@PLT
	call	.Lbcm_redirector_syscall
	cmpq	$-1, %rax
	je	.L1436
.L1410:

	cmpq	$1, %rax
	je	.L1407
	jmp	.L1415
	.p2align 4,,10
	.p2align 3
.L1436:

# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	movq	%rax, %rbx
	movl	(%rax), %eax
	cmpl	$4, %eax
	je	.L1411
	cmpl	$11, %eax
	jne	.L1415
	movl	$31, %edi
	movl	$10, %r13d
	movl	$1, %ebp
# WAS call	getauxval@PLT
	call	.Lbcm_redirector_getauxval
	movl	$2, %esi
	leaq	16(%rsp), %r14
	leaq	.LC95(%rip), %rdx
	testq	%rax, %rax
	movq	%rdx, %rcx
	leaq	.LC96(%rip), %rdx
	cmovne	%rax, %rcx
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movq	(%rax), %rdi
	xorl	%eax, %eax
# WAS call	__fprintf_chk@PLT
	call	.Lbcm_redirector___fprintf_chk
.L1414:

	xorl	%ecx, %ecx
	xorl	%eax, %eax
	movl	$1, %edx
	movq	%r12, %rsi
	movl	$318, %edi
# WAS call	syscall@PLT
	call	.Lbcm_redirector_syscall
	cmpq	$-1, %rax
	jne	.L1410
	cmpl	$4, (%rbx)
	je	.L1414
	subq	$1, %r13
	je	.L1415
	leaq	0(%rbp,%rbp,4), %rbp
	movl	$999999999, %eax
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	$0, 16(%rsp)
	addq	%rbp, %rbp
	cmpq	%rax, %rbp
	cmovg	%rax, %rbp
	movq	%rbp, 24(%rsp)
# WAS call	nanosleep@PLT
	call	.Lbcm_redirector_nanosleep
	jmp	.L1414
.L1433:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$88, %edx
	movl	$1, %esi
	leaq	.LC97(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L1435:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.wait_for_entropy
.text
	.cfi_startproc
	.type	wait_for_entropy.cold, @function
.Lwait_for_entropy.cold_local_target:
wait_for_entropy.cold:
.LFSB2651:

.L1415:

	.cfi_def_cfa_offset 96
	.cfi_offset 3, -48
	.cfi_offset 6, -40
	.cfi_offset 12, -32
	.cfi_offset 13, -24
	.cfi_offset 14, -16
	leaq	.LC79(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2651:

# WAS .section	.text.wait_for_entropy
.text
	.size	wait_for_entropy, .-wait_for_entropy
# WAS .section	.text.unlikely.wait_for_entropy
.text
	.size	wait_for_entropy.cold, .-wait_for_entropy.cold
.LCOLDE99:

# WAS .section	.text.wait_for_entropy
.text
.LHOTE99:

# WAS .section	.text.ecp_nistz256_points_mul_public,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_points_mul_public, @function
.Lecp_nistz256_points_mul_public_local_target:
ecp_nistz256_points_mul_public:
.LFB2004:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$376, %rsp
	.cfi_def_cfa_offset 432
	movdqu	(%rdx), %xmm5
	movdqu	16(%rdx), %xmm6
	movq	%rcx, 8(%rsp)
	movzbl	(%rdx), %ecx
	leaq	96(%rsp), %rbx
	movq	%r8, 32(%rsp)
	leal	(%rcx,%rcx), %edx
	andl	$254, %edx
	movq	%fs:40, %rax
	movq	%rax, 360(%rsp)
	xorl	%eax, %eax
	movq	%rbx, %rax
	movq	%rdx, %rsi
	movb	$0, 80(%rsp)
	negq	%rax
	shrq	$7, %rsi
	movaps	%xmm5, 48(%rsp)
	andl	$31, %eax
	movq	%rsi, %rdi
	movaps	%xmm6, 64(%rsp)
	addq	%rax, %rbx
	movl	$255, %eax
	negq	%rdi
	subq	%rdx, %rax
	andq	%rax, %rdi
	leaq	-1(%rsi), %rax
	andq	%rdx, %rax
	orq	%rdi, %rax
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rdx, %rax
	leaq	(%rsi,%rax,2), %rax
	movq	%rax, %rdx
	shrq	%rdx
	je	.L1438
	subq	$1, %rdx
# WAS leaq	ecp_nistz256_precomputed(%rip), %rsi
	leaq	.Lecp_nistz256_precomputed_local_target(%rip), %rsi
	salq	$6, %rdx
	leaq	(%rdx,%rsi), %rdi
	leaq	32(%rsi,%rdx), %rdx
	movdqa	(%rdi), %xmm6
	movdqa	16(%rdi), %xmm7
	leaq	32(%rbx), %rdi
	movq	%rdi, (%rsp)
	movaps	%xmm6, (%rbx)
	movdqa	(%rdx), %xmm6
	movaps	%xmm7, 16(%rbx)
	movdqa	16(%rdx), %xmm7
	leaq	64(%rbx), %rdx
	movaps	%xmm6, 32(%rbx)
# WAS movdqa	ONE(%rip), %xmm6
	movdqa	.LONE_local_target(%rip), %xmm6
	movaps	%xmm7, 16(%rsp)
	movaps	%xmm7, 48(%rbx)
# WAS movdqa	16+ONE(%rip), %xmm7
	movdqa	.LONE_local_target+16(%rip), %xmm7
	movq	%rdx, 16(%rsp)
	movaps	%xmm6, 64(%rbx)
	movaps	%xmm7, 80(%rbx)
	testb	$1, %al
	jne	.L1456
.L1440:

	leaq	224(%rsp), %rax
	movl	$64, %r13d
	movl	$6, %r14d
	movq	%rax, %rdx
	movq	%rax, 40(%rsp)
	negq	%rdx
	andl	$31, %edx
	leaq	(%rax,%rdx), %r15
	leaq	32(%r15), %rbp
	jmp	.L1444
	.p2align 4,,10
	.p2align 3
.L1442:

	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_add_affine@PLT
	call	.Lecp_nistz256_point_add_affine_local_target
.L1441:

	addq	$7, %r14
	addq	$64, %r13
	cmpq	$258, %r14
	je	.L1443
	movq	%r14, %rax
	shrq	$3, %rax
	movzbl	48(%rsp,%rax), %ecx
.L1444:

	movq	%r14, %rax
	shrq	$3, %rax
	movzbl	49(%rsp,%rax), %eax
	salq	$8, %rax
	orq	%rcx, %rax
	movl	%r14d, %ecx
	andl	$7, %ecx
	shrq	%cl, %rax
	movl	$255, %ecx
	movzbl	%al, %eax
	movq	%rax, %rsi
	subq	%rax, %rcx
	shrq	$7, %rsi
	movq	%rsi, %rdi
	negq	%rdi
	andq	%rcx, %rdi
	leaq	-1(%rsi), %rcx
	andq	%rcx, %rax
	orq	%rdi, %rax
	movq	%rax, %rcx
	andl	$1, %eax
	shrq	%rcx
	addq	%rcx, %rax
	leaq	(%rsi,%rax,2), %rcx
	movq	%rcx, %rax
	shrq	%rax
	je	.L1441
	leaq	-1(%rax,%r13), %rax
# WAS leaq	ecp_nistz256_precomputed(%rip), %rsi
	leaq	.Lecp_nistz256_precomputed_local_target(%rip), %rsi
	salq	$6, %rax
	addq	%rsi, %rax
	andl	$1, %ecx
	movdqa	(%rax), %xmm1
	movdqa	16(%rax), %xmm2
	movdqa	32(%rax), %xmm3
	movdqa	48(%rax), %xmm4
	movaps	%xmm1, (%r15)
	movaps	%xmm2, 16(%r15)
	movaps	%xmm3, 32(%r15)
	movaps	%xmm4, 48(%r15)
	je	.L1442
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	jmp	.L1442
	.p2align 4,,10
	.p2align 3
.L1443:

	movq	40(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%rdx, %rax
	negq	%rax
	andl	$31, %eax
	addq	%rax, %rdx
	movq	%rdx, %r13
	movq	32(%rsp), %rdx
	movq	%r13, %rdi
# WAS call	ecp_nistz256_windowed_mul.isra.0
	call	.Lecp_nistz256_windowed_mul.isra.0_local_target
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	ecp_nistz256_point_add@PLT
	call	.Lecp_nistz256_point_add_local_target
	movdqa	(%rbx), %xmm7
	movq	(%rsp), %rax
	movdqa	16(%rbx), %xmm5
	movdqa	32(%rbx), %xmm6
	movups	%xmm7, (%r12)
	movdqa	16(%rax), %xmm7
	movq	16(%rsp), %rax
	movdqa	64(%rbx), %xmm0
	movups	%xmm5, 16(%r12)
	movdqa	16(%rax), %xmm5
	movups	%xmm6, 72(%r12)
	movups	%xmm7, 88(%r12)
	movups	%xmm0, 144(%r12)
	movups	%xmm5, 160(%r12)
	movq	360(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1457
	addq	$376, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1438:

	.cfi_restore_state
	leaq	32(%rbx), %rdx
	pxor	%xmm0, %xmm0
	movq	%rdx, (%rsp)
	leaq	64(%rbx), %rdx
	movq	%rdx, 16(%rsp)
	movaps	%xmm0, (%rbx)
	movaps	%xmm0, 16(%rbx)
	movaps	%xmm0, 32(%rbx)
	movaps	%xmm0, 48(%rbx)
	movaps	%xmm0, 64(%rbx)
	movaps	%xmm0, 80(%rbx)
	testb	$1, %al
	je	.L1440
.L1456:

	movq	(%rsp), %rdi
	movb	%cl, 40(%rsp)
	movq	%rdi, %rsi
# WAS call	ecp_nistz256_neg@PLT
	call	.Lecp_nistz256_neg_local_target
	movzbl	40(%rsp), %ecx
	jmp	.L1440
.L1457:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2004:

	.size	ecp_nistz256_points_mul_public, .-ecp_nistz256_points_mul_public
# WAS .section	.text.ecp_nistz256_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_cmp_x_coordinate, @function
.Lecp_nistz256_cmp_x_coordinate_local_target:
ecp_nistz256_cmp_x_coordinate:
.LFB2010:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	subq	$112, %rsp
	.cfi_def_cfa_offset 160
	movl	328(%rdi), %edx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L1459
	movq	%rdi, %r12
	movq	%rsi, %rbp
	cmpl	$1, %edx
	je	.L1470
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L1461
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L1461
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L1461
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L1461
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L1461
	xorl	%ecx, %ecx
.L1462:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%rbp,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L1462
	.p2align 4,,10
	.p2align 3
.L1461:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L1463
	andl	$-2, %edx
.L1460:

	movslq	%edx, %rdx
	orq	144(%rbp,%rdx,8), %rax
.L1463:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	js	.L1459
	leaq	144(%rbp), %rsi
	leaq	32(%rsp), %r13
	movq	%rsp, %r14
	movq	%rsi, %rdx
	movq	%r13, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
# WAS leaq	ONE.71(%rip), %rdx
	leaq	.LONE.71_local_target(%rip), %rdx
	leaq	64(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	(%rsp), %rax
	movq	8(%rsp), %rdx
	xorq	64(%rsp), %rax
	xorq	72(%rsp), %rdx
	orq	%rdx, %rax
	je	.L1495
.L1465:

	movq	256(%r12), %rdx
	movl	$4, %ecx
	xorl	%eax, %eax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rax,8),%rsi	
	adcq	(%rdx,%rax,8),%rsi	
	movq	%rsi,(%r14,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	je	.L1496
.L1459:

	xorl	%eax, %eax
.L1458:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L1497
	addq	$112, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1495:

	.cfi_restore_state
	movq	16(%rsp), %rax
	movq	24(%rsp), %rdx
	xorq	80(%rsp), %rax
	xorq	88(%rsp), %rdx
	orq	%rdx, %rax
	movl	$1, %eax
	jne	.L1465
	jmp	.L1458
	.p2align 4,,10
	.p2align 3
.L1496:

	movq	320(%r12), %rdx
	movl	$4, %ecx
	movl	$4, %esi
	movq	%r14, %rdi
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	testl	%eax, %eax
	jns	.L1459
	movq	%r13, %rdx
	movq	%r14, %rsi
# WAS call	ecp_nistz256_mul_mont@PLT
	call	.Lecp_nistz256_mul_mont_local_target
	movq	(%rsp), %rax
	movq	8(%rsp), %rdx
	xorq	64(%rsp), %rax
	xorq	72(%rsp), %rdx
	orq	%rdx, %rax
	je	.L1498
.L1467:

	movl	$1, %eax
.L1468:

	xorl	$1, %eax
	jmp	.L1458
.L1470:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L1460
.L1498:

	movq	16(%rsp), %rax
	movq	24(%rsp), %rdx
	xorq	80(%rsp), %rax
	xorq	88(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L1467
	xorl	%eax, %eax
	jmp	.L1468
.L1497:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2010:

	.size	ecp_nistz256_cmp_x_coordinate, .-ecp_nistz256_cmp_x_coordinate
# WAS .section	.text.aes_nohw_encrypt_batch,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_encrypt_batch, @function
.Laes_nohw_encrypt_batch_local_target:
aes_nohw_encrypt_batch:
.LFB775:

	.cfi_startproc
	subq	$264, %rsp
	.cfi_def_cfa_offset 272
	movdqa	(%rdi), %xmm15
	movq	%rdi, %rcx
	movdqa	16(%rdi), %xmm8
	movdqa	32(%rdi), %xmm0
	movdqa	48(%rdi), %xmm4
	movdqa	64(%rdi), %xmm5
	movdqa	80(%rdi), %xmm6
	movdqa	96(%rdi), %xmm3
	movdqa	112(%rdx), %xmm12
	pxor	(%rdx), %xmm15
	pxor	16(%rdx), %xmm8
	pxor	32(%rdx), %xmm0
	pxor	48(%rdx), %xmm4
	pxor	64(%rdx), %xmm5
	pxor	80(%rdx), %xmm6
	movaps	%xmm15, (%rdx)
	pxor	96(%rdx), %xmm3
	pxor	112(%rdi), %xmm12
	movaps	%xmm8, 16(%rdx)
	movaps	%xmm0, 32(%rdx)
	movaps	%xmm4, 48(%rdx)
	movaps	%xmm5, 64(%rdx)
	movaps	%xmm6, 80(%rdx)
	movaps	%xmm3, 96(%rdx)
	movaps	%xmm12, 112(%rdx)
	cmpq	$1, %rsi
	jbe	.L1506
	movdqa	%xmm4, %xmm1
	movdqa	%xmm15, %xmm10
	movdqa	%xmm5, %xmm7
	movq	%rsi, %r8
	movdqa	.LC100(%rip), %xmm2
	salq	$7, %r8
	leaq	128(%rdi), %rax
	movdqa	%xmm6, %xmm4
	addq	%rdi, %r8
	movaps	%xmm2, 224(%rsp)
	movdqa	.LC101(%rip), %xmm2
	movaps	%xmm2, 240(%rsp)
	movdqa	.LC102(%rip), %xmm2
	movaps	%xmm2, 160(%rsp)
	movdqa	.LC103(%rip), %xmm2
	movaps	%xmm2, 144(%rsp)
	movdqa	%xmm0, %xmm2
	.p2align 4,,10
	.p2align 3
.L1501:

	pxor	%xmm3, %xmm4
	movdqa	%xmm7, %xmm9
	movdqa	%xmm12, %xmm0
	movq	%rdx, %rdi
	movdqa	%xmm4, %xmm5
	pxor	%xmm2, %xmm9
	movdqa	%xmm7, %xmm14
	subq	$-128, %rax
	pxor	%xmm10, %xmm5
	pxor	%xmm8, %xmm0
	movdqa	%xmm2, %xmm11
	movaps	%xmm9, 16(%rsp)
	pxor	%xmm5, %xmm7
	pxor	%xmm12, %xmm14
	movdqa	%xmm8, %xmm13
	movaps	%xmm7, 48(%rsp)
	movdqa	%xmm9, %xmm7
	movdqa	%xmm4, %xmm8
	movdqa	%xmm2, %xmm6
	pxor	%xmm0, %xmm7
	movdqa	%xmm14, %xmm2
	movdqa	%xmm12, %xmm15
	pxor	%xmm7, %xmm1
	movdqa	%xmm7, %xmm9
	pxor	%xmm12, %xmm6
	movaps	%xmm2, 176(%rsp)
	pxor	%xmm1, %xmm11
	pxor	%xmm1, %xmm3
	movdqa	%xmm10, %xmm1
	movaps	%xmm9, 192(%rsp)
	pxor	%xmm11, %xmm1
	pxor	%xmm11, %xmm8
	pxor	%xmm5, %xmm15
	movaps	%xmm6, 32(%rsp)
	movaps	%xmm1, 112(%rsp)
	movdqa	%xmm14, %xmm1
	movdqa	%xmm10, %xmm14
	pxor	%xmm5, %xmm13
	pxor	%xmm3, %xmm1
	movaps	%xmm8, (%rsp)
	movdqa	%xmm1, %xmm7
	pxor	%xmm1, %xmm14
	movdqa	%xmm8, %xmm1
	movaps	%xmm15, 64(%rsp)
	pxor	%xmm7, %xmm4
	movdqa	%xmm0, %xmm8
	movdqa	%xmm6, %xmm15
	movaps	%xmm13, 80(%rsp)
	pand	%xmm4, %xmm8
	pxor	%xmm13, %xmm15
	pxor	%xmm7, %xmm1
	movdqa	%xmm9, %xmm13
	movdqa	%xmm8, %xmm9
	movaps	%xmm15, 96(%rsp)
	movdqa	16(%rsp), %xmm8
	movdqa	%xmm1, %xmm15
	pand	(%rsp), %xmm6
	movdqa	%xmm2, %xmm1
	movdqa	32(%rsp), %xmm2
	pand	%xmm7, %xmm1
	pand	%xmm15, %xmm8
	pand	%xmm11, %xmm13
	pxor	%xmm1, %xmm8
	pxor	%xmm1, %xmm6
	movdqa	96(%rsp), %xmm1
	pand	112(%rsp), %xmm1
	pxor	%xmm13, %xmm3
	pxor	(%rsp), %xmm13
	pxor	%xmm4, %xmm12
	pxor	%xmm8, %xmm1
	pxor	%xmm3, %xmm1
	movdqa	48(%rsp), %xmm3
	pand	%xmm10, %xmm3
	pxor	%xmm3, %xmm2
	pxor	%xmm13, %xmm2
	movdqa	80(%rsp), %xmm13
	pxor	%xmm6, %xmm2
	pand	%xmm5, %xmm13
	movdqa	%xmm13, %xmm3
	movdqa	%xmm0, %xmm13
	pandn	%xmm4, %xmm13
	pxor	%xmm0, %xmm3
	pxor	%xmm13, %xmm3
	pxor	%xmm8, %xmm3
	movdqa	64(%rsp), %xmm8
	pand	%xmm14, %xmm8
	pxor	%xmm9, %xmm8
	pxor	%xmm12, %xmm8
	movdqa	%xmm8, %xmm12
	pxor	%xmm6, %xmm12
	movdqa	%xmm1, %xmm6
	pand	%xmm3, %xmm1
	pxor	%xmm2, %xmm6
	movdqa	%xmm6, %xmm13
	movdqa	%xmm12, %xmm6
	pxor	%xmm1, %xmm6
	movdqa	%xmm13, %xmm9
	pand	%xmm6, %xmm9
	movdqa	%xmm9, %xmm8
	movdqa	%xmm3, %xmm9
	pxor	%xmm2, %xmm8
	pxor	%xmm12, %xmm9
	pxor	%xmm1, %xmm2
	pand	%xmm9, %xmm2
	movdqa	%xmm12, %xmm9
	pand	%xmm8, %xmm14
	pxor	%xmm2, %xmm1
	pxor	%xmm2, %xmm9
	movdqa	%xmm8, %xmm2
	pand	%xmm12, %xmm1
	pxor	%xmm9, %xmm3
	pand	%xmm9, %xmm10
	pxor	%xmm1, %xmm6
	pxor	%xmm1, %xmm3
	movdqa	%xmm9, %xmm1
	movaps	%xmm10, 128(%rsp)
	pand	%xmm8, %xmm6
	movdqa	%xmm3, %xmm12
	pxor	%xmm3, %xmm1
	pxor	%xmm13, %xmm6
	movdqa	%xmm8, %xmm13
	movaps	%xmm1, 208(%rsp)
	pxor	%xmm6, %xmm12
	pxor	%xmm9, %xmm13
	pxor	%xmm6, %xmm2
	movdqa	%xmm12, %xmm1
	pand	%xmm2, %xmm4
	pand	%xmm2, %xmm0
	pxor	%xmm13, %xmm1
	pand	%xmm13, %xmm7
	pand	%xmm6, %xmm5
	pand	%xmm1, %xmm15
	pand	16(%rsp), %xmm1
	pxor	%xmm4, %xmm7
	movaps	%xmm0, 16(%rsp)
	movdqa	%xmm15, %xmm10
	movdqa	96(%rsp), %xmm15
	pand	80(%rsp), %xmm6
	movdqa	%xmm1, %xmm2
	pxor	%xmm10, %xmm7
	movdqa	176(%rsp), %xmm1
	pand	%xmm3, %xmm15
	movaps	%xmm2, 176(%rsp)
	pxor	%xmm14, %xmm6
	movaps	%xmm15, 96(%rsp)
	pand	%xmm13, %xmm1
	movdqa	208(%rsp), %xmm15
	pxor	%xmm2, %xmm1
	pand	%xmm15, %xmm11
	movdqa	%xmm11, %xmm2
	movdqa	128(%rsp), %xmm11
	pxor	%xmm4, %xmm2
	movdqa	(%rsp), %xmm4
	pxor	%xmm0, %xmm11
	movdqa	%xmm5, %xmm0
	pxor	%xmm7, %xmm5
	pand	%xmm12, %xmm4
	pxor	%xmm1, %xmm0
	pxor	%xmm2, %xmm11
	pxor	%xmm10, %xmm4
	pxor	%xmm11, %xmm1
	movdqa	192(%rsp), %xmm10
	pxor	%xmm0, %xmm4
	pxor	%xmm6, %xmm1
	pand	%xmm15, %xmm10
	movdqa	96(%rsp), %xmm15
	pand	64(%rsp), %xmm8
	pand	112(%rsp), %xmm3
	pxor	.LC104(%rip), %xmm1
	pxor	%xmm15, %xmm10
	pxor	%xmm11, %xmm8
	pxor	%xmm0, %xmm10
	movdqa	16(%rsp), %xmm0
	pxor	%xmm4, %xmm8
	pxor	%xmm10, %xmm3
	pxor	%xmm7, %xmm10
	movdqa	32(%rsp), %xmm7
	pxor	%xmm6, %xmm0
	pxor	%xmm3, %xmm2
	movdqa	%xmm5, %xmm6
	pxor	%xmm4, %xmm0
	pand	%xmm12, %xmm7
	pxor	%xmm8, %xmm5
	movdqa	128(%rsp), %xmm4
	pxor	176(%rsp), %xmm7
	pxor	.LC104(%rip), %xmm0
	pxor	%xmm2, %xmm6
	pxor	%xmm14, %xmm4
	pxor	.LC104(%rip), %xmm6
	movdqa	240(%rsp), %xmm14
	pxor	%xmm3, %xmm4
	movdqa	48(%rsp), %xmm3
	pxor	%xmm7, %xmm5
	pxor	.LC104(%rip), %xmm5
	movdqa	%xmm14, %xmm7
	pand	%xmm9, %xmm3
	pand	%xmm1, %xmm7
	pxor	%xmm15, %xmm3
	movdqa	224(%rsp), %xmm15
	pxor	%xmm8, %xmm3
	movdqa	160(%rsp), %xmm8
	movdqa	%xmm15, %xmm9
	pand	%xmm1, %xmm9
	pand	%xmm1, %xmm8
	pand	144(%rsp), %xmm1
	movdqa	%xmm9, %xmm12
	psrldq	$4, %xmm9
	movdqa	%xmm8, %xmm11
	pslldq	$12, %xmm12
	pslldq	$4, %xmm11
	movdqa	%xmm12, %xmm13
	psrldq	$12, %xmm8
	movdqa	%xmm7, %xmm12
	pslldq	$8, %xmm12
	psrldq	$8, %xmm7
	por	%xmm13, %xmm9
	movdqa	160(%rsp), %xmm13
	por	%xmm11, %xmm8
	por	%xmm12, %xmm7
	por	%xmm8, %xmm1
	por	%xmm9, %xmm7
	movdqa	%xmm14, %xmm8
	por	%xmm1, %xmm7
	movdqa	%xmm15, %xmm1
	pand	%xmm0, %xmm8
	pand	%xmm0, %xmm1
	movaps	%xmm7, (%rdx)
	movdqa	%xmm13, %xmm7
	movdqa	%xmm8, %xmm11
	movdqa	%xmm1, %xmm9
	psrldq	$4, %xmm1
	pand	%xmm0, %xmm7
	pslldq	$12, %xmm9
	pslldq	$8, %xmm11
	movdqa	%xmm9, %xmm12
	psrldq	$8, %xmm8
	movdqa	%xmm7, %xmm9
	por	%xmm12, %xmm1
	pslldq	$4, %xmm9
	por	%xmm11, %xmm8
	movdqa	144(%rsp), %xmm12
	psrldq	$12, %xmm7
	por	%xmm8, %xmm1
	movdqa	%xmm14, %xmm8
	pand	%xmm12, %xmm0
	por	%xmm9, %xmm7
	pand	%xmm3, %xmm8
	por	%xmm7, %xmm0
	movdqa	%xmm8, %xmm9
	pslldq	$8, %xmm9
	psrldq	$8, %xmm8
	por	%xmm0, %xmm1
	movaps	%xmm1, 16(%rdx)
	movdqa	%xmm15, %xmm0
	movdqa	%xmm13, %xmm1
	por	%xmm9, %xmm8
	pand	%xmm3, %xmm0
	pand	%xmm3, %xmm1
	pand	%xmm12, %xmm3
	movdqa	%xmm0, %xmm11
	psrldq	$4, %xmm0
	movdqa	%xmm1, %xmm7
	pslldq	$12, %xmm11
	pslldq	$4, %xmm7
	psrldq	$12, %xmm1
	por	%xmm11, %xmm0
	por	%xmm7, %xmm1
	por	%xmm8, %xmm0
	por	%xmm1, %xmm3
	movdqa	%xmm13, %xmm1
	por	%xmm3, %xmm0
	movdqa	%xmm15, %xmm3
	pand	%xmm4, %xmm1
	movaps	%xmm0, 32(%rdx)
	movdqa	%xmm14, %xmm0
	pand	%xmm4, %xmm3
	movdqa	%xmm1, %xmm7
	pand	%xmm4, %xmm0
	movdqa	%xmm3, %xmm8
	pand	%xmm12, %xmm4
	pslldq	$12, %xmm8
	pslldq	$4, %xmm7
	movdqa	%xmm0, %xmm9
	pslldq	$8, %xmm9
	psrldq	$4, %xmm3
	psrldq	$8, %xmm0
	psrldq	$12, %xmm1
	por	%xmm8, %xmm3
	por	%xmm9, %xmm0
	por	%xmm7, %xmm1
	por	%xmm4, %xmm1
	por	%xmm3, %xmm0
	movdqa	%xmm15, %xmm3
	por	%xmm1, %xmm0
	pand	%xmm2, %xmm3
	movdqa	%xmm13, %xmm1
	movaps	%xmm0, 48(%rdx)
	movdqa	%xmm14, %xmm0
	pand	%xmm2, %xmm1
	movdqa	%xmm3, %xmm7
	pand	%xmm2, %xmm0
	pslldq	$12, %xmm7
	movdqa	%xmm1, %xmm4
	movdqa	%xmm0, %xmm8
	psrldq	$4, %xmm3
	pand	%xmm12, %xmm2
	pslldq	$8, %xmm8
	psrldq	$8, %xmm0
	por	%xmm7, %xmm3
	pslldq	$4, %xmm4
	psrldq	$12, %xmm1
	por	%xmm8, %xmm0
	por	%xmm3, %xmm0
	por	%xmm4, %xmm1
	por	%xmm2, %xmm1
	movdqa	%xmm0, %xmm2
	movdqa	%xmm13, %xmm0
	por	%xmm1, %xmm2
	pand	%xmm5, %xmm0
	movdqa	%xmm15, %xmm1
	movaps	%xmm2, 64(%rdx)
	movdqa	%xmm0, %xmm7
	movdqa	%xmm14, %xmm2
	pand	%xmm5, %xmm1
	pand	%xmm5, %xmm2
	pslldq	$4, %xmm7
	pand	%xmm12, %xmm5
	psrldq	$12, %xmm0
	movdqa	%xmm1, %xmm3
	movdqa	%xmm2, %xmm4
	psrldq	$8, %xmm2
	pslldq	$12, %xmm3
	por	%xmm7, %xmm0
	pslldq	$8, %xmm4
	por	%xmm0, %xmm5
	movdqa	%xmm2, %xmm0
	psrldq	$4, %xmm1
	por	%xmm4, %xmm0
	movdqa	%xmm15, %xmm2
	por	%xmm3, %xmm1
	pand	%xmm6, %xmm2
	movdqa	%xmm15, %xmm7
	por	%xmm1, %xmm0
	movdqa	%xmm13, %xmm1
	movdqa	%xmm2, %xmm3
	por	%xmm0, %xmm5
	pand	%xmm6, %xmm1
	movdqa	%xmm14, %xmm0
	movaps	%xmm5, 80(%rdx)
	movdqa	%xmm1, %xmm5
	pand	%xmm6, %xmm0
	pand	%xmm12, %xmm6
	pslldq	$4, %xmm5
	psrldq	$12, %xmm1
	movdqa	%xmm0, %xmm4
	por	%xmm5, %xmm1
	psrldq	$4, %xmm2
	pand	%xmm10, %xmm7
	pslldq	$12, %xmm3
	pslldq	$8, %xmm4
	por	%xmm1, %xmm6
	psrldq	$8, %xmm0
	movdqa	%xmm2, %xmm1
	movdqa	%xmm7, %xmm2
	por	%xmm3, %xmm1
	por	%xmm4, %xmm0
	movdqa	%xmm7, %xmm3
	psrldq	$4, %xmm2
	pslldq	$12, %xmm3
	por	%xmm1, %xmm0
	movdqa	%xmm13, %xmm1
	por	%xmm0, %xmm6
	movdqa	%xmm14, %xmm0
	pand	%xmm10, %xmm1
	pand	%xmm10, %xmm0
	pand	%xmm12, %xmm10
	movaps	%xmm6, 96(%rdx)
	movdqa	%xmm1, %xmm5
	psrldq	$12, %xmm1
	movdqa	%xmm0, %xmm4
	pslldq	$4, %xmm5
	pslldq	$8, %xmm4
	por	%xmm5, %xmm1
	psrldq	$8, %xmm0
	por	%xmm1, %xmm10
	movdqa	%xmm2, %xmm1
	por	%xmm4, %xmm0
	por	%xmm3, %xmm1
	por	%xmm1, %xmm0
	por	%xmm0, %xmm10
	movaps	%xmm10, 112(%rdx)
# WAS call	aes_nohw_mix_columns
	call	.Laes_nohw_mix_columns_local_target
	movdqa	(%rdx), %xmm10
	pxor	-128(%rax), %xmm10
	movdqa	16(%rdx), %xmm8
	movdqa	32(%rdx), %xmm2
	movaps	%xmm10, (%rdx)
	pxor	-112(%rax), %xmm8
	movdqa	48(%rdx), %xmm1
	movdqa	64(%rdx), %xmm7
	movdqa	80(%rdx), %xmm4
	movaps	%xmm8, 16(%rdx)
	pxor	-96(%rax), %xmm2
	movdqa	96(%rdx), %xmm3
	movdqa	112(%rdx), %xmm12
	movaps	%xmm2, 32(%rdx)
	pxor	-80(%rax), %xmm1
	movaps	%xmm1, 48(%rdx)
	pxor	-64(%rax), %xmm7
	movaps	%xmm7, 64(%rdx)
	pxor	-48(%rax), %xmm4
	movaps	%xmm4, 80(%rdx)
	pxor	-32(%rax), %xmm3
	movaps	%xmm3, 96(%rdx)
	pxor	-16(%rax), %xmm12
	movaps	%xmm12, 112(%rdx)
	cmpq	%rax, %r8
	jne	.L1501
.L1502:

	movq	%rdx, %rdi
	salq	$7, %rsi
# WAS call	aes_nohw_sub_bytes
	call	.Laes_nohw_sub_bytes_local_target
	movdqa	(%rdx), %xmm5
	addq	%rsi, %rcx
	movdqa	224(%rsp), %xmm14
	movdqa	240(%rsp), %xmm10
	movdqa	160(%rsp), %xmm13
	movdqa	144(%rsp), %xmm12
	movdqa	%xmm14, %xmm3
	movdqa	%xmm10, %xmm1
	pand	%xmm5, %xmm3
	movdqa	%xmm13, %xmm2
	pand	%xmm5, %xmm1
	movdqa	%xmm3, %xmm4
	pand	%xmm5, %xmm2
	movdqa	%xmm1, %xmm0
	pslldq	$12, %xmm4
	movdqa	%xmm2, %xmm6
	psrldq	$8, %xmm1
	pslldq	$8, %xmm0
	pand	%xmm12, %xmm5
	psrldq	$4, %xmm3
	por	%xmm1, %xmm0
	movdqa	%xmm4, %xmm1
	movdqa	16(%rdx), %xmm4
	por	%xmm3, %xmm1
	pslldq	$4, %xmm6
	movdqa	%xmm14, %xmm3
	psrldq	$12, %xmm2
	por	%xmm1, %xmm0
	movdqa	%xmm10, %xmm1
	por	%xmm6, %xmm2
	pand	%xmm4, %xmm3
	pand	%xmm4, %xmm1
	por	%xmm2, %xmm5
	movdqa	%xmm3, %xmm6
	movdqa	%xmm13, %xmm2
	por	%xmm0, %xmm5
	movdqa	%xmm1, %xmm0
	pand	%xmm4, %xmm2
	pslldq	$12, %xmm6
	psrldq	$8, %xmm1
	movdqa	%xmm2, %xmm7
	movaps	%xmm5, (%rdx)
	pslldq	$8, %xmm0
	psrldq	$4, %xmm3
	pand	%xmm12, %xmm4
	por	%xmm1, %xmm0
	movdqa	%xmm6, %xmm1
	movdqa	%xmm10, %xmm6
	por	%xmm3, %xmm1
	pslldq	$4, %xmm7
	movdqa	32(%rdx), %xmm3
	movdqa	%xmm13, %xmm9
	psrldq	$12, %xmm2
	por	%xmm1, %xmm0
	movdqa	%xmm13, %xmm1
	por	%xmm7, %xmm2
	pand	%xmm3, %xmm1
	pand	%xmm3, %xmm6
	por	%xmm2, %xmm4
	movdqa	%xmm14, %xmm2
	movdqa	%xmm1, %xmm8
	pand	%xmm3, %xmm2
	pslldq	$4, %xmm8
	por	%xmm0, %xmm4
	movdqa	%xmm2, %xmm7
	psrldq	$12, %xmm1
	movdqa	%xmm6, %xmm0
	movaps	%xmm4, 16(%rdx)
	por	%xmm8, %xmm1
	pslldq	$12, %xmm7
	pand	%xmm12, %xmm3
	psrldq	$4, %xmm2
	psrldq	$8, %xmm6
	por	%xmm1, %xmm3
	pslldq	$8, %xmm0
	movdqa	%xmm7, %xmm1
	movdqa	%xmm10, %xmm8
	por	%xmm2, %xmm1
	por	%xmm6, %xmm0
	movdqa	%xmm14, %xmm2
	por	%xmm1, %xmm0
	movdqa	%xmm10, %xmm15
	por	%xmm0, %xmm3
	movdqa	48(%rdx), %xmm0
	movaps	%xmm3, 32(%rdx)
	pand	%xmm0, %xmm9
	pand	%xmm0, %xmm8
	pand	%xmm0, %xmm2
	movdqa	%xmm9, %xmm6
	movdqa	%xmm8, %xmm1
	pand	%xmm12, %xmm0
	psrldq	$12, %xmm9
	pslldq	$4, %xmm6
	movdqa	%xmm2, %xmm7
	pslldq	$8, %xmm1
	psrldq	$4, %xmm2
	por	%xmm9, %xmm6
	psrldq	$8, %xmm8
	por	%xmm0, %xmm6
	movdqa	%xmm1, %xmm0
	pslldq	$12, %xmm7
	por	%xmm8, %xmm0
	movdqa	%xmm14, %xmm1
	por	%xmm2, %xmm7
	movdqa	64(%rdx), %xmm2
	movdqa	%xmm13, %xmm9
	por	%xmm7, %xmm0
	movdqa	%xmm10, %xmm7
	pand	%xmm2, %xmm1
	pand	%xmm2, %xmm7
	pand	%xmm2, %xmm9
	por	%xmm0, %xmm6
	movdqa	%xmm1, %xmm8
	movdqa	%xmm7, %xmm0
	movdqa	%xmm9, %xmm10
	psrldq	$4, %xmm1
	pand	%xmm12, %xmm2
	movaps	%xmm6, 48(%rdx)
	psrldq	$8, %xmm7
	psrldq	$12, %xmm9
	pslldq	$12, %xmm8
	pslldq	$8, %xmm0
	pslldq	$4, %xmm10
	por	%xmm1, %xmm8
	por	%xmm7, %xmm0
	movdqa	80(%rdx), %xmm1
	por	%xmm9, %xmm10
	por	%xmm8, %xmm0
	movdqa	%xmm15, %xmm7
	por	%xmm10, %xmm2
	movdqa	%xmm14, %xmm8
	movdqa	%xmm13, %xmm10
	pand	%xmm1, %xmm8
	pand	%xmm1, %xmm7
	pand	%xmm1, %xmm10
	por	%xmm0, %xmm2
	movdqa	%xmm7, %xmm9
	movdqa	%xmm8, %xmm0
	movdqa	%xmm10, %xmm11
	psrldq	$4, %xmm8
	movaps	%xmm2, 64(%rdx)
	pand	%xmm12, %xmm1
	psrldq	$8, %xmm7
	psrldq	$12, %xmm10
	pslldq	$12, %xmm0
	pslldq	$8, %xmm9
	pslldq	$4, %xmm11
	por	%xmm7, %xmm9
	por	%xmm8, %xmm0
	movdqa	96(%rdx), %xmm7
	por	%xmm10, %xmm11
	por	%xmm9, %xmm0
	movdqa	%xmm15, %xmm9
	por	%xmm11, %xmm1
	pand	%xmm7, %xmm9
	movdqa	%xmm13, %xmm8
	por	%xmm0, %xmm1
	movdqa	%xmm14, %xmm0
	pand	%xmm7, %xmm8
	pand	%xmm7, %xmm0
	movdqa	%xmm9, %xmm11
	movaps	%xmm1, 80(%rdx)
	pand	144(%rsp), %xmm7
	movdqa	%xmm0, %xmm10
	psrldq	$8, %xmm9
	pslldq	$12, %xmm10
	pslldq	$8, %xmm11
	movdqa	%xmm10, %xmm12
	movdqa	%xmm8, %xmm10
	por	%xmm9, %xmm11
	movdqa	112(%rdx), %xmm9
	psrldq	$12, %xmm8
	psrldq	$4, %xmm0
	pslldq	$4, %xmm10
	por	%xmm12, %xmm0
	pand	%xmm9, %xmm13
	por	%xmm8, %xmm10
	por	%xmm11, %xmm0
	pand	%xmm9, %xmm14
	por	%xmm10, %xmm7
	movdqa	%xmm13, %xmm8
	movdqa	%xmm14, %xmm11
	por	%xmm7, %xmm0
	movdqa	%xmm15, %xmm7
	movdqa	%xmm8, %xmm10
	pand	%xmm9, %xmm7
	movdqa	%xmm14, %xmm13
	movaps	%xmm0, 96(%rdx)
	movdqa	%xmm7, %xmm14
	pslldq	$4, %xmm10
	psrldq	$4, %xmm11
	psrldq	$8, %xmm7
	movdqa	%xmm10, %xmm12
	pslldq	$12, %xmm13
	pslldq	$8, %xmm14
	movdqa	%xmm11, %xmm10
	psrldq	$12, %xmm8
	por	%xmm13, %xmm10
	por	%xmm14, %xmm7
	por	%xmm10, %xmm7
	movdqa	%xmm8, %xmm10
	movdqa	144(%rsp), %xmm8
	por	%xmm12, %xmm10
	pand	%xmm9, %xmm8
	por	%xmm10, %xmm8
	por	%xmm8, %xmm7
	movaps	%xmm7, 112(%rdx)
	pxor	(%rcx), %xmm5
	movaps	%xmm5, (%rdx)
	pxor	16(%rcx), %xmm4
	movaps	%xmm4, 16(%rdx)
	pxor	32(%rcx), %xmm3
	movaps	%xmm3, 32(%rdx)
	pxor	48(%rcx), %xmm6
	movaps	%xmm6, 48(%rdx)
	pxor	64(%rcx), %xmm2
	movaps	%xmm2, 64(%rdx)
	pxor	80(%rcx), %xmm1
	movaps	%xmm1, 80(%rdx)
	pxor	96(%rcx), %xmm0
	movaps	%xmm0, 96(%rdx)
	pxor	112(%rcx), %xmm7
	movaps	%xmm7, 112(%rdx)
	addq	$264, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L1506:

	.cfi_restore_state
	movdqa	.LC100(%rip), %xmm5
	movaps	%xmm5, 224(%rsp)
	movdqa	.LC101(%rip), %xmm5
	movaps	%xmm5, 240(%rsp)
	movdqa	.LC102(%rip), %xmm5
	movaps	%xmm5, 160(%rsp)
	movdqa	.LC103(%rip), %xmm5
	movaps	%xmm5, 144(%rsp)
	jmp	.L1502
	.cfi_endproc
.LFE775:

	.size	aes_nohw_encrypt_batch, .-aes_nohw_encrypt_batch
# WAS .section	.text.aes_nohw_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_encrypt
	.hidden	aes_nohw_encrypt
	.type	aes_nohw_encrypt, @function
.Laes_nohw_encrypt_local_target:
aes_nohw_encrypt:
.LFB785:

	.cfi_startproc
	endbr64
	subq	$2200, %rsp
	.cfi_def_cfa_offset 2208
	movq	%rdi, %r10
	movq	%rsi, %r9
	xorl	%ecx, %ecx
	leaq	256(%rsp), %r11
	movl	240(%rdx), %r8d
	movq	%fs:40, %rax
	movq	%rax, 2184(%rsp)
	xorl	%eax, %eax
	movq	%r11, %rax
	.p2align 4,,10
	.p2align 3
.L1508:

	movq	%rcx, %rsi
	movq	%rax, %rdi
	addq	$1, %rcx
	subq	$-128, %rax
	salq	$4, %rsi
	movdqu	(%rdx,%rsi), %xmm0
	movaps	%xmm0, -128(%rax)
	movaps	%xmm0, -112(%rax)
	movaps	%xmm0, -96(%rax)
	movaps	%xmm0, -80(%rax)
	movaps	%xmm0, -64(%rax)
	movaps	%xmm0, -48(%rax)
	movaps	%xmm0, -32(%rax)
	movaps	%xmm0, -16(%rax)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	cmpq	%rcx, %r8
	jnb	.L1508
	leaq	16(%rsp), %rsi
	movdqu	(%r10), %xmm1
	movq	%rsp, %rdx
	xorl	%eax, %eax
	movq	%rsi, %rdi
	movl	$14, %ecx
	movq	%r8, %rsi
	rep stosq
	movq	%rdx, %rdi
	movaps	%xmm1, (%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movq	%r11, %rdi
# WAS call	aes_nohw_encrypt_batch
	call	.Laes_nohw_encrypt_batch_local_target
	movdqa	(%rsp), %xmm2
	movdqa	16(%rsp), %xmm3
	leaq	128(%rsp), %rdi
	movdqa	32(%rsp), %xmm4
	movdqa	48(%rsp), %xmm5
	movdqa	64(%rsp), %xmm6
	movdqa	80(%rsp), %xmm7
	movaps	%xmm2, 128(%rsp)
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm2
	movaps	%xmm3, 144(%rsp)
	movaps	%xmm4, 160(%rsp)
	movaps	%xmm5, 176(%rsp)
	movaps	%xmm6, 192(%rsp)
	movaps	%xmm7, 208(%rsp)
	movaps	%xmm1, 224(%rsp)
	movaps	%xmm2, 240(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	128(%rsp), %xmm3
	movups	%xmm3, (%r9)
	movq	2184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1512
	addq	$2200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L1512:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE785:

	.size	aes_nohw_encrypt, .-aes_nohw_encrypt
# WAS .section	.text.AES_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_encrypt
	.type	AES_encrypt, @function
.LAES_encrypt_local_target:
AES_encrypt:
.LFB229:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L1517
	testb	$2, %ah
	je	.L1515
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	vpaes_encrypt@PLT
	jmp	.Lvpaes_encrypt_local_target
	.p2align 4,,10
	.p2align 3
.L1515:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_nohw_encrypt
	jmp	.Laes_nohw_encrypt_local_target
	.p2align 4,,10
	.p2align 3
.L1517:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_encrypt@PLT
	jmp	.Laes_hw_encrypt_local_target
	.cfi_endproc
.LFE229:

	.size	AES_encrypt, .-AES_encrypt
# WAS .section	.text.aes_nohw_ctr32_encrypt_blocks.part.0,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_ctr32_encrypt_blocks.part.0, @function
.Laes_nohw_ctr32_encrypt_blocks.part.0_local_target:
aes_nohw_ctr32_encrypt_blocks.part.0:
.LFB2934:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r11
	movq	%rdx, %r9
	xorl	%edx, %edx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$2472, %rsp
	.cfi_def_cfa_offset 2528
	movl	240(%rcx), %esi
	movq	%fs:40, %rax
	movq	%rax, 2456(%rsp)
	xorl	%eax, %eax
	leaq	272(%rsp), %r13
	movq	%r13, %rax
	.p2align 4,,10
	.p2align 3
.L1519:

	movq	%rdx, %rcx
	movq	%rax, %rdi
	addq	$1, %rdx
	subq	$-128, %rax
	salq	$4, %rcx
	movdqu	0(%rbp,%rcx), %xmm0
	movaps	%xmm0, -128(%rax)
	movaps	%xmm0, -112(%rax)
	movaps	%xmm0, -96(%rax)
	movaps	%xmm0, -80(%rax)
	movaps	%xmm0, -64(%rax)
	movaps	%xmm0, -48(%rax)
	movaps	%xmm0, -32(%rax)
	movaps	%xmm0, -16(%rax)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	cmpq	%rdx, %rsi
	jnb	.L1519
	movq	(%r8), %rax
	movq	8(%r8), %r10
	leaq	16(%rsp), %rdx
	xorl	%r15d, %r15d
	leaq	144(%rsp), %r14
	movq	%rax, 2192(%rsp)
	movq	%r10, 2200(%rsp)
	movq	%rax, 2208(%rsp)
	movq	%r10, 2216(%rsp)
	movq	%rax, 2224(%rsp)
	movq	%r10, 2232(%rsp)
	movq	%rax, 2240(%rsp)
	movq	%r10, 2248(%rsp)
	movq	%rax, 2256(%rsp)
	movq	%r10, 2264(%rsp)
	movq	%rax, 2272(%rsp)
	movq	%r10, 2280(%rsp)
	movq	%rax, 2288(%rsp)
	movq	%r10, 2296(%rsp)
	movq	%rax, 2304(%rsp)
	leaq	32(%rsp), %rax
	movq	%r10, 2312(%rsp)
	shrq	$32, %r10
	movq	%rax, 8(%rsp)
	bswap	%r10d
	jmp	.L1531
	.p2align 4,,10
	.p2align 3
.L1542:

	movdqa	2208(%rsp), %xmm3
	movaps	%xmm3, 32(%rsp)
	cmpq	$2, %r9
	jbe	.L1521
	movdqa	2224(%rsp), %xmm7
	movaps	%xmm7, 48(%rsp)
	cmpq	$3, %r9
	jbe	.L1521
	movdqa	2240(%rsp), %xmm7
	movaps	%xmm7, 64(%rsp)
	cmpq	$4, %r9
	jbe	.L1521
	movdqa	2256(%rsp), %xmm1
	movaps	%xmm1, 80(%rsp)
	cmpq	$5, %r9
	jbe	.L1521
	movdqa	2272(%rsp), %xmm4
	movaps	%xmm4, 96(%rsp)
	cmpq	$6, %r9
	jbe	.L1521
	movdqa	2288(%rsp), %xmm6
	movaps	%xmm6, 112(%rsp)
	cmpq	$7, %r9
	jbe	.L1521
	movdqa	2304(%rsp), %xmm1
	movaps	%xmm1, 128(%rsp)
.L1521:

	movq	%rdx, %rdi
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movl	240(%rbp), %esi
	movq	%r13, %rdi
# WAS call	aes_nohw_encrypt_batch
	call	.Laes_nohw_encrypt_batch_local_target
	movdqa	16(%rsp), %xmm4
	movq	%r14, %rdi
	movdqa	32(%rsp), %xmm5
	movdqa	48(%rsp), %xmm6
	movdqa	64(%rsp), %xmm7
	movdqa	80(%rsp), %xmm3
	movaps	%xmm4, 144(%rsp)
	movdqa	96(%rsp), %xmm4
	movaps	%xmm5, 160(%rsp)
	movdqa	112(%rsp), %xmm5
	movaps	%xmm6, 176(%rsp)
	movdqa	128(%rsp), %xmm6
	movaps	%xmm7, 192(%rsp)
	movaps	%xmm3, 208(%rsp)
	movaps	%xmm4, 224(%rsp)
	movaps	%xmm5, 240(%rsp)
	movaps	%xmm6, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	144(%rsp), %xmm1
	movdqa	160(%rsp), %xmm0
	cmpq	$2, %r9
	jbe	.L1541
	movdqa	176(%rsp), %xmm2
	movaps	%xmm2, 2352(%rsp)
	cmpq	$3, %r9
	jbe	.L1522
	movdqa	192(%rsp), %xmm2
	movaps	%xmm2, 2368(%rsp)
	cmpq	$4, %r9
	jbe	.L1523
	movdqa	208(%rsp), %xmm3
	movaps	%xmm3, 2384(%rsp)
	cmpq	$5, %r9
	jbe	.L1524
	movdqa	224(%rsp), %xmm5
	movaps	%xmm5, 2400(%rsp)
	cmpq	$6, %r9
	jbe	.L1525
	movdqa	240(%rsp), %xmm6
	movaps	%xmm6, 2416(%rsp)
	cmpq	$7, %r9
	jbe	.L1526
	movdqa	256(%rsp), %xmm4
	movdqu	(%rbx), %xmm5
	pxor	%xmm5, %xmm1
	movaps	%xmm4, 2432(%rsp)
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm7
	pxor	%xmm7, %xmm0
	movups	%xmm0, 16(%r11)
	movdqu	32(%rbx), %xmm0
	pxor	2352(%rsp), %xmm0
	movups	%xmm0, 32(%r11)
.L1527:

	movdqu	48(%rbx), %xmm0
	pxor	2368(%rsp), %xmm0
	movups	%xmm0, 48(%r11)
	cmpq	$4, %r9
	jbe	.L1529
	movdqu	64(%rbx), %xmm0
	pxor	2384(%rsp), %xmm0
	movups	%xmm0, 64(%r11)
	cmpq	$5, %r9
	jbe	.L1529
	movdqu	80(%rbx), %xmm0
	pxor	2400(%rsp), %xmm0
	movups	%xmm0, 80(%r11)
	cmpq	$6, %r9
	jbe	.L1529
	movdqu	96(%rbx), %xmm0
	pxor	2416(%rsp), %xmm0
	movups	%xmm0, 96(%r11)
	cmpq	$7, %r9
	jbe	.L1529
	movdqu	112(%rbx), %xmm0
	pxor	2432(%rsp), %xmm0
	movups	%xmm0, 112(%r11)
.L1529:

	subq	%r12, %r9
	je	.L1518
	subq	$-128, %rbx
	subq	$-128, %r11
	addl	$8, %r10d
.L1531:

	movl	%r10d, %eax
	movl	$8, %r8d
	movq	8(%rsp), %rdi
	movl	$14, %ecx
	bswap	%eax
	movl	%eax, 2204(%rsp)
	leal	1(%r10), %eax
	cmpq	%r8, %r9
	movdqa	2192(%rsp), %xmm2
	bswap	%eax
	cmovbe	%r9, %r8
	movl	%eax, 2220(%rsp)
	leal	2(%r10), %eax
	bswap	%eax
	movl	%eax, 2236(%rsp)
	leal	3(%r10), %eax
	movq	%r8, %r12
	bswap	%eax
	movl	%eax, 2252(%rsp)
	leal	4(%r10), %eax
	bswap	%eax
	movl	%eax, 2268(%rsp)
	leal	5(%r10), %eax
	bswap	%eax
	movl	%eax, 2284(%rsp)
	leal	6(%r10), %eax
	bswap	%eax
	movl	%eax, 2300(%rsp)
	leal	7(%r10), %eax
	bswap	%eax
	movl	%eax, 2316(%rsp)
	movq	%r15, %rax
	rep stosq
	movaps	%xmm2, 16(%rsp)
	cmpq	$1, %r9
	ja	.L1542
	movq	%rdx, %rdi
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movl	240(%rbp), %esi
	movq	%r13, %rdi
# WAS call	aes_nohw_encrypt_batch
	call	.Laes_nohw_encrypt_batch_local_target
	movdqa	16(%rsp), %xmm3
	movq	%r14, %rdi
	movdqa	32(%rsp), %xmm2
	movdqa	96(%rsp), %xmm6
	movdqa	112(%rsp), %xmm1
	movaps	%xmm3, 144(%rsp)
	movdqa	48(%rsp), %xmm3
	movaps	%xmm2, 160(%rsp)
	movdqa	64(%rsp), %xmm2
	movaps	%xmm3, 176(%rsp)
	movdqa	80(%rsp), %xmm3
	movaps	%xmm2, 192(%rsp)
	movdqa	128(%rsp), %xmm2
	movaps	%xmm3, 208(%rsp)
	movaps	%xmm6, 224(%rsp)
	movaps	%xmm1, 240(%rsp)
	movaps	%xmm2, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqu	(%rbx), %xmm0
	pxor	144(%rsp), %xmm0
	movups	%xmm0, (%r11)
.L1518:

	movq	2456(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1543
	addq	$2472, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1541:

	.cfi_restore_state
	movdqu	(%rbx), %xmm3
	pxor	%xmm3, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm2
	pxor	%xmm2, %xmm0
	movups	%xmm0, 16(%r11)
	jmp	.L1529
.L1522:

	movdqu	(%rbx), %xmm4
	pxor	%xmm4, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm5
	pxor	%xmm5, %xmm0
.L1528:

	movups	%xmm0, 16(%r11)
	movdqu	32(%rbx), %xmm0
	pxor	2352(%rsp), %xmm0
	movups	%xmm0, 32(%r11)
	cmpq	$3, %r9
	ja	.L1527
	jmp	.L1529
.L1523:

	movdqu	(%rbx), %xmm3
	pxor	%xmm3, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm4
	pxor	%xmm4, %xmm0
	jmp	.L1528
.L1524:

	movdqu	(%rbx), %xmm3
	pxor	%xmm3, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm7
	pxor	%xmm7, %xmm0
	jmp	.L1528
.L1525:

	movdqu	(%rbx), %xmm5
	pxor	%xmm5, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm6
	pxor	%xmm6, %xmm0
	jmp	.L1528
.L1526:

	movdqu	(%rbx), %xmm2
	pxor	%xmm2, %xmm1
	movups	%xmm1, (%r11)
	movdqu	16(%rbx), %xmm1
	pxor	%xmm1, %xmm0
	jmp	.L1528
.L1543:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2934:

	.size	aes_nohw_ctr32_encrypt_blocks.part.0, .-aes_nohw_ctr32_encrypt_blocks.part.0
# WAS .section	.text.aes_nohw_ctr32_encrypt_blocks,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_ctr32_encrypt_blocks
	.hidden	aes_nohw_ctr32_encrypt_blocks
	.type	aes_nohw_ctr32_encrypt_blocks, @function
.Laes_nohw_ctr32_encrypt_blocks_local_target:
aes_nohw_ctr32_encrypt_blocks:
.LFB788:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	jne	.L1546
	ret
	.p2align 4,,10
	.p2align 3
.L1546:

# WAS jmp	aes_nohw_ctr32_encrypt_blocks.part.0
	jmp	.Laes_nohw_ctr32_encrypt_blocks.part.0_local_target
	.cfi_endproc
.LFE788:

	.size	aes_nohw_ctr32_encrypt_blocks, .-aes_nohw_ctr32_encrypt_blocks
# WAS .section	.text.bn_mul_normal,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_normal, @function
.Lbn_mul_normal_local_target:
bn_mul_normal:
.LFB1017:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	cmpq	%r8, %rdx
	jb	.L1548
	leaq	0(,%rdx,8), %rdx
	testq	%r8, %r8
	je	.L1556
	leaq	(%rdi,%rdx), %rbx
	testq	%r13, %r13
	jne	.L1595
	movq	$0, (%rbx)
	cmpq	$1, %r8
	jne	.L1554
	jmp	.L1547
	.p2align 4,,10
	.p2align 3
.L1596:

	movq	$0, 16(%rbx)
	cmpq	$3, %rbp
	je	.L1547
	movq	$0, 24(%rbx)
	subq	$4, %rbp
	je	.L1547
	movq	$0, 32(%rbx)
	addq	$32, %rbx
	cmpq	$1, %rbp
	je	.L1547
.L1554:

	movq	$0, 8(%rbx)
	cmpq	$2, %rbp
	jne	.L1596
.L1547:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1548:

	.cfi_restore_state
	leaq	0(,%r8,8), %rdx
	testq	%r13, %r13
	je	.L1556
	movq	(%r14), %rcx
	leaq	(%r12,%rdx), %rbx
.L1555:

	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r12, %rdi
# WAS call	bn_mul_words.part.0
	call	.Lbn_mul_words.part.0_local_target
	movq	%rax, (%rbx)
	cmpq	$1, %r13
	jne	.L1553
	jmp	.L1547
	.p2align 4,,10
	.p2align 3
.L1597:

	movq	16(%r14), %rcx
	leaq	16(%r12), %rdi
	movq	%rbp, %rdx
	movq	%r15, %rsi
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	%rax, 16(%rbx)
	cmpq	$3, %r13
	je	.L1547
	movq	24(%r14), %rcx
	leaq	24(%r12), %rdi
	movq	%rbp, %rdx
	movq	%r15, %rsi
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	%rax, 24(%rbx)
	subq	$4, %r13
	je	.L1547
	movq	32(%r14), %rcx
	addq	$32, %r12
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r12, %rdi
	addq	$32, %rbx
	addq	$32, %r14
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	%rax, (%rbx)
	cmpq	$1, %r13
	je	.L1547
.L1553:

	movq	8(%r14), %rcx
	leaq	8(%r12), %rdi
	movq	%rbp, %rdx
	movq	%r15, %rsi
# WAS call	bn_mul_add_words.part.0
	call	.Lbn_mul_add_words.part.0_local_target
	movq	%rax, 8(%rbx)
	cmpq	$2, %r13
	jne	.L1597
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1556:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L1547
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r12, %rdi
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L1595:

	.cfi_restore_state
	movq	%r15, %rax
	movq	%r13, %rbp
	movq	(%rcx), %rcx
	movq	%r8, %r13
	movq	%rsi, %r15
	movq	%rax, %r14
	jmp	.L1555
	.cfi_endproc
.LFE1017:

	.size	bn_mul_normal, .-bn_mul_normal
# WAS .section	.rodata.ec_GFp_nistp256_point_get_affine_coordinates.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC105:

	.string	"/aws-lc/crypto/fipsmodule/ec/p256.c"
# WAS .section	.text.ec_GFp_nistp256_point_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_point_get_affine_coordinates, @function
.Lec_GFp_nistp256_point_get_affine_coordinates_local_target:
ec_GFp_nistp256_point_get_affine_coordinates:
.LFB1983:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$376, %rsp
	.cfi_def_cfa_offset 432
	movq	%rdx, 8(%rsp)
	movl	328(%rdi), %edx
	movq	%rcx, 16(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 360(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L1615
	cmpl	$1, %edx
	je	.L1616
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L1601
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L1601
	movdqu	176(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$3, %eax
	je	.L1601
	movdqu	192(%rsi), %xmm6
	por	%xmm6, %xmm0
	cmpl	$4, %eax
	je	.L1601
	movdqu	208(%rsi), %xmm7
	por	%xmm7, %xmm0
	cmpl	$5, %eax
	je	.L1601
	xorl	%ecx, %ecx
.L1602:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L1602
.L1601:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L1603
	andl	$-2, %edx
.L1600:

	movslq	%edx, %rdx
	orq	144(%rbx,%rdx,8), %rax
.L1603:

	leaq	-1(%rax), %rdx
	notq	%rax
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
.L1599:

	testl	%eax, %eax
	jne	.L1649
	leaq	32(%rsp), %rbp
	leaq	96(%rsp), %r15
	movdqu	144(%rbx), %xmm3
	movdqu	160(%rbx), %xmm4
	movq	%rbp, %rsi
	movq	%r15, %rdi
	leaq	128(%rsp), %r14
	movq	%rbp, 24(%rsp)
	movaps	%xmm3, 32(%rsp)
	leaq	160(%rsp), %r13
	leaq	192(%rsp), %r12
	movaps	%xmm4, 48(%rsp)
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%rbp, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r14, %rsi
	movq	%r13, %rdi
	movl	$5, %ebp
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	.p2align 4,,10
	.p2align 3
.L1606:

	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %ebp
	jne	.L1606
	leaq	224(%rsp), %rbp
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	leaq	256(%rsp), %r12
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$14, %r13d
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	.p2align 4,,10
	.p2align 3
.L1607:

	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %r13d
	jne	.L1607
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movl	$31, %r14d
	leaq	288(%rsp), %r13
	leaq	320(%rsp), %rbp
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%r15, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	.p2align 4,,10
	.p2align 3
.L1608:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %r14d
	jne	.L1608
	movq	24(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$128, %r14d
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	.p2align 4,,10
	.p2align 3
.L1609:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %r14d
	jne	.L1609
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$32, %r14d
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	.p2align 4,,10
	.p2align 3
.L1610:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %r14d
	jne	.L1610
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movl	$30, %r13d
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	.p2align 4,,10
	.p2align 3
.L1611:

	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	subl	$1, %r13d
	jne	.L1611
	movq	%r12, %rdx
	movq	%rbp, %rsi
	leaq	64(%rsp), %r12
	movq	%rbp, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	8(%rsp), %r15
	testq	%r15, %r15
	je	.L1612
	movdqu	(%rbx), %xmm7
	movdqu	16(%rbx), %xmm6
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movaps	%xmm7, 320(%rsp)
	movaps	%xmm6, 336(%rsp)
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movdqa	320(%rsp), %xmm5
	movdqa	336(%rsp), %xmm2
	movups	%xmm5, (%r15)
	movups	%xmm2, 16(%r15)
.L1612:

	movq	16(%rsp), %r15
	testq	%r15, %r15
	je	.L1613
	movdqu	72(%rbx), %xmm3
	movdqu	88(%rbx), %xmm4
	movq	%r12, %rsi
	movq	%r12, %rdi
	movaps	%xmm3, 320(%rsp)
	movaps	%xmm4, 336(%rsp)
# WAS call	fiat_p256_square
	call	.Lfiat_p256_square_local_target
	movq	24(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movdqa	320(%rsp), %xmm7
	movdqa	336(%rsp), %xmm6
	movups	%xmm7, (%r15)
	movups	%xmm6, 16(%r15)
.L1613:

	movl	$1, %eax
.L1598:

	movq	360(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L1650
	addq	$376, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1649:

	.cfi_restore_state
	movl	$242, %r8d
	leaq	.LC105(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L1598
.L1615:

	movl	$1, %eax
	jmp	.L1599
.L1616:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L1600
.L1650:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1983:

	.size	ec_GFp_nistp256_point_get_affine_coordinates, .-ec_GFp_nistp256_point_get_affine_coordinates
# WAS .section	.text.aes_nohw_decrypt_batch,"ax",@progbits
.text
	.p2align 4
	.type	aes_nohw_decrypt_batch, @function
.Laes_nohw_decrypt_batch_local_target:
aes_nohw_decrypt_batch:
.LFB776:

	.cfi_startproc
	movq	%rsi, %rax
	subq	$200, %rsp
	.cfi_def_cfa_offset 208
	movdqa	(%rdx), %xmm5
	movdqa	16(%rdx), %xmm3
	salq	$7, %rax
	movdqa	32(%rdx), %xmm2
	movq	%rdi, %rcx
	movdqa	.LC100(%rip), %xmm8
	addq	%rdi, %rax
	movdqa	.LC101(%rip), %xmm6
	movdqa	48(%rdx), %xmm1
	movq	%rdx, %rdi
	pxor	(%rax), %xmm5
	movdqa	.LC102(%rip), %xmm7
	movdqa	64(%rdx), %xmm4
	movdqa	80(%rdx), %xmm0
	movaps	%xmm5, (%rdx)
	pxor	16(%rax), %xmm3
	pand	%xmm5, %xmm6
	pand	%xmm5, %xmm7
	pand	%xmm5, %xmm8
	movdqa	%xmm6, %xmm10
	movdqa	%xmm7, %xmm11
	movdqa	96(%rdx), %xmm12
	movaps	%xmm3, 16(%rdx)
	pxor	32(%rax), %xmm2
	movdqa	%xmm8, %xmm9
	pand	.LC103(%rip), %xmm5
	psrldq	$12, %xmm8
	pslldq	$8, %xmm10
	movdqa	112(%rdx), %xmm13
	movaps	%xmm2, 32(%rdx)
	pslldq	$12, %xmm11
	pxor	48(%rax), %xmm1
	pslldq	$4, %xmm9
	psrldq	$8, %xmm6
	psrldq	$4, %xmm7
	por	%xmm8, %xmm9
	por	%xmm10, %xmm6
	movaps	%xmm1, 48(%rdx)
	por	%xmm11, %xmm7
	pxor	64(%rax), %xmm4
	por	%xmm9, %xmm6
	por	%xmm5, %xmm7
	movdqa	.LC101(%rip), %xmm5
	por	%xmm6, %xmm7
	movaps	%xmm4, 64(%rdx)
	movdqa	.LC102(%rip), %xmm6
	pxor	80(%rax), %xmm0
	movdqa	%xmm7, %xmm14
	movdqa	.LC100(%rip), %xmm7
	pand	%xmm3, %xmm5
	movaps	%xmm0, 80(%rdx)
	pand	%xmm3, %xmm6
	pxor	96(%rax), %xmm12
	movdqa	%xmm5, %xmm9
	pand	%xmm3, %xmm7
	pslldq	$8, %xmm9
	movdqa	%xmm6, %xmm8
	movdqa	%xmm7, %xmm10
	movaps	%xmm12, 96(%rdx)
	pslldq	$12, %xmm8
	pxor	112(%rax), %xmm13
	pslldq	$4, %xmm10
	pand	.LC103(%rip), %xmm3
	psrldq	$12, %xmm7
	psrldq	$8, %xmm5
	psrldq	$4, %xmm6
	por	%xmm10, %xmm7
	por	%xmm9, %xmm5
	por	%xmm8, %xmm6
	por	%xmm7, %xmm5
	por	%xmm6, %xmm3
	movdqa	.LC100(%rip), %xmm6
	por	%xmm3, %xmm5
	movdqa	.LC101(%rip), %xmm3
	movdqa	%xmm5, %xmm11
	movdqa	.LC102(%rip), %xmm5
	pand	%xmm2, %xmm6
	pand	%xmm2, %xmm3
	movdqa	%xmm6, %xmm7
	pand	%xmm2, %xmm5
	psrldq	$12, %xmm6
	movdqa	%xmm3, %xmm9
	pslldq	$8, %xmm9
	pslldq	$4, %xmm7
	movdqa	%xmm5, %xmm8
	psrldq	$8, %xmm3
	pslldq	$12, %xmm8
	por	%xmm6, %xmm7
	movdqa	.LC102(%rip), %xmm6
	pand	.LC103(%rip), %xmm2
	psrldq	$4, %xmm5
	por	%xmm9, %xmm3
	por	%xmm7, %xmm3
	por	%xmm8, %xmm5
	movdqa	.LC100(%rip), %xmm7
	pand	%xmm1, %xmm6
	por	%xmm2, %xmm5
	movdqa	%xmm3, %xmm2
	movdqa	.LC101(%rip), %xmm3
	movdqa	%xmm6, %xmm8
	pand	%xmm1, %xmm7
	pslldq	$12, %xmm8
	por	%xmm5, %xmm2
	pand	%xmm1, %xmm3
	psrldq	$4, %xmm6
	movdqa	%xmm7, %xmm10
	movdqa	%xmm3, %xmm9
	psrldq	$8, %xmm3
	por	%xmm8, %xmm6
	pslldq	$4, %xmm10
	pand	.LC103(%rip), %xmm1
	movdqa	%xmm3, %xmm5
	movdqa	.LC101(%rip), %xmm3
	pslldq	$8, %xmm9
	psrldq	$12, %xmm7
	por	%xmm10, %xmm7
	por	%xmm9, %xmm5
	por	%xmm6, %xmm1
	movdqa	.LC100(%rip), %xmm6
	por	%xmm7, %xmm5
	pand	%xmm4, %xmm3
	por	%xmm1, %xmm5
	movdqa	.LC102(%rip), %xmm1
	pand	%xmm4, %xmm6
	movdqa	%xmm3, %xmm9
	pslldq	$8, %xmm9
	psrldq	$8, %xmm3
	movdqa	%xmm6, %xmm8
	pand	%xmm4, %xmm1
	pslldq	$4, %xmm8
	por	%xmm9, %xmm3
	movdqa	%xmm1, %xmm7
	pand	.LC103(%rip), %xmm4
	pslldq	$12, %xmm7
	psrldq	$12, %xmm6
	psrldq	$4, %xmm1
	por	%xmm8, %xmm6
	por	%xmm7, %xmm1
	por	%xmm6, %xmm3
	movdqa	.LC102(%rip), %xmm6
	por	%xmm4, %xmm1
	movdqa	.LC101(%rip), %xmm4
	por	%xmm1, %xmm3
	movdqa	.LC100(%rip), %xmm1
	pand	%xmm0, %xmm6
	pand	%xmm0, %xmm4
	movdqa	%xmm6, %xmm9
	pand	%xmm0, %xmm1
	pslldq	$12, %xmm9
	movdqa	%xmm4, %xmm7
	pslldq	$8, %xmm7
	psrldq	$8, %xmm4
	movdqa	%xmm1, %xmm8
	pslldq	$4, %xmm8
	psrldq	$12, %xmm1
	por	%xmm7, %xmm4
	pand	.LC103(%rip), %xmm0
	psrldq	$4, %xmm6
	por	%xmm8, %xmm1
	por	%xmm9, %xmm6
	por	%xmm4, %xmm1
	movdqa	.LC100(%rip), %xmm4
	por	%xmm6, %xmm0
	movdqa	.LC102(%rip), %xmm6
	por	%xmm1, %xmm0
	movdqa	.LC101(%rip), %xmm1
	pand	%xmm12, %xmm4
	pand	%xmm12, %xmm6
	movdqa	%xmm4, %xmm7
	pand	%xmm12, %xmm1
	pslldq	$4, %xmm7
	movdqa	%xmm6, %xmm9
	pslldq	$12, %xmm9
	psrldq	$12, %xmm4
	movdqa	%xmm1, %xmm8
	pslldq	$8, %xmm8
	psrldq	$8, %xmm1
	por	%xmm7, %xmm4
	pand	.LC103(%rip), %xmm12
	psrldq	$4, %xmm6
	por	%xmm8, %xmm1
	por	%xmm9, %xmm6
	por	%xmm4, %xmm1
	movdqa	.LC101(%rip), %xmm4
	por	%xmm6, %xmm12
	movdqa	.LC100(%rip), %xmm6
	por	%xmm1, %xmm12
	movdqa	.LC102(%rip), %xmm1
	pand	%xmm13, %xmm4
	pand	%xmm13, %xmm6
	movdqa	%xmm4, %xmm8
	pand	%xmm13, %xmm1
	pslldq	$8, %xmm8
	movdqa	%xmm6, %xmm7
	pslldq	$4, %xmm7
	psrldq	$12, %xmm6
	movdqa	%xmm1, %xmm9
	pslldq	$12, %xmm9
	psrldq	$8, %xmm4
	por	%xmm7, %xmm6
	psrldq	$4, %xmm1
	por	%xmm8, %xmm4
	movdqa	%xmm2, %xmm7
	por	%xmm9, %xmm1
	por	%xmm6, %xmm4
	pxor	%xmm0, %xmm7
	pand	.LC103(%rip), %xmm13
	movdqa	%xmm14, %xmm6
	pxor	%xmm2, %xmm14
	pxor	%xmm5, %xmm6
	pxor	%xmm3, %xmm2
	pxor	%xmm0, %xmm14
	por	%xmm13, %xmm1
	movaps	%xmm14, 48(%rdx)
	por	%xmm4, %xmm1
	movdqa	%xmm11, %xmm4
	pxor	%xmm5, %xmm11
	pxor	%xmm1, %xmm7
	pxor	%xmm3, %xmm4
	pxor	%xmm1, %xmm2
	pxor	.LC104(%rip), %xmm7
	pxor	%xmm12, %xmm11
	movaps	%xmm11, 64(%rdx)
	movaps	%xmm7, (%rdx)
	movdqa	%xmm6, %xmm7
	pxor	%xmm0, %xmm6
	pxor	%xmm12, %xmm7
	movaps	%xmm7, 16(%rdx)
	movdqa	%xmm1, %xmm7
	pxor	%xmm4, %xmm7
	pxor	.LC104(%rip), %xmm7
	pxor	%xmm12, %xmm4
	movaps	%xmm7, 32(%rdx)
	movaps	%xmm2, 80(%rdx)
	movaps	%xmm6, 96(%rdx)
	movaps	%xmm4, 112(%rdx)
# WAS call	aes_nohw_sub_bytes
	call	.Laes_nohw_sub_bytes_local_target
	movdqa	80(%rdx), %xmm7
	movdqa	96(%rdx), %xmm0
	movdqa	32(%rdx), %xmm10
	movdqa	(%rdx), %xmm4
	movdqa	112(%rdx), %xmm6
	movdqa	48(%rdx), %xmm1
	movdqa	%xmm0, %xmm2
	movdqa	%xmm7, %xmm5
	movdqa	16(%rdx), %xmm8
	pxor	%xmm4, %xmm2
	pxor	%xmm10, %xmm5
	movdqa	64(%rdx), %xmm12
	pxor	%xmm1, %xmm2
	pxor	%xmm4, %xmm5
	pxor	%xmm7, %xmm4
	pxor	%xmm6, %xmm7
	movdqa	%xmm6, %xmm3
	pxor	%xmm1, %xmm4
	movaps	%xmm5, 48(%rdx)
	movdqa	%xmm2, %xmm15
	movdqa	%xmm7, %xmm9
	movdqa	%xmm0, %xmm2
	movaps	%xmm4, 96(%rdx)
	pxor	%xmm8, %xmm6
	pxor	%xmm1, %xmm2
	pxor	%xmm10, %xmm3
	movaps	%xmm15, 16(%rdx)
	pxor	%xmm8, %xmm0
	pxor	%xmm10, %xmm9
	pxor	%xmm12, %xmm6
	pxor	%xmm8, %xmm2
	pxor	%xmm12, %xmm3
	pxor	%xmm12, %xmm0
	pxor	.LC104(%rip), %xmm9
	pxor	.LC104(%rip), %xmm6
	movaps	%xmm2, 64(%rdx)
	movaps	%xmm3, 80(%rdx)
	movaps	%xmm9, (%rdx)
	movaps	%xmm6, 32(%rdx)
	movaps	%xmm0, 112(%rdx)
	subq	$1, %rsi
	je	.L1654
	movdqa	%xmm2, %xmm1
	movdqa	%xmm5, %xmm12
	movdqa	%xmm0, %xmm2
	.p2align 4,,10
	.p2align 3
.L1653:

	pxor	-128(%rax), %xmm9
	movq	%rdx, %rdi
	addq	$-128, %rax
	movaps	%xmm9, (%rdx)
	pxor	16(%rax), %xmm15
	movdqa	%xmm9, %xmm13
	movdqa	%xmm9, %xmm8
	pslld	$16, %xmm13
	psrld	$16, %xmm8
	movaps	%xmm15, 16(%rdx)
	pxor	32(%rax), %xmm6
	movdqa	%xmm15, %xmm5
	por	%xmm13, %xmm8
	psrld	$16, %xmm5
	movaps	%xmm6, 32(%rdx)
	pxor	48(%rax), %xmm12
	movdqa	%xmm6, %xmm7
	movdqa	%xmm6, %xmm0
	pslld	$16, %xmm7
	psrld	$16, %xmm0
	movaps	%xmm12, 48(%rdx)
	pxor	64(%rax), %xmm1
	movdqa	%xmm12, %xmm11
	movdqa	%xmm15, %xmm12
	movaps	%xmm7, (%rsp)
	movdqa	%xmm11, %xmm10
	movdqa	%xmm11, %xmm14
	movaps	%xmm1, 64(%rdx)
	pxor	80(%rax), %xmm3
	movdqa	%xmm1, %xmm7
	movaps	%xmm0, 16(%rsp)
	movdqa	%xmm1, %xmm0
	psrld	$16, %xmm10
	movaps	%xmm3, 80(%rdx)
	pxor	96(%rax), %xmm4
	pslld	$16, %xmm7
	psrld	$16, %xmm0
	movaps	%xmm10, 48(%rsp)
	movdqa	%xmm3, %xmm10
	movaps	%xmm4, 96(%rdx)
	pxor	112(%rax), %xmm2
	psrld	$16, %xmm10
	movaps	%xmm7, 64(%rsp)
	movdqa	%xmm4, %xmm7
	pslld	$16, %xmm14
	movaps	%xmm0, 80(%rsp)
	movdqa	%xmm4, %xmm0
	psrld	$16, %xmm7
	pslld	$16, %xmm0
	movaps	%xmm10, 112(%rsp)
	movdqa	%xmm2, %xmm10
	por	%xmm0, %xmm7
	movdqa	%xmm2, %xmm0
	movaps	%xmm14, 32(%rsp)
	movdqa	%xmm3, %xmm14
	pslld	$16, %xmm10
	psrld	$16, %xmm0
	pxor	%xmm4, %xmm7
	por	%xmm10, %xmm0
	movdqa	%xmm7, %xmm10
	pxor	%xmm9, %xmm10
	pxor	%xmm2, %xmm0
	pxor	%xmm6, %xmm9
	movaps	%xmm10, (%rdx)
	movdqa	%xmm7, %xmm10
	pslld	$16, %xmm12
	pxor	%xmm1, %xmm6
	pxor	%xmm0, %xmm10
	pslld	$16, %xmm14
	por	%xmm12, %xmm5
	movaps	%xmm14, 96(%rsp)
	movdqa	%xmm10, %xmm14
	pxor	%xmm7, %xmm5
	pxor	%xmm4, %xmm1
	pxor	%xmm15, %xmm14
	pxor	%xmm11, %xmm15
	pxor	%xmm0, %xmm8
	pxor	%xmm15, %xmm5
	pxor	%xmm3, %xmm11
	pxor	%xmm9, %xmm8
	movaps	%xmm14, 16(%rdx)
	movaps	%xmm5, 48(%rdx)
	movdqa	16(%rsp), %xmm5
	por	(%rsp), %xmm5
	pxor	%xmm2, %xmm3
	movaps	%xmm8, 32(%rdx)
	pxor	%xmm10, %xmm5
	pxor	%xmm6, %xmm5
	movaps	%xmm5, 64(%rdx)
	movdqa	48(%rsp), %xmm5
	por	32(%rsp), %xmm5
	pxor	%xmm5, %xmm0
	pxor	%xmm0, %xmm11
	movaps	%xmm11, 80(%rdx)
	movdqa	80(%rsp), %xmm0
	por	64(%rsp), %xmm0
	pxor	%xmm0, %xmm1
	movdqa	112(%rsp), %xmm0
	por	96(%rsp), %xmm0
	movaps	%xmm1, 96(%rdx)
	pxor	%xmm0, %xmm3
	movaps	%xmm3, 112(%rdx)
# WAS call	aes_nohw_mix_columns
	call	.Laes_nohw_mix_columns_local_target
	movdqa	(%rdx), %xmm0
	movdqa	.LC100(%rip), %xmm3
	movdqa	.LC101(%rip), %xmm1
	movdqa	.LC102(%rip), %xmm2
	pand	%xmm0, %xmm3
	pand	%xmm0, %xmm1
	pand	%xmm0, %xmm2
	movdqa	%xmm3, %xmm4
	movdqa	%xmm1, %xmm5
	pslldq	$4, %xmm4
	movdqa	%xmm1, %xmm6
	pslldq	$8, %xmm5
	psrldq	$12, %xmm3
	movdqa	%xmm2, %xmm1
	pslldq	$12, %xmm1
	psrldq	$8, %xmm6
	por	%xmm4, %xmm3
	pand	.LC103(%rip), %xmm0
	psrldq	$4, %xmm2
	por	%xmm5, %xmm6
	por	%xmm1, %xmm2
	por	%xmm3, %xmm6
	movdqa	.LC100(%rip), %xmm1
	movdqa	.LC101(%rip), %xmm3
	por	%xmm2, %xmm0
	movdqa	16(%rdx), %xmm2
	por	%xmm0, %xmm6
	movdqa	.LC102(%rip), %xmm0
	pand	%xmm2, %xmm1
	pand	%xmm2, %xmm3
	pand	%xmm2, %xmm0
	movdqa	%xmm1, %xmm5
	movdqa	%xmm3, %xmm4
	pslldq	$4, %xmm5
	pslldq	$8, %xmm4
	movdqa	%xmm1, %xmm12
	psrldq	$12, %xmm12
	psrldq	$8, %xmm3
	movdqa	%xmm0, %xmm1
	pslldq	$12, %xmm1
	pand	.LC103(%rip), %xmm2
	por	%xmm4, %xmm3
	movdqa	.LC101(%rip), %xmm4
	psrldq	$4, %xmm0
	por	%xmm5, %xmm12
	por	%xmm1, %xmm0
	por	%xmm3, %xmm12
	movdqa	.LC102(%rip), %xmm3
	por	%xmm2, %xmm0
	movdqa	.LC100(%rip), %xmm2
	por	%xmm0, %xmm12
	movdqa	32(%rdx), %xmm0
	pand	%xmm0, %xmm2
	pand	%xmm0, %xmm4
	pand	%xmm0, %xmm3
	movdqa	%xmm2, %xmm7
	movdqa	%xmm2, %xmm1
	movdqa	%xmm4, %xmm5
	pslldq	$4, %xmm7
	pslldq	$8, %xmm5
	movdqa	%xmm3, %xmm2
	pand	.LC103(%rip), %xmm0
	pslldq	$12, %xmm2
	psrldq	$12, %xmm1
	psrldq	$8, %xmm4
	psrldq	$4, %xmm3
	por	%xmm5, %xmm4
	por	%xmm7, %xmm1
	por	%xmm2, %xmm3
	por	%xmm4, %xmm1
	movdqa	.LC100(%rip), %xmm2
	movdqa	.LC101(%rip), %xmm4
	por	%xmm3, %xmm0
	movdqa	.LC102(%rip), %xmm3
	por	%xmm0, %xmm1
	movdqa	48(%rdx), %xmm0
	pand	%xmm0, %xmm2
	pand	%xmm0, %xmm4
	pand	%xmm0, %xmm3
	movdqa	%xmm2, %xmm7
	movdqa	%xmm2, %xmm13
	movdqa	%xmm4, %xmm5
	pslldq	$4, %xmm7
	pslldq	$8, %xmm5
	movdqa	%xmm3, %xmm2
	pand	.LC103(%rip), %xmm0
	pslldq	$12, %xmm2
	psrldq	$12, %xmm13
	psrldq	$8, %xmm4
	psrldq	$4, %xmm3
	por	%xmm5, %xmm4
	por	%xmm7, %xmm13
	movdqa	.LC101(%rip), %xmm5
	por	%xmm2, %xmm3
	por	%xmm4, %xmm13
	movdqa	.LC102(%rip), %xmm2
	movdqa	64(%rdx), %xmm4
	por	%xmm3, %xmm0
	movdqa	.LC100(%rip), %xmm3
	pand	%xmm4, %xmm5
	pand	%xmm4, %xmm2
	por	%xmm0, %xmm13
	pand	%xmm4, %xmm3
	movdqa	%xmm5, %xmm7
	pand	.LC103(%rip), %xmm4
	movdqa	%xmm3, %xmm8
	pslldq	$8, %xmm7
	movdqa	%xmm3, %xmm0
	pslldq	$4, %xmm8
	psrldq	$12, %xmm0
	movdqa	%xmm2, %xmm3
	pslldq	$12, %xmm3
	psrldq	$8, %xmm5
	por	%xmm8, %xmm0
	psrldq	$4, %xmm2
	por	%xmm7, %xmm5
	por	%xmm3, %xmm2
	por	%xmm5, %xmm0
	movdqa	80(%rdx), %xmm3
	movdqa	.LC100(%rip), %xmm5
	por	%xmm4, %xmm2
	movdqa	.LC101(%rip), %xmm4
	por	%xmm2, %xmm0
	movdqa	.LC102(%rip), %xmm2
	pand	%xmm3, %xmm5
	pand	%xmm3, %xmm4
	movdqa	%xmm5, %xmm8
	movdqa	%xmm5, %xmm9
	pand	%xmm3, %xmm2
	movdqa	%xmm4, %xmm7
	movdqa	%xmm4, %xmm5
	movdqa	%xmm2, %xmm10
	psrldq	$12, %xmm9
	movdqa	%xmm2, %xmm4
	pslldq	$12, %xmm10
	psrldq	$4, %xmm4
	movdqa	%xmm9, %xmm2
	psrldq	$8, %xmm5
	pslldq	$8, %xmm7
	por	%xmm10, %xmm4
	pand	.LC103(%rip), %xmm3
	pslldq	$4, %xmm8
	por	%xmm8, %xmm2
	por	%xmm3, %xmm4
	movdqa	%xmm5, %xmm3
	movdqa	96(%rdx), %xmm5
	por	%xmm7, %xmm3
	por	%xmm3, %xmm2
	movdqa	.LC100(%rip), %xmm3
	movdqa	.LC101(%rip), %xmm7
	por	%xmm2, %xmm4
	movdqa	.LC102(%rip), %xmm2
	movdqa	112(%rdx), %xmm11
	pand	%xmm5, %xmm3
	pand	%xmm5, %xmm7
	pand	%xmm5, %xmm2
	movdqa	%xmm3, %xmm10
	movdqa	%xmm3, %xmm9
	movdqa	%xmm7, %xmm8
	pslldq	$4, %xmm10
	movdqa	%xmm2, %xmm3
	pand	.LC103(%rip), %xmm5
	pslldq	$8, %xmm8
	pslldq	$12, %xmm3
	psrldq	$12, %xmm9
	psrldq	$8, %xmm7
	psrldq	$4, %xmm2
	por	%xmm10, %xmm9
	por	%xmm8, %xmm7
	por	%xmm3, %xmm2
	movdqa	.LC100(%rip), %xmm3
	por	%xmm5, %xmm2
	por	%xmm7, %xmm9
	movdqa	.LC101(%rip), %xmm7
	por	%xmm2, %xmm9
	movdqa	.LC102(%rip), %xmm2
	pand	%xmm11, %xmm3
	pand	%xmm11, %xmm7
	movdqa	%xmm3, %xmm10
	pand	%xmm11, %xmm2
	psrldq	$12, %xmm3
	movdqa	%xmm7, %xmm8
	movdqa	%xmm2, %xmm14
	pslldq	$4, %xmm10
	movdqa	%xmm2, %xmm5
	movdqa	.LC103(%rip), %xmm2
	pslldq	$12, %xmm14
	psrldq	$4, %xmm5
	pand	%xmm11, %xmm2
	por	%xmm14, %xmm5
	movdqa	%xmm6, %xmm11
	pslldq	$8, %xmm8
	por	%xmm2, %xmm5
	movdqa	%xmm3, %xmm2
	psrldq	$8, %xmm7
	por	%xmm10, %xmm2
	pxor	%xmm13, %xmm11
	por	%xmm8, %xmm7
	movdqa	%xmm1, %xmm10
	movdqa	%xmm11, %xmm8
	por	%xmm7, %xmm2
	pxor	%xmm4, %xmm8
	pxor	%xmm4, %xmm10
	por	%xmm2, %xmm5
	movdqa	%xmm12, %xmm2
	pxor	%xmm13, %xmm12
	pxor	%xmm0, %xmm2
	pxor	%xmm0, %xmm13
	pxor	%xmm5, %xmm10
	movdqa	%xmm2, %xmm3
	pxor	%xmm1, %xmm0
	pxor	%xmm9, %xmm12
	movaps	%xmm13, (%rsp)
	pxor	%xmm5, %xmm3
	pxor	%xmm8, %xmm5
	pxor	.LC104(%rip), %xmm3
	pxor	%xmm5, %xmm0
	movdqa	%xmm12, %xmm14
	movdqa	%xmm2, %xmm7
	movdqa	%xmm0, %xmm5
	pxor	%xmm11, %xmm2
	pxor	%xmm3, %xmm14
	pxor	%xmm9, %xmm7
	pxor	%xmm6, %xmm1
	pxor	%xmm9, %xmm11
	pxor	.LC104(%rip), %xmm10
	movdqa	%xmm7, %xmm15
	pxor	%xmm3, %xmm15
	pxor	%xmm10, %xmm5
	movdqa	%xmm15, %xmm9
	pxor	%xmm5, %xmm12
	pxor	%xmm5, %xmm11
	movdqa	%xmm5, %xmm13
	movaps	%xmm9, 32(%rsp)
	movaps	%xmm12, 48(%rsp)
	movdqa	%xmm14, %xmm12
	pxor	%xmm2, %xmm14
	pxor	%xmm11, %xmm15
	pxor	%xmm14, %xmm4
	movaps	%xmm11, 80(%rsp)
	movdqa	%xmm0, %xmm11
	pxor	%xmm7, %xmm13
	pxor	%xmm1, %xmm4
	movdqa	(%rsp), %xmm1
	movaps	%xmm13, 64(%rsp)
	movaps	%xmm12, 144(%rsp)
	pxor	%xmm4, %xmm3
	pxor	%xmm8, %xmm4
	movdqa	%xmm3, %xmm6
	pxor	%xmm3, %xmm11
	movaps	%xmm14, 160(%rsp)
	pxor	%xmm10, %xmm6
	movaps	%xmm11, 16(%rsp)
	movdqa	16(%rsp), %xmm8
	movaps	%xmm6, 96(%rsp)
	movdqa	%xmm1, %xmm6
	pxor	%xmm4, %xmm6
	pand	%xmm9, %xmm8
	movdqa	32(%rsp), %xmm9
	movaps	%xmm15, 176(%rsp)
	pxor	%xmm6, %xmm11
	pand	%xmm6, %xmm1
	movdqa	%xmm6, %xmm13
	pand	%xmm11, %xmm12
	pxor	%xmm1, %xmm8
	pxor	%xmm10, %xmm13
	pxor	%xmm1, %xmm12
	movdqa	96(%rsp), %xmm1
	movaps	%xmm13, 112(%rsp)
	movdqa	%xmm14, %xmm13
	pand	%xmm3, %xmm13
	pxor	%xmm6, %xmm0
	movdqa	%xmm2, %xmm14
	pand	%xmm15, %xmm1
	pxor	%xmm13, %xmm4
	pxor	16(%rsp), %xmm13
	pxor	%xmm12, %xmm1
	pand	%xmm0, %xmm14
	movdqa	%xmm2, %xmm15
	pxor	%xmm4, %xmm1
	movdqa	48(%rsp), %xmm4
	pandn	%xmm0, %xmm15
	pxor	%xmm0, %xmm7
	pand	%xmm10, %xmm4
	pxor	%xmm4, %xmm9
	movdqa	80(%rsp), %xmm4
	pxor	%xmm13, %xmm9
	movdqa	64(%rsp), %xmm13
	pand	112(%rsp), %xmm13
	pand	%xmm5, %xmm4
	pxor	%xmm8, %xmm9
	pxor	%xmm2, %xmm4
	pxor	%xmm14, %xmm13
	pxor	%xmm15, %xmm4
	pxor	%xmm7, %xmm13
	movdqa	%xmm1, %xmm7
	pxor	%xmm8, %xmm13
	pxor	%xmm12, %xmm4
	pxor	%xmm9, %xmm7
	movdqa	%xmm7, %xmm12
	pand	%xmm4, %xmm1
	movdqa	%xmm13, %xmm7
	pxor	%xmm1, %xmm7
	movdqa	%xmm12, %xmm8
	movdqa	%xmm4, %xmm14
	pand	%xmm7, %xmm8
	pxor	%xmm13, %xmm14
	pxor	%xmm9, %xmm8
	pxor	%xmm1, %xmm9
	pand	%xmm9, %xmm14
	movdqa	%xmm13, %xmm9
	pxor	%xmm14, %xmm1
	pxor	%xmm14, %xmm9
	pand	%xmm13, %xmm1
	pxor	%xmm9, %xmm4
	movdqa	%xmm8, %xmm13
	pxor	%xmm1, %xmm7
	pxor	%xmm1, %xmm4
	movdqa	%xmm8, %xmm1
	pand	%xmm8, %xmm7
	movdqa	%xmm4, %xmm14
	pxor	%xmm9, %xmm13
	pxor	%xmm12, %xmm7
	movdqa	%xmm9, %xmm15
	pand	%xmm9, %xmm10
	pxor	%xmm7, %xmm1
	pxor	%xmm7, %xmm14
	pand	%xmm7, %xmm5
	movdqa	%xmm1, %xmm12
	movdqa	%xmm14, %xmm1
	pxor	%xmm4, %xmm15
	pand	%xmm12, %xmm0
	pxor	%xmm13, %xmm1
	pand	%xmm13, %xmm6
	pand	%xmm1, %xmm11
	pand	%xmm12, %xmm2
	pand	%xmm15, %xmm3
	movaps	%xmm0, 128(%rsp)
	movdqa	112(%rsp), %xmm0
	movdqa	%xmm10, %xmm12
	pxor	%xmm2, %xmm12
	pand	%xmm8, %xmm0
	movaps	%xmm0, 112(%rsp)
	pand	80(%rsp), %xmm7
	movdqa	176(%rsp), %xmm0
	pand	144(%rsp), %xmm1
	pxor	112(%rsp), %xmm7
	pand	%xmm4, %xmm0
	pand	64(%rsp), %xmm8
	pxor	128(%rsp), %xmm6
	movaps	%xmm0, 176(%rsp)
	movdqa	%xmm1, %xmm0
	movdqa	(%rsp), %xmm1
	pxor	128(%rsp), %xmm3
	movaps	%xmm0, (%rsp)
	pxor	%xmm11, %xmm6
	pxor	%xmm7, %xmm2
	pand	96(%rsp), %xmm4
	pand	%xmm13, %xmm1
	pxor	%xmm3, %xmm12
	pxor	112(%rsp), %xmm10
	pxor	%xmm0, %xmm1
	movdqa	%xmm5, %xmm0
	pxor	%xmm12, %xmm8
	pxor	%xmm1, %xmm0
	pxor	%xmm12, %xmm1
	pxor	%xmm6, %xmm5
	movaps	%xmm0, 80(%rsp)
	movdqa	16(%rsp), %xmm0
	pxor	%xmm7, %xmm1
	movdqa	80(%rsp), %xmm13
	movdqa	.LC104(%rip), %xmm7
	pand	48(%rsp), %xmm9
	pand	%xmm14, %xmm0
	pxor	%xmm11, %xmm0
	pxor	%xmm1, %xmm7
	movdqa	160(%rsp), %xmm11
	pxor	%xmm13, %xmm0
	pand	%xmm15, %xmm11
	pxor	%xmm0, %xmm8
	pxor	%xmm0, %xmm2
	movdqa	176(%rsp), %xmm15
	movdqa	%xmm7, %xmm0
	movdqa	%xmm3, %xmm7
	movdqa	%xmm5, %xmm3
	pxor	%xmm15, %xmm11
	pxor	%xmm15, %xmm9
	movdqa	%xmm0, %xmm12
	pxor	%xmm13, %xmm11
	pxor	%xmm8, %xmm9
	pxor	%xmm5, %xmm8
	movdqa	.LC104(%rip), %xmm13
	pxor	%xmm11, %xmm4
	pxor	%xmm6, %xmm11
	pxor	%xmm9, %xmm12
	movdqa	.LC104(%rip), %xmm6
	pxor	%xmm4, %xmm7
	pxor	%xmm4, %xmm10
	movdqa	32(%rsp), %xmm4
	pxor	%xmm2, %xmm6
	pxor	%xmm10, %xmm1
	pxor	%xmm7, %xmm3
	movdqa	%xmm1, %xmm15
	pand	%xmm14, %xmm4
	movdqa	%xmm6, %xmm1
	pxor	(%rsp), %xmm4
	pxor	%xmm10, %xmm1
	pxor	%xmm3, %xmm15
	pxor	%xmm3, %xmm1
	pxor	%xmm7, %xmm6
	movdqa	%xmm7, %xmm3
	movaps	%xmm15, 16(%rdx)
	pxor	%xmm4, %xmm8
	movdqa	%xmm0, %xmm4
	pxor	%xmm9, %xmm3
	pxor	%xmm8, %xmm13
	pxor	%xmm10, %xmm4
	pxor	%xmm8, %xmm9
	pxor	%xmm11, %xmm6
	pxor	%xmm13, %xmm12
	pxor	%xmm11, %xmm3
	pxor	.LC104(%rip), %xmm1
	pxor	.LC104(%rip), %xmm6
	pxor	%xmm13, %xmm4
	movaps	%xmm12, 48(%rdx)
	pxor	%xmm5, %xmm2
	pxor	%xmm11, %xmm9
	movaps	%xmm3, 80(%rdx)
	movaps	%xmm9, (%rdx)
	movaps	%xmm6, 32(%rdx)
	movaps	%xmm1, 64(%rdx)
	movaps	%xmm4, 96(%rdx)
	movaps	%xmm2, 112(%rdx)
	subq	$1, %rsi
	jne	.L1653
.L1654:

	movdqa	(%rcx), %xmm0
	pxor	(%rdx), %xmm0
	movaps	%xmm0, (%rdx)
	movdqa	16(%rcx), %xmm0
	pxor	16(%rdx), %xmm0
	movaps	%xmm0, 16(%rdx)
	movdqa	32(%rcx), %xmm0
	pxor	32(%rdx), %xmm0
	movaps	%xmm0, 32(%rdx)
	movdqa	48(%rcx), %xmm0
	pxor	48(%rdx), %xmm0
	movaps	%xmm0, 48(%rdx)
	movdqa	64(%rcx), %xmm0
	pxor	64(%rdx), %xmm0
	movaps	%xmm0, 64(%rdx)
	movdqa	80(%rcx), %xmm0
	pxor	80(%rdx), %xmm0
	movaps	%xmm0, 80(%rdx)
	movdqa	96(%rcx), %xmm0
	pxor	96(%rdx), %xmm0
	movaps	%xmm0, 96(%rdx)
	movdqa	112(%rdx), %xmm0
	pxor	112(%rcx), %xmm0
	movaps	%xmm0, 112(%rdx)
	addq	$200, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE776:

	.size	aes_nohw_decrypt_batch, .-aes_nohw_decrypt_batch
# WAS .section	.text.aes_nohw_decrypt,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_decrypt
	.hidden	aes_nohw_decrypt
	.type	aes_nohw_decrypt, @function
.Laes_nohw_decrypt_local_target:
aes_nohw_decrypt:
.LFB786:

	.cfi_startproc
	endbr64
	subq	$2200, %rsp
	.cfi_def_cfa_offset 2208
	movq	%rdi, %r10
	movq	%rsi, %r9
	xorl	%ecx, %ecx
	leaq	256(%rsp), %r11
	movl	240(%rdx), %r8d
	movq	%fs:40, %rax
	movq	%rax, 2184(%rsp)
	xorl	%eax, %eax
	movq	%r11, %rax
	.p2align 4,,10
	.p2align 3
.L1661:

	movq	%rcx, %rsi
	movq	%rax, %rdi
	addq	$1, %rcx
	subq	$-128, %rax
	salq	$4, %rsi
	movdqu	(%rdx,%rsi), %xmm0
	movaps	%xmm0, -128(%rax)
	movaps	%xmm0, -112(%rax)
	movaps	%xmm0, -96(%rax)
	movaps	%xmm0, -80(%rax)
	movaps	%xmm0, -64(%rax)
	movaps	%xmm0, -48(%rax)
	movaps	%xmm0, -32(%rax)
	movaps	%xmm0, -16(%rax)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	cmpq	%rcx, %r8
	jnb	.L1661
	leaq	16(%rsp), %rsi
	movdqu	(%r10), %xmm1
	movq	%rsp, %rdx
	xorl	%eax, %eax
	movq	%rsi, %rdi
	movl	$14, %ecx
	movq	%r8, %rsi
	rep stosq
	movq	%rdx, %rdi
	movaps	%xmm1, (%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movq	%r11, %rdi
# WAS call	aes_nohw_decrypt_batch
	call	.Laes_nohw_decrypt_batch_local_target
	movdqa	(%rsp), %xmm2
	movdqa	16(%rsp), %xmm3
	leaq	128(%rsp), %rdi
	movdqa	32(%rsp), %xmm4
	movdqa	48(%rsp), %xmm5
	movdqa	64(%rsp), %xmm6
	movdqa	80(%rsp), %xmm7
	movaps	%xmm2, 128(%rsp)
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm2
	movaps	%xmm3, 144(%rsp)
	movaps	%xmm4, 160(%rsp)
	movaps	%xmm5, 176(%rsp)
	movaps	%xmm6, 192(%rsp)
	movaps	%xmm7, 208(%rsp)
	movaps	%xmm1, 224(%rsp)
	movaps	%xmm2, 240(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	128(%rsp), %xmm3
	movups	%xmm3, (%r9)
	movq	2184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1665
	addq	$2200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L1665:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE786:

	.size	aes_nohw_decrypt, .-aes_nohw_decrypt
# WAS .section	.text.AES_decrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_decrypt
	.type	AES_decrypt, @function
.LAES_decrypt_local_target:
AES_decrypt:
.LFB230:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L1670
	testb	$2, %ah
	je	.L1668
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	vpaes_decrypt@PLT
	jmp	.Lvpaes_decrypt_local_target
	.p2align 4,,10
	.p2align 3
.L1668:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_nohw_decrypt
	jmp	.Laes_nohw_decrypt_local_target
	.p2align 4,,10
	.p2align 3
.L1670:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_decrypt@PLT
	jmp	.Laes_hw_decrypt_local_target
	.cfi_endproc
.LFE230:

	.size	AES_decrypt, .-AES_decrypt
# WAS .section	.text.aes_unwrap_key_inner.part.0,"ax",@progbits
.text
	.p2align 4
	.type	aes_unwrap_key_inner.part.0, @function
.Laes_unwrap_key_inner.part.0_local_target:
aes_unwrap_key_inner.part.0:
.LFB2932:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	leaq	8(%rcx), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r12, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	shrq	$3, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdx, 24(%rsp)
	leaq	-8(%r8), %rdx
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	movq	(%rcx), %rax
	movq	%rax, 32(%rsp)
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
	leaq	-1(%rbx), %rax
	movl	$6, 20(%rsp)
	leal	(%rax,%rax,2), %r14d
	movl	%eax, 16(%rsp)
	leal	(%r14,%r14), %eax
	movl	%eax, 4(%rsp)
	leaq	-16(%r12,%rbx,8), %rax
	leaq	32(%rsp), %rbx
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L1672:

	movq	8(%rsp), %r14
	movl	4(%rsp), %r15d
	.p2align 4,,10
	.p2align 3
.L1673:

	movl	36(%rsp), %eax
	movl	%r15d, %edx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	bswap	%edx
	movq	%r14, %rbp
	subl	$1, %r15d
	subq	$8, %r14
	xorl	%edx, %eax
	movl	%eax, 36(%rsp)
	movq	8(%r14), %rdx
	movq	%rdx, 40(%rsp)
	movq	%r13, %rdx
# WAS call	AES_decrypt@PLT
	call	.LAES_decrypt_local_target
	movq	40(%rsp), %rdx
	movq	%rdx, 8(%r14)
	cmpq	%r12, %rbp
	jne	.L1673
	movl	16(%rsp), %ecx
	subl	%ecx, 4(%rsp)
	subl	$1, 20(%rsp)
	jne	.L1672
	movq	32(%rsp), %rax
	movq	24(%rsp), %rcx
	movq	%rax, (%rcx)
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1678
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1678:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2932:

	.size	aes_unwrap_key_inner.part.0, .-aes_unwrap_key_inner.part.0
# WAS .section	.text.aes_nohw_cbc_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_cbc_encrypt
	.hidden	aes_nohw_cbc_encrypt
	.type	aes_nohw_cbc_encrypt, @function
.Laes_nohw_cbc_encrypt_local_target:
aes_nohw_cbc_encrypt:
.LFB789:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$2344, %rsp
	.cfi_def_cfa_offset 2400
	movq	%fs:40, %rax
	movq	%rax, 2328(%rsp)
	xorl	%eax, %eax
	cmpq	$15, %rdx
	ja	.L1712
.L1679:

	movq	2328(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1713
	addq	$2344, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1712:

	.cfi_restore_state
	movq	%rsi, %r11
	movl	240(%rcx), %esi
	movq	%rdx, %r10
	movq	%rdi, %rbx
	leaq	272(%rsp), %r13
	movq	%rcx, %rbp
	movq	%r8, %r12
	xorl	%edx, %edx
	movq	%r13, %rax
	.p2align 4,,10
	.p2align 3
.L1681:

	movq	%rdx, %rcx
	movq	%rax, %rdi
	addq	$1, %rdx
	subq	$-128, %rax
	salq	$4, %rcx
	movdqu	0(%rbp,%rcx), %xmm0
	movaps	%xmm0, -128(%rax)
	movaps	%xmm0, -112(%rax)
	movaps	%xmm0, -96(%rax)
	movaps	%xmm0, -80(%rax)
	movaps	%xmm0, -64(%rax)
	movaps	%xmm0, -48(%rax)
	movaps	%xmm0, -32(%rax)
	movaps	%xmm0, -16(%rax)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	cmpq	%rdx, %rsi
	jnb	.L1681
	movdqu	(%r12), %xmm2
	shrq	$4, %r10
	testl	%r9d, %r9d
	jne	.L1708
	leaq	16(%rsp), %rdx
	leaq	32(%rsp), %r14
	leaq	144(%rsp), %r15
	leaq	2192(%rsp), %r9
	jmp	.L1682
	.p2align 4,,10
	.p2align 3
.L1715:

	movdqu	16(%rbx), %xmm4
	movaps	%xmm4, 32(%rsp)
	cmpq	$2, %r10
	jbe	.L1688
	movdqu	32(%rbx), %xmm4
	movaps	%xmm4, 48(%rsp)
	cmpq	$3, %r10
	jbe	.L1688
	movdqu	48(%rbx), %xmm6
	movaps	%xmm6, 64(%rsp)
	cmpq	$4, %r10
	jbe	.L1688
	movdqu	64(%rbx), %xmm3
	movaps	%xmm3, 80(%rsp)
	cmpq	$5, %r10
	jbe	.L1688
	movdqu	80(%rbx), %xmm1
	movaps	%xmm1, 96(%rsp)
	cmpq	$6, %r10
	jbe	.L1688
	movdqu	96(%rbx), %xmm3
	movaps	%xmm3, 112(%rsp)
	cmpq	$7, %r10
	jbe	.L1688
	movdqu	112(%rbx), %xmm1
	movaps	%xmm1, 128(%rsp)
.L1688:

	movq	%rdx, %rdi
	movaps	%xmm2, (%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movl	240(%rbp), %esi
	movq	%r13, %rdi
# WAS call	aes_nohw_decrypt_batch
	call	.Laes_nohw_decrypt_batch_local_target
	movdqa	16(%rsp), %xmm5
	movq	%r15, %rdi
	movdqa	32(%rsp), %xmm6
	movdqa	48(%rsp), %xmm7
	movdqa	64(%rsp), %xmm4
	movdqa	128(%rsp), %xmm3
	movaps	%xmm5, 144(%rsp)
	movdqa	80(%rsp), %xmm5
	movaps	%xmm6, 160(%rsp)
	movdqa	96(%rsp), %xmm6
	movaps	%xmm7, 176(%rsp)
	movdqa	112(%rsp), %xmm7
	movaps	%xmm4, 192(%rsp)
	movaps	%xmm5, 208(%rsp)
	movaps	%xmm6, 224(%rsp)
	movaps	%xmm7, 240(%rsp)
	movaps	%xmm3, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	cmpq	$2, %r10
	movdqa	(%rsp), %xmm2
	movdqa	144(%rsp), %xmm1
	movdqa	160(%rsp), %xmm0
	movups	%xmm1, (%r11)
	movups	%xmm0, 16(%r11)
	jbe	.L1714
	movdqa	176(%rsp), %xmm5
	movups	%xmm5, 32(%r11)
	cmpq	$3, %r10
	jbe	.L1711
	movdqa	192(%rsp), %xmm7
	movups	%xmm7, 48(%r11)
	cmpq	$4, %r10
	jbe	.L1711
	movdqa	208(%rsp), %xmm6
	movups	%xmm6, 64(%r11)
	cmpq	$5, %r10
	jbe	.L1711
	movdqa	224(%rsp), %xmm7
	movups	%xmm7, 80(%r11)
	cmpq	$6, %r10
	jbe	.L1711
	movdqa	240(%rsp), %xmm4
	movups	%xmm4, 96(%r11)
	cmpq	$7, %r10
	jbe	.L1711
	movdqa	256(%rsp), %xmm3
	movups	%xmm3, 112(%r11)
.L1711:

	pxor	2192(%rsp), %xmm0
	pxor	%xmm2, %xmm1
	movups	%xmm1, (%r11)
	movups	%xmm0, 16(%r11)
	movdqu	32(%r11), %xmm0
	pxor	2208(%rsp), %xmm0
	movups	%xmm0, 32(%r11)
	cmpq	$3, %r10
	jbe	.L1696
	movdqu	48(%r11), %xmm0
	pxor	2224(%rsp), %xmm0
	movups	%xmm0, 48(%r11)
	cmpq	$4, %r10
	jbe	.L1696
	movdqu	64(%r11), %xmm0
	pxor	2240(%rsp), %xmm0
	movups	%xmm0, 64(%r11)
	cmpq	$5, %r10
	jbe	.L1696
	movdqu	80(%r11), %xmm0
	pxor	2256(%rsp), %xmm0
	movups	%xmm0, 80(%r11)
	cmpq	$6, %r10
	jbe	.L1696
	movdqu	96(%r11), %xmm0
	pxor	2272(%rsp), %xmm0
	movups	%xmm0, 96(%r11)
	cmpq	$7, %r10
	jbe	.L1696
	movdqu	112(%r11), %xmm0
	pxor	2288(%rsp), %xmm0
	movups	%xmm0, 112(%r11)
.L1696:

	movq	%r8, %rax
	salq	$4, %rax
	movdqa	2176(%rsp,%rax), %xmm2
	subq	%r8, %r10
	je	.L1689
	subq	$-128, %rbx
	subq	$-128, %r11
.L1682:

	movl	$8, %r8d
	movq	%r9, %rdi
	movq	%rbx, %rsi
	movdqu	(%rbx), %xmm3
	cmpq	%r8, %r10
	cmovbe	%r10, %r8
	leaq	(%r8,%r8), %rax
	andl	$536870910, %eax
	movq	%rax, %rcx
	rep movsq
	movq	%r14, %rdi
	movq	%rcx, %rax
	movl	$14, %ecx
	rep stosq
	movaps	%xmm3, 16(%rsp)
	cmpq	$1, %r10
	ja	.L1715
	movq	%rdx, %rdi
	movaps	%xmm2, (%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movl	240(%rbp), %esi
	movq	%r13, %rdi
# WAS call	aes_nohw_decrypt_batch
	call	.Laes_nohw_decrypt_batch_local_target
	movdqa	16(%rsp), %xmm2
	movq	%r15, %rdi
	movdqa	48(%rsp), %xmm5
	movdqa	64(%rsp), %xmm7
	movdqa	80(%rsp), %xmm4
	movaps	%xmm2, 144(%rsp)
	movdqa	32(%rsp), %xmm2
	movdqa	112(%rsp), %xmm6
	movaps	%xmm5, 176(%rsp)
	movdqa	128(%rsp), %xmm5
	movaps	%xmm2, 160(%rsp)
	movdqa	96(%rsp), %xmm2
	movaps	%xmm7, 192(%rsp)
	movaps	%xmm2, 224(%rsp)
	movaps	%xmm4, 208(%rsp)
	movaps	%xmm6, 240(%rsp)
	movaps	%xmm5, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	(%rsp), %xmm2
	pxor	144(%rsp), %xmm2
	movups	%xmm2, (%r11)
	movdqa	2192(%rsp), %xmm2
.L1689:

	movups	%xmm2, (%r12)
	jmp	.L1679
.L1714:

	pxor	2192(%rsp), %xmm0
	pxor	%xmm2, %xmm1
	movdqa	2208(%rsp), %xmm2
	movups	%xmm1, (%r11)
	movups	%xmm0, 16(%r11)
	jmp	.L1689
.L1708:

	salq	$4, %r10
	leaq	16(%rsp), %rdx
	leaq	32(%rsp), %r14
	leaq	(%rbx,%r10), %r9
	leaq	144(%rsp), %r15
	xorl	%r10d, %r10d
	.p2align 4,,10
	.p2align 3
.L1683:

	movq	%r10, %rax
	movl	$14, %ecx
	movq	%r14, %rdi
	movdqu	(%rbx), %xmm0
	rep stosq
	movq	%rdx, %rdi
	addq	$16, %rbx
	addq	$16, %r11
	pxor	%xmm2, %xmm0
	movaps	%xmm0, 16(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movl	240(%rbp), %esi
	movq	%r13, %rdi
# WAS call	aes_nohw_encrypt_batch
	call	.Laes_nohw_encrypt_batch_local_target
	movdqa	16(%rsp), %xmm5
	movq	%r15, %rdi
	movdqa	48(%rsp), %xmm2
	movdqa	32(%rsp), %xmm1
	movdqa	64(%rsp), %xmm3
	movdqa	96(%rsp), %xmm7
	movdqa	112(%rsp), %xmm4
	movaps	%xmm5, 144(%rsp)
	movdqa	128(%rsp), %xmm6
	movdqa	80(%rsp), %xmm5
	movaps	%xmm2, 176(%rsp)
	movaps	%xmm1, 160(%rsp)
	movaps	%xmm3, 192(%rsp)
	movaps	%xmm5, 208(%rsp)
	movaps	%xmm7, 224(%rsp)
	movaps	%xmm4, 240(%rsp)
	movaps	%xmm6, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	144(%rsp), %xmm2
	movups	%xmm2, -16(%r11)
	cmpq	%r9, %rbx
	jne	.L1683
	jmp	.L1689
.L1713:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE789:

	.size	aes_nohw_cbc_encrypt, .-aes_nohw_cbc_encrypt
# WAS .section	.text.CRYPTO_xts128_encrypt.part.0,"ax",@progbits
.text
	.p2align 4
	.type	CRYPTO_xts128_encrypt.part.0, @function
.LCRYPTO_xts128_encrypt.part.0_local_target:
CRYPTO_xts128_encrypt.part.0:
.LFB3045:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%r9d, %ebx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movdqu	(%rsi), %xmm2
	movq	8(%rdi), %rdx
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rdi
	movaps	%xmm2, 16(%rsp)
	movq	%rdi, %rsi
	call	*24(%r12)
	testl	%ebx, %ebx
	jne	.L1717
	testb	$15, %r14b
	je	.L1718
	movdqa	16(%rsp), %xmm1
	subq	$16, %r14
	leaq	32(%rsp), %r15
	movhlps	%xmm1, %xmm0
	movq	%xmm1, %rcx
	cmpq	$15, %r14
	jbe	.L1720
.L1719:

	leaq	32(%rsp), %r15
	jmp	.L1724
	.p2align 4,,10
	.p2align 3
.L1723:

	movq	%rax, %rcx
	leaq	(%rdx,%rdx), %rsi
	shldq	$1, %rdx, %rax
	sarq	$63, %rcx
	movq	%rax, %xmm0
	movq	%rax, 24(%rsp)
	andl	$135, %ecx
	xorq	%rsi, %rcx
	movq	%rcx, %xmm1
	movq	%rcx, 16(%rsp)
	punpcklqdq	%xmm0, %xmm1
	cmpq	$15, %r14
	jbe	.L1840
.L1724:

	movdqu	0(%rbp), %xmm0
	movq	(%r12), %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	addq	$16, %rbp
	addq	$16, %r13
	pxor	%xmm1, %xmm0
	movaps	%xmm0, 32(%rsp)
	call	*16(%r12)
	movdqa	16(%rsp), %xmm0
	pxor	32(%rsp), %xmm0
	movq	24(%rsp), %rax
	movq	16(%rsp), %rdx
	movups	%xmm0, -16(%r13)
	movaps	%xmm0, 32(%rsp)
	subq	$16, %r14
	jne	.L1723
.L1726:

	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L1841
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1717:

	.cfi_restore_state
	movdqa	16(%rsp), %xmm1
	cmpq	$15, %r14
	ja	.L1719
	leaq	32(%rsp), %r15
	testq	%r14, %r14
	je	.L1722
	jmp	.L1721
	.p2align 4,,10
	.p2align 3
.L1718:

	movdqa	16(%rsp), %xmm1
	cmpq	$15, %r14
	ja	.L1719
	movhlps	%xmm1, %xmm0
	movq	%xmm1, %rcx
	leaq	32(%rsp), %r15
	xorl	%r14d, %r14d
	.p2align 4,,10
	.p2align 3
.L1720:

	movq	%xmm0, %rdx
	leaq	(%rcx,%rcx), %rax
	movq	%r15, %rsi
	movq	%r15, %rdi
	sarq	$63, %rdx
	andl	$135, %edx
	xorq	%rax, %rdx
	movq	%xmm0, %rax
	shldq	$1, %rcx, %rax
	movq	%rdx, 8(%rsp)
	movq	%rax, %rbx
	movq	%rdx, %rax
	xorq	0(%rbp), %rax
	movq	(%r12), %rdx
	movq	%rax, 32(%rsp)
	movq	8(%rbp), %rax
	xorq	%rbx, %rax
	movq	%rax, 40(%rsp)
	call	*16(%r12)
	xorq	40(%rsp), %rbx
	movq	8(%rsp), %r8
	xorq	32(%rsp), %r8
	movq	%rbx, %xmm3
	movq	%rbx, 40(%rsp)
	movq	%r8, %xmm0
	movq	%r8, 32(%rsp)
	punpcklqdq	%xmm3, %xmm0
	testq	%r14, %r14
	je	.L1736
	leaq	-1(%r14), %rsi
	cmpq	$2, %rsi
	jbe	.L1737
	leaq	-1(%r13), %rcx
	subq	%rbp, %rcx
	cmpq	$6, %rcx
	ja	.L1842
	movzbl	16(%rbp), %ecx
	movq	%r8, %rax
	movb	%r8b, 16(%r13)
	movzbl	%ah, %eax
	movb	%cl, 32(%rsp)
	movzbl	17(%rbp), %ecx
	movb	%al, 17(%r13)
	movb	%cl, 33(%rsp)
.L1745:

	movzbl	18(%rbp), %ecx
	movq	%r8, %rsi
	shrq	$16, %rsi
	movb	%sil, 18(%r13)
	movb	%cl, 34(%rsp)
	cmpq	$3, %r14
	je	.L1743
	movzbl	19(%rbp), %ecx
	movq	%r8, %rsi
	shrq	$24, %rsi
	movb	%sil, 19(%r13)
	movb	%cl, 35(%rsp)
	cmpq	$4, %r14
	je	.L1743
	movzbl	20(%rbp), %ecx
	movq	%r8, %rsi
	shrq	$32, %rsi
	movb	%sil, 20(%r13)
	movb	%cl, 36(%rsp)
	cmpq	$5, %r14
	je	.L1743
	movzbl	21(%rbp), %ecx
	movq	%r8, %rsi
	shrq	$40, %rsi
	movb	%sil, 21(%r13)
	movb	%cl, 37(%rsp)
	cmpq	$6, %r14
	je	.L1743
	movzbl	22(%rbp), %ecx
	movq	%r8, %rsi
	shrq	$48, %rsi
	movb	%sil, 22(%r13)
	movb	%cl, 38(%rsp)
	cmpq	$7, %r14
	je	.L1743
	movzbl	23(%rbp), %ecx
	movq	%r8, %rdx
	shrq	$56, %rdx
	movb	%dl, 23(%r13)
	movb	%cl, 39(%rsp)
	cmpq	$8, %r14
	je	.L1743
	movzbl	24(%rbp), %edx
	movb	%bl, 24(%r13)
	movb	%dl, 40(%rsp)
	cmpq	$9, %r14
	je	.L1743
	movzbl	25(%rbp), %edx
	movzbl	%bh, %eax
	movb	%al, 25(%r13)
	movb	%dl, 41(%rsp)
	cmpq	$10, %r14
	je	.L1743
	movzbl	26(%rbp), %edx
	movq	%rbx, %rcx
	shrq	$16, %rcx
	movb	%cl, 26(%r13)
	movb	%dl, 42(%rsp)
	cmpq	$11, %r14
	je	.L1743
	movzbl	27(%rbp), %edx
	movq	%rbx, %rcx
	shrq	$24, %rcx
	movb	%cl, 27(%r13)
	movb	%dl, 43(%rsp)
	cmpq	$12, %r14
	je	.L1743
	movzbl	28(%rbp), %edx
	movq	%rbx, %rcx
	shrq	$32, %rcx
	movb	%cl, 28(%r13)
	movb	%dl, 44(%rsp)
	cmpq	$13, %r14
	je	.L1743
	movzbl	29(%rbp), %edx
	movq	%rbx, %rcx
	shrq	$40, %rcx
	movb	%cl, 29(%r13)
	movb	%dl, 45(%rsp)
	cmpq	$15, %r14
	jne	.L1743
	movzbl	30(%rbp), %edx
	movq	%rbx, %rax
	shrq	$48, %rax
	movb	%al, 30(%r13)
	movb	%dl, 46(%rsp)
	.p2align 4,,10
	.p2align 3
.L1743:

	movdqa	32(%rsp), %xmm0
.L1736:

	pxor	16(%rsp), %xmm0
	movq	(%r12), %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	movaps	%xmm0, 32(%rsp)
	call	*16(%r12)
	movdqa	32(%rsp), %xmm0
	pxor	16(%rsp), %xmm0
	movups	%xmm0, 0(%r13)
	jmp	.L1726
	.p2align 4,,10
	.p2align 3
.L1840:

	testl	%ebx, %ebx
	je	.L1720
.L1721:

	leaq	-1(%r14), %rdx
	cmpq	$2, %rdx
	jbe	.L1727
	leaq	-1(%r13), %rax
	subq	%rbp, %rax
	cmpq	$6, %rax
	ja	.L1843
	movzbl	0(%rbp), %eax
	movzbl	32(%rsp), %edx
	movb	%al, 32(%rsp)
	movb	%dl, 0(%r13)
	movzbl	33(%rsp), %edx
	movzbl	1(%rbp), %eax
	movb	%dl, 1(%r13)
	movb	%al, 33(%rsp)
.L1744:

	movzbl	2(%rbp), %eax
	movzbl	34(%rsp), %edx
	movb	%al, 34(%rsp)
	movb	%dl, 2(%r13)
	cmpq	$3, %r14
	je	.L1722
	movzbl	3(%rbp), %eax
	movzbl	35(%rsp), %edx
	movb	%al, 35(%rsp)
	movb	%dl, 3(%r13)
	cmpq	$4, %r14
	je	.L1722
	movzbl	4(%rbp), %eax
	movzbl	36(%rsp), %edx
	movb	%al, 36(%rsp)
	movb	%dl, 4(%r13)
	cmpq	$5, %r14
	je	.L1722
	movzbl	5(%rbp), %eax
	movzbl	37(%rsp), %edx
	movb	%al, 37(%rsp)
	movb	%dl, 5(%r13)
	cmpq	$6, %r14
	je	.L1722
	movzbl	6(%rbp), %eax
	movzbl	38(%rsp), %edx
	movb	%al, 38(%rsp)
	movb	%dl, 6(%r13)
	cmpq	$7, %r14
	je	.L1722
	movzbl	7(%rbp), %eax
	movzbl	39(%rsp), %edx
	movb	%al, 39(%rsp)
	movb	%dl, 7(%r13)
	cmpq	$8, %r14
	je	.L1722
	movzbl	8(%rbp), %eax
	movzbl	40(%rsp), %edx
	movb	%al, 40(%rsp)
	movb	%dl, 8(%r13)
	cmpq	$9, %r14
	je	.L1722
	movzbl	9(%rbp), %eax
	movzbl	41(%rsp), %edx
	movb	%al, 41(%rsp)
	movb	%dl, 9(%r13)
	cmpq	$10, %r14
	je	.L1722
	movzbl	10(%rbp), %eax
	movzbl	42(%rsp), %edx
	movb	%al, 42(%rsp)
	movb	%dl, 10(%r13)
	cmpq	$11, %r14
	je	.L1722
	movzbl	11(%rbp), %eax
	movzbl	43(%rsp), %edx
	movb	%al, 43(%rsp)
	movb	%dl, 11(%r13)
	cmpq	$12, %r14
	je	.L1722
	movzbl	12(%rbp), %eax
	movzbl	44(%rsp), %edx
	movb	%al, 44(%rsp)
	movb	%dl, 12(%r13)
	cmpq	$13, %r14
	je	.L1722
	movzbl	13(%rbp), %eax
	movzbl	45(%rsp), %edx
	movb	%al, 45(%rsp)
	movb	%dl, 13(%r13)
	cmpq	$15, %r14
	jne	.L1722
	movzbl	14(%rbp), %eax
	movzbl	46(%rsp), %edx
	movb	%al, 46(%rsp)
	movb	%dl, 14(%r13)
	jmp	.L1722
	.p2align 4,,10
	.p2align 3
.L1843:

	cmpq	$6, %rdx
	jbe	.L1747
	movq	0(%rbp), %rax
	movq	32(%rsp), %rdx
	movq	%rax, 32(%rsp)
	movq	%rdx, 0(%r13)
	cmpq	$8, %r14
	je	.L1722
	leaq	-9(%r14), %rax
	leaq	-8(%r14), %rsi
	cmpq	$2, %rax
	jbe	.L1748
	movl	$8, %eax
	movl	$8, %edx
.L1729:

	leaq	(%r15,%rax), %rcx
	movl	0(%rbp,%rax), %edi
	addl	$4, %edx
	movl	(%rcx), %r8d
	movl	%r8d, 0(%r13,%rax)
	addq	$4, %rax
	movl	%edi, (%rcx)
	cmpq	$4, %rsi
	je	.L1722
.L1732:

	movl	%edx, %ecx
	movzbl	0(%rbp,%rax), %esi
	movzbl	32(%rsp,%rcx), %edi
	movb	%sil, 32(%rsp,%rcx)
	movb	%dil, 0(%r13,%rax)
	leal	1(%rdx), %eax
	cmpq	%r14, %rax
	jnb	.L1722
	movzbl	0(%rbp,%rax), %ecx
	movzbl	32(%rsp,%rax), %esi
	movb	%cl, 32(%rsp,%rax)
	movb	%sil, 0(%r13,%rax)
	leal	2(%rdx), %eax
	cmpq	%r14, %rax
	jnb	.L1722
	movzbl	0(%rbp,%rax), %edx
	movzbl	32(%rsp,%rax), %ecx
	movb	%dl, 32(%rsp,%rax)
	movb	%cl, 0(%r13,%rax)
.L1722:

	pxor	32(%rsp), %xmm1
	movq	(%r12), %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	movaps	%xmm1, 32(%rsp)
	call	*16(%r12)
	movdqa	16(%rsp), %xmm0
	pxor	32(%rsp), %xmm0
	movups	%xmm0, -16(%r13)
	jmp	.L1726
.L1842:

	cmpq	$6, %rsi
	jbe	.L1749
	movq	16(%rbp), %rax
	movq	%r8, 16(%r13)
	movq	%rax, 32(%rsp)
	cmpq	$8, %r14
	je	.L1743
	leaq	-9(%r14), %rax
	leaq	-8(%r14), %r8
	cmpq	$2, %rax
	jbe	.L1750
	movl	$8, %edx
	movl	$8, %eax
.L1739:

	leaq	(%r15,%rdx), %rcx
	movl	16(%rbp,%rdx), %esi
	addl	$4, %eax
	movl	(%rcx), %edi
	movl	%edi, 16(%r13,%rdx)
	movl	%esi, (%rcx)
	cmpq	$4, %r8
	je	.L1743
.L1741:

	leal	16(%rax), %ecx
	movl	%eax, %edx
	movzbl	0(%rbp,%rcx), %esi
	movzbl	32(%rsp,%rdx), %edi
	movb	%sil, 32(%rsp,%rdx)
	leal	1(%rax), %edx
	movb	%dil, 0(%r13,%rcx)
	cmpq	%r14, %rdx
	jnb	.L1743
	leal	17(%rax), %ecx
	movzbl	32(%rsp,%rdx), %edi
	movzbl	0(%rbp,%rcx), %esi
	movb	%dil, 0(%r13,%rcx)
	movb	%sil, 32(%rsp,%rdx)
	leal	2(%rax), %edx
	cmpq	%r14, %rdx
	jnb	.L1743
	addl	$18, %eax
	movzbl	32(%rsp,%rdx), %esi
	movzbl	0(%rbp,%rax), %ecx
	movb	%sil, 0(%r13,%rax)
	movb	%cl, 32(%rsp,%rdx)
	jmp	.L1743
	.p2align 4,,10
	.p2align 3
.L1727:

	movzbl	0(%rbp), %eax
	movzbl	32(%rsp), %edx
	movb	%al, 32(%rsp)
	movb	%dl, 0(%r13)
	cmpq	$1, %r14
	je	.L1722
	movzbl	1(%rbp), %eax
	movzbl	33(%rsp), %edx
	movb	%al, 33(%rsp)
	movb	%dl, 1(%r13)
	cmpq	$3, %r14
	je	.L1744
	jmp	.L1722
	.p2align 4,,10
	.p2align 3
.L1750:

	movl	$8, %eax
	jmp	.L1741
.L1747:

	movq	%r14, %rsi
	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L1729
.L1748:

	movl	$8, %edx
	movl	$8, %eax
	jmp	.L1732
.L1737:

	movzbl	16(%rbp), %ecx
	movb	%r8b, 16(%r13)
	movb	%cl, 32(%rsp)
	cmpq	$1, %r14
	je	.L1743
	movzbl	17(%rbp), %ecx
	movq	%r8, %rax
	movzbl	%ah, %eax
	movb	%al, 17(%r13)
	movb	%cl, 33(%rsp)
	cmpq	$3, %r14
	je	.L1745
	jmp	.L1743
	.p2align 4,,10
	.p2align 3
.L1749:

	movq	%r14, %r8
	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L1739
.L1841:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3045:

	.size	CRYPTO_xts128_encrypt.part.0, .-CRYPTO_xts128_encrypt.part.0
# WAS .section	.text.ccm128_init_state.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	ccm128_init_state.isra.0, @function
.Lccm128_init_state.isra.0_local_target:
ccm128_init_state.isra.0:
.LFB3223:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	%esi, %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	80(%rsp), %rdx
	movq	88(%rsp), %r12
	movq	96(%rsp), %rbp
	cmpl	$7, %r14d
	ja	.L1845
	leal	0(,%r14,8), %ecx
	movl	$1, %esi
	salq	%cl, %rsi
	subq	$1, %rsi
	cmpq	104(%rsp), %rsi
	jb	.L1847
.L1845:

	movl	$15, %ecx
	subl	%r14d, %ecx
	cmpq	%rdx, %rcx
	je	.L1921
.L1847:

	xorl	%eax, %eax
.L1844:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L1921:

	.cfi_restore_state
	leal	-1(%r14), %ecx
	pxor	%xmm0, %xmm0
	leaq	1(%rbx), %rdi
	subl	$2, %eax
	shrl	%eax
	movups	%xmm0, 1(%rbx)
	sall	$3, %eax
	movups	%xmm0, 15(%rdi)
	orl	%ecx, %eax
	movl	%eax, %ecx
	orl	$64, %ecx
	testq	%rbp, %rbp
	cmovne	%ecx, %eax
	movb	%al, (%rbx)
	testq	%rdx, %rdx
	jne	.L1922
.L1849:

	testl	%r14d, %r14d
	je	.L1854
	movzbl	104(%rsp), %eax
	movb	%al, 15(%rbx)
	cmpl	$1, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	movb	%ah, 14(%rbx)
	cmpl	$2, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$16, %rax
	movb	%al, 13(%rbx)
	cmpl	$3, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$24, %rax
	movb	%al, 12(%rbx)
	cmpl	$4, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$32, %rax
	movb	%al, 11(%rbx)
	cmpl	$5, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$40, %rax
	movb	%al, 10(%rbx)
	cmpl	$6, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$48, %rax
	movb	%al, 9(%rbx)
	cmpl	$7, %r14d
	je	.L1854
	movq	104(%rsp), %rax
	shrq	$56, %rax
	movb	%al, 8(%rbx)
	cmpl	$8, %r14d
	je	.L1854
	movb	$0, 7(%rbx)
	cmpl	$9, %r14d
	je	.L1854
	movb	$0, 6(%rbx)
	cmpl	$10, %r14d
	je	.L1854
	movb	$0, 5(%rbx)
	cmpl	$11, %r14d
	je	.L1854
	movb	$0, 4(%rbx)
	cmpl	$12, %r14d
	je	.L1854
	movb	$0, 3(%rbx)
	cmpl	$13, %r14d
	je	.L1854
	movb	$0, 2(%rbx)
	cmpl	$14, %r14d
	je	.L1854
	movb	$0, 1(%rbx)
	cmpl	$15, %r14d
	je	.L1854
	movb	$0, (%rbx)
	.p2align 4,,10
	.p2align 3
.L1854:

	leaq	16(%rbx), %r14
	movq	%r8, (%rsp)
	movq	%r8, %rdx
	movq	%rbx, %rdi
	movq	%r14, %rsi
	call	*%r13
	testq	%rbp, %rbp
	movq	(%rsp), %r8
	je	.L1923
	movl	%ebp, %edi
	movzwl	16(%rbx), %eax
	rolw	$8, %di
	movl	%edi, %esi
	cmpq	$65279, %rbp
	ja	.L1855
	xorl	%esi, %eax
	movw	%ax, 16(%rbx)
	movl	$2, %eax
.L1858:

	movq	%rbp, 96(%rsp)
	movl	$1, %r15d
	movq	%rbx, %rbp
	movq	%r12, %rbx
	movq	%r8, (%rsp)
	movq	96(%rsp), %r12
	jmp	.L1856
	.p2align 4,,10
	.p2align 3
.L1864:

	xorl	%eax, %eax
.L1859:

	movl	%eax, %ecx
	addq	$1, %rbx
	subq	$1, %r12
	addl	$1, %eax
	movzbl	16(%rbp,%rcx), %edx
	xorb	-1(%rbx), %dl
	movb	%dl, 16(%rbp,%rcx)
.L1856:

	cmpl	$15, %eax
	ja	.L1865
	testq	%r12, %r12
	jne	.L1859
.L1865:

	addq	$1, %r15
	movq	(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*%r13
	testq	%r12, %r12
	jne	.L1864
	cmpq	$-16, 104(%rsp)
	movq	%rbp, %rbx
	ja	.L1847
	movq	104(%rsp), %rax
	leaq	15(%rax), %r13
	shrq	$4, %r13
	leaq	1(%r13,%r13), %rax
	addq	%r15, %rax
	jc	.L1847
	movabsq	$2305843009213693952, %rdx
	cmpq	%rax, %rdx
	jb	.L1847
	jmp	.L1863
	.p2align 4,,10
	.p2align 3
.L1923:

	cmpq	$-16, 104(%rsp)
	ja	.L1847
.L1863:

	andb	$7, (%rbx)
	movl	$1, %eax
	jmp	.L1844
	.p2align 4,,10
	.p2align 3
.L1922:

	movq	%r9, %rsi
	movq	%r8, (%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rsp), %r8
	jmp	.L1849
	.p2align 4,,10
	.p2align 3
.L1855:

	movl	%eax, %r10d
	movzbl	%ah, %edi
	movq	%rbp, %rax
	movq	%rbp, %rdx
	shrq	$16, %rax
	notl	%r10d
	shrq	$24, %rdx
	movzbl	18(%rbx), %r11d
	movq	%rax, %r15
	movzbl	19(%rbx), %r9d
	movzwl	20(%rbx), %ecx
	movb	%r10b, (%rsp)
	movq	%rax, 8(%rsp)
	movq	%rbp, %rax
	shrq	$32, %rax
	jne	.L1857
	movl	%r15d, %eax
	xorl	%r11d, %edx
	xorl	$-2, %edi
	xorl	%esi, %ecx
	xorl	%r9d, %eax
	movzbl	%dl, %edx
	movzbl	%dil, %edi
	movw	%cx, 20(%rbx)
	movzbl	%al, %eax
	sall	$8, %eax
	orl	%edx, %eax
	movzbl	%r10b, %edx
	sall	$8, %eax
	orl	%edi, %eax
	sall	$8, %eax
	orl	%edx, %eax
	movl	%eax, 16(%rbx)
	movl	$6, %eax
	jmp	.L1858
	.p2align 4,,10
	.p2align 3
.L1857:

	notl	%edi
	xorb	22(%rbx), %dl
	movl	%edi, %r10d
	movq	%rbp, %rdi
	movzbl	%dl, %edx
	shrq	$56, %rdi
	xorl	%edi, %r11d
	movq	%rbp, %rdi
	movzbl	%r11b, %r15d
	movl	%ecx, %r11d
	movq	%rbp, %rcx
	shrq	$48, %rdi
	movl	%r11d, %eax
	shrq	$32, %rcx
	xorl	%r9d, %edi
	movq	%rbp, %r9
	xorb	%ah, %cl
	movzbl	8(%rsp), %eax
	xorb	23(%rbx), %al
	shrq	$40, %r9
	movzbl	%al, %eax
	movzbl	%cl, %ecx
	xorl	%r11d, %r9d
	movzbl	%dil, %edi
	salq	$8, %rax
	movzbl	%r9b, %r9d
	orq	%rdx, %rax
	movzbl	%r10b, %edx
	salq	$8, %rax
	orq	%rcx, %rax
	salq	$8, %rax
	orq	%r9, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	salq	$8, %rax
	orq	%r15, %rax
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	(%rsp), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movq	%rax, 16(%rbx)
	movzwl	24(%rbx), %eax
	xorl	%esi, %eax
	movw	%ax, 24(%rbx)
	movl	$10, %eax
	jmp	.L1858
	.cfi_endproc
.LFE3223:

	.size	ccm128_init_state.isra.0, .-ccm128_init_state.isra.0
# WAS .section	.text.ccm128_compute_mac,"ax",@progbits
.text
	.p2align 4
	.type	ccm128_compute_mac, @function
.Lccm128_compute_mac_local_target:
ccm128_compute_mac:
.LFB1285:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%rcx, 24(%rsp)
	movl	16(%rdi), %ecx
	movq	%rdi, 16(%rsp)
	movq	%r8, 8(%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 56(%rsp)
	xorl	%edx, %edx
	cmpq	%r8, %rcx
	jne	.L1924
	cmpq	$15, 128(%rsp)
	movq	(%rdi), %r13
	movq	%rsi, %r15
	movq	%r9, %r14
	jbe	.L1943
	movq	128(%rsp), %rax
	leaq	16(%rsi), %rbx
	leaq	-16(%rax), %rdx
	andq	$-16, %rdx
	leaq	16(%r9,%rdx), %r12
	.p2align 4,,10
	.p2align 3
.L1927:

	movq	(%r14), %rdx
	addq	$16, %r14
	xorq	%rdx, 16(%r15)
	movq	%rbx, %rsi
	movq	-8(%r14), %rdx
	movq	%rbx, %rdi
	xorq	%rdx, 24(%r15)
	movq	%rbp, %rdx
	call	*%r13
	cmpq	%r12, %r14
	jne	.L1927
	andq	$15, 128(%rsp)
.L1926:

	cmpq	$0, 128(%rsp)
	je	.L1928
	movq	128(%rsp), %rax
	leaq	-1(%rax), %rcx
	cmpq	$2, %rcx
	jbe	.L1929
	leaq	15(%r15), %rdx
	subq	%r12, %rdx
	cmpq	$6, %rdx
	ja	.L2041
	movzbl	(%r12), %edx
	xorb	%dl, 16(%r15)
	movzbl	1(%r12), %edx
	xorb	%dl, 17(%r15)
.L1940:

	movzbl	2(%r12), %edx
	xorb	%dl, 18(%r15)
	cmpq	$3, 128(%rsp)
	je	.L1935
	movzbl	3(%r12), %edx
	xorb	%dl, 19(%r15)
	cmpq	$4, 128(%rsp)
	je	.L1935
	movzbl	4(%r12), %edx
	xorb	%dl, 20(%r15)
	cmpq	$5, 128(%rsp)
	je	.L1935
	movzbl	5(%r12), %edx
	xorb	%dl, 21(%r15)
	cmpq	$6, 128(%rsp)
	je	.L1935
	movzbl	6(%r12), %edx
	xorb	%dl, 22(%r15)
	cmpq	$7, 128(%rsp)
	je	.L1935
	movzbl	7(%r12), %edx
	xorb	%dl, 23(%r15)
	cmpq	$8, 128(%rsp)
	je	.L1935
	movzbl	8(%r12), %edx
	xorb	%dl, 24(%r15)
	cmpq	$9, 128(%rsp)
	je	.L1935
	movzbl	9(%r12), %edx
	xorb	%dl, 25(%r15)
	cmpq	$10, 128(%rsp)
	je	.L1935
	movzbl	10(%r12), %edx
	xorb	%dl, 26(%r15)
	cmpq	$11, 128(%rsp)
	je	.L1935
	movzbl	11(%r12), %edx
	xorb	%dl, 27(%r15)
	cmpq	$12, 128(%rsp)
	je	.L1935
	movzbl	12(%r12), %edx
	xorb	%dl, 28(%r15)
	cmpq	$13, 128(%rsp)
	je	.L1935
	movzbl	13(%r12), %edx
	xorb	%dl, 29(%r15)
	cmpq	$15, 128(%rsp)
	jne	.L1935
	movzbl	14(%r12), %edx
	xorb	%dl, 30(%r15)
	jmp	.L1935
.L2041:

	cmpq	$6, %rcx
	jbe	.L1944
	movq	(%r12), %xmm1
	movq	16(%r15), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, 16(%r15)
	cmpq	$8, %rax
	je	.L1935
	leaq	-9(%rax), %rdx
	leaq	-8(%rax), %rcx
	cmpq	$2, %rdx
	movl	$8, %edx
	jbe	.L1933
.L1931:

	movd	(%r12,%rdx), %xmm0
	movd	16(%r15,%rdx), %xmm2
	pxor	%xmm0, %xmm2
	movd	%xmm2, 16(%r15,%rdx)
	addq	$4, %rdx
	cmpq	$4, %rcx
	je	.L1935
.L1933:

	movzbl	(%r12,%rdx), %ecx
	xorb	%cl, 16(%r15,%rdx)
	leaq	1(%rdx), %rcx
	cmpq	128(%rsp), %rcx
	jnb	.L1935
	movzbl	1(%r12,%rdx), %esi
	xorb	%sil, 16(%r15,%rcx)
	leaq	2(%rdx), %rcx
	cmpq	128(%rsp), %rcx
	jnb	.L1935
	movzbl	2(%r12,%rdx), %edx
	xorb	%dl, 16(%r15,%rcx)
.L1935:

	leaq	16(%r15), %rdi
	movq	%rbp, %rdx
	movq	%rdi, %rsi
	call	*%r13
.L1928:

	movq	16(%rsp), %rax
	movl	20(%rax), %edx
	testl	%edx, %edx
	je	.L1936
	movb	$0, 15(%r15)
	cmpl	$1, %edx
	je	.L1936
	movb	$0, 14(%r15)
	cmpl	$2, %edx
	je	.L1936
	movb	$0, 13(%r15)
	cmpl	$3, %edx
	je	.L1936
	movb	$0, 12(%r15)
	cmpl	$4, %edx
	je	.L1936
	movb	$0, 11(%r15)
	cmpl	$5, %edx
	je	.L1936
	movb	$0, 10(%r15)
	cmpl	$6, %edx
	je	.L1936
	movb	$0, 9(%r15)
	cmpl	$7, %edx
	je	.L1936
	movb	$0, 8(%r15)
	cmpl	$8, %edx
	je	.L1936
	movb	$0, 7(%r15)
	cmpl	$9, %edx
	je	.L1936
	movb	$0, 6(%r15)
	cmpl	$10, %edx
	je	.L1936
	movb	$0, 5(%r15)
	cmpl	$11, %edx
	je	.L1936
	movb	$0, 4(%r15)
	cmpl	$12, %edx
	je	.L1936
	movb	$0, 3(%r15)
	cmpl	$13, %edx
	je	.L1936
	movb	$0, 2(%r15)
	cmpl	$14, %edx
	je	.L1936
	movb	$0, 1(%r15)
	cmpl	$15, %edx
	je	.L1936
	movb	$0, (%r15)
	.p2align 4,,10
	.p2align 3
.L1936:

	leaq	32(%rsp), %rsi
	movq	%rbp, %rdx
	movq	%r15, %rdi
	call	*%r13
	movdqu	16(%r15), %xmm0
	pxor	32(%rsp), %xmm0
	cmpq	$0, 8(%rsp)
	movups	%xmm0, 16(%r15)
	je	.L1939
	movq	8(%rsp), %rdx
	movq	24(%rsp), %rdi
	leaq	16(%r15), %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L1939:

	movl	$1, %edx
.L1924:

	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2042
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L1943:

	.cfi_restore_state
	movq	%r9, %r12
	jmp	.L1926
.L1929:

	movzbl	(%r12), %edx
	xorb	%dl, 16(%r15)
	cmpq	$1, 128(%rsp)
	je	.L1935
	movzbl	1(%r12), %edx
	xorb	%dl, 17(%r15)
	cmpq	$3, 128(%rsp)
	je	.L1940
	jmp	.L1935
	.p2align 4,,10
	.p2align 3
.L1944:

	movq	%rax, %rcx
	xorl	%edx, %edx
	jmp	.L1931
.L2042:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1285:

	.size	ccm128_compute_mac, .-ccm128_compute_mac
# WAS .section	.text.ec_GFp_nistp224_felem_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_felem_mul, @function
.Lec_GFp_nistp224_felem_mul_local_target:
ec_GFp_nistp224_felem_mul:
.LFB1944:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %rax
	movq	%rcx, %r10
	movq	%rsi, %r14
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$168, %rsp
	.cfi_def_cfa_offset 208
	movq	8(%rax), %rcx
	movq	(%rax), %rsi
	movq	%fs:40, %rdx
	movq	%rdx, 152(%rsp)
	xorl	%edx, %edx
	movq	16(%rax), %rdi
	movq	24(%rax), %rax
	movabsq	$72057594037927935, %rdx
	movq	%rcx, %rbx
	movq	%rsi, %rbp
	shldq	$8, %rsi, %rbx
	movq	%rdi, %rsi
	shrdq	$40, %rax, %rdi
	andq	%rdx, %rbp
	movq	8(%r10), %rax
	shldq	$16, %rcx, %rsi
	movq	(%r10), %rcx
	andq	%rdx, %rbx
	andq	%rdx, %rsi
	andq	%rdx, %rdi
	movq	%rax, %r9
	movq	%rcx, %r12
	shldq	$8, %rcx, %r9
	movq	16(%r10), %rcx
	andq	%rdx, %r12
	andq	%rdx, %r9
	movq	%rcx, %r8
	shldq	$16, %rax, %r8
	movq	24(%r10), %rax
	andq	%rdx, %r8
	shrdq	$40, %rax, %rcx
	movq	%rbp, %rax
	andq	%rdx, %rcx
	mulq	%r12
	movq	%rax, 32(%rsp)
	movq	%rbp, %rax
	movq	%rdx, 40(%rsp)
	mulq	%r9
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	movq	%r10, 48(%rsp)
	movq	%r11, 56(%rsp)
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r8
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbx, %rax
	movq	%rsp, %rbx
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%r10, 80(%rsp)
	movq	%r11, 88(%rsp)
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rsi, %rax
	leaq	32(%rsp), %rsi
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%r10, 96(%rsp)
	movq	%r11, 104(%rsp)
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%rbx, %rdi
	movq	%r10, 112(%rsp)
	movq	%r11, 120(%rsp)
	movq	%rax, 128(%rsp)
	movq	%rdx, 136(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2046
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L2046:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1944:

	.size	ec_GFp_nistp224_felem_mul, .-ec_GFp_nistp224_felem_mul
# WAS .section	.text.SHA256_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_Update
	.type	SHA256_Update, @function
.LSHA256_Update_local_target:
SHA256_Update:
.LFB2859:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L2094
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	0(,%rdx,8), %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	40(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	movq	%rbx, %rcx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	36(%rdi), %edx
	addl	32(%rdi), %eax
	movl	%eax, 32(%rdi)
	adcl	$0, %edx
	shrq	$29, %rcx
	addl	%ecx, %edx
	movl	%edx, 36(%rdi)
	movl	104(%rdi), %edx
	testq	%rdx, %rdx
	je	.L2053
	leaq	(%rbx,%rdx), %rax
	leaq	0(%r13,%rdx), %rdi
	orq	%rbx, %rax
	cmpq	$63, %rax
	jbe	.L2054
	movl	$64, %eax
	leaq	-64(%rdx,%rbx), %rbx
	subq	%rdx, %rax
	movq	%rbx, %r14
	leaq	(%rsi,%rax), %r15
	shrq	$6, %r14
	testq	%rax, %rax
	je	.L2055
	cmpq	$8, %rax
	jnb	.L2056
	testb	$4, %al
	jne	.L2098
	testq	%rax, %rax
	je	.L2057
	movzbl	(%rsi), %edx
	movb	%dl, (%rdi)
	testb	$2, %al
	je	.L2057
	movzwl	-2(%rsi,%rax), %edx
	movw	%dx, -2(%rdi,%rax)
	.p2align 4,,10
	.p2align 3
.L2057:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 104(%rbp)
	movups	%xmm0, 40(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L2062
	jmp	.L2072
	.p2align 4,,10
	.p2align 3
.L2053:

	cmpq	$63, %rbx
	jbe	.L2064
	movq	%rbx, %r14
	shrq	$6, %r14
.L2063:

	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	movq	%rbx, %rax
	andl	$63, %ebx
	andq	$-64, %rax
	leaq	(%r12,%rax), %r15
.L2062:

	testq	%rbx, %rbx
	jne	.L2097
.L2079:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2097:

	.cfi_restore_state
	movl	%ebx, %r14d
	movq	%r15, %r12
.L2064:

	movl	%r14d, 104(%rbp)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jb	.L2099
	movq	(%r12), %rax
	leaq	8(%r13), %rsi
	andq	$-8, %rsi
	movq	%rax, 40(%rbp)
	movl	%ebx, %eax
	movq	-8(%r12,%rax), %rdx
	movq	%rdx, -8(%r13,%rax)
	movq	%r13, %rax
	subq	%rsi, %rax
	subq	%rax, %r12
	addl	%ebx, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L2079
	andl	$-8, %eax
	xorl	%edx, %edx
.L2070:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	(%r12,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L2070
	jmp	.L2079
	.p2align 4,,10
	.p2align 3
.L2094:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L2099:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	andl	$4, %ebx
	jne	.L2100
	testl	%eax, %eax
	je	.L2079
	movzbl	(%r12), %edx
	movb	%dl, 40(%rbp)
	testb	$2, %al
	je	.L2079
	movzwl	-2(%r12,%rax), %edx
	movw	%dx, -2(%r13,%rax)
	jmp	.L2079
	.p2align 4,,10
	.p2align 3
.L2055:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 104(%rbp)
	movups	%xmm0, 40(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L2097
.L2072:

	movq	%r15, %r12
	jmp	.L2063
	.p2align 4,,10
	.p2align 3
.L2056:

	movq	(%rsi), %rdx
	leaq	8(%rdi), %rcx
	andq	$-8, %rcx
	movq	%rdx, (%rdi)
	movq	-8(%rsi,%rax), %rdx
	movq	%rdx, -8(%rdi,%rax)
	subq	%rcx, %rdi
	addq	%rdi, %rax
	subq	%rdi, %r12
	andq	$-8, %rax
	cmpq	$8, %rax
	jb	.L2057
	andq	$-8, %rax
	xorl	%edx, %edx
.L2060:

	movq	(%r12,%rdx), %rsi
	movq	%rsi, (%rcx,%rdx)
	addq	$8, %rdx
	cmpq	%rax, %rdx
	jb	.L2060
	jmp	.L2057
	.p2align 4,,10
	.p2align 3
.L2054:

	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addl	%ebx, 104(%rbp)
	jmp	.L2079
	.p2align 4,,10
	.p2align 3
.L2100:

	movl	(%r12), %edx
	movl	%edx, 40(%rbp)
	movl	-4(%r12,%rax), %edx
	movl	%edx, -4(%r13,%rax)
	jmp	.L2079
.L2098:

	movl	(%rsi), %edx
	movl	%edx, (%rdi)
	movl	-4(%rsi,%rax), %edx
	movl	%edx, -4(%rdi,%rax)
	jmp	.L2057
	.cfi_endproc
.LFE2859:

	.size	SHA256_Update, .-SHA256_Update
# WAS .section	.text.sha256_update,"ax",@progbits
.text
	.p2align 4
	.type	sha256_update, @function
.Lsha256_update_local_target:
sha256_update:
.LFB1663:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA256_Update@PLT
	jmp	.LSHA256_Update_local_target
	.cfi_endproc
.LFE1663:

	.size	sha256_update, .-sha256_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA256_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA256_Update, @function
.LAWS_LC_TRAMPOLINE_SHA256_Update_local_target:
AWS_LC_TRAMPOLINE_SHA256_Update:
.LFB2338:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_Update@PLT
	jmp	.LSHA256_Update_local_target
	.cfi_endproc
.LFE2338:

	.size	AWS_LC_TRAMPOLINE_SHA256_Update, .-AWS_LC_TRAMPOLINE_SHA256_Update
# WAS .section	.text.ec_GFp_nistp521_point_get_affine_coordinates.part.0,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_point_get_affine_coordinates.part.0, @function
.Lec_GFp_nistp521_point_get_affine_coordinates.part.0_local_target:
ec_GFp_nistp521_point_get_affine_coordinates.part.0:
.LFB3016:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	leaq	144(%rdi), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1256, %rsp
	.cfi_def_cfa_offset 1312
	movq	%rdi, 40(%rsp)
	leaq	48(%rsp), %rdi
	leaq	208(%rsp), %rbx
	movq	%fs:40, %rax
	movq	%rax, 1240(%rsp)
	xorl	%eax, %eax
	movq	%rdi, 8(%rsp)
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	8(%rsp), %rsi
	movq	%rbx, %rdi
	movq	%rax, %r14
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L2214
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2105:

	movl	8(%r14), %eax
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	288(%rsp), %rax
	movq	%rax, 16(%rsp)
	movq	%rax, %rdi
	je	.L2215
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2107:

	movl	8(%r14), %eax
	movq	16(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2216
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2109:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2217
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2111:

	movl	8(%r14), %eax
	leaq	368(%rsp), %r15
	movq	16(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2218
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2113:

	movl	8(%r14), %eax
	movq	%r15, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2219
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2115:

	movl	$3, %ebp
.L2118:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2220
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2117:

	subl	$1, %ebp
	jne	.L2118
	movl	8(%r14), %eax
	movq	%r15, %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	448(%rsp), %rax
	movq	%rax, 24(%rsp)
	movq	%rax, %rdi
	je	.L2221
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2120:

	movl	8(%r14), %eax
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2222
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2122:

	movl	$7, %ebp
	jmp	.L2125
	.p2align 4,,10
	.p2align 3
.L2123:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2223
.L2125:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2123
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2125
.L2223:

	movl	8(%r14), %eax
	movq	24(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	528(%rsp), %rax
	movq	%rax, 32(%rsp)
	movq	%rax, %rdi
	je	.L2224
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2127:

	movl	8(%r14), %eax
	movq	32(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2225
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2129:

	movl	$15, %ebp
	jmp	.L2132
	.p2align 4,,10
	.p2align 3
.L2130:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2226
.L2132:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2130
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2132
.L2226:

	movl	8(%r14), %eax
	movq	32(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	608(%rsp), %rax
	movq	%rax, 24(%rsp)
	movq	%rax, %rdi
	je	.L2227
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2134:

	movl	8(%r14), %eax
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2228
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2136:

	movl	$31, %ebp
	jmp	.L2139
	.p2align 4,,10
	.p2align 3
.L2137:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2229
.L2139:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2137
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2139
.L2229:

	movl	8(%r14), %eax
	movq	24(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	688(%rsp), %rax
	movq	%rax, 32(%rsp)
	movq	%rax, %rdi
	je	.L2230
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2141:

	movl	8(%r14), %eax
	movq	32(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2231
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2143:

	movl	$63, %ebp
	jmp	.L2146
	.p2align 4,,10
	.p2align 3
.L2144:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2232
.L2146:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2144
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2146
.L2232:

	movl	8(%r14), %eax
	movq	32(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	768(%rsp), %rax
	movq	%rax, 24(%rsp)
	movq	%rax, %rdi
	je	.L2233
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2148:

	movl	8(%r14), %eax
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2234
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2150:

	movl	$127, %ebp
	jmp	.L2153
	.p2align 4,,10
	.p2align 3
.L2151:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2235
.L2153:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2151
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2153
.L2235:

	movl	8(%r14), %eax
	movq	24(%rsp), %rdx
	movq	%rbx, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	848(%rsp), %rax
	movq	%rax, 32(%rsp)
	movq	%rax, %rdi
	je	.L2236
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2155:

	movl	8(%r14), %eax
	movq	32(%rsp), %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2237
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2157:

	movl	$255, %ebp
	jmp	.L2160
	.p2align 4,,10
	.p2align 3
.L2158:

# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
	subl	$1, %ebp
	je	.L2238
.L2160:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2158
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	subl	$1, %ebp
	jne	.L2160
.L2238:

	movl	8(%r14), %eax
	leaq	928(%rsp), %rbp
	movq	32(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2239
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2162:

	movl	8(%r14), %eax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2240
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2164:

	movl	$3, %ebp
.L2167:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2241
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2166:

	subl	$1, %ebp
	jne	.L2167
	movl	8(%r14), %eax
	leaq	1008(%rsp), %rbp
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2242
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2169:

	movl	8(%r14), %eax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2243
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2171:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2244
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2173:

	movl	8(%r14), %eax
	leaq	1088(%rsp), %rbp
	movq	16(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2245
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2175:

	movl	8(%r14), %eax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2246
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2177:

	movl	8(%r14), %eax
	leaq	1168(%rsp), %rbp
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2247
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2179:

	movl	8(%r14), %eax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2248
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2181:

	movl	8(%r14), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2249
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2183:

	movl	8(%r14), %eax
	leaq	128(%rsp), %r15
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2250
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2185:

	movl	8(%r14), %eax
	movq	%r15, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2251
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2187:

	testq	%r13, %r13
	je	.L2188
	movq	40(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	movl	8(%r14), %eax
	movq	%r15, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2252
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2190:

	movq	$0, 64(%r13)
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movq	%r13, %rdi
	movups	%xmm0, 0(%r13)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
.L2188:

	testq	%r12, %r12
	je	.L2191
	movq	40(%rsp), %rsi
	movq	%rbp, %rdi
	addq	$72, %rsi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	movl	8(%r14), %eax
	movq	%r15, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2253
# WAS call	bignum_sqr_p521_alt@PLT
	call	.Lbignum_sqr_p521_alt_local_target
.L2193:

	movl	8(%r14), %eax
	movq	8(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2254
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2195:

	movl	8(%r14), %eax
	movq	%r15, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2255
# WAS call	bignum_mul_p521_alt@PLT
	call	.Lbignum_mul_p521_alt_local_target
.L2197:

	movq	$0, 64(%r12)
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movq	%r12, %rdi
	movups	%xmm0, (%r12)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
.L2191:

	movq	1240(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2256
	addq	$1256, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2241:

	.cfi_restore_state
# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2166
.L2220:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2117
.L2215:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2107
.L2214:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2105
.L2219:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2115
.L2218:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2113
.L2217:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2111
.L2216:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2109
.L2231:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2143
.L2230:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2141
.L2228:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2136
.L2227:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2134
.L2225:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2129
.L2224:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2127
.L2222:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2122
.L2221:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2120
.L2251:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2187
.L2250:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2185
.L2249:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2183
.L2248:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2181
.L2247:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2179
.L2246:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2177
.L2245:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2175
.L2244:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2173
.L2243:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2171
.L2242:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2169
.L2240:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2164
.L2239:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2162
.L2237:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2157
.L2236:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2155
.L2234:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2150
.L2233:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2148
.L2252:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2190
.L2253:

# WAS call	bignum_sqr_p521@PLT
	call	.Lbignum_sqr_p521_local_target
	jmp	.L2193
.L2255:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2197
.L2254:

# WAS call	bignum_mul_p521@PLT
	call	.Lbignum_mul_p521_local_target
	jmp	.L2195
.L2256:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3016:

	.size	ec_GFp_nistp521_point_get_affine_coordinates.part.0, .-ec_GFp_nistp521_point_get_affine_coordinates.part.0
# WAS .section	.rodata.ec_GFp_nistp521_point_get_affine_coordinates.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC106:

	.string	"/aws-lc/crypto/fipsmodule/ec/p521.c"
# WAS .section	.text.ec_GFp_nistp521_point_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_point_get_affine_coordinates, @function
.Lec_GFp_nistp521_point_get_affine_coordinates_local_target:
ec_GFp_nistp521_point_get_affine_coordinates:
.LFB2050:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movl	328(%rax), %edx
	testl	%edx, %edx
	jle	.L2265
	cmpl	$1, %edx
	je	.L2266
	movl	%edx, %eax
	movdqu	144(%rdi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L2260
	movdqu	160(%rdi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L2260
	movdqu	176(%rdi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L2260
	movdqu	192(%rdi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L2260
	movdqu	208(%rdi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L2260
	xorl	%r8d, %r8d
.L2261:

	movq	%r8, %r9
	addq	$1, %r8
	salq	$4, %r9
	movdqu	224(%rdi,%r9), %xmm1
	leal	5(%r8), %r9d
	por	%xmm1, %xmm0
	cmpl	%eax, %r9d
	jb	.L2261
	.p2align 4,,10
	.p2align 3
.L2260:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L2262
	andl	$-2, %edx
.L2259:

	movslq	%edx, %rdx
	orq	144(%rdi,%rdx,8), %rax
.L2262:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
.L2258:

	testq	%rax, %rax
	jne	.L2287
	movq	%rcx, %rdx
# WAS jmp	ec_GFp_nistp521_point_get_affine_coordinates.part.0
	jmp	.Lec_GFp_nistp521_point_get_affine_coordinates.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L2287:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$328, %r8d
	leaq	.LC106(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2265:

	movl	$1, %eax
	jmp	.L2258
.L2266:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L2259
	.cfi_endproc
.LFE2050:

	.size	ec_GFp_nistp521_point_get_affine_coordinates, .-ec_GFp_nistp521_point_get_affine_coordinates
# WAS .section	.text.ec_GFp_nistp384_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_cmp_x_coordinate, @function
.Lec_GFp_nistp384_cmp_x_coordinate_local_target:
ec_GFp_nistp384_cmp_x_coordinate:
.LFB2031:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$248, %rsp
	.cfi_def_cfa_offset 304
	movl	328(%rdi), %edx
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L2297
	movq	%rdi, %rbx
	movq	%rsi, %r12
	cmpl	$1, %edx
	je	.L2312
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L2294
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L2294
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L2294
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L2294
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L2294
	xorl	%ecx, %ecx
.L2295:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%r12,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L2295
	.p2align 4,,10
	.p2align 3
.L2294:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L2296
	andl	$-2, %edx
.L2293:

	movslq	%edx, %rdx
	orq	144(%r12,%rdx,8), %rax
.L2296:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	js	.L2297
	leaq	16(%rsp), %r14
	leaq	144(%r12), %rsi
	movq	%r14, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	%rax, %r13
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L2340
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2299:

	leaq	64(%rsp), %r15
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movl	8(%r13), %eax
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2341
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2301:

	leaq	112(%rsp), %rdi
	movq	%r12, %rsi
	movq	%rdi, 8(%rsp)
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movl	8(%r13), %eax
	movq	8(%rsp), %rdi
	notl	%eax
	movq	%rdi, %rsi
	testl	$524544, %eax
	je	.L2342
# WAS call	bignum_deamont_p384_alt@PLT
	call	.Lbignum_deamont_p384_alt_local_target
.L2303:

	movq	64(%rsp), %rax
	movq	72(%rsp), %rdx
	xorq	112(%rsp), %rax
	xorq	120(%rsp), %rdx
	orq	%rdx, %rax
	je	.L2343
.L2304:

	movslq	328(%rbx), %rsi
	movq	256(%rbx), %rax
	leaq	160(%rsp), %rdi
	testq	%rsi, %rsi
	je	.L2306
	movq	%rsi, %rcx
	xorl	%edx, %edx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rdx,8),%rsi	
	adcq	(%rax,%rdx,8),%rsi	
	movq	%rsi,(%rdi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	je	.L2344
.L2297:

	xorl	%eax, %eax
.L2290:

	movq	232(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L2345
	addq	$248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2344:

	.cfi_restore_state
	movslq	328(%rbx), %rsi
.L2306:

	movq	320(%rbx), %rdx
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	testl	%eax, %eax
	jns	.L2297
	movq	%rdi, %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movl	8(%r13), %eax
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2346
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2308:

	movq	64(%rsp), %rax
	movq	72(%rsp), %rdx
	xorq	112(%rsp), %rax
	xorq	120(%rsp), %rdx
	orq	%rdx, %rax
	je	.L2347
.L2309:

	movl	$1, %eax
.L2310:

	xorl	$1, %eax
	jmp	.L2290
	.p2align 4,,10
	.p2align 3
.L2343:

	movq	80(%rsp), %rax
	movq	88(%rsp), %rdx
	xorq	128(%rsp), %rax
	xorq	136(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L2304
	movq	96(%rsp), %rax
	movq	104(%rsp), %rdx
	xorq	144(%rsp), %rax
	xorq	152(%rsp), %rdx
	orq	%rdx, %rax
	movl	$1, %eax
	jne	.L2304
	jmp	.L2290
	.p2align 4,,10
	.p2align 3
.L2340:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2299
	.p2align 4,,10
	.p2align 3
.L2342:

# WAS call	bignum_deamont_p384@PLT
	call	.Lbignum_deamont_p384_local_target
	jmp	.L2303
	.p2align 4,,10
	.p2align 3
.L2341:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2301
.L2312:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L2293
.L2347:

	movq	80(%rsp), %rax
	movq	88(%rsp), %rdx
	xorq	128(%rsp), %rax
	xorq	136(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L2309
	movq	96(%rsp), %rax
	movq	104(%rsp), %rdx
	xorq	144(%rsp), %rax
	xorq	152(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L2309
	xorl	%eax, %eax
	jmp	.L2310
.L2346:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2308
.L2345:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2031:

	.size	ec_GFp_nistp384_cmp_x_coordinate, .-ec_GFp_nistp384_cmp_x_coordinate
# WAS .section	.text.ge_madd,"ax",@progbits
.text
	.p2align 4
	.type	ge_madd, @function
.Lge_madd_local_target:
ge_madd:
.LFB1410:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %rcx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	subq	$48, %rsp
	.cfi_def_cfa_offset 104
	movq	(%rsi), %rax
	addq	40(%rsi), %rax
	movq	%rax, %r15
	movq	8(%rsi), %rax
	addq	48(%rsi), %rax
	movq	%rax, %r14
	movq	16(%rsi), %rax
	addq	56(%rsi), %rax
	movq	24(%rsi), %r11
	movq	%rax, %rbp
	addq	64(%rsi), %r11
	movq	32(%rsi), %rax
	addq	72(%rsi), %rax
	movq	%r15, (%rbx)
	movq	%rax, %r9
	movq	%r14, 8(%rbx)
	movq	%rbp, 16(%rbx)
	movq	%r11, 24(%rbx)
	movq	%rax, 32(%rbx)
	movabsq	$4503599627370458, %rax
	addq	40(%rsi), %rax
	subq	(%rsi), %rax
	movq	%rax, %rsi
	movabsq	$4503599627370494, %rax
	addq	48(%rcx), %rax
	subq	8(%rcx), %rax
	movq	%rax, %rdx
	movq	%rbx, -88(%rsp)
	movabsq	$4503599627370494, %rax
	addq	56(%rcx), %rax
	subq	16(%rcx), %rax
	movq	%rsi, -80(%rsp)
	movq	%rax, %r8
	movq	%rdx, -8(%rsp)
	movabsq	$4503599627370494, %rax
	addq	64(%rcx), %rax
	subq	24(%rcx), %rax
	movq	%r8, -104(%rsp)
	movq	%rax, %r10
	movq	%r11, -40(%rsp)
	movabsq	$4503599627370494, %rax
	addq	72(%rcx), %rax
	subq	32(%rcx), %rax
	movq	%rsi, 40(%rbx)
	movq	%rdx, 48(%rbx)
	movq	%r10, 64(%rbx)
	movq	%rax, 72(%rbx)
	movq	%r8, 56(%rbx)
	movq	32(%rdi), %rbx
	movq	%rax, -96(%rsp)
	movq	(%rdi), %r8
	leaq	(%rbx,%rbx,8), %rax
	movq	%r10, -120(%rsp)
	leaq	(%rbx,%rax,2), %rsi
	movq	24(%rdi), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r13
	movq	16(%rdi), %rbx
	movq	%r13, -72(%rsp)
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r10
	movq	8(%rdi), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r12
	movq	-72(%rsp), %rbx
	movq	%r12, %rax
	mulq	%r9
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r9
	movq	%r12, -56(%rsp)
	movq	%r13, -48(%rsp)
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	-40(%rsp), %rbx
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	-56(%rsp), %r10
	movq	%r11, %r13
	movq	-48(%rsp), %r11
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	8(%rdi)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	movq	%rax, -40(%rsp)
	movq	-72(%rsp), %rax
	adcq	%r11, %rdx
	movq	%rdx, -32(%rsp)
	mulq	%r9
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r11, %r13
	movq	-40(%rsp), %r11
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	8(%rdi)
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	16(%rdi)
	addq	%r12, %rax
	movq	-32(%rsp), %r12
	adcq	%r13, %rdx
	shrdq	$51, %r12, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	movq	%rax, -72(%rsp)
	adcq	%r11, %rdx
	movq	%rsi, %rax
	movabsq	$2251799813685247, %rsi
	movq	%rdx, -64(%rsp)
	mulq	%r9
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r11, %r13
	movq	-72(%rsp), %r10
	movq	-64(%rsp), %r11
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	8(%rdi)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	16(%rdi)
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	24(%rdi)
	addq	%r12, %rax
	adcq	%r13, %rdx
	movq	%rax, %r12
	shrdq	$51, %r11, %r10
	movq	%r9, %rax
	xorl	%r11d, %r11d
	movq	%rdx, %r13
	addq	%r10, %r12
	adcq	%r11, %r13
	mulq	%r8
	movq	%r12, %r11
	andq	%rsi, %r11
	movq	%r11, 32(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbx, %rax
	movq	-56(%rsp), %rbx
	mulq	8(%rdi)
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	16(%rdi)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	24(%rdi)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	32(%rdi)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r12
	xorl	%r13d, %r13d
	addq	%r12, %rax
	movq	72(%rdi), %r12
	adcq	%r13, %rdx
	movq	%rax, %r15
	andq	%rsi, %rbx
	shrdq	$51, %rdx, %rax
	andq	%rsi, %r15
	leaq	(%rax,%rax,8), %rdx
	movq	%r15, -24(%rsp)
	movq	56(%rdi), %r15
	leaq	(%rax,%rdx,2), %rdx
	addq	%rbx, %rdx
	movq	-40(%rsp), %rbx
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%rsi, %rbx
	andq	%rsi, %rbp
	movq	%rbx, %rax
	movq	-72(%rsp), %rbx
	movq	%rbp, -56(%rsp)
	addq	%rdx, %rax
	movq	48(%rdi), %rbp
	andq	%rsi, %rbx
	movq	%rax, %r13
	shrq	$51, %rax
	leaq	(%rbx,%rax), %rbx
	leaq	(%r12,%r12,8), %rax
	andq	%rsi, %r13
	leaq	(%r12,%rax,2), %r14
	movq	64(%rdi), %r12
	movq	%r13, -40(%rsp)
	movq	%rbx, -16(%rsp)
	leaq	(%r12,%r12,8), %rax
	leaq	(%r12,%rax,2), %r8
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r9
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %r12
	movq	%r12, %rax
	mulq	-96(%rsp)
	movq	%rax, %r12
	movq	-120(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	movq	-8(%rsp), %rbx
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	adcq	%rdx, %r13
	mulq	40(%rdi)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	movq	-96(%rsp), %r9
	adcq	%rdx, %r11
	movq	%r10, -72(%rsp)
	mulq	%r9
	movq	%r11, -64(%rsp)
	movq	%rax, %r12
	movq	-120(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	40(%rdi)
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r9
	movq	%r12, -8(%rsp)
	movq	%rax, %r8
	movq	-120(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	adcq	%rdx, %r9
	mulq	40(%rdi)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rbp
	movq	%r8, %r10
	movq	%r12, %r8
	movq	%r9, %r11
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r14, %rax
	movq	-80(%rsp), %r14
	movq	%rdx, %r13
	mulq	-96(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	-120(%rsp), %rax
	mulq	40(%rdi)
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-104(%rsp), %rax
	adcq	%rdx, %r10
	mulq	%rbp
	movq	%r10, %r11
	movq	%r9, %r10
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r15
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	64(%rdi)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%r8, %rax
	adcq	%rdx, %r9
	andq	%rsi, %rax
	movq	%rax, -80(%rsp)
	movq	-96(%rsp), %rax
	mulq	40(%rdi)
	movq	%rax, %r10
	movq	-120(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	64(%rdi)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	72(%rdi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %rbx
	shrdq	$51, %rdx, %rax
	andq	%rsi, %rbx
	leaq	(%rax,%rax,8), %rdx
	movq	%rbx, 24(%rsp)
	leaq	(%rax,%rdx,2), %rdx
	movq	-72(%rsp), %rax
	andq	%rsi, %rax
	addq	%rax, %rdx
	movq	-8(%rsp), %rax
	movq	%rdx, %r9
	shrq	$51, %rdx
	andq	%rsi, %rax
	andq	%rsi, %r9
	addq	%rdx, %rax
	movq	%r12, %rdx
	movq	%r9, %rbx
	andq	%rsi, %rdx
	movq	%rax, %r10
	shrq	$51, %rax
	andq	%rsi, %r10
	addq	%rax, %rdx
	movq	%r10, -96(%rsp)
	movq	%rdx, -72(%rsp)
	movq	152(%rcx), %r8
	movq	112(%rdi), %r9
	movq	104(%rdi), %r14
	leaq	(%r8,%r8,8), %rax
	movq	96(%rdi), %r15
	movq	88(%rdi), %r11
	leaq	(%r8,%rax,2), %rbp
	movq	144(%rcx), %r8
	movq	80(%rdi), %rdi
	movq	%r11, -104(%rsp)
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rdx
	movq	136(%rcx), %r8
	movq	%rdx, %r10
	leaq	(%r8,%r8,8), %rax
	movq	%r10, -120(%rsp)
	leaq	(%r8,%rax,2), %r8
	movq	%r8, -8(%rsp)
	movq	128(%rcx), %r8
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %r12
	movq	%r12, %rax
	mulq	%r9
	movq	%rax, %r12
	movq	-8(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	120(%rcx)
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	120(%rcx)
	movq	%r13, (%rsp)
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	-8(%rsp), %rax
	movq	%r12, -8(%rsp)
	adcq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	120(%rcx)
	movq	%r12, 8(%rsp)
	movq	%r13, 16(%rsp)
	movq	%rax, %r10
	movq	-104(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	136(%rcx)
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	movq	%r11, %r12
	movq	%r10, %r11
	addq	%rax, %r11
	movq	%r14, %rax
	adcq	%rdx, %r12
	mulq	120(%rcx)
	movq	%r11, -120(%rsp)
	movq	%r12, -112(%rsp)
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	136(%rcx)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	144(%rcx)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	addq	%r12, %r10
	adcq	%r13, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	movq	-112(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	120(%rcx)
	movq	%r10, %rbp
	andq	%rsi, %rbp
	movq	%rax, %r12
	movq	%r14, %rax
	movq	%rdx, %r13
	movq	104(%rcx), %r14
	mulq	%r8
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r15, %rax
	movabsq	$4503599627370458, %r15
	addq	%r12, %r8
	movq	80(%rcx), %r12
	adcq	%r13, %r9
	mulq	136(%rcx)
	movq	112(%rcx), %r13
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	movq	%rbx, -104(%rsp)
	adcq	%rdx, %r9
	mulq	144(%rcx)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	152(%rcx)
	addq	%r8, %rax
	movq	8(%rsp), %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	movq	-8(%rsp), %r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rdi
	andq	%rsi, %r9
	andq	%rsi, %r8
	shrdq	$51, %r11, %r10
	andq	%rsi, %rdi
	movq	96(%rcx), %r11
	leaq	(%r10,%r10,8), %rax
	movq	%rdi, %rdx
	leaq	(%r10,%rax,2), %rdi
	movq	%r8, %rax
	movq	-96(%rsp), %r10
	addq	%r9, %rdi
	movq	%rdi, %r9
	shrq	$51, %rdi
	addq	%rdi, %rax
	movq	-120(%rsp), %rdi
	movq	%r14, -120(%rsp)
	andq	%rsi, %r9
	movq	%rax, %r8
	shrq	$51, %rax
	movq	-40(%rsp), %r14
	andq	%rsi, %rdi
	andq	%rsi, %r8
	addq	%rax, %rdi
	leaq	(%r12,%r12), %rax
	movq	88(%rcx), %r12
	movq	-56(%rsp), %rcx
	addq	%r15, %rcx
	addq	$36, %r15
	subq	%rbx, %rcx
	movq	-88(%rsp), %rbx
	movq	%rcx, (%rbx)
	leaq	(%r14,%r15), %rcx
	movq	-16(%rsp), %r14
	subq	%r10, %rcx
	movq	%rbx, %r10
	movq	%rcx, 8(%rbx)
	movq	-72(%rsp), %rbx
	leaq	(%r14,%r15), %rcx
	movq	32(%rsp), %r14
	subq	%rbx, %rcx
	movq	-80(%rsp), %rbx
	movq	%rcx, 16(%r10)
	leaq	(%r14,%r15), %rcx
	subq	%rbx, %rcx
	movq	24(%rsp), %rbx
	movq	%rcx, 24(%r10)
	movq	-24(%rsp), %rcx
	addq	%r15, %rcx
	subq	%rbx, %rcx
	movq	%rcx, 32(%r10)
	movq	-104(%rsp), %r10
	movq	-56(%rsp), %rcx
	addq	%r10, %rcx
	movq	-88(%rsp), %r10
	movq	%rcx, 40(%r10)
	movq	-96(%rsp), %r10
	movq	-40(%rsp), %rcx
	addq	%r10, %rcx
	movq	-88(%rsp), %r10
	movq	%rcx, 48(%r10)
	movq	-16(%rsp), %r10
	movq	-72(%rsp), %rcx
	addq	%r10, %rcx
	movq	-88(%rsp), %r10
	movq	%rcx, 56(%r10)
	movq	-80(%rsp), %rcx
	addq	%r14, %rcx
	movq	-120(%rsp), %r14
	movq	%rcx, 64(%r10)
	movq	-24(%rsp), %rcx
	addq	%rbx, %rcx
	movq	%r10, %rbx
	movq	%rcx, 72(%r10)
	movq	%rax, %rcx
	andq	%rsi, %rax
	shrq	$51, %rcx
	leaq	(%rcx,%r12,2), %r12
	movq	%r12, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%r11,2), %r11
	movq	%r11, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%r14,2), %r10
	movq	%r10, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%r13,2), %rcx
	movq	%rcx, %r13
	shrq	$51, %r13
	leaq	0(%r13,%r13,8), %r14
	leaq	0(%r13,%r14,2), %r13
	movq	%rbx, %r14
	addq	%r13, %rax
	andq	%rsi, %r12
	andq	%rsi, %r10
	andq	%rsi, %rcx
	movq	%rax, %r13
	andq	%rsi, %rax
	andq	%rsi, %r11
	shrq	$51, %r13
	addq	%r13, %r12
	movq	%r12, %r13
	shrq	$51, %r12
	andq	%rsi, %r13
	leaq	(%rax,%r9), %rsi
	addq	%r12, %r11
	movq	%rsi, 80(%rbx)
	leaq	0(%r13,%r8), %rsi
	addq	%r15, %r13
	movq	%rsi, 88(%rbx)
	leaq	(%r11,%rdi), %rsi
	addq	%r15, %r11
	subq	%r8, %r13
	movq	%rsi, 96(%rbx)
	leaq	(%r10,%rbp), %rsi
	addq	%r15, %r10
	subq	%rdi, %r11
	movq	%rsi, 104(%rbx)
	leaq	(%rcx,%rdx), %rsi
	addq	%r15, %rcx
	subq	%rbp, %r10
	movq	%rsi, 112(%rbx)
	subq	%rdx, %rcx
	movabsq	$4503599627370458, %rbx
	addq	%rbx, %rax
	movq	%r13, 128(%r14)
	subq	%r9, %rax
	movq	%r11, 136(%r14)
	movq	%rax, 120(%r14)
	movq	%r10, 144(%r14)
	movq	%rcx, 152(%r14)
	addq	$48, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1410:

	.size	ge_madd, .-ge_madd
# WAS .section	.text.ge_p2_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ge_p2_dbl, @function
.Lge_p2_dbl_local_target:
ge_p2_dbl:
.LFB1408:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r8
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$160, %rsp
	.cfi_def_cfa_offset 216
	movq	32(%rsi), %rsi
	movq	24(%r8), %rbx
	movq	16(%r8), %r11
	movq	8(%r8), %r15
	movq	%rdi, 144(%rsp)
	leaq	(%rsi,%rsi,8), %rax
	movq	%rsi, -88(%rsp)
	movq	(%r8), %rbp
	leaq	(%rbx,%rbx), %r14
	leaq	(%rsi,%rax,2), %r9
	leaq	(%rbx,%rbx,8), %rax
	movq	%r11, -72(%rsp)
	leaq	(%rbx,%rax,2), %r12
	leaq	(%r9,%r9), %r10
	movq	%rbx, 32(%rsp)
	leaq	(%r12,%r12), %r13
	leaq	(%r11,%r11), %rcx
	movq	%rbp, 48(%rsp)
	movq	%r13, %rax
	mulq	%r11
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	movq	%rsi, -120(%rsp)
	movq	%rdi, -112(%rsp)
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	leaq	(%r15,%r15), %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	-120(%rsp), %rax
	adcq	%rdx, %rdi
	movq	-112(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	movq	%rsi, -104(%rsp)
	movq	%rdi, -96(%rsp)
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r15, %rax
	addq	%r10, %r12
	adcq	%r11, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	shrdq	$51, %rdi, %rsi
	xorl	%edx, %edx
	addq	%rsi, %r12
	movq	-88(%rsp), %rsi
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r9
	movq	%rcx, %rax
	movq	%rdx, %r10
	mulq	%r15
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rbp, %rax
	addq	%r9, %rcx
	leaq	(%rsi,%rsi), %r9
	adcq	%r10, %rbx
	mulq	%r14
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	movq	%rcx, %r10
	adcq	%rdx, %rbx
	movabsq	$2251799813685247, %rcx
	movq	%r10, %rdx
	andq	%rcx, %rdx
	movq	%rdx, 56(%rsp)
	mulq	%rbp
	movq	%r15, 40(%rsp)
	movq	-72(%rsp), %r9
	movq	-104(%rsp), %rsi
	movq	%rax, %rdi
	movq	%r14, %rax
	movq	%rdx, %rbp
	mulq	%r15
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r9, %rax
	addq	%rdi, %r14
	adcq	%rbp, %r15
	mulq	%r9
	addq	%r14, %rax
	adcq	%r15, %rdx
	shrdq	$51, %rbx, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	movq	-120(%rsp), %r10
	adcq	%r11, %rdx
	movq	%rax, %r14
	andq	%rcx, %rsi
	andq	%rcx, %r12
	shrdq	$51, %rdx, %rax
	andq	%rcx, %r10
	andq	%rcx, %r14
	movq	40(%r8), %r11
	leaq	(%rax,%rax,8), %rdx
	movq	%r14, 64(%rsp)
	movq	72(%r8), %r14
	leaq	(%rax,%rdx,2), %rax
	movq	%r11, %r15
	addq	%r10, %rax
	movq	%r14, -24(%rsp)
	movq	%rax, %r10
	shrq	$51, %rax
	movq	%r15, -104(%rsp)
	addq	%rax, %rsi
	andq	%rcx, %r10
	movq	%rsi, %rax
	movq	%r10, 72(%rsp)
	movq	64(%r8), %r10
	shrq	$51, %rsi
	andq	%rcx, %rax
	leaq	(%r12,%rsi), %r13
	movq	%rax, 80(%rsp)
	leaq	(%r14,%r14,8), %rax
	movq	%r10, %rbp
	leaq	(%r10,%r10), %rbx
	leaq	(%r14,%rax,2), %r9
	leaq	(%r10,%r10,8), %rax
	movq	%r13, 16(%rsp)
	movq	56(%r8), %r13
	leaq	(%r10,%rax,2), %r10
	movq	48(%r8), %r14
	leaq	(%r9,%r9), %rdi
	movq	%rbp, -56(%rsp)
	leaq	(%r10,%r10), %r12
	movq	%r13, -120(%rsp)
	leaq	(%r13,%r13), %rsi
	movq	%r12, %rax
	mulq	%r13
	movq	%rax, %r12
	movq	%r14, %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r14, %rbp
	movq	%rbp, 24(%rsp)
	movq	%rax, %r10
	movq	-120(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	leaq	(%r14,%r14), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r14
	movq	%rdi, %rax
	movq	%rdx, %r15
	mulq	-56(%rsp)
	movq	%rax, %r10
	movq	-104(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r15, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, -40(%rsp)
	movq	%r9, %rax
	movq	-104(%rsp), %r11
	movq	%rdx, -32(%rsp)
	mulq	-24(%rsp)
	movq	%rax, %r9
	movq	%rsi, %rax
	movq	%rdx, %r10
	mulq	%rbp
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r9, %rsi
	adcq	%r10, %rdi
	mulq	%rbx
	movq	-24(%rsp), %r10
	leaq	(%r10,%r10), %r9
	addq	%rax, %rsi
	movq	-40(%rsp), %rax
	adcq	%rdx, %rdi
	movq	-32(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rsi, %rax
	adcq	%rdx, %rdi
	andq	%rcx, %rax
	movq	%rax, -16(%rsp)
	movq	%r9, %rax
	mulq	%r11
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	movq	-120(%rsp), %rbx
	mulq	%rbp
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	andq	%rcx, %r12
	shrdq	$51, %rdx, %rax
	andq	%rcx, %rsi
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, -8(%rsp)
	leaq	(%rax,%rdx,2), %rdx
	addq	%r12, %rdx
	movq	%rdx, %r12
	shrq	$51, %rdx
	andq	%rcx, %r12
	movq	%r12, (%rsp)
	movq	%r14, %r12
	andq	%rcx, %r12
	movq	%r12, %rax
	addq	%rdx, %rax
	movq	%rax, %r12
	shrq	$51, %rax
	andq	%rcx, %r12
	movq	%r12, 8(%rsp)
	movq	-40(%rsp), %r12
	movq	112(%r8), %rbx
	movq	104(%r8), %rdi
	andq	%rcx, %r12
	movq	96(%r8), %rbp
	movq	88(%r8), %rsi
	leaq	(%r12,%rax), %r12
	leaq	(%rbx,%rbx,8), %rax
	movq	80(%r8), %r8
	leaq	(%rbx,%rax,2), %rax
	movq	%r12, -40(%rsp)
	leaq	(%rbp,%rbp), %r12
	movq	%rax, 128(%rsp)
	leaq	(%rax,%rax), %r9
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r10
	movq	%r12, 88(%rsp)
	leaq	(%rdi,%rdi), %r13
	leaq	(%r10,%r10), %r11
	movq	%r13, 120(%rsp)
	movq	%r11, %rax
	mulq	%rbp
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%rsi
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	movq	%r14, 104(%rsp)
	movq	%r15, 112(%rsp)
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	leaq	(%rsi,%rsi), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r15, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%rdi, %rax
	movq	88(%rsp), %rdi
	movq	%rdx, %r13
	mulq	%r9
	movq	%r12, %r9
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	xorl	%r11d, %r11d
	addq	%r9, %rax
	movq	%rax, %r14
	movq	128(%rsp), %rax
	adcq	%r11, %rdx
	movq	%rdx, %r15
	mulq	%rbx
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	movq	120(%rsp), %rdi
	mulq	%rsi
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	movq	40(%rsp), %r15
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rbx, %rbx
	movq	%rbx, %rax
	mulq	%r8
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	addq	%r8, %rsi
	movq	104(%rsp), %r8
	adcq	%r9, %rdi
	mulq	%rbp
	movq	48(%rsp), %rbp
	movq	-72(%rsp), %r9
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	movq	-104(%rsp), %r11
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 88(%rsp)
	andq	%rcx, %r8
	andq	%rcx, %r12
	shrdq	$51, %rdx, %rax
	movq	%rdx, 96(%rsp)
	andq	%rcx, %r10
	leaq	(%r11,%rbp), %rbx
	leaq	(%rax,%rax,8), %rdx
	movq	24(%rsp), %rbp
	leaq	(%rax,%rdx,2), %rdx
	movq	88(%rsp), %rax
	addq	%r8, %rdx
	movq	%rdx, %r8
	andq	%rcx, %rdx
	andq	%rcx, %rax
	shrq	$51, %r8
	leaq	(%rdx,%rdx), %rdi
	shrq	$50, %rdx
	addq	%r8, %r12
	andq	%rcx, %rdi
	movq	%r12, %r8
	shrq	$51, %r12
	andq	%rcx, %r8
	movq	%r8, %rsi
	leaq	(%rdx,%r8,2), %rdx
	movq	%r14, %r8
	movq	-56(%rsp), %r14
	andq	%rcx, %r8
	shrq	$50, %rsi
	andq	%rcx, %rdx
	addq	%r8, %r12
	leaq	(%rsi,%r12,2), %r8
	movq	%r8, %r12
	movq	%r8, 120(%rsp)
	shrq	$51, %r12
	leaq	(%r12,%r10,2), %r8
	movq	%r8, %rsi
	movq	%r8, 88(%rsp)
	shrq	$51, %rsi
	leaq	(%rsi,%rax,2), %rax
	movq	%rax, 104(%rsp)
	shrq	$51, %rax
	leaq	(%rax,%rax,8), %rsi
	leaq	(%rax,%rsi,2), %rax
	leaq	0(%rbp,%r15), %rsi
	leaq	(%rax,%rdi), %r12
	movq	%r12, %r13
	movq	%r12, 128(%rsp)
	shrq	$51, %r13
	leaq	0(%r13,%rdx), %r12
	movq	32(%rsp), %rdx
	movq	-120(%rsp), %r13
	movq	%r12, 136(%rsp)
	leaq	(%r14,%rdx), %r8
	movq	-24(%rsp), %r14
	movq	-88(%rsp), %rdx
	leaq	0(%r13,%r9), %rbp
	leaq	(%rbp,%rbp), %r15
	leaq	(%r14,%rdx), %rdi
	leaq	(%r8,%r8), %rdx
	movq	%r15, -104(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	%rdx, -120(%rsp)
	leaq	(%rdi,%rax,2), %r11
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %r10
	leaq	(%r11,%r11), %r9
	movq	%r11, -24(%rsp)
	leaq	(%r10,%r10), %r14
	movq	%r14, %rax
	mulq	%rbp
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r8
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	leaq	(%rsi,%rsi), %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	movq	16(%rsp), %r13
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r9
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	movq	8(%rsp), %r11
	addq	%r8, %rax
	movq	%rax, %r14
	movq	-24(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, %r15
	movq	%r14, -88(%rsp)
	mulq	%rdi
	movq	%r15, -80(%rsp)
	movq	%rax, %r8
	movq	-104(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	-120(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%r8, %r14
	leaq	(%rdi,%rdi), %r8
	adcq	%rdx, %r9
	movq	%r8, %rax
	movq	%r9, %r15
	movq	%r14, -72(%rsp)
	mulq	%rbx
	movq	%r15, -64(%rsp)
	movq	%rax, %r8
	movq	-120(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	%rbp
	movq	(%rsp), %r9
	movq	-16(%rsp), %rbp
	addq	%rsi, %rax
	movq	%r14, %rsi
	movq	80(%rsp), %r14
	adcq	%rdi, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	movq	56(%rsp), %r15
	addq	%rsi, %rax
	movq	72(%rsp), %rsi
	adcq	%rdi, %rdx
	movq	%rax, -56(%rsp)
	andq	%rcx, %r12
	andq	%rcx, %r10
	shrdq	$51, %rdx, %rax
	movq	%rdx, -48(%rsp)
	leaq	0(%rbp,%r15), %r8
	addq	%r14, %r11
	leaq	(%rax,%rax,8), %rdx
	movq	-8(%rsp), %rbp
	leaq	(%rax,%rdx,2), %rdx
	movq	144(%rsp), %rax
	addq	%rdx, %r12
	leaq	(%r9,%rsi), %rdx
	movq	-40(%rsp), %r9
	movq	%r12, %rbx
	movq	%rdx, -120(%rsp)
	movq	-120(%rsp), %rdx
	andq	%rcx, %r12
	shrq	$51, %rbx
	addq	%r13, %r9
	movq	%r11, 48(%rax)
	movabsq	$4503599627370458, %r13
	addq	%rbx, %r10
	movq	64(%rsp), %rbx
	movq	%rdx, 40(%rax)
	movabsq	$4503599627370494, %rdx
	movq	%r9, 56(%rax)
	addq	%rbx, %rbp
	movq	%r8, 64(%rax)
	movq	%rbp, 72(%rax)
	movq	(%rsp), %rdi
	addq	%r13, %rdi
	subq	%rsi, %rdi
	movq	8(%rsp), %rsi
	movq	%rdi, 80(%rax)
	addq	%rdx, %rsi
	subq	%r14, %rsi
	movq	-40(%rsp), %r14
	movq	%rsi, -104(%rsp)
	leaq	(%r14,%rdx), %rsi
	movq	%rsi, %r14
	movq	16(%rsp), %rsi
	subq	%rsi, %r14
	movq	%r14, -24(%rsp)
	movq	-16(%rsp), %r14
	leaq	(%r14,%rdx), %rsi
	movq	%rsi, %r14
	subq	%r15, %r14
	movq	-8(%rsp), %r15
	movq	%r14, 104(%rax)
	leaq	(%r15,%rdx), %rsi
	subq	%rbx, %rsi
	movq	%rsi, %r15
	movq	-104(%rsp), %rsi
	movq	%r15, 112(%rax)
	movq	%rsi, 88(%rax)
	movq	-24(%rsp), %rsi
	movq	%rsi, 96(%rax)
	movq	-120(%rsp), %rsi
	shrq	$51, %rsi
	addq	%r11, %rsi
	movq	%rsi, %r11
	andq	%rcx, %rsi
	shrq	$51, %r11
	addq	%r9, %r11
	movq	%r11, %r9
	shrq	$51, %r9
	addq	%r8, %r9
	movq	%r9, %r8
	shrq	$51, %r8
	addq	%rbp, %r8
	movq	%r8, %rbp
	shrq	$51, %rbp
	leaq	0(%rbp,%rbp,8), %rbx
	leaq	0(%rbp,%rbx,2), %rbp
	movq	-120(%rsp), %rbx
	andq	%rcx, %rbx
	addq	%rbp, %rbx
	movq	%rbx, %rbp
	shrq	$51, %rbp
	addq	%rbp, %rsi
	addq	%r13, %r12
	andq	%rcx, %rbx
	andq	%rcx, %r11
	subq	%rbx, %r12
	movq	%r10, %rbx
	movq	%rsi, %rbp
	shrq	$51, %r10
	andq	%rcx, %rbx
	andq	%rcx, %rbp
	shrq	$51, %rsi
	andq	%rcx, %r9
	addq	%rdx, %rbx
	movq	%r12, (%rax)
	andq	%rcx, %r8
	subq	%rbp, %rbx
	movq	%rax, %rbp
	movq	%rbx, 8(%rax)
	movq	-88(%rsp), %rbx
	andq	%rcx, %rbx
	addq	%rdx, %rbx
	addq	%rbx, %r10
	movq	-72(%rsp), %rbx
	subq	%r11, %r10
	movq	-24(%rsp), %r11
	andq	%rcx, %rbx
	subq	%rsi, %r10
	movq	%rbx, %rsi
	movq	%r10, 16(%rax)
	movq	%rbp, %rbx
	addq	%rdx, %rsi
	subq	%r9, %rsi
	movq	-104(%rsp), %r9
	movq	%rsi, 24(%rax)
	movq	-56(%rsp), %rax
	andq	%rcx, %rax
	addq	%rdx, %rax
	subq	%r8, %rax
	movq	%rax, 32(%rbp)
	movq	%rdi, %rbp
	shrq	$51, %rbp
	movq	%rbp, %r8
	addq	%r9, %r8
	movq	%r8, %r9
	shrq	$51, %r9
	addq	%r11, %r9
	movq	%r9, %r11
	shrq	$51, %r11
	movq	%r11, %rsi
	addq	%r14, %rsi
	movq	%rsi, %r14
	shrq	$51, %r14
	movq	%r14, %rax
	addq	%r15, %rax
	movq	136(%rsp), %r15
	movq	%rax, %r14
	shrq	$51, %r14
	andq	%rcx, %rdi
	andq	%rcx, %r8
	andq	%rcx, %r9
	leaq	(%r14,%r14,8), %r11
	andq	%rcx, %rsi
	andq	%rcx, %rax
	leaq	(%r14,%r11,2), %r10
	addq	%r10, %rdi
	movq	128(%rsp), %r10
	movq	%rdi, %r11
	andq	%rcx, %rdi
	andq	%rcx, %r10
	shrq	$51, %r11
	addq	%r13, %r10
	addq	%r11, %r8
	subq	%rdi, %r10
	movq	%r15, %rdi
	shrq	$51, %r15
	movq	%r10, 120(%rbx)
	andq	%rcx, %rdi
	movq	%r8, %r10
	shrq	$51, %r8
	addq	%rdx, %rdi
	andq	%rcx, %r10
	subq	%r10, %rdi
	movq	%rdi, 128(%rbx)
	movq	120(%rsp), %rdi
	andq	%rcx, %rdi
	addq	%rdx, %rdi
	subq	%r9, %rdi
	addq	%r15, %rdi
	subq	%r8, %rdi
	movq	%rdi, 136(%rbx)
	movq	88(%rsp), %rdi
	andq	%rcx, %rdi
	addq	%rdx, %rdi
	subq	%rsi, %rdi
	movq	104(%rsp), %rsi
	movq	%rdi, 144(%rbx)
	andq	%rcx, %rsi
	addq	%rsi, %rdx
	subq	%rax, %rdx
	movq	%rdx, 152(%rbx)
	addq	$160, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1408:

	.size	ge_p2_dbl, .-ge_p2_dbl
# WAS .section	.text.ec_GFp_nistp256_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_cmp_x_coordinate, @function
.Lec_GFp_nistp256_cmp_x_coordinate_local_target:
ec_GFp_nistp256_cmp_x_coordinate:
.LFB1989:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$328, %rsp
	.cfi_def_cfa_offset 384
	movq	%rdi, 40(%rsp)
	movq	%rdx, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	movl	328(%rdi), %eax
	movl	%eax, 12(%rsp)
	testl	%eax, %eax
	jle	.L2353
	movq	%rsi, %rbx
	cmpl	$1, %eax
	je	.L2364
	shrl	%eax
	movdqu	144(%rsi), %xmm0
	cmpl	$1, %eax
	je	.L2355
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L2355
	movdqu	176(%rsi), %xmm6
	por	%xmm6, %xmm0
	cmpl	$3, %eax
	je	.L2355
	movdqu	192(%rsi), %xmm7
	por	%xmm7, %xmm0
	cmpl	$4, %eax
	je	.L2355
	movdqu	208(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$5, %eax
	je	.L2355
	xorl	%edx, %edx
.L2356:

	movq	%rdx, %rcx
	addq	$1, %rdx
	salq	$4, %rcx
	movdqu	224(%rbx,%rcx), %xmm1
	leal	5(%rdx), %ecx
	por	%xmm1, %xmm0
	cmpl	%eax, %ecx
	jb	.L2356
	.p2align 4,,10
	.p2align 3
.L2355:

	movdqa	%xmm0, %xmm1
	movl	12(%rsp), %esi
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %sil
	je	.L2357
	andl	$-2, %esi
	movslq	%esi, %rdx
.L2354:

	orq	144(%rbx,%rdx,8), %rax
.L2357:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	js	.L2353
	leaq	144(%rsp), %r15
	movdqu	160(%rbx), %xmm4
	movdqu	144(%rbx), %xmm3
	xorl	%r13d, %r13d
	movq	%r15, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	movq	%r15, 128(%rsp)
	movaps	%xmm4, 160(%rsp)
	movaps	%xmm3, 144(%rsp)
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	32(%rsp), %rsi
	leaq	176(%rsp), %rax
	movq	%r15, %rdx
	movq	%rax, %rdi
	movq	%rax, 136(%rsp)
	movdqu	(%rsi), %xmm5
	movdqu	16(%rsi), %xmm7
	movq	%rax, %rsi
	movaps	%xmm5, 176(%rsp)
	movaps	%xmm7, 16(%rsp)
	movaps	%xmm7, 192(%rsp)
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movdqu	16(%rbx), %xmm5
	movq	(%rbx), %rdi
	movq	%r13, %r10
	movabsq	$-4294967295, %rsi
	movdqu	(%rbx), %xmm4
	movl	$4294967295, %ebx
	movaps	%xmm5, 224(%rsp)
	movq	224(%rsp), %rax
	movaps	%xmm4, 208(%rsp)
	movq	%rax, 120(%rsp)
	movq	%rdi, %rax
	mulq	%rsi
	movq	%rax, 48(%rsp)
	movq	%rbx, %rax
	xorl	%ebx, %ebx
	movq	%rdx, 56(%rsp)
	mulq	%rdi
	movq	%rax, 16(%rsp)
	movq	$-1, %rax
	movq	16(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%rdi
	movq	%rdx, %r9
	addq	%rcx, %r9
	movq	%rax, %rcx
	adcq	%rbx, %r10
	xorl	%ebx, %ebx
	addq	%rdi, %rcx
	adcq	$0, %rbx
	xorl	%ebp, %ebp
	movq	%r10, 72(%rsp)
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%r9, %rcx
	adcq	%rbp, %rbx
	movq	%rcx, %r10
	xorl	%r11d, %r11d
	movq	%rcx, 80(%rsp)
	addq	216(%rsp), %r10
	movq	%rbx, 88(%rsp)
	adcq	$0, %r11
	xorl	%r13d, %r13d
	movq	%r10, %rax
	movq	%r13, %rbx
	mulq	%rsi
	movq	%r13, %rcx
	imulq	%rsi, %rbx
	shldq	$32, %r10, %rcx
	movq	%rax, %r14
	leaq	(%rbx,%rdx), %rbx
	movq	%r10, %rdx
	salq	$32, %rdx
	movq	%rbx, 112(%rsp)
	movq	%rdx, %rax
	movq	%rcx, %rdx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	$-1, %rax
	subq	%r10, %rcx
	sbbq	%r13, %rbx
	mulq	%r10
	movq	%rcx, 96(%rsp)
	xorl	%r9d, %r9d
	movq	%rbx, 104(%rsp)
	movq	%rdx, %rbp
	movq	%rcx, %rdx
	movq	%rax, %rdi
	xorl	%ecx, %ecx
	subq	%r13, %rbp
	movq	24(%rsp), %rax
	movq	%rbp, %r8
	addq	%rdx, %r8
	movq	72(%rsp), %rdx
	adcq	%rcx, %r9
	xorl	%ebp, %ebp
	movq	%rdi, %rcx
	movq	104(%rsp), %rdi
	addq	%rax, %rdx
	movq	88(%rsp), %rax
	movq	%rbp, %rbx
	movq	56(%rsp), %rbp
	addq	%rdx, %rax
	addq	%r11, %rax
	addq	%r10, %rcx
	adcq	%r13, %rbx
	xorl	%r11d, %r11d
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%r8, %rcx
	movq	%r14, %r8
	adcq	%r11, %rbx
	addq	%rax, %rcx
	adcq	$0, %rbx
	addq	%r9, %rdi
	xorl	%edx, %edx
	movq	%rbx, %rax
	addq	%rdi, %rax
	movq	48(%rsp), %rdi
	adcq	$0, %rdx
	xorl	%r9d, %r9d
	addq	%rdi, %rax
	movq	%rbp, %rdi
	adcq	%r9, %rdx
	xorl	%r15d, %r15d
	xorl	%ebp, %ebp
	addq	%rdi, %r8
	movq	%r15, %r9
	movq	%rdx, %rdi
	adcq	%rbp, %r9
	xorl	%r15d, %r15d
	addq	%r8, %rdi
	movq	%r15, %rbp
	adcq	%r9, %rbp
	xorl	%ebx, %ebx
	addq	120(%rsp), %rcx
	adcq	$0, %rbx
	xorl	%edx, %edx
	xorl	%r13d, %r13d
	movq	%rbp, 24(%rsp)
	movq	%rbx, %r12
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	xorl	%edx, %edx
	xorl	%r9d, %r9d
	movq	%r13, %r8
	addq	%rdi, %r8
	adcq	%rdx, %r9
	mulq	%rsi
	xorl	%ebx, %ebx
	movq	%r8, 48(%rsp)
	movq	%rbx, %rdi
	movq	%r9, 56(%rsp)
	imulq	%rsi, %rdi
	movq	%rax, %r10
	leaq	(%rdi,%rdx), %rax
	movq	%rbx, %rdx
	movq	%rax, 64(%rsp)
	movq	%rcx, %rax
	shldq	$32, %rcx, %rdx
	salq	$32, %rax
	subq	%rcx, %rax
	sbbq	%rbx, %rdx
	movq	%rax, %rdi
	movq	$-1, %rax
	xorl	%r15d, %r15d
	movq	%rdx, %rbp
	mulq	%rcx
	xorl	%r9d, %r9d
	subq	%rbx, %rdx
	movq	%rdx, %r8
	addq	%rdi, %r8
	movq	%rbp, %rdi
	adcq	%r15, %r9
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	movq	%r10, %r8
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	xorl	%r13d, %r13d
	addq	%r12, %rcx
	movq	48(%rsp), %r12
	adcq	%r13, %rbx
	addq	%r9, %rdi
	movq	112(%rsp), %r15
	xorl	%edx, %edx
	movq	%rbx, %rax
	movq	56(%rsp), %r13
	addq	%rdi, %rax
	movq	24(%rsp), %rdi
	adcq	$0, %rdx
	xorl	%r9d, %r9d
	addq	%r12, %rax
	adcq	%r9, %rdx
	addq	%r15, %rdi
	xorl	%r11d, %r11d
	addq	%r13, %rdi
	movq	%r11, %r9
	movq	%rdx, %r14
	addq	%rdi, %r8
	adcq	$0, %r9
	xorl	%r15d, %r15d
	addq	%r8, %r14
	adcq	%r9, %r15
	xorl	%ebx, %ebx
	addq	232(%rsp), %rcx
	adcq	$0, %rbx
	xorl	%edx, %edx
	xorl	%r11d, %r11d
	movq	%rcx, %r12
	movq	%rbx, %r10
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	xorl	%edx, %edx
	xorl	%r9d, %r9d
	movq	%r11, %r8
	addq	%r14, %r8
	movl	$4294967295, %r14d
	adcq	%rdx, %r9
	xorl	%ebx, %ebx
	salq	$32, %r12
	movq	%r8, 16(%rsp)
	movq	%rbx, %rbp
	mulq	%rcx
	movq	%rbx, %r13
	movq	%r9, 24(%rsp)
	imulq	%rsi, %rbp
	shldq	$32, %rcx, %r13
	movq	%rax, %r8
	movq	$-1, %rax
	addq	%rdx, %rbp
	subq	%rcx, %r12
	sbbq	%rbx, %r13
	mulq	%rcx
	xorl	%edi, %edi
	movq	%r12, %rsi
	movq	%rdi, 56(%rsp)
	xorl	%edi, %edi
	subq	%rbx, %rdx
	movq	%rdx, 48(%rsp)
	addq	48(%rsp), %rsi
	adcq	56(%rsp), %rdi
	xorl	%edx, %edx
	addq	%rcx, %rax
	movq	%rsi, %rcx
	adcq	%rbx, %rdx
	xorl	%ebx, %ebx
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r13, %rax
	adcq	%rdx, %rbx
	xorl	%r11d, %r11d
	addq	%r10, %rcx
	adcq	%r11, %rbx
	addq	%rdi, %rax
	xorl	%edi, %edi
	movq	%rcx, %r11
	movq	%rbx, %rsi
	movq	%rbx, %r12
	movq	64(%rsp), %rbx
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	movq	%r11, 16(%rsp)
	adcq	$0, %rdi
	xorl	%edx, %edx
	leaq	(%rbx,%r15), %rcx
	movq	$-1, %r15
	addq	%rax, %rsi
	movq	24(%rsp), %rax
	movq	%r12, 24(%rsp)
	movq	%r11, %r12
	adcq	%rdx, %rdi
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r8, %rax
	movq	%rsi, %r8
	addq	%rcx, %rax
	adcq	$0, %rdx
	xorl	%ebx, %ebx
	addq	%rdi, %rax
	adcq	%rbx, %rdx
	xorl	%r13d, %r13d
	movq	$-1, %rbx
	movq	%rax, 48(%rsp)
	addq	%rdx, %rbp
	addq	$1, %r12
	movq	%rdx, 56(%rsp)
	adcq	$-1, %r13
	xorl	%r9d, %r9d
	movq	%r13, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %r8
	movabsq	$-4294967295, %rcx
	sbbq	$0, %r9
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rcx, %r9
	movq	%rax, %rcx
	movq	48(%rsp), %rax
	adcq	%rbx, %r10
	xorl	%edx, %edx
	movq	%r9, 64(%rsp)
	movq	64(%rsp), %r8
	movq	%rdx, %rbx
	movq	%r10, %rdx
	movq	%r10, 72(%rsp)
	movq	%rbp, %r10
	negl	%edx
	movq	16(%rsp), %r9
	movzbl	%dl, %edx
	subq	%rdx, %rcx
	sbbq	$0, %rbx
	xorl	%r11d, %r11d
	movq	%rbx, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r10
	sbbq	$0, %r11
	addq	%r14, %r10
	adcq	%r15, %r11
	movq	%r11, %rdx
	movq	%r11, %r15
	notq	%rdx
	andq	%r15, %rax
	andq	%rdx, %rcx
	andq	%rdx, %r12
	andq	%rdx, %r8
	orq	%rcx, %rax
	andq	%r10, %rdx
	andq	%r15, %rbp
	andq	%r15, %r9
	orq	%rdx, %rbp
	andq	%r15, %rsi
	movq	%rax, 224(%rsp)
	orq	%r12, %r9
	movq	176(%rsp), %rax
	movq	184(%rsp), %rdx
	orq	%r8, %rsi
	movq	%r9, 208(%rsp)
	movq	%rsi, 216(%rsp)
	xorq	%r9, %rax
	xorq	%rsi, %rdx
	movq	%rbp, 232(%rsp)
	orq	%rdx, %rax
	je	.L2389
.L2359:

	movq	40(%rsp), %rbx
	movslq	12(%rsp), %rcx
	xorl	%eax, %eax
	leaq	240(%rsp), %rdi
	movq	32(%rsp), %r11
	movq	256(%rbx), %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r11,%rax,8),%rsi	
	adcq	(%rdx,%rax,8),%rsi	
	movq	%rsi,(%rdi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	je	.L2390
.L2353:

	xorl	%eax, %eax
.L2352:

	movq	312(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L2391
	addq	$328, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2390:

	.cfi_restore_state
	movslq	328(%rbx), %rsi
	movq	320(%rbx), %rdx
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	testl	%eax, %eax
	jns	.L2353
	movq	136(%rsp), %rsi
	movq	128(%rsp), %rdx
	movdqa	240(%rsp), %xmm2
	movdqa	256(%rsp), %xmm7
	movq	%rsi, %rdi
	movaps	%xmm2, 176(%rsp)
	movaps	%xmm7, 192(%rsp)
# WAS call	fiat_p256_mul
	call	.Lfiat_p256_mul_local_target
	movq	176(%rsp), %rax
	movq	184(%rsp), %rdx
	xorq	208(%rsp), %rax
	xorq	216(%rsp), %rdx
	orq	%rdx, %rax
	je	.L2392
.L2361:

	movl	$1, %eax
.L2362:

	xorl	$1, %eax
	jmp	.L2352
	.p2align 4,,10
	.p2align 3
.L2389:

	movq	200(%rsp), %rdx
	movq	192(%rsp), %rax
	xorq	224(%rsp), %rax
	xorq	%rbp, %rdx
	orq	%rdx, %rax
	movl	$1, %eax
	jne	.L2359
	jmp	.L2352
.L2364:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L2354
.L2392:

	movq	192(%rsp), %rax
	movq	200(%rsp), %rdx
	xorq	224(%rsp), %rax
	xorq	232(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L2361
	xorl	%eax, %eax
	jmp	.L2362
.L2391:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1989:

	.size	ec_GFp_nistp256_cmp_x_coordinate, .-ec_GFp_nistp256_cmp_x_coordinate
# WAS .section	.text.ec_GFp_nistp224_felem_sqr,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_felem_sqr, @function
.Lec_GFp_nistp224_felem_sqr_local_target:
ec_GFp_nistp224_felem_sqr:
.LFB1945:

	.cfi_startproc
	endbr64
	movabsq	$72057594037927935, %r8
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movabsq	$9223372036854775680, %r11
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	(%rdx), %rcx
	movq	%rsi, 56(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movq	%rcx, %rax
	andq	%r8, %rax
	movq	%rax, %rsi
	movq	8(%rdx), %rax
	movq	%rax, %rdi
	shldq	$8, %rcx, %rdi
	movq	16(%rdx), %rcx
	andq	%r8, %rdi
	movq	%rcx, %rbp
	shldq	$16, %rax, %rbp
	movq	24(%rdx), %rax
	andq	%r8, %rbp
	shrdq	$40, %rax, %rcx
	leaq	(%rbp,%rbp), %rbx
	andq	%r8, %rcx
	movq	%rbx, %rax
	movq	%rcx, %r9
	leaq	(%rdi,%rdi), %rcx
	mulq	%r9
	movq	%rcx, 48(%rsp)
	movq	%rax, (%rsp)
	movq	%r9, %rax
	movq	%rdx, 8(%rsp)
	mulq	%r9
	movq	%rax, %r14
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r15
	movq	%rdx, %r13
	shrdq	$16, %rdx, %r12
	mulq	%r9
	movabsq	$72056494526300160, %rcx
	shrq	$16, %r13
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%rbx, %rbp
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	xorl	%r10d, %r10d
	movq	%r12, 16(%rsp)
	movq	%r13, 24(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%r10, %rax
	movq	(%rsp), %r10
	adcq	%r11, %rdx
	movq	8(%rsp), %r11
	subq	%r14, %rax
	sbbq	%r15, %rdx
	xorl	%ebx, %ebx
	shldq	$40, %r10, %r11
	salq	$40, %r10
	andq	%rcx, %r10
	andq	%rbx, %r11
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$16, %r13, %r10
	movq	%r13, %r11
	shrq	$16, %r11
	addq	%r10, %rax
	leaq	(%rsi,%rsi), %r10
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%r9
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rdi
	movabsq	$9223372036854775679, %rdi
	addq	%r10, %rax
	adcq	%r11, %rdx
	shldq	$40, %r14, %r15
	salq	$40, %r14
	andq	%rbx, %r15
	andq	%rcx, %r14
	addq	%rax, %r14
	movq	(%rsp), %rax
	adcq	%rdx, %r15
	movq	8(%rsp), %rdx
	shrdq	$16, %rdx, %rax
	shrq	$16, %rdx
	addq	%r14, %rax
	movq	%r12, %r14
	movl	$32768, %r12d
	adcq	%r15, %rdx
	movq	%r13, %r15
	shrdq	$56, %r13, %r14
	movabsq	$-9223372036854775808, %r13
	shrq	$56, %r15
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	%rsi
	movq	%r14, %r9
	movq	%r15, %r10
	shrdq	$56, %r15, %r9
	shrq	$56, %r10
	addq	%r12, %rax
	movq	%r10, %r11
	movq	%r9, %r10
	adcq	%r13, %rdx
	subq	16(%rsp), %rax
	sbbq	24(%rsp), %rdx
	movq	%rax, %r12
	movq	48(%rsp), %rax
	movq	%rdx, %r13
	subq	%r9, %r12
	sbbq	%r11, %r13
	mulq	%rsi
	movabsq	$-36028797018963968, %rsi
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	movq	24(%rsp), %rdx
	subq	(%rsp), %rsi
	sbbq	8(%rsp), %rdi
	shldq	$40, %rax, %rdx
	salq	$40, %rax
	andq	%rcx, %rax
	andq	%rbx, %rdx
	addq	%rsi, %rax
	movq	40(%rsp), %rsi
	adcq	%rdi, %rdx
	salq	$40, %r10
	movq	56(%rsp), %rdi
	andq	%rcx, %r10
	shldq	$40, %r9, %r11
	movq	%r12, %rcx
	andq	%rbx, %r11
	addq	%r10, %rax
	movq	%r13, %rbx
	movq	%r15, %r10
	adcq	%r11, %rdx
	shrdq	$56, %r13, %rcx
	shrq	$56, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	andq	%r8, %r12
	movq	32(%rsp), %rbx
	xorl	%r13d, %r13d
	movq	%r12, 64(%rsp)
	shrq	$8, %r10
	andq	%r13, %rsi
	xorl	%r11d, %r11d
	movabsq	$72057594037927935, %r12
	movq	%rax, %rcx
	andq	%r12, %rbx
	addq	%rbx, %r10
	movq	%rdx, %rbx
	adcq	%rsi, %r11
	shrdq	$56, %rdx, %rcx
	leaq	64(%rsp), %rsi
	shrq	$56, %rbx
	addq	%r10, %rcx
	adcq	%r11, %rbx
	andq	%r8, %rax
	andq	%r12, %r14
	andq	%rcx, %r8
	shrdq	$56, %rbx, %rcx
	movq	%rax, 72(%rsp)
	addq	%rcx, %r14
	movq	%r8, 80(%rsp)
	movq	%r14, 88(%rsp)
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2396
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2396:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1945:

	.size	ec_GFp_nistp224_felem_sqr, .-ec_GFp_nistp224_felem_sqr
# WAS .section	.rodata.ec_GFp_nistp384_point_get_affine_coordinates.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC107:

	.string	"/aws-lc/crypto/fipsmodule/ec/p384.c"
# WAS .section	.text.ec_GFp_nistp384_point_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_point_get_affine_coordinates, @function
.Lec_GFp_nistp384_point_get_affine_coordinates_local_target:
ec_GFp_nistp384_point_get_affine_coordinates:
.LFB2026:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$600, %rsp
	.cfi_def_cfa_offset 656
	movq	%rdx, 32(%rsp)
	movl	328(%rdi), %edx
	movq	%rcx, 40(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 584(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L2500
	cmpl	$1, %edx
	je	.L2501
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L2400
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L2400
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L2400
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L2400
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L2400
	xorl	%ecx, %ecx
.L2401:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%r14,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L2401
.L2400:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L2402
	andl	$-2, %edx
.L2399:

	movslq	%edx, %rdx
	orq	144(%r14,%rdx,8), %rax
.L2402:

	leaq	-1(%rax), %rdx
	notq	%rax
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
.L2398:

	testq	%rax, %rax
	jne	.L2536
	leaq	48(%rsp), %rdi
	leaq	144(%r14), %rsi
	movq	%rdi, 16(%rsp)
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	16(%rsp), %rsi
	movq	%rax, %r15
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	leaq	144(%rsp), %rax
	movq	%rax, 24(%rsp)
	movq	%rax, %rdi
	je	.L2537
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2406:

	movl	8(%r15), %eax
	movq	16(%rsp), %rdx
	notl	%eax
	testl	$524544, %eax
	je	.L2538
	movq	24(%rsp), %rdi
	movq	%rdi, %rsi
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2408:

	movl	8(%r15), %eax
	leaq	192(%rsp), %r12
	movq	24(%rsp), %rsi
	movq	%r12, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2539
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2410:

	movl	8(%r15), %eax
	movq	16(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2540
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2412:

	movl	8(%r15), %eax
	leaq	240(%rsp), %r13
	movq	%r12, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2541
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2414:

	movl	8(%r15), %eax
	movq	%r13, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2415
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2416:

	movl	8(%r15), %eax
	movq	%r13, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2542
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2418:

	movl	8(%r15), %eax
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2543
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2420:

	movl	8(%r15), %eax
	leaq	288(%rsp), %rbp
	movq	%r13, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2544
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2422:

	movl	$5, %ebx
	jmp	.L2425
	.p2align 4,,10
	.p2align 3
.L2423:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebx
	je	.L2545
.L2425:

	movl	8(%r15), %eax
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2423
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebx
	jne	.L2425
.L2545:

	movl	8(%r15), %eax
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2546
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2427:

	movl	8(%r15), %eax
	movq	%rbp, %rsi
	notl	%eax
	testl	$524544, %eax
	leaq	336(%rsp), %rax
	movq	%rax, 8(%rsp)
	movq	%rax, %rdi
	je	.L2547
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	movl	8(%r15), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L2430
.L2578:

	movq	8(%rsp), %rdi
	movq	%rdi, %rsi
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2431:

	movl	8(%r15), %eax
	movq	8(%rsp), %rdi
	notl	%eax
	movq	%rdi, %rsi
	testl	$524544, %eax
	je	.L2548
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2433:

	movl	8(%r15), %eax
	movq	%r12, %rdx
	notl	%eax
	testl	$524544, %eax
	je	.L2549
	movq	8(%rsp), %rsi
	movq	%rsi, %rdi
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2435:

	movl	8(%r15), %eax
	leaq	384(%rsp), %r13
	movq	8(%rsp), %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2550
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2437:

	movl	$14, %ebx
	jmp	.L2440
	.p2align 4,,10
	.p2align 3
.L2438:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebx
	je	.L2551
.L2440:

	movl	8(%r15), %eax
	movq	%r13, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2438
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebx
	jne	.L2440
.L2551:

	movl	8(%r15), %eax
	movq	8(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2552
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2442:

	movl	8(%r15), %eax
	leaq	432(%rsp), %rbp
	movq	%r13, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2553
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2444:

	movl	$29, %ebx
	jmp	.L2447
	.p2align 4,,10
	.p2align 3
.L2445:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebx
	je	.L2554
.L2447:

	movl	8(%r15), %eax
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2445
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebx
	jne	.L2447
.L2554:

	movl	8(%r15), %eax
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2555
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2449:

	movl	8(%r15), %eax
	leaq	480(%rsp), %r12
	movq	%rbp, %rsi
	movq	%r12, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2556
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2451:

	movl	$59, %ebx
	jmp	.L2454
	.p2align 4,,10
	.p2align 3
.L2452:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebx
	je	.L2557
.L2454:

	movl	8(%r15), %eax
	movq	%r12, %rsi
	movq	%r12, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2452
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebx
	jne	.L2454
.L2557:

	movl	8(%r15), %eax
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2558
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2456:

	movl	8(%r15), %eax
	leaq	528(%rsp), %rbx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2559
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2458:

	movl	$119, %ebp
	jmp	.L2461
	.p2align 4,,10
	.p2align 3
.L2459:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebp
	je	.L2560
.L2461:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2459
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebp
	jne	.L2461
.L2560:

	movl	8(%r15), %eax
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2561
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2463:

	movl	$15, %ebp
	jmp	.L2466
	.p2align 4,,10
	.p2align 3
.L2464:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebp
	je	.L2562
.L2466:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2464
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebp
	jne	.L2466
.L2562:

	movl	8(%r15), %eax
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2563
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2468:

	movl	$31, %ebp
	jmp	.L2471
	.p2align 4,,10
	.p2align 3
.L2469:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebp
	je	.L2564
.L2471:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2469
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebp
	jne	.L2471
.L2564:

	movl	8(%r15), %eax
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2565
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2473:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2566
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2475:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2567
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2477:

	movl	8(%r15), %eax
	movq	24(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2568
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2479:

	movl	$94, %ebp
	jmp	.L2482
	.p2align 4,,10
	.p2align 3
.L2480:

# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
	subl	$1, %ebp
	je	.L2569
.L2482:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	jne	.L2480
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	subl	$1, %ebp
	jne	.L2482
.L2569:

	movl	8(%r15), %eax
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2570
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2484:

	movl	8(%r15), %eax
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2571
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2486:

	movl	8(%r15), %eax
	leaq	96(%rsp), %rbp
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2572
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2488:

	cmpq	$0, 32(%rsp)
	je	.L2489
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movl	8(%r15), %eax
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2573
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2491:

	movq	32(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
.L2489:

	cmpq	$0, 40(%rsp)
	je	.L2492
	leaq	72(%r14), %rsi
	movq	%rbx, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movl	8(%r15), %eax
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2574
# WAS call	bignum_montsqr_p384_alt@PLT
	call	.Lbignum_montsqr_p384_alt_local_target
.L2494:

	movl	8(%r15), %eax
	movq	16(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2575
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2496:

	movl	8(%r15), %eax
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L2576
# WAS call	bignum_montmul_p384_alt@PLT
	call	.Lbignum_montmul_p384_alt_local_target
.L2498:

	movq	40(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
.L2492:

	movl	$1, %eax
.L2397:

	movq	584(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L2577
	addq	$600, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2536:

	.cfi_restore_state
	movl	$310, %r8d
	leaq	.LC107(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L2397
.L2537:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2406
.L2544:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2422
.L2543:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2420
.L2541:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2414
.L2540:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2412
.L2539:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2410
.L2538:

	movq	24(%rsp), %rsi
	movq	%rsi, %rdi
# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2408
.L2572:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2488
.L2571:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2486
.L2570:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2484
.L2568:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2479
.L2567:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2477
.L2566:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2475
.L2565:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2473
.L2563:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2468
.L2561:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2463
.L2559:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2458
.L2558:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2456
.L2556:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2451
.L2555:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2449
.L2553:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2444
.L2552:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2442
.L2550:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2437
.L2549:

	movq	8(%rsp), %rdi
	movq	%rdi, %rsi
# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2435
.L2547:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	movl	8(%r15), %eax
	notl	%eax
	testl	$524544, %eax
	jne	.L2578
.L2430:

	movq	8(%rsp), %rsi
	movq	%rsi, %rdi
# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2431
.L2546:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2427
.L2548:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2433
.L2500:

	movl	$1, %eax
	jmp	.L2398
.L2542:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2418
.L2415:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2416
.L2575:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2496
.L2574:

# WAS call	bignum_montsqr_p384@PLT
	call	.Lbignum_montsqr_p384_local_target
	jmp	.L2494
.L2573:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2491
.L2501:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L2399
.L2576:

# WAS call	bignum_montmul_p384@PLT
	call	.Lbignum_montmul_p384_local_target
	jmp	.L2498
.L2577:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2026:

	.size	ec_GFp_nistp384_point_get_affine_coordinates, .-ec_GFp_nistp384_point_get_affine_coordinates
# WAS .section	.text.table_select,"ax",@progbits
.text
	.p2align 4
	.type	table_select, @function
.Ltable_select_local_target:
table_select:
.LFB1418:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pxor	%xmm0, %xmm0
	movslq	%esi, %rsi
	movq	%rdi, %rax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	xorl	%ebx, %ebx
	subq	$136, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rcx
	movq	%rcx, 120(%rsp)
	xorl	%ecx, %ecx
	movsbl	%dl, %ecx
	movups	%xmm0, 40(%rdi)
	movl	%ecx, %r8d
	sarl	$31, %ecx
	movups	%xmm0, 8(%rdi)
	andl	%edx, %ecx
	movups	%xmm0, 24(%rdi)
	shrl	$31, %r8d
	addl	%ecx, %ecx
	movups	%xmm0, 56(%rdi)
	subl	%ecx, %edx
	movups	%xmm0, 80(%rdi)
	movq	%rsi, %rcx
	movups	%xmm0, 96(%rdi)
	salq	$4, %rcx
	movdqa	.LC108(%rip), %xmm0
	movq	$0, 72(%rdi)
	subq	%rsi, %rcx
# WAS leaq	k25519Precomp(%rip), %rsi
	leaq	.Lk25519Precomp_local_target(%rip), %rsi
	movq	$0, 112(%rdi)
	salq	$6, %rcx
	movq	$1, (%rdi)
	leaq	(%rcx,%rsi), %r9
	leaq	40(%rsi,%rcx), %r10
	movq	$1, 40(%rdi)
	movl	%edx, %edi
	movdqa	(%r9), %xmm1
	leaq	120(%rsi,%rcx), %r12
	xorl	$1, %edi
	movdqu	40(%rax), %xmm7
	movzbl	%dil, %edi
	pxor	%xmm0, %xmm1
	subl	$1, %edi
	shrl	$31, %edi
	negq	%rdi
	movq	%rdi, %xmm4
	punpcklqdq	%xmm4, %xmm4
	pand	%xmm4, %xmm1
	pxor	%xmm0, %xmm1
	movups	%xmm1, (%rax)
	movdqa	16(%r9), %xmm2
	pand	%xmm4, %xmm2
	movups	%xmm2, 16(%rax)
	movq	32(%r9), %r11
	andq	%rdi, %r11
	movq	%r11, 32(%rax)
	movdqu	(%r10), %xmm3
	pxor	%xmm7, %xmm3
	pand	%xmm4, %xmm3
	pxor	%xmm7, %xmm3
	movups	%xmm3, 40(%rax)
	movdqu	16(%r10), %xmm0
	movdqu	56(%rax), %xmm7
	movdqu	80(%rax), %xmm8
	movdqu	80(%rax), %xmm6
	pxor	%xmm7, %xmm0
	movdqu	96(%rax), %xmm5
	pand	%xmm4, %xmm0
	pxor	%xmm7, %xmm0
	movdqu	96(%rax), %xmm7
	movups	%xmm0, 56(%rax)
	movq	72(%r9), %r10
	xorq	%rbx, %r10
	andq	%rdi, %r10
	xorq	%rbx, %r10
	leaq	80(%rsi,%rcx), %rbx
	movq	%r10, 72(%rax)
	pxor	(%rbx), %xmm8
	pand	%xmm4, %xmm8
	pxor	%xmm6, %xmm8
	movups	%xmm8, 80(%rax)
	pxor	16(%rbx), %xmm5
	xorl	%ebx, %ebx
	pand	%xmm4, %xmm5
	pxor	%xmm7, %xmm5
	movups	%xmm5, 96(%rax)
	movq	112(%r9), %rbp
	movl	%edx, %r9d
	xorl	$2, %r9d
	xorq	%rbx, %rbp
	movzbl	%r9b, %r9d
	andq	%rbp, %rdi
	subl	$1, %r9d
	xorq	%rbx, %rdi
	shrl	$31, %r9d
	movq	%rdi, 112(%rax)
	negq	%r9
	movdqu	(%r12), %xmm4
	movq	%r9, %xmm6
	punpcklqdq	%xmm6, %xmm6
	pxor	%xmm1, %xmm4
	pand	%xmm6, %xmm4
	pxor	%xmm1, %xmm4
	movups	%xmm4, (%rax)
	movdqu	16(%r12), %xmm1
	pxor	%xmm2, %xmm1
	pand	%xmm6, %xmm1
	pxor	%xmm2, %xmm1
	movups	%xmm1, 16(%rax)
	movq	32(%r12), %rbx
	xorq	%r11, %rbx
	andq	%r9, %rbx
	xorq	%r11, %rbx
	leaq	160(%rsi,%rcx), %r11
	movq	%rbx, 32(%rax)
	movdqa	(%r11), %xmm2
	pxor	%xmm3, %xmm2
	pand	%xmm6, %xmm2
	pxor	%xmm3, %xmm2
	movups	%xmm2, 40(%rax)
	movdqa	16(%r11), %xmm7
	pxor	%xmm0, %xmm7
	pand	%xmm6, %xmm7
	pxor	%xmm0, %xmm7
	movups	%xmm7, 56(%rax)
	movq	72(%r12), %rbp
	xorq	%r10, %rbp
	andq	%r9, %rbp
	xorq	%r10, %rbp
	leaq	200(%rsi,%rcx), %r10
	movq	%rbp, 72(%rax)
	movdqu	(%r10), %xmm3
	pxor	%xmm8, %xmm3
	pand	%xmm6, %xmm3
	pxor	%xmm8, %xmm3
	movups	%xmm3, 80(%rax)
	movdqu	16(%r10), %xmm0
	pxor	%xmm5, %xmm0
	pand	%xmm6, %xmm0
	pxor	%xmm5, %xmm0
	movups	%xmm0, 96(%rax)
	movq	112(%r12), %r10
	leaq	480(%rsi,%rcx), %r12
	xorq	%rdi, %r10
	andq	%r10, %r9
	movq	%r9, %r11
	movl	%edx, %r9d
	xorl	$3, %r9d
	xorq	%rdi, %r11
	leaq	240(%rsi,%rcx), %rdi
	movzbl	%r9b, %r9d
	movq	%r11, 112(%rax)
	movdqa	(%rdi), %xmm8
	subl	$1, %r9d
	shrl	$31, %r9d
	pxor	%xmm4, %xmm8
	negq	%r9
	movq	%r9, %xmm10
	punpcklqdq	%xmm10, %xmm10
	pand	%xmm10, %xmm8
	pxor	%xmm4, %xmm8
	movups	%xmm8, (%rax)
	movdqa	16(%rdi), %xmm6
	pxor	%xmm1, %xmm6
	pand	%xmm10, %xmm6
	pxor	%xmm1, %xmm6
	movups	%xmm6, 16(%rax)
	movq	32(%rdi), %r10
	xorq	%rbx, %r10
	andq	%r9, %r10
	xorq	%rbx, %r10
	leaq	280(%rsi,%rcx), %rbx
	movq	%r10, 32(%rax)
	movdqu	(%rbx), %xmm5
	pxor	%xmm2, %xmm5
	pand	%xmm10, %xmm5
	pxor	%xmm2, %xmm5
	movups	%xmm5, 40(%rax)
	movdqu	16(%rbx), %xmm2
	pxor	%xmm7, %xmm2
	pand	%xmm10, %xmm2
	pxor	%xmm7, %xmm2
	movups	%xmm2, 56(%rax)
	movq	72(%rdi), %rbx
	xorq	%rbp, %rbx
	andq	%r9, %rbx
	xorq	%rbp, %rbx
	leaq	320(%rsi,%rcx), %rbp
	movq	%rbx, 72(%rax)
	movdqa	0(%rbp), %xmm9
	pxor	%xmm3, %xmm9
	pand	%xmm10, %xmm9
	pxor	%xmm3, %xmm9
	movups	%xmm9, 80(%rax)
	movdqa	16(%rbp), %xmm4
	pxor	%xmm0, %xmm4
	pand	%xmm10, %xmm4
	pxor	%xmm0, %xmm4
	movups	%xmm4, 96(%rax)
	movq	112(%rdi), %rbp
	xorq	%r11, %rbp
	andq	%rbp, %r9
	leaq	360(%rsi,%rcx), %rbp
	movq	%r9, %rdi
	movl	%edx, %r9d
	xorl	$4, %r9d
	xorq	%r11, %rdi
	movzbl	%r9b, %r9d
	movq	%rdi, 112(%rax)
	movdqu	0(%rbp), %xmm3
	subl	$1, %r9d
	shrl	$31, %r9d
	pxor	%xmm8, %xmm3
	negq	%r9
	movq	%r9, %xmm7
	punpcklqdq	%xmm7, %xmm7
	pand	%xmm7, %xmm3
	pxor	%xmm8, %xmm3
	movups	%xmm3, (%rax)
	movdqu	16(%rbp), %xmm1
	pxor	%xmm6, %xmm1
	pand	%xmm7, %xmm1
	pxor	%xmm6, %xmm1
	movups	%xmm1, 16(%rax)
	movq	32(%rbp), %r11
	xorq	%r10, %r11
	andq	%r9, %r11
	xorq	%r10, %r11
	leaq	400(%rsi,%rcx), %r10
	movq	%r11, 32(%rax)
	movdqa	(%r10), %xmm8
	pxor	%xmm5, %xmm8
	pand	%xmm7, %xmm8
	pxor	%xmm5, %xmm8
	movups	%xmm8, 40(%rax)
	movdqa	16(%r10), %xmm6
	pxor	%xmm2, %xmm6
	pand	%xmm7, %xmm6
	pxor	%xmm2, %xmm6
	movups	%xmm6, 56(%rax)
	movq	72(%rbp), %r10
	xorq	%rbx, %r10
	andq	%r9, %r10
	xorq	%rbx, %r10
	leaq	440(%rsi,%rcx), %rbx
	movq	%r10, 72(%rax)
	movdqu	(%rbx), %xmm5
	pxor	%xmm9, %xmm5
	pand	%xmm7, %xmm5
	pxor	%xmm9, %xmm5
	movups	%xmm5, 80(%rax)
	movdqu	16(%rbx), %xmm0
	pxor	%xmm4, %xmm0
	pand	%xmm7, %xmm0
	pxor	%xmm4, %xmm0
	movups	%xmm0, 96(%rax)
	movq	112(%rbp), %rbx
	xorq	%rdi, %rbx
	andq	%rbx, %r9
	xorq	%rdi, %r9
	movl	%edx, %edi
	xorl	$5, %edi
	movq	%r9, 112(%rax)
	movdqa	(%r12), %xmm7
	movzbl	%dil, %edi
	subl	$1, %edi
	pxor	%xmm3, %xmm7
	shrl	$31, %edi
	negq	%rdi
	movq	%rdi, %xmm10
	punpcklqdq	%xmm10, %xmm10
	pand	%xmm10, %xmm7
	pxor	%xmm3, %xmm7
	movups	%xmm7, (%rax)
	movdqa	16(%r12), %xmm4
	pxor	%xmm1, %xmm4
	pand	%xmm10, %xmm4
	pxor	%xmm1, %xmm4
	movups	%xmm4, 16(%rax)
	movq	32(%r12), %rbx
	xorq	%r11, %rbx
	andq	%rdi, %rbx
	xorq	%r11, %rbx
	leaq	520(%rsi,%rcx), %r11
	movq	%rbx, 32(%rax)
	movdqu	(%r11), %xmm1
	pxor	%xmm8, %xmm1
	pand	%xmm10, %xmm1
	pxor	%xmm8, %xmm1
	movups	%xmm1, 40(%rax)
	movdqu	16(%r11), %xmm2
	pxor	%xmm6, %xmm2
	pand	%xmm10, %xmm2
	pxor	%xmm6, %xmm2
	movups	%xmm2, 56(%rax)
	movq	72(%r12), %rbp
	xorq	%r10, %rbp
	andq	%rdi, %rbp
	xorq	%r10, %rbp
	leaq	560(%rsi,%rcx), %r10
	movq	%rbp, 72(%rax)
	movdqa	(%r10), %xmm9
	pxor	%xmm5, %xmm9
	pand	%xmm10, %xmm9
	pxor	%xmm5, %xmm9
	movups	%xmm9, 80(%rax)
	movdqa	16(%r10), %xmm3
	pxor	%xmm0, %xmm3
	pand	%xmm10, %xmm3
	pxor	%xmm0, %xmm3
	movups	%xmm3, 96(%rax)
	movq	112(%r12), %r10
	xorq	%r9, %r10
	andq	%r10, %rdi
	xorq	%r9, %rdi
	leaq	600(%rsi,%rcx), %r9
	movq	%rdi, 112(%rax)
	movq	%rdi, %r11
	movl	%edx, %edi
	movdqu	(%r9), %xmm5
	xorl	$6, %edi
	movzbl	%dil, %edi
	pxor	%xmm7, %xmm5
	subl	$1, %edi
	shrl	$31, %edi
	negq	%rdi
	movq	%rdi, %xmm6
	punpcklqdq	%xmm6, %xmm6
	pand	%xmm6, %xmm5
	pxor	%xmm7, %xmm5
	movups	%xmm5, (%rax)
	movdqu	16(%r9), %xmm0
	pxor	%xmm4, %xmm0
	pand	%xmm6, %xmm0
	pxor	%xmm4, %xmm0
	movups	%xmm0, 16(%rax)
	movq	32(%r9), %r10
	xorq	%rbx, %r10
	andq	%rdi, %r10
	xorq	%rbx, %r10
	leaq	640(%rsi,%rcx), %rbx
	movq	%r10, 32(%rax)
	movdqa	(%rbx), %xmm8
	pxor	%xmm1, %xmm8
	pand	%xmm6, %xmm8
	pxor	%xmm1, %xmm8
	movups	%xmm8, 40(%rax)
	movdqa	16(%rbx), %xmm7
	pxor	%xmm2, %xmm7
	pand	%xmm6, %xmm7
	pxor	%xmm2, %xmm7
	movups	%xmm7, 56(%rax)
	movq	72(%r9), %rbx
	xorq	%rbp, %rbx
	andq	%rdi, %rbx
	xorq	%rbp, %rbx
	leaq	680(%rsi,%rcx), %rbp
	movq	%rbx, 72(%rax)
	movdqu	0(%rbp), %xmm4
	pxor	%xmm9, %xmm4
	pand	%xmm6, %xmm4
	pxor	%xmm9, %xmm4
	movups	%xmm4, 80(%rax)
	movdqu	16(%rbp), %xmm1
	pxor	%xmm3, %xmm1
	pand	%xmm6, %xmm1
	pxor	%xmm3, %xmm1
	movups	%xmm1, 96(%rax)
	movq	112(%r9), %rbp
	xorq	%r11, %rbp
	andq	%rbp, %rdi
	leaq	720(%rsi,%rcx), %rbp
	xorq	%r11, %rdi
	movq	%rdi, 112(%rax)
	movq	%rdi, %r9
	movl	%edx, %edi
	movdqa	0(%rbp), %xmm3
	xorl	$7, %edi
	movzbl	%dil, %edi
	pxor	%xmm5, %xmm3
	subl	$1, %edi
	shrl	$31, %edi
	negq	%rdi
	movq	%rdi, %xmm9
	punpcklqdq	%xmm9, %xmm9
	pand	%xmm9, %xmm3
	pxor	%xmm5, %xmm3
	movups	%xmm3, (%rax)
	movdqa	16(%rbp), %xmm2
	pxor	%xmm0, %xmm2
	pand	%xmm9, %xmm2
	pxor	%xmm0, %xmm2
	movups	%xmm2, 16(%rax)
	movq	32(%rbp), %r11
	xorq	%r10, %r11
	andq	%rdi, %r11
	xorq	%r10, %r11
	leaq	760(%rsi,%rcx), %r10
	movq	%r11, 32(%rax)
	movdqu	(%r10), %xmm5
	pxor	%xmm8, %xmm5
	pand	%xmm9, %xmm5
	pxor	%xmm8, %xmm5
	movups	%xmm5, 40(%rax)
	movdqu	16(%r10), %xmm0
	pxor	%xmm7, %xmm0
	pand	%xmm9, %xmm0
	pxor	%xmm7, %xmm0
	movups	%xmm0, 56(%rax)
	movq	72(%rbp), %r10
	xorq	%rbx, %r10
	andq	%rdi, %r10
	xorl	$8, %edx
	xorq	%rbx, %r10
	leaq	800(%rsi,%rcx), %rbx
	movzbl	%dl, %edx
	movq	%r10, 72(%rax)
	movdqa	(%rbx), %xmm8
	subl	$1, %edx
	shrl	$31, %edx
	pxor	%xmm4, %xmm8
	negq	%rdx
	pand	%xmm9, %xmm8
	movq	%rdx, %xmm7
	pxor	%xmm4, %xmm8
	punpcklqdq	%xmm7, %xmm7
	movups	%xmm8, 80(%rax)
	movdqa	16(%rbx), %xmm6
	pxor	%xmm1, %xmm6
	pand	%xmm9, %xmm6
	pxor	%xmm1, %xmm6
	movups	%xmm6, 96(%rax)
	movq	112(%rbp), %rbx
	xorq	%r9, %rbx
	andq	%rbx, %rdi
	leaq	840(%rsi,%rcx), %rbx
	xorq	%r9, %rdi
	movq	%rdi, 112(%rax)
	movdqu	(%rbx), %xmm4
	pxor	%xmm3, %xmm4
	pand	%xmm7, %xmm4
	pxor	%xmm3, %xmm4
	movups	%xmm4, (%rax)
	movdqu	16(%rbx), %xmm3
	pxor	%xmm2, %xmm3
	pand	%xmm7, %xmm3
	pxor	%xmm2, %xmm3
	movups	%xmm3, 16(%rax)
	movq	32(%rbx), %r9
	xorq	%r11, %r9
	andq	%rdx, %r9
	xorq	%r11, %r9
	leaq	880(%rsi,%rcx), %r11
	leaq	920(%rsi,%rcx), %rcx
	movq	%r9, 32(%rax)
	movdqa	(%r11), %xmm2
	pxor	%xmm5, %xmm2
	pand	%xmm7, %xmm2
	pxor	%xmm5, %xmm2
	movups	%xmm2, 40(%rax)
	movdqa	16(%r11), %xmm1
	pxor	%xmm0, %xmm1
	pand	%xmm7, %xmm1
	pxor	%xmm0, %xmm1
	movups	%xmm1, 56(%rax)
	movq	72(%rbx), %r11
	xorq	%r10, %r11
	andq	%rdx, %r11
	xorq	%r11, %r10
	movq	%r10, 72(%rax)
	movdqu	(%rcx), %xmm5
	pxor	%xmm8, %xmm5
	pand	%xmm7, %xmm5
	pxor	%xmm8, %xmm5
	movups	%xmm5, 80(%rax)
	movdqu	16(%rcx), %xmm0
	pxor	%xmm6, %xmm0
	pand	%xmm7, %xmm0
	pxor	%xmm6, %xmm0
	movhlps	%xmm5, %xmm6
	movups	%xmm0, 96(%rax)
	movq	112(%rbx), %rcx
	movq	%xmm5, %rbx
	movhlps	%xmm0, %xmm7
	movq	%rbx, %rsi
	xorq	%rdi, %rcx
	shrq	$51, %rsi
	andq	%rcx, %rdx
	movq	%xmm6, %rcx
	addq	%rcx, %rsi
	movq	%xmm0, %rcx
	xorq	%rdi, %rdx
	movq	%rsi, %r12
	shrq	$51, %r12
	addq	%rcx, %r12
	movq	%xmm7, %rcx
	movdqa	%xmm4, %xmm7
	movq	%r12, %rbp
	pxor	%xmm2, %xmm7
	shrq	$51, %rbp
	addq	%rcx, %rbp
	movq	%rbp, %r11
	shrq	$51, %r11
	addq	%rdx, %r11
	movq	%r11, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%rcx,8), %rdi
	leaq	(%rcx,%rdi,2), %rcx
	movabsq	$2251799813685247, %rdi
	andq	%rdi, %rbx
	andq	%rdi, %rsi
	addq	%rbx, %rcx
	movq	%rcx, %rbx
	shrq	$51, %rbx
	addq	%rsi, %rbx
	andq	%rdi, %rcx
	andq	%rdi, %r12
	andq	%rdi, %rbp
	movabsq	$4503599627370458, %rsi
	movq	%rbx, %r13
	andq	%rdi, %r11
	shrq	$51, %rbx
	subq	%rcx, %rsi
	andq	%rdi, %r13
	movq	%rsi, 80(%rsp)
	movabsq	$4503599627370494, %rsi
	movq	%rsi, %rcx
	subq	%r13, %rcx
	movq	%rcx, 88(%rsp)
	movq	%rsi, %rcx
	subq	%r12, %rcx
	subq	%rbx, %rcx
	movq	%rcx, 96(%rsp)
	movq	%rsi, %rcx
	subq	%r11, %rsi
	subq	%rbp, %rcx
	xorq	%rdx, %rsi
	movq	%rcx, 104(%rsp)
	movl	%r8d, %ecx
	movq	%r9, %r8
	negq	%rcx
	xorq	%r10, %r8
	movq	%rcx, %xmm6
	andq	%rcx, %r8
	andq	%rsi, %rcx
	punpcklqdq	%xmm6, %xmm6
	xorq	%r8, %r9
	xorq	%r8, %r10
	xorq	%rdx, %rcx
	pand	%xmm6, %xmm7
	movq	%r9, 32(%rax)
	pxor	%xmm7, %xmm4
	movq	%r10, 72(%rax)
	pxor	%xmm7, %xmm2
	movups	%xmm4, (%rax)
	movdqa	%xmm1, %xmm4
	pxor	%xmm3, %xmm4
	movq	%rcx, 112(%rax)
	pand	%xmm6, %xmm4
	movups	%xmm2, 40(%rax)
	pxor	%xmm4, %xmm1
	pxor	%xmm4, %xmm3
	movups	%xmm1, 56(%rax)
	movdqa	80(%rsp), %xmm1
	movups	%xmm3, 16(%rax)
	pxor	%xmm5, %xmm1
	pand	%xmm6, %xmm1
	pxor	%xmm5, %xmm1
	movups	%xmm1, 80(%rax)
	movdqa	96(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	pand	%xmm6, %xmm1
	pxor	%xmm1, %xmm0
	movups	%xmm0, 96(%rax)
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2582
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L2582:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1418:

	.size	table_select, .-table_select
# WAS .section	.text.cipher_aes_ccm_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	cipher_aes_ccm_ctrl, @function
.Lcipher_aes_ccm_ctrl_local_target:
cipher_aes_ccm_ctrl:
.LFB1308:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rcx, %r8
	movq	16(%rdi), %rcx
	movq	%rdi, %rax
	movq	%rcx, %rdi
	andl	$8, %edi
	leaq	(%rcx,%rdi), %rbx
	cmpl	$25, %esi
	ja	.L2603
	leaq	.L2586(%rip), %rdi
	movl	%esi, %esi
	movslq	(%rdi,%rsi,4), %rcx
	addq	%rdi, %rcx
	notrack jmp	*%rcx
# WAS .section	.rodata.cipher_aes_ccm_ctrl,"a",@progbits
.text
	.align 4
	.align 4
.L2586:

	.long	.L2592-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2591-.L2586
	.long	.L2590-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2589-.L2586
	.long	.L2588-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2587-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2603-.L2586
	.long	.L2585-.L2586
# WAS .section	.text.cipher_aes_ccm_ctrl
.text
	.p2align 4,,10
	.p2align 3
.L2603:

	movl	$-1, %ecx
.L2583:

	movl	%ecx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2585:

	.cfi_restore_state
	movl	$15, %eax
	subl	312(%rbx), %eax
	movl	%eax, (%r8)
.L2593:

	movl	$1, %ecx
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	movl	%ecx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L2592:

	.cfi_restore_state
	movl	$368, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	.LC109(%rip), %rax
	movl	$0, 304(%rbx)
	movb	$0, 308(%rbx)
	movq	%rax, 312(%rbx)
	movq	$0, 320(%rbx)
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2591:

	movq	16(%r8), %rcx
	movq	%rcx, %rax
	andl	$8, %eax
	addq	%rax, %rcx
	movq	(%rbx), %rax
	leaq	8(%rcx), %rdi
	movq	%rax, (%rcx)
	movq	360(%rbx), %rax
	andq	$-8, %rdi
	movq	%rax, 360(%rcx)
	subq	%rdi, %rcx
	subq	%rcx, %rbx
	addl	$368, %ecx
	movq	%rbx, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2590:

	movl	$13, %eax
	xorl	%ecx, %ecx
	subl	%edx, %eax
	cmpl	$6, %eax
	ja	.L2583
	movl	$15, %eax
	subl	%edx, %eax
	movl	%eax, 312(%rbx)
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2589:

	movl	28(%rax), %ecx
	testl	%ecx, %ecx
	je	.L2583
	xorl	%ecx, %ecx
	cmpb	$0, 306(%rbx)
	je	.L2583
	movl	316(%rbx), %eax
	movslq	%edx, %rdx
	cmpq	%rax, %rdx
	jne	.L2583
	testq	%rdx, %rdx
	je	.L2602
	leaq	328(%rbx), %rsi
	movq	%r8, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L2602:

	movl	$0, 305(%rbx)
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2588:

	movl	%edx, %ecx
	andl	$1, %ecx
	jne	.L2606
	leal	-4(%rdx), %esi
	cmpl	$12, %esi
	ja	.L2583
	movl	28(%rax), %eax
	testl	%eax, %eax
	jne	.L2626
	testq	%r8, %r8
	je	.L2595
	leaq	328(%rbx), %rax
	cmpl	$8, %edx
	jnb	.L2596
	testb	$4, %dl
	jne	.L2627
	testl	%edx, %edx
	je	.L2597
	movzbl	(%r8), %ecx
	movb	%cl, 328(%rbx)
	testb	$2, %dl
	jne	.L2628
.L2597:

	movb	$1, 306(%rbx)
.L2595:

	movl	%edx, 316(%rbx)
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2587:

	leal	-2(%rdx), %eax
	xorl	%ecx, %ecx
	cmpl	$6, %eax
	ja	.L2583
	movl	%edx, 312(%rbx)
	jmp	.L2593
	.p2align 4,,10
	.p2align 3
.L2626:

	testq	%r8, %r8
	jne	.L2583
	jmp	.L2595
	.p2align 4,,10
	.p2align 3
.L2606:

	xorl	%ecx, %ecx
	jmp	.L2583
.L2596:

	movq	(%r8), %rcx
	leaq	336(%rbx), %r9
	andq	$-8, %r9
	movq	%rcx, 328(%rbx)
	movl	%edx, %ecx
	movq	-8(%r8,%rcx), %rsi
	movq	%rsi, -8(%rax,%rcx)
	subq	%r9, %rax
	movq	%r8, %rcx
	subq	%rax, %rcx
	addl	%edx, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L2597
	andl	$-8, %eax
	xorl	%esi, %esi
.L2600:

	movl	%esi, %edi
	addl	$8, %esi
	movq	(%rcx,%rdi), %r10
	movq	%r10, (%r9,%rdi)
	cmpl	%eax, %esi
	jb	.L2600
	jmp	.L2597
.L2627:

	movl	(%r8), %ecx
	movl	%ecx, 328(%rbx)
	movl	%edx, %ecx
	movl	-4(%r8,%rcx), %esi
	movl	%esi, -4(%rax,%rcx)
	jmp	.L2597
.L2628:

	movl	%edx, %ecx
	movzwl	-2(%r8,%rcx), %esi
	movw	%si, -2(%rax,%rcx)
	jmp	.L2597
	.cfi_endproc
.LFE1308:

	.size	cipher_aes_ccm_ctrl, .-cipher_aes_ccm_ctrl
# WAS .section	.text.fe_loose_invert,"ax",@progbits
.text
	.p2align 4
	.type	fe_loose_invert, @function
.Lfe_loose_invert_local_target:
fe_loose_invert:
.LFB1390:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$312, %rsp
	.cfi_def_cfa_offset 368
	movq	%rdi, 104(%rsp)
	leaq	112(%rsp), %rbx
	movq	%rbx, %rdi
	movq	%fs:40, %rax
	movq	%rax, 296(%rsp)
	xorl	%eax, %eax
	movq	%rsi, 32(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	leaq	160(%rsp), %rax
	movq	%rbx, %rsi
	movq	%rbx, 88(%rsp)
	movq	%rax, %rdi
	movq	%rax, 72(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	192(%rsp), %rsi
	movq	184(%rsp), %rdi
	movq	176(%rsp), %rdx
	movq	160(%rsp), %r8
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rdi,%rdi), %rcx
	leaq	(%rsi,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	movq	%rcx, (%rsp)
	movq	168(%rsp), %rcx
	leaq	(%rdi,%rax,2), %r10
	leaq	(%rdx,%rdx), %r13
	leaq	(%r10,%r10), %r15
	leaq	(%rbx,%rbx), %r9
	movq	%r15, %rax
	mulq	%rdx
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%rcx
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	movq	%r14, 16(%rsp)
	movq	%r15, 24(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r9, %rax
	mulq	176(%rsp)
	addq	%rax, %r10
	leaq	(%rcx,%rcx), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r15, %r10
	xorl	%r11d, %r11d
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%r9
	movq	%r13, %r9
	movq	%rax, %rdi
	movq	%r13, %rax
	movq	%rdx, %rbp
	mulq	%r8
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	addq	%rdi, %r12
	adcq	%rbp, %r13
	mulq	%rcx
	movabsq	$2251799813685247, %rbp
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	movq	(%rsp), %r9
	mulq	%rcx
	addq	%rax, %r14
	movq	%r9, %rax
	adcq	%rdx, %r15
	mulq	%r8
	addq	%r14, %rax
	movq	%r12, %r14
	adcq	%r15, %rdx
	shrdq	$51, %r13, %r14
	xorl	%r15d, %r15d
	addq	%rax, %r14
	adcq	%rdx, %r15
	addq	%rsi, %rsi
	movq	%rsi, %rax
	mulq	%r8
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	movq	%rax, %rcx
	movq	176(%rsp), %rax
	movq	%rdx, %rbx
	addq	%rsi, %rcx
	movq	32(%rsp), %rsi
	adcq	%rdi, %rbx
	mulq	%rax
	addq	%rcx, %rax
	movq	%r14, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r15, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r8
	andq	%rbp, %r10
	movq	72(%rsp), %rbx
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r12
	andq	%rbp, %r14
	leaq	(%rax,%rax,8), %rdx
	movq	%rbx, %rdi
	movq	%r14, 184(%rsp)
	leaq	(%rax,%rdx,2), %rcx
	movq	16(%rsp), %rdx
	movq	%r8, %rax
	andq	%rbp, %rax
	andq	%rbp, %rdx
	movq	%rax, 192(%rsp)
	addq	%rdx, %rcx
	movq	%rcx, %rdx
	andq	%rbp, %rcx
	shrq	$51, %rdx
	movq	%rcx, 160(%rsp)
	addq	%r10, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	addq	%r12, %rdx
	andq	%rbp, %rcx
	movq	%rdx, 176(%rsp)
	movq	%rbx, %rdx
	movq	%rcx, 168(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	88(%rsp), %rdi
	movq	%rbx, %rdx
	movq	%rbx, 72(%rsp)
	movq	%rdi, %rsi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	144(%rsp), %r11
	movq	136(%rsp), %rsi
	movq	120(%rsp), %rcx
	movq	128(%rsp), %rdi
	leaq	(%r11,%r11,8), %rax
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rsi,%rsi), %rax
	addq	%rdi, %rdi
	movq	%rax, (%rsp)
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rbx,%rbx), %r10
	leaq	(%rsi,%rax,2), %r8
	movq	%rdi, 16(%rsp)
	movq	112(%rsp), %rdi
	leaq	(%r8,%r8), %r9
	movq	%r9, %rax
	mulq	128(%rsp)
	movq	%rax, %r14
	movq	%r10, %rax
	movq	%rdx, %r15
	mulq	%rcx
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%rsi
	movq	%r14, 32(%rsp)
	movq	%r15, 40(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r10, %rax
	mulq	128(%rsp)
	addq	%rax, %r8
	leaq	(%rcx,%rcx), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r14, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r15, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	%rsi, %rax
	movq	16(%rsp), %rsi
	movq	%rdx, %r15
	mulq	%r10
	movq	(%rsp), %r10
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	leaq	208(%rsp), %r15
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %r12
	movq	%rsi, %rax
	leaq	(%r11,%r11), %rsi
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	movq	%r8, %r12
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r12
	xorl	%r13d, %r13d
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %rsi
	movq	%r10, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	movq	%rax, %rcx
	movq	128(%rsp), %rax
	movq	%rdx, %rbx
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	mulq	%rax
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rsi
	andq	%rbp, %r14
	movq	72(%rsp), %rbx
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r8
	andq	%rbp, %r12
	leaq	(%rax,%rax,8), %rdx
	movq	%rbx, %rdi
	movq	%r12, 232(%rsp)
	leaq	(%rax,%rdx,2), %rcx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rcx
	movq	%rcx, %rax
	andq	%rbp, %rcx
	shrq	$51, %rax
	movq	%rcx, 208(%rsp)
	movq	%rax, %rdx
	movq	%rsi, %rax
	movq	%rbx, %rsi
	addq	%r14, %rdx
	andq	%rbp, %rax
	movq	%rdx, %rcx
	shrq	$51, %rdx
	movq	%rax, 240(%rsp)
	addq	%r8, %rdx
	andq	%rbp, %rcx
	movq	%rdx, 224(%rsp)
	movq	%r15, %rdx
	movq	%rcx, 216(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movq	%rbx, 72(%rsp)
	movq	%r15, 80(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	240(%rsp), %r9
	movq	232(%rsp), %r8
	movq	224(%rsp), %r15
	movq	216(%rsp), %rsi
	leaq	(%r9,%r9,8), %rax
	movq	208(%rsp), %rdi
	leaq	(%r9,%rax,2), %rbx
	leaq	(%r8,%r8), %rax
	movq	%rax, (%rsp)
	leaq	(%r8,%r8,8), %rax
	leaq	(%r15,%r15), %r13
	leaq	(%r8,%rax,2), %r10
	leaq	(%rbx,%rbx), %rcx
	movq	%r13, 32(%rsp)
	leaq	(%r10,%r10), %r15
	movq	%r15, %rax
	mulq	224(%rsp)
	movq	%rax, %r14
	movq	%rsi, %rax
	movq	%rdx, %r15
	mulq	%rcx
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%r8
	movq	%r14, 16(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	224(%rsp)
	addq	%rax, %r10
	leaq	(%rsi,%rsi), %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r15, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r14
	movq	%r13, %rax
	movq	%rdx, %r15
	mulq	%rdi
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	addq	%r12, %r10
	adcq	%r13, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r9
	movq	%rax, %r12
	movq	32(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	leaq	(%r9,%r9), %r12
	adcq	%r13, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	movq	%rcx, %r8
	andq	%rbp, %r8
	movq	%rax, %r12
	movq	(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	224(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rax
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	16(%rsp), %rbx
	andq	%rbp, %r14
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r9
	andq	%rbp, %r10
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %rbx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	%rax, %rdi
	shrq	$51, %rax
	addq	%r14, %rax
	andq	%rbp, %rdi
	movq	%rax, %rbx
	shrq	$51, %rax
	leaq	(%rax,%r10), %r15
	leaq	(%r9,%r9,8), %rax
	andq	%rbp, %rbx
	leaq	(%r9,%rax,2), %r14
	leaq	(%r8,%r8), %rax
	movq	%rbx, %rsi
	movq	%rax, 32(%rsp)
	movq	%rdi, %rax
	leaq	(%r14,%r14), %rcx
	leaq	(%r15,%r15), %rbx
	mulq	%rdi
	movq	%rbx, (%rsp)
	leaq	(%rsi,%rsi), %r13
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r11
	leaq	(%rbx,%rbx), %rax
	mulq	%r15
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 16(%rsp)
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	(%rsp), %r8
	movq	%r12, (%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%rdi
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%r14, %rax
	movq	32(%rsp), %r14
	adcq	%rdx, %r13
	mulq	%r9
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rdi
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	leaq	(%r9,%r9), %r10
	adcq	%r11, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r13, %rax
	movq	%r13, %rdx
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	movq	%rcx, %r8
	andq	%rbp, %r8
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	16(%rsp), %rbx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r9
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %rbx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	(%rsp), %rbx
	movq	%rax, %rdi
	shrq	$51, %rax
	andq	%rbp, %rbx
	andq	%rbp, %rdi
	addq	%rbx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	leaq	(%rax,%r12), %r15
	leaq	(%r9,%r9,8), %rax
	andq	%rbp, %rbx
	leaq	(%r9,%rax,2), %r14
	leaq	(%r8,%r8), %rax
	movq	%rbx, %rsi
	movq	%rax, 32(%rsp)
	movq	%rdi, %rax
	leaq	(%r14,%r14), %rcx
	leaq	(%r15,%r15), %rbx
	mulq	%rdi
	movq	%rbx, (%rsp)
	leaq	(%rsi,%rsi), %r13
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r11
	leaq	(%rbx,%rbx), %rax
	mulq	%r15
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 16(%rsp)
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rsi
	movq	%r13, 8(%rsp)
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	(%rsp), %r8
	movq	%r12, (%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%rdi
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%r14, %rax
	movq	32(%rsp), %r14
	adcq	%rdx, %r13
	mulq	%r9
	movq	%rax, %rcx
	movq	%r14, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r8, %rax
	addq	%rcx, %r10
	leaq	(%r9,%r9), %r8
	adcq	%rbx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %rax
	movq	%r13, %rdx
	shrq	$51, %rdx
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, %rcx
	movq	%r10, %rbx
	andq	%rbp, %rcx
	movq	%rax, %r8
	movq	%r14, %rax
	movq	%rdx, %r9
	mulq	%rsi
	movq	%r11, %rsi
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	leaq	(%rcx,%rcx), %r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rbx
	shrq	$51, %rsi
	addq	%rbx, %rax
	movq	16(%rsp), %rbx
	adcq	%rsi, %rdx
	movq	%rax, %r9
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rbx
	andq	%rbp, %r9
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	(%rsp), %rbx
	movq	%rax, %rdi
	shrq	$51, %rax
	andq	%rbp, %rbx
	andq	%rbp, %rdi
	addq	%rbx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%rbp, %rbx
	movq	%rbx, %rsi
	leaq	(%rax,%r12), %rbx
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rax
	leaq	(%rsi,%rsi), %r13
	movq	%rax, 32(%rsp)
	leaq	(%rax,%rax), %r8
	movq	%rdi, %rax
	mulq	%rdi
	movq	%r15, (%rsp)
	leaq	(%rbx,%rbx), %r15
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r14
	adcq	%rdx, %r11
	leaq	(%r14,%r14), %rax
	mulq	%rbx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 16(%rsp)
	movq	%r11, 24(%rsp)
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	movq	%r11, %r13
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%r12, %r14
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	movq	(%rsp), %rcx
	mulq	%r8
	movq	%r15, %r8
	addq	%rax, %r10
	movq	%r15, %rax
	movq	%r13, %r15
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %r14
	shrq	$51, %r15
	addq	%r10, %r14
	adcq	%r11, %r15
	mulq	%r9
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r8, %rax
	leaq	(%r9,%r9), %r8
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	movq	%r15, %r11
	shrdq	$51, %r15, %r10
	shrq	$51, %r11
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	movq	%r10, %rcx
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	%rbx
	movq	%r11, %rbx
	addq	%rsi, %rax
	movq	80(%rsp), %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r8
	andq	%rbp, %r14
	andq	%rbp, %r10
	shrdq	$51, %rdx, %rax
	movq	%r10, 232(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	16(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rcx
	movq	%r12, %rax
	andq	%rbp, %rax
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	%rbp, %rcx
	shrq	$51, %rax
	movq	%rcx, 208(%rsp)
	addq	%rax, %rdx
	movq	%r8, %rax
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%rbp, %rax
	addq	%r14, %rdx
	andq	%rbp, %rcx
	movq	%rax, 240(%rsp)
	movq	%rdx, 224(%rsp)
	movq	72(%rsp), %rdx
	movq	%rcx, 216(%rsp)
	movq	%rdx, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	192(%rsp), %r11
	movq	184(%rsp), %rcx
	movl	$9, 68(%rsp)
	movq	168(%rsp), %r8
	movq	160(%rsp), %r10
	leaq	(%r11,%r11,8), %rax
	movq	176(%rsp), %rdi
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rcx,%rcx), %rax
	movq	%rax, (%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %r9
	addq	%rdi, %rdi
	leaq	(%rcx,%rax,2), %rsi
	movq	%rdi, 32(%rsp)
	leaq	(%rsi,%rsi), %r15
	movq	%r15, %rax
	mulq	176(%rsp)
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%r10
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	176(%rsp)
	addq	%rax, %rsi
	leaq	(%r8,%r8), %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rsi, %rax
	movq	%r14, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 16(%rsp)
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%r9
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	movq	24(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	movq	%rsi, %r12
	adcq	%r13, %rbx
	mulq	%r10
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %r12
	xorl	%edx, %edx
	addq	%r12, %rcx
	adcq	%rdx, %rbx
	addq	%r11, %r11
	movq	%rcx, %r9
	movq	%r11, %rax
	andq	%rbp, %r9
	mulq	%r10
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	176(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rax
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r14
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	16(%rsp), %rax
	addq	%r14, %rdx
	movq	%rdx, %r14
	andq	%rbp, %rax
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r14
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	leaq	(%rsi,%rax), %rbx
	.p2align 4,,10
	.p2align 3
.L2630:

	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %rsi
	leaq	(%rcx,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %r8
	movq	%rax, 48(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	leaq	(%r15,%r15), %rax
	adcq	%rdx, %rdi
	mulq	%r14
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	movq	%r12, %rdi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %rdi
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r10, 16(%rsp)
	movq	%r11, %r13
	leaq	(%rcx,%rcx), %r10
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rbp, %rcx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	movq	%rbp, %r9
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r14
	andq	%rsi, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	andq	%rax, %rcx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r14
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r14
	addq	%rdx, %rax
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rbx
	jne	.L2630
	movq	80(%rsp), %rdi
	movq	72(%rsp), %rdx
	movq	%r14, 208(%rsp)
	movq	%r15, 216(%rsp)
	movq	%rdi, %rsi
	movq	%rbx, 224(%rsp)
	movq	%r9, 232(%rsp)
	movq	%rcx, 240(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	240(%rsp), %r11
	movq	232(%rsp), %rcx
	movl	$19, 68(%rsp)
	movq	216(%rsp), %rsi
	movq	224(%rsp), %rdi
	leaq	(%r11,%r11,8), %rax
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rcx,%rcx), %rax
	addq	%rdi, %rdi
	movq	%rax, (%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %r10
	leaq	(%rcx,%rax,2), %r8
	movq	%rdi, 32(%rsp)
	movq	208(%rsp), %rdi
	leaq	(%r8,%r8), %r9
	movq	%r9, %rax
	mulq	224(%rsp)
	movq	%rax, %r14
	movq	%r10, %rax
	movq	%rdx, %r15
	mulq	%rsi
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r10, %rax
	mulq	224(%rsp)
	addq	%rax, %r8
	leaq	(%rsi,%rsi), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r14, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r15, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 16(%rsp)
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%r10
	leaq	(%r11,%r11), %r10
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	movq	24(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	movq	%r8, %r12
	adcq	%r13, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r9, %r12
	xorl	%edx, %edx
	addq	%r12, %rcx
	adcq	%rdx, %rbx
	movq	%rbp, %rdx
	andq	%rcx, %rdx
	movq	%rdx, %r13
	mulq	%rdi
	movq	%r13, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rsi
	movq	%rax, %rsi
	movq	224(%rsp), %rax
	movq	%rdx, %rdi
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	%rax
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	movq	%rbp, %rcx
	adcq	%rbx, %rdx
	andq	%rax, %rcx
	andq	%rbp, %r14
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	16(%rsp), %rdx
	addq	%r14, %rax
	movq	%rax, %r14
	andq	%rbp, %rdx
	shrq	$51, %rax
	addq	%rax, %rdx
	movq	%rbp, %rax
	andq	%rbp, %r14
	movq	%rdx, %r15
	andq	%r8, %rax
	shrq	$51, %rdx
	andq	%rbp, %r15
	leaq	(%rax,%rdx), %rbx
	movabsq	$2251799813685247, %rbp
	.p2align 4,,10
	.p2align 3
.L2631:

	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %rsi
	leaq	(%rcx,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %r8
	movq	%rax, 48(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	leaq	(%r15,%r15), %rax
	adcq	%rdx, %rdi
	mulq	%r14
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	movq	%r12, %rdi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %rdi
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r10, 16(%rsp)
	movq	%r11, %r13
	leaq	(%rcx,%rcx), %r10
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r14
	movq	%rsi, %r9
	andq	%rbp, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r14
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r14
	addq	%rdx, %rax
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rbx
	jne	.L2631
	movq	80(%rsp), %rdi
	leaq	256(%rsp), %rax
	movq	%r14, 256(%rsp)
	movq	%rax, %rsi
	movq	%r15, 264(%rsp)
	movq	%rdi, %rdx
	movq	%rbx, 272(%rsp)
	movq	%r9, 280(%rsp)
	movq	%rcx, 288(%rsp)
	movq	%rax, 96(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	240(%rsp), %r11
	movq	232(%rsp), %rcx
	movl	$9, 68(%rsp)
	movq	216(%rsp), %r8
	movq	208(%rsp), %r10
	leaq	(%r11,%r11,8), %rax
	movq	224(%rsp), %rdi
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rcx,%rcx), %rax
	movq	%rax, (%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %r9
	addq	%rdi, %rdi
	leaq	(%rcx,%rax,2), %rsi
	movq	%rdi, 32(%rsp)
	leaq	(%rsi,%rsi), %r15
	movq	%r15, %rax
	mulq	224(%rsp)
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%r10
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	224(%rsp)
	addq	%rax, %rsi
	leaq	(%r8,%r8), %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rsi, %rax
	movq	%r14, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 16(%rsp)
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%r9
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	movq	24(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	movq	%rsi, %r12
	adcq	%r13, %rbx
	mulq	%r10
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %r12
	xorl	%edx, %edx
	addq	%r12, %rcx
	adcq	%rdx, %rbx
	addq	%r11, %r11
	movq	%rcx, %r9
	movq	%r11, %rax
	andq	%rbp, %r9
	mulq	%r10
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	224(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rax
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r14
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	16(%rsp), %rax
	addq	%r14, %rdx
	movq	%rdx, %r14
	andq	%rbp, %rax
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r14
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	leaq	(%rsi,%rax), %rbx
	movabsq	$2251799813685247, %rbp
	.p2align 4,,10
	.p2align 3
.L2632:

	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %rsi
	leaq	(%rcx,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %r8
	movq	%rax, 48(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	leaq	(%r15,%r15), %rax
	adcq	%rdx, %rdi
	mulq	%r14
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	movq	%r12, %rdi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %rdi
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r10, 16(%rsp)
	movq	%r11, %r13
	leaq	(%rcx,%rcx), %r10
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r14
	movq	%rsi, %r9
	andq	%rbp, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r14
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r14
	addq	%rdx, %rax
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rbx
	jne	.L2632
	movq	72(%rsp), %rdi
	movq	80(%rsp), %rsi
	movq	%r14, 208(%rsp)
	movq	%r15, 216(%rsp)
	movq	%rdi, %rdx
	movq	%rbx, 224(%rsp)
	movq	%r9, 232(%rsp)
	movq	%rcx, 240(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	192(%rsp), %r11
	movq	184(%rsp), %rcx
	movl	$49, 68(%rsp)
	movq	168(%rsp), %r8
	movq	160(%rsp), %r10
	leaq	(%r11,%r11,8), %rax
	movq	176(%rsp), %rdi
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rcx,%rcx), %rax
	movq	%rax, (%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %r9
	addq	%rdi, %rdi
	leaq	(%rcx,%rax,2), %rsi
	movq	%rdi, 32(%rsp)
	leaq	(%rsi,%rsi), %r15
	movq	%r15, %rax
	mulq	176(%rsp)
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%r10
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	176(%rsp)
	addq	%rax, %rsi
	leaq	(%r8,%r8), %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rsi, %rax
	movq	%r14, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 16(%rsp)
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%r9
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	movq	24(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	movq	%rsi, %r12
	adcq	%r13, %rbx
	mulq	%r10
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %r12
	xorl	%edx, %edx
	addq	%r12, %rcx
	adcq	%rdx, %rbx
	addq	%r11, %r11
	movq	%rcx, %r9
	movq	%r11, %rax
	andq	%rbp, %r9
	mulq	%r10
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	176(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rax
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r14
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	16(%rsp), %rax
	addq	%r14, %rdx
	movq	%rdx, %r14
	andq	%rbp, %rax
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r14
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	leaq	(%rsi,%rax), %rbx
	movabsq	$2251799813685247, %rbp
	.p2align 4,,10
	.p2align 3
.L2633:

	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %rsi
	leaq	(%rcx,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %r8
	movq	%rax, 48(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	leaq	(%r15,%r15), %rax
	adcq	%rdx, %rdi
	mulq	%r14
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	movq	%r12, %rdi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %rdi
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r10, 16(%rsp)
	movq	%r11, %r13
	leaq	(%rcx,%rcx), %r10
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r14
	movq	%rsi, %r9
	andq	%rbp, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r14
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r14
	addq	%rdx, %rax
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rbx
	jne	.L2633
	movq	%rbx, 224(%rsp)
	movq	80(%rsp), %rbx
	movabsq	$2251799813685247, %rbp
	movq	72(%rsp), %rdx
	movq	%r14, 208(%rsp)
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%r15, 216(%rsp)
	movq	%r9, 232(%rsp)
	movq	%rcx, 240(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	96(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$99, 48(%rsp)
	movq	288(%rsp), %r14
	movq	280(%rsp), %r11
	movq	272(%rsp), %r15
	movq	264(%rsp), %r12
	movq	256(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L2634:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r11,%r11), %r10
	leaq	(%r14,%rax,2), %rdi
	leaq	(%r15,%r15), %rax
	movq	%r10, (%rsp)
	movq	%rax, 16(%rsp)
	leaq	(%r11,%r11,8), %rax
	leaq	(%rdi,%rdi), %rsi
	leaq	(%r11,%rax,2), %r10
	leaq	(%r10,%r10), %rbx
	movq	%rbx, %rax
	mulq	%r15
	movq	%rax, %rcx
	movq	%rsi, %rax
	movq	%rdx, %rbx
	mulq	%r12
	addq	%rax, %rcx
	movq	%r13, %rax
	adcq	%rdx, %rbx
	mulq	%r13
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%r11
	movq	%rcx, %r8
	movq	%rbx, %r9
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, %rcx
	movq	%rsi, %rax
	movq	%rdx, %rbx
	mulq	%r15
	addq	%rax, %rcx
	leaq	(%r12,%r12), %rax
	adcq	%rdx, %rbx
	mulq	%r13
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r9, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	%r11, %rax
	movq	16(%rsp), %r11
	movq	%rdx, %r10
	mulq	%rsi
	movq	%r9, 16(%rsp)
	movq	%r10, 24(%rsp)
	movq	%rax, %rcx
	movq	%r11, %rax
	movq	%rdx, %rbx
	mulq	%r13
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%r12
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r9, %rbx
	shrdq	$51, %r10, %rbx
	movq	(%rsp), %r10
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r12
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r10, %rax
	addq	%rsi, %rcx
	leaq	(%r14,%r14), %rsi
	adcq	%rdi, %rbx
	mulq	%r13
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	mulq	%r13
	movq	%rcx, %r11
	andq	%rbp, %r11
	movq	%rax, %rsi
	movq	%r10, %rax
	movq	%rdx, %rdi
	mulq	%r12
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r14
	andq	%rbp, %r8
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r14
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r13
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r13
	addq	%rdx, %rax
	movq	%rax, %r12
	shrq	$51, %rax
	andq	%rbp, %r12
	subl	$1, 48(%rsp)
	leaq	(%r8,%rax), %r15
	jne	.L2634
	movq	80(%rsp), %rdi
	movq	96(%rsp), %rsi
	movq	%r13, 256(%rsp)
	movq	%r12, 264(%rsp)
	movq	%rdi, %rdx
	movq	%r15, 272(%rsp)
	movq	%r11, 280(%rsp)
	movq	%r14, 288(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	240(%rsp), %r11
	movq	232(%rsp), %rcx
	movl	$49, 68(%rsp)
	movq	216(%rsp), %r8
	movq	208(%rsp), %r10
	leaq	(%r11,%r11,8), %rax
	movq	224(%rsp), %rdi
	leaq	(%r11,%rax,2), %rbx
	leaq	(%rcx,%rcx), %rax
	movq	%rax, (%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %r9
	addq	%rdi, %rdi
	leaq	(%rcx,%rax,2), %rsi
	movq	%rdi, 32(%rsp)
	leaq	(%rsi,%rsi), %r15
	movq	%r15, %rax
	mulq	224(%rsp)
	movq	%rax, %r14
	movq	%r9, %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	%r10
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	224(%rsp)
	addq	%rax, %rsi
	leaq	(%r8,%r8), %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rsi, %rax
	movq	%r14, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 16(%rsp)
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	movq	%rdx, 24(%rsp)
	mulq	%r9
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	movq	24(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%rax, %rcx
	movq	(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r12, %rcx
	movq	%rsi, %r12
	adcq	%r13, %rbx
	mulq	%r10
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %r12
	xorl	%edx, %edx
	addq	%r12, %rcx
	adcq	%rdx, %rbx
	addq	%r11, %r11
	movq	%rcx, %r9
	movq	%r11, %rax
	andq	%rbp, %r9
	mulq	%r10
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	224(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rax
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r14
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	16(%rsp), %rax
	addq	%r14, %rdx
	movq	%rdx, %r14
	andq	%rbp, %rax
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r14
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	leaq	(%rsi,%rax), %rbx
	movabsq	$2251799813685247, %rbp
	.p2align 4,,10
	.p2align 3
.L2635:

	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rbx,%rbx), %rsi
	leaq	(%rcx,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %r8
	movq	%rax, 48(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r10
	movq	%r10, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	leaq	(%r15,%r15), %rax
	adcq	%rdx, %rdi
	mulq	%r14
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	movq	%r12, %rdi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %rdi
	movq	%rdx, %r11
	mulq	%r8
	movq	%r10, %r12
	movq	%r10, 16(%rsp)
	movq	%r11, %r13
	leaq	(%rcx,%rcx), %r10
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r14
	movq	%rsi, %r9
	andq	%rbp, %r9
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%rbp, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %r14
	shrq	$51, %rdx
	andq	%rbp, %rax
	andq	%rbp, %r14
	addq	%rdx, %rax
	movq	%rax, %r15
	shrq	$51, %rax
	andq	%rbp, %r15
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rbx
	jne	.L2635
	movq	72(%rsp), %rdx
	movq	80(%rsp), %rsi
	movq	%r14, 208(%rsp)
	movq	%r15, 216(%rsp)
	movq	%rdx, %rdi
	movq	%rbx, 224(%rsp)
	movq	%r9, 232(%rsp)
	movq	%rcx, 240(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	192(%rsp), %r11
	movq	184(%rsp), %rcx
	movq	176(%rsp), %rdx
	movq	168(%rsp), %rdi
	leaq	(%r11,%r11,8), %rax
	movq	160(%rsp), %r10
	leaq	(%rcx,%rcx), %rbx
	leaq	(%r11,%rax,2), %rax
	addq	%rdx, %rdx
	movq	%rbx, (%rsp)
	movq	%rax, 32(%rsp)
	leaq	(%rax,%rax), %rsi
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r8
	movq	%rdx, 16(%rsp)
	leaq	(%r8,%r8), %r9
	movq	%r9, %rax
	mulq	176(%rsp)
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	176(%rsp)
	addq	%rax, %r8
	leaq	(%rdi,%rdi), %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	%rcx, %rax
	movq	%rdx, %r15
	mulq	%rsi
	movq	16(%rsp), %rsi
	movq	%rax, %rcx
	movq	%rsi, %rax
	movq	%rdx, %rbx
	mulq	%r10
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	addq	%rcx, %r8
	adcq	%rbx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	32(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %rcx
	movq	%rsi, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r10
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rcx, %rax
	adcq	%rdx, %rbx
	addq	%r11, %r11
	andq	%rbp, %rax
	movq	%rax, %rsi
	movq	%r11, %rax
	mulq	%r10
	leaq	(%rsi,%rsi), %r15
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	176(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rax
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %r14
	andq	%rbp, %r8
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	%r12, %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rax
	movq	%rax, %r11
	shrq	$51, %rax
	addq	%r14, %rax
	andq	%rbp, %r11
	movq	%rax, %r10
	shrq	$51, %rax
	leaq	(%r8,%rax), %rbx
	leaq	(%rcx,%rcx,8), %rax
	andq	%rbp, %r10
	leaq	(%rcx,%rax,2), %r14
	leaq	(%rbx,%rbx), %rax
	movq	%rax, (%rsp)
	movq	%r11, %rax
	leaq	(%r14,%r14), %rdi
	leaq	(%r10,%r10), %r13
	mulq	%r11
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	leaq	(%rsi,%rsi,8), %rax
	adcq	%rdx, %r9
	leaq	(%rsi,%rax,2), %rdx
	leaq	(%rdx,%rdx), %rax
	movq	%rdx, 16(%rsp)
	mulq	%rbx
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%r8, 32(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%r12, 16(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	leaq	(%rcx,%rcx), %r12
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, %r13
	movq	%rdi, %r14
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r13
	shrq	$51, %r14
	movq	%r13, %r8
	addq	%rax, %r8
	movq	%r14, %r9
	movq	%r12, %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	movq	%r8, %rcx
	andq	%rbp, %rdx
	movq	%rdx, (%rsp)
	mulq	%r11
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r9, %rbx
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %rcx
	movq	(%rsp), %r13
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	leaq	(%r13,%r13), %r15
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	32(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rax
	movq	16(%rsp), %rdx
	movq	%rax, %r11
	shrq	$51, %rax
	andq	%rbp, %rdx
	andq	%rbp, %r11
	addq	%rdx, %rax
	movq	%rax, %r10
	shrq	$51, %rax
	leaq	(%rax,%rsi), %rbx
	leaq	(%rcx,%rcx,8), %rax
	andq	%rbp, %r10
	leaq	(%rcx,%rax,2), %r14
	leaq	(%rbx,%rbx), %rax
	movq	%rax, %rdi
	movq	%r11, %rax
	leaq	(%r14,%r14), %rsi
	mulq	%r11
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %rax
	adcq	%rdx, %r9
	leaq	(%r10,%r10), %r13
	movq	%rax, 16(%rsp)
	addq	%rax, %rax
	mulq	%rbx
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%r8, 32(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	(%rsp)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	(%rsp)
	movq	%rdi, (%rsp)
	movq	%r12, 16(%rsp)
	movq	%r13, 24(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	leaq	(%rcx,%rcx), %r12
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, %r13
	movq	%rdi, %r14
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r13
	shrq	$51, %r14
	movq	%r13, %r8
	addq	%rax, %r8
	movq	%r14, %r9
	movq	%r12, %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	movq	%r8, %rcx
	andq	%rbp, %rdx
	movq	%rdx, (%rsp)
	mulq	%r11
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r9, %rbx
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %rcx
	movq	(%rsp), %r13
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	32(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rax
	movq	16(%rsp), %rdx
	movq	%rax, %r11
	shrq	$51, %rax
	andq	%rbp, %rdx
	andq	%rbp, %r11
	addq	%rdx, %rax
	movq	%rax, %r10
	shrq	$51, %rax
	leaq	(%rax,%rsi), %rbx
	leaq	(%rcx,%rcx,8), %rax
	andq	%rbp, %r10
	leaq	(%rcx,%rax,2), %r14
	leaq	(%r13,%r13), %rax
	movq	%rax, 16(%rsp)
	movq	%r11, %rax
	leaq	(%r14,%r14), %r15
	leaq	(%rbx,%rbx), %rdi
	mulq	%r11
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %rsi
	adcq	%rdx, %r9
	leaq	(%r10,%r10), %r13
	leaq	(%rsi,%rsi), %rax
	mulq	%rbx
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%rsi, %rax
	movq	(%rsp), %rsi
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%r10
	movq	%r12, (%rsp)
	movq	%r13, 8(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	movq	%rdi, %r15
	mulq	%rsi
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r8, %rsi
	leaq	(%rcx,%rcx), %r12
	adcq	%r9, %rdi
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, %r14
	movq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r11
	addq	%rax, %r8
	movq	%r15, %rax
	movq	%rdi, %r15
	adcq	%rdx, %r9
	mulq	%r10
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r14
	shrq	$51, %r15
	movq	%r14, %r8
	addq	%rax, %r8
	movq	%r15, %r9
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%r8, %r15
	movq	%r8, %rcx
	andq	%rbp, %r15
	movq	%rax, %r12
	movq	16(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r9, %rbx
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r9
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	32(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rax
	movq	(%rsp), %rdx
	movq	%rax, %r8
	shrq	$51, %rax
	andq	%rbp, %rdx
	andq	%rbp, %r8
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	addq	%rax, %rsi
	leaq	(%r9,%r9,8), %rax
	andq	%rbp, %rbx
	leaq	(%r9,%rax,2), %rax
	movq	%rbx, %r11
	leaq	(%rsi,%rsi), %rbx
	leaq	(%rax,%rax), %r14
	movq	%rax, %rdi
	leaq	(%r15,%r15), %rax
	movq	%rbx, 32(%rsp)
	movq	%rax, 16(%rsp)
	movq	%r8, %rax
	leaq	(%r11,%r11), %r10
	mulq	%r8
	movq	%r11, (%rsp)
	movq	%rax, %rcx
	movq	%r14, %rax
	movq	%rdx, %rbx
	mulq	%r11
	addq	%rax, %rcx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r12
	adcq	%rdx, %rbx
	leaq	(%r12,%r12), %rax
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%r8
	movq	%rcx, 48(%rsp)
	movq	%rbx, %r13
	movq	%rbx, 56(%rsp)
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r12, %rax
	movq	%rcx, %r12
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	(%rsp), %r11
	shrdq	$51, %rbx, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%r11
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	16(%rsp), %r15
	mulq	%r14
	movq	32(%rsp), %r14
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	%r8
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %r13, %rax
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	(%rsp), %rdi
	adcq	%rdx, %rbx
	mulq	%r9
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%r10, %rax
	movq	%rcx, %r10
	adcq	%r11, %rdx
	movq	%rbx, %r11
	shrdq	$51, %rbx, %r10
	shrq	$51, %r11
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%r9, %r9
	movq	%r9, %rax
	mulq	%r8
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	movq	%r11, %rdx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	shrdq	$51, %r11, %rax
	shrq	$51, %rdx
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	andq	%rbp, %rcx
	andq	%rbp, %r10
	shrdq	$51, %rdx, %rax
	movq	%r10, 184(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	48(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rsi
	movq	%r12, %rdx
	movq	%rsi, %rax
	andq	%rbp, %rdx
	andq	%rbp, %rsi
	shrq	$51, %rax
	movq	%rsi, 160(%rsp)
	addq	%rax, %rdx
	movq	%rdx, %rax
	shrq	$51, %rdx
	andq	%rbp, %rax
	addq	%rcx, %rdx
	movq	%rax, 168(%rsp)
	movq	%r14, %rax
	andq	%rbp, %rax
	movq	%rdx, 176(%rsp)
	movq	88(%rsp), %rdx
	movq	%rax, 192(%rsp)
	movq	72(%rsp), %rsi
	movq	104(%rsp), %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	296(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2644
	addq	$312, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2644:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1390:

	.size	fe_loose_invert, .-fe_loose_invert
# WAS .section	.text.p224_point_double,"ax",@progbits
.text
	.p2align 4
	.type	p224_point_double, @function
.Lp224_point_double_local_target:
p224_point_double:
.LFB1933:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$408, %rsp
	.cfi_def_cfa_offset 464
	movq	8(%r9), %r13
	movq	16(%r14), %r11
	movq	(%rcx), %r12
	movq	8(%rcx), %r15
	movq	%rdi, 80(%rsp)
	movq	%rsi, 128(%rsp)
	movq	(%r9), %rsi
	leaq	(%r13,%r13), %r9
	leaq	(%r11,%r11), %r8
	movq	%rdx, 136(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 392(%rsp)
	xorl	%eax, %eax
	movq	16(%rcx), %rax
	movq	24(%rcx), %rcx
	movq	%rax, 8(%rsp)
	movq	%rsi, %rax
	mulq	%rsi
	movq	%rcx, 16(%rsp)
	movq	%rax, 272(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 280(%rsp)
	mulq	%r9
	movq	%rax, 288(%rsp)
	movq	%r13, %rax
	movq	%rdx, 296(%rsp)
	mulq	%r13
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%r10, 304(%rsp)
	adcq	%rdx, %r11
	movq	24(%r14), %rcx
	addq	%rsi, %rsi
	movq	%rsi, %rax
	movq	%r11, 312(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	16(%r14), %rax
	adcq	%rdx, %rdi
	movq	%rsi, 320(%rsp)
	mulq	%rax
	movq	%rdi, 328(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 336(%rsp)
	movq	%rdi, 344(%rsp)
	leaq	144(%rsp), %rdi
	movq	%rax, 352(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 360(%rsp)
	mulq	%rcx
	movq	%rax, 368(%rsp)
	leaq	272(%rsp), %rax
	movq	%rax, %rsi
	movq	%rdx, 376(%rsp)
	movq	%rax, (%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	(%rbx), %rsi
	movq	8(%rbx), %r13
	movq	16(%rbx), %r11
	movq	24(%rbx), %rcx
	movq	%rsi, %rax
	leaq	(%r13,%r13), %r9
	mulq	%rsi
	leaq	(%r11,%r11), %r8
	movq	%rax, 272(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 280(%rsp)
	mulq	%r9
	movq	%rax, 288(%rsp)
	movq	%r13, %rax
	movq	%rdx, 296(%rsp)
	mulq	%r13
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 304(%rsp)
	movq	%rsi, %rax
	movq	%r11, 312(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	%rdx, %rdi
	mulq	%r8
	leaq	176(%rsp), %r13
	addq	%rax, %rsi
	movq	16(%rbx), %rax
	adcq	%rdx, %rdi
	movq	%rsi, 320(%rsp)
	mulq	%rax
	movq	%rdi, 328(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 336(%rsp)
	movq	(%rsp), %rsi
	movq	%rdi, 344(%rsp)
	movq	%r13, %rdi
	movq	%rax, 352(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 360(%rsp)
	mulq	%rcx
	movq	%rax, 368(%rsp)
	movq	%rdx, 376(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbp, %rsi
	movq	(%rsp), %rbp
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbp, %rsi
	movq	%rbp, (%rsp)
	leaq	208(%rsp), %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	144(%rsp), %rcx
	movq	8(%rsp), %r9
	movabsq	$288230376151711748, %r11
	movq	152(%rsp), %r8
	movabsq	$288225978105200636, %rax
	movq	160(%rsp), %r13
	movabsq	$288230376151711740, %r10
	subq	%rcx, %r11
	movq	%rcx, 96(%rsp)
	subq	%r8, %rax
	movq	%r11, %rsi
	movq	%r8, 104(%rsp)
	leaq	(%rax,%r15), %r11
	addq	%r8, %r15
	addq	%r12, %rsi
	addq	%rcx, %r12
	movabsq	$288230376151711740, %rax
	leaq	(%r12,%r12,2), %rcx
	movq	%r13, 112(%rsp)
	subq	%r13, %rax
	addq	%r9, %rax
	movq	%rax, %rdi
	movq	168(%rsp), %rax
	subq	%rax, %r10
	movq	%rax, %rdx
	movq	%r10, %rax
	movq	16(%rsp), %r10
	movq	%rdx, 120(%rsp)
	leaq	(%rax,%r10), %rbp
	leaq	(%r15,%r15,2), %r10
	movq	8(%rsp), %r15
	leaq	0(%r13,%r15), %rax
	movq	%rdi, %r15
	leaq	(%rax,%rax,2), %r9
	movq	16(%rsp), %rax
	addq	%rdx, %rax
	leaq	(%rax,%rax,2), %r8
	movq	%rsi, %rax
	mulq	%rcx
	movq	%rax, 272(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 280(%rsp)
	mulq	%r10
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%r9
	movq	%r12, 288(%rsp)
	movq	%r13, 296(%rsp)
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%r8
	movq	%r12, 304(%rsp)
	movq	%r13, 312(%rsp)
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 320(%rsp)
	movq	%rdi, 328(%rsp)
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 336(%rsp)
	movq	%rdi, 344(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, 352(%rsp)
	movq	(%rsp), %rsi
	movq	%rdi, 360(%rsp)
	leaq	240(%rsp), %rdi
	movq	%rax, 368(%rsp)
	movq	%rdx, 376(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	248(%rsp), %r10
	movq	264(%rsp), %rbp
	movq	256(%rsp), %r15
	movq	240(%rsp), %r11
	leaq	(%r10,%r10), %rsi
	movq	232(%rsp), %r12
	movq	%r10, 48(%rsp)
	movq	%rsi, %rax
	leaq	(%r15,%r15), %rcx
	movq	%r15, 72(%rsp)
	mulq	%rbp
	movq	%r12, 64(%rsp)
	movabsq	$-281474976710912, %r12
	movq	%r11, 24(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%r15
	movq	216(%rsp), %r15
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rbp
	movq	%r8, 336(%rsp)
	movq	%r9, 344(%rsp)
	movq	208(%rsp), %r9
	movq	%rax, 352(%rsp)
	movq	%rbp, %rax
	leaq	0(,%r9,8), %rdi
	movq	%rdx, 360(%rsp)
	mulq	%rbp
	movq	%r9, 88(%rsp)
	movq	%rax, 368(%rsp)
	movq	224(%rsp), %rax
	movq	%rdx, 376(%rsp)
	movq	%rax, 56(%rsp)
	movq	%r11, %rax
	mulq	%r11
	addq	$256, %rax
	adcq	$1, %rdx
	subq	%rdi, %rax
	sbbq	$0, %rdx
	movq	%rax, 272(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 280(%rsp)
	mulq	%r11
	movq	%rax, %rsi
	leaq	0(,%r15,8), %rax
	movq	%rdx, %rdi
	subq	%rax, %rsi
	movq	%r10, %rax
	sbbq	$0, %rdi
	xorl	%r13d, %r13d
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r10
	movq	%rsi, 288(%rsp)
	movq	56(%rsp), %rsi
	movq	%rdi, 296(%rsp)
	addq	$-256, %rax
	adcq	$0, %rdx
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%r8, %rax
	leaq	(%r11,%r11), %r8
	adcq	%r9, %rdx
	salq	$3, %rsi
	subq	%rsi, %rax
	sbbq	$0, %rdx
	movq	%rax, 304(%rsp)
	movq	%r8, %rax
	movq	%rdx, 312(%rsp)
	mulq	%rbp
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	64(%rsp), %rax
	adcq	%rdx, %rdi
	addq	$-256, %rsi
	leaq	0(,%rax,8), %rdx
	adcq	$0, %rdi
	subq	%rdx, %rsi
	sbbq	$0, %rdi
	movq	%rsi, 320(%rsp)
	movq	(%rsp), %rsi
	movq	%rdi, 328(%rsp)
	movq	80(%rsp), %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	8(%rbx), %rdi
	addq	8(%r14), %rdi
	movq	184(%rsp), %r8
	movq	192(%rsp), %rcx
	movq	176(%rsp), %rax
	movq	24(%rbx), %rsi
	movq	%r8, 16(%rsp)
	addq	24(%r14), %rsi
	movq	%rcx, 32(%rsp)
	movq	16(%rbx), %r8
	movq	(%rbx), %rcx
	addq	(%r14), %rcx
	movq	%rax, 8(%rsp)
	addq	16(%r14), %r8
	leaq	(%rdi,%rdi), %r14
	movq	200(%rsp), %r9
	movq	%r14, %rax
	leaq	(%r8,%r8), %rbx
	mulq	%rsi
	movq	%r9, 40(%rsp)
	movq	96(%rsp), %r9
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	16(%rsp), %r8
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	movq	%r10, 336(%rsp)
	movl	$256, %r10d
	movq	%r11, 344(%rsp)
	movl	$1, %r11d
	movq	%rax, 352(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 360(%rsp)
	mulq	%rsi
	movq	%rax, 368(%rsp)
	movq	8(%rsp), %rax
	movq	%rdx, 376(%rsp)
	addq	%r9, %rax
	movq	%r13, %r9
	movq	32(%rsp), %r13
	subq	%rax, %r10
	movq	%rcx, %rax
	sbbq	$0, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	104(%rsp), %rax
	adcq	%rdx, %r11
	movq	%r10, 272(%rsp)
	movq	$-256, %r10
	addq	%r8, %rax
	movq	%r12, %r8
	movq	112(%rsp), %r12
	movq	%r11, 280(%rsp)
	subq	%rax, %r8
	movq	%r14, %rax
	sbbq	$0, %r9
	mulq	%rcx
	addq	%rax, %r8
	leaq	0(%r13,%r12), %rax
	adcq	%rdx, %r9
	movq	%r8, 288(%rsp)
	xorl	%r11d, %r11d
	movq	%r10, %r8
	subq	%rax, %r8
	movq	%r9, 296(%rsp)
	movq	%rdi, %rax
	movq	%r11, %r9
	sbbq	$0, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	adcq	%rdx, %r9
	movq	%r8, 304(%rsp)
	movq	120(%rsp), %r12
	movq	%r9, 312(%rsp)
	movq	40(%rsp), %r9
	leaq	(%r9,%r12), %rax
	subq	%rax, %r10
	leaq	(%rcx,%rcx), %rax
	sbbq	$0, %r11
	mulq	%rsi
	movq	%r10, %r8
	movq	(%rsp), %rsi
	movq	%r11, %r9
	addq	%rax, %r8
	movq	%rbx, %rax
	movabsq	$288230376151711748, %rbx
	adcq	%rdx, %r9
	mulq	%rdi
	movq	136(%rsp), %rdi
	addq	%rax, %r8
	adcq	%rdx, %r9
	movq	%r8, 320(%rsp)
	movq	%r9, 328(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	80(%rsp), %rdx
	movq	88(%rsp), %rcx
	leaq	(%r13,%r13), %r9
	movq	8(%rsp), %r14
	movq	%r13, 32(%rsp)
	leaq	(%rbx,%rcx,4), %rcx
	subq	(%rdx), %rcx
	subq	$8, %rbx
	movq	24(%rsp), %r13
	movq	%rcx, %r12
	movq	%r14, %rax
	movabsq	$288225978105200636, %rcx
	leaq	(%rcx,%r15,4), %r8
	movq	%rdx, %rcx
	subq	8(%rdx), %r8
	movq	56(%rsp), %rdx
	movq	%r12, 56(%rsp)
	leaq	(%rbx,%rdx,4), %rdi
	movq	64(%rsp), %rdx
	subq	16(%rcx), %rdi
	leaq	(%rbx,%rdx,4), %rsi
	movq	16(%rsp), %rbx
	subq	24(%rcx), %rsi
	mulq	%r14
	leaq	(%rbx,%rbx), %rcx
	movabsq	$72057594037927936, %rbx
	movq	%rcx, %r15
	xorl	%ecx, %ecx
	movq	%rbx, %r11
	shldq	$3, %rax, %rdx
	movq	%rcx, %r10
	salq	$3, %rax
	movq	%r15, 64(%rsp)
	subq	%rax, %r10
	movq	%r12, %rax
	sbbq	%rdx, %r11
	mulq	%r13
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	%r15
	xorl	%r14d, %r14d
	movabsq	$72057594037927935, %r15
	movq	%r10, 272(%rsp)
	movq	%r14, %r10
	movq	%r11, 280(%rsp)
	movq	%r15, %r11
	shldq	$3, %rax, %rdx
	salq	$3, %rax
	subq	%rax, %r10
	movq	%r13, %rax
	movq	%r15, %r13
	sbbq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%r12, %rax
	movq	%r14, %r12
	adcq	%rdx, %r11
	mulq	48(%rsp)
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, 288(%rsp)
	movq	%r11, 296(%rsp)
	movq	16(%rsp), %r11
	movq	%r11, %rax
	mulq	%r11
	movq	%rax, %r10
	movq	8(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	24(%rsp), %rax
	adcq	%rdx, %r11
	shldq	$3, %r10, %r11
	salq	$3, %r10
	subq	%r10, %r12
	sbbq	%r11, %r13
	mulq	%rdi
	movq	%r12, %r10
	movq	%r13, %r11
	movq	48(%rsp), %r13
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	56(%rsp), %rax
	adcq	%rdx, %r11
	mulq	72(%rsp)
	addq	%rax, %r10
	movq	8(%rsp), %rax
	movq	%r10, 304(%rsp)
	adcq	%rdx, %r11
	leaq	(%rax,%rax), %r10
	movq	%r11, 312(%rsp)
	movq	%r10, %rax
	mulq	40(%rsp)
	movq	%rax, %r10
	movq	16(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	24(%rsp), %rax
	adcq	%rdx, %r11
	shldq	$3, %r10, %r11
	salq	$3, %r10
	subq	%r10, %rcx
	sbbq	%r11, %rbx
	mulq	%rsi
	movq	%rcx, %r10
	movq	%rbx, %r11
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	56(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %rcx
	movq	%rdx, %rbx
	addq	%r10, %rcx
	movq	40(%rsp), %r10
	adcq	%r11, %rbx
	movq	72(%rsp), %r11
	movq	%r11, %rax
	mulq	%r8
	addq	%rax, %rcx
	movq	%rcx, 320(%rsp)
	movq	32(%rsp), %rcx
	adcq	%rdx, %rbx
	movq	%rbx, 328(%rsp)
	movq	%rcx, %rax
	mulq	%rcx
	movq	%rax, %rcx
	movq	64(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%r10
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	xorl	%ecx, %ecx
	movabsq	$72056494526300159, %rbx
	shldq	$3, %rax, %rdx
	salq	$3, %rax
	subq	%rax, %rcx
	movq	%r13, %rax
	sbbq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	mulq	%r10
	movq	%rcx, 336(%rsp)
	movq	%r14, %rcx
	movq	%rbx, 344(%rsp)
	movq	%r15, %rbx
	shldq	$3, %rax, %rdx
	salq	$3, %rax
	subq	%rax, %rcx
	movq	%r11, %rax
	sbbq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	128(%rsp), %rdi
	adcq	%rdx, %rbx
	mulq	%rbp
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%r10
	movq	%rcx, 352(%rsp)
	movq	%r14, %rcx
	movq	%rbx, 360(%rsp)
	movq	%r15, %rbx
	shldq	$3, %rax, %rdx
	salq	$3, %rax
	subq	%rax, %rcx
	movq	%rsi, %rax
	movq	(%rsp), %rsi
	sbbq	%rdx, %rbx
	mulq	%rbp
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	392(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2648
	addq	$408, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2648:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1933:

	.size	p224_point_double, .-p224_point_double
# WAS .section	.text.ec_GFp_nistp224_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_dbl, @function
.Lec_GFp_nistp224_dbl_local_target:
ec_GFp_nistp224_dbl:
.LFB1939:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %rax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	(%rax), %rsi
	movq	8(%rax), %rdi
	movq	%fs:40, %rdx
	movq	%rdx, 104(%rsp)
	xorl	%edx, %edx
	leaq	64(%rsp), %rbp
	leaq	32(%rsp), %r12
	movq	%rsp, %r13
	movabsq	$72057594037927935, %rdx
	movq	%rsi, %rcx
	movq	%rbp, %r9
	movq	%r12, %r8
	andq	%rdx, %rcx
	movq	%rcx, (%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rdx, %rcx
	movq	%rcx, 8(%rsp)
	movq	16(%rax), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	80(%rax), %rdi
	andq	%rdx, %rsi
	movq	%rsi, 16(%rsp)
	movq	24(%rax), %rsi
	shrdq	$40, %rsi, %rcx
	movq	72(%rax), %rsi
	andq	%rdx, %rcx
	movq	%rcx, 24(%rsp)
	movq	%rsi, %rcx
	andq	%rdx, %rcx
	movq	%rcx, 32(%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rdx, %rcx
	movq	%rcx, 40(%rsp)
	movq	88(%rax), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	152(%rax), %rdi
	andq	%rdx, %rsi
	movq	%rsi, 48(%rsp)
	movq	96(%rax), %rsi
	shrdq	$40, %rsi, %rcx
	movq	144(%rax), %rsi
	andq	%rdx, %rcx
	movq	%rcx, 56(%rsp)
	movq	%rsi, %rcx
	andq	%rdx, %rcx
	movq	%rcx, 64(%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rdx, %rcx
	movq	%rcx, 72(%rsp)
	movq	160(%rax), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	%r13, %rdi
	andq	%rdx, %rsi
	movq	%rsi, 80(%rsp)
	movq	168(%rax), %rsi
	movq	%rcx, %rax
	movq	%r13, %rcx
	shrdq	$40, %rsi, %rax
	movq	%r12, %rsi
	andq	%rdx, %rax
	movq	%rbp, %rdx
	movq	%rax, 88(%rsp)
# WAS call	p224_point_double
	call	.Lp224_point_double_local_target
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	leaq	72(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	leaq	144(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2652
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L2652:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1939:

	.size	ec_GFp_nistp224_dbl, .-ec_GFp_nistp224_dbl
# WAS .section	.text.ec_GFp_nistp224_point_get_affine_coordinates.part.0,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_point_get_affine_coordinates.part.0, @function
.Lec_GFp_nistp224_point_get_affine_coordinates.part.0_local_target:
ec_GFp_nistp224_point_get_affine_coordinates.part.0:
.LFB3012:

	.cfi_startproc
	movabsq	$72057594037927935, %rcx
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$440, %rsp
	.cfi_def_cfa_offset 496
	movq	%rdi, 88(%rsp)
	leaq	304(%rsp), %rbx
	leaq	112(%rsp), %r14
	movq	%rsi, 72(%rsp)
	movq	152(%rdi), %rsi
	leaq	176(%rsp), %r15
	movq	%rdx, 80(%rsp)
	movq	144(%rdi), %rdx
	movq	%fs:40, %rax
	movq	%rax, 424(%rsp)
	xorl	%eax, %eax
	movq	%rdx, %rax
	movq	%r14, 64(%rsp)
	andq	%rcx, %rax
	movq	%rax, 112(%rsp)
	movq	%rsi, %rax
	shldq	$8, %rdx, %rax
	andq	%rcx, %rax
	movq	%rax, 120(%rsp)
	movq	160(%rdi), %rax
	movq	%rax, %rdx
	shldq	$16, %rsi, %rdx
	movq	%r14, %rsi
	andq	%rcx, %rdx
	movq	%rdx, 128(%rsp)
	movq	168(%rdi), %rdx
	movq	%rbx, %rdi
	shrdq	$40, %rdx, %rax
	andq	%rcx, %rax
	movq	%rax, 136(%rsp)
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movq	%r15, 56(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	176(%rsp), %rsi
	movq	184(%rsp), %rbp
	movq	192(%rsp), %r9
	movq	200(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r12
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r12
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r12, %rax
	leaq	208(%rsp), %r12
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r15, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	208(%rsp), %rsi
	movq	216(%rsp), %rbp
	movq	224(%rsp), %r9
	movq	232(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r13
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r13
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r12, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	176(%rsp), %rsi
	movq	184(%rsp), %rbp
	movq	192(%rsp), %r9
	movq	200(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r13
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r13
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	movl	$5, %ebp
	mulq	%r8
	addq	%rax, %rsi
	movq	%r13, %rax
	movq	%rbx, %r13
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r12, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2654:

	movq	208(%rsp), %rcx
	movq	216(%rsp), %r11
	movq	224(%rsp), %r10
	movq	232(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r11,%r11), %r14
	mulq	%rcx
	leaq	(%r10,%r10), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r14
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%r11
	addq	%rax, %r8
	adcq	%rdx, %r9
	addq	%rcx, %rcx
	movq	%r8, 336(%rsp)
	movq	%rcx, %rax
	movq	%r9, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r11, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r14, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r10, %rax
	movq	%rdx, %rbx
	mulq	%r10
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r12, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2654
	movq	56(%rsp), %rdx
	movq	%r13, %rdi
	movq	%r12, %rsi
	movq	%r13, %rbx
	leaq	240(%rsp), %r14
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	208(%rsp), %rsi
	movq	216(%rsp), %rbp
	movq	%r14, 48(%rsp)
	movq	224(%rsp), %r9
	movq	232(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r13
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r13
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	movl	$11, %ebp
	mulq	%r8
	addq	%rax, %rsi
	movq	%r13, %rax
	movq	%rbx, %r13
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r14, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2655:

	movq	240(%rsp), %rcx
	movq	248(%rsp), %r9
	movq	256(%rsp), %r8
	movq	264(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r9,%r9), %r15
	mulq	%rcx
	leaq	(%r8,%r8), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r15
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rcx, %rcx
	movq	%r10, 336(%rsp)
	movq	%rcx, %rax
	movq	%r11, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r8, %rax
	movq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r14, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2655
	movq	48(%rsp), %r14
	movq	%r12, %rdx
	movq	%r13, %rdi
	movl	$23, %ebp
	movq	%r14, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2656:

	movq	240(%rsp), %rcx
	movq	248(%rsp), %r9
	movq	256(%rsp), %r8
	movq	264(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r9,%r9), %r15
	mulq	%rcx
	leaq	(%r8,%r8), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r15
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rcx, %rcx
	movq	%r10, 336(%rsp)
	movq	%rcx, %rax
	movq	%r11, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r8, %rax
	movq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r14, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2656
	movq	48(%rsp), %r15
	movq	%r12, %rdx
	movq	%r13, %rdi
	movq	%r15, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	240(%rsp), %rsi
	movq	248(%rsp), %rbp
	movq	256(%rsp), %r9
	movq	264(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r14
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r14
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	movl	$47, %ebp
	mulq	%r8
	addq	%rax, %rsi
	movq	%r14, %rax
	leaq	272(%rsp), %r14
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r14, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2657:

	movq	272(%rsp), %rcx
	movq	280(%rsp), %r9
	movq	288(%rsp), %r8
	movq	296(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r9,%r9), %r15
	mulq	%rcx
	leaq	(%r8,%r8), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r15
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rcx, %rcx
	movq	%r10, 336(%rsp)
	movq	%rcx, %rax
	movq	%r11, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r8, %rax
	movq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r14, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2657
	movq	48(%rsp), %r15
	movq	%r14, %rdx
	movq	%r13, %rdi
	movq	%r15, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r15, %rdi
	movq	%r13, %rsi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	240(%rsp), %rsi
	movq	248(%rsp), %rbp
	movq	256(%rsp), %r15
	movq	264(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r9
	mulq	%rsi
	leaq	(%r15,%r15), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r9
	movq	%rax, 320(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 328(%rsp)
	mulq	%r8
	movq	%rax, %r10
	movq	%rbp, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	movl	$23, %ebp
	mulq	%r8
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r14, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2658:

	movq	272(%rsp), %rcx
	movq	280(%rsp), %r9
	movq	288(%rsp), %r8
	movq	296(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r9,%r9), %r15
	mulq	%rcx
	leaq	(%r8,%r8), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r15
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rcx, %rcx
	movq	%r10, 336(%rsp)
	movq	%rcx, %rax
	movq	%r11, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r8, %rax
	movq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r14, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2658
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r13, %rdi
	movl	$6, %ebp
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	.p2align 4,,10
	.p2align 3
.L2659:

	movq	208(%rsp), %rcx
	movq	216(%rsp), %r9
	movq	224(%rsp), %r15
	movq	232(%rsp), %rsi
	movq	%rcx, %rax
	leaq	(%r9,%r9), %r8
	mulq	%rcx
	leaq	(%r15,%r15), %rdi
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r8
	movq	%rax, 320(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rdi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rcx, %rcx
	movq	%r10, 336(%rsp)
	movq	%rcx, %rax
	movq	%r11, 344(%rsp)
	mulq	%rsi
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	%r15
	movq	%rcx, 352(%rsp)
	movq	%rbx, 360(%rsp)
	movq	%rax, %rcx
	movq	%r8, %rax
	movq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%rdi, %rax
	movq	%r12, %rdi
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, 368(%rsp)
	movq	%rbx, 376(%rsp)
	movq	%rax, 384(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rsi
	movq	%r13, %rsi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	subq	$1, %rbp
	jne	.L2659
	movq	56(%rsp), %r15
	movq	%r12, %rsi
	movq	%r13, %rdi
	movq	%r15, %rdx
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r15, %rdi
	movq	%r13, %rsi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	176(%rsp), %rsi
	movq	184(%rsp), %rbp
	movq	192(%rsp), %r9
	movq	200(%rsp), %rcx
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %r12
	mulq	%rsi
	leaq	(%r9,%r9), %r8
	movq	%rax, 304(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r12
	movq	%rax, 320(%rsp)
	movq	%rbp, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rbp
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%rsi, %rsi
	movq	%r10, 336(%rsp)
	movq	%rsi, %rax
	movq	%r11, 344(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rbp, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 368(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 376(%rsp)
	movq	%r15, %rdi
	movq	%rax, 384(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 392(%rsp)
	mulq	%rcx
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	64(%rsp), %rdx
	movq	%r15, %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	192(%rsp), %rsi
	movq	%r13, 96(%rsp)
	movq	200(%rsp), %r15
	movq	%r14, 104(%rsp)
	movq	$97, 40(%rsp)
	movq	176(%rsp), %rbp
	movq	%rsi, %r10
	movq	184(%rsp), %rcx
	movq	%r15, %rsi
	.p2align 4,,10
	.p2align 3
.L2660:

	leaq	(%r10,%r10), %r9
	movq	%rsi, %rax
	leaq	(%rcx,%rcx), %rdi
	movq	%rsi, %r8
	mulq	%r9
	movq	%rax, 16(%rsp)
	movq	%rsi, %rax
	movq	%rdx, 24(%rsp)
	mulq	%rsi
	movq	%rax, %rbx
	movq	%rax, %r11
	movq	%r10, %rax
	movq	%rdx, %rsi
	shrdq	$16, %rdx, %r11
	movq	%rdx, %r12
	mulq	%r10
	shrq	$16, %r12
	movq	%r12, %r13
	movq	%r11, %r12
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r8, %rax
	addq	%r12, %r10
	movabsq	$9223372036854775680, %r12
	adcq	%r13, %r11
	mulq	%rdi
	movq	%r10, %r14
	movq	%r11, %r15
	addq	%rax, %r14
	movq	%rcx, %rax
	adcq	%rdx, %r15
	xorl	%r11d, %r11d
	subq	%rbx, %r11
	sbbq	%rsi, %r12
	mulq	%rcx
	movq	%r12, %r13
	movq	%r11, %r12
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	addq	%r12, %r10
	movabsq	$72056494526300160, %r12
	adcq	%r13, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	16(%rsp), %rax
	adcq	%rdx, %r11
	movq	24(%rsp), %rdx
	xorl	%r13d, %r13d
	shldq	$40, %rax, %rdx
	salq	$40, %rax
	andq	%r12, %rax
	andq	%r13, %rdx
	addq	%r10, %rax
	movq	%r14, %r10
	adcq	%r11, %rdx
	movq	%r15, %r11
	shrdq	$16, %r11, %r10
	shrq	$16, %r11
	addq	%r10, %rax
	leaq	(%rbp,%rbp), %r10
	adcq	%r11, %rdx
	movq	%rax, (%rsp)
	movq	%r8, %rax
	movq	(%rsp), %r8
	movq	%rdx, 8(%rsp)
	mulq	%r10
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	movq	8(%rsp), %r9
	mulq	%rcx
	addq	%rax, %r10
	adcq	%rdx, %r11
	shldq	$40, %rbx, %rsi
	salq	$40, %rbx
	movq	%rsi, %rdx
	movq	24(%rsp), %rsi
	movq	%rbx, %rax
	movq	16(%rsp), %rbx
	andq	%r13, %rdx
	andq	%r12, %rax
	movq	%rsi, %r13
	addq	%r10, %rax
	movq	%rbx, %r12
	movl	$32768, %r10d
	adcq	%r11, %rdx
	shrdq	$16, %rsi, %r12
	movabsq	$-9223372036854775808, %r11
	shrq	$16, %r13
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	shrdq	$56, %r9, %r8
	shrq	$56, %r9
	addq	%r8, %r12
	adcq	%r9, %r13
	movq	%r12, %rdx
	shrdq	$56, %r13, %rdx
	movq	%r13, %rcx
	movq	%rdx, %r8
	mulq	%rbp
	shrq	$56, %rcx
	movq	%rcx, %r9
	addq	%r10, %rax
	adcq	%r11, %rdx
	subq	%r14, %rax
	sbbq	%r15, %rdx
	movq	%rax, %r10
	movq	%rbp, %rax
	movabsq	$9223372036854775679, %rbp
	subq	%r8, %r10
	movq	%rdx, %r11
	sbbq	%rcx, %r11
	mulq	%rdi
	movq	%r14, %rcx
	movabsq	$-36028797018963968, %rdi
	addq	%rdi, %rax
	movabsq	$72056494526300160, %rdi
	adcq	%rbp, %rdx
	subq	%rbx, %rax
	movq	%r15, %rbx
	sbbq	%rsi, %rdx
	salq	$40, %rcx
	xorl	%ebp, %ebp
	shldq	$40, %r14, %rbx
	andq	%rdi, %rcx
	andq	%rbp, %rbx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shldq	$40, %r8, %r9
	movq	%r11, %rdx
	salq	$40, %r8
	andq	%rbp, %r9
	movabsq	$72057594037927935, %rbp
	andq	%rdi, %r8
	movabsq	$72057594037927935, %rdi
	addq	%r8, %rcx
	movq	%r13, %r8
	adcq	%r9, %rbx
	shrdq	$56, %r11, %rax
	shrq	$56, %rdx
	addq	%rax, %rcx
	movabsq	$72057594037927935, %rax
	adcq	%rdx, %rbx
	andq	(%rsp), %rax
	shrq	$8, %r8
	andq	%r10, %rbp
	xorl	%edx, %edx
	xorl	%r9d, %r9d
	andq	8(%rsp), %rdx
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	movq	%rbx, %rdx
	movq	%rdi, %r10
	shrdq	$56, %rbx, %rax
	shrq	$56, %rdx
	movabsq	$72057594037927935, %rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	andq	%rbx, %r12
	andq	%rax, %r10
	andq	%rdi, %rcx
	shrdq	$56, %rdx, %rax
	movq	%r12, %r8
	addq	%rax, %r8
	subq	$1, 40(%rsp)
	movq	%r8, %rsi
	jne	.L2660
	movq	96(%rsp), %rbx
	movq	48(%rsp), %rdx
	movq	%rcx, 184(%rsp)
	movq	56(%rsp), %rsi
	movq	%r10, 192(%rsp)
	movq	%rbx, %rdi
	movq	%r8, 200(%rsp)
	movq	104(%rsp), %r14
	movq	%rbp, 176(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	leaq	144(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	144(%rsp), %r12
	movq	152(%rsp), %r15
	movq	160(%rsp), %r13
	movq	%r12, %rax
	leaq	(%r15,%r15), %r8
	movq	%r15, %r11
	movq	%r15, (%rsp)
	mulq	%r12
	leaq	(%r13,%r13), %rcx
	movq	%rax, 304(%rsp)
	movq	%r12, %rax
	movq	%rdx, 312(%rsp)
	mulq	%r8
	movq	%rax, 320(%rsp)
	movq	%r12, %rax
	movq	%rdx, 328(%rsp)
	mulq	%rcx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	%r15
	movq	168(%rsp), %r15
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, 336(%rsp)
	movq	%rdi, 344(%rsp)
	leaq	(%r12,%r12), %rdi
	movq	%rdi, %rax
	mulq	%r15
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	%r13
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%r15
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, 368(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 376(%rsp)
	movq	64(%rsp), %rdi
	movq	%rax, 384(%rsp)
	movq	%r15, %rax
	movq	%rdx, 392(%rsp)
	mulq	%r15
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	cmpq	$0, 72(%rsp)
	je	.L2661
	movq	88(%rsp), %r9
	movabsq	$72057594037927935, %rbp
	movabsq	$72057594037927935, %rcx
	movabsq	$72057594037927935, %r11
	movabsq	$72057594037927935, %r10
	movq	136(%rsp), %r8
	movq	8(%r9), %rsi
	movq	(%r9), %rdx
	movq	%rsi, %rax
	andq	%rdx, %rcx
	shldq	$8, %rdx, %rax
	andq	%rax, %rbp
	movq	16(%r9), %rax
	movq	%rax, %rdx
	shldq	$16, %rsi, %rdx
	andq	%rdx, %r11
	movq	24(%r9), %rdx
	movq	112(%rsp), %r9
	shrdq	$40, %rdx, %rax
	andq	%rax, %r10
	movq	%rcx, %rax
	mulq	%r9
	movq	%rax, 304(%rsp)
	movq	%rcx, %rax
	movq	%rdx, 312(%rsp)
	mulq	120(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	120(%rsp)
	movq	%rsi, 320(%rsp)
	movq	%rdi, 328(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	128(%rsp)
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	128(%rsp)
	movq	%rsi, 336(%rsp)
	movq	%rdi, 344(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	120(%rsp)
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	mulq	128(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	120(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, 368(%rsp)
	movq	%rdi, 376(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	mulq	128(%rsp)
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%r10
	movq	%rsi, 384(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 392(%rsp)
	movq	%r14, %rdi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	72(%rsp), %rdi
	movq	%r14, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
.L2661:

	cmpq	$0, 80(%rsp)
	je	.L2662
	movq	88(%rsp), %r11
	movq	112(%rsp), %rbp
	movabsq	$72057594037927935, %rcx
	movq	(%rsp), %r9
	movq	120(%rsp), %r8
	movq	72(%r11), %rdx
	movq	%rdx, %rsi
	andq	%rcx, %rsi
	movq	%rsi, 240(%rsp)
	movq	80(%r11), %rsi
	movq	%rsi, %rax
	shldq	$8, %rdx, %rax
	andq	%rcx, %rax
	movq	%rax, 248(%rsp)
	movq	88(%r11), %rax
	movq	%rax, %rdx
	shldq	$16, %rsi, %rdx
	andq	%rcx, %rdx
	movq	%rdx, 256(%rsp)
	movq	96(%r11), %rdx
	shrdq	$40, %rdx, %rax
	andq	%rcx, %rax
	movq	128(%rsp), %rcx
	movq	%rax, 264(%rsp)
	movq	%r12, %rax
	mulq	%rbp
	movq	%rax, 304(%rsp)
	movq	%r9, %rax
	movq	%rdx, 312(%rsp)
	mulq	%rbp
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, 320(%rsp)
	movq	%rdi, 328(%rsp)
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	movq	136(%rsp), %r9
	mulq	%r8
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r15
	movq	%r10, 336(%rsp)
	movq	%r11, 344(%rsp)
	movq	(%rsp), %r11
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, 368(%rsp)
	movq	%rdi, 376(%rsp)
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	%rdx, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r15, %rax
	movq	64(%rsp), %r15
	adcq	%rdx, %rdi
	mulq	%r9
	movq	%rsi, 384(%rsp)
	movq	%rbx, %rsi
	movq	%rdi, 392(%rsp)
	movq	%r15, %rdi
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	48(%rsp), %rsi
	movq	%r15, %rdx
	movq	%rbx, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	80(%rsp), %rdi
	movq	%r14, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
.L2662:

	movq	424(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2678
	addq	$440, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2678:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3012:

	.size	ec_GFp_nistp224_point_get_affine_coordinates.part.0, .-ec_GFp_nistp224_point_get_affine_coordinates.part.0
# WAS .section	.rodata.ec_GFp_nistp224_point_get_affine_coordinates.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC110:

	.string	"/aws-lc/crypto/fipsmodule/ec/p224-64.c"
# WAS .section	.text.ec_GFp_nistp224_point_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_point_get_affine_coordinates, @function
.Lec_GFp_nistp224_point_get_affine_coordinates_local_target:
ec_GFp_nistp224_point_get_affine_coordinates:
.LFB1937:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movl	328(%rax), %edx
	testl	%edx, %edx
	jle	.L2687
	cmpl	$1, %edx
	je	.L2688
	movl	%edx, %eax
	movdqu	144(%rdi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L2682
	movdqu	160(%rdi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L2682
	movdqu	176(%rdi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L2682
	movdqu	192(%rdi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L2682
	movdqu	208(%rdi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L2682
	xorl	%r8d, %r8d
.L2683:

	movq	%r8, %r9
	addq	$1, %r8
	salq	$4, %r9
	movdqu	224(%rdi,%r9), %xmm1
	leal	5(%r8), %r9d
	por	%xmm1, %xmm0
	cmpl	%eax, %r9d
	jb	.L2683
	.p2align 4,,10
	.p2align 3
.L2682:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L2684
	andl	$-2, %edx
.L2681:

	movslq	%edx, %rdx
	orq	144(%rdi,%rdx,8), %rax
.L2684:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
.L2680:

	testl	%eax, %eax
	jne	.L2709
	movq	%rcx, %rdx
# WAS jmp	ec_GFp_nistp224_point_get_affine_coordinates.part.0
	jmp	.Lec_GFp_nistp224_point_get_affine_coordinates.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L2709:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$868, %r8d
	leaq	.LC110(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2687:

	movl	$1, %eax
	jmp	.L2680
.L2688:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L2681
	.cfi_endproc
.LFE1937:

	.size	ec_GFp_nistp224_point_get_affine_coordinates, .-ec_GFp_nistp224_point_get_affine_coordinates
# WAS .section	.text.p224_point_add.constprop.1,"ax",@progbits
.text
	.p2align 4
	.type	p224_point_add.constprop.1, @function
.Lp224_point_add.constprop.1_local_target:
p224_point_add.constprop.1:
.LFB3227:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$664, %rsp
	.cfi_def_cfa_offset 720
	movdqu	(%r8), %xmm4
	movdqu	16(%r8), %xmm3
	movq	%rcx, 152(%rsp)
	movq	728(%rsp), %rcx
	movq	720(%rsp), %rax
	movq	%rdi, 120(%rsp)
	movq	%rcx, 48(%rsp)
	movq	736(%rsp), %rcx
	movq	%rsi, 128(%rsp)
	movq	(%r8), %rdi
	movq	%rdx, 136(%rsp)
	movq	8(%r8), %rsi
	movq	%rcx, 144(%rsp)
	movq	%rax, 40(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 648(%rsp)
	xorl	%eax, %eax
	movq	%rdi, 32(%rsp)
	movq	%rsi, 56(%rsp)
	movq	16(%r8), %r11
	movq	24(%r8), %r10
	movq	8(%rbx), %rbp
	movaps	%xmm4, 256(%rsp)
	movq	(%rbx), %r8
	movq	16(%rbx), %r13
	movq	%r11, 64(%rsp)
	movdqu	(%rbx), %xmm10
	movdqu	16(%rbx), %xmm5
	movq	%rbp, 88(%rsp)
	movq	24(%rbx), %rbx
	movq	8(%r9), %rbp
	movq	%r10, 72(%rsp)
	movq	16(%r9), %rcx
	movdqu	16(%r9), %xmm2
	movq	%r8, 80(%rsp)
	movq	%rbx, 104(%rsp)
	movq	(%r9), %rbx
	leaq	(%rbp,%rbp), %r11
	leaq	(%rcx,%rcx), %r10
	movdqu	(%r9), %xmm6
	movq	24(%r14), %r12
	movq	%xmm2, %rsi
	movq	%rbx, %rax
	leaq	(%rbx,%rbx), %rdi
	movq	%rcx, 112(%rsp)
	mulq	%rbx
	movq	%r13, 96(%rsp)
	leaq	416(%rsp), %r13
	movaps	%xmm3, 272(%rsp)
	movaps	%xmm10, 192(%rsp)
	movq	%rax, 416(%rsp)
	movq	%rbx, %rax
	movq	%rdx, 424(%rsp)
	mulq	%r11
	movaps	%xmm5, 208(%rsp)
	movq	%rax, 432(%rsp)
	movq	%rbp, %rax
	movq	%rdx, 440(%rsp)
	mulq	%rbp
	movq	%rax, %r8
	movq	%rbx, %rax
	movq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r12
	movq	%r8, 448(%rsp)
	movq	%r9, 456(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	movq	%r8, 464(%rsp)
	movq	%r9, 472(%rsp)
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r12
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r12
	movq	%rsi, 480(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 488(%rsp)
	movq	%rax, 496(%rsp)
	movq	%r12, %rax
	movq	%rdx, 504(%rsp)
	mulq	%r12
	movq	%rax, 512(%rsp)
	leaq	160(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, (%rsp)
	movq	%rdx, 520(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	(%rsp), %rsi
	movq	%r14, %rdx
	movq	%r13, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	leaq	224(%rsp), %rdi
	movq	%r13, %rsi
	movq	%rdi, 24(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	48(%rsp), %rdx
	movq	24(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	448(%rsp), %rax
	xorl	%r11d, %r11d
	movq	456(%rsp), %rdx
	movq	416(%rsp), %r8
	movq	424(%rsp), %r9
	movabsq	$-281474976710912, %r10
	addq	432(%rsp), %r10
	adcq	440(%rsp), %r11
	addq	$-256, %rax
	adcq	$0, %rdx
	movq	%rax, %rsi
	movq	464(%rsp), %rax
	movq	%rdx, %rdi
	movq	472(%rsp), %rdx
	addq	$-256, %rax
	adcq	$0, %rdx
	addq	$256, %r8
	adcq	$1, %r9
	subq	32(%rsp), %r8
	sbbq	$0, %r9
	subq	56(%rsp), %r10
	movq	%r8, 416(%rsp)
	sbbq	$0, %r11
	subq	64(%rsp), %rsi
	movq	%r9, 424(%rsp)
	sbbq	$0, %rdi
	subq	72(%rsp), %rax
	movq	%rsi, 448(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 456(%rsp)
	movq	24(%rsp), %rdi
	sbbq	$0, %rdx
	movq	%r10, 432(%rsp)
	movq	%r11, 440(%rsp)
	movq	%rax, 464(%rsp)
	movq	%rdx, 472(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	40(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	448(%rsp), %rax
	xorl	%r11d, %r11d
	movq	456(%rsp), %rdx
	movq	416(%rsp), %r8
	movq	424(%rsp), %r9
	movabsq	$-281474976710912, %r10
	addq	432(%rsp), %r10
	adcq	440(%rsp), %r11
	addq	$-256, %rax
	adcq	$0, %rdx
	movq	%rax, %rsi
	movq	464(%rsp), %rax
	movq	%rdx, %rdi
	movq	472(%rsp), %rdx
	addq	$-256, %rax
	adcq	$0, %rdx
	addq	$256, %r8
	adcq	$1, %r9
	subq	80(%rsp), %r8
	sbbq	$0, %r9
	subq	88(%rsp), %r10
	movq	%r8, 416(%rsp)
	sbbq	$0, %r11
	subq	96(%rsp), %rsi
	movq	%r9, 424(%rsp)
	sbbq	$0, %rdi
	subq	104(%rsp), %rax
	movq	%rsi, 448(%rsp)
	movq	%r13, %rsi
	movq	%rdi, 456(%rsp)
	movq	(%rsp), %rdi
	sbbq	$0, %rdx
	movq	%r10, 432(%rsp)
	movq	%r11, 440(%rsp)
	movq	%rax, 464(%rsp)
	movq	%rdx, 472(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	112(%rsp), %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	176(%rsp), %r9
	xorq	$1, %rdx
	movq	%rbp, %r8
	movq	%r12, %r11
	movabsq	$72057594037927935, %rdi
	movq	%rcx, %rax
	movq	240(%rsp), %r10
	movdqa	160(%rsp), %xmm1
	movdqa	176(%rsp), %xmm0
	xorq	%rdi, %r9
	xorq	%rdi, %rax
	movq	%r9, 56(%rsp)
	xorq	%rdi, %r10
	movabsq	$72056494526300160, %r9
	xorq	%r9, %rsi
	orq	%rsi, %rdx
	movq	%r12, %rsi
	xorq	%rdi, %rsi
	orq	%rax, %rdx
	orq	%rsi, %rdx
	movq	%rbx, %rsi
	orq	%rbp, %rbx
	xorq	$2, %rsi
	orq	%rcx, %rbx
	subq	$1, %rdx
	movq	144(%rsp), %rcx
	orq	%rax, %rsi
	orq	%r12, %rbx
	movabsq	$72055395014672384, %rax
	xorq	%rax, %r8
	subq	$1, %rbx
	movq	8(%rcx), %rbp
	orq	%r8, %rsi
	movabsq	$144115188075855871, %r8
	xorq	%r8, %r11
	movq	%rbp, %r12
	orq	%r11, %rsi
	movq	16(%rcx), %r11
	xorq	%r9, %r12
	subq	$1, %rsi
	orq	%rsi, %rdx
	xorq	%rdi, %r11
	orq	%rbx, %rdx
	movq	24(%rcx), %rbx
	movq	%rdx, 32(%rsp)
	movq	(%rcx), %rdx
	movq	%rdx, %rsi
	xorq	$1, %rsi
	orq	%r12, %rsi
	movq	%rbx, %r12
	xorq	%rdi, %r12
	orq	%r11, %rsi
	orq	%r12, %rsi
	movq	%rdx, %r12
	subq	$1, %rsi
	xorq	$2, %r12
	orq	%rbp, %rdx
	orq	16(%rcx), %rdx
	orq	%r11, %r12
	movq	%rbp, %r11
	orq	%rbx, %rdx
	xorq	%rax, %r11
	subq	$1, %rdx
	orq	%r12, %r11
	movq	%rbx, %r12
	xorq	%r8, %r12
	orq	%r12, %r11
	subq	$1, %r11
	orq	%r11, %rsi
	movq	%rsi, %rbx
	movq	224(%rsp), %rsi
	orq	%rdx, %rbx
	movq	232(%rsp), %rdx
	xorq	$1, %rsi
	movq	%rbx, 64(%rsp)
	xorq	%r9, %rdx
	orq	%rdx, %rsi
	movq	248(%rsp), %rdx
	orq	%r10, %rsi
	xorq	%rdi, %rdx
	orq	%rdx, %rsi
	movq	224(%rsp), %rdx
	subq	$1, %rsi
	xorq	$2, %rdx
	orq	%rdx, %r10
	movq	232(%rsp), %rdx
	xorq	%rax, %rdx
	orq	%r10, %rdx
	movq	248(%rsp), %r10
	xorq	%r8, %r10
	orq	%r10, %rdx
	subq	$1, %rdx
	orq	%rdx, %rsi
	movq	224(%rsp), %rdx
	orq	232(%rsp), %rdx
	orq	240(%rsp), %rdx
	orq	248(%rsp), %rdx
	subq	$1, %rdx
	xorq	168(%rsp), %r9
	xorq	184(%rsp), %rdi
	orq	%rsi, %rdx
	movq	160(%rsp), %rsi
	xorq	168(%rsp), %rax
	xorq	184(%rsp), %r8
	xorq	$1, %rsi
	orq	%r9, %rsi
	movq	56(%rsp), %r9
	orq	%r9, %rsi
	orq	%rdi, %rsi
	movq	160(%rsp), %rdi
	subq	$1, %rsi
	xorq	$2, %rdi
	orq	%r9, %rdi
	orq	%rdi, %rax
	orq	%r8, %rax
	subq	$1, %rax
	orq	%rax, %rsi
	movq	160(%rsp), %rax
	orq	168(%rsp), %rax
	orq	176(%rsp), %rax
	orq	184(%rsp), %rax
	subq	$1, %rax
	orq	%rax, %rsi
	movq	32(%rsp), %rax
	andq	%rsi, %rdx
	shrq	$63, %rax
	shrq	$63, %rdx
	xorq	$1, %rax
	andq	%rax, %rdx
	movq	%rbx, %rax
	shrq	$63, %rax
	xorq	$1, %rax
	andq	%rax, %rdx
	testq	%rdx, %rdx
	jne	.L2718
	movq	(%rsp), %r15
	leaq	288(%rsp), %rbx
	movq	%r13, %rdi
	movq	%rcx, 56(%rsp)
	movq	%rbx, %rdx
	movaps	%xmm6, 288(%rsp)
	leaq	192(%rsp), %rbp
	movq	%r15, %rsi
	movaps	%xmm2, 304(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	leaq	384(%rsp), %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rsi
	movq	%r13, %rdi
	movaps	%xmm1, 288(%rsp)
	movaps	%xmm0, 304(%rsp)
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rdx
	movq	%r15, %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rdx
	movq	%r13, %rdi
	movq	%rbp, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rdx
	movq	%r13, %rdi
	leaq	256(%rsp), %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	leaq	528(%rsp), %rbx
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	200(%rsp), %rax
	movl	$1, %edx
	movq	560(%rsp), %r10
	movq	568(%rsp), %r11
	movq	528(%rsp), %rsi
	leaq	(%rax,%rax), %r9
	movq	208(%rsp), %rax
	movq	192(%rsp), %rcx
	movq	536(%rsp), %rdi
	movdqa	.LC111(%rip), %xmm1
	leaq	(%rax,%rax), %r8
	leaq	(%rcx,%rcx), %r12
	movq	216(%rsp), %rax
	movdqa	.LC112(%rip), %xmm0
	paddq	192(%rsp), %xmm1
	paddq	208(%rsp), %xmm0
	leaq	(%rax,%rax), %r13
	movabsq	$-562949953421824, %rax
	addq	544(%rsp), %rax
	adcq	552(%rsp), %rdx
	subq	296(%rsp), %rax
	sbbq	$0, %rdx
	movq	%rax, %r14
	addq	$-512, %r10
	movq	576(%rsp), %rax
	movq	%rdx, %r15
	adcq	$1, %r11
	movq	584(%rsp), %rdx
	subq	304(%rsp), %r10
	sbbq	$0, %r11
	addq	$-512, %rax
	adcq	$1, %rdx
	subq	312(%rsp), %rax
	sbbq	$0, %rdx
	addq	$512, %rsi
	adcq	$2, %rdi
	subq	288(%rsp), %rsi
	sbbq	$0, %rdi
	subq	%r12, %rsi
	sbbq	$0, %rdi
	subq	%r9, %r14
	movq	%rsi, 528(%rsp)
	movq	%rbx, %rsi
	sbbq	$0, %r15
	subq	%r8, %r10
	movq	%rdi, 536(%rsp)
	leaq	320(%rsp), %rdi
	sbbq	$0, %r11
	subq	%r13, %rax
	movq	%r10, 560(%rsp)
	sbbq	$0, %rdx
	movq	%r11, 568(%rsp)
	movq	%rax, 576(%rsp)
	movq	%r14, 544(%rsp)
	movq	%r15, 552(%rsp)
	movq	%rdx, 584(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	24(%rsp), %rsi
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movdqa	320(%rsp), %xmm8
	movdqa	336(%rsp), %xmm7
	psubq	%xmm8, %xmm1
	psubq	%xmm7, %xmm0
	movaps	%xmm1, 192(%rsp)
	movaps	%xmm0, 208(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	xorl	%eax, %eax
	movabsq	$72057594037927935, %rdx
	movabsq	$72057594037927936, %rdi
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rax, %r12
	movq	%rdx, %r13
	addq	544(%rsp), %r10
	movq	%rdi, %r15
	movq	%rax, %r8
	movq	%rdx, %r9
	adcq	552(%rsp), %r11
	addq	560(%rsp), %r12
	adcq	568(%rsp), %r13
	xorl	%esi, %esi
	movq	%rsi, %r14
	addq	576(%rsp), %r14
	adcq	584(%rsp), %r15
	movq	%r14, (%rsp)
	xorl	%r14d, %r14d
	addq	592(%rsp), %r14
	movq	%r15, 8(%rsp)
	movabsq	$72056494526300159, %r15
	adcq	600(%rsp), %r15
	addq	608(%rsp), %r8
	adcq	616(%rsp), %r9
	addq	624(%rsp), %rax
	adcq	632(%rsp), %rdx
	addq	528(%rsp), %rsi
	adcq	536(%rsp), %rdi
	subq	416(%rsp), %rsi
	sbbq	424(%rsp), %rdi
	subq	432(%rsp), %r10
	sbbq	440(%rsp), %r11
	movq	%rsi, 528(%rsp)
	movq	%rdi, 536(%rsp)
	movq	%r10, 544(%rsp)
	movq	%r11, 552(%rsp)
	subq	448(%rsp), %r12
	movq	(%rsp), %rsi
	sbbq	456(%rsp), %r13
	movq	%r12, 560(%rsp)
	subq	464(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	%r13, 568(%rsp)
	sbbq	472(%rsp), %rdi
	movq	%rsi, 576(%rsp)
	movq	%rbx, %rsi
	subq	480(%rsp), %r14
	movq	%rdi, 584(%rsp)
	leaq	352(%rsp), %rdi
	sbbq	488(%rsp), %r15
	subq	496(%rsp), %r8
	movq	%r14, 592(%rsp)
	sbbq	504(%rsp), %r9
	subq	512(%rsp), %rax
	movq	%r15, 600(%rsp)
	sbbq	520(%rsp), %rdx
	movq	%rax, 624(%rsp)
	movq	%r8, 608(%rsp)
	movq	%r9, 616(%rsp)
	movq	%rdx, 632(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	32(%rsp), %rax
	movq	56(%rsp), %rcx
	movdqa	352(%rsp), %xmm9
	sarq	$63, %rax
	movdqu	16(%rcx), %xmm13
	pxor	400(%rsp), %xmm13
	movq	%rax, %xmm1
	movq	40(%rsp), %rax
	punpcklqdq	%xmm1, %xmm1
	movdqu	(%rax), %xmm0
	movdqu	16(%rax), %xmm11
	movq	64(%rsp), %rax
	movdqa	%xmm0, %xmm12
	pxor	%xmm7, %xmm11
	sarq	$63, %rax
	pxor	%xmm8, %xmm12
	pand	%xmm1, %xmm11
	movq	%rax, %xmm0
	movq	48(%rsp), %rax
	pxor	%xmm7, %xmm11
	pand	%xmm1, %xmm12
	pxor	%xmm8, %xmm12
	punpcklqdq	%xmm0, %xmm0
	pxor	%xmm11, %xmm5
	movdqu	(%rax), %xmm7
	movdqu	16(%rax), %xmm8
	pxor	%xmm12, %xmm10
	pand	%xmm0, %xmm5
	movq	120(%rsp), %rax
	pand	%xmm0, %xmm10
	pxor	%xmm11, %xmm5
	pxor	368(%rsp), %xmm8
	pxor	%xmm7, %xmm9
	movaps	%xmm7, (%rsp)
	movdqu	(%rcx), %xmm7
	pxor	384(%rsp), %xmm7
	pand	%xmm1, %xmm9
	pand	%xmm1, %xmm8
	pxor	%xmm12, %xmm10
	movups	%xmm5, 16(%rax)
	pxor	352(%rsp), %xmm9
	pand	%xmm1, %xmm7
	pand	%xmm13, %xmm1
	movups	%xmm10, (%rax)
	pxor	368(%rsp), %xmm8
	movq	128(%rsp), %rax
	pxor	384(%rsp), %xmm7
	pxor	%xmm9, %xmm4
	pxor	400(%rsp), %xmm1
	pxor	%xmm8, %xmm3
	pand	%xmm0, %xmm4
	pand	%xmm0, %xmm3
	pxor	%xmm9, %xmm4
	pxor	%xmm7, %xmm6
	pxor	%xmm8, %xmm3
	pxor	%xmm1, %xmm2
	movups	%xmm4, (%rax)
	pand	%xmm0, %xmm6
	movups	%xmm3, 16(%rax)
	pand	%xmm0, %xmm2
	movq	136(%rsp), %rax
	pxor	%xmm7, %xmm6
	pxor	%xmm1, %xmm2
	movups	%xmm6, (%rax)
	movups	%xmm2, 16(%rax)
	movq	648(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2717
	addq	$664, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2718:

	.cfi_restore_state
	movq	648(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2717
	movq	152(%rsp), %rcx
	movq	120(%rsp), %rdi
	movq	%r14, %r9
	movq	%r15, %r8
	movq	136(%rsp), %rdx
	movq	128(%rsp), %rsi
	addq	$664, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	p224_point_double
	jmp	.Lp224_point_double_local_target
.L2717:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3227:

	.size	p224_point_add.constprop.1, .-p224_point_add.constprop.1
# WAS .section	.text.ec_GFp_nistp224_point_mul_base,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_point_mul_base, @function
.Lec_GFp_nistp224_point_mul_base_local_target:
ec_GFp_nistp224_point_mul_base:
.LFB1942:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$12, %ecx
	movl	$195, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	movl	$1, %esi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$312, %rsp
	.cfi_def_cfa_offset 368
	movq	%fs:40, %rax
	movq	%rax, 296(%rsp)
	xorl	%eax, %eax
	leaq	160(%rsp), %rbx
	movq	%r12, 88(%rsp)
	leaq	96(%rsp), %rdi
	movq	%rbx, 56(%rsp)
	leaq	128(%rsp), %rbx
	movq	%rbx, 48(%rsp)
	leaq	192(%rsp), %rbx
	movq	%rbx, 72(%rsp)
	leaq	256(%rsp), %rbx
	movq	%rbx, 64(%rsp)
	leaq	224(%rsp), %rbx
	movq	%rbx, 80(%rsp)
	movq	%rdi, 40(%rsp)
	rep stosq
	movq	%rdx, %rax
.L2725:

	movq	24(%rax), %rdi
	movq	16(%rax), %rdx
	pxor	%xmm1, %xmm1
	movl	%r15d, %ebx
	movq	(%rax), %rbp
	movdqa	%xmm1, %xmm2
	movdqa	%xmm1, %xmm3
	movdqa	%xmm1, %xmm4
	leal	-164(%r15), %ecx
	movdqa	%xmm1, %xmm5
	movdqa	%xmm1, %xmm6
	shrq	%cl, %rdi
	leal	-156(%r15), %ecx
	movq	%rbp, %r8
	shrq	%cl, %rdx
	salq	$3, %rdi
	leal	-148(%r15), %ecx
	salq	$2, %rdx
	andl	$8, %edi
	andl	$4, %edx
	orq	%rdx, %rdi
	movq	8(%rax), %rdx
	shrq	%cl, %rdx
	leal	-140(%r15), %ecx
	addq	%rdx, %rdx
	shrq	%cl, %r8
# WAS leaq	1536+g_p224_pre_comp(%rip), %rcx
	leaq	.Lg_p224_pre_comp_local_target+1536(%rip), %rcx
	andl	$2, %edx
	andl	$1, %r8d
	orq	%rdx, %rdi
	orq	%rdi, %r8
	xorl	%edi, %edi
	.p2align 4,,10
	.p2align 3
.L2720:

	movq	%r8, %r9
	movdqa	(%rcx), %xmm7
	addq	$96, %rcx
	xorq	%rdi, %r9
	addq	$1, %rdi
	movq	%r9, %rdx
	subq	$1, %r9
	notq	%rdx
	andq	%r9, %rdx
	sarq	$63, %rdx
	movq	%rdx, %xmm0
	punpcklqdq	%xmm0, %xmm0
	pand	%xmm0, %xmm7
	por	%xmm7, %xmm6
	movdqa	-80(%rcx), %xmm7
	pand	%xmm0, %xmm7
	por	%xmm7, %xmm5
	movdqa	-64(%rcx), %xmm7
	pand	%xmm0, %xmm7
	por	%xmm7, %xmm4
	movdqa	-48(%rcx), %xmm7
	pand	%xmm0, %xmm7
	por	%xmm7, %xmm3
	movdqa	-32(%rcx), %xmm7
	pand	%xmm0, %xmm7
	pand	-16(%rcx), %xmm0
	por	%xmm7, %xmm2
	por	%xmm0, %xmm1
	cmpq	$16, %rdi
	jne	.L2720
	movaps	%xmm6, 192(%rsp)
	movaps	%xmm5, 208(%rsp)
	movaps	%xmm4, 224(%rsp)
	movaps	%xmm3, 240(%rsp)
	movaps	%xmm2, 256(%rsp)
	movaps	%xmm1, 272(%rsp)
	testl	%esi, %esi
	jne	.L2721
	movq	%rax, 8(%rsp)
	subq	$8, %rsp
	.cfi_def_cfa_offset 376
	pushq	72(%rsp)
	.cfi_def_cfa_offset 384
	pushq	96(%rsp)
	.cfi_def_cfa_offset 392
	pushq	96(%rsp)
	.cfi_def_cfa_offset 400
	movq	88(%rsp), %rdx
	movq	80(%rsp), %rsi
	movq	72(%rsp), %rdi
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rdi, %rcx
# WAS call	p224_point_add.constprop.1
	call	.Lp224_point_add.constprop.1_local_target
	movq	40(%rsp), %rax
	addq	$32, %rsp
	.cfi_def_cfa_offset 368
.L2722:

	movq	%r15, %rdx
	leaq	-56(%r15), %rsi
	movl	%ebx, %ecx
	movq	%r15, 24(%rsp)
	shrq	$6, %rdx
	shrq	$6, %rsi
	movq	%rax, 32(%rsp)
	xorl	%edi, %edi
	movq	(%rax,%rdx,8), %rdx
	movq	(%rax,%rsi,8), %rsi
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	xorl	%r10d, %r10d
	xorl	%r11d, %r11d
	xorl	%r12d, %r12d
	xorl	%r13d, %r13d
	movq	$0, 8(%rsp)
	shrq	%cl, %rdx
	xorl	%r14d, %r14d
	leal	-168(%rbx), %ecx
	shrq	%cl, %rbp
	leal	-56(%rbx), %ecx
	salq	$3, %rdx
	shrq	%cl, %rsi
	andl	$1, %ebp
	andl	$8, %edx
	leaq	0(,%rsi,4), %rcx
	leaq	-112(%r15), %rsi
	orq	%rbp, %rdx
	xorl	%ebp, %ebp
	shrq	$6, %rsi
	andl	$4, %ecx
	movq	(%rax,%rsi,8), %rsi
	orq	%rcx, %rdx
	leal	-112(%rbx), %ecx
	xorl	%ebx, %ebx
	shrq	%cl, %rsi
	leaq	(%rsi,%rsi), %rcx
	xorl	%esi, %esi
	andl	$2, %ecx
	orq	%rdx, %rcx
# WAS leaq	g_p224_pre_comp(%rip), %rdx
	leaq	.Lg_p224_pre_comp_local_target(%rip), %rdx
	movq	%rcx, 16(%rsp)
	xorl	%ecx, %ecx
	.p2align 4,,10
	.p2align 3
.L2723:

	movq	16(%rsp), %r15
	addq	$96, %rdx
	xorq	%rcx, %r15
	addq	$1, %rcx
	movq	%r15, %rax
	subq	$1, %r15
	notq	%rax
	andq	%r15, %rax
	movq	-96(%rdx), %r15
	sarq	$63, %rax
	andq	%rax, %r15
	orq	%r15, %r14
	movq	-88(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r13
	movq	-80(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r12
	movq	-72(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %rbp
	movq	-64(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %rbx
	movq	-56(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r11
	movq	-48(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r10
	movq	-40(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, 8(%rsp)
	movq	-32(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r9
	movq	-24(%rdx), %r15
	andq	%rax, %r15
	orq	%r15, %r8
	movq	-16(%rdx), %r15
	andq	%rax, %r15
	andq	-8(%rdx), %rax
	orq	%r15, %rdi
	orq	%rax, %rsi
	cmpq	$16, %rcx
	jne	.L2723
	movq	32(%rsp), %rax
	movq	%r9, 256(%rsp)
	subq	$8, %rsp
	.cfi_def_cfa_offset 376
	movq	32(%rsp), %r15
	movq	%r8, 272(%rsp)
	movq	%rax, 24(%rsp)
	movq	16(%rsp), %rax
	movq	%rdi, 280(%rsp)
	subq	$1, %r15
	movq	%rsi, 288(%rsp)
	movq	%r14, 200(%rsp)
	movq	%r13, 208(%rsp)
	movq	%r12, 216(%rsp)
	movq	%rbp, 224(%rsp)
	movq	%rbx, 232(%rsp)
	movq	%r11, 240(%rsp)
	movq	%r10, 248(%rsp)
	movq	%rax, 256(%rsp)
	pushq	72(%rsp)
	.cfi_def_cfa_offset 384
	pushq	96(%rsp)
	.cfi_def_cfa_offset 392
	pushq	96(%rsp)
	.cfi_def_cfa_offset 400
	movq	88(%rsp), %rbp
	movq	80(%rsp), %r14
	movq	72(%rsp), %rbx
	movq	%rbp, %r9
	movq	%rbp, %rdx
	movq	%r14, %r8
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	p224_point_add.constprop.1
	call	.Lp224_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 368
	cmpq	$167, %r15
	je	.L2724
	movq	%r14, %rsi
	movq	%rbp, %r9
	movq	%r14, %r8
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rdi
# WAS call	p224_point_double
	call	.Lp224_point_double_local_target
	movq	16(%rsp), %rax
	xorl	%esi, %esi
	jmp	.L2725
.L2721:

	movdqa	192(%rsp), %xmm1
	movdqa	208(%rsp), %xmm2
	movdqa	224(%rsp), %xmm3
	movdqa	240(%rsp), %xmm4
	movdqa	256(%rsp), %xmm5
	movaps	%xmm1, 96(%rsp)
	movdqa	272(%rsp), %xmm6
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm3, 128(%rsp)
	movaps	%xmm4, 144(%rsp)
	movaps	%xmm5, 160(%rsp)
	movaps	%xmm6, 176(%rsp)
	jmp	.L2722
.L2724:

	movq	88(%rsp), %r12
	movq	40(%rsp), %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	48(%rsp), %rsi
	leaq	72(%r12), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	56(%rsp), %rsi
	leaq	144(%r12), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	296(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2730
	addq	$312, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2730:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1942:

	.size	ec_GFp_nistp224_point_mul_base, .-ec_GFp_nistp224_point_mul_base
# WAS .section	.text.p224_point_add.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	p224_point_add.constprop.0, @function
.Lp224_point_add.constprop.0_local_target:
p224_point_add.constprop.0:
.LFB3229:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$648, %rsp
	.cfi_def_cfa_offset 704
	movq	704(%rsp), %rax
	movq	712(%rsp), %rbx
	movq	%rcx, 40(%rsp)
	leaq	400(%rsp), %rbp
	movq	%r8, 48(%rsp)
	leaq	176(%rsp), %r15
	leaq	240(%rsp), %r13
	movq	%r9, 56(%rsp)
	leaq	512(%rsp), %r12
	movq	%rdx, 112(%rsp)
	movq	%rdi, 96(%rsp)
	movq	%rbp, %rdi
	movq	%rsi, 104(%rsp)
	movq	%rbx, 72(%rsp)
	movq	720(%rsp), %rbx
	movq	%rax, 64(%rsp)
	movq	%rbx, %rsi
	movq	%fs:40, %rax
	movq	%rax, 632(%rsp)
	xorl	%eax, %eax
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%r15, %rdi
	movq	%rbp, %rsi
	movq	%r15, 120(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rdx
	movq	%r15, %rsi
	movq	%rbp, %rdi
	movq	%rbx, 24(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r13, %rdi
	movq	%rbp, %rsi
	movq	%r13, 128(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	48(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
	movq	%r12, 136(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	40(%rsp), %rdx
	movq	%r15, %rsi
	movq	%r12, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%r12, %rsi
	movq	%r15, %rdi
	leaq	144(%rsp), %r15
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	(%r14), %rbx
	movq	8(%r14), %r13
	movq	16(%r14), %r11
	movq	24(%r14), %r12
	movq	%rbx, %rax
	leaq	(%r13,%r13), %r10
	leaq	(%rbx,%rbx), %rdi
	mulq	%rbx
	leaq	(%r11,%r11), %rcx
	movq	%r11, 32(%rsp)
	movq	%rax, 400(%rsp)
	movq	%rbx, %rax
	movq	%rdx, 408(%rsp)
	mulq	%r10
	movq	%rax, 416(%rsp)
	movq	%r13, %rax
	movq	%rdx, 424(%rsp)
	mulq	%r13
	movq	%rax, %r8
	movq	%rbx, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r12
	movq	%r8, 432(%rsp)
	movq	%r9, 440(%rsp)
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r13
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rsi, 448(%rsp)
	movq	%rdi, 456(%rsp)
	movq	%rax, %rsi
	movq	%r10, %rax
	movq	%rdx, %rdi
	mulq	%r12
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%r12
	movq	%rsi, 464(%rsp)
	movq	%rbp, %rsi
	movq	%rdi, 472(%rsp)
	movq	%r15, %rdi
	movq	%rax, 480(%rsp)
	movq	%r12, %rax
	movq	%rdx, 488(%rsp)
	mulq	%r12
	movq	%rax, 496(%rsp)
	movq	%rdx, 504(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%rbp, %rdi
	movq	%r15, (%rsp)
	xorl	%r15d, %r15d
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	leaq	208(%rsp), %rdi
	movq	%rbp, %rsi
	movq	%rdi, %r14
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	72(%rsp), %rdx
	movq	%r14, %rsi
	movq	%rbp, %rdi
	movq	%r14, 80(%rsp)
	movabsq	$-281474976710912, %r14
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	432(%rsp), %rax
	movq	%r14, %r10
	movq	%r15, %r11
	movq	440(%rsp), %rdx
	addq	416(%rsp), %r10
	adcq	424(%rsp), %r11
	addq	$-256, %rax
	movq	400(%rsp), %r8
	adcq	$0, %rdx
	movq	%rax, %rsi
	movq	448(%rsp), %rax
	movq	408(%rsp), %r9
	movq	%rdx, %rdi
	movq	456(%rsp), %rdx
	addq	$-256, %rax
	adcq	$0, %rdx
	addq	$256, %r8
	adcq	$1, %r9
	subq	240(%rsp), %r8
	sbbq	$0, %r9
	subq	248(%rsp), %r10
	movq	%r8, 400(%rsp)
	sbbq	$0, %r11
	subq	256(%rsp), %rsi
	movq	%r9, 408(%rsp)
	sbbq	$0, %rdi
	subq	264(%rsp), %rax
	movq	%rsi, 432(%rsp)
	movq	%rbp, %rsi
	movq	%rdi, 440(%rsp)
	movq	80(%rsp), %rdi
	sbbq	$0, %rdx
	movq	%r10, 416(%rsp)
	movq	%r11, 424(%rsp)
	movq	%rax, 448(%rsp)
	movq	%rdx, 456(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	64(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	432(%rsp), %rax
	movq	440(%rsp), %rdx
	addq	416(%rsp), %r14
	adcq	424(%rsp), %r15
	addq	$-256, %rax
	movq	400(%rsp), %r8
	movq	%r14, %r10
	movq	%r15, %r11
	adcq	$0, %rdx
	movq	%rax, %rsi
	movq	448(%rsp), %rax
	movq	408(%rsp), %r9
	movq	%rdx, %rdi
	movq	456(%rsp), %rdx
	addq	$-256, %rax
	adcq	$0, %rdx
	addq	$256, %r8
	adcq	$1, %r9
	subq	176(%rsp), %r8
	sbbq	$0, %r9
	subq	184(%rsp), %r10
	movq	%r8, 400(%rsp)
	sbbq	$0, %r11
	subq	192(%rsp), %rsi
	movq	%r9, 408(%rsp)
	sbbq	$0, %rdi
	subq	200(%rsp), %rax
	movq	%rsi, 432(%rsp)
	movq	%rbp, %rsi
	movq	%rdi, 440(%rsp)
	movq	(%rsp), %rdi
	sbbq	$0, %rdx
	movq	%r10, 416(%rsp)
	movq	%r11, 424(%rsp)
	movq	%rax, 448(%rsp)
	movq	%rdx, 456(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rdi
	movq	32(%rsp), %rax
	movq	%r12, %r10
	xorq	$1, %rdi
	movq	160(%rsp), %r14
	movabsq	$72056494526300160, %r8
	movabsq	$72057594037927935, %rsi
	movq	%rdi, %rdx
	movq	%r13, %rdi
	xorq	%rsi, %rax
	movq	224(%rsp), %r9
	xorq	%r8, %rdi
	xorq	%rsi, %r14
	movq	208(%rsp), %r15
	movq	168(%rsp), %r11
	movdqa	144(%rsp), %xmm1
	orq	%rdi, %rdx
	movq	%r12, %rdi
	xorq	%rsi, %r9
	movdqa	160(%rsp), %xmm0
	xorq	%rsi, %rdi
	orq	%rax, %rdx
	orq	%rdi, %rdx
	movq	%rbx, %rdi
	orq	%r13, %rbx
	xorq	$2, %rdi
	subq	$1, %rdx
	movq	%rdi, %rcx
	movq	%r13, %rdi
	orq	%rax, %rcx
	movabsq	$72055395014672384, %rax
	xorq	%rax, %rdi
	orq	%rdi, %rcx
	movabsq	$144115188075855871, %rdi
	xorq	%rdi, %r10
	orq	%r10, %rcx
	subq	$1, %rcx
	orq	%rcx, %rdx
	movq	32(%rsp), %rcx
	orq	%rcx, %rbx
	movq	%rdx, %rcx
	orq	%r12, %rbx
	subq	$1, %rbx
	orq	%rbx, %rcx
	movq	%rcx, 32(%rsp)
	movq	24(%rsp), %rcx
	movq	8(%rcx), %rbx
	movq	(%rcx), %rdx
	movq	24(%rcx), %r12
	movq	16(%rcx), %r10
	movq	%rbx, %r13
	movq	%rdx, %rcx
	xorq	%r8, %r13
	xorq	$1, %rcx
	movq	%r10, 88(%rsp)
	xorq	%rsi, %r10
	orq	%r13, %rcx
	movq	%r12, %r13
	xorq	%rsi, %r13
	orq	%r10, %rcx
	orq	%r13, %rcx
	movq	%rdx, %r13
	subq	$1, %rcx
	xorq	$2, %r13
	orq	%rbx, %rdx
	orq	%r10, %r13
	movq	%rbx, %r10
	xorq	%rax, %r10
	orq	%r13, %r10
	movq	%r12, %r13
	xorq	%rdi, %r13
	orq	%r13, %r10
	subq	$1, %r10
	orq	%r10, %rcx
	movq	88(%rsp), %r10
	movq	%rcx, %rbx
	movq	216(%rsp), %rcx
	orq	%r10, %rdx
	orq	%r12, %rdx
	xorq	%r8, %rcx
	subq	$1, %rdx
	orq	%rdx, %rbx
	movq	%r15, %rdx
	xorq	$1, %rdx
	movq	%rbx, 88(%rsp)
	orq	%rcx, %rdx
	movq	232(%rsp), %rcx
	orq	%r9, %rdx
	xorq	%rsi, %rcx
	orq	%rcx, %rdx
	movq	%r15, %rcx
	orq	216(%rsp), %r15
	orq	224(%rsp), %r15
	xorq	$2, %rcx
	subq	$1, %rdx
	orq	232(%rsp), %r15
	orq	%rcx, %r9
	movq	216(%rsp), %rcx
	xorq	%rax, %rcx
	orq	%r9, %rcx
	movq	232(%rsp), %r9
	xorq	%rdi, %r9
	orq	%r9, %rcx
	subq	$1, %rcx
	orq	%rcx, %rdx
	subq	$1, %r15
	xorq	%r11, %rsi
	xorq	%r11, %rdi
	orq	%rdx, %r15
	movq	144(%rsp), %rdx
	xorq	152(%rsp), %r8
	xorq	152(%rsp), %rax
	xorq	$1, %rdx
	orq	%r8, %rdx
	orq	%r14, %rdx
	orq	%rsi, %rdx
	movq	144(%rsp), %rsi
	subq	$1, %rdx
	xorq	$2, %rsi
	movq	%rsi, %rcx
	orq	%r14, %rcx
	orq	%rcx, %rax
	orq	%rdi, %rax
	subq	$1, %rax
	orq	%rax, %rdx
	movq	144(%rsp), %rax
	orq	152(%rsp), %rax
	orq	160(%rsp), %rax
	orq	%r11, %rax
	subq	$1, %rax
	orq	%rax, %rdx
	movq	32(%rsp), %rax
	andq	%rdx, %r15
	shrq	$63, %rax
	shrq	$63, %r15
	xorq	$1, %rax
	andq	%rax, %r15
	movq	%rbx, %rax
	shrq	$63, %rax
	xorq	$1, %rax
	andq	%rax, %r15
	testq	%r15, %r15
	jne	.L2737
	movq	24(%rsp), %rdx
	movq	56(%rsp), %rsi
	leaq	272(%rsp), %rbx
	movq	%rbp, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	(%rsp), %r14
	movq	%rbx, %rdx
	movq	%rbp, %rdi
	movq	%r14, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbp, %rsi
	leaq	368(%rsp), %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r14, %rsi
	movq	%rbp, %rdi
	movaps	%xmm1, 272(%rsp)
	movaps	%xmm0, 288(%rsp)
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%rbp, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	120(%rsp), %r15
	movq	%r14, %rdx
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	128(%rsp), %rsi
	movq	%rbx, %rdx
	movq	%rbp, %rdi
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	movq	136(%rsp), %r14
	movq	80(%rsp), %r13
	movq	%r14, %rdi
	movq	%r13, %rsi
# WAS call	p224_felem_square
	call	.Lp224_felem_square_local_target
	movq	184(%rsp), %rbx
	movq	544(%rsp), %rcx
	movabsq	$-562949953421824, %rsi
	movl	$1, %edi
	addq	528(%rsp), %rsi
	adcq	536(%rsp), %rdi
	leaq	(%rbx,%rbx), %rbp
	movq	192(%rsp), %rbx
	subq	280(%rsp), %rsi
	movq	560(%rsp), %rax
	sbbq	$0, %rdi
	addq	$-512, %rcx
	movq	568(%rsp), %rdx
	leaq	(%rbx,%rbx), %r9
	movq	200(%rsp), %rbx
	movq	512(%rsp), %r10
	movq	520(%rsp), %r11
	movq	176(%rsp), %r12
	leaq	(%rbx,%rbx), %r8
	movq	552(%rsp), %rbx
	movdqa	.LC111(%rip), %xmm1
	movdqa	.LC112(%rip), %xmm0
	paddq	176(%rsp), %xmm1
	paddq	192(%rsp), %xmm0
	adcq	$1, %rbx
	subq	288(%rsp), %rcx
	sbbq	$0, %rbx
	addq	$-512, %rax
	adcq	$1, %rdx
	subq	296(%rsp), %rax
	sbbq	$0, %rdx
	addq	$512, %r10
	adcq	$2, %r11
	subq	272(%rsp), %r10
	sbbq	$0, %r11
	addq	%r12, %r12
	subq	%r12, %r10
	sbbq	$0, %r11
	subq	%rbp, %rsi
	movq	%r10, 512(%rsp)
	movq	%r14, %rbp
	sbbq	$0, %rdi
	subq	%r9, %rcx
	movq	%rsi, 528(%rsp)
	movq	%r14, %rsi
	sbbq	$0, %rbx
	subq	%r8, %rax
	movq	%rdi, 536(%rsp)
	leaq	304(%rsp), %rdi
	sbbq	$0, %rdx
	movq	%r11, 520(%rsp)
	movq	%rcx, 544(%rsp)
	movq	%rax, 560(%rsp)
	movq	%rbx, 552(%rsp)
	movabsq	$72056494526300159, %rbx
	movq	%rdx, 568(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	%r15, %rdx
	movq	%r13, %rsi
	movq	%r14, %rdi
	movdqa	304(%rsp), %xmm3
	movdqa	320(%rsp), %xmm4
	psubq	%xmm3, %xmm1
	psubq	%xmm4, %xmm0
	movaps	%xmm1, 176(%rsp)
	movaps	%xmm0, 192(%rsp)
# WAS call	p224_felem_mul
	call	.Lp224_felem_mul_local_target
	xorl	%esi, %esi
	movabsq	$72057594037927935, %rdi
	movabsq	$72057594037927936, %rdx
	movq	%rsi, %r10
	movq	%rdi, %r11
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	528(%rsp), %r10
	movq	%rdx, %r13
	movq	%rsi, %r14
	movq	%rdi, %r15
	adcq	536(%rsp), %r11
	addq	544(%rsp), %r8
	adcq	552(%rsp), %r9
	xorl	%eax, %eax
	movq	%rax, %r12
	addq	560(%rsp), %r12
	adcq	568(%rsp), %r13
	xorl	%ecx, %ecx
	addq	576(%rsp), %rcx
	adcq	584(%rsp), %rbx
	addq	592(%rsp), %r14
	adcq	600(%rsp), %r15
	addq	608(%rsp), %rsi
	adcq	616(%rsp), %rdi
	addq	512(%rsp), %rax
	adcq	520(%rsp), %rdx
	subq	400(%rsp), %rax
	sbbq	408(%rsp), %rdx
	subq	416(%rsp), %r10
	sbbq	424(%rsp), %r11
	movq	%rax, 512(%rsp)
	movq	%rdx, 520(%rsp)
	movq	%r10, 528(%rsp)
	movq	%r11, 536(%rsp)
	subq	432(%rsp), %r8
	sbbq	440(%rsp), %r9
	subq	448(%rsp), %r12
	movq	%r8, 544(%rsp)
	sbbq	456(%rsp), %r13
	subq	464(%rsp), %rcx
	movq	%r9, 552(%rsp)
	sbbq	472(%rsp), %rbx
	subq	480(%rsp), %r14
	movq	%r12, 560(%rsp)
	sbbq	488(%rsp), %r15
	subq	496(%rsp), %rsi
	movq	%rbx, 584(%rsp)
	sbbq	504(%rsp), %rdi
	movq	%rsi, 608(%rsp)
	movq	%rbp, %rsi
	movq	%rdi, 616(%rsp)
	leaq	336(%rsp), %rdi
	movq	%r13, 568(%rsp)
	movq	%rcx, 576(%rsp)
	movq	%r14, 592(%rsp)
	movq	%r15, 600(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	32(%rsp), %rbx
	movq	72(%rsp), %rdi
	movq	24(%rsp), %rax
	sarq	$63, %rbx
	movdqu	(%rdi), %xmm6
	movq	%rbx, %xmm1
	movq	64(%rsp), %rbx
	punpcklqdq	%xmm1, %xmm1
	movdqu	(%rbx), %xmm7
	movdqa	%xmm7, %xmm2
	pxor	%xmm3, %xmm2
	pand	%xmm1, %xmm2
	pxor	%xmm3, %xmm2
	movdqu	16(%rbx), %xmm3
	movq	88(%rsp), %rbx
	sarq	$63, %rbx
	pxor	%xmm4, %xmm3
	movq	%rbx, %xmm0
	movq	40(%rsp), %rbx
	pand	%xmm1, %xmm3
	pxor	%xmm4, %xmm3
	punpcklqdq	%xmm0, %xmm0
	movdqa	336(%rsp), %xmm4
	movdqu	16(%rbx), %xmm5
	pxor	%xmm6, %xmm4
	pxor	%xmm3, %xmm5
	pand	%xmm1, %xmm4
	pxor	336(%rsp), %xmm4
	pand	%xmm0, %xmm5
	pxor	%xmm3, %xmm5
	movdqu	16(%rdi), %xmm3
	movq	48(%rsp), %rdi
	pxor	352(%rsp), %xmm3
	movdqu	(%rdi), %xmm7
	pand	%xmm1, %xmm3
	pxor	352(%rsp), %xmm3
	movdqa	%xmm7, %xmm6
	movdqu	16(%rdi), %xmm7
	pxor	%xmm4, %xmm6
	pxor	%xmm3, %xmm7
	pand	%xmm0, %xmm6
	pand	%xmm0, %xmm7
	pxor	%xmm4, %xmm6
	movdqu	(%rax), %xmm4
	pxor	368(%rsp), %xmm4
	pxor	%xmm3, %xmm7
	movdqu	16(%rax), %xmm3
	movq	56(%rsp), %rax
	pxor	384(%rsp), %xmm3
	pand	%xmm1, %xmm4
	pxor	368(%rsp), %xmm4
	pand	%xmm3, %xmm1
	movdqu	(%rax), %xmm3
	pxor	384(%rsp), %xmm1
	movaps	%xmm3, (%rsp)
	pxor	%xmm4, %xmm3
	pand	%xmm0, %xmm3
	pxor	%xmm3, %xmm4
	movdqu	16(%rax), %xmm3
	movq	96(%rsp), %rax
	pxor	%xmm1, %xmm3
	pand	%xmm0, %xmm3
	pxor	%xmm3, %xmm1
	movdqu	(%rbx), %xmm3
	movups	%xmm5, 16(%rax)
	pxor	%xmm2, %xmm3
	pand	%xmm3, %xmm0
	pxor	%xmm2, %xmm0
	movups	%xmm0, (%rax)
	movq	104(%rsp), %rax
	movups	%xmm6, (%rax)
	movups	%xmm7, 16(%rax)
	movq	112(%rsp), %rax
	movups	%xmm4, (%rax)
	movups	%xmm1, 16(%rax)
	movq	632(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2736
	addq	$648, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2737:

	.cfi_restore_state
	movq	632(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2736
	movq	56(%rsp), %r9
	movq	48(%rsp), %r8
	movq	40(%rsp), %rcx
	movq	112(%rsp), %rdx
	movq	104(%rsp), %rsi
	movq	96(%rsp), %rdi
	addq	$648, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	p224_point_double
	jmp	.Lp224_point_double_local_target
.L2736:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3229:

	.size	p224_point_add.constprop.0, .-p224_point_add.constprop.0
# WAS .section	.text.ec_GFp_nistp224_add,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_add, @function
.Lec_GFp_nistp224_add_local_target:
ec_GFp_nistp224_add:
.LFB1938:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	subq	$216, %rsp
	.cfi_def_cfa_offset 256
	movq	(%rsi), %rdi
	movq	8(%rsi), %r8
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r13
	leaq	64(%rsp), %rbp
	leaq	32(%rsp), %r12
	movabsq	$72057594037927935, %rax
	movq	%rdi, %rcx
	movq	%rbp, %r9
	andq	%rax, %rcx
	movq	%rcx, (%rsp)
	movq	%r8, %rcx
	shldq	$8, %rdi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 8(%rsp)
	movq	16(%rsi), %rcx
	movq	%rcx, %rdi
	shldq	$16, %r8, %rdi
	movq	80(%rsi), %r8
	andq	%rax, %rdi
	movq	%rdi, 16(%rsp)
	movq	24(%rsi), %rdi
	shrdq	$40, %rdi, %rcx
	movq	72(%rsi), %rdi
	andq	%rax, %rcx
	movq	%rcx, 24(%rsp)
	movq	%rdi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 32(%rsp)
	movq	%r8, %rcx
	shldq	$8, %rdi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 40(%rsp)
	movq	88(%rsi), %rcx
	movq	%rcx, %rdi
	shldq	$16, %r8, %rdi
	movq	152(%rsi), %r8
	andq	%rax, %rdi
	movq	%rdi, 48(%rsp)
	movq	96(%rsi), %rdi
	shrdq	$40, %rdi, %rcx
	movq	144(%rsi), %rdi
	andq	%rax, %rcx
	movq	%rcx, 56(%rsp)
	movq	%rdi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 64(%rsp)
	movq	%r8, %rcx
	shldq	$8, %rdi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 72(%rsp)
	movq	160(%rsi), %rcx
	movq	168(%rsi), %rsi
	movq	%rcx, %rdi
	shldq	$16, %r8, %rdi
	shrdq	$40, %rsi, %rcx
	movq	(%rdx), %rsi
	movq	%r12, %r8
	andq	%rax, %rdi
	andq	%rax, %rcx
	movq	%rdi, 80(%rsp)
	movq	8(%rdx), %rdi
	movq	%rcx, 88(%rsp)
	movq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 96(%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 104(%rsp)
	movq	16(%rdx), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	80(%rdx), %rdi
	andq	%rax, %rsi
	movq	%rsi, 112(%rsp)
	movq	24(%rdx), %rsi
	shrdq	$40, %rsi, %rcx
	movq	72(%rdx), %rsi
	andq	%rax, %rcx
	movq	%rcx, 120(%rsp)
	movq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 128(%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rax, %rcx
	subq	$8, %rsp
	.cfi_def_cfa_offset 264
	movq	%rcx, 144(%rsp)
	movq	88(%rdx), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	152(%rdx), %rdi
	andq	%rax, %rsi
	movq	%rsi, 152(%rsp)
	movq	96(%rdx), %rsi
	shrdq	$40, %rsi, %rcx
	movq	144(%rdx), %rsi
	andq	%rax, %rcx
	movq	%rcx, 160(%rsp)
	movq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 168(%rsp)
	movq	%rdi, %rcx
	shldq	$8, %rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 176(%rsp)
	movq	160(%rdx), %rcx
	movq	%rcx, %rsi
	shldq	$16, %rdi, %rsi
	movq	%r13, %rdi
	andq	%rax, %rsi
	movq	%rsi, 184(%rsp)
	movq	168(%rdx), %rsi
	movq	%rcx, %rdx
	movq	%r13, %rcx
	shrdq	$40, %rsi, %rdx
	movq	%r12, %rsi
	andq	%rax, %rdx
	movq	%rdx, 192(%rsp)
	leaq	168(%rsp), %rax
	movq	%rbp, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 272
	leaq	144(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 280
	leaq	120(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 288
# WAS call	p224_point_add.constprop.0
	call	.Lp224_point_add.constprop.0_local_target
	movq	%r13, %rsp
	.cfi_def_cfa_offset 256
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	leaq	72(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	leaq	144(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2741
	addq	$216, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L2741:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1938:

	.size	ec_GFp_nistp224_add, .-ec_GFp_nistp224_add
# WAS .section	.text.ec_GFp_nistp224_make_precomp,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_make_precomp, @function
.Lec_GFp_nistp224_make_precomp_local_target:
ec_GFp_nistp224_make_precomp:
.LFB1940:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	movl	$12, %ecx
	movq	%rsi, %rdx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	leaq	96(%r12), %r15
	leaq	128(%r12), %r14
	movl	$2, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	160(%r12), %r13
	leaq	192(%r12), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	rep stosq
	movabsq	$72057594037927935, %rax
	movq	(%rsi), %rcx
	andq	%rax, %rcx
	movq	%rcx, 96(%r12)
	movq	(%rsi), %rsi
	movq	8(%rdx), %rcx
	shldq	$8, %rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 104(%r12)
	movq	16(%rdx), %rsi
	movzwl	14(%rdx), %ecx
	salq	$16, %rsi
	orq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 112(%r12)
	movq	16(%rdx), %rsi
	movq	24(%rdx), %rcx
	shldq	$24, %rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 120(%r12)
	movq	72(%rdx), %rcx
	andq	%rax, %rcx
	movq	%rcx, 128(%r12)
	movq	80(%rdx), %rsi
	movzbl	79(%rdx), %ecx
	salq	$8, %rsi
	orq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 136(%r12)
	movzwl	86(%rdx), %ecx
	movq	88(%rdx), %rsi
	salq	$16, %rsi
	orq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 144(%r12)
	movq	88(%rdx), %rsi
	movq	96(%rdx), %rcx
	shldq	$24, %rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 152(%r12)
	movq	144(%rdx), %rcx
	andq	%rax, %rcx
	movq	%rcx, 160(%r12)
	movq	152(%rdx), %rsi
	movzbl	151(%rdx), %ecx
	salq	$8, %rsi
	orq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 168(%r12)
	movq	160(%rdx), %rsi
	movzwl	158(%rdx), %ecx
	salq	$16, %rsi
	orq	%rsi, %rcx
	andq	%rax, %rcx
	movq	%rcx, 176(%r12)
	movq	160(%rdx), %rcx
	movq	168(%rdx), %rdx
	shldq	$24, %rcx, %rdx
	andq	%rax, %rdx
	movq	%rdx, 184(%r12)
	jmp	.L2745
	.p2align 4,,10
	.p2align 3
.L2749:

	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	leaq	-32(%rbx), %rax
	leaq	64(%rbx), %rdx
	movq	%rbx, %rdi
	pushq	%rax
	.cfi_def_cfa_offset 80
	leaq	-64(%rbx), %rax
	leaq	32(%rbx), %rsi
	movq	%r13, %r9
	pushq	%rax
	.cfi_def_cfa_offset 88
	leaq	-96(%rbx), %rax
	movq	%r14, %r8
	movq	%r15, %rcx
	pushq	%rax
	.cfi_def_cfa_offset 96
	addq	$1, %rbp
	addq	$96, %rbx
# WAS call	p224_point_add.constprop.0
	call	.Lp224_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 64
	cmpq	$17, %rbp
	je	.L2748
.L2745:

	testb	$1, %bpl
	jne	.L2749
	movq	%rbp, %rax
	movq	%rbp, %rcx
	leaq	64(%rbx), %rdx
	movq	%rbx, %rdi
	shrq	%rax
	andq	$-2, %rcx
	leaq	32(%rbx), %rsi
	addq	$1, %rbp
	addq	%rax, %rcx
	addq	$96, %rbx
	salq	$5, %rcx
	addq	%r12, %rcx
	leaq	64(%rcx), %r9
	leaq	32(%rcx), %r8
# WAS call	p224_point_double
	call	.Lp224_point_double_local_target
	cmpq	$17, %rbp
	jne	.L2745
.L2748:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1940:

	.size	ec_GFp_nistp224_make_precomp, .-ec_GFp_nistp224_make_precomp
# WAS .section	.text.ec_GFp_nistp224_point_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_point_mul, @function
.Lec_GFp_nistp224_point_mul_local_target:
ec_GFp_nistp224_point_mul:
.LFB1941:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$219, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	$-256, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$224, %ebx
	subq	$2104, %rsp
	.cfi_def_cfa_offset 2160
	movq	%fs:40, %rax
	movq	%rax, 2088(%rsp)
	xorl	%eax, %eax
	leaq	448(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 72(%rsp)
# WAS call	ec_GFp_nistp224_make_precomp
	call	.Lec_GFp_nistp224_make_precomp_local_target
	leaq	112(%rsp), %r11
	xorl	%eax, %eax
	movl	$12, %ecx
	movq	%r11, %rdi
	movq	%r11, 88(%rsp)
	movl	$220, %esi
	rep stosq
	leaq	176(%rsp), %rax
	movq	%rbp, 104(%rsp)
	movq	%r14, %rbp
	movq	%rax, 40(%rsp)
	leaq	144(%rsp), %rax
	movq	%rax, 80(%rsp)
	leaq	208(%rsp), %rax
	movq	%rax, 64(%rsp)
	leaq	320(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	416(%rsp), %rax
	movl	$1, 52(%rsp)
	movq	%rax, 56(%rsp)
.L2751:

	xorl	%edi, %edi
	cmpq	$224, %rbx
	je	.L2753
	movq	%rbx, %rax
	movl	%ebx, %ecx
	shrq	$6, %rax
	movq	0(%rbp,%rax,8), %rax
	shrq	%cl, %rax
	movq	%rax, %rdi
	salq	$5, %rdi
	andl	$32, %edi
.L2753:

	leaq	4(%r15), %rax
	leaq	3(%r15), %rdx
	shrq	$6, %rsi
	shrq	$6, %rax
	shrq	$6, %rdx
	leal	4(%r15), %ecx
	movq	0(%rbp,%rax,8), %rax
	movq	0(%rbp,%rdx,8), %rdx
	shrq	%cl, %rax
	leal	3(%r15), %ecx
	shrq	%cl, %rdx
	salq	$4, %rax
	leal	2(%r15), %ecx
	salq	$3, %rdx
	andl	$16, %eax
	andl	$8, %edx
	orq	%rdx, %rax
	leaq	2(%r15), %rdx
	shrq	$6, %rdx
	movq	0(%rbp,%rdx,8), %rdx
	shrq	%cl, %rdx
	leal	1(%r15), %ecx
	salq	$2, %rdx
	andl	$4, %edx
	orq	%rdx, %rax
	movq	0(%rbp,%rsi,8), %rdx
	shrq	%cl, %rdx
	leaq	(%rdx,%rdx), %rsi
	andl	$2, %esi
	orq	%rsi, %rax
	orq	%rdi, %rax
	movq	%rax, %rsi
	cmpq	$223, %r15
	ja	.L2754
	movq	%r15, %rax
	movl	%r15d, %ecx
	shrq	$6, %rax
	movq	0(%rbp,%rax,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
	orq	%rax, %rsi
.L2754:

	movq	%rsi, %rdx
	movl	$63, %ecx
	pxor	%xmm1, %xmm1
	xorl	%r14d, %r14d
	shrq	$5, %rdx
	subq	%rsi, %rcx
	movdqa	%xmm1, %xmm2
	xorl	%r8d, %r8d
	movq	%rdx, %r11
	leaq	-1(%rdx), %rax
	movq	72(%rsp), %rdx
	movdqa	%xmm1, %xmm3
	negq	%r11
	andq	%rsi, %rax
	movdqa	%xmm1, %xmm4
	xorl	%r9d, %r9d
	andq	%r11, %rcx
	xorl	%esi, %esi
	orq	%rcx, %rax
	xorl	%ecx, %ecx
	movq	%rax, %rdi
	andl	$1, %eax
	shrq	%rdi
	addq	%rax, %rdi
	.p2align 4,,10
	.p2align 3
.L2755:

	movq	%rdi, %r10
	movdqa	(%rdx), %xmm5
	addq	$96, %rdx
	xorq	%rsi, %r10
	addq	$1, %rsi
	movq	%r10, %rax
	subq	$1, %r10
	notq	%rax
	andq	%r10, %rax
	movq	-64(%rdx), %r10
	sarq	$63, %rax
	movq	%rax, %xmm0
	andq	%rax, %r10
	punpcklqdq	%xmm0, %xmm0
	orq	%r10, %r9
	movq	-56(%rdx), %r10
	pand	%xmm0, %xmm5
	por	%xmm5, %xmm4
	movdqa	-80(%rdx), %xmm5
	andq	%rax, %r10
	orq	%r10, %r8
	movq	-48(%rdx), %r10
	pand	%xmm0, %xmm5
	por	%xmm5, %xmm3
	movdqa	-32(%rdx), %xmm5
	andq	%rax, %r10
	andq	-40(%rdx), %rax
	orq	%r10, %rcx
	orq	%rax, %r14
	pand	%xmm0, %xmm5
	pand	-16(%rdx), %xmm0
	por	%xmm5, %xmm2
	por	%xmm0, %xmm1
	cmpq	$17, %rsi
	jne	.L2755
	movl	$256, %eax
	movl	$1, %edx
	movq	64(%rsp), %rsi
	movq	56(%rsp), %rdi
	subq	%r9, %rax
	pxor	%xmm0, %xmm0
	movq	%r11, 32(%rsp)
	sbbq	$0, %rdx
	movq	%rax, 208(%rsp)
	movabsq	$-281474976710912, %rax
	movq	%rdx, 216(%rsp)
	xorl	%edx, %edx
	subq	%r8, %rax
	sbbq	$0, %rdx
	movq	%rax, 224(%rsp)
	movq	%r12, %rax
	subq	%rcx, %rax
	movq	%rdx, 232(%rsp)
	movq	%r13, %rdx
	sbbq	$0, %rdx
	movq	%rax, 240(%rsp)
	movq	%r12, %rax
	subq	%r14, %rax
	movq	%rdx, 248(%rsp)
	movq	%r13, %rdx
	sbbq	$0, %rdx
	movq	%r9, 24(%rsp)
	movq	%r8, (%rsp)
	movq	%rcx, 16(%rsp)
	movq	%rax, 256(%rsp)
	movq	%rdx, 264(%rsp)
	movaps	%xmm4, 320(%rsp)
	movaps	%xmm3, 336(%rsp)
	movaps	%xmm2, 384(%rsp)
	movaps	%xmm1, 400(%rsp)
	movaps	%xmm0, 272(%rsp)
	movaps	%xmm0, 288(%rsp)
	movaps	%xmm0, 304(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movq	24(%rsp), %r9
	movq	32(%rsp), %r11
	movq	416(%rsp), %rax
	movq	(%rsp), %r8
	movq	16(%rsp), %rcx
	xorq	%r9, %rax
	andq	%r11, %rax
	xorq	%r9, %rax
	movq	%rax, 352(%rsp)
	movq	424(%rsp), %rax
	xorq	%r8, %rax
	andq	%r11, %rax
	xorq	%r8, %rax
	movq	%rax, 360(%rsp)
	movq	432(%rsp), %rax
	xorq	%rcx, %rax
	andq	%r11, %rax
	xorq	%rcx, %rax
	movq	%rax, 368(%rsp)
	movq	440(%rsp), %rax
	xorq	%r14, %rax
	andq	%r11, %rax
	xorq	%r14, %rax
	movq	%rax, 376(%rsp)
	movl	52(%rsp), %eax
	testl	%eax, %eax
	jne	.L2756
	subq	$8, %rsp
	.cfi_def_cfa_offset 2168
	subq	$1, %rbx
	leaq	392(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 2176
	leaq	368(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 2184
	pushq	120(%rsp)
	.cfi_def_cfa_offset 2192
	movq	72(%rsp), %rdx
	movq	112(%rsp), %rsi
	movq	120(%rsp), %rdi
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rdi, %rcx
# WAS call	p224_point_add.constprop.0
	call	.Lp224_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2160
	cmpq	$-1, %r15
	je	.L2765
.L2767:

	movl	$0, 52(%rsp)
	movabsq	$3689348814741910323, %r14
	movq	%r12, (%rsp)
	movq	%rbp, 16(%rsp)
	movq	80(%rsp), %rbp
	movq	%r13, 8(%rsp)
	movq	%r15, %r13
	movq	%rbx, %r15
	movq	88(%rsp), %rbx
.L2752:

	movq	40(%rsp), %rdx
	movq	%rbp, %r8
	movq	%rbx, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rdx, %r9
# WAS call	p224_point_double
	call	.Lp224_point_double_local_target
	leaq	-1(%r13), %rax
	movabsq	$-3689348814741910323, %rdx
	imulq	%r13, %rdx
	cmpq	%rdx, %r14
	jnb	.L2760
	subq	$1, %r15
	movq	%rax, %r13
	jmp	.L2752
.L2756:

	movdqa	320(%rsp), %xmm6
	subq	$1, %rbx
	movdqa	336(%rsp), %xmm7
	movaps	%xmm6, 112(%rsp)
	movdqa	352(%rsp), %xmm6
	movaps	%xmm7, 128(%rsp)
	movdqa	368(%rsp), %xmm7
	movaps	%xmm6, 144(%rsp)
	movdqa	384(%rsp), %xmm6
	movaps	%xmm7, 160(%rsp)
	movdqa	400(%rsp), %xmm7
	movaps	%xmm6, 176(%rsp)
	movaps	%xmm7, 192(%rsp)
	cmpq	$-1, %r15
	jne	.L2767
.L2765:

	movq	104(%rsp), %rbp
	movq	88(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	80(%rsp), %rsi
	leaq	72(%rbp), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	40(%rsp), %rsi
	leaq	144(%rbp), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	2088(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2768
	addq	$2104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L2760:

	.cfi_restore_state
	movq	%r15, %rbx
	movq	%r13, %r15
	movq	16(%rsp), %rbp
	movq	(%rsp), %r12
	movq	%r15, %rsi
	movq	8(%rsp), %r13
	movq	%rax, %r15
	jmp	.L2751
.L2768:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1941:

	.size	ec_GFp_nistp224_point_mul, .-ec_GFp_nistp224_point_mul
# WAS .section	.text.ec_GFp_nistp224_point_mul_public,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp224_point_mul_public, @function
.Lec_GFp_nistp224_point_mul_public_local_target:
ec_GFp_nistp224_point_mul_public:
.LFB1943:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	$220, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	movq	%rcx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$220, %ebx
	subq	$2024, %rsp
	.cfi_def_cfa_offset 2080
	movq	%fs:40, %rax
	movq	%rax, 2008(%rsp)
	xorl	%eax, %eax
	leaq	368(%rsp), %rdi
# WAS call	ec_GFp_nistp224_make_precomp
	call	.Lec_GFp_nistp224_make_precomp_local_target
	leaq	64(%rsp), %r8
	xorl	%eax, %eax
	movl	$12, %ecx
	movq	%r8, %rdi
	movq	%rbp, 56(%rsp)
	movl	$1, %r11d
	rep stosq
	leaq	128(%rsp), %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 24(%rsp)
	leaq	96(%rsp), %rax
	movq	$224, 8(%rsp)
	movq	%rax, 16(%rsp)
	jmp	.L2770
	.p2align 4,,10
	.p2align 3
.L2801:

	cmpq	$224, 8(%rsp)
	movl	%r13d, 48(%rsp)
	jne	.L2772
.L2774:

	leaq	3(%rbx), %rax
	leaq	2(%rbx), %rdx
	shrq	$6, %rax
	shrq	$6, %rdx
	leal	4(%rbp), %ecx
	movq	(%r14,%rax,8), %rax
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rax
	leal	3(%rbp), %ecx
	shrq	%cl, %rdx
	salq	$4, %rax
	leal	2(%rbp), %ecx
	salq	$3, %rdx
	andl	$16, %eax
	andl	$8, %edx
	orq	%rdx, %rax
	leaq	1(%rbx), %rdx
	shrq	$6, %rbx
	shrq	$6, %rdx
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	movzbl	48(%rsp), %ecx
	salq	$2, %rdx
	andl	$4, %edx
	orq	%rdx, %rax
	movq	(%r14,%rbx,8), %rdx
	orq	%r12, %rax
	shrq	%cl, %rdx
	addq	%rdx, %rdx
	andl	$2, %edx
	orq	%rdx, %rax
	cmpq	$223, %rbp
	ja	.L2775
	movq	%rbp, %rdx
	movl	%ebp, %ecx
	shrq	$6, %rdx
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	orq	%rdx, %rax
.L2775:

	movq	%rax, %rcx
	movl	$63, %edx
	shrq	$5, %rcx
	subq	%rax, %rdx
	movq	%rcx, %rsi
	negq	%rsi
	andq	%rdx, %rsi
	leaq	-1(%rcx), %rdx
	andq	%rdx, %rax
	orq	%rsi, %rax
	movq	%rax, %rdx
	andl	$1, %eax
	shrq	%rdx
	addq	%rdx, %rax
	leaq	(%rax,%rax,2), %rdx
	salq	$5, %rdx
	leaq	368(%rsp,%rdx), %rax
	movdqa	368(%rsp,%rdx), %xmm1
	movdqa	16(%rax), %xmm2
	movdqa	32(%rax), %xmm3
	movdqa	48(%rax), %xmm4
	movdqa	64(%rax), %xmm5
	movaps	%xmm1, 160(%rsp)
	movdqa	80(%rax), %xmm6
	movaps	%xmm2, 176(%rsp)
	movaps	%xmm3, 192(%rsp)
	movaps	%xmm4, 208(%rsp)
	movaps	%xmm5, 224(%rsp)
	movaps	%xmm6, 240(%rsp)
	testq	%rcx, %rcx
	jne	.L2798
.L2776:

	testl	%r11d, %r11d
	jne	.L2777
	subq	$8, %rsp
	.cfi_def_cfa_offset 2088
	subq	$1, %r13
	leaq	232(%rsp), %rdx
	leaq	168(%rsp), %rax
	pushq	%rdx
	.cfi_def_cfa_offset 2096
	leaq	208(%rsp), %rdx
	pushq	%rdx
	.cfi_def_cfa_offset 2104
	pushq	%rax
	.cfi_def_cfa_offset 2112
	movq	56(%rsp), %rdx
	movq	48(%rsp), %rsi
	movq	64(%rsp), %rdi
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rdi, %rcx
# WAS call	p224_point_add.constprop.0
	call	.Lp224_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2080
	subq	$1, 8(%rsp)
	cmpq	$-1, %rbp
	je	.L2799
.L2778:

	movq	24(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	32(%rsp), %rdi
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rdi, %rcx
# WAS call	p224_point_double
	call	.Lp224_point_double_local_target
	xorl	%r11d, %r11d
.L2781:

	movq	%rbp, %rbx
.L2770:

	movabsq	$-3689348814741910323, %rax
	leaq	-1(%rbx), %rbp
	mulq	%rbx
	movq	%rdx, %r12
	andq	$-4, %rdx
	shrq	$2, %r12
	addq	%r12, %rdx
	movq	%rbx, %r12
	subq	%rdx, %r12
	cmpq	$27, %r13
	jbe	.L2800
	testq	%r12, %r12
	je	.L2801
.L2773:

	subq	$1, 8(%rsp)
	subq	$1, %r13
	testl	%r11d, %r11d
	jne	.L2781
	jmp	.L2778
	.p2align 4,,10
	.p2align 3
.L2800:

	movq	24(%r15), %rdx
	movq	(%r15), %r10
	movl	%r11d, 52(%rsp)
	subq	$8, %rsp
	.cfi_def_cfa_offset 2088
	movq	16(%r15), %rax
	leal	197(%rbp), %ecx
	shrq	%cl, %rdx
	leal	141(%rbp), %ecx
	movq	%r10, 48(%rsp)
	shrq	%cl, %rax
	salq	$3, %rdx
	leal	29(%rbp), %ecx
	salq	$2, %rax
	andl	$8, %edx
	andl	$4, %eax
	orq	%rdx, %rax
	movq	%r10, %rdx
	shrq	%cl, %rdx
	leal	85(%rbp), %ecx
	andl	$1, %edx
	orq	%rdx, %rax
	movq	8(%r15), %rdx
	shrq	%cl, %rdx
	addq	%rdx, %rdx
	andl	$2, %edx
	orq	%rdx, %rax
	leaq	(%rax,%rax,2), %rdx
# WAS leaq	g_p224_pre_comp(%rip), %rax
	leaq	.Lg_p224_pre_comp_local_target(%rip), %rax
	salq	$5, %rdx
	leaq	1600(%rax,%rdx), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 2096
	leaq	1568(%rax,%rdx), %rcx
	leaq	1536(%rax,%rdx), %rdx
	pushq	%rcx
	.cfi_def_cfa_offset 2104
	pushq	%rdx
	.cfi_def_cfa_offset 2112
	movq	56(%rsp), %r9
	movq	48(%rsp), %r8
	movq	64(%rsp), %rcx
	movq	%r9, %rdx
	movq	%r8, %rsi
	movq	%rcx, %rdi
# WAS call	p224_point_add.constprop.1
	call	.Lp224_point_add.constprop.1_local_target
	leal	169(%rbp), %ecx
	leaq	168(%rbx), %rdx
	movq	72(%rsp), %r10
	shrq	$6, %rdx
# WAS leaq	g_p224_pre_comp(%rip), %rax
	leaq	.Lg_p224_pre_comp_local_target(%rip), %rax
	movl	%r13d, 80(%rsp)
	movq	(%r15,%rdx,8), %rsi
	leaq	112(%rbx), %rdx
	shrq	$6, %rdx
	movq	(%r15,%rdx,8), %rdx
	shrq	%cl, %rsi
	leal	113(%rbp), %ecx
	salq	$3, %rsi
	shrq	%cl, %rdx
	movl	%r13d, %ecx
	andl	$8, %esi
	salq	$2, %rdx
	shrq	%cl, %r10
	leal	57(%rbp), %ecx
	andl	$4, %edx
	andl	$1, %r10d
	orq	%rsi, %rdx
	orq	%rdx, %r10
	leaq	56(%rbx), %rdx
	shrq	$6, %rdx
	movq	(%r15,%rdx,8), %rdx
	shrq	%cl, %rdx
	addq	%rdx, %rdx
	andl	$2, %edx
	addq	$24, %rsp
	.cfi_def_cfa_offset 2088
	orq	%r10, %rdx
	leaq	(%rdx,%rdx,2), %rdx
	salq	$5, %rdx
	leaq	64(%rax,%rdx), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 2096
	leaq	32(%rax,%rdx), %rcx
	addq	%rax, %rdx
	pushq	%rcx
	.cfi_def_cfa_offset 2104
	pushq	%rdx
	.cfi_def_cfa_offset 2112
	movq	56(%rsp), %rdx
	movq	48(%rsp), %rsi
	movq	64(%rsp), %rcx
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rcx, %rdi
# WAS call	p224_point_add.constprop.1
	call	.Lp224_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2080
	testq	%r12, %r12
	movl	52(%rsp), %r11d
	jne	.L2773
.L2772:

	movq	8(%rsp), %rdi
	movq	%rdi, %rax
	movl	%edi, %ecx
	shrq	$6, %rax
	movq	(%r14,%rax,8), %r12
	shrq	%cl, %r12
	salq	$5, %r12
	andl	$32, %r12d
	jmp	.L2774
	.p2align 4,,10
	.p2align 3
.L2777:

	movdqa	160(%rsp), %xmm7
	subq	$1, 8(%rsp)
	subq	$1, %r13
	movdqa	192(%rsp), %xmm0
	movdqa	224(%rsp), %xmm1
	movdqa	240(%rsp), %xmm2
	movaps	%xmm7, 64(%rsp)
	movdqa	176(%rsp), %xmm7
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm7, 80(%rsp)
	movdqa	208(%rsp), %xmm7
	movaps	%xmm1, 128(%rsp)
	movaps	%xmm7, 112(%rsp)
	movaps	%xmm2, 144(%rsp)
	cmpq	$-1, %rbp
	jne	.L2778
.L2799:

	movq	56(%rsp), %rbp
	movq	32(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	16(%rsp), %rsi
	leaq	72(%rbp), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	24(%rsp), %rsi
	leaq	144(%rbp), %rdi
# WAS call	p224_felem_to_generic
	call	.Lp224_felem_to_generic_local_target
	movq	2008(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2802
	addq	$2024, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2798:

	.cfi_restore_state
	movl	$256, %eax
	movl	$1, %edx
	subq	192(%rsp), %rax
	movl	%r11d, 48(%rsp)
	sbbq	$0, %rdx
	movq	%rax, 256(%rsp)
	movabsq	$-281474976710912, %rax
	pxor	%xmm0, %xmm0
	movq	%rdx, 264(%rsp)
	xorl	%edx, %edx
	subq	200(%rsp), %rax
	leaq	256(%rsp), %rsi
	sbbq	$0, %rdx
	movq	%rax, 272(%rsp)
	movq	$-256, %rax
	leaq	192(%rsp), %rdi
	movq	%rdx, 280(%rsp)
	xorl	%edx, %edx
	subq	208(%rsp), %rax
	sbbq	$0, %rdx
	movq	%rax, 288(%rsp)
	movq	$-256, %rax
	movq	%rdx, 296(%rsp)
	xorl	%edx, %edx
	subq	216(%rsp), %rax
	sbbq	$0, %rdx
	movq	%rax, 304(%rsp)
	movq	%rdx, 312(%rsp)
	movaps	%xmm0, 320(%rsp)
	movaps	%xmm0, 336(%rsp)
	movaps	%xmm0, 352(%rsp)
# WAS call	p224_felem_reduce
	call	.Lp224_felem_reduce_local_target
	movl	48(%rsp), %r11d
	jmp	.L2776
.L2802:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1943:

	.size	ec_GFp_nistp224_point_mul_public, .-ec_GFp_nistp224_point_mul_public
# WAS .section	.rodata
.text
.LC113:

	.string	""
	.string	""
	.zero	14
# WAS .section	.text.aes_nohw_set_encrypt_key,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_set_encrypt_key
	.hidden	aes_nohw_set_encrypt_key
	.type	aes_nohw_set_encrypt_key, @function
.Laes_nohw_set_encrypt_key_local_target:
aes_nohw_set_encrypt_key:
.LFB783:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$400, %rsp
	.cfi_def_cfa_offset 416
	movq	%fs:40, %rax
	movq	%rax, 392(%rsp)
	xorl	%eax, %eax
	cmpl	$192, %esi
	je	.L2804
	cmpl	$256, %esi
	je	.L2805
	movl	$1, %eax
	cmpl	$128, %esi
	jne	.L2803
	movl	$10, 240(%rdx)
	movdqu	(%rdi), %xmm6
# WAS leaq	aes_nohw_rcon(%rip), %rcx
	leaq	.Laes_nohw_rcon_local_target(%rip), %rcx
	leaq	16(%rdx), %rax
	leaq	10(%rcx), %rsi
	movups	%xmm6, (%rdx)
	movdqu	(%rdx), %xmm15
	movaps	%xmm15, (%rsp)
	.p2align 4,,10
	.p2align 3
.L2807:

	movdqa	(%rsp), %xmm6
	addq	$1, %rcx
	addq	$16, %rax
	movdqa	.LC4(%rip), %xmm10
	movdqa	.LC4(%rip), %xmm1
	movdqa	.LC4(%rip), %xmm7
	movdqa	%xmm6, %xmm8
	psrld	$1, %xmm8
	pand	.LC2(%rip), %xmm8
	movdqa	%xmm8, %xmm9
	movdqa	%xmm8, %xmm3
	pslld	$1, %xmm9
	psrld	$2, %xmm3
	pand	.LC3(%rip), %xmm3
	pxor	%xmm6, %xmm9
	movdqa	%xmm9, %xmm2
	movdqa	%xmm3, %xmm12
	psrld	$2, %xmm2
	pand	.LC3(%rip), %xmm2
	psrld	$4, %xmm12
	movdqa	%xmm2, %xmm0
	movdqa	%xmm2, %xmm4
	pand	%xmm12, %xmm7
	pslld	$2, %xmm0
	psrld	$4, %xmm4
	movdqa	%xmm7, %xmm5
	pxor	%xmm0, %xmm9
	movdqa	%xmm3, %xmm0
	pand	%xmm4, %xmm1
	pslld	$2, %xmm0
	pslld	$4, %xmm5
	movdqa	%xmm9, %xmm11
	psrld	$4, %xmm11
	pxor	%xmm0, %xmm8
	pxor	%xmm5, %xmm3
	pand	%xmm11, %xmm10
	movdqa	%xmm8, %xmm6
	pxor	%xmm11, %xmm12
	movdqa	%xmm10, %xmm0
	psrld	$4, %xmm6
	movdqa	%xmm10, %xmm13
	pslld	$4, %xmm0
	pxor	%xmm6, %xmm4
	pand	.LC4(%rip), %xmm4
	pand	.LC4(%rip), %xmm12
	pxor	%xmm0, %xmm9
	movdqa	.LC4(%rip), %xmm0
	pand	%xmm6, %xmm0
	movdqa	%xmm4, %xmm6
	movdqa	%xmm12, %xmm15
	pslld	$4, %xmm0
	pxor	%xmm9, %xmm6
	movaps	%xmm15, 32(%rsp)
	pxor	%xmm0, %xmm8
	movdqa	%xmm1, %xmm0
	pxor	%xmm6, %xmm10
	pslld	$4, %xmm0
	movaps	%xmm10, 64(%rsp)
	pxor	%xmm0, %xmm2
	movdqa	%xmm8, %xmm0
	pxor	%xmm2, %xmm13
	pxor	%xmm7, %xmm0
	movdqa	%xmm2, %xmm14
	movdqa	%xmm13, %xmm11
	movdqa	%xmm13, %xmm12
	movdqa	%xmm6, %xmm13
	pxor	%xmm0, %xmm11
	pxor	%xmm7, %xmm14
	pxor	%xmm7, %xmm13
	movaps	%xmm12, 176(%rsp)
	pxor	%xmm11, %xmm3
	movaps	%xmm13, 80(%rsp)
	movdqa	%xmm14, %xmm10
	movdqa	%xmm8, %xmm13
	pxor	%xmm3, %xmm2
	movdqa	%xmm14, %xmm8
	pxor	%xmm1, %xmm3
	movdqa	%xmm2, %xmm14
	movdqa	%xmm15, %xmm1
	movdqa	%xmm11, %xmm5
	movaps	%xmm8, 48(%rsp)
	pxor	%xmm3, %xmm1
	pxor	%xmm9, %xmm14
	movdqa	%xmm0, %xmm15
	movaps	%xmm5, 192(%rsp)
	movaps	%xmm14, 112(%rsp)
	movdqa	%xmm1, %xmm11
	movdqa	%xmm4, %xmm14
	pxor	%xmm1, %xmm4
	pxor	%xmm6, %xmm13
	pxor	%xmm2, %xmm14
	pxor	%xmm9, %xmm11
	pand	%xmm4, %xmm15
	pxor	%xmm13, %xmm10
	movaps	%xmm13, 96(%rsp)
	movdqa	%xmm5, %xmm13
	movaps	%xmm14, 16(%rsp)
	movdqa	32(%rsp), %xmm5
	pand	%xmm2, %xmm13
	pxor	%xmm4, %xmm7
	movaps	%xmm11, 128(%rsp)
	movdqa	%xmm14, %xmm11
	movdqa	%xmm15, %xmm14
	movdqa	16(%rsp), %xmm15
	pxor	%xmm1, %xmm11
	pand	%xmm1, %xmm5
	pxor	%xmm13, %xmm3
	movaps	%xmm10, 208(%rsp)
	pand	%xmm11, %xmm12
	pand	%xmm15, %xmm8
	pxor	%xmm15, %xmm13
	pxor	%xmm5, %xmm12
	pxor	%xmm5, %xmm8
	movdqa	112(%rsp), %xmm5
	movdqa	%xmm0, %xmm15
	pandn	%xmm4, %xmm15
	pand	%xmm10, %xmm5
	movdqa	64(%rsp), %xmm10
	pxor	%xmm12, %xmm5
	pand	%xmm9, %xmm10
	pxor	48(%rsp), %xmm10
	pxor	%xmm3, %xmm5
	pxor	%xmm13, %xmm10
	movdqa	96(%rsp), %xmm13
	pxor	%xmm8, %xmm10
	pand	%xmm6, %xmm13
	movdqa	%xmm13, %xmm3
	pxor	%xmm0, %xmm3
	pxor	%xmm15, %xmm3
	pxor	%xmm12, %xmm3
	movdqa	80(%rsp), %xmm12
	pand	128(%rsp), %xmm12
	movdqa	%xmm12, %xmm13
	pxor	%xmm14, %xmm13
	movdqa	%xmm3, %xmm14
	pxor	%xmm7, %xmm13
	movdqa	%xmm5, %xmm7
	pand	%xmm3, %xmm5
	pxor	%xmm8, %xmm13
	pxor	%xmm10, %xmm7
	movdqa	%xmm7, %xmm12
	movdqa	%xmm13, %xmm7
	pxor	%xmm13, %xmm14
	pxor	%xmm5, %xmm7
	movdqa	%xmm12, %xmm15
	pand	%xmm7, %xmm15
	movdqa	%xmm15, %xmm8
	movdqa	%xmm13, %xmm15
	pxor	%xmm10, %xmm8
	pxor	%xmm5, %xmm10
	pand	%xmm10, %xmm14
	pxor	%xmm14, %xmm5
	pxor	%xmm14, %xmm15
	pand	%xmm13, %xmm5
	movdqa	%xmm15, %xmm10
	pxor	%xmm15, %xmm3
	pxor	%xmm5, %xmm7
	movdqa	%xmm8, %xmm15
	pxor	%xmm5, %xmm3
	pxor	%xmm10, %xmm15
	pand	%xmm8, %xmm7
	movdqa	%xmm3, %xmm14
	pxor	%xmm12, %xmm7
	movdqa	%xmm15, %xmm13
	movdqa	%xmm8, %xmm15
	pxor	%xmm7, %xmm14
	pxor	%xmm7, %xmm15
	pand	%xmm10, %xmm9
	movdqa	%xmm15, %xmm12
	movdqa	%xmm10, %xmm5
	movdqa	%xmm14, %xmm15
	movaps	%xmm9, 160(%rsp)
	pxor	%xmm3, %xmm5
	pxor	%xmm13, %xmm15
	pand	%xmm12, %xmm4
	movdqa	128(%rsp), %xmm9
	pand	%xmm12, %xmm0
	movaps	%xmm5, 144(%rsp)
	movdqa	%xmm15, %xmm5
	pand	%xmm7, %xmm6
	pand	%xmm8, %xmm9
	pand	%xmm5, %xmm11
	pand	%xmm13, %xmm1
	movdqa	%xmm9, %xmm15
	pxor	%xmm4, %xmm1
	movdqa	208(%rsp), %xmm9
	pand	96(%rsp), %xmm7
	pxor	%xmm11, %xmm1
	pand	80(%rsp), %xmm8
	movzbl	-1(%rcx), %edx
	pand	176(%rsp), %xmm5
	pxor	%xmm15, %xmm7
	pand	144(%rsp), %xmm2
	pand	%xmm3, %xmm9
	pand	64(%rsp), %xmm10
	pand	112(%rsp), %xmm3
	movdqa	%xmm5, %xmm12
	movdqa	32(%rsp), %xmm5
	pxor	%xmm4, %xmm2
	movdqa	16(%rsp), %xmm4
	movaps	%xmm12, 128(%rsp)
	pand	%xmm13, %xmm5
	movaps	%xmm15, 32(%rsp)
	pand	%xmm14, %xmm4
	movdqa	%xmm6, %xmm15
	pxor	%xmm12, %xmm5
	pxor	%xmm11, %xmm4
	pxor	%xmm1, %xmm6
	movdqa	160(%rsp), %xmm12
	movdqa	192(%rsp), %xmm11
	pxor	%xmm5, %xmm15
	pand	144(%rsp), %xmm11
	pxor	%xmm0, %xmm12
	pxor	%xmm15, %xmm4
	pxor	%xmm7, %xmm0
	pxor	%xmm2, %xmm12
	pxor	%xmm9, %xmm11
	pxor	%xmm10, %xmm9
	pxor	%xmm12, %xmm5
	pxor	%xmm15, %xmm11
	pxor	%xmm12, %xmm8
	pxor	%xmm7, %xmm5
	pxor	%xmm4, %xmm8
	pxor	%xmm11, %xmm3
	pxor	%xmm8, %xmm9
	pxor	%xmm3, %xmm2
	movdqa	%xmm6, %xmm10
	pxor	.LC104(%rip), %xmm5
	movdqa	%xmm2, %xmm7
	pxor	%xmm2, %xmm10
	pxor	.LC104(%rip), %xmm10
	psrld	$1, %xmm7
	movdqa	%xmm5, %xmm15
	psrld	$1, %xmm15
	pxor	%xmm15, %xmm4
	pxor	%xmm4, %xmm0
	pandn	.LC2(%rip), %xmm0
	movdqa	%xmm9, %xmm4
	psrld	$1, %xmm4
	pslld	$1, %xmm0
	pxor	%xmm4, %xmm3
	movdqa	48(%rsp), %xmm4
	pxor	%xmm5, %xmm0
	movdqa	160(%rsp), %xmm5
	pxor	32(%rsp), %xmm5
	pand	%xmm14, %xmm4
	pxor	%xmm5, %xmm3
	pxor	%xmm7, %xmm4
	pand	.LC2(%rip), %xmm3
	movdqa	128(%rsp), %xmm5
	pxor	%xmm6, %xmm5
	pslld	$1, %xmm3
	pxor	%xmm5, %xmm4
	pxor	%xmm8, %xmm4
	pandn	.LC2(%rip), %xmm4
	pslld	$1, %xmm4
	pxor	%xmm4, %xmm2
	movdqa	%xmm10, %xmm4
	psrld	$1, %xmm4
	pxor	%xmm4, %xmm1
	movdqa	%xmm0, %xmm4
	psrld	$2, %xmm4
	pxor	%xmm11, %xmm1
	pand	.LC2(%rip), %xmm1
	pxor	%xmm4, %xmm3
	pxor	%xmm9, %xmm3
	pand	.LC3(%rip), %xmm3
	pslld	$1, %xmm1
	pslld	$2, %xmm3
	pxor	%xmm3, %xmm0
	movdqa	%xmm2, %xmm3
	psrld	$2, %xmm3
	pxor	%xmm3, %xmm1
	movdqa	%xmm0, %xmm3
	pxor	%xmm10, %xmm1
	pand	.LC3(%rip), %xmm1
	psrld	$4, %xmm3
	pslld	$2, %xmm1
	pxor	%xmm3, %xmm1
	pxor	%xmm2, %xmm1
	pand	.LC4(%rip), %xmm1
	pslld	$4, %xmm1
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrld	$8, %xmm0
	pslld	$24, %xmm1
	por	%xmm1, %xmm0
	movd	%edx, %xmm1
	psrldq	$12, %xmm0
	pxor	(%rsp), %xmm0
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm3
	movdqa	%xmm0, %xmm1
	movdqa	%xmm0, %xmm2
	pslldq	$4, %xmm3
	pslldq	$8, %xmm1
	pslldq	$12, %xmm2
	pxor	%xmm3, %xmm1
	pxor	%xmm2, %xmm0
	pxor	%xmm0, %xmm1
	movups	%xmm1, -16(%rax)
	movaps	%xmm1, (%rsp)
	cmpq	%rcx, %rsi
	jne	.L2807
.L2808:

	xorl	%eax, %eax
.L2803:

	movq	392(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L2822
	addq	$400, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2805:

	.cfi_restore_state
	movl	$14, 240(%rdx)
	movdqu	(%rdi), %xmm6
	addq	$32, %rdx
	movl	$2, %r8d
# WAS leaq	aes_nohw_rcon(%rip), %r9
	leaq	.Laes_nohw_rcon_local_target(%rip), %r9
	leaq	256(%rsp), %rsi
	movaps	%xmm6, 112(%rsp)
	movdqu	(%rdi), %xmm6
	leaq	272(%rsp), %r10
	movups	%xmm6, -32(%rdx)
	movdqu	16(%rdi), %xmm6
	movups	%xmm6, -16(%rdx)
	movdqu	-16(%rdx), %xmm6
	movaps	%xmm6, 128(%rsp)
	jmp	.L2810
	.p2align 4,,10
	.p2align 3
.L2820:

	movl	$14, %ecx
	movq	%r10, %rdi
	addq	$2, %r8
	rep stosq
	movq	%rsi, %rdi
	movaps	%xmm1, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
# WAS call	aes_nohw_sub_bytes
	call	.Laes_nohw_sub_bytes_local_target
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	256(%rsp), %xmm0
	psrldq	$12, %xmm0
	pxor	128(%rsp), %xmm0
	movdqa	%xmm0, %xmm3
	movdqa	%xmm0, %xmm1
	movdqa	%xmm0, %xmm2
	pslldq	$4, %xmm3
	pslldq	$8, %xmm1
	pslldq	$12, %xmm2
	pxor	%xmm3, %xmm1
	pxor	%xmm2, %xmm0
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 128(%rsp)
	movdqa	%xmm1, %xmm6
	movups	%xmm1, -16(%rdx)
.L2810:

	xorl	%eax, %eax
	movl	$14, %ecx
	movq	%r10, %rdi
	addq	$32, %rdx
	rep stosq
	movq	%rsi, %rdi
	movaps	%xmm6, 256(%rsp)
	movq	%r8, %rcx
	shrq	%rcx
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	320(%rsp), %xmm2
	movdqa	352(%rsp), %xmm6
	movdqa	256(%rsp), %xmm1
	pxor	336(%rsp), %xmm6
	movdqa	288(%rsp), %xmm0
	movdqa	%xmm2, %xmm14
	movdqa	%xmm2, %xmm12
	movdqa	368(%rsp), %xmm7
	movdqa	272(%rsp), %xmm3
	pxor	%xmm6, %xmm1
	movdqa	272(%rsp), %xmm5
	pxor	%xmm0, %xmm14
	pxor	%xmm1, %xmm2
	movdqa	%xmm0, %xmm8
	movdqa	256(%rsp), %xmm15
	pxor	%xmm7, %xmm3
	movaps	%xmm2, 16(%rsp)
	movdqa	%xmm14, %xmm4
	movdqa	304(%rsp), %xmm2
	pxor	%xmm3, %xmm4
	pxor	%xmm7, %xmm8
	pxor	%xmm1, %xmm5
	movdqa	256(%rsp), %xmm11
	pxor	%xmm4, %xmm2
	movdqa	%xmm8, %xmm9
	movaps	%xmm5, 48(%rsp)
	pxor	%xmm7, %xmm12
	pxor	%xmm2, %xmm0
	pxor	%xmm5, %xmm9
	movdqa	%xmm7, %xmm10
	movaps	%xmm4, 144(%rsp)
	movdqa	%xmm0, %xmm5
	pxor	%xmm1, %xmm10
	movdqa	%xmm4, %xmm13
	movdqa	352(%rsp), %xmm0
	pxor	%xmm5, %xmm15
	movaps	%xmm10, 32(%rsp)
	movdqa	%xmm12, %xmm4
	pand	%xmm5, %xmm13
	movaps	%xmm15, 64(%rsp)
	movdqa	%xmm6, %xmm15
	pxor	%xmm2, %xmm0
	movdqa	%xmm12, %xmm2
	pxor	%xmm5, %xmm15
	pxor	%xmm0, %xmm2
	movaps	%xmm8, (%rsp)
	pxor	%xmm13, %xmm0
	movdqa	%xmm15, %xmm10
	pand	%xmm2, %xmm4
	pand	%xmm15, %xmm8
	movaps	%xmm9, 160(%rsp)
	pxor	%xmm2, %xmm10
	pxor	%xmm4, %xmm8
	pxor	%xmm15, %xmm13
	movaps	%xmm10, 176(%rsp)
	pand	%xmm14, %xmm10
	pxor	%xmm2, %xmm6
	pxor	%xmm2, %xmm11
	pxor	%xmm4, %xmm10
	movdqa	64(%rsp), %xmm4
	movaps	%xmm11, 80(%rsp)
	movdqa	%xmm3, %xmm11
	pand	%xmm6, %xmm11
	pxor	%xmm6, %xmm7
	pand	%xmm9, %xmm4
	movdqa	16(%rsp), %xmm9
	pand	256(%rsp), %xmm9
	pxor	%xmm10, %xmm4
	pxor	(%rsp), %xmm9
	pxor	%xmm0, %xmm4
	movdqa	48(%rsp), %xmm0
	pxor	%xmm13, %xmm9
	movdqa	%xmm3, %xmm13
	pand	%xmm1, %xmm0
	pandn	%xmm6, %xmm13
	pxor	%xmm8, %xmm9
	pxor	%xmm3, %xmm0
	pxor	%xmm13, %xmm0
	pxor	%xmm10, %xmm0
	movdqa	32(%rsp), %xmm10
	pand	80(%rsp), %xmm10
	movdqa	%xmm10, %xmm13
	movdqa	%xmm0, %xmm10
	pxor	%xmm11, %xmm13
	movdqa	%xmm4, %xmm11
	pand	%xmm0, %xmm4
	pxor	%xmm7, %xmm13
	pxor	%xmm9, %xmm11
	pxor	%xmm8, %xmm13
	movdqa	%xmm11, %xmm8
	movdqa	%xmm13, %xmm7
	pxor	%xmm13, %xmm10
	pxor	%xmm4, %xmm7
	pand	%xmm7, %xmm8
	pxor	%xmm9, %xmm8
	pxor	%xmm4, %xmm9
	pand	%xmm10, %xmm9
	movdqa	%xmm13, %xmm10
	pxor	%xmm9, %xmm4
	pxor	%xmm9, %xmm10
	pand	%xmm13, %xmm4
	pxor	%xmm10, %xmm0
	movaps	%xmm10, 192(%rsp)
	pxor	%xmm4, %xmm7
	pxor	%xmm4, %xmm0
	pand	%xmm8, %xmm7
	pxor	%xmm11, %xmm7
	movdqa	%xmm0, %xmm11
	pxor	%xmm7, %xmm11
	pand	%xmm7, %xmm1
	movdqa	%xmm11, %xmm9
	movdqa	%xmm8, %xmm11
	movaps	%xmm9, 208(%rsp)
	pxor	%xmm10, %xmm11
	movdqa	%xmm11, %xmm13
	movdqa	%xmm8, %xmm11
	pxor	%xmm7, %xmm11
	pxor	%xmm13, %xmm9
	pand	%xmm13, %xmm12
	movdqa	%xmm11, %xmm4
	movdqa	%xmm10, %xmm11
	pand	%xmm13, %xmm2
	pxor	%xmm0, %xmm11
	pand	%xmm4, %xmm6
	pand	%xmm4, %xmm3
	pand	%xmm11, %xmm5
	movdqa	%xmm12, %xmm4
	pxor	%xmm6, %xmm2
	pand	256(%rsp), %xmm10
	pxor	%xmm6, %xmm5
	movaps	%xmm10, 96(%rsp)
	movdqa	80(%rsp), %xmm10
	movdqa	208(%rsp), %xmm13
	pand	48(%rsp), %xmm7
	movdqa	96(%rsp), %xmm12
	pand	%xmm8, %xmm10
	pand	%xmm13, %xmm15
	pand	32(%rsp), %xmm8
	movaps	%xmm10, 80(%rsp)
	movdqa	%xmm15, %xmm6
	movdqa	176(%rsp), %xmm10
	pxor	80(%rsp), %xmm7
	pand	144(%rsp), %xmm11
	pxor	%xmm3, %xmm12
	pand	%xmm9, %xmm10
	pand	%xmm14, %xmm9
	movdqa	%xmm1, %xmm14
	pxor	%xmm9, %xmm4
	pxor	%xmm7, %xmm3
	pxor	%xmm5, %xmm12
	movaps	%xmm10, 176(%rsp)
	movdqa	160(%rsp), %xmm10
	pxor	%xmm4, %xmm14
	pxor	%xmm12, %xmm8
	pxor	%xmm12, %xmm4
	pxor	%xmm7, %xmm4
	pxor	.LC104(%rip), %xmm4
	pand	%xmm0, %xmm10
	pand	64(%rsp), %xmm0
	movaps	%xmm10, 160(%rsp)
	movdqa	176(%rsp), %xmm10
	movdqa	160(%rsp), %xmm15
	movaps	%xmm4, 256(%rsp)
	pxor	%xmm10, %xmm6
	pxor	%xmm15, %xmm11
	pxor	%xmm10, %xmm2
	pxor	%xmm14, %xmm6
	pxor	%xmm14, %xmm11
	pxor	%xmm2, %xmm1
	pxor	%xmm6, %xmm3
	pxor	%xmm6, %xmm8
	pxor	%xmm11, %xmm0
	pxor	.LC104(%rip), %xmm3
	pxor	%xmm0, %xmm5
	pxor	%xmm11, %xmm2
	movaps	%xmm2, 368(%rsp)
	movaps	%xmm3, 272(%rsp)
	movdqa	16(%rsp), %xmm3
	pand	192(%rsp), %xmm3
	movaps	%xmm5, 320(%rsp)
	pxor	%xmm15, %xmm3
	pxor	%xmm8, %xmm3
	pxor	%xmm1, %xmm8
	pxor	%xmm5, %xmm1
	movaps	%xmm3, 288(%rsp)
	movdqa	96(%rsp), %xmm3
	pxor	80(%rsp), %xmm3
	pxor	.LC104(%rip), %xmm1
	pxor	%xmm3, %xmm0
	movaps	%xmm0, 304(%rsp)
	movdqa	(%rsp), %xmm0
	movaps	%xmm1, 352(%rsp)
	pand	%xmm13, %xmm0
	pxor	%xmm9, %xmm0
	pxor	%xmm0, %xmm8
	pxor	.LC104(%rip), %xmm8
	movaps	%xmm8, 336(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movzbl	-1(%r9,%rcx), %ecx
	movdqa	256(%rsp), %xmm1
	movdqa	%xmm1, %xmm2
	movdqa	%xmm1, %xmm0
	movd	%ecx, %xmm1
	pslld	$24, %xmm2
	psrld	$8, %xmm0
	por	%xmm2, %xmm0
	psrldq	$12, %xmm0
	pxor	112(%rsp), %xmm0
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm3
	movdqa	%xmm0, %xmm1
	movdqa	%xmm0, %xmm2
	pslldq	$4, %xmm3
	pslldq	$8, %xmm1
	pslldq	$12, %xmm2
	pxor	%xmm3, %xmm1
	pxor	%xmm2, %xmm0
	pxor	%xmm0, %xmm1
	movups	%xmm1, -32(%rdx)
	movaps	%xmm1, 112(%rsp)
	cmpq	$14, %r8
	jne	.L2820
	jmp	.L2808
	.p2align 4,,10
	.p2align 3
.L2804:

	movl	$12, 240(%rdx)
	movdqu	(%rdi), %xmm0
# WAS leaq	aes_nohw_rcon(%rip), %r11
	leaq	.Laes_nohw_rcon_local_target(%rip), %r11
	addq	$16, %rdx
	leaq	8(%r11), %rbx
	leaq	224(%rsp), %r8
	movups	%xmm0, -16(%rdx)
	movq	16(%rdi), %rax
	leaq	240(%rsp), %r9
	leaq	256(%rsp), %rsi
	movaps	%xmm0, 224(%rsp)
	leaq	272(%rsp), %r10
	movq	%rax, 240(%rsp)
	movq	8+.LC113(%rip), %rax
	movq	%rax, 248(%rsp)
	xorl	%eax, %eax
.L2809:

	movl	$14, %ecx
	movq	%r10, %rdi
	addq	$2, %r11
	addq	$48, %rdx
	rep stosq
	movdqa	(%r9), %xmm1
	movq	%rsi, %rdi
	movaps	%xmm1, 256(%rsp)
	movaps	%xmm1, (%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
# WAS call	aes_nohw_sub_bytes
	call	.Laes_nohw_sub_bytes_local_target
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movzbl	-2(%r11), %ecx
	movdqa	(%rsp), %xmm1
	movq	%r10, %rdi
	movdqa	256(%rsp), %xmm0
	movd	%ecx, %xmm2
	pxor	(%r8), %xmm2
	movl	$14, %ecx
	rep stosq
	movdqa	%xmm0, %xmm3
	psrld	$8, %xmm0
	movq	%rsi, %rdi
	pslld	$24, %xmm3
	pslldq	$8, %xmm2
	por	%xmm3, %xmm0
	por	%xmm2, %xmm1
	pslldq	$4, %xmm0
	pand	.LC114(%rip), %xmm0
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	pslldq	$4, %xmm1
	pand	.LC115(%rip), %xmm1
	pxor	%xmm1, %xmm0
	movaps	%xmm0, (%r9)
	movdqa	(%r8), %xmm1
	psrldq	$8, %xmm1
	movaps	%xmm1, (%r8)
	movdqa	(%r9), %xmm0
	pslldq	$8, %xmm0
	por	%xmm1, %xmm0
	movaps	%xmm0, (%r8)
	movdqa	(%r9), %xmm1
	psrldq	$12, %xmm1
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm3
	movdqa	%xmm0, %xmm1
	movdqa	%xmm0, %xmm2
	pslldq	$4, %xmm3
	pslldq	$12, %xmm2
	pslldq	$8, %xmm1
	pxor	%xmm2, %xmm0
	pxor	%xmm3, %xmm1
	pxor	%xmm1, %xmm0
	movaps	%xmm0, (%r8)
	movdqa	(%r9), %xmm2
	movups	%xmm0, -32(%rdx)
	movups	%xmm2, -48(%rdx)
	movaps	%xmm2, (%rsp)
	movaps	%xmm0, 256(%rsp)
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
# WAS call	aes_nohw_sub_bytes
	call	.Laes_nohw_sub_bytes_local_target
# WAS call	aes_nohw_transpose
	call	.Laes_nohw_transpose_local_target
	movdqa	(%rsp), %xmm2
	movzbl	-1(%r11), %ecx
	movdqa	256(%rsp), %xmm1
	psrldq	$8, %xmm2
	movaps	%xmm2, (%r9)
	movdqa	%xmm1, %xmm3
	movdqa	(%r8), %xmm0
	psrld	$8, %xmm1
	pslld	$24, %xmm3
	por	%xmm3, %xmm1
	pslldq	$8, %xmm0
	psrldq	$12, %xmm1
	por	%xmm2, %xmm0
	pxor	%xmm1, %xmm0
	movd	%ecx, %xmm1
	movq	%r8, %rcx
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	movdqa	%xmm0, %xmm3
	pslldq	$4, %xmm2
	pslldq	$8, %xmm1
	pslldq	$12, %xmm3
	pxor	%xmm2, %xmm1
	pxor	%xmm3, %xmm0
	pxor	%xmm1, %xmm0
	movaps	%xmm0, (%r9)
	movdqa	(%r8), %xmm1
	psrldq	$8, %xmm1
	movaps	%xmm1, (%r8)
	movdqa	(%r9), %xmm0
	psrldq	$12, %xmm0
	pxor	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	pslldq	$4, %xmm1
	pxor	%xmm1, %xmm0
	pand	.LC116(%rip), %xmm0
	movaps	%xmm0, (%r8)
	movdqa	(%r9), %xmm6
	movq	%r9, %r8
	movups	%xmm6, -16(%rdx)
	cmpq	%r11, %rbx
	je	.L2808
	movq	%rcx, %r9
	jmp	.L2809
.L2822:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE783:

	.size	aes_nohw_set_encrypt_key, .-aes_nohw_set_encrypt_key
# WAS .section	.text.AES_set_encrypt_key,"ax",@progbits
.text
	.p2align 4
	.globl	AES_set_encrypt_key
	.type	AES_set_encrypt_key, @function
.LAES_set_encrypt_key_local_target:
AES_set_encrypt_key:
.LFB231:

	.cfi_startproc
	endbr64
	movl	%esi, %eax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	andl	$-65, %eax
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	%esi, %ebx
	cmpl	$128, %eax
	je	.L2828
	cmpl	$256, %esi
	jne	.L2824
.L2828:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rdx
	movl	%ebx, %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L2833
	testb	$2, %ah
	je	.L2827
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	vpaes_set_encrypt_key@PLT
	jmp	.Lvpaes_set_encrypt_key_local_target
	.p2align 4,,10
	.p2align 3
.L2827:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_nohw_set_encrypt_key
	jmp	.Laes_nohw_set_encrypt_key_local_target
	.p2align 4,,10
	.p2align 3
.L2833:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_set_encrypt_key@PLT
	jmp	.Laes_hw_set_encrypt_key_local_target
.L2824:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	movl	$-2, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE231:

	.size	AES_set_encrypt_key, .-AES_set_encrypt_key
# WAS .section	.text.CTR_DRBG_df,"ax",@progbits
.text
	.p2align 4
	.type	CTR_DRBG_df, @function
.LCTR_DRBG_df_local_target:
CTR_DRBG_df:
.LFB2590:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L2837
	movq	%rdx, %rbp
	testq	%rdx, %rdx
	jne	.L2852
.L2837:

	xorl	%eax, %eax
.L2834:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L2853
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2852:

	.cfi_restore_state
	movq	%rsi, %r13
	movq	%rcx, %rbx
# WAS call	bcc_init_once_bss_get@PLT
	call	bcc_init_once_bss_get
# WAS leaq	init_df_bcc_once(%rip), %rsi
	leaq	.Linit_df_bcc_once_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbp, %rax
	shrq	$32, %rax
	jne	.L2837
	movq	$-9, %rax
	subq	%rbp, %rax
	andl	$15, %eax
	leaq	25(%rbp,%rax), %r14
	movq	%r14, %rdi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L2837
	movl	%ebp, %eax
	movq	%rbp, %rdx
	leaq	24(%r12), %rdi
	movq	%r13, %rsi
	movl	$805306368, 20(%r12)
	bswap	%eax
	movl	%eax, 16(%r12)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movb	$-128, 24(%r12,%rbp)
	xorl	%ebp, %ebp
# WAS call	bcc_key_bss_get@PLT
	call	bcc_key_bss_get
	movl	$48, %esi
	movq	%rbx, %rdi
	movq	%rax, %r13
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	.p2align 4,,10
	.p2align 3
.L2838:

	movq	(%r12,%rbp), %rax
	xorq	%rax, (%rbx)
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	8(%r12,%rbp), %rax
	xorq	%rax, 8(%rbx)
	movq	%rbx, %rdi
	addq	$16, %rbp
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	cmpq	%r14, %rbp
	jb	.L2838
	movl	(%r12), %eax
	leaq	16(%rbx), %r15
	xorl	%ebp, %ebp
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, (%r12)
	.p2align 4,,10
	.p2align 3
.L2839:

	movq	(%r12,%rbp), %rax
	xorq	%rax, 16(%rbx)
	movq	%r13, %rdx
	movq	%r15, %rsi
	movq	8(%r12,%rbp), %rax
	xorq	%rax, 24(%rbx)
	movq	%r15, %rdi
	addq	$16, %rbp
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	cmpq	%r14, %rbp
	jb	.L2839
	movl	(%r12), %eax
	leaq	32(%rbx), %rcx
	xorl	%ebp, %ebp
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, (%r12)
	.p2align 4,,10
	.p2align 3
.L2840:

	movq	(%r12,%rbp), %rax
	xorq	%rax, 32(%rbx)
	movq	%rcx, %rsi
	movq	%rcx, %rdi
	movq	8(%r12,%rbp), %rax
	xorq	%rax, 40(%rbx)
	movq	%r13, %rdx
	addq	$16, %rbp
	movq	%rcx, 8(%rsp)
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	cmpq	%r14, %rbp
	movq	8(%rsp), %rcx
	jb	.L2840
	leaq	16(%rsp), %rbp
	movl	$256, %esi
	movq	%rbx, %rdi
	movq	%rbp, %rdx
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
	movq	8(%rsp), %rdi
	movq	%rbp, %rdx
	movq	%rbx, %rsi
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	movq	8(%rsp), %rsi
	movq	%rbp, %rdx
	movq	%r15, %rdi
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	$1, %eax
	jmp	.L2834
.L2853:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2590:

	.size	CTR_DRBG_df, .-CTR_DRBG_df
# WAS .section	.text.unlikely.init_df_bcc_once,"ax",@progbits
.text
.LCOLDB117:

# WAS .section	.text.init_df_bcc_once,"ax",@progbits
.text
.LHOTB117:

	.p2align 4
	.type	init_df_bcc_once, @function
.Linit_df_bcc_once_local_target:
init_df_bcc_once:
.LFB2587:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	bcc_key_bss_get@PLT
	call	bcc_key_bss_get
	movl	$256, %esi
# WAS leaq	staticBccKey.68(%rip), %rdi
	leaq	.LstaticBccKey.68_local_target(%rip), %rdi
	movq	%rax, %rdx
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
	testl	%eax, %eax
	jne	.L2856
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.init_df_bcc_once
.text
	.cfi_startproc
	.type	init_df_bcc_once.cold, @function
.Linit_df_bcc_once.cold_local_target:
init_df_bcc_once.cold:
.LFSB2587:

.L2856:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2587:

# WAS .section	.text.init_df_bcc_once
.text
	.size	init_df_bcc_once, .-init_df_bcc_once
# WAS .section	.text.unlikely.init_df_bcc_once
.text
	.size	init_df_bcc_once.cold, .-init_df_bcc_once.cold
.LCOLDE117:

# WAS .section	.text.init_df_bcc_once
.text
.LHOTE117:

# WAS .section	.text.AES_set_decrypt_key,"ax",@progbits
.text
	.p2align 4
	.globl	AES_set_decrypt_key
	.type	AES_set_decrypt_key, @function
.LAES_set_decrypt_key_local_target:
AES_set_decrypt_key:
.LFB232:

	.cfi_startproc
	endbr64
	movl	%esi, %eax
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	andl	$-65, %eax
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	%esi, %ebx
	cmpl	$128, %eax
	je	.L2863
	cmpl	$256, %esi
	jne	.L2859
.L2863:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rdx
	movl	%ebx, %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L2868
	testb	$2, %ah
	je	.L2862
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	vpaes_set_decrypt_key@PLT
	jmp	.Lvpaes_set_decrypt_key_local_target
	.p2align 4,,10
	.p2align 3
.L2862:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_nohw_set_encrypt_key
	jmp	.Laes_nohw_set_encrypt_key_local_target
	.p2align 4,,10
	.p2align 3
.L2868:

	.cfi_restore_state
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_set_decrypt_key@PLT
	jmp	.Laes_hw_set_decrypt_key_local_target
.L2859:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	movl	$-2, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE232:

	.size	AES_set_decrypt_key, .-AES_set_decrypt_key
# WAS .section	.text.aes_xts_init_key,"ax",@progbits
.text
	.p2align 4
	.type	aes_xts_init_key, @function
.Laes_xts_init_key_local_target:
aes_xts_init_key:
.LFB1168:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	orq	%rdx, %rax
	movq	16(%rdi), %r12
	je	.L2871
	movq	%rdi, %r13
	movq	%rsi, %rbx
	movq	%rdx, %r14
	testq	%rsi, %rsi
	je	.L2872
	movl	24(%rdi), %r15d
	movl	%r15d, %edx
	shrl	%edx
	je	.L2873
	movl	%edx, %edx
	movq	%rbx, %rdi
	movl	%ecx, %ebp
	leaq	(%rsi,%rdx), %rsi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	je	.L2873
	leal	0(,%r15,4), %esi
	movq	%r12, %rdx
	movq	%rbx, %rdi
	testl	%ebp, %ebp
	jne	.L2889
# WAS call	AES_set_decrypt_key@PLT
	call	.LAES_set_decrypt_key_local_target
# WAS movq	AES_decrypt@GOTPCREL(%rip), %rax
	leaq	.LAES_decrypt_local_target(%rip), %rax
# WAS movq	AES_encrypt@GOTPCREL(%rip), %rbp
	leaq	.LAES_encrypt_local_target(%rip), %rbp
.L2877:

	movq	%rax, 512(%r12)
	movl	24(%r13), %eax
	leaq	248(%r12), %rdx
	leal	0(,%rax,4), %esi
	shrl	%eax
	leaq	(%rbx,%rax), %rdi
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
	movq	%rbp, 520(%r12)
	movq	%r12, 496(%r12)
.L2872:

	testq	%r14, %r14
	je	.L2871
	leaq	248(%r12), %rax
	movq	%rax, 504(%r12)
	movdqu	(%r14), %xmm0
	movups	%xmm0, 52(%r13)
.L2871:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2873:

	.cfi_restore_state
	movl	$634, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$138, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2889:

	.cfi_restore_state
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
# WAS movq	AES_encrypt@GOTPCREL(%rip), %rbp
	leaq	.LAES_encrypt_local_target(%rip), %rbp
	movq	%rbp, %rax
	jmp	.L2877
	.cfi_endproc
.LFE1168:

	.size	aes_xts_init_key, .-aes_xts_init_key
# WAS .section	.text.aes_init_key,"ax",@progbits
.text
	.p2align 4
	.type	aes_init_key, @function
.Laes_init_key_local_target:
aes_init_key:
.LFB1157:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	(%rdi), %rax
	movl	24(%rdi), %r13d
	movq	16(%rdi), %r14
	movl	20(%rax), %ebx
	andl	$63, %ebx
	leal	-1(%rbx), %eax
	cmpl	$1, %eax
	setbe	%bpl
	testl	%ecx, %ecx
	sete	%al
	sall	$3, %r13d
	andl	%eax, %ebp
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	4(%rax), %eax
	movl	%eax, %edx
	andl	$33554432, %edx
	testb	%bpl, %bpl
	jne	.L2918
	testl	%edx, %edx
	movl	%r13d, %esi
	movq	%r14, %rdx
	movq	%r12, %rdi
	jne	.L2919
	testb	$2, %ah
	jne	.L2920
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rcx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rcx
	movq	%rcx, 248(%r14)
.L2914:

	cmpl	$2, %ebx
# WAS leaq	aes_nohw_cbc_encrypt(%rip), %rdx
	leaq	.Laes_nohw_cbc_encrypt_local_target(%rip), %rdx
	movl	$0, %ecx
	cmovne	%rcx, %rdx
	movq	%rdx, 256(%r14)
.L2894:

	movl	$1, %edx
	testl	%eax, %eax
	js	.L2921
.L2890:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%edx, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2920:

	.cfi_restore_state
# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
	movq	%rdx, 248(%r14)
	cmpl	$2, %ebx
	je	.L2916
	cmpl	$5, %ebx
	je	.L2908
.L2915:

	movq	$0, 256(%r14)
	movl	$1, %edx
	testl	%eax, %eax
	jns	.L2890
.L2921:

	movl	$100, %edx
	movl	$237, %r8d
	xorl	%esi, %esi
	movl	$30, %edi
	leaq	.LC27(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	movl	%edx, %eax
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2919:

	.cfi_restore_state
# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
	movq	%rdx, 248(%r14)
	cmpl	$2, %ebx
	je	.L2917
	cmpl	$5, %ebx
	jne	.L2915
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rdx
	movq	%rdx, 256(%r14)
	jmp	.L2894
	.p2align 4,,10
	.p2align 3
.L2918:

	testl	%edx, %edx
	movl	%r13d, %esi
	movq	%r14, %rdx
	movq	%r12, %rdi
	jne	.L2922
	testb	$2, %ah
	je	.L2896
# WAS call	vpaes_set_decrypt_key@PLT
	call	.Lvpaes_set_decrypt_key_local_target
# WAS movq	vpaes_decrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_decrypt_local_target(%rip), %rdx
	movq	%rdx, 248(%r14)
	cmpl	$2, %ebx
	jne	.L2915
.L2916:

# WAS movq	vpaes_cbc_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_cbc_encrypt_local_target(%rip), %rdx
	movq	%rdx, 256(%r14)
	jmp	.L2894
	.p2align 4,,10
	.p2align 3
.L2922:

# WAS call	aes_hw_set_decrypt_key@PLT
	call	.Laes_hw_set_decrypt_key_local_target
# WAS movq	aes_hw_decrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_decrypt_local_target(%rip), %rdx
	movq	%rdx, 248(%r14)
	cmpl	$2, %ebx
	jne	.L2915
.L2917:

# WAS movq	aes_hw_cbc_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_cbc_encrypt_local_target(%rip), %rdx
	movq	%rdx, 256(%r14)
	jmp	.L2894
	.p2align 4,,10
	.p2align 3
.L2896:

# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_decrypt(%rip), %rsi
	leaq	.Laes_nohw_decrypt_local_target(%rip), %rsi
	movq	%rsi, 248(%r14)
	jmp	.L2914
	.p2align 4,,10
	.p2align 3
.L2908:

# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rdx
	movq	%rdx, 256(%r14)
	jmp	.L2894
	.cfi_endproc
.LFE1157:

	.size	aes_init_key, .-aes_init_key
# WAS .section	.text.ctr_drbg_update.part.0.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	ctr_drbg_update.part.0.constprop.0, @function
.Lctr_drbg_update.part.0.constprop.0_local_target:
ctr_drbg_update.part.0.constprop.0:
.LFB3231:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	264(%rdi), %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r12
	leaq	48(%rsp), %rbp
	movq	%r12, %r14
.L2924:

	movl	276(%r13), %eax
	movq	%r14, %rsi
	movq	%r13, %rdx
	movq	%rbx, %rdi
	addq	$16, %r14
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r13)
	call	*248(%r13)
	cmpq	%r14, %rbp
	jne	.L2924
	movdqu	(%r15), %xmm0
	pxor	(%rsp), %xmm0
	movaps	%xmm0, (%rsp)
	movdqu	16(%r15), %xmm0
	pxor	16(%rsp), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqu	32(%r15), %xmm0
	pxor	32(%rsp), %xmm0
	movaps	%xmm0, 32(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r13, %rdx
	movl	$256, %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L2931
	testb	$2, %ah
	jne	.L2932
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L2926:

	movdqa	32(%rsp), %xmm1
	movq	%rdx, 248(%r13)
	movq	%rax, 256(%r13)
	movups	%xmm1, 264(%r13)
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2933
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2932:

	.cfi_restore_state
# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L2926
	.p2align 4,,10
	.p2align 3
.L2931:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L2926
.L2933:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3231:

	.size	ctr_drbg_update.part.0.constprop.0, .-ctr_drbg_update.part.0.constprop.0
# WAS .section	.text.ctr_drbg_update.part.0,"ax",@progbits
.text
	.p2align 4
	.type	ctr_drbg_update.part.0, @function
.Lctr_drbg_update.part.0_local_target:
ctr_drbg_update.part.0:
.LFB3044:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	264(%rdi), %rax
	leaq	16(%rsp), %rbx
	movq	%rax, 8(%rsp)
	movq	%rbx, %r14
	leaq	64(%rsp), %r12
.L2935:

	movl	276(%r13), %eax
	movq	%r14, %rsi
	addq	$16, %r14
	movq	8(%rsp), %rdi
	movq	%r13, %rdx
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r13)
	call	*248(%r13)
	cmpq	%r14, %r12
	jne	.L2935
	testq	%r15, %r15
	je	.L2936
	leaq	-1(%r15), %rax
	cmpq	$14, %rax
	jbe	.L2946
	movdqu	0(%rbp), %xmm0
	movq	%r15, %rax
	pxor	16(%rsp), %xmm0
	shrq	$4, %rax
	movaps	%xmm0, 16(%rsp)
	cmpq	$1, %rax
	je	.L2938
	movdqu	16(%rbp), %xmm0
	pxor	32(%rsp), %xmm0
	movaps	%xmm0, 32(%rsp)
	cmpq	$2, %rax
	je	.L2938
	movdqu	32(%rbp), %xmm0
	pxor	48(%rsp), %xmm0
	movaps	%xmm0, 48(%rsp)
.L2938:

	movq	%r15, %rax
	andq	$-16, %rax
	testb	$15, %r15b
	je	.L2936
.L2937:

	movq	%r15, %rdx
	subq	%rax, %rdx
	leaq	-1(%rdx), %rsi
	cmpq	$6, %rsi
	jbe	.L2940
	leaq	(%rbx,%rax), %rsi
	movq	0(%rbp,%rax), %xmm1
	movq	(%rsi), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rsi)
	movq	%rdx, %rsi
	andq	$-8, %rsi
	addq	%rsi, %rax
	andl	$7, %edx
	je	.L2936
.L2940:

	movzbl	0(%rbp,%rax), %edx
	xorb	%dl, 16(%rsp,%rax)
	leaq	1(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	1(%rbp,%rax), %esi
	xorb	%sil, 16(%rsp,%rdx)
	leaq	2(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	2(%rbp,%rax), %esi
	xorb	%sil, 16(%rsp,%rdx)
	leaq	3(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	3(%rbp,%rax), %esi
	xorb	%sil, 16(%rsp,%rdx)
	leaq	4(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	4(%rbp,%rax), %esi
	xorb	%sil, 16(%rsp,%rdx)
	leaq	5(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	5(%rbp,%rax), %esi
	xorb	%sil, 16(%rsp,%rdx)
	leaq	6(%rax), %rdx
	cmpq	%r15, %rdx
	jnb	.L2936
	movzbl	6(%rbp,%rax), %eax
	xorb	%al, 16(%rsp,%rdx)
.L2936:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r13, %rdx
	movl	$256, %esi
	movq	%rbx, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L2964
	testb	$2, %ah
	jne	.L2965
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L2943:

	movdqa	48(%rsp), %xmm2
	movq	%rdx, 248(%r13)
	movq	%rax, 256(%r13)
	movups	%xmm2, 264(%r13)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L2966
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2965:

	.cfi_restore_state
# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L2943
	.p2align 4,,10
	.p2align 3
.L2964:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L2943
.L2946:

	xorl	%eax, %eax
	jmp	.L2937
.L2966:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3044:

	.size	ctr_drbg_update.part.0, .-ctr_drbg_update.part.0
# WAS .section	.text.cipher_aes_ccm_init,"ax",@progbits
.text
	.p2align 4
	.type	cipher_aes_ccm_init, @function
.Lcipher_aes_ccm_init_local_target:
cipher_aes_ccm_init:
.LFB1305:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %rax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	orq	%rsi, %rax
	movq	16(%rdi), %rbx
	je	.L2969
	movq	%rbx, %rax
	movq	%rsi, %rbp
	movq	%rdx, %r12
	andl	$8, %eax
	addq	%rax, %rbx
	testq	%rsi, %rsi
	je	.L2970
	movl	24(%rdi), %r13d
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbx, %rdx
	movq	%rbp, %rdi
	movl	4(%rax), %eax
	leal	0(,%r13,8), %esi
	testl	$33554432, %eax
	jne	.L2997
	testb	$2, %ah
	jne	.L2998
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rsi
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rsi
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rcx
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rcx
.L2972:

	movq	312(%rbx), %xmm0
	pshufd	$0xe5, %xmm0, %xmm2
	movd	%xmm2, %eax
	leal	-4(%rax), %edx
	cmpl	$12, %edx
	ja	.L2976
	testb	$1, %al
	jne	.L2976
	movd	%xmm0, %edx
	leal	-2(%rdx), %eax
	cmpl	$6, %eax
	ja	.L2976
	pshufd	$225, %xmm0, %xmm0
	movq	%rsi, 248(%rbx)
	movq	%rcx, 256(%rbx)
	movb	$1, 304(%rbx)
	movq	%xmm0, 264(%rbx)
	testq	%r12, %r12
	je	.L2969
.L2985:

	leal	-2(%rdx), %eax
	cmpl	$6, %eax
	ja	.L2976
	movl	$15, %eax
	leaq	344(%rbx), %rcx
	movq	%xmm0, 264(%rbx)
	subl	%edx, %eax
	cmpl	$8, %eax
	jnb	.L2979
	testb	$4, %al
	jne	.L2999
	testl	%eax, %eax
	je	.L2980
	movzbl	(%r12), %edx
	movb	%dl, 344(%rbx)
	testb	$2, %al
	je	.L2980
	movzwl	-2(%r12,%rax), %edx
	movw	%dx, -2(%rcx,%rax)
	.p2align 4,,10
	.p2align 3
.L2980:

	movb	$1, 305(%rbx)
.L2969:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2970:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L2969
	movq	312(%rbx), %xmm1
	pshufd	$0xe5, %xmm1, %xmm3
	movd	%xmm3, %eax
	leal	-4(%rax), %edx
	cmpl	$12, %edx
	jbe	.L3000
.L2976:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2998:

	.cfi_restore_state
# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rsi
	leaq	.Lvpaes_encrypt_local_target(%rip), %rsi
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rcx
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rcx
	jmp	.L2972
	.p2align 4,,10
	.p2align 3
.L3000:

	testb	$1, %al
	jne	.L2976
	pshufd	$225, %xmm1, %xmm0
	movd	%xmm1, %edx
	jmp	.L2985
	.p2align 4,,10
	.p2align 3
.L2979:

	movq	(%r12), %rdx
	movq	%rdx, 344(%rbx)
	movl	%eax, %edx
	movq	-8(%r12,%rdx), %rsi
	movq	%rsi, -8(%rcx,%rdx)
	leaq	352(%rbx), %rsi
	andq	$-8, %rsi
	subq	%rsi, %rcx
	addl	%ecx, %eax
	subq	%rcx, %r12
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L2980
	andl	$-8, %eax
	xorl	%edx, %edx
.L2983:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	(%r12,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L2983
	jmp	.L2980
	.p2align 4,,10
	.p2align 3
.L2997:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rsi
	leaq	.Laes_hw_encrypt_local_target(%rip), %rsi
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rcx
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rcx
	jmp	.L2972
.L2999:

	movl	(%r12), %edx
	movl	%edx, 344(%rbx)
	movl	-4(%r12,%rax), %edx
	movl	%edx, -4(%rcx,%rax)
	jmp	.L2980
	.cfi_endproc
.LFE1305:

	.size	cipher_aes_ccm_init, .-cipher_aes_ccm_init
# WAS .section	.text.aes_nohw_set_decrypt_key,"ax",@progbits
.text
	.p2align 4
	.globl	aes_nohw_set_decrypt_key
	.hidden	aes_nohw_set_decrypt_key
	.type	aes_nohw_set_decrypt_key, @function
.Laes_nohw_set_decrypt_key_local_target:
aes_nohw_set_decrypt_key:
.LFB784:

	.cfi_startproc
	endbr64
# WAS jmp	aes_nohw_set_encrypt_key
	jmp	.Laes_nohw_set_encrypt_key_local_target
	.cfi_endproc
.LFE784:

	.size	aes_nohw_set_decrypt_key, .-aes_nohw_set_decrypt_key
# WAS .section	.rodata.AES_ecb_encrypt.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC118:

	.string	"/aws-lc/crypto/fipsmodule/service_indicator/service_indicator.c"
# WAS .section	.text.AES_ecb_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_ecb_encrypt
	.type	AES_ecb_encrypt, @function
.LAES_ecb_encrypt_local_target:
AES_ecb_encrypt:
.LFB796:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	cmpl	$1, %ecx
	je	.L3010
# WAS call	AES_decrypt@PLT
	call	.LAES_decrypt_local_target
.L3004:

	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3011
.L3005:

	cmpq	$0, (%rbx)
	jne	.L3002
	addq	$1, 8(%rbx)
.L3002:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3010:

	.cfi_restore_state
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	jmp	.L3004
	.p2align 4,,10
	.p2align 3
.L3011:

	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3002
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L3005
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE796:

	.size	AES_ecb_encrypt, .-AES_ecb_encrypt
# WAS .section	.text.AES_cbc_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_cbc_encrypt
	.type	AES_cbc_encrypt, @function
.LAES_cbc_encrypt_local_target:
AES_cbc_encrypt:
.LFB797:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%r9d, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L3028
	testb	$2, %ah
	je	.L3029
	testl	%ebp, %ebp
	je	.L3016
	testq	%rbx, %rbx
	je	.L3014
# WAS movq	AES_encrypt@GOTPCREL(%rip), %r9
	leaq	.LAES_encrypt_local_target(%rip), %r9
	movq	%r15, %r8
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	CRYPTO_cbc128_encrypt.part.0
	call	.LCRYPTO_cbc128_encrypt.part.0_local_target
	jmp	.L3014
	.p2align 4,,10
	.p2align 3
.L3029:

	movl	%ebp, %r9d
	movq	%r15, %r8
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	aes_nohw_cbc_encrypt
	call	.Laes_nohw_cbc_encrypt_local_target
.L3014:

	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3030
.L3017:

	cmpq	$0, (%rbx)
	jne	.L3012
	addq	$1, 8(%rbx)
.L3012:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3028:

	.cfi_restore_state
	movl	%ebp, %r9d
	movq	%r15, %r8
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	aes_hw_cbc_encrypt@PLT
	call	.Laes_hw_cbc_encrypt_local_target
	jmp	.L3014
	.p2align 4,,10
	.p2align 3
.L3016:

	testq	%rbx, %rbx
	je	.L3014
# WAS movq	AES_decrypt@GOTPCREL(%rip), %r9
	leaq	.LAES_decrypt_local_target(%rip), %r9
	movq	%r15, %r8
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	CRYPTO_cbc128_decrypt.part.0
	call	.LCRYPTO_cbc128_decrypt.part.0_local_target
	jmp	.L3014
	.p2align 4,,10
	.p2align 3
.L3030:

	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3012
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L3017
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
	popq	%rbx
	.cfi_def_cfa_offset 48
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE797:

	.size	AES_cbc_encrypt, .-AES_cbc_encrypt
# WAS .section	.text.AES_cfb8_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_cfb8_encrypt
	.hidden	AES_cfb8_encrypt
	.type	AES_cfb8_encrypt, @function
.LAES_cfb8_encrypt_local_target:
AES_cfb8_encrypt:
.LFB800:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movl	(%r9), %ecx
	movq	%r9, 8(%rsp)
	movl	%ecx, 4(%rsp)
	testq	%rdx, %rdx
	je	.L3032
# WAS movq	AES_encrypt@GOTPCREL(%rip), %r14
	leaq	.LAES_encrypt_local_target(%rip), %r14
	movq	%r8, %r12
	movq	%rdi, %r15
	movq	%rsi, %r13
	addq	%rdi, %rbx
	.p2align 4,,10
	.p2align 3
.L3033:

	movl	80(%rsp), %r8d
	movq	%r13, %rsi
	movq	%r15, %rdi
	movq	%r14, %r9
	movq	%r12, %rcx
	movq	%rbp, %rdx
	addq	$1, %r15
	addq	$1, %r13
# WAS call	cfbr_encrypt_block.part.0.constprop.0
	call	.Lcfbr_encrypt_block.part.0.constprop.0_local_target
	cmpq	%rbx, %r15
	jne	.L3033
.L3032:

	movq	8(%rsp), %rax
	movl	4(%rsp), %edi
	movl	%edi, (%rax)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE800:

	.size	AES_cfb8_encrypt, .-AES_cfb8_encrypt
# WAS .section	.text.aes_hw_xts_cipher,"ax",@progbits
.text
	.p2align 4
	.globl	aes_hw_xts_cipher
	.type	aes_hw_xts_cipher, @function
.Laes_hw_xts_cipher_local_target:
aes_hw_xts_cipher:
.LFB802:

	.cfi_startproc
	endbr64
	cmpq	$15, %rdx
	jbe	.L3053
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	64(%rsp), %esi
	movl	12(%rax), %edx
	movl	%edx, %ecx
	andl	$576, %ecx
	testl	%esi, %esi
	jne	.L3058
	cmpl	$576, %ecx
	je	.L3059
.L3045:

	movq	%r13, %r9
	movq	%r14, %r8
	movq	%r15, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	aes_hw_xts_decrypt@PLT
	call	.Laes_hw_xts_decrypt_local_target
.L3044:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3058:

	.cfi_restore_state
	cmpl	$576, %ecx
	je	.L3042
.L3043:

	movq	%r13, %r9
	movq	%r14, %r8
	movq	%r15, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	aes_hw_xts_encrypt@PLT
	call	.Laes_hw_xts_encrypt_local_target
	jmp	.L3044
	.p2align 4,,10
	.p2align 3
.L3053:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3059:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	movl	8(%rax), %eax
	notl	%eax
	testl	$-1073545216, %eax
	jne	.L3045
	andb	$4, %dh
	je	.L3045
	movq	%r13, %r9
	movq	%r14, %r8
	movq	%r15, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	aes_hw_xts_decrypt_avx512@PLT
	call	.Laes_hw_xts_decrypt_avx512_local_target
	jmp	.L3044
	.p2align 4,,10
	.p2align 3
.L3042:

	movl	8(%rax), %eax
	notl	%eax
	testl	$-1073545216, %eax
	jne	.L3043
	andb	$4, %dh
	je	.L3043
	movq	%r13, %r9
	movq	%r14, %r8
	movq	%r15, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	aes_hw_xts_encrypt_avx512@PLT
	call	.Laes_hw_xts_encrypt_avx512_local_target
	jmp	.L3044
	.cfi_endproc
.LFE802:

	.size	aes_hw_xts_cipher, .-aes_hw_xts_cipher
# WAS .section	.text.aes_xts_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_xts_cipher, @function
.Laes_xts_cipher_local_target:
aes_xts_cipher:
.LFB1169:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	16(%rdi), %r12
	movq	496(%r12), %r15
	testq	%r15, %r15
	je	.L3061
	movq	504(%r12), %r8
	testq	%r8, %r8
	je	.L3061
	testq	%rsi, %rsi
	movq	%rdx, %r13
	movq	%rsi, %r14
	sete	%al
	testq	%rdx, %rdx
	sete	%dl
	orb	%dl, %al
	jne	.L3061
	movq	%rcx, %rbp
	cmpq	$15, %rcx
	jbe	.L3061
	cmpq	$16777216, %rcx
	ja	.L3072
	movq	%rdi, %rbx
	movq	%r8, 8(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	28(%rbx), %r9d
	testb	$2, 7(%rax)
	je	.L3064
	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	%r15, %rcx
	movq	%rbp, %rdx
	movq	%r14, %rsi
	pushq	%r9
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r8
	leaq	52(%rbx), %r9
	movq	%r13, %rdi
# WAS call	aes_hw_xts_cipher@PLT
	call	.Laes_hw_xts_cipher_local_target
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3072:

	.cfi_restore_state
	movl	$673, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$139, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3061:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3064:

	.cfi_restore_state
	leaq	52(%rbx), %rsi
	movq	%rbp, %r8
	movq	%r14, %rcx
	movq	%r13, %rdx
	leaq	496(%r12), %rdi
# WAS call	CRYPTO_xts128_encrypt.part.0
	call	.LCRYPTO_xts128_encrypt.part.0_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1169:

	.size	aes_xts_cipher, .-aes_xts_cipher
# WAS .section	.text.bn_mul_add_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_add_words
	.hidden	bn_mul_add_words
	.type	bn_mul_add_words, @function
.Lbn_mul_add_words_local_target:
bn_mul_add_words:
.LFB817:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L3074
# WAS jmp	bn_mul_add_words.part.0
	jmp	.Lbn_mul_add_words.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L3074:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE817:

	.size	bn_mul_add_words, .-bn_mul_add_words
# WAS .section	.text.bn_mul_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_words
	.hidden	bn_mul_words
	.type	bn_mul_words, @function
.Lbn_mul_words_local_target:
bn_mul_words:
.LFB818:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L3076
# WAS jmp	bn_mul_words.part.0
	jmp	.Lbn_mul_words.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L3076:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE818:

	.size	bn_mul_words, .-bn_mul_words
# WAS .section	.text.bn_sqr_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_sqr_words
	.hidden	bn_sqr_words
	.type	bn_sqr_words, @function
.Lbn_sqr_words_local_target:
bn_sqr_words:
.LFB819:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L3077
# WAS jmp	bn_sqr_words.part.0
	jmp	.Lbn_sqr_words.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L3077:

	ret
	.cfi_endproc
.LFE819:

	.size	bn_sqr_words, .-bn_sqr_words
# WAS .section	.text.bn_add_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_add_words
	.hidden	bn_add_words
	.type	bn_add_words, @function
.Lbn_add_words_local_target:
bn_add_words:
.LFB820:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rcx, %rcx
	je	.L3079
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rax,8),%r8	
	adcq	(%rdx,%rax,8),%r8	
	movq	%r8,(%rdi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	%r8, %rax
	andl	$1, %eax
.L3079:

	ret
	.cfi_endproc
.LFE820:

	.size	bn_add_words, .-bn_add_words
# WAS .section	.text.bn_sub_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_sub_words
	.hidden	bn_sub_words
	.type	bn_sub_words, @function
.Lbn_sub_words_local_target:
bn_sub_words:
.LFB821:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rcx, %rcx
	je	.L3083
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rax,8),%r8	
	sbbq	(%rdx,%rax,8),%r8	
	movq	%r8,(%rdi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	%r8, %rax
	andl	$1, %eax
.L3083:

	ret
	.cfi_endproc
.LFE821:

	.size	bn_sub_words, .-bn_sub_words
# WAS .section	.text.bn_mul_comba8,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_comba8
	.hidden	bn_mul_comba8
	.type	bn_mul_comba8, @function
.Lbn_mul_comba8_local_target:
bn_mul_comba8:
.LFB822:

	.cfi_startproc
	endbr64
	xorl	%r9d, %r9d
	movq	%rdi, %r8
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	(%rdi), %rax
	movq	%r9, %r10
	movq	%r9, %r11
	movq	%r9, %rcx
#APP
# 293 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rdx)
# 0 "" 2
# 293 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r10, (%r8)
	movq	%r9, %r10
	movq	(%rdi), %rax
#APP
# 296 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 296 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 297 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 297 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r11, 8(%r8)
	movq	%r9, %r11
	movq	16(%rdi), %rax
#APP
# 300 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 300 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 301 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 301 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	(%rdi), %rax
#APP
# 302 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 302 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 16(%r8)
	movq	%r9, %rcx
	movq	(%rdi), %rax
#APP
# 305 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 305 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 306 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 306 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 307 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 307 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 308 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 308 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r10, 24(%r8)
	movq	%r9, %r10
	movq	32(%rdi), %rax
#APP
# 311 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 311 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 312 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 312 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 313 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 313 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 314 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 314 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	(%rdi), %rax
#APP
# 315 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 315 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r11, 32(%r8)
	movq	%r9, %r11
	movq	(%rdi), %rax
#APP
# 318 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 318 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 319 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 319 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 320 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 320 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 321 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 321 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 322 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 322 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 323 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 323 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 40(%r8)
	movq	%r9, %rcx
	movq	48(%rdi), %rax
#APP
# 326 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 326 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 327 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 327 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 328 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 328 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 329 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 329 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 330 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 330 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 331 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 331 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	(%rdi), %rax
#APP
# 332 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 332 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r10, 48(%r8)
	movq	%r9, %r10
	movq	(%rdi), %rax
#APP
# 335 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
# 335 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 336 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 336 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 337 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 337 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 338 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 338 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 339 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 339 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 340 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 340 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 341 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 341 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	56(%rdi), %rax
#APP
# 342 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 342 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r11, 56(%r8)
	movq	%r9, %r11
	movq	56(%rdi), %rax
#APP
# 345 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 345 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 346 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 346 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 347 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 347 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 348 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 348 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 349 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 349 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 350 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 350 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 351 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
# 351 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 64(%r8)
	movq	%r10, %rcx
	movq	16(%rdi), %rax
	movq	%r11, %r10
#APP
# 354 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 354 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 355 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 355 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 356 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 356 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 357 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 357 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 358 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 358 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	56(%rdi), %rax
#APP
# 359 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 359 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 72(%r8)
	movq	%r10, %rcx
	movq	56(%rdi), %rax
	movq	%r11, %r10
#APP
# 362 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 362 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 363 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 363 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 364 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 364 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	32(%rdi), %rax
#APP
# 365 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 365 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 366 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
# 366 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 80(%r8)
	movq	%r10, %rcx
	movq	32(%rdi), %rax
	movq	%r11, %r10
#APP
# 369 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 369 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 370 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 370 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 371 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 371 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	56(%rdi), %rax
#APP
# 372 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 372 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 88(%r8)
	movq	%r10, %rcx
	movq	56(%rdi), %rax
	movq	%r11, %r10
#APP
# 375 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 375 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	48(%rdi), %rax
#APP
# 376 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 376 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	40(%rdi), %rax
#APP
# 377 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
# 377 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 96(%r8)
	movq	%r10, %rcx
	movq	48(%rdi), %rax
	movq	%r11, %r10
#APP
# 380 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 380 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	56(%rdi), %rax
#APP
# 381 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 381 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 104(%r8)
	movq	56(%rdi), %rax
#APP
# 384 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 56(%rsi)
# 0 "" 2
# 384 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 112(%r8)
	movq	%r11, 120(%r8)
	ret
	.cfi_endproc
.LFE822:

	.size	bn_mul_comba8, .-bn_mul_comba8
# WAS .section	.text.bn_mul_recursive.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_recursive.constprop.0, @function
.Lbn_mul_recursive.constprop.0_local_target:
bn_mul_recursive.constprop.0:
.LFB3233:

	.cfi_startproc
	movq	%rdi, %r11
	movq	%rsi, %r9
	movq	%rdx, %r10
	cmpl	$8, %ecx
	jne	.L3089
# WAS jmp	bn_mul_comba8
	jmp	.Lbn_mul_comba8_local_target
	.p2align 4,,10
	.p2align 3
.L3089:

	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movslq	%ecx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%ecx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	cmpl	$15, %ecx
	jle	.L3108
	movl	%ecx, %eax
	movq	%r8, %rbx
	leaq	0(,%r13,8), %r8
	xorl	%edx, %edx
	sarl	%eax
	leaq	(%rbx,%r8), %rbp
	movq	%rdx, %rdi
	movl	%eax, 72(%rsp)
	cltq
	leaq	0(,%rax,8), %rsi
	movq	%rax, %rcx
	leaq	(%r9,%rsi), %r15
	movq	%rsi, 8(%rsp)
	movq	%r15, 40(%rsp)
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r9,%rdi,8),%rsi	
	sbbq	(%r15,%rdi,8),%rsi	
	movq	%rsi,(%rbp,%rdi,8)	
	lea	1(%rdi),%rdi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	movq	%rax, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r15,%rdx,8),%rdi	
	sbbq	(%r9,%rdx,8),%rdi	
	movq	%rdi,(%rbx,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	movq	%rsi, %r14
	xorl	%edx, %edx
	subq	$1, %rsi
	negq	%r14
	movq	%r14, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L3091:

	movq	(%rbx,%rdx,8), %rcx
	movq	0(%rbp,%rdx,8), %rdi
	andq	%r14, %rcx
	andq	%rsi, %rdi
	orq	%rdi, %rcx
	movq	%rdx, %rdi
	movq	%rcx, (%rbx,%rdx,8)
	leaq	1(%rdx), %rdx
	cmpq	%rdx, %rax
	jne	.L3091
	movq	8(%rsp), %rsi
	xorl	%edx, %edx
	movq	%rdi, 16(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %r15
	leaq	(%r10,%rsi), %r14
	addq	%rbx, %rsi
	movq	%r14, %rdi
	movq	%r14, 48(%rsp)
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r14,%r14		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%r15,8),%r14	
	sbbq	(%r10,%r15,8),%r14	
	movq	%r14,(%rbp,%r15,8)	
	lea	1(%r15),%r15	
	dec	%rcx		
	jnz	1b		
	sbbq	%r14,%r14		

# 0 "" 2
#NO_APP
	andl	$1, %r14d
	movq	%rax, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r15,%r15		
	jmp	1f		
.p2align 4			
1:
	movq	(%r10,%rdx,8),%r15	
	sbbq	(%rdi,%rdx,8),%r15	
	movq	%r15,(%rsi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r15,%r15		

# 0 "" 2
#NO_APP
	movq	%r8, 32(%rsp)
	movq	%r14, %r15
	movq	16(%rsp), %rdi
	xorl	%eax, %eax
	negq	%r15
	leaq	-1(%r14), %rcx
	movq	%r15, %r14
	.p2align 4,,10
	.p2align 3
.L3092:

	movq	(%rsi,%rax,8), %rdx
	movq	0(%rbp,%rax,8), %r8
	andq	%r14, %rdx
	andq	%rcx, %r8
	orq	%r8, %rdx
	movq	%rdx, (%rsi,%rax,8)
	movq	%rax, %rdx
	addq	$1, %rax
	cmpq	%rdi, %rdx
	jne	.L3092
	movq	24(%rsp), %rax
	movq	32(%rsp), %r8
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	xorq	%rax, %r15
	leal	(%r12,%r12), %eax
	cmpl	$8, 72(%rsp)
	movq	%r11, 32(%rsp)
	movslq	%eax, %rdx
	movl	%eax, 76(%rsp)
	leaq	0(%rbp,%r8), %r14
	leaq	0(,%rdx,8), %rdi
	movq	%rdi, 24(%rsp)
	leaq	(%r11,%r8), %rdi
	movq	%rdi, 16(%rsp)
	jne	.L3093
	movq	%rsi, %rdx
	movq	%rbp, %rdi
	movq	%rbx, %rsi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	64(%rsp), %rdx
	movq	56(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	48(%rsp), %rdx
	movq	40(%rsp), %rsi
	movq	16(%rsp), %rdi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	32(%rsp), %r11
	movl	76(%rsp), %eax
.L3094:

	xorl	%edi, %edi
	movq	%r13, %rcx
	movq	16(%rsp), %rsi
	movq	%rdi, %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%r11,%rdx,8),%r8	
	adcq	(%rsi,%rdx,8),%r8	
	movq	%r8,(%rbx,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	andl	$1, %r8d
	movq	%r13, %rcx
	movq	%rdi, %rdx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rdx,8),%rsi	
	sbbq	(%rbp,%rdx,8),%rsi	
	movq	%rsi,(%r14,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	movq	%r8, %rdx
	movq	%r13, %rcx
	subq	%rsi, %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rdi,8),%rsi	
	adcq	(%rbp,%rdi,8),%rsi	
	movq	%rsi,(%rbp,%rdi,8)	
	lea	1(%rdi),%rdi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	movq	24(%rsp), %r14
	andl	$1, %esi
	movq	%r15, %rdi
	movq	%rbp, %rcx
	addq	%r8, %rsi
	notq	%rdi
	movq	%r15, %r8
	addq	%r14, %rbx
	.p2align 4,,10
	.p2align 3
.L3095:

	movq	(%rcx,%r13,8), %r9
	movq	(%rcx), %r10
	addq	$8, %rcx
	andq	%r8, %r9
	andq	%rdi, %r10
	orq	%r10, %r9
	movq	%r9, -8(%rcx)
	cmpq	%rcx, %rbx
	jne	.L3095
	movq	8(%rsp), %r9
	movq	%r13, %rcx
	xorl	%ebx, %ebx
	addq	%r11, %r9
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%r9,%rbx,8),%r10	
	adcq	(%rbp,%rbx,8),%r10	
	movq	%r10,(%r9,%rbx,8)	
	lea	1(%rbx),%rbx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	movl	72(%rsp), %ebx
	andq	%r8, %rdx
	andq	%rdi, %rsi
	andl	$1, %r10d
	orq	%rsi, %rdx
	addl	%ebx, %r12d
	addq	%r10, %rdx
	cmpl	%r12d, %eax
	jle	.L3088
	subl	$1, %eax
	movslq	%r12d, %rsi
	subl	%r12d, %eax
	leaq	(%r11,%rsi,8), %rcx
	addq	%rsi, %rax
	leaq	8(%r11,%rax,8), %rax
	.p2align 4,,10
	.p2align 3
.L3100:

	addq	%rdx, (%rcx)
	setc	%dl
	addq	$8, %rcx
	movzbl	%dl, %edx
	cmpq	%rcx, %rax
	jne	.L3100
.L3088:

	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3108:

	.cfi_restore_state
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r13, %r8
	movq	%rdx, %rcx
	movq	%r13, %rdx
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_restore 12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_restore 13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_restore 14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_restore 15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mul_normal
	jmp	.Lbn_mul_normal_local_target
	.p2align 4,,10
	.p2align 3
.L3093:

	.cfi_restore_state
	movl	72(%rsp), %ecx
	movq	%rsi, %rdx
	movq	%r14, %r8
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movl	72(%rsp), %ecx
	movq	64(%rsp), %rdx
	movq	%r14, %r8
	movq	56(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movl	72(%rsp), %ecx
	movq	48(%rsp), %rdx
	movq	%r14, %r8
	movq	40(%rsp), %rsi
	movq	16(%rsp), %rdi
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movl	76(%rsp), %eax
	movq	32(%rsp), %r11
	jmp	.L3094
	.cfi_endproc
.LFE3233:

	.size	bn_mul_recursive.constprop.0, .-bn_mul_recursive.constprop.0
# WAS .section	.text.bn_mul_recursive,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_recursive, @function
.Lbn_mul_recursive_local_target:
bn_mul_recursive:
.LFB1021:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	%r9d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%r8d, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 16(%rsp)
	movq	160(%rsp), %rbp
	movq	%rsi, (%rsp)
	movq	%rdx, 8(%rsp)
	movl	%ecx, 28(%rsp)
	cmpl	$8, %ecx
	jne	.L3110
	testl	%r8d, %r8d
	jne	.L3110
	testl	%r9d, %r9d
	je	.L3150
.L3111:

	movl	28(%rsp), %eax
	movq	8(%rsp), %rcx
	movq	(%rsp), %rsi
	movq	16(%rsp), %rdi
	leal	(%rax,%r12), %ebx
	leal	(%rax,%r13), %r8d
	movslq	%ebx, %rdx
	movslq	%r8d, %r8
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
	addl	%r13d, %r12d
	js	.L3151
.L3109:

	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3110:

	.cfi_restore_state
	cmpl	$15, 28(%rsp)
	jle	.L3111
	movslq	28(%rsp), %rbx
	movl	%r12d, %r8d
	negl	%r8d
	movl	%ebx, %eax
	leaq	0(,%rbx,8), %r15
	movq	%rbx, 40(%rsp)
	sarl	%eax
	leaq	0(%rbp,%r15), %rbx
	leal	0(%r13,%rax), %edi
	leal	(%r12,%rax), %r11d
	movl	%eax, 32(%rsp)
	cltq
	movl	%edi, 36(%rsp)
	movq	(%rsp), %rdi
	salq	$3, %rax
	movl	%r11d, %ecx
	movq	%rax, 48(%rsp)
	addq	%rdi, %rax
	movq	%rdi, %rsi
	movq	%rbx, %rdi
	movq	%rax, %rdx
	movq	%rax, 56(%rsp)
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	(%rsp), %rdx
	movl	%r11d, %ecx
	movl	%r12d, %r8d
	movq	56(%rsp), %rsi
	movq	%rax, %r14
	movq	%rbp, %rdi
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	%r14, %r9
	movl	%r12d, %ecx
	negq	%r9
	negl	%ecx
	cmovs	%r12d, %ecx
	subq	$1, %r14
	xorl	%eax, %eax
	addl	%r11d, %ecx
	movslq	%ecx, %rcx
	testq	%rcx, %rcx
	je	.L3119
	movq	%r9, %rsi
	.p2align 4,,10
	.p2align 3
.L3118:

	movq	0(%rbp,%rax,8), %rdx
	movq	(%rbx,%rax,8), %rdi
	andq	%rsi, %rdx
	andq	%r14, %rdi
	orq	%rdi, %rdx
	movq	%rdx, 0(%rbp,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rcx
	jne	.L3118
.L3119:

	movq	8(%rsp), %rdi
	movq	48(%rsp), %rsi
	movl	%r13d, %r8d
	movq	%r9, 72(%rsp)
	movl	36(%rsp), %ecx
	leaq	(%rdi,%rsi), %rax
	movq	%rdi, %rdx
	leaq	0(%rbp,%rsi), %r11
	movq	%rbx, %rdi
	movq	%rax, %rsi
	movq	%rax, 64(%rsp)
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	8(%rsp), %rsi
	movl	%r13d, %r8d
	movq	%r11, %rdi
	movl	36(%rsp), %ecx
	movq	64(%rsp), %rdx
	movq	%rax, %r14
	negl	%r8d
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	%r14, %rdi
	movl	%r13d, %esi
	movl	36(%rsp), %eax
	negq	%rdi
	negl	%esi
	movq	72(%rsp), %r9
	cmovs	%r13d, %esi
	subq	$1, %r14
	addl	%eax, %esi
	xorl	%eax, %eax
	movslq	%esi, %rsi
	testq	%rsi, %rsi
	je	.L3147
	movq	%rdi, %r8
	.p2align 4,,10
	.p2align 3
.L3120:

	movq	(%r11,%rax,8), %rdx
	movq	(%rbx,%rax,8), %rcx
	andq	%r8, %rdx
	andq	%r14, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%r11,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rsi
	jne	.L3120
	movl	%r12d, %eax
	xorq	%r9, %rdi
	orl	%r13d, %eax
	movq	%rdi, 72(%rsp)
	jne	.L3122
	cmpl	$8, 32(%rsp)
	je	.L3152
.L3122:

	movl	28(%rsp), %eax
	movl	32(%rsp), %ecx
	leaq	(%rbx,%r15), %r14
	movq	%r11, %rdx
	movq	%r14, %r8
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	addl	%eax, %eax
	movl	%eax, 36(%rsp)
	cltq
	salq	$3, %rax
	movq	%rax, 80(%rsp)
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movl	32(%rsp), %ecx
	movq	(%rsp), %rsi
	movq	%r14, %r8
	movq	16(%rsp), %rdi
	movq	8(%rsp), %rdx
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movq	16(%rsp), %rax
	movl	%r13d, %r9d
	movl	%r12d, %r8d
	subq	$8, %rsp
	.cfi_def_cfa_offset 168
	pushq	%r14
	.cfi_def_cfa_offset 176
	leaq	(%rax,%r15), %r10
	movl	48(%rsp), %ecx
	movq	80(%rsp), %rdx
	movq	72(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r10, 16(%rsp)
# WAS call	bn_mul_recursive
	call	.Lbn_mul_recursive_local_target
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
	movq	80(%rsp), %rax
	movq	(%rsp), %r10
.L3123:

	movq	40(%rsp), %r9
	xorl	%esi, %esi
	movq	16(%rsp), %r8
	movq	%rsi, %rdx
	movq	%r9, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r8,%rdx,8),%rdi	
	adcq	(%r10,%rdx,8),%rdi	
	movq	%rdi,(%rbp,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	andl	$1, %edi
	movq	%r9, %rcx
	movq	%rsi, %rdx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rdx,8),%r8	
	sbbq	(%rbx,%rdx,8),%r8	
	movq	%r8,(%r14,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	andl	$1, %r8d
	movq	%rdi, %rdx
	movq	%r9, %r10
	movq	%r9, %rcx
	subq	%r8, %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rsi,8),%r8	
	adcq	(%rbx,%rsi,8),%r8	
	movq	%r8,(%rbx,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	72(%rsp), %r9
	andl	$1, %r8d
	salq	$4, %r10
	movq	%rbx, %rcx
	addq	%rdi, %r8
	addq	%rbp, %r10
	movq	%r9, %rdi
	notq	%rdi
	.p2align 4,,10
	.p2align 3
.L3124:

	movq	%rcx, %rsi
	movq	(%rcx), %r11
	addq	$8, %rcx
	subq	%r15, %rsi
	movq	(%rsi,%rax), %r14
	andq	%rdi, %r11
	andq	%r9, %r14
	movq	%r14, %rsi
	orq	%r11, %rsi
	movq	%rsi, -8(%rcx)
	cmpq	%rcx, %r10
	jne	.L3124
	movq	48(%rsp), %rax
	movq	16(%rsp), %r15
	xorl	%r10d, %r10d
	movq	40(%rsp), %rcx
	addq	%r15, %rax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rax,%r10,8),%rsi	
	adcq	(%rbx,%r10,8),%rsi	
	movq	%rsi,(%rax,%r10,8)	
	lea	1(%r10),%r10	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	movl	28(%rsp), %ecx
	movl	32(%rsp), %eax
	andq	%r9, %rdx
	andq	%rdi, %r8
	movl	36(%rsp), %ebx
	orq	%r8, %rdx
	andl	$1, %esi
	addl	%eax, %ecx
	addq	%rsi, %rdx
	cmpl	%ebx, %ecx
	jge	.L3109
	movl	%ebx, %esi
	movslq	%ecx, %rdi
	subl	%ecx, %esi
	leaq	(%r15,%rdi,8), %rax
	leaq	(%rsi,%rdi), %rcx
	leaq	(%r15,%rcx,8), %rcx
	.p2align 4,,10
	.p2align 3
.L3128:

	addq	%rdx, (%rax)
	setc	%dl
	addq	$8, %rax
	movzbl	%dl, %edx
	cmpq	%rcx, %rax
	jne	.L3128
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3152:

	.cfi_restore_state
	movl	28(%rsp), %eax
	movq	16(%rsp), %r13
	movq	%r11, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	leaq	(%rbx,%r15), %r14
	addl	%eax, %eax
	leaq	0(%r13,%r15), %r10
	movl	%eax, 36(%rsp)
	cltq
	salq	$3, %rax
	movq	%r10, 80(%rsp)
	movq	%rax, 88(%rsp)
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	8(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	80(%rsp), %r10
	movq	64(%rsp), %rdx
	movq	56(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r10, (%rsp)
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	(%rsp), %r10
	movq	88(%rsp), %rax
	jmp	.L3123
	.p2align 4,,10
	.p2align 3
.L3150:

	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mul_comba8
	jmp	.Lbn_mul_comba8_local_target
	.p2align 4,,10
	.p2align 3
.L3151:

	.cfi_restore_state
	movl	28(%rsp), %eax
	negl	%r12d
	xorl	%esi, %esi
	movslq	%r12d, %rdx
	addl	%eax, %ebx
	salq	$3, %rdx
	addl	%r13d, %ebx
	movslq	%ebx, %rax
	movq	16(%rsp), %rbx
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	leaq	(%rbx,%rax,8), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L3147:

	.cfi_restore_state
	xorq	%r9, %rdi
	movq	%rdi, 72(%rsp)
	jmp	.L3122
	.cfi_endproc
.LFE1021:

	.size	bn_mul_recursive, .-bn_mul_recursive
# WAS .section	.text.bn_mul_part_recursive,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_part_recursive, @function
.Lbn_mul_part_recursive_local_target:
bn_mul_part_recursive:
.LFB1022:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	(%rcx,%rcx), %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movslq	%r9d, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movslq	%r8d, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%ecx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movl	%eax, 60(%rsp)
	cltq
	movq	176(%rsp), %rbx
	movq	%rdi, 8(%rsp)
	movq	%rsi, 16(%rsp)
	movq	%rdx, 24(%rsp)
	movq	%rax, 32(%rsp)
	cmpl	$7, %ecx
	jle	.L3195
	leaq	0(,%rax,8), %r10
	movslq	%ecx, %rax
	movl	%ecx, %r15d
	movl	%r13d, %ecx
	movq	%rax, 40(%rsp)
	salq	$3, %rax
	leaq	(%rbx,%r10), %rbp
	subl	%r13d, %r15d
	movq	%rax, 64(%rsp)
	addq	%rsi, %rax
	movl	%r15d, %r8d
	movq	%rbp, %rdi
	movq	%rax, %rdx
	movq	%r10, 80(%rsp)
	movq	%rax, 72(%rsp)
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	72(%rsp), %rsi
	movl	%r13d, %r8d
	movl	%r13d, %ecx
	movq	16(%rsp), %rdx
	movq	%rax, %r11
	subl	%r12d, %r8d
	movq	%rbx, %rdi
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	%r11, %rsi
	movl	%r15d, %ecx
	movq	80(%rsp), %r10
	negq	%rsi
	negl	%ecx
	cmovs	%r15d, %ecx
	subq	$1, %r11
	xorl	%eax, %eax
	movq	%rsi, 48(%rsp)
	addl	%r13d, %ecx
	movslq	%ecx, %rcx
	testq	%rcx, %rcx
	je	.L3161
	.p2align 4,,10
	.p2align 3
.L3160:

	movq	(%rbx,%rax,8), %rdx
	movq	0(%rbp,%rax,8), %rdi
	andq	%rsi, %rdx
	andq	%r11, %rdi
	orq	%rdi, %rdx
	movq	%rdx, (%rbx,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rcx
	jne	.L3160
.L3161:

	movq	24(%rsp), %rsi
	movq	64(%rsp), %rdi
	movl	%r14d, %r9d
	movq	%rbp, %r11
	subl	%r12d, %r9d
	movl	%r14d, %ecx
	movq	%r10, 96(%rsp)
	leaq	(%rsi,%rdi), %rax
	movl	%r9d, %r8d
	subq	%rdi, %r11
	movq	%rsi, %rdx
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movl	%r9d, 88(%rsp)
	movq	%rax, 80(%rsp)
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movq	24(%rsp), %rsi
	movl	%r12d, %r8d
	movq	%r11, %rdi
	movq	80(%rsp), %rdx
	subl	%r14d, %r8d
	movl	%r14d, %ecx
	movq	%rax, %r15
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movl	88(%rsp), %r9d
	movq	%r15, %rdi
	movq	96(%rsp), %r10
	negq	%rdi
	movl	%r9d, %esi
	negl	%esi
	cmovs	%r9d, %esi
	subq	$1, %r15
	xorl	%eax, %eax
	addl	%r14d, %esi
	movslq	%esi, %rsi
	testq	%rsi, %rsi
	je	.L3159
	movq	%rdi, %r8
	.p2align 4,,10
	.p2align 3
.L3164:

	movq	(%r11,%rax,8), %rdx
	movq	0(%rbp,%rax,8), %rcx
	andq	%r8, %rdx
	andq	%r15, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%r11,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rsi
	jne	.L3164
.L3159:

	movq	48(%rsp), %rax
	leal	0(,%r12,4), %r15d
	xorq	%rdi, %rax
	movq	%rax, 88(%rsp)
	movslq	%r15d, %rax
	salq	$3, %rax
	movq	%rax, 96(%rsp)
	movq	8(%rsp), %rax
	addq	%r10, %rax
	movq	%rax, 48(%rsp)
	movq	40(%rsp), %rax
	leaq	(%rax,%rax,2), %rax
	leaq	(%r11,%rax,8), %rax
	movq	%rax, 40(%rsp)
	cmpl	$8, %r12d
	je	.L3196
	movq	%rax, %r8
	movq	%r11, %rdx
	movl	%r12d, %ecx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movq	%r10, 104(%rsp)
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movq	40(%rsp), %r8
	movq	24(%rsp), %rdx
	movl	%r12d, %ecx
	movq	16(%rsp), %rsi
	movq	8(%rsp), %rdi
# WAS call	bn_mul_recursive.constprop.0
	call	.Lbn_mul_recursive.constprop.0_local_target
	movq	104(%rsp), %r10
	movq	48(%rsp), %rdi
	xorl	%esi, %esi
	movq	%r10, %rdx
	movq	%r10, 16(%rsp)
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	cmpl	$15, %r13d
	movq	16(%rsp), %r10
	jg	.L3166
	cmpl	$15, %r14d
	jle	.L3197
.L3166:

	cmpl	%r14d, %r13d
	movl	%r14d, %edx
	movl	%r12d, %eax
	cmovge	%r13d, %edx
	jmp	.L3168
	.p2align 4,,10
	.p2align 3
.L3167:

	cmpl	%ecx, %r13d
	je	.L3175
	cmpl	%ecx, %r14d
	je	.L3175
.L3168:

	movl	%eax, %ecx
	shrl	$31, %ecx
	addl	%eax, %ecx
	sarl	%ecx
	movl	%ecx, %eax
	cmpl	%edx, %ecx
	jge	.L3167
	movq	%r10, 16(%rsp)
	subq	$8, %rsp
	.cfi_def_cfa_offset 184
	subl	%ecx, %r14d
	movl	%r13d, %r8d
	pushq	48(%rsp)
	.cfi_def_cfa_offset 192
	movq	96(%rsp), %rdx
	subl	%ecx, %r8d
	movl	%r14d, %r9d
	movq	88(%rsp), %rsi
	movq	64(%rsp), %rdi
# WAS call	bn_mul_part_recursive
	call	.Lbn_mul_part_recursive_local_target
	popq	%rcx
	.cfi_def_cfa_offset 184
	popq	%rsi
	.cfi_def_cfa_offset 176
	movq	16(%rsp), %r10
.L3165:

	movq	32(%rsp), %r14
	xorl	%edx, %edx
	movq	8(%rsp), %rdi
	movq	%rdx, %rax
	movq	48(%rsp), %r8
	movq	%r14, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%rsi	
	adcq	(%r8,%rax,8),%rsi	
	movq	%rsi,(%rbx,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	movq	%r14, %rcx
	movq	%rdx, %rax
	movq	40(%rsp), %r11
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rax,8),%rdi	
	sbbq	(%rbp,%rax,8),%rdi	
	movq	%rdi,(%r11,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	andl	$1, %edi
	movq	%rsi, %rax
	movq	%r14, %rcx
	subq	%rdi, %rax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rdx,8),%r8	
	adcq	(%rbp,%rdx,8),%r8	
	movq	%r8,(%rbp,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	88(%rsp), %rdi
	movq	96(%rsp), %rcx
	andl	$1, %r8d
	movq	%rbp, %rdx
	addq	%rsi, %r8
	addq	%rcx, %rbx
	movq	%rdi, %rsi
	notq	%rsi
	.p2align 4,,10
	.p2align 3
.L3170:

	movq	(%rdx,%r10), %rcx
	movq	(%rdx), %r9
	addq	$8, %rdx
	andq	%rdi, %rcx
	andq	%rsi, %r9
	orq	%r9, %rcx
	movq	%rcx, -8(%rdx)
	cmpq	%rdx, %rbx
	jne	.L3170
	movq	64(%rsp), %rdx
	movq	8(%rsp), %rbx
	xorl	%r10d, %r10d
	movq	32(%rsp), %rcx
	addq	%rbx, %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r9,%r9		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%r10,8),%r9	
	adcq	(%rbp,%r10,8),%r9	
	movq	%r9,(%rdx,%r10,8)	
	lea	1(%r10),%r10	
	dec	%rcx		
	jnz	1b		
	sbbq	%r9,%r9		

# 0 "" 2
#NO_APP
	andq	%rsi, %r8
	movl	60(%rsp), %esi
	andq	%rdi, %rax
	andl	$1, %r9d
	orq	%r8, %rax
	addl	%esi, %r12d
	addq	%r9, %rax
	cmpl	%r15d, %r12d
	jge	.L3153
	subl	$1, %r15d
	movslq	%r12d, %rcx
	subl	%r12d, %r15d
	leaq	(%rbx,%rcx,8), %rdx
	addq	%rcx, %r15
	leaq	8(%rbx,%r15,8), %rcx
	.p2align 4,,10
	.p2align 3
.L3174:

	addq	%rax, (%rdx)
	setc	%al
	addq	$8, %rdx
	movzbl	%al, %eax
	cmpq	%rcx, %rdx
	jne	.L3174
.L3153:

	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3196:

	.cfi_restore_state
	movq	%r11, %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movq	%r10, 104(%rsp)
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	24(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	8(%rsp), %rdi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	movq	8(%rsp), %rax
	movslq	%r13d, %rdx
	movslq	%r14d, %r8
	movq	80(%rsp), %rcx
	movq	72(%rsp), %rsi
	leaq	128(%rax), %rdi
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
	movl	$16, %edx
	movq	104(%rsp), %r10
	subl	%r13d, %edx
	subl	%r14d, %edx
	movslq	%edx, %rdx
	salq	$3, %rdx
	je	.L3165
	movq	8(%rsp), %rsi
	leal	16(%r13,%r14), %eax
	movq	%r10, 16(%rsp)
	cltq
	leaq	(%rsi,%rax,8), %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	16(%rsp), %r10
	jmp	.L3165
	.p2align 4,,10
	.p2align 3
.L3195:

	movq	%rdx, %rcx
	leal	(%r12,%r14), %r8d
	leal	(%r12,%r13), %edx
	movq	%rdi, %rbx
	movslq	%edx, %rdx
	movslq	%r8d, %r8
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
	movl	60(%rsp), %edx
	subl	%r13d, %edx
	subl	%r14d, %edx
	movslq	%edx, %rdx
	testq	%rdx, %rdx
	je	.L3153
	movq	32(%rsp), %rax
	addq	%r14, %r13
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%esi, %esi
	addq	%rax, %r13
	leaq	(%rbx,%r13,8), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L3197:

	.cfi_restore_state
	movq	80(%rsp), %rcx
	movq	72(%rsp), %rsi
	movslq	%r13d, %rdx
	movslq	%r14d, %r8
	movq	48(%rsp), %rdi
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
	movq	16(%rsp), %r10
	jmp	.L3165
	.p2align 4,,10
	.p2align 3
.L3175:

	movq	%r10, 16(%rsp)
	subq	$8, %rsp
	.cfi_def_cfa_offset 184
	subl	%ecx, %r14d
	movl	%r13d, %r8d
	pushq	48(%rsp)
	.cfi_def_cfa_offset 192
	movq	96(%rsp), %rdx
	movl	%r14d, %r9d
	subl	%ecx, %r8d
	movq	88(%rsp), %rsi
	movq	64(%rsp), %rdi
# WAS call	bn_mul_recursive
	call	.Lbn_mul_recursive_local_target
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
	movq	16(%rsp), %r10
	jmp	.L3165
	.cfi_endproc
.LFE1022:

	.size	bn_mul_part_recursive, .-bn_mul_part_recursive
# WAS .section	.text.bn_mul_comba4,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_comba4
	.hidden	bn_mul_comba4
	.type	bn_mul_comba4, @function
.Lbn_mul_comba4_local_target:
bn_mul_comba4:
.LFB823:

	.cfi_startproc
	endbr64
	movq	%rdi, %r8
	xorl	%r9d, %r9d
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	(%rdi), %rax
	movq	%r9, %r11
	movq	%r9, %rcx
	movq	%r9, %r10
#APP
# 395 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rdx)
# 0 "" 2
# 395 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r11, (%r8)
	movq	%r9, %r11
	movq	(%rdi), %rax
#APP
# 398 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 398 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 399 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 399 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 8(%r8)
	movq	%r9, %rcx
	movq	16(%rdi), %rax
#APP
# 402 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 402 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 403 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 403 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	(%rdi), %rax
#APP
# 404 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 404 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r10, 16(%r8)
	movq	%r9, %r10
	movq	(%rdi), %rax
#APP
# 407 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 407 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 408 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 408 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 409 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 409 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 410 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 410 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r11; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r11, 24(%r8)
	movq	%r9, %r11
	movq	24(%rdi), %rax
#APP
# 413 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 413 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	16(%rdi), %rax
#APP
# 414 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 414 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	8(%rdi), %rax
#APP
# 415 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 415 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 32(%r8)
	movq	%r10, %rcx
	movq	16(%rdi), %rax
	movq	%r11, %r10
#APP
# 418 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
#NO_APP
	movq	%r9, %r11
#APP
# 418 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	24(%rdi), %rax
#APP
# 419 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 419 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r11
# 0 "" 2
#NO_APP
	movq	%rcx, 40(%r8)
	movq	24(%rdi), %rax
#APP
# 422 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 422 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%r11; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 48(%r8)
	movq	%r11, 56(%r8)
	ret
	.cfi_endproc
.LFE823:

	.size	bn_mul_comba4, .-bn_mul_comba4
# WAS .section	.text.bn_sqr_comba8,"ax",@progbits
.text
	.p2align 4
	.globl	bn_sqr_comba8
	.hidden	bn_sqr_comba8
	.type	bn_sqr_comba8, @function
.Lbn_sqr_comba8_local_target:
bn_sqr_comba8:
.LFB824:

	.cfi_startproc
	endbr64
	xorl	%r8d, %r8d
	movq	(%rsi), %rax
	movq	%r8, %r9
	movq	%r8, %r10
	movq	%r8, %rcx
#APP
# 433 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 433 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r9, (%rdi)
	movq	%r8, %r9
	movq	8(%rsi), %rax
#APP
# 436 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 436 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 436 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 8(%rdi)
	movq	%r8, %r10
	movq	8(%rsi), %rax
#APP
# 439 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 439 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	16(%rsi), %rax
#APP
# 440 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 440 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 440 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 16(%rdi)
	movq	%r8, %rcx
	movq	24(%rsi), %rax
#APP
# 443 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 443 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 443 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	16(%rsi), %rax
#APP
# 444 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 444 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 444 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r9, 24(%rdi)
	movq	%r8, %r9
	movq	16(%rsi), %rax
#APP
# 447 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 447 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	24(%rsi), %rax
#APP
# 448 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 448 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 448 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	32(%rsi), %rax
#APP
# 449 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 449 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 449 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 32(%rdi)
	movq	%r8, %r10
	movq	40(%rsi), %rax
#APP
# 452 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 452 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 452 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	32(%rsi), %rax
#APP
# 453 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 453 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 453 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	24(%rsi), %rax
#APP
# 454 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 454 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 454 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 40(%rdi)
	movq	%r8, %rcx
	movq	24(%rsi), %rax
#APP
# 457 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 457 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	32(%rsi), %rax
#APP
# 458 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 458 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 458 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	40(%rsi), %rax
#APP
# 459 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 459 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 459 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 460 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 460 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 460 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r9, 48(%rdi)
	movq	%r8, %r9
	movq	56(%rsi), %rax
#APP
# 463 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 463 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 463 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 464 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 464 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 464 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	40(%rsi), %rax
#APP
# 465 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 465 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 465 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	32(%rsi), %rax
#APP
# 466 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 466 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 466 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 56(%rdi)
	movq	%r8, %r10
	movq	32(%rsi), %rax
#APP
# 469 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 469 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	40(%rsi), %rax
#APP
# 470 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 470 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 470 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 471 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 471 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 471 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	56(%rsi), %rax
#APP
# 472 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 472 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 472 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 64(%rdi)
	movq	%r9, %rcx
	movq	56(%rsi), %rax
	movq	%r10, %r9
#APP
# 475 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
#NO_APP
	movq	%r8, %r10
#APP
# 475 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 475 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 476 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 476 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 476 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	40(%rsi), %rax
#APP
# 477 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 477 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 477 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 72(%rdi)
	movq	%r9, %rcx
	movq	40(%rsi), %rax
	movq	%r10, %r9
#APP
# 480 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%r8, %r10
#APP
# 480 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 481 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
# 481 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 481 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	56(%rsi), %rax
#APP
# 482 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 24(%rsi)
# 0 "" 2
# 482 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 482 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 80(%rdi)
	movq	%r9, %rcx
	movq	56(%rsi), %rax
	movq	%r10, %r9
#APP
# 485 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 32(%rsi)
# 0 "" 2
#NO_APP
	movq	%r8, %r10
#APP
# 485 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 485 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	48(%rsi), %rax
#APP
# 486 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 486 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 486 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 88(%rdi)
	movq	%r9, %rcx
	movq	48(%rsi), %rax
	movq	%r10, %r9
#APP
# 489 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
#NO_APP
	movq	%r8, %r10
#APP
# 489 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	56(%rsi), %rax
#APP
# 490 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 40(%rsi)
# 0 "" 2
# 490 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 490 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 96(%rdi)
	movq	%r10, %rcx
	movq	56(%rsi), %rax
	movq	%r8, %r10
#APP
# 493 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 48(%rsi)
# 0 "" 2
# 493 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
# 493 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r9, 104(%rdi)
	movq	56(%rsi), %rax
#APP
# 496 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 496 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r8
# 0 "" 2
#NO_APP
	movq	%rcx, 112(%rdi)
	movq	%r10, 120(%rdi)
	ret
	.cfi_endproc
.LFE824:

	.size	bn_sqr_comba8, .-bn_sqr_comba8
# WAS .section	.text.bn_sqr_comba4,"ax",@progbits
.text
	.p2align 4
	.globl	bn_sqr_comba4
	.hidden	bn_sqr_comba4
	.type	bn_sqr_comba4, @function
.Lbn_sqr_comba4_local_target:
bn_sqr_comba4:
.LFB825:

	.cfi_startproc
	endbr64
	xorl	%r8d, %r8d
	movq	(%rsi), %rax
	movq	%r8, %r10
	movq	%r8, %rcx
	movq	%r8, %r9
#APP
# 507 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 507 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, (%rdi)
	movq	%r8, %r10
	movq	8(%rsi), %rax
#APP
# 510 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 510 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 510 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 8(%rdi)
	movq	%r8, %rcx
	movq	8(%rsi), %rax
#APP
# 513 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 513 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	16(%rsi), %rax
#APP
# 514 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 514 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
# 514 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%r10; adcq $0,%rcx
# 0 "" 2
#NO_APP
	movq	%r9, 16(%rdi)
	movq	%r8, %r9
	movq	24(%rsi), %rax
#APP
# 517 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq (%rsi)
# 0 "" 2
# 517 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 517 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	16(%rsi), %rax
#APP
# 518 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 518 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
# 518 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r10; adcq %rdx,%rcx; adcq $0,%r9
# 0 "" 2
#NO_APP
	movq	%r10, 24(%rdi)
	movq	%r8, %r10
	movq	16(%rsi), %rax
#APP
# 521 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 521 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	24(%rsi), %rax
#APP
# 522 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 8(%rsi)
# 0 "" 2
# 522 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
# 522 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r9; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%rcx, 32(%rdi)
	movq	%r10, %rcx
	movq	24(%rsi), %rax
	movq	%r8, %r10
#APP
# 525 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq 16(%rsi)
# 0 "" 2
# 525 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
# 525 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%r9; adcq %rdx,%rcx; adcq $0,%r10
# 0 "" 2
#NO_APP
	movq	%r9, 40(%rdi)
	movq	24(%rsi), %rax
#APP
# 528 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	mulq %rax
# 0 "" 2
# 528 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
	addq %rax,%rcx; adcq %rdx,%r10; adcq $0,%r8
# 0 "" 2
#NO_APP
	movq	%rcx, 48(%rdi)
	movq	%r10, 56(%rdi)
	ret
	.cfi_endproc
.LFE825:

	.size	bn_sqr_comba4, .-bn_sqr_comba4
# WAS .section	.text.bn_sqr_recursive,"ax",@progbits
.text
	.p2align 4
	.type	bn_sqr_recursive, @function
.Lbn_sqr_recursive_local_target:
bn_sqr_recursive:
.LFB1028:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r8
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	cmpq	$8, %rdx
	je	.L3215
	movq	%rdx, %r14
	movq	%rcx, %rbx
	cmpq	$15, %rdx
	ja	.L3203
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr_normal.part.0
	jmp	.Lbn_sqr_normal.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L3203:

	.cfi_restore_state
	movq	%rdx, %r15
	movq	%rdx, %r13
	xorl	%eax, %eax
	shrq	%r15
	salq	$4, %r13
	movq	%rax, %rdi
	leaq	0(,%r15,8), %r9
	leaq	(%rcx,%r13), %r12
	leaq	(%rcx,%r9), %rsi
	leaq	(%r8,%r9), %r10
	movq	%r15, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%r8,%rdi,8),%rdx	
	sbbq	(%r10,%rdi,8),%rdx	
	movq	%rdx,(%rsi,%rdi,8)	
	lea	1(%rdi),%rdi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	andl	$1, %edx
	movq	%r15, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r10,%rax,8),%rdi	
	sbbq	(%r8,%rax,8),%rdi	
	movq	%rdi,(%rbx,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	xorl	%eax, %eax
	movq	%rdx, %rdi
	leaq	-1(%rdx), %rcx
	negq	%rdi
	.p2align 4,,10
	.p2align 3
.L3204:

	movq	(%rbx,%rax,8), %rdx
	movq	(%rsi,%rax,8), %r11
	andq	%rdi, %rdx
	andq	%rcx, %r11
	orq	%r11, %rdx
	movq	%rdx, (%rbx,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r15
	jne	.L3204
	movq	%r12, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r8, 40(%rsp)
	leaq	0(,%r14,8), %rax
	movq	%r10, 32(%rsp)
	leaq	(%rbx,%rax), %r11
	movq	%r9, 24(%rsp)
	movq	%r11, %rdi
	movq	%rax, 8(%rsp)
	movq	%r11, 16(%rsp)
# WAS call	bn_sqr_recursive
	call	.Lbn_sqr_recursive_local_target
	movq	40(%rsp), %rsi
	movq	%r12, %rcx
	movq	%r15, %rdx
	movq	%rbp, %rdi
# WAS call	bn_sqr_recursive
	call	.Lbn_sqr_recursive_local_target
	movq	8(%rsp), %rax
	movq	%r12, %rcx
	movq	%r15, %rdx
	movq	32(%rsp), %rsi
	addq	%rbp, %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	bn_sqr_recursive
	call	.Lbn_sqr_recursive_local_target
	xorl	%edx, %edx
	movq	8(%rsp), %rax
	movq	%r14, %rcx
	movq	%rdx, %rsi
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rsi,8),%rdi	
	adcq	(%rax,%rsi,8),%rdi	
	movq	%rdi,(%rbx,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	movq	16(%rsp), %r11
	movq	%r14, %rcx
	movq	%rdx, %rax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rax,8),%rsi	
	sbbq	(%r11,%rax,8),%rsi	
	movq	%rsi,(%r11,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	movq	24(%rsp), %r9
	movq	%r14, %rcx
	addq	%rbp, %r9
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rax,%rax		
	jmp	1f		
.p2align 4			
1:
	movq	(%r9,%rdx,8),%rax	
	adcq	(%r11,%rdx,8),%rax	
	movq	%rax,(%r9,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rax,%rax		

# 0 "" 2
#NO_APP
	andl	$1, %eax
	andl	$1, %edi
	addq	%r14, %r15
	andl	$1, %esi
	addq	%rdi, %rax
	addq	%r14, %r14
	leaq	0(%rbp,%r15,8), %rdx
	addq	%r13, %rbp
	subq	%rsi, %rax
	cmpq	%r14, %r15
	jnb	.L3201
	.p2align 4,,10
	.p2align 3
.L3209:

	addq	%rax, (%rdx)
	setc	%al
	addq	$8, %rdx
	movzbl	%al, %eax
	cmpq	%rdx, %rbp
	jne	.L3209
.L3201:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3215:

	.cfi_restore_state
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr_comba8
	jmp	.Lbn_sqr_comba8_local_target
	.cfi_endproc
.LFE1028:

	.size	bn_sqr_recursive, .-bn_sqr_recursive
# WAS .section	.text.BN_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_new
	.type	BN_new, @function
.LBN_new_local_target:
BN_new:
.LFB826:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L3216
	movl	$1, 20(%rax)
.L3216:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE826:

	.size	BN_new, .-BN_new
# WAS .section	.text.BN_secure_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_secure_new
	.type	BN_secure_new, @function
.LBN_secure_new_local_target:
BN_secure_new:
.LFB827:

	.cfi_startproc
	endbr64
# WAS jmp	BN_new@PLT
	jmp	.LBN_new_local_target
	.cfi_endproc
.LFE827:

	.size	BN_secure_new, .-BN_secure_new
# WAS .section	.text.BN_init,"ax",@progbits
.text
	.p2align 4
	.globl	BN_init
	.type	BN_init, @function
.LBN_init_local_target:
BN_init:
.LFB828:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movq	$0, 16(%rdi)
	movups	%xmm0, (%rdi)
	ret
	.cfi_endproc
.LFE828:

	.size	BN_init, .-BN_init
# WAS .section	.text.BN_clear_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_clear_free
	.type	BN_clear_free, @function
.LBN_clear_free_local_target:
BN_clear_free:
.LFB830:

	.cfi_startproc
	endbr64
# WAS jmp	BN_free@PLT
	jmp	.LBN_free_local_target
	.cfi_endproc
.LFE830:

	.size	BN_clear_free, .-BN_clear_free
# WAS .section	.rodata.BN_copy.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC119:

	.string	"/aws-lc/crypto/fipsmodule/bn/bn.c"
# WAS .section	.text.BN_copy,"ax",@progbits
.text
	.p2align 4
	.globl	BN_copy
	.type	BN_copy, @function
.LBN_copy_local_target:
BN_copy:
.LFB832:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	cmpq	%rdi, %rsi
	je	.L3226
	movslq	8(%rsi), %rdi
	movslq	12(%rbx), %rax
	movq	%rsi, %rbp
	movq	%rdi, %r12
	cmpq	%rdi, %rax
	jnb	.L3245
	cmpq	$8388607, %rdi
	ja	.L3246
	testb	$2, 20(%rbx)
	jne	.L3247
	movl	$8, %esi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L3230
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	je	.L3233
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
.L3233:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movslq	8(%rbp), %rdi
	movl	%r12d, 12(%rbx)
	movq	%r13, (%rbx)
	movq	%rdi, %r12
	jmp	.L3228
	.p2align 4,,10
	.p2align 3
.L3245:

	movq	(%rbx), %r13
.L3228:

	salq	$3, %rdi
	je	.L3234
	movq	0(%rbp), %rsi
	movq	%rdi, %rdx
	movq	%r13, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movl	8(%rbp), %r12d
.L3234:

	movl	16(%rbp), %eax
	movl	%r12d, 8(%rbx)
	movl	%eax, 16(%rbx)
.L3226:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3247:

	.cfi_restore_state
	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3230:

	xorl	%eax, %eax
.L3248:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3246:

	.cfi_restore_state
	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3248
	.cfi_endproc
.LFE832:

	.size	BN_copy, .-BN_copy
# WAS .section	.text.BN_dup,"ax",@progbits
.text
	.p2align 4
	.globl	BN_dup
	.type	BN_dup, @function
.LBN_dup_local_target:
BN_dup:
.LFB831:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L3251
	movq	%rdi, %rbp
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3251
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L3258
.L3249:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3258:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	.p2align 4,,10
	.p2align 3
.L3251:

	xorl	%ebx, %ebx
	jmp	.L3249
	.cfi_endproc
.LFE831:

	.size	BN_dup, .-BN_dup
# WAS .section	.text.pkey_rsa_copy,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_copy, @function
.Lpkey_rsa_copy_local_target:
pkey_rsa_copy:
.LFB2284:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	movl	$72, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L3265
	movl	$2048, (%rax)
	movq	%rax, %rbx
	movq	0(%rbp), %rax
	cmpl	$912, (%rax)
	movq	$-2, 40(%rbx)
	sete	%al
	movzbl	%al, %eax
	leal	1(%rax,%rax,4), %eax
	movl	%eax, 16(%rbx)
	movq	%rbx, 40(%rbp)
	movq	40(%r12), %rbp
	movl	0(%rbp), %eax
	movq	8(%rbp), %rdi
	movl	%eax, (%rbx)
	testq	%rdi, %rdi
	je	.L3266
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L3265
.L3266:

	movl	16(%rbp), %eax
	cmpq	$0, 56(%rbp)
	movl	%eax, 16(%rbx)
	movl	40(%rbp), %eax
	movdqu	24(%rbp), %xmm0
	movl	%eax, 40(%rbx)
	movups	%xmm0, 24(%rbx)
	je	.L3267
	movq	56(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	64(%rbp), %rsi
	movq	56(%rbp), %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 56(%rbx)
	testq	%rax, %rax
	je	.L3265
	movq	64(%rbp), %rax
	movq	%rax, 64(%rbx)
.L3267:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3265:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2284:

	.size	pkey_rsa_copy, .-pkey_rsa_copy
# WAS .section	.rodata.bn_dup_into.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC120:

	.string	"/aws-lc/crypto/fipsmodule/rsa/rsa.c"
# WAS .section	.text.bn_dup_into,"ax",@progbits
.text
	.p2align 4
	.type	bn_dup_into, @function
.Lbn_dup_into_local_target:
bn_dup_into:
.LFB2670:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L3280
	movq	%rdi, %rbp
	movq	(%rdi), %rdi
	movq	%rsi, %rbx
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	testq	%rax, %rax
	movq	%rax, 0(%rbp)
	setne	%al
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3280:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2670:

	.size	bn_dup_into, .-bn_dup_into
# WAS .section	.text.BN_clear,"ax",@progbits
.text
	.p2align 4
	.globl	BN_clear
	.type	BN_clear, @function
.LBN_clear_local_target:
BN_clear:
.LFB833:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L3282
	movslq	12(%rbx), %rdx
	salq	$3, %rdx
	jne	.L3290
.L3282:

	movl	$0, 8(%rbx)
	movl	$0, 16(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3290:

	.cfi_restore_state
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	$0, 8(%rbx)
	movl	$0, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE833:

	.size	BN_clear, .-BN_clear
# WAS .section	.text.BN_value_one,"ax",@progbits
.text
	.p2align 4
	.globl	BN_value_one
	.type	BN_value_one, @function
.LBN_value_one_local_target:
BN_value_one:
.LFB835:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	BN_value_one_once_bss_get@PLT
	call	BN_value_one_once_bss_get
# WAS leaq	BN_value_one_init(%rip), %rsi
	leaq	.LBN_value_one_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	BN_value_one_storage_bss_get@PLT
	jmp	BN_value_one_storage_bss_get
	.cfi_endproc
.LFE835:

	.size	BN_value_one, .-BN_value_one
# WAS .section	.text.BN_num_bits_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_num_bits_word
	.type	BN_num_bits_word, @function
.LBN_num_bits_word_local_target:
BN_num_bits_word:
.LFB837:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdi, %rsi
	shrq	$32, %rax
	movq	%rax, %rdx
	xorq	%rdi, %rax
	negq	%rdx
	sarq	$63, %rdx
	andq	%rdx, %rax
	xorq	%rdi, %rax
	movq	%rax, %rcx
	shrq	$16, %rcx
	movq	%rcx, %rdi
	xorq	%rax, %rcx
	negq	%rdi
	sarq	$63, %rdi
	andq	%rdi, %rcx
	xorq	%rax, %rcx
	movq	%rcx, %rax
	shrq	$8, %rax
	movq	%rax, %r10
	xorq	%rcx, %rax
	negq	%r10
	sarq	$63, %r10
	andq	%r10, %rax
	xorq	%rcx, %rax
	movq	%rax, %r8
	shrq	$4, %r8
	movq	%r8, %r11
	xorq	%rax, %r8
	negq	%r11
	sarq	$63, %r11
	andq	%r11, %r8
	xorq	%rax, %r8
	movl	%edx, %eax
	movq	%r8, %rcx
	andl	$32, %eax
	shrq	$2, %rcx
	movq	%rcx, %r9
	xorq	%r8, %rcx
	negq	%r9
	sarq	$63, %r9
	andq	%r9, %rcx
	cmpq	$1, %rsi
	sbbl	$-1, %eax
	movq	%rcx, %rdx
	andl	$16, %edi
	andl	$8, %r10d
	addl	%edi, %eax
	xorq	%r8, %rdx
	andl	$4, %r11d
	andl	$2, %r9d
	addl	%r10d, %eax
	shrq	%rdx
	addl	%r11d, %eax
	negq	%rdx
	addl	%r9d, %eax
	sarq	$63, %rdx
	subl	%edx, %eax
	ret
	.cfi_endproc
.LFE837:

	.size	BN_num_bits_word, .-BN_num_bits_word
# WAS .section	.text.BN_num_bits,"ax",@progbits
.text
	.p2align 4
	.globl	BN_num_bits
	.type	BN_num_bits, @function
.LBN_num_bits_local_target:
BN_num_bits:
.LFB838:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	8(%rdi), %ebx
	testl	%ebx, %ebx
	jle	.L3295
	movq	(%rdi), %rdx
	movslq	%ebx, %rax
	leaq	(%rdx,%rax,8), %rax
	jmp	.L3296
	.p2align 4,,10
	.p2align 3
.L3298:

	subq	$8, %rax
	subl	$1, %ebx
	je	.L3300
.L3296:

	cmpq	$0, -8(%rax)
	je	.L3298
.L3299:

	movslq	%ebx, %rax
	subl	$1, %ebx
	movq	-8(%rdx,%rax,8), %rdi
	sall	$6, %ebx
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
	addl	%ebx, %eax
.L3294:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3300:

	.cfi_restore_state
	xorl	%eax, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L3295:

	.cfi_restore_state
	movl	$0, %eax
	je	.L3294
	movq	(%rdi), %rdx
	jmp	.L3299
	.cfi_endproc
.LFE838:

	.size	BN_num_bits, .-BN_num_bits
# WAS .section	.text.BN_num_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	BN_num_bytes
	.type	BN_num_bytes, @function
.LBN_num_bytes_local_target:
BN_num_bytes:
.LFB839:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	addl	$7, %eax
	shrl	$3, %eax
	ret
	.cfi_endproc
.LFE839:

	.size	BN_num_bytes, .-BN_num_bytes
# WAS .section	.text.ec_GFp_nistp384_mont_felem_to_bytes,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_mont_felem_to_bytes, @function
.Lec_GFp_nistp384_mont_felem_to_bytes_local_target:
ec_GFp_nistp384_mont_felem_to_bytes:
.LFB2029:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	addq	$320, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r15
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movl	%eax, %ebp
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r15, %rsi
	movq	%r15, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L3321
# WAS call	bignum_deamont_p384_alt@PLT
	call	.Lbignum_deamont_p384_alt_local_target
.L3308:

	leaq	48(%rsp), %rbx
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movslq	264(%r14), %rsi
	salq	$3, %rsi
	cmpq	%rbp, %rsi
	cmova	%rbp, %rsi
	testq	%rsi, %rsi
	je	.L3313
	movq	%rbx, %rax
	leaq	-1(%r12,%rbp), %rdx
	leaq	(%rbx,%rsi), %rdi
	.p2align 4,,10
	.p2align 3
.L3312:

	movzbl	(%rax), %ecx
	addq	$1, %rax
	subq	$1, %rdx
	movb	%cl, 1(%rdx)
	cmpq	%rdi, %rax
	jne	.L3312
.L3313:

	movq	%rbp, %rdx
	subq	%rsi, %rdx
	je	.L3310
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L3310:

	movq	%rbp, 0(%r13)
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L3322
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3321:

	.cfi_restore_state
# WAS call	bignum_deamont_p384@PLT
	call	.Lbignum_deamont_p384_local_target
	jmp	.L3308
.L3322:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2029:

	.size	ec_GFp_nistp384_mont_felem_to_bytes, .-ec_GFp_nistp384_mont_felem_to_bytes
# WAS .section	.text.ec_GFp_simple_felem_to_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_felem_to_bytes
	.hidden	ec_GFp_simple_felem_to_bytes
	.type	ec_GFp_simple_felem_to_bytes, @function
.Lec_GFp_simple_felem_to_bytes_local_target:
ec_GFp_simple_felem_to_bytes:
.LFB2091:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	addq	$320, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movslq	328(%r14), %rsi
	movl	%eax, %r13d
	salq	$3, %rsi
	cmpq	%r13, %rsi
	cmova	%r13, %rsi
	testq	%rsi, %rsi
	je	.L3328
	movq	%rbx, %rax
	leaq	-1(%r12,%r13), %rdx
	leaq	(%rbx,%rsi), %rdi
	.p2align 4,,10
	.p2align 3
.L3327:

	movzbl	(%rax), %ecx
	addq	$1, %rax
	subq	$1, %rdx
	movb	%cl, 1(%rdx)
	cmpq	%rdi, %rax
	jne	.L3327
.L3328:

	movq	%r13, %rdx
	subq	%rsi, %rdx
	je	.L3325
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L3325:

	movq	%r13, 0(%rbp)
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2091:

	.size	ec_GFp_simple_felem_to_bytes, .-ec_GFp_simple_felem_to_bytes
# WAS .section	.text.BN_zero,"ax",@progbits
.text
	.p2align 4
	.globl	BN_zero
	.type	BN_zero, @function
.LBN_zero_local_target:
BN_zero:
.LFB840:

	.cfi_startproc
	endbr64
	movl	$0, 16(%rdi)
	movl	$0, 8(%rdi)
	ret
	.cfi_endproc
.LFE840:

	.size	BN_zero, .-BN_zero
# WAS .section	.text.BN_set_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_set_word
	.type	BN_set_word, @function
.LBN_set_word_local_target:
BN_set_word:
.LFB842:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L3352
	movl	12(%rdi), %r12d
	movq	%rsi, %rbp
	testl	%r12d, %r12d
	jne	.L3353
	testb	$2, 20(%rdi)
	jne	.L3354
	movl	$8, %esi
	movl	$1, %edi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L3336
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	jne	.L3355
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, (%rbx)
	movl	$1, 12(%rbx)
	jmp	.L3340
	.p2align 4,,10
	.p2align 3
.L3353:

	movq	(%rdi), %r13
.L3340:

	movl	$0, 16(%rbx)
	movq	%rbp, 0(%r13)
	movl	$1, 8(%rbx)
.L3338:

	movl	$1, %r12d
.L3336:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3352:

	.cfi_restore_state
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L3338
	.p2align 4,,10
	.p2align 3
.L3355:

	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, (%rbx)
	movl	$1, 12(%rbx)
	jmp	.L3340
	.p2align 4,,10
	.p2align 3
.L3354:

	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE842:

	.size	BN_set_word, .-BN_set_word
# WAS .section	.text.BN_one,"ax",@progbits
.text
	.p2align 4
	.globl	BN_one
	.type	BN_one, @function
.LBN_one_local_target:
BN_one:
.LFB841:

	.cfi_startproc
	endbr64
	movl	$1, %esi
# WAS jmp	BN_set_word@PLT
	jmp	.LBN_set_word_local_target
	.cfi_endproc
.LFE841:

	.size	BN_one, .-BN_one
# WAS .section	.text.BN_set_u64,"ax",@progbits
.text
	.p2align 4
	.globl	BN_set_u64
	.type	BN_set_u64, @function
.LBN_set_u64_local_target:
BN_set_u64:
.LFB843:

	.cfi_startproc
	endbr64
# WAS jmp	BN_set_word@PLT
	jmp	.LBN_set_word_local_target
	.cfi_endproc
.LFE843:

	.size	BN_set_u64, .-BN_set_u64
# WAS .section	.text.bn_set_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_set_words
	.hidden	bn_set_words
	.type	bn_set_words, @function
.Lbn_set_words_local_target:
bn_set_words:
.LFB844:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movslq	12(%rdi), %rax
	movq	%rdx, %rbx
	cmpq	%rdx, %rax
	jnb	.L3359
	cmpq	$8388607, %rdx
	ja	.L3377
	testb	$2, 20(%rdi)
	jne	.L3378
	movl	$8, %esi
	movq	%rdx, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L3363
	movslq	8(%rbp), %rdx
	movq	0(%rbp), %rdi
	salq	$3, %rdx
	jne	.L3379
.L3364:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, 0(%rbp)
	movl	%ebx, %r14d
	leaq	0(,%rbx,8), %rdx
	movl	%ebx, 12(%rbp)
.L3365:

	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
.L3366:

	movl	%r14d, 8(%rbp)
	movl	$1, %eax
	movl	$0, 16(%rbp)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3359:

	.cfi_restore_state
	salq	$3, %rbx
	movl	%edx, %r14d
	movq	%rbx, %rdx
	je	.L3366
	movq	(%rdi), %r13
	jmp	.L3365
	.p2align 4,,10
	.p2align 3
.L3378:

	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3363:

	xorl	%eax, %eax
.L3380:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3379:

	.cfi_restore_state
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	0(%rbp), %rdi
	jmp	.L3364
	.p2align 4,,10
	.p2align 3
.L3377:

	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3380
	.cfi_endproc
.LFE844:

	.size	bn_set_words, .-bn_set_words
# WAS .section	.text.bn_set_static_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_set_static_words
	.hidden	bn_set_static_words
	.type	bn_set_static_words, @function
.Lbn_set_static_words_local_target:
bn_set_static_words:
.LFB845:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %xmm0
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movl	20(%rdi), %eax
	testb	$2, %al
	je	.L3384
.L3382:

	pshufd	$0xe0, %xmm0, %xmm0
	orl	$2, %eax
	movq	%rbp, (%rbx)
	movl	$0, 16(%rbx)
	movl	%eax, 20(%rbx)
	movq	%xmm0, 8(%rbx)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3384:

	.cfi_restore_state
	movq	(%rdi), %rdi
	movq	%rdx, 8(%rsp)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rbx), %eax
	movq	8(%rsp), %xmm0
	jmp	.L3382
	.cfi_endproc
.LFE845:

	.size	bn_set_static_words, .-bn_set_static_words
# WAS .section	.text.bn_fits_in_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_fits_in_words
	.hidden	bn_fits_in_words
	.type	bn_fits_in_words, @function
.Lbn_fits_in_words_local_target:
bn_fits_in_words:
.LFB846:

	.cfi_startproc
	endbr64
	movslq	8(%rdi), %rcx
	cmpq	%rcx, %rsi
	jnb	.L3390
	subq	%rsi, %rcx
	movq	(%rdi), %rdi
	cmpq	$1, %rcx
	je	.L3391
	movq	%rcx, %rdx
	leaq	(%rdi,%rsi,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rdx
	salq	$4, %rdx
	addq	%rax, %rdx
	.p2align 4,,10
	.p2align 3
.L3388:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rdx, %rax
	jne	.L3388
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %cl
	je	.L3389
	andq	$-2, %rcx
	addq	%rcx, %rsi
.L3387:

	orq	(%rdi,%rsi,8), %rax
.L3389:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3390:

	movl	$1, %eax
	ret
.L3391:

	xorl	%eax, %eax
	jmp	.L3387
	.cfi_endproc
.LFE846:

	.size	bn_fits_in_words, .-bn_fits_in_words
# WAS .section	.text.bn_copy_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_copy_words
	.hidden	bn_copy_words
	.type	bn_copy_words, @function
.Lbn_copy_words_local_target:
bn_copy_words:
.LFB847:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movl	16(%rdx), %eax
	testl	%eax, %eax
	jne	.L3418
	movslq	8(%rdx), %rbx
	movq	%rdx, %rbp
	cmpq	%rbx, %rsi
	jnb	.L3399
	subq	%rsi, %rbx
	movq	(%rdx), %rcx
	cmpq	$1, %rbx
	je	.L3407
	movq	%rbx, %rdx
	leaq	(%rcx,%rsi,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rdx
	salq	$4, %rdx
	addq	%rax, %rdx
	.p2align 4,,10
	.p2align 3
.L3401:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rdx, %rax
	jne	.L3401
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %bl
	je	.L3402
	andq	$-2, %rbx
	addq	%rsi, %rbx
.L3400:

	orq	(%rcx,%rbx,8), %rax
.L3402:

	movq	%rsi, %rbx
	testq	%rax, %rax
	jne	.L3419
.L3399:

	salq	$3, %rsi
	jne	.L3420
	salq	$3, %rbx
	jne	.L3405
.L3406:

	movl	$1, %eax
.L3396:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3420:

	.cfi_restore_state
	movq	%rsi, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	salq	$3, %rbx
	movq	%rax, %rdi
	je	.L3406
.L3405:

	movq	0(%rbp), %rsi
	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L3406
	.p2align 4,,10
	.p2align 3
.L3418:

	movl	$315, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3396
	.p2align 4,,10
	.p2align 3
.L3419:

	movl	$322, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3396
	.p2align 4,,10
	.p2align 3
.L3407:

	movq	%rsi, %rbx
	xorl	%eax, %eax
	jmp	.L3400
	.cfi_endproc
.LFE847:

	.size	bn_copy_words, .-bn_copy_words
# WAS .section	.text.BN_is_negative,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_negative
	.type	BN_is_negative, @function
.LBN_is_negative_local_target:
BN_is_negative:
.LFB848:

	.cfi_startproc
	endbr64
	movl	16(%rdi), %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	setne	%al
	ret
	.cfi_endproc
.LFE848:

	.size	BN_is_negative, .-BN_is_negative
# WAS .section	.text.bn_wexpand,"ax",@progbits
.text
	.p2align 4
	.globl	bn_wexpand
	.hidden	bn_wexpand
	.type	bn_wexpand, @function
.Lbn_wexpand_local_target:
bn_wexpand:
.LFB850:

	.cfi_startproc
	endbr64
	movslq	12(%rdi), %rax
	cmpq	%rsi, %rax
	jnb	.L3436
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	cmpq	$8388607, %rsi
	ja	.L3440
	movq	%rdi, %rbx
	testb	$2, 20(%rdi)
	jne	.L3441
	movl	$8, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L3425
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	jne	.L3442
.L3428:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r12, (%rbx)
	movl	$1, %eax
	movl	%ebp, 12(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3441:

	.cfi_restore_state
	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3425:

	xorl	%eax, %eax
.L3443:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3442:

	.cfi_restore_state
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
	jmp	.L3428
	.p2align 4,,10
	.p2align 3
.L3440:

	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3443
	.p2align 4,,10
	.p2align 3
.L3436:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE850:

	.size	bn_wexpand, .-bn_wexpand
# WAS .section	.text.bn_uadd_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_uadd_consttime
	.hidden	bn_uadd_consttime
	.type	bn_uadd_consttime, @function
.Lbn_uadd_consttime_local_target:
bn_uadd_consttime:
.LFB810:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	8(%rsi), %ebx
	movslq	8(%rdx), %rbp
	cmpl	%ebp, %ebx
	jl	.L3445
	movl	%ebp, %eax
	movq	%rsi, %r12
	movslq	%ebx, %rbp
	movq	%rdx, %r14
	movl	%eax, %ebx
.L3445:

	leal	1(%rbp), %r15d
	movq	%r13, %rdi
	movslq	%r15d, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3444
	movslq	%ebx, %rcx
	movl	%r15d, 8(%r13)
	movq	0(%r13), %rdi
	testq	%rcx, %rcx
	je	.L3450
	movq	(%r12), %rdx
	movq	(%r14), %rsi
	xorl	%eax, %eax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rax,8),%r8	
	adcq	(%rsi,%rax,8),%r8	
	movq	%r8,(%rdi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	%r8, %rcx
	movq	0(%r13), %rdi
	andl	$1, %ecx
.L3447:

	cmpl	%ebp, %ebx
	jge	.L3448
	movq	(%r12), %r8
	movslq	%ebx, %rax
	.p2align 4,,10
	.p2align 3
.L3449:

	movq	(%r8,%rax,8), %rdx
	movq	%rcx, %rsi
	xorl	%ebx, %ebx
	movq	%rdx, %rcx
	addq	%rsi, %rcx
	adcq	$0, %rbx
	addq	%rsi, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	movq	%rbx, %rcx
	cmpl	%eax, %ebp
	jg	.L3449
.L3448:

	movq	%rcx, (%rdi,%rbp,8)
	movl	$1, %eax
.L3444:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3450:

	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L3447
	.cfi_endproc
.LFE810:

	.size	bn_uadd_consttime, .-bn_uadd_consttime
# WAS .section	.text.BN_uadd,"ax",@progbits
.text
	.p2align 4
	.globl	BN_uadd
	.type	BN_uadd, @function
.LBN_uadd_local_target:
BN_uadd:
.LFB811:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	bn_uadd_consttime
	call	.Lbn_uadd_consttime_local_target
	testl	%eax, %eax
	je	.L3456
	movl	8(%rbx), %eax
	testl	%eax, %eax
	jle	.L3458
	movq	(%rbx), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L3459
	.p2align 4,,10
	.p2align 3
.L3461:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3460
.L3459:

	cmpq	$0, -8(%rdx)
	je	.L3461
	movl	%eax, 8(%rbx)
.L3463:

	movl	$1, %eax
.L3456:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3460:

	.cfi_restore_state
	movl	$0, 8(%rbx)
.L3464:

	movl	$0, 16(%rbx)
	jmp	.L3463
.L3458:

	je	.L3464
	jmp	.L3463
	.cfi_endproc
.LFE811:

	.size	BN_uadd, .-BN_uadd
# WAS .section	.rodata.bn_usub_consttime.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC121:

	.string	"/aws-lc/crypto/fipsmodule/bn/add.c"
# WAS .section	.text.bn_usub_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_usub_consttime
	.hidden	bn_usub_consttime
	.type	bn_usub_consttime, @function
.Lbn_usub_consttime_local_target:
bn_usub_consttime:
.LFB814:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	8(%rdx), %eax
	movslq	8(%rsi), %rsi
	cmpl	%eax, %esi
	jge	.L3483
	movslq	%eax, %rdx
	movq	%rsi, %r12
	cmpq	%rdx, %rsi
	jnb	.L3471
	subq	%rsi, %rdx
	movq	0(%r13), %rdi
	cmpq	$1, %rdx
	je	.L3484
	movq	%rdx, %rcx
	leaq	(%rdi,%rsi,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L3473:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rcx
	jne	.L3473
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L3474
	andq	$-2, %rdx
	addq	%rsi, %rdx
.L3472:

	orq	(%rdi,%rdx,8), %rax
.L3474:

	movl	$229, %r8d
	testq	%rax, %rax
	jne	.L3498
.L3471:

	movq	%rbx, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3475
	movslq	%r12d, %rax
	movq	0(%r13), %r9
	movq	0(%rbp), %rdi
	movq	(%rbx), %r8
	movq	%rax, %rdx
	testq	%rax, %rax
	je	.L3499
	movq	%rax, %rcx
	xorl	%esi, %esi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rsi,8),%rdx	
	sbbq	(%r9,%rsi,8),%rdx	
	movq	%rdx,(%r8,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	movl	8(%rbp), %r9d
	andl	$1, %edx
	cmpl	%r9d, %r12d
	jge	.L3481
	movq	0(%rbp), %rdi
	movq	(%rbx), %r8
	.p2align 4,,10
	.p2align 3
.L3482:

	movq	(%rdi,%rax,8), %rcx
	movq	%rcx, %rsi
	subq	%rdx, %rsi
	testq	%rcx, %rcx
	sete	%cl
	movq	%rsi, (%r8,%rax,8)
	addq	$1, %rax
	movzbl	%cl, %ecx
	andq	%rcx, %rdx
	cmpl	%eax, %r9d
	jg	.L3482
.L3481:

	testq	%rdx, %rdx
	jne	.L3500
.L3480:

	movl	%r9d, 8(%rbx)
	movl	$1, %eax
	movl	$0, 16(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3500:

	.cfi_restore_state
	movl	$245, %r8d
.L3498:

	leaq	.LC121(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3475:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3483:

	.cfi_restore_state
	movl	%eax, %r12d
	jmp	.L3471
	.p2align 4,,10
	.p2align 3
.L3499:

	movl	8(%rbp), %r9d
	testl	%r9d, %r9d
	jg	.L3482
	jmp	.L3480
.L3484:

	movq	%rsi, %rdx
	xorl	%eax, %eax
	jmp	.L3472
	.cfi_endproc
.LFE814:

	.size	bn_usub_consttime, .-bn_usub_consttime
# WAS .section	.text.BN_usub,"ax",@progbits
.text
	.p2align 4
	.globl	BN_usub
	.type	BN_usub, @function
.LBN_usub_local_target:
BN_usub:
.LFB815:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	je	.L3501
	movl	8(%rbx), %eax
	testl	%eax, %eax
	jle	.L3503
	movq	(%rbx), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L3504
	.p2align 4,,10
	.p2align 3
.L3506:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3505
.L3504:

	cmpq	$0, -8(%rdx)
	je	.L3506
	movl	%eax, 8(%rbx)
.L3508:

	movl	$1, %eax
.L3501:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3505:

	.cfi_restore_state
	movl	$0, 8(%rbx)
.L3509:

	movl	$0, 16(%rbx)
	jmp	.L3508
.L3503:

	je	.L3509
	jmp	.L3508
	.cfi_endproc
.LFE815:

	.size	BN_usub, .-BN_usub
# WAS .section	.text.copy_from_prebuf.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	copy_from_prebuf.constprop.0, @function
.Lcopy_from_prebuf.constprop.0_local_target:
copy_from_prebuf.constprop.0:
.LFB3239:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movslq	%esi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rbp, %rsi
	movq	%rdx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3515
	movq	%rbp, %r12
	salq	$3, %rbp
	jne	.L3538
.L3517:

	testl	%r12d, %r12d
	jle	.L3518
	movl	%r12d, %r11d
	movq	0(%r13), %rcx
	movl	%r12d, %r8d
	leal	-1(%r12), %r10d
	andl	$-2, %r11d
	shrl	%r8d
	xorl	%edi, %edi
	movl	%r11d, %r9d
	salq	$4, %r8
	salq	$3, %r9
	leaq	(%rcx,%r9), %rsi
	.p2align 4,,10
	.p2align 3
.L3524:

	movl	%r14d, %eax
	xorl	%edi, %eax
	cltq
	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
	sarq	$63, %rdx
	cmpl	$1, %r10d
	jbe	.L3525
	movq	%rcx, %r15
	xorl	%eax, %eax
	subq	%rbx, %r15
	cmpq	$8, %r15
	jne	.L3539
	.p2align 4,,10
	.p2align 3
.L3522:

	movq	(%rbx,%rax), %r15
	andq	%rdx, %r15
	orq	%r15, (%rcx,%rax)
	addq	$8, %rax
	cmpq	%rax, %rbp
	jne	.L3522
.L3523:

	addl	$1, %edi
	addq	%rbp, %rbx
	cmpl	$32, %edi
	jne	.L3524
	.p2align 4,,10
	.p2align 3
.L3518:

	movl	%r12d, 8(%r13)
	movl	$1, %eax
.L3515:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3539:

	.cfi_restore_state
	movq	%rdx, %xmm1
	punpcklqdq	%xmm1, %xmm1
	.p2align 4,,10
	.p2align 3
.L3520:

	movdqu	(%rbx,%rax), %xmm0
	movdqu	(%rcx,%rax), %xmm2
	pand	%xmm1, %xmm0
	por	%xmm2, %xmm0
	movups	%xmm0, (%rcx,%rax)
	addq	$16, %rax
	cmpq	%rax, %r8
	jne	.L3520
	cmpl	%r11d, %r12d
	je	.L3523
	addl	$1, %edi
	andq	(%rbx,%r9), %rdx
	addq	%rbp, %rbx
	orq	%rdx, (%rsi)
	cmpl	$32, %edi
	jne	.L3524
	jmp	.L3518
	.p2align 4,,10
	.p2align 3
.L3525:

	xorl	%eax, %eax
	jmp	.L3522
.L3538:

	movq	0(%r13), %rdi
	movq	%rbp, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L3517
	.cfi_endproc
.LFE3239:

	.size	copy_from_prebuf.constprop.0, .-copy_from_prebuf.constprop.0
# WAS .section	.text.bn_expand,"ax",@progbits
.text
	.p2align 4
	.globl	bn_expand
	.hidden	bn_expand
	.type	bn_expand, @function
.Lbn_expand_local_target:
bn_expand:
.LFB851:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	cmpq	$-64, %rsi
	ja	.L3556
	leaq	63(%rsi), %rbx
	movslq	12(%rdi), %rax
	movq	%rdi, %rbp
	shrq	$6, %rbx
	cmpq	%rbx, %rax
	jnb	.L3543
	movl	$353, %r8d
	cmpq	$8388607, %rbx
	ja	.L3555
	testb	$2, 20(%rdi)
	jne	.L3557
	movl	$8, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L3545
	movslq	8(%rbp), %rdx
	movq	0(%rbp), %rdi
	salq	$3, %rdx
	je	.L3547
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	0(%rbp), %rdi
.L3547:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r12, 0(%rbp)
	movl	%ebx, 12(%rbp)
.L3543:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3556:

	.cfi_restore_state
	movl	$378, %r8d
.L3555:

	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3545:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3557:

	.cfi_restore_state
	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L3545
	.cfi_endproc
.LFE851:

	.size	bn_expand, .-bn_expand
# WAS .section	.text.bn_resize_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_resize_words
	.type	bn_resize_words, @function
.Lbn_resize_words_local_target:
bn_resize_words:
.LFB852:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movslq	8(%rdi), %rdx
	cmpq	%rdx, %rsi
	jnb	.L3581
	subq	%rbx, %rdx
	movq	(%rdi), %rsi
	cmpq	$1, %rdx
	je	.L3566
	movq	%rdx, %rcx
	leaq	(%rsi,%rbx,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L3564:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rcx, %rax
	jne	.L3564
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L3565
	andq	$-2, %rdx
	addq	%rbx, %rdx
.L3563:

	orq	(%rsi,%rdx,8), %rax
.L3565:

	testq	%rax, %rax
	jne	.L3582
.L3561:

	movl	%ebx, 8(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3581:

	.cfi_restore_state
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3560
	movslq	8(%rbp), %rax
	movq	%rbx, %rdx
	subq	%rax, %rdx
	salq	$3, %rdx
	je	.L3561
	movq	0(%rbp), %rcx
	xorl	%esi, %esi
	leaq	(%rcx,%rax,8), %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L3561
	.p2align 4,,10
	.p2align 3
.L3582:

	movl	$414, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3560:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3566:

	.cfi_restore_state
	movq	%rbx, %rdx
	xorl	%eax, %eax
	jmp	.L3563
	.cfi_endproc
.LFE852:

	.size	bn_resize_words, .-bn_resize_words
# WAS .section	.text.BN_from_montgomery_word,"ax",@progbits
.text
	.p2align 4
	.type	BN_from_montgomery_word, @function
.LBN_from_montgomery_word_local_target:
BN_from_montgomery_word:
.LFB1002:

	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	16(%rsi), %eax
	testl	%eax, %eax
	jne	.L3594
	movq	%rsi, %rbx
	movl	32(%rdx), %esi
	movq	%rdi, %r12
	movq	%rdx, %rbp
	testl	%esi, %esi
	jne	.L3586
	movl	$0, 8(%rdi)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3586:

	.cfi_restore_state
	addl	%esi, %esi
	movq	%rbx, %rdi
	movslq	%esi, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	jne	.L3588
.L3585:

	xorl	%eax, %eax
.L3595:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3594:

	.cfi_restore_state
	movl	$355, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L3595
	.p2align 4,,10
	.p2align 3
.L3588:

	movslq	32(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3585
	movslq	32(%rbp), %rsi
	movq	(%rbx), %rdx
	movq	%rbp, %r8
	movl	$0, 16(%r12)
	movq	(%r12), %rdi
	movl	%esi, 8(%r12)
	movslq	8(%rbx), %rcx
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bn_from_montgomery_in_place
	jmp	.Lbn_from_montgomery_in_place_local_target
	.cfi_endproc
.LFE1002:

	.size	BN_from_montgomery_word, .-BN_from_montgomery_word
# WAS .section	.text.bn_select_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_select_words
	.hidden	bn_select_words
	.type	bn_select_words, @function
.Lbn_select_words_local_target:
bn_select_words:
.LFB853:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	movq	%rdi, %r10
	movq	%rdx, %r11
	xorl	%eax, %eax
	notq	%r9
	testq	%r8, %r8
	je	.L3596
	.p2align 4,,10
	.p2align 3
.L3598:

	movq	(%r11,%rax,8), %rdx
	movq	(%rcx,%rax,8), %rdi
	andq	%rsi, %rdx
	andq	%r9, %rdi
	orq	%rdi, %rdx
	movq	%rdx, (%r10,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L3598
.L3596:

	ret
	.cfi_endproc
.LFE853:

	.size	bn_select_words, .-bn_select_words
# WAS .section	.text.bn_minimal_width,"ax",@progbits
.text
	.p2align 4
	.globl	bn_minimal_width
	.hidden	bn_minimal_width
	.type	bn_minimal_width, @function
.Lbn_minimal_width_local_target:
bn_minimal_width:
.LFB854:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	testl	%eax, %eax
	jle	.L3602
	movq	(%rdi), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L3604
	.p2align 4,,10
	.p2align 3
.L3605:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3602
.L3604:

	cmpq	$0, -8(%rdx)
	je	.L3605
.L3602:

	ret
	.cfi_endproc
.LFE854:

	.size	bn_minimal_width, .-bn_minimal_width
# WAS .section	.text.bn_set_minimal_width,"ax",@progbits
.text
	.p2align 4
	.globl	bn_set_minimal_width
	.hidden	bn_set_minimal_width
	.type	bn_set_minimal_width, @function
.Lbn_set_minimal_width_local_target:
bn_set_minimal_width:
.LFB855:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	testl	%eax, %eax
	jle	.L3610
	movq	(%rdi), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L3611
	.p2align 4,,10
	.p2align 3
.L3613:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3612
.L3611:

	cmpq	$0, -8(%rdx)
	je	.L3613
	movl	%eax, 8(%rdi)
.L3609:

	ret
	.p2align 4,,10
	.p2align 3
.L3612:

	movl	$0, 8(%rdi)
.L3616:

	movl	$0, 16(%rdi)
	ret
.L3610:

	je	.L3616
	ret
	.cfi_endproc
.LFE855:

	.size	bn_set_minimal_width, .-bn_set_minimal_width
# WAS .section	.text.BN_get_flags,"ax",@progbits
.text
	.p2align 4
	.globl	BN_get_flags
	.type	BN_get_flags, @function
.LBN_get_flags_local_target:
BN_get_flags:
.LFB856:

	.cfi_startproc
	endbr64
	movl	20(%rdi), %eax
	andl	%esi, %eax
	ret
	.cfi_endproc
.LFE856:

	.size	BN_get_flags, .-BN_get_flags
# WAS .section	.text.unlikely.bn_big_endian_to_words,"ax",@progbits
.text
.LCOLDB122:

# WAS .section	.text.bn_big_endian_to_words,"ax",@progbits
.text
.LHOTB122:

	.p2align 4
	.globl	bn_big_endian_to_words
	.hidden	bn_big_endian_to_words
	.type	bn_big_endian_to_words, @function
.Lbn_big_endian_to_words_local_target:
bn_big_endian_to_words:
.LFB857:

	.cfi_startproc
	endbr64
	leaq	0(,%rsi,8), %rax
	cmpq	%rcx, %rax
	jb	.L3620
	movq	%rdi, %r9
	movq	%rsi, %r8
	movq	%rdx, %rdi
	movq	%rcx, %rax
	movq	%r9, %rsi
	cmpq	$7, %rcx
	jbe	.L3649
	.p2align 4,,10
	.p2align 3
.L3621:

	subq	$8, %rax
	addq	$8, %rsi
	movq	(%rdi,%rax), %rdx
	bswap	%rdx
	movq	%rdx, -8(%rsi)
	cmpq	$7, %rax
	ja	.L3621
	movq	%rcx, %rsi
	subq	$8, %rcx
	subq	$1, %r8
	shrq	$3, %rcx
	andl	$7, %esi
	subq	%rcx, %r8
	leaq	8(%r9,%rcx,8), %r9
.L3622:

	testq	%rsi, %rsi
	je	.L3623
	movzbl	(%rdi), %eax
	cmpq	$1, %rsi
	je	.L3624
	movzbl	1(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	cmpq	$2, %rsi
	je	.L3624
	movzbl	2(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	cmpq	$3, %rsi
	je	.L3624
	movzbl	3(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	cmpq	$4, %rsi
	je	.L3624
	movzbl	4(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	cmpq	$5, %rsi
	je	.L3624
	movzbl	5(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	cmpq	$7, %rsi
	jne	.L3624
	movzbl	6(%rdi), %edx
	salq	$8, %rax
	orq	%rdx, %rax
.L3624:

	movq	%rax, (%r9)
	subq	$1, %r8
	addq	$8, %r9
.L3623:

	salq	$3, %r8
	jne	.L3650
	ret
	.p2align 4,,10
	.p2align 3
.L3650:

	movq	%r8, %rdx
	xorl	%esi, %esi
	movq	%r9, %rdi
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L3649:

	movq	%rcx, %rsi
	jmp	.L3622
	.cfi_endproc
# WAS .section	.text.unlikely.bn_big_endian_to_words
.text
	.cfi_startproc
	.type	bn_big_endian_to_words.cold, @function
.Lbn_big_endian_to_words.cold_local_target:
bn_big_endian_to_words.cold:
.LFSB857:

.L3620:

	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE857:

# WAS .section	.text.bn_big_endian_to_words
.text
	.size	bn_big_endian_to_words, .-bn_big_endian_to_words
# WAS .section	.text.unlikely.bn_big_endian_to_words
.text
	.size	bn_big_endian_to_words.cold, .-bn_big_endian_to_words.cold
.LCOLDE122:

# WAS .section	.text.bn_big_endian_to_words
.text
.LHOTE122:

# WAS .section	.rodata.ec_GFp_simple_felem_from_bytes.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC123:

	.string	"/aws-lc/crypto/fipsmodule/ec/simple.c"
# WAS .section	.text.ec_GFp_simple_felem_from_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_felem_from_bytes
	.hidden	ec_GFp_simple_felem_from_bytes
	.type	ec_GFp_simple_felem_from_bytes, @function
.Lec_GFp_simple_felem_from_bytes_local_target:
ec_GFp_simple_felem_from_bytes:
.LFB2092:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	addq	$320, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	$324, %r8d
	movl	%eax, %ecx
	cmpq	%r12, %rcx
	jne	.L3657
	movslq	328(%rbx), %rsi
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movslq	328(%rbx), %rsi
	movq	320(%rbx), %rdx
	movq	%rbp, %rdi
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jns	.L3658
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3658:

	.cfi_restore_state
	movl	$331, %r8d
.L3657:

	leaq	.LC123(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2092:

	.size	ec_GFp_simple_felem_from_bytes, .-ec_GFp_simple_felem_from_bytes
# WAS .section	.text.ec_GFp_nistp384_mont_felem_from_bytes,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_mont_felem_from_bytes, @function
.Lec_GFp_nistp384_mont_felem_from_bytes_local_target:
ec_GFp_nistp384_mont_felem_from_bytes:
.LFB2030:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	addq	$320, %rdi
	addq	$-128, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %eax
	cmpq	%rax, %rbp
	je	.L3660
	movl	$324, %r8d
.L3668:

	leaq	.LC123(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L3659:

	movq	120(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L3669
	subq	$-128, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3660:

	.cfi_restore_state
	movslq	328(%rbx), %rsi
	leaq	48(%rsp), %r14
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r14, %rdi
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movslq	328(%rbx), %rsi
	movq	320(%rbx), %rdx
	movq	%r14, %rdi
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movl	$331, %r8d
	testl	%eax, %eax
	jns	.L3668
	movq	%rsp, %rbx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L3670
# WAS call	bignum_tomont_p384_alt@PLT
	call	.Lbignum_tomont_p384_alt_local_target
.L3665:

	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movl	$1, %eax
	jmp	.L3659
	.p2align 4,,10
	.p2align 3
.L3670:

# WAS call	bignum_tomont_p384@PLT
	call	.Lbignum_tomont_p384_local_target
	jmp	.L3665
.L3669:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2030:

	.size	ec_GFp_nistp384_mont_felem_from_bytes, .-ec_GFp_nistp384_mont_felem_from_bytes
# WAS .section	.text.BN_bin2bn,"ax",@progbits
.text
	.p2align 4
	.globl	BN_bin2bn
	.type	BN_bin2bn, @function
.LBN_bin2bn_local_target:
BN_bin2bn:
.LFB858:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rdx, %rdx
	je	.L3695
.L3672:

	testq	%r12, %r12
	jne	.L3674
	movl	$0, 8(%rbx)
.L3675:

	movq	%rbx, %rax
.L3671:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3674:

	.cfi_restore_state
	leaq	-1(%r12), %rbp
	movslq	12(%rbx), %rax
	shrq	$3, %rbp
	addq	$1, %rbp
	cmpq	%rbp, %rax
	jnb	.L3676
	cmpq	$8388607, %rbp
	ja	.L3696
	testb	$2, 20(%rbx)
	jne	.L3697
	movl	$8, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L3678
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	je	.L3680
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
.L3680:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r14, (%rbx)
	movslq	%ebp, %rsi
	movl	%ebp, 12(%rbx)
.L3681:

	movl	%esi, 8(%rbx)
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%r14, %rdi
	movl	$0, 16(%rbx)
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	jmp	.L3675
	.p2align 4,,10
	.p2align 3
.L3697:

	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L3678:

	movq	%r15, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
.L3673:

	xorl	%eax, %eax
	jmp	.L3671
	.p2align 4,,10
	.p2align 3
.L3695:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3673
	movq	%rax, %r15
	jmp	.L3672
	.p2align 4,,10
	.p2align 3
.L3676:

	movq	(%rbx), %r14
	movslq	%ebp, %rsi
	jmp	.L3681
	.p2align 4,,10
	.p2align 3
.L3696:

	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L3678
	.cfi_endproc
.LFE858:

	.size	BN_bin2bn, .-BN_bin2bn
# WAS .section	.text.BN_le2bn,"ax",@progbits
.text
	.p2align 4
	.globl	BN_le2bn
	.type	BN_le2bn, @function
.LBN_le2bn_local_target:
BN_le2bn:
.LFB859:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	xorl	%r14d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	testq	%rdx, %rdx
	je	.L3714
.L3699:

	testq	%r13, %r13
	jne	.L3701
	movl	$0, 8(%rbx)
	movl	$0, 16(%rbx)
.L3702:

	movq	%rbx, %rax
.L3698:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3701:

	.cfi_restore_state
	leaq	-1(%r13), %rbp
	movq	%rbx, %rdi
	shrq	$3, %rbp
	addq	$1, %rbp
	movq	%rbp, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L3715
	movl	%ebp, 8(%rbx)
	movq	(%rbx), %rdi
	movq	%r13, %rdx
	movq	%r12, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movslq	%ebp, %rdx
	salq	$3, %rdx
	movq	%rax, %rdi
	subq	%r13, %rdx
	je	.L3702
	addq	%r13, %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L3702
	.p2align 4,,10
	.p2align 3
.L3714:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L3700
	movq	%rax, %r14
	jmp	.L3699
	.p2align 4,,10
	.p2align 3
.L3715:

	movq	%r14, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
.L3700:

	xorl	%eax, %eax
	jmp	.L3698
	.cfi_endproc
.LFE859:

	.size	BN_le2bn, .-BN_le2bn
# WAS .section	.text.bn_little_endian_to_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_little_endian_to_words
	.hidden	bn_little_endian_to_words
	.type	bn_little_endian_to_words, @function
.Lbn_little_endian_to_words_local_target:
bn_little_endian_to_words:
.LFB860:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rcx, %rcx
	je	.L3717
	movq	%rdx, %rsi
	movq	%rcx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rax, %rdi
.L3717:

	leaq	0(,%rbx,8), %rdx
	subq	%rbp, %rdx
	jne	.L3723
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3723:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	addq	%rbp, %rdi
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.cfi_endproc
.LFE860:

	.size	bn_little_endian_to_words, .-bn_little_endian_to_words
# WAS .section	.text.bn_assert_fits_in_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	bn_assert_fits_in_bytes
	.type	bn_assert_fits_in_bytes, @function
.Lbn_assert_fits_in_bytes_local_target:
bn_assert_fits_in_bytes:
.LFB862:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE862:

	.size	bn_assert_fits_in_bytes, .-bn_assert_fits_in_bytes
# WAS .section	.text.bn_words_to_big_endian,"ax",@progbits
.text
	.p2align 4
	.globl	bn_words_to_big_endian
	.hidden	bn_words_to_big_endian
	.type	bn_words_to_big_endian, @function
.Lbn_words_to_big_endian_local_target:
bn_words_to_big_endian:
.LFB863:

	.cfi_startproc
	endbr64
	salq	$3, %rcx
	leaq	-1(%rdi,%rsi), %rax
	cmpq	%rsi, %rcx
	cmova	%rsi, %rcx
	leaq	(%rdx,%rcx), %r9
	testq	%rcx, %rcx
	je	.L3730
	.p2align 4,,10
	.p2align 3
.L3729:

	movzbl	(%rdx), %r8d
	addq	$1, %rdx
	subq	$1, %rax
	movb	%r8b, 1(%rax)
	cmpq	%r9, %rdx
	jne	.L3729
.L3730:

	subq	%rcx, %rsi
	jne	.L3733
	ret
	.p2align 4,,10
	.p2align 3
.L3733:

	movq	%rsi, %rdx
	xorl	%esi, %esi
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.cfi_endproc
.LFE863:

	.size	bn_words_to_big_endian, .-bn_words_to_big_endian
# WAS .section	.text.BN_bn2bin,"ax",@progbits
.text
	.p2align 4
	.globl	BN_bn2bin
	.type	BN_bn2bin, @function
.LBN_bn2bin_local_target:
BN_bn2bin:
.LFB864:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movslq	8(%rbp), %rsi
	movl	%eax, %ebx
	movq	0(%rbp), %rax
	salq	$3, %rsi
	leaq	-1(%r12,%rbx), %rdx
	cmpq	%rbx, %rsi
	cmova	%rbx, %rsi
	leaq	(%rax,%rsi), %rdi
	testq	%rsi, %rsi
	je	.L3739
	.p2align 4,,10
	.p2align 3
.L3738:

	movzbl	(%rax), %ecx
	addq	$1, %rax
	subq	$1, %rdx
	movb	%cl, 1(%rdx)
	cmpq	%rdi, %rax
	jne	.L3738
.L3739:

	movq	%rbx, %rdx
	subq	%rsi, %rdx
	je	.L3734
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L3734:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE864:

	.size	BN_bn2bin, .-BN_bn2bin
# WAS .section	.text.bn_words_to_little_endian,"ax",@progbits
.text
	.p2align 4
	.globl	bn_words_to_little_endian
	.hidden	bn_words_to_little_endian
	.type	bn_words_to_little_endian, @function
.Lbn_words_to_little_endian_local_target:
bn_words_to_little_endian:
.LFB865:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	0(,%rcx,8), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpq	%rsi, %rbx
	cmova	%rsi, %rbx
	testq	%rbx, %rbx
	je	.L3747
	movq	%rdx, %rsi
	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rax, %rdi
.L3747:

	subq	%rbx, %rbp
	jne	.L3753
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3753:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	addq	%rbx, %rdi
	movq	%rbp, %rdx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.cfi_endproc
.LFE865:

	.size	bn_words_to_little_endian, .-bn_words_to_little_endian
# WAS .section	.text.BN_bn2le_padded,"ax",@progbits
.text
	.p2align 4
	.globl	BN_bn2le_padded
	.type	BN_bn2le_padded, @function
.LBN_bn2le_padded_local_target:
BN_bn2le_padded:
.LFB866:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movslq	8(%rdx), %rcx
	movq	(%rdx), %rsi
	salq	$3, %rcx
	cmpq	%rcx, %rbx
	jnb	.L3755
	movq	%rcx, %r9
	subq	%rbx, %r9
	leaq	-1(%r9), %rax
	cmpq	$14, %rax
	jbe	.L3764
	movq	%r9, %rdx
	leaq	(%rsi,%rbx), %rax
	pxor	%xmm0, %xmm0
	andq	$-16, %rdx
	leaq	(%rdx,%rax), %r8
	.p2align 4,,10
	.p2align 3
.L3757:

	movdqu	(%rax), %xmm3
	addq	$16, %rax
	por	%xmm3, %xmm0
	cmpq	%rax, %r8
	jne	.L3757
	movdqa	%xmm0, %xmm1
	leaq	(%rbx,%rdx), %r8
	psrldq	$8, %xmm1
	por	%xmm0, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$4, %xmm2
	por	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$2, %xmm2
	por	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$1, %xmm2
	por	%xmm2, %xmm1
	movd	%xmm1, %eax
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm0
	por	%xmm1, %xmm0
	cmpq	%r9, %rdx
	je	.L3758
.L3756:

	subq	%rdx, %r9
	leaq	-1(%r9), %r10
	cmpq	$6, %r10
	jbe	.L3759
	addq	%rsi, %rdx
	movq	(%rdx,%rbx), %xmm1
	por	%xmm0, %xmm1
	movq	%xmm1, %rdx
	movq	%rdx, %rax
	movq	%rdx, %r10
	orb	%dh, %al
	shrq	$16, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$24, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$32, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$40, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$56, %rdx
	shrq	$48, %r10
	orl	%r10d, %eax
	orl	%edx, %eax
	movq	%r9, %rdx
	andq	$-8, %rdx
	addq	%rdx, %r8
	andl	$7, %r9d
	je	.L3758
.L3759:

	leaq	1(%r8), %rdx
	orb	(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	leaq	2(%r8), %rdx
	orb	1(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	leaq	3(%r8), %rdx
	orb	2(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	leaq	4(%r8), %rdx
	orb	3(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	leaq	5(%r8), %rdx
	orb	4(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	leaq	6(%r8), %rdx
	orb	5(%rsi,%r8), %al
	cmpq	%rcx, %rdx
	jnb	.L3758
	orb	6(%rsi,%r8), %al
.L3758:

	xorl	%edx, %edx
	testb	%al, %al
	je	.L3755
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3755:

	.cfi_restore_state
	cmpq	%rcx, %rbx
	cmovbe	%rbx, %rcx
	movq	%rcx, %rbp
	testq	%rcx, %rcx
	je	.L3762
	movq	%rcx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rax, %rdi
.L3762:

	subq	%rbp, %rbx
	je	.L3763
	addq	%rbp, %rdi
	movq	%rbx, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L3763:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %edx
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L3764:

	.cfi_restore_state
	movq	%rbx, %r8
	pxor	%xmm0, %xmm0
	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L3756
	.cfi_endproc
.LFE866:

	.size	BN_bn2le_padded, .-BN_bn2le_padded
# WAS .section	.text.BN_bn2bin_padded,"ax",@progbits
.text
	.p2align 4
	.globl	BN_bn2bin_padded
	.type	BN_bn2bin_padded, @function
.LBN_bn2bin_padded_local_target:
BN_bn2bin_padded:
.LFB867:

	.cfi_startproc
	endbr64
	movslq	8(%rdx), %r8
	movq	%rsi, %rcx
	movq	(%rdx), %rsi
	salq	$3, %r8
	cmpq	%r8, %rcx
	jnb	.L3778
	movq	%r8, %r10
	subq	%rcx, %r10
	leaq	-1(%r10), %rax
	cmpq	$14, %rax
	jbe	.L3790
	movq	%r10, %r11
	leaq	(%rsi,%rcx), %rdx
	pxor	%xmm0, %xmm0
	andq	$-16, %r11
	leaq	(%rdx,%r11), %rax
	.p2align 4,,10
	.p2align 3
.L3780:

	movdqu	(%rdx), %xmm3
	addq	$16, %rdx
	por	%xmm3, %xmm0
	cmpq	%rdx, %rax
	jne	.L3780
	movdqa	%xmm0, %xmm1
	leaq	(%rcx,%r11), %r9
	psrldq	$8, %xmm1
	por	%xmm0, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$4, %xmm2
	por	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$2, %xmm2
	por	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	psrldq	$1, %xmm2
	por	%xmm2, %xmm1
	movd	%xmm1, %eax
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm0
	por	%xmm1, %xmm0
	cmpq	%r11, %r10
	je	.L3781
.L3779:

	subq	%r11, %r10
	leaq	-1(%r10), %rdx
	cmpq	$6, %rdx
	jbe	.L3782
	addq	%rsi, %r11
	movq	(%r11,%rcx), %xmm1
	por	%xmm0, %xmm1
	movq	%xmm1, %rdx
	movq	%rdx, %rax
	movq	%rdx, %r11
	orb	%dh, %al
	shrq	$16, %r11
	orl	%r11d, %eax
	movq	%rdx, %r11
	shrq	$24, %r11
	orl	%r11d, %eax
	movq	%rdx, %r11
	shrq	$32, %r11
	orl	%r11d, %eax
	movq	%rdx, %r11
	shrq	$40, %r11
	orl	%r11d, %eax
	movq	%rdx, %r11
	shrq	$56, %rdx
	shrq	$48, %r11
	orl	%r11d, %eax
	orl	%edx, %eax
	movq	%r10, %rdx
	andq	$-8, %rdx
	addq	%rdx, %r9
	andl	$7, %r10d
	je	.L3781
.L3782:

	leaq	1(%r9), %rdx
	orb	(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	leaq	2(%r9), %rdx
	orb	1(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	leaq	3(%r9), %rdx
	orb	2(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	leaq	4(%r9), %rdx
	orb	3(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	leaq	5(%r9), %rdx
	orb	4(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	leaq	6(%r9), %rdx
	orb	5(%rsi,%r9), %al
	cmpq	%r8, %rdx
	jnb	.L3781
	orb	6(%rsi,%r9), %al
.L3781:

	xorl	%edx, %edx
	testb	%al, %al
	je	.L3778
.L3802:

	movl	%edx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3778:

	cmpq	%r8, %rcx
	cmovbe	%rcx, %r8
	testq	%r8, %r8
	je	.L3789
	movq	%rsi, %rax
	leaq	-1(%rdi,%rcx), %rdx
	leaq	(%rsi,%r8), %r9
	.p2align 4,,10
	.p2align 3
.L3788:

	movzbl	(%rax), %esi
	addq	$1, %rax
	subq	$1, %rdx
	movb	%sil, 1(%rdx)
	cmpq	%rax, %r9
	jne	.L3788
.L3789:

	subq	%r8, %rcx
	movl	$1, %edx
	je	.L3802
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rcx, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
.L3790:

	movq	%rcx, %r9
	pxor	%xmm0, %xmm0
	xorl	%r11d, %r11d
	xorl	%eax, %eax
	jmp	.L3779
	.cfi_endproc
.LFE867:

	.size	BN_bn2bin_padded, .-BN_bn2bin_padded
# WAS .section	.text.BN_get_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_get_word
	.type	BN_get_word, @function
.LBN_get_word_local_target:
BN_get_word:
.LFB868:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	testl	%eax, %eax
	jle	.L3817
	movq	(%rdi), %rsi
	movslq	%eax, %rdx
	leaq	(%rsi,%rdx,8), %rdx
	jmp	.L3809
	.p2align 4,,10
	.p2align 3
.L3810:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3806
.L3809:

	movq	-8(%rdx), %rcx
	testq	%rcx, %rcx
	je	.L3810
	cmpl	$1, %eax
	jne	.L3818
	movq	(%rsi), %rcx
.L3806:

	movq	%rcx, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L3818:

	movq	$-1, %rcx
	movq	%rcx, %rax
	ret
.L3817:

	setne	%cl
	movzbl	%cl, %ecx
	negq	%rcx
	jmp	.L3806
	.cfi_endproc
.LFE868:

	.size	BN_get_word, .-BN_get_word
# WAS .section	.text.BN_get_u64,"ax",@progbits
.text
	.p2align 4
	.globl	BN_get_u64
	.type	BN_get_u64, @function
.LBN_get_u64_local_target:
BN_get_u64:
.LFB869:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	testl	%eax, %eax
	jle	.L3833
	movq	(%rdi), %rdi
	movslq	%eax, %rdx
	leaq	(%rdi,%rdx,8), %rdx
	jmp	.L3823
	.p2align 4,,10
	.p2align 3
.L3824:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L3821
.L3823:

	movq	-8(%rdx), %rcx
	testq	%rcx, %rcx
	je	.L3824
	cmpl	$1, %eax
	jne	.L3832
	movq	(%rdi), %rcx
.L3821:

	movq	%rcx, (%rsi)
	movl	$1, %eax
	ret
.L3833:

	je	.L3827
.L3832:

	xorl	%eax, %eax
	ret
.L3827:

	xorl	%ecx, %ecx
	jmp	.L3821
	.cfi_endproc
.LFE869:

	.size	BN_get_u64, .-BN_get_u64
# WAS .section	.text.BN_ucmp,"ax",@progbits
.text
	.p2align 4
	.globl	BN_ucmp
	.type	BN_ucmp, @function
.LBN_ucmp_local_target:
BN_ucmp:
.LFB871:

	.cfi_startproc
	endbr64
	movslq	8(%rsi), %rcx
	movq	(%rsi), %rdx
	movslq	8(%rdi), %rsi
	movq	(%rdi), %rdi
# WAS jmp	bn_cmp_words_consttime
	jmp	.Lbn_cmp_words_consttime_local_target
	.cfi_endproc
.LFE871:

	.size	BN_ucmp, .-BN_ucmp
# WAS .section	.text.BN_add,"ax",@progbits
.text
	.p2align 4
	.globl	BN_add
	.type	BN_add, @function
.LBN_add_local_target:
BN_add:
.LFB809:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	16(%rsi), %r13d
	cmpl	%r13d, 16(%rdx)
	je	.L3836
	testl	%r13d, %r13d
	je	.L3847
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L3848
.L3838:

	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	je	.L3842
	movl	$0, 16(%r12)
.L3841:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3847:

	.cfi_restore_state
	movq	%rsi, %rbp
	movq	%rdx, %rbx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jns	.L3838
.L3848:

	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	jne	.L3839
.L3842:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3836:

	.cfi_restore_state
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	movl	%r13d, 16(%r12)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3839:

	.cfi_restore_state
	movl	$1, 16(%r12)
	jmp	.L3841
	.cfi_endproc
.LFE809:

	.size	BN_add, .-BN_add
# WAS .section	.text.BN_sub,"ax",@progbits
.text
	.p2align 4
	.globl	BN_sub
	.type	BN_sub, @function
.LBN_sub_local_target:
BN_sub:
.LFB813:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	16(%rsi), %r13d
	movl	16(%rdx), %eax
	testl	%r13d, %r13d
	je	.L3850
	movl	$1, %r13d
	testl	%eax, %eax
	jne	.L3869
.L3852:

	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	testl	%eax, %eax
	je	.L3857
	movl	%r13d, 16(%r12)
.L3855:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3869:

	.cfi_restore_state
	movq	%rdx, %rbx
	movq	%rsi, %rbp
.L3851:

	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L3870
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	je	.L3857
	movl	$0, 16(%r12)
	jmp	.L3855
	.p2align 4,,10
	.p2align 3
.L3870:

	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	jne	.L3871
.L3857:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3850:

	.cfi_restore_state
	testl	%eax, %eax
	je	.L3851
	jmp	.L3852
	.p2align 4,,10
	.p2align 3
.L3871:

	movl	$1, 16(%r12)
	jmp	.L3855
	.cfi_endproc
.LFE813:

	.size	BN_sub, .-BN_sub
# WAS .section	.text.BN_cmp,"ax",@progbits
.text
	.p2align 4
	.globl	BN_cmp
	.type	BN_cmp, @function
.LBN_cmp_local_target:
BN_cmp:
.LFB872:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L3880
	testq	%rsi, %rsi
	je	.L3884
	movl	16(%rdi), %eax
	cmpl	16(%rsi), %eax
	je	.L3876
	negl	%eax
	sbbl	%eax, %eax
	orl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3884:

	testq	%rdi, %rdi
	jne	.L3877
.L3880:

	xorl	%eax, %eax
	testq	%rsi, %rsi
	setne	%al
	ret
	.p2align 4,,10
	.p2align 3
.L3876:

	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	movq	8(%rsp), %rdi
	movl	16(%rdi), %edx
	testl	%edx, %edx
	je	.L3872
	negl	%eax
.L3872:

	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3877:

	movl	$-1, %eax
	ret
	.cfi_endproc
.LFE872:

	.size	BN_cmp, .-BN_cmp
# WAS .section	.text.bn_less_than_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_less_than_words
	.hidden	bn_less_than_words
	.type	bn_less_than_words, @function
.Lbn_less_than_words_local_target:
bn_less_than_words:
.LFB873:

	.cfi_startproc
	endbr64
	movq	%rsi, %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdx, %rsi
	movq	%rdx, %rcx
	movq	%rax, %rdx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	shrl	$31, %eax
	ret
	.cfi_endproc
.LFE873:

	.size	bn_less_than_words, .-bn_less_than_words
# WAS .section	.text.BN_abs_is_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_abs_is_word
	.type	BN_abs_is_word, @function
.LBN_abs_is_word_local_target:
BN_abs_is_word:
.LFB874:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %edx
	testl	%edx, %edx
	je	.L3890
	movq	(%rdi), %rdi
	xorq	(%rdi), %rsi
	cmpl	$1, %edx
	jle	.L3890
	leal	-1(%rdx), %eax
	cmpl	$2, %edx
	je	.L3895
	movl	%eax, %ecx
	movq	%rdi, %rdx
	pxor	%xmm0, %xmm0
	shrl	%ecx
	salq	$4, %rcx
	addq	%rdi, %rcx
	.p2align 4,,10
	.p2align 3
.L3892:

	movdqu	8(%rdx), %xmm2
	addq	$16, %rdx
	por	%xmm2, %xmm0
	cmpq	%rdx, %rcx
	jne	.L3892
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	orq	%rdx, %rsi
	testb	$1, %al
	je	.L3890
	orl	$1, %eax
.L3891:

	cltq
	orq	(%rdi,%rax,8), %rsi
.L3890:

	xorl	%eax, %eax
	testq	%rsi, %rsi
	sete	%al
	ret
.L3895:

	movl	$1, %eax
	jmp	.L3891
	.cfi_endproc
.LFE874:

	.size	BN_abs_is_word, .-BN_abs_is_word
# WAS .section	.text.BN_cmp_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_cmp_word
	.type	BN_cmp_word, @function
.LBN_cmp_word_local_target:
BN_cmp_word:
.LFB875:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movq	%rsi, 8(%rsp)
	leaq	16(%rsp), %rbp
	movq	%rbp, %rdi
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	8(%rsp), %rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
	xorl	%eax, %eax
	cmpq	$0, 8(%rsp)
	setne	%al
	movl	$1, 28(%rsp)
	movl	%eax, 24(%rsp)
	movl	$2, 36(%rsp)
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L3903
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L3903:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE875:

	.size	BN_cmp_word, .-BN_cmp_word
# WAS .section	.text.BN_is_zero,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_zero
	.type	BN_is_zero, @function
.LBN_is_zero_local_target:
BN_is_zero:
.LFB876:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %r8d
	testl	%r8d, %r8d
	je	.L3909
	movq	(%rdi), %rsi
	movslq	%r8d, %rcx
	cmpl	$1, %r8d
	je	.L3910
	movq	%rcx, %rdx
	movq	%rsi, %rax
	pxor	%xmm0, %xmm0
	shrq	%rdx
	salq	$4, %rdx
	addq	%rsi, %rdx
	.p2align 4,,10
	.p2align 3
.L3907:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rdx
	jne	.L3907
	movdqa	%xmm0, %xmm1
	andl	$1, %r8d
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	je	.L3908
	andq	$-2, %rcx
	movq	%rcx, %rdx
.L3906:

	orq	(%rsi,%rdx,8), %rax
.L3908:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3909:

	movl	$1, %eax
	ret
.L3910:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L3906
	.cfi_endproc
.LFE876:

	.size	BN_is_zero, .-BN_is_zero
# WAS .section	.text.BN_set_negative,"ax",@progbits
.text
	.p2align 4
	.globl	BN_set_negative
	.type	BN_set_negative, @function
.LBN_set_negative_local_target:
BN_set_negative:
.LFB849:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	testl	%esi, %esi
	jne	.L3921
	movl	%esi, 16(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3921:

	.cfi_restore_state
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	xorl	%esi, %esi
	testl	%eax, %eax
	sete	%sil
	movl	%esi, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE849:

	.size	BN_set_negative, .-BN_set_negative
# WAS .section	.text.BN_sub_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_sub_word
	.type	BN_sub_word, @function
.LBN_sub_word_local_target:
BN_sub_word:
.LFB816:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	jne	.L3948
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3948:

	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L3949
	movl	16(%rbp), %esi
	testl	%esi, %esi
	jne	.L3950
	movl	8(%rbp), %edi
	movq	0(%rbp), %rdx
	testl	%edi, %edi
	jle	.L3929
	movslq	%edi, %rax
	leaq	(%rdx,%rax,8), %rcx
	movl	%edi, %eax
	jmp	.L3930
	.p2align 4,,10
	.p2align 3
.L3931:

	subq	$8, %rcx
	subl	$1, %eax
	je	.L3929
.L3930:

	cmpq	$0, -8(%rcx)
	je	.L3931
	cmpl	$1, %eax
	jne	.L3929
	movq	(%rdx), %rax
	cmpq	%rbx, %rax
	jb	.L3951
.L3933:

	subq	%rbx, %rax
	movq	%rax, (%rdx)
	jne	.L3924
	.p2align 4,,10
	.p2align 3
.L3935:

	subl	$1, %edi
	cmpl	%esi, %edi
	jne	.L3924
	movl	%esi, 8(%rbp)
	.p2align 4,,10
	.p2align 3
.L3924:

	movl	$1, %eax
	jmp	.L3922
	.p2align 4,,10
	.p2align 3
.L3929:

	movq	(%rdx), %rax
	cmpq	%rbx, %rax
	jnb	.L3933
	.p2align 4,,10
	.p2align 3
.L3934:

	subq	%rbx, %rax
	addq	$8, %rdx
	addl	$1, %esi
	movl	$1, %ebx
	movq	%rax, -8(%rdx)
	movq	(%rdx), %rax
	testq	%rax, %rax
	je	.L3934
	subq	%rbx, %rax
	movq	%rax, (%rdx)
	je	.L3935
	jmp	.L3924
	.p2align 4,,10
	.p2align 3
.L3949:

	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	jne	.L3952
.L3922:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3950:

	.cfi_restore_state
	movl	$0, 16(%rbp)
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	movl	$1, 16(%rbp)
	jmp	.L3922
	.p2align 4,,10
	.p2align 3
.L3951:

	subq	%rax, %rbx
	movq	%rbx, (%rdx)
	movl	$1, 16(%rbp)
	jmp	.L3924
	.p2align 4,,10
	.p2align 3
.L3952:

	movl	$1, %esi
	movq	%rbp, %rdi
	movl	%eax, 12(%rsp)
# WAS call	BN_set_negative@PLT
	call	.LBN_set_negative_local_target
	movl	12(%rsp), %eax
	jmp	.L3922
	.cfi_endproc
.LFE816:

	.size	BN_sub_word, .-BN_sub_word
# WAS .section	.text.BN_add_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_add_word
	.type	BN_add_word, @function
.LBN_add_word_local_target:
BN_add_word:
.LFB812:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	jne	.L3975
.L3955:

	movl	$1, %r13d
.L3953:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3975:

	.cfi_restore_state
	movq	%rdi, %r12
	movq	%rsi, %rbx
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L3976
	movl	16(%r12), %edx
	testl	%edx, %edx
	jne	.L3957
	movslq	8(%r12), %rbp
	xorl	%ecx, %ecx
	jmp	.L3958
	.p2align 4,,10
	.p2align 3
.L3964:

	movq	(%r12), %rax
	xorl	%esi, %esi
	addq	%rcx, %rax
	addq	(%rax), %rbx
	setc	%sil
	movq	%rbx, (%rax)
	addl	$1, %edx
	addq	$8, %rcx
	movl	$1, %ebx
	testq	%rsi, %rsi
	je	.L3955
.L3958:

	cmpl	%edx, %ebp
	jg	.L3964
	jne	.L3955
	leal	1(%rbp), %esi
	movq	%r12, %rdi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movl	%eax, %r13d
	testl	%eax, %eax
	je	.L3953
	movq	(%r12), %rax
	addl	$1, 8(%r12)
	movq	%rbx, (%rax,%rbp,8)
	jmp	.L3955
	.p2align 4,,10
	.p2align 3
.L3976:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rsi
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	BN_set_word@PLT
	jmp	.LBN_set_word_local_target
	.p2align 4,,10
	.p2align 3
.L3957:

	.cfi_restore_state
	movl	$0, 16(%r12)
	movq	%r12, %rdi
	movq	%rbx, %rsi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	movq	%r12, %rdi
	movl	%eax, %r13d
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L3953
	movl	16(%r12), %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	sete	%al
	movl	%eax, 16(%r12)
	jmp	.L3953
	.cfi_endproc
.LFE812:

	.size	BN_add_word, .-BN_add_word
# WAS .section	.text.BN_is_one,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_one
	.type	BN_is_one, @function
.LBN_is_one_local_target:
BN_is_one:
.LFB877:

	.cfi_startproc
	endbr64
	movl	16(%rdi), %eax
	testl	%eax, %eax
	je	.L3985
	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L3985:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$1, %esi
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	setne	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE877:

	.size	BN_is_one, .-BN_is_one
# WAS .section	.text.BN_is_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_word
	.type	BN_is_word, @function
.LBN_is_word_local_target:
BN_is_word:
.LFB878:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	je	.L3986
	movl	$1, %eax
	testq	%rbx, %rbx
	jne	.L3994
.L3986:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3994:

	.cfi_restore_state
	movl	16(%rbp), %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	sete	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE878:

	.size	BN_is_word, .-BN_is_word
# WAS .section	.text.BN_is_odd,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_odd
	.type	BN_is_odd, @function
.LBN_is_odd_local_target:
BN_is_odd:
.LFB879:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L3995
	movq	(%rdi), %rax
	movq	(%rax), %rax
	andl	$1, %eax
.L3995:

	ret
	.cfi_endproc
.LFE879:

	.size	BN_is_odd, .-BN_is_odd
# WAS .section	.text.bn_mont_ctx_set_N_and_n0,"ax",@progbits
.text
	.p2align 4
	.type	bn_mont_ctx_set_N_and_n0, @function
.Lbn_mont_ctx_set_N_and_n0_local_target:
bn_mont_ctx_set_N_and_n0:
.LFB995:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L4029
	movq	%rbp, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L4030
	movq	%rbp, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L4003
	movslq	8(%rbp), %rdx
	movq	%rdx, %rax
	cmpq	$1024, %rdx
	jbe	.L4005
	movq	0(%rbp), %rsi
	subq	$1024, %rdx
	cmpl	$1025, %eax
	je	.L4018
	movq	%rdx, %rcx
	movq	%rsi, %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L4007:

	movdqu	8192(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rcx, %rax
	jne	.L4007
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L4008
	andq	$-2, %rdx
	addq	$1024, %rdx
.L4006:

	orq	(%rsi,%rdx,8), %rax
.L4008:

	testq	%rax, %rax
	jne	.L4031
.L4005:

	leaq	24(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4032
	movl	32(%rbx), %eax
	movq	24(%rbx), %rcx
	testl	%eax, %eax
	jle	.L4010
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L4011
	.p2align 4,,10
	.p2align 3
.L4013:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L4012
.L4011:

	cmpq	$0, -8(%rdx)
	je	.L4013
	movl	%eax, 32(%rbx)
.L4015:

	movq	(%rcx), %r10
	movl	$64, %edi
	xorl	%ecx, %ecx
	movl	$1, %edx
	movabsq	$-9223372036854775808, %r9
	.p2align 4,,10
	.p2align 3
.L4016:

	movq	%rdx, %rax
	movq	%r10, %r8
	shrq	%rcx
	andl	$1, %eax
	negq	%rax
	andq	%rax, %r8
	andq	%r9, %rax
	movq	%r8, %rsi
	addq	%rax, %rcx
	xorq	%rdx, %rsi
	andq	%r8, %rdx
	shrq	%rsi
	addq	%rsi, %rdx
	subq	$1, %rdi
	jne	.L4016
	movq	%rcx, 48(%rbx)
	movl	$1, %eax
	movq	$0, 56(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4030:

	.cfi_restore_state
	movl	$205, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L4000:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4029:

	.cfi_restore_state
	movl	$201, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4000
.L4031:

	movl	$213, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4000
.L4012:

	movl	$0, 32(%rbx)
.L4017:

	movl	$0, 40(%rbx)
	jmp	.L4015
.L4003:

	movl	$209, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4000
.L4010:

	je	.L4017
	jmp	.L4015
	.p2align 4,,10
	.p2align 3
.L4018:

	xorl	%eax, %eax
	movl	$1024, %edx
	jmp	.L4006
.L4032:

	movl	$219, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4000
	.cfi_endproc
.LFE995:

	.size	bn_mont_ctx_set_N_and_n0, .-bn_mont_ctx_set_N_and_n0
# WAS .section	.text.BN_is_pow2,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_pow2
	.type	BN_is_pow2, @function
.LBN_is_pow2_local_target:
BN_is_pow2:
.LFB880:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	testl	%eax, %eax
	jle	.L4034
	movq	(%rdi), %rsi
	movslq	%eax, %rdx
	leaq	(%rsi,%rdx,8), %rdx
	jmp	.L4035
	.p2align 4,,10
	.p2align 3
.L4038:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L4033
.L4035:

	cmpq	$0, -8(%rdx)
	je	.L4038
	movl	16(%rdi), %edx
	testl	%edx, %edx
	jne	.L4045
	cmpl	$1, %eax
	je	.L4040
	leal	-2(%rax), %ecx
	movq	%rsi, %rdx
	leaq	8(%rsi,%rcx,8), %rcx
	jmp	.L4041
	.p2align 4,,10
	.p2align 3
.L4059:

	addq	$8, %rdx
	cmpq	%rdx, %rcx
	je	.L4040
.L4041:

	cmpq	$0, (%rdx)
	je	.L4059
.L4045:

	xorl	%eax, %eax
	ret
.L4034:

	jne	.L4060
.L4033:

	ret
.L4060:

	movl	16(%rdi), %ecx
	testl	%ecx, %ecx
	jne	.L4045
	movq	(%rdi), %rsi
.L4040:

	cltq
	movq	-8(%rsi,%rax,8), %rax
	leaq	-1(%rax), %rdx
	testq	%rax, %rdx
	sete	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE880:

	.size	BN_is_pow2, .-BN_is_pow2
# WAS .section	.text.BN_equal_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	BN_equal_consttime
	.type	BN_equal_consttime, @function
.LBN_equal_consttime_local_target:
BN_equal_consttime:
.LFB881:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	movl	8(%rsi), %r8d
	movq	%rdi, %rcx
	cmpl	%r8d, %eax
	jge	.L4062
	movl	%r8d, %edx
	movq	(%rsi), %r10
	subl	%eax, %edx
	cmpl	$1, %edx
	je	.L4077
	movl	%edx, %r9d
	movslq	%eax, %rdi
	pxor	%xmm0, %xmm0
	shrl	%r9d
	leaq	(%r10,%rdi,8), %rdi
	salq	$4, %r9
	addq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L4064:

	movdqu	(%rdi), %xmm3
	addq	$16, %rdi
	por	%xmm3, %xmm0
	cmpq	%rdi, %r9
	jne	.L4064
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
	testb	$1, %dl
	je	.L4066
	andl	$-2, %edx
	addl	%eax, %edx
.L4068:

	movslq	%edx, %rdx
	movq	(%r10,%rdx,8), %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
.L4066:

	cmpl	%r8d, %eax
	cmovg	%r8d, %eax
	testl	%eax, %eax
	jle	.L4072
	movq	(%rcx), %r8
	movq	(%rsi), %r9
	cmpl	$1, %eax
	je	.L4080
	movl	%eax, %edi
	xorl	%edx, %edx
	pxor	%xmm2, %xmm2
	shrl	%edi
	salq	$4, %rdi
	.p2align 4,,10
	.p2align 3
.L4074:

	movdqu	(%r9,%rdx), %xmm1
	movdqu	(%r8,%rdx), %xmm5
	addq	$16, %rdx
	pxor	%xmm5, %xmm1
	por	%xmm1, %xmm2
	cmpq	%rdi, %rdx
	jne	.L4074
	movdqa	%xmm2, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm2
	por	%xmm2, %xmm0
	movq	%xmm0, %rdi
	testb	$1, %al
	je	.L4072
	andl	$-2, %eax
.L4073:

	cltq
	movq	(%r9,%rax,8), %xmm1
	movq	(%r8,%rax,8), %xmm2
	pxor	%xmm2, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
.L4072:

	movl	16(%rcx), %eax
	xorl	16(%rsi), %eax
	cltq
	orq	%rdi, %rax
	sete	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L4062:

	jle	.L4078
	movl	%eax, %edx
	movq	(%rdi), %r10
	subl	%r8d, %edx
	cmpl	$1, %edx
	je	.L4079
	movl	%edx, %r9d
	movslq	%r8d, %rdi
	pxor	%xmm0, %xmm0
	shrl	%r9d
	leaq	(%r10,%rdi,8), %rdi
	salq	$4, %r9
	addq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L4069:

	movdqu	(%rdi), %xmm4
	addq	$16, %rdi
	por	%xmm4, %xmm0
	cmpq	%rdi, %r9
	jne	.L4069
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
	testb	$1, %dl
	je	.L4066
	andl	$-2, %edx
	addl	%r8d, %edx
	jmp	.L4068
.L4077:

	movl	%eax, %edx
	pxor	%xmm0, %xmm0
	jmp	.L4068
.L4080:

	xorl	%eax, %eax
	jmp	.L4073
.L4079:

	movl	%r8d, %edx
	pxor	%xmm0, %xmm0
	jmp	.L4068
.L4078:

	pxor	%xmm0, %xmm0
	movq	%xmm0, %rdi
	jmp	.L4066
	.cfi_endproc
.LFE881:

	.size	BN_equal_consttime, .-BN_equal_consttime
# WAS .section	.text.BN_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_new
	.type	BN_CTX_new, @function
.LBN_CTX_new_local_target:
BN_CTX_new:
.LFB909:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$48, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L4093
	movq	$0, 8(%rax)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 16(%rax)
.L4093:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE909:

	.size	BN_CTX_new, .-BN_CTX_new
# WAS .section	.text.BN_CTX_secure_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_secure_new
	.type	BN_CTX_secure_new, @function
.LBN_CTX_secure_new_local_target:
BN_CTX_secure_new:
.LFB910:

	.cfi_startproc
	endbr64
# WAS jmp	BN_CTX_new@PLT
	jmp	.LBN_CTX_new_local_target
	.cfi_endproc
.LFE910:

	.size	BN_CTX_secure_new, .-BN_CTX_secure_new
# WAS .section	.text.BN_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_free
	.type	BN_CTX_free, @function
.LBN_CTX_free_local_target:
BN_CTX_free:
.LFB911:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L4100
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS movq	BN_free@GOTPCREL(%rip), %rdx
	leaq	.LBN_free_local_target(%rip), %rdx
	movq	%rdi, %rbx
# WAS leaq	sk_BIGNUM_call_free_func(%rip), %rsi
	leaq	.Lsk_BIGNUM_call_free_func_local_target(%rip), %rsi
	movq	(%rdi), %rdi
# WAS call	OPENSSL_sk_pop_free_ex@PLT
	call	.Lbcm_redirector_OPENSSL_sk_pop_free_ex
	movq	8(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L4100:

	ret
	.cfi_endproc
.LFE911:

	.size	BN_CTX_free, .-BN_CTX_free
# WAS .section	.text.BN_CTX_start,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_start
	.type	BN_CTX_start, @function
.LBN_CTX_start_local_target:
BN_CTX_start:
.LFB912:

	.cfi_startproc
	endbr64
	cmpb	$0, 40(%rdi)
	je	.L4119
	ret
	.p2align 4,,10
	.p2align 3
.L4119:

	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	movq	32(%rdi), %rbp
	movq	16(%rdi), %rdx
	cmpq	24(%rdi), %rdx
	je	.L4107
	movq	8(%rdi), %rax
.L4108:

	movq	%rbp, (%rax,%rdx,8)
	addq	$1, 16(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4107:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L4111
	leaq	(%rdx,%rdx,2), %r12
	shrq	%r12
	cmpq	%r12, %rdx
	jb	.L4120
.L4110:

	movl	$257, %eax
	movw	%ax, 40(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4111:

	.cfi_restore_state
	movl	$256, %esi
	movl	$32, %r12d
.L4109:

	movq	8(%rbx), %rdi
# WAS call	OPENSSL_realloc@PLT
	call	.Lbcm_redirector_OPENSSL_realloc
	testq	%rax, %rax
	je	.L4110
	movq	%rax, 8(%rbx)
	movq	16(%rbx), %rdx
	movq	%r12, 24(%rbx)
	jmp	.L4108
	.p2align 4,,10
	.p2align 3
.L4120:

	movq	%r12, %rax
	shrq	$61, %rax
	jne	.L4110
	leaq	0(,%r12,8), %rsi
	jmp	.L4109
	.cfi_endproc
.LFE912:

	.size	BN_CTX_start, .-BN_CTX_start
# WAS .section	.rodata.BN_CTX_get.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC125:

	.string	"/aws-lc/crypto/fipsmodule/bn/ctx.c"
# WAS .section	.text.BN_CTX_get,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_get
	.type	BN_CTX_get, @function
.LBN_CTX_get_local_target:
BN_CTX_get:
.LFB913:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpb	$0, 40(%rdi)
	jne	.L4133
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L4134
.L4124:

	movq	32(%rbx), %rbp
# WAS call	OPENSSL_sk_num@PLT
	call	.Lbcm_redirector_OPENSSL_sk_num
	cmpq	%rax, %rbp
	je	.L4135
.L4126:

	movq	32(%rbx), %rsi
	movq	(%rbx), %rdi
# WAS call	OPENSSL_sk_value@PLT
	call	.Lbcm_redirector_OPENSSL_sk_value
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	addq	$1, 32(%rbx)
.L4121:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4135:

	.cfi_restore_state
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L4128
	movq	(%rbx), %rdi
	movq	%rax, %rsi
# WAS call	OPENSSL_sk_push@PLT
	call	.Lbcm_redirector_OPENSSL_sk_push
	testq	%rax, %rax
	jne	.L4126
.L4128:

	movl	$170, %r8d
	leaq	.LC125(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movb	$1, 40(%rbx)
.L4123:

	xorl	%ebp, %ebp
	jmp	.L4121
	.p2align 4,,10
	.p2align 3
.L4134:

# WAS call	OPENSSL_sk_new_null@PLT
	call	.Lbcm_redirector_OPENSSL_sk_new_null
	movq	%rax, (%rbx)
	movq	%rax, %rdi
	testq	%rax, %rax
	jne	.L4124
	movb	$1, 40(%rbx)
	xorl	%ebp, %ebp
	jmp	.L4121
	.p2align 4,,10
	.p2align 3
.L4133:

	cmpb	$0, 41(%rdi)
	je	.L4123
	movl	$153, %r8d
	movl	$116, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	leaq	.LC125(%rip), %rcx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movb	$0, 41(%rbx)
	jmp	.L4121
	.cfi_endproc
.LFE913:

	.size	BN_CTX_get, .-BN_CTX_get
# WAS .section	.text.BN_CTX_end,"ax",@progbits
.text
	.p2align 4
	.globl	BN_CTX_end
	.type	BN_CTX_end, @function
.LBN_CTX_end_local_target:
BN_CTX_end:
.LFB914:

	.cfi_startproc
	endbr64
	cmpb	$0, 40(%rdi)
	jne	.L4136
	movq	16(%rdi), %rax
	movq	8(%rdi), %rdx
	subq	$1, %rax
	movq	%rax, 16(%rdi)
	movq	(%rdx,%rax,8), %rax
	movq	%rax, 32(%rdi)
.L4136:

	ret
	.cfi_endproc
.LFE914:

	.size	BN_CTX_end, .-BN_CTX_end
# WAS .section	.text.bn_mul_impl,"ax",@progbits
.text
	.p2align 4
	.type	bn_mul_impl, @function
.Lbn_mul_impl_local_target:
bn_mul_impl:
.LFB1023:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	8(%rsi), %r12d
	movl	8(%rdx), %r15d
	movq	%rcx, (%rsp)
	testl	%r12d, %r12d
	je	.L4158
	testl	%r15d, %r15d
	je	.L4158
	movq	%rsi, %r14
	movq	%rcx, %rdi
	movq	%rdx, %rbp
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	cmpq	%rbx, %r14
	je	.L4159
	movq	%rbx, %r13
	cmpq	%rbx, %rbp
	je	.L4159
.L4142:

	movl	16(%r14), %eax
	xorl	16(%rbp), %eax
	movl	%eax, 16(%r13)
	movl	%r12d, %eax
	subl	%r15d, %eax
	jne	.L4145
	cmpl	$8, %r12d
	je	.L4192
	leal	(%r12,%r15), %eax
	movl	%eax, 12(%rsp)
	cmpl	$15, %r12d
	jle	.L4151
	cmpl	$15, %r15d
	jle	.L4151
.L4149:

	movslq	%r12d, %rdi
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
.L4153:

	leal	-1(%rax), %edx
	movq	(%rsp), %rdi
	movl	$1, %eax
	movl	%edx, %ecx
	movl	%edx, 16(%rsp)
	sall	%cl, %eax
	movl	%eax, 20(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r8
	testq	%rax, %rax
	je	.L4147
	cmpl	%r15d, %r12d
	movl	%r15d, %ecx
	movl	20(%rsp), %edx
	cmovge	%r12d, %ecx
	cmpl	%edx, %ecx
	jle	.L4154
	movzbl	16(%rsp), %ecx
	movl	$8, %esi
	movq	%r8, %rdi
	movq	%r8, 24(%rsp)
	sall	%cl, %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L4193
	.p2align 4,,10
	.p2align 3
.L4147:

	xorl	%ebp, %ebp
.L4144:

	movq	(%rsp), %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L4138:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4145:

	.cfi_restore_state
	leal	(%r12,%r15), %ecx
	movl	%ecx, 12(%rsp)
	cmpl	$15, %r12d
	jle	.L4151
	cmpl	$15, %r15d
	jle	.L4151
	leal	1(%rax), %ecx
	cmpl	$2, %ecx
	jbe	.L4194
.L4151:

	movslq	12(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4147
	movl	12(%rsp), %eax
	movq	0(%rbp), %rcx
	movslq	%r12d, %rdx
	movslq	%r15d, %r8
	movq	(%r14), %rsi
	movq	0(%r13), %rdi
	movl	%eax, 8(%r13)
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
.L4148:

	movl	$1, %ebp
	cmpq	%rbx, %r13
	je	.L4144
	movq	%r13, %rsi
	movq	%rbx, %rdi
	xorl	%ebp, %ebp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%bpl
	jmp	.L4144
	.p2align 4,,10
	.p2align 3
.L4159:

	movq	(%rsp), %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	jne	.L4142
	jmp	.L4147
	.p2align 4,,10
	.p2align 3
.L4158:

	movq	%rbx, %rdi
	movl	$1, %ebp
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L4138
	.p2align 4,,10
	.p2align 3
.L4194:

	cmpl	$-1, %eax
	jne	.L4149
	movslq	%r15d, %rdi
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
	jmp	.L4153
	.p2align 4,,10
	.p2align 3
.L4154:

	movzbl	16(%rsp), %ecx
	movl	$4, %esi
	movq	%r8, %rdi
	movq	%r8, 24(%rsp)
	sall	%cl, %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4147
	movzbl	16(%rsp), %ecx
	movl	$2, %esi
	movq	%r13, %rdi
	sall	%cl, %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	24(%rsp), %r8
	testl	%eax, %eax
	je	.L4147
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	0(%rbp), %rdx
	movq	(%r14), %rsi
	movl	%r15d, %r9d
	movq	0(%r13), %rdi
	pushq	(%r8)
	.cfi_def_cfa_offset 112
	movl	%r12d, %r8d
	movl	36(%rsp), %eax
	subl	%eax, %r9d
	subl	%eax, %r8d
	movl	%eax, %ecx
# WAS call	bn_mul_recursive
	call	.Lbn_mul_recursive_local_target
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L4155:

	movl	12(%rsp), %eax
	movl	%eax, 8(%r13)
	jmp	.L4148
	.p2align 4,,10
	.p2align 3
.L4192:

	movl	$16, %esi
	movq	%r13, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4147
	movq	0(%rbp), %rdx
	movq	(%r14), %rsi
	movl	$16, 8(%r13)
	movq	0(%r13), %rdi
# WAS call	bn_mul_comba8
	call	.Lbn_mul_comba8_local_target
	jmp	.L4148
	.p2align 4,,10
	.p2align 3
.L4193:

	movzbl	16(%rsp), %ecx
	movl	$4, %esi
	movq	%r13, %rdi
	sall	%cl, %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	24(%rsp), %r8
	testl	%eax, %eax
	je	.L4147
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	(%r14), %rsi
	movq	0(%rbp), %rdx
	movl	%r15d, %r9d
	movq	0(%r13), %rdi
	pushq	(%r8)
	.cfi_def_cfa_offset 112
	movl	%r12d, %r8d
	movl	36(%rsp), %eax
	movl	%eax, %ecx
	subl	%eax, %r9d
	subl	%eax, %r8d
# WAS call	bn_mul_part_recursive
	call	.Lbn_mul_part_recursive_local_target
	popq	%rcx
	.cfi_def_cfa_offset 104
	popq	%rsi
	.cfi_def_cfa_offset 96
	jmp	.L4155
	.cfi_endproc
.LFE1023:

	.size	bn_mul_impl, .-bn_mul_impl
# WAS .section	.rodata.bn_gcd_consttime.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC126:

	.string	"/aws-lc/crypto/fipsmodule/bn/gcd_extra.c"
# WAS .section	.text.bn_gcd_consttime,"ax",@progbits
.text
	.p2align 4
	.type	bn_gcd_consttime, @function
.Lbn_gcd_consttime_local_target:
bn_gcd_consttime:
.LFB983:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movl	8(%rcx), %ebp
	movl	8(%rdx), %eax
	movq	%rdi, 16(%rsp)
	cmpl	%eax, %ebp
	movq	%rsi, 24(%rsp)
	cmovl	%eax, %ebp
	movslq	%ebp, %r15
	testq	%r15, %r15
	je	.L4247
	movq	%r8, %rbx
	movq	%r8, %rdi
	movq	%rcx, %r14
	movq	%rdx, %r12
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r13
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	8(%rsp), %rcx
	movq	%rax, %rdi
	testq	%rcx, %rcx
	sete	%al
	testq	%r13, %r13
	sete	%sil
	orb	%sil, %al
	jne	.L4200
	movq	%rdi, 32(%rsp)
	testq	%rdi, %rdi
	je	.L4200
	movq	%r12, %rsi
	movq	%rcx, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4200
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4200
	movq	8(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	jne	.L4248
	.p2align 4,,10
	.p2align 3
.L4200:

	xorl	%ebp, %ebp
.L4207:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4195
	.p2align 4,,10
	.p2align 3
.L4247:

	movl	$0, (%rsi)
	movl	$1, %ebp
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
.L4195:

	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4248:

	.cfi_restore_state
	movq	%r15, %rsi
	movq	%r13, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4200
	movq	32(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4200
	movl	8(%r12), %eax
	movl	8(%r14), %edx
	sall	$6, %eax
	sall	$6, %edx
	addl	%edx, %eax
	setc	%sil
	movl	%eax, 48(%rsp)
	movzbl	%sil, %esi
	movl	%esi, 44(%rsp)
	jc	.L4204
	movq	8(%rsp), %rcx
	movq	0(%r13), %r8
	movq	(%rcx), %r9
	testl	%eax, %eax
	je	.L4206
	movq	32(%rsp), %rax
	movl	%ebp, 52(%rsp)
	xorl	%r14d, %r14d
	movq	%rbx, 56(%rsp)
	movq	%r9, %rbx
	movq	(%rax), %r11
	movq	%r11, %r12
	movq	%r8, %r11
	.p2align 4,,10
	.p2align 3
.L4210:

	movq	(%r11), %rsi
	movq	(%rbx), %rdx
	movq	%r15, %rcx
	xorl	%edi, %edi
	andl	$1, %esi
	andl	$1, %edx
	negq	%rsi
	negq	%rdx
	andq	%rdx, %rsi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%rdi,8),%rdx	
	sbbq	(%r11,%rdi,8),%rdx	
	movq	%rdx,(%r12,%rdi,8)	
	lea	1(%rdi),%rdi	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	movq	8(%rsp), %rax
	andl	$1, %edx
	leaq	-1(%rdx), %rcx
	movq	%rdx, %r10
	movq	(%rax), %rdi
	movq	32(%rsp), %rax
	andq	%rsi, %rcx
	negq	%r10
	movq	%rcx, %r11
	movq	(%rax), %r9
	xorl	%eax, %eax
	notq	%r11
	.p2align 4,,10
	.p2align 3
.L4208:

	movq	(%r9,%rax,8), %rdx
	movq	(%rdi,%rax,8), %r8
	andq	%rcx, %rdx
	andq	%r11, %r8
	orq	%r8, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%r15, %rax
	jb	.L4208
	movq	0(%r13), %rdx
	movq	%r15, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rax,8),%r8	
	sbbq	(%rdi,%rax,8),%r8	
	movq	%r8,(%r9,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movq	32(%rsp), %rax
	andq	%r10, %rsi
	movq	0(%r13), %r11
	xorl	%edx, %edx
	movq	%rsi, %r8
	movq	(%rax), %r12
	notq	%r8
	.p2align 4,,10
	.p2align 3
.L4209:

	movq	(%r12,%rdx,8), %rax
	movq	(%r11,%rdx,8), %rcx
	andq	%rsi, %rax
	andq	%r8, %rcx
	orq	%rcx, %rax
	movq	%rax, (%r11,%rdx,8)
	addq	$1, %rdx
	cmpq	%r15, %rdx
	jb	.L4209
	movq	8(%rsp), %rax
	movq	(%r11), %rbp
	addl	$1, %r14d
	movq	(%rax), %rbx
	andl	$1, %ebp
	movl	44(%rsp), %eax
	movq	%rbp, %rcx
	movq	(%rbx), %rsi
	negq	%rcx
	movq	%rbx, %rdi
	andl	$1, %esi
	movq	%rsi, %rdx
	subq	$1, %rsi
	negq	%rdx
	orq	%rcx, %rdx
	movq	%r15, %rcx
	leal	1(%rax,%rdx), %eax
	movq	%r12, %rdx
	movl	%eax, 44(%rsp)
# WAS call	maybe_rshift1_words
	call	.Lmaybe_rshift1_words_local_target
	leaq	-1(%rbp), %rsi
	movq	%r15, %rcx
	movq	%r12, %rdx
	movq	%r11, %rdi
# WAS call	maybe_rshift1_words
	call	.Lmaybe_rshift1_words_local_target
	cmpl	%r14d, 48(%rsp)
	jne	.L4210
	movq	%rbx, %r9
	movl	52(%rsp), %ebp
	movq	56(%rsp), %rbx
	movq	%r11, %r8
.L4206:

	leaq	-1(%r15), %rax
	cmpq	$1, %rax
	jbe	.L4216
	movq	%r8, %rdx
	xorl	%eax, %eax
	subq	%r9, %rdx
	cmpq	$8, %rdx
	jne	.L4249
	.p2align 4,,10
	.p2align 3
.L4214:

	movq	(%r9,%rax,8), %rdx
	orq	%rdx, (%r8,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r15
	jne	.L4214
	.p2align 4,,10
	.p2align 3
.L4215:

	movl	44(%rsp), %esi
	movq	24(%rsp), %rax
	movq	%r8, 8(%rsp)
	movq	16(%rsp), %r14
	movl	%esi, (%rax)
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4200
	movq	(%r14), %rdi
	movq	8(%rsp), %rsi
	leaq	0(,%r15,8), %rdx
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
	movl	%ebp, 8(%r14)
	movl	$1, %ebp
	movl	$0, 16(%r14)
	jmp	.L4207
.L4249:

	movq	%r15, %rdx
	shrq	%rdx
	salq	$4, %rdx
	.p2align 4,,10
	.p2align 3
.L4212:

	movdqu	(%r9,%rax), %xmm0
	movdqu	(%r8,%rax), %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, (%r8,%rax)
	addq	$16, %rax
	cmpq	%rax, %rdx
	jne	.L4212
	movq	%r15, %rax
	andq	$-2, %rax
	testb	$1, %bpl
	je	.L4215
	movq	(%r9,%rax,8), %rdx
	orq	%rdx, (%r8,%rax,8)
	jmp	.L4215
.L4216:

	xorl	%eax, %eax
	jmp	.L4214
.L4204:

	movl	$78, %r8d
	leaq	.LC126(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4200
	.cfi_endproc
.LFE983:

	.size	bn_gcd_consttime, .-bn_gcd_consttime
# WAS .section	.text.bn_reduce_once,"ax",@progbits
.text
	.p2align 4
	.globl	bn_reduce_once
	.hidden	bn_reduce_once
	.type	bn_reduce_once, @function
.Lbn_reduce_once_local_target:
bn_reduce_once:
.LFB923:

	.cfi_startproc
	endbr64
	movq	%rcx, %rax
	movq	%rdx, %r11
	testq	%r8, %r8
	je	.L4250
	movq	%r8, %rcx
	xorl	%edx, %edx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r9,%r9		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rdx,8),%r9	
	sbbq	(%rax,%rdx,8),%r9	
	movq	%r9,(%rdi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%r9,%r9		

# 0 "" 2
#NO_APP
	andl	$1, %r9d
	xorl	%eax, %eax
	subq	%r9, %r11
	movq	%r11, %r9
	movq	%r11, %r10
	notq	%r9
	.p2align 4,,10
	.p2align 3
.L4252:

	movq	(%rsi,%rax,8), %rdx
	movq	(%rdi,%rax,8), %rcx
	andq	%r10, %rdx
	andq	%r9, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L4252
.L4250:

	movq	%r11, %rax
	ret
	.cfi_endproc
.LFE923:

	.size	bn_reduce_once, .-bn_reduce_once
# WAS .section	.text.bn_reduce_once_in_place,"ax",@progbits
.text
	.p2align 4
	.globl	bn_reduce_once_in_place
	.hidden	bn_reduce_once_in_place
	.type	bn_reduce_once_in_place, @function
.Lbn_reduce_once_in_place_local_target:
bn_reduce_once_in_place:
.LFB924:

	.cfi_startproc
	endbr64
	movq	%rsi, %r11
	movq	%rcx, %rsi
	testq	%r8, %r8
	je	.L4256
	movq	%r8, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r9,%r9		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%r9	
	sbbq	(%rdx,%rax,8),%r9	
	movq	%r9,(%rsi,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r9,%r9		

# 0 "" 2
#NO_APP
	andl	$1, %r9d
	xorl	%eax, %eax
	subq	%r9, %r11
	movq	%r11, %r9
	movq	%r11, %r10
	notq	%r9
	.p2align 4,,10
	.p2align 3
.L4258:

	movq	(%rdi,%rax,8), %rdx
	movq	(%rsi,%rax,8), %rcx
	andq	%r10, %rdx
	andq	%r9, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L4258
.L4256:

	movq	%r11, %rax
	ret
	.cfi_endproc
.LFE924:

	.size	bn_reduce_once_in_place, .-bn_reduce_once_in_place
# WAS .section	.text.bn_mod_sub_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_sub_words
	.hidden	bn_mod_sub_words
	.type	bn_mod_sub_words, @function
.Lbn_mod_sub_words_local_target:
bn_mod_sub_words:
.LFB925:

	.cfi_startproc
	endbr64
	testq	%r9, %r9
	je	.L4268
	xorl	%eax, %eax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdx, %r11
	movq	%rsi, %r10
	movq	%rcx, %rdx
	movq	%rax, %rbx
	movq	%r9, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r10,%rbx,8),%rsi	
	sbbq	(%r11,%rbx,8),%rsi	
	movq	%rsi,(%rdi,%rbx,8)	
	lea	1(%rbx),%rbx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	movq	%r9, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%r10	
	adcq	(%rdx,%rax,8),%r10	
	movq	%r10,(%r8,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	xorl	%eax, %eax
	movq	%rsi, %r10
	subq	$1, %rsi
	negq	%r10
	.p2align 4,,10
	.p2align 3
.L4264:

	movq	(%r8,%rax,8), %rdx
	movq	(%rdi,%rax,8), %rcx
	andq	%r10, %rdx
	andq	%rsi, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r9
	jne	.L4264
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4268:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE925:

	.size	bn_mod_sub_words, .-bn_mod_sub_words
# WAS .section	.rodata.EC_group_p384_init.str1.1,"aMS",@progbits,1
.text
.LC128:

	.string	"NIST P-384"
# WAS .section	.text.EC_group_p384_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_group_p384_init, @function
.LEC_group_p384_init_local_target:
EC_group_p384_init:
.LFB1762:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$88, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EC_group_p384_storage_bss_get@PLT
	call	EC_group_p384_storage_bss_get
	movl	$715, 512(%rax)
	movq	%rax, %rbx
	leaq	.LC128(%rip), %rax
	movq	%rax, 504(%rbx)
	movl	340(%rbx), %eax
	movl	$295211, 516(%rbx)
	movb	$34, 520(%rbx)
	movb	$5, 525(%rbx)
	testb	$2, %al
	je	.L4324
.L4272:

	orl	$2, %eax
	movq	.LC129(%rip), %rbp
# WAS leaq	kP384Field(%rip), %rsi
	leaq	.LkP384Field_local_target(%rip), %rsi
	movl	$0, 336(%rbx)
	movl	%eax, 340(%rbx)
	movl	316(%rbx), %eax
	movq	%rsi, 320(%rbx)
	movq	%rbp, 328(%rbx)
	testb	$2, %al
	je	.L4325
.L4273:

	orl	$2, %eax
# WAS leaq	kP384FieldRR(%rip), %rcx
	leaq	.LkP384FieldRR_local_target(%rip), %rcx
	movq	%rbp, 304(%rbx)
	movl	%eax, 316(%rbx)
	movabsq	$4294967297, %rax
	movq	%rax, 344(%rbx)
	movl	276(%rbx), %eax
	movq	%rcx, 296(%rbx)
	movl	$0, 312(%rbx)
	testb	$2, %al
	je	.L4326
.L4274:

	orl	$2, %eax
# WAS leaq	kP384Order(%rip), %rsi
	leaq	.LkP384Order_local_target(%rip), %rsi
	movq	%rbp, 264(%rbx)
	movl	%eax, 276(%rbx)
	movl	252(%rbx), %eax
	movq	%rsi, 256(%rbx)
	movl	$0, 272(%rbx)
	testb	$2, %al
	je	.L4327
.L4275:

	orl	$2, %eax
# WAS leaq	kP384OrderRR(%rip), %rcx
	leaq	.LkP384OrderRR_local_target(%rip), %rcx
	movq	%rbp, 240(%rbx)
	leaq	160(%rbx), %rbp
	movl	%eax, 252(%rbx)
	movabsq	$7986114184663260229, %rax
	movq	%rcx, 232(%rbx)
	movl	$0, 248(%rbx)
	movq	%rax, 280(%rbx)
# WAS call	EC_GFp_nistp384_method_once_bss_get@PLT
	call	EC_GFp_nistp384_method_once_bss_get
# WAS leaq	EC_GFp_nistp384_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp384_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_nistp384_method_storage_bss_get@PLT
	call	EC_GFp_nistp384_method_storage_bss_get
	movdqa	.LC130(%rip), %xmm0
	movq	%rbx, 8(%rbx)
	movq	%rax, (%rbx)
	movups	%xmm0, 16(%rbx)
	movdqa	.LC131(%rip), %xmm0
	movups	%xmm0, 32(%rbx)
	movdqa	.LC132(%rip), %xmm0
	movups	%xmm0, 48(%rbx)
	movdqa	.LC133(%rip), %xmm0
	movups	%xmm0, 88(%rbx)
	movdqa	.LC134(%rip), %xmm0
	movups	%xmm0, 104(%rbx)
	movdqa	.LC135(%rip), %xmm0
	movups	%xmm0, 120(%rbx)
	movdqa	.LC136(%rip), %xmm0
	movups	%xmm0, 160(%rbx)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 32(%rbp)
	movdqa	.LC137(%rip), %xmm0
	movq	$1, 16(%rbp)
	movq	$0, 24(%rbp)
	movslq	328(%rbx), %r9
	movups	%xmm0, 432(%rbx)
	movdqa	.LC138(%rip), %xmm0
	movl	$1, 528(%rbx)
	movups	%xmm0, 448(%rbx)
	movdqa	.LC139(%rip), %xmm0
	movups	%xmm0, 464(%rbx)
	testl	%r9d, %r9d
	jle	.L4276
	cmpl	$1, %r9d
	je	.L4289
	movl	%r9d, %eax
	shrl	%eax
	cmpl	$5, %r9d
	jbe	.L4291
	cmpl	$3, %eax
	je	.L4291
	movdqu	208(%rbx), %xmm0
	por	.LC127(%rip), %xmm0
	cmpl	$4, %eax
	je	.L4278
	movdqu	224(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$5, %eax
	je	.L4278
	xorl	%edx, %edx
.L4279:

	movq	%rdx, %rcx
	addq	$1, %rdx
	salq	$4, %rcx
	movdqu	240(%rbx,%rcx), %xmm1
	leal	5(%rdx), %ecx
	por	%xmm1, %xmm0
	cmpl	%eax, %ecx
	jb	.L4279
	jmp	.L4278
	.p2align 4,,10
	.p2align 3
.L4291:

	movdqa	.LC127(%rip), %xmm0
.L4278:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %r9b
	je	.L4323
	movl	%r9d, %eax
	andl	$-2, %eax
.L4277:

	cltq
	orq	160(%rbx,%rax,8), %rdx
.L4323:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	360(%rbx), %rdi
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L4281:

	movq	%r9, %rcx
	xorl	%esi, %esi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rsi,8),%r8	
	sbbq	(%rbp,%rsi,8),%r8	
	movq	%r8,(%rdi,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movslq	328(%rbx), %r9
	testl	%r9d, %r9d
	jle	.L4283
	cmpl	$1, %r9d
	je	.L4292
	movdqu	(%rdi), %xmm1
	movq	%rax, %xmm0
	movl	%r9d, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rdi)
	cmpl	$1, %edx
	je	.L4285
	movdqu	16(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rdi)
	cmpl	$2, %edx
	je	.L4285
	movdqu	32(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rdi)
	cmpl	$3, %edx
	je	.L4285
	movdqu	48(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rdi)
	cmpl	$4, %edx
	je	.L4285
	movdqu	64(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rdi)
	cmpl	$5, %edx
	je	.L4285
	leaq	440(%rbx), %rcx
	movl	$5, %esi
.L4286:

	movdqu	(%rcx), %xmm1
	addl	$1, %esi
	addq	$16, %rcx
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	cmpl	%edx, %esi
	jne	.L4286
	.p2align 4,,10
	.p2align 3
.L4285:

	testb	$1, %r9b
	je	.L4283
	movl	%r9d, %edx
	andl	$-2, %edx
.L4284:

	movslq	%edx, %rdx
	andq	%rax, 360(%rbx,%rdx,8)
.L4283:

	movq	320(%rbx), %rdx
.L4282:

	movq	%rdx, %rcx
	movq	%rsp, %r8
	movq	%rbp, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%rbp, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	.LC89(%rip), %rax
	movq	%rax, 532(%rbx)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4328
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4276:

	.cfi_restore_state
	movq	320(%rbx), %rdx
	leaq	360(%rbx), %rdi
	testq	%r9, %r9
	je	.L4282
	xorl	%eax, %eax
	jmp	.L4281
	.p2align 4,,10
	.p2align 3
.L4327:

	movq	232(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	252(%rbx), %eax
	jmp	.L4275
	.p2align 4,,10
	.p2align 3
.L4326:

	movq	256(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	276(%rbx), %eax
	jmp	.L4274
	.p2align 4,,10
	.p2align 3
.L4325:

	movq	296(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	316(%rbx), %eax
	jmp	.L4273
	.p2align 4,,10
	.p2align 3
.L4324:

	movq	320(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	340(%rbx), %eax
	jmp	.L4272
.L4292:

	xorl	%edx, %edx
	jmp	.L4284
.L4289:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L4277
.L4328:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1762:

	.size	EC_group_p384_init, .-EC_group_p384_init
# WAS .section	.rodata.EC_group_p224_init.str1.1,"aMS",@progbits,1
.text
.LC140:

	.string	"NIST P-224"
# WAS .section	.text.EC_group_p224_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_group_p224_init, @function
.LEC_group_p224_init_local_target:
EC_group_p224_init:
.LFB1756:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$88, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EC_group_p224_storage_bss_get@PLT
	call	EC_group_p224_storage_bss_get
	movl	$713, 512(%rax)
	movq	%rax, %rbx
	leaq	.LC140(%rip), %rax
	movq	%rax, 504(%rbx)
	movl	340(%rbx), %eax
	movl	$295211, 516(%rbx)
	movb	$33, 520(%rbx)
	movb	$5, 525(%rbx)
	testb	$2, %al
	je	.L4388
.L4330:

	orl	$2, %eax
	movq	.LC88(%rip), %rbp
# WAS leaq	kP224Field(%rip), %rsi
	leaq	.LkP224Field_local_target(%rip), %rsi
	movl	$0, 336(%rbx)
	movl	%eax, 340(%rbx)
	movl	316(%rbx), %eax
	movq	%rsi, 320(%rbx)
	movq	%rbp, 328(%rbx)
	testb	$2, %al
	je	.L4389
.L4331:

	orl	$2, %eax
# WAS leaq	kP224FieldRR(%rip), %rcx
	leaq	.LkP224FieldRR_local_target(%rip), %rcx
	movq	%rbp, 304(%rbx)
	movl	%eax, 316(%rbx)
	movl	276(%rbx), %eax
	movq	%rcx, 296(%rbx)
	movl	$0, 312(%rbx)
	movq	$-1, 344(%rbx)
	testb	$2, %al
	je	.L4390
.L4332:

	orl	$2, %eax
# WAS leaq	kP224Order(%rip), %rsi
	leaq	.LkP224Order_local_target(%rip), %rsi
	movq	%rbp, 264(%rbx)
	movl	%eax, 276(%rbx)
	movl	252(%rbx), %eax
	movq	%rsi, 256(%rbx)
	movl	$0, 272(%rbx)
	testb	$2, %al
	je	.L4391
.L4333:

	orl	$2, %eax
# WAS leaq	kP224OrderRR(%rip), %rcx
	leaq	.LkP224OrderRR_local_target(%rip), %rcx
	movq	%rbp, 240(%rbx)
	movl	%eax, 252(%rbx)
	movabsq	$-2962732554272128277, %rax
	movq	%rcx, 232(%rbx)
	movl	$0, 248(%rbx)
	movq	%rax, 280(%rbx)
# WAS call	EC_GFp_nistp224_method_once_bss_get@PLT
	call	EC_GFp_nistp224_method_once_bss_get
# WAS leaq	EC_GFp_nistp224_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp224_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_nistp224_method_storage_bss_get@PLT
	call	EC_GFp_nistp224_method_storage_bss_get
	movslq	328(%rbx), %r9
	movq	%rbx, 8(%rbx)
	movdqa	.LC141(%rip), %xmm0
	movq	%rax, (%rbx)
	movq	$1, 160(%rbx)
	movups	%xmm0, 16(%rbx)
	movdqa	.LC142(%rip), %xmm0
	movl	$1, 528(%rbx)
	movups	%xmm0, 32(%rbx)
	movdqa	.LC143(%rip), %xmm0
	movups	%xmm0, 88(%rbx)
	movdqa	.LC144(%rip), %xmm0
	movups	%xmm0, 104(%rbx)
	movdqa	.LC145(%rip), %xmm0
	movups	%xmm0, 432(%rbx)
	movdqa	.LC146(%rip), %xmm0
	movups	%xmm0, 448(%rbx)
	testl	%r9d, %r9d
	jle	.L4334
	cmpl	$1, %r9d
	je	.L4346
	movl	%r9d, %eax
	movdqu	160(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L4336
	movdqu	176(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L4336
	movdqu	192(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L4336
	movdqu	208(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L4336
	movdqu	224(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L4336
	xorl	%edx, %edx
.L4337:

	movq	%rdx, %rcx
	addq	$1, %rdx
	salq	$4, %rcx
	movdqu	240(%rbx,%rcx), %xmm1
	leal	5(%rdx), %ecx
	por	%xmm1, %xmm0
	cmpl	%eax, %ecx
	jb	.L4337
	.p2align 4,,10
	.p2align 3
.L4336:

	movdqa	%xmm0, %xmm1
	movl	%r9d, %eax
	psrldq	$8, %xmm1
	andl	$-2, %eax
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %r9b
	je	.L4387
.L4335:

	cltq
	orq	160(%rbx,%rax,8), %rdx
.L4387:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	160(%rbx), %rbp
	notq	%rax
	leaq	360(%rbx), %rdi
	andq	%rdx, %rax
	movq	320(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L4338:

	movq	%r9, %rcx
	xorl	%esi, %esi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rsi,8),%r8	
	sbbq	(%rbp,%rsi,8),%r8	
	movq	%r8,(%rdi,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movslq	328(%rbx), %r9
	testl	%r9d, %r9d
	jle	.L4340
	cmpl	$1, %r9d
	je	.L4347
	movdqu	(%rdi), %xmm1
	movq	%rax, %xmm0
	movl	%r9d, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rdi)
	cmpl	$1, %edx
	je	.L4342
	movdqu	16(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rdi)
	cmpl	$2, %edx
	je	.L4342
	movdqu	32(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rdi)
	cmpl	$3, %edx
	je	.L4342
	movdqu	48(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rdi)
	cmpl	$4, %edx
	je	.L4342
	movdqu	64(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rdi)
	cmpl	$5, %edx
	je	.L4342
	leaq	440(%rbx), %rcx
	movl	$5, %esi
.L4343:

	movdqu	(%rcx), %xmm1
	addl	$1, %esi
	addq	$16, %rcx
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	cmpl	%edx, %esi
	jne	.L4343
	.p2align 4,,10
	.p2align 3
.L4342:

	testb	$1, %r9b
	je	.L4340
	movl	%r9d, %edx
	andl	$-2, %edx
.L4341:

	movslq	%edx, %rdx
	andq	%rax, 360(%rbx,%rdx,8)
.L4340:

	movq	320(%rbx), %rdx
.L4339:

	movq	%rdx, %rcx
	movq	%rsp, %r8
	movq	%rbp, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%rbp, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	.LC89(%rip), %rax
	movq	%rax, 532(%rbx)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4392
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4334:

	.cfi_restore_state
	movq	320(%rbx), %rdx
	leaq	160(%rbx), %rbp
	leaq	360(%rbx), %rdi
	testq	%r9, %r9
	je	.L4339
	xorl	%eax, %eax
	jmp	.L4338
	.p2align 4,,10
	.p2align 3
.L4391:

	movq	232(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	252(%rbx), %eax
	jmp	.L4333
	.p2align 4,,10
	.p2align 3
.L4390:

	movq	256(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	276(%rbx), %eax
	jmp	.L4332
	.p2align 4,,10
	.p2align 3
.L4389:

	movq	296(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	316(%rbx), %eax
	jmp	.L4331
	.p2align 4,,10
	.p2align 3
.L4388:

	movq	320(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	340(%rbx), %eax
	jmp	.L4330
.L4347:

	xorl	%edx, %edx
	jmp	.L4341
.L4346:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L4335
.L4392:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1756:

	.size	EC_group_p224_init, .-EC_group_p224_init
# WAS .section	.rodata.EC_group_p521_init.str1.1,"aMS",@progbits,1
.text
.LC147:

	.string	"NIST P-521"
# WAS .section	.text.EC_group_p521_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_group_p521_init, @function
.LEC_group_p521_init_local_target:
EC_group_p521_init:
.LFB1765:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$88, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EC_group_p521_storage_bss_get@PLT
	call	EC_group_p521_storage_bss_get
	movl	$716, 512(%rax)
	movq	%rax, %rbx
	leaq	.LC147(%rip), %rax
	movq	%rax, 504(%rbx)
	movl	340(%rbx), %eax
	movl	$295211, 516(%rbx)
	movb	$35, 520(%rbx)
	movb	$5, 525(%rbx)
	testb	$2, %al
	je	.L4452
.L4394:

	orl	$2, %eax
	movq	.LC148(%rip), %rbp
# WAS leaq	kP521Field(%rip), %rsi
	leaq	.LkP521Field_local_target(%rip), %rsi
	movl	$0, 336(%rbx)
	movl	%eax, 340(%rbx)
	movl	316(%rbx), %eax
	movq	%rsi, 320(%rbx)
	movq	%rbp, 328(%rbx)
	testb	$2, %al
	je	.L4453
.L4395:

	orl	$2, %eax
# WAS leaq	kP521FieldRR(%rip), %rcx
	leaq	.LkP521FieldRR_local_target(%rip), %rcx
	movq	%rbp, 304(%rbx)
	movl	%eax, 316(%rbx)
	movl	276(%rbx), %eax
	movq	%rcx, 296(%rbx)
	movl	$0, 312(%rbx)
	movq	$1, 344(%rbx)
	testb	$2, %al
	je	.L4454
.L4396:

	orl	$2, %eax
# WAS leaq	kP521Order(%rip), %rsi
	leaq	.LkP521Order_local_target(%rip), %rsi
	movq	%rbp, 264(%rbx)
	movl	%eax, 276(%rbx)
	movl	252(%rbx), %eax
	movq	%rsi, 256(%rbx)
	movl	$0, 272(%rbx)
	testb	$2, %al
	je	.L4455
.L4397:

	orl	$2, %eax
# WAS leaq	kP521OrderRR(%rip), %rcx
	leaq	.LkP521OrderRR_local_target(%rip), %rcx
	movq	%rbp, 240(%rbx)
	movl	%eax, 252(%rbx)
	movabsq	$2103001588584519111, %rax
	movq	%rcx, 232(%rbx)
	movl	$0, 248(%rbx)
	movq	%rax, 280(%rbx)
# WAS call	EC_GFp_nistp521_method_once_bss_get@PLT
	call	EC_GFp_nistp521_method_once_bss_get
# WAS leaq	EC_GFp_nistp521_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp521_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_nistp521_method_storage_bss_get@PLT
	call	EC_GFp_nistp521_method_storage_bss_get
	movdqa	.LC149(%rip), %xmm0
	movq	%rbx, 8(%rbx)
	movq	%rax, (%rbx)
	movups	%xmm0, 16(%rbx)
	movdqa	.LC150(%rip), %xmm0
	movq	$198, 80(%rbx)
	movups	%xmm0, 32(%rbx)
	movdqa	.LC151(%rip), %xmm0
	movq	$280, 152(%rbx)
	movups	%xmm0, 48(%rbx)
	movdqa	.LC152(%rip), %xmm0
	movq	$1, 160(%rbx)
	movups	%xmm0, 64(%rbx)
	movdqa	.LC153(%rip), %xmm0
	movq	$81, 496(%rbx)
	movups	%xmm0, 88(%rbx)
	movdqa	.LC154(%rip), %xmm0
	movl	$1, 528(%rbx)
	movups	%xmm0, 104(%rbx)
	movdqa	.LC155(%rip), %xmm0
	movups	%xmm0, 120(%rbx)
	movdqa	.LC156(%rip), %xmm0
	movups	%xmm0, 136(%rbx)
	movdqa	.LC157(%rip), %xmm0
	movups	%xmm0, 432(%rbx)
	movdqa	.LC158(%rip), %xmm0
	movups	%xmm0, 448(%rbx)
	movdqa	.LC159(%rip), %xmm0
	movups	%xmm0, 464(%rbx)
	movdqa	.LC160(%rip), %xmm0
	movups	%xmm0, 480(%rbx)
	movslq	328(%rbx), %r9
	testl	%r9d, %r9d
	jle	.L4398
	cmpl	$1, %r9d
	je	.L4410
	movl	%r9d, %eax
	movdqu	160(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L4400
	movdqu	176(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L4400
	movdqu	192(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L4400
	movdqu	208(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L4400
	movdqu	224(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L4400
	xorl	%edx, %edx
.L4401:

	movq	%rdx, %rcx
	addq	$1, %rdx
	salq	$4, %rcx
	movdqu	240(%rbx,%rcx), %xmm1
	leal	5(%rdx), %ecx
	por	%xmm1, %xmm0
	cmpl	%eax, %ecx
	jb	.L4401
	.p2align 4,,10
	.p2align 3
.L4400:

	movdqa	%xmm0, %xmm1
	movl	%r9d, %eax
	psrldq	$8, %xmm1
	andl	$-2, %eax
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %r9b
	je	.L4451
.L4399:

	cltq
	orq	160(%rbx,%rax,8), %rdx
.L4451:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	160(%rbx), %rbp
	notq	%rax
	leaq	360(%rbx), %rdi
	andq	%rdx, %rax
	movq	320(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L4402:

	movq	%r9, %rcx
	xorl	%esi, %esi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rsi,8),%r8	
	sbbq	(%rbp,%rsi,8),%r8	
	movq	%r8,(%rdi,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movslq	328(%rbx), %r9
	testl	%r9d, %r9d
	jle	.L4404
	cmpl	$1, %r9d
	je	.L4411
	movdqu	(%rdi), %xmm1
	movq	%rax, %xmm0
	movl	%r9d, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rdi)
	cmpl	$1, %edx
	je	.L4406
	movdqu	16(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rdi)
	cmpl	$2, %edx
	je	.L4406
	movdqu	32(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rdi)
	cmpl	$3, %edx
	je	.L4406
	movdqu	48(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rdi)
	cmpl	$4, %edx
	je	.L4406
	movdqu	64(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rdi)
	cmpl	$5, %edx
	je	.L4406
	leaq	440(%rbx), %rcx
	movl	$5, %esi
.L4407:

	movdqu	(%rcx), %xmm1
	addl	$1, %esi
	addq	$16, %rcx
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	cmpl	%edx, %esi
	jne	.L4407
	.p2align 4,,10
	.p2align 3
.L4406:

	testb	$1, %r9b
	je	.L4404
	movl	%r9d, %edx
	andl	$-2, %edx
.L4405:

	movslq	%edx, %rdx
	andq	%rax, 360(%rbx,%rdx,8)
.L4404:

	movq	320(%rbx), %rdx
.L4403:

	movq	%rdx, %rcx
	movq	%rsp, %r8
	movq	%rbp, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%rbp, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	.LC89(%rip), %rax
	movq	%rax, 532(%rbx)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4456
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4398:

	.cfi_restore_state
	movq	320(%rbx), %rdx
	leaq	160(%rbx), %rbp
	leaq	360(%rbx), %rdi
	testq	%r9, %r9
	je	.L4403
	xorl	%eax, %eax
	jmp	.L4402
	.p2align 4,,10
	.p2align 3
.L4455:

	movq	232(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	252(%rbx), %eax
	jmp	.L4397
	.p2align 4,,10
	.p2align 3
.L4454:

	movq	256(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	276(%rbx), %eax
	jmp	.L4396
	.p2align 4,,10
	.p2align 3
.L4453:

	movq	296(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	316(%rbx), %eax
	jmp	.L4395
	.p2align 4,,10
	.p2align 3
.L4452:

	movq	320(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	340(%rbx), %eax
	jmp	.L4394
.L4411:

	xorl	%edx, %edx
	jmp	.L4405
.L4410:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L4399
.L4456:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1765:

	.size	EC_group_p521_init, .-EC_group_p521_init
# WAS .section	.rodata.EC_group_p256_init.str1.1,"aMS",@progbits,1
.text
.LC163:

	.string	"NIST P-256"
# WAS .section	.text.EC_group_p256_init,"ax",@progbits
.text
	.p2align 4
	.type	EC_group_p256_init, @function
.LEC_group_p256_init_local_target:
EC_group_p256_init:
.LFB1759:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$88, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EC_group_p256_storage_bss_get@PLT
	call	EC_group_p256_storage_bss_get
	movl	$415, 512(%rax)
	movq	%rax, %rbx
	leaq	.LC163(%rip), %rax
	movq	%rax, 504(%rbx)
	movabsq	$504688197230954026, %rax
	movq	%rax, 516(%rbx)
	movl	340(%rbx), %eax
	movb	$8, 525(%rbx)
	testb	$2, %al
	je	.L4513
.L4458:

	orl	$2, %eax
	movq	.LC88(%rip), %rbp
# WAS leaq	kP256Field(%rip), %rsi
	leaq	.LkP256Field_local_target(%rip), %rsi
	movl	$0, 336(%rbx)
	movl	%eax, 340(%rbx)
	movl	316(%rbx), %eax
	movq	%rsi, 320(%rbx)
	movq	%rbp, 328(%rbx)
	testb	$2, %al
	je	.L4514
.L4459:

	orl	$2, %eax
# WAS leaq	kP256FieldRR(%rip), %rcx
	leaq	.LkP256FieldRR_local_target(%rip), %rcx
	movq	%rbp, 304(%rbx)
	movl	%eax, 316(%rbx)
	movl	276(%rbx), %eax
	movq	%rcx, 296(%rbx)
	movl	$0, 312(%rbx)
	movq	$1, 344(%rbx)
	testb	$2, %al
	je	.L4515
.L4460:

	orl	$2, %eax
# WAS leaq	kP256Order(%rip), %rsi
	leaq	.LkP256Order_local_target(%rip), %rsi
	movq	%rbp, 264(%rbx)
	movl	%eax, 276(%rbx)
	movl	252(%rbx), %eax
	movq	%rsi, 256(%rbx)
	movl	$0, 272(%rbx)
	testb	$2, %al
	je	.L4516
.L4461:

	orl	$2, %eax
# WAS leaq	kP256OrderRR(%rip), %rcx
	leaq	.LkP256OrderRR_local_target(%rip), %rcx
	movq	%rbp, 240(%rbx)
	leaq	160(%rbx), %rbp
	movl	%eax, 252(%rbx)
	movabsq	$-3687945983376704433, %rax
	movq	%rcx, 232(%rbx)
	movl	$0, 248(%rbx)
	movq	%rax, 280(%rbx)
# WAS call	EC_GFp_nistz256_method_once_bss_get@PLT
	call	EC_GFp_nistz256_method_once_bss_get
# WAS leaq	EC_GFp_nistz256_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistz256_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_nistz256_method_storage_bss_get@PLT
	call	EC_GFp_nistz256_method_storage_bss_get
	movdqa	.LC164(%rip), %xmm0
	movq	%rbx, 8(%rbx)
	movq	%rax, (%rbx)
	movups	%xmm0, 16(%rbx)
	movdqa	.LC165(%rip), %xmm0
	movups	%xmm0, 32(%rbx)
	movdqa	.LC166(%rip), %xmm0
	movups	%xmm0, 88(%rbx)
	movdqa	.LC167(%rip), %xmm0
	movups	%xmm0, 104(%rbx)
	movdqa	.LC168(%rip), %xmm0
	movups	%xmm0, 160(%rbx)
	movdqa	.LC169(%rip), %xmm0
	movups	%xmm0, 16(%rbp)
	movdqa	.LC170(%rip), %xmm0
	movslq	328(%rbx), %r9
	movl	$1, 528(%rbx)
	movups	%xmm0, 432(%rbx)
	movdqa	.LC171(%rip), %xmm0
	movups	%xmm0, 448(%rbx)
	testl	%r9d, %r9d
	jle	.L4462
	cmpl	$1, %r9d
	je	.L4475
	movl	%r9d, %eax
	shrl	%eax
	cmpl	$1, %eax
	je	.L4476
	cmpl	$2, %eax
	je	.L4477
	movdqu	192(%rbx), %xmm0
	por	.LC162(%rip), %xmm0
	cmpl	$3, %eax
	je	.L4464
	movdqu	208(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$4, %eax
	je	.L4464
	movdqu	224(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$5, %eax
	je	.L4464
	xorl	%edx, %edx
.L4465:

	movq	%rdx, %rcx
	addq	$1, %rdx
	salq	$4, %rcx
	movdqu	240(%rbx,%rcx), %xmm1
	leal	5(%rdx), %ecx
	por	%xmm1, %xmm0
	cmpl	%eax, %ecx
	jb	.L4465
	.p2align 4,,10
	.p2align 3
.L4464:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %r9b
	je	.L4512
	movl	%r9d, %eax
	andl	$-2, %eax
.L4463:

	cltq
	orq	160(%rbx,%rax,8), %rdx
.L4512:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	360(%rbx), %rdi
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L4467:

	movq	%r9, %rcx
	xorl	%esi, %esi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rsi,8),%r8	
	sbbq	(%rbp,%rsi,8),%r8	
	movq	%r8,(%rdi,%rsi,8)	
	lea	1(%rsi),%rsi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movslq	328(%rbx), %r9
	testl	%r9d, %r9d
	jle	.L4469
	cmpl	$1, %r9d
	je	.L4478
	movdqu	(%rdi), %xmm1
	movq	%rax, %xmm0
	movl	%r9d, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rdi)
	cmpl	$1, %edx
	je	.L4471
	movdqu	16(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rdi)
	cmpl	$2, %edx
	je	.L4471
	movdqu	32(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rdi)
	cmpl	$3, %edx
	je	.L4471
	movdqu	48(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rdi)
	cmpl	$4, %edx
	je	.L4471
	movdqu	64(%rdi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rdi)
	cmpl	$5, %edx
	je	.L4471
	leaq	440(%rbx), %rcx
	movl	$5, %esi
.L4472:

	movdqu	(%rcx), %xmm1
	addl	$1, %esi
	addq	$16, %rcx
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	cmpl	%edx, %esi
	jne	.L4472
	.p2align 4,,10
	.p2align 3
.L4471:

	testb	$1, %r9b
	je	.L4469
	movl	%r9d, %edx
	andl	$-2, %edx
.L4470:

	movslq	%edx, %rdx
	andq	%rax, 360(%rbx,%rdx,8)
.L4469:

	movq	320(%rbx), %rdx
.L4468:

	movq	%rdx, %rcx
	movq	%rsp, %r8
	movq	%rbp, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%rbp, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	.LC89(%rip), %rax
	movq	%rax, 532(%rbx)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4517
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4462:

	.cfi_restore_state
	movq	320(%rbx), %rdx
	leaq	360(%rbx), %rdi
	testq	%r9, %r9
	je	.L4468
	xorl	%eax, %eax
	jmp	.L4467
	.p2align 4,,10
	.p2align 3
.L4516:

	movq	232(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	252(%rbx), %eax
	jmp	.L4461
	.p2align 4,,10
	.p2align 3
.L4515:

	movq	256(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	276(%rbx), %eax
	jmp	.L4460
	.p2align 4,,10
	.p2align 3
.L4514:

	movq	296(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	316(%rbx), %eax
	jmp	.L4459
	.p2align 4,,10
	.p2align 3
.L4513:

	movq	320(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	340(%rbx), %eax
	jmp	.L4458
	.p2align 4,,10
	.p2align 3
.L4476:

	movdqa	.LC161(%rip), %xmm0
	jmp	.L4464
	.p2align 4,,10
	.p2align 3
.L4477:

	movdqa	.LC162(%rip), %xmm0
	jmp	.L4464
.L4478:

	xorl	%edx, %edx
	jmp	.L4470
.L4475:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L4463
.L4517:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1759:

	.size	EC_group_p256_init, .-EC_group_p256_init
# WAS .section	.text.bn_mod_add_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_add_words
	.hidden	bn_mod_add_words
	.type	bn_mod_add_words, @function
.Lbn_mod_add_words_local_target:
bn_mod_add_words:
.LFB926:

	.cfi_startproc
	endbr64
	testq	%r9, %r9
	je	.L4524
	xorl	%eax, %eax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdx, %r11
	movq	%rsi, %r10
	movq	%rcx, %rdx
	movq	%rax, %rbx
	movq	%r9, %rcx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r10,%rbx,8),%rsi	
	adcq	(%r11,%rbx,8),%rsi	
	movq	%rsi,(%rdi,%rbx,8)	
	lea	1(%rbx),%rbx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	movq	%r9, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%r10	
	sbbq	(%rdx,%rax,8),%r10	
	movq	%r10,(%r8,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	andl	$1, %r10d
	andl	$1, %esi
	xorl	%eax, %eax
	subq	%r10, %rsi
	movq	%rsi, %r10
	notq	%r10
	.p2align 4,,10
	.p2align 3
.L4520:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r8,%rax,8), %rcx
	andq	%rsi, %rdx
	andq	%r10, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r9
	jne	.L4520
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4524:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE926:

	.size	bn_mod_add_words, .-bn_mod_add_words
# WAS .section	.rodata.bn_div_consttime.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC172:

	.string	"/aws-lc/crypto/fipsmodule/bn/div.c"
# WAS .section	.text.bn_div_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_div_consttime
	.type	bn_div_consttime, @function
.Lbn_div_consttime_local_target:
bn_div_consttime:
.LFB927:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	%r8d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdi, 40(%rsp)
	movq	%rdx, %rdi
	movq	%rsi, 48(%rsp)
	movq	%r9, 24(%rsp)
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L4530
	movq	%rbx, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	je	.L4584
.L4530:

	movl	$461, %r8d
	leaq	.LC172(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L4529:

	movl	$0, 36(%rsp)
.L4527:

	movl	36(%rsp), %eax
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L4584:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, 36(%rsp)
	testl	%eax, %eax
	jne	.L4585
	movq	24(%rsp), %r14
	movq	%r14, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	40(%rsp), %rsi
	testq	%rsi, %rsi
	movq	%rsi, 8(%rsp)
	sete	%r15b
	cmpq	%rsi, %rbx
	sete	%al
	orl	%eax, %r15d
	cmpq	%rsi, %rbp
	sete	%al
	orb	%al, %r15b
	je	.L4533
	movq	%r14, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 8(%rsp)
	testq	%rax, %rax
	sete	%r15b
.L4533:

	movq	48(%rsp), %rsi
	cmpq	%rsi, %rbx
	movq	%rsi, %r12
	sete	%r14b
	testq	%rsi, %rsi
	sete	%al
	orl	%eax, %r14d
	cmpq	%rsi, %rbp
	sete	%al
	orb	%al, %r14b
	je	.L4534
	movq	24(%rsp), %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	movq	%rax, %r12
	sete	%r14b
.L4534:

	movq	24(%rsp), %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 16(%rsp)
	testq	%rax, %rax
	je	.L4537
	orb	%r15b, %r14b
	jne	.L4537
	movq	8(%rsp), %r14
	movslq	8(%rbp), %rsi
	movq	%r14, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L4586
.L4537:

	movq	24(%rsp), %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4527
.L4585:

	movl	$465, %r8d
	leaq	.LC172(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4529
.L4586:

	movslq	8(%rbx), %rsi
	movq	%r12, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4537
	movslq	8(%rbx), %rsi
	movq	16(%rsp), %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4537
	movslq	8(%rbp), %rax
	movq	%rax, %rcx
	salq	$3, %rax
	movq	%rax, %rdx
	je	.L4539
	movq	(%r14), %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	8(%rbp), %ecx
.L4539:

	movq	8(%rsp), %rax
	movl	%ecx, 8(%rax)
	movl	$0, 16(%rax)
	movslq	8(%rbx), %rax
	movq	%rax, %rcx
	salq	$3, %rax
	movq	%rax, %rdx
	je	.L4540
	movq	(%r12), %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	8(%rbx), %ecx
.L4540:

	movl	%ecx, 8(%r12)
	movl	$0, 16(%r12)
	testl	%r13d, %r13d
	jne	.L4541
	movl	8(%rbp), %eax
.L4542:

	movl	%eax, %edx
	subl	$1, %edx
	js	.L4544
	movslq	%edx, %r15
	cltq
	movl	%edx, %edx
	xorl	%r14d, %r14d
	subq	%rdx, %rax
	salq	$3, %r15
	leaq	-16(,%rax,8), %rax
.L4545:

	movq	%rax, 56(%rsp)
	movl	$63, %r13d
	.p2align 4,,10
	.p2align 3
.L4550:

	movslq	8(%rbx), %rdi
	movq	(%r12), %rax
	testq	%rdi, %rdi
	je	.L4546
	movq	%rdi, %rcx
	movq	%r14, %rdx
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rax,%rdx,8),%rsi	
	adcq	(%rax,%rdx,8),%rsi	
	movq	%rsi,(%rax,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	movq	0(%rbp), %rax
	movq	%rsi, %rdi
	movslq	8(%rbx), %r10
	movl	%r13d, %ecx
	movq	(%r12), %rsi
	andl	$1, %edi
	movq	(%rax,%r15), %rax
	shrq	%cl, %rax
	andl	$1, %eax
	orq	%rax, (%rsi)
	testq	%r10, %r10
	je	.L4547
	movq	16(%rsp), %rax
	movq	(%rbx), %r9
	movq	%r10, %rcx
	movq	(%rax), %r8
	movq	%r14, %rax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rsi,%rax,8),%rdx	
	sbbq	(%r9,%rax,8),%rdx	
	movq	%rdx,(%r8,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	andl	$1, %edx
	xorl	%eax, %eax
	subq	%rdx, %rdi
	movq	%rdi, %r11
	notq	%r11
	movq	%r11, %r9
	.p2align 4,,10
	.p2align 3
.L4548:

	movq	(%rsi,%rax,8), %rdx
	movq	(%r8,%rax,8), %rcx
	andq	%rdi, %rdx
	andq	%r9, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rsi,%rax,8)
	addq	$1, %rax
	cmpq	%r10, %rax
	jne	.L4548
.L4549:

	movq	8(%rsp), %rdi
	andl	$1, %r11d
	movl	%r13d, %ecx
	salq	%cl, %r11
	movq	(%rdi), %rax
	addq	%r15, %rax
	orq	%r11, (%rax)
	subl	$1, %r13d
	jnb	.L4550
	movq	56(%rsp), %rax
	subq	$8, %r15
	cmpq	%rax, %r15
	jne	.L4545
.L4544:

	cmpq	$0, 40(%rsp)
	je	.L4553
	movq	8(%rsp), %rsi
	movq	40(%rsp), %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4537
.L4553:

	cmpq	$0, 48(%rsp)
	je	.L4587
	movq	48(%rsp), %rdi
	movq	%r12, %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%al
	movzbl	%al, %eax
	movl	%eax, 36(%rsp)
	jmp	.L4537
	.p2align 4,,10
	.p2align 3
.L4546:

	movq	0(%rbp), %rdx
	movl	%r13d, %ecx
	movq	(%rdx,%r15), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	orq	%rdx, (%rax)
.L4547:

	notq	%rdi
	movq	%rdi, %r11
	jmp	.L4549
.L4541:

	movslq	8(%rbp), %rax
	subl	$1, %r13d
	shrl	$6, %r13d
	cmpl	%eax, %r13d
	cmovg	%eax, %r13d
	movslq	%r13d, %rcx
	movq	%rcx, %rdx
	salq	$3, %rdx
	je	.L4583
	subq	%rcx, %rax
	movq	0(%rbp), %rcx
	movq	(%r12), %rdi
	leaq	(%rcx,%rax,8), %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movl	8(%rbp), %eax
.L4583:

	subl	%r13d, %eax
	jmp	.L4542
.L4587:

	movl	$1, 36(%rsp)
	jmp	.L4537
	.cfi_endproc
.LFE927:

	.size	bn_div_consttime, .-bn_div_consttime
# WAS .section	.text.bn_mod_add_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_add_consttime
	.hidden	bn_mod_add_consttime
	.type	bn_mod_add_consttime, @function
.Lbn_mod_add_consttime_local_target:
bn_mod_add_consttime:
.LFB932:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rdi, 8(%rsp)
	movq	%r8, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movslq	8(%r15), %r13
	movslq	8(%rbx), %rax
	movq	%r13, %r14
	cmpq	%r13, %rax
	jb	.L4617
.L4589:

	movslq	8(%rbp), %rax
	cmpq	%r13, %rax
	jb	.L4618
.L4594:

	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4601
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4601
	movq	(%rsp), %rdx
	movl	$0, 16(%rdx)
	movl	%r14d, 8(%rdx)
	testq	%rbx, %rbx
	je	.L4601
	testq	%rbp, %rbp
	je	.L4601
	movslq	8(%r15), %rsi
	movq	8(%rsp), %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	jne	.L4619
.L4601:

	xorl	%ebx, %ebx
.L4600:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4618:

	.cfi_restore_state
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4616
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	je	.L4616
	movl	$0, 16(%rdx)
	movq	%rbp, %rsi
	movq	%rdx, %rdi
	movl	%r14d, 8(%rdx)
	movq	%rdx, (%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbp
	je	.L4620
	movq	%r13, %rsi
	movq	%rdx, %rdi
	movq	%rdx, (%rsp)
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	movslq	8(%r15), %r13
	movq	%r13, %r14
	testl	%eax, %eax
	je	.L4598
	movq	(%rsp), %rbp
	jmp	.L4594
	.p2align 4,,10
	.p2align 3
.L4617:

	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4615
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	je	.L4615
	movl	$0, 16(%rdx)
	movq	%rbx, %rsi
	movq	%rdx, %rdi
	movl	%r13d, 8(%rdx)
	movq	%rdx, (%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbx
	je	.L4621
	movq	%r13, %rsi
	movq	%rdx, %rdi
	movq	%rdx, (%rsp)
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	movslq	8(%r15), %r13
	movq	%r13, %r14
	testl	%eax, %eax
	je	.L4593
	movq	(%rsp), %rbx
	jmp	.L4589
	.p2align 4,,10
	.p2align 3
.L4619:

	movq	(%rbx), %rsi
	movq	8(%rsp), %rbx
	movq	0(%rbp), %rax
	movq	(%rdx), %r8
	movq	(%rbx), %rdi
	movq	(%r15), %rcx
	movslq	8(%r15), %r9
	movq	%rax, %rdx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movl	8(%r15), %eax
	movl	$0, 16(%rbx)
	movl	%eax, 8(%rbx)
	movl	$1, %ebx
	jmp	.L4600
	.p2align 4,,10
	.p2align 3
.L4615:

	movslq	8(%r15), %r13
	xorl	%ebx, %ebx
	movq	%r13, %r14
	jmp	.L4589
	.p2align 4,,10
	.p2align 3
.L4616:

	movslq	8(%r15), %r13
	xorl	%ebp, %ebp
	movq	%r13, %r14
	jmp	.L4594
	.p2align 4,,10
	.p2align 3
.L4620:

	movslq	8(%r15), %r13
	movq	%r13, %r14
	jmp	.L4594
	.p2align 4,,10
	.p2align 3
.L4621:

	movslq	8(%r15), %r13
	movq	%r13, %r14
	jmp	.L4589
	.p2align 4,,10
	.p2align 3
.L4598:

	xorl	%ebp, %ebp
	jmp	.L4594
	.p2align 4,,10
	.p2align 3
.L4593:

	xorl	%ebx, %ebx
	jmp	.L4589
	.cfi_endproc
.LFE932:

	.size	bn_mod_add_consttime, .-bn_mod_add_consttime
# WAS .section	.text.BN_mod_add_quick,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_add_quick
	.type	BN_mod_add_quick, @function
.LBN_mod_add_quick_local_target:
BN_mod_add_quick:
.LFB931:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L4623
	movq	%rax, %r8
	movq	%r14, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%r15d, %r15d
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	setne	%r15b
.L4623:

	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE931:

	.size	BN_mod_add_quick, .-BN_mod_add_quick
# WAS .section	.text.bn_mod_sub_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_sub_consttime
	.hidden	bn_mod_sub_consttime
	.type	bn_mod_sub_consttime, @function
.Lbn_mod_sub_consttime_local_target:
bn_mod_sub_consttime:
.LFB934:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rdi, 8(%rsp)
	movq	%r8, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movslq	8(%r15), %r13
	movslq	8(%rbx), %rax
	movq	%r13, %r14
	cmpq	%r13, %rax
	jb	.L4657
.L4629:

	movslq	8(%rbp), %rax
	cmpq	%r13, %rax
	jb	.L4658
.L4634:

	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4641
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4641
	movq	(%rsp), %rdx
	movl	$0, 16(%rdx)
	movl	%r14d, 8(%rdx)
	testq	%rbx, %rbx
	je	.L4641
	testq	%rbp, %rbp
	je	.L4641
	movslq	8(%r15), %rsi
	movq	8(%rsp), %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	jne	.L4659
.L4641:

	xorl	%ebx, %ebx
.L4640:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4658:

	.cfi_restore_state
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4656
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	je	.L4656
	movl	$0, 16(%rdx)
	movq	%rbp, %rsi
	movq	%rdx, %rdi
	movl	%r14d, 8(%rdx)
	movq	%rdx, (%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbp
	je	.L4660
	movq	%r13, %rsi
	movq	%rdx, %rdi
	movq	%rdx, (%rsp)
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	movslq	8(%r15), %r13
	movq	%r13, %r14
	testl	%eax, %eax
	je	.L4638
	movq	(%rsp), %rbp
	jmp	.L4634
	.p2align 4,,10
	.p2align 3
.L4657:

	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4655
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	je	.L4655
	movl	$0, 16(%rdx)
	movq	%rbx, %rsi
	movq	%rdx, %rdi
	movl	%r13d, 8(%rdx)
	movq	%rdx, (%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbx
	je	.L4661
	movq	%r13, %rsi
	movq	%rdx, %rdi
	movq	%rdx, (%rsp)
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	movslq	8(%r15), %r13
	movq	%r13, %r14
	testl	%eax, %eax
	je	.L4633
	movq	(%rsp), %rbx
	jmp	.L4629
	.p2align 4,,10
	.p2align 3
.L4659:

	movq	(%rbx), %rsi
	movq	8(%rsp), %rbx
	movq	0(%rbp), %rax
	movq	(%rdx), %r8
	movq	(%rbx), %rdi
	movq	(%r15), %rcx
	movslq	8(%r15), %r9
	movq	%rax, %rdx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	8(%r15), %eax
	movl	$0, 16(%rbx)
	movl	%eax, 8(%rbx)
	movl	$1, %ebx
	jmp	.L4640
	.p2align 4,,10
	.p2align 3
.L4655:

	movslq	8(%r15), %r13
	xorl	%ebx, %ebx
	movq	%r13, %r14
	jmp	.L4629
	.p2align 4,,10
	.p2align 3
.L4656:

	movslq	8(%r15), %r13
	xorl	%ebp, %ebp
	movq	%r13, %r14
	jmp	.L4634
	.p2align 4,,10
	.p2align 3
.L4660:

	movslq	8(%r15), %r13
	movq	%r13, %r14
	jmp	.L4634
	.p2align 4,,10
	.p2align 3
.L4661:

	movslq	8(%r15), %r13
	movq	%r13, %r14
	jmp	.L4629
	.p2align 4,,10
	.p2align 3
.L4638:

	xorl	%ebp, %ebp
	jmp	.L4634
	.p2align 4,,10
	.p2align 3
.L4633:

	xorl	%ebx, %ebx
	jmp	.L4629
	.cfi_endproc
.LFE934:

	.size	bn_mod_sub_consttime, .-bn_mod_sub_consttime
# WAS .section	.text.BN_mod_sub_quick,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_sub_quick
	.type	BN_mod_sub_quick, @function
.LBN_mod_sub_quick_local_target:
BN_mod_sub_quick:
.LFB935:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L4663
	movq	%rax, %r8
	movq	%r14, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%r15d, %r15d
# WAS call	bn_mod_sub_consttime
	call	.Lbn_mod_sub_consttime_local_target
	testl	%eax, %eax
	setne	%r15b
.L4663:

	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE935:

	.size	BN_mod_sub_quick, .-BN_mod_sub_quick
# WAS .section	.text.bn_mod_lshift_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_lshift_consttime
	.hidden	bn_mod_lshift_consttime
	.type	bn_mod_lshift_consttime, @function
.Lbn_mod_lshift_consttime_local_target:
bn_mod_lshift_consttime:
.LFB939:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4671
	movslq	8(%rbx), %rsi
	movq	%rbp, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	jne	.L4685
.L4671:

	xorl	%ebx, %ebx
.L4668:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4685:

	.cfi_restore_state
	movq	%r14, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movslq	8(%rbx), %rax
	movq	%r14, %rdi
	movq	%rax, 8(%rsp)
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L4674
	movslq	%r15d, %rsi
	movq	%rax, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4674
	movl	$0, 16(%r13)
	movl	%r15d, 8(%r13)
	testl	%r12d, %r12d
	jle	.L4675
	xorl	%r15d, %r15d
	.p2align 4,,10
	.p2align 3
.L4676:

	movq	0(%rbp), %rdi
	movq	(%rbx), %rcx
	addl	$1, %r15d
	movslq	8(%rbx), %r9
	movq	0(%r13), %r8
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	cmpl	%r15d, %r12d
	jne	.L4676
.L4675:

	movl	$0, 16(%rbp)
	movl	$1, %ebx
.L4673:

	movq	%r14, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4668
	.p2align 4,,10
	.p2align 3
.L4674:

	xorl	%ebx, %ebx
	jmp	.L4673
	.cfi_endproc
.LFE939:

	.size	bn_mod_lshift_consttime, .-bn_mod_lshift_consttime
# WAS .section	.text.BN_mod_lshift_quick,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_lshift_quick
	.type	BN_mod_lshift_quick, @function
.LBN_mod_lshift_quick_local_target:
BN_mod_lshift_quick:
.LFB940:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	%edx, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L4691
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4691
	movslq	8(%rbx), %rsi
	movq	%r12, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	jne	.L4704
.L4691:

	xorl	%ebx, %ebx
.L4688:

	movq	%rbp, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4704:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movslq	8(%rbx), %rax
	movq	%rbp, %rdi
	movq	%rax, 8(%rsp)
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L4703
	movslq	%r15d, %rsi
	movq	%rax, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4703
	movl	$0, 16(%r14)
	movl	%r15d, 8(%r14)
	testl	%r13d, %r13d
	jle	.L4693
	xorl	%r15d, %r15d
	.p2align 4,,10
	.p2align 3
.L4694:

	movq	(%r12), %rdi
	movq	(%rbx), %rcx
	addl	$1, %r15d
	movslq	8(%rbx), %r9
	movq	(%r14), %r8
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	cmpl	%r15d, %r13d
	jne	.L4694
.L4693:

	movl	$0, 16(%r12)
	movq	%rbp, %rdi
	movl	$1, %ebx
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4688
	.p2align 4,,10
	.p2align 3
.L4703:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4691
	.cfi_endproc
.LFE940:

	.size	BN_mod_lshift_quick, .-BN_mod_lshift_quick
# WAS .section	.text.bn_mod_lshift1_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_lshift1_consttime
	.hidden	bn_mod_lshift1_consttime
	.type	bn_mod_lshift1_consttime, @function
.Lbn_mod_lshift1_consttime_local_target:
bn_mod_lshift1_consttime:
.LFB942:

	.cfi_startproc
	endbr64
	movq	%rcx, %r8
	movq	%rdx, %rcx
	movq	%rsi, %rdx
# WAS jmp	bn_mod_add_consttime
	jmp	.Lbn_mod_add_consttime_local_target
	.cfi_endproc
.LFE942:

	.size	bn_mod_lshift1_consttime, .-bn_mod_lshift1_consttime
# WAS .section	.text.BN_mod_lshift1_quick,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_lshift1_quick
	.type	BN_mod_lshift1_quick, @function
.LBN_mod_lshift1_quick_local_target:
BN_mod_lshift1_quick:
.LFB943:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	xorl	%r14d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L4707
	movq	%rax, %r8
	movq	%r13, %rcx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
	xorl	%r14d, %r14d
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	setne	%r14b
.L4707:

	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	popq	%rbx
	.cfi_def_cfa_offset 40
	movl	%r14d, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE943:

	.size	BN_mod_lshift1_quick, .-BN_mod_lshift1_quick
	.globl	__umodti3
# WAS .section	.text.BN_mod_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_word
	.type	BN_mod_word, @function
.LBN_mod_word_local_target:
BN_mod_word:
.LFB945:

	.cfi_startproc
	endbr64
	movq	$-1, %rax
	testq	%rsi, %rsi
	je	.L4721
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	8(%rdi), %ebp
	subl	$1, %ebp
	js	.L4717
	movq	(%rdi), %rbx
	movq	%rsi, %r14
	xorl	%r15d, %r15d
	movslq	%ebp, %rbp
	xorl	%edx, %edx
	.p2align 4,,10
	.p2align 3
.L4715:

	movq	(%rbx,%rbp,8), %rax
	movq	%rdx, %r13
	xorl	%r12d, %r12d
	xorl	%edx, %edx
	orq	%r13, %rdx
	movq	%r15, %rcx
	subq	$1, %rbp
	orq	%r12, %rax
	movq	%rdx, %rsi
	movq	%r14, %rdx
	movq	%rax, %rdi
# WAS call	__umodti3@PLT
	call	.Lbcm_redirector___umodti3
	movq	%rax, %rdx
	testl	%ebp, %ebp
	jns	.L4715
.L4712:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4721:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	ret
	.p2align 4,,10
	.p2align 3
.L4717:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	xorl	%eax, %eax
	jmp	.L4712
	.cfi_endproc
.LFE945:

	.size	BN_mod_word, .-BN_mod_word
# WAS .section	.text.BN_mod_pow2,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_pow2
	.type	BN_mod_pow2, @function
.LBN_mod_pow2_local_target:
BN_mod_pow2:
.LFB946:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	testq	%rdx, %rdx
	je	.L4725
	movslq	8(%rsi), %rax
	movq	%rsi, %r13
	testl	%eax, %eax
	je	.L4725
	leaq	-1(%rdx), %r12
	movq	%rdx, %rbx
	shrq	$6, %r12
	addq	$1, %r12
	cmpq	%r12, %rax
	jb	.L4748
	movq	%r12, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L4749
.L4724:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4725:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
.L4727:

	movl	$1, %eax
	jmp	.L4724
	.p2align 4,,10
	.p2align 3
.L4748:

# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	testq	%rax, %rax
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	setne	%al
	popq	%r14
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L4749:

	.cfi_restore_state
	leaq	0(,%r12,8), %r14
	movq	0(%rbp), %rdi
	movq	0(%r13), %rsi
	movq	%r14, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	andl	$63, %ebx
	je	.L4730
	movq	0(%rbp), %rdx
	movq	$-1, %rax
	movl	%ebx, %ecx
	salq	%cl, %rax
	notq	%rax
	andq	%rax, -8(%rdx,%r14)
.L4730:

	movl	16(%r13), %eax
	movl	%eax, 16(%rbp)
	movl	%r12d, %eax
	testl	%r12d, %r12d
	jle	.L4731
	movq	0(%rbp), %rdx
	movslq	%r12d, %r12
	leaq	-8(%rdx,%r12,8), %rdx
	jmp	.L4732
	.p2align 4,,10
	.p2align 3
.L4734:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L4733
.L4732:

	cmpq	$0, (%rdx)
	je	.L4734
	movl	%eax, 8(%rbp)
	jmp	.L4727
	.p2align 4,,10
	.p2align 3
.L4733:

	movl	$0, 8(%rbp)
.L4736:

	movl	$0, 16(%rbp)
	jmp	.L4727
.L4731:

	movl	%r12d, 8(%rbp)
	je	.L4736
	jmp	.L4727
	.cfi_endproc
.LFE946:

	.size	BN_mod_pow2, .-BN_mod_pow2
# WAS .section	.text.BN_nnmod_pow2,"ax",@progbits
.text
	.p2align 4
	.globl	BN_nnmod_pow2
	.type	BN_nnmod_pow2, @function
.LBN_nnmod_pow2_local_target:
BN_nnmod_pow2:
.LFB947:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_mod_pow2@PLT
	call	.LBN_mod_pow2_local_target
	testl	%eax, %eax
	jne	.L4751
.L4753:

	xorl	%eax, %eax
.L4750:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4751:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %r12d
	movl	$1, %eax
	testl	%r12d, %r12d
	jne	.L4750
	movl	16(%rbx), %edx
	testl	%edx, %edx
	je	.L4750
	leaq	-1(%rbp), %r13
	movq	%rbx, %rdi
	shrq	$6, %r13
	addq	$1, %r13
	movq	%r13, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4753
	movslq	8(%rbx), %rax
	movq	%r13, %rdx
	subq	%rax, %rdx
	salq	$3, %rdx
	je	.L4754
	movq	(%rbx), %rcx
	xorl	%esi, %esi
	leaq	(%rcx,%rax,8), %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L4754:

	movl	$0, 16(%rbx)
	movl	%r13d, %edx
	andl	$63, %ebp
	testl	%r13d, %r13d
	jle	.L4755
	movq	(%rbx), %rsi
	cmpl	$1, %r13d
	je	.L4756
	movl	%r13d, %ecx
	movq	%rsi, %rax
	pcmpeqd	%xmm1, %xmm1
	shrl	%ecx
	salq	$4, %rcx
	addq	%rsi, %rcx
	.p2align 4,,10
	.p2align 3
.L4757:

	movdqu	(%rax), %xmm0
	addq	$16, %rax
	pxor	%xmm1, %xmm0
	movups	%xmm0, -16(%rax)
	cmpq	%rcx, %rax
	jne	.L4757
	testb	$1, %r13b
	je	.L4758
	movl	%r13d, %r12d
	andl	$-2, %r12d
.L4756:

	movslq	%r12d, %rax
	notq	(%rsi,%rax,8)
.L4758:

	movslq	%r13d, %rdi
	testq	%rbp, %rbp
	jne	.L4760
.L4761:

	leaq	-8(%rsi,%rdi,8), %rax
	jmp	.L4764
	.p2align 4,,10
	.p2align 3
.L4766:

	subq	$8, %rax
	subl	$1, %edx
	je	.L4765
.L4764:

	cmpq	$0, (%rax)
	je	.L4766
	movl	%edx, 8(%rbx)
.L4763:

# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%rax, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	BN_add@PLT
	jmp	.LBN_add_local_target
	.p2align 4,,10
	.p2align 3
.L4755:

	.cfi_restore_state
	testq	%rbp, %rbp
	je	.L4759
	movq	(%rbx), %rsi
	.p2align 4,,10
	.p2align 3
.L4760:

	movq	$-1, %rax
	movl	%ebp, %ecx
	movslq	%r13d, %rdi
	salq	%cl, %rax
	notq	%rax
	andq	%rax, -8(%rsi,%rdi,8)
	testl	%r13d, %r13d
	jg	.L4761
.L4759:

	movl	%r13d, 8(%rbx)
	testl	%r13d, %r13d
	jne	.L4763
	.p2align 4,,10
	.p2align 3
.L4762:

	movl	$0, 16(%rbx)
	jmp	.L4763
	.p2align 4,,10
	.p2align 3
.L4765:

	movl	$0, 8(%rbx)
	jmp	.L4762
	.cfi_endproc
.LFE947:

	.size	BN_nnmod_pow2, .-BN_nnmod_pow2
# WAS .section	.text.bn_mod_u16_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_u16_consttime
	.type	bn_mod_u16_consttime, @function
.Lbn_mod_u16_consttime_local_target:
bn_mod_u16_consttime:
.LFB950:

	.cfi_startproc
	endbr64
	cmpw	$1, %si
	jbe	.L4796
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movzwl	%si, %ebx
	movzwl	%bp, %ebp
	leal	-1(%rbx), %edi
	movslq	%edi, %rdi
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
	movl	8(%r12), %esi
	xorl	%edx, %edx
	leal	32(%rax), %ecx
	movl	%eax, %r9d
	movl	$1, %eax
	salq	%cl, %rax
	leaq	-1(%rbp,%rax), %rax
	divq	%rbp
	subl	$1, %esi
	js	.L4790
	movq	(%r12), %r8
	movl	%eax, %edi
	leal	-1(%r9), %ecx
	movslq	%esi, %rsi
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L4791:

	movq	(%r8,%rsi,8), %r9
	sall	$16, %eax
	movq	%r9, %r11
	movq	%r9, %rdx
	shrq	$48, %r11
	shrq	$32, %rdx
	orl	%r11d, %eax
	movl	%eax, %r11d
	movl	%eax, %r10d
	imulq	%rdi, %r11
	shrq	$32, %r11
	subl	%r11d, %r10d
	shrl	%r10d
	addl	%r11d, %r10d
	shrl	%cl, %r10d
	imull	%ebx, %r10d
	subl	%r10d, %eax
	sall	$16, %eax
	movl	%eax, %r10d
	movzwl	%dx, %eax
	orl	%r10d, %eax
	movl	%eax, %r10d
	movl	%eax, %edx
	imulq	%rdi, %r10
	shrq	$32, %r10
	subl	%r10d, %edx
	shrl	%edx
	addl	%r10d, %edx
	shrl	%cl, %edx
	imull	%ebx, %edx
	subl	%edx, %eax
	movl	%r9d, %edx
	shrdl	$16, %eax, %edx
	movl	%edx, %r10d
	movl	%edx, %eax
	imulq	%rdi, %r10
	shrq	$32, %r10
	subl	%r10d, %eax
	shrl	%eax
	addl	%r10d, %eax
	shrl	%cl, %eax
	imull	%ebx, %eax
	subl	%eax, %edx
	movzwl	%r9w, %eax
	sall	$16, %edx
	orl	%edx, %eax
	subq	$1, %rsi
	movl	%eax, %r9d
	movl	%eax, %edx
	imulq	%rdi, %r9
	shrq	$32, %r9
	subl	%r9d, %edx
	shrl	%edx
	addl	%r9d, %edx
	shrl	%cl, %edx
	imull	%ebx, %edx
	subl	%edx, %eax
	testl	%esi, %esi
	jns	.L4791
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4790:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4796:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE950:

	.size	bn_mod_u16_consttime, .-bn_mod_u16_consttime
# WAS .section	.text.bn_is_relatively_prime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_is_relatively_prime
	.type	bn_is_relatively_prime, @function
.Lbn_is_relatively_prime_local_target:
bn_is_relatively_prime:
.LFB985:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	movq	%rcx, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4800
	leaq	4(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r14, %rcx
	movq	%r13, %rdx
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	bn_gcd_consttime
	call	.Lbn_gcd_consttime_local_target
	testl	%eax, %eax
	je	.L4800
	movl	8(%rbp), %edx
	testl	%edx, %edx
	jne	.L4801
.L4807:

	movl	%edx, (%r12)
	movl	$1, %ebp
	jmp	.L4799
	.p2align 4,,10
	.p2align 3
.L4800:

	xorl	%ebp, %ebp
.L4799:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4818
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4801:

	.cfi_restore_state
	movq	0(%rbp), %rdi
	movl	4(%rsp), %eax
	movq	(%rdi), %rcx
	xorq	$1, %rcx
	orq	%rax, %rcx
	cmpl	$1, %edx
	jle	.L4802
	leal	-1(%rdx), %eax
	cmpl	$2, %edx
	je	.L4809
	movl	%eax, %esi
	movq	%rdi, %rdx
	pxor	%xmm0, %xmm0
	shrl	%esi
	salq	$4, %rsi
	addq	%rdi, %rsi
	.p2align 4,,10
	.p2align 3
.L4804:

	movdqu	8(%rdx), %xmm2
	addq	$16, %rdx
	por	%xmm2, %xmm0
	cmpq	%rdx, %rsi
	jne	.L4804
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	orq	%rdx, %rcx
	testb	$1, %al
	je	.L4802
	orl	$1, %eax
.L4803:

	cltq
	orq	(%rdi,%rax,8), %rcx
.L4802:

	xorl	%edx, %edx
	testq	%rcx, %rcx
	sete	%dl
	jmp	.L4807
.L4809:

	movl	$1, %eax
	jmp	.L4803
.L4818:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE985:

	.size	bn_is_relatively_prime, .-bn_is_relatively_prime
# WAS .section	.text.bn_mod_inverse_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_inverse_consttime
	.type	bn_mod_inverse_consttime, @function
.Lbn_mod_inverse_consttime_local_target:
bn_mod_inverse_consttime:
.LFB987:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movq	%rdx, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movl	$0, (%rsi)
	movq	%rsi, (%rsp)
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L4822
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L4904
.L4822:

	movl	$174, %r8d
	leaq	.LC126(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L4821:

	xorl	%r15d, %r15d
.L4819:

	addq	$152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4904:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L4905
	movq	%rbx, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	jne	.L4826
	movq	%r13, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L4906
.L4826:

	movl	8(%rbx), %eax
	movq	%r12, %rdi
	movslq	8(%r13), %rbp
	movl	%eax, 64(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 40(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 48(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r12, %rdi
	movq	%rax, 56(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	8(%rsp), %rdx
	testq	%rdx, %rdx
	je	.L4834
	cmpq	$0, 16(%rsp)
	je	.L4834
	cmpq	$0, 24(%rsp)
	je	.L4834
	cmpq	$0, 32(%rsp)
	je	.L4834
	cmpq	$0, 40(%rsp)
	je	.L4834
	cmpq	$0, 48(%rsp)
	je	.L4834
	cmpq	$0, 56(%rsp)
	je	.L4834
	testq	%rax, %rax
	movq	%rax, 72(%rsp)
	je	.L4834
	movq	%rbx, %rsi
	movq	%rdx, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4834
	movq	16(%rsp), %rdi
	movq	%r13, %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4834
	movq	24(%rsp), %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L4834
	movq	48(%rsp), %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L4834
	movq	8(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	16(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	24(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	40(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movslq	64(%rsp), %rax
	movq	32(%rsp), %rdi
	cmpq	%rbp, %rax
	movq	%rax, %rdx
	cmova	%rbp, %rdx
	movq	%rdx, %rsi
	movq	%rdx, 64(%rsp)
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	64(%rsp), %rsi
	movq	48(%rsp), %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	56(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	72(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L4834
	movq	64(%rsp), %rax
	movq	%rbp, %rdx
	salq	$6, %rdx
	salq	$6, %rax
	addq	%rdx, %rax
	movq	%rax, 112(%rsp)
	jc	.L4832
	xorl	%eax, %eax
	movq	%r14, 128(%rsp)
	movq	72(%rsp), %r14
	movq	%rax, 88(%rsp)
	movl	%r15d, 124(%rsp)
	movq	%rbx, 72(%rsp)
	movq	%r12, 136(%rsp)
	movq	56(%rsp), %r12
.L4833:

	movq	112(%rsp), %rbx
	cmpq	%rbx, 88(%rsp)
	je	.L4907
	movq	8(%rsp), %rax
	movq	16(%rsp), %rbx
	movq	(%rax), %rdx
	movq	(%rbx), %rsi
	movq	(%rdx), %rax
	movq	(%rsi), %r9
	andl	$1, %eax
	andl	$1, %r9d
	negq	%r9
	negq	%rax
	andq	%rax, %r9
	testq	%rbp, %rbp
	je	.L4858
	movq	(%r12), %rdi
	movq	%rbp, %rcx
# WAS call	bn_sub_words.part.0
	call	.Lbn_sub_words.part.0_local_target
	movq	(%rbx), %rsi
.L4835:

	movq	%rax, %r15
	subq	$1, %rax
	movq	(%r12), %r11
	andq	%r9, %rax
	negq	%r15
	movq	%rax, %r10
	xorl	%eax, %eax
	movq	%r10, %rdx
	movq	%r10, %rcx
	notq	%rdx
	jmp	.L4836
.L4837:

	movq	(%r11,%rax,8), %rdi
	movq	(%rsi,%rax,8), %r8
	andq	%rcx, %rdi
	andq	%rdx, %r8
	orq	%r8, %rdi
	movq	%rdi, (%rsi,%rax,8)
	addq	$1, %rax
.L4836:

	cmpq	%rbp, %rax
	jb	.L4837
	testq	%rbp, %rbp
	je	.L4838
	movq	8(%rsp), %rax
	movq	%rsi, %rdx
	movq	%r11, %rdi
	movq	%rbp, %rcx
	movq	(%rax), %rsi
# WAS call	bn_sub_words.part.0
	call	.Lbn_sub_words.part.0_local_target
	movq	(%r12), %r11
.L4838:

	movq	8(%rsp), %rax
	andq	%r15, %r9
	movq	%r9, %rdx
	movq	%r9, %rcx
	movq	(%rax), %rsi
	notq	%rdx
	xorl	%eax, %eax
	jmp	.L4839
.L4840:

	movq	(%r11,%rax,8), %rdi
	movq	(%rsi,%rax,8), %r8
	andq	%rcx, %rdi
	andq	%rdx, %r8
	orq	%r8, %rdi
	movq	%rdi, (%rsi,%rax,8)
	addq	$1, %rax
.L4839:

	cmpq	%rbp, %rax
	jb	.L4840
	testq	%rbp, %rbp
	je	.L4859
	movq	40(%rsp), %rax
	movq	%r11, %rdi
	movq	%rbp, %rcx
	movq	(%rax), %rdx
	movq	24(%rsp), %rax
	movq	(%rax), %rsi
# WAS call	bn_add_words.part.0
	call	.Lbn_add_words.part.0_local_target
	movq	0(%r13), %rdx
	movq	(%r12), %rsi
	movq	%rbp, %rcx
	movq	(%r14), %rdi
	movq	%rax, %r15
# WAS call	bn_sub_words.part.0
	call	.Lbn_sub_words.part.0_local_target
	movq	(%r12), %r11
.L4841:

	subq	%rax, %r15
	movq	(%r14), %rcx
	xorl	%eax, %eax
	movq	%r15, %rdx
	movq	%r15, %rsi
	notq	%rdx
	jmp	.L4842
.L4843:

	movq	(%r11,%rax,8), %rdi
	movq	(%rcx,%rax,8), %r8
	andq	%rsi, %rdi
	andq	%rdx, %r8
	orq	%r8, %rdi
	movq	%rdi, (%r11,%rax,8)
	addq	$1, %rax
.L4842:

	cmpq	%rbp, %rax
	jb	.L4843
	movq	24(%rsp), %rax
	movq	%r9, %rdx
	movq	%r9, %rsi
	notq	%rdx
	movq	(%rax), %rbx
	xorl	%eax, %eax
	jmp	.L4844
.L4845:

	movq	(%r11,%rax,8), %rdi
	movq	(%rbx,%rax,8), %r8
	andq	%rsi, %rdi
	andq	%rdx, %r8
	orq	%r8, %rdi
	movq	%rdi, (%rbx,%rax,8)
	addq	$1, %rax
.L4844:

	cmpq	%rbp, %rax
	jb	.L4845
	movq	40(%rsp), %rax
	movq	%r10, %rdx
	movq	%r10, %rsi
	notq	%rdx
	movq	(%rax), %rbx
	xorl	%eax, %eax
	jmp	.L4846
.L4847:

	movq	(%r11,%rax,8), %rdi
	movq	(%rbx,%rax,8), %r8
	andq	%rsi, %rdi
	andq	%rdx, %r8
	orq	%r8, %rdi
	movq	%rdi, (%rbx,%rax,8)
	addq	$1, %rax
.L4846:

	cmpq	%rbp, %rax
	jb	.L4847
	movq	64(%rsp), %rbx
	testq	%rbx, %rbx
	je	.L4848
	movq	48(%rsp), %rax
	movq	%r11, %rdi
	movq	%rbx, %rcx
	movq	(%rax), %rdx
	movq	32(%rsp), %rax
	movq	(%rax), %rsi
# WAS call	bn_add_words.part.0
	call	.Lbn_add_words.part.0_local_target
	movq	72(%rsp), %rax
	movq	(%r14), %rdi
	movq	%rbx, %rcx
	movq	(%r12), %rsi
	movq	(%rax), %rdx
# WAS call	bn_sub_words.part.0
	call	.Lbn_sub_words.part.0_local_target
	movq	(%r12), %r11
	movq	(%r14), %rcx
.L4848:

	movq	%r15, %rax
	movq	%r15, %rdx
	xorl	%esi, %esi
	notq	%rax
	jmp	.L4849
.L4850:

	movq	(%r11,%rsi,8), %rdi
	movq	(%rcx,%rsi,8), %r8
	andq	%rdx, %rdi
	andq	%rax, %r8
	orq	%r8, %rdi
	movq	%rdi, (%r11,%rsi,8)
	addq	$1, %rsi
.L4849:

	cmpq	%rsi, 64(%rsp)
	jne	.L4850
	movq	32(%rsp), %rax
	movq	%r9, %rdx
	movq	%r9, %rdi
	xorl	%ecx, %ecx
	notq	%rdx
	movq	(%rax), %rax
	jmp	.L4851
.L4852:

	movq	(%r11,%rcx,8), %r8
	movq	(%rax,%rcx,8), %r9
	andq	%rdi, %r8
	andq	%rdx, %r9
	orq	%r9, %r8
	movq	%r8, (%rax,%rcx,8)
	addq	$1, %rcx
.L4851:

	cmpq	%rsi, %rcx
	jne	.L4852
	movq	48(%rsp), %rbx
	movq	%r10, %rdx
	movq	%r10, %rcx
	notq	%rdx
	movq	(%rbx), %rdi
	xorl	%ebx, %ebx
	jmp	.L4853
.L4854:

	movq	(%r11,%rbx,8), %r8
	movq	(%rdi,%rbx,8), %r9
	andq	%rcx, %r8
	andq	%rdx, %r9
	orq	%r9, %r8
	movq	%r8, (%rdi,%rbx,8)
	addq	$1, %rbx
.L4853:

	cmpq	%rsi, %rbx
	jne	.L4854
	movq	%rax, 80(%rsp)
	movq	8(%rsp), %rax
	movq	%rbp, %rcx
	movq	(%rax), %rdi
	movq	16(%rsp), %rax
	movq	(%rdi), %rdx
	andl	$1, %edx
	leaq	-1(%rdx), %r15
	movq	(%rax), %rdx
	movq	%r15, %rsi
	movq	(%rdx), %rdx
	andl	$1, %edx
	leaq	-1(%rdx), %rax
	movq	%r11, %rdx
	movq	%rax, 56(%rsp)
# WAS call	maybe_rshift1_words
	call	.Lmaybe_rshift1_words_local_target
	movq	24(%rsp), %rdx
	movq	%r11, %rcx
	movq	%rbp, %r8
	movq	80(%rsp), %rax
	movq	(%rdx), %rdi
	movq	0(%r13), %rdx
	movq	(%rax), %rax
	movq	(%rdi), %rsi
	andl	$1, %eax
	andl	$1, %esi
	negq	%rax
	negq	%rsi
	orq	%rax, %rsi
	andq	%r15, %rsi
	movq	%rsi, 80(%rsp)
# WAS call	maybe_add_words
	call	.Lmaybe_add_words_local_target
	movq	72(%rsp), %r9
	movq	32(%rsp), %r10
	movq	%rbx, %r8
	movq	(%r12), %rcx
	movq	80(%rsp), %rsi
	movq	%rax, 96(%rsp)
	movq	(%r9), %rdx
	movq	(%r10), %rdi
# WAS call	maybe_add_words
	call	.Lmaybe_add_words_local_target
	movq	24(%rsp), %rdi
	movq	(%r12), %rdx
	movq	%rbp, %r8
	movq	96(%rsp), %rsi
	movq	%rax, 104(%rsp)
	movq	(%rdi), %rdi
	movq	%rdx, %rcx
	movq	%rdx, 80(%rsp)
	movq	%r15, %rdx
# WAS call	maybe_rshift1_words_carry
	call	.Lmaybe_rshift1_words_carry_local_target
	movq	32(%rsp), %r10
	movq	%rbx, %r8
	movq	%r15, %rdx
	movq	80(%rsp), %rcx
	movq	104(%rsp), %rsi
	movq	(%r10), %rdi
# WAS call	maybe_rshift1_words_carry
	call	.Lmaybe_rshift1_words_carry_local_target
	movq	16(%rsp), %rax
	movq	56(%rsp), %r11
	movq	%rbp, %rcx
	movq	80(%rsp), %r15
	movq	(%rax), %rdi
	movq	%r11, %rsi
	movq	%r15, %rdx
# WAS call	maybe_rshift1_words
	call	.Lmaybe_rshift1_words_local_target
	movq	40(%rsp), %rax
	movq	%r15, %rcx
	movq	%rbp, %r8
	movq	%r11, 56(%rsp)
	movq	(%rax), %rdi
	movq	48(%rsp), %rax
	movq	(%rax), %rax
	movq	(%rdi), %rdx
	movq	(%rax), %rsi
	andl	$1, %edx
	movq	%rdx, %rax
	movq	0(%r13), %rdx
	andl	$1, %esi
	negq	%rax
	negq	%rsi
	orq	%rax, %rsi
	andq	%r11, %rsi
	movq	%rsi, 80(%rsp)
# WAS call	maybe_add_words
	call	.Lmaybe_add_words_local_target
	movq	72(%rsp), %r9
	movq	(%r12), %rcx
	movq	%rbx, %r8
	movq	%rax, %r15
	movq	48(%rsp), %rax
	movq	80(%rsp), %rsi
	movq	(%r9), %rdx
	movq	(%rax), %rdi
# WAS call	maybe_add_words
	call	.Lmaybe_add_words_local_target
	movq	40(%rsp), %rdi
	movq	%rbp, %r8
	movq	%r15, %rsi
	movq	(%r12), %rcx
	movq	56(%rsp), %rdx
	movq	%rax, 80(%rsp)
	movq	(%rdi), %rdi
	movq	%rcx, 96(%rsp)
# WAS call	maybe_rshift1_words_carry
	call	.Lmaybe_rshift1_words_carry_local_target
	movq	48(%rsp), %rax
	movq	96(%rsp), %rcx
	movq	%rbx, %r8
	movq	56(%rsp), %rdx
	movq	80(%rsp), %rsi
	movq	(%rax), %rdi
# WAS call	maybe_rshift1_words_carry
	call	.Lmaybe_rshift1_words_carry_local_target
	addq	$1, 88(%rsp)
	jmp	.L4833
	.p2align 4,,10
	.p2align 3
.L4905:

	movq	%r13, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L4824
	movq	%r14, %rdi
	movl	$1, %r15d
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L4819
.L4907:

	movq	8(%rsp), %rdi
	movl	124(%rsp), %r15d
	movq	128(%rsp), %r14
	movq	136(%rsp), %r12
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L4908
	movq	24(%rsp), %rsi
	movq	%r14, %rdi
	xorl	%r15d, %r15d
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%r15b
	.p2align 4,,10
	.p2align 3
.L4834:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L4819
	.p2align 4,,10
	.p2align 3
.L4824:

	movq	(%rsp), %rax
	movl	$183, %r8d
	movl	$1, (%rax)
.L4903:

	leaq	.LC126(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4821
	.p2align 4,,10
	.p2align 3
.L4906:

	movq	(%rsp), %rax
	movl	$199, %r8d
	movl	$1, (%rax)
	jmp	.L4903
.L4859:

	xorl	%r15d, %r15d
	xorl	%eax, %eax
	jmp	.L4841
.L4832:

	movl	$248, %r8d
	leaq	.LC126(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4834
.L4858:

	xorl	%eax, %eax
	jmp	.L4835
.L4908:

	movq	(%rsp), %rax
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$3, %edi
	movl	$319, %r8d
	leaq	.LC126(%rip), %rcx
	movl	$1, (%rax)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L4834
	.cfi_endproc
.LFE987:

	.size	bn_mod_inverse_consttime, .-bn_mod_inverse_consttime
# WAS .section	.text.bn_mont_ctx_init,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mont_ctx_init
	.hidden	bn_mont_ctx_init
	.type	bn_mont_ctx_init, @function
.Lbn_mont_ctx_init_local_target:
bn_mont_ctx_init:
.LFB990:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	pxor	%xmm0, %xmm0
	movq	%rdi, %rbx
	movups	%xmm0, (%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	24(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	BN_init@PLT
	jmp	.LBN_init_local_target
	.cfi_endproc
.LFE990:

	.size	bn_mont_ctx_init, .-bn_mont_ctx_init
# WAS .section	.text.bn_mont_ctx_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mont_ctx_cleanup
	.hidden	bn_mont_ctx_cleanup
	.type	bn_mont_ctx_cleanup, @function
.Lbn_mont_ctx_cleanup_local_target:
bn_mont_ctx_cleanup:
.LFB991:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	leaq	24(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	BN_free@PLT
	jmp	.LBN_free_local_target
	.cfi_endproc
.LFE991:

	.size	bn_mont_ctx_cleanup, .-bn_mont_ctx_cleanup
# WAS .section	.text.BN_MONT_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_new
	.type	BN_MONT_CTX_new, @function
.LBN_MONT_CTX_new_local_target:
BN_MONT_CTX_new:
.LFB992:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$64, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L4913
	pxor	%xmm0, %xmm0
	movq	%rax, %rdi
	movups	%xmm0, (%rax)
	movups	%xmm0, 16(%rax)
	movups	%xmm0, 32(%rax)
	movups	%xmm0, 48(%rax)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	24(%rbx), %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
.L4913:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE992:

	.size	BN_MONT_CTX_new, .-BN_MONT_CTX_new
# WAS .section	.text.BN_MONT_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_free
	.type	BN_MONT_CTX_free, @function
.LBN_MONT_CTX_free_local_target:
BN_MONT_CTX_free:
.LFB993:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L4919
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	leaq	24(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L4919:

	ret
	.cfi_endproc
.LFE993:

	.size	BN_MONT_CTX_free, .-BN_MONT_CTX_free
# WAS .section	.text.BN_MONT_CTX_copy,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_copy
	.type	BN_MONT_CTX_copy, @function
.LBN_MONT_CTX_copy_local_target:
BN_MONT_CTX_copy:
.LFB994:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpq	%rsi, %rdi
	je	.L4924
	movq	%rsi, %rbp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4927
	leaq	24(%rbp), %rsi
	leaq	24(%rbx), %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4927
	movdqu	48(%rbp), %xmm0
	movups	%xmm0, 48(%rbx)
.L4924:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4927:

	.cfi_restore_state
	xorl	%ebx, %ebx
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE994:

	.size	BN_MONT_CTX_copy, .-BN_MONT_CTX_copy
# WAS .section	.text.BN_from_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	BN_from_montgomery
	.type	BN_from_montgomery, @function
.LBN_from_montgomery_local_target:
BN_from_montgomery:
.LFB1003:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	movq	%rcx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L4936
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L4936
	movq	%rbp, %rsi
	movq	%r14, %rdx
	movq	%r13, %rdi
# WAS call	BN_from_montgomery_word
	call	.LBN_from_montgomery_word_local_target
	movl	%eax, %ebp
	jmp	.L4935
	.p2align 4,,10
	.p2align 3
.L4936:

	xorl	%ebp, %ebp
.L4935:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	popq	%rbx
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1003:

	.size	BN_from_montgomery, .-BN_from_montgomery
# WAS .section	.text.bn_one_to_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	bn_one_to_montgomery
	.hidden	bn_one_to_montgomery
	.type	bn_one_to_montgomery, @function
.Lbn_one_to_montgomery_local_target:
bn_one_to_montgomery:
.LFB1004:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
	movq	%rdx, %rcx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movslq	32(%rsi), %rsi
	testl	%esi, %esi
	jle	.L4942
	movq	24(%rbx), %rax
	cmpq	$0, -8(%rax,%rsi,8)
	js	.L4962
.L4942:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	BN_from_montgomery@PLT
	jmp	.LBN_from_montgomery_local_target
	.p2align 4,,10
	.p2align 3
.L4962:

	.cfi_restore_state
	movq	%rdi, 8(%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L4941
	movq	24(%rbx), %rcx
	movq	8(%rsp), %rdi
	movl	32(%rbx), %r8d
	movq	(%rcx), %rax
	movq	(%rdi), %rsi
	negq	%rax
	movq	%rax, (%rsi)
	cmpl	$1, %r8d
	jle	.L4944
	leal	-2(%r8), %eax
	cmpl	$2, %eax
	jbe	.L4945
	movq	%rsi, %rax
	subq	%rcx, %rax
	cmpq	$8, %rax
	jne	.L4963
.L4945:

	movl	%r8d, %r9d
	movl	$1, %eax
	.p2align 4,,10
	.p2align 3
.L4948:

	movq	(%rcx,%rax,8), %rdx
	notq	%rdx
	movq	%rdx, (%rsi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r9
	jne	.L4948
.L4944:

	movl	%r8d, 8(%rdi)
	movl	$1, %eax
	movl	$0, 16(%rdi)
.L4941:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4963:

	.cfi_restore_state
	leal	-1(%r8), %r9d
	movl	$8, %eax
	pcmpeqd	%xmm1, %xmm1
	movl	%r9d, %edx
	shrl	%edx
	salq	$4, %rdx
	addq	$8, %rdx
	.p2align 4,,10
	.p2align 3
.L4946:

	movdqu	(%rcx,%rax), %xmm0
	pxor	%xmm1, %xmm0
	movups	%xmm0, (%rsi,%rax)
	addq	$16, %rax
	cmpq	%rdx, %rax
	jne	.L4946
	movl	%r9d, %eax
	orl	$1, %eax
	andl	$1, %r9d
	je	.L4944
	cltq
	movq	(%rcx,%rax,8), %rdx
	notq	%rdx
	movq	%rdx, (%rsi,%rax,8)
	movl	$1, %eax
	movl	%r8d, 8(%rdi)
	movl	$0, 16(%rdi)
	jmp	.L4941
	.cfi_endproc
.LFE1004:

	.size	bn_one_to_montgomery, .-bn_one_to_montgomery
# WAS .section	.text.bn_less_than_montgomery_R,"ax",@progbits
.text
	.p2align 4
	.globl	bn_less_than_montgomery_R
	.hidden	bn_less_than_montgomery_R
	.type	bn_less_than_montgomery_R, @function
.Lbn_less_than_montgomery_R_local_target:
bn_less_than_montgomery_R:
.LFB1008:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L4964
	movslq	32(%rbp), %rdx
	movslq	8(%rbx), %rsi
	cmpq	%rsi, %rdx
	jnb	.L4971
	subq	%rdx, %rsi
	movq	(%rbx), %rdi
	cmpq	$1, %rsi
	je	.L4972
	movq	%rsi, %rcx
	leaq	(%rdi,%rdx,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L4968:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rcx
	jne	.L4968
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %sil
	je	.L4969
	andq	$-2, %rsi
	addq	%rsi, %rdx
.L4967:

	orq	(%rdi,%rdx,8), %rax
.L4969:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
.L4964:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4971:

	.cfi_restore_state
	movl	$1, %eax
	jmp	.L4964
.L4972:

	xorl	%eax, %eax
	jmp	.L4967
	.cfi_endproc
.LFE1008:

	.size	bn_less_than_montgomery_R, .-bn_less_than_montgomery_R
# WAS .section	.text.unlikely.bn_from_montgomery_small,"ax",@progbits
.text
.LCOLDB173:

# WAS .section	.text.bn_from_montgomery_small,"ax",@progbits
.text
.LHOTB173:

	.p2align 4
	.globl	bn_from_montgomery_small
	.hidden	bn_from_montgomery_small
	.type	bn_from_montgomery_small, @function
.Lbn_from_montgomery_small_local_target:
bn_from_montgomery_small:
.LFB1010:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$168, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movslq	32(%r8), %rax
	cmpq	%rsi, %rax
	jne	.L4979
	cmpq	$9, %rsi
	ja	.L4979
	leaq	(%rbx,%rbx), %r10
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	cmpq	%rcx, %r10
	jb	.L4979
	movq	%rsp, %rbp
	xorl	%eax, %eax
	movq	%rdi, %r9
	movl	$18, %ecx
	movq	%rbp, %rdi
	salq	$3, %rdx
	rep stosq
	jne	.L4994
.L4981:

	movq	%r10, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r9, %rdi
# WAS call	bn_from_montgomery_in_place
	call	.Lbn_from_montgomery_in_place_local_target
	testl	%eax, %eax
	je	.L4979
	salq	$4, %rbx
	movq	%rbp, %rdi
	movq	%rbx, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L4995
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4994:

	.cfi_restore_state
	cmpl	$8, %edx
	jb	.L4981
	shrl	$3, %edx
	movq	%rbp, %rdi
	movl	%edx, %ecx
	rep movsq
	jmp	.L4981
.L4995:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.bn_from_montgomery_small
.text
	.cfi_startproc
	.type	bn_from_montgomery_small.cold, @function
.Lbn_from_montgomery_small.cold_local_target:
bn_from_montgomery_small.cold:
.LFSB1010:

.L4979:

	.cfi_def_cfa_offset 192
	.cfi_offset 3, -24
	.cfi_offset 6, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1010:

# WAS .section	.text.bn_from_montgomery_small
.text
	.size	bn_from_montgomery_small, .-bn_from_montgomery_small
# WAS .section	.text.unlikely.bn_from_montgomery_small
.text
	.size	bn_from_montgomery_small.cold, .-bn_from_montgomery_small.cold
.LCOLDE173:

# WAS .section	.text.bn_from_montgomery_small
.text
.LHOTE173:

# WAS .section	.text.ec_GFp_mont_felem_to_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_to_bytes
	.hidden	ec_GFp_mont_felem_to_bytes
	.type	ec_GFp_mont_felem_to_bytes, @function
.Lec_GFp_mont_felem_to_bytes_local_target:
ec_GFp_mont_felem_to_bytes:
.LFB1879:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	leaq	296(%rdi), %r8
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	movq	%rcx, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$80, %rsp
	.cfi_def_cfa_offset 128
	movslq	328(%rdi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rsi, %rcx
	movq	%rbx, %rdi
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	leaq	320(%r14), %rdi
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movslq	328(%r14), %rsi
	movl	%eax, %r13d
	salq	$3, %rsi
	cmpq	%r13, %rsi
	cmova	%r13, %rsi
	testq	%rsi, %rsi
	je	.L5001
	movq	%rbx, %rax
	leaq	-1(%r12,%r13), %rdx
	leaq	(%rbx,%rsi), %rdi
	.p2align 4,,10
	.p2align 3
.L5000:

	movzbl	(%rax), %ecx
	addq	$1, %rax
	subq	$1, %rdx
	movb	%cl, 1(%rdx)
	cmpq	%rdi, %rax
	jne	.L5000
.L5001:

	movq	%r13, %rdx
	subq	%rsi, %rdx
	je	.L4998
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L4998:

	movq	%r13, 0(%rbp)
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5009
	addq	$80, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L5009:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1879:

	.size	ec_GFp_mont_felem_to_bytes, .-ec_GFp_mont_felem_to_bytes
# WAS .section	.text.ec_simple_scalar_to_montgomery_inv_vartime,"ax",@progbits
.text
	.p2align 4
	.globl	ec_simple_scalar_to_montgomery_inv_vartime
	.hidden	ec_simple_scalar_to_montgomery_inv_vartime
	.type	ec_simple_scalar_to_montgomery_inv_vartime, @function
.Lec_simple_scalar_to_montgomery_inv_vartime_local_target:
ec_simple_scalar_to_montgomery_inv_vartime:
.LFB2077:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movl	264(%rdi), %esi
	testl	%esi, %esi
	jle	.L5016
	movq	%rdi, %rbx
	cmpl	$1, %esi
	je	.L5017
	movl	%esi, %eax
	movdqu	(%rdx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L5013
	movdqu	16(%rdx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L5013
	movdqu	32(%rdx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L5013
	movdqu	48(%rdx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L5013
	movdqu	64(%rdx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L5013
	xorl	%ecx, %ecx
.L5014:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	80(%rdx,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L5014
	.p2align 4,,10
	.p2align 3
.L5013:

	movdqa	%xmm0, %xmm1
	movl	%esi, %ecx
	psrldq	$8, %xmm1
	andl	$-2, %ecx
	andl	$1, %esi
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	je	.L5015
.L5012:

	movslq	%ecx, %rcx
	orq	(%rdx,%rcx,8), %rax
.L5015:

	xorl	%ecx, %ecx
	testq	%rax, %rax
	je	.L5010
	movq	(%rbx), %rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*136(%rax)
	movslq	264(%rbx), %rsi
	movq	%rbp, %rdx
	movq	%rbp, %rdi
	leaq	232(%rbx), %r8
	movq	%rsi, %rcx
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	movl	$1, %ecx
.L5010:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ecx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5016:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%ecx, %ecx
	movl	%ecx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L5017:

	.cfi_restore_state
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L5012
	.cfi_endproc
.LFE2077:

	.size	ec_simple_scalar_to_montgomery_inv_vartime, .-ec_simple_scalar_to_montgomery_inv_vartime
# WAS .section	.text.bn_mul_mont,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_mont
	.hidden	bn_mul_mont
	.type	bn_mul_mont, @function
.Lbn_mul_mont_local_target:
bn_mul_mont:
.LFB1012:

	.cfi_startproc
	endbr64
	subq	$56, %rsp
	.cfi_def_cfa_offset 64
	cmpq	%rdx, %rsi
	je	.L5049
	cmpq	$7, %r9
	jbe	.L5039
.L5040:

	testb	$3, %r9b
	jne	.L5039
	movq	%r9, 40(%rsp)
	movq	%r8, 32(%rsp)
	movq	%rcx, 24(%rsp)
	movq	%rdx, 16(%rsp)
	movq	%rsi, 8(%rsp)
	movq	%rdi, (%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	(%rsp), %rdi
	movq	8(%rsp), %rsi
	movl	8(%rax), %eax
	movq	16(%rsp), %rdx
	movq	24(%rsp), %rcx
	movq	32(%rsp), %r8
	testb	$1, %ah
	movq	40(%rsp), %r9
	je	.L5041
	testl	$524288, %eax
	je	.L5041
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mulx4x_mont@PLT
	jmp	.Lbn_mulx4x_mont_local_target
	.p2align 4,,10
	.p2align 3
.L5049:

	.cfi_restore_state
	cmpq	$7, %r9
	ja	.L5050
.L5039:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mul_mont_nohw@PLT
	jmp	.Lbn_mul_mont_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L5050:

	.cfi_restore_state
	testb	$7, %r9b
	jne	.L5040
	movq	%r9, 32(%rsp)
	movq	%r8, 24(%rsp)
	movq	%rcx, 16(%rsp)
	movq	%rsi, 8(%rsp)
	movq	%rdi, (%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	xorl	%edx, %edx
	movq	32(%rsp), %r9
	movq	(%rsp), %rdi
	movl	8(%rax), %eax
	movq	24(%rsp), %r8
	movq	16(%rsp), %rcx
	movq	8(%rsp), %rsi
	notl	%eax
	testl	$524544, %eax
	sete	%dl
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr8x_mont@PLT
	jmp	.Lbn_sqr8x_mont_local_target
	.p2align 4,,10
	.p2align 3
.L5041:

	.cfi_restore_state
	addq	$56, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mul4x_mont@PLT
	jmp	.Lbn_mul4x_mont_local_target
	.cfi_endproc
.LFE1012:

	.size	bn_mul_mont, .-bn_mul_mont
# WAS .section	.text.unlikely.bn_mod_mul_montgomery_small,"ax",@progbits
.text
.LCOLDB174:

# WAS .section	.text.bn_mod_mul_montgomery_small,"ax",@progbits
.text
.LHOTB174:

	.p2align 4
	.globl	bn_mod_mul_montgomery_small
	.hidden	bn_mod_mul_montgomery_small
	.type	bn_mod_mul_montgomery_small, @function
.Lbn_mod_mul_montgomery_small_local_target:
bn_mod_mul_montgomery_small:
.LFB1011:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$304, %rsp
	.cfi_def_cfa_offset 352
	movq	%fs:40, %rax
	movq	%rax, 296(%rsp)
	xorl	%eax, %eax
	movslq	32(%r8), %rax
	cmpq	%rcx, %rax
	jne	.L5055
	movq	%rcx, %rbx
	cmpq	$9, %rcx
	ja	.L5055
	movq	%rdi, %r13
	movq	%r8, %rbp
	cmpq	$1, %rcx
	ja	.L5071
	cmpq	%rdx, %rsi
	je	.L5072
	movq	%rsp, %r12
	movq	%rcx, %r8
	movq	%rdx, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rdi
# WAS call	bn_mul_normal
	call	.Lbn_mul_normal_local_target
.L5059:

	leaq	(%rbx,%rbx), %rcx
	movq	%rbp, %r8
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	bn_from_montgomery_in_place
	call	.Lbn_from_montgomery_in_place_local_target
	testl	%eax, %eax
	je	.L5055
	salq	$4, %rbx
	movq	%r12, %rdi
	movq	%rbx, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L5051:

	movq	296(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5073
	addq	$304, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5071:

	.cfi_restore_state
	movq	24(%r8), %rcx
	movq	%rbx, %r9
	leaq	48(%r8), %r8
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	testl	%eax, %eax
	jne	.L5051
	jmp	.L5055
	.p2align 4,,10
	.p2align 3
.L5072:

	leaq	144(%rsp), %r14
	movq	%rsp, %r12
	testq	%rcx, %rcx
	je	.L5058
	movq	%r14, %rcx
	movl	$1, %edx
	movq	%r12, %rdi
# WAS call	bn_sqr_normal.part.0
	call	.Lbn_sqr_normal.part.0_local_target
.L5058:

	movq	%rbx, %rsi
	movq	%r14, %rdi
	salq	$4, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L5059
.L5073:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.bn_mod_mul_montgomery_small
.text
	.cfi_startproc
	.type	bn_mod_mul_montgomery_small.cold, @function
.Lbn_mod_mul_montgomery_small.cold_local_target:
bn_mod_mul_montgomery_small.cold:
.LFSB1011:

.L5055:

	.cfi_def_cfa_offset 352
	.cfi_offset 3, -48
	.cfi_offset 6, -40
	.cfi_offset 12, -32
	.cfi_offset 13, -24
	.cfi_offset 14, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1011:

# WAS .section	.text.bn_mod_mul_montgomery_small
.text
	.size	bn_mod_mul_montgomery_small, .-bn_mod_mul_montgomery_small
# WAS .section	.text.unlikely.bn_mod_mul_montgomery_small
.text
	.size	bn_mod_mul_montgomery_small.cold, .-bn_mod_mul_montgomery_small.cold
.LCOLDE174:

# WAS .section	.text.bn_mod_mul_montgomery_small
.text
.LHOTE174:

# WAS .section	.text.bn_to_montgomery_small,"ax",@progbits
.text
	.p2align 4
	.globl	bn_to_montgomery_small
	.hidden	bn_to_montgomery_small
	.type	bn_to_montgomery_small, @function
.Lbn_to_montgomery_small_local_target:
bn_to_montgomery_small:
.LFB1009:

	.cfi_startproc
	endbr64
	movq	(%rcx), %rax
	movq	%rcx, %r8
	movq	%rdx, %rcx
	movq	%rax, %rdx
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE1009:

	.size	bn_to_montgomery_small, .-bn_to_montgomery_small
# WAS .section	.text.ec_GFp_mont_felem_from_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_from_bytes
	.hidden	ec_GFp_mont_felem_from_bytes
	.type	ec_GFp_mont_felem_from_bytes, @function
.Lec_GFp_mont_felem_from_bytes_local_target:
ec_GFp_mont_felem_from_bytes:
.LFB1880:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	addq	$320, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %eax
	cmpq	%rax, %r12
	je	.L5076
	movl	$324, %r8d
.L5081:

	leaq	.LC123(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5076:

	.cfi_restore_state
	movslq	328(%rbx), %rsi
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movslq	328(%rbx), %r12
	movq	320(%rbx), %rdx
	movq	%rbp, %rdi
	movq	%r12, %rcx
	movq	%r12, %rsi
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movl	$331, %r8d
	testl	%eax, %eax
	jns	.L5081
	movq	296(%rbx), %rdx
	leaq	296(%rbx), %r8
	movq	%r12, %rcx
	movq	%rbp, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1880:

	.size	ec_GFp_mont_felem_from_bytes, .-ec_GFp_mont_felem_from_bytes
# WAS .section	.text.ec_GFp_mont_felem_reduce,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_reduce
	.hidden	ec_GFp_mont_felem_reduce
	.type	ec_GFp_mont_felem_reduce, @function
.Lec_GFp_mont_felem_reduce_local_target:
ec_GFp_mont_felem_reduce:
.LFB1881:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	296(%rdi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	movq	%r12, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movslq	328(%rdi), %rsi
	movq	%rdi, %rbx
	movq	%rbp, %rdi
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	movq	%r12, %r8
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movslq	328(%rbx), %rcx
	movq	296(%rbx), %rdx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r12, %r8
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movslq	328(%rbx), %rcx
	movq	296(%rbx), %rdx
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE1881:

	.size	ec_GFp_mont_felem_reduce, .-ec_GFp_mont_felem_reduce
# WAS .section	.text.ec_GFp_mont_felem_mul,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_mul
	.hidden	ec_GFp_mont_felem_mul
	.type	ec_GFp_mont_felem_mul, @function
.Lec_GFp_mont_felem_mul_local_target:
ec_GFp_mont_felem_mul:
.LFB1877:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	movslq	328(%rax), %rcx
	leaq	296(%rax), %r8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE1877:

	.size	ec_GFp_mont_felem_mul, .-ec_GFp_mont_felem_mul
# WAS .section	.text.ec_GFp_mont_felem_sqr,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_sqr
	.hidden	ec_GFp_mont_felem_sqr
	.type	ec_GFp_mont_felem_sqr, @function
.Lec_GFp_mont_felem_sqr_local_target:
ec_GFp_mont_felem_sqr:
.LFB1878:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	328(%rax), %rcx
	leaq	296(%rax), %r8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE1878:

	.size	ec_GFp_mont_felem_sqr, .-ec_GFp_mont_felem_sqr
# WAS .section	.text.unlikely.bn_mod_exp_mont_small,"ax",@progbits
.text
.LCOLDB175:

# WAS .section	.text.bn_mod_exp_mont_small,"ax",@progbits
.text
.LHOTB175:

	.p2align 4
	.globl	bn_mod_exp_mont_small
	.hidden	bn_mod_exp_mont_small
	.type	bn_mod_exp_mont_small, @function
.Lbn_mod_exp_mont_small_local_target:
bn_mod_exp_mont_small:
.LFB966:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1336, %rsp
	.cfi_def_cfa_offset 1392
	movq	%rdi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 1320(%rsp)
	xorl	%eax, %eax
	movslq	32(%r9), %rax
	cmpq	%rdx, %rax
	jne	.L5087
	movq	%rdx, %r15
	cmpq	$9, %rdx
	ja	.L5087
	movq	%r8, %rax
	movq	%r8, %rbx
	shrq	$58, %rax
	jne	.L5087
	movq	%r9, %r12
	testq	%r8, %r8
	je	.L5088
	movq	%rsi, %r13
	movq	%rcx, %rbp
	leaq	-8(,%r8,8), %rax
	jmp	.L5089
	.p2align 4,,10
	.p2align 3
.L5090:

	subq	$8, %rax
	subq	$1, %rbx
	je	.L5088
.L5089:

	cmpq	$0, 0(%rbp,%rax)
	je	.L5090
	movq	0(%rbp,%rax), %rdi
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
	leaq	-1(%rbx), %rcx
	leaq	0(,%r15,8), %r11
	salq	$6, %rcx
	movl	%eax, %edx
	leaq	(%rcx,%rdx), %rax
	cmpq	$671, %rax
	ja	.L5242
	cmpq	$239, %rax
	ja	.L5243
	leaq	160(%rsp), %rdi
	movq	%rdi, 16(%rsp)
	cmpq	$79, %rax
	ja	.L5244
	cmpq	$23, %rax
	ja	.L5245
	testq	%r11, %r11
	jne	.L5246
.L5117:

	movl	$1, 28(%rsp)
.L5122:

	leaq	-1(%rax), %r10
	movq	8(%rsp), %r14
	movq	%r10, %r13
	movq	%r11, %r10
	movq	%rbx, %r11
.L5130:

	movq	%r13, %rax
	shrq	$6, %rax
	cmpq	%r11, %rax
	jnb	.L5124
	movq	%r12, %r8
	movl	$1, %ebx
	movq	%r15, %r12
	movq	%r10, %r9
	movq	%r11, %r15
.L5125:

	movq	0(%rbp,%rax,8), %rax
	btq	%r13, %rax
	jc	.L5247
	testl	%ebx, %ebx
	je	.L5131
	testq	%r13, %r13
	jne	.L5248
.L5132:

	movq	16(%rsp), %rdi
	movl	$1152, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	1320(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5235
	addq	$1336, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5088:

	.cfi_restore_state
	movq	1320(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5235
	movq	(%r12), %rdx
	movq	8(%rsp), %rdi
	movq	%r12, %r8
	movq	%r15, %rcx
	addq	$1336, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r15, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	bn_from_montgomery_small
	jmp	.Lbn_from_montgomery_small_local_target
	.p2align 4,,10
	.p2align 3
.L5246:

	.cfi_restore_state
	cmpl	$8, %r11d
	jb	.L5117
	movl	%r11d, %ecx
	movq	%r13, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L5117
	.p2align 4,,10
	.p2align 3
.L5243:

	testq	%r11, %r11
	jne	.L5099
	leaq	160(%rsp), %rcx
	movq	%rcx, 16(%rsp)
.L5093:

	movl	$5, 28(%rsp)
	movl	$16, %r14d
.L5100:

	movq	16(%rsp), %rdx
	movq	%rax, 40(%rsp)
	movq	%r12, %r8
	movq	%r15, %rcx
	leaq	80(%rsp), %rax
	subl	$2, %r14d
	movq	%r11, 48(%rsp)
	leaq	232(%rsp), %r13
	movq	%rdx, %rsi
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%rbx, 56(%rsp)
	leaq	(%r14,%r14,8), %rdx
	movq	%r13, %rbx
	movq	32(%rsp), %r13
	leaq	304(%rsp,%rdx,8), %r14
	.p2align 4,,10
	.p2align 3
.L5123:

	leaq	-72(%rbx), %rsi
	movq	%rbx, %rdi
	movq	%r12, %r8
	movq	%r15, %rcx
	movq	%r13, %rdx
	addq	$72, %rbx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	cmpq	%rbx, %r14
	jne	.L5123
	movq	40(%rsp), %rax
	movq	48(%rsp), %r11
	movq	56(%rsp), %rbx
	jmp	.L5122
	.p2align 4,,10
	.p2align 3
.L5131:

	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	%r9, 40(%rsp)
	movq	%r8, 32(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	testq	%r13, %r13
	movq	32(%rsp), %r8
	movq	40(%rsp), %r9
	je	.L5132
	subq	$1, %r13
	movq	%r13, %rax
	shrq	$6, %rax
	cmpq	%r15, %rax
	jb	.L5125
.L5134:

	xorl	%ebx, %ebx
.L5160:

	subq	$1, %r13
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	%r9, 40(%rsp)
	movq	%r8, 32(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r13, %rax
	movq	32(%rsp), %r8
	movq	40(%rsp), %r9
	shrq	$6, %rax
	cmpq	%r15, %rax
	jb	.L5125
	jmp	.L5160
.L5248:

	subq	$1, %r13
	movq	%r13, %rax
	shrq	$6, %rax
	cmpq	%r15, %rax
	jb	.L5125
	movq	%r15, %r11
	movq	%r9, %r10
	movq	%r12, %r15
	movq	%r8, %r12
	.p2align 4,,10
	.p2align 3
.L5124:

	subq	$1, %r13
	jmp	.L5130
	.p2align 4,,10
	.p2align 3
.L5247:

	cmpl	$1, 28(%rsp)
	je	.L5168
	testq	%r13, %r13
	je	.L5249
	leaq	-1(%r13), %rcx
	movq	%rcx, %rax
	shrq	$6, %rax
	cmpq	%r15, %rax
	jnb	.L5169
	movq	0(%rbp,%rax,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
	cmpl	$1, %eax
	sbbl	%edx, %edx
	andl	$-2, %edx
	addl	$3, %edx
	cmpq	$1, %r13
	je	.L5138
.L5136:

	leaq	-2(%r13), %rcx
	movq	%rcx, %rsi
	shrq	$6, %rsi
	cmpq	%r15, %rsi
	jnb	.L5139
	movq	0(%rbp,%rsi,8), %rsi
	btq	%rcx, %rsi
	jnc	.L5140
	movl	$2, %ecx
	subl	%eax, %ecx
	movl	$2, %eax
	sall	%cl, %edx
	orl	$1, %edx
.L5140:

	cmpl	$3, 28(%rsp)
	je	.L5138
	cmpq	$2, %r13
	je	.L5138
.L5164:

	leaq	-3(%r13), %rcx
	movq	%rcx, %rsi
	shrq	$6, %rsi
	cmpq	%r15, %rsi
	jnb	.L5142
	movq	0(%rbp,%rsi,8), %rsi
	btq	%rcx, %rsi
	jc	.L5250
.L5143:

	cmpl	$5, 28(%rsp)
	jne	.L5138
	cmpq	$3, %r13
	je	.L5138
.L5163:

	leaq	-4(%r13), %rcx
	movq	%rcx, %rsi
	shrq	$6, %rsi
	cmpq	%r15, %rsi
	jnb	.L5138
	movq	0(%rbp,%rsi,8), %rsi
	btq	%rcx, %rsi
	jc	.L5251
.L5138:

	movq	16(%rsp), %rdi
	shrl	%edx
	movl	%eax, %r11d
	leaq	(%rdx,%rdx,8), %rdx
	leaq	(%rdi,%rdx,8), %rdx
.L5127:

	testl	%ebx, %ebx
	je	.L5252
	testq	%r9, %r9
	je	.L5151
	cmpl	$8, %r9d
	jnb	.L5156
	testl	%r9d, %r9d
	je	.L5151
	movzbl	(%rdx), %edx
	movb	%dl, (%r14)
	.p2align 4,,10
	.p2align 3
.L5151:

	cmpq	%r11, %r13
	je	.L5132
	addl	$1, %eax
	xorl	%ebx, %ebx
	subq	%rax, %r13
	movq	%r13, %rax
	shrq	$6, %rax
	cmpq	%r15, %rax
	jb	.L5125
	jmp	.L5134
	.p2align 4,,10
	.p2align 3
.L5242:

	leaq	160(%rsp), %rdi
	movq	%rdi, 16(%rsp)
	testq	%r11, %r11
	je	.L5093
.L5241:

	cmpl	$8, %r11d
	jb	.L5093
	movl	%r11d, %ecx
	movq	%r13, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L5093
.L5244:

	testq	%r11, %r11
	jne	.L5253
.L5106:

	movl	$4, 28(%rsp)
	movl	$8, %r14d
	jmp	.L5100
.L5245:

	testq	%r11, %r11
	jne	.L5254
.L5112:

	movl	$3, 28(%rsp)
	movl	$4, %r14d
	jmp	.L5100
.L5169:

	movl	$1, %edx
	xorl	%eax, %eax
	jmp	.L5136
.L5139:

	cmpl	$3, 28(%rsp)
	jne	.L5164
	jmp	.L5138
	.p2align 4,,10
	.p2align 3
.L5099:

	leaq	160(%rsp), %rdi
	movq	%rdi, 16(%rsp)
	jmp	.L5241
.L5252:

	movl	%eax, 40(%rsp)
	leal	1(%rax), %ecx
	movq	%rdx, 48(%rsp)
	movq	%r11, 56(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r13, 32(%rsp)
	movl	%ecx, %r13d
	movq	%rbp, 72(%rsp)
	movl	%ebx, %ebp
	movq	%r8, %rbx
	.p2align 4,,10
	.p2align 3
.L5148:

	movq	%rbx, %r8
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	addl	$1, %ebp
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	cmpl	%r13d, %ebp
	jb	.L5148
	movq	32(%rsp), %r13
	movl	40(%rsp), %eax
	movq	%rbx, %r8
	movq	48(%rsp), %rdx
	movq	56(%rsp), %r11
	movq	64(%rsp), %r9
	movq	72(%rsp), %rbp
.L5162:

	movq	%r12, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	%r9, 56(%rsp)
	movq	%r11, 48(%rsp)
	movl	%eax, 40(%rsp)
	movq	%r8, 32(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	32(%rsp), %r8
	movl	40(%rsp), %eax
	movq	48(%rsp), %r11
	movq	56(%rsp), %r9
	jmp	.L5151
.L5142:

	cmpl	$5, 28(%rsp)
	je	.L5163
	jmp	.L5138
	.p2align 4,,10
	.p2align 3
.L5250:

	movl	$3, %ecx
	subl	%eax, %ecx
	movl	$3, %eax
	sall	%cl, %edx
	orl	$1, %edx
	jmp	.L5143
.L5251:

	movl	$4, %ecx
	subl	%eax, %ecx
	movl	$4, %eax
	sall	%cl, %edx
	orl	$1, %edx
	jmp	.L5138
.L5253:

	cmpl	$8, %r11d
	jb	.L5106
	movl	%r11d, %ecx
	movq	%r13, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L5106
.L5156:

	movq	(%rdx), %rcx
	leaq	8(%r14), %rdi
	andq	$-8, %rdi
	movq	%rcx, (%r14)
	movl	%r9d, %ecx
	movq	-8(%rdx,%rcx), %rsi
	movq	%rsi, -8(%r14,%rcx)
	movq	%r14, %rcx
	subq	%rdi, %rcx
	subq	%rcx, %rdx
	addl	%r9d, %ecx
	movq	%rdx, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L5151
.L5254:

	cmpl	$8, %r11d
	jb	.L5112
	movl	%r11d, %ecx
	movq	%r13, %rsi
	shrl	$3, %ecx
	rep movsq
	jmp	.L5112
.L5249:

	testl	%ebx, %ebx
	je	.L5145
	testq	%r9, %r9
	je	.L5132
	cmpl	$8, %r9d
	jnb	.L5152
	testl	%r9d, %r9d
	je	.L5132
	movzbl	160(%rsp), %eax
	movq	8(%rsp), %rdx
	movb	%al, (%rdx)
	jmp	.L5132
	.p2align 4,,10
	.p2align 3
.L5168:

	movq	16(%rsp), %rdx
	xorl	%r11d, %r11d
	xorl	%eax, %eax
	jmp	.L5127
.L5145:

	movq	%r14, %rdx
	movq	%r12, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	%r9, 40(%rsp)
	movq	%r8, 32(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rdx
	xorl	%r11d, %r11d
	xorl	%eax, %eax
	movq	32(%rsp), %r8
	movq	40(%rsp), %r9
	jmp	.L5162
.L5152:

	movq	8(%rsp), %rdi
	movq	160(%rsp), %rax
	movq	%rax, (%rdi)
	movq	16(%rsp), %rcx
	movl	%r9d, %eax
	movq	-8(%rcx,%rax), %rdx
	movq	%rdx, -8(%rdi,%rax)
	movq	%rdi, %rax
	leaq	8(%rdi), %rdi
	andq	$-8, %rdi
	movq	%rax, %r12
	subq	%rdi, %r12
	subq	%r12, %rcx
	movq	%rcx, %rsi
	leal	(%r9,%r12), %ecx
	shrl	$3, %ecx
	rep movsq
	jmp	.L5132
.L5235:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.bn_mod_exp_mont_small
.text
	.cfi_startproc
	.type	bn_mod_exp_mont_small.cold, @function
.Lbn_mod_exp_mont_small.cold_local_target:
bn_mod_exp_mont_small.cold:
.LFSB966:

.L5087:

	.cfi_def_cfa_offset 1392
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE966:

# WAS .section	.text.bn_mod_exp_mont_small
.text
	.size	bn_mod_exp_mont_small, .-bn_mod_exp_mont_small
# WAS .section	.text.unlikely.bn_mod_exp_mont_small
.text
	.size	bn_mod_exp_mont_small.cold, .-bn_mod_exp_mont_small.cold
.LCOLDE175:

# WAS .section	.text.bn_mod_exp_mont_small
.text
.LHOTE175:

# WAS .section	.text.unlikely.bn_mod_inverse0_prime_mont_small,"ax",@progbits
.text
.LCOLDB176:

# WAS .section	.text.bn_mod_inverse0_prime_mont_small,"ax",@progbits
.text
.LHOTB176:

	.p2align 4
	.globl	bn_mod_inverse0_prime_mont_small
	.hidden	bn_mod_inverse0_prime_mont_small
	.type	bn_mod_inverse0_prime_mont_small, @function
.Lbn_mod_inverse0_prime_mont_small_local_target:
bn_mod_inverse0_prime_mont_small:
.LFB967:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rcx, %r9
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	xorl	%ecx, %ecx
	movslq	32(%r9), %rcx
	cmpq	%rdx, %rcx
	jne	.L5270
	cmpq	$9, %rdx
	ja	.L5270
	movq	%rdx, %rcx
	movq	%rdi, %rax
	movq	%rsi, %r10
	movq	%rsp, %r11
	salq	$3, %rcx
	jne	.L5293
.L5258:

	movq	(%rsp), %rcx
	leaq	-2(%rcx), %rsi
	movq	%rsi, (%rsp)
	cmpq	$1, %rcx
	jbe	.L5263
.L5264:

	movq	%rax, %rdi
	movq	%rdx, %r8
	movq	%r11, %rcx
	movq	%r10, %rsi
# WAS call	bn_mod_exp_mont_small
	call	.Lbn_mod_exp_mont_small_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5294
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5293:

	.cfi_restore_state
	movq	24(%r9), %rsi
	cmpl	$8, %ecx
	jb	.L5258
	shrl	$3, %ecx
	movq	%r11, %rdi
	rep movsq
	jmp	.L5258
	.p2align 4,,10
	.p2align 3
.L5263:

	cmpq	$1, %rdx
	jbe	.L5264
	movq	8(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 8(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$2, %rdx
	je	.L5264
	movq	16(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 16(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$3, %rdx
	je	.L5264
	movq	24(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 24(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$4, %rdx
	je	.L5264
	movq	32(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 32(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$5, %rdx
	je	.L5264
	movq	40(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 40(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$6, %rdx
	je	.L5264
	movq	48(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 48(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$7, %rdx
	je	.L5264
	movq	56(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 56(%rsp)
	testq	%rcx, %rcx
	jne	.L5264
	cmpq	$9, %rdx
	jne	.L5264
	subq	$1, 64(%rsp)
	jmp	.L5264
.L5294:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.bn_mod_inverse0_prime_mont_small
.text
	.cfi_startproc
	.type	bn_mod_inverse0_prime_mont_small.cold, @function
.Lbn_mod_inverse0_prime_mont_small.cold_local_target:
bn_mod_inverse0_prime_mont_small.cold:
.LFSB967:

.L5270:

	.cfi_def_cfa_offset 96
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE967:

# WAS .section	.text.bn_mod_inverse0_prime_mont_small
.text
	.size	bn_mod_inverse0_prime_mont_small, .-bn_mod_inverse0_prime_mont_small
# WAS .section	.text.unlikely.bn_mod_inverse0_prime_mont_small
.text
	.size	bn_mod_inverse0_prime_mont_small.cold, .-bn_mod_inverse0_prime_mont_small.cold
.LCOLDE176:

# WAS .section	.text.bn_mod_inverse0_prime_mont_small
.text
.LHOTE176:

# WAS .section	.text.ec_GFp_mont_felem_exp,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_felem_exp
	.hidden	ec_GFp_mont_felem_exp
	.type	ec_GFp_mont_felem_exp, @function
.Lec_GFp_mont_felem_exp_local_target:
ec_GFp_mont_felem_exp:
.LFB1882:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	328(%rax), %rdx
	leaq	296(%rax), %r9
# WAS jmp	bn_mod_exp_mont_small
	jmp	.Lbn_mod_exp_mont_small_local_target
	.cfi_endproc
.LFE1882:

	.size	ec_GFp_mont_felem_exp, .-ec_GFp_mont_felem_exp
# WAS .section	.text.unlikely.ec_simple_scalar_inv0_montgomery,"ax",@progbits
.text
.LCOLDB177:

# WAS .section	.text.ec_simple_scalar_inv0_montgomery,"ax",@progbits
.text
.LHOTB177:

	.p2align 4
	.globl	ec_simple_scalar_inv0_montgomery
	.hidden	ec_simple_scalar_inv0_montgomery
	.type	ec_simple_scalar_inv0_montgomery, @function
.Lec_simple_scalar_inv0_montgomery_local_target:
ec_simple_scalar_inv0_montgomery:
.LFB2076:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdx, %r10
	movq	%fs:40, %rdx
	movq	%rdx, 72(%rsp)
	xorl	%edx, %edx
	movslq	264(%rdi), %rdx
	cmpq	$9, %rdx
	ja	.L5331
	movq	%rdx, %rcx
	movq	%rsi, %rax
	leaq	232(%rdi), %r9
	movq	%rsp, %r11
	salq	$3, %rcx
	jne	.L5333
.L5298:

	movq	(%rsp), %rcx
	leaq	-2(%rcx), %rsi
	movq	%rsi, (%rsp)
	cmpq	$1, %rcx
	jbe	.L5303
.L5304:

	movq	%rax, %rdi
	movq	%rdx, %r8
	movq	%r11, %rcx
	movq	%r10, %rsi
# WAS call	bn_mod_exp_mont_small
	call	.Lbn_mod_exp_mont_small_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5334
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5333:

	.cfi_restore_state
	movq	256(%rdi), %rsi
	cmpl	$8, %ecx
	jb	.L5298
	shrl	$3, %ecx
	movq	%r11, %rdi
	rep movsq
	jmp	.L5298
	.p2align 4,,10
	.p2align 3
.L5303:

	cmpq	$1, %rdx
	jbe	.L5304
	movq	8(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 8(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$2, %rdx
	je	.L5304
	movq	16(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 16(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$3, %rdx
	je	.L5304
	movq	24(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 24(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$4, %rdx
	je	.L5304
	movq	32(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 32(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$5, %rdx
	je	.L5304
	movq	40(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 40(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$6, %rdx
	je	.L5304
	movq	48(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 48(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$7, %rdx
	je	.L5304
	movq	56(%rsp), %rcx
	leaq	-1(%rcx), %rsi
	movq	%rsi, 56(%rsp)
	testq	%rcx, %rcx
	jne	.L5304
	cmpq	$9, %rdx
	jne	.L5304
	subq	$1, 64(%rsp)
	jmp	.L5304
.L5334:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.ec_simple_scalar_inv0_montgomery
.text
	.cfi_startproc
	.type	ec_simple_scalar_inv0_montgomery.cold, @function
.Lec_simple_scalar_inv0_montgomery.cold_local_target:
ec_simple_scalar_inv0_montgomery.cold:
.LFSB2076:

.L5331:

	.cfi_def_cfa_offset 96
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2076:

# WAS .section	.text.ec_simple_scalar_inv0_montgomery
.text
	.size	ec_simple_scalar_inv0_montgomery, .-ec_simple_scalar_inv0_montgomery
# WAS .section	.text.unlikely.ec_simple_scalar_inv0_montgomery
.text
	.size	ec_simple_scalar_inv0_montgomery.cold, .-ec_simple_scalar_inv0_montgomery.cold
.LCOLDE177:

# WAS .section	.text.ec_simple_scalar_inv0_montgomery
.text
.LHOTE177:

# WAS .section	.text.ec_GFp_mont_dbl,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_dbl
	.hidden	ec_GFp_mont_dbl
	.type	ec_GFp_mont_dbl, @function
.Lec_GFp_mont_dbl_local_target:
ec_GFp_mont_dbl:
.LFB1886:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$792, %rsp
	.cfi_def_cfa_offset 848
	movl	528(%rdi), %eax
	movslq	328(%rdi), %rcx
	movq	%rsi, 8(%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 776(%rsp)
	xorl	%edx, %edx
	testl	%eax, %eax
	je	.L5336
	leaq	144(%r12), %r10
	leaq	296(%rdi), %r14
	leaq	64(%rsp), %r15
	movq	%r10, %rdx
	movq	%r10, %rsi
	movq	%r14, %r8
	movq	%r15, %rdi
	movq	%r10, 56(%rsp)
	leaq	144(%rsp), %r13
	leaq	704(%rsp), %rbp
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	72(%r12), %rax
	movq	%r14, %r8
	movq	%r13, %rdi
	movslq	328(%rbx), %rcx
	movq	%rax, %rdx
	movq	%rax, %rsi
	movq	%rax, 48(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r12, %rsi
	movq	%r14, %r8
	movq	%r13, %rdx
	leaq	224(%rsp), %r11
	movslq	328(%rbx), %rcx
	movq	%r11, %rdi
	movq	%r11, 40(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%rbp, %r8
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r15, 16(%rsp)
	leaq	304(%rsp), %rdi
	leaq	384(%rsp), %r15
	movq	%rdi, 24(%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	16(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	leaq	464(%rsp), %r12
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r15, %rdx
	movq	%r15, %rsi
	movq	%r12, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r12, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
	movslq	328(%rbx), %r9
	movq	320(%rbx), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	24(%rsp), %rsi
	movq	%r15, %rdx
	movq	%r14, %r8
	leaq	544(%rsp), %rax
	movslq	328(%rbx), %rcx
	movq	%rax, %rdi
	movq	%rax, %r15
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdi
	movq	%r15, %rdx
	movq	%r15, %rsi
	movslq	328(%rbx), %rcx
	movq	%r14, %r8
	movq	%r15, 32(%rsp)
	leaq	624(%rsp), %r15
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	40(%rsp), %r11
	movq	%rbp, %r8
	movq	%r15, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r11, %rdx
	movq	%r11, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	320(%rbx), %rcx
	movq	%r15, %rdx
	movq	%r15, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r12, %rdi
	movq	%r15, %rdx
	movq	%r15, %rsi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r12, %rdx
	movq	8(%rsp), %r12
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	16(%rsp), %rdx
	movq	320(%rbx), %rcx
	movq	%r13, %rsi
	movslq	328(%rbx), %r9
	movq	%rdx, %rdi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	24(%rsp), %rdi
	movq	56(%rsp), %rdx
	movslq	328(%rbx), %r9
	movq	320(%rbx), %rcx
	movq	48(%rsp), %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r12, 8(%rsp)
	movq	%rdi, %rdx
	movq	%rdi, %rsi
	addq	$144, %r12
	movslq	328(%rbx), %rcx
	movq	%r14, %r8
	movq	%r12, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rdx
	movq	%rbp, %r8
	movq	%r12, %rsi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r12, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	8(%rsp), %rdx
	movq	320(%rbx), %rcx
	movq	%r15, %rsi
	movslq	328(%rbx), %r9
	leaq	72(%rdx), %r12
	movq	%r12, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	%r13, %rdi
	movq	%r13, %rdx
	movq	%r13, %rsi
	movslq	328(%rbx), %r9
	movq	320(%rbx), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r14, %r8
	movq	%r13, %rdx
	movq	%r13, %rsi
	movslq	328(%rbx), %rcx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	32(%rsp), %rsi
	movq	%r14, %r8
	movq	%r12, %rdx
	movslq	328(%rbx), %rcx
	movq	%r12, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%rbp, %r8
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
.L5335:

	movq	776(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5340
	addq	$792, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5336:

	.cfi_restore_state
	leaq	224(%rsp), %rax
	leaq	296(%rdi), %r15
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%r15, %r8
	movq	%rax, 16(%rsp)
	leaq	384(%rsp), %r14
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	72(%r12), %r10
	leaq	304(%rsp), %r11
	movslq	328(%rbx), %rcx
	movq	%r10, %rdx
	movq	%r10, %rsi
	movq	%r11, %rdi
	movq	%r15, %r8
	movq	%r11, %rbp
	movq	%r10, 48(%rsp)
	leaq	544(%rsp), %r13
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r15, %r8
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movslq	328(%rbx), %rcx
	movq	%r14, %rdi
	movq	%rbp, 32(%rsp)
	leaq	704(%rsp), %rbp
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	144(%r12), %r11
	leaq	464(%rsp), %r10
	movq	%r15, %r8
	movslq	328(%rbx), %rcx
	movq	%r11, %rdx
	movq	%r11, %rsi
	movq	%r10, %rdi
	movq	%r11, 40(%rsp)
	movq	%r10, 24(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	32(%rsp), %rdx
	movq	%r13, %rdi
	movq	%rbp, %r8
	movslq	328(%rbx), %r9
	movq	320(%rbx), %rcx
	movq	%r12, %rsi
	leaq	624(%rsp), %r12
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r15, %r8
	movq	%r13, %rdx
	movq	%r13, %rsi
	movslq	328(%rbx), %rcx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rdx
	movq	%rbp, %r8
	movq	%r13, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r13, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movslq	328(%rbx), %r9
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	320(%rbx), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	24(%rsp), %r10
	movq	%r15, %r8
	movq	%r12, %rdi
	movslq	328(%rbx), %rcx
	movq	%r10, %rdx
	movq	%r10, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r15, %r8
	movq	%r12, %rdx
	movq	%r12, %rdi
	movslq	328(%rbx), %rcx
	leaq	360(%rbx), %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rdx
	movq	%rbp, %r8
	movq	%r12, %rdi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%r12, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	320(%rbx), %rcx
	movq	16(%rsp), %rdx
	movq	%r12, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movslq	328(%rbx), %r9
	movq	16(%rsp), %rdx
	movq	%r12, %rsi
	movq	320(%rbx), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	8(%rsp), %rdi
	movq	%r15, %r8
	movq	%r12, %rdx
	movslq	328(%rbx), %rcx
	movq	%r12, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdi
	movq	%rbp, %r8
	movq	%r13, %rdx
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	%r13, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	40(%rsp), %rdx
	movq	48(%rsp), %rsi
	movq	%rdi, 8(%rsp)
	movslq	328(%rbx), %r9
	movq	320(%rbx), %rcx
	leaq	144(%rdi), %rdi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r15, %r8
	movq	%rdi, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %rcx
	movq	%rdi, 16(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rdi
	movq	32(%rsp), %rdx
	movq	%rbp, %r8
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbx), %rcx
	movq	24(%rsp), %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	%r14, %rdi
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	320(%rbx), %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	320(%rbx), %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movslq	328(%rbx), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	8(%rsp), %rdx
	movslq	328(%rbx), %r9
	movq	%r13, %rsi
	movq	320(%rbx), %rcx
	leaq	72(%rdx), %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	%r15, %r8
	movq	%r12, %rdx
	movq	%rdi, %rsi
	movslq	328(%rbx), %rcx
	movq	%rdi, 8(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdi
	movq	%rbp, %r8
	movq	%r14, %rdx
	movq	320(%rbx), %rcx
	movslq	328(%rbx), %r9
	movq	%rdi, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	jmp	.L5335
.L5340:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1886:

	.size	ec_GFp_mont_dbl, .-ec_GFp_mont_dbl
# WAS .section	.rodata.ec_GFp_mont_jacobian_to_affine_batch.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC178:

	.string	"/aws-lc/crypto/fipsmodule/ec/ec_montgomery.c"
# WAS .section	.text.ec_GFp_mont_jacobian_to_affine_batch,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_mont_jacobian_to_affine_batch, @function
.Lec_GFp_mont_jacobian_to_affine_batch_local_target:
ec_GFp_mont_jacobian_to_affine_batch:
.LFB1884:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%rsi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
	testq	%rcx, %rcx
	je	.L5357
	movq	208(%rdx), %rax
	movq	%rdi, %rbp
	movq	%rdx, %r13
	movq	%rcx, %r14
	movdqu	144(%rdx), %xmm6
	movdqu	160(%rdx), %xmm7
	movups	%xmm6, (%rsi)
	movdqu	176(%rdx), %xmm6
	movups	%xmm7, 16(%rsi)
	movdqu	192(%rdx), %xmm7
	movups	%xmm6, 32(%rsi)
	movq	%rax, 64(%rsi)
	movups	%xmm7, 48(%rsi)
	cmpq	$1, %rcx
	je	.L5348
	leaq	296(%rdi), %rax
	leaq	144(%rsi), %rbx
	movl	$1, %r15d
	movq	%rax, (%rsp)
	leaq	360(%rdx), %r12
	.p2align 4,,10
	.p2align 3
.L5347:

	movq	(%rsp), %r8
	movq	%r12, %rdx
	movq	%rbx, %rdi
	addq	$1, %r15
	movslq	328(%rbp), %rcx
	leaq	-144(%rbx), %rsi
	addq	$216, %r12
	addq	$144, %rbx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	cmpq	%r15, %r14
	jne	.L5347
.L5348:

	movq	8(%rsp), %rsi
	leaq	(%r14,%r14,8), %rax
	movslq	328(%rbp), %rdx
	salq	$4, %rax
	leaq	-144(%rsi,%rax), %rbx
	testl	%edx, %edx
	jle	.L5346
	cmpl	$1, %edx
	je	.L5359
	movl	%edx, %eax
	movdqu	(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L5350
	movdqu	16(%rbx), %xmm6
	por	%xmm6, %xmm0
	cmpl	$2, %eax
	je	.L5350
	movdqu	32(%rbx), %xmm7
	por	%xmm7, %xmm0
	cmpl	$3, %eax
	je	.L5350
	movdqu	48(%rbx), %xmm1
	por	%xmm1, %xmm0
	cmpl	$4, %eax
	je	.L5350
	movdqu	64(%rbx), %xmm7
	por	%xmm7, %xmm0
	cmpl	$5, %eax
	je	.L5350
	xorl	%ecx, %ecx
.L5351:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	80(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L5351
	.p2align 4,,10
	.p2align 3
.L5350:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L5352
	movl	%edx, %ecx
	andl	$-2, %ecx
.L5349:

	movslq	%ecx, %rcx
	orq	(%rbx,%rcx,8), %rax
.L5352:

	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	testq	%rax, %rcx
	js	.L5346
	leaq	296(%rbp), %r12
	leaq	32(%rsp), %rdi
	movq	%rbx, %rsi
	movq	%r12, %rcx
	movq	%rdi, 24(%rsp)
	leaq	-1(%r14), %r15
# WAS call	bn_mod_inverse0_prime_mont_small
	call	.Lbn_mod_inverse0_prime_mont_small_local_target
	leaq	112(%rsp), %rax
	leaq	(%r14,%r14,2), %rdx
	movq	%rax, (%rsp)
	leaq	(%rdx,%rdx,8), %rdx
	leaq	192(%rsp), %rax
	movq	%rax, 8(%rsp)
	leaq	-216(%r13,%rdx,8), %r13
	jmp	.L5356
	.p2align 4,,10
	.p2align 3
.L5382:

	movq	96(%rsp), %rdx
	leaq	-144(%rbx), %rax
	movdqa	32(%rsp), %xmm2
	movdqa	48(%rsp), %xmm3
	movdqa	64(%rsp), %xmm4
	movq	%rax, 16(%rsp)
	movdqa	80(%rsp), %xmm5
	movq	%rdx, 176(%rsp)
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm3, 128(%rsp)
	movaps	%xmm4, 144(%rsp)
	movaps	%xmm5, 160(%rsp)
.L5355:

	movq	(%rsp), %rdx
	movq	8(%rsp), %rdi
	movq	%r12, %r8
	subq	$1, %r15
	movq	%rdx, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	movslq	328(%rbp), %rcx
	movq	%r12, %r8
	addq	$72, %rbx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%r12, %r8
	movslq	328(%rbp), %rcx
	leaq	72(%r13), %rsi
	subq	$216, %r13
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movslq	328(%rbp), %rcx
	movq	%r12, %r8
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rbx
	cmpq	%r14, %r15
	jnb	.L5357
.L5356:

	movslq	328(%rbp), %rcx
	testq	%r15, %r15
	je	.L5382
	leaq	-144(%rbx), %rax
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%r12, %r8
	movq	%rax, %rdx
	movq	%rax, 16(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	24(%rsp), %rdi
	movslq	328(%rbp), %rcx
	movq	%r12, %r8
	leaq	144(%r13), %rdx
	movq	%rdi, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movslq	328(%rbp), %rcx
	jmp	.L5355
	.p2align 4,,10
	.p2align 3
.L5357:

	movl	$1, %eax
.L5341:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L5383
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5346:

	.cfi_restore_state
	movl	$189, %r8d
	leaq	.LC178(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L5341
.L5359:

	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L5349
.L5383:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1884:

	.size	ec_GFp_mont_jacobian_to_affine_batch, .-ec_GFp_mont_jacobian_to_affine_batch
# WAS .section	.text.ec_GFp_mont_add,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_add
	.hidden	ec_GFp_mont_add
	.type	ec_GFp_mont_add, @function
.Lec_GFp_mont_add_local_target:
ec_GFp_mont_add:
.LFB1885:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	movq	%rsi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1560, %rsp
	.cfi_def_cfa_offset 1616
	movq	%fs:40, %rdx
	movq	%rdx, 1544(%rsp)
	xorl	%edx, %edx
	cmpq	%rcx, %r15
	je	.L5385
	movl	328(%rdi), %esi
	movq	%rcx, %r12
	testl	%esi, %esi
	jle	.L5482
	cmpl	$1, %esi
	je	.L5389
	movdqu	144(%r15), %xmm0
	movl	%esi, %edx
	shrl	%edx
	cmpl	$1, %edx
	je	.L5390
	movdqu	160(%r15), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %edx
	je	.L5390
	movdqu	176(%r15), %xmm4
	por	%xmm4, %xmm0
	cmpl	$3, %edx
	je	.L5390
	movdqu	192(%r15), %xmm6
	por	%xmm6, %xmm0
	cmpl	$4, %edx
	je	.L5390
	movdqu	208(%r15), %xmm6
	por	%xmm6, %xmm0
	cmpl	$5, %edx
	je	.L5390
	xorl	%ecx, %ecx
.L5391:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	224(%r15,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%edx, %edi
	jb	.L5391
	.p2align 4,,10
	.p2align 3
.L5390:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %sil
	je	.L5483
	movl	%esi, %ecx
	andl	$-2, %ecx
	movslq	%ecx, %rcx
	orq	144(%r15,%rcx,8), %rdx
	movq	%rdx, %rcx
	subq	$1, %rdx
	notq	%rcx
.L5481:

	movdqu	144(%r12), %xmm0
	andq	%rcx, %rdx
	sarq	$63, %rdx
	movq	%rdx, 64(%rsp)
	notq	%rdx
	movq	%rdx, 24(%rsp)
	movl	%esi, %edx
	shrl	%edx
	cmpl	$1, %edx
	je	.L5393
	movdqu	160(%r12), %xmm3
	por	%xmm3, %xmm0
	cmpl	$2, %edx
	je	.L5393
	movdqu	176(%r12), %xmm5
	por	%xmm5, %xmm0
	cmpl	$3, %edx
	je	.L5393
	movdqu	192(%r12), %xmm7
	por	%xmm7, %xmm0
	cmpl	$4, %edx
	je	.L5393
	movdqu	208(%r12), %xmm7
	por	%xmm7, %xmm0
	cmpl	$5, %edx
	je	.L5393
	xorl	%ecx, %ecx
.L5394:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	224(%r12,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%edx, %edi
	jb	.L5394
	.p2align 4,,10
	.p2align 3
.L5393:

	movdqa	%xmm0, %xmm1
	movl	%esi, %ecx
	psrldq	$8, %xmm1
	andl	$-2, %ecx
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %sil
	je	.L5395
.L5413:

	movslq	%ecx, %rcx
	orq	144(%r12,%rcx,8), %rdx
.L5395:

	movq	%rdx, %rcx
	subq	$1, %rdx
	movq	24(%rsp), %rbx
	notq	%rcx
	andq	%rcx, %rdx
	sarq	$63, %rdx
	movq	%rdx, 48(%rsp)
	notq	%rdx
	andq	%rdx, %rbx
	movq	%rdx, 56(%rsp)
	movq	%rbx, 104(%rsp)
.L5387:

	leaq	296(%rbp), %r13
	leaq	352(%rsp), %rbx
	movq	%rax, 88(%rsp)
	movslq	%esi, %rcx
	leaq	144(%r15), %rax
	movq	%rbx, %rdi
	movq	%r13, %r8
	movq	%rbx, 8(%rsp)
	movq	%rax, %rdx
	movq	%rax, %rsi
	leaq	432(%rsp), %rbx
	movq	%rax, 40(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	144(%r12), %rax
	movq	%rbx, %rdi
	movq	%r13, %r8
	movslq	328(%rbp), %rcx
	movq	%rax, %rdx
	movq	%rax, %rsi
	movq	%rax, 32(%rsp)
	leaq	592(%rsp), %r14
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%rbx, %rdx
	movq	%r13, %r8
	movq	%r15, %rsi
	leaq	512(%rsp), %r11
	movslq	328(%rbp), %rcx
	movq	%r11, %rdi
	movq	%r11, 80(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movslq	328(%rbp), %r9
	movq	32(%rsp), %rdx
	movq	%r14, %rdi
	movq	320(%rbp), %rcx
	movq	40(%rsp), %rsi
	leaq	1472(%rsp), %r8
	movq	%r8, (%rsp)
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r13, %r8
	movq	%r14, %rdx
	movq	%r14, %rsi
	movslq	328(%rbp), %rcx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	(%rsp), %r8
	movq	%r14, %rdi
	movq	%r14, %rsi
	movq	320(%rbp), %rcx
	movslq	328(%rbp), %r9
	movq	8(%rsp), %rdx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%r8, (%rsp)
	movslq	328(%rbp), %r9
	movq	320(%rbp), %rcx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	32(%rsp), %rsi
	movq	%rbx, %rdx
	movq	%r13, %r8
	leaq	672(%rsp), %rax
	movslq	328(%rbp), %rcx
	movq	%rax, %rdi
	movq	%rax, %rbx
	movq	%rax, 72(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	leaq	72(%r15), %rdx
	movslq	328(%rbp), %rcx
	movq	%r13, %r8
	leaq	752(%rsp), %rbx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movq	%r12, %rsi
	movslq	328(%rbp), %rcx
	movq	%rbx, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	832(%rsp), %rax
	movq	(%rsp), %r8
	movq	%rbx, %rsi
	movq	320(%rbp), %rcx
	movq	80(%rsp), %rdx
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
	movslq	328(%rbp), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movslq	328(%rbp), %rcx
	movq	88(%rsp), %rax
	testl	%ecx, %ecx
	jle	.L5415
	cmpl	$1, %ecx
	je	.L5416
	movdqa	832(%rsp), %xmm0
	movl	%ecx, %edx
	shrl	%edx
	cmpl	$1, %edx
	je	.L5398
	por	848(%rsp), %xmm0
	cmpl	$2, %edx
	je	.L5398
	por	864(%rsp), %xmm0
	cmpl	$3, %edx
	je	.L5398
	por	880(%rsp), %xmm0
.L5398:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L5399
	movl	%ecx, %esi
	andl	$-2, %esi
.L5397:

	movslq	%esi, %rsi
	orq	832(%rsp,%rsi,8), %rdx
.L5399:

	movq	%rdx, %rbx
	subq	$1, %rdx
	notq	%rbx
	andq	%rdx, %rbx
.L5396:

	movq	%rax, 96(%rsp)
	movq	16(%rsp), %rsi
	movq	%r14, %rdx
	movq	%r13, %r8
	leaq	272(%rsp), %rax
	leaq	992(%rsp), %r14
	movq	%rax, %rdi
	movq	%rax, 88(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movslq	328(%rbp), %rcx
	movq	40(%rsp), %rsi
	leaq	912(%rsp), %rdi
	movq	%rdi, 8(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movq	%r14, %rdi
	movslq	328(%rbp), %rcx
	leaq	72(%r12), %rsi
	movq	%rsi, 40(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	1072(%rsp), %rax
	movq	(%rsp), %r8
	movq	%r14, %rsi
	movq	320(%rbp), %rcx
	movq	72(%rsp), %rdx
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	movslq	328(%rbp), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movslq	328(%rbp), %r9
	movq	%rdi, %rdx
	movq	%rdi, %rsi
	movq	320(%rbp), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movslq	328(%rbp), %r9
	movq	96(%rsp), %rax
	testl	%r9d, %r9d
	jle	.L5400
	cmpl	$1, %r9d
	je	.L5417
	movdqa	1072(%rsp), %xmm0
	movl	%r9d, %edx
	shrl	%edx
	cmpl	$1, %edx
	je	.L5402
	por	1088(%rsp), %xmm0
	cmpl	$2, %edx
	je	.L5402
	por	1104(%rsp), %xmm0
	cmpl	$3, %edx
	je	.L5402
	por	1120(%rsp), %xmm0
.L5402:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %r9b
	je	.L5403
	movl	%r9d, %ecx
	andl	$-2, %ecx
.L5401:

	movslq	%ecx, %rcx
	orq	1072(%rsp,%rcx,8), %rdx
.L5403:

	leaq	-1(%rdx), %rcx
	notq	%rdx
	andq	%rcx, %rdx
	andq	%rdx, %rbx
.L5400:

	sarq	$63, %rbx
	andq	104(%rsp), %rbx
	testq	%rbx, %rbx
	jne	.L5385
	movq	16(%rsp), %rdx
	leaq	1152(%rsp), %r14
	movq	320(%rbp), %rcx
	movq	%rax, 104(%rsp)
	movq	(%rsp), %r8
	movq	%r14, %rdi
	movq	%rdx, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r13, %r8
	movq	%r14, %rdx
	movq	%r14, %rsi
	movslq	328(%rbp), %rcx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	16(%rsp), %rsi
	movq	%r13, %r8
	movq	%r14, %rdx
	leaq	1232(%rsp), %rax
	movslq	328(%rbp), %rcx
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	80(%rsp), %rsi
	movq	%r13, %r8
	movq	%r14, %rdx
	leaq	1312(%rsp), %rax
	movslq	328(%rbp), %rcx
	movq	%rax, %rdi
	movq	%rax, %r14
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %rdx
	leaq	112(%rsp), %r10
	movq	%r13, %r8
	movslq	328(%rbp), %rcx
	movq	%r10, %rdi
	movq	%r10, 80(%rsp)
	movq	%rdx, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	80(%rsp), %r10
	movq	(%rsp), %r8
	movq	320(%rbp), %rcx
	movslq	328(%rbp), %r9
	movq	16(%rsp), %rdx
	movq	%r10, %rsi
	movq	%r10, %rdi
	movq	%r10, (%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	(%rsp), %r10
	movq	320(%rbp), %rcx
	movq	%r14, %rdx
	movslq	328(%rbp), %r9
	movq	%r10, %rsi
	movq	%r10, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	(%rsp), %r10
	movq	%r14, %rdx
	movq	%r14, 80(%rsp)
	movq	320(%rbp), %rcx
	movslq	328(%rbp), %r9
	leaq	192(%rsp), %r14
	movq	%r10, %rsi
	movq	%r10, %rdi
	movq	%r10, 96(%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movslq	328(%rbp), %r9
	movq	96(%rsp), %rdx
	movq	%r14, %rdi
	movq	320(%rbp), %rcx
	movq	80(%rsp), %rsi
	movq	%r8, (%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movq	%r14, %rsi
	movslq	328(%rbp), %rcx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	1392(%rsp), %rsi
	movq	16(%rsp), %rdx
	movq	%r13, %r8
	movq	%rsi, %rdi
	movslq	328(%rbp), %rcx
	movq	72(%rsp), %rsi
	movq	%rdi, %r13
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	(%rsp), %r8
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	320(%rbp), %rcx
	movslq	328(%rbp), %r9
	movq	%r14, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	320(%rbp), %rcx
	movq	%r14, %rsi
	movq	%r13, %rdx
	movslq	328(%rbp), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movslq	328(%rbp), %rsi
	testq	%rsi, %rsi
	je	.L5384
	movq	96(%rsp), %r10
	leaq	0(,%rsi,8), %r8
	movq	104(%rsp), %rax
	leaq	(%r12,%r8), %r13
	movq	24(%rsp), %rbp
	movq	64(%rsp), %r9
	movq	%r10, %rdx
	.p2align 4,,10
	.p2align 3
.L5405:

	movq	(%rdx), %rcx
	movq	(%r12), %rdi
	addq	$8, %r12
	addq	$8, %rdx
	andq	%rbp, %rcx
	andq	%r9, %rdi
	orq	%rdi, %rcx
	movq	%rcx, -8(%rdx)
	cmpq	%r12, %r13
	jne	.L5405
	xorl	%edx, %edx
	movq	56(%rsp), %rbp
	movq	48(%rsp), %r9
	.p2align 4,,10
	.p2align 3
.L5406:

	movq	(%r15,%rdx,8), %rdi
	movq	(%r10,%rdx,8), %rcx
	andq	%r9, %rdi
	andq	%rbp, %rcx
	orq	%rdi, %rcx
	movq	%rcx, (%rax,%rdx,8)
	addq	$1, %rdx
	cmpq	%rsi, %rdx
	jne	.L5406
	movq	40(%rsp), %rdi
	movq	%r14, %rdx
	leaq	(%r14,%r8), %r12
	movq	24(%rsp), %rbp
	movq	64(%rsp), %r10
	.p2align 4,,10
	.p2align 3
.L5407:

	movq	(%rdx), %rcx
	movq	(%rdi), %r9
	addq	$8, %rdx
	addq	$8, %rdi
	andq	%rbp, %rcx
	andq	%r10, %r9
	orq	%r9, %rcx
	movq	%rcx, -8(%rdx)
	cmpq	%r12, %rdx
	jne	.L5407
	xorl	%edx, %edx
	movq	56(%rsp), %r10
	movq	48(%rsp), %r9
	.p2align 4,,10
	.p2align 3
.L5408:

	movq	72(%r15,%rdx,8), %rdi
	movq	(%r14,%rdx,8), %rcx
	andq	%r9, %rdi
	andq	%r10, %rcx
	orq	%rdi, %rcx
	movq	%rcx, 72(%rax,%rdx,8)
	addq	$1, %rdx
	cmpq	%rsi, %rdx
	jne	.L5408
	movq	88(%rsp), %rcx
	movq	32(%rsp), %rdi
	movq	24(%rsp), %r10
	movq	64(%rsp), %r11
	movq	%rcx, %rdx
	addq	%rcx, %r8
	.p2align 4,,10
	.p2align 3
.L5409:

	movq	(%rdx), %rcx
	movq	(%rdi), %r9
	addq	$8, %rdx
	addq	$8, %rdi
	andq	%r10, %rcx
	andq	%r11, %r9
	orq	%r9, %rcx
	movq	%rcx, -8(%rdx)
	cmpq	%r8, %rdx
	jne	.L5409
	movq	88(%rsp), %r9
	movq	56(%rsp), %rdi
	movq	48(%rsp), %rcx
	.p2align 4,,10
	.p2align 3
.L5410:

	movq	144(%r15,%rbx,8), %r8
	movq	(%r9,%rbx,8), %rdx
	andq	%rcx, %r8
	andq	%rdi, %rdx
	orq	%r8, %rdx
	movq	%rdx, 144(%rax,%rbx,8)
	addq	$1, %rbx
	cmpq	%rsi, %rbx
	jne	.L5410
.L5384:

	movq	1544(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5484
	addq	$1560, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5483:

	.cfi_restore_state
	leaq	-1(%rdx), %rcx
	notq	%rdx
	jmp	.L5481
	.p2align 4,,10
	.p2align 3
.L5385:

	movq	%r15, %rdx
	movq	%rax, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	jmp	.L5384
	.p2align 4,,10
	.p2align 3
.L5415:

	movq	$-1, %rbx
	jmp	.L5396
	.p2align 4,,10
	.p2align 3
.L5482:

	movq	$0, 104(%rsp)
	movq	$0, 56(%rsp)
	movq	$-1, 48(%rsp)
	movq	$0, 24(%rsp)
	movq	$-1, 64(%rsp)
	jmp	.L5387
.L5389:

	movq	144(%r15), %rdx
	leaq	-1(%rdx), %rcx
	notq	%rdx
	andq	%rcx, %rdx
	xorl	%ecx, %ecx
	sarq	$63, %rdx
	movq	%rdx, 64(%rsp)
	notq	%rdx
	movq	%rdx, 24(%rsp)
	xorl	%edx, %edx
	jmp	.L5413
.L5417:

	xorl	%ecx, %ecx
	xorl	%edx, %edx
	jmp	.L5401
.L5416:

	xorl	%edx, %edx
	xorl	%esi, %esi
	jmp	.L5397
.L5484:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1885:

	.size	ec_GFp_mont_add, .-ec_GFp_mont_add
# WAS .section	.text.ecp_nistz256_scalar_to_montgomery_inv_vartime,"ax",@progbits
.text
	.p2align 4
	.type	ecp_nistz256_scalar_to_montgomery_inv_vartime, @function
.Lecp_nistz256_scalar_to_montgomery_inv_vartime_local_target:
ecp_nistz256_scalar_to_montgomery_inv_vartime:
.LFB2009:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$16, 7(%rax)
	je	.L5521
	movq	256(%r12), %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	beeu_mod_inverse_vartime@PLT
	call	.Lbeeu_mod_inverse_vartime_local_target
	testl	%eax, %eax
	jne	.L5522
.L5487:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5522:

	.cfi_restore_state
	movslq	264(%r12), %rcx
	movq	232(%r12), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	leaq	232(%r12), %r8
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
.L5493:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5521:

	.cfi_restore_state
	movl	264(%r12), %eax
	testl	%eax, %eax
	jle	.L5487
	cmpl	$1, %eax
	je	.L5494
	movl	%eax, %edx
	movdqu	(%rbx), %xmm0
	shrl	%edx
	cmpl	$1, %edx
	je	.L5489
	movdqu	16(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %edx
	je	.L5489
	movdqu	32(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %edx
	je	.L5489
	movdqu	48(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %edx
	je	.L5489
	movdqu	64(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %edx
	je	.L5489
	xorl	%ecx, %ecx
.L5490:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	80(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%edx, %esi
	jb	.L5490
	.p2align 4,,10
	.p2align 3
.L5489:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rcx
	testb	$1, %al
	je	.L5491
	andl	$-2, %eax
.L5488:

	cltq
	orq	(%rbx,%rax,8), %rcx
.L5491:

	testq	%rcx, %rcx
	je	.L5487
	movq	(%r12), %rax
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
	call	*136(%rax)
	movq	%rbp, %rdx
	movq	%rbp, %rdi
	movslq	264(%r12), %rsi
	leaq	232(%r12), %r8
	movq	%rsi, %rcx
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	jmp	.L5493
.L5494:

	xorl	%ecx, %ecx
	xorl	%eax, %eax
	jmp	.L5488
	.cfi_endproc
.LFE2009:

	.size	ecp_nistz256_scalar_to_montgomery_inv_vartime, .-ecp_nistz256_scalar_to_montgomery_inv_vartime
# WAS .section	.text.ec_GFp_mont_point_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_mont_point_get_affine_coordinates, @function
.Lec_GFp_mont_point_get_affine_coordinates_local_target:
ec_GFp_mont_point_get_affine_coordinates:
.LFB1883:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r9
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$184, %rsp
	.cfi_def_cfa_offset 240
	movslq	328(%rdi), %rdx
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L5535
	cmpl	$1, %edx
	je	.L5536
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L5526
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L5526
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L5526
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L5526
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L5526
	xorl	%ecx, %ecx
.L5527:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L5527
	.p2align 4,,10
	.p2align 3
.L5526:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L5528
	movl	%edx, %ecx
	andl	$-2, %ecx
.L5525:

	movslq	%ecx, %rcx
	orq	144(%rbx,%rcx,8), %rax
.L5528:

	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	testq	%rax, %rcx
	sets	%al
	movzbl	%al, %eax
.L5524:

	testl	%eax, %eax
	jne	.L5560
	leaq	96(%rsp), %r14
	movq	%r9, 8(%rsp)
	leaq	16(%rsp), %r15
	leaq	296(%rbp), %r13
	leaq	144(%rbx), %rsi
	movq	%r14, %rdi
	movq	%r13, %rcx
# WAS call	bn_mod_inverse0_prime_mont_small
	call	.Lbn_mod_inverse0_prime_mont_small_local_target
	movq	%r13, %r8
	movq	%r14, %rdx
	movq	%r14, %rsi
	movslq	328(%rbp), %rcx
	movq	%r15, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %r9
	testq	%r9, %r9
	je	.L5531
	movslq	328(%rbp), %rcx
	movq	%r13, %r8
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r9, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
.L5531:

	testq	%r12, %r12
	je	.L5533
	movslq	328(%rbp), %rcx
	movq	%r13, %r8
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	72(%rbx), %rsi
	movq	%r13, %r8
	movq	%r15, %rdx
	movslq	328(%rbp), %rcx
	movq	%r12, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
.L5533:

	movl	$1, %eax
.L5523:

	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L5561
	addq	$184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5560:

	.cfi_restore_state
	movl	$150, %r8d
	leaq	.LC178(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L5523
	.p2align 4,,10
	.p2align 3
.L5535:

	movl	$1, %eax
	jmp	.L5524
.L5536:

	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L5525
.L5561:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1883:

	.size	ec_GFp_mont_point_get_affine_coordinates, .-ec_GFp_mont_point_get_affine_coordinates
# WAS .section	.text.bn_mont_n0,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mont_n0
	.hidden	bn_mont_n0
	.type	bn_mont_n0, @function
.Lbn_mont_n0_local_target:
bn_mont_n0:
.LFB1013:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movl	$1, %ecx
	movl	$64, %edi
	movabsq	$-9223372036854775808, %r9
	movq	(%rax), %r10
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L5563:

	movq	%rcx, %rdx
	movq	%r10, %r8
	shrq	%rax
	andl	$1, %edx
	negq	%rdx
	andq	%rdx, %r8
	andq	%r9, %rdx
	movq	%r8, %rsi
	addq	%rdx, %rax
	xorq	%rcx, %rsi
	andq	%r8, %rcx
	shrq	%rsi
	addq	%rsi, %rcx
	subq	$1, %rdi
	jne	.L5563
	ret
	.cfi_endproc
.LFE1013:

	.size	bn_mont_n0, .-bn_mont_n0
# WAS .section	.text.bn_abs_sub_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_abs_sub_consttime
	.type	bn_abs_sub_consttime, @function
.Lbn_abs_sub_consttime_local_target:
bn_abs_sub_consttime:
.LFB1020:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%rcx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	8(%rdx), %r15d
	movl	8(%rsi), %r14d
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L5568
	cmpl	%r14d, %r15d
	movq	%rax, 8(%rsp)
	movl	%r14d, %eax
	movq	%r13, %rdi
	cmovge	%r15d, %eax
	movslq	%eax, %rsi
	movl	%eax, 16(%rsp)
	movq	%rsi, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdx
	testl	%eax, %eax
	jne	.L5581
.L5568:

	xorl	%ebp, %ebp
.L5567:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5581:

	.cfi_restore_state
	movq	%rdx, %rdi
	movq	%rdx, (%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movq	(%rsp), %rdx
	testl	%eax, %eax
	je	.L5568
	cmpl	%r14d, %r15d
	movl	%r14d, %eax
	movq	(%rdx), %r9
	movq	(%r12), %r12
	cmovle	%r15d, %eax
	movl	%r14d, %r10d
	movq	0(%rbp), %rsi
	movq	0(%r13), %r11
	subl	%r15d, %r10d
	movq	%r9, %rdi
	movq	%r12, %rdx
	movq	%r9, 24(%rsp)
	movl	%r10d, %r8d
	movl	%eax, %ecx
	movl	%r10d, 20(%rsp)
	movq	%rsi, 8(%rsp)
	movl	%eax, (%rsp)
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movl	%r15d, %r8d
	movq	8(%rsp), %rdx
	movq	%r12, %rsi
	subl	%r14d, %r8d
	movl	(%rsp), %r14d
	movq	%r11, %rdi
	movq	%rax, %rbp
	movl	%r14d, %ecx
# WAS call	bn_sub_part_words
	call	.Lbn_sub_part_words_local_target
	movl	20(%rsp), %r10d
	movq	%rbp, %rdi
	negq	%rdi
	movl	%r10d, %esi
	negl	%esi
	cmovs	%r10d, %esi
	subq	$1, %rbp
	xorl	%eax, %eax
	addl	%r14d, %esi
	movslq	%esi, %rsi
	testq	%rsi, %rsi
	je	.L5571
	movq	24(%rsp), %r9
	.p2align 4,,10
	.p2align 3
.L5570:

	movq	(%r11,%rax,8), %rdx
	movq	(%r9,%rax,8), %rcx
	andq	%rdi, %rdx
	andq	%rbp, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%r11,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rsi
	jne	.L5570
.L5571:

	movl	16(%rsp), %eax
	movl	$1, %ebp
	movl	%eax, 8(%r13)
	jmp	.L5567
	.cfi_endproc
.LFE1020:

	.size	bn_abs_sub_consttime, .-bn_abs_sub_consttime
# WAS .section	.text.BN_mul,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mul
	.type	BN_mul, @function
.LBN_mul_local_target:
BN_mul:
.LFB1024:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	bn_mul_impl
	call	.Lbn_mul_impl_local_target
	testl	%eax, %eax
	je	.L5582
	movl	8(%rbx), %eax
	testl	%eax, %eax
	jle	.L5584
	movq	(%rbx), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L5585
	.p2align 4,,10
	.p2align 3
.L5587:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L5586
.L5585:

	cmpq	$0, -8(%rdx)
	je	.L5587
	movl	%eax, 8(%rbx)
.L5589:

	movl	$1, %eax
.L5582:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5586:

	.cfi_restore_state
	movl	$0, 8(%rbx)
.L5590:

	movl	$0, 16(%rbx)
	jmp	.L5589
.L5584:

	je	.L5590
	jmp	.L5589
	.cfi_endproc
.LFE1024:

	.size	BN_mul, .-BN_mul
# WAS .section	.rodata.bn_mul_consttime.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC179:

	.string	"/aws-lc/crypto/fipsmodule/bn/mul.c"
# WAS .section	.text.bn_mul_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mul_consttime
	.hidden	bn_mul_consttime
	.type	bn_mul_consttime, @function
.Lbn_mul_consttime_local_target:
bn_mul_consttime:
.LFB1025:

	.cfi_startproc
	endbr64
	movl	16(%rsi), %r8d
	testl	%r8d, %r8d
	jne	.L5597
	movl	16(%rdx), %eax
	testl	%eax, %eax
	je	.L5603
.L5597:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
	movl	$525, %r8d
	leaq	.LC179(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5603:

# WAS jmp	bn_mul_impl
	jmp	.Lbn_mul_impl_local_target
	.cfi_endproc
.LFE1025:

	.size	bn_mul_consttime, .-bn_mul_consttime
# WAS .section	.text.unlikely.bn_mul_small,"ax",@progbits
.text
.LCOLDB180:

# WAS .section	.text.bn_mul_small,"ax",@progbits
.text
.LHOTB180:

	.p2align 4
	.globl	bn_mul_small
	.hidden	bn_mul_small
	.type	bn_mul_small, @function
.Lbn_mul_small_local_target:
bn_mul_small:
.LFB1026:

	.cfi_startproc
	endbr64
	movq	%rsi, %rax
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	movq	%r8, %rcx
	movq	%r9, %r8
	addq	%rdx, %r9
	cmpq	%rax, %r9
	jne	.L5613
	cmpq	$8, %rdx
	jne	.L5606
	cmpq	$8, %r8
	jne	.L5606
	movq	%rcx, %rdx
# WAS jmp	bn_mul_comba8
	jmp	.Lbn_mul_comba8_local_target
	.p2align 4,,10
	.p2align 3
.L5606:

# WAS jmp	bn_mul_normal
	jmp	.Lbn_mul_normal_local_target
	.cfi_endproc
# WAS .section	.text.unlikely.bn_mul_small
.text
	.cfi_startproc
	.type	bn_mul_small.cold, @function
.Lbn_mul_small.cold_local_target:
bn_mul_small.cold:
.LFSB1026:

.L5613:

	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1026:

# WAS .section	.text.bn_mul_small
.text
	.size	bn_mul_small, .-bn_mul_small
# WAS .section	.text.unlikely.bn_mul_small
.text
	.size	bn_mul_small.cold, .-bn_mul_small.cold
.LCOLDE180:

# WAS .section	.text.bn_mul_small
.text
.LHOTE180:

# WAS .section	.text.BN_mul_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mul_word
	.type	BN_mul_word, @function
.LBN_mul_word_local_target:
BN_mul_word:
.LFB1029:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	8(%rdi), %ebp
	testl	%ebp, %ebp
	je	.L5618
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	je	.L5629
	movq	(%rdi), %rdi
	movq	%rsi, %rcx
	movslq	%ebp, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_words.part.0
	call	.Lbn_mul_words.part.0_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	jne	.L5630
.L5618:

	movl	$1, %eax
.L5616:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5629:

	.cfi_restore_state
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L5618
	.p2align 4,,10
	.p2align 3
.L5630:

	leal	1(%rbp), %esi
	movq	%rbx, %rdi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5616
	movslq	8(%rbx), %rax
	movq	(%rbx), %rdx
	leal	1(%rax), %ecx
	movl	%ecx, 8(%rbx)
	movq	%r12, (%rdx,%rax,8)
	jmp	.L5618
	.cfi_endproc
.LFE1029:

	.size	BN_mul_word, .-BN_mul_word
# WAS .section	.text.bn_sqr_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_sqr_consttime
	.hidden	bn_sqr_consttime
	.type	bn_sqr_consttime, @function
.Lbn_sqr_consttime_local_target:
bn_sqr_consttime:
.LFB1030:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$296, %rsp
	.cfi_def_cfa_offset 352
	movl	8(%rsi), %r13d
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
	testl	%r13d, %r13d
	jle	.L5657
	movq	%rsi, %r12
	movq	%rdx, %rdi
	movq	%rdx, %rbp
	movq	%rbx, %r15
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	cmpq	%rbx, %r12
	je	.L5658
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%r15, %r15
	je	.L5638
.L5664:

	testq	%rax, %rax
	je	.L5638
	leal	(%r13,%r13), %eax
	movq	%r15, %rdi
	movl	%eax, 4(%rsp)
	cltq
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5638
	cmpl	$4, %r13d
	je	.L5659
	cmpl	$8, %r13d
	je	.L5660
	cmpl	$15, %r13d
	jle	.L5661
	leal	-1(%r13), %eax
	testl	%r13d, %eax
	je	.L5662
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5638
	movq	(%r14), %rcx
	movq	(%r12), %rsi
	movslq	%r13d, %rdx
	movq	(%r15), %rdi
# WAS call	bn_sqr_normal.part.0
	call	.Lbn_sqr_normal.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L5640:

	movl	4(%rsp), %eax
	movl	$0, 16(%r15)
	movl	$1, %r12d
	movl	%eax, 8(%r15)
	cmpq	%rbx, %r15
	je	.L5637
	movq	%r15, %rsi
	movq	%rbx, %rdi
	xorl	%r12d, %r12d
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%r12b
	jmp	.L5637
	.p2align 4,,10
	.p2align 3
.L5638:

	xorl	%r12d, %r12d
.L5637:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L5631:

	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5663
	addq	$296, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5657:

	.cfi_restore_state
	movl	$0, 8(%rdi)
	movl	$1, %r12d
	movl	$0, 16(%rdi)
	jmp	.L5631
	.p2align 4,,10
	.p2align 3
.L5658:

	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%r15, %r15
	jne	.L5664
	jmp	.L5638
	.p2align 4,,10
	.p2align 3
.L5662:

	leal	0(,%r13,4), %esi
	movq	%r14, %rdi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5638
	movq	(%r14), %rcx
	movq	(%r12), %rsi
	movslq	%r13d, %rdx
	movq	(%r15), %rdi
# WAS call	bn_sqr_recursive
	call	.Lbn_sqr_recursive_local_target
	jmp	.L5640
	.p2align 4,,10
	.p2align 3
.L5661:

	movq	(%r12), %rsi
	movq	(%r15), %rdi
	leaq	16(%rsp), %rcx
	movslq	%r13d, %rdx
# WAS call	bn_sqr_normal.part.0
	call	.Lbn_sqr_normal.part.0_local_target
	jmp	.L5640
	.p2align 4,,10
	.p2align 3
.L5659:

	movq	(%r12), %rsi
	movq	(%r15), %rdi
# WAS call	bn_sqr_comba4
	call	.Lbn_sqr_comba4_local_target
	jmp	.L5640
	.p2align 4,,10
	.p2align 3
.L5660:

	movq	(%r12), %rsi
	movq	(%r15), %rdi
# WAS call	bn_sqr_comba8
	call	.Lbn_sqr_comba8_local_target
	jmp	.L5640
.L5663:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1030:

	.size	bn_sqr_consttime, .-bn_sqr_consttime
# WAS .section	.text.BN_mod_mul_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_mul_montgomery
	.type	BN_mod_mul_montgomery, @function
.LBN_mod_mul_montgomery_local_target:
BN_mod_mul_montgomery:
.LFB1007:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movl	16(%rsi), %r9d
	testl	%r9d, %r9d
	jne	.L5666
	movl	16(%rdx), %r15d
	movq	%rdx, %r12
	testl	%r15d, %r15d
	jne	.L5666
	movl	32(%rcx), %r10d
	movq	%rdi, %r14
	movq	%rsi, %rbx
	movq	%rcx, %r13
	movq	%r8, %rbp
	cmpl	$1, %r10d
	jle	.L5669
	cmpl	%r10d, 8(%rsi)
	je	.L5688
.L5669:

	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %rdi
	testq	%rax, %rax
	je	.L5677
	cmpq	%r12, %rbx
	je	.L5689
	movl	16(%rbx), %edx
	testl	%edx, %edx
	jne	.L5678
	movl	16(%r12), %eax
	testl	%eax, %eax
	je	.L5679
.L5678:

	movl	$525, %r8d
	leaq	.LC179(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L5677:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L5665:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5666:

	.cfi_restore_state
	movl	$542, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L5668:

	xorl	%r15d, %r15d
	jmp	.L5665
	.p2align 4,,10
	.p2align 3
.L5679:

	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rdi, 8(%rsp)
# WAS call	bn_mul_impl
	call	.Lbn_mul_impl_local_target
	movq	8(%rsp), %rdi
	testl	%eax, %eax
	je	.L5677
.L5680:

	movq	%rdi, %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
	xorl	%r15d, %r15d
# WAS call	BN_from_montgomery_word
	call	.LBN_from_montgomery_word_local_target
	testl	%eax, %eax
	setne	%r15b
	jmp	.L5677
	.p2align 4,,10
	.p2align 3
.L5688:

	cmpl	%r10d, 8(%rdx)
	jne	.L5669
	movslq	%r10d, %rbp
	movl	%r10d, 8(%rsp)
	movq	%rbp, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	movl	8(%rsp), %r10d
	testl	%eax, %eax
	je	.L5668
	movq	24(%r13), %rcx
	movq	(%r12), %rdx
	movq	%rbp, %r9
	leaq	48(%r13), %r8
	movq	(%rbx), %rsi
	movq	(%r14), %rdi
	movl	%r10d, 8(%rsp)
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movl	8(%rsp), %r10d
	testl	%eax, %eax
	je	.L5690
	movl	$0, 16(%r14)
	movl	$1, %r15d
	movl	%r10d, 8(%r14)
	jmp	.L5665
	.p2align 4,,10
	.p2align 3
.L5689:

	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rax, 8(%rsp)
# WAS call	bn_sqr_consttime
	call	.Lbn_sqr_consttime_local_target
	movq	8(%rsp), %rdi
	testl	%eax, %eax
	jne	.L5680
	jmp	.L5677
.L5690:

	movl	$567, %r8d
	leaq	.LC85(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L5668
	.cfi_endproc
.LFE1007:

	.size	BN_mod_mul_montgomery, .-BN_mod_mul_montgomery
# WAS .section	.text.BN_to_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	BN_to_montgomery
	.type	BN_to_montgomery, @function
.LBN_to_montgomery_local_target:
BN_to_montgomery:
.LFB1000:

	.cfi_startproc
	endbr64
	movq	%rcx, %r8
	movq	%rdx, %rcx
# WAS jmp	BN_mod_mul_montgomery@PLT
	jmp	.LBN_mod_mul_montgomery_local_target
	.cfi_endproc
.LFE1000:

	.size	BN_to_montgomery, .-BN_to_montgomery
# WAS .section	.rodata.mod_montgomery.isra.0.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC181:

	.string	"/aws-lc/crypto/fipsmodule/rsa/rsa_impl.c"
# WAS .section	.text.mod_montgomery.isra.0,"ax",@progbits
.text
	.p2align 4
	.type	mod_montgomery.isra.0, @function
.Lmod_montgomery.isra.0_local_target:
mod_montgomery.isra.0:
.LFB3253:

	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	movq	%rcx, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L5693
	movslq	32(%rbx), %rdx
	movslq	8(%r14), %rsi
	cmpq	%rsi, %rdx
	jnb	.L5694
	subq	%rdx, %rsi
	movq	(%r14), %rdi
	cmpq	$1, %rsi
	je	.L5701
	movq	%rsi, %rcx
	leaq	(%rdi,%rdx,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L5696:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rcx, %rax
	jne	.L5696
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %sil
	je	.L5697
	andq	$-2, %rsi
	addq	%rsi, %rdx
.L5695:

	orq	(%rdi,%rdx,8), %rax
.L5697:

	testq	%rax, %rax
	je	.L5694
.L5693:

	movl	$681, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L5700:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5694:

	.cfi_restore_state
	movq	%r12, %rcx
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	BN_from_montgomery@PLT
	call	.LBN_from_montgomery_local_target
	testl	%eax, %eax
	je	.L5700
	movq	%r12, %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	testl	%eax, %eax
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	setne	%al
	popq	%r14
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
.L5701:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L5695
	.cfi_endproc
.LFE3253:

	.size	mod_montgomery.isra.0, .-mod_montgomery.isra.0
# WAS .section	.text.BN_sqr,"ax",@progbits
.text
	.p2align 4
	.globl	BN_sqr
	.type	BN_sqr, @function
.LBN_sqr_local_target:
BN_sqr:
.LFB1031:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	bn_sqr_consttime
	call	.Lbn_sqr_consttime_local_target
	testl	%eax, %eax
	je	.L5707
	movl	8(%rbx), %eax
	testl	%eax, %eax
	jle	.L5709
	movq	(%rbx), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L5710
	.p2align 4,,10
	.p2align 3
.L5712:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L5711
.L5710:

	cmpq	$0, -8(%rdx)
	je	.L5712
	movl	%eax, 8(%rbx)
.L5714:

	movl	$1, %eax
.L5707:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5711:

	.cfi_restore_state
	movl	$0, 8(%rbx)
.L5715:

	movl	$0, 16(%rbx)
	jmp	.L5714
.L5709:

	je	.L5715
	jmp	.L5714
	.cfi_endproc
.LFE1031:

	.size	BN_sqr, .-BN_sqr
# WAS .section	.text.unlikely.bn_sqr_small,"ax",@progbits
.text
.LCOLDB182:

# WAS .section	.text.bn_sqr_small,"ax",@progbits
.text
.LHOTB182:

	.p2align 4
	.globl	bn_sqr_small
	.hidden	bn_sqr_small
	.type	bn_sqr_small, @function
.Lbn_sqr_small_local_target:
bn_sqr_small:
.LFB1032:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rax
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$168, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rdx
	movq	%rdx, 152(%rsp)
	xorl	%edx, %edx
	leaq	(%rcx,%rcx), %rdx
	cmpq	%rax, %rdx
	jne	.L5730
	movq	%rcx, %rbx
	cmpq	$9, %rcx
	ja	.L5730
	cmpq	$4, %rcx
	je	.L5737
	cmpq	$8, %rcx
	je	.L5738
	movq	%rsp, %rbp
	testq	%rcx, %rcx
	je	.L5728
	movq	%rbp, %rcx
	movq	%rbx, %rdx
# WAS call	bn_sqr_normal.part.0
	call	.Lbn_sqr_normal.part.0_local_target
.L5728:

	movq	%rbx, %rsi
	movq	%rbp, %rdi
	salq	$4, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5736
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5737:

	.cfi_restore_state
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5736
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr_comba4
	jmp	.Lbn_sqr_comba4_local_target
	.p2align 4,,10
	.p2align 3
.L5738:

	.cfi_restore_state
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5736
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	bn_sqr_comba8
	jmp	.Lbn_sqr_comba8_local_target
.L5736:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.bn_sqr_small
.text
	.cfi_startproc
	.type	bn_sqr_small.cold, @function
.Lbn_sqr_small.cold_local_target:
bn_sqr_small.cold:
.LFSB1032:

.L5730:

	.cfi_def_cfa_offset 192
	.cfi_offset 3, -24
	.cfi_offset 6, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1032:

# WAS .section	.text.bn_sqr_small
.text
	.size	bn_sqr_small, .-bn_sqr_small
# WAS .section	.text.unlikely.bn_sqr_small
.text
	.size	bn_sqr_small.cold, .-bn_sqr_small.cold
.LCOLDE182:

# WAS .section	.text.bn_sqr_small
.text
.LHOTE182:

# WAS .section	.text.BN_GENCB_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_new
	.type	BN_GENCB_new, @function
.LBN_GENCB_new_local_target:
BN_GENCB_new:
.LFB1035:

	.cfi_startproc
	endbr64
	movl	$24, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE1035:

	.size	BN_GENCB_new, .-BN_GENCB_new
# WAS .section	.text.BN_GENCB_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_free
	.type	BN_GENCB_free, @function
.LBN_GENCB_free_local_target:
BN_GENCB_free:
.LFB1036:

	.cfi_startproc
	endbr64
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.cfi_endproc
.LFE1036:

	.size	BN_GENCB_free, .-BN_GENCB_free
# WAS .section	.text.BN_GENCB_set,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_set
	.type	BN_GENCB_set, @function
.LBN_GENCB_set_local_target:
BN_GENCB_set:
.LFB1037:

	.cfi_startproc
	endbr64
	movb	$1, (%rdi)
	movq	%rsi, 16(%rdi)
	movq	%rdx, 8(%rdi)
	ret
	.cfi_endproc
.LFE1037:

	.size	BN_GENCB_set, .-BN_GENCB_set
# WAS .section	.text.BN_GENCB_set_old,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_set_old
	.type	BN_GENCB_set_old, @function
.LBN_GENCB_set_old_local_target:
BN_GENCB_set_old:
.LFB1038:

	.cfi_startproc
	endbr64
	movb	$2, (%rdi)
	movq	%rsi, 16(%rdi)
	movq	%rdx, 8(%rdi)
	ret
	.cfi_endproc
.LFE1038:

	.size	BN_GENCB_set_old, .-BN_GENCB_set_old
# WAS .section	.text.BN_GENCB_call,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_call
	.type	BN_GENCB_call, @function
.LBN_GENCB_call_local_target:
BN_GENCB_call:
.LFB1039:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	testq	%rdi, %rdi
	je	.L5752
	movl	%esi, %edi
	movl	%edx, %esi
	movzbl	(%rax), %edx
	cmpb	$1, %dl
	je	.L5756
	xorl	%ecx, %ecx
	cmpb	$2, %dl
	je	.L5757
	movl	%ecx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L5757:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rax, %rdx
	call	*16(%rax)
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5756:

	movq	16(%rax), %rcx
	movq	%rax, %rdx
	jmp	*%rcx
	.p2align 4,,10
	.p2align 3
.L5752:

	movl	$1, %ecx
	movl	%ecx, %eax
	ret
	.cfi_endproc
.LFE1039:

	.size	BN_GENCB_call, .-BN_GENCB_call
# WAS .section	.text.BN_GENCB_get_arg,"ax",@progbits
.text
	.p2align 4
	.globl	BN_GENCB_get_arg
	.type	BN_GENCB_get_arg, @function
.LBN_GENCB_get_arg_local_target:
BN_GENCB_get_arg:
.LFB1040:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE1040:

	.size	BN_GENCB_get_arg, .-BN_GENCB_get_arg
# WAS .section	.text.bn_odd_number_is_obviously_composite,"ax",@progbits
.text
	.p2align 4
	.globl	bn_odd_number_is_obviously_composite
	.hidden	bn_odd_number_is_obviously_composite
	.type	bn_odd_number_is_obviously_composite, @function
.Lbn_odd_number_is_obviously_composite_local_target:
bn_odd_number_is_obviously_composite:
.LFB1043:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$1024, %edx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
# WAS leaq	2+kPrimes(%rip), %rbx
	leaq	.LkPrimes_local_target+2(%rip), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	8(%rdi), %eax
	sall	$6, %eax
	cmpl	$1025, %eax
	movl	$512, %eax
	cmovge	%rdx, %rax
	leaq	-2(%rbx), %rdx
	leaq	(%rdx,%rax,2), %r13
	jmp	.L5762
	.p2align 4,,10
	.p2align 3
.L5768:

	addq	$2, %rbx
	cmpq	%r13, %rbx
	je	.L5767
.L5762:

	movzwl	(%rbx), %esi
	movq	%r12, %rdi
	movl	%esi, %ebp
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	jne	.L5768
	movzwl	%bp, %esi
	movq	%r12, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	testl	%eax, %eax
	sete	%al
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5767:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1043:

	.size	bn_odd_number_is_obviously_composite, .-bn_odd_number_is_obviously_composite
# WAS .section	.text.bn_in_range_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_in_range_words
	.hidden	bn_in_range_words
	.type	bn_in_range_words, @function
.Lbn_in_range_words_local_target:
bn_in_range_words:
.LFB1058:

	.cfi_startproc
	endbr64
	movq	%rsi, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rcx, %rsi
	movl	$-1, %ebx
	testq	%r8, %r8
	je	.L5770
	xorl	%ebx, %ebx
	testq	%rcx, %rcx
	je	.L5770
	cmpq	$1, %rcx
	je	.L5777
	leaq	-1(%rcx), %rcx
	cmpq	$2, %rsi
	je	.L5778
	movq	%rcx, %r9
	movq	%rdi, %rax
	pxor	%xmm0, %xmm0
	shrq	%r9
	salq	$4, %r9
	addq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L5773:

	movdqu	8(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%r9, %rax
	jne	.L5773
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %cl
	je	.L5774
	orq	$1, %rcx
.L5772:

	orq	(%rdi,%rcx,8), %rax
.L5774:

	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	andq	%rax, %rcx
.L5771:

	movq	(%rdi), %rax
	movq	%rax, %rbx
	subq	%r8, %rbx
	xorq	%rax, %r8
	xorq	%rax, %rbx
	orq	%r8, %rbx
	xorq	%rax, %rbx
	andq	%rcx, %rbx
	sarq	$63, %rbx
	notl	%ebx
.L5770:

	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	shrl	$31, %eax
	andl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5777:

	.cfi_restore_state
	movq	$-1, %rcx
	jmp	.L5771
.L5778:

	xorl	%eax, %eax
	movl	$1, %ecx
	jmp	.L5772
	.cfi_endproc
.LFE1058:

	.size	bn_in_range_words, .-bn_in_range_words
# WAS .section	.text.RSAZ_1024_mod_exp_avx2,"ax",@progbits
.text
	.p2align 4
	.globl	RSAZ_1024_mod_exp_avx2
	.hidden	RSAZ_1024_mod_exp_avx2
	.type	RSAZ_1024_mod_exp_avx2, @function
.LRSAZ_1024_mod_exp_avx2_local_target:
RSAZ_1024_mod_exp_avx2:
.LFB1065:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r10
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$200, %rsp
	.cfi_def_cfa_offset 256
	movq	256(%rsp), %rdi
	movq	%rdx, 16(%rsp)
	movq	%rcx, 24(%rsp)
	movq	%r8, 8(%rsp)
	leaq	960(%rdi), %r13
	movq	%rdi, %rbx
	leaq	320(%rdi), %r14
	movq	%rdi, 32(%rsp)
	leaq	640(%rdi), %r12
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	movq	%rdi, %rax
	andl	$4095, %eax
	addq	$320, %rax
	shrq	$12, %rax
	jne	.L5787
	movq	%r14, %rbx
	movq	%r12, %r14
	movq	%rdi, %r12
.L5787:

	movq	24(%rsp), %rsi
	movq	%r12, %rdi
	movq	%r10, 40(%rsp)
# WAS call	rsaz_1024_norm2red_avx2@PLT
	call	.Lrsaz_1024_norm2red_avx2_local_target
	movq	%r15, %rsi
	movq	%r14, %rdi
	movl	$3, %r15d
# WAS call	rsaz_1024_norm2red_avx2@PLT
	call	.Lrsaz_1024_norm2red_avx2_local_target
	movq	8(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_norm2red_avx2@PLT
	call	.Lrsaz_1024_norm2red_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r13, %rsi
# WAS leaq	rsaz_two80(%rip), %rdx
	leaq	.Lrsaz_two80_local_target(%rip), %rdx
	movq	%r13, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r13, %rsi
# WAS leaq	rsaz_one(%rip), %rdx
	leaq	.Lrsaz_one_local_target(%rip), %rdx
	movq	%rbx, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	xorl	%edx, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movl	$1, %edx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r14, %rsi
	movl	$1, %r8d
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	$2, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movl	$1, %r8d
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	$4, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movl	$1, %r8d
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	$8, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movl	$1, %r8d
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	$16, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	movq	%r14, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L5789:

	leal	-1(%r15), %edx
	movq	%r13, %rsi
	leal	(%r15,%r15), %r14d
	movq	%rbx, %rdi
# WAS call	rsaz_1024_gather5_avx2@PLT
	call	.Lrsaz_1024_gather5_avx2_local_target
	movq	8(%rsp), %rdx
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movl	%r15d, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	cmpl	$31, %r14d
	ja	.L5791
	.p2align 4,,10
	.p2align 3
.L5788:

	movl	$1, %r8d
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	%r14d, %edx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	rsaz_1024_scatter5_avx2@PLT
	call	.Lrsaz_1024_scatter5_avx2_local_target
	addl	%r14d, %r14d
	cmpl	$31, %r14d
	jle	.L5788
.L5791:

	addl	$2, %r15d
	cmpl	$33, %r15d
	jne	.L5789
	movq	16(%rsp), %rax
	movq	8(%rsp), %r14
	movq	%r13, %rsi
	movl	$1014, %r15d
	movzbl	127(%rax), %edi
	movl	%edi, %edx
	movb	%dil, 8(%rsp)
	movq	%rbx, %rdi
	shrb	$3, %dl
	movzbl	%dl, %edx
# WAS call	rsaz_1024_gather5_avx2@PLT
	call	.Lrsaz_1024_gather5_avx2_local_target
	movq	%r13, 8(%rsp)
	movl	%r15d, %r13d
	movq	16(%rsp), %r15
	.p2align 4,,10
	.p2align 3
.L5792:

	movl	$5, %r8d
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movl	%r13d, %edx
	movl	%r13d, %ecx
	movq	8(%rsp), %rsi
	sarl	$3, %edx
	andl	$7, %ecx
	movq	%r14, %rdi
	subl	$5, %r13d
	movslq	%edx, %rdx
	movzwl	(%r15,%rdx), %edx
	sarl	%cl, %edx
	andl	$31, %edx
# WAS call	rsaz_1024_gather5_avx2@PLT
	call	.Lrsaz_1024_gather5_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	cmpl	$-1, %r13d
	jne	.L5792
	movq	40(%rsp), %r10
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movl	$4, %r8d
	movq	%rbx, %rdi
	movq	8(%rsp), %r13
	movq	%r10, 8(%rsp)
# WAS call	rsaz_1024_sqr_avx2@PLT
	call	.Lrsaz_1024_sqr_avx2_local_target
	movq	16(%rsp), %rax
	movq	%r13, %rsi
	movq	%r14, %rdi
	movzbl	(%rax), %edx
	andl	$15, %edx
# WAS call	rsaz_1024_gather5_avx2@PLT
	call	.Lrsaz_1024_gather5_avx2_local_target
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movq	%r12, %rcx
	movq	%rbp, %r8
	movq	%rbx, %rsi
# WAS leaq	rsaz_one(%rip), %rdx
	leaq	.Lrsaz_one_local_target(%rip), %rdx
	movq	%rbx, %rdi
# WAS call	rsaz_1024_mul_avx2@PLT
	call	.Lrsaz_1024_mul_avx2_local_target
	movq	8(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	rsaz_1024_red2norm_avx2@PLT
	call	.Lrsaz_1024_red2norm_avx2_local_target
	movq	24(%rsp), %rdi
	movq	8(%rsp), %r10
	xorl	%edx, %edx
	leaq	48(%rsp), %rsi
	movl	$16, %ecx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rax,%rax		
	jmp	1f		
.p2align 4			
1:
	movq	(%r10,%rdx,8),%rax	
	sbbq	(%rdi,%rdx,8),%rax	
	movq	%rax,(%rsi,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rax,%rax		

# 0 "" 2
#NO_APP
	andl	$1, %eax
	movq	48(%rsp), %rsi
	movq	%rax, %rcx
	movq	%rax, %rdx
	subq	$1, %rcx
	negq	%rdx
	movq	%rcx, %rax
	movq	(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	56(%rsp), %rsi
	movq	%rcx, (%r10)
	movq	8(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	64(%rsp), %rsi
	movq	%rcx, 8(%r10)
	movq	16(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	72(%rsp), %rsi
	movq	%rcx, 16(%r10)
	movq	24(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	80(%rsp), %rsi
	movq	%rcx, 24(%r10)
	movq	32(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	88(%rsp), %rsi
	movq	%rcx, 32(%r10)
	movq	40(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	96(%rsp), %rsi
	movq	%rcx, 40(%r10)
	movq	48(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	104(%rsp), %rsi
	movq	%rcx, 48(%r10)
	movq	56(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	112(%rsp), %rsi
	movq	%rcx, 56(%r10)
	movq	64(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	120(%rsp), %rsi
	movq	%rcx, 64(%r10)
	movq	72(%r10), %rcx
	andq	%rdx, %rcx
	andq	%rax, %rsi
	orq	%rsi, %rcx
	movq	128(%rsp), %rsi
	movq	%rcx, 72(%r10)
	movq	80(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	%rcx, 80(%r10)
	movq	88(%r10), %rcx
	movq	136(%rsp), %rsi
	movq	32(%rsp), %rdi
	andq	%rdx, %rcx
	andq	%rax, %rsi
	orq	%rsi, %rcx
	movq	144(%rsp), %rsi
	movq	%rcx, 88(%r10)
	movq	96(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	152(%rsp), %rsi
	movq	%rcx, 96(%r10)
	movq	104(%r10), %rcx
	andq	%rax, %rsi
	andq	%rdx, %rcx
	orq	%rsi, %rcx
	movq	160(%rsp), %rsi
	movq	%rcx, 104(%r10)
	movq	112(%r10), %rcx
	andq	%rax, %rsi
	andq	168(%rsp), %rax
	andq	%rdx, %rcx
	andq	120(%r10), %rdx
	orq	%rsi, %rcx
	orq	%rdx, %rax
	movl	$5568, %esi
	movq	%rax, 120(%r10)
	movq	%rcx, 112(%r10)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5804
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L5804:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1065:

	.size	RSAZ_1024_mod_exp_avx2, .-RSAZ_1024_mod_exp_avx2
# WAS .section	.text.RSAZ_mod_exp_avx512_x2,"ax",@progbits
.text
	.p2align 4
	.globl	RSAZ_mod_exp_avx512_x2
	.hidden	RSAZ_mod_exp_avx512_x2
	.type	RSAZ_mod_exp_avx512_x2, @function
.LRSAZ_mod_exp_avx512_x2_local_target:
RSAZ_mod_exp_avx512_x2:
.LFB1067:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pxor	%xmm0, %xmm0
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$264, %rsp
	.cfi_def_cfa_offset 320
	movq	320(%rsp), %rax
	movq	%r8, 16(%rsp)
	movq	%rdi, 104(%rsp)
	movq	%rax, 96(%rsp)
	movq	328(%rsp), %rax
	movq	%rsi, 8(%rsp)
	movq	%rax, 24(%rsp)
	movq	336(%rsp), %rax
	movq	%rdx, 112(%rsp)
	movq	%rax, 120(%rsp)
	movq	344(%rsp), %rax
	movq	%rcx, 80(%rsp)
	movq	%rax, 88(%rsp)
	movq	352(%rsp), %rax
	movq	%rax, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	movl	368(%rsp), %eax
	movaps	%xmm0, 224(%rsp)
	addl	$53, %eax
	movslq	%eax, %r8
	sarl	$31, %eax
	imulq	$1321528399, %r8, %r8
	sarq	$36, %r8
	movl	%r8d, %r14d
	subl	%eax, %r14d
	leal	4(%r14), %eax
	sall	$6, %eax
	leal	254(%rax), %ebp
	subl	$1, %eax
	cmovns	%eax, %ebp
	sarl	$8, %ebp
	imull	$28, %ebp, %eax
	cmpl	$1536, 368(%rsp)
	leal	64(,%rax,8), %eax
	je	.L5819
	cmpl	$2048, 368(%rsp)
	je	.L5820
	cmpl	$1024, 368(%rsp)
	je	.L5821
.L5808:

	xorl	%r15d, %r15d
.L5805:

	movq	248(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L5835
	addq	$264, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5820:

	.cfi_restore_state
# WAS movq	rsaz_amm52x40_x1_ifma256@GOTPCREL(%rip), %r13
	leaq	.Lrsaz_amm52x40_x1_ifma256_local_target(%rip), %r13
.L5806:

	cltq
	movq	%rax, %rdi
	movq	%rax, 128(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 72(%rsp)
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L5808
	sall	$2, %ebp
	imull	$52, %r14d, %r10d
	negq	%rax
	movq	8(%rsp), %rdx
	andl	$63, %eax
	movslq	%ebp, %r9
	subl	368(%rsp), %r10d
	movl	%ebp, %esi
	salq	$3, %r9
	leaq	(%rbx,%rax), %rdi
	sall	$2, %r10d
	leaq	(%rdi,%r9), %rax
	movl	%r10d, 48(%rsp)
	leaq	(%rax,%r9), %rbx
	movq	%rax, 40(%rsp)
	leaq	(%rbx,%r9), %rax
	movq	%rdi, 176(%rsp)
	movq	%rax, 64(%rsp)
	addq	%r9, %rax
	leaq	(%rax,%r9), %rcx
	movq	%rax, 152(%rsp)
	leaq	(%rcx,%r9), %r15
	movq	%rcx, 56(%rsp)
	movq	%rcx, 168(%rsp)
	movl	368(%rsp), %ecx
	movq	%rbx, 144(%rsp)
	movq	%rbx, (%rsp)
	movq	%rax, %rbx
# WAS call	to_words52
	call	.Lto_words52_local_target
	movl	368(%rsp), %ecx
	movq	24(%rsp), %rdx
	movl	%ebp, %esi
	movq	40(%rsp), %rdi
# WAS call	to_words52
	call	.Lto_words52_local_target
	movq	80(%rsp), %rdx
	movq	(%rsp), %rdi
	movl	%ebp, %esi
	movl	368(%rsp), %ecx
# WAS call	to_words52
	call	.Lto_words52_local_target
	movq	64(%rsp), %r10
	movl	368(%rsp), %ecx
	movl	%ebp, %esi
	movq	88(%rsp), %rdx
	movq	%r10, %rdi
	movq	%r10, 8(%rsp)
# WAS call	to_words52
	call	.Lto_words52_local_target
	movq	16(%rsp), %rdx
	movl	%ebp, %esi
	movq	%rbx, %rdi
	movl	368(%rsp), %ecx
# WAS call	to_words52
	call	.Lto_words52_local_target
	movl	%ebp, %esi
	movq	56(%rsp), %rbp
	movl	368(%rsp), %ecx
	movq	32(%rsp), %rdx
	movq	%rbp, %rdi
# WAS call	to_words52
	call	.Lto_words52_local_target
	leaq	8(%r15), %rdi
	movslq	%r14d, %r8
	movq	%r15, %rdx
	andq	$-8, %rdi
	salq	$3, %r8
	movq	$0, (%r15)
	movq	%rbx, %rsi
	subq	%rdi, %rdx
	movl	%r8d, %eax
	movq	$0, -8(%r15,%rax)
	leal	(%r8,%rdx), %ecx
	xorl	%eax, %eax
	movq	%r12, %r8
	shrl	$3, %ecx
	rep stosq
	movq	%rbx, %rdi
	movslq	48(%rsp), %rax
	movq	%rax, %r10
	imulq	$1321528399, %rax, %rax
	movl	%r10d, %edx
	sarl	$31, %edx
	sarq	$36, %rax
	subl	%edx, %eax
	imull	$12, %eax, %eax
	leal	(%rax,%r10), %ecx
	movl	%ecx, %edx
	andl	$63, %ecx
	sarl	$6, %edx
	movslq	%edx, %rax
	movl	$1, %edx
	salq	%cl, %rdx
	movq	(%rsp), %rcx
	orq	%rdx, (%r15,%rax,8)
	movq	%rbx, %rdx
	call	*%r13
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	(%rsp), %rcx
	movq	%r12, %r8
	movq	%r15, %rdx
	call	*%r13
	movq	8(%rsp), %rbx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	360(%rsp), %r8
	movq	%rbp, %rdi
	movq	%rbx, %rcx
	call	*%r13
	movq	%rbx, %rcx
	movq	%r15, %rdx
	movq	%rbp, %rsi
	movq	360(%rsp), %r8
	movq	%rbp, %rdi
	call	*%r13
	movq	360(%rsp), %rax
	cmpl	$1536, 368(%rsp)
	movq	%r12, 224(%rsp)
	movq	%rax, 232(%rsp)
	je	.L5822
	cmpl	$2048, 368(%rsp)
	je	.L5823
# WAS movq	extract_multiplier_2x20_win5@GOTPCREL(%rip), %rax
	leaq	.Lextract_multiplier_2x20_win5_local_target(%rip), %rax
	movq	$264, 200(%rsp)
	movl	$160, %r13d
	movl	$10240, %r12d
	movq	$136, 192(%rsp)
# WAS movq	rsaz_amm52x20_x2_ifma256@GOTPCREL(%rip), %rbp
	leaq	.Lrsaz_amm52x20_x2_ifma256_local_target(%rip), %rbp
	movl	$20, %r14d
	movq	$128, 184(%rsp)
	movq	$320, 160(%rsp)
	movq	$11216, 136(%rsp)
	movl	$17, 40(%rsp)
	movq	%rax, 48(%rsp)
.L5809:

	movq	136(%rsp), %rbx
	xorl	%r15d, %r15d
	movq	%rbx, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 208(%rsp)
	testq	%rax, %rax
	je	.L5810
	movq	%rax, %r15
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%r15, %r9
	movq	160(%rsp), %rbx
	negq	%r9
	andl	$63, %r9d
	movq	%rbx, %rdi
	leaq	(%r9,%r15), %r10
	leaq	(%r10,%rbx), %rax
	movq	%r10, 24(%rsp)
	addq	%rax, %rdi
	movq	$1, (%rax)
	movq	%rax, %rsi
	movq	%rax, 56(%rsp)
	leaq	(%rax,%r13), %rax
	leaq	(%rdi,%r12), %r11
	movq	%rdi, %r15
	movq	152(%rsp), %r13
	movq	%rax, 216(%rsp)
	leaq	224(%rsp), %r12
	movq	$1, (%rax)
	movq	144(%rsp), %rax
	movq	%r12, %r8
	movq	%r11, 8(%rsp)
	movq	%r13, %rdx
	movq	%rax, %rcx
	movq	%rdi, 64(%rsp)
	movq	%rax, (%rsp)
	call	*%rbp
	leaq	(%r15,%rbx), %rax
	movq	(%rsp), %rbx
	movq	%r13, %rdx
	movq	%rax, 32(%rsp)
	movq	%rax, %rdi
	movq	%r12, %r8
	leal	(%r14,%r14), %r13d
	movq	%rbx, %rcx
	movq	176(%rsp), %rsi
	movslq	%r13d, %r13
	call	*%rbp
	movq	24(%rsp), %r10
	movq	8(%rsp), %r11
	movq	%r14, %rdx
	leal	0(,%r14,4), %eax
	movq	%r12, 24(%rsp)
	salq	$4, %rdx
	salq	$3, %r13
	cltq
	movq	%r10, 144(%rsp)
	leaq	(%r15,%rax,8), %rax
	movq	%rbx, 16(%rsp)
	movl	$15, %r15d
	movq	%r11, 176(%rsp)
	movq	%rax, %r14
	movq	%rax, %rbx
	subq	%rdx, %r14
	.p2align 4,,10
	.p2align 3
.L5811:

	movq	24(%rsp), %rax
	leaq	0(%r13,%rbx), %r12
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	addq	%r13, %r14
	movq	%rax, %r8
	movq	%rax, 8(%rsp)
	movq	16(%rsp), %rax
	movq	%rax, %rcx
	movq	%rax, (%rsp)
	call	*%rbp
	movq	%rbx, %rsi
	movq	8(%rsp), %r8
	movq	(%rsp), %rcx
	movq	32(%rsp), %rdx
	movq	%r12, %rdi
	leaq	(%r12,%r13), %rbx
	call	*%rbp
	subl	$1, %r15d
	jne	.L5811
	movq	112(%rsp), %rsi
	movq	24(%rsp), %r12
	movl	$64, %r14d
	movq	176(%rsp), %r11
	movq	144(%rsp), %r10
	movq	(%rsi), %rax
	leaq	8(%r11), %rdi
	movq	%rax, (%r11)
	movq	184(%rsp), %rdx
	andq	$-8, %rdi
	movq	-8(%rsi,%rdx), %rax
	movl	%edx, %ecx
	movq	%rax, -8(%r11,%rdx)
	movq	%r11, %rax
	subq	%rdi, %rax
	addl	%eax, %ecx
	subq	%rax, %rsi
	movl	%ecx, %eax
	shrl	$3, %eax
	movl	%eax, %ecx
	rep movsq
	movq	$0, (%r11,%rdx)
	movq	%rdx, %rcx
	movq	120(%rsp), %rsi
	movq	192(%rsp), %rax
	addq	%r11, %rax
	leaq	8(%rax), %rdi
	movq	(%rsi), %rdx
	andq	$-8, %rdi
	movq	%rdx, (%rax)
	movq	-8(%rsi,%rcx), %rdx
	movq	%rdx, -8(%rcx,%rax)
	subq	%rdi, %rax
	addl	%eax, %ecx
	subq	%rax, %rsi
	shrl	$3, %ecx
	rep movsq
	movq	%r11, 8(%rsp)
	movq	%r10, (%rsp)
	movslq	368(%rsp), %r15
	movq	200(%rsp), %rax
	movl	368(%rsp), %edx
	movl	40(%rsp), %esi
	movq	$0, (%r11,%rax)
	imulq	$1717986919, %r15, %rax
	sarl	$31, %edx
	sarq	$33, %rax
	subl	%edx, %eax
	leal	(%rax,%rax,4), %ebx
	movl	%ebx, %eax
	movl	%ebx, %ecx
	leal	-5(%rbx), %r13d
	sarl	$6, %eax
	movslq	%eax, %rdx
	addl	%esi, %eax
	movq	64(%rsp), %rsi
	cltq
	movq	(%r11,%rdx,8), %rdi
	movq	(%r11,%rax,8), %rax
	shrq	%cl, %rdi
	shrq	%cl, %rax
	movq	%rdi, %rdx
	movq	%r10, %rdi
	movq	%rax, %rcx
	movq	48(%rsp), %rax
	call	*%rax
	movq	16(%rsp), %rbx
	movl	%r13d, %eax
	movq	%r15, 16(%rsp)
	movq	(%rsp), %r13
	movq	8(%rsp), %r15
	.p2align 4,,10
	.p2align 3
.L5813:

	movl	%eax, %r8d
	movl	40(%rsp), %r11d
	movl	%eax, %r9d
	movl	%eax, 8(%rsp)
	sarl	$6, %r8d
	andl	$63, %r9d
	movslq	%r8d, %rcx
	movq	(%r15,%rcx,8), %rdx
	movq	8(%r15,%rcx,8), %rdi
	movl	%eax, %ecx
	shrq	%cl, %rdx
	leal	(%r8,%r11), %ecx
	movslq	%ecx, %rcx
	movq	(%r15,%rcx,8), %rsi
	movl	%eax, %ecx
	shrq	%cl, %rsi
	cmpl	$59, %r9d
	jle	.L5812
	movl	%r14d, %ecx
	movq	56(%rsp), %rax
	subl	%r9d, %ecx
	salq	%cl, %rdi
	movq	%rax, (%rsp)
	xorq	%rdx, %rdi
	leal	1(%r8,%r11), %edx
	movslq	%edx, %rdx
	movq	(%r15,%rdx,8), %rdx
	salq	%cl, %rdx
	movq	%rdx, %rcx
	movl	%edi, %edx
	movq	%rax, %rdi
	movq	48(%rsp), %rax
	xorq	%rsi, %rcx
	andl	$31, %edx
	movq	64(%rsp), %rsi
	andl	$31, %ecx
	call	*%rax
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	(%rsp), %rdx
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movl	8(%rsp), %eax
	subl	$5, %eax
	jmp	.L5813
	.p2align 4,,10
	.p2align 3
.L5812:

	movq	56(%rsp), %rax
	movl	%esi, %ecx
	andl	$31, %edx
	movq	64(%rsp), %rsi
	andl	$31, %ecx
	movq	%rax, %rdi
	movq	%rax, (%rsp)
	movq	48(%rsp), %rax
	call	*%rax
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movq	(%rsp), %rdx
	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*%rbp
	movl	8(%rsp), %eax
	subl	$5, %eax
	jns	.L5813
	movq	56(%rsp), %rsi
	movq	%r13, %r10
	xorl	%r13d, %r13d
	movq	16(%rsp), %r15
	movq	160(%rsp), %rax
	movq	%rbx, 144(%rsp)
	movq	%r12, %r8
	leaq	8(%rsi), %rdi
	movq	%rsi, %rcx
	movq	%rsi, %rdx
	movq	$0, -8(%rsi,%rax)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	%eax, %ecx
	movq	%r13, %rax
	shrl	$3, %ecx
	rep stosq
	movq	$1, (%rsi)
	movq	%r10, %rsi
	movq	216(%rsp), %rax
	movq	152(%rsp), %r14
	movq	144(%rsp), %rcx
	movq	$1, (%rax)
	movq	%r14, %rdi
	call	*%rbp
	movq	208(%rsp), %rbx
	movq	136(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	104(%rsp), %rbx
	movl	368(%rsp), %esi
	movq	%r14, %rdx
	movq	%rbx, %rdi
# WAS call	from_words52
	call	.Lfrom_words52_local_target
	movl	368(%rsp), %esi
	movq	96(%rsp), %rdi
	movq	168(%rsp), %rdx
# WAS call	from_words52
	call	.Lfrom_words52_local_target
	movq	%r15, %rsi
	movq	72(%rsp), %r10
	movq	%rbx, %rdi
	shrq	$6, %rsi
	movq	80(%rsp), %rax
	movq	%rsi, %rcx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbx,%r13,8),%rdx	
	sbbq	(%rax,%r13,8),%rdx	
	movq	%rdx,(%r10,%r13,8)	
	lea	1(%r13),%r13	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	movq	%rdx, %rcx
	xorl	%eax, %eax
	andl	$1, %ecx
	movq	%rcx, %r8
	subq	$1, %rcx
	negq	%r8
	.p2align 4,,10
	.p2align 3
.L5814:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r10,%rax,8), %r9
	andq	%r8, %rdx
	andq	%rcx, %r9
	orq	%r9, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rsi
	jne	.L5814
	movq	%rsi, %rcx
	xorl	%edx, %edx
	movq	72(%rsp), %r10
	movq	96(%rsp), %rdi
	movq	88(%rsp), %rbx
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rax,%rax		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rdx,8),%rax	
	sbbq	(%rbx,%rdx,8),%rax	
	movq	%rax,(%r10,%rdx,8)	
	lea	1(%rdx),%rdx	
	dec	%rcx		
	jnz	1b		
	sbbq	%rax,%rax		

# 0 "" 2
#NO_APP
	andl	$1, %eax
	movq	%rax, %rcx
	movq	%rax, %r8
	xorl	%eax, %eax
	negq	%r8
	subq	$1, %rcx
	.p2align 4,,10
	.p2align 3
.L5815:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r10,%rax,8), %r9
	andq	%r8, %rdx
	andq	%rcx, %r9
	orq	%r9, %rdx
	movq	%rdx, (%rdi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %rsi
	jne	.L5815
	movl	$1, %r15d
.L5810:

	movq	72(%rsp), %rbx
	movq	128(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L5805
	.p2align 4,,10
	.p2align 3
.L5819:

# WAS movq	rsaz_amm52x30_x1_ifma256@GOTPCREL(%rip), %r13
	leaq	.Lrsaz_amm52x30_x1_ifma256_local_target(%rip), %r13
	jmp	.L5806
	.p2align 4,,10
	.p2align 3
.L5821:

# WAS movq	rsaz_amm52x20_x1_ifma256@GOTPCREL(%rip), %r13
	leaq	.Lrsaz_amm52x20_x1_ifma256_local_target(%rip), %r13
	jmp	.L5806
	.p2align 4,,10
	.p2align 3
.L5823:

# WAS movq	extract_multiplier_2x40_win5@GOTPCREL(%rip), %rax
	leaq	.Lextract_multiplier_2x40_win5_local_target(%rip), %rax
	movq	$520, 200(%rsp)
	movl	$320, %r13d
	movl	$20480, %r12d
	movq	$264, 192(%rsp)
# WAS movq	rsaz_amm52x40_x2_ifma256@GOTPCREL(%rip), %rbp
	leaq	.Lrsaz_amm52x40_x2_ifma256_local_target(%rip), %rbp
	movl	$40, %r14d
	movq	$256, 184(%rsp)
	movq	$640, 160(%rsp)
	movq	$22352, 136(%rsp)
	movl	$33, 40(%rsp)
	movq	%rax, 48(%rsp)
	jmp	.L5809
	.p2align 4,,10
	.p2align 3
.L5822:

# WAS movq	extract_multiplier_2x30_win5@GOTPCREL(%rip), %rax
	leaq	.Lextract_multiplier_2x30_win5_local_target(%rip), %rax
	movq	$392, 200(%rsp)
	movl	$256, %r13d
	movl	$16384, %r12d
	movq	$200, 192(%rsp)
# WAS movq	rsaz_amm52x30_x2_ifma256@GOTPCREL(%rip), %rbp
	leaq	.Lrsaz_amm52x30_x2_ifma256_local_target(%rip), %rbp
	movl	$32, %r14d
	movq	$192, 184(%rsp)
	movq	$512, 160(%rsp)
	movq	$17872, 136(%rsp)
	movl	$25, 40(%rsp)
	movq	%rax, 48(%rsp)
	jmp	.L5809
.L5835:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1067:

	.size	RSAZ_mod_exp_avx512_x2, .-RSAZ_mod_exp_avx512_x2
# WAS .section	.rodata.BN_lshift.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC183:

	.string	"/aws-lc/crypto/fipsmodule/bn/shift.c"
# WAS .section	.text.BN_lshift,"ax",@progbits
.text
	.p2align 4
	.globl	BN_lshift
	.type	BN_lshift, @function
.LBN_lshift_local_target:
BN_lshift:
.LFB1074:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testl	%edx, %edx
	js	.L5880
	movl	16(%rsi), %eax
	movq	%rsi, %r12
	movl	%edx, %r13d
	movl	8(%rsi), %esi
	sarl	$6, %r13d
	movq	%rdi, %rbp
	movl	%edx, %ebx
	addl	%r13d, %esi
	movl	%eax, 16(%rdi)
	addl	$1, %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5838
	movslq	8(%r12), %rcx
	movq	0(%rbp), %r8
	movq	(%r12), %r10
	leal	(%rcx,%r13), %edi
	movslq	%edi, %rax
	movq	$0, (%r8,%rax,8)
	leal	-1(%rcx), %eax
	andl	$63, %ebx
	jne	.L5841
	testl	%eax, %eax
	js	.L5852
	movslq	%r13d, %rdx
	cmpl	$2, %eax
	jbe	.L5845
	movslq	%ecx, %rsi
	movslq	%r13d, %rdx
	leaq	(%rdx,%rsi), %r9
	leaq	-16(%r10,%rsi,8), %r11
	salq	$3, %r9
	leaq	-8(%r8,%r9), %rsi
	cmpq	%rsi, %r11
	jne	.L5881
.L5845:

	movslq	%eax, %rcx
	leaq	(%r8,%rdx,8), %rsi
	.p2align 4,,10
	.p2align 3
.L5850:

	movq	(%r10,%rcx,8), %rax
	movq	%rax, (%rsi,%rcx,8)
	subq	$1, %rcx
	testl	%ecx, %ecx
	jns	.L5850
	.p2align 4,,10
	.p2align 3
.L5848:

	salq	$3, %rdx
	leal	1(%rdi), %eax
	je	.L5861
.L5844:

	movq	%r8, %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	8(%r12), %edi
	addl	%r13d, %edi
.L5843:

	leal	1(%rdi), %eax
	testl	%eax, %eax
	jle	.L5854
	movq	0(%rbp), %r8
.L5861:

	movslq	%eax, %rdx
	leaq	-8(%r8,%rdx,8), %rdx
	jmp	.L5855
	.p2align 4,,10
	.p2align 3
.L5857:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L5856
.L5855:

	cmpq	$0, (%rdx)
	je	.L5857
	movl	%eax, 8(%rbp)
.L5860:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5880:

	.cfi_restore_state
	movl	$73, %r8d
	leaq	.LC183(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L5838:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5841:

	.cfi_restore_state
	testl	%ecx, %ecx
	jle	.L5852
	movslq	%r13d, %rdx
	movl	$64, %r14d
	cltq
	addq	%rdx, %rcx
	subl	%ebx, %r14d
	leaq	(%r8,%rdx,8), %r11
	movq	(%r8,%rcx,8), %r15
	.p2align 4,,10
	.p2align 3
.L5853:

	movq	(%r10,%rax,8), %r9
	movl	%r14d, %ecx
	movq	%r9, %rsi
	shrq	%cl, %rsi
	movl	%ebx, %ecx
	orq	%r15, %rsi
	movq	%r9, %r15
	salq	%cl, %r15
	movq	%rsi, 8(%r11,%rax,8)
	movq	%r15, (%r11,%rax,8)
	subq	$1, %rax
	testl	%eax, %eax
	jns	.L5853
	jmp	.L5848
	.p2align 4,,10
	.p2align 3
.L5856:

	movl	$0, 8(%rbp)
.L5859:

	movl	$0, 16(%rbp)
	jmp	.L5860
	.p2align 4,,10
	.p2align 3
.L5881:

	leaq	-16(%r8,%r9), %rbx
	movl	%ecx, %r9d
	xorl	%esi, %esi
	shrl	%r9d
	negq	%r9
	salq	$4, %r9
	.p2align 4,,10
	.p2align 3
.L5846:

	movdqu	(%r11,%rsi), %xmm0
	movups	%xmm0, (%rbx,%rsi)
	subq	$16, %rsi
	cmpq	%r9, %rsi
	jne	.L5846
	movl	%ecx, %esi
	andl	$-2, %esi
	subl	%esi, %eax
	andl	$1, %ecx
	je	.L5848
	movslq	%eax, %rcx
	addl	%r13d, %eax
	movq	(%r10,%rcx,8), %rcx
	cltq
	movq	%rcx, (%r8,%rax,8)
	jmp	.L5848
	.p2align 4,,10
	.p2align 3
.L5852:

	movslq	%r13d, %rdx
	salq	$3, %rdx
	je	.L5843
	jmp	.L5844
.L5854:

	movl	%eax, 8(%rbp)
	je	.L5859
	jmp	.L5860
	.cfi_endproc
.LFE1074:

	.size	BN_lshift, .-BN_lshift
# WAS .section	.text.BN_div_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_div_word
	.type	BN_div_word, @function
.LBN_div_word_local_target:
BN_div_word:
.LFB944:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L5885
	movl	8(%rdi), %eax
	movq	%rdi, %r12
	xorl	%ebx, %ebx
	testl	%eax, %eax
	jne	.L5902
.L5882:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5902:

	.cfi_restore_state
	movq	%rsi, %rdi
	movq	%rsi, %rbp
	movl	$64, %r13d
# WAS call	BN_num_bits_word@PLT
	call	.LBN_num_bits_word_local_target
	movq	%r12, %rsi
	movq	%r12, %rdi
	subl	%eax, %r13d
	movl	%r13d, %edx
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	testl	%eax, %eax
	je	.L5885
	movl	8(%r12), %r9d
	movl	%r9d, %edi
	subl	$1, %edi
	js	.L5886
	movl	%r13d, %ecx
	movq	%rbp, %rsi
	movslq	%edi, %rdi
	xorl	%edx, %edx
	salq	%cl, %rsi
	movq	(%r12), %rcx
	.p2align 4,,10
	.p2align 3
.L5887:

	movq	(%rcx,%rdi,8), %r8
	movq	%r8, %rax
#APP
# 163 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/div.c" 1
	divq %rsi
# 0 "" 2
#NO_APP
	movq	%rsi, %r10
	movq	%rax, (%rcx,%rdi,8)
	movq	%r8, %rdx
	subq	$1, %rdi
	imulq	%rax, %r10
	subq	%r10, %rdx
	testl	%edi, %edi
	jns	.L5887
	movslq	%r9d, %rax
	leaq	(%rcx,%rax,8), %rax
	jmp	.L5889
	.p2align 4,,10
	.p2align 3
.L5891:

	subq	$8, %rax
	subl	$1, %r9d
	je	.L5903
.L5889:

	cmpq	$0, -8(%rax)
	je	.L5891
	movl	%r13d, %ecx
	movq	%rdx, %rbx
	movl	%r9d, 8(%r12)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	shrq	%cl, %rbx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5885:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	$-1, %rbx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5903:

	.cfi_restore_state
	movl	$0, 8(%r12)
	movq	%rdx, %rbx
	movl	%r13d, %ecx
	shrq	%cl, %rbx
.L5890:

	movl	$0, 16(%r12)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5886:

	.cfi_restore_state
	testl	%r9d, %r9d
	je	.L5890
	jmp	.L5882
	.cfi_endproc
.LFE944:

	.size	BN_div_word, .-BN_div_word
# WAS .section	.text.BN_gcd,"ax",@progbits
.text
	.p2align 4
	.globl	BN_gcd
	.type	BN_gcd, @function
.LBN_gcd_local_target:
BN_gcd:
.LFB984:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rcx, %r8
	movq	%rdx, %rcx
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rax
	movq	%rax, %rsi
# WAS call	bn_gcd_consttime
	call	.Lbn_gcd_consttime_local_target
	testl	%eax, %eax
	jne	.L5911
.L5904:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L5912
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5911:

	.cfi_restore_state
	movl	4(%rsp), %edx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L5904
.L5912:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE984:

	.size	BN_gcd, .-BN_gcd
# WAS .section	.text.BN_lshift1,"ax",@progbits
.text
	.p2align 4
	.globl	BN_lshift1
	.type	BN_lshift1, @function
.LBN_lshift1_local_target:
BN_lshift1:
.LFB1075:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movl	8(%rsi), %eax
	leal	1(%rax), %esi
	movslq	%esi, %rsi
	cmpq	%rbp, %rdi
	je	.L5914
	movl	16(%rbp), %eax
	movl	%eax, 16(%rdi)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L5918
	movl	8(%rbp), %eax
	movl	%eax, 8(%rbx)
.L5917:

	movl	8(%rbp), %r10d
	movq	0(%rbp), %r9
	movq	(%rbx), %r8
	testl	%r10d, %r10d
	jle	.L5922
	movslq	%r10d, %rdi
	xorl	%eax, %eax
	xorl	%esi, %esi
	salq	$3, %rdi
	.p2align 4,,10
	.p2align 3
.L5920:

	movq	(%r9,%rax), %rcx
	leaq	(%rcx,%rcx), %rdx
	shrq	$63, %rcx
	orq	%rsi, %rdx
	movq	%rcx, %rsi
	movq	%rdx, (%r8,%rax)
	addq	$8, %rax
	cmpq	%rax, %rdi
	jne	.L5920
	testq	%rcx, %rcx
	je	.L5922
	movl	%r10d, %r10d
	movq	$1, (%r8,%r10,8)
	addl	$1, 8(%rbx)
.L5922:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5914:

	.cfi_restore_state
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L5917
.L5918:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1075:

	.size	BN_lshift1, .-BN_lshift1
# WAS .section	.text.bn_rshift_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_rshift_words
	.hidden	bn_rshift_words
	.type	bn_rshift_words, @function
.Lbn_rshift_words_local_target:
bn_rshift_words:
.LFB1076:

	.cfi_startproc
	endbr64
	movl	%edx, %r10d
	movq	%rcx, %r8
	shrl	$6, %r10d
	cmpq	%rcx, %r10
	jnb	.L5960
	movq	%rcx, %rax
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rsi, %r9
	subq	%r10, %rax
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	leaq	0(,%rax,8), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	leaq	0(,%r10,8), %rbx
	andl	$63, %edx
	je	.L5935
	leaq	-1(%rcx), %r11
	cmpq	%r11, %r10
	jnb	.L5941
	movl	$64, %r12d
	leaq	-2(%rax), %rcx
	subl	%edx, %r12d
	cmpq	$1, %rcx
	jbe	.L5938
	leaq	8(%rsi,%rbx), %rsi
	movq	%rdi, %rcx
	subq	%rsi, %rcx
	cmpq	$8, %rcx
	ja	.L5961
.L5938:

	movq	%rdi, %r13
	movq	%r10, %rax
	subq	%rbx, %r13
	.p2align 4,,10
	.p2align 3
.L5943:

	movq	(%r9,%rax,8), %rsi
	addq	$1, %rax
	movl	%edx, %ecx
	movq	(%r9,%rax,8), %r14
	shrq	%cl, %rsi
	movl	%r12d, %ecx
	salq	%cl, %r14
	movq	%r14, %rcx
	orq	%rsi, %rcx
	movq	%rcx, -8(%r13,%rax,8)
	cmpq	%r11, %rax
	jne	.L5943
	.p2align 4,,10
	.p2align 3
.L5941:

	movq	-8(%r9,%r8,8), %rax
	movl	%edx, %ecx
	subq	%r10, %r11
	shrq	%cl, %rax
	movq	%rax, (%rdi,%r11,8)
.L5937:

	testq	%rbx, %rbx
	je	.L5931
.L5962:

	addq	%rbp, %rdi
	movq	%rbx, %rdx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_remember_state
	.cfi_restore 3
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_restore 12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_restore 13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_restore 14
	.cfi_def_cfa_offset 8
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L5935:

	.cfi_restore_state
	testq	%rbp, %rbp
	je	.L5937
	leaq	(%rsi,%rbx), %rsi
	movq	%rbp, %rdx
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
	movq	%rax, %rdi
	testq	%rbx, %rbx
	jne	.L5962
.L5931:

	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5960:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	salq	$3, %r8
	jne	.L5963
	ret
	.p2align 4,,10
	.p2align 3
.L5963:

	movq	%r8, %rdx
	xorl	%esi, %esi
# WAS jmp	memset@PLT
	jmp	.Lbcm_redirector_memset
	.p2align 4,,10
	.p2align 3
.L5961:

	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	.cfi_offset 6, -40
	.cfi_offset 12, -32
	.cfi_offset 13, -24
	.cfi_offset 14, -16
	leaq	-1(%rax), %rcx
	leaq	(%r9,%rbx), %r14
	movd	%edx, %xmm3
	xorl	%eax, %eax
	movq	%rcx, %r13
	movd	%r12d, %xmm2
	shrq	%r13
	salq	$4, %r13
	.p2align 4,,10
	.p2align 3
.L5939:

	movdqu	(%r14,%rax), %xmm0
	movdqu	(%rsi,%rax), %xmm1
	psrlq	%xmm3, %xmm0
	psllq	%xmm2, %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, (%rdi,%rax)
	addq	$16, %rax
	cmpq	%r13, %rax
	jne	.L5939
	movq	%rcx, %r13
	andq	$-2, %r13
	andl	$1, %ecx
	leaq	(%r10,%r13), %rsi
	je	.L5941
	movq	8(%r9,%rsi,8), %rax
	movl	%r12d, %ecx
	movq	(%r9,%rsi,8), %rsi
	salq	%cl, %rax
	movl	%edx, %ecx
	shrq	%cl, %rsi
	orq	%rsi, %rax
	movq	%rax, (%rdi,%r13,8)
	jmp	.L5941
	.cfi_endproc
.LFE1076:

	.size	bn_rshift_words, .-bn_rshift_words
# WAS .section	.text.BN_rshift,"ax",@progbits
.text
	.p2align 4
	.globl	BN_rshift
	.type	BN_rshift, @function
.LBN_rshift_local_target:
BN_rshift:
.LFB1077:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	testl	%edx, %edx
	js	.L5988
	movslq	8(%rsi), %rcx
	movslq	12(%rdi), %rax
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	movl	%edx, %r12d
	movq	%rcx, %r14
	cmpq	%rcx, %rax
	jnb	.L5989
	cmpq	$8388607, %rcx
	ja	.L5990
	testb	$2, 20(%rdi)
	jne	.L5991
	movl	$8, %esi
	movq	%rcx, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L5966
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	jne	.L5992
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, (%rbx)
	movslq	8(%rbp), %rcx
	movl	%r14d, 12(%rbx)
	jmp	.L5968
	.p2align 4,,10
	.p2align 3
.L5989:

	movq	(%rdi), %r13
.L5968:

	movq	0(%rbp), %rsi
	movl	%r12d, %edx
	movq	%r13, %rdi
# WAS call	bn_rshift_words
	call	.Lbn_rshift_words_local_target
	movl	16(%rbp), %eax
	movl	%eax, 16(%rbx)
	movl	8(%rbp), %eax
	testl	%eax, %eax
	jle	.L5973
	movq	(%rbx), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L5974
	.p2align 4,,10
	.p2align 3
.L5976:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L5975
.L5974:

	cmpq	$0, -8(%rdx)
	je	.L5976
	movl	%eax, 8(%rbx)
.L5978:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5988:

	.cfi_restore_state
	movl	$158, %r8d
	leaq	.LC183(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L5966:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5992:

	.cfi_restore_state
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, (%rbx)
	movslq	8(%rbp), %rcx
	movl	%r14d, 12(%rbx)
	jmp	.L5968
	.p2align 4,,10
	.p2align 3
.L5975:

	movl	$0, 8(%rbx)
.L5979:

	movl	$0, 16(%rbx)
	jmp	.L5978
	.p2align 4,,10
	.p2align 3
.L5991:

	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L5966
	.p2align 4,,10
	.p2align 3
.L5990:

	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L5966
.L5973:

	movl	%eax, 8(%rbx)
	je	.L5979
	jmp	.L5978
	.cfi_endproc
.LFE1077:

	.size	BN_rshift, .-BN_rshift
# WAS .section	.text.BN_div,"ax",@progbits
.text
	.p2align 4
	.globl	BN_div
	.type	BN_div, @function
.LBN_div_local_target:
BN_div:
.LFB921:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movl	8(%rdx), %eax
	movq	%rsi, 8(%rsp)
	testl	%eax, %eax
	jle	.L5998
	movq	(%rdx), %rsi
	movslq	%eax, %rdx
	leaq	(%rsi,%rdx,8), %rdx
	jmp	.L5995
	.p2align 4,,10
	.p2align 3
.L5999:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L5998
.L5995:

	cmpq	$0, -8(%rdx)
	je	.L5999
	movl	8(%r15), %edx
	testl	%edx, %edx
	jle	.L6115
.L5996:

	movq	(%r15), %rdi
	movslq	%edx, %rsi
	leaq	(%rdi,%rsi,8), %rsi
	jmp	.L6001
	.p2align 4,,10
	.p2align 3
.L6003:

	subq	$8, %rsi
	subl	$1, %edx
	je	.L6002
.L6001:

	cmpq	$0, -8(%rsi)
	je	.L6003
	testl	%eax, %eax
	jle	.L6058
	movq	0(%rbp), %rsi
	cltq
	cmpq	$0, -8(%rsi,%rax,8)
	je	.L6005
.L6058:

	movslq	%edx, %rdx
	cmpq	$0, -8(%rdi,%rdx,8)
	jne	.L5997
.L6005:

	movl	$212, %r8d
	leaq	.LC172(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L6006:

	xorl	%eax, %eax
.L5993:

	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L5998:

	.cfi_restore_state
	movl	8(%r15), %edx
	testl	%edx, %edx
	jg	.L5996
	.p2align 4,,10
	.p2align 3
.L5997:

	movq	%r15, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L6116
.L6007:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r14
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%r13, %r13
	je	.L6117
.L6009:

	testq	%r12, %r12
	je	.L6010
	testq	%r13, %r13
	je	.L6010
	movq	%r15, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movl	$64, %edx
	movq	%r15, %rsi
	movq	%r12, %rdi
	andl	$63, %eax
	subl	%eax, %edx
	movl	%eax, 24(%rsp)
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	testl	%eax, %eax
	je	.L6010
	movl	8(%r12), %eax
	movl	24(%rsp), %r8d
	testl	%eax, %eax
	jle	.L6011
	movq	(%r12), %rsi
	movslq	%eax, %rdx
	leaq	(%rsi,%rdx,8), %rdx
	jmp	.L6012
	.p2align 4,,10
	.p2align 3
.L6013:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L6011
.L6012:

	cmpq	$0, -8(%rdx)
	je	.L6013
.L6011:

	movl	%eax, 8(%r12)
	movl	$128, %eax
	movq	%rbp, %rsi
	movq	%r14, %rdi
	movl	$0, 16(%r12)
	subl	%r8d, %eax
	movl	%eax, %edx
	movl	%eax, 76(%rsp)
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	testl	%eax, %eax
	je	.L6010
	movl	8(%r14), %eax
	testl	%eax, %eax
	jle	.L6014
	movq	(%r14), %rsi
	movslq	%eax, %rdx
	leaq	(%rsi,%rdx,8), %rdx
	jmp	.L6015
	.p2align 4,,10
	.p2align 3
.L6016:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L6014
.L6015:

	cmpq	$0, -8(%rdx)
	je	.L6016
.L6014:

	movl	%eax, 8(%r14)
	movl	8(%r12), %edx
	movl	$0, 16(%r14)
	leal	1(%rdx), %esi
	cmpl	%eax, %esi
	jge	.L6118
	addl	$1, %eax
	movq	%r14, %rdi
	movslq	%eax, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6010
	movq	(%r14), %rcx
	movslq	8(%r14), %rax
	movq	%rcx, 56(%rsp)
	movq	%rax, %rdx
	movq	$0, (%rcx,%rax,8)
	addl	$1, %edx
.L6019:

	movl	%edx, 8(%r14)
	movslq	8(%r12), %rcx
	movl	%edx, %eax
	movq	$0, 64(%rsp)
	subl	%ecx, %eax
	movq	%rcx, 24(%rsp)
	movq	%rcx, %r8
	salq	$3, %rcx
	movl	%eax, 40(%rsp)
	movq	(%r12), %rax
	movq	%rcx, 32(%rsp)
	movq	-8(%rax,%rcx), %r11
	cmpl	$1, %r8d
	je	.L6021
	movq	-16(%rax,%rcx), %rax
	movq	%rax, 64(%rsp)
.L6021:

	movl	16(%r15), %eax
	movl	16(%rbp), %ebp
	movq	%r13, %rdi
	movq	%r11, 96(%rsp)
	movl	40(%rsp), %r15d
	movl	%r8d, 48(%rsp)
	xorl	%ebp, %eax
	movl	%edx, 80(%rsp)
	movl	%eax, 16(%r13)
	leal	1(%r15), %esi
	movslq	%esi, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6010
	movl	48(%rsp), %r8d
	movq	0(%r13), %rcx
	movl	%r15d, 40(%rsp)
	subl	$1, %r15d
	movl	%r15d, 8(%r13)
	movq	16(%rsp), %rdi
	addl	$1, %r8d
	movq	%rcx, 104(%rsp)
	movslq	%r8d, %rcx
	movq	%rcx, %rsi
	movq	%rcx, 48(%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6010
	movslq	40(%rsp), %rax
	movl	8(%r13), %r11d
	movq	104(%rsp), %rcx
	movslq	80(%rsp), %rdx
	salq	$3, %rax
	testl	%r11d, %r11d
	movq	96(%rsp), %r11
	leaq	-8(%rcx,%rax), %rcx
	movq	%rcx, %rdi
	jne	.L6022
	movl	$0, 16(%r13)
.L6026:

	testl	%r15d, %r15d
	jle	.L6040
	movq	56(%rsp), %rcx
	movq	%r14, 96(%rsp)
	movq	%r12, %r14
	movq	%r13, 112(%rsp)
	movq	%rdi, %r13
	addq	%rcx, %rax
	leaq	-8(%rcx,%rdx,8), %r10
	movl	40(%rsp), %ecx
	movq	%rbx, 120(%rsp)
	leaq	-8(%rax), %r15
	subq	$16, %rax
	movl	%ebp, 104(%rsp)
	movq	%r10, %r12
	movq	$0, 88(%rsp)
	leal	-2(%rcx), %edx
	movq	%r11, %rbx
	salq	$3, %rdx
	subq	%rdx, %rax
	movq	%rax, 56(%rsp)
	movq	64(%rsp), %rax
	movq	%rax, 80(%rsp)
	jmp	.L6039
	.p2align 4,,10
	.p2align 3
.L6027:

	movq	16(%rsp), %rax
	movq	24(%rsp), %rdx
	movq	(%rax), %rdi
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L6034
	movq	(%r14), %rsi
	movq	%rbp, %rcx
	movq	%rdi, 40(%rsp)
# WAS call	bn_mul_words.part.0
	call	.Lbn_mul_words.part.0_local_target
	movq	40(%rsp), %rdi
.L6034:

	movq	32(%rsp), %rcx
	movq	%rax, (%rdi,%rcx)
	movq	48(%rsp), %rax
	testq	%rax, %rax
	je	.L6036
	movq	%rax, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%r15,%rax,8),%rdx	
	sbbq	(%rdi,%rax,8),%rdx	
	movq	%rdx,(%r15,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	andl	$1, %edx
	je	.L6036
	movq	24(%rsp), %rcx
	testq	%rcx, %rcx
	je	.L6038
	movq	(%r14), %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	bn_add_words.part.0
	call	.Lbn_add_words.part.0_local_target
	testq	%rax, %rax
	je	.L6038
	addq	$1, (%r12)
.L6038:

	subq	$1, %rbp
	.p2align 4,,10
	.p2align 3
.L6036:

	movq	%rbp, 0(%r13)
	subq	$8, %r12
	subq	$8, %r13
	subq	$8, %r15
	cmpq	%r15, 56(%rsp)
	je	.L6119
.L6039:

	movq	(%r12), %rdx
	movq	-8(%r12), %rax
	movq	$-1, %rbp
	cmpq	%rdx, %rbx
	je	.L6027
#APP
# 163 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/div.c" 1
	divq %rbx
# 0 "" 2
#NO_APP
	movq	%rax, %rbp
	movq	64(%rsp), %rax
	movq	%rdx, %rcx
	movq	-16(%r12), %rsi
	xorl	%edi, %edi
	xorl	%r8d, %r8d
	movq	%rcx, %r9
	mulq	%rbp
	orq	%rdi, %r9
	orq	%rsi, %r8
	movq	%r9, %r11
	cmpq	%rax, %r8
	sbbq	%rdx, %r11
	jnc	.L6027
	subq	$1, %rbp
	addq	%rbx, %rcx
	jc	.L6027
	movq	80(%rsp), %r10
	movq	88(%rsp), %r11
	jmp	.L6030
	.p2align 4,,10
	.p2align 3
.L6033:

	subq	$1, %rbp
	addq	%rbx, %rcx
	jc	.L6027
.L6030:

	subq	%r10, %rax
	movq	%rcx, %r8
	sbbq	%r11, %rdx
	movq	%r8, %r9
	xorl	%r8d, %r8d
	orq	%rsi, %r8
	orq	%rdi, %r9
	cmpq	%rax, %r8
	sbbq	%rdx, %r9
	jc	.L6033
	jmp	.L6027
	.p2align 4,,10
	.p2align 3
.L6116:

	movl	$217, %r8d
	leaq	.LC172(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6006
	.p2align 4,,10
	.p2align 3
.L6010:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L6006
	.p2align 4,,10
	.p2align 3
.L6002:

	testl	%eax, %eax
	jle	.L5997
	movq	0(%rbp), %rdx
	cltq
	cmpq	$0, -8(%rdx,%rax,8)
	je	.L6005
	movq	%r15, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L6007
	jmp	.L6116
.L6117:

	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	jmp	.L6009
.L6118:

	addl	$2, %edx
	movq	%r14, %rdi
	movslq	%edx, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6010
	movl	8(%r12), %r8d
	movq	(%r14), %rcx
	movslq	8(%r14), %rax
	leal	1(%r8), %edx
	movq	%rcx, 56(%rsp)
	cmpl	%edx, %eax
	jg	.L6020
	subl	%eax, %edx
	leaq	(%rcx,%rax,8), %rdi
	xorl	%esi, %esi
	movl	%r8d, 24(%rsp)
	leaq	8(,%rdx,8), %rdx
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	24(%rsp), %r8d
.L6020:

	leal	2(%r8), %edx
	jmp	.L6019
.L6115:

	cltq
	cmpq	$0, -8(%rsi,%rax,8)
	jne	.L5997
	jmp	.L6005
.L6119:

	movq	96(%rsp), %r14
	movl	104(%rsp), %ebp
	movq	112(%rsp), %r13
	movq	120(%rsp), %rbx
.L6040:

	movl	8(%r14), %eax
	testl	%eax, %eax
	jle	.L6120
	movq	(%r14), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L6041
	.p2align 4,,10
	.p2align 3
.L6043:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L6042
.L6041:

	cmpq	$0, -8(%rdx)
	je	.L6043
	movl	%eax, 8(%r14)
.L6045:

	movq	8(%rsp), %rax
	testq	%rax, %rax
	je	.L6047
	movl	76(%rsp), %edx
	movq	%r14, %rsi
	movq	%rax, %rdi
	movq	%rax, %r14
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L6010
	movq	%r14, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L6047
	movl	%ebp, 16(%r14)
.L6047:

	movl	8(%r13), %eax
	testl	%eax, %eax
	jle	.L6049
	movq	0(%r13), %rcx
	movslq	%eax, %rdx
	leaq	(%rcx,%rdx,8), %rdx
	jmp	.L6050
	.p2align 4,,10
	.p2align 3
.L6052:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L6051
.L6050:

	cmpq	$0, -8(%rdx)
	je	.L6052
	movl	%eax, 8(%r13)
.L6054:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	$1, %eax
	jmp	.L5993
.L6022:

	subq	$8, %rcx
	movq	%rcx, %rdi
	jmp	.L6026
.L6042:

	movl	$0, 8(%r14)
.L6056:

	movl	$0, 16(%r14)
	jmp	.L6045
.L6051:

	movl	$0, 8(%r13)
.L6055:

	movl	$0, 16(%r13)
	jmp	.L6054
.L6120:

	je	.L6056
	jmp	.L6045
.L6049:

	je	.L6055
	jmp	.L6054
	.cfi_endproc
.LFE921:

	.size	BN_div, .-BN_div
# WAS .section	.text.BN_nnmod,"ax",@progbits
.text
	.p2align 4
	.globl	BN_nnmod
	.type	BN_nnmod, @function
.LBN_nnmod_local_target:
BN_nnmod:
.LFB922:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rcx, %r8
	movq	%rdx, %rbp
	movq	%rdx, %rcx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	%rdi, %rsi
	xorl	%edi, %edi
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L6121
	movl	16(%rbx), %edx
	testl	%edx, %edx
	je	.L6124
	movl	16(%rbp), %eax
	testl	%eax, %eax
	je	.L6125
# WAS movq	BN_sub@GOTPCREL(%rip), %rax
	leaq	.LBN_sub_local_target(%rip), %rax
.L6123:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L6124:

	.cfi_restore_state
	movl	$1, %eax
.L6121:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6125:

	.cfi_restore_state
# WAS movq	BN_add@GOTPCREL(%rip), %rax
	leaq	.LBN_add_local_target(%rip), %rax
	jmp	.L6123
	.cfi_endproc
.LFE922:

	.size	BN_nnmod, .-BN_nnmod
# WAS .section	.text.BN_mod_add,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_add
	.type	BN_mod_add, @function
.LBN_mod_add_local_target:
BN_mod_add:
.LFB930:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	jne	.L6133
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6133:

	.cfi_restore_state
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	BN_nnmod@PLT
	jmp	.LBN_nnmod_local_target
	.cfi_endproc
.LFE930:

	.size	BN_mod_add, .-BN_mod_add
# WAS .section	.text.BN_mod_sub,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_sub
	.type	BN_mod_sub, @function
.LBN_mod_sub_local_target:
BN_mod_sub:
.LFB933:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	jne	.L6137
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6137:

	.cfi_restore_state
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	BN_nnmod@PLT
	jmp	.LBN_nnmod_local_target
	.cfi_endproc
.LFE933:

	.size	BN_mod_sub, .-BN_mod_sub
# WAS .section	.text.BN_mod_mul,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_mul
	.type	BN_mod_mul, @function
.LBN_mod_mul_local_target:
BN_mod_mul:
.LFB936:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%r8, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6142
	movq	%rax, %rbp
	cmpq	%r15, %r12
	je	.L6151
	movq	%rbx, %rcx
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	BN_mul@PLT
	call	.LBN_mul_local_target
	testl	%eax, %eax
	je	.L6142
.L6143:

	movq	%rbp, %rsi
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r13, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	xorl	%ebp, %ebp
	testl	%eax, %eax
	setne	%bpl
.L6140:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6151:

	.cfi_restore_state
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	BN_sqr@PLT
	call	.LBN_sqr_local_target
	testl	%eax, %eax
	jne	.L6143
	.p2align 4,,10
	.p2align 3
.L6142:

	xorl	%ebp, %ebp
	jmp	.L6140
	.cfi_endproc
.LFE936:

	.size	BN_mod_mul, .-BN_mod_mul
# WAS .section	.text.BN_mod_lshift,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_lshift
	.type	BN_mod_lshift, @function
.LBN_mod_lshift_local_target:
BN_mod_lshift:
.LFB938:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movl	%edx, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
	movq	%r8, %rcx
	movq	%rbx, %rdx
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L6156
	movl	16(%rbx), %eax
	testl	%eax, %eax
	jne	.L6162
	xorl	%r14d, %r14d
.L6155:

	movq	%r12, %r8
	movq	%rbx, %rcx
	movl	%r13d, %edx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	bn_mod_lshift_consttime
	call	.Lbn_mod_lshift_consttime_local_target
	movq	%r14, %rdi
	movl	%eax, %ebx
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6162:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L6156
	movl	$0, 16(%rax)
	movq	%rax, %r14
	jmp	.L6155
	.p2align 4,,10
	.p2align 3
.L6156:

	xorl	%ebx, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE938:

	.size	BN_mod_lshift, .-BN_mod_lshift
# WAS .section	.text.BN_mod_lshift1,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_lshift1
	.type	BN_mod_lshift1, @function
.LBN_mod_lshift1_local_target:
BN_mod_lshift1:
.LFB941:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	BN_lshift1@PLT
	call	.LBN_lshift1_local_target
	testl	%eax, %eax
	jne	.L6166
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6166:

	.cfi_restore_state
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	BN_nnmod@PLT
	jmp	.LBN_nnmod_local_target
	.cfi_endproc
.LFE941:

	.size	BN_mod_lshift1, .-BN_mod_lshift1
# WAS .section	.text.BN_mod_sqr,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_sqr
	.type	BN_mod_sqr, @function
.LBN_mod_sqr_local_target:
BN_mod_sqr:
.LFB937:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	movq	%rcx, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	BN_sqr@PLT
	call	.LBN_sqr_local_target
	testl	%eax, %eax
	jne	.L6170
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6170:

	.cfi_restore_state
	movq	%rbp, %r8
	movq	%r12, %rcx
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	xorl	%edi, %edi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	BN_div@PLT
	jmp	.LBN_div_local_target
	.cfi_endproc
.LFE937:

	.size	BN_mod_sqr, .-BN_mod_sqr
# WAS .section	.text.bn_rshift_secret_shift,"ax",@progbits
.text
	.p2align 4
	.globl	bn_rshift_secret_shift
	.type	bn_rshift_secret_shift, @function
.Lbn_rshift_secret_shift_local_target:
bn_rshift_secret_shift:
.LFB1078:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	movq	%rcx, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rcx, 8(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r15, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6174
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movq	%rax, %r12
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6174
	movslq	8(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6174
	movslq	8(%rbp), %r9
	movl	%r9d, %eax
	sall	$6, %eax
	movl	%eax, 4(%rsp)
	je	.L6178
	movq	0(%rbp), %rsi
	movq	(%r12), %rdi
	xorl	%r15d, %r15d
	.p2align 4,,10
	.p2align 3
.L6177:

	movl	%r15d, %ecx
	movl	%r14d, %eax
	movl	$1, %edx
	shrl	%cl, %eax
	sall	%cl, %edx
	movq	%r9, %rcx
	movl	%eax, %r13d
# WAS call	bn_rshift_words
	call	.Lbn_rshift_words_local_target
	andl	$1, %r13d
	movslq	8(%rbp), %r9
	xorl	%eax, %eax
	movq	%r13, %rbx
	movq	0(%rbp), %rsi
	movq	(%r12), %rdi
	leaq	-1(%r13), %rcx
	negq	%rbx
	testq	%r9, %r9
	je	.L6180
	.p2align 4,,10
	.p2align 3
.L6179:

	movq	(%rdi,%rax,8), %rdx
	movq	(%rsi,%rax,8), %r10
	andq	%rbx, %rdx
	andq	%rcx, %r10
	orq	%r10, %rdx
	movq	%rdx, (%rsi,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r9
	jne	.L6179
.L6180:

	movl	4(%rsp), %eax
	addl	$1, %r15d
	movl	%r15d, %ecx
	shrl	%cl, %eax
	testl	%eax, %eax
	jne	.L6177
.L6178:

	movl	$1, %ebx
	jmp	.L6173
	.p2align 4,,10
	.p2align 3
.L6174:

	xorl	%ebx, %ebx
.L6173:

	movq	8(%rsp), %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1078:

	.size	bn_rshift_secret_shift, .-bn_rshift_secret_shift
# WAS .section	.text.bn_lcm_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_lcm_consttime
	.type	bn_lcm_consttime, @function
.Lbn_lcm_consttime_local_target:
bn_lcm_consttime:
.LFB986:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	movq	%rcx, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6196
	movl	16(%r12), %ecx
	testl	%ecx, %ecx
	jne	.L6194
	movl	16(%r13), %edx
	testl	%edx, %edx
	jne	.L6194
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r14, %rdi
	movq	%rax, %rbp
# WAS call	bn_mul_impl
	call	.Lbn_mul_impl_local_target
	testl	%eax, %eax
	je	.L6196
	leaq	4(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	bn_gcd_consttime
	call	.Lbn_gcd_consttime_local_target
	testl	%eax, %eax
	je	.L6196
	xorl	%r8d, %r8d
	xorl	%esi, %esi
	movq	%rbx, %r9
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rdi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	jne	.L6209
	.p2align 4,,10
	.p2align 3
.L6196:

	xorl	%ebp, %ebp
.L6193:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6210
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6194:

	.cfi_restore_state
	movl	$525, %r8d
	leaq	.LC179(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6196
	.p2align 4,,10
	.p2align 3
.L6209:

	movl	4(%rsp), %edx
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
	xorl	%ebp, %ebp
# WAS call	bn_rshift_secret_shift@PLT
	call	.Lbn_rshift_secret_shift_local_target
	testl	%eax, %eax
	setne	%bpl
	jmp	.L6193
.L6210:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE986:

	.size	bn_lcm_consttime, .-bn_lcm_consttime
# WAS .section	.text.bn_rshift1_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_rshift1_words
	.hidden	bn_rshift1_words
	.type	bn_rshift1_words, @function
.Lbn_rshift1_words_local_target:
bn_rshift1_words:
.LFB1079:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	testq	%rdx, %rdx
	je	.L6211
	leaq	-1(%rdx), %r9
	cmpq	$1, %rdx
	je	.L6213
	leaq	-2(%rdx), %rax
	cmpq	$1, %rax
	jbe	.L6220
	leaq	-8(%rdi), %rax
	subq	%rcx, %rax
	cmpq	$8, %rax
	ja	.L6215
.L6220:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L6216:

	movq	(%rcx,%rax,8), %r8
	addq	$1, %rax
	movq	(%rcx,%rax,8), %rdx
	shldq	$63, %r8, %rdx
	movq	%rdx, -8(%rdi,%rax,8)
	cmpq	%rax, %r9
	jne	.L6216
	.p2align 4,,10
	.p2align 3
.L6213:

	salq	$3, %rsi
	movq	-8(%rcx,%rsi), %rax
	shrq	%rax
	movq	%rax, -8(%rdi,%rsi)
.L6211:

	ret
	.p2align 4,,10
	.p2align 3
.L6215:

	movq	%r9, %rdx
	xorl	%eax, %eax
	shrq	%rdx
	salq	$4, %rdx
	.p2align 4,,10
	.p2align 3
.L6217:

	movdqu	(%rcx,%rax), %xmm0
	movdqu	8(%rcx,%rax), %xmm1
	psrlq	$1, %xmm0
	psllq	$63, %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, (%rdi,%rax)
	addq	$16, %rax
	cmpq	%rax, %rdx
	jne	.L6217
	movq	%r9, %rdx
	andq	$-2, %rdx
	andl	$1, %r9d
	je	.L6213
	movq	8(%rcx,%rdx,8), %r8
	movq	(%rcx,%rdx,8), %rax
	shrdq	$1, %r8, %rax
	movq	%rax, (%rdi,%rdx,8)
	jmp	.L6213
	.cfi_endproc
.LFE1079:

	.size	bn_rshift1_words, .-bn_rshift1_words
# WAS .section	.text.BN_rshift1,"ax",@progbits
.text
	.p2align 4
	.globl	BN_rshift1
	.type	BN_rshift1, @function
.LBN_rshift1_local_target:
BN_rshift1:
.LFB1080:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movslq	8(%rsi), %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6232
	movslq	8(%rbp), %rax
	movq	0(%rbp), %rsi
	movq	(%rbx), %r8
	movq	%rax, %rdx
	testq	%rax, %rax
	je	.L6234
	leaq	-1(%rax), %r10
	cmpq	$1, %rax
	je	.L6235
	leaq	-2(%rax), %rcx
	cmpq	$1, %rcx
	jbe	.L6247
	leaq	-8(%r8), %rdi
	xorl	%ecx, %ecx
	subq	%rsi, %rdi
	cmpq	$8, %rdi
	ja	.L6265
	.p2align 4,,10
	.p2align 3
.L6239:

	movq	(%rsi,%rcx,8), %r9
	addq	$1, %rcx
	movq	(%rsi,%rcx,8), %rdi
	shldq	$63, %r9, %rdi
	movq	%rdi, -8(%r8,%rcx,8)
	cmpq	%rcx, %r10
	jne	.L6239
	.p2align 4,,10
	.p2align 3
.L6240:

	salq	$3, %rax
	movq	-8(%rsi,%rax), %rcx
	shrq	%rcx
	movq	%rcx, -8(%r8,%rax)
	movl	16(%rbp), %ecx
	movl	%ecx, 16(%rbx)
	testl	%edx, %edx
	jle	.L6263
.L6246:

	addq	%r8, %rax
	jmp	.L6242
	.p2align 4,,10
	.p2align 3
.L6243:

	subq	$8, %rax
	subl	$1, %edx
	je	.L6234
.L6242:

	cmpq	$0, -8(%rax)
	je	.L6243
.L6263:

	movl	%edx, 8(%rbx)
	movl	$1, %eax
.L6232:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6234:

	.cfi_restore_state
	movl	$0, 8(%rbx)
	movl	$1, %eax
	movl	$0, 16(%rbx)
	jmp	.L6232
	.p2align 4,,10
	.p2align 3
.L6265:

	movq	%r10, %rdi
	shrq	%rdi
	salq	$4, %rdi
	.p2align 4,,10
	.p2align 3
.L6237:

	movdqu	(%rsi,%rcx), %xmm0
	movdqu	8(%rsi,%rcx), %xmm1
	psrlq	$1, %xmm0
	psllq	$63, %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, (%r8,%rcx)
	addq	$16, %rcx
	cmpq	%rdi, %rcx
	jne	.L6237
	movq	%r10, %rdi
	andq	$-2, %rdi
	andl	$1, %r10d
	je	.L6240
	movq	8(%rsi,%rdi,8), %r9
	movq	(%rsi,%rdi,8), %rcx
	shrdq	$1, %r9, %rcx
	movq	%rcx, (%r8,%rdi,8)
	jmp	.L6240
	.p2align 4,,10
	.p2align 3
.L6247:

	xorl	%ecx, %ecx
	jmp	.L6239
.L6235:

	movq	(%rsi), %rax
	shrq	%rax
	movq	%rax, (%r8)
	movl	16(%rbp), %eax
	movl	%eax, 16(%rbx)
	movl	$8, %eax
	jmp	.L6246
	.cfi_endproc
.LFE1080:

	.size	BN_rshift1, .-BN_rshift1
# WAS .section	.text.BN_set_bit,"ax",@progbits
.text
	.p2align 4
	.globl	BN_set_bit
	.type	BN_set_bit, @function
.LBN_set_bit_local_target:
BN_set_bit:
.LFB1081:

	.cfi_startproc
	endbr64
	testl	%esi, %esi
	js	.L6280
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movl	%esi, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	sarl	$6, %r12d
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	%esi, %ebx
	cmpl	%r12d, 8(%rdi)
	jle	.L6269
	movq	(%rdi), %r13
.L6270:

	movslq	%r12d, %r12
	movl	%ebx, %ecx
	movl	$1, %eax
	salq	%cl, %rax
	orq	%rax, 0(%r13,%r12,8)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6269:

	.cfi_restore_state
	leal	1(%r12), %r14d
	movslq	%r14d, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L6271
	movslq	8(%rbp), %rax
	movq	0(%rbp), %r13
	cmpl	%eax, %r12d
	jl	.L6273
	movl	%r12d, %edx
	leaq	0(%r13,%rax,8), %rdi
	xorl	%esi, %esi
	subl	%eax, %edx
	leaq	8(,%rdx,8), %rdx
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L6273:

	movl	%r14d, 8(%rbp)
	jmp	.L6270
	.p2align 4,,10
	.p2align 3
.L6271:

	popq	%rbx
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6280:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1081:

	.size	BN_set_bit, .-BN_set_bit
# WAS .section	.rodata.BN_mod_mul_reciprocal.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC184:

	.string	"/aws-lc/crypto/fipsmodule/bn/exponentiation.c"
# WAS .section	.text.BN_mod_mul_reciprocal,"ax",@progbits
.text
	.p2align 4
	.type	BN_mod_mul_reciprocal, @function
.LBN_mod_mul_reciprocal_local_target:
BN_mod_mul_reciprocal:
.LFB961:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	movq	%r8, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6286
	testq	%r14, %r14
	je	.L6284
	movq	%rax, %r15
	cmpq	%rbp, %r14
	je	.L6347
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	BN_mul@PLT
	call	.LBN_mul_local_target
	testl	%eax, %eax
	je	.L6286
.L6287:

	movq	%r15, %rbp
.L6284:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r14
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, (%rsp)
	testq	%r12, %r12
	je	.L6348
	testq	%r14, %r14
	je	.L6300
.L6351:

	testq	%r15, %r15
	je	.L6300
	cmpq	$0, (%rsp)
	je	.L6300
	testq	%r12, %r12
	je	.L6300
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L6349
	movq	%rbp, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movl	%eax, %edx
	movl	48(%r13), %eax
	addl	%eax, %eax
	cmpl	%edx, %eax
	cmovge	%eax, %edx
	movl	52(%r13), %eax
	movl	%edx, 12(%rsp)
	cmpl	%eax, %edx
	je	.L6294
	leaq	24(%r13), %rax
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6296
	movl	12(%rsp), %esi
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	je	.L6296
	movq	24(%rsp), %rdx
	movq	16(%rsp), %rdi
	xorl	%esi, %esi
	movq	%rbx, %r8
	movq	%r13, %rcx
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L6296
.L6297:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	12(%rsp), %eax
	movl	%eax, 52(%r13)
.L6294:

	cmpl	$-1, %eax
	je	.L6300
	movl	48(%r13), %edx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	jne	.L6350
	.p2align 4,,10
	.p2align 3
.L6300:

	xorl	%ebp, %ebp
.L6291:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L6283:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6347:

	.cfi_restore_state
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%rax, %rdi
# WAS call	BN_sqr@PLT
	call	.LBN_sqr_local_target
	testl	%eax, %eax
	jne	.L6287
	.p2align 4,,10
	.p2align 3
.L6286:

	xorl	%ebp, %ebp
	jmp	.L6283
	.p2align 4,,10
	.p2align 3
.L6348:

	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%r14, %r14
	jne	.L6351
	jmp	.L6300
	.p2align 4,,10
	.p2align 3
.L6349:

	movq	(%rsp), %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6300
	movq	%rbx, %rdi
	movl	$1, %ebp
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L6283
	.p2align 4,,10
	.p2align 3
.L6350:

	leaq	24(%r13), %rdx
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	BN_mul@PLT
	call	.LBN_mul_local_target
	testl	%eax, %eax
	je	.L6300
	movq	(%rsp), %r14
	movl	12(%rsp), %edx
	movq	%r15, %rsi
	subl	48(%r13), %edx
	movq	%r14, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L6300
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	movl	$0, 16(%r14)
# WAS call	BN_mul@PLT
	call	.LBN_mul_local_target
	testl	%eax, %eax
	je	.L6300
	movq	%r15, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	je	.L6300
	movl	$0, 16(%r12)
	movl	$4, %r14d
.L6298:

	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L6352
	subl	$1, %r14d
	je	.L6353
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	je	.L6300
	movq	(%rsp), %rdi
	movl	$1, %esi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	jne	.L6298
	jmp	.L6300
	.p2align 4,,10
	.p2align 3
.L6296:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	$-1, 52(%r13)
	jmp	.L6300
.L6353:

	movl	$370, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6300
.L6352:

	movq	%r12, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L6302
	movl	16(%rbp), %eax
.L6302:

	movq	(%rsp), %rcx
	movl	%eax, 16(%r12)
	movl	16(%rbp), %eax
	xorl	16(%r13), %eax
	movl	$1, %ebp
	movl	%eax, 16(%rcx)
	jmp	.L6291
	.cfi_endproc
.LFE961:

	.size	BN_mod_mul_reciprocal, .-BN_mod_mul_reciprocal
# WAS .section	.text.BN_MONT_CTX_set,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_set
	.type	BN_MONT_CTX_set, @function
.LBN_MONT_CTX_set_local_target:
BN_MONT_CTX_set:
.LFB996:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	bn_mont_ctx_set_N_and_n0
	call	.Lbn_mont_ctx_set_N_and_n0_local_target
	testl	%eax, %eax
	je	.L6358
	xorl	%r13d, %r13d
	testq	%rbp, %rbp
	je	.L6370
.L6357:

	movl	32(%rbx), %r12d
	movq	%rbx, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movq	%rbx, %rdi
	movl	%r12d, %esi
	sall	$7, %esi
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	jne	.L6359
.L6361:

	xorl	%ebx, %ebx
.L6360:

	movq	%r13, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6359:

	.cfi_restore_state
	xorl	%edi, %edi
	leaq	24(%rbx), %rcx
	movq	%rbp, %r8
	movq	%rbx, %rdx
	movq	%rbx, %rsi
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L6361
	movslq	32(%rbx), %rsi
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	setne	%bl
	jmp	.L6360
	.p2align 4,,10
	.p2align 3
.L6358:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%ebx, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6370:

	.cfi_restore_state
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L6358
	movq	%rax, %r13
	jmp	.L6357
	.cfi_endproc
.LFE996:

	.size	BN_MONT_CTX_set, .-BN_MONT_CTX_set
# WAS .section	.text.BN_MONT_CTX_new_for_modulus,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_new_for_modulus
	.type	BN_MONT_CTX_new_for_modulus, @function
.LBN_MONT_CTX_new_for_modulus_local_target:
BN_MONT_CTX_new_for_modulus:
.LFB997:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	BN_MONT_CTX_new@PLT
	call	.LBN_MONT_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L6374
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	BN_MONT_CTX_set@PLT
	call	.LBN_MONT_CTX_set_local_target
	testl	%eax, %eax
	je	.L6374
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6374:

	.cfi_restore_state
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE997:

	.size	BN_MONT_CTX_new_for_modulus, .-BN_MONT_CTX_new_for_modulus
# WAS .section	.text.BN_MONT_CTX_set_locked,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_set_locked
	.hidden	BN_MONT_CTX_set_locked
	.type	BN_MONT_CTX_set_locked, @function
.LBN_MONT_CTX_set_locked_local_target:
BN_MONT_CTX_set_locked:
.LFB999:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	$1, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	CRYPTO_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_read
	movq	0(%rbp), %r14
	movq	%rbx, %rdi
# WAS call	CRYPTO_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_read
	testq	%r14, %r14
	je	.L6385
.L6379:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6385:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	movq	0(%rbp), %rax
	testq	%rax, %rax
	je	.L6386
.L6381:

	xorl	%r13d, %r13d
	movq	%rbx, %rdi
	testq	%rax, %rax
	setne	%r13b
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	jmp	.L6379
	.p2align 4,,10
	.p2align 3
.L6386:

	movq	%r15, %rsi
	movq	%r12, %rdi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%rax, 0(%rbp)
	jmp	.L6381
	.cfi_endproc
.LFE999:

	.size	BN_MONT_CTX_set_locked, .-BN_MONT_CTX_set_locked
# WAS .section	.text.bn_mont_ctx_set_RR_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mont_ctx_set_RR_consttime
	.hidden	bn_mont_ctx_set_RR_consttime
	.type	bn_mont_ctx_set_RR_consttime, @function
.Lbn_mont_ctx_set_RR_consttime_local_target:
bn_mont_ctx_set_RR_consttime:
.LFB1015:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	leaq	24(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1, %eax
	je	.L6402
	leal	-1(%rax), %esi
	movq	%rbx, %rdi
	movl	32(%rbx), %r14d
	movl	%eax, %ebp
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	jne	.L6403
.L6390:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6403:

	.cfi_restore_state
	movl	%r14d, %eax
	movq	%r12, %r8
	movq	%r13, %rcx
	movq	%rbx, %rsi
	sall	$6, %eax
	movq	%rbx, %rdi
	leal	1(%r14,%rax), %edx
	subl	%ebp, %edx
# WAS call	bn_mod_lshift_consttime
	call	.Lbn_mod_lshift_consttime_local_target
	testl	%eax, %eax
	je	.L6390
	movl	$6, %ebp
.L6392:

	movq	%r12, %r8
	movq	%rbx, %rcx
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L6390
	subl	$1, %ebp
	jne	.L6392
.L6401:

	movslq	32(%rbx), %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	bn_resize_words@PLT
	jmp	.Lbn_resize_words_local_target
	.p2align 4,,10
	.p2align 3
.L6402:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L6401
	.cfi_endproc
.LFE1015:

	.size	bn_mont_ctx_set_RR_consttime, .-bn_mont_ctx_set_RR_consttime
# WAS .section	.text.BN_MONT_CTX_new_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	BN_MONT_CTX_new_consttime
	.type	BN_MONT_CTX_new_consttime, @function
.LBN_MONT_CTX_new_consttime_local_target:
BN_MONT_CTX_new_consttime:
.LFB998:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	BN_MONT_CTX_new@PLT
	call	.LBN_MONT_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L6407
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	bn_mont_ctx_set_N_and_n0
	call	.Lbn_mont_ctx_set_N_and_n0_local_target
	testl	%eax, %eax
	je	.L6407
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	bn_mont_ctx_set_RR_consttime
	call	.Lbn_mont_ctx_set_RR_consttime_local_target
	testl	%eax, %eax
	je	.L6407
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6407:

	.cfi_restore_state
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE998:

	.size	BN_MONT_CTX_new_consttime, .-BN_MONT_CTX_new_consttime
# WAS .section	.text.BN_clear_bit,"ax",@progbits
.text
	.p2align 4
	.globl	BN_clear_bit
	.type	BN_clear_bit, @function
.LBN_clear_bit_local_target:
BN_clear_bit:
.LFB1082:

	.cfi_startproc
	endbr64
	movl	%esi, %ecx
	xorl	%edx, %edx
	testl	%esi, %esi
	js	.L6415
	movslq	8(%rdi), %rax
	sarl	$6, %esi
	cmpl	%esi, %eax
	jle	.L6415
	movq	(%rdi), %rdx
	movslq	%esi, %rsi
	movq	$-2, %r8
	rolq	%cl, %r8
	andq	%r8, (%rdx,%rsi,8)
	jmp	.L6417
	.p2align 4,,10
	.p2align 3
.L6419:

	subq	$1, %rax
	testl	%eax, %eax
	je	.L6418
.L6417:

	cmpq	$0, -8(%rdx,%rax,8)
	je	.L6419
	movl	%eax, 8(%rdi)
.L6421:

	movl	$1, %edx
.L6415:

	movl	%edx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L6418:

	movl	$0, 8(%rdi)
	movl	$0, 16(%rdi)
	jmp	.L6421
	.cfi_endproc
.LFE1082:

	.size	BN_clear_bit, .-BN_clear_bit
# WAS .section	.text.bn_is_bit_set_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_is_bit_set_words
	.hidden	bn_is_bit_set_words
	.type	bn_is_bit_set_words, @function
.Lbn_is_bit_set_words_local_target:
bn_is_bit_set_words:
.LFB1083:

	.cfi_startproc
	endbr64
	movq	%rdx, %rcx
	shrq	$6, %rdx
	xorl	%eax, %eax
	cmpq	%rsi, %rdx
	jnb	.L6425
	movq	(%rdi,%rdx,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
.L6425:

	ret
	.cfi_endproc
.LFE1083:

	.size	bn_is_bit_set_words, .-bn_is_bit_set_words
# WAS .section	.text.BN_is_bit_set,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_bit_set
	.type	BN_is_bit_set, @function
.LBN_is_bit_set_local_target:
BN_is_bit_set:
.LFB1084:

	.cfi_startproc
	endbr64
	movl	%esi, %ecx
	xorl	%eax, %eax
	testl	%esi, %esi
	js	.L6428
	movslq	%esi, %rdx
	movslq	8(%rdi), %rsi
	shrq	$6, %rdx
	cmpq	%rsi, %rdx
	jnb	.L6428
	movq	(%rdi), %rax
	movq	(%rax,%rdx,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
.L6428:

	ret
	.cfi_endproc
.LFE1084:

	.size	BN_is_bit_set, .-BN_is_bit_set
# WAS .section	.text.BN_exp,"ax",@progbits
.text
	.p2align 4
	.globl	BN_exp
	.type	BN_exp, @function
.LBN_exp_local_target:
BN_exp:
.LFB955:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movq	%rcx, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	cmpq	%rbx, %r14
	je	.L6448
	movq	%r14, %r15
	cmpq	%r13, %r14
	je	.L6448
.L6433:

	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %rbp
	testq	%r15, %r15
	je	.L6438
	testq	%rax, %rax
	je	.L6438
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6438
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	%r13, %rdi
	movl	%eax, 12(%rsp)
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	jne	.L6468
	movq	%r15, %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L6438
.L6440:

	cmpl	$1, 12(%rsp)
	movl	$1, %ebx
	jg	.L6442
	jmp	.L6443
	.p2align 4,,10
	.p2align 3
.L6444:

	addl	$1, %ebx
	cmpl	%ebx, 12(%rsp)
	je	.L6443
.L6442:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_sqr@PLT
	call	.LBN_sqr_local_target
	testl	%eax, %eax
	je	.L6438
	movl	%ebx, %esi
	movq	%r13, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L6444
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	BN_mul@PLT
	call	.LBN_mul_local_target
	testl	%eax, %eax
	jne	.L6444
	.p2align 4,,10
	.p2align 3
.L6438:

	xorl	%ebx, %ebx
.L6437:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6448:

	.cfi_restore_state
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r15
	jmp	.L6433
	.p2align 4,,10
	.p2align 3
.L6468:

	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	jne	.L6440
	jmp	.L6438
	.p2align 4,,10
	.p2align 3
.L6443:

	movl	$1, %ebx
	cmpq	%r14, %r15
	je	.L6437
	movq	%r15, %rsi
	movq	%r14, %rdi
	xorl	%ebx, %ebx
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%bl
	jmp	.L6437
	.cfi_endproc
.LFE955:

	.size	BN_exp, .-BN_exp
# WAS .section	.text.mod_exp_recp,"ax",@progbits
.text
	.p2align 4
	.type	mod_exp_recp, @function
.Lmod_exp_recp_local_target:
mod_exp_recp:
.LFB963:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$408, %rsp
	.cfi_def_cfa_offset 464
	movq	%rdi, 16(%rsp)
	movq	%rdx, %rdi
	movq	%rsi, 24(%rsp)
	movq	%rdx, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 392(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	testl	%eax, %eax
	je	.L6567
	leaq	64(%rsp), %r15
	movl	%eax, %r12d
	movq	%r15, %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	88(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	%rbx, %rdi
	movl	$0, 120(%rsp)
	movq	$0, 112(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r14
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 128(%rsp)
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L6476
	testq	%r14, %r14
	je	.L6476
	movl	16(%rbp), %ecx
	movq	%rbp, %rsi
	testl	%ecx, %ecx
	je	.L6475
	movq	%r14, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6476
	movl	$0, 16(%r14)
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6476
	movq	8(%rsp), %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movq	%r14, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	jmp	.L6477
	.p2align 4,,10
	.p2align 3
.L6475:

	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	jne	.L6568
	.p2align 4,,10
	.p2align 3
.L6476:

	xorl	%ebp, %ebp
.L6474:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r15, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rsp), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	392(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6566
	addq	$408, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6567:

	.cfi_restore_state
	movq	392(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6566
	movq	16(%rsp), %rdi
	addq	$408, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	BN_one@PLT
	jmp	.LBN_one_local_target
	.p2align 4,,10
	.p2align 3
.L6568:

	.cfi_restore_state
	movq	8(%rsp), %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movq	%rbp, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
.L6477:

	movq	24(%rsp), %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r13, %rdi
	movl	%eax, 112(%rsp)
	movl	$0, 116(%rsp)
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L6476
	movq	%r13, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L6569
	movslq	%r12d, %rax
	cmpq	$671, %rax
	ja	.L6502
	cmpq	$239, %rax
	ja	.L6503
	cmpq	$79, %rax
	ja	.L6504
	movl	$1, 24(%rsp)
	cmpq	$23, %rax
	ja	.L6570
.L6481:

	movq	16(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L6476
	movl	$1, 16(%rsp)
	leal	-1(%r12), %r14d
	movq	%rbx, 40(%rsp)
.L6483:

	movq	32(%rsp), %rdi
	movl	%r14d, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	jne	.L6571
	movl	16(%rsp), %edx
	testl	%edx, %edx
	je	.L6484
.L6495:

	testl	%r14d, %r14d
	jne	.L6572
.L6560:

	movq	40(%rsp), %rbx
.L6479:

	movl	$1, %ebp
	jmp	.L6474
	.p2align 4,,10
	.p2align 3
.L6570:

	movl	$4, 40(%rsp)
	movl	$3, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L6480:

	movq	%rbx, %r8
	movq	%r15, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_mul_reciprocal
	call	.LBN_mod_mul_reciprocal_local_target
	testl	%eax, %eax
	je	.L6476
	movl	$1, %r13d
	movl	%r12d, 48(%rsp)
	leaq	128(%rsp), %rbp
	movq	%r13, %r12
	movl	40(%rsp), %r13d
	jmp	.L6482
	.p2align 4,,10
	.p2align 3
.L6574:

	movq	-8(%rbp,%r12,8), %rsi
	movq	%rbx, %r8
	movq	%r15, %rcx
	movq	%r14, %rdx
# WAS call	BN_mod_mul_reciprocal
	call	.LBN_mod_mul_reciprocal_local_target
	testl	%eax, %eax
	je	.L6476
	addq	$1, %r12
	cmpl	%r12d, %r13d
	jle	.L6573
.L6482:

	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 0(%rbp,%r12,8)
	movq	%rax, %rdi
	testq	%rax, %rax
	jne	.L6574
	jmp	.L6476
	.p2align 4,,10
	.p2align 3
.L6569:

	movq	16(%rsp), %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L6479
	.p2align 4,,10
	.p2align 3
.L6502:

	movl	$32, 40(%rsp)
	movl	$6, 24(%rsp)
	jmp	.L6480
	.p2align 4,,10
	.p2align 3
.L6503:

	movl	$16, 40(%rsp)
	movl	$5, 24(%rsp)
	jmp	.L6480
	.p2align 4,,10
	.p2align 3
.L6573:

	movl	48(%rsp), %r12d
	jmp	.L6481
	.p2align 4,,10
	.p2align 3
.L6504:

	movl	$8, 40(%rsp)
	movl	$4, 24(%rsp)
	jmp	.L6480
	.p2align 4,,10
	.p2align 3
.L6484:

	movq	40(%rsp), %r8
	movq	%r15, %rcx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_mod_mul_reciprocal
	call	.LBN_mod_mul_reciprocal_local_target
	testl	%eax, %eax
	je	.L6563
	movl	$0, 16(%rsp)
	jmp	.L6495
	.p2align 4,,10
	.p2align 3
.L6572:

	subl	$1, %r14d
	jmp	.L6483
	.p2align 4,,10
	.p2align 3
.L6571:

	cmpl	$1, 24(%rsp)
	je	.L6575
	testl	%r14d, %r14d
	jle	.L6491
.L6490:

	movl	$1, %r13d
	leal	1(%r14), %eax
	movq	%rbp, 48(%rsp)
	xorl	%r12d, %r12d
	movq	%r15, 56(%rsp)
	movl	24(%rsp), %ebp
	movl	%r13d, %r15d
	movl	$1, %ebx
	movl	%eax, %r13d
	jmp	.L6492
	.p2align 4,,10
	.p2align 3
.L6498:

	cmpl	%r15d, %r13d
	je	.L6496
.L6492:

	movl	%r14d, %esi
	movq	32(%rsp), %rdi
	subl	%r15d, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L6497
	movl	%r15d, %ecx
	subl	%r12d, %ecx
	movl	%r15d, %r12d
	sall	%cl, %ebx
	orl	$1, %ebx
.L6497:

	addl	$1, %r15d
	cmpl	%r15d, %ebp
	jne	.L6498
.L6496:

	movl	16(%rsp), %eax
	movq	48(%rsp), %rbp
	movq	56(%rsp), %r15
	testl	%eax, %eax
	je	.L6486
.L6489:

	movl	%ebx, %eax
	movq	40(%rsp), %r8
	movq	%r15, %rcx
	movq	%rbp, %rsi
	sarl	%eax
	movq	%rbp, %rdi
	cltq
	movq	128(%rsp,%rax,8), %rdx
# WAS call	BN_mod_mul_reciprocal
	call	.LBN_mod_mul_reciprocal_local_target
	testl	%eax, %eax
	je	.L6563
	addl	$1, %r12d
	subl	%r12d, %r14d
	js	.L6560
	movq	32(%rsp), %rdi
	movl	%r14d, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L6484
	cmpl	$1, 24(%rsp)
	movl	$1, %ebx
	je	.L6565
	testl	%r14d, %r14d
	je	.L6565
	movl	$0, 16(%rsp)
	jmp	.L6490
.L6506:

	movl	$1, %ebx
.L6565:

	xorl	%r12d, %r12d
.L6486:

	leal	1(%r12), %eax
	xorl	%r13d, %r13d
	movl	%ebx, 16(%rsp)
	movl	%r12d, 48(%rsp)
	movl	%eax, %ebx
	movq	%rbp, %r12
	movl	%r13d, %ebp
	movq	40(%rsp), %r13
	jmp	.L6499
	.p2align 4,,10
	.p2align 3
.L6577:

	addl	$1, %ebp
	cmpl	%ebp, %ebx
	je	.L6576
.L6499:

	movq	%r13, %r8
	movq	%r15, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_mod_mul_reciprocal
	call	.LBN_mod_mul_reciprocal_local_target
	testl	%eax, %eax
	jne	.L6577
	movq	%r13, %rbx
	jmp	.L6476
.L6576:

	movq	%r12, %rbp
	movl	16(%rsp), %ebx
	movl	48(%rsp), %r12d
	jmp	.L6489
.L6491:

	movl	16(%rsp), %ebx
	xorl	%r12d, %r12d
	testl	%ebx, %ebx
	jne	.L6489
	movl	$1, %ebx
	jmp	.L6486
.L6575:

	movl	16(%rsp), %ebx
	testl	%ebx, %ebx
	je	.L6506
	xorl	%r12d, %r12d
	jmp	.L6489
.L6563:

	movq	40(%rsp), %rbx
	jmp	.L6476
.L6566:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE963:

	.size	mod_exp_recp, .-mod_exp_recp
# WAS .section	.text.BN_mod_exp_mont,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp_mont
	.type	BN_mod_exp_mont, @function
.LBN_mod_exp_mont_local_target:
BN_mod_exp_mont:
.LFB965:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$360, %rsp
	.cfi_def_cfa_offset 416
	movq	%rdi, (%rsp)
	movq	%rcx, %rdi
	movq	%fs:40, %rax
	movq	%rax, 344(%rsp)
	xorl	%eax, %eax
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L6693
	movl	16(%r14), %ecx
	testl	%ecx, %ecx
	jne	.L6694
	movl	16(%r15), %r9d
	testl	%r9d, %r9d
	jne	.L6584
	movq	%r14, %rsi
	movq	%r15, %rdi
	movl	%r9d, 8(%rsp)
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L6695
.L6584:

	movl	$646, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L6580:

	xorl	%r9d, %r9d
.L6578:

	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6692
	addq	$360, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r9d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6693:

	.cfi_restore_state
	movl	$637, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6580
	.p2align 4,,10
	.p2align 3
.L6695:

	movq	%r12, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movl	8(%rsp), %r9d
	testl	%eax, %eax
	jne	.L6585
	movl	$1, %esi
	movq	%r14, %rdi
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	jne	.L6696
	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6692
	movq	(%rsp), %rdi
	addq	$360, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	BN_one@PLT
	jmp	.LBN_one_local_target
	.p2align 4,,10
	.p2align 3
.L6694:

	.cfi_restore_state
	movl	$641, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6580
	.p2align 4,,10
	.p2align 3
.L6585:

	movq	%rbx, %rdi
	movl	%r9d, 16(%rsp)
	movl	%eax, 8(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r13
	movq	%rax, 24(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%r13, %r13
	movl	8(%rsp), %r10d
	movl	16(%rsp), %r9d
	sete	%dl
	testq	%rax, %rax
	movq	%rax, 80(%rsp)
	movq	%rax, %r11
	sete	%al
	orb	%al, %dl
	movb	%dl, 32(%rsp)
	jne	.L6591
	movq	$0, 8(%rsp)
	testq	%rbp, %rbp
	je	.L6697
.L6590:

	movslq	%r10d, %rax
	cmpq	$671, %rax
	ja	.L6620
	cmpq	$239, %rax
	ja	.L6621
	cmpq	$79, %rax
	ja	.L6622
	cmpq	$23, %rax
	ja	.L6698
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movq	%r11, %rdi
	movl	%r9d, 40(%rsp)
	movl	%r10d, 16(%rsp)
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	movl	16(%rsp), %r10d
	movl	40(%rsp), %r9d
	movl	$1, 56(%rsp)
	testl	%eax, %eax
	je	.L6589
.L6616:

	movl	$1, 16(%rsp)
	leal	-1(%r10), %r15d
	movl	%r9d, 60(%rsp)
	movq	%rbp, 48(%rsp)
	movq	%rbx, 40(%rsp)
	movq	24(%rsp), %rbx
.L6605:

	movl	%r15d, %esi
	movq	%r12, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	jne	.L6699
	movl	16(%rsp), %edx
	testl	%edx, %edx
	je	.L6601
.L6604:

	testl	%r15d, %r15d
	jne	.L6700
.L6602:

	movq	40(%rsp), %rbx
	movq	48(%rsp), %rbp
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rbx, %rcx
	movq	%rbp, %rdx
# WAS call	BN_from_montgomery@PLT
	call	.LBN_from_montgomery_local_target
	xorl	%r9d, %r9d
	testl	%eax, %eax
	setne	%r9b
.L6589:

	movq	8(%rsp), %rdi
	movl	%r9d, (%rsp)
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	(%rsp), %r9d
	jmp	.L6578
	.p2align 4,,10
	.p2align 3
.L6696:

	movq	(%rsp), %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movl	$1, %r9d
	jmp	.L6578
	.p2align 4,,10
	.p2align 3
.L6620:

	movl	$32, 48(%rsp)
	movl	$6, 56(%rsp)
.L6592:

	movq	%r11, %rdi
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r15, %rsi
	movl	%r9d, 40(%rsp)
	movl	%r10d, 32(%rsp)
	movq	%r11, 16(%rsp)
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	movq	16(%rsp), %r11
	movl	32(%rsp), %r10d
	testl	%eax, %eax
	movl	40(%rsp), %r9d
	je	.L6589
	movq	%rbx, %rdi
	movl	%r9d, 16(%rsp)
	movl	%r10d, 40(%rsp)
	movq	%r11, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movl	16(%rsp), %r9d
	testq	%rax, %rax
	movq	%rax, %r13
	je	.L6589
	movq	32(%rsp), %r11
	movq	%rbx, %r8
	movq	%rbp, %rcx
	movq	%rax, %rdi
	movq	%r11, %rdx
	movq	%r11, %rsi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	movl	16(%rsp), %r9d
	testl	%eax, %eax
	je	.L6589
	movl	40(%rsp), %r10d
	movl	$1, %r15d
	movq	%r12, 40(%rsp)
	leaq	80(%rsp), %r14
	movl	48(%rsp), %r12d
	movl	%r10d, 32(%rsp)
	jmp	.L6596
	.p2align 4,,10
	.p2align 3
.L6702:

	movq	-8(%r14,%r15,8), %rsi
	movq	%rbx, %r8
	movq	%rbp, %rcx
	movq	%r13, %rdx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L6686
	addq	$1, %r15
	cmpl	%r15d, %r12d
	jle	.L6701
.L6596:

	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, (%r14,%r15,8)
	movq	%rax, %rdi
	testq	%rax, %rax
	jne	.L6702
.L6686:

	movl	16(%rsp), %r9d
	jmp	.L6589
.L6697:

	movq	%rbx, %rsi
	movq	%r14, %rdi
	movl	%r9d, 8(%rsp)
	movl	%r10d, 40(%rsp)
	movq	%r11, 16(%rsp)
# WAS call	BN_MONT_CTX_new_consttime@PLT
	call	.LBN_MONT_CTX_new_consttime_local_target
	movl	8(%rsp), %r9d
	testq	%rax, %rax
	movq	%rax, %rbp
	je	.L6591
	movl	40(%rsp), %r10d
	movq	16(%rsp), %r11
	movq	%rax, 8(%rsp)
	jmp	.L6590
	.p2align 4,,10
	.p2align 3
.L6591:

	movq	$0, 8(%rsp)
	jmp	.L6589
.L6621:

	movl	$16, 48(%rsp)
	movl	$5, 56(%rsp)
	jmp	.L6592
.L6601:

	movq	40(%rsp), %r8
	movq	48(%rsp), %rcx
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L6690
	movl	$0, 16(%rsp)
	jmp	.L6604
.L6700:

	subl	$1, %r15d
	jmp	.L6605
.L6699:

	testl	%r15d, %r15d
	jle	.L6600
	cmpb	$0, 32(%rsp)
	je	.L6600
.L6598:

	movq	%rbx, 64(%rsp)
	xorl	%r14d, %r14d
	movl	56(%rsp), %ebx
	movl	$1, %ebp
	movl	$1, %r13d
	jmp	.L6607
	.p2align 4,,10
	.p2align 3
.L6703:

	cmpl	%r15d, %ebp
	jg	.L6688
.L6607:

	movl	%r15d, %esi
	movq	%r12, %rdi
	subl	%ebp, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L6606
	movl	%ebp, %ecx
	subl	%r14d, %ecx
	movl	%ebp, %r14d
	sall	%cl, %r13d
	orl	$1, %r13d
.L6606:

	addl	$1, %ebp
	cmpl	%ebx, %ebp
	jl	.L6703
.L6688:

	movl	16(%rsp), %eax
	movq	64(%rsp), %rbx
	testl	%eax, %eax
	je	.L6610
.L6611:

	sarl	%r13d
	movq	%rbx, %rdi
	movslq	%r13d, %rax
	movq	80(%rsp,%rax,8), %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6690
.L6613:

	cmpl	%r15d, %r14d
	je	.L6602
	addl	$1, %r14d
	movq	%r12, %rdi
	subl	%r14d, %r15d
	movl	%r15d, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L6601
	movl	$1, %r13d
	testl	%r15d, %r15d
	jle	.L6627
	cmpb	$0, 32(%rsp)
	movl	$0, 16(%rsp)
	jne	.L6598
.L6627:

	xorl	%r14d, %r14d
.L6610:

	leal	1(%r14), %eax
	xorl	%r9d, %r9d
	movl	%r13d, 16(%rsp)
	movq	48(%rsp), %rbp
	movl	%r14d, 64(%rsp)
	movl	%r9d, %r13d
	movq	40(%rsp), %r14
	movq	%r12, 72(%rsp)
	movq	%rbx, %r12
	movl	%eax, %ebx
	jmp	.L6614
	.p2align 4,,10
	.p2align 3
.L6705:

	addl	$1, %r13d
	cmpl	%ebx, %r13d
	je	.L6704
.L6614:

	movq	%r14, %r8
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L6705
	movl	60(%rsp), %r9d
	movq	%r14, %rbx
	jmp	.L6589
.L6622:

	movl	$8, 48(%rsp)
	movl	$4, 56(%rsp)
	jmp	.L6592
.L6698:

	movl	$4, 48(%rsp)
	movl	$3, 56(%rsp)
	jmp	.L6592
.L6701:

	movl	32(%rsp), %r10d
	movl	16(%rsp), %r9d
	movb	$1, 32(%rsp)
	movq	40(%rsp), %r12
	jmp	.L6616
.L6704:

	movl	16(%rsp), %r13d
	movq	%r12, %rbx
	movq	40(%rsp), %r8
	movq	48(%rsp), %rcx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movl	64(%rsp), %r14d
	sarl	%r13d
	movq	72(%rsp), %r12
	movslq	%r13d, %rax
	movq	80(%rsp,%rax,8), %rdx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L6613
.L6690:

	movl	60(%rsp), %r9d
	movq	40(%rsp), %rbx
	jmp	.L6589
.L6600:

	movl	16(%rsp), %r13d
	xorl	%r14d, %r14d
	testl	%r13d, %r13d
	jne	.L6611
	movl	$1, %r13d
	jmp	.L6610
.L6692:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE965:

	.size	BN_mod_exp_mont, .-BN_mod_exp_mont
# WAS .section	.text.BN_mod_exp,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp
	.type	BN_mod_exp, @function
.LBN_mod_exp_local_target:
BN_mod_exp:
.LFB964:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	16(%rcx), %r9d
	testl	%r9d, %r9d
	jne	.L6716
	movl	16(%rsi), %eax
	movq	%rdi, %r12
	movq	%rsi, %rbp
	movq	%rdx, %r14
	movq	%rcx, %rbx
	movq	%r8, %r13
	testl	%eax, %eax
	je	.L6709
.L6712:

	movq	%rbp, %rsi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	movq	%r12, %rbp
	testl	%eax, %eax
	je	.L6711
.L6710:

	movq	%rbx, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	jne	.L6717
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rdx
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movq	%r12, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	mod_exp_recp
	jmp	.Lmod_exp_recp_local_target
	.p2align 4,,10
	.p2align 3
.L6709:

	.cfi_restore_state
	movq	%rcx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jns	.L6712
	jmp	.L6710
	.p2align 4,,10
	.p2align 3
.L6716:

	movl	$617, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L6711:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6717:

	.cfi_restore_state
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movq	%r12, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 32
	xorl	%r9d, %r9d
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	BN_mod_exp_mont@PLT
	jmp	.LBN_mod_exp_mont_local_target
	.cfi_endproc
.LFE964:

	.size	BN_mod_exp, .-BN_mod_exp
# WAS .section	.text.BN_mod_exp_mont_word,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp_mont_word
	.type	BN_mod_exp_mont_word, @function
.LBN_mod_exp_mont_word_local_target:
BN_mod_exp_mont_word:
.LFB972:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%rdi, 8(%rsp)
	leaq	16(%rsp), %rbp
	movq	%rbp, %rdi
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movl	8(%rbx), %ecx
	testl	%ecx, %ecx
	jle	.L6719
	movq	(%rbx), %rsi
	movslq	%ecx, %rax
	leaq	(%rsi,%rax,8), %rdi
	jmp	.L6720
	.p2align 4,,10
	.p2align 3
.L6721:

	subq	$8, %rdi
	subl	$1, %ecx
	je	.L6719
.L6720:

	cmpq	$0, -8(%rdi)
	je	.L6721
	cmpl	$1, %ecx
	jne	.L6719
	movq	%r12, %rax
	xorl	%edx, %edx
	divq	(%rsi)
	movq	%rdx, %r12
.L6719:

	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L6729
	movq	8(%rsp), %rdi
	movq	%r15, %r9
	movq	%r14, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rsi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	movl	%eax, %r12d
.L6723:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L6730
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6729:

	.cfi_restore_state
	movl	$1371, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6723
.L6730:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE972:

	.size	BN_mod_exp_mont_word, .-BN_mod_exp_mont_word
# WAS .section	.text.BN_mod_exp2_mont,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp2_mont
	.type	BN_mod_exp2_mont, @function
.LBN_mod_exp2_mont_local_target:
BN_mod_exp2_mont:
.LFB973:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%rsi, (%rsp)
	movq	136(%rsp), %rbx
	leaq	32(%rsp), %r13
	movq	%rdx, 8(%rsp)
	movq	%r13, %rdi
	movq	128(%rsp), %r14
	movq	%rcx, 16(%rsp)
	movq	%r8, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	testq	%rbx, %rbx
	je	.L6746
.L6732:

	movq	8(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%rbx, %r9
	movq	%r14, %r8
	movq	%rbp, %rcx
	movq	%r12, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	jne	.L6747
.L6738:

	xorl	%ebx, %ebx
.L6733:

	movq	%r15, %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L6748
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6747:

	.cfi_restore_state
	movq	24(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%rbx, %r9
	movq	%r14, %r8
	movq	%rbp, %rcx
	movq	%r13, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L6738
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	testl	%eax, %eax
	je	.L6738
	movq	%rbx, %rcx
	movq	%r14, %r8
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	xorl	%ebx, %ebx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	setne	%bl
	jmp	.L6733
	.p2align 4,,10
	.p2align 3
.L6746:

	movq	%r14, %rsi
	movq	%rbp, %rdi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L6738
	movq	%rax, %r15
	jmp	.L6732
.L6748:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE973:

	.size	BN_mod_exp2_mont, .-BN_mod_exp2_mont
# WAS .section	.text.bn_mod_inverse_prime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_inverse_prime
	.hidden	bn_mod_inverse_prime
	.type	bn_mod_inverse_prime, @function
.Lbn_mod_inverse_prime_local_target:
bn_mod_inverse_prime:
.LFB977:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%rcx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6752
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6752
	movl	$2, %esi
	movq	%rbp, %rdi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	jne	.L6760
.L6752:

	xorl	%ebp, %ebp
.L6751:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6760:

	.cfi_restore_state
	movq	%rbp, %rdx
	movq	%r15, %r9
	movq	%rbx, %r8
	movq	%r12, %rcx
	movq	%r14, %rsi
	movq	%r13, %rdi
	xorl	%ebp, %ebp
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	setne	%bpl
	jmp	.L6751
	.cfi_endproc
.LFE977:

	.size	bn_mod_inverse_prime, .-bn_mod_inverse_prime
# WAS .section	.text.BN_mod_exp_mont_consttime,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp_mont_consttime
	.type	BN_mod_exp_mont_consttime, @function
.LBN_mod_exp_mont_consttime_local_target:
BN_mod_exp_mont_consttime:
.LFB970:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	16(%rsp), %r13
	.cfi_def_cfa 13, 0
	andq	$-64, %rsp
	pushq	-8(%r13)
	pushq	%rbp
	movq	%rsp, %rbp
	.cfi_escape 0x10,0x6,0x2,0x76,0
	pushq	%r15
	pushq	%r14
	pushq	%r13
	.cfi_escape 0xf,0x3,0x76,0x68,0x6
	.cfi_escape 0x10,0xf,0x2,0x76,0x78
	.cfi_escape 0x10,0xe,0x2,0x76,0x70
	pushq	%r12
	pushq	%rbx
	subq	$4096, %rsp
	orq	$0, (%rsp)
	subq	$1736, %rsp
	.cfi_escape 0x10,0xc,0x2,0x76,0x60
	.cfi_escape 0x10,0x3,0x2,0x76,0x58
	movq	%rdi, -5792(%rbp)
	movq	%rcx, %rdi
	movq	%rsi, %r12
	movq	%rcx, %rbx
	movq	%rdx, -5776(%rbp)
	movq	%r8, -5784(%rbp)
	movq	%r9, -5768(%rbp)
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L6888
	movl	16(%rbx), %edi
	testl	%edi, %edi
	jne	.L6889
	movl	16(%r12), %r13d
	testl	%r13d, %r13d
	jne	.L6767
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	notl	%eax
	shrl	$31, %eax
	testl	%eax, %eax
	jne	.L6767
	movq	-5776(%rbp), %rax
	movl	8(%rax), %eax
	movl	%eax, -5848(%rbp)
	testl	%eax, %eax
	je	.L6890
	cmpq	$0, -5768(%rbp)
	movq	$0, -5824(%rbp)
	je	.L6891
.L6771:

	movq	-5768(%rbp), %rax
	cmpl	$16, 8(%r12)
	movl	32(%rax), %eax
	movl	%eax, -5796(%rbp)
	je	.L6892
.L6773:

	movslq	-5796(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	%rax, -5832(%rbp)
	imulq	$280, %rax, %rax
	movq	%rdx, -5808(%rbp)
	movq	%rax, -5816(%rbp)
	cmpq	$5568, %rax
	ja	.L6893
	cmpq	$0, -5816(%rbp)
	jne	.L6778
	leaq	-5680(%rbp), %rcx
.L6780:

	movb	$1, -5797(%rbp)
	movq	%rcx, %r15
	movq	$0, -5840(%rbp)
.L6779:

	movl	-5796(%rbp), %ebx
	movq	-5784(%rbp), %rdx
	movl	$0, -5704(%rbp)
	movq	-5768(%rbp), %rsi
	movl	$0, -5736(%rbp)
	movl	%ebx, %eax
	movl	%ebx, -5700(%rbp)
	sall	$5, %eax
	movl	%ebx, -5732(%rbp)
	cltq
	leaq	(%r15,%rax,8), %r14
	movq	-5808(%rbp), %rax
	movq	%r14, -5744(%rbp)
	addq	%r14, %rax
	movq	%rax, -5712(%rbp)
	movabsq	$8589934592, %rax
	movq	%rax, -5696(%rbp)
	movq	%rax, -5728(%rbp)
	leaq	-5744(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -5856(%rbp)
# WAS call	bn_one_to_montgomery
	call	.Lbn_one_to_montgomery_local_target
	testl	%eax, %eax
	je	.L6782
	movq	-5832(%rbp), %rsi
	movq	-5856(%rbp), %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	jne	.L6894
.L6782:

	movq	-5824(%rbp), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	cmpb	$0, -5797(%rbp)
	je	.L6811
	movq	-5816(%rbp), %rsi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L6811:

	movq	-5840(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L6761:

	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L6887
	leaq	-40(%rbp), %rsp
	movl	%r13d, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	.cfi_remember_state
	.cfi_def_cfa 13, 0
	popq	%r14
	popq	%r15
	popq	%rbp
	leaq	-16(%r13), %rsp
	.cfi_def_cfa 7, 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6767:

	.cfi_restore_state
	movl	$951, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L6763:

	xorl	%r13d, %r13d
	jmp	.L6761
	.p2align 4,,10
	.p2align 3
.L6888:

	movl	$941, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6763
	.p2align 4,,10
	.p2align 3
.L6890:

	movl	$1, %esi
	movq	%rbx, %rdi
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	jne	.L6895
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L6887
	movq	-5792(%rbp), %rdi
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	.cfi_remember_state
	.cfi_def_cfa 13, 0
	popq	%r14
	popq	%r15
	popq	%rbp
	leaq	-16(%r13), %rsp
	.cfi_def_cfa 7, 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	BN_one@PLT
	jmp	.LBN_one_local_target
	.p2align 4,,10
	.p2align 3
.L6889:

	.cfi_restore_state
	movl	$945, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L6763
	.p2align 4,,10
	.p2align 3
.L6892:

	movq	-5776(%rbp), %rax
	cmpl	$16, 8(%rax)
	jne	.L6773
	movq	%rbx, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1024, %eax
	jne	.L6773
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	8(%rax), %eax
	movl	%eax, %edx
	notl	%edx
	andl	$264, %edx
	je	.L6896
.L6774:

	testb	$32, %al
	je	.L6773
	movq	-5792(%rbp), %rdi
	movl	$16, %esi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L6897
.L6775:

	movq	-5824(%rbp), %rax
	movq	%rax, -5768(%rbp)
.L6772:

	movq	-5768(%rbp), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	$0, -5840(%rbp)
	jmp	.L6811
	.p2align 4,,10
	.p2align 3
.L6893:

	leaq	64(%rax), %rdi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, -5840(%rbp)
	testq	%rax, %rax
	je	.L6775
	movq	%rax, %rdx
	negq	%rax
	movb	$0, -5797(%rbp)
	andl	$63, %eax
	leaq	(%rdx,%rax), %r15
	jmp	.L6779
	.p2align 4,,10
	.p2align 3
.L6778:

	leaq	-5680(%rbp), %rcx
	movq	%rax, %rdx
	xorl	%esi, %esi
	movq	%rcx, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	%rax, %rcx
	jmp	.L6780
	.p2align 4,,10
	.p2align 3
.L6895:

	movq	-5792(%rbp), %rdi
	movl	$1, %r13d
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L6761
	.p2align 4,,10
	.p2align 3
.L6894:

	movq	-5784(%rbp), %rcx
	movq	-5768(%rbp), %rdx
	leaq	-5712(%rbp), %rdi
	movq	%r12, %rsi
	movq	%rdi, -5864(%rbp)
	movq	%rdi, %r12
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	testl	%eax, %eax
	je	.L6782
	movq	-5832(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L6782
	movl	-5848(%rbp), %esi
	sall	$6, %esi
	movl	%esi, -5868(%rbp)
	cmpl	$1, %ebx
	jle	.L6784
	movq	-5768(%rbp), %rax
	movq	-5808(%rbp), %r12
	addq	-5712(%rbp), %r12
	movq	24(%rax), %rdx
	leal	-1(%rbx), %eax
	cmpl	$2, %eax
	jbe	.L6816
	movq	%r12, %rcx
	xorl	%eax, %eax
	subq	%rdx, %rcx
	cmpq	$8, %rcx
	jne	.L6898
	movq	-5808(%rbp), %rsi
	.p2align 4,,10
	.p2align 3
.L6788:

	movq	(%rdx,%rax), %rcx
	movq	%rcx, (%r12,%rax)
	addq	$8, %rax
	cmpq	%rax, %rsi
	jne	.L6788
	.p2align 4,,10
	.p2align 3
.L6789:

	movq	-5832(%rbp), %rbx
	movq	-5768(%rbp), %rax
	xorl	%ecx, %ecx
	movq	%r15, %rdx
	movq	-5744(%rbp), %rdi
	movl	$4, %r14d
	movq	%rbx, %rsi
	leaq	48(%rax), %r13
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
	movslq	-5704(%rbp), %rsi
	movl	$1, %ecx
	movq	%r15, %rdx
	movq	-5712(%rbp), %rdi
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
	movq	%rbx, %r9
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	-5712(%rbp), %rsi
	movq	-5744(%rbp), %rdi
	movq	%rsi, %rdx
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	%rbx, %rsi
	movl	$2, %ecx
	movq	%r15, %rdx
	movq	-5744(%rbp), %rdi
	movl	$3, %ebx
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
.L6790:

	movq	-5744(%rbp), %rdi
	movq	-5832(%rbp), %r9
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	-5832(%rbp), %rsi
	movslq	%r14d, %rcx
	movq	%r15, %rdx
	movq	-5744(%rbp), %rdi
	addl	%r14d, %r14d
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
	subl	$1, %ebx
	jne	.L6790
	movl	$3, %r14d
	movq	-5832(%rbp), %rbx
	movq	%r14, -5808(%rbp)
	.p2align 4,,10
	.p2align 3
.L6792:

	movq	-5808(%rbp), %r14
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%r15, %rdx
	subq	$8, %rsp
	movl	%r14d, %eax
	subl	$1, %eax
	pushq	%rax
	movl	-5796(%rbp), %r9d
	movq	-5712(%rbp), %rsi
	movq	-5744(%rbp), %rdi
# WAS call	bn_mul_mont_gather5@PLT
	call	.Lbn_mul_mont_gather5_local_target
	movq	%r14, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	-5744(%rbp), %rdi
	leal	(%r14,%r14), %r14d
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
	popq	%r11
	popq	%rax
	cmpl	$31, %r14d
	ja	.L6794
	.p2align 4,,10
	.p2align 3
.L6791:

	movq	-5744(%rbp), %rdi
	movq	%rbx, %r9
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movslq	%r14d, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	-5744(%rbp), %rdi
	addl	%r14d, %r14d
# WAS call	bn_scatter5@PLT
	call	.Lbn_scatter5_local_target
	cmpl	$31, %r14d
	jle	.L6791
.L6794:

	addq	$2, -5808(%rbp)
	movq	-5808(%rbp), %rax
	cmpq	$33, %rax
	jne	.L6792
	movl	-5868(%rbp), %eax
	leal	-1(%rax), %r14d
	movslq	%r14d, %rax
	movl	%r14d, %edx
	imulq	$1717986919, %rax, %rax
	sarl	$31, %edx
	sarq	$33, %rax
	subl	%edx, %eax
	leal	(%rax,%rax,4), %edx
	movl	-5796(%rbp), %eax
	andl	$7, %eax
	movl	%eax, -5808(%rbp)
	movl	%r14d, %eax
	subl	%edx, %eax
	js	.L6795
	movl	-5848(%rbp), %edx
	movq	%r12, -5864(%rbp)
	movl	%r14d, %r12d
	movl	%eax, %r14d
	movq	%r13, -5848(%rbp)
	sall	$6, %edx
	subl	$2, %edx
	subl	%eax, %edx
	movl	%edx, %esi
	xorl	%edx, %edx
	movl	%esi, %r13d
	.p2align 4,,10
	.p2align 3
.L6796:

	movq	-5776(%rbp), %rdi
	movl	%r12d, %esi
	leal	(%rdx,%rdx), %ebx
	subl	$1, %r12d
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	leal	(%rbx,%rax), %edx
	cmpl	%r13d, %r12d
	jne	.L6796
	movl	-5868(%rbp), %esi
	movq	-5744(%rbp), %rdi
	movslq	%edx, %rcx
	movq	%r15, %rdx
	movq	-5848(%rbp), %r13
	movq	-5864(%rbp), %r12
	leal	-2(%rsi), %r10d
	movq	-5832(%rbp), %rsi
	subl	%r14d, %r10d
	movl	%r10d, %r14d
# WAS call	bn_gather5@PLT
	call	.Lbn_gather5_local_target
	movl	-5808(%rbp), %r10d
	testl	%r10d, %r10d
	je	.L6797
	testl	%r14d, %r14d
	js	.L6798
	movq	%r12, -5808(%rbp)
	leal	-5(%r14), %ebx
	movq	-5832(%rbp), %r14
	movq	%r15, -5848(%rbp)
	movq	-5776(%rbp), %r15
	.p2align 4,,10
	.p2align 3
.L6799:

	leal	5(%rbx), %r12d
	movq	%r13, -5776(%rbp)
	xorl	%r10d, %r10d
	movl	%r12d, %r13d
	movl	%ebx, %r12d
	.p2align 4,,10
	.p2align 3
.L6800:

	movl	%r13d, %esi
	movq	%r15, %rdi
	leal	(%r10,%r10), %ebx
	subl	$1, %r13d
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	leal	(%rbx,%rax), %r10d
	cmpl	%r12d, %r13d
	jne	.L6800
	movq	-5744(%rbp), %rdi
	movl	%r12d, %ebx
	movl	%r13d, %r12d
	movq	-5776(%rbp), %r13
	movq	-5808(%rbp), %rcx
	movq	%r14, %r9
	movl	%r10d, -5832(%rbp)
	subl	$5, %ebx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
	movq	%r13, %r8
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	-5744(%rbp), %rdi
	movq	%r14, %r9
	movq	%r13, %r8
	movq	-5808(%rbp), %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	-5744(%rbp), %rdi
	movq	%r14, %r9
	movq	%r13, %r8
	movq	-5808(%rbp), %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	-5744(%rbp), %rdi
	movq	%r14, %r9
	movq	%r13, %r8
	movq	-5808(%rbp), %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movq	-5744(%rbp), %rdi
	movq	%r14, %r9
	movq	%r13, %r8
	movq	-5808(%rbp), %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont
	call	.Lbn_mul_mont_local_target
	movl	-5832(%rbp), %r10d
	subq	$8, %rsp
	movq	%r13, %r8
	movq	-5744(%rbp), %rdi
	pushq	%r10
	movl	-5796(%rbp), %r9d
	movq	-5808(%rbp), %rcx
	movq	-5848(%rbp), %rdx
	movq	%rdi, %rsi
# WAS call	bn_mul_mont_gather5@PLT
	call	.Lbn_mul_mont_gather5_local_target
	popq	%r8
	popq	%r9
	testl	%r12d, %r12d
	jns	.L6799
	movq	-5848(%rbp), %r15
.L6798:

	movq	-5784(%rbp), %rcx
	movq	-5768(%rbp), %rdx
	xorl	%r13d, %r13d
	movq	-5856(%rbp), %rsi
	movq	-5792(%rbp), %rdi
# WAS call	BN_from_montgomery@PLT
	call	.LBN_from_montgomery_local_target
	testl	%eax, %eax
	setne	%r13b
	jmp	.L6782
	.p2align 4,,10
	.p2align 3
.L6891:

	movq	-5784(%rbp), %rsi
	movq	%rbx, %rdi
# WAS call	BN_MONT_CTX_new_consttime@PLT
	call	.LBN_MONT_CTX_new_consttime_local_target
	movq	%rax, -5768(%rbp)
	testq	%rax, %rax
	je	.L6772
	movq	%rax, -5824(%rbp)
	jmp	.L6771
.L6898:

	shrl	%ebx
	movl	%ebx, %ecx
	salq	$4, %rcx
	.p2align 4,,10
	.p2align 3
.L6786:

	movdqu	(%rdx,%rax), %xmm0
	movups	%xmm0, (%r12,%rax)
	addq	$16, %rax
	cmpq	%rax, %rcx
	jne	.L6786
	movl	-5796(%rbp), %esi
	movl	%esi, %eax
	andl	$-2, %eax
	andl	$1, %esi
	je	.L6789
	movq	(%rdx,%rax,8), %rdx
	movq	%rdx, (%r12,%rax,8)
	jmp	.L6789
.L6797:

	movq	-5776(%rbp), %rax
	movq	(%rax), %rbx
	movl	-5868(%rbp), %eax
	subl	$4, %eax
	cmpl	%r14d, %eax
	jle	.L6801
.L6802:

	leaq	-5746(%rbp), %rax
	movq	%rax, -5776(%rbp)
	testl	%r14d, %r14d
	js	.L6798
	movq	%r12, -5808(%rbp)
	.p2align 4,,10
	.p2align 3
.L6803:

	leal	-4(%r14), %r12d
	movq	-5776(%rbp), %rdi
	movl	$2, %edx
	subl	$5, %r14d
	movl	%r12d, %esi
	sarl	$3, %esi
	movslq	%esi, %rsi
	addq	%rbx, %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movl	%r12d, %ecx
	subq	$8, %rsp
	movq	%r15, %rdx
	movzwl	-5746(%rbp), %eax
	andl	$7, %ecx
	movq	-5744(%rbp), %rdi
	movq	%r13, %r8
	sarl	%cl, %eax
	movq	%rdi, %rsi
	andl	$31, %eax
	pushq	%rax
	movq	-5808(%rbp), %rcx
	movl	-5796(%rbp), %r9d
# WAS call	bn_power5@PLT
	call	.Lbn_power5_local_target
	popq	%rdx
	popq	%rcx
	testl	%r14d, %r14d
	jns	.L6803
	jmp	.L6798
.L6816:

	movq	-5808(%rbp), %rsi
	xorl	%eax, %eax
	jmp	.L6788
.L6784:

	movq	-5832(%rbp), %rbx
	movq	-5856(%rbp), %rdx
	movq	%r15, %rdi
	movq	%rbx, %rsi
# WAS call	bn_copy_words
	call	.Lbn_copy_words_local_target
	movq	%rbx, %rax
	movq	%rbx, %rsi
	salq	$5, %rax
	movq	%rax, %rdx
	movq	%rbx, %rax
	movq	-5864(%rbp), %rbx
	subq	%rdx, %rax
	leaq	(%r14,%rax,8), %r12
	movq	%rbx, %rdx
	movq	%rsi, %r14
	movq	%r12, %rdi
# WAS call	bn_copy_words
	call	.Lbn_copy_words_local_target
	movq	%rbx, -5864(%rbp)
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	-5856(%rbp), %rbx
	movq	-5784(%rbp), %r8
	movq	-5768(%rbp), %rcx
	movq	%rbx, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L6782
	movq	-5808(%rbp), %rax
	movq	%r14, %rsi
	movq	%rbx, %rdx
	movl	$29, %r14d
	addq	%rax, %r12
	movq	%r12, %rdi
# WAS call	bn_copy_words
	call	.Lbn_copy_words_local_target
	movq	-5808(%rbp), %rax
	movl	%r13d, -5872(%rbp)
	movq	%r15, -5808(%rbp)
	movq	-5864(%rbp), %r15
	addq	%rax, %r12
	movq	%rax, %r13
	jmp	.L6804
	.p2align 4,,10
	.p2align 3
.L6900:

	movq	-5832(%rbp), %rsi
	movq	%r12, %rdi
	movq	%rbx, %rdx
	addq	%r13, %r12
# WAS call	bn_copy_words
	call	.Lbn_copy_words_local_target
	subl	$1, %r14d
	je	.L6899
.L6804:

	movq	-5784(%rbp), %r8
	movq	%rbx, %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
	movq	-5768(%rbp), %rcx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L6900
	movq	-5808(%rbp), %r15
	movl	-5872(%rbp), %r13d
	jmp	.L6782
.L6795:

	movq	-5832(%rbp), %rsi
	movq	-5744(%rbp), %rdi
	xorl	%ecx, %ecx
	movq	%r15, %rdx
# WAS call	bn_gather5@PLT
	call	.Lbn_gather5_local_target
	movl	-5808(%rbp), %eax
	testl	%eax, %eax
	jne	.L6798
	movq	-5776(%rbp), %rax
	movq	(%rax), %rbx
.L6801:

	leal	-4(%r14), %ecx
	subq	$8, %rsp
	movq	%r13, %r8
	movq	%r15, %rdx
	movq	-5776(%rbp), %rax
	andl	$7, %ecx
	movq	-5744(%rbp), %rdi
	subl	$5, %r14d
	movl	8(%rax), %eax
	movq	%rdi, %rsi
	sall	$3, %eax
	cltq
	movzbl	-1(%rbx,%rax), %eax
	sarl	%cl, %eax
	movq	%r12, %rcx
	andl	$31, %eax
	pushq	%rax
	movl	-5796(%rbp), %r9d
# WAS call	bn_power5@PLT
	call	.Lbn_power5_local_target
	popq	%rsi
	popq	%rdi
	jmp	.L6802
.L6896:

	testl	$524288, %eax
	je	.L6774
	jmp	.L6773
.L6899:

	movl	-5868(%rbp), %eax
	movl	$5, %esi
	movq	-5808(%rbp), %r15
	movl	-5872(%rbp), %r13d
	leal	-1(%rax), %r14d
	movl	%r14d, %eax
	cltd
	idivl	%esi
	movl	%edx, %r12d
	testl	%edx, %edx
	js	.L6805
	movl	-5848(%rbp), %eax
	xorl	%ebx, %ebx
	sall	$6, %eax
	subl	$2, %eax
	subl	%edx, %eax
	movl	%eax, -5808(%rbp)
.L6806:

	movq	-5776(%rbp), %rdi
	movl	%r14d, %esi
	addl	%ebx, %ebx
	subl	$1, %r14d
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	addl	%eax, %ebx
	movl	-5808(%rbp), %eax
	cmpl	%eax, %r14d
	jne	.L6806
	movl	%ebx, %ecx
	movq	-5856(%rbp), %rbx
	movl	-5796(%rbp), %esi
	movq	%r15, %rdx
	movq	%rbx, %rdi
# WAS call	copy_from_prebuf.constprop.0
	call	.Lcopy_from_prebuf.constprop.0_local_target
	testl	%eax, %eax
	je	.L6782
	movl	-5868(%rbp), %eax
	movl	%r13d, -5808(%rbp)
	subl	$2, %eax
	subl	%r12d, %eax
	movq	%rbx, %r12
	movl	%eax, %r14d
.L6807:

	testl	%r14d, %r14d
	js	.L6798
	leal	-5(%r14), %r13d
	xorl	%ebx, %ebx
.L6808:

	movq	-5784(%rbp), %r8
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	-5768(%rbp), %rcx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L6885
	movq	-5776(%rbp), %rdi
	movl	%r14d, %esi
	addl	%ebx, %ebx
	subl	$1, %r14d
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	addl	%eax, %ebx
	cmpl	%r14d, %r13d
	jne	.L6808
	movl	%ebx, %ecx
	movq	-5864(%rbp), %rbx
	movl	-5796(%rbp), %esi
	movq	%r15, %rdx
	movq	%rbx, %rdi
# WAS call	copy_from_prebuf.constprop.0
	call	.Lcopy_from_prebuf.constprop.0_local_target
	testl	%eax, %eax
	je	.L6885
	movq	-5784(%rbp), %r8
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	-5768(%rbp), %rcx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L6807
.L6885:

	movl	-5808(%rbp), %r13d
	jmp	.L6782
.L6897:

	movq	-5768(%rbp), %rdx
	movl	$1, %r13d
	movq	48(%rdx), %r9
	pushq	%rax
	leaq	-5680(%rbp), %rax
	pushq	%rax
	movq	(%rbx), %rcx
	movq	-5776(%rbp), %rax
	movq	-5792(%rbp), %rbx
	movq	(%rdx), %r8
	movq	(%r12), %rsi
	movq	(%rax), %rdx
	movq	(%rbx), %rdi
# WAS call	RSAZ_1024_mod_exp_avx2
	call	.LRSAZ_1024_mod_exp_avx2_local_target
	movq	-5824(%rbp), %rax
	xorl	%edx, %edx
	movl	$16, 8(%rbx)
	movl	%edx, 16(%rbx)
	popq	%rcx
	popq	%rsi
	movq	%rax, -5768(%rbp)
	jmp	.L6772
.L6887:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L6805:

	movl	-5796(%rbp), %esi
	movq	-5856(%rbp), %rdi
	xorl	%ecx, %ecx
	movq	%r15, %rdx
# WAS call	copy_from_prebuf.constprop.0
	call	.Lcopy_from_prebuf.constprop.0_local_target
	testl	%eax, %eax
	je	.L6782
	jmp	.L6798
	.cfi_endproc
.LFE970:

	.size	BN_mod_exp_mont_consttime, .-BN_mod_exp_mont_consttime
# WAS .section	.text.BN_mod_exp_mont_consttime_x2,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_exp_mont_consttime_x2
	.type	BN_mod_exp_mont_consttime_x2, @function
.LBN_mod_exp_mont_consttime_x2_local_target:
BN_mod_exp_mont_consttime_x2:
.LFB971:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	8(%rax), %eax
	notl	%eax
	testl	$-1071448064, %eax
	jne	.L6902
	movl	8(%rbx), %eax
	cmpl	$16, %eax
	je	.L6937
.L6903:

	cmpl	$24, %eax
	je	.L6938
.L6909:

	cmpl	$32, %eax
	jne	.L6902
	cmpl	$32, 8(%r15)
	je	.L6939
	.p2align 4,,10
	.p2align 3
.L6902:

	movq	112(%rsp), %r8
	movq	%rbx, %rsi
	movq	%r14, %r9
	movq	%r13, %rcx
	movq	%r15, %rdx
	movq	%r12, %rdi
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	movq	104(%rsp), %r9
	movq	112(%rsp), %r8
	movq	%rbp, %rdi
	movq	96(%rsp), %rcx
	movq	88(%rsp), %rdx
	movl	%eax, %ebx
	movq	80(%rsp), %rsi
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	andl	%ebx, %eax
.L6901:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6937:

	.cfi_restore_state
	cmpl	$16, 8(%r15)
	jne	.L6902
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1024, %eax
	je	.L6904
.L6906:

	movl	8(%rbx), %eax
	jmp	.L6903
	.p2align 4,,10
	.p2align 3
.L6938:

	cmpl	$24, 8(%r15)
	jne	.L6902
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1536, %eax
	je	.L6910
.L6936:

	movl	8(%rbx), %eax
	jmp	.L6909
	.p2align 4,,10
	.p2align 3
.L6939:

	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$2048, %eax
	jne	.L6902
	movq	80(%rsp), %rax
	cmpl	$32, 8(%rax)
	jne	.L6902
	movq	88(%rsp), %rax
	cmpl	$32, 8(%rax)
	jne	.L6902
	movq	96(%rsp), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$2048, %eax
	jne	.L6902
.L6912:

	movslq	8(%rbx), %rsi
	movq	%r12, %rdi
	movl	%esi, 4(%rsp)
	movq	%rsi, 8(%rsp)
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L6940
.L6913:

	xorl	%eax, %eax
	jmp	.L6901
.L6940:

	movq	8(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testq	%r14, %r14
	sete	%dl
	cmpq	$0, 104(%rsp)
	sete	%sil
	orb	%sil, %dl
	jne	.L6913
	testl	%eax, %eax
	je	.L6913
	movq	%r13, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L6916
	movq	96(%rsp), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L6916
	cmpl	$0, 16(%r13)
	jne	.L6917
	movq	96(%rsp), %rax
	cmpl	$0, 16(%rax)
	jne	.L6917
	cmpl	$0, 16(%rbx)
	jne	.L6920
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jns	.L6920
	movq	80(%rsp), %rax
	cmpl	$0, 16(%rax)
	jne	.L6920
	movq	96(%rsp), %rsi
	movq	%rax, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L6941
.L6920:

	movl	$1323, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L6901
	.p2align 4,,10
	.p2align 3
.L6910:

	movq	80(%rsp), %rax
	cmpl	$24, 8(%rax)
	jne	.L6936
	movq	88(%rsp), %rax
	cmpl	$24, 8(%rax)
	jne	.L6936
	movq	96(%rsp), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1536, %eax
	jne	.L6936
	jmp	.L6912
	.p2align 4,,10
	.p2align 3
.L6904:

	movq	80(%rsp), %rax
	cmpl	$16, 8(%rax)
	jne	.L6906
	movq	88(%rsp), %rax
	cmpl	$16, 8(%rax)
	jne	.L6906
	movq	96(%rsp), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$1024, %eax
	jne	.L6906
	jmp	.L6912
.L6916:

	movl	$1314, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L6901
.L6941:

	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	pushq	%rdx
	.cfi_def_cfa_offset 88
	pushq	%rax
	.cfi_def_cfa_offset 96
	movq	120(%rsp), %rax
	pushq	48(%rax)
	.cfi_def_cfa_offset 104
	movq	128(%rsp), %rax
	movq	48(%r14), %r9
	pushq	(%rax)
	.cfi_def_cfa_offset 112
	movq	128(%rsp), %rax
	pushq	(%rax)
	.cfi_def_cfa_offset 120
	movq	128(%rsp), %rax
	pushq	(%rax)
	.cfi_def_cfa_offset 128
	movq	128(%rsp), %rax
	pushq	(%rax)
	.cfi_def_cfa_offset 136
	pushq	0(%rbp)
	.cfi_def_cfa_offset 144
	movq	(%rbx), %rsi
	movq	0(%r13), %rcx
	movq	(%r14), %r8
	movq	(%r15), %rdx
	movq	(%r12), %rdi
# WAS call	RSAZ_mod_exp_avx512_x2
	call	.LRSAZ_mod_exp_avx512_x2_local_target
	movl	68(%rsp), %ebx
	xorl	%ecx, %ecx
	xorl	%esi, %esi
	movl	%ecx, 16(%r12)
	addq	$64, %rsp
	.cfi_def_cfa_offset 80
	movl	%ebx, 8(%r12)
	movl	%ebx, 8(%rbp)
	movl	%esi, 16(%rbp)
	jmp	.L6901
.L6917:

	movl	$1318, %r8d
	leaq	.LC184(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L6901
	.cfi_endproc
.LFE971:

	.size	BN_mod_exp_mont_consttime_x2, .-BN_mod_exp_mont_consttime_x2
# WAS .section	.text.bn_mod_inverse_secret_prime,"ax",@progbits
.text
	.p2align 4
	.globl	bn_mod_inverse_secret_prime
	.hidden	bn_mod_inverse_secret_prime
	.type	bn_mod_inverse_secret_prime, @function
.Lbn_mod_inverse_secret_prime_local_target:
bn_mod_inverse_secret_prime:
.LFB978:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%rcx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6945
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6945
	movl	$2, %esi
	movq	%rbp, %rdi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	jne	.L6953
.L6945:

	xorl	%ebp, %ebp
.L6944:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6953:

	.cfi_restore_state
	movq	%rbp, %rdx
	movq	%r15, %r9
	movq	%rbx, %r8
	movq	%r12, %rcx
	movq	%r14, %rsi
	movq	%r13, %rdi
	xorl	%ebp, %ebp
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	setne	%bpl
	jmp	.L6944
	.cfi_endproc
.LFE978:

	.size	bn_mod_inverse_secret_prime, .-bn_mod_inverse_secret_prime
# WAS .section	.text.bn_miller_rabin_iteration,"ax",@progbits
.text
	.p2align 4
	.globl	bn_miller_rabin_iteration
	.type	bn_miller_rabin_iteration, @function
.Lbn_miller_rabin_iteration_local_target:
bn_miller_rabin_iteration:
.LFB1045:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	movq	%r8, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rsi, 8(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6957
	movq	8(%rbp), %rdx
	leaq	24(%r13), %rcx
	movq	%r13, %r9
	movq	%r12, %r8
	movq	%r14, %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	jne	.L6971
.L6957:

	xorl	%ebx, %ebx
.L6956:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6971:

	.cfi_restore_state
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	testl	%eax, %eax
	je	.L6957
	movq	16(%rbp), %rsi
	movq	%rbx, %rdi
# WAS call	BN_equal_consttime@PLT
	call	.LBN_equal_consttime_local_target
	movq	24(%rbp), %rsi
	movq	%rbx, %rdi
	movl	%eax, %r14d
# WAS call	BN_equal_consttime@PLT
	call	.LBN_equal_consttime_local_target
	orl	%eax, %r14d
	movslq	%r14d, %rax
	movq	%rax, %r15
	negq	%r15
	cmpl	$1, 32(%rbp)
	jle	.L6958
	movslq	36(%rbp), %rdx
	subq	$1, %rax
	movq	%rdx, %rcx
	xorq	$-2, %rdx
	xorq	$1, %rcx
	subq	$1, %rcx
	andq	%rcx, %rdx
	sarq	$63, %rdx
	testq	%rax, %rdx
	jne	.L6958
	movl	$1, %r14d
	jmp	.L6959
	.p2align 4,,10
	.p2align 3
.L6972:

	movq	24(%rbp), %rsi
	movq	%rbx, %rdi
# WAS call	BN_equal_consttime@PLT
	call	.LBN_equal_consttime_local_target
	movq	16(%rbp), %rsi
	movq	%rbx, %rdi
	cltq
	negq	%rax
	orq	%rax, %r15
# WAS call	BN_equal_consttime@PLT
	call	.LBN_equal_consttime_local_target
	movq	%r15, %rcx
	notq	%rcx
	cltq
	testq	%rcx, %rax
	jne	.L6958
	addl	$1, %r14d
	cmpl	%r14d, 32(%rbp)
	jle	.L6958
	movl	36(%rbp), %eax
	xorl	%r14d, %eax
	cltq
	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rdx, %rax
	sarq	$63, %rax
	testq	%rcx, %rax
	jne	.L6958
.L6959:

	movq	%r12, %r8
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L6972
	jmp	.L6957
	.p2align 4,,10
	.p2align 3
.L6958:

	movq	8(%rsp), %rax
	andl	$1, %r15d
	movl	$1, %ebx
	movl	%r15d, (%rax)
	jmp	.L6956
	.cfi_endproc
.LFE1045:

	.size	bn_miller_rabin_iteration, .-bn_miller_rabin_iteration
# WAS .section	.text.freeze_private_key,"ax",@progbits
.text
	.p2align 4
	.type	freeze_private_key, @function
.Lfreeze_private_key_local_target:
freeze_private_key:
.LFB2744:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	$1, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	leaq	96(%rdi), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%rbp, %rdi
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
# WAS call	CRYPTO_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_read
	movzbl	240(%rbx), %r13d
	movq	%rbp, %rdi
# WAS call	CRYPTO_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_read
	andl	$1, %r13d
	testb	%r13b, %r13b
	je	.L7042
.L6973:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7042:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	testb	$1, 240(%rbx)
	jne	.L6975
	movq	152(%rbx), %rax
	testq	%rax, %rax
	je	.L7043
.L6976:

	movq	24(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L6978
	cmpq	$0, 176(%rbx)
	movl	32(%rax), %r13d
	je	.L7044
.L6978:

	cmpq	$0, 16(%rbx)
	je	.L6983
	movq	32(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L6983
	cmpq	$0, 40(%rbx)
	je	.L6983
	movq	160(%rbx), %r14
	testq	%r14, %r14
	je	.L7045
.L6985:

	movq	168(%rbx), %r15
	testq	%r15, %r15
	je	.L7046
.L6987:

	movq	48(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L6983
	cmpq	$0, 56(%rbx)
	je	.L6983
	cmpq	$0, 64(%rbx)
	je	.L7047
.L6988:

	cmpq	$0, 184(%rbx)
	movl	32(%r14), %r13d
	je	.L7048
.L6992:

	cmpq	$0, 192(%rbx)
	movl	32(%r15), %r13d
	movq	56(%rbx), %rdi
	je	.L7049
.L6995:

	cmpq	$0, 200(%rbx)
	jne	.L6983
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L6999
	movq	160(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movq	%rax, %rdi
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	testl	%eax, %eax
	je	.L6999
	movq	%r13, 200(%rbx)
	.p2align 4,,10
	.p2align 3
.L6983:

	orb	$1, 240(%rbx)
.L6975:

	movl	$1, %r14d
.L6980:

	movq	%rbp, %rdi
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	jmp	.L6973
	.p2align 4,,10
	.p2align 3
.L7043:

	movq	8(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%rax, 152(%rbx)
	testq	%rax, %rax
	jne	.L6976
	.p2align 4,,10
	.p2align 3
.L6977:

	xorl	%r14d, %r14d
	jmp	.L6980
	.p2align 4,,10
	.p2align 3
.L7044:

# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L6981
	movslq	%r13d, %rsi
	movq	%rax, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L6981
	movq	%r14, 176(%rbx)
	jmp	.L6978
	.p2align 4,,10
	.p2align 3
.L6981:

	movq	%r14, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L6977
	.p2align 4,,10
	.p2align 3
.L7045:

	movq	%r12, %rsi
# WAS call	BN_MONT_CTX_new_consttime@PLT
	call	.LBN_MONT_CTX_new_consttime_local_target
	movq	%rax, 160(%rbx)
	movq	%rax, %r14
	testq	%rax, %rax
	jne	.L6985
	jmp	.L6977
	.p2align 4,,10
	.p2align 3
.L7046:

	movq	40(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	BN_MONT_CTX_new_consttime@PLT
	call	.LBN_MONT_CTX_new_consttime_local_target
	movq	%rax, 168(%rbx)
	movq	%rax, %r15
	testq	%rax, %rax
	jne	.L6987
	jmp	.L6977
	.p2align 4,,10
	.p2align 3
.L7047:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L6999
	movq	160(%rbx), %rax
	movq	40(%rbx), %rcx
	movq	%r12, %rdi
	movq	%rax, 8(%rsp)
	movq	32(%rbx), %rax
	movq	%rcx, 16(%rsp)
	movq	%rax, (%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L6990
	movq	(%rsp), %rsi
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L6990
	movq	24(%rsp), %rdi
	movl	$2, %esi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	movq	24(%rsp), %rdx
	testl	%eax, %eax
	jne	.L6991
.L6990:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L6999:

	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L6977
	.p2align 4,,10
	.p2align 3
.L7048:

# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L6981
	movslq	%r13d, %rsi
	movq	%rax, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L6981
	movq	%r14, 184(%rbx)
	jmp	.L6992
.L7049:

# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L6981
	movslq	%r13d, %rsi
	movq	%rax, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	testl	%eax, %eax
	je	.L6981
	movq	%r14, 192(%rbx)
	jmp	.L6995
.L6991:

	movq	8(%rsp), %r9
	movq	(%rsp), %rcx
	movq	%r12, %r8
	movq	%r13, %rdi
	movq	16(%rsp), %rsi
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	je	.L6990
	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r13, 64(%rbx)
	movq	48(%rbx), %rdi
	jmp	.L6988
	.cfi_endproc
.LFE2744:

	.size	freeze_private_key, .-freeze_private_key
# WAS .section	.rodata.BN_mod_inverse_odd.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC185:

	.string	"/aws-lc/crypto/fipsmodule/bn/gcd.c"
# WAS .section	.text.BN_mod_inverse_odd,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_inverse_odd
	.hidden	BN_mod_inverse_odd
	.type	BN_mod_inverse_odd, @function
.LBN_mod_inverse_odd_local_target:
BN_mod_inverse_odd:
.LFB974:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movl	$0, (%rsi)
	movq	%rdi, 8(%rsp)
	movq	%rcx, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L7130
	movq	%rbp, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	movl	%eax, %r12d
	testl	%eax, %eax
	jne	.L7055
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L7131
.L7055:

	movl	$126, %r8d
	leaq	.LC185(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7052:

	xorl	%r12d, %r12d
.L7050:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7130:

	.cfi_restore_state
	movl	$121, %r8d
	leaq	.LC185(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7052
	.p2align 4,,10
	.p2align 3
.L7131:

	movq	%r13, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 24(%rsp)
	testq	%rax, %rax
	je	.L7075
	movq	%rax, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	movq	%r15, %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L7075
	movq	16(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L7075
	movq	32(%rsp), %rbp
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L7075
	movl	$0, 16(%rbp)
.L7059:

	movq	16(%rsp), %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, 44(%rsp)
	testl	%eax, %eax
	jne	.L7132
	xorl	%ebp, %ebp
	jmp	.L7061
	.p2align 4,,10
	.p2align 3
.L7063:

	movq	%r15, %rdi
	addl	$1, %ebp
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L7062
	movq	%rbx, %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	testl	%eax, %eax
	je	.L7075
.L7062:

	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L7075
.L7061:

	movq	16(%rsp), %rdi
	movl	%ebp, %esi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L7063
	testl	%ebp, %ebp
	je	.L7066
	jmp	.L7133
	.p2align 4,,10
	.p2align 3
.L7068:

	movq	24(%rsp), %rdi
	addl	$1, 44(%rsp)
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L7067
	movq	24(%rsp), %rsi
	movq	%rbx, %rdx
	movq	%rsi, %rdi
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	testl	%eax, %eax
	je	.L7075
.L7067:

	movq	24(%rsp), %rsi
	movq	%rsi, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L7075
.L7066:

	movl	44(%rsp), %esi
	movq	32(%rsp), %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L7068
	movl	44(%rsp), %eax
	testl	%eax, %eax
	je	.L7072
	movq	32(%rsp), %rsi
	movl	44(%rsp), %edx
	movq	%rsi, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L7075
.L7072:

	movq	32(%rsp), %rsi
	movq	16(%rsp), %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L7134
	movq	24(%rsp), %rdx
	movq	%r15, %rsi
	movq	%r15, %rdi
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	testl	%eax, %eax
	je	.L7075
	movq	16(%rsp), %rsi
	movq	32(%rsp), %rdx
	movq	%rsi, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	jne	.L7059
	.p2align 4,,10
	.p2align 3
.L7075:

	movq	%r13, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L7050
.L7133:

	movq	16(%rsp), %rsi
	movl	%ebp, %edx
	movq	%rsi, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	jne	.L7066
	jmp	.L7075
	.p2align 4,,10
	.p2align 3
.L7134:

	movq	24(%rsp), %rsi
	movq	%r15, %rdx
	movq	%rsi, %rdi
# WAS call	BN_uadd@PLT
	call	.LBN_uadd_local_target
	testl	%eax, %eax
	je	.L7075
	movq	32(%rsp), %rsi
	movq	16(%rsp), %rdx
	movq	%rsi, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	jne	.L7059
	jmp	.L7075
.L7132:

	movq	32(%rsp), %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L7135
	movq	24(%rsp), %r15
	movq	%rbx, %rsi
	movq	%r15, %rdx
	movq	%r15, %rdi
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	je	.L7075
	cmpl	$0, 16(%r15)
	jne	.L7078
	movq	24(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L7077
.L7078:

	movq	24(%rsp), %rsi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%rsi, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L7075
.L7077:

	movq	24(%rsp), %rsi
	movq	8(%rsp), %rdi
	xorl	%r12d, %r12d
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%r12b
	jmp	.L7075
.L7135:

	movl	$1, (%r14)
	movl	$248, %r8d
	leaq	.LC185(%rip), %rcx
	xorl	%esi, %esi
	movl	$112, %edx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7075
	.cfi_endproc
.LFE974:

	.size	BN_mod_inverse_odd, .-BN_mod_inverse_odd
# WAS .section	.text.BN_mod_inverse,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_inverse
	.type	BN_mod_inverse, @function
.LBN_mod_inverse_local_target:
BN_mod_inverse:
.LFB975:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	xorl	%r14d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L7166
.L7137:

	movl	16(%rbx), %eax
	testl	%eax, %eax
	jne	.L7142
	movq	%r12, %rsi
	movq	%rbx, %rdi
	xorl	%r15d, %r15d
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jns	.L7142
.L7143:

	movq	%r12, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	leaq	4(%rsp), %rsi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rdi
	testl	%eax, %eax
	jne	.L7144
# WAS call	bn_mod_inverse_consttime@PLT
	call	.Lbn_mod_inverse_consttime_local_target
	testl	%eax, %eax
	je	.L7145
.L7147:

	movq	%r15, %rbx
	jmp	.L7146
	.p2align 4,,10
	.p2align 3
.L7142:

	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L7140
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rax, %rsi
	movq	%rax, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L7140
	movq	%rbx, %r15
	jmp	.L7143
	.p2align 4,,10
	.p2align 3
.L7144:

# WAS call	BN_mod_inverse_odd
	call	.LBN_mod_inverse_odd_local_target
	testl	%eax, %eax
	jne	.L7147
.L7145:

	movq	%r15, %rbx
	.p2align 4,,10
	.p2align 3
.L7140:

	movq	%r14, %rdi
	xorl	%ebp, %ebp
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
.L7146:

	movq	%rbx, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
.L7136:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L7167
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7166:

	.cfi_restore_state
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L7150
	movq	%rax, %r14
	jmp	.L7137
	.p2align 4,,10
	.p2align 3
.L7150:

	xorl	%ebp, %ebp
	jmp	.L7136
.L7167:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE975:

	.size	BN_mod_inverse, .-BN_mod_inverse
# WAS .section	.rodata.bn_jacobi.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC186:

	.string	"/aws-lc/crypto/fipsmodule/bn/jacobi.c"
# WAS .section	.text.bn_jacobi,"ax",@progbits
.text
	.p2align 4
	.globl	bn_jacobi
	.hidden	bn_jacobi
	.type	bn_jacobi, @function
.Lbn_jacobi_local_target:
bn_jacobi:
.LFB988:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movq	%rsi, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L7218
	movq	%rbx, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L7219
	movq	%r13, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, %rbp
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L7173
	movq	%r14, %rsi
	movq	%rbp, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L7173
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L7173
	movq	%rbp, %rdi
	movl	$1, %r14d
# WAS leaq	tab.86(%rip), %r15
	leaq	.Ltab.86_local_target(%rip), %r15
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L7174
	jmp	.L7220
	.p2align 4,,10
	.p2align 3
.L7176:

	addl	$1, %ebx
.L7174:

	movl	%ebx, %esi
	movq	%rbp, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L7176
	movl	%ebx, %edx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L7173
	andl	$1, %ebx
	movl	8(%r12), %edx
	je	.L7177
	testl	%edx, %edx
	je	.L7183
	movq	(%r12), %rax
	movq	(%rax), %rax
	andl	$7, %eax
	imull	(%r15,%rax,4), %r14d
.L7177:

	movl	16(%rbp), %eax
	movl	8(%rbp), %ecx
	testl	%eax, %eax
	je	.L7179
	movq	$-1, %rax
	testl	%ecx, %ecx
	je	.L7180
	movq	0(%rbp), %rax
	movq	(%rax), %rax
	notq	%rax
.L7180:

	testl	%edx, %edx
	je	.L7181
	movq	(%r12), %rdx
	andq	(%rdx), %rax
	testb	$2, %al
	je	.L7181
	negl	%r14d
.L7181:

	movq	%r13, %rcx
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L7173
	movl	$0, 16(%rbp)
	movq	%rbp, %rax
	movq	%r12, %rbp
	movq	%rbp, %rdi
	movq	%rax, %r12
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L7174
.L7220:

	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	cmovne	%r14d, %ebx
	jmp	.L7175
	.p2align 4,,10
	.p2align 3
.L7173:

	movl	$-2, %ebx
.L7175:

	movq	%r13, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L7168:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7179:

	.cfi_restore_state
	testl	%ecx, %ecx
	je	.L7181
	movq	0(%rbp), %rax
	movq	(%rax), %rax
	jmp	.L7180
	.p2align 4,,10
	.p2align 3
.L7183:

	xorl	%r14d, %r14d
	jmp	.L7177
.L7218:

	movl	$73, %r8d
	leaq	.LC186(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7170:

	movl	$-2, %ebx
	jmp	.L7168
.L7219:

	movl	$79, %r8d
	leaq	.LC186(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7170
	.cfi_endproc
.LFE988:

	.size	bn_jacobi, .-bn_jacobi
# WAS .section	.text.BN_mask_bits,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mask_bits
	.type	BN_mask_bits, @function
.LBN_mask_bits_local_target:
BN_mask_bits:
.LFB1085:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testl	%esi, %esi
	js	.L7221
	movl	%esi, %eax
	sarl	$6, %eax
	cmpl	%eax, 8(%rdi)
	jle	.L7224
	andl	$63, %esi
	je	.L7225
	movq	(%rdi), %r8
	movq	$-1, %rdx
	movl	%esi, %ecx
	movslq	%eax, %r9
	salq	%cl, %rdx
	addl	$1, %eax
	notq	%rdx
	andq	%rdx, (%r8,%r9,8)
.L7226:

	movslq	%eax, %rdx
	leaq	(%r8,%rdx,8), %rdx
	jmp	.L7228
	.p2align 4,,10
	.p2align 3
.L7229:

	subq	$8, %rdx
	subl	$1, %eax
	je	.L7227
.L7228:

	cmpq	$0, -8(%rdx)
	je	.L7229
	movl	%eax, 8(%rdi)
.L7224:

	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L7221:

	ret
	.p2align 4,,10
	.p2align 3
.L7225:

	testl	%eax, %eax
	jne	.L7240
.L7227:

	movl	$0, 8(%rdi)
	movl	$1, %eax
	movl	$0, 16(%rdi)
	ret
	.p2align 4,,10
	.p2align 3
.L7240:

	movq	(%rdi), %r8
	jmp	.L7226
	.cfi_endproc
.LFE1085:

	.size	BN_mask_bits, .-BN_mask_bits
# WAS .section	.text.BN_count_low_zero_bits,"ax",@progbits
.text
	.p2align 4
	.globl	BN_count_low_zero_bits
	.type	BN_count_low_zero_bits, @function
.LBN_count_low_zero_bits_local_target:
BN_count_low_zero_bits:
.LFB1087:

	.cfi_startproc
	endbr64
	movslq	8(%rdi), %r9
	testl	%r9d, %r9d
	jle	.L7244
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%esi, %esi
	xorl	%r8d, %r8d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	(%rdi), %r10
	xorl	%edi, %edi
	.p2align 4,,10
	.p2align 3
.L7243:

	movq	(%r10,%rsi,8), %rcx
	movq	%rcx, %rdx
	leaq	-1(%rcx), %rax
	notq	%rdx
	andq	%rdx, %rax
	movq	%rcx, %rdx
	sarq	$63, %rax
	salq	$32, %rdx
	movq	%rax, %r11
	notq	%rax
	orq	%rdi, %r11
	orq	%rax, %rdi
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	notq	%r11
	andq	%rdx, %rax
	movq	%rcx, %rdx
	sarq	$63, %rax
	shrq	$32, %rdx
	movq	%rax, %rbx
	movq	%rax, %rbp
	notq	%rbx
	andq	%rbp, %rdx
	andq	%rbx, %rcx
	orq	%rcx, %rdx
	movq	%rdx, %rcx
	salq	$48, %rcx
	movq	%rcx, %r12
	subq	$1, %rcx
	notq	%r12
	andq	%rcx, %r12
	movq	%rdx, %rcx
	sarq	$63, %r12
	shrq	$16, %rcx
	movq	%r12, %rbx
	movq	%r12, %rbp
	notq	%rbx
	andq	%rbp, %rcx
	andq	%rbx, %rdx
	orq	%rdx, %rcx
	movq	%rcx, %rdx
	salq	$56, %rdx
	movq	%rdx, %rbx
	subq	$1, %rdx
	notq	%rbx
	andq	%rdx, %rbx
	movq	%rcx, %rdx
	sarq	$63, %rbx
	shrq	$8, %rdx
	movq	%rbx, %rbp
	movq	%rbx, %r13
	notq	%rbp
	andq	%r13, %rdx
	andq	%rbp, %rcx
	andl	$32, %eax
	andl	$16, %r12d
	orq	%rcx, %rdx
	orl	%r12d, %eax
	andl	$8, %ebx
	movq	%rdx, %rbp
	movq	%rdx, %r13
	addl	%ebx, %eax
	salq	$60, %rbp
	shrq	$4, %r13
	movq	%rbp, %rcx
	subq	$1, %rbp
	notq	%rcx
	andq	%rbp, %rcx
	sarq	$63, %rcx
	movq	%rcx, %rbp
	movq	%rcx, %r14
	andl	$4, %ecx
	notq	%rbp
	andq	%r14, %r13
	addl	%ecx, %eax
	andq	%rbp, %rdx
	orq	%rdx, %r13
	movq	%r13, %rbp
	salq	$62, %rbp
	movq	%rbp, %rdx
	subq	$1, %rbp
	notq	%rdx
	andq	%rbp, %rdx
	movq	%r13, %rbp
	sarq	$63, %rdx
	shrq	$2, %rbp
	movq	%rdx, %r14
	movq	%rdx, %r15
	andl	$2, %edx
	notq	%r14
	andq	%r15, %rbp
	andq	%r14, %r13
	orq	%r13, %rbp
	salq	$63, %rbp
	cmpq	$1, %rbp
	adcl	%edx, %eax
	movl	%esi, %edx
	addq	$1, %rsi
	sall	$6, %edx
	addl	%edx, %eax
	andl	%r11d, %eax
	orl	%eax, %r8d
	cmpq	%r9, %rsi
	jne	.L7243
	popq	%rbx
	.cfi_def_cfa_offset 48
	movl	%r8d, %eax
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7244:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1087:

	.size	BN_count_low_zero_bits, .-BN_count_low_zero_bits
# WAS .section	.text.bn_miller_rabin_init,"ax",@progbits
.text
	.p2align 4
	.globl	bn_miller_rabin_init
	.type	bn_miller_rabin_init, @function
.Lbn_miller_rabin_init_local_target:
bn_miller_rabin_init:
.LFB1044:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, (%rbx)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 8(%rbx)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 16(%rbx)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	cmpq	$0, (%rbx)
	movq	%rax, 24(%rbx)
	je	.L7253
	cmpq	$0, 8(%rbx)
	je	.L7253
	cmpq	$0, 16(%rbx)
	je	.L7253
	testq	%rax, %rax
	je	.L7253
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	leaq	24(%r12), %r13
	movq	(%rbx), %rdi
	movq	%rax, %rdx
	movq	%r13, %rsi
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	jne	.L7264
.L7253:

	xorl	%eax, %eax
.L7250:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7264:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	BN_count_low_zero_bits@PLT
	call	.LBN_count_low_zero_bits_local_target
	movq	(%rbx), %rsi
	movq	8(%rbx), %rdi
	movq	%rbp, %rcx
	movl	%eax, 36(%rbx)
	movl	%eax, %edx
# WAS call	bn_rshift_secret_shift@PLT
	call	.Lbn_rshift_secret_shift_local_target
	testl	%eax, %eax
	je	.L7253
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	16(%rbx), %rdi
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movl	%eax, 32(%rbx)
# WAS call	bn_one_to_montgomery
	call	.Lbn_one_to_montgomery_local_target
	testl	%eax, %eax
	je	.L7253
	movq	16(%rbx), %rdx
	movq	24(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L7250
	.cfi_endproc
.LFE1044:

	.size	bn_miller_rabin_init, .-bn_miller_rabin_init
# WAS .section	.rodata.BN_sqrt.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC187:

	.string	"/aws-lc/crypto/fipsmodule/bn/sqrt.c"
# WAS .section	.text.BN_sqrt,"ax",@progbits
.text
	.p2align 4
	.globl	BN_sqrt
	.type	BN_sqrt, @function
.LBN_sqrt_local_target:
BN_sqrt:
.LFB1089:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	16(%rsi), %ecx
	movq	%rdi, 24(%rsp)
	testl	%ecx, %ecx
	jne	.L7301
	movq	%rsi, %rdi
	movq	%rsi, %rbx
	movq	%rdx, %rbp
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L7302
	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	24(%rsp), %rax
	movq	%rax, %r14
	cmpq	%rax, %rbx
	je	.L7303
.L7269:

	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, %r12
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%r14, %r14
	je	.L7272
	testq	%r12, %r12
	je	.L7272
	cmpq	$0, 8(%rsp)
	je	.L7272
	testq	%rax, %rax
	je	.L7272
	movq	%rbx, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movl	%eax, 20(%rsp)
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movl	20(%rsp), %edx
	movq	%r14, %rdi
	movq	%rax, %rsi
	shrl	%edx
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	testl	%eax, %eax
	je	.L7272
	movl	$0, 20(%rsp)
	jmp	.L7274
	.p2align 4,,10
	.p2align 3
.L7278:

	movq	%r13, %rax
	movl	$1, 20(%rsp)
	movq	8(%rsp), %r13
	movq	%rax, 8(%rsp)
.L7274:

	xorl	%esi, %esi
	movq	%rbp, %r8
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rdi
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L7277
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	je	.L7277
	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L7277
	movq	%rbp, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	BN_sqr@PLT
	call	.LBN_sqr_local_target
	testl	%eax, %eax
	je	.L7277
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	je	.L7277
	movl	20(%rsp), %eax
	movl	$0, 16(%r13)
	testl	%eax, %eax
	je	.L7278
	movq	8(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L7278
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L7304
.L7279:

	movq	24(%rsp), %rax
	cmpq	%rax, %rbx
	jne	.L7281
	movq	%r14, %rsi
	movq	%rbx, %rdi
	xorl	%r15d, %r15d
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	setne	%r15b
.L7272:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L7265
	.p2align 4,,10
	.p2align 3
.L7302:

	movq	24(%rsp), %rdi
	movl	$1, %r15d
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
.L7265:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7301:

	.cfi_restore_state
	movl	$431, %r8d
	movl	$109, %edx
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	leaq	.LC187(%rip), %rcx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7265
	.p2align 4,,10
	.p2align 3
.L7277:

	movl	$468, %r8d
	leaq	.LC187(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7272
	.p2align 4,,10
	.p2align 3
.L7303:

	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	jmp	.L7269
.L7304:

	movl	$488, %r8d
	leaq	.LC187(%rip), %rcx
	movl	$110, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7272
.L7281:

	movl	20(%rsp), %r15d
	jmp	.L7272
	.cfi_endproc
.LFE1089:

	.size	BN_sqrt, .-BN_sqrt
# WAS .section	.text.EVP_AEAD_key_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_key_length
	.type	EVP_AEAD_key_length, @function
.LEVP_AEAD_key_length_local_target:
EVP_AEAD_key_length:
.LFB1090:

	.cfi_startproc
	endbr64
	movzbl	(%rdi), %eax
	ret
	.cfi_endproc
.LFE1090:

	.size	EVP_AEAD_key_length, .-EVP_AEAD_key_length
# WAS .section	.rodata.aead_aes_ccm_bluetooth_init.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC188:

	.string	"/aws-lc/crypto/fipsmodule/cipher/e_aesccm.c"
# WAS .section	.text.aead_aes_ccm_bluetooth_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_bluetooth_init, @function
.Laead_aes_ccm_bluetooth_init_local_target:
aead_aes_ccm_bluetooth_init:
.LFB1292:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdi), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	%rax, %r13
	jne	.L7315
	testq	$-5, %rbp
	jne	.L7316
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbx), %rbp
	leal	0(,%r13,8), %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	movq	%rbp, %rdx
	testl	$33554432, %eax
	jne	.L7317
	testb	$2, %ah
	jne	.L7318
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L7312:

	movq	%rax, 264(%rbx)
	movq	.LC189(%rip), %rax
	movb	$4, 577(%rbx)
	movq	%rax, 272(%rbx)
	movl	$1, %eax
	movq	%rdx, 256(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7316:

	.cfi_restore_state
	movl	$337, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7308:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7315:

	.cfi_restore_state
	movl	$328, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7308
	.p2align 4,,10
	.p2align 3
.L7318:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7312
	.p2align 4,,10
	.p2align 3
.L7317:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7312
	.cfi_endproc
.LFE1292:

	.size	aead_aes_ccm_bluetooth_init, .-aead_aes_ccm_bluetooth_init
# WAS .section	.text.aead_aes_ccm_matter_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_matter_init, @function
.Laead_aes_ccm_matter_init_local_target:
aead_aes_ccm_matter_init:
.LFB1300:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdi), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	%rax, %r13
	jne	.L7328
	testq	$-17, %rbp
	jne	.L7329
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbx), %rbp
	leal	0(,%r13,8), %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	movq	%rbp, %rdx
	testl	$33554432, %eax
	jne	.L7330
	testb	$2, %ah
	jne	.L7331
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L7325:

	movq	%rax, 264(%rbx)
	movq	.LC190(%rip), %rax
	movb	$16, 577(%rbx)
	movq	%rax, 272(%rbx)
	movl	$1, %eax
	movq	%rdx, 256(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7329:

	.cfi_restore_state
	movl	$337, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7321:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7328:

	.cfi_restore_state
	movl	$328, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7321
	.p2align 4,,10
	.p2align 3
.L7331:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7325
	.p2align 4,,10
	.p2align 3
.L7330:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7325
	.cfi_endproc
.LFE1300:

	.size	aead_aes_ccm_matter_init, .-aead_aes_ccm_matter_init
# WAS .section	.text.aead_aes_ccm_bluetooth_8_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_bluetooth_8_init, @function
.Laead_aes_ccm_bluetooth_8_init_local_target:
aead_aes_ccm_bluetooth_8_init:
.LFB1296:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdi), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	%rax, %r13
	jne	.L7341
	testq	$-9, %rbp
	jne	.L7342
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbx), %rbp
	leal	0(,%r13,8), %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	movq	%rbp, %rdx
	testl	$33554432, %eax
	jne	.L7343
	testb	$2, %ah
	jne	.L7344
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L7338:

	movq	%rax, 264(%rbx)
	movq	.LC191(%rip), %rax
	movb	$8, 577(%rbx)
	movq	%rax, 272(%rbx)
	movl	$1, %eax
	movq	%rdx, 256(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7342:

	.cfi_restore_state
	movl	$337, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7334:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7341:

	.cfi_restore_state
	movl	$328, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7334
	.p2align 4,,10
	.p2align 3
.L7344:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7338
	.p2align 4,,10
	.p2align 3
.L7343:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L7338
	.cfi_endproc
.LFE1296:

	.size	aead_aes_ccm_bluetooth_8_init, .-aead_aes_ccm_bluetooth_8_init
# WAS .section	.text.EVP_AEAD_nonce_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_nonce_length
	.type	EVP_AEAD_nonce_length, @function
.LEVP_AEAD_nonce_length_local_target:
EVP_AEAD_nonce_length:
.LFB1091:

	.cfi_startproc
	endbr64
	movzbl	1(%rdi), %eax
	ret
	.cfi_endproc
.LFE1091:

	.size	EVP_AEAD_nonce_length, .-EVP_AEAD_nonce_length
# WAS .section	.text.EVP_AEAD_max_overhead,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_max_overhead
	.type	EVP_AEAD_max_overhead, @function
.LEVP_AEAD_max_overhead_local_target:
EVP_AEAD_max_overhead:
.LFB1092:

	.cfi_startproc
	endbr64
	movzbl	2(%rdi), %eax
	ret
	.cfi_endproc
.LFE1092:

	.size	EVP_AEAD_max_overhead, .-EVP_AEAD_max_overhead
# WAS .section	.text.EVP_AEAD_max_tag_len,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_max_tag_len
	.type	EVP_AEAD_max_tag_len, @function
.LEVP_AEAD_max_tag_len_local_target:
EVP_AEAD_max_tag_len:
.LFB1093:

	.cfi_startproc
	endbr64
	movzbl	3(%rdi), %eax
	ret
	.cfi_endproc
.LFE1093:

	.size	EVP_AEAD_max_tag_len, .-EVP_AEAD_max_tag_len
# WAS .section	.text.EVP_AEAD_CTX_zero,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_zero
	.type	EVP_AEAD_CTX_zero, @function
.LEVP_AEAD_CTX_zero_local_target:
EVP_AEAD_CTX_zero:
.LFB1094:

	.cfi_startproc
	endbr64
	movq	$0, (%rdi)
	movq	%rdi, %rcx
	leaq	8(%rdi), %rdi
	xorl	%eax, %eax
	movq	$0, 568(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$584, %ecx
	shrl	$3, %ecx
	rep stosq
	ret
	.cfi_endproc
.LFE1094:

	.size	EVP_AEAD_CTX_zero, .-EVP_AEAD_CTX_zero
# WAS .section	.text.EVP_AEAD_CTX_init_with_direction,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_init_with_direction
	.type	EVP_AEAD_CTX_init_with_direction, @function
.LEVP_AEAD_CTX_init_with_direction_local_target:
EVP_AEAD_CTX_init_with_direction:
.LFB1098:

	.cfi_startproc
	endbr64
	movq	%rsi, %rax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdx, %rsi
	movq	%rdi, %rbx
	movzbl	(%rax), %edx
	cmpq	%rcx, %rdx
	jne	.L7357
	movq	%r8, %rcx
	movq	16(%rax), %r8
	movq	%rax, (%rbx)
	testq	%r8, %r8
	je	.L7352
	movq	%rbx, %rdi
	call	*%r8
.L7353:

	testl	%eax, %eax
	jne	.L7349
	movq	$0, (%rbx)
.L7349:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7352:

	.cfi_restore_state
	movl	%r9d, %r8d
	movq	%rbx, %rdi
	call	*24(%rax)
	jmp	.L7353
	.p2align 4,,10
	.p2align 3
.L7357:

	movl	$84, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	$0, (%rbx)
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1098:

	.size	EVP_AEAD_CTX_init_with_direction, .-EVP_AEAD_CTX_init_with_direction
# WAS .section	.text.EVP_AEAD_CTX_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_init
	.type	EVP_AEAD_CTX_init, @function
.LEVP_AEAD_CTX_init_local_target:
EVP_AEAD_CTX_init:
.LFB1097:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	cmpq	$0, 16(%rsi)
	movq	%rdi, %rbx
	je	.L7362
	xorl	%r9d, %r9d
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_AEAD_CTX_init_with_direction@PLT
	jmp	.LEVP_AEAD_CTX_init_with_direction_local_target
	.p2align 4,,10
	.p2align 3
.L7362:

	.cfi_restore_state
	movl	$70, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	$0, (%rbx)
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1097:

	.size	EVP_AEAD_CTX_init, .-EVP_AEAD_CTX_init
# WAS .section	.text.EVP_AEAD_CTX_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_cleanup
	.type	EVP_AEAD_CTX_cleanup, @function
.LEVP_AEAD_CTX_cleanup_local_target:
EVP_AEAD_CTX_cleanup:
.LFB1099:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L7370
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	call	*32(%rax)
	movq	$0, (%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7370:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE1099:

	.size	EVP_AEAD_CTX_cleanup, .-EVP_AEAD_CTX_cleanup
# WAS .section	.text.EVP_AEAD_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_free
	.type	EVP_AEAD_CTX_free, @function
.LEVP_AEAD_CTX_free_local_target:
EVP_AEAD_CTX_free:
.LFB1096:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L7373
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_AEAD_CTX_cleanup@PLT
	call	.LEVP_AEAD_CTX_cleanup_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L7373:

	ret
	.cfi_endproc
.LFE1096:

	.size	EVP_AEAD_CTX_free, .-EVP_AEAD_CTX_free
# WAS .section	.text.EVP_AEAD_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_new
	.type	EVP_AEAD_CTX_new, @function
.LEVP_AEAD_CTX_new_local_target:
EVP_AEAD_CTX_new:
.LFB1095:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	movl	$584, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L7379
	xorl	%r9d, %r9d
	movq	%r14, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rax, %rdi
	movq	%rax, %rbx
# WAS call	EVP_AEAD_CTX_init@PLT
	call	.LEVP_AEAD_CTX_init_local_target
	testl	%eax, %eax
	je	.L7385
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7385:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EVP_AEAD_CTX_free@PLT
	call	.LEVP_AEAD_CTX_free_local_target
.L7379:

	xorl	%ebx, %ebx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1095:

	.size	EVP_AEAD_CTX_new, .-EVP_AEAD_CTX_new
# WAS .section	.text.EVP_AEAD_CTX_seal_scatter,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_seal_scatter
	.type	EVP_AEAD_CTX_seal_scatter, @function
.LEVP_AEAD_CTX_seal_scatter_local_target:
EVP_AEAD_CTX_seal_scatter:
.LFB1102:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	64(%rsp), %r13
	movq	%rsi, %rbx
	movq	56(%rsp), %rax
	leaq	0(%r13,%rsi), %rcx
	leaq	0(%r13,%rax), %rdx
	cmpq	%rdx, %rsi
	jnb	.L7387
	cmpq	%rsi, %rax
	je	.L7387
	cmpq	%rcx, %rax
	jb	.L7388
.L7387:

	cmpq	%rcx, %rbp
	jnb	.L7390
	leaq	(%r12,%rbp), %rcx
	cmpq	%rcx, %rbx
	jnb	.L7390
.L7388:

	movl	$172, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7395:

	testq	%r13, %r13
	je	.L7397
	movq	%r13, %rdx
	xorl	%esi, %esi
	movq	%rbx, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L7397:

	testq	%r12, %r12
	je	.L7398
	movq	%r12, %rdx
	xorl	%esi, %esi
	movq	%rbp, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L7398:

	movq	$0, (%r14)
	xorl	%eax, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7390:

	.cfi_restore_state
	cmpq	%rdx, %rbp
	jb	.L7414
.L7391:

	movq	(%rdi), %r10
	movl	8(%r10), %edx
	testl	%edx, %edx
	jne	.L7394
	cmpq	$0, 80(%rsp)
	jne	.L7415
.L7394:

	subq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbp, %rdx
	movq	%r12, %r8
	movq	%r14, %rcx
	pushq	104(%rsp)
	.cfi_def_cfa_offset 64
	movq	%rbx, %rsi
	pushq	104(%rsp)
	.cfi_def_cfa_offset 72
	pushq	104(%rsp)
	.cfi_def_cfa_offset 80
	pushq	104(%rsp)
	.cfi_def_cfa_offset 88
	pushq	%r13
	.cfi_def_cfa_offset 96
	pushq	%rax
	.cfi_def_cfa_offset 104
	pushq	104(%rsp)
	.cfi_def_cfa_offset 112
	call	*48(%r10)
	movl	%eax, %edx
	movl	$1, %eax
	addq	$64, %rsp
	.cfi_def_cfa_offset 48
	testl	%edx, %edx
	je	.L7395
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7414:

	.cfi_restore_state
	leaq	0(%rbp,%r12), %rdx
	cmpq	%rdx, %rax
	jb	.L7388
	jmp	.L7391
	.p2align 4,,10
	.p2align 3
.L7415:

	movl	$177, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7395
	.cfi_endproc
.LFE1102:

	.size	EVP_AEAD_CTX_seal_scatter, .-EVP_AEAD_CTX_seal_scatter
# WAS .section	.text.EVP_AEAD_CTX_open_gather,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_open_gather
	.type	EVP_AEAD_CTX_open_gather, @function
.LEVP_AEAD_CTX_open_gather_local_target:
EVP_AEAD_CTX_open_gather:
.LFB1104:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	(%r9,%r8), %rax
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%r9, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpq	%rax, %rsi
	jnb	.L7417
	leaq	(%r9,%rsi), %rax
	cmpq	%rax, %r8
	jnb	.L7417
	cmpq	%rsi, %r8
	jne	.L7431
.L7417:

	movq	(%rdi), %rax
	movq	56(%rax), %rax
	testq	%rax, %rax
	je	.L7432
	pushq	56(%rsp)
	.cfi_def_cfa_offset 40
	movq	%rbx, %r9
	movq	%rbp, %rsi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 48
	pushq	56(%rsp)
	.cfi_def_cfa_offset 56
	pushq	56(%rsp)
	.cfi_def_cfa_offset 64
	call	*%rax
	movl	%eax, %edx
	movl	$1, %eax
	addq	$32, %rsp
	.cfi_def_cfa_offset 32
	testl	%edx, %edx
	jne	.L7416
.L7418:

	testq	%rbx, %rbx
	jne	.L7421
	xorl	%eax, %eax
.L7416:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7421:

	.cfi_restore_state
	movq	%rbx, %rdx
	xorl	%esi, %esi
	movq	%rbp, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	xorl	%eax, %eax
	jmp	.L7416
	.p2align 4,,10
	.p2align 3
.L7431:

	movl	$250, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7418
	.p2align 4,,10
	.p2align 3
.L7432:

	movl	$255, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7418
	.cfi_endproc
.LFE1104:

	.size	EVP_AEAD_CTX_open_gather, .-EVP_AEAD_CTX_open_gather
# WAS .section	.text.EVP_AEAD_CTX_open,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_open
	.type	EVP_AEAD_CTX_open, @function
.LEVP_AEAD_CTX_open_local_target:
EVP_AEAD_CTX_open:
.LFB1103:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	movq	%r8, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	movq	%r9, %rcx
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	48(%rsp), %rax
	movq	56(%rsp), %rsi
	leaq	(%rsi,%rax), %r10
	cmpq	%r10, %rbx
	jnb	.L7434
	leaq	0(%rbp,%rbx), %r8
	cmpq	%r8, %rax
	jnb	.L7434
	cmpq	%rbx, %rax
	jne	.L7459
.L7434:

	movq	(%rdi), %r8
	movq	40(%r8), %r10
	testq	%r10, %r10
	je	.L7436
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	movq	%rcx, %r9
	movq	%rdx, %r8
	movq	%rbp, %rcx
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	movq	%r12, %rdx
	pushq	%rsi
	.cfi_def_cfa_offset 72
	movq	%rbx, %rsi
	pushq	%rax
	.cfi_def_cfa_offset 80
	call	*%r10
	addq	$32, %rsp
	.cfi_def_cfa_offset 48
	testl	%eax, %eax
	jne	.L7438
.L7435:

	testq	%rbp, %rbp
	jne	.L7460
.L7442:

	movq	$0, (%r12)
	xorl	%eax, %eax
.L7433:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7460:

	.cfi_restore_state
	movq	%rbp, %rdx
	xorl	%esi, %esi
	movq	%rbx, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L7442
	.p2align 4,,10
	.p2align 3
.L7436:

	movzbl	577(%rdi), %r8d
	cmpq	%r8, %rsi
	jb	.L7461
	subq	%r8, %rsi
	movq	%rsi, %r13
	cmpq	%rsi, %rbp
	jb	.L7462
	leaq	(%rax,%rsi), %rsi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	movq	%r13, %r9
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	pushq	%r8
	.cfi_def_cfa_offset 72
	movq	%rax, %r8
	pushq	%rsi
	.cfi_def_cfa_offset 80
	movq	%rbx, %rsi
# WAS call	EVP_AEAD_CTX_open_gather@PLT
	call	.LEVP_AEAD_CTX_open_gather_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 48
	testl	%eax, %eax
	je	.L7435
	movq	%r13, (%r12)
	.p2align 4,,10
	.p2align 3
.L7438:

	movl	$1, %eax
	jmp	.L7433
	.p2align 4,,10
	.p2align 3
.L7459:

	movl	$202, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7435
	.p2align 4,,10
	.p2align 3
.L7462:

	movl	$225, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7435
	.p2align 4,,10
	.p2align 3
.L7461:

	movl	$219, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7435
	.cfi_endproc
.LFE1103:

	.size	EVP_AEAD_CTX_open, .-EVP_AEAD_CTX_open
# WAS .section	.text.EVP_AEAD_CTX_aead,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_aead
	.type	EVP_AEAD_CTX_aead, @function
.LEVP_AEAD_CTX_aead_local_target:
EVP_AEAD_CTX_aead:
.LFB1105:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE1105:

	.size	EVP_AEAD_CTX_aead, .-EVP_AEAD_CTX_aead
# WAS .section	.text.EVP_AEAD_CTX_get_iv,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_get_iv
	.type	EVP_AEAD_CTX_get_iv, @function
.LEVP_AEAD_CTX_get_iv_local_target:
EVP_AEAD_CTX_get_iv:
.LFB1106:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movq	64(%rax), %rax
	testq	%rax, %rax
	je	.L7465
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L7465:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1106:

	.size	EVP_AEAD_CTX_get_iv, .-EVP_AEAD_CTX_get_iv
# WAS .section	.text.EVP_AEAD_CTX_tag_len,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_tag_len
	.type	EVP_AEAD_CTX_tag_len, @function
.LEVP_AEAD_CTX_tag_len_local_target:
EVP_AEAD_CTX_tag_len:
.LFB1107:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	(%rdi), %rax
	movq	%rsi, %rbx
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L7467
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	call	*%rax
	movl	$1, %edx
.L7468:

	movq	%rax, (%rbx)
	movl	%edx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7467:

	.cfi_restore_state
	movzbl	577(%rdi), %eax
	movl	$1, %edx
	addq	%rcx, %rax
	jnc	.L7468
	movl	$69, %edx
	movl	$293, %r8d
	xorl	%esi, %esi
	movl	$30, %edi
	leaq	.LC86(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L7468
	.cfi_endproc
.LFE1107:

	.size	EVP_AEAD_CTX_tag_len, .-EVP_AEAD_CTX_tag_len
# WAS .section	.text.EVP_AEAD_get_iv_from_ipv4_nanosecs,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_get_iv_from_ipv4_nanosecs
	.type	EVP_AEAD_get_iv_from_ipv4_nanosecs, @function
.LEVP_AEAD_get_iv_from_ipv4_nanosecs_local_target:
EVP_AEAD_get_iv_from_ipv4_nanosecs:
.LFB1108:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L7474
	movl	%edi, (%rdx)
	movl	$1, %eax
	movq	%rsi, 4(%rdx)
.L7474:

	ret
	.cfi_endproc
.LFE1108:

	.size	EVP_AEAD_get_iv_from_ipv4_nanosecs, .-EVP_AEAD_get_iv_from_ipv4_nanosecs
# WAS .section	.text.EVP_AEAD_CTX_get_aead_id,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_get_aead_id
	.type	EVP_AEAD_CTX_get_aead_id, @function
.LEVP_AEAD_CTX_get_aead_id_local_target:
EVP_AEAD_CTX_get_aead_id:
.LFB1111:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L7480
	movzwl	4(%rax), %eax
	ret
	.p2align 4,,10
	.p2align 3
.L7480:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1111:

	.size	EVP_AEAD_CTX_get_aead_id, .-EVP_AEAD_CTX_get_aead_id
# WAS .section	.text.EVP_AEAD_CTX_serialize_state,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_serialize_state
	.type	EVP_AEAD_CTX_serialize_state, @function
.LEVP_AEAD_CTX_serialize_state_local_target:
EVP_AEAD_CTX_serialize_state:
.LFB1109:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	cmpq	$0, (%rdi)
	je	.L7482
	movq	%rdi, %rbx
	movq	%rsi, %r12
# WAS call	EVP_AEAD_CTX_get_aead_id@PLT
	call	.LEVP_AEAD_CTX_get_aead_id_local_target
	movzwl	%ax, %ebp
	testq	%rbp, %rbp
	je	.L7502
	movq	%rsp, %r13
	movl	$536870928, %edx
	movq	%r12, %rdi
	movq	%r13, %rsi
# WAS call	CBB_add_asn1@PLT
	call	.Lbcm_redirector_CBB_add_asn1
	testl	%eax, %eax
	je	.L7486
	movl	$1, %esi
	movq	%r13, %rdi
# WAS call	CBB_add_asn1_uint64@PLT
	call	.Lbcm_redirector_CBB_add_asn1_uint64
	testl	%eax, %eax
	jne	.L7503
.L7486:

	movl	$335, %r8d
	jmp	.L7501
	.p2align 4,,10
	.p2align 3
.L7502:

	movl	$326, %r8d
.L7501:

	leaq	.LC86(%rip), %rcx
	movl	$65, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7482:

	xorl	%eax, %eax
.L7481:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L7504
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7503:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	CBB_add_asn1_uint64@PLT
	call	.Lbcm_redirector_CBB_add_asn1_uint64
	testl	%eax, %eax
	je	.L7486
	leaq	48(%rsp), %rbp
	movl	$50, %esi
	movq	%rbp, %rdi
# WAS call	CBB_init@PLT
	call	.Lbcm_redirector_CBB_init
	movl	$356, %r8d
	testl	%eax, %eax
	je	.L7501
	movq	(%rbx), %rax
	movq	80(%rax), %rax
	testq	%rax, %rax
	je	.L7488
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L7505
.L7488:

	movq	%rbp, %rdi
# WAS call	CBB_len@PLT
	call	.Lbcm_redirector_CBB_len
	movq	%rbp, %rdi
	movq	%rax, %rbx
# WAS call	CBB_data@PLT
	call	.Lbcm_redirector_CBB_data
	movq	%r13, %rdi
	movq	%rbx, %rdx
	movq	%rax, %rsi
# WAS call	CBB_add_asn1_octet_string@PLT
	call	.Lbcm_redirector_CBB_add_asn1_octet_string
	movq	%rbp, %rdi
	testl	%eax, %eax
	je	.L7506
# WAS call	CBB_cleanup@PLT
	call	.Lbcm_redirector_CBB_cleanup
	movq	%r12, %rdi
# WAS call	CBB_flush@PLT
	call	.Lbcm_redirector_CBB_flush
	jmp	.L7481
	.p2align 4,,10
	.p2align 3
.L7506:

# WAS call	CBB_cleanup@PLT
	call	.Lbcm_redirector_CBB_cleanup
	movl	$370, %r8d
	jmp	.L7501
.L7505:

	movq	%rbp, %rdi
# WAS call	CBB_cleanup@PLT
	call	.Lbcm_redirector_CBB_cleanup
	movl	$363, %r8d
	jmp	.L7501
.L7504:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1109:

	.size	EVP_AEAD_CTX_serialize_state, .-EVP_AEAD_CTX_serialize_state
# WAS .section	.text.EVP_AEAD_CTX_deserialize_state,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_AEAD_CTX_deserialize_state
	.type	EVP_AEAD_CTX_deserialize_state, @function
.LEVP_AEAD_CTX_deserialize_state_local_target:
EVP_AEAD_CTX_deserialize_state:
.LFB1110:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$64, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	cmpq	$0, (%rdi)
	je	.L7508
	leaq	16(%rsp), %rbp
	movq	%rsi, %rdi
	movl	$536870928, %edx
	movq	%rbp, %rsi
# WAS call	CBS_get_asn1@PLT
	call	.Lbcm_redirector_CBS_get_asn1
	testl	%eax, %eax
	je	.L7523
	movq	%rsp, %rsi
	movq	%rbp, %rdi
# WAS call	CBS_get_asn1_uint64@PLT
	call	.Lbcm_redirector_CBS_get_asn1_uint64
	testl	%eax, %eax
	je	.L7511
	cmpq	$1, (%rsp)
	je	.L7512
.L7511:

	movl	$396, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$143, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7508:

	xorl	%eax, %eax
.L7507:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L7524
	addq	$64, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7523:

	.cfi_restore_state
	movl	$390, %r8d
.L7522:

	leaq	.LC86(%rip), %rcx
	movl	$141, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7508
	.p2align 4,,10
	.p2align 3
.L7512:

	leaq	8(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	CBS_get_asn1_uint64@PLT
	call	.Lbcm_redirector_CBS_get_asn1_uint64
	testl	%eax, %eax
	je	.L7514
	cmpq	$65535, 8(%rsp)
	jbe	.L7525
.L7514:

	movl	$402, %r8d
	leaq	.LC86(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L7508
	.p2align 4,,10
	.p2align 3
.L7525:

	movq	%rbx, %rdi
# WAS call	EVP_AEAD_CTX_get_aead_id@PLT
	call	.LEVP_AEAD_CTX_get_aead_id_local_target
	movzwl	%ax, %eax
	cmpq	8(%rsp), %rax
	jne	.L7514
	leaq	32(%rsp), %r12
	movl	$4, %edx
	movq	%rbp, %rdi
	movq	%r12, %rsi
# WAS call	CBS_get_asn1@PLT
	call	.Lbcm_redirector_CBS_get_asn1
	movl	$407, %r8d
	testl	%eax, %eax
	je	.L7522
	movq	(%rbx), %rax
	movq	88(%rax), %rax
	testq	%rax, %rax
	je	.L7526
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*%rax
	jmp	.L7507
.L7526:

	movq	%r12, %rdi
# WAS call	CBS_len@PLT
	call	.Lbcm_redirector_CBS_len
	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
	jmp	.L7507
.L7524:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1110:

	.size	EVP_AEAD_CTX_deserialize_state, .-EVP_AEAD_CTX_deserialize_state
# WAS .section	.text.EVP_CIPHER_CTX_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_init
	.type	EVP_CIPHER_CTX_init, @function
.LEVP_CIPHER_CTX_init_local_target:
EVP_CIPHER_CTX_init:
.LFB1112:

	.cfi_startproc
	endbr64
	movq	$0, (%rdi)
	movq	%rdi, %rdx
	leaq	8(%rdi), %rdi
	xorl	%eax, %eax
	movq	$0, 136(%rdi)
	movq	%rdx, %rcx
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$152, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$1, 144(%rdx)
	ret
	.cfi_endproc
.LFE1112:

	.size	EVP_CIPHER_CTX_init, .-EVP_CIPHER_CTX_init
# WAS .section	.text.EVP_CIPHER_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_new
	.type	EVP_CIPHER_CTX_new, @function
.LEVP_CIPHER_CTX_new_local_target:
EVP_CIPHER_CTX_new:
.LFB1113:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$152, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L7528
	movl	$1, 144(%rax)
.L7528:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1113:

	.size	EVP_CIPHER_CTX_new, .-EVP_CIPHER_CTX_new
# WAS .section	.rodata.EVP_CIPHER_CTX_cleanup.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC192:

	.string	"/aws-lc/crypto/fipsmodule/cipher/cipher.c"
# WAS .section	.text.EVP_CIPHER_CTX_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_cleanup
	.type	EVP_CIPHER_CTX_cleanup, @function
.LEVP_CIPHER_CTX_cleanup_local_target:
EVP_CIPHER_CTX_cleanup:
.LFB1114:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	testq	%rdi, %rdi
	je	.L7545
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L7537
	movq	48(%rax), %rax
	testq	%rax, %rax
	je	.L7537
	call	*%rax
.L7537:

	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	leaq	8(%rbx), %rdi
	movq	%rbx, %rcx
	xorl	%eax, %eax
	andq	$-8, %rdi
	movq	$0, (%rbx)
	movq	$0, 144(%rbx)
	subq	%rdi, %rcx
	addl	$152, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$1, %eax
	movl	$1, 144(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7545:

	.cfi_restore_state
	movl	$88, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1114:

	.size	EVP_CIPHER_CTX_cleanup, .-EVP_CIPHER_CTX_cleanup
# WAS .section	.text.EVP_CIPHER_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_free
	.type	EVP_CIPHER_CTX_free, @function
.LEVP_CIPHER_CTX_free_local_target:
EVP_CIPHER_CTX_free:
.LFB1115:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L7546
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L7546:

	ret
	.cfi_endproc
.LFE1115:

	.size	EVP_CIPHER_CTX_free, .-EVP_CIPHER_CTX_free
# WAS .section	.text.EVP_CIPHER_CTX_copy,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_copy
	.type	EVP_CIPHER_CTX_copy, @function
.LEVP_CIPHER_CTX_copy_local_target:
EVP_CIPHER_CTX_copy:
.LFB1116:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L7552
	cmpq	$0, (%rsi)
	movq	%rsi, %rbx
	je	.L7552
	movl	144(%rsi), %eax
	testl	%eax, %eax
	jne	.L7576
	movq	%rdi, %rbp
	testq	%rdi, %rdi
	je	.L7577
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	movdqu	(%rbx), %xmm0
	movups	%xmm0, 0(%rbp)
	movdqu	16(%rbx), %xmm1
	movups	%xmm1, 16(%rbp)
	movdqu	32(%rbx), %xmm2
	movups	%xmm2, 32(%rbp)
	movdqu	48(%rbx), %xmm3
	movups	%xmm3, 48(%rbp)
	movdqu	64(%rbx), %xmm4
	movups	%xmm4, 64(%rbp)
	movdqu	80(%rbx), %xmm5
	movups	%xmm5, 80(%rbp)
	movdqu	96(%rbx), %xmm6
	movups	%xmm6, 96(%rbp)
	movdqu	112(%rbx), %xmm7
	movups	%xmm7, 112(%rbp)
	movdqu	128(%rbx), %xmm0
	movups	%xmm0, 128(%rbp)
	movq	144(%rbx), %rax
	movq	%rax, 144(%rbp)
	movq	16(%rbx), %rdi
	movq	(%rbx), %rax
	testq	%rdi, %rdi
	je	.L7558
	movl	16(%rax), %esi
	testl	%esi, %esi
	jne	.L7578
.L7558:

	testb	$16, 21(%rax)
	je	.L7562
	xorl	%edx, %edx
	movq	%rbp, %rcx
	movl	$8, %esi
	movq	%rbx, %rdi
	call	*56(%rax)
	testl	%eax, %eax
	je	.L7559
.L7562:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7552:

	.cfi_restore_state
	movl	$109, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$108, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L7579:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7577:

	.cfi_restore_state
	movl	$117, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7579
	.p2align 4,,10
	.p2align 3
.L7559:

	movq	$0, 0(%rbp)
	xorl	%eax, %eax
	jmp	.L7579
	.p2align 4,,10
	.p2align 3
.L7576:

	movl	$114, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7579
	.p2align 4,,10
	.p2align 3
.L7578:

# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 16(%rbp)
	testq	%rax, %rax
	je	.L7559
	movq	(%rbx), %rax
	jmp	.L7558
	.cfi_endproc
.LFE1116:

	.size	EVP_CIPHER_CTX_copy, .-EVP_CIPHER_CTX_copy
# WAS .section	.text.EVP_CIPHER_CTX_reset,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_reset
	.type	EVP_CIPHER_CTX_reset, @function
.LEVP_CIPHER_CTX_reset_local_target:
EVP_CIPHER_CTX_reset:
.LFB1117:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_init@PLT
	call	.LEVP_CIPHER_CTX_init_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1117:

	.size	EVP_CIPHER_CTX_reset, .-EVP_CIPHER_CTX_reset
# WAS .section	.text.EVP_EncryptUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_EncryptUpdate
	.type	EVP_EncryptUpdate, @function
.LEVP_EncryptUpdate_local_target:
EVP_EncryptUpdate:
.LFB1122:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	testq	%rdi, %rdi
	je	.L7617
	movl	144(%rdi), %eax
	movq	%rdi, %rbx
	testl	%eax, %eax
	jne	.L7618
	movl	$1, 144(%rdi)
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L7619
	movl	4(%rax), %r13d
	movq	%rsi, %r14
	movq	%rdx, %r15
	movq	%rcx, %r12
	movl	%r8d, %ebp
	cmpl	$1, %r13d
	jle	.L7588
	movl	$2147483647, %edx
	subl	%r13d, %edx
	cmpl	%r8d, %edx
	jl	.L7620
.L7588:

	testb	$4, 21(%rax)
	je	.L7589
	movslq	%ebp, %rcx
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	call	*40(%rax)
	testl	%eax, %eax
	js	.L7584
	movl	%eax, (%r15)
	movl	$0, 144(%rbx)
.L7591:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7589:

	.cfi_restore_state
	testl	%ebp, %ebp
	jle	.L7621
	movslq	100(%rbx), %rdx
	testl	%edx, %edx
	je	.L7622
	movl	%r13d, %r10d
	leaq	68(%rbx,%rdx), %rdi
	subl	%edx, %r10d
	cmpl	%ebp, %r10d
	jg	.L7623
	movslq	%r10d, %rdx
	movq	%rdx, 8(%rsp)
	testq	%rdx, %rdx
	jne	.L7624
.L7598:

	movslq	%r13d, %rdi
	movl	%r10d, 20(%rsp)
	leaq	68(%rbx), %rdx
	movq	%r14, %rsi
	movq	%rdi, 24(%rsp)
	movq	%rdi, %rcx
	movq	%rbx, %rdi
	call	*40(%rax)
	testl	%eax, %eax
	je	.L7584
	movq	8(%rsp), %rax
	movl	20(%rsp), %r10d
	movl	%r13d, (%r15)
	addq	%rax, %r12
	movq	(%rbx), %rax
	subl	%r10d, %ebp
	movl	4(%rax), %esi
	leal	-1(%rsi), %r13d
	andl	%ebp, %r13d
	subl	%r13d, %ebp
	testl	%ebp, %ebp
	jle	.L7599
	movq	24(%rsp), %rdi
	addq	%rdi, %r14
.L7600:

	movslq	%ebp, %rcx
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	call	*40(%rax)
	testl	%eax, %eax
	je	.L7584
	addl	%ebp, (%r15)
.L7599:

	testl	%r13d, %r13d
	jne	.L7601
.L7602:

	movl	%r13d, 100(%rbx)
	movl	$0, 144(%rbx)
	jmp	.L7591
	.p2align 4,,10
	.p2align 3
.L7618:

	movl	$270, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7584:

	xorl	%eax, %eax
.L7625:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7621:

	.cfi_restore_state
	movl	$0, (%r15)
	jne	.L7584
	movl	$0, 144(%rbx)
	jmp	.L7591
	.p2align 4,,10
	.p2align 3
.L7620:

	movl	$283, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$69, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7625
	.p2align 4,,10
	.p2align 3
.L7617:

	movl	$268, %r8d
.L7616:

	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7625
	.p2align 4,,10
	.p2align 3
.L7622:

	leal	-1(%r13), %r8d
	testl	%ebp, %r8d
	jne	.L7595
	movslq	%ebp, %rcx
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	call	*40(%rax)
	testl	%eax, %eax
	je	.L7596
	movl	%ebp, (%r15)
	movl	$0, 144(%rbx)
	jmp	.L7591
	.p2align 4,,10
	.p2align 3
.L7595:

	movl	$0, (%r15)
	movl	4(%rax), %esi
	leal	-1(%rsi), %r13d
	andl	%ebp, %r13d
	subl	%r13d, %ebp
	testl	%ebp, %ebp
	jg	.L7600
.L7601:

	movslq	%ebp, %rbp
	leaq	68(%rbx), %rdi
	movslq	%r13d, %rdx
	leaq	(%r12,%rbp), %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L7602
	.p2align 4,,10
	.p2align 3
.L7619:

	movl	$280, %r8d
	jmp	.L7616
	.p2align 4,,10
	.p2align 3
.L7624:

	movq	%r12, %rsi
	movl	%r10d, 20(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rax
	movl	20(%rsp), %r10d
	jmp	.L7598
	.p2align 4,,10
	.p2align 3
.L7596:

	movl	$0, (%r15)
	xorl	%eax, %eax
	jmp	.L7625
	.p2align 4,,10
	.p2align 3
.L7623:

	movslq	%ebp, %rdx
	movq	%r12, %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	addl	%ebp, 100(%rbx)
	movl	$0, (%r15)
	movl	$0, 144(%rbx)
	jmp	.L7591
	.cfi_endproc
.LFE1122:

	.size	EVP_EncryptUpdate, .-EVP_EncryptUpdate
# WAS .section	.text.EVP_DecryptUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DecryptUpdate
	.type	EVP_DecryptUpdate, @function
.LEVP_DecryptUpdate_local_target:
EVP_DecryptUpdate:
.LFB1124:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	testq	%rdi, %rdi
	je	.L7656
	movq	%rdi, %rbx
	movl	144(%rdi), %edi
	testl	%edi, %edi
	jne	.L7657
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L7658
	movl	4(%rax), %r14d
	movq	%rsi, %r13
	movq	%rdx, %r12
	movq	%rcx, %rbp
	cmpl	$1, %r14d
	jbe	.L7632
	movl	$2147483647, %edx
	subl	%r14d, %edx
	cmpl	%r8d, %edx
	jl	.L7659
.L7632:

	testb	$4, 21(%rax)
	jne	.L7660
	testl	%r8d, %r8d
	jle	.L7661
	testb	$8, 33(%rbx)
	jne	.L7662
	movl	108(%rbx), %r15d
	testl	%r15d, %r15d
	je	.L7638
	movl	%r14d, %r15d
	testq	%r15, %r15
	jne	.L7663
.L7639:

	addq	%r15, %r13
	movl	$1, %r15d
.L7638:

	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_EncryptUpdate@PLT
	call	.LEVP_EncryptUpdate_local_target
	testl	%eax, %eax
	je	.L7628
	cmpl	$1, %r14d
	jbe	.L7640
	movl	100(%rbx), %eax
	testl	%eax, %eax
	je	.L7664
.L7640:

	movl	$0, 108(%rbx)
.L7641:

	testl	%r15d, %r15d
	je	.L7635
	addl	%r14d, (%r12)
	jmp	.L7635
	.p2align 4,,10
	.p2align 3
.L7660:

	movslq	%r8d, %rcx
	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	*40(%rax)
	testl	%eax, %eax
	js	.L7665
	movl	%eax, (%r12)
.L7635:

	movl	$1, %eax
.L7626:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7665:

	.cfi_restore_state
	movl	$0, (%r12)
.L7628:

	xorl	%eax, %eax
.L7666:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7659:

	.cfi_restore_state
	movl	$428, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$69, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7666
	.p2align 4,,10
	.p2align 3
.L7657:

	movl	$418, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7666
	.p2align 4,,10
	.p2align 3
.L7656:

	movl	$416, %r8d
.L7655:

	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7666
	.p2align 4,,10
	.p2align 3
.L7661:

	sete	%al
	movl	$0, (%r12)
	movzbl	%al, %eax
	jmp	.L7626
	.p2align 4,,10
	.p2align 3
.L7658:

	movl	$425, %r8d
	jmp	.L7655
	.p2align 4,,10
	.p2align 3
.L7662:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_EncryptUpdate@PLT
	jmp	.LEVP_EncryptUpdate_local_target
	.p2align 4,,10
	.p2align 3
.L7663:

	.cfi_restore_state
	leaq	112(%rbx), %rsi
	movq	%r15, %rdx
	movq	%r13, %rdi
	movl	%r8d, 12(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movl	12(%rsp), %r8d
	jmp	.L7639
	.p2align 4,,10
	.p2align 3
.L7664:

	subl	%r14d, (%r12)
	leaq	112(%rbx), %rdi
	movl	%r14d, %edx
	movl	$1, 108(%rbx)
	movslq	(%r12), %rax
	leaq	0(%r13,%rax), %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L7641
	.cfi_endproc
.LFE1124:

	.size	EVP_DecryptUpdate, .-EVP_DecryptUpdate
# WAS .section	.text.EVP_CipherUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CipherUpdate
	.type	EVP_CipherUpdate, @function
.LEVP_CipherUpdate_local_target:
EVP_CipherUpdate:
.LFB1127:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L7672
	movl	28(%rdi), %eax
	testl	%eax, %eax
	je	.L7670
# WAS jmp	EVP_EncryptUpdate@PLT
	jmp	.LEVP_EncryptUpdate_local_target
	.p2align 4,,10
	.p2align 3
.L7670:

# WAS jmp	EVP_DecryptUpdate@PLT
	jmp	.LEVP_DecryptUpdate_local_target
	.p2align 4,,10
	.p2align 3
.L7672:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
	movl	$580, %r8d
	leaq	.LC192(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1127:

	.size	EVP_CipherUpdate, .-EVP_CipherUpdate
# WAS .section	.text.EVP_CIPHER_CTX_cipher,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_cipher
	.type	EVP_CIPHER_CTX_cipher, @function
.LEVP_CIPHER_CTX_cipher_local_target:
EVP_CIPHER_CTX_cipher:
.LFB1129:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE1129:

	.size	EVP_CIPHER_CTX_cipher, .-EVP_CIPHER_CTX_cipher
# WAS .section	.text.EVP_CIPHER_CTX_nid,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_nid
	.type	EVP_CIPHER_CTX_nid, @function
.LEVP_CIPHER_CTX_nid_local_target:
EVP_CIPHER_CTX_nid:
.LFB1130:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movl	(%rax), %eax
	ret
	.cfi_endproc
.LFE1130:

	.size	EVP_CIPHER_CTX_nid, .-EVP_CIPHER_CTX_nid
# WAS .section	.text.EVP_CIPHER_CTX_encrypting,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_encrypting
	.type	EVP_CIPHER_CTX_encrypting, @function
.LEVP_CIPHER_CTX_encrypting_local_target:
EVP_CIPHER_CTX_encrypting:
.LFB1131:

	.cfi_startproc
	endbr64
	movl	28(%rdi), %eax
	ret
	.cfi_endproc
.LFE1131:

	.size	EVP_CIPHER_CTX_encrypting, .-EVP_CIPHER_CTX_encrypting
# WAS .section	.text.EVP_CIPHER_CTX_block_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_block_size
	.type	EVP_CIPHER_CTX_block_size, @function
.LEVP_CIPHER_CTX_block_size_local_target:
EVP_CIPHER_CTX_block_size:
.LFB1132:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movl	4(%rax), %eax
	ret
	.cfi_endproc
.LFE1132:

	.size	EVP_CIPHER_CTX_block_size, .-EVP_CIPHER_CTX_block_size
# WAS .section	.text.EVP_CIPHER_CTX_key_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_key_length
	.type	EVP_CIPHER_CTX_key_length, @function
.LEVP_CIPHER_CTX_key_length_local_target:
EVP_CIPHER_CTX_key_length:
.LFB1133:

	.cfi_startproc
	endbr64
	movl	24(%rdi), %eax
	ret
	.cfi_endproc
.LFE1133:

	.size	EVP_CIPHER_CTX_key_length, .-EVP_CIPHER_CTX_key_length
# WAS .section	.text.aes_wrap_init_key,"ax",@progbits
.text
	.p2align 4
	.type	aes_wrap_init_key, @function
.Laes_wrap_init_key_local_target:
aes_wrap_init_key:
.LFB1171:

	.cfi_startproc
	endbr64
	movq	%rdx, %rax
	orq	%rsi, %rax
	je	.L7697
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	16(%rdi), %r13
	testq	%rsi, %rsi
	je	.L7682
	movl	28(%rdi), %eax
	testl	%eax, %eax
	je	.L7683
# WAS call	EVP_CIPHER_CTX_key_length@PLT
	call	.LEVP_CIPHER_CTX_key_length_local_target
	movq	%r13, %rdx
	movq	%rbp, %rdi
	leal	0(,%rax,8), %esi
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
	testq	%r12, %r12
	je	.L7685
.L7688:

	movq	(%rbx), %rax
	addq	$52, %rbx
	movl	12(%rax), %edx
	testq	%rdx, %rdx
	je	.L7686
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L7686:

	movq	%rbx, 248(%r13)
.L7681:

	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7697:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L7683:

	.cfi_def_cfa_offset 48
	.cfi_offset 3, -40
	.cfi_offset 6, -32
	.cfi_offset 12, -24
	.cfi_offset 13, -16
# WAS call	EVP_CIPHER_CTX_key_length@PLT
	call	.LEVP_CIPHER_CTX_key_length_local_target
	movq	%r13, %rdx
	movq	%rbp, %rdi
	leal	0(,%rax,8), %esi
# WAS call	AES_set_decrypt_key@PLT
	call	.LAES_set_decrypt_key_local_target
	testq	%r12, %r12
	jne	.L7688
.L7685:

	movq	$0, 248(%r13)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7682:

	.cfi_restore_state
	testq	%rdx, %rdx
	jne	.L7688
	jmp	.L7681
	.cfi_endproc
.LFE1171:

	.size	aes_wrap_init_key, .-aes_wrap_init_key
# WAS .section	.text.EVP_CIPHER_CTX_get_app_data,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_get_app_data
	.type	EVP_CIPHER_CTX_get_app_data, @function
.LEVP_CIPHER_CTX_get_app_data_local_target:
EVP_CIPHER_CTX_get_app_data:
.LFB1135:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE1135:

	.size	EVP_CIPHER_CTX_get_app_data, .-EVP_CIPHER_CTX_get_app_data
# WAS .section	.text.EVP_CIPHER_CTX_set_app_data,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_set_app_data
	.type	EVP_CIPHER_CTX_set_app_data, @function
.LEVP_CIPHER_CTX_set_app_data_local_target:
EVP_CIPHER_CTX_set_app_data:
.LFB1136:

	.cfi_startproc
	endbr64
	movq	%rsi, 8(%rdi)
	ret
	.cfi_endproc
.LFE1136:

	.size	EVP_CIPHER_CTX_set_app_data, .-EVP_CIPHER_CTX_set_app_data
# WAS .section	.text.EVP_CIPHER_CTX_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_flags
	.type	EVP_CIPHER_CTX_flags, @function
.LEVP_CIPHER_CTX_flags_local_target:
EVP_CIPHER_CTX_flags:
.LFB1137:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movl	20(%rax), %eax
	andl	$-64, %eax
	ret
	.cfi_endproc
.LFE1137:

	.size	EVP_CIPHER_CTX_flags, .-EVP_CIPHER_CTX_flags
# WAS .section	.text.EVP_CIPHER_CTX_mode,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_mode
	.type	EVP_CIPHER_CTX_mode, @function
.LEVP_CIPHER_CTX_mode_local_target:
EVP_CIPHER_CTX_mode:
.LFB1138:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movl	20(%rax), %eax
	andl	$63, %eax
	ret
	.cfi_endproc
.LFE1138:

	.size	EVP_CIPHER_CTX_mode, .-EVP_CIPHER_CTX_mode
# WAS .section	.text.EVP_CIPHER_CTX_ctrl,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_ctrl
	.type	EVP_CIPHER_CTX_ctrl, @function
.LEVP_CIPHER_CTX_ctrl_local_target:
EVP_CIPHER_CTX_ctrl:
.LFB1139:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L7710
	movq	56(%rax), %rax
	testq	%rax, %rax
	je	.L7711
	call	*%rax
	cmpl	$-1, %eax
	je	.L7712
.L7704:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7710:

	.cfi_restore_state
	movl	$651, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7704
	.p2align 4,,10
	.p2align 3
.L7712:

	movl	$662, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7704
	.p2align 4,,10
	.p2align 3
.L7711:

	movl	$656, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7704
	.cfi_endproc
.LFE1139:

	.size	EVP_CIPHER_CTX_ctrl, .-EVP_CIPHER_CTX_ctrl
# WAS .section	.text.EVP_CIPHER_CTX_set_padding,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_set_padding
	.type	EVP_CIPHER_CTX_set_padding, @function
.LEVP_CIPHER_CTX_set_padding_local_target:
EVP_CIPHER_CTX_set_padding:
.LFB1140:

	.cfi_startproc
	endbr64
	movl	32(%rdi), %eax
	movl	%eax, %edx
	orb	$8, %ah
	andb	$-9, %dh
	testl	%esi, %esi
	cmovne	%edx, %eax
	movl	%eax, 32(%rdi)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1140:

	.size	EVP_CIPHER_CTX_set_padding, .-EVP_CIPHER_CTX_set_padding
# WAS .section	.text.EVP_CIPHER_CTX_set_key_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_set_key_length
	.type	EVP_CIPHER_CTX_set_key_length, @function
.LEVP_CIPHER_CTX_set_key_length_local_target:
EVP_CIPHER_CTX_set_key_length:
.LFB1141:

	.cfi_startproc
	endbr64
	cmpl	%esi, 24(%rdi)
	je	.L7717
	testl	%esi, %esi
	je	.L7718
	movq	(%rdi), %rax
	testb	$64, 20(%rax)
	je	.L7718
	movl	%esi, 24(%rdi)
.L7717:

	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L7718:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$110, %edx
	xorl	%esi, %esi
	movl	$30, %edi
	movl	$684, %r8d
	leaq	.LC192(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1141:

	.size	EVP_CIPHER_CTX_set_key_length, .-EVP_CIPHER_CTX_set_key_length
# WAS .section	.text.EVP_CIPHER_nid,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_nid
	.type	EVP_CIPHER_nid, @function
.LEVP_CIPHER_nid_local_target:
EVP_CIPHER_nid:
.LFB1142:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	ret
	.cfi_endproc
.LFE1142:

	.size	EVP_CIPHER_nid, .-EVP_CIPHER_nid
# WAS .section	.text.EVP_CIPHER_block_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_block_size
	.type	EVP_CIPHER_block_size, @function
.LEVP_CIPHER_block_size_local_target:
EVP_CIPHER_block_size:
.LFB1143:

	.cfi_startproc
	endbr64
	movl	4(%rdi), %eax
	ret
	.cfi_endproc
.LFE1143:

	.size	EVP_CIPHER_block_size, .-EVP_CIPHER_block_size
# WAS .section	.text.EVP_CIPHER_key_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_key_length
	.type	EVP_CIPHER_key_length, @function
.LEVP_CIPHER_key_length_local_target:
EVP_CIPHER_key_length:
.LFB1144:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	ret
	.cfi_endproc
.LFE1144:

	.size	EVP_CIPHER_key_length, .-EVP_CIPHER_key_length
# WAS .section	.text.EVP_CIPHER_iv_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_iv_length
	.type	EVP_CIPHER_iv_length, @function
.LEVP_CIPHER_iv_length_local_target:
EVP_CIPHER_iv_length:
.LFB1145:

	.cfi_startproc
	endbr64
	movl	12(%rdi), %eax
	ret
	.cfi_endproc
.LFE1145:

	.size	EVP_CIPHER_iv_length, .-EVP_CIPHER_iv_length
# WAS .section	.text.EVP_CIPHER_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_flags
	.type	EVP_CIPHER_flags, @function
.LEVP_CIPHER_flags_local_target:
EVP_CIPHER_flags:
.LFB1146:

	.cfi_startproc
	endbr64
	movl	20(%rdi), %eax
	andl	$-64, %eax
	ret
	.cfi_endproc
.LFE1146:

	.size	EVP_CIPHER_flags, .-EVP_CIPHER_flags
# WAS .section	.text.EVP_CIPHER_mode,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_mode
	.type	EVP_CIPHER_mode, @function
.LEVP_CIPHER_mode_local_target:
EVP_CIPHER_mode:
.LFB1147:

	.cfi_startproc
	endbr64
	movl	20(%rdi), %eax
	andl	$63, %eax
	ret
	.cfi_endproc
.LFE1147:

	.size	EVP_CIPHER_mode, .-EVP_CIPHER_mode
# WAS .section	.text.EVP_CIPHER_CTX_iv_length,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_iv_length
	.type	EVP_CIPHER_CTX_iv_length, @function
.LEVP_CIPHER_CTX_iv_length_local_target:
EVP_CIPHER_CTX_iv_length:
.LFB1134:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_CIPHER_mode@PLT
	call	.LEVP_CIPHER_mode_local_target
	cmpl	$6, %eax
	je	.L7737
	movq	(%rbx), %rdi
# WAS call	EVP_CIPHER_mode@PLT
	call	.LEVP_CIPHER_mode_local_target
	cmpl	$8, %eax
	je	.L7737
.L7738:

	movq	(%rbx), %rax
	movl	12(%rax), %eax
.L7733:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L7745
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7737:

	.cfi_restore_state
	xorl	%edx, %edx
	leaq	4(%rsp), %rcx
	movl	$25, %esi
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_ctrl@PLT
	call	.LEVP_CIPHER_CTX_ctrl_local_target
	cmpl	$1, %eax
	jne	.L7738
	movl	4(%rsp), %eax
	jmp	.L7733
.L7745:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1134:

	.size	EVP_CIPHER_CTX_iv_length, .-EVP_CIPHER_CTX_iv_length
# WAS .section	.text.EVP_CipherInit_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CipherInit_ex
	.type	EVP_CipherInit_ex, @function
.LEVP_CipherInit_ex_local_target:
EVP_CipherInit_ex:
.LFB1118:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	testq	%rdi, %rdi
	je	.L7796
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	movq	%rcx, %r12
	movq	%r8, %r13
	cmpl	$-1, %r9d
	je	.L7797
	xorl	%r14d, %r14d
	testl	%r9d, %r9d
	movq	(%rbx), %rax
	setne	%r14b
	movl	%r14d, 28(%rdi)
	testq	%rbp, %rbp
	je	.L7751
.L7802:

	testq	%rax, %rax
	je	.L7752
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	movl	%r14d, 28(%rbx)
.L7752:

	movl	16(%rbp), %edi
	movq	%rbp, (%rbx)
	testl	%edi, %edi
	jne	.L7798
	movq	$0, 16(%rbx)
	movq	%rbp, %rax
.L7755:

	movl	8(%rbp), %edx
	movl	$0, 32(%rbx)
	movl	%edx, 24(%rbx)
	testb	$2, 21(%rax)
	jne	.L7799
.L7757:

	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_flags@PLT
	call	.LEVP_CIPHER_CTX_flags_local_target
	testb	$1, %ah
	je	.L7800
.L7759:

	movq	(%rbx), %rax
	testq	%r12, %r12
	je	.L7801
.L7768:

	movl	%r14d, %ecx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*32(%rax)
	testl	%eax, %eax
	je	.L7748
.L7769:

	movl	$0, 100(%rbx)
	movl	$1, %eax
	movl	$0, 108(%rbx)
	movl	$0, 144(%rbx)
.L7746:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7798:

	.cfi_restore_state
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L7754
	movq	(%rbx), %rax
	jmp	.L7755
	.p2align 4,,10
	.p2align 3
.L7797:

	movl	28(%rdi), %r14d
	movq	(%rbx), %rax
	testq	%rbp, %rbp
	jne	.L7802
.L7751:

	testq	%rax, %rax
	jne	.L7757
	movl	$192, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L7748:

	xorl	%eax, %eax
	jmp	.L7746
	.p2align 4,,10
	.p2align 3
.L7800:

	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_mode@PLT
	call	.LEVP_CIPHER_CTX_mode_local_target
	cmpl	$3, %eax
	je	.L7760
	ja	.L7761
	cmpl	$2, %eax
	jne	.L7759
.L7762:

	testq	%r13, %r13
	je	.L7765
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_iv_length@PLT
	call	.LEVP_CIPHER_CTX_iv_length_local_target
	movl	%eax, %edx
	testq	%rdx, %rdx
	jne	.L7803
.L7765:

	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_iv_length@PLT
	call	.LEVP_CIPHER_CTX_iv_length_local_target
	movl	%eax, %edx
	testq	%rdx, %rdx
	je	.L7759
	leaq	52(%rbx), %rdi
	leaq	36(%rbx), %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L7759
	.p2align 4,,10
	.p2align 3
.L7801:

	testb	$-128, 20(%rax)
	jne	.L7768
	jmp	.L7769
	.p2align 4,,10
	.p2align 3
.L7761:

	subl	$4, %eax
	cmpl	$1, %eax
	ja	.L7748
	movl	$0, 104(%rbx)
	testq	%r13, %r13
	je	.L7759
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_iv_length@PLT
	call	.LEVP_CIPHER_CTX_iv_length_local_target
	movl	%eax, %edx
	testq	%rdx, %rdx
	je	.L7759
	leaq	52(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	jmp	.L7759
	.p2align 4,,10
	.p2align 3
.L7799:

	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_ctrl@PLT
	call	.LEVP_CIPHER_CTX_ctrl_local_target
	testl	%eax, %eax
	jne	.L7757
	movq	$0, (%rbx)
	movl	$187, %r8d
	leaq	.LC192(%rip), %rcx
	xorl	%esi, %esi
	movl	$107, %edx
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7746
	.p2align 4,,10
	.p2align 3
.L7796:

	movl	$150, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L7746
	.p2align 4,,10
	.p2align 3
.L7760:

	movl	$0, 104(%rbx)
	jmp	.L7762
	.p2align 4,,10
	.p2align 3
.L7754:

	movq	$0, (%rbx)
	xorl	%eax, %eax
	jmp	.L7746
	.p2align 4,,10
	.p2align 3
.L7803:

	leaq	36(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L7765
	.cfi_endproc
.LFE1118:

	.size	EVP_CipherInit_ex, .-EVP_CipherInit_ex
# WAS .section	.text.EVP_EncryptInit_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_EncryptInit_ex
	.type	EVP_EncryptInit_ex, @function
.LEVP_EncryptInit_ex_local_target:
EVP_EncryptInit_ex:
.LFB1119:

	.cfi_startproc
	endbr64
	movl	$1, %r9d
# WAS jmp	EVP_CipherInit_ex@PLT
	jmp	.LEVP_CipherInit_ex_local_target
	.cfi_endproc
.LFE1119:

	.size	EVP_EncryptInit_ex, .-EVP_EncryptInit_ex
# WAS .section	.text.EVP_DecryptInit_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DecryptInit_ex
	.type	EVP_DecryptInit_ex, @function
.LEVP_DecryptInit_ex_local_target:
EVP_DecryptInit_ex:
.LFB1120:

	.cfi_startproc
	endbr64
	xorl	%r9d, %r9d
# WAS jmp	EVP_CipherInit_ex@PLT
	jmp	.LEVP_CipherInit_ex_local_target
	.cfi_endproc
.LFE1120:

	.size	EVP_DecryptInit_ex, .-EVP_DecryptInit_ex
# WAS .section	.text.EVP_CIPHER_name,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_name
	.type	EVP_CIPHER_name, @function
.LEVP_CIPHER_name_local_target:
EVP_CIPHER_name:
.LFB1148:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L7807
	movl	(%rdi), %edi
# WAS jmp	OBJ_nid2sn@PLT
	jmp	.Lbcm_redirector_OBJ_nid2sn
	.p2align 4,,10
	.p2align 3
.L7807:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1148:

	.size	EVP_CIPHER_name, .-EVP_CIPHER_name
# WAS .section	.text.EVP_CipherInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CipherInit
	.type	EVP_CipherInit, @function
.LEVP_CipherInit_local_target:
EVP_CipherInit:
.LFB1149:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movl	%r8d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	testq	%rsi, %rsi
	je	.L7809
# WAS call	EVP_CIPHER_CTX_init@PLT
	call	.LEVP_CIPHER_CTX_init_local_target
.L7809:

	movl	%r14d, %r9d
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 40
	xorl	%edx, %edx
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_CipherInit_ex@PLT
	jmp	.LEVP_CipherInit_ex_local_target
	.cfi_endproc
.LFE1149:

	.size	EVP_CipherInit, .-EVP_CipherInit
# WAS .section	.text.EVP_EncryptInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_EncryptInit
	.type	EVP_EncryptInit, @function
.LEVP_EncryptInit_local_target:
EVP_EncryptInit:
.LFB1150:

	.cfi_startproc
	endbr64
	movl	$1, %r8d
# WAS jmp	EVP_CipherInit@PLT
	jmp	.LEVP_CipherInit_local_target
	.cfi_endproc
.LFE1150:

	.size	EVP_EncryptInit, .-EVP_EncryptInit
# WAS .section	.text.EVP_DecryptInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DecryptInit
	.type	EVP_DecryptInit, @function
.LEVP_DecryptInit_local_target:
EVP_DecryptInit:
.LFB1151:

	.cfi_startproc
	endbr64
	xorl	%r8d, %r8d
# WAS jmp	EVP_CipherInit@PLT
	jmp	.LEVP_CipherInit_local_target
	.cfi_endproc
.LFE1151:

	.size	EVP_DecryptInit, .-EVP_DecryptInit
# WAS .section	.text.EVP_add_cipher_alias,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_add_cipher_alias
	.type	EVP_add_cipher_alias, @function
.LEVP_add_cipher_alias_local_target:
EVP_add_cipher_alias:
.LFB1155:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1155:

	.size	EVP_add_cipher_alias, .-EVP_add_cipher_alias
# WAS .section	.text.EVP_CIPHER_CTX_set_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CIPHER_CTX_set_flags
	.type	EVP_CIPHER_CTX_set_flags, @function
.LEVP_CIPHER_CTX_set_flags_local_target:
EVP_CIPHER_CTX_set_flags:
.LFB1156:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE1156:

	.size	EVP_CIPHER_CTX_set_flags, .-EVP_CIPHER_CTX_set_flags
# WAS .section	.text.EVP_aes_128_cbc,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_cbc
	.type	EVP_aes_128_cbc, @function
.LEVP_aes_128_cbc_local_target:
EVP_aes_128_cbc:
.LFB1174:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_cbc_once_bss_get@PLT
	call	EVP_aes_128_cbc_once_bss_get
# WAS leaq	EVP_aes_128_cbc_init(%rip), %rsi
	leaq	.LEVP_aes_128_cbc_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_128_cbc_storage_bss_get@PLT
	jmp	EVP_aes_128_cbc_storage_bss_get
	.cfi_endproc
.LFE1174:

	.size	EVP_aes_128_cbc, .-EVP_aes_128_cbc
# WAS .section	.text.EVP_aes_128_ctr,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_ctr
	.type	EVP_aes_128_ctr, @function
.LEVP_aes_128_ctr_local_target:
EVP_aes_128_ctr:
.LFB1177:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ctr_once_bss_get@PLT
	call	EVP_aes_128_ctr_once_bss_get
# WAS leaq	EVP_aes_128_ctr_init(%rip), %rsi
	leaq	.LEVP_aes_128_ctr_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_128_ctr_storage_bss_get@PLT
	jmp	EVP_aes_128_ctr_storage_bss_get
	.cfi_endproc
.LFE1177:

	.size	EVP_aes_128_ctr, .-EVP_aes_128_ctr
# WAS .section	.text.EVP_aes_128_ofb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_ofb
	.type	EVP_aes_128_ofb, @function
.LEVP_aes_128_ofb_local_target:
EVP_aes_128_ofb:
.LFB1183:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ofb_once_bss_get@PLT
	call	EVP_aes_128_ofb_once_bss_get
# WAS leaq	EVP_aes_128_ofb_init(%rip), %rsi
	leaq	.LEVP_aes_128_ofb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_128_ofb_storage_bss_get@PLT
	jmp	EVP_aes_128_ofb_storage_bss_get
	.cfi_endproc
.LFE1183:

	.size	EVP_aes_128_ofb, .-EVP_aes_128_ofb
# WAS .section	.text.EVP_aes_128_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_gcm
	.type	EVP_aes_128_gcm, @function
.LEVP_aes_128_gcm_local_target:
EVP_aes_128_gcm:
.LFB1186:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_gcm_once_bss_get@PLT
	call	EVP_aes_128_gcm_once_bss_get
# WAS leaq	EVP_aes_128_gcm_init(%rip), %rsi
	leaq	.LEVP_aes_128_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_128_gcm_storage_bss_get@PLT
	jmp	EVP_aes_128_gcm_storage_bss_get
	.cfi_endproc
.LFE1186:

	.size	EVP_aes_128_gcm, .-EVP_aes_128_gcm
# WAS .section	.text.EVP_aes_192_cbc,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_cbc
	.type	EVP_aes_192_cbc, @function
.LEVP_aes_192_cbc_local_target:
EVP_aes_192_cbc:
.LFB1189:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_cbc_once_bss_get@PLT
	call	EVP_aes_192_cbc_once_bss_get
# WAS leaq	EVP_aes_192_cbc_init(%rip), %rsi
	leaq	.LEVP_aes_192_cbc_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_192_cbc_storage_bss_get@PLT
	jmp	EVP_aes_192_cbc_storage_bss_get
	.cfi_endproc
.LFE1189:

	.size	EVP_aes_192_cbc, .-EVP_aes_192_cbc
# WAS .section	.text.EVP_aes_192_ctr,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_ctr
	.type	EVP_aes_192_ctr, @function
.LEVP_aes_192_ctr_local_target:
EVP_aes_192_ctr:
.LFB1192:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ctr_once_bss_get@PLT
	call	EVP_aes_192_ctr_once_bss_get
# WAS leaq	EVP_aes_192_ctr_init(%rip), %rsi
	leaq	.LEVP_aes_192_ctr_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_192_ctr_storage_bss_get@PLT
	jmp	EVP_aes_192_ctr_storage_bss_get
	.cfi_endproc
.LFE1192:

	.size	EVP_aes_192_ctr, .-EVP_aes_192_ctr
# WAS .section	.text.EVP_aes_192_ofb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_ofb
	.type	EVP_aes_192_ofb, @function
.LEVP_aes_192_ofb_local_target:
EVP_aes_192_ofb:
.LFB1198:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ofb_once_bss_get@PLT
	call	EVP_aes_192_ofb_once_bss_get
# WAS leaq	EVP_aes_192_ofb_init(%rip), %rsi
	leaq	.LEVP_aes_192_ofb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_192_ofb_storage_bss_get@PLT
	jmp	EVP_aes_192_ofb_storage_bss_get
	.cfi_endproc
.LFE1198:

	.size	EVP_aes_192_ofb, .-EVP_aes_192_ofb
# WAS .section	.text.EVP_aes_192_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_gcm
	.type	EVP_aes_192_gcm, @function
.LEVP_aes_192_gcm_local_target:
EVP_aes_192_gcm:
.LFB1201:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_gcm_once_bss_get@PLT
	call	EVP_aes_192_gcm_once_bss_get
# WAS leaq	EVP_aes_192_gcm_init(%rip), %rsi
	leaq	.LEVP_aes_192_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_192_gcm_storage_bss_get@PLT
	jmp	EVP_aes_192_gcm_storage_bss_get
	.cfi_endproc
.LFE1201:

	.size	EVP_aes_192_gcm, .-EVP_aes_192_gcm
# WAS .section	.text.EVP_aes_256_cbc,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_cbc
	.type	EVP_aes_256_cbc, @function
.LEVP_aes_256_cbc_local_target:
EVP_aes_256_cbc:
.LFB1204:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_cbc_once_bss_get@PLT
	call	EVP_aes_256_cbc_once_bss_get
# WAS leaq	EVP_aes_256_cbc_init(%rip), %rsi
	leaq	.LEVP_aes_256_cbc_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_cbc_storage_bss_get@PLT
	jmp	EVP_aes_256_cbc_storage_bss_get
	.cfi_endproc
.LFE1204:

	.size	EVP_aes_256_cbc, .-EVP_aes_256_cbc
# WAS .section	.text.EVP_aes_256_ctr,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_ctr
	.type	EVP_aes_256_ctr, @function
.LEVP_aes_256_ctr_local_target:
EVP_aes_256_ctr:
.LFB1207:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ctr_once_bss_get@PLT
	call	EVP_aes_256_ctr_once_bss_get
# WAS leaq	EVP_aes_256_ctr_init(%rip), %rsi
	leaq	.LEVP_aes_256_ctr_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_ctr_storage_bss_get@PLT
	jmp	EVP_aes_256_ctr_storage_bss_get
	.cfi_endproc
.LFE1207:

	.size	EVP_aes_256_ctr, .-EVP_aes_256_ctr
# WAS .section	.text.EVP_aes_256_ofb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_ofb
	.type	EVP_aes_256_ofb, @function
.LEVP_aes_256_ofb_local_target:
EVP_aes_256_ofb:
.LFB1213:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ofb_once_bss_get@PLT
	call	EVP_aes_256_ofb_once_bss_get
# WAS leaq	EVP_aes_256_ofb_init(%rip), %rsi
	leaq	.LEVP_aes_256_ofb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_ofb_storage_bss_get@PLT
	jmp	EVP_aes_256_ofb_storage_bss_get
	.cfi_endproc
.LFE1213:

	.size	EVP_aes_256_ofb, .-EVP_aes_256_ofb
# WAS .section	.text.EVP_aes_256_wrap,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_wrap
	.type	EVP_aes_256_wrap, @function
.LEVP_aes_256_wrap_local_target:
EVP_aes_256_wrap:
.LFB1216:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_wrap_once_bss_get@PLT
	call	EVP_aes_256_wrap_once_bss_get
# WAS leaq	EVP_aes_256_wrap_init(%rip), %rsi
	leaq	.LEVP_aes_256_wrap_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_wrap_storage_bss_get@PLT
	jmp	EVP_aes_256_wrap_storage_bss_get
	.cfi_endproc
.LFE1216:

	.size	EVP_aes_256_wrap, .-EVP_aes_256_wrap
# WAS .section	.text.EVP_aes_256_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_gcm
	.type	EVP_aes_256_gcm, @function
.LEVP_aes_256_gcm_local_target:
EVP_aes_256_gcm:
.LFB1219:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_gcm_once_bss_get@PLT
	call	EVP_aes_256_gcm_once_bss_get
# WAS leaq	EVP_aes_256_gcm_init(%rip), %rsi
	leaq	.LEVP_aes_256_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_gcm_storage_bss_get@PLT
	jmp	EVP_aes_256_gcm_storage_bss_get
	.cfi_endproc
.LFE1219:

	.size	EVP_aes_256_gcm, .-EVP_aes_256_gcm
# WAS .section	.text.EVP_aes_256_xts,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_xts
	.type	EVP_aes_256_xts, @function
.LEVP_aes_256_xts_local_target:
EVP_aes_256_xts:
.LFB1222:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_xts_once_bss_get@PLT
	call	EVP_aes_256_xts_once_bss_get
# WAS leaq	EVP_aes_256_xts_init(%rip), %rsi
	leaq	.LEVP_aes_256_xts_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_xts_storage_bss_get@PLT
	jmp	EVP_aes_256_xts_storage_bss_get
	.cfi_endproc
.LFE1222:

	.size	EVP_aes_256_xts, .-EVP_aes_256_xts
# WAS .section	.text.EVP_aes_128_ecb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_ecb
	.type	EVP_aes_128_ecb, @function
.LEVP_aes_128_ecb_local_target:
EVP_aes_128_ecb:
.LFB1234:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$2, 7(%rax)
	jne	.L7849
# WAS call	aes_128_ecb_generic_once_bss_get@PLT
	call	aes_128_ecb_generic_once_bss_get
# WAS leaq	aes_128_ecb_generic_init(%rip), %rsi
	leaq	.Laes_128_ecb_generic_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	aes_128_ecb_generic_storage_bss_get@PLT
	jmp	aes_128_ecb_generic_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L7849:

	.cfi_restore_state
# WAS call	aes_hw_128_ecb_once_bss_get@PLT
	call	aes_hw_128_ecb_once_bss_get
# WAS leaq	aes_hw_128_ecb_init(%rip), %rsi
	leaq	.Laes_hw_128_ecb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_128_ecb_storage_bss_get@PLT
	jmp	aes_hw_128_ecb_storage_bss_get
	.cfi_endproc
.LFE1234:

	.size	EVP_aes_128_ecb, .-EVP_aes_128_ecb
# WAS .section	.text.EVP_aes_192_ecb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_ecb
	.type	EVP_aes_192_ecb, @function
.LEVP_aes_192_ecb_local_target:
EVP_aes_192_ecb:
.LFB1235:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$2, 7(%rax)
	jne	.L7853
# WAS call	aes_192_ecb_generic_once_bss_get@PLT
	call	aes_192_ecb_generic_once_bss_get
# WAS leaq	aes_192_ecb_generic_init(%rip), %rsi
	leaq	.Laes_192_ecb_generic_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	aes_192_ecb_generic_storage_bss_get@PLT
	jmp	aes_192_ecb_generic_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L7853:

	.cfi_restore_state
# WAS call	aes_hw_192_ecb_once_bss_get@PLT
	call	aes_hw_192_ecb_once_bss_get
# WAS leaq	aes_hw_192_ecb_init(%rip), %rsi
	leaq	.Laes_hw_192_ecb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_192_ecb_storage_bss_get@PLT
	jmp	aes_hw_192_ecb_storage_bss_get
	.cfi_endproc
.LFE1235:

	.size	EVP_aes_192_ecb, .-EVP_aes_192_ecb
# WAS .section	.text.EVP_aes_256_ecb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_ecb
	.type	EVP_aes_256_ecb, @function
.LEVP_aes_256_ecb_local_target:
EVP_aes_256_ecb:
.LFB1236:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$2, 7(%rax)
	jne	.L7857
# WAS call	aes_256_ecb_generic_once_bss_get@PLT
	call	aes_256_ecb_generic_once_bss_get
# WAS leaq	aes_256_ecb_generic_init(%rip), %rsi
	leaq	.Laes_256_ecb_generic_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	aes_256_ecb_generic_storage_bss_get@PLT
	jmp	aes_256_ecb_generic_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L7857:

	.cfi_restore_state
# WAS call	aes_hw_256_ecb_once_bss_get@PLT
	call	aes_hw_256_ecb_once_bss_get
# WAS leaq	aes_hw_256_ecb_init(%rip), %rsi
	leaq	.Laes_hw_256_ecb_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	aes_hw_256_ecb_storage_bss_get@PLT
	jmp	aes_hw_256_ecb_storage_bss_get
	.cfi_endproc
.LFE1236:

	.size	EVP_aes_256_ecb, .-EVP_aes_256_ecb
# WAS .section	.text.EVP_aead_aes_128_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_gcm
	.type	EVP_aead_aes_128_gcm, @function
.LEVP_aead_aes_128_gcm_local_target:
EVP_aead_aes_128_gcm:
.LFB1245:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_once_bss_get@PLT
	call	EVP_aead_aes_128_gcm_once_bss_get
# WAS leaq	EVP_aead_aes_128_gcm_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_gcm_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_gcm_storage_bss_get
	.cfi_endproc
.LFE1245:

	.size	EVP_aead_aes_128_gcm, .-EVP_aead_aes_128_gcm
# WAS .section	.text.EVP_aead_aes_192_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_192_gcm
	.type	EVP_aead_aes_192_gcm, @function
.LEVP_aead_aes_192_gcm_local_target:
EVP_aead_aes_192_gcm:
.LFB1248:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_192_gcm_once_bss_get@PLT
	call	EVP_aead_aes_192_gcm_once_bss_get
# WAS leaq	EVP_aead_aes_192_gcm_init(%rip), %rsi
	leaq	.LEVP_aead_aes_192_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_192_gcm_storage_bss_get@PLT
	jmp	EVP_aead_aes_192_gcm_storage_bss_get
	.cfi_endproc
.LFE1248:

	.size	EVP_aead_aes_192_gcm, .-EVP_aead_aes_192_gcm
# WAS .section	.text.EVP_aead_aes_256_gcm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_256_gcm
	.type	EVP_aead_aes_256_gcm, @function
.LEVP_aead_aes_256_gcm_local_target:
EVP_aead_aes_256_gcm:
.LFB1251:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_once_bss_get@PLT
	call	EVP_aead_aes_256_gcm_once_bss_get
# WAS leaq	EVP_aead_aes_256_gcm_init(%rip), %rsi
	leaq	.LEVP_aead_aes_256_gcm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_256_gcm_storage_bss_get@PLT
	jmp	EVP_aead_aes_256_gcm_storage_bss_get
	.cfi_endproc
.LFE1251:

	.size	EVP_aead_aes_256_gcm, .-EVP_aead_aes_256_gcm
# WAS .section	.text.EVP_aead_aes_128_gcm_randnonce,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_gcm_randnonce
	.type	EVP_aead_aes_128_gcm_randnonce, @function
.LEVP_aead_aes_128_gcm_randnonce_local_target:
EVP_aead_aes_128_gcm_randnonce:
.LFB1257:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_randnonce_once_bss_get@PLT
	call	EVP_aead_aes_128_gcm_randnonce_once_bss_get
# WAS leaq	EVP_aead_aes_128_gcm_randnonce_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_gcm_randnonce_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_gcm_randnonce_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_gcm_randnonce_storage_bss_get
	.cfi_endproc
.LFE1257:

	.size	EVP_aead_aes_128_gcm_randnonce, .-EVP_aead_aes_128_gcm_randnonce
# WAS .section	.text.EVP_aead_aes_256_gcm_randnonce,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_256_gcm_randnonce
	.type	EVP_aead_aes_256_gcm_randnonce, @function
.LEVP_aead_aes_256_gcm_randnonce_local_target:
EVP_aead_aes_256_gcm_randnonce:
.LFB1260:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_randnonce_once_bss_get@PLT
	call	EVP_aead_aes_256_gcm_randnonce_once_bss_get
# WAS leaq	EVP_aead_aes_256_gcm_randnonce_init(%rip), %rsi
	leaq	.LEVP_aead_aes_256_gcm_randnonce_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_256_gcm_randnonce_storage_bss_get@PLT
	jmp	EVP_aead_aes_256_gcm_randnonce_storage_bss_get
	.cfi_endproc
.LFE1260:

	.size	EVP_aead_aes_256_gcm_randnonce, .-EVP_aead_aes_256_gcm_randnonce
# WAS .section	.text.EVP_aead_aes_128_gcm_tls12,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_gcm_tls12
	.type	EVP_aead_aes_128_gcm_tls12, @function
.LEVP_aead_aes_128_gcm_tls12_local_target:
EVP_aead_aes_128_gcm_tls12:
.LFB1265:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_tls12_once_bss_get@PLT
	call	EVP_aead_aes_128_gcm_tls12_once_bss_get
# WAS leaq	EVP_aead_aes_128_gcm_tls12_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_gcm_tls12_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_gcm_tls12_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_gcm_tls12_storage_bss_get
	.cfi_endproc
.LFE1265:

	.size	EVP_aead_aes_128_gcm_tls12, .-EVP_aead_aes_128_gcm_tls12
# WAS .section	.text.EVP_aead_aes_256_gcm_tls12,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_256_gcm_tls12
	.type	EVP_aead_aes_256_gcm_tls12, @function
.LEVP_aead_aes_256_gcm_tls12_local_target:
EVP_aead_aes_256_gcm_tls12:
.LFB1268:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_tls12_once_bss_get@PLT
	call	EVP_aead_aes_256_gcm_tls12_once_bss_get
# WAS leaq	EVP_aead_aes_256_gcm_tls12_init(%rip), %rsi
	leaq	.LEVP_aead_aes_256_gcm_tls12_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_256_gcm_tls12_storage_bss_get@PLT
	jmp	EVP_aead_aes_256_gcm_tls12_storage_bss_get
	.cfi_endproc
.LFE1268:

	.size	EVP_aead_aes_256_gcm_tls12, .-EVP_aead_aes_256_gcm_tls12
# WAS .section	.text.EVP_aead_aes_128_gcm_tls13,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_gcm_tls13
	.type	EVP_aead_aes_128_gcm_tls13, @function
.LEVP_aead_aes_128_gcm_tls13_local_target:
EVP_aead_aes_128_gcm_tls13:
.LFB1275:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_gcm_tls13_once_bss_get@PLT
	call	EVP_aead_aes_128_gcm_tls13_once_bss_get
# WAS leaq	EVP_aead_aes_128_gcm_tls13_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_gcm_tls13_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_gcm_tls13_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_gcm_tls13_storage_bss_get
	.cfi_endproc
.LFE1275:

	.size	EVP_aead_aes_128_gcm_tls13, .-EVP_aead_aes_128_gcm_tls13
# WAS .section	.text.EVP_aead_aes_256_gcm_tls13,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_256_gcm_tls13
	.type	EVP_aead_aes_256_gcm_tls13, @function
.LEVP_aead_aes_256_gcm_tls13_local_target:
EVP_aead_aes_256_gcm_tls13:
.LFB1278:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_256_gcm_tls13_once_bss_get@PLT
	call	EVP_aead_aes_256_gcm_tls13_once_bss_get
# WAS leaq	EVP_aead_aes_256_gcm_tls13_init(%rip), %rsi
	leaq	.LEVP_aead_aes_256_gcm_tls13_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_256_gcm_tls13_storage_bss_get@PLT
	jmp	EVP_aead_aes_256_gcm_tls13_storage_bss_get
	.cfi_endproc
.LFE1278:

	.size	EVP_aead_aes_256_gcm_tls13, .-EVP_aead_aes_256_gcm_tls13
# WAS .section	.text.EVP_has_aes_hardware,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_has_aes_hardware
	.type	EVP_has_aes_hardware, @function
.LEVP_has_aes_hardware_local_target:
EVP_has_aes_hardware:
.LFB1280:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	xorl	%ecx, %ecx
	movl	4(%rax), %edx
	testl	$33554432, %edx
	je	.L7876
	movl	(%rax), %eax
	shrl	%edx
	andl	$1, %edx
	testl	$16777216, %eax
	cmovne	%edx, %ecx
.L7876:

	movl	%ecx, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1280:

	.size	EVP_has_aes_hardware, .-EVP_has_aes_hardware
# WAS .section	.text.EVP_aead_aes_128_ccm_bluetooth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_ccm_bluetooth
	.type	EVP_aead_aes_128_ccm_bluetooth, @function
.LEVP_aead_aes_128_ccm_bluetooth_local_target:
EVP_aead_aes_128_ccm_bluetooth:
.LFB1294:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_bluetooth_once_bss_get@PLT
	call	EVP_aead_aes_128_ccm_bluetooth_once_bss_get
# WAS leaq	EVP_aead_aes_128_ccm_bluetooth_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_ccm_bluetooth_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_ccm_bluetooth_storage_bss_get
	.cfi_endproc
.LFE1294:

	.size	EVP_aead_aes_128_ccm_bluetooth, .-EVP_aead_aes_128_ccm_bluetooth
# WAS .section	.text.EVP_aead_aes_128_ccm_bluetooth_8,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_ccm_bluetooth_8
	.type	EVP_aead_aes_128_ccm_bluetooth_8, @function
.LEVP_aead_aes_128_ccm_bluetooth_8_local_target:
EVP_aead_aes_128_ccm_bluetooth_8:
.LFB1298:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_bluetooth_8_once_bss_get@PLT
	call	EVP_aead_aes_128_ccm_bluetooth_8_once_bss_get
# WAS leaq	EVP_aead_aes_128_ccm_bluetooth_8_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_8_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get
	.cfi_endproc
.LFE1298:

	.size	EVP_aead_aes_128_ccm_bluetooth_8, .-EVP_aead_aes_128_ccm_bluetooth_8
# WAS .section	.text.EVP_aead_aes_128_ccm_matter,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aead_aes_128_ccm_matter
	.type	EVP_aead_aes_128_ccm_matter, @function
.LEVP_aead_aes_128_ccm_matter_local_target:
EVP_aead_aes_128_ccm_matter:
.LFB1302:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aead_aes_128_ccm_matter_once_bss_get@PLT
	call	EVP_aead_aes_128_ccm_matter_once_bss_get
# WAS leaq	EVP_aead_aes_128_ccm_matter_init(%rip), %rsi
	leaq	.LEVP_aead_aes_128_ccm_matter_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aead_aes_128_ccm_matter_storage_bss_get@PLT
	jmp	EVP_aead_aes_128_ccm_matter_storage_bss_get
	.cfi_endproc
.LFE1302:

	.size	EVP_aead_aes_128_ccm_matter, .-EVP_aead_aes_128_ccm_matter
# WAS .section	.text.EVP_aes_128_ccm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_128_ccm
	.type	EVP_aes_128_ccm, @function
.LEVP_aes_128_ccm_local_target:
EVP_aes_128_ccm:
.LFB1310:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_128_ccm_once_bss_get@PLT
	call	EVP_aes_128_ccm_once_bss_get
# WAS leaq	EVP_aes_128_ccm_init(%rip), %rsi
	leaq	.LEVP_aes_128_ccm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_128_ccm_storage_bss_get@PLT
	jmp	EVP_aes_128_ccm_storage_bss_get
	.cfi_endproc
.LFE1310:

	.size	EVP_aes_128_ccm, .-EVP_aes_128_ccm
# WAS .section	.text.EVP_aes_192_ccm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_192_ccm
	.type	EVP_aes_192_ccm, @function
.LEVP_aes_192_ccm_local_target:
EVP_aes_192_ccm:
.LFB1313:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_192_ccm_once_bss_get@PLT
	call	EVP_aes_192_ccm_once_bss_get
# WAS leaq	EVP_aes_192_ccm_init(%rip), %rsi
	leaq	.LEVP_aes_192_ccm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_192_ccm_storage_bss_get@PLT
	jmp	EVP_aes_192_ccm_storage_bss_get
	.cfi_endproc
.LFE1313:

	.size	EVP_aes_192_ccm, .-EVP_aes_192_ccm
# WAS .section	.text.EVP_aes_256_ccm,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_aes_256_ccm
	.type	EVP_aes_256_ccm, @function
.LEVP_aes_256_ccm_local_target:
EVP_aes_256_ccm:
.LFB1316:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_aes_256_ccm_once_bss_get@PLT
	call	EVP_aes_256_ccm_once_bss_get
# WAS leaq	EVP_aes_256_ccm_init(%rip), %rsi
	leaq	.LEVP_aes_256_ccm_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_aes_256_ccm_storage_bss_get@PLT
	jmp	EVP_aes_256_ccm_storage_bss_get
	.cfi_endproc
.LFE1316:

	.size	EVP_aes_256_ccm, .-EVP_aes_256_ccm
# WAS .section	.rodata.OPENSSL_cpuid_setup.str1.1,"aMS",@progbits,1
.text
.LC193:

	.string	"OPENSSL_ia32cap"
# WAS .section	.text.OPENSSL_cpuid_setup,"ax",@progbits
.text
	.p2align 4
	.globl	OPENSSL_cpuid_setup
	.hidden	OPENSSL_cpuid_setup
	.type	OPENSSL_cpuid_setup, @function
.LOPENSSL_cpuid_setup_local_target:
OPENSSL_cpuid_setup:
.LFB1321:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%eax, %eax
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	cmpl	$1970169159, %ebx
	je	.L7941
	cmpl	$1769238117, %edx
	sete	%sil
	cmpl	$1752462657, %ebx
	sete	%dl
	testb	%dl, %sil
	je	.L7915
	cmpl	$1145913699, %ecx
	je	.L7942
.L7915:

	xorl	%r8d, %r8d
.L7896:

	cmpl	$6, %eax
	ja	.L7899
	movl	$1, %eax
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	pxor	%xmm2, %xmm2
	movl	%ecx, %edi
	xorl	%esi, %esi
.L7900:

	movl	%edx, %ecx
	andl	$-1048577, %ecx
	testl	%r8d, %r8d
	je	.L7903
	orl	$1342177280, %ecx
	andl	$268374000, %eax
	movd	%ecx, %xmm1
	cmpl	$329328, %eax
	je	.L7916
	cmpl	$525904, %eax
	je	.L7916
.L7904:

	testl	$134217728, %edi
	jne	.L7906
	andl	$-268441601, %edi
	andl	$1071579103, %esi
.L7910:

	movl	%esi, %eax
	movd	%edi, %xmm3
# WAS movq	OPENSSL_ia32cap_P@GOTPCREL(%rip), %rbp
	jmp	LOPENSSL_ia32cap_P_rbp0
LOPENSSL_ia32cap_P_rbp0_return:
	andl	$-524289, %eax
	testl	$67108864, %edi
	punpckldq	%xmm3, %xmm1
	cmove	%eax, %esi
# WAS movq	OPENSSL_cpucap_initialized@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq OPENSSL_cpucap_initialized_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	leaq	.LC193(%rip), %rdi
	movd	%esi, %xmm0
	movb	$1, (%rax)
	punpckldq	%xmm2, %xmm0
	punpcklqdq	%xmm0, %xmm1
	movups	%xmm1, 0(%rbp)
# WAS call	getenv@PLT
	call	.Lbcm_redirector_getenv
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L7894
	movq	%rax, %rsi
	movq	%rbp, %rdi
# WAS call	handle_cpu_env
	call	.Lhandle_cpu_env_local_target
	movl	$58, %esi
	movq	%rbx, %rdi
# WAS call	strchr@PLT
	call	.Lbcm_redirector_strchr
	testq	%rax, %rax
	je	.L7894
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	leaq	8(%rbp), %rdi
	leaq	1(%rax), %rsi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	handle_cpu_env
	jmp	.Lhandle_cpu_env_local_target
	.p2align 4,,10
	.p2align 3
.L7899:

	.cfi_restore_state
	movl	$7, %eax
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	movl	$1, %eax
	movl	%ebx, %esi
	movd	%ecx, %xmm2
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	movl	%ecx, %edi
	jmp	.L7900
	.p2align 4,,10
	.p2align 3
.L7894:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7906:

	.cfi_restore_state
	xorl	%ecx, %ecx
#APP
# 123 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xgetbv
# 0 "" 2
#NO_APP
	movl	%eax, %eax
	salq	$32, %rdx
	orq	%rax, %rdx
	notq	%rax
	testb	$6, %al
	jne	.L7908
	andl	$-2049, %edi
.L7909:

	movl	%esi, %eax
	notq	%rdx
	andl	$-65537, %eax
	andl	$230, %edx
	cmovne	%eax, %esi
	jmp	.L7910
	.p2align 4,,10
	.p2align 3
.L7942:

	cmpl	$6, %eax
	ja	.L7897
	movl	$1, %eax
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	pxor	%xmm2, %xmm2
	movl	%ecx, %edi
	xorl	%esi, %esi
.L7898:

	movl	%eax, %ecx
	notl	%ecx
	andb	$15, %ch
	je	.L7943
.L7901:

	andl	$-1073741825, %edi
.L7903:

	andl	$-1074790401, %edx
	orl	$268435456, %edx
	movd	%edx, %xmm1
	jmp	.L7904
	.p2align 4,,10
	.p2align 3
.L7941:

	cmpl	$1818588270, %ecx
	sete	%cl
	xorl	%r8d, %r8d
	cmpl	$1231384169, %edx
	sete	%r8b
	andl	%ecx, %r8d
	jmp	.L7896
	.p2align 4,,10
	.p2align 3
.L7916:

	andl	$-67108865, %edi
	jmp	.L7904
	.p2align 4,,10
	.p2align 3
.L7908:

	andl	$-268441601, %edi
	andl	$1071579103, %esi
	jmp	.L7909
	.p2align 4,,10
	.p2align 3
.L7943:

	movl	%eax, %ecx
	shrl	$20, %ecx
	movzbl	%cl, %ecx
	addl	$15, %ecx
	cmpl	$22, %ecx
	jbe	.L7901
	movl	%eax, %r8d
	shrl	$4, %eax
	shrl	$12, %r8d
	andl	$15, %eax
	andl	$240, %r8d
	orl	%r8d, %eax
	subl	$112, %eax
	cmpl	$15, %eax
	ja	.L7903
	cmpl	$23, %ecx
	jne	.L7903
	jmp	.L7901
	.p2align 4,,10
	.p2align 3
.L7897:

	movl	$7, %eax
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	movl	$1, %eax
	movl	%ebx, %esi
	movd	%ecx, %xmm2
#APP
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/cpucap/cpu_intel.c" 1
	xor %ecx, %ecx
cpuid

# 0 "" 2
#NO_APP
	movl	%ecx, %edi
	jmp	.L7898
	.cfi_endproc
.LFE1321:

	.size	OPENSSL_cpuid_setup, .-OPENSSL_cpuid_setup
# WAS .section	.text.CMAC_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_CTX_new
	.type	CMAC_CTX_new, @function
.LCMAC_CTX_new_local_target:
CMAC_CTX_new:
.LFB1325:

	.cfi_startproc
	endbr64
	movl	$208, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE1325:

	.size	CMAC_CTX_new, .-CMAC_CTX_new
# WAS .section	.text.CMAC_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_CTX_free
	.type	CMAC_CTX_free, @function
.LCMAC_CTX_free_local_target:
CMAC_CTX_free:
.LFB1326:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L7945
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	leaq	152(%rbx), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	168(%rbx), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	184(%rbx), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L7945:

	ret
	.cfi_endproc
.LFE1326:

	.size	CMAC_CTX_free, .-CMAC_CTX_free
# WAS .section	.text.CMAC_CTX_copy,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_CTX_copy
	.type	CMAC_CTX_copy, @function
.LCMAC_CTX_copy_local_target:
CMAC_CTX_copy:
.LFB1327:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_CIPHER_CTX_copy@PLT
	call	.LEVP_CIPHER_CTX_copy_local_target
	testl	%eax, %eax
	je	.L7950
	movdqu	152(%rbp), %xmm0
	movups	%xmm0, 152(%rbx)
	movdqu	168(%rbp), %xmm1
	movups	%xmm1, 168(%rbx)
	movdqu	184(%rbp), %xmm2
	movups	%xmm2, 184(%rbx)
	movl	200(%rbp), %eax
	movl	%eax, 200(%rbx)
	movl	$1, %eax
.L7950:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1327:

	.size	CMAC_CTX_copy, .-CMAC_CTX_copy
# WAS .section	.text.CMAC_Reset,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_Reset
	.type	CMAC_Reset, @function
.LCMAC_Reset_local_target:
CMAC_Reset:
.LFB1331:

	.cfi_startproc
	endbr64
	movl	$0, 200(%rdi)
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
# WAS leaq	kZeroIV(%rip), %r8
	leaq	.LkZeroIV_local_target(%rip), %r8
# WAS jmp	EVP_EncryptInit_ex@PLT
	jmp	.LEVP_EncryptInit_ex_local_target
	.cfi_endproc
.LFE1331:

	.size	CMAC_Reset, .-CMAC_Reset
# WAS .section	.text.CMAC_CTX_get0_cipher_ctx,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_CTX_get0_cipher_ctx
	.type	CMAC_CTX_get0_cipher_ctx, @function
.LCMAC_CTX_get0_cipher_ctx_local_target:
CMAC_CTX_get0_cipher_ctx:
.LFB1334:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	ret
	.cfi_endproc
.LFE1334:

	.size	CMAC_CTX_get0_cipher_ctx, .-CMAC_CTX_get0_cipher_ctx
# WAS .section	.text.ED25519_check_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_check_public_key
	.type	ED25519_check_public_key, @function
.LED25519_check_public_key_local_target:
ED25519_check_public_key:
.LFB1343:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	pxor	%xmm0, %xmm0
	movq	%rdi, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, (%rsp)
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 48(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rdi
	movq	%rbx, %rsi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L7963
# WAS call	edwards25519_decode_alt@PLT
	call	.Ledwards25519_decode_alt_local_target
.L7960:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L7964
	addq	$80, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7963:

	.cfi_restore_state
# WAS call	edwards25519_decode@PLT
	call	.Ledwards25519_decode_local_target
	jmp	.L7960
.L7964:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1343:

	.size	ED25519_check_public_key, .-ED25519_check_public_key
# WAS .section	.text.X25519_public_from_private,"ax",@progbits
.text
	.p2align 4
	.globl	X25519_public_from_private
	.type	X25519_public_from_private, @function
.LX25519_public_from_private_local_target:
X25519_public_from_private:
.LFB1344:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$48, %rsp
	.cfi_def_cfa_offset 64
	movdqu	16(%rsi), %xmm1
	movdqu	(%rsi), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movaps	%xmm1, 16(%rsp)
	movzbl	31(%rsp), %eax
	movaps	%xmm0, (%rsp)
	andl	$127, %eax
	andb	$-8, (%rsp)
	orl	$64, %eax
	movb	%al, 31(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L7970
# WAS call	curve25519_x25519base_byte_alt@PLT
	call	.Lcurve25519_x25519base_byte_alt_local_target
.L7965:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L7971
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7970:

	.cfi_restore_state
# WAS call	curve25519_x25519base_byte@PLT
	call	.Lcurve25519_x25519base_byte_local_target
	jmp	.L7965
.L7971:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1344:

	.size	X25519_public_from_private, .-X25519_public_from_private
# WAS .section	.text.X25519,"ax",@progbits
.text
	.p2align 4
	.globl	X25519
	.type	X25519, @function
.LX25519_local_target:
X25519:
.LFB1346:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movdqu	16(%rsi), %xmm1
	movdqu	(%rsi), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movaps	%xmm1, 16(%rsp)
	movzbl	31(%rsp), %eax
	movaps	%xmm0, (%rsp)
	andl	$127, %eax
	andb	$-8, (%rsp)
	orl	$64, %eax
	movb	%al, 31(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rsi
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L7977
# WAS call	curve25519_x25519_byte_alt@PLT
	call	.Lcurve25519_x25519_byte_alt_local_target
.L7974:

	movl	$32, %edx
	movq	%rbx, %rsi
# WAS leaq	kZeros.83(%rip), %rdi
	leaq	.LkZeros.83_local_target(%rip), %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L7978
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7977:

	.cfi_restore_state
# WAS call	curve25519_x25519_byte@PLT
	call	.Lcurve25519_x25519_byte_local_target
	jmp	.L7974
.L7978:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1346:

	.size	X25519, .-X25519
# WAS .section	.text.x25519_ge_tobytes,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_tobytes
	.hidden	x25519_ge_tobytes
	.type	x25519_ge_tobytes, @function
.Lx25519_ge_tobytes_local_target:
x25519_ge_tobytes:
.LFB1396:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$248, %rsp
	.cfi_def_cfa_offset 304
	movdqu	80(%r14), %xmm0
	movdqu	96(%r14), %xmm1
	movq	%rdi, 128(%rsp)
	leaq	192(%rsp), %rsi
	leaq	144(%rsp), %rdi
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	112(%r14), %rax
	movaps	%xmm0, 192(%rsp)
	movaps	%xmm1, 208(%rsp)
	movq	%rax, 224(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	movq	176(%rsp), %rax
	movq	32(%r14), %rsi
	movq	176(%rsp), %rcx
	movq	152(%rsp), %rbx
	leaq	(%rax,%rax,8), %rax
	movq	16(%r14), %rdi
	movq	8(%r14), %r12
	leaq	(%rcx,%rax,2), %r13
	movq	168(%rsp), %rax
	movq	168(%rsp), %rcx
	movq	144(%rsp), %rbp
	movq	(%r14), %r15
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %r8
	movq	160(%rsp), %rax
	movq	160(%rsp), %rcx
	movq	%r8, (%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %r9
	leaq	(%rbx,%rbx,8), %rax
	movq	24(%r14), %rcx
	leaq	(%rbx,%rax,2), %rax
	movq	%r9, 16(%rsp)
	movq	%rax, 136(%rsp)
	mulq	%rsi
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r15
	movq	%r10, %r8
	movq	%r11, %r9
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, 32(%rsp)
	mulq	%rsi
	movq	%rax, %r10
	movq	(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, %r9
	movq	%r8, 48(%rsp)
	mulq	%rsi
	movq	%r9, 56(%rsp)
	movq	%rax, %r10
	movq	%r13, %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	160(%rsp)
	addq	%r10, %rax
	movq	%r9, %r10
	movq	%r8, %r9
	adcq	%r11, %rdx
	shrdq	$51, %r10, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%rsi, %rax
	movq	%rdx, %r9
	mulq	%r13
	movq	%r8, 64(%rsp)
	movq	%r9, 72(%rsp)
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	160(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	168(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r10
	xorl	%r9d, %r9d
	addq	%r10, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 80(%rsp)
	movq	%r11, 88(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	movabsq	$2251799813685247, %rcx
	mulq	%rbx
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	160(%rsp)
	movq	%r8, %rsi
	movq	%r9, %rdi
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	168(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	176(%rsp)
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 96(%rsp)
	movq	32(%rsp), %r11
	shrdq	$51, %rdx, %rax
	movq	%rdx, 104(%rsp)
	movq	72(%r14), %r12
	leaq	(%rax,%rax,8), %rdx
	andq	%rcx, %r11
	movq	64(%r14), %r10
	movq	56(%r14), %r9
	leaq	(%rax,%rdx,2), %rdx
	movq	136(%rsp), %rax
	movq	48(%r14), %r8
	addq	%r11, %rdx
	movq	48(%rsp), %r11
	movq	%rdx, 48(%rsp)
	shrq	$51, %rdx
	andq	%rcx, %r11
	addq	%rdx, %r11
	mulq	%r12
	movq	%r11, 120(%rsp)
	movq	40(%r14), %r11
	movq	%rax, %rsi
	movq	16(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %r14
	mulq	%r9
	movq	%rdi, %r15
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%r13
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	%rbp
	addq	%rax, %r14
	movq	16(%rsp), %rax
	adcq	%rdx, %r15
	movq	%r14, 32(%rsp)
	mulq	%r12
	movq	%r15, 40(%rsp)
	movq	%rax, %rsi
	movq	(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	%r13
	movq	%rsi, %r14
	movq	32(%rsp), %rsi
	movq	%rdi, %r15
	movq	40(%rsp), %rdi
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%rbp
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	%rbx
	addq	%r14, %rax
	adcq	%r15, %rdx
	movq	%rax, %r14
	shrdq	$51, %rdi, %rsi
	movq	(%rsp), %rax
	xorl	%edi, %edi
	movq	%rdx, %r15
	addq	%rsi, %r14
	adcq	%rdi, %r15
	mulq	%r12
	movq	%r14, 16(%rsp)
	movq	%r15, 24(%rsp)
	movq	%rax, %rsi
	movq	%r10, %rax
	movq	%rdx, %rdi
	mulq	%r13
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	movq	%rsi, %r14
	movq	%rdi, %r15
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	160(%rsp)
	addq	%r14, %rax
	movq	16(%rsp), %r14
	adcq	%r15, %rdx
	movq	24(%rsp), %r15
	xorl	%edi, %edi
	shrdq	$51, %r15, %r14
	movq	%rdx, %r15
	movq	%r14, %rsi
	movq	%rax, %r14
	movq	%r13, %rax
	addq	%rsi, %r14
	adcq	%rdi, %r15
	mulq	%r12
	movq	%rax, %rsi
	movq	%r10, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	160(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	168(%rsp)
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, (%rsp)
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%rbx
	movq	%rsi, %rbx
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	160(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	168(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r11, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	176(%rsp)
	addq	%rax, %r8
	adcq	%rdx, %r9
	shrdq	$51, %rdi, %rbx
	xorl	%edx, %edx
	movabsq	$-2251799813685229, %rdi
	movq	%rbx, %rax
	addq	%r8, %rax
	movabsq	$2251799813685229, %r8
	adcq	%r9, %rdx
	movq	%rax, %rbx
	andq	%rcx, %r14
	shrdq	$51, %rdx, %rbx
	movq	%r14, %r11
	leaq	(%rbx,%rbx,8), %rdx
	leaq	(%rbx,%rdx,2), %rbp
	movq	32(%rsp), %rbx
	andq	%rcx, %rbx
	addq	%rbx, %rbp
	movq	16(%rsp), %rbx
	movq	(%rsp), %rsi
	andq	%rcx, %rbx
	andq	%rcx, %rsi
	movq	%rbx, %rdx
	movq	%rbp, %rbx
	andq	%rcx, %rbp
	addq	%rdi, %rbp
	shrq	$51, %rbx
	movq	%rbp, %r9
	addq	%rbx, %rdx
	sarq	$51, %r9
	movq	%rdx, %rbx
	shrq	$51, %rdx
	movq	%r9, %rdi
	andq	%rcx, %rbx
	addq	%rdx, %r11
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rbx
	subq	%rcx, %rbx
	movq	%rbx, %r14
	sarq	$51, %r14
	movq	%r14, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r11
	subq	%rcx, %r11
	movq	%r11, %r14
	sarq	$51, %r14
	movq	%r14, %rdx
	movq	%rax, %r14
	negl	%edx
	andq	%rcx, %r14
	movzbl	%dl, %edx
	subq	%rdx, %rsi
	movq	%r14, %rdx
	subq	%rcx, %rsi
	movq	%rsi, %r14
	sarq	$51, %r14
	movq	%r14, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %rdx
	subq	%rcx, %rdx
	movq	%rdx, %r14
	sarq	$51, %r14
	movq	%r14, %r10
	movq	%r10, %r9
	andq	%rcx, %rbp
	andq	%rcx, %r10
	andq	%rcx, %rbx
	andq	%r8, %r9
	leaq	(%rbx,%r10), %rax
	andq	%rcx, %r11
	andq	%rcx, %rsi
	addq	%r9, %rbp
	addq	%r10, %r11
	andq	%rcx, %rdx
	movq	%rbp, %r14
	shrq	$51, %rbp
	addq	%r10, %rdx
	addq	%rbp, %rax
	andq	%rcx, %r14
	movq	%rax, %r9
	salq	$3, %rax
	movq	%r14, %rdi
	shrq	$51, %r9
	movq	%rdi, %r13
	movq	%rdi, %r12
	movq	%rdi, %rbp
	addq	%r9, %r11
	leaq	(%rsi,%r10), %r9
	movabsq	$18014398509481976, %rsi
	movq	%r11, %rbx
	andq	%rsi, %rax
	salq	$6, %r11
	shrq	$51, %rbx
	movq	%rax, %rsi
	movq	%rax, %r10
	addq	%rbx, %r9
	movq	%r14, %rbx
	shrq	$48, %rsi
	shrq	$48, %rbx
	movq	%r9, %r14
	shrq	$51, %r9
	leaq	(%rax,%rbx), %r15
	andq	%rcx, %r14
	addq	%r9, %rdx
	movabsq	$144115188075855808, %rbx
	andq	%r11, %rbx
	salq	$4, %rdx
	movq	%rax, %r11
	movzbl	%r15b, %r15d
	movabsq	$36028797018963952, %r9
	addq	%rsi, %rbx
	movq	%rbx, %rsi
	andq	%r9, %rdx
	shrq	$56, %rsi
	leaq	(%rsi,%r14,2), %rsi
	movq	%rdi, %r14
	movq	%rsi, %r9
	shrq	$48, %r9
	addq	%r9, %rdx
	movq	%rax, %r9
	shrq	$40, %r14
	shrq	$16, %r9
	movzbl	%r14b, %r14d
	shrq	$32, %r13
	movq	%r9, (%rsp)
	movq	%rax, %r9
	andl	$65280, %eax
	movzbl	%r13b, %r13d
	shrq	$24, %r12
	orq	%r15, %rax
	shrq	$16, %rbp
	movq	128(%rsp), %r15
	salq	$8, %rax
	movzbl	%r12b, %r12d
	movzbl	%bpl, %ebp
	shrq	$24, %r9
	shrq	$32, %r11
	orq	%r14, %rax
	movq	%r9, 16(%rsp)
	shrq	$40, %r10
	salq	$8, %rax
	movq	%r11, %r9
	movq	%rbx, %r11
	movzbl	%r10b, %r10d
	orq	%r13, %rax
	shrq	$16, %r11
	movzbl	%r9b, %r9d
	salq	$8, %rax
	orq	%r12, %rax
	salq	$8, %rax
	orq	%rbp, %rax
	movq	%r11, %rbp
	movq	%rax, %r14
	movq	%rdi, %rax
	andl	$65280, %ebp
	movzbl	%dil, %edi
	movzbl	%ah, %eax
	movq	%rax, %r12
	movq	%r14, %rax
	salq	$8, %rax
	orq	%r12, %rax
	movzbl	%r11b, %r12d
	movq	%rbp, %r11
	movzbl	%bh, %ebp
	orq	%r12, %r11
	salq	$8, %rax
	salq	$8, %r11
	movq	%rax, %r14
	orq	%rbp, %r11
	movzbl	%bl, %ebp
	salq	$8, %r11
	orq	%rbp, %r11
	salq	$8, %r11
	orq	%r10, %r11
	salq	$8, %r11
	orq	%r9, %r11
	movzbl	16(%rsp), %r9d
	orq	%rdi, %r14
	movq	%rbx, %rdi
	salq	$8, %r11
	shrq	$32, %rdi
	orq	%r9, %r11
	movzbl	(%rsp), %r9d
	movq	%r14, (%rsp)
	salq	$8, %r11
	movq	%r11, %r14
	orq	%r9, %r14
	movq	%rbx, %r9
	shrq	$48, %rbx
	movq	%r14, 8(%rsp)
	movq	%rsi, %r14
	shrq	$40, %r9
	movdqa	(%rsp), %xmm2
	shrq	$16, %r14
	movq	%r14, %r10
	movq	%rsi, %r14
	movups	%xmm2, (%r15)
	shrq	$24, %r14
	movzbl	%r10b, %r10d
	movq	%r14, %rax
	movzbl	%r14b, %r11d
	andl	$65280, %eax
	orq	%r11, %rax
	salq	$8, %rax
	orq	%r10, %rax
	movzbl	%bl, %r10d
	movq	%rax, %r14
	movq	%rsi, %rax
	movzbl	%ah, %eax
	movq	%rax, %r11
	movq	%r14, %rax
	movq	%rdx, %r14
	salq	$8, %rax
	orq	%r11, %rax
	movzbl	%sil, %r11d
	salq	$8, %rax
	orq	%r11, %rax
	movq	%rax, %rbx
	movzbl	%r9b, %eax
	salq	$8, %rbx
	orq	%r10, %rbx
	movq	64(%rsp), %r10
	salq	$8, %rbx
	movq	%rbx, %r9
	movq	%rsi, %rbx
	orq	%rax, %r9
	shrq	$40, %rbx
	movzbl	%dil, %eax
	salq	$8, %r9
	movq	%r9, %rdi
	movq	%rdx, %r9
	orq	%rax, %rdi
	movq	%rbx, %rax
	movq	%rdx, %rbx
	shrq	$16, %rbx
	movq	%rdi, 16(%r15)
	movzbl	%dh, %edi
	movzbl	%al, %eax
	movzbl	%bl, %esi
	movq	%r15, %rbx
	sall	$8, %esi
	orl	%edi, %esi
	movzbl	%dl, %edi
	sall	$8, %esi
	orl	%edi, %esi
	movq	48(%rsp), %rdi
	sall	$8, %esi
	orl	%eax, %esi
	shrq	$24, %r9
	andq	%rcx, %rdi
	andq	%rcx, %r10
	movb	%r9b, 28(%r15)
	movq	%rdx, %r9
	shrq	$40, %r14
	movq	%rdi, %rax
	shrq	$32, %r9
	movl	%esi, 24(%r15)
	subq	%r8, %rax
	movq	96(%rsp), %rdi
	movb	%r9b, 29(%r15)
	movq	%rax, %r11
	movq	80(%rsp), %r9
	andq	%rcx, %rax
	movb	%r14b, 30(%r15)
	movq	120(%rsp), %r15
	sarq	$51, %r11
	andq	%rcx, %rdi
	negl	%r11d
	andq	%rcx, %r9
	movq	%r15, %rsi
	movzbl	%r11b, %r11d
	shrq	$51, %rsi
	addq	%rsi, %r10
	movq	%r15, %rsi
	andq	%rcx, %rsi
	subq	%r11, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %r10
	movq	%r10, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %r9
	subq	%rcx, %r9
	sarq	$51, %r9
	negl	%r9d
	movzbl	%r9b, %r9d
	subq	%r9, %rdi
	movq	%rdi, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	andq	%r8, %rsi
	addq	%rsi, %rax
	shrq	$48, %rdx
	sall	$7, %eax
	xorl	%eax, %edx
	movb	%dl, 31(%rbx)
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L7982
	addq	$248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L7982:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1396:

	.size	x25519_ge_tobytes, .-x25519_ge_tobytes
# WAS .section	.text.x25519_ge_frombytes_vartime,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_frombytes_vartime
	.hidden	x25519_ge_frombytes_vartime
	.type	x25519_ge_frombytes_vartime, @function
.Lx25519_ge_frombytes_vartime_local_target:
x25519_ge_frombytes_vartime:
.LFB1398:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r11
	pxor	%xmm0, %xmm0
	movabsq	$2251799813685247, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$584, %rsp
	.cfi_def_cfa_offset 640
	movzbl	6(%rsi), %ecx
	movzbl	12(%rsi), %edx
	movq	%rdi, 88(%rsp)
	leaq	288(%rsp), %r14
	movq	%rsi, 184(%rsp)
	salq	$48, %rcx
	salq	$45, %rdx
	movq	%r14, %rbp
	movq	%fs:40, %rax
	movq	%rax, 568(%rsp)
	xorl	%eax, %eax
	movzbl	5(%rsi), %eax
	salq	$40, %rax
	addq	%rax, %rcx
	movzbl	(%rsi), %eax
	addq	%rax, %rcx
	movzbl	4(%rsi), %eax
	salq	$32, %rax
	addq	%rax, %rcx
	movzbl	3(%rsi), %eax
	salq	$24, %rax
	addq	%rax, %rcx
	movzbl	2(%rsi), %eax
	salq	$16, %rax
	addq	%rax, %rcx
	movzbl	1(%rsi), %eax
	salq	$8, %rax
	addq	%rax, %rcx
	movzbl	11(%rsi), %eax
	salq	$37, %rax
	addq	%rax, %rdx
	movzbl	10(%rsi), %eax
	salq	$29, %rax
	addq	%rax, %rdx
	movzbl	9(%rsi), %eax
	salq	$21, %rax
	addq	%rax, %rdx
	movzbl	8(%rsi), %eax
	salq	$13, %rax
	addq	%rax, %rdx
	movzbl	7(%rsi), %eax
	salq	$5, %rax
	addq	%rax, %rdx
	movq	%rcx, %rax
	shrq	$51, %rax
	addq	%rax, %rdx
	movzbl	19(%rsi), %eax
	movzbl	18(%rsi), %esi
	movq	%r14, 160(%rsp)
	movzbl	29(%rbx), %r8d
	salq	$42, %rsi
	salq	$50, %rax
	addq	%rsi, %rax
	movzbl	17(%rbx), %esi
	salq	$34, %rsi
	addq	%rsi, %rax
	movzbl	16(%rbx), %esi
	salq	$26, %rsi
	salq	$28, %r8
	addq	%rsi, %rax
	movzbl	15(%rbx), %esi
	salq	$18, %rsi
	addq	%rsi, %rax
	movzbl	14(%rbx), %esi
	salq	$10, %rsi
	addq	%rsi, %rax
	movzbl	13(%rbx), %esi
	leaq	(%rax,%rsi,4), %rdi
	movq	%rdx, %rax
	movzbl	24(%rbx), %esi
	shrq	$51, %rax
	addq	%rax, %rdi
	movzbl	25(%rbx), %eax
	salq	$39, %rsi
	salq	$47, %rax
	addq	%rsi, %rax
	movzbl	23(%rbx), %esi
	salq	$31, %rsi
	addq	%rsi, %rax
	movzbl	22(%rbx), %esi
	salq	$23, %rsi
	addq	%rsi, %rax
	movzbl	21(%rbx), %esi
	salq	$15, %rsi
	addq	%rsi, %rax
	movzbl	20(%rbx), %esi
	salq	$7, %rsi
	addq	%rsi, %rax
	movq	%rdi, %rsi
	shrq	$51, %rsi
	addq	%rsi, %rax
	movzbl	30(%rbx), %esi
	salq	$36, %rsi
	addq	%r8, %rsi
	movzbl	28(%rbx), %r8d
	salq	$20, %r8
	addq	%r8, %rsi
	movzbl	27(%rbx), %r8d
	salq	$12, %r8
	addq	%r8, %rsi
	movzbl	26(%rbx), %r8d
	salq	$4, %r8
	addq	%r8, %rsi
	movzbl	31(%rbx), %r8d
	movups	%xmm0, 80(%r11)
	movq	%r11, %rbx
	movq	$0, 112(%r11)
	andl	$127, %r8d
	movq	$1, 80(%r11)
	salq	$44, %r8
	movups	%xmm0, 96(%r11)
	addq	%r8, %rsi
	movq	%rax, %r8
	andq	%r15, %rcx
	andq	%r15, %rax
	shrq	$51, %r8
	andq	%r15, %rdx
	andq	%r15, %rdi
	movq	%rcx, 40(%r11)
	addq	%r8, %rsi
	movq	%rdx, 48(%r11)
	movq	%rdi, 56(%r11)
	movq	%r14, %rdi
	movq	%rax, 64(%r11)
	movq	%rsi, 72(%r11)
	leaq	40(%r11), %rsi
	movq	%rsi, 176(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	leaq	336(%rsp), %rdi
	movq	%r14, %rsi
# WAS leaq	k25519d(%rip), %rdx
	leaq	.Lk25519d_local_target(%rip), %rdx
	movq	%rdi, 168(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	88(%rbx), %rax
	movabsq	$4503599627370457, %r9
	addq	288(%rsp), %r9
	movq	%r9, %rsi
	movq	96(%rbx), %rcx
	movq	112(%rbx), %rdi
	andq	%r15, %r9
	movq	%rax, (%rsp)
	movq	104(%rbx), %rax
	movabsq	$4503599627370494, %rdx
	shrq	$51, %rsi
	movq	(%rsp), %rbx
	movq	304(%rsp), %r8
	movq	%rcx, %xmm0
	movq	%rax, 16(%rsp)
	movq	296(%rsp), %rax
	addq	%rdx, %r8
	addq	%rdx, %rax
	subq	%rcx, %r8
	addq	%rsi, %rax
	movhps	16(%rsp), %xmm0
	paddq	352(%rsp), %xmm0
	subq	%rbx, %rax
	movq	16(%rsp), %rbx
	movq	%rax, %rsi
	andq	%r15, %rax
	movaps	%xmm0, 256(%rsp)
	shrq	$51, %rsi
	addq	%rsi, %r8
	movq	312(%rsp), %rsi
	movq	%r8, %r10
	addq	%rdx, %rsi
	shrq	$51, %r10
	addq	320(%rsp), %rdx
	subq	%rbx, %rsi
	subq	%rdi, %rdx
	addq	%r10, %rsi
	movq	%rsi, %r10
	shrq	$51, %r10
	addq	%r10, %rdx
	movq	%rdx, %r10
	shrq	$51, %r10
	leaq	(%r10,%r10,8), %r11
	leaq	(%r10,%r11,2), %r10
	addq	%r9, %r10
	movq	%r10, %r9
	movq	%r10, %rbx
	shrq	$51, %r9
	addq	%r9, %rax
	andq	%r15, %rbx
	andq	%r15, %r8
	addq	368(%rsp), %rdi
	movq	%rax, %r11
	shrq	$51, %rax
	movq	%rbx, 104(%rsp)
	leaq	(%rax,%r8), %r10
	movq	%rsi, %rax
	movq	%rdx, %rsi
	andq	%r15, %r11
	andq	%r15, %rax
	andq	%r15, %rsi
	movq	%rbx, 192(%rsp)
	leaq	384(%rsp), %rbx
	movq	%rax, 128(%rsp)
	movq	%rax, 216(%rsp)
	movl	$1, %eax
	movq	%rax, %xmm1
	leaq	240(%rsp), %rax
	movq	%rsi, 136(%rsp)
	movhps	(%rsp), %xmm1
	movq	%rax, %rdx
	paddq	336(%rsp), %xmm1
	movq	%rsi, 224(%rsp)
	movq	%rdi, 272(%rsp)
	leaq	192(%rsp), %rsi
	movq	%r14, %rdi
	movq	%r11, 112(%rsp)
	movq	%r10, 120(%rsp)
	movq	%r11, 200(%rsp)
	movq	%r10, 208(%rsp)
	movq	%rax, 152(%rsp)
	movaps	%xmm1, 240(%rsp)
	movq	%rsi, 144(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%r14, %rsi
	movq	%rbx, %rdi
	leaq	432(%rsp), %r14
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%r14, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	movq	%r14, 72(%rsp)
	movq	%rbx, 80(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	416(%rsp), %rbp
	movq	408(%rsp), %rsi
	movq	400(%rsp), %rbx
	movq	384(%rsp), %rdi
	leaq	0(%rbp,%rbp,8), %rax
	leaq	(%rsi,%rsi), %r14
	leaq	0(%rbp,%rax,2), %rax
	leaq	(%rbx,%rbx), %rcx
	movq	%rax, 32(%rsp)
	leaq	(%rax,%rax), %r10
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r8
	movq	%rcx, (%rsp)
	movq	392(%rsp), %rcx
	leaq	(%r8,%r8), %r11
	movq	%r11, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%r8, %rax
	adcq	%rdx, %r12
	mulq	%rsi
	movq	%r11, 16(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	leaq	(%rcx,%rcx), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r11, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r12, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	(%rsp), %rsi
	movq	%rdx, %r13
	mulq	%r10
	movq	%r12, (%rsp)
	movq	%rax, %r8
	movq	%rsi, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %r8
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %rsi
	movq	%rdx, %r9
	mulq	%rcx
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r14, %rax
	addq	%r8, %r12
	adcq	%r9, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	%r12, %rax
	adcq	%rdx, %r13
	andq	%r15, %rax
	movq	%rax, %r8
	movq	%rsi, %rax
	mulq	%rdi
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r14
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	shrdq	$51, %r13, %r12
	xorl	%r13d, %r13d
	addq	%r12, %rax
	adcq	%r13, %rdx
	movq	%rax, %rbx
	shrdq	$51, %rdx, %rax
	andq	%r15, %rbx
	leaq	(%rax,%rax,8), %rdx
	movq	%rbx, %r9
	leaq	(%rax,%rdx,2), %rdx
	movq	16(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	%rdx, %rax
	shrq	$51, %rdx
	andq	%r15, %rax
	movq	%rax, %rdi
	movq	(%rsp), %rax
	andq	%r15, %rax
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	movq	%rbx, %rsi
	movq	%r10, %rbx
	andq	%r15, %rbx
	leaq	(%rbx,%rax), %rbp
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %r14
	leaq	(%r8,%r8), %rax
	movq	%rax, 16(%rsp)
	movq	%rdi, %rax
	leaq	(%r14,%r14), %rcx
	leaq	(%rbp,%rbp), %rbx
	mulq	%rdi
	movq	%rbx, (%rsp)
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r13
	movq	%r12, %r10
	leaq	(%rbx,%rbx), %rax
	movq	%r13, %r11
	leaq	(%rsi,%rsi), %r13
	mulq	%rbp
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 32(%rsp)
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	movq	%r11, %r13
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	(%rsp), %r8
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%rdi
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rcx
	movq	%r13, %rbx
	shrq	$51, %rbx
	addq	%rcx, %rax
	movq	%rax, (%rsp)
	adcq	%rbx, %rdx
	movq	%r14, %rax
	movq	16(%rsp), %r14
	movq	%rdx, 8(%rsp)
	mulq	%r9
	movq	%rax, %rcx
	movq	%r14, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, %r10
	movq	%rbx, %r11
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	(%rsp), %rax
	movq	8(%rsp), %rdx
	addq	%r10, %rcx
	leaq	(%r9,%r9), %r10
	adcq	%r11, %rbx
	shrdq	$51, %rdx, %rax
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	movq	%rcx, %r8
	andq	%r15, %r8
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	32(%rsp), %rbx
	andq	%r15, %r12
	shrdq	$51, %rdx, %rax
	andq	%r15, %r9
	leaq	(%rax,%rax,8), %rdx
	andq	%r15, %rbx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	%rax, %rdi
	shrq	$51, %rax
	addq	%r12, %rax
	andq	%r15, %rdi
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	movq	%rbx, %rsi
	movq	(%rsp), %rbx
	andq	%r15, %rbx
	leaq	(%rax,%rbx), %rbp
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %r14
	leaq	(%r8,%r8), %rax
	movq	%rax, 32(%rsp)
	movq	%rdi, %rax
	leaq	(%r14,%r14), %rcx
	leaq	(%rbp,%rbp), %rbx
	mulq	%rdi
	movq	%rbx, (%rsp)
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r13
	movq	%r12, %r10
	leaq	(%rbx,%rbx), %rax
	movq	%r13, %r11
	leaq	(%rsi,%rsi), %r13
	mulq	%rbp
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 16(%rsp)
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	movq	%r11, %r13
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	(%rsp), %r8
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%rdi
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rcx
	movq	%r13, %rbx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, (%rsp)
	movq	%r14, %rax
	movq	32(%rsp), %r14
	movq	%rdx, 8(%rsp)
	mulq	%r9
	movq	%rax, %rcx
	movq	%r14, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, %r10
	movq	%rbx, %r11
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	(%rsp), %rax
	movq	8(%rsp), %rdx
	addq	%r10, %rcx
	leaq	(%r9,%r9), %r10
	adcq	%r11, %rbx
	shrdq	$51, %rdx, %rax
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	movq	%rcx, %r8
	andq	%r15, %r8
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	16(%rsp), %rbx
	andq	%r15, %r12
	shrdq	$51, %rdx, %rax
	andq	%r15, %r9
	leaq	(%rax,%rax,8), %rdx
	andq	%r15, %rbx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	%rax, %rdi
	shrq	$51, %rax
	addq	%r12, %rax
	andq	%r15, %rdi
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	movq	%rbx, %rsi
	movq	(%rsp), %rbx
	andq	%r15, %rbx
	leaq	(%rax,%rbx), %rbp
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %r14
	leaq	(%r8,%r8), %rax
	movq	%rax, 32(%rsp)
	movq	%rdi, %rax
	leaq	(%r14,%r14), %rcx
	leaq	(%rbp,%rbp), %rbx
	mulq	%rdi
	movq	%rbx, (%rsp)
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r13
	movq	%r12, %r10
	leaq	(%rbx,%rbx), %rax
	movq	%r13, %r11
	leaq	(%rsi,%rsi), %r13
	mulq	%rbp
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, 16(%rsp)
	movq	%r11, 24(%rsp)
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	movq	%r11, %r13
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	(%rsp), %r8
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%rdi
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rcx
	movq	%r13, %rbx
	shrq	$51, %rbx
	addq	%rcx, %rax
	movq	%rax, (%rsp)
	adcq	%rbx, %rdx
	movq	%r14, %rax
	movq	32(%rsp), %r14
	movq	%rdx, 8(%rsp)
	mulq	%r9
	movq	%rax, %rcx
	movq	%r14, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, %r10
	movq	%rbx, %r11
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	(%rsp), %rax
	movq	8(%rsp), %rdx
	addq	%r10, %rcx
	leaq	(%r9,%r9), %r10
	adcq	%r11, %rbx
	shrdq	$51, %rdx, %rax
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%rdi
	movq	%rcx, %r8
	andq	%r15, %r8
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r9
	movq	16(%rsp), %rbx
	andq	%r15, %r12
	shrdq	$51, %rdx, %rax
	andq	%r15, %r9
	leaq	(%rax,%rax,8), %rdx
	andq	%r15, %rbx
	leaq	(%rax,%rdx,2), %rax
	addq	%rbx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	addq	%r12, %rax
	movq	%rbx, %rsi
	movq	(%rsp), %rbx
	movq	%rax, %rcx
	shrq	$51, %rax
	andq	%r15, %rcx
	andq	%r15, %rbx
	leaq	(%rax,%rbx), %rbp
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %r14
	leaq	(%rbp,%rbp), %rax
	leaq	(%r14,%r14), %rdi
	movq	%rax, (%rsp)
	leaq	(%r8,%r8), %rbx
	movq	%rdi, %rax
	movq	%rbx, 16(%rsp)
	mulq	%rcx
	movq	%rax, %r12
	movq	%rsi, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rbx
	adcq	%rdx, %r13
	movq	%r12, %r10
	leaq	(%rbx,%rbx), %rax
	movq	%r13, %r11
	leaq	(%rcx,%rcx), %r13
	mulq	%rbp
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r12
	movq	%rdi, %rax
	movq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%rbx, %rax
	movq	16(%rsp), %rbx
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	movq	%r11, %r13
	shrdq	$51, %r11, %r12
	shrq	$51, %r13
	addq	%rax, %r12
	movq	%r8, %rax
	movq	(%rsp), %r8
	adcq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	movq	%r13, %r11
	shrq	$51, %r11
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, (%rsp)
	movq	%r14, %rax
	movq	%rdx, 8(%rsp)
	mulq	%r9
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	movq	(%rsp), %r10
	adcq	%r11, %rdx
	movq	8(%rsp), %r11
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%rax, %r10
	adcq	%rdx, %r11
	addq	%r9, %r9
	movq	%r9, %rax
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rbx, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rbp, %rax
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	mulq	%rbp
	addq	%rcx, %rax
	movq	%r10, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r11, %rcx
	movq	%r11, %rbx
	shrq	$51, %rbx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	movq	32(%rsp), %rbx
	andq	%r15, %r12
	shrdq	$51, %rdx, %rcx
	andq	%r15, %r10
	andq	%r15, %rax
	leaq	(%rcx,%rcx,8), %rdx
	andq	%r15, %rbx
	movq	%r10, 456(%rsp)
	leaq	(%rcx,%rdx,2), %rcx
	movq	%rax, 464(%rsp)
	addq	%rbx, %rcx
	movq	%rcx, %rbx
	andq	%r15, %rcx
	shrq	$51, %rbx
	movq	%rcx, 432(%rsp)
	movq	%rbx, %rdx
	addq	%r12, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r15, %rcx
	movq	%rcx, 440(%rsp)
	movq	(%rsp), %rcx
	andq	%r15, %rcx
	addq	%rcx, %rdx
	movq	%rdx, 448(%rsp)
	movq	80(%rsp), %rbx
	movq	72(%rsp), %r14
	movq	%rbx, %rdx
	movq	%rbx, %rdi
	movq	%r14, %rsi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$9, 68(%rsp)
	movq	464(%rsp), %r14
	movq	456(%rsp), %r9
	movq	448(%rsp), %r8
	movq	440(%rsp), %rbx
	movq	432(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7984:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r8,%r8), %rsi
	leaq	(%r14,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %rcx
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%r8
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %r9
	movq	%rdx, %r11
	mulq	%rcx
	movq	%r10, 16(%rsp)
	movq	(%rsp), %rcx
	movq	%r11, 24(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	movq	%r15, %r9
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	leaq	(%r14,%r14), %r10
	movq	%r15, %r14
	adcq	%r11, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	andq	%rsi, %r9
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbp, %rdi
	movq	%rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	andq	%rax, %r14
	andq	%r15, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %r8
	jne	.L7984
	movq	%rbx, 440(%rsp)
	movq	72(%rsp), %rbx
	movabsq	$2251799813685247, %r15
	movq	80(%rsp), %rdx
	movq	%r9, 456(%rsp)
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%rbp, 432(%rsp)
	movq	%r8, 448(%rsp)
	movq	%r14, 464(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	leaq	480(%rsp), %rax
	movq	%rbx, %rsi
	movq	%rax, %rdi
	movq	%rax, 96(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$19, 68(%rsp)
	movq	512(%rsp), %r14
	movq	504(%rsp), %r9
	movq	496(%rsp), %rcx
	movq	488(%rsp), %rbx
	movq	480(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7985:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r9,%r9), %rdi
	leaq	(%r14,%rax,2), %rax
	movq	%rdi, (%rsp)
	leaq	(%rcx,%rcx), %r10
	leaq	(%rax,%rax), %r8
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rcx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 16(%rsp)
	movq	%r12, 24(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%r12, %rsi
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	%r10, %rax
	leaq	(%r14,%r14), %r10
	movq	%rdx, %r9
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r8, %rsi
	movq	(%rsp), %r8
	adcq	%r9, %rdi
	movq	%r8, %rax
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, %r9
	andq	%r15, %r9
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edi, %edi
	addq	%rax, %rcx
	adcq	%rdi, %rbx
	movq	%rcx, %r14
	andq	%r15, %r12
	shrdq	$51, %rbx, %rcx
	andq	%r15, %r14
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdx
	movq	16(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	32(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rcx
	jne	.L7985
	movq	%rbx, 488(%rsp)
	movq	72(%rsp), %rbx
	movabsq	$2251799813685247, %r15
	movq	96(%rsp), %rsi
	movq	%r9, 504(%rsp)
	movq	%rbx, %rdx
	movq	%rbx, %rdi
	movq	%rbp, 480(%rsp)
	movq	%rcx, 496(%rsp)
	movq	%r14, 512(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$9, 68(%rsp)
	movq	464(%rsp), %r14
	movq	456(%rsp), %r9
	movq	448(%rsp), %r8
	movq	440(%rsp), %rbx
	movq	432(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7986:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r8,%r8), %rsi
	leaq	(%r14,%rax,2), %rax
	movq	%rsi, 16(%rsp)
	leaq	(%r9,%r9), %rdi
	leaq	(%rax,%rax), %rcx
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	movq	%rdi, (%rsp)
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%r8
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 32(%rsp)
	movq	%r12, 40(%rsp)
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	16(%rsp), %r9
	movq	%rdx, %r11
	mulq	%rcx
	movq	%r10, 16(%rsp)
	movq	(%rsp), %rcx
	movq	%r11, 24(%rsp)
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	leaq	(%r14,%r14), %r10
	adcq	%r11, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, %r9
	andq	%r15, %r9
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbp, %rdi
	movq	%rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	andq	%r15, %r12
	shrdq	$51, %rdx, %rax
	andq	%r15, %r14
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	32(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %r8
	jne	.L7986
	movq	72(%rsp), %r15
	movq	%rbx, 440(%rsp)
	movq	80(%rsp), %rbx
	movq	%r9, 456(%rsp)
	movq	%r15, %rsi
	movq	%rbp, 432(%rsp)
	movq	%rbx, %rdx
	movq	%rbx, %rdi
	movq	%r8, 448(%rsp)
	movq	%r14, 464(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movabsq	$2251799813685247, %r15
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$49, 68(%rsp)
	movq	464(%rsp), %r14
	movq	456(%rsp), %r9
	movq	448(%rsp), %rcx
	movq	440(%rsp), %rbx
	movq	432(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7987:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r9,%r9), %rdi
	leaq	(%r14,%rax,2), %rax
	movq	%rdi, (%rsp)
	leaq	(%rcx,%rcx), %r10
	leaq	(%rax,%rax), %r8
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rcx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 16(%rsp)
	movq	%r12, 24(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%r12, %rsi
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	%r10, %rax
	leaq	(%r14,%r14), %r10
	movq	%rdx, %r9
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r8, %rsi
	movq	(%rsp), %r8
	adcq	%r9, %rdi
	movq	%r8, %rax
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, %r9
	andq	%r15, %r9
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edi, %edi
	addq	%rax, %rcx
	adcq	%rdi, %rbx
	movq	%rcx, %r14
	andq	%r15, %r12
	shrdq	$51, %rbx, %rcx
	andq	%r15, %r14
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdx
	movq	16(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	32(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rcx
	jne	.L7987
	movq	%rbx, 440(%rsp)
	movq	72(%rsp), %rbx
	movabsq	$2251799813685247, %r15
	movq	80(%rsp), %rdx
	movq	%rcx, 448(%rsp)
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%r9, 456(%rsp)
	movq	%rbp, 432(%rsp)
	movq	%r14, 464(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	96(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$99, 68(%rsp)
	movq	512(%rsp), %r14
	movq	504(%rsp), %r9
	movq	496(%rsp), %rcx
	movq	488(%rsp), %rbx
	movq	480(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7988:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r9,%r9), %rdi
	leaq	(%r14,%rax,2), %rax
	movq	%rdi, (%rsp)
	leaq	(%rcx,%rcx), %r10
	leaq	(%rax,%rax), %r8
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rcx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 16(%rsp)
	movq	%r12, 24(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%r12, %rsi
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	%r10, %rax
	leaq	(%r14,%r14), %r10
	movq	%rdx, %r9
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r8, %rsi
	movq	(%rsp), %r8
	adcq	%r9, %rdi
	movq	%r8, %rax
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, %r9
	andq	%r15, %r9
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edi, %edi
	addq	%rax, %rcx
	adcq	%rdi, %rbx
	movq	%rcx, %r14
	andq	%r15, %r12
	shrdq	$51, %rbx, %rcx
	andq	%r15, %r14
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdx
	movq	16(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	32(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rcx
	jne	.L7988
	movq	%rbx, 488(%rsp)
	movq	72(%rsp), %rbx
	movabsq	$2251799813685247, %r15
	movq	96(%rsp), %rsi
	movq	%rcx, 496(%rsp)
	movq	%rbx, %rdx
	movq	%rbx, %rdi
	movq	%r9, 504(%rsp)
	movq	%rbp, 480(%rsp)
	movq	%r14, 512(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movl	$49, 68(%rsp)
	movq	464(%rsp), %r14
	movq	456(%rsp), %r9
	movq	448(%rsp), %rcx
	movq	440(%rsp), %rbx
	movq	432(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L7989:

	leaq	(%r14,%r14,8), %rax
	leaq	(%r9,%r9), %rdi
	leaq	(%r14,%rax,2), %rax
	movq	%rdi, (%rsp)
	leaq	(%rcx,%rcx), %r10
	leaq	(%rax,%rax), %r8
	movq	%rax, 56(%rsp)
	leaq	(%r9,%r9,8), %rax
	leaq	(%r9,%rax,2), %rsi
	leaq	(%rsi,%rsi), %r11
	movq	%r11, %rax
	mulq	%rcx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r11
	movq	%r13, %r12
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	%r9
	movq	%r11, 16(%rsp)
	movq	%r12, 24(%rsp)
	movq	%rax, %rsi
	movq	%r8, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	leaq	(%rbx,%rbx), %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rsi, %rax
	movq	%r11, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r12, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r8
	movq	%r12, %rsi
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, %r12
	movq	56(%rsp), %rax
	adcq	%rdi, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	%r10, %rax
	leaq	(%r14,%r14), %r10
	movq	%rdx, %r9
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r8, %rsi
	movq	(%rsp), %r8
	adcq	%r9, %rdi
	movq	%r8, %rax
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rsi, %r9
	andq	%r15, %r9
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edi, %edi
	addq	%rax, %rcx
	adcq	%rdi, %rbx
	movq	%rcx, %r14
	andq	%r15, %r12
	shrdq	$51, %rbx, %rcx
	andq	%r15, %r14
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdx
	movq	16(%rsp), %rax
	andq	%r15, %rax
	addq	%rax, %rdx
	movq	32(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r15, %rax
	andq	%r15, %rbp
	addq	%rdx, %rax
	movq	%rax, %rbx
	shrq	$51, %rax
	andq	%r15, %rbx
	subl	$1, 68(%rsp)
	leaq	(%r12,%rax), %rcx
	jne	.L7989
	movq	80(%rsp), %rdx
	movq	72(%rsp), %rsi
	movq	%rbp, 432(%rsp)
	movq	%rbx, 440(%rsp)
	movq	%rdx, %rdi
	movq	%rcx, 448(%rsp)
	movq	%r9, 456(%rsp)
	movq	%r14, 464(%rsp)
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	416(%rsp), %rbp
	movq	408(%rsp), %rsi
	movq	400(%rsp), %rbx
	movq	392(%rsp), %rcx
	leaq	0(%rbp,%rbp,8), %rax
	movq	384(%rsp), %rdi
	leaq	(%rsi,%rsi), %r14
	leaq	0(%rbp,%rax,2), %rax
	leaq	(%rbx,%rbx), %r11
	leaq	(%rax,%rax), %r10
	movq	%rax, 16(%rsp)
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r8
	leaq	(%r8,%r8), %r9
	movq	%r9, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r10, %rax
	movq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	leaq	(%rcx,%rcx), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, (%rsp)
	movq	%rsi, %rax
	movq	%r11, %rsi
	movq	%rdx, 8(%rsp)
	mulq	%r10
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%r8, %rax
	movq	(%rsp), %r8
	adcq	%r9, %rdx
	movq	8(%rsp), %r9
	movq	%rax, %r10
	movq	16(%rsp), %rax
	movq	%rdx, %r11
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	%rbp
	movq	%rax, %r8
	movq	%rsi, %rax
	leaq	(%rbp,%rbp), %rsi
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	movq	%r8, %rcx
	mulq	%r14
	movq	(%rsp), %r14
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rcx
	andq	%r15, %r12
	andq	%r15, %r14
	shrdq	$51, %rdx, %rcx
	movq	80(%rsp), %rbx
	andq	%r15, %r8
	andq	%r15, %rax
	leaq	(%rcx,%rcx,8), %rdx
	movq	%r8, 408(%rsp)
	leaq	(%rcx,%rdx,2), %rcx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%rax, 416(%rsp)
	addq	%r12, %rcx
	movq	%rcx, %rdx
	andq	%r15, %rcx
	shrq	$51, %rdx
	movq	%rcx, 384(%rsp)
	addq	%r14, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r15, %rcx
	movq	%rcx, 392(%rsp)
	movq	%r10, %rcx
	andq	%r15, %rcx
	addq	%rcx, %rdx
	movq	%rdx, 400(%rsp)
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	%rbx, %rsi
	movq	88(%rsp), %rbx
	movq	160(%rsp), %rdx
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	144(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	168(%rsp), %r14
	movq	%rbx, %rsi
	movq	%rbx, 88(%rsp)
	leaq	528(%rsp), %rbx
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_square
	call	.Lfiat_25519_carry_square_local_target
	movq	152(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	104(%rsp), %rax
	movq	112(%rsp), %rcx
	movabsq	$4503599627370458, %rdi
	movq	336(%rsp), %r12
	movq	344(%rsp), %r13
	movq	352(%rsp), %r14
	movq	360(%rsp), %rbp
	addq	%r12, %rdi
	movq	128(%rsp), %r10
	movq	368(%rsp), %r11
	subq	%rax, %rdi
	movabsq	$4503599627370494, %rax
	leaq	0(%r13,%rax), %rsi
	movq	%rdi, %rdx
	movq	%r11, (%rsp)
	subq	%rcx, %rsi
	shrq	$51, %rdx
	movq	120(%rsp), %rcx
	addq	%rdx, %rsi
	leaq	(%r14,%rax), %rdx
	subq	%rcx, %rdx
	movq	%rsi, %rcx
	shrq	$51, %rcx
	addq	%rcx, %rdx
	leaq	0(%rbp,%rax), %rcx
	addq	%r11, %rax
	movq	136(%rsp), %r11
	movq	%rdx, %r8
	subq	%r10, %rcx
	movabsq	$144115188075855808, %r10
	shrq	$51, %r8
	subq	%r11, %rax
	addq	%r8, %rcx
	movq	%rcx, %r8
	shrq	$51, %r8
	andq	%r15, %rdi
	andq	%r15, %rsi
	andq	%r15, %rdx
	addq	%r8, %rax
	andq	%r15, %rcx
	movq	%rax, %r8
	andq	%r15, %rax
	shrq	$51, %r8
	leaq	(%r8,%r8,8), %r9
	leaq	(%r8,%r9,2), %r9
	addq	%rdi, %r9
	movq	%r9, %rdi
	andq	%r15, %r9
	shrq	$51, %rdi
	addq	%rsi, %rdi
	movabsq	$-2251799813685229, %rsi
	addq	%rsi, %r9
	movq	%rdi, %rsi
	shrq	$51, %rdi
	movq	%r9, %r8
	andq	%r15, %rsi
	addq	%rdi, %rdx
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rsi
	movabsq	$2251799813685229, %r8
	subq	%r15, %rsi
	movq	%rsi, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rdx
	subq	%r15, %rdx
	movq	%rdx, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rcx
	subq	%r15, %rcx
	movq	%rcx, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rax
	subq	%r15, %rax
	movq	%rax, %rdi
	sarq	$51, %rdi
	andq	%r15, %r9
	andq	%r15, %rsi
	andq	%r15, %rdx
	andq	%rdi, %r8
	andq	%r15, %rdi
	andq	%r15, %rcx
	andq	%r15, %rax
	addq	%r8, %r9
	addq	%rdi, %rsi
	addq	%rdi, %rdx
	addq	%rdi, %rcx
	movq	%r9, %r8
	shrq	$51, %r9
	addq	%rdi, %rax
	addq	%r9, %rsi
	andq	%r15, %r8
	movq	%rsi, %r9
	salq	$3, %rsi
	movl	%r8d, 528(%rsp)
	shrq	$51, %r9
	addq	%r9, %rdx
	movq	%rdx, %r9
	salq	$6, %rdx
	shrq	$51, %r9
	andq	%rdx, %r10
	addq	%r9, %rcx
	movabsq	$18014398509481976, %r9
	andq	%r9, %rsi
	movq	%r8, %r9
	shrq	$48, %r9
	addq	%rsi, %r9
	shrq	$48, %rsi
	leaq	(%r10,%rsi), %rdx
	movq	%rcx, %r10
	shrq	$51, %rcx
	movl	%r9d, 534(%rsp)
	movq	%rdx, %rsi
	andq	%r15, %r10
	addq	%rcx, %rax
	movl	%edx, 540(%rsp)
	movabsq	$36028797018963952, %rcx
	shrq	$56, %rsi
	leaq	(%rsi,%r10,2), %rsi
	salq	$4, %rax
	movq	%rsi, %rdi
	andq	%rax, %rcx
	movl	%esi, 547(%rsp)
	shrq	$48, %rdi
	movq	%rdi, %rax
	movq	%rbx, %rdi
	addq	%rcx, %rax
	movq	%r8, %rcx
	shrq	$40, %r8
	shrq	$32, %rcx
	movl	%eax, 553(%rsp)
	movb	%cl, 532(%rsp)
	movq	%r9, %rcx
	shrq	$40, %r9
	shrq	$32, %rcx
	movb	%r8b, 533(%rsp)
	movb	%cl, 538(%rsp)
	movq	%rdx, %rcx
	shrq	$32, %rcx
	movb	%r9b, 539(%rsp)
	movb	%cl, 544(%rsp)
	movq	%rdx, %rcx
	shrq	$48, %rdx
	movb	%dl, 546(%rsp)
	movq	%rsi, %rdx
	shrq	$40, %rsi
	shrq	$32, %rdx
	shrq	$40, %rcx
	movb	%sil, 552(%rsp)
# WAS leaq	zero.82(%rip), %rsi
	leaq	.Lzero.82_local_target(%rip), %rsi
	movb	%dl, 551(%rsp)
	movq	%rax, %rdx
	shrq	$32, %rdx
	movb	%cl, 545(%rsp)
	movb	%dl, 557(%rsp)
	movq	%rax, %rdx
	shrq	$48, %rax
	shrq	$40, %rdx
	movb	%al, 559(%rsp)
	movb	%dl, 558(%rsp)
	movl	$32, %edx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	je	.L7990
	movq	104(%rsp), %rax
	movq	112(%rsp), %r9
	movq	120(%rsp), %rdx
	movq	128(%rsp), %rdi
	addq	%r12, %rax
	movq	(%rsp), %r11
	movq	%rax, %r8
	movq	%rax, %rsi
	addq	%r14, %rdx
	addq	%rbp, %rdi
	shrq	$51, %r8
	andq	%r15, %rsi
	movq	%r8, %rcx
	addq	%r9, %rcx
	addq	%r13, %rcx
	movq	%rcx, %rax
	andq	%r15, %rcx
	shrq	$51, %rax
	addq	%rax, %rdx
	movq	%rdx, %rax
	andq	%r15, %rdx
	shrq	$51, %rax
	addq	%rax, %rdi
	movq	136(%rsp), %rax
	movq	%rdi, %r8
	andq	%r15, %rdi
	addq	%r11, %rax
	shrq	$51, %r8
	movq	%rdi, 504(%rsp)
	movq	%rbx, %rdi
	addq	%r8, %rax
	movq	%rax, %r8
	andq	%r15, %rax
	shrq	$51, %r8
	movq	%rax, 512(%rsp)
	leaq	(%r8,%r8,8), %r9
	leaq	(%r8,%r9,2), %r8
	addq	%rsi, %r8
	movq	96(%rsp), %rsi
	movq	%r8, %r11
	andq	%r15, %r8
	shrq	$51, %r11
	movq	%r8, 480(%rsp)
	addq	%r11, %rcx
	movq	%rcx, %r11
	shrq	$51, %rcx
	addq	%rcx, %rdx
	andq	%r15, %r11
	movq	%r11, 488(%rsp)
	movq	%rdx, 496(%rsp)
# WAS call	fiat_25519_to_bytes
	call	.Lfiat_25519_to_bytes_local_target
	movl	$32, %edx
# WAS leaq	zero.82(%rip), %rsi
	leaq	.Lzero.82_local_target(%rip), %rsi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	je	.L8005
.L7983:

	movq	568(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8006
	addq	$584, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8005:

	.cfi_restore_state
	movq	88(%rsp), %rdi
# WAS leaq	k25519sqrtm1(%rip), %rdx
	leaq	.Lk25519sqrtm1_local_target(%rip), %rdx
	movq	%rdi, %rsi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
.L7990:

	movq	88(%rsp), %r15
	movq	%rbx, %rdi
	movq	%r15, %rsi
# WAS call	fiat_25519_to_bytes
	call	.Lfiat_25519_to_bytes_local_target
	movq	184(%rsp), %rdi
	movzbl	528(%rsp), %eax
	movzbl	31(%rdi), %edx
	andl	$1, %eax
	shrb	$7, %dl
	cmpb	%al, %dl
	jne	.L8007
.L7992:

	movq	88(%rsp), %rsi
	movq	176(%rsp), %rdx
	leaq	120(%rsi), %rdi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movl	$1, %eax
	jmp	.L7983
.L8007:

	movabsq	$4503599627370458, %rax
	subq	(%r15), %rax
	movabsq	$4503599627370494, %rdx
	movq	%rax, %rcx
	movq	%rdx, %rsi
	subq	8(%r15), %rsi
	movq	%rdx, %r9
	shrq	$51, %rcx
	subq	16(%r15), %r9
	movq	%rdx, %r8
	subq	24(%r15), %r8
	addq	%rcx, %rsi
	subq	32(%r15), %rdx
	movq	%rsi, %rcx
	shrq	$51, %rcx
	addq	%rcx, %r9
	movq	%r9, %rcx
	shrq	$51, %rcx
	addq	%rcx, %r8
	movq	%r8, %rcx
	shrq	$51, %rcx
	leaq	(%rdx,%rcx), %rdi
	movq	%rdi, %rdx
	shrq	$51, %rdx
	leaq	(%rdx,%rdx,8), %rcx
	leaq	(%rdx,%rcx,2), %rcx
	movabsq	$2251799813685247, %rdx
	andq	%rdx, %rax
	andq	%rdx, %rsi
	andq	%rdx, %r9
	andq	%rdx, %r8
	addq	%rax, %rcx
	andq	%rdx, %rdi
	movq	%r8, 24(%r15)
	movq	%rcx, %rax
	andq	%rdx, %rcx
	movq	%rdi, 32(%r15)
	shrq	$51, %rax
	movq	%rcx, (%r15)
	addq	%rsi, %rax
	movq	%rax, %rcx
	shrq	$51, %rax
	andq	%rdx, %rcx
	addq	%r9, %rax
	movq	%rcx, 8(%r15)
	movq	%rax, 16(%r15)
	jmp	.L7992
.L8006:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1398:

	.size	x25519_ge_frombytes_vartime, .-x25519_ge_frombytes_vartime
# WAS .section	.text.x25519_ge_p3_to_cached,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_p3_to_cached
	.hidden	x25519_ge_p3_to_cached
	.type	x25519_ge_p3_to_cached, @function
.Lx25519_ge_p3_to_cached_local_target:
x25519_ge_p3_to_cached:
.LFB1404:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$40, %edx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	leaq	80(%rsi), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	leaq	80(%rdi), %rdi
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movdqu	-24(%rsi), %xmm0
	movdqu	-64(%rsi), %xmm2
	movdqu	-80(%rsi), %xmm1
	movdqu	-40(%rsi), %xmm3
	movq	-48(%rsi), %rax
	paddq	%xmm2, %xmm0
	addq	-8(%rsi), %rax
	paddq	%xmm3, %xmm1
	movq	%rax, -48(%rdi)
	movabsq	$4503599627370494, %rax
	movups	%xmm1, -80(%rdi)
	movups	%xmm0, -64(%rdi)
	movdqu	-24(%rsi), %xmm0
	movdqu	-64(%rsi), %xmm4
	movdqu	-40(%rsi), %xmm1
	movdqu	-80(%rsi), %xmm5
	paddq	.LC194(%rip), %xmm0
	paddq	.LC195(%rip), %xmm1
	addq	-8(%rsi), %rax
	subq	-48(%rsi), %rax
	psubq	%xmm4, %xmm0
	psubq	%xmm5, %xmm1
	movups	%xmm1, -40(%rdi)
	movups	%xmm0, -24(%rdi)
	movq	%rax, -8(%rdi)
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
	movq	152(%r12), %r9
	movabsq	$17721897364910094, %rsi
	movq	144(%r12), %r11
	movq	%rsi, %rax
	movq	136(%r12), %rbp
	movq	120(%r12), %r15
	movabsq	$34502068379648981, %r10
	mulq	%r9
	movq	128(%r12), %r14
	movabsq	$20374063209940502, %r12
	movabsq	$12042000423922157, %r8
	movabsq	$1859910466990425, %rcx
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r12
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	%r9
	movq	%rsi, (%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	%r8
	movq	%rsi, %r12
	movq	(%rsp), %rsi
	movq	%rdi, %r13
	movq	8(%rsp), %rdi
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movabsq	$932731440258426, %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	%rax, 16(%rsp)
	adcq	%rdi, %rdx
	movq	%r10, %rax
	movabsq	$1072319116312658, %r10
	movq	%rdx, 24(%rsp)
	mulq	%r9
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, %r12
	movq	%rdi, %r13
	addq	%rax, %r12
	movabsq	$932731440258426, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%r12, %rax
	movq	16(%rsp), %r12
	adcq	%r13, %rdx
	movq	24(%rsp), %r13
	xorl	%edi, %edi
	shrdq	$51, %r13, %r12
	addq	%r12, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r9
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movabsq	$932731440258426, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movabsq	$1815898335770999, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	movq	%r12, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rsi, 32(%rsp)
	movq	%rdi, 40(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movabsq	$932731440258426, %rax
	mulq	%r11
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movabsq	$1815898335770999, %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movabsq	$633789495995903, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movabsq	$2251799813685247, %r15
	addq	%r8, %rax
	movq	%rsi, %r8
	movq	32(%rsp), %rsi
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r15, %rsi
	andq	%r15, %rax
	shrdq	$51, %rdx, %r8
	movq	%rsi, 144(%rbx)
	leaq	(%r8,%r8,8), %rdx
	movq	%rax, 152(%rbx)
	leaq	(%r8,%rdx,2), %rcx
	movq	(%rsp), %rdx
	andq	%r15, %rdx
	addq	%rdx, %rcx
	movq	16(%rsp), %rdx
	movq	%rcx, %rdi
	andq	%r15, %rcx
	andq	%r15, %rdx
	shrq	$51, %rdi
	movq	%rcx, 120(%rbx)
	addq	%rdi, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r15, %rcx
	movq	%rcx, 128(%rbx)
	movq	%r12, %rcx
	andq	%r15, %rcx
	addq	%rcx, %rdx
	movq	%rdx, 136(%rbx)
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1404:

	.size	x25519_ge_p3_to_cached, .-x25519_ge_p3_to_cached
# WAS .section	.text.x25519_ge_p1p1_to_p2,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_p1p1_to_p2
	.hidden	x25519_ge_p1p1_to_p2
	.type	x25519_ge_p1p1_to_p2, @function
.Lx25519_ge_p1p1_to_p2_local_target:
x25519_ge_p1p1_to_p2:
.LFB1405:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r10
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	152(%rsi), %rax
	movq	144(%rsi), %r14
	movq	152(%rsi), %rbx
	movq	136(%rsi), %rdi
	leaq	(%rax,%rax,8), %rax
	movq	32(%rsi), %r15
	leaq	(%rbx,%rax,2), %r11
	movq	128(%rsi), %rsi
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %rcx
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rbx
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r9
	movq	%r9, %rax
	mulq	%r15
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rbx, %rax
	mulq	24(%r10)
	addq	%rax, %r12
	movq	120(%r10), %rax
	adcq	%rdx, %r13
	mulq	(%r10)
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	16(%r10)
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	8(%r10)
	addq	%rax, %r12
	movq	8(%r10), %rax
	adcq	%rdx, %r13
	mulq	120(%r10)
	movq	%r12, -104(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	(%r10)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	24(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	16(%r10)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	16(%r10), %rax
	movq	%rdx, %r13
	mulq	120(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	8(%r10)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	(%r10)
	movq	%r12, -88(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r11, %rax
	addq	%r8, %rcx
	adcq	%r9, %rbx
	mulq	24(%r10)
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	24(%r10), %rax
	adcq	%rdx, %rbx
	mulq	120(%r10)
	movq	%rcx, %r8
	movq	%rbx, %r9
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	mulq	16(%r10)
	addq	%rax, %rcx
	movq	%rdi, %rax
	adcq	%rdx, %rbx
	mulq	8(%r10)
	addq	%rax, %rcx
	movq	%r14, %rax
	adcq	%rdx, %rbx
	mulq	(%r10)
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	%r15
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	addq	%rcx, %r12
	adcq	%rbx, %r13
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	120(%r10)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	movq	%r12, %rsi
	mulq	24(%r10)
	addq	%rax, %rcx
	movq	%rdi, %rax
	adcq	%rdx, %rbx
	mulq	16(%r10)
	addq	%rax, %rcx
	movq	%r14, %rax
	adcq	%rdx, %rbx
	mulq	8(%r10)
	addq	%rax, %rcx
	movq	(%r10), %rax
	adcq	%rdx, %rbx
	mulq	152(%r10)
	addq	%rcx, %rax
	movabsq	$2251799813685247, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %r14
	andq	%rcx, %r8
	andq	%rcx, %r12
	shrdq	$51, %rdi, %rsi
	movq	%r12, 24(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	leaq	(%rsi,%rdx,2), %rax
	movq	-104(%rsp), %rdx
	movq	%r14, %rsi
	andq	%rcx, %rsi
	andq	%rcx, %rdx
	movq	%rsi, 32(%rbp)
	addq	%rdx, %rax
	movq	-88(%rsp), %rdx
	movq	%rax, %rdi
	andq	%rcx, %rax
	shrq	$51, %rdi
	andq	%rcx, %rdx
	movq	%rax, 0(%rbp)
	addq	%rdi, %rdx
	movq	%rdx, %rax
	shrq	$51, %rdx
	addq	%rdx, %r8
	andq	%rcx, %rax
	movq	%r8, 16(%rbp)
	movq	%rax, 8(%rbp)
	movq	112(%r10), %rax
	movq	112(%r10), %rbx
	movq	88(%r10), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %r11
	movq	104(%r10), %rax
	movq	104(%r10), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %rsi
	movq	96(%r10), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r9
	movq	%r9, %rax
	mulq	72(%r10)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r8, %rax
	mulq	64(%r10)
	addq	%rax, %r14
	movq	80(%r10), %rax
	adcq	%rdx, %r15
	mulq	40(%r10)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	56(%r10)
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	48(%r10)
	addq	%rax, %r14
	movq	48(%r10), %rax
	adcq	%rdx, %r15
	mulq	80(%r10)
	movq	%r14, %r12
	movq	%r15, %r13
	movq	%r12, -104(%rsp)
	movq	%r13, -96(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rdi, %rax
	mulq	40(%r10)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	72(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	mulq	64(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	56(%r10)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	56(%r10), %rax
	movq	%rdx, %r15
	mulq	80(%r10)
	movq	%r14, -88(%rsp)
	movq	%r15, -80(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	mulq	48(%r10)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	40(%r10)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	72(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	64(%r10)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	movq	%r8, %r14
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	movq	%r9, %r15
	addq	%rax, %r14
	movq	64(%r10), %rax
	adcq	%rdx, %r15
	mulq	80(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	56(%r10)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	48(%r10)
	addq	%rax, %r12
	movq	104(%r10), %rax
	adcq	%rdx, %r13
	mulq	40(%r10)
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	72(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	72(%r10), %rax
	adcq	%rdx, %r9
	mulq	80(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	64(%r10)
	movq	%r12, %rsi
	movq	%r13, %rdi
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	56(%r10)
	addq	%rax, %rsi
	movq	48(%r10), %rax
	adcq	%rdx, %rdi
	mulq	104(%r10)
	addq	%rax, %rsi
	movq	40(%r10), %rax
	adcq	%rdx, %rdi
	mulq	112(%r10)
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %r11
	andq	%rcx, %r14
	andq	%rcx, %r8
	shrdq	$51, %rdi, %rsi
	andq	%rcx, %rax
	movq	%r8, 64(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	leaq	(%rsi,%rdx,2), %rdx
	movq	%r11, %rsi
	addq	%rax, %rdx
	movq	-88(%rsp), %rax
	andq	%rcx, %rsi
	movq	%rdx, %rdi
	andq	%rcx, %rdx
	movq	%rsi, 72(%rbp)
	shrq	$51, %rdi
	andq	%rcx, %rax
	movq	%rdx, 40(%rbp)
	addq	%rdi, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	addq	%rax, %r14
	andq	%rcx, %rdx
	movq	%rdx, 48(%rbp)
	movq	%r14, 56(%rbp)
	movq	152(%r10), %rbx
	movq	136(%r10), %r8
	movq	112(%r10), %rsi
	leaq	(%rbx,%rbx,8), %rax
	movq	%rbx, -16(%rsp)
	movq	104(%r10), %r15
	leaq	(%rbx,%rax,2), %rax
	movq	144(%r10), %rbx
	movq	120(%r10), %r14
	movq	80(%r10), %r9
	movq	96(%r10), %r11
	movq	%rax, -72(%rsp)
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rdi
	leaq	(%r8,%r8,8), %rax
	movq	%r11, -88(%rsp)
	movq	%rdi, -56(%rsp)
	leaq	(%r8,%rax,2), %rdx
	movq	128(%r10), %rdi
	movq	88(%r10), %rax
	movq	%rdx, -40(%rsp)
	movq	%rax, -104(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	-104(%rsp), %r10
	leaq	(%rdi,%rax,2), %r13
	movq	%r13, %rax
	mulq	%rsi
	movq	%rax, %r12
	movq	-40(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	-72(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-40(%rsp), %rax
	movq	%r12, -40(%rsp)
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-56(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	-72(%rsp), %rax
	adcq	%rdx, %r11
	mulq	-88(%rsp)
	movq	%r13, -32(%rsp)
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	movq	%rax, %r12
	movq	-88(%rsp), %rax
	adcq	%r11, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%r13, -48(%rsp)
	movq	%rax, %r10
	movq	-104(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-56(%rsp), %rax
	movq	%r12, -56(%rsp)
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-72(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%r11, -64(%rsp)
	movq	%rax, %r12
	movq	-88(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-72(%rsp), %rax
	movq	%r10, -72(%rsp)
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%r12, %rax
	movq	%r11, %r12
	movq	%r10, %r11
	adcq	%r13, %rdx
	shrdq	$51, %r12, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%r12, %rsi
	movq	%r13, %rdi
	addq	%rax, %rsi
	movq	-88(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	movq	-16(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r9
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	andq	%rcx, %r10
	andq	%rcx, %rax
	shrdq	$51, %rdx, %rsi
	movq	%r10, 104(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	movq	%rax, 112(%rbp)
	leaq	(%rsi,%rdx,2), %rsi
	movq	-40(%rsp), %rdx
	andq	%rcx, %rdx
	addq	%rdx, %rsi
	movq	-56(%rsp), %rdx
	movq	%rsi, %rdi
	andq	%rcx, %rsi
	andq	%rcx, %rdx
	shrq	$51, %rdi
	movq	%rsi, 80(%rbp)
	addq	%rdi, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rcx, %rsi
	movq	%rsi, 88(%rbp)
	movq	-72(%rsp), %rsi
	andq	%rcx, %rsi
	addq	%rsi, %rdx
	movq	%rdx, 96(%rbp)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1405:

	.size	x25519_ge_p1p1_to_p2, .-x25519_ge_p1p1_to_p2
# WAS .section	.text.x25519_ge_p1p1_to_p3,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_p1p1_to_p3
	.hidden	x25519_ge_p1p1_to_p3
	.type	x25519_ge_p1p1_to_p3, @function
.Lx25519_ge_p1p1_to_p3_local_target:
x25519_ge_p1p1_to_p3:
.LFB1406:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r10
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	152(%rsi), %rax
	movq	152(%rsi), %rbx
	movq	136(%r10), %r11
	leaq	(%rax,%rax,8), %rax
	movq	128(%r10), %rdi
	leaq	(%rbx,%rax,2), %rsi
	movq	144(%r10), %rax
	movq	144(%r10), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %rcx
	leaq	(%r11,%r11,8), %rax
	leaq	(%r11,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rbx
	movq	%rbx, %rax
	mulq	32(%r10)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r8, %rax
	mulq	24(%r10)
	addq	%rax, %r14
	movq	120(%r10), %rax
	adcq	%rdx, %r15
	mulq	(%r10)
	addq	%rax, %r14
	movq	%rcx, %rax
	adcq	%rdx, %r15
	mulq	16(%r10)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	8(%r10)
	addq	%rax, %r14
	movq	8(%r10), %rax
	adcq	%rdx, %r15
	mulq	120(%r10)
	movq	%r14, %r12
	movq	%r15, %r13
	movq	%r12, -104(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rdi, %rax
	mulq	(%r10)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	32(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	mulq	24(%r10)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	16(%r10)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	16(%r10), %rax
	movq	%rdx, %r15
	mulq	120(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	mulq	8(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	(%r10)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	32(%r10)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rsi, %rax
	addq	%r8, %rcx
	adcq	%r9, %rbx
	mulq	24(%r10)
	addq	%rax, %rcx
	movq	%r14, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	24(%r10), %rax
	adcq	%rdx, %rbx
	mulq	120(%r10)
	movq	%rcx, %r8
	movq	%rbx, %r9
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rdi, %rax
	mulq	16(%r10)
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	8(%r10)
	addq	%rax, %rcx
	movq	144(%r10), %rax
	adcq	%rdx, %rbx
	mulq	(%r10)
	addq	%rax, %rcx
	movq	%rsi, %rax
	movq	-104(%rsp), %rsi
	adcq	%rdx, %rbx
	mulq	32(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	addq	%rcx, %r12
	adcq	%rbx, %r13
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	32(%r10), %rax
	adcq	%rdx, %r13
	mulq	120(%r10)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rdi, %rax
	mulq	24(%r10)
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	16(%r10)
	addq	%rax, %rcx
	movq	8(%r10), %rax
	adcq	%rdx, %rbx
	mulq	144(%r10)
	addq	%rax, %rcx
	movq	(%r10), %rax
	adcq	%rdx, %rbx
	mulq	152(%r10)
	addq	%rcx, %rax
	movq	%r12, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r13, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	movabsq	$2251799813685247, %rcx
	adcq	%rbx, %rdx
	movq	%rax, -88(%rsp)
	andq	%rcx, %rsi
	andq	%rcx, %r14
	shrdq	$51, %rdx, %rax
	andq	%rcx, %r8
	andq	%rcx, %r12
	leaq	(%rax,%rax,8), %rdx
	movq	%r12, 24(%rbp)
	leaq	(%rax,%rdx,2), %rdx
	movq	-88(%rsp), %rax
	addq	%rsi, %rdx
	movq	%rdx, %rsi
	andq	%rcx, %rdx
	andq	%rcx, %rax
	shrq	$51, %rsi
	movq	%rdx, 0(%rbp)
	addq	%rsi, %r14
	movq	%rax, 32(%rbp)
	movq	%r14, %rdx
	shrq	$51, %r14
	addq	%r14, %r8
	andq	%rcx, %rdx
	movq	%rdx, 8(%rbp)
	movq	%r8, 16(%rbp)
	movq	112(%r10), %rax
	movq	112(%r10), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %r11
	movq	104(%r10), %rax
	movq	104(%r10), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %rsi
	movq	96(%r10), %rbx
	movq	88(%r10), %rdi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r9
	movq	%r9, %rax
	mulq	72(%r10)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r8, %rax
	mulq	64(%r10)
	addq	%rax, %r14
	movq	80(%r10), %rax
	adcq	%rdx, %r15
	mulq	40(%r10)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	56(%r10)
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	48(%r10)
	addq	%rax, %r14
	movq	48(%r10), %rax
	adcq	%rdx, %r15
	mulq	80(%r10)
	movq	%r14, %r12
	movq	%r15, %r13
	movq	%r12, -104(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rdi, %rax
	mulq	40(%r10)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	72(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	mulq	64(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	56(%r10)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	56(%r10), %rax
	movq	%rdx, %r15
	mulq	80(%r10)
	movq	%r14, -88(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	mulq	48(%r10)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	40(%r10)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	72(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	64(%r10)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	movq	%r8, %r14
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	movq	%r9, %r15
	addq	%rax, %r14
	movq	64(%r10), %rax
	adcq	%rdx, %r15
	mulq	80(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	56(%r10)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	48(%r10)
	addq	%rax, %r12
	movq	104(%r10), %rax
	adcq	%rdx, %r13
	mulq	40(%r10)
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	72(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	72(%r10), %rax
	adcq	%rdx, %r9
	mulq	80(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	64(%r10)
	movq	%r12, %rsi
	movq	%r13, %rdi
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	56(%r10)
	addq	%rax, %rsi
	movq	48(%r10), %rax
	adcq	%rdx, %rdi
	mulq	104(%r10)
	addq	%rax, %rsi
	movq	40(%r10), %rax
	adcq	%rdx, %rdi
	mulq	112(%r10)
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %r11
	andq	%rcx, %r14
	andq	%rcx, %r8
	shrdq	$51, %rdi, %rsi
	andq	%rcx, %rax
	movq	%r8, 64(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	leaq	(%rsi,%rdx,2), %rdx
	movq	%r11, %rsi
	addq	%rax, %rdx
	movq	-88(%rsp), %rax
	andq	%rcx, %rsi
	movq	%rdx, %rdi
	andq	%rcx, %rdx
	movq	%rsi, 72(%rbp)
	shrq	$51, %rdi
	andq	%rcx, %rax
	movq	%rdx, 40(%rbp)
	addq	%rdi, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	addq	%rax, %r14
	andq	%rcx, %rdx
	movq	%r14, 56(%rbp)
	movq	%rdx, 48(%rbp)
	movq	152(%r10), %rax
	movq	152(%r10), %rbx
	movq	128(%r10), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %r11
	movq	144(%r10), %rax
	movq	144(%r10), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %rsi
	movq	136(%r10), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r9
	movq	%r9, %rax
	mulq	112(%r10)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r8, %rax
	mulq	104(%r10)
	addq	%rax, %r14
	movq	120(%r10), %rax
	adcq	%rdx, %r15
	mulq	80(%r10)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	96(%r10)
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	88(%r10)
	addq	%rax, %r14
	movq	88(%r10), %rax
	adcq	%rdx, %r15
	mulq	120(%r10)
	movq	%r14, %r12
	movq	%r15, %r13
	movq	%r12, -104(%rsp)
	movq	%r13, -96(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rdi, %rax
	mulq	80(%r10)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	112(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	mulq	104(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	96(%r10)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	96(%r10), %rax
	movq	%rdx, %r15
	mulq	120(%r10)
	movq	%r14, -88(%rsp)
	movq	%r15, -80(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	mulq	88(%r10)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	80(%r10)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	112(%r10)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	104(%r10)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	movq	%r8, %r14
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	movq	%r9, %r15
	addq	%rax, %r14
	movq	104(%r10), %rax
	adcq	%rdx, %r15
	mulq	120(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	96(%r10)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	88(%r10)
	addq	%rax, %r12
	movq	144(%r10), %rax
	adcq	%rdx, %r13
	mulq	80(%r10)
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	112(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	112(%r10), %rax
	adcq	%rdx, %r9
	mulq	120(%r10)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	104(%r10)
	movq	%r12, %rsi
	movq	%r13, %rdi
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	96(%r10)
	addq	%rax, %rsi
	movq	88(%r10), %rax
	adcq	%rdx, %rdi
	mulq	144(%r10)
	addq	%rax, %rsi
	movq	80(%r10), %rax
	adcq	%rdx, %rdi
	mulq	152(%r10)
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %r11
	andq	%rcx, %r14
	andq	%rcx, %r8
	shrdq	$51, %rdi, %rsi
	andq	%rcx, %rax
	movq	%r8, 104(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	leaq	(%rsi,%rdx,2), %rdx
	movq	%r11, %rsi
	addq	%rax, %rdx
	movq	-88(%rsp), %rax
	andq	%rcx, %rsi
	movq	%rdx, %rdi
	andq	%rcx, %rdx
	movq	%rsi, 112(%rbp)
	shrq	$51, %rdi
	andq	%rcx, %rax
	movq	%rdx, 80(%rbp)
	addq	%rdi, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	addq	%rax, %r14
	andq	%rcx, %rdx
	movq	%rdx, 88(%rbp)
	movq	%r14, 96(%rbp)
	movq	72(%r10), %rbx
	movq	32(%r10), %rsi
	leaq	(%rbx,%rbx,8), %rax
	movq	%rbx, -16(%rsp)
	movq	56(%r10), %r8
	leaq	(%rbx,%rax,2), %rax
	movq	64(%r10), %rbx
	movq	24(%r10), %r15
	movq	40(%r10), %r14
	movq	(%r10), %r9
	movq	%rax, -72(%rsp)
	leaq	(%rbx,%rbx,8), %rax
	movq	16(%r10), %r11
	leaq	(%rbx,%rax,2), %rdi
	leaq	(%r8,%r8,8), %rax
	movq	%rdi, -56(%rsp)
	leaq	(%r8,%rax,2), %rdx
	movq	48(%r10), %rdi
	movq	8(%r10), %rax
	movq	%rdx, -40(%rsp)
	movq	%r11, -88(%rsp)
	movq	%rax, -104(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	-104(%rsp), %r10
	leaq	(%rdi,%rax,2), %r13
	movq	%r13, %rax
	mulq	%rsi
	movq	%rax, %r12
	movq	-40(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	-72(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r13, -32(%rsp)
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-40(%rsp), %rax
	movq	%r12, -40(%rsp)
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-56(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	-72(%rsp), %rax
	adcq	%rdx, %r11
	mulq	-88(%rsp)
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	movq	%rax, %r12
	movq	-88(%rsp), %rax
	adcq	%r11, %rdx
	movq	%rdx, %r13
	mulq	%r14
	movq	%r13, -48(%rsp)
	movq	%rax, %r10
	movq	-104(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-56(%rsp), %rax
	movq	%r12, -56(%rsp)
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-72(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%rax, %r12
	movq	-88(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-72(%rsp), %rax
	movq	%r10, -72(%rsp)
	adcq	%rdx, %r13
	movq	%r11, -64(%rsp)
	mulq	%rsi
	addq	%r12, %rax
	movq	%r11, %r12
	movq	%r10, %r11
	adcq	%r13, %rdx
	shrdq	$51, %r12, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%r12, %rsi
	movq	%r13, %rdi
	addq	%rax, %rsi
	movq	-88(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	-104(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	movq	-16(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r9
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	andq	%rcx, %r10
	andq	%rcx, %rax
	shrdq	$51, %rdx, %rsi
	movq	%r10, 144(%rbp)
	leaq	(%rsi,%rsi,8), %rdx
	movq	%rax, 152(%rbp)
	leaq	(%rsi,%rdx,2), %rsi
	movq	-40(%rsp), %rdx
	andq	%rcx, %rdx
	addq	%rdx, %rsi
	movq	-56(%rsp), %rdx
	movq	%rsi, %rdi
	andq	%rcx, %rsi
	andq	%rcx, %rdx
	shrq	$51, %rdi
	movq	%rsi, 120(%rbp)
	addq	%rdi, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rcx, %rsi
	movq	%rsi, 128(%rbp)
	movq	-72(%rsp), %rsi
	andq	%rcx, %rsi
	addq	%rsi, %rdx
	movq	%rdx, 136(%rbp)
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1406:

	.size	x25519_ge_p1p1_to_p3, .-x25519_ge_p1p1_to_p3
# WAS .section	.text.x25519_ge_add,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_add
	.hidden	x25519_ge_add
	.type	x25519_ge_add, @function
.Lx25519_ge_add_local_target:
x25519_ge_add:
.LFB1412:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %rcx
	movq	%rdi, %r15
	movq	%rdx, %rsi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$144, %rsp
	.cfi_def_cfa_offset 200
	movq	(%rcx), %rax
	addq	40(%rcx), %rax
	movq	8(%rcx), %r11
	movq	16(%rcx), %r10
	movq	%rax, %rbx
	addq	48(%rcx), %r11
	addq	56(%rcx), %r10
	movq	24(%rcx), %rax
	movq	32(%rcx), %rdi
	addq	64(%rcx), %rax
	addq	72(%rcx), %rdi
	movq	%rbx, (%r15)
	movq	%rax, %r14
	movq	%r11, 8(%r15)
	movq	%r10, 16(%r15)
	movq	%rax, 24(%r15)
	movabsq	$4503599627370458, %rax
	movq	%rdi, 32(%r15)
	addq	40(%rcx), %rax
	subq	(%rcx), %rax
	movq	%rax, %rdx
	movabsq	$4503599627370494, %rax
	addq	48(%rcx), %rax
	subq	8(%rcx), %rax
	movq	%rax, %r9
	movq	%rdx, -64(%rsp)
	movabsq	$4503599627370494, %rax
	addq	56(%rcx), %rax
	subq	16(%rcx), %rax
	movq	%r9, -120(%rsp)
	movq	%rax, %r8
	movq	%r10, -40(%rsp)
	movabsq	$4503599627370494, %rax
	addq	64(%rcx), %rax
	subq	24(%rcx), %rax
	movq	%r8, -104(%rsp)
	movq	%rax, %rbp
	movq	%r11, -56(%rsp)
	movabsq	$4503599627370494, %rax
	addq	72(%rcx), %rax
	subq	32(%rcx), %rax
	movq	%rdx, 40(%r15)
	movq	%r9, 48(%r15)
	movq	%r8, 56(%r15)
	movq	%rbp, 64(%r15)
	movq	%rax, 72(%r15)
	movq	32(%rsi), %r13
	movq	%rax, -72(%rsp)
	leaq	0(%r13,%r13,8), %rax
	movq	%rbp, -80(%rsp)
	leaq	0(%r13,%rax,2), %rbp
	movq	24(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r8
	movq	16(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r9
	movq	8(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r13
	movq	%r13, %rax
	mulq	%rdi
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	(%rsi)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, -24(%rsp)
	movq	%r11, -16(%rsp)
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	-40(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	(%rsi)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	8(%rsi)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rbp, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	(%rsi)
	addq	%rax, %r8
	movq	-56(%rsp), %rax
	movq	%r12, -8(%rsp)
	adcq	%rdx, %r9
	mulq	8(%rsi)
	movq	%r8, %r10
	movq	%r12, %r8
	movq	%r9, %r11
	movq	%r13, (%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	16(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rbp, %rax
	movabsq	$2251799813685247, %rbp
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	mulq	(%rsi)
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	8(%rsi)
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-56(%rsp), %rax
	adcq	%rdx, %r10
	mulq	16(%rsi)
	movq	%r10, %r11
	movq	%r9, %r10
	movq	%r12, %r9
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	24(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	andq	%rbp, %rax
	movq	%rax, 104(%rsp)
	movq	%rdx, %r11
	movq	%rdi, %rax
	movq	64(%rsi), %rdi
	mulq	(%rsi)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	mulq	8(%rsi)
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	16(%rsi)
	addq	%rax, %r8
	movq	-56(%rsp), %rax
	adcq	%rdx, %r9
	mulq	24(%rsi)
	addq	%rax, %r8
	movq	%rbx, %rax
	movq	72(%rsi), %rbx
	adcq	%rdx, %r9
	mulq	32(%rsi)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r10, %r9
	movq	-8(%rsp), %r10
	shrdq	$51, %r11, %r9
	xorl	%r11d, %r11d
	addq	%r9, %rax
	adcq	%r11, %rdx
	movq	%rax, %r14
	movq	-24(%rsp), %r11
	andq	%rbp, %r10
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r12
	andq	%rbp, %r14
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r11
	movq	%r14, 112(%rsp)
	movq	56(%rsi), %r14
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, %rax
	addq	%r11, %rdx
	movq	%rdx, %r11
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r11
	movq	%rax, %r10
	shrq	$51, %rax
	movq	%r11, 120(%rsp)
	leaq	(%r12,%rax), %r12
	leaq	(%rbx,%rbx,8), %rax
	andq	%rbp, %r10
	leaq	(%rbx,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	movq	%r12, 8(%rsp)
	leaq	(%rdi,%rax,2), %r8
	movq	48(%rsi), %rdi
	leaq	(%r14,%r14,8), %rax
	movq	%r10, 128(%rsp)
	leaq	(%r14,%rax,2), %r9
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	%r11, %rax
	mulq	-72(%rsp)
	movq	%rax, %r12
	movq	-80(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	40(%rsi)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	movq	-72(%rsp), %r9
	adcq	%rdx, %r11
	movq	%r10, -56(%rsp)
	mulq	%r9
	movq	%r11, -48(%rsp)
	movq	%rax, %r12
	movq	-80(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	40(%rsi)
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r9
	movq	%r12, -40(%rsp)
	movq	%rax, %r8
	movq	-80(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	adcq	%rdx, %r9
	mulq	40(%rsi)
	addq	%rax, %r8
	movq	-120(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %r10
	movq	%r12, %r8
	mulq	%rdi
	movq	%r9, %r11
	addq	%rax, %r10
	movq	-64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	-64(%rsp), %rbx
	movq	%rdx, %r13
	mulq	-72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	-80(%rsp), %rax
	mulq	40(%rsi)
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-120(%rsp), %rax
	adcq	%rdx, %r10
	mulq	%r14
	movq	%r10, %r11
	movq	%r9, %r10
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbx, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	64(%rsi)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	-72(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	andq	%rbp, %rdx
	movq	%rdx, 80(%rsp)
	mulq	40(%rsi)
	movq	%rax, %r10
	movq	-80(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	64(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	72(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, %rbx
	adcq	%r9, %rdx
	andq	%rbp, %rbx
	shrdq	$51, %rdx, %rax
	movq	%rbx, 88(%rsp)
	movq	-56(%rsp), %r9
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	-40(%rsp), %rax
	movq	136(%rcx), %r14
	andq	%rbp, %r9
	addq	%r9, %rdx
	andq	%rbp, %rax
	movq	%rdx, %r9
	shrq	$51, %rdx
	addq	%rdx, %rax
	movq	%r12, %rdx
	andq	%rbp, %r9
	andq	%rbp, %rdx
	movq	%rax, %rdi
	shrq	$51, %rax
	movq	%r9, 96(%rsp)
	leaq	(%rdx,%rax), %r13
	movq	152(%rcx), %rdx
	andq	%rbp, %rdi
	movq	%rdi, -24(%rsp)
	movq	128(%rcx), %rdi
	leaq	(%rdx,%rdx,8), %rax
	movq	%r13, -8(%rsp)
	leaq	(%rdx,%rax,2), %rbx
	movq	144(%rcx), %rdx
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r9
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	%r11, %rax
	mulq	152(%rsi)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	144(%rsi)
	addq	%rax, %r12
	movq	120(%rcx), %rax
	adcq	%rdx, %r13
	mulq	120(%rsi)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	136(%rsi)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	128(%rsi)
	addq	%rax, %r12
	movq	128(%rsi), %rax
	adcq	%rdx, %r13
	mulq	120(%rcx)
	movq	%r12, -120(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	120(%rsi)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	152(%rsi)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	144(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	136(%rsi)
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	136(%rsi), %rax
	movq	%rdx, %r11
	mulq	120(%rcx)
	movq	%r10, -104(%rsp)
	movq	%r11, -96(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	128(%rsi)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	120(%rsi)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	152(%rsi)
	movq	%r12, %r8
	movq	%r13, %r9
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	144(%rsi)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	144(%rsi), %rax
	adcq	%rdx, %r9
	mulq	120(%rcx)
	movq	%r8, %r12
	movq	%r9, %r13
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	136(%rsi)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	128(%rsi)
	addq	%rax, %r10
	movq	144(%rcx), %rax
	adcq	%rdx, %r11
	mulq	120(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	movq	104(%rcx), %rbx
	adcq	%rdx, %r11
	mulq	152(%rsi)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r12, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	152(%rsi), %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	andq	%rbp, %rdx
	movq	%rdx, 40(%rsp)
	mulq	120(%rcx)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	movq	88(%rsi), %rdi
	mulq	144(%rsi)
	addq	%rax, %r10
	movq	%r14, %rax
	movq	104(%rsi), %r14
	adcq	%rdx, %r11
	mulq	136(%rsi)
	addq	%rax, %r10
	movq	128(%rsi), %rax
	adcq	%rdx, %r11
	mulq	144(%rcx)
	addq	%rax, %r10
	movq	120(%rsi), %rax
	adcq	%rdx, %r11
	mulq	152(%rcx)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	-120(%rsp), %r8
	adcq	%r9, %rdx
	movq	%rax, %r11
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r8
	andq	%rbp, %r11
	leaq	(%rax,%rax,8), %rdx
	movq	%r11, 48(%rsp)
	movq	112(%rcx), %r11
	leaq	(%rax,%rdx,2), %rdx
	movq	-104(%rsp), %rax
	addq	%r8, %rdx
	andq	%rbp, %rax
	movq	%rdx, %r8
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r8
	movq	%rax, %rdx
	shrq	$51, %rax
	movq	%r8, 56(%rsp)
	movq	96(%rsi), %r8
	leaq	(%r12,%rax), %r12
	andq	%rbp, %rdx
	movq	%r12, 72(%rsp)
	movq	112(%rsi), %r12
	movq	%rdx, 64(%rsp)
	movq	88(%rcx), %rdx
	leaq	(%r12,%r12,8), %rax
	movq	%r12, 16(%rsp)
	leaq	(%r12,%rax,2), %rax
	movq	%rdx, -104(%rsp)
	movq	%rax, -64(%rsp)
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %r9
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %r10
	movq	96(%rcx), %rax
	movq	%rax, -120(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	80(%rsi), %rsi
	movq	80(%rcx), %r12
	leaq	(%rdi,%rax,2), %rcx
	movq	%rbx, -72(%rsp)
	movq	%rcx, %rax
	movq	%r11, -56(%rsp)
	mulq	%r11
	movq	%r12, -80(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	-104(%rsp)
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, %rcx
	mulq	%rsi
	movq	%r13, %rbx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%r11
	movq	%rcx, 24(%rsp)
	movq	%rbx, 32(%rsp)
	movq	%rax, %r10
	movq	-72(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	-120(%rsp)
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	-56(%rsp)
	movq	%r12, %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	-64(%rsp), %rax
	mulq	-72(%rsp)
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	xorl	%ebx, %ebx
	addq	%r9, %rax
	adcq	%rbx, %rdx
	movq	%rax, -40(%rsp)
	movq	-64(%rsp), %rax
	movq	%rdx, -32(%rsp)
	mulq	-56(%rsp)
	movq	-40(%rsp), %r9
	movq	%rax, %rcx
	movq	-72(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	-120(%rsp), %rax
	adcq	%rdx, %rbx
	movq	%rcx, %r10
	mulq	%rdi
	movq	%rbx, %r11
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%r10, %rax
	movq	-32(%rsp), %r10
	adcq	%r11, %rdx
	xorl	%ebx, %ebx
	shrdq	$51, %r10, %r9
	movq	%rax, %r10
	movq	-56(%rsp), %rax
	movq	%rdx, %r11
	addq	%r9, %r10
	movq	96(%rsp), %r9
	movq	128(%rsp), %r13
	adcq	%rbx, %r11
	mulq	%rsi
	movq	24(%rsp), %rsi
	movq	%rax, %rcx
	movq	-72(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%rdi
	movq	-24(%rsp), %rdi
	addq	%rax, %rcx
	movq	-120(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r8
	movq	120(%rsp), %r8
	addq	%rax, %rcx
	movq	-104(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r14
	movq	112(%rsp), %r14
	addq	%rax, %rcx
	movq	-80(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	16(%rsp)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r10, %rbx
	shrdq	$51, %r11, %rbx
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	movabsq	$4503599627370458, %rcx
	adcq	%rbx, %rdx
	addq	%r8, %rcx
	movq	%rax, -120(%rsp)
	andq	%rbp, %rsi
	subq	%r9, %rcx
	shrdq	$51, %rdx, %rax
	movq	%rdx, -112(%rsp)
	andq	%rbp, %r12
	movabsq	$4503599627370494, %rbx
	movq	%rcx, (%r15)
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r10
	leaq	0(%r13,%rbx), %rcx
	leaq	(%rax,%rdx,2), %rdx
	movq	-8(%rsp), %rax
	subq	%rdi, %rcx
	movq	104(%rsp), %rdi
	addq	%rsi, %rdx
	movq	%rcx, 8(%r15)
	movq	8(%rsp), %rcx
	movq	%rdx, %rsi
	andq	%rbp, %rdx
	shrq	$51, %rsi
	addq	%rbx, %rcx
	addq	%rsi, %r12
	leaq	(%rdx,%rdx), %rsi
	shrq	$50, %rdx
	subq	%rax, %rcx
	movq	80(%rsp), %rax
	andq	%rbp, %rsi
	movq	%rcx, 16(%r15)
	leaq	(%rdi,%rbx), %rcx
	subq	%rax, %rcx
	movq	%rcx, 24(%r15)
	leaq	(%r14,%rbx), %rcx
	movq	88(%rsp), %rbx
	subq	%rbx, %rcx
	movq	%rcx, 32(%r15)
	movq	%r9, %rcx
	addq	%r8, %rcx
	movq	%rcx, 40(%r15)
	movq	-24(%rsp), %rcx
	addq	%r13, %rcx
	movq	-8(%rsp), %r13
	movq	%rcx, 48(%r15)
	movq	8(%rsp), %rcx
	addq	%r13, %rcx
	movq	%rcx, 56(%r15)
	leaq	(%rax,%rdi), %rcx
	movq	%rcx, 64(%r15)
	leaq	(%rbx,%r14), %rcx
	movq	%rcx, 72(%r15)
	movq	-40(%rsp), %rdi
	movq	%r12, %rcx
	shrq	$51, %r12
	andq	%rbp, %rcx
	movq	-120(%rsp), %rax
	movq	72(%rsp), %r13
	andq	%rbp, %rdi
	leaq	(%rdx,%rcx,2), %rdx
	shrq	$50, %rcx
	movq	40(%rsp), %rbx
	addq	%rdi, %r12
	andq	%rbp, %rax
	movq	48(%rsp), %r14
	leaq	(%rcx,%r12,2), %rdi
	movq	%rdi, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%r10,2), %rcx
	movq	56(%rsp), %r10
	movq	%rcx, %r9
	shrq	$51, %r9
	leaq	(%r9,%rax,2), %rax
	movq	%rax, %r9
	shrq	$51, %r9
	movq	%r9, %r8
	leaq	(%r9,%r9,8), %r9
	leaq	(%r8,%r9,2), %r9
	addq	%rsi, %r9
	movq	%r9, %rsi
	shrq	$51, %rsi
	andq	%rbp, %rdx
	andq	%rbp, %r9
	andq	%rbp, %rcx
	addq	%rsi, %rdx
	andq	%rbp, %rax
	andq	%rbp, %rdi
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rbp, %rsi
	movq	64(%rsp), %rbp
	addq	%rdx, %rdi
	leaq	(%r9,%r10), %rdx
	movq	%rdx, 80(%r15)
	movq	%rsi, %r8
	leaq	(%rsi,%rbp), %rdx
	movabsq	$4503599627370458, %rsi
	movq	%rdx, 88(%r15)
	leaq	(%rdi,%r13), %rdx
	subq	%r10, %rsi
	movq	%rdx, 96(%r15)
	leaq	(%rcx,%rbx), %rdx
	addq	%r9, %rsi
	movq	%rdx, 104(%r15)
	leaq	(%rax,%r14), %rdx
	movq	%rdx, 112(%r15)
	movabsq	$4503599627370494, %rdx
	subq	%rbp, %rdx
	movq	%rsi, 120(%r15)
	addq	%r8, %rdx
	movq	%rdx, 128(%r15)
	movabsq	$4503599627370494, %rdx
	subq	%r13, %rdx
	addq	%rdi, %rdx
	movq	%rdx, 136(%r15)
	movabsq	$4503599627370494, %rdx
	subq	%rbx, %rdx
	addq	%rcx, %rdx
	movq	%rdx, 144(%r15)
	movabsq	$4503599627370494, %rdx
	subq	%r14, %rdx
	addq	%rdx, %rax
	movq	%rax, 152(%r15)
	addq	$144, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1412:

	.size	x25519_ge_add, .-x25519_ge_add
# WAS .section	.text.x25519_ge_sub,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_sub
	.hidden	x25519_ge_sub
	.type	x25519_ge_sub, @function
.Lx25519_ge_sub_local_target:
x25519_ge_sub:
.LFB1413:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %rcx
	movq	%rdi, %r15
	movq	%rdx, %rsi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$144, %rsp
	.cfi_def_cfa_offset 200
	movq	(%rcx), %rax
	addq	40(%rcx), %rax
	movq	8(%rcx), %r11
	movq	16(%rcx), %r10
	movq	%rax, %rbx
	addq	48(%rcx), %r11
	addq	56(%rcx), %r10
	movq	24(%rcx), %rax
	movq	32(%rcx), %rdi
	addq	64(%rcx), %rax
	addq	72(%rcx), %rdi
	movq	%rbx, (%r15)
	movq	%rax, %r14
	movq	%r11, 8(%r15)
	movq	%r10, 16(%r15)
	movq	%rax, 24(%r15)
	movabsq	$4503599627370458, %rax
	movq	%rdi, 32(%r15)
	addq	40(%rcx), %rax
	subq	(%rcx), %rax
	movq	%rax, %rdx
	movabsq	$4503599627370494, %rax
	addq	48(%rcx), %rax
	subq	8(%rcx), %rax
	movq	%rax, %r9
	movq	%rdx, -64(%rsp)
	movabsq	$4503599627370494, %rax
	addq	56(%rcx), %rax
	subq	16(%rcx), %rax
	movq	%r9, -120(%rsp)
	movq	%rax, %r8
	movq	%r10, -40(%rsp)
	movabsq	$4503599627370494, %rax
	addq	64(%rcx), %rax
	subq	24(%rcx), %rax
	movq	%r8, -104(%rsp)
	movq	%rax, %rbp
	movq	%r11, -56(%rsp)
	movabsq	$4503599627370494, %rax
	addq	72(%rcx), %rax
	subq	32(%rcx), %rax
	movq	%rdx, 40(%r15)
	movq	%r9, 48(%r15)
	movq	%r8, 56(%r15)
	movq	%rbp, 64(%r15)
	movq	%rax, 72(%r15)
	movq	72(%rsi), %r13
	movq	%rax, -72(%rsp)
	leaq	0(%r13,%r13,8), %rax
	movq	%rbp, -80(%rsp)
	leaq	0(%r13,%rax,2), %rbp
	movq	64(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r8
	movq	56(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r9
	movq	48(%rsi), %r13
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %r13
	movq	%r13, %rax
	mulq	%rdi
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	40(%rsi)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	movq	%r10, -24(%rsp)
	movq	%r11, -16(%rsp)
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	-40(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	-56(%rsp), %rax
	adcq	%rdx, %r13
	mulq	40(%rsi)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	48(%rsi)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rbp, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	40(%rsi)
	addq	%rax, %r8
	movq	-56(%rsp), %rax
	movq	%r12, -8(%rsp)
	adcq	%rdx, %r9
	mulq	48(%rsi)
	movq	%r8, %r10
	movq	%r12, %r8
	movq	%r9, %r11
	movq	%r13, (%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	56(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rbp, %rax
	movabsq	$2251799813685247, %rbp
	movq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	mulq	40(%rsi)
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	48(%rsi)
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-56(%rsp), %rax
	adcq	%rdx, %r10
	mulq	56(%rsi)
	movq	%r10, %r11
	movq	%r9, %r10
	movq	%r12, %r9
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	64(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	andq	%rbp, %rax
	movq	%rax, 104(%rsp)
	movq	%rdx, %r11
	movq	%rdi, %rax
	movq	24(%rsi), %rdi
	mulq	40(%rsi)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	mulq	48(%rsi)
	addq	%rax, %r8
	movq	-40(%rsp), %rax
	adcq	%rdx, %r9
	mulq	56(%rsi)
	addq	%rax, %r8
	movq	-56(%rsp), %rax
	adcq	%rdx, %r9
	mulq	64(%rsi)
	addq	%rax, %r8
	movq	%rbx, %rax
	movq	32(%rsi), %rbx
	adcq	%rdx, %r9
	mulq	72(%rsi)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r10, %r9
	movq	-8(%rsp), %r10
	shrdq	$51, %r11, %r9
	xorl	%r11d, %r11d
	addq	%r9, %rax
	adcq	%r11, %rdx
	movq	%rax, %r14
	movq	-24(%rsp), %r11
	andq	%rbp, %r10
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r12
	andq	%rbp, %r14
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r11
	movq	%r14, 112(%rsp)
	movq	16(%rsi), %r14
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, %rax
	addq	%r11, %rdx
	movq	%rdx, %r11
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r11
	movq	%rax, %r10
	shrq	$51, %rax
	movq	%r11, 120(%rsp)
	leaq	(%r12,%rax), %r12
	leaq	(%rbx,%rbx,8), %rax
	andq	%rbp, %r10
	leaq	(%rbx,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	movq	%r12, 8(%rsp)
	leaq	(%rdi,%rax,2), %r8
	movq	8(%rsi), %rdi
	leaq	(%r14,%r14,8), %rax
	movq	%r10, 128(%rsp)
	leaq	(%r14,%rax,2), %r9
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	%r11, %rax
	mulq	-72(%rsp)
	movq	%rax, %r12
	movq	-80(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	(%rsi)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r9, %rax
	movq	-72(%rsp), %r9
	adcq	%rdx, %r11
	movq	%r10, -56(%rsp)
	mulq	%r9
	movq	%r11, -48(%rsp)
	movq	%rax, %r12
	movq	-80(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	-104(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	(%rsi)
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r9
	movq	%r12, -40(%rsp)
	movq	%rax, %r8
	movq	-80(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	adcq	%rdx, %r9
	mulq	(%rsi)
	addq	%rax, %r8
	movq	-120(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %r10
	movq	%r12, %r8
	mulq	%rdi
	movq	%r9, %r11
	addq	%rax, %r10
	movq	-64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	-64(%rsp), %rbx
	movq	%rdx, %r13
	mulq	-72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	-80(%rsp), %rax
	mulq	(%rsi)
	addq	%rax, %r8
	movq	-104(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	-120(%rsp), %rax
	adcq	%rdx, %r10
	mulq	%r14
	movq	%r10, %r11
	movq	%r9, %r10
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbx, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	24(%rsi)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	-72(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	andq	%rbp, %rdx
	movq	%rdx, 80(%rsp)
	mulq	(%rsi)
	movq	%rax, %r10
	movq	-80(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	24(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	32(%rsi)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, %rbx
	adcq	%r9, %rdx
	andq	%rbp, %rbx
	shrdq	$51, %rdx, %rax
	movq	%rbx, 88(%rsp)
	movq	-56(%rsp), %r9
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	-40(%rsp), %rax
	movq	136(%rcx), %r14
	andq	%rbp, %r9
	addq	%r9, %rdx
	andq	%rbp, %rax
	movq	%rdx, %r9
	shrq	$51, %rdx
	addq	%rdx, %rax
	movq	%r12, %rdx
	andq	%rbp, %r9
	andq	%rbp, %rdx
	movq	%rax, %rdi
	shrq	$51, %rax
	movq	%r9, 96(%rsp)
	leaq	(%rdx,%rax), %r13
	movq	152(%rcx), %rdx
	andq	%rbp, %rdi
	movq	%rdi, -24(%rsp)
	movq	128(%rcx), %rdi
	leaq	(%rdx,%rdx,8), %rax
	movq	%r13, -8(%rsp)
	leaq	(%rdx,%rax,2), %rbx
	movq	144(%rcx), %rdx
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r9
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %r8
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	%r11, %rax
	mulq	152(%rsi)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	144(%rsi)
	addq	%rax, %r12
	movq	120(%rcx), %rax
	adcq	%rdx, %r13
	mulq	120(%rsi)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	136(%rsi)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	128(%rsi)
	addq	%rax, %r12
	movq	128(%rsi), %rax
	adcq	%rdx, %r13
	mulq	120(%rcx)
	movq	%r12, -120(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	120(%rsi)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	152(%rsi)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	144(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	136(%rsi)
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	136(%rsi), %rax
	movq	%rdx, %r11
	mulq	120(%rcx)
	movq	%r10, -104(%rsp)
	movq	%r11, -96(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rdi, %rax
	mulq	128(%rsi)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	120(%rsi)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	152(%rsi)
	movq	%r12, %r8
	movq	%r13, %r9
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	144(%rsi)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	144(%rsi), %rax
	adcq	%rdx, %r9
	mulq	120(%rcx)
	movq	%r8, %r12
	movq	%r9, %r13
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	136(%rsi)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	128(%rsi)
	addq	%rax, %r10
	movq	144(%rcx), %rax
	adcq	%rdx, %r11
	mulq	120(%rsi)
	addq	%rax, %r10
	movq	%rbx, %rax
	movq	104(%rcx), %rbx
	adcq	%rdx, %r11
	mulq	152(%rsi)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r12, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	152(%rsi), %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	andq	%rbp, %rdx
	movq	%rdx, 40(%rsp)
	mulq	120(%rcx)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	movq	88(%rsi), %rdi
	mulq	144(%rsi)
	addq	%rax, %r10
	movq	%r14, %rax
	movq	104(%rsi), %r14
	adcq	%rdx, %r11
	mulq	136(%rsi)
	addq	%rax, %r10
	movq	128(%rsi), %rax
	adcq	%rdx, %r11
	mulq	144(%rcx)
	addq	%rax, %r10
	movq	120(%rsi), %rax
	adcq	%rdx, %r11
	mulq	152(%rcx)
	addq	%r10, %rax
	movq	-104(%rsp), %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	-120(%rsp), %r8
	adcq	%r9, %rdx
	movq	%rax, %r11
	andq	%rbp, %r10
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r8
	andq	%rbp, %r11
	leaq	(%rax,%rax,8), %rdx
	movq	%r11, 48(%rsp)
	movq	112(%rcx), %r11
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, %rax
	addq	%r8, %rdx
	movq	%rdx, %r8
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %r8
	movq	88(%rcx), %rdx
	movq	%rax, %r10
	shrq	$51, %rax
	movq	%r8, 56(%rsp)
	movq	96(%rsi), %r8
	leaq	(%r12,%rax), %r12
	andq	%rbp, %r10
	movq	%rdx, -104(%rsp)
	movq	%r12, 72(%rsp)
	movq	112(%rsi), %r12
	movq	%r10, 64(%rsp)
	leaq	(%r12,%r12,8), %rax
	movq	%r12, 16(%rsp)
	leaq	(%r12,%rax,2), %rax
	movq	%rax, -64(%rsp)
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %r9
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %r10
	movq	96(%rcx), %rax
	movq	%rax, -120(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	80(%rsi), %rsi
	movq	80(%rcx), %r12
	leaq	(%rdi,%rax,2), %rcx
	movq	%rbx, -72(%rsp)
	movq	%rcx, %rax
	movq	%r11, -56(%rsp)
	mulq	%r11
	movq	%r12, -80(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	-120(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	-64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	-104(%rsp)
	addq	%rax, %r12
	movq	-80(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, %rcx
	mulq	%rsi
	movq	%r13, %rbx
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%r11
	movq	%rcx, 24(%rsp)
	movq	%rbx, 32(%rsp)
	movq	%rax, %r10
	movq	-72(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	-64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	-120(%rsp)
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	-56(%rsp)
	movq	%r12, %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	-64(%rsp), %rax
	mulq	-72(%rsp)
	addq	%rax, %r10
	movq	-120(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	xorl	%ebx, %ebx
	addq	%r9, %rax
	adcq	%rbx, %rdx
	movq	%rax, -40(%rsp)
	movq	-64(%rsp), %rax
	movq	%rdx, -32(%rsp)
	mulq	-56(%rsp)
	movq	-40(%rsp), %r9
	movq	%rax, %rcx
	movq	-72(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	-120(%rsp), %rax
	adcq	%rdx, %rbx
	movq	%rcx, %r10
	mulq	%rdi
	movq	%rbx, %r11
	addq	%rax, %r10
	movq	-104(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	-80(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%r10, %rax
	movq	-32(%rsp), %r10
	adcq	%r11, %rdx
	xorl	%ebx, %ebx
	shrdq	$51, %r10, %r9
	movq	%rax, %r10
	movq	-56(%rsp), %rax
	movq	%rdx, %r11
	addq	%r9, %r10
	movq	96(%rsp), %r9
	movq	128(%rsp), %r13
	adcq	%rbx, %r11
	mulq	%rsi
	movq	24(%rsp), %rsi
	movq	%rax, %rcx
	movq	-72(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%rdi
	movq	-24(%rsp), %rdi
	addq	%rax, %rcx
	movq	-120(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r8
	movq	120(%rsp), %r8
	addq	%rax, %rcx
	movq	-104(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r14
	movq	112(%rsp), %r14
	addq	%rax, %rcx
	movq	-80(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	16(%rsp)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r10, %rbx
	shrdq	$51, %r11, %rbx
	movq	%rbx, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	movabsq	$4503599627370458, %rcx
	adcq	%rbx, %rdx
	addq	%r8, %rcx
	movq	%rax, -120(%rsp)
	andq	%rbp, %rsi
	subq	%r9, %rcx
	shrdq	$51, %rdx, %rax
	movq	%rdx, -112(%rsp)
	andq	%rbp, %r12
	movabsq	$4503599627370494, %rbx
	movq	%rcx, (%r15)
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r10
	leaq	0(%r13,%rbx), %rcx
	leaq	(%rax,%rdx,2), %rdx
	movq	-8(%rsp), %rax
	subq	%rdi, %rcx
	movq	104(%rsp), %rdi
	addq	%rsi, %rdx
	movq	%rcx, 8(%r15)
	movq	8(%rsp), %rcx
	movq	%rdx, %rsi
	andq	%rbp, %rdx
	shrq	$51, %rsi
	addq	%rbx, %rcx
	addq	%rsi, %r12
	leaq	(%rdx,%rdx), %rsi
	shrq	$50, %rdx
	subq	%rax, %rcx
	movq	80(%rsp), %rax
	andq	%rbp, %rsi
	movq	%rcx, 16(%r15)
	leaq	(%rdi,%rbx), %rcx
	subq	%rax, %rcx
	movq	%rcx, 24(%r15)
	leaq	(%r14,%rbx), %rcx
	movq	88(%rsp), %rbx
	subq	%rbx, %rcx
	movq	%rcx, 32(%r15)
	movq	%r9, %rcx
	addq	%r8, %rcx
	movq	%rcx, 40(%r15)
	movq	-24(%rsp), %rcx
	addq	%r13, %rcx
	movq	-8(%rsp), %r13
	movq	%rcx, 48(%r15)
	movq	8(%rsp), %rcx
	addq	%r13, %rcx
	movabsq	$4503599627370458, %r13
	movq	%rcx, 56(%r15)
	leaq	(%rax,%rdi), %rcx
	movq	%rcx, 64(%r15)
	leaq	(%rbx,%r14), %rcx
	movq	%rcx, 72(%r15)
	movq	-40(%rsp), %rdi
	movq	%r12, %rcx
	shrq	$51, %r12
	andq	%rbp, %rcx
	movq	-120(%rsp), %rax
	movq	56(%rsp), %r14
	andq	%rbp, %rdi
	leaq	(%rdx,%rcx,2), %rdx
	shrq	$50, %rcx
	movq	40(%rsp), %rbx
	addq	%rdi, %r12
	andq	%rbp, %rax
	leaq	(%rcx,%r12,2), %rdi
	movq	%rdi, %rcx
	shrq	$51, %rcx
	leaq	(%rcx,%r10,2), %rcx
	movq	64(%rsp), %r10
	movq	%rcx, %r9
	shrq	$51, %r9
	leaq	(%r9,%rax,2), %rax
	movq	%rax, %r9
	shrq	$51, %r9
	movq	%r9, %r8
	leaq	(%r9,%r9,8), %r9
	leaq	(%r8,%r9,2), %r8
	addq	%r8, %rsi
	movabsq	$4503599627370494, %r8
	movq	%rsi, %r9
	shrq	$51, %r9
	andq	%rbp, %rdx
	subq	%r14, %r13
	andq	%rbp, %rdi
	addq	%r9, %rdx
	andq	%rbp, %rsi
	andq	%rbp, %rcx
	andq	%rbp, %rax
	movq	%rdx, %r9
	shrq	$51, %rdx
	subq	%r10, %r8
	addq	%rdx, %rdi
	movq	%r13, %rdx
	andq	%rbp, %r9
	movq	72(%rsp), %rbp
	addq	%rsi, %rdx
	addq	%r14, %rsi
	movq	%rdx, 80(%r15)
	movq	%r8, %rdx
	movabsq	$4503599627370494, %r8
	addq	%r9, %rdx
	subq	%rbp, %r8
	addq	%r10, %r9
	movq	%rsi, 120(%r15)
	movq	%rdx, 88(%r15)
	movq	%r8, %rdx
	movabsq	$4503599627370494, %r8
	addq	%rdi, %rdx
	subq	%rbx, %r8
	addq	%rbp, %rdi
	movq	%r9, 128(%r15)
	movq	%rdx, 96(%r15)
	movq	%r8, %rdx
	movabsq	$4503599627370494, %r8
	addq	%rcx, %rdx
	addq	%rbx, %rcx
	movq	%rdi, 136(%r15)
	movq	%rdx, 104(%r15)
	movq	48(%rsp), %rdx
	movq	%rcx, 144(%r15)
	subq	%rdx, %r8
	addq	%rax, %r8
	addq	%rdx, %rax
	movq	%r8, 112(%r15)
	movq	%rax, 152(%r15)
	addq	$144, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1413:

	.size	x25519_ge_sub, .-x25519_ge_sub
# WAS .section	.text.x25519_ge_scalarmult_small_precomp,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_scalarmult_small_precomp
	.hidden	x25519_ge_scalarmult_small_precomp
	.type	x25519_ge_scalarmult_small_precomp, @function
.Lx25519_ge_scalarmult_small_precomp_local_target:
x25519_ge_scalarmult_small_precomp:
.LFB1416:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movabsq	$2251799813685247, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$2440, %rsp
	.cfi_def_cfa_offset 2496
	movq	%rdi, 136(%rsp)
	leaq	624(%rsp), %r14
	movq	%rsi, 152(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 2424(%rsp)
	xorl	%eax, %eax
	leaq	2424(%rsp), %rax
	movq	%r14, 144(%rsp)
	movq	%rax, 128(%rsp)
.L8019:

	movzbl	6(%r15), %edx
	movzbl	5(%r15), %eax
	movzbl	11(%r15), %ecx
	salq	$40, %rax
	salq	$48, %rdx
	addq	%rax, %rdx
	movzbl	(%r15), %eax
	salq	$37, %rcx
	addq	%rax, %rdx
	movzbl	4(%r15), %eax
	salq	$32, %rax
	addq	%rax, %rdx
	movzbl	3(%r15), %eax
	salq	$24, %rax
	addq	%rax, %rdx
	movzbl	2(%r15), %eax
	salq	$16, %rax
	addq	%rax, %rdx
	movzbl	1(%r15), %eax
	salq	$8, %rax
	addq	%rax, %rdx
	movzbl	12(%r15), %eax
	movq	%rdx, %r11
	shrq	$51, %rdx
	salq	$45, %rax
	andq	%r13, %r11
	addq	%rcx, %rax
	movzbl	10(%r15), %ecx
	salq	$29, %rcx
	addq	%rcx, %rax
	movzbl	9(%r15), %ecx
	salq	$21, %rcx
	addq	%rcx, %rax
	movzbl	8(%r15), %ecx
	salq	$13, %rcx
	addq	%rcx, %rax
	movzbl	7(%r15), %ecx
	salq	$5, %rcx
	addq	%rcx, %rax
	movzbl	18(%r15), %ecx
	addq	%rdx, %rax
	movzbl	19(%r15), %edx
	salq	$42, %rcx
	movq	%rax, %r12
	salq	$50, %rdx
	andq	%r13, %r12
	addq	%rcx, %rdx
	movzbl	17(%r15), %ecx
	salq	$34, %rcx
	addq	%rcx, %rdx
	movzbl	16(%r15), %ecx
	salq	$26, %rcx
	shrq	$51, %rax
	addq	%rcx, %rdx
	movzbl	15(%r15), %ecx
	salq	$18, %rcx
	addq	%rcx, %rdx
	movzbl	14(%r15), %ecx
	salq	$10, %rcx
	addq	%rcx, %rdx
	movzbl	13(%r15), %ecx
	leaq	(%rdx,%rcx,4), %rdx
	movzbl	24(%r15), %ecx
	addq	%rax, %rdx
	movzbl	25(%r15), %eax
	salq	$39, %rcx
	movq	%rdx, %r9
	shrq	$51, %rdx
	salq	$47, %rax
	andq	%r13, %r9
	addq	%rcx, %rax
	movzbl	23(%r15), %ecx
	salq	$31, %rcx
	addq	%rcx, %rax
	movzbl	22(%r15), %ecx
	salq	$23, %rcx
	addq	%rcx, %rax
	movzbl	21(%r15), %ecx
	salq	$15, %rcx
	addq	%rcx, %rax
	movzbl	20(%r15), %ecx
	salq	$7, %rcx
	addq	%rcx, %rax
	movzbl	30(%r15), %ecx
	addq	%rdx, %rax
	movzbl	31(%r15), %edx
	salq	$36, %rcx
	movq	%rax, %rbp
	salq	$44, %rdx
	andq	%r13, %rbp
	addq	%rcx, %rdx
	movzbl	29(%r15), %ecx
	salq	$28, %rcx
	addq	%rcx, %rdx
	movzbl	28(%r15), %ecx
	salq	$20, %rcx
	addq	%rcx, %rdx
	movzbl	27(%r15), %ecx
	salq	$12, %rcx
	addq	%rcx, %rdx
	movzbl	26(%r15), %ecx
	salq	$4, %rcx
	shrq	$51, %rax
	addq	%rcx, %rdx
	leaq	(%rdx,%rax), %r8
	movzbl	38(%r15), %edx
	movzbl	37(%r15), %eax
	movzbl	43(%r15), %ecx
	movzbl	50(%r15), %esi
	salq	$40, %rax
	salq	$48, %rdx
	movzbl	56(%r15), %edi
	salq	$37, %rcx
	addq	%rax, %rdx
	movzbl	32(%r15), %eax
	salq	$42, %rsi
	addq	%rax, %rdx
	movzbl	36(%r15), %eax
	salq	$32, %rax
	addq	%rax, %rdx
	movzbl	35(%r15), %eax
	salq	$24, %rax
	addq	%rax, %rdx
	movzbl	34(%r15), %eax
	salq	$16, %rax
	addq	%rax, %rdx
	movzbl	33(%r15), %eax
	salq	$8, %rax
	addq	%rax, %rdx
	movzbl	44(%r15), %eax
	movq	%rdx, %r10
	shrq	$51, %rdx
	salq	$45, %rax
	andq	%r13, %r10
	addq	%rcx, %rax
	movzbl	42(%r15), %ecx
	salq	$29, %rcx
	addq	%rcx, %rax
	movzbl	41(%r15), %ecx
	salq	$21, %rcx
	addq	%rcx, %rax
	movzbl	40(%r15), %ecx
	salq	$13, %rcx
	addq	%rcx, %rax
	movzbl	39(%r15), %ecx
	salq	$5, %rcx
	addq	%rcx, %rax
	addq	%rdx, %rax
	movzbl	51(%r15), %edx
	movq	%rax, %rcx
	salq	$50, %rdx
	andq	%r13, %rcx
	addq	%rsi, %rdx
	movzbl	49(%r15), %esi
	shrq	$51, %rax
	salq	$39, %rdi
	salq	$34, %rsi
	addq	%rsi, %rdx
	movzbl	48(%r15), %esi
	salq	$26, %rsi
	addq	%rsi, %rdx
	movzbl	47(%r15), %esi
	salq	$18, %rsi
	addq	%rsi, %rdx
	movzbl	46(%r15), %esi
	salq	$10, %rsi
	addq	%rsi, %rdx
	movzbl	45(%r15), %esi
	leaq	(%rdx,%rsi,4), %rdx
	addq	%rax, %rdx
	movzbl	57(%r15), %eax
	movq	%rdx, %rsi
	shrq	$51, %rdx
	salq	$47, %rax
	andq	%r13, %rsi
	addq	%rdi, %rax
	movzbl	55(%r15), %edi
	salq	$31, %rdi
	addq	%rdi, %rax
	movzbl	54(%r15), %edi
	salq	$23, %rdi
	addq	%rdi, %rax
	movzbl	53(%r15), %edi
	salq	$15, %rdi
	addq	%rdi, %rax
	movzbl	52(%r15), %edi
	salq	$7, %rdi
	addq	%rdi, %rax
	movzbl	62(%r15), %edi
	addq	%rdx, %rax
	movzbl	63(%r15), %edx
	salq	$36, %rdi
	movq	%rax, %rbx
	salq	$44, %rdx
	andq	%r13, %rbx
	addq	%rdi, %rdx
	movzbl	61(%r15), %edi
	salq	$28, %rdi
	addq	%rdi, %rdx
	movzbl	60(%r15), %edi
	salq	$20, %rdi
	addq	%rdi, %rdx
	movzbl	59(%r15), %edi
	shrq	$51, %rax
	salq	$12, %rdi
	addq	%rdi, %rdx
	movzbl	58(%r15), %edi
	salq	$4, %rdi
	addq	%rdi, %rdx
	leaq	(%rdx,%rax), %rdi
	leaq	(%r10,%r11), %rax
	movabsq	$4503599627370494, %rdx
	movq	%rax, (%r14)
	leaq	(%rcx,%r12), %rax
	movq	%rax, 8(%r14)
	leaq	(%rsi,%r9), %rax
	movq	%rax, 16(%r14)
	leaq	(%rbx,%rbp), %rax
	movq	%rax, 24(%r14)
	leaq	(%rdi,%r8), %rax
	movq	%rax, 32(%r14)
	movabsq	$4503599627370458, %rax
	addq	%r10, %rax
	movq	%rdi, 120(%rsp)
	subq	%r11, %rax
	movq	%r10, (%rsp)
	movq	%rax, 40(%r14)
	leaq	(%rcx,%rdx), %rax
	subq	%r12, %rax
	movq	%r8, 32(%rsp)
	movq	%rax, 48(%r14)
	leaq	(%rsi,%rdx), %rax
	subq	%r9, %rax
	movq	%r9, 16(%rsp)
	movq	%rax, 56(%r14)
	leaq	(%rbx,%rdx), %rax
	subq	%rbp, %rax
	movq	%r11, 48(%rsp)
	movq	%rax, 64(%r14)
	leaq	(%rdi,%rdx), %rax
	subq	%r8, %rax
	movq	%rax, 72(%r14)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rax
	movq	%rax, 64(%rsp)
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r10
	movq	%r10, %rax
	mulq	%rbp
	movq	%rax, %r8
	movq	(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r11
	addq	%rax, %r8
	leaq	(%rcx,%rcx,8), %rax
	adcq	%rdx, %r9
	leaq	(%rcx,%rax,2), %rax
	mulq	32(%rsp)
	addq	%rax, %r8
	movq	64(%rsp), %rax
	adcq	%rdx, %r9
	mulq	16(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r12
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, 80(%rsp)
	mulq	%r12
	movq	%r9, 88(%rsp)
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r10, %rax
	movq	16(%rsp), %r10
	adcq	%rdx, %r9
	mulq	32(%rsp)
	addq	%rax, %r8
	movq	64(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	80(%rsp), %r8
	adcq	%r9, %rdx
	movq	88(%rsp), %r9
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%r10, %rax
	movq	%rdx, %r9
	mulq	(%rsp)
	movq	%rax, %r10
	movq	48(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	64(%rsp), %rax
	movq	%r8, 64(%rsp)
	adcq	%rdx, %r11
	mulq	32(%rsp)
	movq	%r9, 72(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%r10, %rax
	movq	%r9, %r10
	movq	%r8, %r9
	adcq	%r11, %rdx
	shrdq	$51, %r10, %r9
	shrq	$51, %r10
	addq	%r9, %rax
	movq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%r10, %rdx
	movq	%rdx, %r9
	movq	%r8, 96(%rsp)
	mulq	%rcx
	movq	%r9, 104(%rsp)
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	32(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	movq	%r9, %r11
	shrdq	$51, %r9, %r10
	shrq	$51, %r11
	addq	%rax, %r10
	movq	%r10, %rax
	adcq	%rdx, %r11
	andq	%r13, %rax
	movq	%rax, %rdi
	movq	%rbp, %rax
	mulq	%rcx
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%rbx
	movq	%r8, %rcx
	movq	%r9, %rbx
	addq	%rax, %rcx
	movq	16(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movabsq	$1815898335770999, %rsi
	addq	%rax, %rcx
	movq	32(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	(%rsp)
	addq	%rax, %rcx
	movq	48(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	120(%rsp)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %rcx
	shrdq	$51, %rdx, %rax
	andq	%r13, %rcx
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	80(%rsp), %rax
	andq	%r13, %rax
	addq	%rax, %rdx
	movq	64(%rsp), %rax
	movq	%rdx, %rbp
	shrq	$51, %rdx
	andq	%r13, %rax
	andq	%r13, %rbp
	addq	%rdx, %rax
	movq	96(%rsp), %rdx
	movq	%rax, %r12
	shrq	$51, %rax
	andq	%r13, %rdx
	andq	%r13, %r12
	leaq	(%rdx,%rax), %rbx
	movabsq	$17721897364910094, %rax
	mulq	%rcx
	movq	%rax, %r10
	movq	%rdx, %r11
	movabsq	$20374063209940502, %rax
	mulq	%rdi
	addq	%rax, %r10
	movabsq	$1859910466990425, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movabsq	$12042000423922157, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movabsq	$34502068379648981, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movabsq	$20374063209940502, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	movq	%r10, %r8
	movq	%r11, %r9
	movq	%r8, (%rsp)
	movq	%r9, 8(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movabsq	$34502068379648981, %rax
	mulq	%rdi
	addq	%rax, %r10
	movabsq	$932731440258426, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movabsq	$1859910466990425, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movabsq	$12042000423922157, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movabsq	$34502068379648981, %rax
	movq	%rdx, %r9
	mulq	%rcx
	movq	%r8, 16(%rsp)
	movq	%r9, 24(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movabsq	$12042000423922157, %rax
	mulq	%rdi
	addq	%rax, %r10
	movabsq	$1072319116312658, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movabsq	$932731440258426, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movabsq	$1859910466990425, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	movq	%r9, %r10
	movq	%r8, %r9
	adcq	%r11, %rdx
	shrdq	$51, %r10, %r9
	shrq	$51, %r10
	addq	%r9, %rax
	adcq	%r10, %rdx
	movq	%rax, %r10
	movabsq	$12042000423922157, %rax
	movq	%rdx, %r11
	mulq	%rcx
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movabsq	$1859910466990425, %rax
	mulq	%rdi
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movabsq	$1072319116312658, %rax
	adcq	%rdx, %r9
	mulq	%r12
	addq	%rax, %r8
	movabsq	$932731440258426, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movabsq	$1859910466990425, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	%rcx
	movq	%r10, %rcx
	movq	%rax, %r8
	movq	%rdx, %r9
	movabsq	$932731440258426, %rax
	mulq	%rdi
	addq	%rax, %r8
	movabsq	$633789495995903, %rax
	adcq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movabsq	$1072319116312658, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	movq	%r11, %rbx
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rcx
	shrq	$51, %rbx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %rax
	andq	%r13, %r10
	andq	%r13, %rcx
	shrdq	$51, %rbx, %rax
	movq	%r10, 104(%r14)
	addq	$64, %r15
	addq	$120, %r14
	leaq	(%rax,%rax,8), %rdx
	movq	%rcx, -8(%r14)
	leaq	(%rax,%rdx,2), %rdx
	movq	(%rsp), %rax
	andq	%r13, %rax
	addq	%rax, %rdx
	movq	16(%rsp), %rax
	movq	%rdx, %rsi
	andq	%r13, %rdx
	andq	%r13, %rax
	shrq	$51, %rsi
	movq	%rdx, -40(%r14)
	addq	%rsi, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r13, %rdx
	movq	%rdx, -32(%r14)
	movq	32(%rsp), %rdx
	andq	%r13, %rdx
	addq	%rdx, %rax
	movq	%rax, -24(%r14)
	cmpq	%r14, 128(%rsp)
	jne	.L8019
	leaq	304(%rsp), %rax
	movq	136(%rsp), %rbx
	pxor	%xmm0, %xmm0
	movl	$63, (%rsp)
	movq	%rax, 168(%rsp)
	leaq	464(%rsp), %rax
	movabsq	$2251799813685247, %rbp
	movq	%rax, 16(%rsp)
	leaq	176(%rsp), %rax
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 80(%rbx)
	movq	$0, 32(%rbx)
	movq	$0, 72(%rbx)
	movq	$1, 40(%rbx)
	movq	$0, 112(%rbx)
	movq	$1, 80(%rbx)
	movq	$0, 152(%rbx)
	movq	%rax, 160(%rsp)
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 56(%rbx)
	movups	%xmm0, 96(%rbx)
	movups	%xmm0, 120(%rbx)
	movups	%xmm0, 136(%rbx)
	.p2align 4,,10
	.p2align 3
.L8020:

	movl	(%rsp), %eax
	movq	152(%rsp), %rdi
	pxor	%xmm8, %xmm8
	movdqa	%xmm8, %xmm7
	movdqa	%xmm8, %xmm6
	movdqa	%xmm8, %xmm5
	movdqa	.LC196(%rip), %xmm4
	movl	%eax, %edx
	andl	$7, %eax
	movdqa	.LC108(%rip), %xmm2
	movdqa	%xmm8, %xmm3
	shrl	$3, %edx
	movl	%eax, %ecx
	leal	8(%rdx), %eax
	movzbl	(%rdi,%rax), %eax
	sarl	%cl, %eax
	leal	(%rax,%rax), %esi
	leal	16(%rdx), %eax
	movzbl	(%rdi,%rax), %eax
	andl	$2, %esi
	sarl	%cl, %eax
	sall	$2, %eax
	andl	$4, %eax
	orl	%esi, %eax
	movl	%edx, %esi
	addl	$24, %edx
	movzbl	(%rdi,%rsi), %esi
	movzbl	(%rdi,%rdx), %edx
	sarl	%cl, %esi
	sarl	%cl, %edx
	movl	$1, %ecx
	andl	$1, %esi
	leal	0(,%rdx,8), %edi
	movq	144(%rsp), %rdx
	orl	%esi, %eax
	andl	$8, %edi
	xorl	%esi, %esi
	orl	%eax, %edi
	.p2align 4,,10
	.p2align 3
.L8021:

	movl	%edi, %eax
	movdqu	(%rdx), %xmm1
	movq	112(%rdx), %r8
	addq	$120, %rdx
	xorl	%ecx, %eax
	addl	$1, %ecx
	movsbl	%al, %eax
	pxor	%xmm2, %xmm1
	xorq	%rsi, %r8
	subl	$1, %eax
	shrl	$31, %eax
	negq	%rax
	movq	%rax, %xmm0
	andq	%r8, %rax
	punpcklqdq	%xmm0, %xmm0
	xorq	%rax, %rsi
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm2
	movdqu	-104(%rdx), %xmm1
	pxor	%xmm3, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm3
	movdqu	-88(%rdx), %xmm1
	pxor	%xmm4, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm4
	movdqu	-72(%rdx), %xmm1
	pxor	%xmm5, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm5
	movdqu	-56(%rdx), %xmm1
	pxor	%xmm6, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm6
	movdqu	-40(%rdx), %xmm1
	pxor	%xmm7, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm7
	movdqu	-24(%rdx), %xmm1
	pxor	%xmm8, %xmm1
	pand	%xmm1, %xmm0
	pxor	%xmm0, %xmm8
	cmpl	$16, %ecx
	jne	.L8021
	movq	168(%rsp), %r15
	movq	%rsi, 288(%rsp)
	movq	%rbx, %rsi
	movaps	%xmm2, 176(%rsp)
	movq	%r15, %rdi
	movaps	%xmm3, 192(%rsp)
	movaps	%xmm4, 208(%rsp)
	movaps	%xmm5, 224(%rsp)
	movaps	%xmm6, 240(%rsp)
	movaps	%xmm7, 256(%rsp)
	movaps	%xmm8, 272(%rsp)
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	16(%rsp), %rdi
	movq	%r15, %rdx
	movq	%rbx, %rsi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	movq	616(%rsp), %rax
	movq	616(%rsp), %rcx
	movq	608(%rsp), %rsi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %rcx
	movq	608(%rsp), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %r14
	movq	600(%rsp), %rax
	movq	600(%rsp), %rsi
	movq	%r14, 120(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %r13
	movq	592(%rsp), %rax
	movq	592(%rsp), %rsi
	movq	%r13, 128(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %rax
	movq	%rax, 136(%rsp)
	mulq	496(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r13, %rax
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	584(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	472(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	472(%rsp), %rax
	adcq	%rdx, %r11
	mulq	584(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	592(%rsp), %rax
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	480(%rsp), %rax
	movq	%rdx, %r13
	mulq	584(%rsp)
	movq	%r12, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	472(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	600(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	movq	488(%rsp), %rax
	movq	%rcx, 96(%rsp)
	movq	%rdx, %r15
	mulq	584(%rsp)
	movq	%r14, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	480(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	addq	%rax, %r8
	movq	608(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	movq	%r14, %r15
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	496(%rsp), %rax
	movq	%rdx, %rdi
	mulq	584(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	488(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	480(%rsp), %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	608(%rsp)
	addq	%rax, %r8
	movq	464(%rsp), %rax
	adcq	%rdx, %r9
	mulq	616(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	movq	560(%rsp), %rsi
	adcq	%rdi, %rdx
	movq	%rax, 32(%rsp)
	andq	%rbp, %r10
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r15
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	32(%rsp), %rax
	addq	%r10, %rcx
	movq	%rcx, %rdx
	andq	%rbp, %rcx
	andq	%rbp, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	movq	%r15, %rcx
	movq	512(%rsp), %r15
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %r11
	shrq	$51, %rdx
	addq	%rdx, %rcx
	movq	%r8, %rdx
	andq	%rbp, %r11
	andq	%rbp, %rdx
	movq	%rcx, 16(%rbx)
	movq	552(%rsp), %rcx
	movq	%rdx, 24(%rbx)
	movq	576(%rsp), %rdx
	movq	%r11, 8(%rbx)
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r14
	movq	568(%rsp), %rdx
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %rdi
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r11
	movq	%r11, %rax
	mulq	536(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	528(%rsp)
	addq	%rax, %r12
	movq	544(%rsp), %rax
	adcq	%rdx, %r13
	mulq	504(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	520(%rsp)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r15
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	544(%rsp)
	movq	%r10, 32(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	504(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	536(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	528(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	520(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r11
	movq	520(%rsp), %rax
	movq	%rdx, %r12
	mulq	544(%rsp)
	movq	%r11, 48(%rsp)
	movq	%r12, %r13
	movq	%r11, %r12
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	504(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	536(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	528(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r12
	xorl	%r9d, %r9d
	addq	%r12, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	528(%rsp), %rax
	movq	%rdx, %r13
	mulq	544(%rsp)
	movq	%r12, 64(%rsp)
	movq	%r13, 72(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	520(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	568(%rsp), %rax
	adcq	%rdx, %r11
	mulq	504(%rsp)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	536(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%r12, %r11
	xorl	%r9d, %r9d
	shrdq	$51, %r13, %r11
	addq	%r11, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	536(%rsp), %rax
	movq	%rdx, %r14
	mulq	544(%rsp)
	movq	%r13, %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	528(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	520(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r14, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	movq	48(%rsp), %r8
	andq	%rbp, %r13
	shrdq	$51, %rdx, %rax
	movq	%rdx, 88(%rsp)
	movq	64(%rsp), %r11
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r8
	movq	%r13, 64(%rbx)
	movq	96(%rsp), %r12
	leaq	(%rax,%rdx,2), %rdi
	movq	32(%rsp), %rdx
	andq	%rbp, %r11
	movq	80(%rsp), %rax
	movq	128(%rsp), %r13
	andq	%rbp, %rdx
	andq	%rbp, %rax
	addq	%rdx, %rdi
	movq	%rax, 72(%rbx)
	movq	136(%rsp), %rax
	movq	%rdi, %rdx
	andq	%rbp, %rdi
	shrq	$51, %rdx
	movq	%rdi, 40(%rbx)
	movq	%r11, %rdi
	addq	%r8, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	addq	%rdx, %rdi
	mulq	576(%rsp)
	andq	%rbp, %r9
	movq	%r9, 48(%rbx)
	movq	%rdi, 56(%rbx)
	movq	120(%rsp), %rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r13, %rax
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	544(%rsp), %rax
	adcq	%rdx, %r9
	mulq	584(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	584(%rsp)
	movq	%r10, 32(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	544(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	576(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	%rsi, %rax
	movq	%rdx, %r14
	mulq	584(%rsp)
	movq	%r13, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	592(%rsp)
	addq	%rax, %r10
	movq	544(%rsp), %rax
	adcq	%rdx, %r11
	mulq	600(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r14, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	568(%rsp), %rax
	movq	%rdx, %r9
	mulq	584(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	mulq	592(%rsp)
	movq	%r8, 48(%rsp)
	movq	%r9, 56(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	600(%rsp)
	addq	%rax, %r10
	movq	544(%rsp), %rax
	adcq	%rdx, %r11
	mulq	608(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	movq	32(%rsp), %r12
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	movq	576(%rsp), %rax
	movq	%rdx, %r11
	mulq	584(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	568(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	movq	536(%rsp), %rcx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	608(%rsp)
	addq	%rax, %rsi
	movq	544(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	616(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %rax
	andq	%rbp, %r12
	andq	%rbp, %r13
	shrdq	$51, %rdi, %rax
	andq	%rbp, %rsi
	andq	%rbp, %r10
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, 112(%rbx)
	movq	528(%rsp), %rsi
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, 104(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %rax
	andq	%rbp, %rdx
	shrq	$51, %rax
	movq	%rdx, 80(%rbx)
	addq	%r13, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%rbp, %rdx
	movq	%rdx, 88(%rbx)
	movq	48(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rax, %rdx
	movq	536(%rsp), %rax
	movq	%rdx, 96(%rbx)
	movq	520(%rsp), %rdx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %rcx
	movq	528(%rsp), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %rsi
	movq	520(%rsp), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdx,%rax,2), %rdi
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r14
	movq	%r14, %rax
	mulq	496(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r15, %rax
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	504(%rsp), %rax
	movq	%rdx, %r14
	mulq	480(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	488(%rsp)
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r14, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	504(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	488(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	528(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	504(%rsp), %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	528(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	536(%rsp), %rax
	movq	32(%rsp), %r12
	adcq	%rdx, %r11
	mulq	464(%rsp)
	movq	16(%rsp), %rdi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%rbp, %r12
	andq	%rbp, %r13
	shrdq	$51, %r11, %rax
	andq	%rbp, %rsi
	andq	%rbp, %r8
	andq	%rbp, %r10
	leaq	(%rax,%rax,8), %rdx
	movq	%r8, 144(%rbx)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, 152(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %rax
	andq	%rbp, %rdx
	shrq	$51, %rax
	movq	%rdx, 120(%rbx)
	addq	%r13, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	addq	%rsi, %rax
	andq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rdx, 128(%rbx)
	movq	160(%rsp), %rdx
	movq	%rax, 136(%rbx)
# WAS call	ge_madd
	call	.Lge_madd_local_target
	movq	616(%rsp), %rax
	movq	616(%rsp), %rdi
	movq	608(%rsp), %rcx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	movq	608(%rsp), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %r14
	movq	600(%rsp), %rax
	movq	600(%rsp), %rcx
	movq	%r14, 120(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %r13
	movq	592(%rsp), %rax
	movq	592(%rsp), %rcx
	movq	%r13, 128(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,2), %rax
	movq	%rdi, %rcx
	movq	%rax, 136(%rsp)
	mulq	496(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r13, %rax
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	584(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	472(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	472(%rsp), %rax
	adcq	%rdx, %r11
	mulq	584(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	592(%rsp), %rax
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	480(%rsp), %rax
	movq	%rdx, %r13
	mulq	584(%rsp)
	movq	%r12, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	472(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	600(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	movq	488(%rsp), %rax
	movq	%rcx, 96(%rsp)
	movq	%rdx, %r15
	mulq	584(%rsp)
	movq	%r14, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	480(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	addq	%rax, %r8
	movq	608(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	movq	512(%rsp), %r15
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	496(%rsp), %rax
	movq	%rdx, %rdi
	mulq	584(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	488(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	480(%rsp), %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	608(%rsp)
	addq	%rax, %r8
	movq	464(%rsp), %rax
	adcq	%rdx, %r9
	mulq	616(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 32(%rsp)
	andq	%rbp, %r10
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	32(%rsp), %rax
	addq	%r10, %rcx
	movq	%rcx, %rdx
	andq	%rbp, %rcx
	andq	%rbp, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rbp, %rsi
	movq	%rsi, 8(%rbx)
	movq	%r14, %rsi
	andq	%rbp, %rsi
	movq	%rsi, %rcx
	movq	576(%rsp), %rsi
	addq	%rdx, %rcx
	movq	%r8, %rdx
	leaq	(%rsi,%rsi,8), %rax
	movq	%rcx, 16(%rbx)
	movq	552(%rsp), %rcx
	andq	%rbp, %rdx
	leaq	(%rsi,%rax,2), %r14
	movq	568(%rsp), %rsi
	movq	%rdx, 24(%rbx)
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %rdi
	movq	560(%rsp), %rsi
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r11
	movq	%r11, %rax
	mulq	536(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	528(%rsp)
	addq	%rax, %r12
	movq	544(%rsp), %rax
	adcq	%rdx, %r13
	mulq	504(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	520(%rsp)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r15
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	544(%rsp)
	movq	%r10, 32(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	504(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	536(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	528(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	520(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r11
	movq	520(%rsp), %rax
	movq	%rdx, %r12
	mulq	544(%rsp)
	movq	%r11, 48(%rsp)
	movq	%r12, %r13
	movq	%r11, %r12
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	504(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	536(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	528(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r12
	xorl	%r9d, %r9d
	addq	%r12, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	528(%rsp), %rax
	movq	%rdx, %r13
	mulq	544(%rsp)
	movq	%r12, 64(%rsp)
	movq	%r13, 72(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	520(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	568(%rsp), %rax
	adcq	%rdx, %r11
	mulq	504(%rsp)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	536(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%r12, %r11
	xorl	%r9d, %r9d
	shrdq	$51, %r13, %r11
	addq	%r11, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	536(%rsp), %rax
	movq	%rdx, %r14
	mulq	544(%rsp)
	movq	%r13, %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	528(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	520(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r14, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	movq	48(%rsp), %r8
	andq	%rbp, %r13
	shrdq	$51, %rdx, %rax
	movq	%rdx, 88(%rsp)
	movq	64(%rsp), %r11
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r8
	movq	%r13, 64(%rbx)
	movq	120(%rsp), %r12
	leaq	(%rax,%rdx,2), %rdi
	movq	32(%rsp), %rdx
	andq	%rbp, %r11
	movq	80(%rsp), %rax
	movq	128(%rsp), %r13
	andq	%rbp, %rdx
	andq	%rbp, %rax
	addq	%rdx, %rdi
	movq	%rax, 72(%rbx)
	movq	136(%rsp), %rax
	movq	%rdi, %rdx
	andq	%rbp, %rdi
	shrq	$51, %rdx
	movq	%rdi, 40(%rbx)
	movq	%r11, %rdi
	addq	%r8, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	addq	%rdx, %rdi
	mulq	576(%rsp)
	andq	%rbp, %r9
	movq	%r9, 48(%rbx)
	movq	%rdi, 56(%rbx)
	movq	96(%rsp), %rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r13, %rax
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	544(%rsp), %rax
	adcq	%rdx, %r9
	mulq	584(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	584(%rsp)
	movq	%r10, 32(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	544(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	576(%rsp)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	%rsi, %rax
	movq	%rdx, %r14
	mulq	584(%rsp)
	movq	%r13, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	592(%rsp)
	addq	%rax, %r10
	movq	544(%rsp), %rax
	adcq	%rdx, %r11
	mulq	600(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r14, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	568(%rsp), %rax
	movq	%rdx, %r9
	mulq	584(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	mulq	592(%rsp)
	movq	%r8, 48(%rsp)
	movq	%r9, 56(%rsp)
	movq	32(%rsp), %r12
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	600(%rsp)
	addq	%rax, %r10
	movq	544(%rsp), %rax
	adcq	%rdx, %r11
	mulq	608(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	576(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	movq	576(%rsp), %rax
	movq	%rdx, %r11
	mulq	584(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	568(%rsp), %rax
	mulq	592(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	600(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	608(%rsp)
	addq	%rax, %rsi
	movq	544(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	616(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %rax
	andq	%rbp, %r12
	andq	%rbp, %r13
	shrdq	$51, %rdi, %rax
	movq	536(%rsp), %rdi
	andq	%rbp, %rsi
	andq	%rbp, %r10
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, 112(%rbx)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, 104(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %rax
	andq	%rbp, %rdx
	shrq	$51, %rax
	movq	%rdx, 80(%rbx)
	addq	%r13, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%rbp, %rdx
	movq	%rdx, 88(%rbx)
	movq	48(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rax, %rdx
	movq	536(%rsp), %rax
	movq	%rdx, 96(%rbx)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	528(%rsp), %rax
	movq	528(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rsi
	movq	520(%rsp), %rax
	movq	520(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r14
	movq	%r14, %rax
	mulq	496(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r15, %rax
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	480(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r13
	movq	504(%rsp), %rax
	movq	%rdx, %r14
	mulq	480(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	488(%rsp)
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r14, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	504(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	488(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	528(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	504(%rsp), %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	520(%rsp), %rax
	adcq	%rdx, %r11
	mulq	480(%rsp)
	addq	%rax, %r10
	movq	528(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	536(%rsp), %rax
	movq	32(%rsp), %r12
	adcq	%rdx, %r11
	mulq	464(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%rbp, %r12
	andq	%rbp, %r13
	shrdq	$51, %r11, %rax
	andq	%rbp, %rsi
	subl	$1, (%rsp)
	andq	%rbp, %r8
	leaq	(%rax,%rax,8), %rdx
	andq	%rbp, %r10
	movq	%r8, 144(%rbx)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r10, 152(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %rax
	andq	%rbp, %rdx
	shrq	$51, %rax
	movq	%rdx, 120(%rbx)
	addq	%r13, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	addq	%rsi, %rax
	andq	%rbp, %rdx
	movq	%rax, 136(%rbx)
	movl	(%rsp), %eax
	movq	%rdx, 128(%rbx)
	cmpl	$-1, %eax
	jne	.L8020
	movq	2424(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8027
	addq	$2440, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8027:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1416:

	.size	x25519_ge_scalarmult_small_precomp, .-x25519_ge_scalarmult_small_precomp
# WAS .section	.text.x25519_ge_scalarmult_base,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_scalarmult_base
	.hidden	x25519_ge_scalarmult_base
	.type	x25519_ge_scalarmult_base, @function
.Lx25519_ge_scalarmult_base_local_target:
x25519_ge_scalarmult_base:
.LFB1419:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$680, %rsp
	.cfi_def_cfa_offset 736
	movdqu	(%rsi), %xmm1
	movdqu	(%rsi), %xmm2
	movdqa	.LC197(%rip), %xmm0
	leaq	655(%rsp), %rdi
	movq	%fs:40, %rax
	movq	%rax, 664(%rsp)
	xorl	%eax, %eax
	psrlw	$4, %xmm1
	leaq	592(%rsp), %rax
	pand	%xmm0, %xmm1
	pand	%xmm0, %xmm2
	movq	%rax, 56(%rsp)
	movdqa	%xmm2, %xmm3
	punpckhbw	%xmm1, %xmm2
	movaps	%xmm2, 608(%rsp)
	movdqu	16(%rsi), %xmm2
	punpcklbw	%xmm1, %xmm3
	xorl	%esi, %esi
	movaps	%xmm3, 592(%rsp)
	movdqa	%xmm2, %xmm1
	psrlw	$4, %xmm2
	pand	%xmm0, %xmm1
	pand	%xmm2, %xmm0
	movdqa	%xmm1, %xmm2
	punpckhbw	%xmm0, %xmm1
	punpcklbw	%xmm0, %xmm2
	movaps	%xmm1, 640(%rsp)
	movaps	%xmm2, 624(%rsp)
	.p2align 4,,10
	.p2align 3
.L8029:

	addb	(%rax), %sil
	addq	$1, %rax
	movl	%esi, %edx
	leal	8(%rdx), %ecx
	movl	%ecx, %esi
	andl	$-16, %ecx
	subl	%ecx, %edx
	sarb	$4, %sil
	movb	%dl, -1(%rax)
	cmpq	%rax, %rdi
	jne	.L8029
	movaps	%xmm0, 160(%rsp)
	leaq	40(%rbp), %r14
	pxor	%xmm0, %xmm0
	leaq	80(%rbp), %r12
	leaq	176(%rsp), %rax
	addb	175(%rsp), %sil
	movq	$1, 32(%rsp)
	movabsq	$2251799813685247, %r13
	movq	%rax, 48(%rsp)
	leaq	432(%rsp), %rax
	movups	%xmm0, 40(%rbp)
	movups	%xmm0, 80(%rbp)
	movb	%sil, 655(%rsp)
	movq	$0, 32(%rbp)
	movq	$0, 72(%rbp)
	movq	$1, 40(%rbp)
	movq	$0, 112(%rbp)
	movq	$1, 80(%rbp)
	movq	$0, 152(%rbp)
	movq	%rax, 40(%rsp)
	movq	%r14, 144(%rsp)
	movq	%r12, 152(%rsp)
	movups	%xmm0, 0(%rbp)
	movups	%xmm0, 16(%rbp)
	movups	%xmm0, 56(%rbp)
	movups	%xmm0, 96(%rbp)
	movups	%xmm0, 120(%rbp)
	movups	%xmm0, 136(%rbp)
	.p2align 4,,10
	.p2align 3
.L8030:

	movq	32(%rsp), %rax
	movq	56(%rsp), %rbx
	movsbl	(%rbx,%rax), %edx
	movq	48(%rsp), %rbx
	movl	%eax, %esi
	sarl	%esi
	movq	%rbx, %rdi
# WAS call	table_select
	call	.Ltable_select_local_target
	movq	40(%rsp), %rdi
	movq	%rbx, %rdx
	movq	%rbp, %rsi
# WAS call	ge_madd
	call	.Lge_madd_local_target
	movq	584(%rsp), %rbx
	movq	576(%rsp), %rdi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r15
	movq	568(%rsp), %rdi
	movq	%rbx, %r11
	movq	%r15, 16(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r9
	movq	560(%rsp), %rdi
	movq	%r9, 112(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	movq	%rdi, %rax
	mulq	464(%rsp)
	movq	%rdi, 128(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r9, %rax
	mulq	456(%rsp)
	addq	%rax, %rsi
	movq	552(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	432(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	448(%rsp)
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	440(%rsp)
	movq	%rsi, %rcx
	movq	%rdi, %rbx
	addq	%rax, %rcx
	movq	440(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	552(%rsp)
	movq	%rcx, 64(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	560(%rsp), %rax
	mulq	432(%rsp)
	addq	%rax, %rsi
	movq	%r9, %rax
	adcq	%rdx, %rdi
	mulq	464(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	456(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r11, %rax
	addq	%rsi, %r8
	adcq	%rdi, %r9
	mulq	448(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	448(%rsp), %rax
	adcq	%rdx, %r9
	mulq	552(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	440(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %rsi
	movq	568(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	432(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	movq	%r11, %r15
	adcq	%rdx, %rdi
	mulq	464(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r11, %rax
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	mulq	456(%rsp)
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	456(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	552(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	448(%rsp), %rax
	mulq	560(%rsp)
	movq	%r15, (%rsp)
	movq	480(%rsp), %r12
	addq	%rax, %r10
	movq	440(%rsp), %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%rax, %r10
	movq	576(%rsp), %rax
	adcq	%rdx, %r11
	mulq	432(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r15, %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	464(%rsp)
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	464(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	552(%rsp)
	movq	%rsi, 80(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	456(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %r14
	movq	448(%rsp), %rax
	adcq	%rdx, %r15
	mulq	568(%rsp)
	addq	%rax, %r14
	movq	440(%rsp), %rax
	adcq	%rdx, %r15
	mulq	576(%rsp)
	addq	%rax, %r14
	movq	432(%rsp), %rax
	adcq	%rdx, %r15
	mulq	584(%rsp)
	addq	%r14, %rax
	adcq	%r15, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%r11d, %r11d
	addq	%rsi, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	%rax, %rbx
	andq	%r13, %r8
	shrdq	$51, %rdx, %r10
	andq	%r13, %rbx
	andq	%r13, %rcx
	leaq	(%r10,%r10,8), %rdx
	movq	%rbx, 136(%rsp)
	leaq	(%r10,%rdx,2), %rdi
	movq	64(%rsp), %rdx
	movq	%rbx, 32(%rbp)
	movq	544(%rsp), %rbx
	andq	%r13, %rdx
	addq	%rdx, %rdi
	leaq	(%rbx,%rbx,8), %rax
	movq	%rdi, %rdx
	andq	%r13, %rdi
	shrq	$51, %rdx
	movq	%rdi, 0(%rbp)
	leaq	(%rbx,%rax,2), %rdi
	movq	536(%rsp), %rbx
	addq	%r8, %rdx
	movq	%rdx, %rsi
	leaq	(%rbx,%rbx,8), %rax
	shrq	$51, %rdx
	andq	%r13, %rsi
	addq	%rdx, %rcx
	movq	%rsi, 8(%rbp)
	movq	80(%rsp), %rsi
	movq	%rcx, 16(%rbp)
	movq	520(%rsp), %rcx
	andq	%r13, %rsi
	movq	%rsi, 24(%rbp)
	leaq	(%rbx,%rax,2), %rsi
	movq	528(%rsp), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r10
	movq	%r10, %rax
	mulq	504(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r8, %rax
	mulq	496(%rsp)
	addq	%rax, %r14
	movq	512(%rsp), %rax
	adcq	%rdx, %r15
	mulq	472(%rsp)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	488(%rsp)
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%r12
	addq	%rax, %r14
	movq	%r12, %rax
	adcq	%rdx, %r15
	mulq	512(%rsp)
	movq	%r14, %r10
	movq	%r15, %r11
	movq	%r10, 64(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rcx, %rax
	mulq	472(%rsp)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	504(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	mulq	496(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	488(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	488(%rsp), %rax
	movq	%rdx, %r15
	mulq	512(%rsp)
	movq	%r14, 80(%rsp)
	movq	%r15, 88(%rsp)
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	472(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	504(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	496(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r14, %r9
	shrdq	$51, %r15, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movq	496(%rsp), %rax
	movq	%rdx, %r15
	mulq	512(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	536(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	504(%rsp)
	movq	%r10, %rsi
	movq	%r11, %rdi
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	504(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	512(%rsp)
	movq	%rsi, 96(%rsp)
	movq	%rdi, 104(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	496(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	488(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	536(%rsp)
	addq	%rax, %r10
	movq	472(%rsp), %rax
	adcq	%rdx, %r11
	mulq	544(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%r9d, %r9d
	addq	%rsi, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdi
	movq	64(%rsp), %rdx
	movq	%r10, %rax
	movq	(%rsp), %r11
	movq	80(%rsp), %r8
	andq	%r13, %rax
	movq	112(%rsp), %r15
	andq	%r13, %rdx
	movq	%rax, 72(%rbp)
	movq	128(%rsp), %rax
	addq	%rdx, %rdi
	andq	%r13, %r8
	movq	%rdi, %rdx
	andq	%r13, %rdi
	shrq	$51, %rdx
	movq	%rdi, 40(%rbp)
	addq	%r8, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%r13, %rsi
	movq	%rsi, 48(%rbp)
	movq	%r14, %rsi
	movq	16(%rsp), %r14
	andq	%r13, %rsi
	movq	%rsi, %rdi
	movq	96(%rsp), %rsi
	addq	%rdx, %rdi
	mulq	544(%rsp)
	andq	%r13, %rsi
	movq	%rdi, 56(%rbp)
	movq	%rsi, 64(%rbp)
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movq	%r15, %rax
	mulq	536(%rsp)
	addq	%rax, %rsi
	movq	512(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	552(%rsp)
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	%rcx, %rax
	adcq	%rdx, %r10
	mulq	552(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 72(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	512(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	544(%rsp)
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	536(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rsi, %rax
	movq	%r9, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r10, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	movq	%rbx, %rax
	movq	%rdx, %r15
	mulq	552(%rsp)
	movq	%r14, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	560(%rsp)
	addq	%rax, %r8
	movq	512(%rsp), %rax
	adcq	%rdx, %r9
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	mulq	544(%rsp)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	536(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r15, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	536(%rsp), %rax
	movq	%rdx, %r11
	mulq	552(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbx, %rax
	mulq	560(%rsp)
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	568(%rsp)
	addq	%rax, %rsi
	movq	512(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	576(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	(%rsp), %rax
	addq	%rsi, %r8
	adcq	%rdi, %r9
	mulq	544(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	544(%rsp), %rax
	adcq	%rdx, %r9
	mulq	552(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	536(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	568(%rsp)
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	576(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	512(%rsp), %rax
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	mulq	584(%rsp)
	addq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %r9, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%rax, %rsi
	andq	%r13, %r14
	andq	%r13, %r8
	shrdq	$51, %rdx, %rax
	movq	504(%rsp), %rbx
	movq	%r8, 104(%rbp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	64(%rsp), %rdx
	movq	%rsi, %rax
	andq	%r13, %rax
	andq	%r13, %rdx
	movq	%rax, 112(%rbp)
	leaq	(%rbx,%rbx,8), %rax
	addq	%rdx, %rcx
	leaq	(%rbx,%rax,2), %r8
	movq	496(%rsp), %rbx
	movq	%rcx, %rdx
	andq	%r13, %rcx
	shrq	$51, %rdx
	movq	%rcx, 80(%rbp)
	leaq	(%rbx,%rbx,8), %rax
	addq	%r14, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r13, %rcx
	movq	%rcx, 88(%rbp)
	movq	%r10, %rcx
	andq	%r13, %rcx
	addq	%rdx, %rcx
	movq	%rcx, 96(%rbp)
	leaq	(%rbx,%rax,2), %rcx
	movq	488(%rsp), %rbx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rdi
	leaq	(%r12,%r12,8), %rax
	leaq	(%r12,%rax,2), %rbx
	movq	%rbx, %rax
	mulq	464(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rdi, %rax
	mulq	456(%rsp)
	addq	%rax, %r14
	movq	472(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%rcx, %rax
	adcq	%rdx, %r15
	mulq	448(%rsp)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	472(%rsp), %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r12, %rax
	mulq	432(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	movq	%r14, (%rsp)
	movq	%r15, 8(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	456(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	448(%rsp)
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r15, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	472(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	448(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r12, %rax
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	488(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%rcx, %rax
	adcq	%rdx, %r15
	mulq	464(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r8, %rax
	addq	%r14, %rcx
	adcq	%r15, %rbx
	mulq	456(%rsp)
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	472(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	456(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r12, %rax
	mulq	448(%rsp)
	addq	%rax, %r14
	movq	488(%rsp), %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	496(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	464(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	addq	%r14, %r8
	adcq	%r15, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r12, %rax
	mulq	456(%rsp)
	addq	%rax, %r10
	movq	488(%rsp), %rax
	adcq	%rdx, %r11
	mulq	448(%rsp)
	addq	%rax, %r10
	movq	496(%rsp), %rax
	adcq	%rdx, %r11
	mulq	440(%rsp)
	addq	%rax, %r10
	movq	504(%rsp), %rax
	adcq	%rdx, %r11
	mulq	432(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%r13, %rsi
	andq	%r13, %rcx
	shrdq	$51, %r11, %rax
	andq	%r13, %r8
	andq	%r13, %r10
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	(%rsp), %rdx
	andq	%r13, %rdx
	addq	%rdx, %rax
	movq	%rax, %rdx
	andq	%r13, %rax
	shrq	$51, %rdx
	movq	%rax, 120(%rbp)
	addq	%rdx, %rsi
	movq	%rsi, %rdi
	shrq	$51, %rsi
	andq	%r13, %rdi
	addq	%rsi, %rcx
	movq	%rdi, 128(%rbp)
	movq	%rcx, 136(%rbp)
	addq	$2, 32(%rsp)
	movq	32(%rsp), %rax
	movq	%r8, 144(%rbp)
	movq	%r10, 152(%rbp)
	cmpq	$65, %rax
	jne	.L8030
	movq	144(%rsp), %r14
	movq	136(%rsp), %rax
	leaq	304(%rsp), %rbx
	movq	152(%rsp), %r12
	movdqu	0(%rbp), %xmm4
	movq	%rbx, %rsi
	movdqu	16(%rbp), %xmm5
	movq	%rax, 336(%rsp)
	movq	32(%r14), %rax
	movq	40(%rsp), %r15
	movaps	%xmm4, 304(%rsp)
	movdqu	40(%rbp), %xmm6
	movdqu	16(%r14), %xmm7
	movaps	%xmm5, 320(%rsp)
	movq	%rax, 376(%rsp)
	movdqu	80(%rbp), %xmm4
	movq	%r15, %rdi
	movq	32(%r12), %rax
	movdqu	16(%r12), %xmm5
	movups	%xmm6, 344(%rsp)
	movups	%xmm7, 360(%rsp)
	movq	%rax, 416(%rsp)
	movaps	%xmm4, 384(%rsp)
	movaps	%xmm5, 400(%rsp)
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	x25519_ge_p1p1_to_p2
	call	.Lx25519_ge_p1p1_to_p2_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	x25519_ge_p1p1_to_p2
	call	.Lx25519_ge_p1p1_to_p2_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	x25519_ge_p1p1_to_p2
	call	.Lx25519_ge_p1p1_to_p2_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	$0, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L8031:

	movq	32(%rsp), %rax
	movq	56(%rsp), %rbx
	movsbl	(%rbx,%rax), %edx
	movq	48(%rsp), %rbx
	movl	%eax, %esi
	sarl	%esi
	movq	%rbx, %rdi
# WAS call	table_select
	call	.Ltable_select_local_target
	movq	40(%rsp), %rdi
	movq	%rbx, %rdx
	movq	%rbp, %rsi
# WAS call	ge_madd
	call	.Lge_madd_local_target
	movq	584(%rsp), %rbx
	movq	576(%rsp), %rdi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	568(%rsp), %rdi
	movq	%rcx, (%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	560(%rsp), %rdi
	movq	%r11, 16(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	movq	%rdi, %rax
	mulq	464(%rsp)
	movq	%rdi, 136(%rsp)
	movq	%rbx, %rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r11, %rax
	mulq	456(%rsp)
	addq	%rax, %r8
	movq	552(%rsp), %rax
	adcq	%rdx, %r9
	mulq	432(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	448(%rsp)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	440(%rsp)
	movq	%r8, %rbx
	movq	%r9, %rsi
	addq	%rax, %rbx
	movq	440(%rsp), %rax
	adcq	%rdx, %rsi
	mulq	552(%rsp)
	movq	%rbx, %r14
	movq	%rdi, %rbx
	movq	%r14, 64(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	560(%rsp), %rax
	mulq	432(%rsp)
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	456(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	448(%rsp)
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	shrdq	$51, %rsi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	448(%rsp), %rax
	adcq	%rdx, %r11
	mulq	552(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	440(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %r8
	movq	568(%rsp), %rax
	adcq	%rdx, %r9
	mulq	432(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	movabsq	$2251799813685247, %rcx
	adcq	%rdx, %r9
	mulq	464(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	456(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	456(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	552(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	448(%rsp), %rax
	mulq	560(%rsp)
	movq	%rbx, 128(%rsp)
	movq	%rsi, 80(%rsp)
	addq	%rax, %r12
	movq	440(%rsp), %rax
	adcq	%rdx, %r13
	mulq	568(%rsp)
	addq	%rax, %r12
	movq	576(%rsp), %rax
	adcq	%rdx, %r13
	mulq	432(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbx, %rax
	movq	64(%rsp), %rbx
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	464(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	464(%rsp), %rax
	adcq	%rdx, %r9
	mulq	552(%rsp)
	movq	%r8, %r12
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	456(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %r14
	movq	448(%rsp), %rax
	adcq	%rdx, %r15
	mulq	568(%rsp)
	addq	%rax, %r14
	movq	440(%rsp), %rax
	adcq	%rdx, %r15
	mulq	576(%rsp)
	addq	%rax, %r14
	movq	432(%rsp), %rax
	adcq	%rdx, %r15
	mulq	584(%rsp)
	addq	%r14, %rax
	adcq	%r15, %rdx
	shrdq	$51, %r9, %r12
	xorl	%r13d, %r13d
	movq	544(%rsp), %r15
	addq	%r12, %rax
	adcq	%r13, %rdx
	movq	%rax, %r14
	andq	%rcx, %rbx
	andq	%rcx, %r10
	shrdq	$51, %rdx, %rax
	andq	%rcx, %r8
	leaq	(%rax,%rax,8), %rdx
	movq	%r8, 24(%rbp)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r14, %rax
	movq	536(%rsp), %r14
	addq	%rdx, %rbx
	andq	%rcx, %rax
	movq	%rbx, %rdx
	movq	%rax, 32(%rbp)
	leaq	(%r15,%r15,8), %rax
	andq	%rcx, %rbx
	shrq	$51, %rdx
	leaq	(%r15,%rax,2), %r8
	leaq	(%r14,%r14,8), %rax
	movq	%rbx, 0(%rbp)
	addq	%r10, %rdx
	leaq	(%r14,%rax,2), %rdi
	movq	480(%rsp), %rbx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rcx, %rsi
	movq	%rsi, 8(%rbp)
	movq	80(%rsp), %rsi
	andq	%rcx, %rsi
	addq	%rdx, %rsi
	movq	%rsi, 16(%rbp)
	movq	528(%rsp), %rsi
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r9
	movq	520(%rsp), %rsi
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r10
	movq	%r10, %rax
	mulq	504(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r9, %rax
	mulq	496(%rsp)
	addq	%rax, %r12
	movq	512(%rsp), %rax
	adcq	%rdx, %r13
	mulq	472(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	488(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	512(%rsp)
	movq	%r12, 64(%rsp)
	movq	%r13, 72(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	504(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	488(%rsp)
	addq	%r10, %rax
	movq	%r12, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	488(%rsp), %rax
	movq	%rdx, %r13
	mulq	512(%rsp)
	movq	%r12, 80(%rsp)
	movq	%r13, 88(%rsp)
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	528(%rsp), %rax
	adcq	%rdx, %r11
	mulq	472(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	504(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	496(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%r12, %r11
	shrdq	$51, %r13, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	496(%rsp), %rax
	movq	%rdx, %r11
	mulq	512(%rsp)
	movq	%r10, 96(%rsp)
	movq	%r11, 104(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	mulq	488(%rsp)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	528(%rsp)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	472(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	504(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r10, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	movq	%r9, %r10
	movq	%r8, %r9
	addq	%rax, %r9
	movq	504(%rsp), %rax
	adcq	%rdx, %r10
	mulq	512(%rsp)
	movq	%r9, %r8
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	mulq	496(%rsp)
	addq	%rax, %r12
	movq	488(%rsp), %rax
	adcq	%rdx, %r13
	mulq	528(%rsp)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	472(%rsp)
	movq	%r9, 112(%rsp)
	movq	80(%rsp), %r9
	movq	%r10, 120(%rsp)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r10, %r8
	xorl	%r11d, %r11d
	movq	(%rsp), %r13
	addq	%r8, %rax
	movq	112(%rsp), %r8
	adcq	%r11, %rdx
	movq	%rax, %r12
	andq	%rcx, %r9
	shrdq	$51, %rdx, %rax
	andq	%rcx, %r8
	leaq	(%rax,%rax,8), %rdx
	movq	%r8, 64(%rbp)
	leaq	(%rax,%rdx,2), %rdi
	movq	64(%rsp), %rdx
	movq	%r12, %rax
	andq	%rcx, %rax
	andq	%rcx, %rdx
	movq	%rax, 72(%rbp)
	movq	136(%rsp), %rax
	addq	%rdx, %rdi
	movq	%rdi, %rdx
	andq	%rcx, %rdi
	shrq	$51, %rdx
	movq	%rdi, 40(%rbp)
	addq	%r9, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	andq	%rcx, %r9
	movq	%r9, 48(%rbp)
	movq	96(%rsp), %r9
	andq	%rcx, %r9
	movq	%r9, %rdi
	addq	%rdx, %rdi
	mulq	%r15
	movq	%rdi, 56(%rbp)
	movq	128(%rsp), %rdi
	movq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	512(%rsp), %rax
	adcq	%rdx, %r9
	mulq	552(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	528(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	movq	%r11, %r12
	movq	%r10, %r11
	addq	%rax, %r11
	movq	%rsi, %rax
	adcq	%rdx, %r12
	mulq	552(%rsp)
	movq	%r12, 24(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	512(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%r11, 16(%rsp)
	adcq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	528(%rsp)
	addq	%r8, %rax
	movq	%r11, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r12, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	528(%rsp), %rax
	movq	%rdx, %r13
	mulq	552(%rsp)
	movq	%r12, %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	mulq	560(%rsp)
	addq	%rax, %r10
	movq	512(%rsp), %rax
	adcq	%rdx, %r11
	mulq	568(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	movq	%r12, (%rsp)
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	%r14
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r14, %rax
	movq	%rdx, %r13
	mulq	552(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	528(%rsp), %rax
	mulq	560(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	568(%rsp)
	addq	%rax, %r8
	movq	512(%rsp), %rax
	adcq	%rdx, %r9
	mulq	576(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	552(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	mulq	560(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	528(%rsp), %rax
	addq	%r8, %r14
	adcq	%r9, %r15
	mulq	568(%rsp)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	576(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	512(%rsp), %rax
	addq	%r14, %rsi
	adcq	%r15, %rdi
	mulq	584(%rsp)
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r14
	movq	(%rsp), %rdi
	andq	%rcx, %r10
	shrdq	$51, %rdx, %rax
	movq	%r10, 104(%rbp)
	leaq	(%rax,%rax,8), %rdx
	andq	%rcx, %rdi
	leaq	(%rax,%rdx,2), %rsi
	movq	16(%rsp), %rdx
	movq	%r14, %rax
	andq	%rcx, %rax
	andq	%rcx, %rdx
	movq	%rax, 112(%rbp)
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%rcx, %rsi
	shrq	$51, %rdx
	movq	%rsi, 80(%rbp)
	addq	%rdi, %rdx
	movq	504(%rsp), %rdi
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rcx, %rsi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r10
	movq	%rsi, 88(%rbp)
	movq	496(%rsp), %rdi
	movq	%r12, %rsi
	andq	%rcx, %rsi
	addq	%rdx, %rsi
	leaq	(%rdi,%rdi,8), %rax
	movq	%rsi, 96(%rbp)
	leaq	(%rdi,%rax,2), %rsi
	movq	488(%rsp), %rdi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r12
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rdi
	movq	%rdi, %rax
	mulq	464(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r12, %rax
	mulq	456(%rsp)
	addq	%rax, %r14
	movq	472(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	448(%rsp)
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	472(%rsp), %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	movq	%r14, (%rsp)
	movq	%r15, 8(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rbx, %rax
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%r12, %rax
	adcq	%rdx, %r15
	mulq	464(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	addq	%r14, %r12
	adcq	%r15, %r13
	mulq	456(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r10, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	448(%rsp)
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	movq	8(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	472(%rsp), %rax
	adcq	%rdx, %r9
	mulq	448(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rbx, %rax
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	488(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%rsi, %rax
	adcq	%rdx, %r15
	mulq	464(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	addq	%r14, %rsi
	adcq	%r15, %rdi
	mulq	456(%rsp)
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	472(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	456(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rbx, %rax
	mulq	448(%rsp)
	addq	%rax, %r14
	movq	488(%rsp), %rax
	adcq	%rdx, %r15
	mulq	440(%rsp)
	addq	%rax, %r14
	movq	496(%rsp), %rax
	adcq	%rdx, %r15
	mulq	432(%rsp)
	addq	%rax, %r14
	movq	%r10, %rax
	adcq	%rdx, %r15
	mulq	464(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	addq	%r14, %r10
	adcq	%r15, %r11
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	472(%rsp), %rax
	adcq	%rdx, %r11
	mulq	464(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rbx, %rax
	mulq	456(%rsp)
	addq	%rax, %r12
	movq	488(%rsp), %rax
	adcq	%rdx, %r13
	mulq	448(%rsp)
	addq	%rax, %r12
	movq	496(%rsp), %rax
	adcq	%rdx, %r13
	mulq	440(%rsp)
	addq	%rax, %r12
	movq	504(%rsp), %rax
	adcq	%rdx, %r13
	mulq	432(%rsp)
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	adcq	%rdx, %r13
	movq	%r12, %rax
	andq	%rcx, %r8
	andq	%rcx, %rsi
	shrdq	$51, %r13, %rax
	andq	%rcx, %r10
	andq	%rcx, %r12
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	movq	(%rsp), %rdx
	andq	%rcx, %rdx
	addq	%rdx, %rax
	movq	%rax, %rdx
	andq	%rcx, %rax
	shrq	$51, %rdx
	movq	%rax, 120(%rbp)
	addq	%rdx, %r8
	movq	%r8, %rbx
	shrq	$51, %r8
	andq	%rcx, %rbx
	addq	%r8, %rsi
	movq	%rbx, 128(%rbp)
	addq	$2, 32(%rsp)
	movq	32(%rsp), %rax
	movq	%rsi, 136(%rbp)
	movq	%r10, 144(%rbp)
	movq	%r12, 152(%rbp)
	cmpq	$64, %rax
	jne	.L8031
	movq	664(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8037
	addq	$680, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8037:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1419:

	.size	x25519_ge_scalarmult_base, .-x25519_ge_scalarmult_base
# WAS .section	.text.x25519_ge_scalarmult,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_ge_scalarmult
	.hidden	x25519_ge_scalarmult
	.type	x25519_ge_scalarmult, @function
.Lx25519_ge_scalarmult_local_target:
x25519_ge_scalarmult:
.LFB1421:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$120, %rsp
	.cfi_def_cfa_offset 4272
	pxor	%xmm0, %xmm0
	movabsq	$2251799813685247, %r14
	movq	%rdi, 168(%rsp)
	movq	%rdx, %rbx
	leaq	1792(%rsp), %rdi
	leaq	912(%rsp), %r13
	movq	%rsi, 144(%rsp)
	movq	%rdx, %rsi
	movq	%rdx, 160(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 4200(%rsp)
	xorl	%eax, %eax
	movups	%xmm0, 1640(%rsp)
	movq	$1, 1632(%rsp)
	movq	$1, 1672(%rsp)
	movq	$1, 1712(%rsp)
	movq	$0, 1784(%rsp)
	movups	%xmm0, 1656(%rsp)
	movaps	%xmm0, 1680(%rsp)
	movaps	%xmm0, 1696(%rsp)
	movups	%xmm0, 1720(%rsp)
	movups	%xmm0, 1736(%rsp)
	movups	%xmm0, 1752(%rsp)
	movups	%xmm0, 1768(%rsp)
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	32(%rbx), %rax
	movdqu	(%rbx), %xmm2
	movdqu	80(%rbx), %xmm3
	movdqu	16(%rbx), %xmm4
	movq	%rax, 824(%rsp)
	movq	72(%rbx), %rax
	movdqu	40(%rbx), %xmm6
	movdqu	96(%rbx), %xmm5
	movaps	%xmm3, (%rsp)
	movq	%rax, 864(%rsp)
	movq	112(%rbx), %rax
	movups	%xmm2, 792(%rsp)
	movdqu	56(%rbx), %xmm2
	movq	%rax, 904(%rsp)
	leaq	1952(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	672(%rsp), %rax
	movq	%rax, 184(%rsp)
	leaq	192(%rsp), %rax
	movq	%rax, 24(%rsp)
	leaq	512(%rsp), %rax
	movl	$2, (%rsp)
	movq	%rax, 136(%rsp)
	movups	%xmm4, 808(%rsp)
	movaps	%xmm6, 832(%rsp)
	movaps	%xmm2, 848(%rsp)
	movups	%xmm3, 872(%rsp)
	movups	%xmm5, 888(%rsp)
.L8040:

	movl	(%rsp), %ebx
	movq	24(%rsp), %rbp
	movl	%ebx, %eax
	movq	%rbp, %rdi
	shrl	%eax
	movq	%rax, %rdx
	salq	$4, %rdx
	subq	%rax, %rdx
	movq	184(%rsp), %rax
	leaq	(%rax,%rdx,8), %rsi
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	136(%rsp), %r15
	movq	%rbp, %rsi
	movq	%rbp, 24(%rsp)
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%r15, 136(%rsp)
	movq	%r15, %rsi
	movq	128(%rsp), %r15
	movq	%r15, %rdi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	leaq	160(%r15), %rdi
	movq	%r15, 128(%rsp)
	movq	%rdi, 152(%rsp)
	movl	%ebx, (%rsp)
	cmpl	$7, %ebx
	jbe	.L8051
	movq	%r15, %rdx
	movq	%r15, %rbx
	movq	24(%rsp), %r15
	movq	160(%rsp), %rsi
	addq	$320, %rbx
	addq	$240, %r13
	movq	%r15, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	movq	%r15, %rsi
	movq	136(%rsp), %r15
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	152(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	addl	$2, (%rsp)
	movl	(%rsp), %eax
	movq	%rbx, 128(%rsp)
	cmpl	$16, %eax
	jne	.L8040
	movq	168(%rsp), %rbx
	pxor	%xmm0, %xmm0
	leaq	1632(%rsp), %rax
	movl	$0, 128(%rsp)
	movq	%rax, 152(%rsp)
	leaq	352(%rsp), %rax
	movdqa	.LC108(%rip), %xmm11
	movabsq	$2251799813685247, %r14
	movups	%xmm0, 40(%rbx)
	movdqa	.LC196(%rip), %xmm12
	movups	%xmm0, 80(%rbx)
	movq	$0, 32(%rbx)
	movq	$0, 72(%rbx)
	movq	$1, 40(%rbx)
	movq	$0, 112(%rbx)
	movq	$1, 80(%rbx)
	movq	%rax, 160(%rsp)
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 56(%rbx)
	movups	%xmm0, 96(%rbx)
	.p2align 4,,10
	.p2align 3
.L8042:

	movq	24(%rsp), %rdi
	movq	%rbx, %rsi
	pxor	%xmm2, %xmm2
	movdqa	%xmm11, %xmm5
	movdqa	%xmm2, %xmm3
	movdqa	%xmm2, %xmm4
	movdqa	%xmm2, %xmm6
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	344(%rsp), %rax
	movq	344(%rsp), %rsi
	movdqa	%xmm2, %xmm7
	movdqa	%xmm12, %xmm8
	movdqa	%xmm2, %xmm9
	movdqa	%xmm11, %xmm10
	movq	320(%rsp), %rbp
	leaq	(%rax,%rax,8), %rax
	movq	224(%rsp), %rcx
	movq	216(%rsp), %r15
	leaq	(%rsi,%rax,2), %r11
	movq	336(%rsp), %rax
	movq	336(%rsp), %rsi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %r10
	movq	328(%rsp), %rax
	movq	328(%rsp), %rsi
	movq	%r10, %r13
	leaq	(%rax,%rax,8), %rax
	movq	%r13, 32(%rsp)
	leaq	(%rsi,%rax,2), %r12
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %rax
	movq	%r12, 48(%rsp)
	movq	%rax, 112(%rsp)
	mulq	%rcx
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	312(%rsp), %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	200(%rsp)
	movq	%r11, %r9
	movq	%r9, (%rsp)
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	328(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	336(%rsp), %rax
	movq	%r8, 64(%rsp)
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	288(%rsp), %r15
	mulq	%rbp
	addq	%rax, %r10
	movq	208(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	adcq	%rdx, %r11
	mulq	344(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	andq	%r14, %rsi
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	80(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rcx, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r14, %rcx
	movq	%rcx, 8(%rbx)
	movq	64(%rsp), %rcx
	andq	%r14, %rcx
	addq	%rdx, %rcx
	movq	%r10, %rdx
	movq	%rcx, 16(%rbx)
	movq	304(%rsp), %rcx
	andq	%r14, %rdx
	movq	%rdx, 24(%rbx)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdi
	movq	296(%rsp), %rcx
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rsi
	movq	280(%rsp), %rcx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r9
	movq	%r9, %rax
	mulq	264(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	272(%rsp), %rax
	adcq	%rdx, %r13
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	248(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	240(%rsp)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	240(%rsp), %rax
	adcq	%rdx, %r11
	mulq	272(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	264(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	248(%rsp), %rax
	movq	%rdx, %r13
	mulq	272(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	232(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	256(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	256(%rsp), %rax
	movq	%rdx, %r9
	mulq	272(%rsp)
	movq	%r8, %rsi
	movq	%r8, 80(%rsp)
	movq	%r9, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	264(%rsp), %rax
	movq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	240(%rsp), %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 96(%rsp)
	andq	%r14, %r12
	andq	%r14, %r10
	shrdq	$51, %rdx, %rax
	movq	%rdx, 104(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	64(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%r14, %rsi
	shrq	$51, %rdx
	movq	%rsi, 40(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	andq	%r14, %r9
	movq	%r9, 48(%rbx)
	movq	80(%rsp), %rsi
	movq	96(%rsp), %rax
	movq	(%rsp), %r11
	movq	%r10, 64(%rbx)
	andq	%r14, %rsi
	movq	32(%rsp), %r10
	andq	%r14, %rax
	addq	%rdx, %rsi
	movq	%rax, 72(%rbx)
	movq	112(%rsp), %rax
	mulq	304(%rsp)
	movq	%rsi, 56(%rbx)
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movq	48(%rsp), %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	312(%rsp)
	movq	%r8, %r12
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	mulq	272(%rsp)
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rdi, 40(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	(%rsp), %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	296(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	304(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, (%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbp, %rax
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	344(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	movq	(%rsp), %rsi
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	movq	24(%rsp), %rdi
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r14, %r12
	movq	%rax, 48(%rsp)
	shrdq	$51, %rdx, %r8
	movq	%rdx, 56(%rsp)
	andq	%r14, %r10
	andq	%r14, %rsi
	leaq	(%r8,%r8,8), %rdx
	movq	%rsi, 104(%rbx)
	movq	%rbx, %rsi
	leaq	(%r8,%rdx,2), %rcx
	movq	32(%rsp), %rdx
	addq	%r12, %rcx
	movq	%rcx, %rax
	andq	%r14, %rdx
	andq	%r14, %rcx
	shrq	$51, %rax
	movq	%rcx, 80(%rbx)
	addq	%rax, %rdx
	movq	48(%rsp), %rax
	movq	%rdx, %rcx
	shrq	$51, %rdx
	addq	%r10, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	movq	%rcx, 88(%rbx)
	movq	%rdx, 96(%rbx)
	movq	%rax, 112(%rbx)
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	344(%rsp), %rax
	movq	344(%rsp), %rsi
	movq	320(%rsp), %rbp
	movq	224(%rsp), %rcx
	leaq	(%rax,%rax,8), %rax
	movq	216(%rsp), %r15
	leaq	(%rsi,%rax,2), %r11
	movq	336(%rsp), %rax
	movq	336(%rsp), %rsi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %r10
	movq	328(%rsp), %rax
	movq	328(%rsp), %rsi
	movq	%r10, %r13
	leaq	(%rax,%rax,8), %rax
	movq	%r13, 32(%rsp)
	leaq	(%rsi,%rax,2), %r12
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %rax
	movq	%r12, 48(%rsp)
	movq	%rax, 112(%rsp)
	mulq	%rcx
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	312(%rsp), %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	200(%rsp)
	movq	%r11, %r9
	movq	%r9, (%rsp)
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	328(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	336(%rsp), %rax
	movq	%r8, 64(%rsp)
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	288(%rsp), %r15
	mulq	%rbp
	addq	%rax, %r10
	movq	208(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	adcq	%rdx, %r11
	mulq	344(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	andq	%r14, %rsi
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	80(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rcx, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r14, %rcx
	movq	%rcx, 8(%rbx)
	movq	64(%rsp), %rcx
	andq	%r14, %rcx
	addq	%rdx, %rcx
	movq	%r10, %rdx
	movq	%rcx, 16(%rbx)
	movq	304(%rsp), %rcx
	andq	%r14, %rdx
	movq	%rdx, 24(%rbx)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdi
	movq	296(%rsp), %rcx
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rsi
	movq	280(%rsp), %rcx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r9
	movq	%r9, %rax
	mulq	264(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	272(%rsp), %rax
	adcq	%rdx, %r13
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	248(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	240(%rsp)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	240(%rsp), %rax
	adcq	%rdx, %r11
	mulq	272(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	264(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	248(%rsp), %rax
	movq	%rdx, %r13
	mulq	272(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	232(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	256(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	256(%rsp), %rax
	movq	%rdx, %r9
	mulq	272(%rsp)
	movq	%r8, %rsi
	movq	%r8, 80(%rsp)
	movq	%r9, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	264(%rsp), %rax
	movq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	240(%rsp), %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 96(%rsp)
	andq	%r14, %r12
	andq	%r14, %r10
	shrdq	$51, %rdx, %rax
	movq	%rdx, 104(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	64(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%r14, %rsi
	shrq	$51, %rdx
	movq	%rsi, 40(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	andq	%r14, %r9
	movq	%r9, 48(%rbx)
	movq	80(%rsp), %rsi
	movq	96(%rsp), %rax
	movq	(%rsp), %r11
	movq	%r10, 64(%rbx)
	andq	%r14, %rsi
	movq	32(%rsp), %r10
	andq	%r14, %rax
	addq	%rdx, %rsi
	movq	%rax, 72(%rbx)
	movq	112(%rsp), %rax
	mulq	304(%rsp)
	movq	%rsi, 56(%rbx)
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movq	48(%rsp), %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	312(%rsp)
	movq	%r8, %r12
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	mulq	272(%rsp)
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rdi, 40(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	(%rsp), %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	296(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	304(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, (%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbp, %rax
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	344(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	movq	(%rsp), %rsi
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	movq	24(%rsp), %rdi
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r14, %r12
	movq	%rax, 48(%rsp)
	shrdq	$51, %rdx, %r8
	movq	%rdx, 56(%rsp)
	andq	%r14, %r10
	andq	%r14, %rsi
	leaq	(%r8,%r8,8), %rdx
	movq	%rsi, 104(%rbx)
	movq	%rbx, %rsi
	leaq	(%r8,%rdx,2), %rcx
	movq	32(%rsp), %rdx
	addq	%r12, %rcx
	movq	%rcx, %rax
	andq	%r14, %rdx
	andq	%r14, %rcx
	shrq	$51, %rax
	movq	%rcx, 80(%rbx)
	addq	%rax, %rdx
	movq	48(%rsp), %rax
	movq	%rdx, %rcx
	shrq	$51, %rdx
	addq	%r10, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	movq	%rcx, 88(%rbx)
	movq	%rdx, 96(%rbx)
	movq	%rax, 112(%rbx)
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	344(%rsp), %rax
	movq	344(%rsp), %rsi
	movq	320(%rsp), %rbp
	movq	224(%rsp), %rcx
	leaq	(%rax,%rax,8), %rax
	movq	216(%rsp), %r15
	leaq	(%rsi,%rax,2), %r11
	movq	336(%rsp), %rax
	movq	336(%rsp), %rsi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rsi,%rax,2), %r10
	movq	328(%rsp), %rax
	movq	328(%rsp), %rsi
	movq	%r10, %r13
	leaq	(%rax,%rax,8), %rax
	movq	%r13, 32(%rsp)
	leaq	(%rsi,%rax,2), %r12
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %rax
	movq	%r12, 48(%rsp)
	movq	%rax, 112(%rsp)
	mulq	%rcx
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	312(%rsp), %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	200(%rsp)
	movq	%r11, %r9
	movq	%r9, (%rsp)
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	328(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	336(%rsp), %rax
	movq	%r8, 64(%rsp)
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	288(%rsp), %r15
	mulq	%rbp
	addq	%rax, %r10
	movq	208(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	adcq	%rdx, %r11
	mulq	344(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	andq	%r14, %rsi
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	80(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rcx, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r14, %rcx
	movq	%rcx, 8(%rbx)
	movq	64(%rsp), %rcx
	andq	%r14, %rcx
	addq	%rdx, %rcx
	movq	%r10, %rdx
	movq	%rcx, 16(%rbx)
	movq	304(%rsp), %rcx
	andq	%r14, %rdx
	movq	%rdx, 24(%rbx)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdi
	movq	296(%rsp), %rcx
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rsi
	movq	280(%rsp), %rcx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r9
	movq	%r9, %rax
	mulq	264(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	272(%rsp), %rax
	adcq	%rdx, %r13
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	248(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	240(%rsp)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	240(%rsp), %rax
	adcq	%rdx, %r11
	mulq	272(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	264(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	248(%rsp), %rax
	movq	%rdx, %r13
	mulq	272(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	232(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	256(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	256(%rsp), %rax
	movq	%rdx, %r9
	mulq	272(%rsp)
	movq	%r8, %rsi
	movq	%r8, 80(%rsp)
	movq	%r9, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	264(%rsp), %rax
	movq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	240(%rsp), %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, 96(%rsp)
	andq	%r14, %r12
	andq	%r14, %r10
	shrdq	$51, %rdx, %rax
	movq	%rdx, 104(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	64(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%r14, %rsi
	shrq	$51, %rdx
	movq	%rsi, 40(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %r9
	shrq	$51, %rdx
	andq	%r14, %r9
	movq	%r9, 48(%rbx)
	movq	80(%rsp), %rsi
	movq	96(%rsp), %rax
	movq	(%rsp), %r11
	movq	%r10, 64(%rbx)
	andq	%r14, %rsi
	movq	32(%rsp), %r10
	andq	%r14, %rax
	addq	%rdx, %rsi
	movq	%rax, 72(%rbx)
	movq	112(%rsp), %rax
	mulq	304(%rsp)
	movq	%rsi, 56(%rbx)
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movq	48(%rsp), %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	312(%rsp)
	movq	%r8, %r12
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	mulq	272(%rsp)
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rdi, 40(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	(%rsp), %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	296(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	304(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, (%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbp, %rax
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	344(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	movq	(%rsp), %rsi
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	movq	24(%rsp), %rdi
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r14, %r12
	movq	%rax, 48(%rsp)
	shrdq	$51, %rdx, %r8
	movq	%rdx, 56(%rsp)
	andq	%r14, %r10
	andq	%r14, %rsi
	leaq	(%r8,%r8,8), %rdx
	movq	%rsi, 104(%rbx)
	movq	%rbx, %rsi
	leaq	(%r8,%rdx,2), %rcx
	movq	32(%rsp), %rdx
	addq	%r12, %rcx
	movq	%rcx, %rax
	andq	%r14, %rdx
	andq	%r14, %rcx
	shrq	$51, %rax
	movq	%rcx, 80(%rbx)
	addq	%rax, %rdx
	movq	48(%rsp), %rax
	movq	%rdx, %rcx
	shrq	$51, %rdx
	addq	%r10, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	movq	%rcx, 88(%rbx)
	movq	%rdx, 96(%rbx)
	movq	%rax, 112(%rbx)
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	344(%rsp), %rax
	movq	344(%rsp), %rdi
	movq	320(%rsp), %r15
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	336(%rsp), %rax
	movq	336(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rbp
	movq	328(%rsp), %rax
	movq	328(%rsp), %rdi
	movq	%rbp, 32(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %r13
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %rax
	movq	%r13, 48(%rsp)
	movq	%rax, 96(%rsp)
	mulq	224(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r13, %rax
	mulq	216(%rsp)
	addq	%rax, %r8
	movq	312(%rsp), %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	200(%rsp)
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, 64(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	224(%rsp)
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	216(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%r9d, %r9d
	addq	%rsi, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	328(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	224(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	216(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %rdi
	movq	216(%rsp), %rax
	movq	%rdx, %rbp
	mulq	312(%rsp)
	movq	%rdi, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	208(%rsp)
	movq	64(%rsp), %rsi
	movq	%rcx, (%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	336(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	224(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rbp, %r8
	xorl	%r9d, %r9d
	movq	240(%rsp), %rbp
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	224(%rsp), %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%r15, %rax
	mulq	216(%rsp)
	addq	%rax, %r10
	movq	208(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	adcq	%rdx, %r11
	mulq	344(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	andq	%r14, %rsi
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	80(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rcx, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	shrq	$51, %rdx
	movq	%rcx, 352(%rsp)
	addq	%r12, %rdx
	movq	%rax, 384(%rsp)
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%r14, %rsi
	movq	%rsi, 360(%rsp)
	movq	%rdi, %rsi
	andq	%r14, %rsi
	movq	%rsi, %rcx
	movq	304(%rsp), %rsi
	addq	%rdx, %rcx
	movq	%r10, %rdx
	leaq	(%rsi,%rsi,8), %rax
	andq	%r14, %rdx
	movq	%rcx, 368(%rsp)
	movq	280(%rsp), %rcx
	leaq	(%rsi,%rax,2), %rdi
	movq	296(%rsp), %rsi
	movq	%rdx, 376(%rsp)
	movq	288(%rsp), %rdx
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %rsi
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r11
	movq	%r11, %rax
	mulq	264(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	272(%rsp), %rax
	adcq	%rdx, %r13
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	248(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	264(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	248(%rsp), %rax
	movq	%rdx, %r13
	mulq	272(%rsp)
	movq	%rax, %r8
	movq	%rbp, %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	288(%rsp), %rax
	adcq	%rdx, %r9
	mulq	232(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	256(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	256(%rsp), %rax
	movq	%rdx, %r9
	mulq	272(%rsp)
	movq	%r8, %rsi
	movq	%r8, 80(%rsp)
	movq	%r9, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	288(%rsp)
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	264(%rsp), %rax
	movq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	248(%rsp), %rax
	adcq	%rdx, %r9
	mulq	288(%rsp)
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r8
	movq	%r12, %rdi
	andq	%r14, %r10
	shrdq	$51, %rdx, %rax
	andq	%r14, %rdi
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	64(%rsp), %rdx
	movq	%r8, %rax
	movq	(%rsp), %r13
	andq	%r14, %rax
	movq	32(%rsp), %r12
	movq	%r10, 416(%rsp)
	andq	%r14, %rdx
	movq	%rax, 424(%rsp)
	movq	96(%rsp), %rax
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%r14, %rsi
	shrq	$51, %rdx
	movq	%rsi, 392(%rsp)
	addq	%rdi, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%r14, %rsi
	movq	%rsi, 400(%rsp)
	movq	80(%rsp), %rsi
	andq	%r14, %rsi
	addq	%rdx, %rsi
	mulq	304(%rsp)
	movq	%rsi, 408(%rsp)
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movq	48(%rsp), %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	288(%rsp)
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	312(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r15, %rax
	mulq	272(%rsp)
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	288(%rsp)
	addq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	movq	288(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %rsi
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	32(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r13, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	296(%rsp), %rax
	movq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r15, %rax
	mulq	288(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	addq	%rax, %r8
	movq	(%rsp), %rax
	movq	%rsi, (%rsp)
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r8
	movq	304(%rsp), %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r15, %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	288(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	328(%rsp)
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	336(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	344(%rsp)
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %rax
	andq	%r14, %r10
	andq	%r14, %r12
	shrdq	$51, %rdi, %rax
	movq	264(%rsp), %rdi
	andq	%r14, %rsi
	andq	%r14, %r8
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, 464(%rsp)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r8, 456(%rsp)
	addq	%r10, %rdx
	movq	%rdx, %rax
	andq	%r14, %rdx
	shrq	$51, %rax
	movq	%rdx, 432(%rsp)
	addq	%r12, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %rdx
	movq	%rdx, 440(%rsp)
	movq	(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rax, %rdx
	movq	264(%rsp), %rax
	movq	%rdx, 448(%rsp)
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	256(%rsp), %rax
	movq	256(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rsi
	movq	248(%rsp), %rax
	movq	248(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %r11
	movq	%r11, %rax
	mulq	224(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rdi, %rax
	mulq	216(%rsp)
	addq	%rax, %r10
	movq	232(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	232(%rsp), %rax
	adcq	%rdx, %r11
	mulq	200(%rsp)
	movq	%r10, %r12
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbp, %rax
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	224(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	216(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	232(%rsp), %rax
	movq	%rdx, %r9
	mulq	208(%rsp)
	movq	%r8, (%rsp)
	movq	%r9, 8(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	248(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	224(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	216(%rsp)
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	232(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	216(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	248(%rsp), %rax
	adcq	%rdx, %r11
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	256(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	224(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	224(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	216(%rsp)
	addq	%rax, %r10
	movq	248(%rsp), %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	256(%rsp), %rax
	adcq	%rdx, %r11
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	264(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	movl	128(%rsp), %edi
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%r14, %r12
	andq	%r14, %rsi
	shrdq	$51, %r11, %rax
	andq	%r14, %r8
	andq	%r14, %r10
	leaq	(%rax,%rax,8), %rdx
	movq	%r8, 496(%rsp)
	leaq	(%rax,%rdx,2), %rdx
	movq	(%rsp), %rax
	movq	%r10, 504(%rsp)
	addq	%r12, %rdx
	movq	%rdx, %rcx
	andq	%r14, %rax
	andq	%r14, %rdx
	shrq	$51, %rcx
	movq	%rdx, 472(%rsp)
	addq	%rcx, %rax
	movq	144(%rsp), %rcx
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %rdx
	addq	%rsi, %rax
	xorl	%esi, %esi
	movq	%rdx, 480(%rsp)
	movl	%edi, %edx
	notl	%edi
	shrl	$3, %edx
	movq	%rax, 488(%rsp)
	movl	$31, %eax
	subl	%edx, %eax
	movq	152(%rsp), %rdx
	movzbl	(%rcx,%rax), %r8d
	movl	%edi, %ecx
	xorl	%edi, %edi
	andl	$4, %ecx
	sarl	%cl, %r8d
	xorl	%ecx, %ecx
	andl	$15, %r8d
	.p2align 4,,10
	.p2align 3
.L8041:

	movl	%r8d, %eax
	movdqa	(%rdx), %xmm1
	movq	128(%rdx), %r9
	addq	$160, %rdx
	xorl	%ecx, %eax
	addl	$1, %ecx
	movzbl	%al, %eax
	pxor	%xmm10, %xmm1
	xorq	%rdi, %r9
	subl	$1, %eax
	shrl	$31, %eax
	negq	%rax
	movq	%rax, %xmm0
	andq	%rax, %r9
	punpcklqdq	%xmm0, %xmm0
	xorq	%r9, %rdi
	movq	-8(%rdx), %r9
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm10
	movdqa	-144(%rdx), %xmm1
	xorq	%rsi, %r9
	andq	%r9, %rax
	pxor	%xmm9, %xmm1
	xorq	%rax, %rsi
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm9
	movdqa	-128(%rdx), %xmm1
	pxor	%xmm8, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm8
	movdqa	-112(%rdx), %xmm1
	pxor	%xmm7, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm7
	movdqa	-96(%rdx), %xmm1
	pxor	%xmm6, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm6
	movdqa	-80(%rdx), %xmm1
	pxor	%xmm5, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm5
	movdqa	-64(%rdx), %xmm1
	pxor	%xmm4, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm4
	movdqa	-48(%rdx), %xmm1
	pxor	%xmm3, %xmm1
	pand	%xmm0, %xmm1
	pxor	%xmm1, %xmm3
	movdqu	-24(%rdx), %xmm1
	pxor	%xmm2, %xmm1
	pand	%xmm1, %xmm0
	pxor	%xmm0, %xmm2
	cmpl	$16, %ecx
	jne	.L8041
	movq	%rdi, 640(%rsp)
	movq	24(%rsp), %rdi
	movq	%rsi, 664(%rsp)
	movq	136(%rsp), %rdx
	movq	160(%rsp), %rsi
	movaps	%xmm10, 512(%rsp)
	movaps	%xmm9, 528(%rsp)
	movaps	%xmm8, 544(%rsp)
	movaps	%xmm7, 560(%rsp)
	movaps	%xmm6, 576(%rsp)
	movaps	%xmm5, 592(%rsp)
	movaps	%xmm4, 608(%rsp)
	movaps	%xmm3, 624(%rsp)
	movups	%xmm2, 648(%rsp)
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	movq	344(%rsp), %rax
	movq	344(%rsp), %rdi
	movq	320(%rsp), %rbp
	movq	224(%rsp), %rcx
	leaq	(%rax,%rax,8), %rax
	movq	216(%rsp), %r15
	leaq	(%rdi,%rax,2), %r11
	movq	336(%rsp), %rax
	movq	336(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rdi,%rax,2), %r10
	movq	328(%rsp), %rax
	movq	328(%rsp), %rdi
	movq	%r10, %r13
	leaq	(%rax,%rax,8), %rax
	movq	%r13, 32(%rsp)
	leaq	(%rdi,%rax,2), %r12
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %rax
	movq	%r12, 48(%rsp)
	movq	%rax, 96(%rsp)
	mulq	%rcx
	movq	%rax, %r8
	movq	%r12, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	312(%rsp), %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	200(%rsp)
	movq	%r11, %r9
	movq	%r9, (%rsp)
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%r13, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	208(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	312(%rsp)
	movq	%r12, %r8
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	200(%rsp)
	addq	%rax, %r10
	movq	328(%rsp), %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rbp, %rax
	mulq	208(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	336(%rsp), %rax
	movq	%r8, 64(%rsp)
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	312(%rsp)
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	288(%rsp), %r15
	mulq	%rbp
	addq	%rax, %r10
	movq	208(%rsp), %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	200(%rsp), %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	adcq	%rdx, %r11
	mulq	344(%rsp)
	addq	%r10, %rax
	movq	%r8, %r10
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 80(%rsp)
	andq	%r14, %rsi
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rcx
	movq	80(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rcx, %rdx
	andq	%r14, %rcx
	andq	%r14, %rax
	shrq	$51, %rdx
	movq	%rcx, (%rbx)
	addq	%r12, %rdx
	movq	%rax, 32(%rbx)
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r14, %rcx
	movq	%rcx, 8(%rbx)
	movq	64(%rsp), %rcx
	andq	%r14, %rcx
	addq	%rdx, %rcx
	movq	%r10, %rdx
	movq	%rcx, 16(%rbx)
	movq	304(%rsp), %rcx
	andq	%r14, %rdx
	movq	%rdx, 24(%rbx)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rdi
	movq	296(%rsp), %rcx
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rsi
	movq	280(%rsp), %rcx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r9
	movq	%r9, %rax
	mulq	264(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	272(%rsp), %rax
	adcq	%rdx, %r13
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	248(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	240(%rsp)
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	240(%rsp), %rax
	adcq	%rdx, %r11
	mulq	272(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	264(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%r8, %rax
	movq	%r10, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	248(%rsp), %rax
	movq	%rdx, %r13
	mulq	272(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	232(%rsp)
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	256(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%r12, %r9
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	movq	256(%rsp), %rax
	movq	%rdx, %r9
	mulq	272(%rsp)
	movq	%r8, %rsi
	movq	%r8, 80(%rsp)
	movq	%r9, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%rdi, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r10
	movq	264(%rsp), %rax
	movq	%rdx, %r11
	mulq	272(%rsp)
	movq	%r10, %rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	240(%rsp), %rax
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	232(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r8
	andq	%r14, %r12
	andq	%r14, %r10
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rsi
	movq	64(%rsp), %rdx
	movq	%r8, %rax
	andq	%r14, %rax
	andq	%r14, %rdx
	addq	%rdx, %rsi
	movq	%rsi, %rdx
	andq	%r14, %rsi
	shrq	$51, %rdx
	movq	%rsi, 40(%rbx)
	addq	%r12, %rdx
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%r14, %rsi
	movq	%rsi, 48(%rbx)
	movq	80(%rsp), %rsi
	andq	%r14, %rsi
	addq	%rdx, %rsi
	movq	%rsi, 56(%rbx)
	movq	(%rsp), %r11
	movq	%rax, 72(%rbx)
	movq	96(%rsp), %rax
	mulq	304(%rsp)
	movq	%r10, 64(%rbx)
	movq	32(%rsp), %r10
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	48(%rsp), %rax
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	272(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rsi, %r8
	movq	%rdi, %r9
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	312(%rsp)
	movq	%r8, %r12
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rbp, %rax
	mulq	272(%rsp)
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	addq	%rsi, %rax
	movq	%r8, %rsi
	adcq	%rdi, %rdx
	shrdq	$51, %r9, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rdi, 40(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	(%rsp), %rax
	addq	%r8, %r10
	adcq	%r9, %r11
	mulq	296(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	296(%rsp), %rax
	adcq	%rdx, %r11
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	304(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	304(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	312(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rbp, %rax
	mulq	296(%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rsi, (%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	336(%rsp)
	addq	%rax, %r8
	movq	272(%rsp), %rax
	adcq	%rdx, %r9
	mulq	344(%rsp)
	addq	%r8, %rax
	movq	%rsi, %r8
	movq	(%rsp), %rsi
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r14, %r12
	movq	%rax, 48(%rsp)
	shrdq	$51, %rdx, %r8
	movq	%rdx, 56(%rsp)
	andq	%r14, %r10
	andq	%r14, %rsi
	leaq	(%r8,%r8,8), %rdx
	movq	48(%rsp), %rax
	addl	$4, 128(%rsp)
	leaq	(%r8,%rdx,2), %rcx
	movq	32(%rsp), %rdx
	movq	%rsi, 104(%rbx)
	addq	%r12, %rcx
	andq	%r14, %rax
	movq	%rcx, %rdi
	andq	%r14, %rdx
	andq	%r14, %rcx
	movq	%rax, 112(%rbx)
	shrq	$51, %rdi
	movq	%rcx, 80(%rbx)
	movl	128(%rsp), %eax
	addq	%rdi, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r14, %rcx
	addq	%r10, %rdx
	movq	%rcx, 88(%rbx)
	movq	%rdx, 96(%rbx)
	cmpl	$256, %eax
	jne	.L8042
	movq	4200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8052
	addq	$4216, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8051:

	.cfi_restore_state
	movq	344(%rsp), %rcx
	movq	320(%rsp), %rdi
	movq	224(%rsp), %rsi
	movq	216(%rsp), %r9
	leaq	(%rcx,%rcx,8), %rax
	movq	312(%rsp), %rbp
	movq	208(%rsp), %r12
	leaq	(%rcx,%rax,2), %r8
	movq	336(%rsp), %rcx
	movq	200(%rsp), %r15
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rbx
	movq	328(%rsp), %rcx
	movq	%rbx, 32(%rsp)
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rcx
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rdx
	movq	%rcx, 48(%rsp)
	movq	%rdx, %rax
	movq	%rdx, 176(%rsp)
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rdi, %rax
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	48(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	32(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r9
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%r12
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 64(%rsp)
	movq	%rbx, 72(%rsp)
	movq	%rax, %rcx
	movq	%r15, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	328(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	32(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%r9
	addq	%rax, %rcx
	movq	64(%rsp), %rax
	adcq	%rdx, %rbx
	movq	72(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 80(%rsp)
	movq	%rbx, 88(%rsp)
	movq	%rax, %rcx
	movq	%r12, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	328(%rsp)
	addq	%rax, %rcx
	movq	336(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	80(%rsp), %rax
	adcq	%rdx, %rbx
	movq	88(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 96(%rsp)
	movq	%rbx, 104(%rsp)
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	328(%rsp)
	movq	272(%rsp), %r12
	addq	%rax, %rcx
	movq	%r15, %rax
	movq	304(%rsp), %r15
	adcq	%rdx, %rbx
	mulq	336(%rsp)
	addq	%rax, %rcx
	movq	192(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	344(%rsp)
	addq	%rax, %rcx
	movq	96(%rsp), %rax
	adcq	%rdx, %rbx
	movq	104(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %rax
	andq	%r14, %r10
	andq	%r14, %rcx
	shrdq	$51, %rbx, %rax
	movq	296(%rsp), %rbx
	movq	%rcx, 32(%r13)
	leaq	(%rax,%rax,8), %rdx
	movq	280(%rsp), %rcx
	leaq	(%rax,%rdx,2), %rdx
	addq	%r10, %rdx
	movq	64(%rsp), %r10
	andq	%r14, %r10
	movq	%r10, %rsi
	movq	%rdx, %r10
	andq	%r14, %rdx
	shrq	$51, %r10
	movq	%rdx, 0(%r13)
	movq	%r10, %rax
	movq	96(%rsp), %r10
	addq	%rsi, %rax
	movq	288(%rsp), %rsi
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %r10
	andq	%r14, %rdx
	movq	%r10, 24(%r13)
	movq	%rdx, 8(%r13)
	movq	80(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rax, %rdx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r9
	leaq	(%rbx,%rbx,8), %rax
	movq	%rdx, 16(%r13)
	leaq	(%rbx,%rax,2), %rdx
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r10
	leaq	(%rcx,%rcx,8), %rax
	movq	%rdx, 64(%rsp)
	leaq	(%rcx,%rax,2), %r11
	movq	%r10, 96(%rsp)
	movq	%r11, %rax
	mulq	264(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	96(%rsp), %rax
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	movq	%r10, 80(%rsp)
	movq	%r11, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	96(%rsp), %rax
	movq	%r9, 112(%rsp)
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	80(%rsp), %rax
	adcq	%rdx, %r11
	movq	88(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%r12, %rax
	adcq	%rdx, %r10
	mulq	248(%rsp)
	movq	%r9, 96(%rsp)
	movq	%r10, 104(%rsp)
	movq	112(%rsp), %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	96(%rsp), %rax
	adcq	%rdx, %r11
	movq	104(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	movq	72(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%r12, %rax
	adcq	%rdx, %r10
	mulq	264(%rsp)
	movq	%r9, 112(%rsp)
	movq	%r10, 120(%rsp)
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	movq	80(%rsp), %r9
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	movq	120(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%r14, %r9
	andq	%r14, %r10
	shrdq	$51, %r11, %rax
	movq	%r10, 72(%r13)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	addq	%r9, %rdx
	movq	96(%rsp), %r9
	movq	%rdx, %rax
	andq	%r14, %rdx
	andq	%r14, %r9
	shrq	$51, %rax
	movq	%rdx, 40(%r13)
	addq	%r9, %rax
	movq	32(%rsp), %r9
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %rdx
	movq	%rdx, 48(%r13)
	movq	64(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rax, %rdx
	movq	112(%rsp), %rax
	movq	%rdx, 56(%r13)
	andq	%r14, %rax
	movq	%rax, 64(%r13)
	movq	176(%rsp), %rax
	mulq	%r15
	movq	%rax, %r10
	movq	48(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	movq	72(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%rsi, %rax
	adcq	%rdx, %r10
	mulq	%rbp
	movq	%r9, 48(%rsp)
	movq	%r10, 56(%rsp)
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	movq	56(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	movq	32(%rsp), %r8
	movq	40(%rsp), %r9
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %r8
	xorl	%edx, %edx
	addq	%r8, %r10
	adcq	%rdx, %r11
	mulq	%rbp
	movq	24(%rsp), %rbp
	movq	%rax, %r8
	movq	%rbx, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	336(%rsp)
	movq	48(%rsp), %r9
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	movq	64(%rsp), %r12
	addq	%rsi, %rcx
	movq	160(%rsp), %rsi
	adcq	%rdi, %rbx
	mulq	344(%rsp)
	movq	%rbp, %rdi
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %rax
	andq	%r14, %r12
	andq	%r14, %r9
	shrdq	$51, %rbx, %rax
	andq	%r14, %r10
	andq	%r14, %rcx
	leaq	(%rax,%rax,8), %rdx
	movq	%r10, 104(%r13)
	leaq	(%rax,%rdx,2), %rdx
	movq	%r9, %rax
	movq	%rcx, 112(%r13)
	addq	%r12, %rdx
	movq	%rdx, %r9
	andq	%r14, %rdx
	shrq	$51, %r9
	movq	%rdx, 80(%r13)
	addq	%r9, %rax
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %rdx
	movq	%rdx, 88(%r13)
	movq	32(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rdx, %rax
	movq	128(%rsp), %rdx
	movq	%rax, 96(%r13)
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	movq	136(%rsp), %r15
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	152(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	344(%rsp), %rdi
	movq	224(%rsp), %rsi
	movq	216(%rsp), %r9
	movq	312(%rsp), %rbp
	leaq	(%rdi,%rdi,8), %rax
	movq	208(%rsp), %r12
	movq	200(%rsp), %r15
	leaq	(%rdi,%rax,2), %r8
	movq	336(%rsp), %rdi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rbx
	movq	328(%rsp), %rdi
	movq	%rbx, 32(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	320(%rsp), %rdi
	movq	%rcx, 48(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r11
	movq	%r11, %rax
	movq	%r11, 152(%rsp)
	mulq	%rsi
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r12
	addq	%rax, %r10
	movq	%r8, %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rdi, %rax
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	48(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	32(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r9
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%r12
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 64(%rsp)
	movq	%rbx, 72(%rsp)
	movq	%rax, %rcx
	movq	%r15, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	328(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	32(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	%r9
	addq	%rax, %rcx
	movq	64(%rsp), %rax
	adcq	%rdx, %rbx
	movq	72(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 80(%rsp)
	movq	%rbx, 88(%rsp)
	movq	%rax, %rcx
	movq	%r12, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	328(%rsp)
	addq	%rax, %rcx
	movq	336(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	mulq	%r8
	addq	%rax, %rcx
	movq	80(%rsp), %rax
	adcq	%rdx, %rbx
	movq	88(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rsi, %rax
	movq	%r10, %rsi
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, 96(%rsp)
	movq	%rbx, 104(%rsp)
	movq	%rax, %rcx
	movq	%r9, %rax
	movq	%rdx, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	328(%rsp)
	movq	272(%rsp), %r12
	addq	%rax, %rcx
	movq	%r15, %rax
	adcq	%rdx, %rbx
	mulq	336(%rsp)
	addq	%rax, %rcx
	movq	192(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	344(%rsp)
	addq	%rax, %rcx
	movq	96(%rsp), %rax
	adcq	%rdx, %rbx
	movq	104(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %rax
	andq	%r14, %rsi
	andq	%r14, %rcx
	shrdq	$51, %rbx, %rax
	movq	296(%rsp), %rbx
	movq	%rcx, 152(%r13)
	leaq	(%rax,%rax,8), %rdx
	movq	280(%rsp), %rcx
	leaq	(%rax,%rdx,2), %rdx
	addq	%rsi, %rdx
	movq	64(%rsp), %rsi
	movq	%rdx, %r15
	andq	%r14, %rdx
	shrq	$51, %r15
	andq	%r14, %rsi
	movq	%rdx, 120(%r13)
	movq	%r15, %rax
	movq	304(%rsp), %r15
	addq	%rsi, %rax
	movq	%rax, %rsi
	shrq	$51, %rax
	andq	%r14, %rsi
	movq	%rsi, 128(%r13)
	movq	80(%rsp), %rsi
	andq	%r14, %rsi
	movq	%rsi, %rdx
	movq	96(%rsp), %rsi
	addq	%rax, %rdx
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %r9
	andq	%r14, %rsi
	leaq	(%rbx,%rbx,8), %rax
	movq	%rdx, 136(%r13)
	movq	%rsi, 144(%r13)
	leaq	(%rbx,%rax,2), %rsi
	movq	%rsi, 64(%rsp)
	movq	288(%rsp), %rsi
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r10
	leaq	(%rcx,%rcx,8), %rax
	movq	%r10, 96(%rsp)
	leaq	(%rcx,%rax,2), %r10
	movq	%r10, %rax
	mulq	264(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	96(%rsp), %rax
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	movq	%r10, 80(%rsp)
	movq	%r11, 88(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	96(%rsp), %rax
	movq	%r9, 112(%rsp)
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	80(%rsp), %rax
	adcq	%rdx, %r11
	movq	88(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%r12, %rax
	adcq	%rdx, %r10
	mulq	248(%rsp)
	movq	%r9, 96(%rsp)
	movq	%r10, 104(%rsp)
	movq	112(%rsp), %r9
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	96(%rsp), %rax
	adcq	%rdx, %r11
	movq	104(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	256(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	mulq	248(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	264(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	movq	72(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%r12, %rax
	adcq	%rdx, %r10
	mulq	264(%rsp)
	movq	%r9, 112(%rsp)
	movq	%r10, 120(%rsp)
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	%rcx, %rax
	mulq	256(%rsp)
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	248(%rsp)
	movq	80(%rsp), %r9
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	240(%rsp)
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	mulq	232(%rsp)
	addq	%rax, %r10
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	movq	120(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	andq	%r14, %r9
	andq	%r14, %r10
	shrdq	$51, %r11, %rax
	movq	%r10, 192(%r13)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	addq	%r9, %rdx
	movq	96(%rsp), %r9
	movq	%rdx, %rax
	andq	%r14, %rdx
	andq	%r14, %r9
	shrq	$51, %rax
	movq	%rdx, 160(%r13)
	addq	%r9, %rax
	movq	32(%rsp), %r9
	movq	%rax, %rdx
	shrq	$51, %rax
	andq	%r14, %rdx
	movq	%rdx, 168(%r13)
	movq	64(%rsp), %rdx
	andq	%r14, %rdx
	addq	%rax, %rdx
	movq	112(%rsp), %rax
	movq	%rdx, 176(%r13)
	andq	%r14, %rax
	movq	%rax, 184(%r13)
	movq	152(%rsp), %rax
	mulq	%r15
	movq	%rax, %r10
	movq	48(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 64(%rsp)
	movq	%r11, 72(%rsp)
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	movq	72(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%rsi, %rax
	adcq	%rdx, %r10
	mulq	%rbp
	movq	%r9, 48(%rsp)
	movq	%r10, 56(%rsp)
	movq	%rax, %r10
	movq	%rcx, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	movq	56(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	328(%rsp)
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	336(%rsp)
	addq	%rax, %r10
	movq	%r8, %rax
	movq	32(%rsp), %r8
	movq	40(%rsp), %r9
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	%r15, %rax
	adcq	%rdx, %r11
	shrdq	$51, %r9, %r8
	xorl	%edx, %edx
	addq	%r8, %r10
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %r8
	movq	%rbx, %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	328(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	336(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	mulq	344(%rsp)
	movq	%r10, %rdi
	addq	%rax, %rcx
	adcq	%rdx, %rbx
	shrdq	$51, %r11, %rdi
	xorl	%edx, %edx
	addq	%rdi, %rcx
	adcq	%rdx, %rbx
	movq	%rcx, %rdi
	andq	%r14, %r10
	andq	%r14, %rcx
	shrdq	$51, %rbx, %rdi
	addl	$2, (%rsp)
	addq	$240, %r13
	leaq	(%rdi,%rdi,8), %rdx
	movq	%r10, -16(%r13)
	leaq	(%rdi,%rdx,2), %rdx
	movq	%rcx, -8(%r13)
	movq	64(%rsp), %rdi
	addq	$320, 128(%rsp)
	andq	%r14, %rdi
	addq	%rdi, %rdx
	movq	48(%rsp), %rdi
	movq	%rdx, %rsi
	andq	%r14, %rdx
	andq	%r14, %rdi
	shrq	$51, %rsi
	movq	%rdx, -40(%r13)
	movq	%rdi, %rax
	addq	%rsi, %rax
	movq	%rax, %rdi
	shrq	$51, %rax
	andq	%r14, %rdi
	movq	%rdi, -32(%r13)
	movq	32(%rsp), %rdi
	andq	%r14, %rdi
	addq	%rdi, %rax
	movq	%rax, -24(%r13)
	jmp	.L8040
.L8052:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1421:

	.size	x25519_ge_scalarmult, .-x25519_ge_scalarmult
# WAS .section	.text.x25519_sc_reduce,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_sc_reduce
	.hidden	x25519_sc_reduce
	.type	x25519_sc_reduce, @function
.Lx25519_sc_reduce_local_target:
x25519_sc_reduce:
.LFB1425:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movzbl	1(%rdi), %edx
	movzbl	2(%rdi), %ecx
	movzbl	(%rdi), %esi
	salq	$8, %rdx
	salq	$16, %rcx
	orq	%rcx, %rdx
	movzbl	7(%rdi), %ecx
	orq	%rsi, %rdx
	andl	$2097151, %edx
	salq	$16, %rcx
	movq	%rdx, -80(%rsp)
	movl	2(%rdi), %edx
	shrq	$5, %rdx
	movq	%rdx, %rsi
	movzbl	6(%rdi), %edx
	andl	$2097151, %esi
	salq	$8, %rdx
	movq	%rsi, -72(%rsp)
	orq	%rcx, %rdx
	movzbl	5(%rdi), %ecx
	orq	%rcx, %rdx
	shrq	$2, %rdx
	movq	%rdx, %rdi
	movl	7(%rax), %edx
	andl	$2097151, %edi
	shrq	$7, %rdx
	movq	%rdi, -64(%rsp)
	movq	%rdx, %rcx
	movl	10(%rax), %edx
	andl	$2097151, %ecx
	shrq	$4, %rdx
	movq	%rcx, -56(%rsp)
	movzbl	15(%rax), %ecx
	movq	%rdx, %rbx
	movzbl	14(%rax), %edx
	salq	$16, %rcx
	andl	$2097151, %ebx
	salq	$8, %rdx
	movq	%rbx, -48(%rsp)
	orq	%rcx, %rdx
	movzbl	13(%rax), %ecx
	orq	%rcx, %rdx
	shrq	%rdx
	movq	%rdx, %r14
	movl	15(%rax), %edx
	andl	$2097151, %r14d
	shrq	$6, %rdx
	movq	%r14, -40(%rsp)
	movq	%rdx, %r11
	andl	$2097151, %r11d
	movq	%r11, -32(%rsp)
	movzbl	21(%rax), %esi
	movzbl	22(%rax), %edx
	movzbl	23(%rax), %ecx
	movzbl	35(%rax), %ebx
	movl	28(%rax), %r12d
	salq	$16, %rcx
	salq	$8, %rdx
	movl	31(%rax), %ebp
	movl	36(%rax), %r15d
	orq	%rcx, %rdx
	movzbl	44(%rax), %ecx
	movzbl	56(%rax), %edi
	orq	%rsi, %rdx
	movzbl	42(%rax), %esi
	movl	52(%rax), %r9d
	movq	%rdx, %r10
	movl	23(%rax), %edx
	andl	$2097151, %r10d
	shrq	$5, %rdx
	movq	%r10, -24(%rsp)
	movzbl	27(%rax), %r10d
	movq	%rdx, %r8
	movzbl	28(%rax), %edx
	andl	$2097151, %r8d
	salq	$8, %r10
	salq	$16, %rdx
	salq	$8, %rbx
	movq	%r8, -16(%rsp)
	movl	57(%rax), %r8d
	salq	$16, %rcx
	orq	%rdx, %r10
	movzbl	26(%rax), %edx
	shrq	$7, %r12
	shrq	$4, %rbp
	shrq	$6, %r15
	andl	$2097151, %r12d
	orq	%rdx, %r10
	movzbl	36(%rax), %edx
	andl	$2097151, %ebp
	andl	$2097151, %r15d
	shrq	$2, %r10
	salq	$16, %rdx
	andl	$2097151, %r10d
	orq	%rdx, %rbx
	movzbl	34(%rax), %edx
	orq	%rdx, %rbx
	movzbl	43(%rax), %edx
	shrq	%rbx
	salq	$8, %rdx
	andl	$2097151, %ebx
	orq	%rcx, %rdx
	movzbl	49(%rax), %ecx
	orq	%rsi, %rdx
	movq	%rdx, %r11
	movl	44(%rax), %edx
	salq	$16, %rcx
	andl	$2097151, %r11d
	shrq	$5, %rdx
	movq	%rdx, %rsi
	movzbl	48(%rax), %edx
	andl	$2097151, %esi
	salq	$8, %rdx
	movq	%rsi, -8(%rsp)
	movl	49(%rax), %esi
	orq	%rdx, %rcx
	movzbl	47(%rax), %edx
	shrq	$7, %rsi
	orq	%rdx, %rcx
	movzbl	57(%rax), %edx
	shrq	$2, %rcx
	andl	$2097151, %ecx
	andl	$2097151, %esi
	salq	$8, %rdi
	salq	$16, %rdx
	shrq	$6, %r8
	orq	%rdi, %rdx
	movzbl	55(%rax), %edi
	andl	$2097151, %r8d
	shrq	$4, %r9
	andl	$2097151, %r9d
	orq	%rdi, %rdx
	movl	60(%rax), %edi
	shrq	%rdx
	shrq	$3, %rdi
	andl	$2097151, %edx
	imulq	$666643, %rdi, %r14
	imulq	$470296, %rdi, %r13
	addq	%r12, %r14
	imulq	$654183, %rdi, %r12
	addq	%rbp, %r13
	imulq	$-997805, %rdi, %rbp
	addq	%rbx, %r12
	movzbl	41(%rax), %ebx
	addq	%r15, %rbp
	movzbl	40(%rax), %r15d
	salq	$16, %rbx
	salq	$8, %r15
	orq	%r15, %rbx
	movzbl	39(%rax), %r15d
	orq	%r15, %rbx
	imulq	$136657, %rdi, %r15
	imulq	$-683901, %rdi, %rdi
	shrq	$3, %rbx
	addq	%rbx, %r15
	imulq	$470296, %r8, %rbx
	addq	%r11, %rdi
	imulq	$666643, %r8, %r11
	addq	%r10, %r11
	addq	%r14, %rbx
	movq	-16(%rsp), %r14
	imulq	$654183, %r8, %r10
	addq	%r10, %r13
	imulq	$-997805, %r8, %r10
	addq	%r10, %r12
	imulq	$136657, %r8, %r10
	imulq	$-683901, %r8, %r8
	addq	%rbp, %r10
	imulq	$666643, %rdx, %rbp
	addq	%r15, %r8
	imulq	$-997805, %r9, %r15
	addq	%r14, %rbp
	imulq	$470296, %rdx, %r14
	addq	%r11, %r14
	imulq	$654183, %rdx, %r11
	addq	%r11, %rbx
	imulq	$-997805, %rdx, %r11
	addq	%rbx, %r15
	imulq	$136657, %r9, %rbx
	addq	%r11, %r13
	imulq	$136657, %rdx, %r11
	imulq	$-683901, %rdx, %rdx
	addq	%rbx, %r13
	movzbl	19(%rax), %ebx
	addq	%r12, %r11
	movq	-24(%rsp), %r12
	addq	%r10, %rdx
	imulq	$666643, %r9, %r10
	addq	%r12, %r10
	imulq	$470296, %r9, %r12
	addq	%r12, %rbp
	imulq	$654183, %r9, %r12
	imulq	$-683901, %r9, %r9
	addq	%r14, %r12
	addq	%r11, %r9
	movzbl	20(%rax), %r11d
	salq	$8, %rbx
	imulq	$666643, %rcx, %r14
	salq	$16, %r11
	orq	%rbx, %r11
	movzbl	18(%rax), %ebx
	orq	%rbx, %r11
	imulq	$666643, %rsi, %rbx
	shrq	$3, %r11
	addq	%rbx, %r11
	imulq	$470296, %rsi, %rbx
	addq	%rbx, %r10
	imulq	$654183, %rsi, %rbx
	addq	%rbx, %rbp
	imulq	$-997805, %rsi, %rbx
	addq	%rbx, %r12
	imulq	$136657, %rsi, %rbx
	imulq	$-683901, %rsi, %rsi
	addq	%rbx, %r15
	movq	-32(%rsp), %rbx
	addq	%r13, %rsi
	addq	%rbx, %r14
	imulq	$470296, %rcx, %rbx
	addq	%rbx, %r11
	imulq	$654183, %rcx, %rbx
	addq	%rbx, %r10
	imulq	$-997805, %rcx, %rbx
	addq	%rbx, %rbp
	imulq	$136657, %rcx, %rbx
	imulq	$-683901, %rcx, %rcx
	addq	%r12, %rbx
	leaq	1048576(%r14), %r12
	movq	%r12, %r13
	addq	%r15, %rcx
	sarq	$21, %r13
	addq	%r11, %r13
	andq	$-2097152, %r12
	leaq	1048576(%r10), %r11
	subq	%r12, %r14
	movq	%r11, %r12
	andq	$-2097152, %r11
	subq	%r11, %r10
	movq	%r14, -32(%rsp)
	sarq	$21, %r12
	movq	-8(%rsp), %r11
	movq	%r10, %r14
	leaq	1048576(%rbx), %r10
	movq	%r12, %r15
	movq	%r10, %r12
	andq	$-2097152, %r10
	addq	%rbp, %r15
	sarq	$21, %r12
	subq	%r10, %rbx
	addq	%rcx, %r12
	leaq	1048576(%rsi), %rcx
	movq	%rcx, %r10
	andq	$-2097152, %rcx
	sarq	$21, %r10
	subq	%rcx, %rsi
	movq	%r10, %rbp
	addq	%r9, %rbp
	leaq	1048576(%rdx), %r9
	movq	%r9, %rcx
	andq	$-2097152, %r9
	sarq	$21, %rcx
	subq	%r9, %rdx
	addq	%r8, %rcx
	leaq	1048576(%rdi), %r8
	movq	%r8, %r10
	andq	$-2097152, %r8
	subq	%r8, %rdi
	sarq	$21, %r10
	leaq	1048576(%r13), %r8
	addq	%r11, %r10
	movq	%r8, %r11
	andq	$-2097152, %r8
	subq	%r8, %r13
	leaq	1048576(%r15), %r8
	sarq	$21, %r11
	movq	%r8, %r9
	andq	$-2097152, %r8
	addq	%r14, %r11
	subq	%r8, %r15
	sarq	$21, %r9
	leaq	1048576(%r12), %r8
	addq	%rbx, %r9
	movq	%r8, %rbx
	sarq	$21, %rbx
	addq	%rbx, %rsi
	andq	$-2097152, %r8
	subq	%r8, %r12
	leaq	1048576(%rbp), %r8
	movq	%r8, %rbx
	andq	$-2097152, %r8
	sarq	$21, %rbx
	imulq	$666643, %r10, %r14
	addq	%rdx, %rbx
	movq	%r8, %rdx
	movq	%rbp, %r8
	subq	%rdx, %r8
	leaq	1048576(%rcx), %rdx
	movq	%rdx, %rbp
	andq	$-2097152, %rdx
	sarq	$21, %rbp
	subq	%rdx, %rcx
	movq	-32(%rsp), %rdx
	addq	%rbp, %rdi
	movq	-40(%rsp), %rbp
	addq	%rbp, %r14
	imulq	$470296, %r10, %rbp
	addq	%rdx, %rbp
	imulq	$654183, %r10, %rdx
	addq	%r13, %rdx
	imulq	$-997805, %r10, %r13
	addq	%r11, %r13
	imulq	$136657, %r10, %r11
	imulq	$-683901, %r10, %r10
	addq	%r15, %r11
	movq	-48(%rsp), %r15
	addq	%r9, %r10
	imulq	$666643, %rdi, %r9
	addq	%r15, %r9
	imulq	$470296, %rdi, %r15
	addq	%r14, %r15
	imulq	$654183, %rdi, %r14
	addq	%rbp, %r14
	imulq	$-997805, %rdi, %rbp
	addq	%rdx, %rbp
	imulq	$136657, %rdi, %rdx
	addq	%r13, %rdx
	imulq	$-683901, %rdi, %rdi
	movq	-56(%rsp), %r13
	addq	%r11, %rdi
	imulq	$666643, %rcx, %r11
	addq	%r13, %r11
	imulq	$470296, %rcx, %r13
	addq	%r9, %r13
	imulq	$654183, %rcx, %r9
	addq	%r15, %r9
	imulq	$-997805, %rcx, %r15
	addq	%r14, %r15
	imulq	$136657, %rcx, %r14
	imulq	$-683901, %rcx, %rcx
	addq	%rbp, %r14
	imulq	$666643, %rbx, %rbp
	addq	%rdx, %rcx
	movq	-64(%rsp), %rdx
	addq	%rdx, %rbp
	imulq	$470296, %rbx, %rdx
	addq	%r11, %rdx
	imulq	$654183, %rbx, %r11
	addq	%r13, %r11
	imulq	$-997805, %rbx, %r13
	addq	%r9, %r13
	imulq	$136657, %rbx, %r9
	imulq	$-683901, %rbx, %rbx
	addq	%r15, %r9
	movq	-72(%rsp), %r15
	addq	%r14, %rbx
	imulq	$666643, %r8, %r14
	addq	%r15, %r14
	imulq	$470296, %r8, %r15
	addq	%rbp, %r15
	imulq	$654183, %r8, %rbp
	addq	%rdx, %rbp
	imulq	$-997805, %r8, %rdx
	addq	%r11, %rdx
	imulq	$136657, %r8, %r11
	imulq	$-683901, %r8, %r8
	addq	%r13, %r11
	imulq	$666643, %rsi, %r13
	addq	%r9, %r8
	movq	-80(%rsp), %r9
	addq	%r9, %r13
	imulq	$470296, %rsi, %r9
	addq	%r14, %r9
	imulq	$654183, %rsi, %r14
	addq	%r15, %r14
	imulq	$-997805, %rsi, %r15
	addq	%rbp, %r15
	imulq	$136657, %rsi, %rbp
	imulq	$-683901, %rsi, %rsi
	addq	%rdx, %rbp
	leaq	(%rsi,%r11), %rdx
	leaq	1048576(%r13), %rsi
	movq	%rsi, %r11
	andq	$-2097152, %rsi
	subq	%rsi, %r13
	sarq	$21, %r11
	leaq	1048576(%r14), %rsi
	addq	%r9, %r11
	movq	%rsi, %r9
	andq	$-2097152, %rsi
	sarq	$21, %r9
	subq	%rsi, %r14
	addq	%r15, %r9
	leaq	1048576(%rbp), %r15
	movq	%r15, %rsi
	andq	$-2097152, %r15
	subq	%r15, %rbp
	sarq	$21, %rsi
	leaq	1048576(%r8), %r15
	addq	%rdx, %rsi
	movq	%r15, %rdx
	andq	$-2097152, %r15
	sarq	$21, %rdx
	addq	%rbx, %rdx
	leaq	1048576(%rcx), %rbx
	subq	%r15, %r8
	movq	%rbx, %r15
	andq	$-2097152, %rbx
	sarq	$21, %r15
	subq	%rbx, %rcx
	addq	%rdi, %r15
	leaq	1048576(%r10), %rdi
	movq	%rdi, %rbx
	andq	$-2097152, %rdi
	subq	%rdi, %r10
	sarq	$21, %rbx
	leaq	1048576(%r11), %rdi
	addq	%r12, %rbx
	movq	%rdi, %r12
	andq	$-2097152, %rdi
	subq	%rdi, %r11
	sarq	$21, %r12
	leaq	1048576(%r9), %rdi
	addq	%r14, %r12
	movq	%rdi, %r14
	andq	$-2097152, %rdi
	sarq	$21, %r14
	subq	%rdi, %r9
	addq	%rbp, %r14
	leaq	1048576(%rsi), %rbp
	movq	%rbp, %rdi
	andq	$-2097152, %rbp
	sarq	$21, %rdi
	subq	%rbp, %rsi
	addq	%r8, %rdi
	leaq	1048576(%rdx), %r8
	movq	%r8, %rbp
	andq	$-2097152, %r8
	subq	%r8, %rdx
	sarq	$21, %rbp
	leaq	1048576(%r15), %r8
	addq	%rbp, %rcx
	movq	%r8, %rbp
	andq	$-2097152, %r8
	sarq	$21, %rbp
	subq	%r8, %r15
	addq	%r10, %rbp
	leaq	1048576(%rbx), %r10
	movq	%r10, %r8
	andq	$-2097152, %r10
	sarq	$21, %r8
	subq	%r10, %rbx
	imulq	$666643, %r8, %r10
	addq	%r13, %r10
	imulq	$470296, %r8, %r13
	addq	%r11, %r13
	imulq	$654183, %r8, %r11
	addq	%r11, %r12
	imulq	$-997805, %r8, %r11
	addq	%r9, %r11
	imulq	$136657, %r8, %r9
	imulq	$-683901, %r8, %r8
	addq	%r14, %r9
	movq	%r10, %r14
	andl	$2097151, %r10d
	sarq	$21, %r14
	addq	%rsi, %r8
	addq	%r13, %r14
	movq	%r14, %r13
	andl	$2097151, %r14d
	sarq	$21, %r13
	addq	%r12, %r13
	movq	%r13, %r12
	andl	$2097151, %r13d
	sarq	$21, %r12
	addq	%r11, %r12
	movq	%r12, %r11
	andl	$2097151, %r12d
	sarq	$21, %r11
	addq	%r9, %r11
	movq	%r11, %r9
	andl	$2097151, %r11d
	sarq	$21, %r9
	addq	%r8, %r9
	movq	%r9, %rsi
	andl	$2097151, %r9d
	sarq	$21, %rsi
	addq	%rsi, %rdi
	movq	%rdi, %rsi
	sarq	$21, %rsi
	addq	%rdx, %rsi
	andl	$2097151, %edi
	movq	%rsi, %rdx
	andl	$2097151, %esi
	sarq	$21, %rdx
	addq	%rdx, %rcx
	movq	%rcx, %rdx
	andl	$2097151, %ecx
	sarq	$21, %rdx
	addq	%r15, %rdx
	movq	%rdx, %r8
	andl	$2097151, %edx
	sarq	$21, %r8
	addq	%r8, %rbp
	movq	%rbp, %r15
	andl	$2097151, %ebp
	sarq	$21, %r15
	addq	%rbx, %r15
	movq	%r15, %r8
	andl	$2097151, %r15d
	sarq	$21, %r8
	imulq	$666643, %r8, %rbx
	addq	%r10, %rbx
	imulq	$470296, %r8, %r10
	addq	%r14, %r10
	imulq	$654183, %r8, %r14
	addq	%r13, %r14
	imulq	$-997805, %r8, %r13
	addq	%r12, %r13
	imulq	$136657, %r8, %r12
	imulq	$-683901, %r8, %r8
	addq	%r11, %r12
	movq	%rbx, %r11
	andl	$2097151, %ebx
	sarq	$21, %r11
	addq	%r9, %r8
	movw	%bx, (%rax)
	addq	%r10, %r11
	movq	%r11, %r10
	sarq	$21, %r10
	addq	%r14, %r10
	movq	%r11, %r14
	movq	%r10, %r9
	andl	$2097151, %r14d
	sarq	$16, %rbx
	sarq	$21, %r9
	sall	$5, %r11d
	addq	%r13, %r9
	movq	%r10, %r13
	orl	%ebx, %r11d
	andl	$2097151, %r13d
	movb	%r11b, 2(%rax)
	movq	%r14, %r11
	movq	%r13, -32(%rsp)
	movq	%r9, %r13
	sarq	$3, %r11
	sarq	$21, %r13
	movb	%r11b, 3(%rax)
	movq	%r14, %r11
	addq	%r12, %r13
	movq	%r9, %r12
	andl	$2097151, %r12d
	movq	%r13, -80(%rsp)
	movq	%r12, -40(%rsp)
	movq	%r13, %r12
	sarq	$21, %r12
	addq	%r8, %r12
	movq	%r13, %r8
	andl	$2097151, %r8d
	movq	%r12, -72(%rsp)
	movq	%r8, -48(%rsp)
	movq	%r12, %r8
	sarq	$21, %r8
	addq	%rdi, %r8
	movq	%r12, %rdi
	andl	$2097151, %edi
	movq	%rdi, -56(%rsp)
	movq	%r8, %rdi
	sarq	$21, %rdi
	addq	%rsi, %rdi
	movq	%r8, %rsi
	andl	$2097151, %esi
	movq	%rsi, %r13
	movq	%rdi, %rsi
	sarq	$21, %rsi
	addq	%rcx, %rsi
	movq	%rdi, %rcx
	andl	$2097151, %ecx
	movq	%rcx, -64(%rsp)
	movq	%rsi, %rcx
	andl	$2097151, %esi
	sarq	$21, %rcx
	addq	%rdx, %rcx
	movq	%rcx, %rdx
	sarq	$21, %rdx
	addq	%rbp, %rdx
	movq	%rcx, %rbp
	andl	$2097151, %ebp
	movq	%rbp, %r12
	movq	%rdx, %rbp
	sarq	$21, %rbp
	addq	%r15, %rbp
	movq	%rdx, %r15
	andl	$2097151, %r15d
	sarq	$11, %r11
	movb	%r11b, 4(%rax)
	sarq	$19, %r14
	movq	-32(%rsp), %r11
	sall	$3, %edi
	sall	$2, %r10d
	sall	$7, %r9d
	sall	$6, %r8d
	orl	%r14d, %r10d
	movq	-40(%rsp), %r14
	sall	$5, %ecx
	movb	%r10b, 5(%rax)
	movq	%r11, %r10
	sarq	$6, %r10
	movb	%r10b, 6(%rax)
	movq	%r11, %r10
	sarq	$14, %r10
	orl	%r10d, %r9d
	movb	%r9b, 7(%rax)
	movq	%r14, %r9
	sarq	%r9
	movb	%r9b, 8(%rax)
	movq	-48(%rsp), %rbx
	movq	%r14, %r9
	sarq	$17, %r14
	movzbl	-80(%rsp), %r10d
	sarq	$9, %r9
	movw	%si, 21(%rax)
	sarq	$16, %rsi
	movb	%r9b, 9(%rax)
	movq	%rbx, %r9
	orl	%esi, %ecx
	sarq	$4, %r9
	sall	$4, %r10d
	movb	%cl, 23(%rax)
	movq	%r12, %rcx
	orl	%r14d, %r10d
	movb	%r9b, 11(%rax)
	movzbl	-72(%rsp), %r14d
	movq	%rbx, %r9
	sarq	$12, %r9
	sarq	$20, %rbx
	movb	%r10b, 10(%rax)
	movb	%r9b, 12(%rax)
	leal	(%r14,%r14), %r9d
	sarq	$3, %rcx
	orl	%ebx, %r9d
	movq	-56(%rsp), %rbx
	movb	%cl, 24(%rax)
	movq	%r12, %rcx
	movb	%r9b, 13(%rax)
	movq	%rbx, %r9
	sarq	$15, %rbx
	orl	%ebx, %r8d
	movq	-64(%rsp), %rbx
	sarq	$7, %r9
	movb	%r8b, 15(%rax)
	movq	%r13, %r8
	sarq	$2, %r8
	movb	%r9b, 14(%rax)
	movb	%r8b, 16(%rax)
	movq	%r13, %r8
	sarq	$18, %r13
	orl	%r13d, %edi
	sarq	$10, %r8
	movb	%dil, 18(%rax)
	movq	%rbx, %rdi
	sarq	$5, %rdi
	movb	%r8b, 17(%rax)
	movb	%dil, 19(%rax)
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	sarq	$13, %rdi
	sarq	$11, %rcx
	sarq	$19, %r12
	sall	$2, %edx
	movb	%dil, 20(%rax)
	orl	%r12d, %edx
	movb	%cl, 25(%rax)
	movb	%dl, 26(%rax)
	movq	%r15, %rdx
	sarq	$14, %r15
	sarq	$6, %rdx
	movb	%dl, 27(%rax)
	movl	%ebp, %edx
	sall	$7, %edx
	orl	%r15d, %edx
	movb	%dl, 28(%rax)
	movq	%rbp, %rdx
	sarq	%rdx
	movb	%dl, 29(%rax)
	movq	%rbp, %rdx
	sarq	$17, %rbp
	sarq	$9, %rdx
	movb	%bpl, 31(%rax)
	popq	%rbp
	.cfi_def_cfa_offset 40
	movb	%dl, 30(%rax)
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1425:

	.size	x25519_sc_reduce, .-x25519_sc_reduce
# WAS .section	.text.x25519_scalar_mult_generic_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_scalar_mult_generic_nohw
	.hidden	x25519_scalar_mult_generic_nohw
	.type	x25519_scalar_mult_generic_nohw, @function
.Lx25519_scalar_mult_generic_nohw_local_target:
x25519_scalar_mult_generic_nohw:
.LFB1427:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movabsq	$2251799813685247, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$680, %rsp
	.cfi_def_cfa_offset 736
	movdqu	(%rsi), %xmm3
	movdqu	16(%rsi), %xmm4
	movq	%fs:40, %rdx
	movq	%rdx, 664(%rsp)
	xorl	%edx, %edx
	movzbl	6(%rax), %esi
	movzbl	5(%rax), %ecx
	movaps	%xmm4, 640(%rsp)
	movzbl	655(%rsp), %edx
	salq	$40, %rcx
	salq	$48, %rsi
	movaps	%xmm3, 624(%rsp)
	addq	%rcx, %rsi
	movzbl	(%rax), %ecx
	andl	$127, %edx
	andb	$-8, 624(%rsp)
	orl	$64, %edx
	addq	%rcx, %rsi
	movzbl	4(%rax), %ecx
	movb	%dl, 655(%rsp)
	salq	$32, %rcx
	addq	%rcx, %rsi
	movzbl	3(%rax), %ecx
	salq	$24, %rcx
	addq	%rcx, %rsi
	movzbl	2(%rax), %ecx
	salq	$16, %rcx
	addq	%rcx, %rsi
	movzbl	1(%rax), %ecx
	salq	$8, %rcx
	addq	%rcx, %rsi
	movq	%rsi, %rbx
	shrq	$51, %rsi
	andq	%rbp, %rbx
	movq	%rbx, 160(%rsp)
	movzbl	12(%rax), %ecx
	movzbl	11(%rax), %edi
	salq	$45, %rcx
	salq	$37, %rdi
	addq	%rdi, %rcx
	movzbl	10(%rax), %edi
	salq	$29, %rdi
	addq	%rdi, %rcx
	movzbl	9(%rax), %edi
	salq	$21, %rdi
	addq	%rdi, %rcx
	movzbl	8(%rax), %edi
	salq	$13, %rdi
	addq	%rdi, %rcx
	movzbl	7(%rax), %edi
	salq	$5, %rdi
	addq	%rdi, %rcx
	movzbl	18(%rax), %edi
	addq	%rsi, %rcx
	movzbl	19(%rax), %esi
	movq	%rcx, %r14
	andq	%rbp, %r14
	salq	$50, %rsi
	salq	$42, %rdi
	shrq	$51, %rcx
	movq	%r14, 168(%rsp)
	addq	%rdi, %rsi
	movzbl	17(%rax), %edi
	salq	$34, %rdi
	addq	%rdi, %rsi
	movzbl	16(%rax), %edi
	salq	$26, %rdi
	addq	%rdi, %rsi
	movzbl	15(%rax), %edi
	salq	$18, %rdi
	addq	%rdi, %rsi
	movzbl	14(%rax), %edi
	salq	$10, %rdi
	addq	%rdi, %rsi
	movzbl	13(%rax), %edi
	leaq	(%rsi,%rdi,4), %rsi
	movzbl	24(%rax), %edi
	addq	%rcx, %rsi
	movzbl	25(%rax), %ecx
	salq	$39, %rdi
	movq	%rsi, %r15
	shrq	$51, %rsi
	salq	$47, %rcx
	andq	%rbp, %r15
	addq	%rdi, %rcx
	movzbl	23(%rax), %edi
	movq	%r15, 176(%rsp)
	movq	%r15, 240(%rsp)
	salq	$31, %rdi
	addq	%rdi, %rcx
	movzbl	22(%rax), %edi
	salq	$23, %rdi
	addq	%rdi, %rcx
	movzbl	21(%rax), %edi
	salq	$15, %rdi
	addq	%rdi, %rcx
	movzbl	20(%rax), %edi
	salq	$7, %rdi
	addq	%rdi, %rcx
	movzbl	29(%rax), %edi
	addq	%rsi, %rcx
	movzbl	30(%rax), %esi
	salq	$28, %rdi
	movq	%rcx, %r11
	salq	$36, %rsi
	andq	%rbp, %r11
	addq	%rdi, %rsi
	movzbl	28(%rax), %edi
	movq	%r11, 184(%rsp)
	movq	%r11, 216(%rsp)
	salq	$20, %rdi
	addq	%rdi, %rsi
	movzbl	27(%rax), %edi
	shrq	$51, %rcx
	xorl	%r9d, %r9d
	movq	%r9, %r8
	salq	$12, %rdi
	addq	%rdi, %rsi
	movzbl	26(%rax), %edi
	movzbl	31(%rax), %eax
	salq	$4, %rdi
	andl	$127, %eax
	addq	%rdi, %rsi
	salq	$44, %rax
	xorl	%edi, %edi
	addq	%rsi, %rax
	movl	%edi, %r15d
	xorl	%esi, %esi
	addq	%rcx, %rax
	movq	%rax, 208(%rsp)
	movq	%rax, 336(%rsp)
	xorl	%eax, %eax
	movq	%r14, 192(%rsp)
	movq	%rax, %r10
	movzbl	%dl, %eax
	movq	%rbx, 152(%rsp)
	xorl	%ebx, %ebx
	movq	$0, 200(%rsp)
	movq	$0, 136(%rsp)
	movq	$0, 112(%rsp)
	movq	$0, 128(%rsp)
	movq	$0, 80(%rsp)
	movq	$1, 144(%rsp)
	movq	$0, 264(%rsp)
	movq	$0, 256(%rsp)
	movq	$0, 288(%rsp)
	movq	$0, 280(%rsp)
	movq	$1, 272(%rsp)
	movl	$254, 296(%rsp)
	movq	%rbx, 16(%rsp)
	movq	%r12, 376(%rsp)
	jmp	.L8057
	.p2align 4,,10
	.p2align 3
.L8060:

	sarl	$3, %eax
	movl	300(%rsp), %r15d
	cltq
	movzbl	624(%rsp,%rax), %eax
.L8057:

	movl	296(%rsp), %ecx
	movq	152(%rsp), %rdx
	movq	192(%rsp), %r14
	movq	280(%rsp), %r9
	andl	$7, %ecx
	movq	288(%rsp), %r13
	movq	240(%rsp), %r12
	sarl	%cl, %eax
	movq	216(%rsp), %r11
	movl	%eax, %ebx
	andl	$1, %ebx
	xorl	%ebx, %r15d
	movl	%ebx, 300(%rsp)
	movq	272(%rsp), %rbx
	negq	%r15
	movq	%rbx, %rdi
	xorq	%rdx, %rdi
	movq	%rdi, %rax
	movq	%r14, %rdi
	andq	%r15, %rax
	xorq	%r9, %rdi
	xorq	%rax, %rbx
	xorq	%rax, %rdx
	movq	%rdi, %rax
	movq	%r13, %rdi
	xorq	%r12, %rdi
	andq	%r15, %rax
	movq	%rbx, 48(%rsp)
	andq	%r15, %rdi
	xorq	%rax, %r14
	xorq	%rax, %r9
	movq	%rdx, 72(%rsp)
	xorq	%rdi, %r13
	xorq	%r12, %rdi
	movq	256(%rsp), %r12
	movq	264(%rsp), %rax
	movq	%r9, 152(%rsp)
	movq	%r12, %rcx
	movq	%r14, 216(%rsp)
	xorq	%r11, %rcx
	andq	%r15, %rcx
	xorq	%rcx, %r12
	xorq	%r11, %rcx
	movq	%r12, %rbx
	movq	336(%rsp), %r12
	movq	%r12, %r11
	xorq	%rax, %r11
	movq	%r11, %rdx
	movq	%rax, %r11
	andq	%r15, %rdx
	xorq	%rdx, %r12
	xorq	%rdx, %r11
	movq	136(%rsp), %rdx
	movq	%r12, 192(%rsp)
	movq	144(%rsp), %r12
	movq	%r12, %r9
	xorq	%r10, %r9
	movq	%r9, %rax
	movq	80(%rsp), %r9
	andq	%r15, %rax
	xorq	%rax, %r12
	xorq	%rax, %r10
	movq	%r9, %rax
	xorq	%rsi, %rax
	andq	%r15, %rax
	xorq	%rax, %rsi
	xorq	%rax, %r9
	movq	%r9, 32(%rsp)
	movq	128(%rsp), %r9
	movq	%r9, %rax
	xorq	%r8, %rax
	andq	%r15, %rax
	xorq	%rax, %r9
	xorq	%rax, %r8
	movq	%r9, 24(%rsp)
	movq	112(%rsp), %r9
	movq	%r9, %rax
	xorq	%rdx, %rax
	andq	%r15, %rax
	xorq	%rax, %rdx
	xorq	%rax, %r9
	movq	%rdx, 64(%rsp)
	movq	200(%rsp), %rdx
	movq	%r9, (%rsp)
	movq	16(%rsp), %r9
	movq	%rdx, %rax
	movq	%r12, 200(%rsp)
	xorq	%r9, %rax
	andq	%r15, %rax
	movq	%rdx, %r15
	movq	72(%rsp), %rdx
	xorq	%rax, %r15
	xorq	%rax, %r9
	movq	%r15, %rax
	movabsq	$4503599627370458, %r15
	addq	%rdx, %r15
	subq	%r12, %r15
	movq	%r14, %r12
	movabsq	$4503599627370494, %r14
	movq	%r15, 80(%rsp)
	leaq	(%r12,%r14), %r15
	movq	%r15, %r12
	movq	32(%rsp), %r15
	subq	%r15, %r12
	leaq	(%rdi,%r14), %r15
	movq	%r12, 112(%rsp)
	movq	24(%rsp), %r12
	movq	64(%rsp), %rdx
	subq	%r12, %r15
	movq	%r15, 136(%rsp)
	leaq	(%rcx,%r14), %r15
	movq	%r15, %r12
	subq	%rdx, %r12
	movq	192(%rsp), %rdx
	movq	%r12, 144(%rsp)
	leaq	(%rdx,%r14), %r15
	movabsq	$4503599627370458, %rdx
	subq	%rax, %r15
	movq	%r15, %r12
	movq	48(%rsp), %r15
	addq	%rdx, %r15
	movq	152(%rsp), %rdx
	subq	%r10, %r15
	movq	%r15, 96(%rsp)
	leaq	(%rdx,%r14), %r15
	movq	%r15, %r14
	movabsq	$4503599627370494, %r15
	movq	%r15, %rdx
	addq	%r13, %r15
	subq	%rsi, %r14
	subq	%r8, %r15
	movq	%r15, 104(%rsp)
	movq	%rdx, %r15
	movq	(%rsp), %rdx
	addq	%rbx, %r15
	subq	%rdx, %r15
	movq	152(%rsp), %rdx
	movq	%r15, 16(%rsp)
	movabsq	$4503599627370494, %r15
	addq	%r11, %r15
	subq	%r9, %r15
	movq	%r15, 128(%rsp)
	movq	48(%rsp), %r15
	addq	%r15, %r10
	leaq	(%rsi,%rdx), %r15
	movq	(%rsp), %rdx
	leaq	(%r8,%r13), %rsi
	leaq	(%rdx,%rbx), %r8
	leaq	(%r9,%r11), %rdx
	movq	200(%rsp), %r9
	movq	72(%rsp), %r11
	movq	192(%rsp), %rbx
	movq	%r8, 72(%rsp)
	addq	%r9, %r11
	movq	216(%rsp), %r9
	movq	%rdx, 216(%rsp)
	movq	%r11, (%rsp)
	movq	32(%rsp), %r11
	addq	%r9, %r11
	movq	24(%rsp), %r9
	movq	%rsi, 24(%rsp)
	movq	%r11, 32(%rsp)
	movq	%r10, %r11
	addq	%rdi, %r9
	movq	%r9, 48(%rsp)
	movq	64(%rsp), %r9
	addq	%r9, %rcx
	addq	%rax, %rbx
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %rdx
	leaq	(%r8,%r8,8), %rax
	movq	%rcx, 64(%rsp)
	leaq	(%r8,%rax,2), %rdi
	leaq	(%rsi,%rsi,8), %rax
	movq	%rbx, 192(%rsp)
	movq	%rdx, %rbx
	leaq	(%rsi,%rax,2), %rcx
	leaq	(%r15,%r15,8), %rax
	movq	%rdi, 240(%rsp)
	leaq	(%r15,%rax,2), %r9
	movq	%r9, %rax
	mulq	%r12
	movq	%rax, %r8
	movq	144(%rsp), %rax
	movq	%rdx, %r9
	movq	136(%rsp), %rsi
	movq	80(%rsp), %r13
	movq	%rbx, 152(%rsp)
	mulq	%rcx
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	112(%rsp)
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	%r13
	movq	%r9, %r10
	movq	%r8, %r9
	movq	112(%rsp), %r8
	addq	%rax, %r9
	movq	%rcx, %rax
	adcq	%rdx, %r10
	mulq	%r12
	movq	%r9, 224(%rsp)
	movq	%r10, 232(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	240(%rsp), %rax
	mulq	144(%rsp)
	addq	%rax, %rcx
	movq	152(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rcx, %rsi
	movq	%rbx, %rdi
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r13, %rax
	movq	%r11, %r13
	addq	%rsi, %rcx
	movq	%r13, 200(%rsp)
	adcq	%rdi, %rbx
	mulq	%r15
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r10, %rax
	xorl	%edx, %edx
	movq	152(%rsp), %r10
	addq	%rax, %rcx
	movq	240(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r12
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	mulq	144(%rsp)
	addq	%rax, %rsi
	movq	136(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%r15
	movq	%rax, %r8
	movq	%rdx, %r9
	addq	%rsi, %r8
	movq	24(%rsp), %rsi
	adcq	%rdi, %r9
	movq	%rsi, %rax
	mulq	80(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	%r12
	movq	%rax, %r10
	movq	144(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r13
	addq	%rax, %r10
	movq	136(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%r15
	addq	%rax, %r10
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r10, %rsi
	movq	72(%rsp), %r10
	adcq	%r11, %rdi
	movq	%r10, %rax
	mulq	80(%rsp)
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	andq	%rsi, %rax
	movq	%rax, 272(%rsp)
	movq	%r12, %rax
	mulq	%r13
	movq	%rax, %r12
	movq	144(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	136(%rsp), %rax
	adcq	%rdx, %r13
	mulq	24(%rsp)
	addq	%rax, %r12
	movq	112(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	80(%rsp), %rax
	adcq	%rdx, %r13
	mulq	216(%rsp)
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rbp, %rdi
	andq	%rbp, %rcx
	andq	%rbp, %r8
	andq	%rax, %rdi
	shrdq	$51, %rdx, %rax
	leaq	(%rax,%rax,8), %rdx
	movq	%rdi, 280(%rsp)
	leaq	(%rax,%rdx,2), %rax
	movq	224(%rsp), %rdx
	andq	%rbp, %rdx
	addq	%rdx, %rax
	movq	%rax, %r12
	shrq	$51, %rax
	addq	%rax, %rcx
	andq	%rbp, %r12
	movq	%rcx, %rsi
	shrq	$51, %rcx
	movq	%r12, 288(%rsp)
	andq	%rbp, %rsi
	addq	%rcx, %r8
	movq	%rsi, 336(%rsp)
	movq	128(%rsp), %rdi
	movq	%r8, 144(%rsp)
	movq	16(%rsp), %r8
	movq	104(%rsp), %r12
	leaq	(%rdi,%rdi,8), %rax
	movq	96(%rsp), %r13
	leaq	(%rdi,%rax,2), %r10
	leaq	(%r8,%r8,8), %rax
	movq	(%rsp), %rbx
	leaq	(%r8,%rax,2), %r11
	leaq	(%r12,%r12,8), %rax
	leaq	(%r12,%rax,2), %rcx
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %rsi
	movq	%rsi, %rax
	mulq	192(%rsp)
	movq	%rax, %r8
	movq	64(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r11
	addq	%rax, %r8
	movq	32(%rsp), %rax
	adcq	%rdx, %r9
	movq	%r8, %rsi
	mulq	%r10
	movq	%r9, %rdi
	addq	%rax, %rsi
	movq	32(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, 80(%rsp)
	mulq	%r13
	movq	%rax, %r8
	movq	%rbx, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	192(%rsp)
	movq	%rax, %rcx
	movq	64(%rsp), %rax
	movq	%rdx, %rbx
	addq	%r8, %rcx
	adcq	%r9, %rbx
	mulq	%r11
	addq	%rax, %rcx
	movq	48(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r10
	addq	%rcx, %rax
	movq	%rsi, %rcx
	adcq	%rbx, %rdx
	shrdq	$51, %rdi, %rcx
	xorl	%ebx, %ebx
	addq	%rcx, %rax
	movq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rbx, %rdx
	movq	%rdx, %r9
	movq	%r8, 112(%rsp)
	mulq	%r13
	movq	%r9, 120(%rsp)
	movq	%rax, %rcx
	movq	32(%rsp), %rax
	movq	%rdx, %rbx
	mulq	%r14
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	(%rsp)
	addq	%rax, %rcx
	movq	192(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r11
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%rcx, %rsi
	movq	64(%rsp), %rcx
	adcq	%rbx, %rdi
	movq	%rcx, %rax
	mulq	%r10
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%r13
	movq	%rax, %r8
	movq	48(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	32(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r12
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	mulq	(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	addq	%r8, %rcx
	adcq	%r9, %rbx
	movq	192(%rsp), %r9
	movq	%r9, %rax
	mulq	%r10
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r9, %rax
	movq	104(%rsp), %r9
	adcq	%rdx, %rbx
	movq	%rbp, %rdx
	andq	%rcx, %rdx
	movq	%rdx, 192(%rsp)
	mulq	%r13
	movq	%rax, %r12
	movq	64(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	48(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	32(%rsp), %rax
	movq	16(%rsp), %r8
	adcq	%rdx, %r13
	movq	96(%rsp), %rdi
	mulq	%r8
	addq	%rax, %r12
	movq	(%rsp), %rax
	adcq	%rdx, %r13
	mulq	128(%rsp)
	addq	%r12, %rax
	movq	%rbp, %r12
	adcq	%r13, %rdx
	shrdq	$51, %rbx, %rcx
	xorl	%ebx, %ebx
	leaq	(%r9,%r9), %r13
	addq	%rcx, %rax
	movq	80(%rsp), %rcx
	adcq	%rbx, %rdx
	andq	%rax, %r12
	andq	%rbp, %rsi
	movq	%r8, %rbx
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	movq	%r12, 256(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	112(%rsp), %rax
	addq	%rcx, %rdx
	movq	%rdx, %rcx
	andq	%rbp, %rax
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%rbp, %rcx
	movq	%rcx, 264(%rsp)
	movq	%rax, %rcx
	shrq	$51, %rax
	leaq	(%rsi,%rax), %r12
	leaq	(%r10,%r10), %rsi
	andq	%rbp, %rcx
	movq	%r12, 48(%rsp)
	leaq	(%r8,%r8), %r12
	leaq	(%r11,%r11), %r8
	movq	%r8, %rax
	movq	%rcx, 32(%rsp)
	movq	%r9, %rcx
	mulq	%r9
	movq	%rax, %r8
	movq	%rsi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%r11, %rax
	movq	%rdi, %r11
	adcq	%rdx, %r9
	mulq	%rbx
	movq	%r8, (%rsp)
	movq	%r9, 8(%rsp)
	movq	%rax, %r8
	movq	%rcx, %rax
	movq	%rdx, %r9
	mulq	%rsi
	movq	%rax, %rcx
	movq	%rdx, %rbx
	leaq	(%r14,%r14), %rax
	addq	%r8, %rcx
	adcq	%r9, %rbx
	mulq	%rdi
	addq	%rax, %rcx
	movq	(%rsp), %rax
	adcq	%rdx, %rbx
	movq	8(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	16(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%rsi
	movq	%rax, %rsi
	movq	%r11, %rax
	movq	%rdx, %rdi
	mulq	%r13
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%rsi, %r8
	adcq	%rdi, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	movq	24(%rsp), %rbx
	addq	%rax, %r8
	movq	%r10, %rax
	adcq	%rdx, %r9
	mulq	128(%rsp)
	movq	%rax, %r10
	movq	%r13, %rax
	movq	%rdx, %r11
	movq	96(%rsp), %r13
	mulq	%r14
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r13, %rax
	addq	%r10, %rsi
	movq	128(%rsp), %r10
	adcq	%r11, %rdi
	mulq	%r12
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	movq	152(%rsp), %r9
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	movq	%rbp, %rdx
	addq	%r10, %r10
	andq	%rsi, %rdx
	movq	%rdx, 80(%rsp)
	mulq	%r10
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%r14
	movq	(%rsp), %r14
	movq	%rax, %r12
	movq	%rdx, %r13
	addq	%r10, %r12
	movq	240(%rsp), %r10
	adcq	%r11, %r13
	movq	104(%rsp), %r11
	movq	%r11, %rax
	mulq	%r11
	movq	72(%rsp), %r11
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	leaq	(%r10,%r10), %rsi
	adcq	%rdi, %rdx
	movq	%rbp, %rdi
	andq	%rbp, %r14
	andq	%rbp, %rcx
	andq	%rax, %rdi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r8
	leaq	(%rax,%rax,8), %rdx
	movq	%rdi, 136(%rsp)
	leaq	(%rax,%rdx,2), %rax
	addq	%r14, %rax
	leaq	(%r11,%r11), %r14
	movq	%rax, %rdi
	shrq	$51, %rax
	addq	%rax, %rcx
	andq	%rbp, %rdi
	movq	%rcx, %rax
	shrq	$51, %rcx
	movq	%rdi, 16(%rsp)
	andq	%rbp, %rax
	addq	%r8, %rcx
	leaq	(%rbx,%rbx), %r8
	movq	%rax, 224(%rsp)
	movq	%rsi, %rax
	mulq	%rbx
	movq	%rcx, (%rsp)
	leaq	(%r9,%r9), %rcx
	movq	200(%rsp), %r9
	movq	%rax, %rsi
	movq	%rcx, %rax
	movq	%rdx, %rdi
	mulq	%r15
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r9, %rax
	addq	%rsi, %r12
	adcq	%rdi, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r11
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%rcx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	leaq	(%r15,%r15), %rax
	addq	%r10, %rsi
	adcq	%r11, %rdi
	mulq	%r9
	addq	%rax, %rsi
	movq	%r12, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	72(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r8
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r15, %rax
	addq	%r10, %rcx
	adcq	%r11, %rbx
	mulq	%r15
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %rdi, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	152(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	216(%rsp)
	movq	280(%rsp), %rdi
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%r15
	movq	%rax, %r8
	movq	%rdx, %r9
	addq	%r10, %r8
	movq	%rbp, %r10
	adcq	%r11, %r9
	movq	200(%rsp), %r11
	movq	%r11, %rax
	mulq	%r14
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	movq	264(%rsp), %rbx
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	andq	%r8, %r10
	movq	%r10, 64(%rsp)
	movq	216(%rsp), %r10
	addq	%r10, %r10
	mulq	%r10
	movq	%rax, %r10
	movq	%r14, %rax
	movq	%rdx, %r11
	mulq	%r15
	movq	%rax, %r14
	movq	%rdx, %r15
	addq	%r10, %r14
	movq	288(%rsp), %r10
	adcq	%r11, %r15
	movq	24(%rsp), %r11
	movq	%r11, %rax
	mulq	%r11
	movq	48(%rsp), %r11
	addq	%r14, %rax
	movq	%rbp, %r14
	adcq	%r15, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	movq	336(%rsp), %r15
	addq	%r8, %rax
	movq	32(%rsp), %r8
	adcq	%r9, %rdx
	andq	%rax, %r14
	andq	%rbp, %r12
	andq	%rbp, %rsi
	shrdq	$51, %rdx, %rax
	andq	%rbp, %rcx
	leaq	(%r8,%r15), %r13
	movq	%rdi, %r8
	leaq	(%rax,%rax,8), %rdx
	movq	%r13, 96(%rsp)
	movq	272(%rsp), %r13
	leaq	(%rax,%rdx,2), %rax
	movq	192(%rsp), %rdx
	addq	%rax, %r12
	movq	%r12, %r9
	shrq	$51, %r12
	leaq	(%rsi,%r12), %rax
	andq	%rbp, %r9
	movq	144(%rsp), %r12
	movq	%r9, 24(%rsp)
	movq	%rax, %r9
	shrq	$51, %rax
	addq	%r11, %r12
	andq	%rbp, %r9
	addq	%rax, %rcx
	movq	%rdx, %r11
	movq	%r9, %rsi
	movq	%r12, 112(%rsp)
	movq	%r10, %r9
	movq	%r10, %r12
	movabsq	$4503599627370458, %r10
	addq	%rbx, %r9
	addq	%r13, %r11
	leaq	(%r12,%r10), %rax
	movq	%r9, 128(%rsp)
	movq	%rax, %r9
	movq	%r11, 216(%rsp)
	movq	256(%rsp), %r11
	subq	%rbx, %r9
	movabsq	$4503599627370494, %rbx
	leaq	(%r15,%rbx), %rax
	movq	32(%rsp), %r15
	addq	%r11, %r8
	movq	%r9, 200(%rsp)
	movq	%r8, 192(%rsp)
	movq	136(%rsp), %r8
	subq	%r15, %rax
	movq	144(%rsp), %r15
	movq	%rax, 72(%rsp)
	leaq	(%r15,%rbx), %rax
	movq	48(%rsp), %r15
	movq	%rax, %r12
	leaq	0(%r13,%rbx), %rax
	subq	%r15, %r12
	movq	%rax, %r15
	leaq	(%rdi,%rbx), %rax
	subq	%rdx, %r15
	movq	%rax, %r10
	movq	80(%rsp), %rdx
	leaq	(%r8,%r8,8), %rax
	subq	%r11, %r10
	movq	(%rsp), %r11
	leaq	(%r8,%rax,2), %rdi
	movq	%r12, 144(%rsp)
	leaq	(%rdx,%rdx,8), %rax
	movq	%r10, 152(%rsp)
	leaq	(%rdx,%rax,2), %r9
	leaq	(%r11,%r11,8), %rax
	leaq	(%r11,%rax,2), %r8
	movq	%rdi, %rax
	mulq	%rsi
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	16(%rsp), %rax
	mulq	24(%rsp)
	movq	224(%rsp), %rbx
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	64(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, %r10
	mulq	%r8
	movq	%r13, %r11
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	movq	%r10, 32(%rsp)
	mulq	%r9
	movq	%r11, 40(%rsp)
	movq	%rax, %r12
	movq	16(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	24(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r14
	movq	%r12, %r8
	movq	%r12, 48(%rsp)
	movq	%r13, %r9
	movq	%r13, 56(%rsp)
	movq	%rax, %r10
	movq	64(%rsp), %rax
	movq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	16(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	24(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rdi, %rax
	movq	%rbx, %rdi
	movq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	80(%rsp), %rax
	mulq	24(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	16(%rsp)
	addq	%rax, %r10
	movq	%rbx, %rax
	movq	(%rsp), %rbx
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r10, %r8
	movq	%r12, %r10
	adcq	%r11, %r9
	shrdq	$51, %r13, %rax
	movq	%rbp, %r13
	movabsq	$4503599627370458, %r11
	shrq	$51, %rdx
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	andq	%r8, %r13
	mulq	%r14
	movq	%r13, 256(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	136(%rsp), %rax
	mulq	24(%rsp)
	addq	%rax, %r12
	movq	80(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %r8
	shrq	$51, %r9
	addq	%r8, %rax
	movq	%rax, %r13
	adcq	%r9, %rdx
	movq	%rax, 368(%rsp)
	andq	%rbp, %r13
	shrdq	$51, %rdx, %rax
	movq	%r13, 264(%rsp)
	movq	32(%rsp), %r13
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	andq	%rbp, %r13
	addq	%r13, %rdx
	movq	%rdx, %r13
	shrq	$51, %rdx
	andq	%rbp, %r13
	movq	%r13, 272(%rsp)
	movq	48(%rsp), %r13
	andq	%rbp, %r13
	movq	%r13, %rax
	addq	%rdx, %rax
	movq	%r10, %rdx
	movq	%rax, %r13
	andq	%rbp, %rdx
	shrq	$51, %rax
	andq	%rbp, %r13
	movq	%r13, 280(%rsp)
	leaq	(%rdx,%rax), %r13
	movabsq	$4503599627370494, %rax
	movq	%r13, 288(%rsp)
	movq	24(%rsp), %rbx
	addq	%rax, %rsi
	addq	%rax, %rcx
	subq	%rdi, %rsi
	movq	152(%rsp), %r8
	movq	200(%rsp), %r9
	addq	%r11, %rbx
	movq	%rsi, 32(%rsp)
	movq	64(%rsp), %rsi
	movq	%rbx, %r11
	movq	(%rsp), %rbx
	movq	16(%rsp), %rdx
	movq	136(%rsp), %r10
	movq	144(%rsp), %r12
	subq	%rbx, %rcx
	movq	%rax, %rbx
	addq	%rsi, %rax
	subq	%rdx, %r11
	movq	%rcx, 48(%rsp)
	movq	80(%rsp), %rcx
	addq	%rbx, %r14
	leaq	(%r12,%r12), %rdi
	movq	72(%rsp), %rbx
	subq	%r10, %r14
	movq	%r11, 24(%rsp)
	subq	%rcx, %rax
	movq	%r14, 104(%rsp)
	leaq	(%r15,%r15), %r14
	movq	%rax, 64(%rsp)
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rsi
	movq	%r9, %rax
	mulq	%r9
	leaq	(%rsi,%rsi), %r8
	movq	%rax, %r10
	movq	%rbx, %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	leaq	(%r15,%r15,8), %rax
	leaq	(%r15,%rax,2), %rcx
	adcq	%rdx, %r11
	leaq	(%rcx,%rcx), %rax
	mulq	%r12
	addq	%rax, %r10
	movq	%r10, %r12
	leaq	(%rbx,%rbx), %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	movq	%r11, %r13
	mulq	%r9
	movq	%rax, %r10
	movq	144(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%r15
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	movq	%r13, %rdx
	addq	%r10, %rcx
	adcq	%r11, %rbx
	movq	72(%rsp), %r11
	shrdq	$51, %r13, %rax
	movq	%r12, %r13
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	%r11
	movq	%rax, %r10
	movq	%r15, %rax
	movq	%rdx, %r11
	movq	200(%rsp), %r15
	mulq	%r8
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r15, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	%rdi
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	movq	%rbx, %rdx
	addq	%r8, %r10
	adcq	%r9, %r11
	shrdq	$51, %rbx, %rax
	shrq	$51, %rdx
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	152(%rsp)
	movq	%rax, %r8
	movq	%r15, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	72(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	movq	%r11, %rdx
	addq	%r8, %rsi
	movq	152(%rsp), %r8
	adcq	%r9, %rdi
	shrdq	$51, %r11, %rax
	movq	%rbp, %r9
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r15, %rax
	movq	144(%rsp), %r15
	adcq	%rdx, %rdi
	addq	%r8, %r8
	andq	%rsi, %r9
	mulq	%r8
	movq	%r9, 200(%rsp)
	movq	%rax, %r8
	movq	72(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movq	%rbp, %r15
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	andq	%rax, %r15
	andq	%rbp, %r13
	andq	%rbp, %rcx
	shrdq	$51, %rdx, %rax
	andq	%rbp, %r10
	movq	%r15, 144(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	addq	%r13, %rax
	movq	%rax, %r12
	shrq	$51, %rax
	addq	%rax, %rcx
	movl	$121666, %eax
	andq	%rbp, %r12
	mulq	24(%rsp)
	movq	%rcx, %r13
	shrq	$51, %rcx
	movq	%r12, 72(%rsp)
	leaq	(%r10,%rcx), %r12
	andq	%rbp, %r13
	movq	%rdx, %rdi
	movq	%rax, %rsi
	movl	$121666, %eax
	mulq	32(%rsp)
	movq	%rsi, %rcx
	movq	%rdi, %rbx
	shrdq	$51, %rdi, %rcx
	shrq	$51, %rbx
	addq	%rax, %rcx
	movl	$121666, %eax
	adcq	%rdx, %rbx
	mulq	48(%rsp)
	movq	%rcx, %r8
	shrdq	$51, %rbx, %r8
	movq	%rbx, %r9
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r9
	movl	$121666, %eax
	movq	%rdx, %r10
	mulq	64(%rsp)
	movq	%r9, %r8
	movq	%r9, 304(%rsp)
	shrdq	$51, %r10, %r8
	movq	%r10, %r9
	movq	%r10, 312(%rsp)
	shrq	$51, %r9
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r14
	movl	$121666, %eax
	movq	%rdx, %r15
	mulq	104(%rsp)
	movq	%r14, 320(%rsp)
	shrdq	$51, %r15, %r14
	movq	%r15, 328(%rsp)
	shrq	$51, %r15
	movq	128(%rsp), %r9
	addq	%rax, %r14
	adcq	%rdx, %r15
	movq	%r14, %rax
	andq	%rbp, %rsi
	andq	%rbp, %rcx
	shrdq	$51, %r15, %rax
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rax
	addq	%rax, %rsi
	movq	%rsi, %rax
	movq	%rsi, 344(%rsp)
	movq	192(%rsp), %rsi
	shrq	$51, %rax
	leaq	(%rcx,%rax), %r10
	movq	216(%rsp), %rcx
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %rsi
	movq	112(%rsp), %rax
	movq	%r10, 352(%rsp)
	leaq	(%rcx,%rcx), %rbx
	leaq	(%rsi,%rsi), %r8
	movq	%rbx, 152(%rsp)
	movq	96(%rsp), %rbx
	leaq	(%rax,%rax), %rdi
	movq	%rbx, %rax
	mulq	%r8
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r9
	addq	%rax, %r10
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %rcx
	adcq	%rdx, %r11
	leaq	(%rcx,%rcx), %rax
	mulq	112(%rsp)
	addq	%rax, %r10
	movq	%r10, 240(%rsp)
	leaq	(%rbx,%rbx), %r10
	adcq	%rdx, %r11
	movq	%r10, %rax
	movq	%r11, 248(%rsp)
	mulq	%r9
	movq	216(%rsp), %r9
	movq	%rax, %r10
	movq	112(%rsp), %rax
	movq	%rdx, %r11
	mulq	%r8
	addq	%rax, %r10
	movq	%rcx, %rax
	adcq	%rdx, %r11
	mulq	%r9
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	240(%rsp), %rax
	movq	248(%rsp), %rdx
	addq	%r10, %rcx
	adcq	%r11, %rbx
	shrdq	$51, %rdx, %rax
	movq	96(%rsp), %r11
	shrq	$51, %rdx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	mulq	%r8
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%r11
	addq	%rax, %r8
	movq	128(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rcx, %rax
	movq	%rbx, %rdx
	addq	%r8, %r10
	adcq	%r9, %r11
	shrdq	$51, %rbx, %rax
	shrq	$51, %rdx
	addq	%rax, %r10
	movq	%rsi, %rax
	adcq	%rdx, %r11
	mulq	192(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	128(%rsp), %rax
	mulq	152(%rsp)
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	96(%rsp)
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r10, %rax
	movq	%r11, %rdx
	addq	%r8, %rsi
	movq	%rbp, %r8
	adcq	%r9, %rdi
	shrdq	$51, %r11, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	128(%rsp), %rax
	adcq	%rdx, %rdi
	andq	%rsi, %r8
	movq	%r8, 216(%rsp)
	movq	192(%rsp), %r8
	addq	%r8, %r8
	mulq	%r8
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	96(%rsp), %rax
	mulq	152(%rsp)
	addq	%rax, %r8
	movq	112(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rax
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rsi, %rax
	movq	%rax, %r8
	adcq	%rdi, %rdx
	andq	%rbp, %rcx
	andq	%rbp, %r10
	andq	%rbp, %r8
	movq	%rax, 360(%rsp)
	shrdq	$51, %rdx, %rax
	movq	%r8, 336(%rsp)
	movq	240(%rsp), %r8
	leaq	(%rax,%rax,8), %rdx
	movq	344(%rsp), %rsi
	leaq	(%rax,%rdx,2), %rax
	movq	16(%rsp), %rdx
	andq	%rbp, %r8
	movq	(%rsp), %rbx
	movq	72(%rsp), %r11
	addq	%r8, %rax
	andq	%rbp, %rsi
	movq	224(%rsp), %rdi
	movq	%rax, %r8
	shrq	$51, %rax
	leaq	(%rsi,%rdx), %rsi
	movq	80(%rsp), %rdx
	addq	%rax, %rcx
	movq	304(%rsp), %rax
	movq	%rsi, 16(%rsp)
	andq	%rbp, %r8
	movq	352(%rsp), %rsi
	movq	%r8, 152(%rsp)
	movq	%rcx, %r8
	shrq	$51, %rcx
	andq	%rbp, %rax
	addq	%r10, %rcx
	andq	%rbp, %r8
	addq	%rbx, %rax
	movq	%rsi, %rbx
	movq	%r8, 192(%rsp)
	shrq	$51, %rbx
	movq	%rcx, 240(%rsp)
	movq	%rsi, %rcx
	leaq	(%rax,%rbx), %rbx
	movq	320(%rsp), %rax
	andq	%rbp, %rcx
	addq	%rdi, %rcx
	andq	%rbp, %rax
	leaq	(%rax,%rdx), %r8
	movq	136(%rsp), %rdx
	movq	%r14, %rax
	andq	%rbp, %rax
	movq	%r8, (%rsp)
	leaq	(%rax,%rdx), %rdi
	movq	200(%rsp), %rdx
	movq	%rdi, 96(%rsp)
	movq	144(%rsp), %rdi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %r8
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %rdi
	leaq	(%r12,%r12,8), %rax
	leaq	(%r12,%rax,2), %rsi
	movq	176(%rsp), %rax
	mulq	%rdi
	movq	%rax, %r14
	movq	168(%rsp), %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	160(%rsp)
	addq	%rax, %r14
	leaq	0(%r13,%r13,8), %rax
	adcq	%rdx, %r15
	leaq	0(%r13,%rax,2), %rax
	mulq	208(%rsp)
	addq	%rax, %r14
	movq	184(%rsp), %rax
	adcq	%rdx, %r15
	movq	%r14, %r9
	mulq	%rsi
	movq	%r15, %r10
	addq	%rax, %r9
	movq	184(%rsp), %rax
	adcq	%rdx, %r10
	movq	%r9, 80(%rsp)
	mulq	%rdi
	movq	%r10, 88(%rsp)
	movq	%rax, %r14
	movq	176(%rsp), %rax
	movq	%rdx, %r15
	mulq	%r8
	addq	%rax, %r14
	movq	%r11, %rax
	adcq	%rdx, %r15
	mulq	168(%rsp)
	addq	%rax, %r14
	movq	160(%rsp), %rax
	adcq	%rdx, %r15
	mulq	%r13
	addq	%rax, %r14
	movq	%rsi, %rax
	movq	208(%rsp), %rsi
	adcq	%rdx, %r15
	mulq	%rsi
	addq	%r14, %rax
	movq	%r9, %r14
	movq	%rsi, %r9
	adcq	%r15, %rdx
	movq	%r10, %r15
	shrdq	$51, %r10, %r14
	shrq	$51, %r15
	addq	%rax, %r14
	movq	%rdi, %rax
	adcq	%rdx, %r15
	mulq	%rsi
	movq	%rax, %rsi
	movq	184(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	mulq	176(%rsp)
	addq	%rax, %rsi
	movq	168(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %r10
	mulq	%r13
	movq	%rdi, %r11
	movq	%rax, %rsi
	movq	%rdx, %rdi
	addq	%r10, %rsi
	movq	160(%rsp), %r10
	adcq	%r11, %rdi
	movq	%r10, %rax
	mulq	%r12
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r15, %rax
	movq	%r15, %rdx
	movq	48(%rsp), %r15
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	%r9
	movq	%rax, %r8
	movq	200(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	72(%rsp), %rax
	adcq	%rdx, %r9
	mulq	184(%rsp)
	addq	%rax, %r8
	movq	176(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r13
	addq	%rax, %r8
	movq	168(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r12
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	%rsi, %rax
	movq	%rdi, %rdx
	addq	%r8, %r10
	adcq	%r9, %r11
	shrdq	$51, %rdi, %rax
	shrq	$51, %rdx
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	andq	%r10, %rax
	movq	%rax, 136(%rsp)
	movq	200(%rsp), %rax
	mulq	168(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	144(%rsp), %rax
	mulq	160(%rsp)
	addq	%rax, %r8
	movq	72(%rsp), %rax
	adcq	%rdx, %r9
	mulq	208(%rsp)
	addq	%rax, %r8
	movq	%r13, %rax
	movq	96(%rsp), %r13
	adcq	%rdx, %r9
	mulq	184(%rsp)
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	176(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %r11, %r10
	shrq	$51, %r11
	addq	%r10, %rax
	movq	%rax, %r12
	adcq	%r11, %rdx
	movq	%rax, 72(%rsp)
	andq	%rbp, %rsi
	andq	%rbp, %r12
	shrdq	$51, %rdx, %rax
	movq	24(%rsp), %r11
	movq	%r12, 200(%rsp)
	movq	80(%rsp), %r12
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	andq	%rbp, %r12
	addq	%r12, %rdx
	movq	%rdx, %r12
	shrq	$51, %rdx
	andq	%rbp, %r12
	movq	%r12, 144(%rsp)
	movq	%r14, %r12
	movq	32(%rsp), %r14
	andq	%rbp, %r12
	movq	%r12, %rax
	addq	%rdx, %rax
	movq	(%rsp), %rdx
	movq	%rax, %r12
	shrq	$51, %rax
	andq	%rbp, %r12
	movq	%r12, 80(%rsp)
	leaq	(%rsi,%rax), %r12
	leaq	0(%r13,%r13,8), %rax
	leaq	0(%r13,%rax,2), %rsi
	leaq	(%rdx,%rdx,8), %rax
	movq	%r12, 128(%rsp)
	leaq	(%rdx,%rax,2), %r8
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rdi
	movq	%r15, %rax
	mulq	%r8
	movq	%rax, %r12
	movq	%r14, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	leaq	(%rcx,%rcx,8), %rax
	adcq	%rdx, %r13
	leaq	(%rcx,%rax,2), %rax
	mulq	104(%rsp)
	addq	%rax, %r12
	movq	64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	64(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, %r9
	mulq	%r8
	movq	%r13, %r10
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	movq	%r10, %r15
	mulq	%rsi
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%r9, %r14
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rdi, %rax
	movq	104(%rsp), %rdi
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	movq	%r9, %r12
	adcq	%r13, %rdx
	shrdq	$51, %r10, %r14
	shrq	$51, %r15
	addq	%rax, %r14
	movq	%r8, %rax
	adcq	%rdx, %r15
	mulq	%rdi
	movq	%rax, %r8
	movq	64(%rsp), %rax
	movq	%rdx, %r9
	movq	%r8, %r10
	movq	%r9, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	16(%rsp), %rax
	adcq	%rdx, %r11
	mulq	48(%rsp)
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	24(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbx
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	movq	%r15, %rdx
	addq	%r10, %r8
	adcq	%r11, %r9
	shrdq	$51, %r15, %rax
	shrq	$51, %rdx
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	mulq	24(%rsp)
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	64(%rsp)
	movq	%rsi, %r10
	movq	%rdi, %r11
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	32(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	movq	%r9, %rdx
	addq	%r10, %rsi
	adcq	%r11, %rdi
	shrdq	$51, %r9, %rax
	shrq	$51, %rdx
	addq	%rax, %rsi
	movq	(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rbp, %rdx
	andq	%rsi, %rdx
	movq	%rdx, 112(%rsp)
	mulq	32(%rsp)
	movq	%rax, %r10
	movq	%rdx, %r11
	movq	96(%rsp), %rax
	mulq	24(%rsp)
	addq	%rax, %r10
	movq	16(%rsp), %rax
	adcq	%rdx, %r11
	mulq	104(%rsp)
	addq	%rax, %r10
	movq	64(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rbx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %rdi, %rsi
	shrq	$51, %rdi
	addq	%rax, %rsi
	adcq	%rdx, %rdi
	movq	%rsi, %r11
	movq	%rsi, %rdx
	andq	%rbp, %r8
	shrdq	$51, %rdi, %rsi
	movq	%r12, %rdi
	subl	$1, 296(%rsp)
	andq	%rbp, %r11
	leaq	(%rsi,%rsi,8), %rax
	andq	%rbp, %rdi
	movq	%r11, 16(%rsp)
	leaq	(%rsi,%rax,2), %rcx
	addq	%rdi, %rcx
	movq	%r14, %rdi
	andq	%rbp, %rdi
	movq	%rcx, %r10
	shrq	$51, %rcx
	movq	%rdi, %rax
	andq	%rbp, %r10
	addq	%rcx, %rax
	movq	%rax, %rsi
	shrq	$51, %rax
	addq	%rax, %r8
	movl	296(%rsp), %eax
	andq	%rbp, %rsi
	cmpl	$-1, %eax
	jne	.L8060
	movq	272(%rsp), %rdi
	movq	112(%rsp), %rax
	movq	%r10, 432(%rsp)
	leaq	432(%rsp), %rbx
	movq	376(%rsp), %r12
	movq	%r8, 448(%rsp)
	movq	%rdi, 384(%rsp)
	movq	280(%rsp), %rdi
	movq	%rax, 456(%rsp)
	movl	300(%rsp), %eax
	movq	%rdi, 392(%rsp)
	movq	288(%rsp), %rdi
	negq	%rax
	movq	%rsi, 440(%rsp)
	movdqa	384(%rsp), %xmm0
	leaq	576(%rsp), %rsi
	movq	%rdi, 400(%rsp)
	movq	256(%rsp), %rdi
	movq	%rax, %xmm2
	punpcklqdq	%xmm2, %xmm2
	movq	%rdi, 408(%rsp)
	movq	152(%rsp), %rdi
	movq	%rdi, 480(%rsp)
	movq	192(%rsp), %rdi
	movq	%rdi, 488(%rsp)
	movq	240(%rsp), %rdi
	movq	%rdi, 496(%rsp)
	movq	216(%rsp), %rdi
	movq	%rdi, 504(%rsp)
	movq	144(%rsp), %rdi
	movq	%rdi, 528(%rsp)
	movq	80(%rsp), %rdi
	movq	%rdi, 536(%rsp)
	movq	128(%rsp), %rdi
	movq	%rdi, 544(%rsp)
	movq	136(%rsp), %rdi
	movq	%rdi, 552(%rsp)
	pxor	480(%rsp), %xmm0
	movq	368(%rsp), %rdi
	movq	360(%rsp), %rcx
	movdqa	432(%rsp), %xmm1
	pand	%xmm2, %xmm0
	pxor	384(%rsp), %xmm0
	pxor	528(%rsp), %xmm1
	xorq	%rdi, %rcx
	movq	264(%rsp), %rdi
	movaps	%xmm0, 384(%rsp)
	andq	%rbp, %rcx
	movdqa	400(%rsp), %xmm0
	pxor	496(%rsp), %xmm0
	andq	%rax, %rcx
	pand	%xmm2, %xmm1
	pxor	432(%rsp), %xmm1
	xorq	%rdi, %rcx
	pand	%xmm2, %xmm0
	movq	72(%rsp), %rdi
	pxor	400(%rsp), %xmm0
	movq	%rcx, 416(%rsp)
	xorq	%rdi, %rdx
	movaps	%xmm0, 400(%rsp)
	movdqa	448(%rsp), %xmm0
	pxor	544(%rsp), %xmm0
	andq	%rbp, %rdx
	movq	%rbx, %rdi
	movaps	%xmm1, 432(%rsp)
	andq	%rdx, %rax
	pand	%xmm2, %xmm0
	movaps	%xmm1, 576(%rsp)
	pxor	448(%rsp), %xmm0
	xorq	%r11, %rax
	movq	%rax, 464(%rsp)
	movq	%rax, 608(%rsp)
	movaps	%xmm0, 448(%rsp)
	movaps	%xmm0, 592(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	leaq	384(%rsp), %rdi
	movq	%rbx, %rdx
	movq	%rdi, %rsi
# WAS call	fiat_25519_carry_mul
	call	.Lfiat_25519_carry_mul_local_target
	movq	392(%rsp), %rax
	movabsq	$-2251799813685229, %rdi
	addq	384(%rsp), %rdi
	movq	%rdi, %rdx
	movq	400(%rsp), %r8
	movq	408(%rsp), %r10
	movabsq	$2251799813685229, %rsi
	sarq	$51, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %rax
	subq	%rbp, %rax
	movq	%rax, %rdx
	sarq	$51, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r8
	subq	%rbp, %r8
	movq	%r8, %rdx
	sarq	$51, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r10
	movq	416(%rsp), %rdx
	subq	%rbp, %r10
	movq	%r10, %rcx
	sarq	$51, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %rdx
	subq	%rbp, %rdx
	movq	%rdx, %rcx
	sarq	$51, %rcx
	negb	%cl
	sbbb	%cl, %cl
	andq	%rbp, %rdi
	andq	%rbp, %rax
	andq	%rbp, %r8
	movsbq	%cl, %rcx
	andq	%rbp, %r10
	andq	%rbp, %rdx
	andq	%rcx, %rsi
	andq	%rbp, %rcx
	addq	%rsi, %rdi
	movq	%rcx, %r9
	leaq	(%rax,%rcx), %rcx
	movq	%rdi, %rsi
	shrq	$51, %rdi
	leaq	(%r8,%r9), %rax
	leaq	(%r10,%r9), %r8
	addq	%rdi, %rcx
	andq	%rbp, %rsi
	addq	%r9, %rdx
	movabsq	$144115188075855808, %r10
	movq	%rcx, %rdi
	salq	$3, %rcx
	movl	%esi, (%r12)
	shrq	$51, %rdi
	addq	%rdi, %rax
	movq	%rax, %rdi
	salq	$6, %rax
	shrq	$51, %rdi
	andq	%r10, %rax
	addq	%rdi, %r8
	movabsq	$18014398509481976, %rdi
	andq	%rdi, %rcx
	movq	%rsi, %rdi
	movq	%r8, %r10
	shrq	$51, %r8
	shrq	$48, %rdi
	addq	%r8, %rdx
	andq	%rbp, %r10
	movabsq	$36028797018963952, %r8
	addq	%rcx, %rdi
	shrq	$48, %rcx
	addq	%rcx, %rax
	salq	$4, %rdx
	movl	%edi, 6(%r12)
	movq	%rax, %rcx
	andq	%r8, %rdx
	movl	%eax, 12(%r12)
	shrq	$56, %rcx
	leaq	(%rcx,%r10,2), %rcx
	movq	%rcx, %r8
	movl	%ecx, 19(%r12)
	shrq	$48, %r8
	addq	%r8, %rdx
	movq	%rsi, %r8
	shrq	$40, %rsi
	movb	%sil, 5(%r12)
	movq	%rdi, %rsi
	shrq	$32, %r8
	shrq	$32, %rsi
	movl	%edx, 25(%r12)
	shrq	$40, %rdi
	movb	%sil, 10(%r12)
	movq	%rax, %rsi
	shrq	$32, %rsi
	movb	%r8b, 4(%r12)
	movb	%sil, 16(%r12)
	movq	%rax, %rsi
	shrq	$48, %rax
	movb	%al, 18(%r12)
	movq	%rcx, %rax
	shrq	$40, %rsi
	shrq	$32, %rax
	shrq	$40, %rcx
	movb	%dil, 11(%r12)
	movb	%al, 23(%r12)
	movq	%rdx, %rax
	shrq	$32, %rax
	movb	%sil, 17(%r12)
	movb	%al, 29(%r12)
	movq	%rdx, %rax
	shrq	$48, %rdx
	shrq	$40, %rax
	movb	%cl, 24(%r12)
	movb	%al, 30(%r12)
	movb	%dl, 31(%r12)
	movq	664(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8061
	addq	$680, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8061:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1427:

	.size	x25519_scalar_mult_generic_nohw, .-x25519_scalar_mult_generic_nohw
# WAS .section	.text.x25519_public_from_private_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_public_from_private_nohw
	.hidden	x25519_public_from_private_nohw
	.type	x25519_public_from_private_nohw, @function
.Lx25519_public_from_private_nohw_local_target:
x25519_public_from_private_nohw:
.LFB1428:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movabsq	$4503599627370458, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$360, %rsp
	.cfi_def_cfa_offset 416
	movdqu	16(%rsi), %xmm1
	movdqu	(%rsi), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 344(%rsp)
	xorl	%eax, %eax
	leaq	304(%rsp), %rsi
	leaq	144(%rsp), %rdi
	movaps	%xmm1, 320(%rsp)
	movzbl	335(%rsp), %eax
	movaps	%xmm0, 304(%rsp)
	andl	$127, %eax
	andb	$-8, 304(%rsp)
	orl	$64, %eax
	movb	%al, 335(%rsp)
# WAS call	x25519_ge_scalarmult_base
	call	.Lx25519_ge_scalarmult_base_local_target
	movq	184(%rsp), %r12
	movq	224(%rsp), %rdi
	movq	192(%rsp), %r11
	movq	232(%rsp), %rsi
	leaq	(%rdi,%r12), %rax
	addq	%r13, %rdi
	movq	200(%rsp), %r10
	movq	208(%rsp), %r9
	leaq	(%rsi,%r11), %rcx
	subq	%r12, %rdi
	movq	%rax, (%rsp)
	movq	216(%rsp), %r8
	movq	248(%rsp), %rdx
	movq	256(%rsp), %rax
	movq	%rcx, 24(%rsp)
	movq	%rdi, 48(%rsp)
	movq	240(%rsp), %rcx
	movabsq	$4503599627370494, %rdi
	addq	%rdi, %rsi
	leaq	(%rdx,%r9), %r14
	leaq	(%rax,%r8), %rbp
	addq	%rdi, %rdx
	leaq	(%rcx,%r10), %r15
	subq	%r11, %rsi
	addq	%rdi, %rcx
	addq	%rdi, %rax
	subq	%r10, %rcx
	subq	%r9, %rdx
	subq	%r8, %rax
	movq	%rsi, 56(%rsp)
	leaq	96(%rsp), %rdi
	leaq	48(%rsp), %rsi
	movq	%rcx, 64(%rsp)
	movq	%rdx, 72(%rsp)
	movq	%rax, 80(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	movq	112(%rsp), %rdx
	movq	104(%rsp), %rcx
	movq	128(%rsp), %rdi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rsi
	movq	120(%rsp), %rdi
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rdi
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r8
	leaq	(%rcx,%rcx,8), %rax
	leaq	(%rcx,%rax,2), %r9
	movq	%r9, %rax
	mulq	%rbp
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	24(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	(%rsp), %rax
	adcq	%rdx, %r13
	mulq	96(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, 32(%rsp)
	movq	%r13, 40(%rsp)
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rsi, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movq	%r8, %r10
	movq	%r12, %r8
	movq	%r9, %r11
	addq	%rax, %r10
	movq	24(%rsp), %rax
	adcq	%rdx, %r11
	mulq	96(%rsp)
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%rdi, %rax
	movq	%rdx, %r13
	mulq	%rbp
	movq	%rax, %r8
	movq	%rsi, %rax
	movq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	96(%rsp)
	movq	%r8, %r10
	movq	%r9, %r11
	movq	%r12, %r9
	addq	%rax, %r10
	movq	24(%rsp), %rax
	adcq	%rdx, %r11
	mulq	%rcx
	addq	%rax, %r10
	movq	(%rsp), %rax
	adcq	%rdx, %r11
	mulq	112(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r13, %r9
	movq	%r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rbp
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r14, %rax
	mulq	96(%rsp)
	addq	%rax, %rsi
	movq	%r15, %rax
	adcq	%rdx, %rdi
	mulq	%rcx
	addq	%rax, %rsi
	movq	24(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	112(%rsp)
	movq	%rsi, %r8
	movq	%rdi, %r9
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	(%rsp), %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	120(%rsp)
	addq	%rax, %rsi
	movq	%r10, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r11, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%rbp, %rax
	adcq	%rdx, %rdi
	mulq	96(%rsp)
	movq	%rsi, %r11
	movq	%rax, %r8
	movq	%r14, %rax
	movq	%rdx, %r9
	movq	%rsi, %r14
	mulq	%rcx
	movq	32(%rsp), %rcx
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	112(%rsp)
	addq	%rax, %r8
	movq	24(%rsp), %rax
	adcq	%rdx, %r9
	mulq	120(%rsp)
	addq	%rax, %r8
	movq	(%rsp), %rax
	adcq	%rdx, %r9
	mulq	128(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %r14
	xorl	%r9d, %r9d
	movabsq	$36028797018963952, %rdi
	addq	%r14, %rax
	movabsq	$2251799813685247, %r14
	adcq	%r9, %rdx
	movq	%rax, (%rsp)
	andq	%r14, %rcx
	andq	%r14, %r12
	shrdq	$51, %rdx, %rax
	movq	%rdx, 8(%rsp)
	andq	%r14, %r10
	andq	%r14, %r11
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	movq	(%rsp), %rax
	addq	%rcx, %rdx
	movq	%rdx, %rcx
	andq	%r14, %rdx
	andq	%r14, %rax
	shrq	$51, %rcx
	addq	%rcx, %r12
	movabsq	$-2251799813685229, %rcx
	addq	%rcx, %rdx
	movq	%r12, %rcx
	shrq	$51, %r12
	movq	%rdx, %r8
	andq	%r14, %rcx
	addq	%r12, %r10
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rcx
	subq	%r14, %rcx
	movq	%rcx, %r8
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %r10
	subq	%r14, %r10
	movq	%r10, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %r11
	subq	%r14, %r11
	movq	%r11, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %rax
	movabsq	$2251799813685229, %rsi
	subq	%r14, %rax
	movq	%rax, %r9
	sarq	$51, %r9
	andq	%r14, %rdx
	andq	%r9, %rsi
	andq	%r14, %rcx
	andq	%r14, %r9
	addq	%rsi, %rdx
	addq	%r9, %rcx
	andq	%r14, %r10
	andq	%r14, %r11
	movq	%rdx, %r8
	shrq	$51, %rdx
	addq	%r9, %r11
	andq	%r14, %rax
	addq	%rdx, %rcx
	leaq	(%r10,%r9), %rdx
	andq	%r14, %r8
	addq	%r9, %rax
	movabsq	$144115188075855808, %r10
	movq	%rcx, %rsi
	movl	%r8d, (%rbx)
	salq	$3, %rcx
	shrq	$51, %rsi
	addq	%rsi, %rdx
	movq	%rdx, %rsi
	salq	$6, %rdx
	shrq	$51, %rsi
	andq	%r10, %rdx
	addq	%rsi, %r11
	movabsq	$18014398509481976, %rsi
	andq	%rsi, %rcx
	movq	%r8, %rsi
	movq	%r11, %r10
	shrq	$51, %r11
	shrq	$48, %rsi
	andq	%r14, %r10
	addq	%r11, %rax
	addq	%rcx, %rsi
	shrq	$48, %rcx
	addq	%rcx, %rdx
	salq	$4, %rax
	movq	%rdx, %rcx
	shrq	$56, %rcx
	andq	%rdi, %rax
	leaq	(%rcx,%r10,2), %rcx
	movq	%rcx, %rdi
	shrq	$48, %rdi
	addq	%rdi, %rax
	movq	%r8, %rdi
	shrq	$40, %r8
	shrq	$32, %rdi
	movb	%dil, 4(%rbx)
	movq	%rsi, %rdi
	movl	%esi, 6(%rbx)
	shrq	$40, %rsi
	shrq	$32, %rdi
	movb	%sil, 11(%rbx)
	movq	%rdx, %rsi
	shrq	$32, %rsi
	movl	%edx, 12(%rbx)
	movb	%sil, 16(%rbx)
	movq	%rdx, %rsi
	shrq	$48, %rdx
	movb	%dl, 18(%rbx)
	movq	%rcx, %rdx
	shrq	$40, %rsi
	shrq	$32, %rdx
	movl	%ecx, 19(%rbx)
	shrq	$40, %rcx
	movb	%dl, 23(%rbx)
	movq	%rax, %rdx
	shrq	$32, %rdx
	movl	%eax, 25(%rbx)
	movb	%dl, 29(%rbx)
	movq	%rax, %rdx
	shrq	$48, %rax
	shrq	$40, %rdx
	movb	%r8b, 5(%rbx)
	movb	%dil, 10(%rbx)
	movb	%sil, 17(%rbx)
	movb	%cl, 24(%rbx)
	movb	%dl, 30(%rbx)
	movb	%al, 31(%rbx)
	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8065
	addq	$360, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8065:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1428:

	.size	x25519_public_from_private_nohw, .-x25519_public_from_private_nohw
# WAS .section	.text.ed25519_public_key_from_hashed_seed_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_public_key_from_hashed_seed_nohw
	.hidden	ed25519_public_key_from_hashed_seed_nohw
	.type	ed25519_public_key_from_hashed_seed_nohw, @function
.Led25519_public_key_from_hashed_seed_nohw_local_target:
ed25519_public_key_from_hashed_seed_nohw:
.LFB1429:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$392, %rsp
	.cfi_def_cfa_offset 448
	movq	%rdi, 96(%rsp)
	leaq	208(%rsp), %rdi
	movq	%fs:40, %rax
	movq	%rax, 376(%rsp)
	xorl	%eax, %eax
# WAS call	x25519_ge_scalarmult_base
	call	.Lx25519_ge_scalarmult_base_local_target
	movq	320(%rsp), %rax
	leaq	112(%rsp), %rdi
	movdqa	288(%rsp), %xmm0
	movdqa	304(%rsp), %xmm1
	leaq	160(%rsp), %rsi
	movq	%rax, 192(%rsp)
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm1, 176(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	movq	120(%rsp), %rsi
	movq	144(%rsp), %rax
	movq	144(%rsp), %rbx
	movq	240(%rsp), %r9
	leaq	(%rax,%rax,8), %rax
	movq	232(%rsp), %r8
	movq	112(%rsp), %rbp
	leaq	(%rbx,%rax,2), %rcx
	movq	136(%rsp), %rax
	movq	136(%rsp), %rbx
	movq	224(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %r14
	movq	128(%rsp), %rax
	movq	128(%rsp), %rbx
	leaq	(%rax,%rax,8), %rax
	leaq	(%rbx,%rax,2), %r15
	leaq	(%rsi,%rsi,8), %rax
	movq	216(%rsp), %rbx
	leaq	(%rsi,%rax,2), %rax
	movq	%rax, 104(%rsp)
	mulq	%r9
	movq	%rax, %r12
	movq	%r15, %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	208(%rsp)
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%rbx, %rax
	adcq	%rdx, %r11
	mulq	%rbp
	movq	%r10, (%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	mulq	208(%rsp)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%r15
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 16(%rsp)
	movq	%rax, %r12
	movq	%rbx, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	128(%rsp), %rax
	adcq	%rdx, %r13
	mulq	208(%rsp)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%r12, %rax
	movq	%r11, %r12
	movq	%r10, %r11
	adcq	%r13, %rdx
	shrdq	$51, %r12, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	%r8, %rax
	movq	%rdx, %r11
	mulq	%rbp
	movq	%r10, 32(%rsp)
	movq	%r11, 40(%rsp)
	movq	%rax, %r12
	movq	%rdi, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	128(%rsp)
	addq	%rax, %r12
	movq	136(%rsp), %rax
	adcq	%rdx, %r13
	mulq	208(%rsp)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r12
	xorl	%r11d, %r11d
	addq	%r12, %rax
	adcq	%r11, %rdx
	movq	%rax, %r11
	movq	%r9, %rax
	movq	%rdx, %r12
	mulq	%rbp
	movq	%r11, 48(%rsp)
	movq	%r12, 56(%rsp)
	movq	%rax, %r9
	movq	%r8, %rax
	movq	%rdx, %r10
	mulq	%rsi
	addq	%rax, %r9
	movq	%rdi, %rax
	movabsq	$2251799813685247, %rdi
	adcq	%rdx, %r10
	mulq	128(%rsp)
	movq	%r9, %r8
	movq	%r10, %r9
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	136(%rsp)
	addq	%rax, %r8
	movq	208(%rsp), %rax
	adcq	%rdx, %r9
	mulq	144(%rsp)
	addq	%r8, %rax
	movq	%r11, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r12, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 64(%rsp)
	movq	%rdx, 72(%rsp)
	shrdq	$51, %rdx, %rax
	movq	(%rsp), %rbx
	leaq	(%rax,%rax,8), %rdx
	movq	280(%rsp), %r10
	movq	272(%rsp), %r11
	leaq	(%rax,%rdx,2), %rdx
	andq	%rdi, %rbx
	addq	%rdx, %rbx
	movq	16(%rsp), %rdx
	movq	%rbx, 80(%rsp)
	andq	%rdi, %rdx
	movq	%rdx, %rax
	movq	%rbx, %rdx
	shrq	$51, %rdx
	leaq	(%rax,%rdx), %r9
	movq	104(%rsp), %rax
	movq	%r9, 88(%rsp)
	mulq	%r10
	movq	%rax, %r8
	movq	%r11, %rax
	movq	%rdx, %r9
	mulq	%r15
	addq	%rax, %r8
	movq	%rbp, %rax
	adcq	%rdx, %r9
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	movq	%r8, %r12
	movq	%r9, %r13
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	256(%rsp)
	movq	%r12, 16(%rsp)
	movq	%r13, 24(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	248(%rsp)
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	264(%rsp)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, (%rsp)
	movq	%rbp, %rax
	movq	%rdx, 8(%rsp)
	mulq	264(%rsp)
	movq	8(%rsp), %r15
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	mulq	256(%rsp)
	addq	%rax, %r12
	movq	248(%rsp), %rax
	adcq	%rdx, %r13
	mulq	128(%rsp)
	addq	%rax, %r12
	movq	%r14, %rax
	movq	(%rsp), %r14
	adcq	%rdx, %r13
	mulq	%r10
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r11, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r15, %r14
	xorl	%edx, %edx
	addq	%r14, %r8
	adcq	%rdx, %r9
	mulq	%rbp
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%rsi, %rax
	mulq	264(%rsp)
	addq	%rax, %r14
	movq	256(%rsp), %rax
	adcq	%rdx, %r15
	mulq	128(%rsp)
	addq	%rax, %r14
	movq	248(%rsp), %rax
	adcq	%rdx, %r15
	mulq	136(%rsp)
	addq	%rax, %r14
	movq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rdx, %r15
	mulq	%r10
	addq	%r14, %rax
	adcq	%r15, %rdx
	shrdq	$51, %r9, %rcx
	xorl	%ebx, %ebx
	movabsq	$2251799813685229, %r9
	addq	%rax, %rcx
	movq	%r10, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rcx, %r14
	movq	%rbx, %r15
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rsi
	movq	%r12, %rbx
	movq	%r13, %rsi
	addq	%rax, %rbx
	movq	264(%rsp), %rax
	adcq	%rdx, %rsi
	mulq	128(%rsp)
	movq	%rbx, %r10
	movq	%rsi, %r11
	addq	%rax, %r10
	movq	256(%rsp), %rax
	adcq	%rdx, %r11
	mulq	136(%rsp)
	addq	%rax, %r10
	movq	248(%rsp), %rax
	movq	16(%rsp), %rsi
	adcq	%rdx, %r11
	mulq	144(%rsp)
	addq	%rax, %r10
	adcq	%rdx, %r11
	shrdq	$51, %r15, %rcx
	xorl	%edx, %edx
	movq	%rcx, %rax
	movq	%r14, %rcx
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %rbx
	andq	%rdi, %rsi
	andq	%rdi, %r8
	shrdq	$51, %rdx, %rbx
	andq	%rdi, %rcx
	leaq	(%rbx,%rbx,8), %rdx
	leaq	(%rbx,%rdx,2), %rbp
	addq	%rsi, %rbp
	movq	(%rsp), %rsi
	andq	%rdi, %rsi
	movq	%rsi, %rdx
	movq	%rbp, %rsi
	andq	%rdi, %rbp
	shrq	$51, %rsi
	addq	%rsi, %rdx
	movabsq	$-2251799813685229, %rsi
	addq	%rsi, %rbp
	movq	%rdx, %rsi
	shrq	$51, %rdx
	andq	%rdi, %rsi
	leaq	(%r8,%rdx), %r11
	movq	%rsi, %rbx
	movq	%rbp, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %rbx
	subq	%rdi, %rbx
	movq	%rbx, %rsi
	sarq	$51, %rsi
	movq	%rsi, %rdx
	negl	%edx
	movzbl	%dl, %edx
	subq	%rdx, %r11
	subq	%rdi, %r11
	movq	%r11, %rsi
	sarq	$51, %rsi
	movq	%rsi, %rdx
	movq	%rax, %rsi
	negl	%edx
	andq	%rdi, %rsi
	movzbl	%dl, %edx
	subq	%rdx, %rcx
	movq	%rsi, %rdx
	subq	%rdi, %rcx
	movq	%rcx, %rsi
	sarq	$51, %rsi
	movq	%rsi, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %rdx
	subq	%rdi, %rdx
	movq	%rdx, %rsi
	sarq	$51, %rsi
	movq	%rsi, %r10
	movq	%r10, %rsi
	andq	%rdi, %rbp
	andq	%rdi, %r10
	andq	%rdi, %rbx
	andq	%r9, %rsi
	leaq	(%rbx,%r10), %rax
	andq	%rdi, %r11
	andq	%rdi, %rcx
	addq	%rsi, %rbp
	addq	%r10, %r11
	andq	%rdi, %rdx
	movq	%rbp, %rsi
	shrq	$51, %rbp
	addq	%r10, %rdx
	addq	%rbp, %rax
	andq	%rdi, %rsi
	movq	%rax, %r8
	salq	$3, %rax
	movq	%rsi, %rbp
	movq	%rsi, %r13
	shrq	$51, %r8
	movq	%rsi, %r14
	addq	%r8, %r11
	leaq	(%rcx,%r10), %r8
	movq	%r11, %rcx
	salq	$6, %r11
	shrq	$51, %rcx
	addq	%rcx, %r8
	movabsq	$18014398509481976, %rcx
	andq	%rcx, %rax
	movq	%rsi, %rcx
	movq	%r8, %rbx
	shrq	$51, %r8
	shrq	$48, %rcx
	addq	%r8, %rdx
	andq	%rdi, %rbx
	movq	%rax, %r10
	leaq	(%rax,%rcx), %r15
	salq	$4, %rdx
	movabsq	$144115188075855808, %rcx
	movabsq	$36028797018963952, %r8
	andq	%r11, %rcx
	movq	%rax, %r11
	andq	%r8, %rdx
	movzbl	%r15b, %r15d
	shrq	$48, %r11
	addq	%r11, %rcx
	movq	%rcx, %r11
	shrq	$56, %r11
	leaq	(%r11,%rbx,2), %rbx
	movq	%rax, %r11
	movq	%rbx, %r8
	shrq	$48, %r8
	addq	%r8, %rdx
	shrq	$16, %rbp
	movq	%rax, %r8
	shrq	$16, %r10
	shrq	$24, %r13
	movzbl	%bpl, %ebp
	movq	%r10, (%rsp)
	movq	%rax, %r10
	andl	$65280, %eax
	shrq	$40, %r14
	orq	%r15, %rax
	movq	%r13, %r12
	movzbl	%r14b, %r14d
	movq	%rsi, %r13
	salq	$8, %rax
	shrq	$32, %r13
	movzbl	%r12b, %r12d
	movq	96(%rsp), %r15
	shrq	$24, %r11
	orq	%r14, %rax
	movzbl	%r13b, %r13d
	shrq	$40, %r10
	salq	$8, %rax
	movq	%r11, 16(%rsp)
	movq	%rcx, %r11
	movzbl	%r10b, %r10d
	shrq	$16, %r11
	orq	%r13, %rax
	shrq	$32, %r8
	movq	88(%rsp), %r14
	salq	$8, %rax
	movzbl	%r8b, %r8d
	orq	%r12, %rax
	salq	$8, %rax
	orq	%rax, %rbp
	movq	%rsi, %rax
	movzbl	%sil, %esi
	movzbl	%ah, %eax
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%r11, %rbp
	andl	$65280, %ebp
	salq	$8, %rax
	orq	%r12, %rax
	movzbl	%r11b, %r12d
	movq	%rbp, %r11
	movzbl	%ch, %ebp
	orq	%r12, %r11
	salq	$8, %rax
	salq	$8, %r11
	orq	%rbp, %r11
	movzbl	%cl, %ebp
	salq	$8, %r11
	orq	%rbp, %r11
	movq	%rax, %rbp
	salq	$8, %r11
	orq	%r10, %r11
	movq	%rbx, %r10
	salq	$8, %r11
	orq	%r8, %r11
	movzbl	16(%rsp), %r8d
	salq	$8, %r11
	orq	%rsi, %rbp
	shrq	$16, %r10
	orq	%r8, %r11
	movzbl	%r10b, %r10d
	movzbl	(%rsp), %r8d
	movq	%rbp, (%rsp)
	salq	$8, %r11
	movzbl	%bh, %ebp
	movq	%r11, %rsi
	movq	%rbx, %r11
	shrq	$24, %r11
	orq	%r8, %rsi
	movq	%rcx, %r8
	movq	%r11, %rax
	movzbl	%r11b, %r11d
	movq	%rsi, 8(%rsp)
	movq	%rcx, %rsi
	andl	$65280, %eax
	shrq	$48, %rcx
	movdqa	(%rsp), %xmm2
	shrq	$40, %r8
	orq	%r11, %rax
	movzbl	%bl, %r11d
	shrq	$32, %rsi
	salq	$8, %rax
	shrq	$40, %rbx
	movups	%xmm2, (%r15)
	orq	%r10, %rax
	movzbl	%cl, %r10d
	salq	$8, %rax
	orq	%rbp, %rax
	salq	$8, %rax
	orq	%r11, %rax
	movq	%rax, %rcx
	movzbl	%r8b, %eax
	salq	$8, %rcx
	orq	%r10, %rcx
	movq	32(%rsp), %r10
	salq	$8, %rcx
	movq	%rcx, %r8
	movzbl	%dh, %ecx
	orq	%rax, %r8
	movzbl	%sil, %eax
	movq	%r8, %rsi
	movq	48(%rsp), %r8
	salq	$8, %rsi
	orq	%rax, %rsi
	movq	%rbx, %rax
	movq	%rdx, %rbx
	shrq	$16, %rbx
	movzbl	%al, %eax
	movq	%rsi, 16(%r15)
	movq	%rdx, %rsi
	movzbl	%bl, %ebx
	sall	$8, %ebx
	orl	%ecx, %ebx
	movzbl	%dl, %ecx
	sall	$8, %ebx
	orl	%ecx, %ebx
	movq	%rdx, %rcx
	sall	$8, %ebx
	orl	%eax, %ebx
	shrq	$24, %rsi
	andq	%rdi, %r10
	andq	%rdi, %r8
	movb	%sil, 28(%r15)
	movq	%rdx, %rsi
	shrq	$40, %rcx
	shrq	$32, %rsi
	movb	%cl, 30(%r15)
	movq	%r14, %rcx
	movb	%sil, 29(%r15)
	movq	80(%rsp), %rsi
	shrq	$51, %rcx
	addq	%rcx, %r10
	movq	%r14, %rcx
	movl	%ebx, 24(%r15)
	andq	%rdi, %rsi
	andq	%rdi, %rcx
	movq	%rsi, %rax
	movq	64(%rsp), %rsi
	subq	%r9, %rax
	movq	%rax, %r11
	andq	%rdi, %rsi
	andq	%rdi, %rax
	sarq	$51, %r11
	negl	%r11d
	movzbl	%r11b, %r11d
	subq	%r11, %rcx
	subq	%rdi, %rcx
	sarq	$51, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %r10
	movq	%r10, %rcx
	subq	%rdi, %rcx
	sarq	$51, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %r8
	subq	%rdi, %r8
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rsi
	movq	%rsi, %rcx
	subq	%rdi, %rcx
	sarq	$51, %rcx
	andq	%r9, %rcx
	addq	%rcx, %rax
	sall	$7, %eax
	shrq	$48, %rdx
	xorl	%eax, %edx
	movb	%dl, 31(%r15)
	movq	376(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8069
	addq	$392, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8069:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1429:

	.size	ed25519_public_key_from_hashed_seed_nohw, .-ed25519_public_key_from_hashed_seed_nohw
# WAS .section	.text.ed25519_check_public_key_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_check_public_key_nohw
	.hidden	ed25519_check_public_key_nohw
	.type	ed25519_check_public_key_nohw, @function
.Led25519_check_public_key_nohw_local_target:
ed25519_check_public_key_nohw:
.LFB1432:

	.cfi_startproc
	endbr64
	subq	$184, %rsp
	.cfi_def_cfa_offset 192
	movq	%rdi, %rsi
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rdi
# WAS call	x25519_ge_frombytes_vartime
	call	.Lx25519_ge_frombytes_vartime_local_target
	testl	%eax, %eax
	setne	%al
	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8073
	movzbl	%al, %eax
	addq	$184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L8073:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1432:

	.size	ed25519_check_public_key_nohw, .-ed25519_check_public_key_nohw
# WAS .section	.text.x25519_scalar_mult_generic_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_scalar_mult_generic_s2n_bignum
	.hidden	x25519_scalar_mult_generic_s2n_bignum
	.type	x25519_scalar_mult_generic_s2n_bignum, @function
.Lx25519_scalar_mult_generic_s2n_bignum_local_target:
x25519_scalar_mult_generic_s2n_bignum:
.LFB1446:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movdqu	16(%rsi), %xmm1
	movdqu	(%rsi), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movaps	%xmm1, 16(%rsp)
	movzbl	31(%rsp), %eax
	movaps	%xmm0, (%rsp)
	andl	$127, %eax
	andb	$-8, (%rsp)
	orl	$64, %eax
	movb	%al, 31(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rsi
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L8079
# WAS call	curve25519_x25519_byte_alt@PLT
	call	.Lcurve25519_x25519_byte_alt_local_target
.L8074:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8080
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8079:

	.cfi_restore_state
# WAS call	curve25519_x25519_byte@PLT
	call	.Lcurve25519_x25519_byte_local_target
	jmp	.L8074
.L8080:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1446:

	.size	x25519_scalar_mult_generic_s2n_bignum, .-x25519_scalar_mult_generic_s2n_bignum
# WAS .section	.text.x25519_public_from_private_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	x25519_public_from_private_s2n_bignum
	.hidden	x25519_public_from_private_s2n_bignum
	.type	x25519_public_from_private_s2n_bignum, @function
.Lx25519_public_from_private_s2n_bignum_local_target:
x25519_public_from_private_s2n_bignum:
.LFB1447:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$48, %rsp
	.cfi_def_cfa_offset 64
	movdqu	16(%rsi), %xmm1
	movdqu	(%rsi), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movaps	%xmm1, 16(%rsp)
	movzbl	31(%rsp), %eax
	movaps	%xmm0, (%rsp)
	andl	$127, %eax
	andb	$-8, (%rsp)
	orl	$64, %eax
	movb	%al, 31(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rsi
	movq	%rbx, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L8086
# WAS call	curve25519_x25519base_byte_alt@PLT
	call	.Lcurve25519_x25519base_byte_alt_local_target
.L8081:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8087
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8086:

	.cfi_restore_state
# WAS call	curve25519_x25519base_byte@PLT
	call	.Lcurve25519_x25519base_byte_local_target
	jmp	.L8081
.L8087:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1447:

	.size	x25519_public_from_private_s2n_bignum, .-x25519_public_from_private_s2n_bignum
# WAS .section	.text.ed25519_public_key_from_hashed_seed_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_public_key_from_hashed_seed_s2n_bignum
	.hidden	ed25519_public_key_from_hashed_seed_s2n_bignum
	.type	ed25519_public_key_from_hashed_seed_s2n_bignum, @function
.Led25519_public_key_from_hashed_seed_s2n_bignum_local_target:
ed25519_public_key_from_hashed_seed_s2n_bignum:
.LFB1448:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pxor	%xmm0, %xmm0
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$112, %rsp
	.cfi_def_cfa_offset 144
	movdqu	(%rsi), %xmm1
	movdqu	16(%rsi), %xmm2
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, 32(%rsp)
	movq	%rsp, %r12
	leaq	32(%rsp), %rbp
	movaps	%xmm0, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	movaps	%xmm0, 80(%rsp)
	movaps	%xmm1, (%rsp)
	movaps	%xmm2, 16(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L8093
# WAS call	edwards25519_scalarmulbase_alt@PLT
	call	.Ledwards25519_scalarmulbase_alt_local_target
.L8090:

	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	edwards25519_encode@PLT
	call	.Ledwards25519_encode_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8094
	addq	$112, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8093:

	.cfi_restore_state
# WAS call	edwards25519_scalarmulbase@PLT
	call	.Ledwards25519_scalarmulbase_local_target
	jmp	.L8090
.L8094:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1448:

	.size	ed25519_public_key_from_hashed_seed_s2n_bignum, .-ed25519_public_key_from_hashed_seed_s2n_bignum
# WAS .section	.text.ed25519_check_public_key_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_check_public_key_s2n_bignum
	.hidden	ed25519_check_public_key_s2n_bignum
	.type	ed25519_check_public_key_s2n_bignum, @function
.Led25519_check_public_key_s2n_bignum_local_target:
ed25519_check_public_key_s2n_bignum:
.LFB1451:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	pxor	%xmm0, %xmm0
	movq	%rdi, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, (%rsp)
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 48(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rdi
	movq	%rbx, %rsi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L8100
# WAS call	edwards25519_decode_alt@PLT
	call	.Ledwards25519_decode_alt_local_target
.L8097:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8101
	addq	$80, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8100:

	.cfi_restore_state
# WAS call	edwards25519_decode@PLT
	call	.Ledwards25519_decode_local_target
	jmp	.L8097
.L8101:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1451:

	.size	ed25519_check_public_key_s2n_bignum, .-ed25519_check_public_key_s2n_bignum
# WAS .section	.rodata.dh_check_params_fast.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC198:

	.string	"/aws-lc/crypto/fipsmodule/dh/check.c"
# WAS .section	.text.dh_check_params_fast,"ax",@progbits
.text
	.p2align 4
	.globl	dh_check_params_fast
	.hidden	dh_check_params_fast
	.type	dh_check_params_fast, @function
.Ldh_check_params_fast_local_target:
dh_check_params_fast:
.LFB1452:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L8105
	movq	(%rbx), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	jne	.L8120
.L8105:

	movl	$68, %r8d
.L8119:

	leaq	.LC198(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$5, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8120:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$10000, %eax
	ja	.L8105
	movq	16(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L8106
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L8109
	movq	(%rbx), %rsi
	movq	16(%rbx), %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jg	.L8109
.L8106:

	movq	8(%rbx), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L8111
	movq	8(%rbx), %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L8121
.L8111:

	movl	$81, %r8d
	jmp	.L8119
	.p2align 4,,10
	.p2align 3
.L8109:

	movl	$74, %r8d
	jmp	.L8119
	.p2align 4,,10
	.p2align 3
.L8121:

	movq	(%rbx), %rsi
	movq	8(%rbx), %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jns	.L8111
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1452:

	.size	dh_check_params_fast, .-dh_check_params_fast
# WAS .section	.text.DH_check_pub_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_check_pub_key
	.type	DH_check_pub_key, @function
.LDH_check_pub_key_local_target:
DH_check_pub_key:
.LFB1453:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	movl	$0, (%rdx)
# WAS call	dh_check_params_fast
	call	.Ldh_check_params_fast_local_target
	testl	%eax, %eax
	jne	.L8123
.L8125:

	xorl	%ebx, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8123:

	.cfi_restore_state
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8125
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	%r13, %rdi
	movq	%rax, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jle	.L8147
.L8126:

	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L8129
	movq	(%r12), %rsi
	movq	%rax, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L8129
	movl	$1, %esi
	movq	%r14, %rdi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	je	.L8129
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L8130
	orl	$2, (%rbx)
.L8130:

	movq	16(%r12), %rdx
	testq	%rdx, %rdx
	je	.L8133
	movq	(%r12), %rcx
	xorl	%r9d, %r9d
	movq	%rbp, %r8
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L8129
	movq	%r14, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L8133
	orl	$4, (%rbx)
	.p2align 4,,10
	.p2align 3
.L8133:

	movl	$1, %ebx
	jmp	.L8128
	.p2align 4,,10
	.p2align 3
.L8129:

	xorl	%ebx, %ebx
.L8128:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8147:

	.cfi_restore_state
	orl	$1, (%rbx)
	jmp	.L8126
	.cfi_endproc
.LFE1453:

	.size	DH_check_pub_key, .-DH_check_pub_key
# WAS .section	.rodata.dh_compute_key.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC199:

	.string	"/aws-lc/crypto/fipsmodule/dh/dh.c"
# WAS .section	.text.dh_compute_key,"ax",@progbits
.text
	.p2align 4
	.type	dh_compute_key, @function
.Ldh_compute_key_local_target:
dh_compute_key:
.LFB1471:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	dh_check_params_fast
	call	.Ldh_check_params_fast_local_target
	testl	%eax, %eax
	je	.L8149
	cmpq	$0, 32(%rbx)
	je	.L8186
	leaq	36(%rsp), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	DH_check_pub_key@PLT
	call	.LDH_check_pub_key_local_target
	testl	%eax, %eax
	je	.L8152
	movl	36(%rsp), %r14d
	testl	%r14d, %r14d
	jne	.L8152
	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L8162
	movq	(%rbx), %rax
	movq	%rax, 24(%rsp)
	leaq	48(%rbx), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_read
	movq	104(%rbx), %rax
	movq	8(%rsp), %rdi
	movq	%rax, 16(%rsp)
# WAS call	CRYPTO_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_read
	movq	16(%rsp), %rax
	testq	%rax, %rax
	je	.L8187
.L8157:

	movq	(%rbx), %rcx
	movq	32(%rbx), %rdx
	movq	%rbp, %r8
	movq	%r12, %rsi
	movq	104(%rbx), %r9
	movq	%r13, %rdi
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	je	.L8163
	movq	(%rbx), %rsi
	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L8163
	movl	$1, %esi
	movq	%r15, %rdi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	je	.L8163
	movl	$1, %esi
	movq	%r13, %rdi
# WAS call	BN_cmp_word@PLT
	call	.LBN_cmp_word_local_target
	testl	%eax, %eax
	jle	.L8165
	movq	%r15, %rsi
	movq	%r13, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	je	.L8165
	movl	$1, %r14d
	.p2align 4,,10
	.p2align 3
.L8162:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L8148:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8188
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8152:

	.cfi_restore_state
	movl	$356, %r8d
	leaq	.LC199(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$5, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8149:

	xorl	%r14d, %r14d
	jmp	.L8148
	.p2align 4,,10
	.p2align 3
.L8163:

	movl	$374, %r8d
	leaq	.LC199(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$5, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8162
	.p2align 4,,10
	.p2align 3
.L8186:

	movl	$350, %r8d
	leaq	.LC199(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$5, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8149
	.p2align 4,,10
	.p2align 3
.L8187:

	movq	8(%rsp), %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	cmpq	$0, 104(%rbx)
	je	.L8189
	movq	8(%rsp), %rdi
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	jmp	.L8157
.L8189:

	movq	24(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	8(%rsp), %rdi
	movq	%rax, 104(%rbx)
	movq	%rax, 16(%rsp)
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	movq	16(%rsp), %rax
	testq	%rax, %rax
	je	.L8162
	jmp	.L8157
	.p2align 4,,10
	.p2align 3
.L8165:

	movl	$381, %r8d
	leaq	.LC199(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$5, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8162
.L8188:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1471:

	.size	dh_compute_key, .-dh_compute_key
# WAS .section	.text.DH_new,"ax",@progbits
.text
	.p2align 4
	.globl	DH_new
	.type	DH_new, @function
.LDH_new_local_target:
DH_new:
.LFB1455:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$120, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L8190
	leaq	48(%rax), %rdi
# WAS call	CRYPTO_MUTEX_init@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_init
	movl	$1, 116(%rbx)
.L8190:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1455:

	.size	DH_new, .-DH_new
# WAS .section	.text.DH_free,"ax",@progbits
.text
	.p2align 4
	.globl	DH_free
	.type	DH_free, @function
.LDH_free_local_target:
DH_free:
.LFB1457:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8204
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	116(%rdi), %rdi
# WAS call	CRYPTO_refcount_dec_and_test_zero@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero
	testl	%eax, %eax
	jne	.L8207
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8207:

	.cfi_restore_state
	movq	104(%rbx), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	(%rbx), %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
	movq	16(%rbx), %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
	movq	24(%rbx), %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
	movq	32(%rbx), %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
	leaq	48(%rbx), %rdi
# WAS call	CRYPTO_MUTEX_cleanup@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_cleanup
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L8204:

	ret
	.cfi_endproc
.LFE1457:

	.size	DH_free, .-DH_free
# WAS .section	.text.DH_bits,"ax",@progbits
.text
	.p2align 4
	.globl	DH_bits
	.type	DH_bits, @function
.LDH_bits_local_target:
DH_bits:
.LFB1458:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdi
# WAS jmp	BN_num_bits@PLT
	jmp	.LBN_num_bits_local_target
	.cfi_endproc
.LFE1458:

	.size	DH_bits, .-DH_bits
# WAS .section	.text.DH_get0_pub_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_pub_key
	.type	DH_get0_pub_key, @function
.LDH_get0_pub_key_local_target:
DH_get0_pub_key:
.LFB1459:

	.cfi_startproc
	endbr64
	movq	24(%rdi), %rax
	ret
	.cfi_endproc
.LFE1459:

	.size	DH_get0_pub_key, .-DH_get0_pub_key
# WAS .section	.text.DH_get0_priv_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_priv_key
	.type	DH_get0_priv_key, @function
.LDH_get0_priv_key_local_target:
DH_get0_priv_key:
.LFB1460:

	.cfi_startproc
	endbr64
	movq	32(%rdi), %rax
	ret
	.cfi_endproc
.LFE1460:

	.size	DH_get0_priv_key, .-DH_get0_priv_key
# WAS .section	.text.DH_get0_p,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_p
	.type	DH_get0_p, @function
.LDH_get0_p_local_target:
DH_get0_p:
.LFB1461:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE1461:

	.size	DH_get0_p, .-DH_get0_p
# WAS .section	.text.DH_get0_q,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_q
	.type	DH_get0_q, @function
.LDH_get0_q_local_target:
DH_get0_q:
.LFB1462:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	ret
	.cfi_endproc
.LFE1462:

	.size	DH_get0_q, .-DH_get0_q
# WAS .section	.text.DH_get0_g,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_g
	.type	DH_get0_g, @function
.LDH_get0_g_local_target:
DH_get0_g:
.LFB1463:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE1463:

	.size	DH_get0_g, .-DH_get0_g
# WAS .section	.text.DH_get0_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_key
	.type	DH_get0_key, @function
.LDH_get0_key_local_target:
DH_get0_key:
.LFB1464:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L8215
	movq	24(%rdi), %rax
	movq	%rax, (%rsi)
.L8215:

	testq	%rdx, %rdx
	je	.L8214
	movq	32(%rdi), %rax
	movq	%rax, (%rdx)
.L8214:

	ret
	.cfi_endproc
.LFE1464:

	.size	DH_get0_key, .-DH_get0_key
# WAS .section	.text.DH_clear_flags,"ax",@progbits
.text
	.p2align 4
	.globl	DH_clear_flags
	.type	DH_clear_flags, @function
.LDH_clear_flags_local_target:
DH_clear_flags:
.LFB3115:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3115:

	.size	DH_clear_flags, .-DH_clear_flags
# WAS .section	.text.DH_set0_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_set0_key
	.type	DH_set0_key, @function
.LDH_set0_key_local_target:
DH_set0_key:
.LFB1466:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	je	.L8225
	movq	24(%rdi), %rdi
	movq	%rsi, %r12
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 24(%rbx)
.L8225:

	testq	%rbp, %rbp
	je	.L8226
	movq	32(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 32(%rbx)
.L8226:

	popq	%rbx
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1466:

	.size	DH_set0_key, .-DH_set0_key
# WAS .section	.text.DH_get0_pqg,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get0_pqg
	.type	DH_get0_pqg, @function
.LDH_get0_pqg_local_target:
DH_get0_pqg:
.LFB1467:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L8235
	movq	(%rdi), %rax
	movq	%rax, (%rsi)
.L8235:

	testq	%rdx, %rdx
	je	.L8236
	movq	16(%rdi), %rax
	movq	%rax, (%rdx)
.L8236:

	testq	%rcx, %rcx
	je	.L8234
	movq	8(%rdi), %rax
	movq	%rax, (%rcx)
.L8234:

	ret
	.cfi_endproc
.LFE1467:

	.size	DH_get0_pqg, .-DH_get0_pqg
# WAS .section	.text.DH_set0_pqg,"ax",@progbits
.text
	.p2align 4
	.globl	DH_set0_pqg
	.type	DH_set0_pqg, @function
.LDH_set0_pqg_local_target:
DH_set0_pqg:
.LFB1468:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L8272
	cmpq	$0, 8(%rbx)
	je	.L8273
	testq	%rsi, %rsi
	jne	.L8250
.L8257:

	testq	%rbp, %rbp
	je	.L8255
.L8256:

	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 16(%rbx)
.L8255:

	testq	%r12, %r12
	jne	.L8254
.L8258:

	movq	104(%rbx), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	$0, 104(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8273:

	.cfi_restore_state
	testq	%rcx, %rcx
	je	.L8261
	testq	%rsi, %rsi
	jne	.L8251
	testq	%rdx, %rdx
	je	.L8253
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 16(%rbx)
	.p2align 4,,10
	.p2align 3
.L8254:

	movq	8(%rbx), %rbp
.L8253:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 8(%rbx)
	jmp	.L8258
	.p2align 4,,10
	.p2align 3
.L8272:

	testq	%rsi, %rsi
	je	.L8261
	cmpq	$0, 8(%rbx)
	je	.L8274
.L8250:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, (%rbx)
	jmp	.L8257
	.p2align 4,,10
	.p2align 3
.L8274:

	testq	%rcx, %rcx
	je	.L8261
.L8251:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, (%rbx)
	testq	%rbp, %rbp
	jne	.L8256
	jmp	.L8254
	.p2align 4,,10
	.p2align 3
.L8261:

	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1468:

	.size	DH_set0_pqg, .-DH_set0_pqg
# WAS .section	.text.calculate_rfc7919_DH_from_p,"ax",@progbits
.text
	.p2align 4
	.type	calculate_rfc7919_DH_from_p, @function
.Lcalculate_rfc7919_DH_from_p_local_target:
calculate_rfc7919_DH_from_p:
.LFB1479:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbx
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r12
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r13
# WAS call	DH_new@PLT
	call	.LDH_new_local_target
	movq	%rax, %rbp
	testq	%rbx, %rbx
	je	.L8279
	testq	%r12, %r12
	je	.L8279
	testq	%r13, %r13
	je	.L8279
	testq	%rax, %rax
	je	.L8279
	movl	20(%rbx), %eax
	testb	$2, %al
	je	.L8291
.L8280:

	orl	$2, %eax
	movd	%r14d, %xmm1
	movq	%r15, (%rbx)
	movq	%rbx, %rsi
	movl	$0, 16(%rbx)
	pshufd	$0xe0, %xmm1, %xmm0
	movq	%r12, %rdi
	movl	%eax, 20(%rbx)
	movq	%xmm0, 8(%rbx)
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L8279
	movl	$2, %esi
	movq	%r13, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	je	.L8279
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	DH_set0_pqg@PLT
	call	.LDH_set0_pqg_local_target
	testl	%eax, %eax
	jne	.L8275
	.p2align 4,,10
	.p2align 3
.L8279:

	movq	%rbx, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
	xorl	%ebp, %ebp
# WAS call	DH_free@PLT
	call	.LDH_free_local_target
.L8275:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8291:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rbx), %eax
	jmp	.L8280
	.cfi_endproc
.LFE1479:

	.size	calculate_rfc7919_DH_from_p, .-calculate_rfc7919_DH_from_p
# WAS .section	.text.DH_set_length,"ax",@progbits
.text
	.p2align 4
	.globl	DH_set_length
	.type	DH_set_length, @function
.LDH_set_length_local_target:
DH_set_length:
.LFB1469:

	.cfi_startproc
	endbr64
	movl	%esi, 40(%rdi)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1469:

	.size	DH_set_length, .-DH_set_length
# WAS .section	.text.DH_compute_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_compute_key
	.type	DH_compute_key, @function
.LDH_compute_key_local_target:
DH_compute_key:
.LFB1474:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
# WAS call	g_self_test_once_ffdh_bss_get@PLT
	call	g_self_test_once_ffdh_bss_get
# WAS leaq	run_self_test_ffdh(%rip), %rsi
	leaq	.Lrun_self_test_ffdh_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	testq	%rax, %rax
	je	.L8298
	movq	%rax, %rbx
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8297
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%rax, %rsi
	movq	%r12, %rdi
# WAS call	dh_compute_key
	call	.Ldh_compute_key_local_target
	testl	%eax, %eax
	jne	.L8303
.L8297:

	movl	$-1, %ebp
.L8296:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L8293:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8303:

	.cfi_restore_state
	movq	%rbp, %rdi
	movq	%r14, %rsi
# WAS call	BN_bn2bin@PLT
	call	.LBN_bn2bin_local_target
	movl	%eax, %ebp
	jmp	.L8296
.L8298:

	movl	$-1, %ebp
	jmp	.L8293
	.cfi_endproc
.LFE1474:

	.size	DH_compute_key, .-DH_compute_key
# WAS .section	.text.DH_size,"ax",@progbits
.text
	.p2align 4
	.globl	DH_size
	.type	DH_size, @function
.LDH_size_local_target:
DH_size:
.LFB1476:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdi
# WAS jmp	BN_num_bytes@PLT
	jmp	.LBN_num_bytes_local_target
	.cfi_endproc
.LFE1476:

	.size	DH_size, .-DH_size
# WAS .section	.text.dh_compute_key_padded_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	dh_compute_key_padded_no_self_test
	.hidden	dh_compute_key_padded_no_self_test
	.type	dh_compute_key_padded_no_self_test, @function
.Ldh_compute_key_padded_no_self_test_local_target:
dh_compute_key_padded_no_self_test:
.LFB1472:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	testq	%rax, %rax
	je	.L8310
	movq	%rax, %rdi
	movq	%rax, %rbx
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L8309
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%rax, %rsi
	movq	%r13, %rdi
# WAS call	dh_compute_key
	call	.Ldh_compute_key_local_target
	testl	%eax, %eax
	jne	.L8318
.L8309:

	movl	$-1, %ebp
.L8308:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L8305:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8318:

	.cfi_restore_state
	movslq	%ebp, %rsi
	movq	%r12, %rdx
	movq	%r15, %rdi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L8309
	jmp	.L8308
.L8310:

	movl	$-1, %ebp
	jmp	.L8305
	.cfi_endproc
.LFE1472:

	.size	dh_compute_key_padded_no_self_test, .-dh_compute_key_padded_no_self_test
# WAS .section	.text.DH_compute_key_padded,"ax",@progbits
.text
	.p2align 4
	.globl	DH_compute_key_padded
	.type	DH_compute_key_padded, @function
.LDH_compute_key_padded_local_target:
DH_compute_key_padded:
.LFB1473:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	g_self_test_once_ffdh_bss_get@PLT
	call	g_self_test_once_ffdh_bss_get
# WAS leaq	run_self_test_ffdh(%rip), %rsi
	leaq	.Lrun_self_test_ffdh_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	testq	%rax, %rax
	je	.L8324
	movq	%rax, %rdi
	movq	%rax, %rbx
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L8323
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%rax, %rsi
	movq	%r13, %rdi
# WAS call	dh_compute_key
	call	.Ldh_compute_key_local_target
	testl	%eax, %eax
	jne	.L8332
.L8323:

	movl	$-1, %ebp
.L8322:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L8319:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8332:

	.cfi_restore_state
	movslq	%ebp, %rsi
	movq	%r12, %rdx
	movq	%r15, %rdi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L8323
	jmp	.L8322
.L8324:

	movl	$-1, %ebp
	jmp	.L8319
	.cfi_endproc
.LFE1473:

	.size	DH_compute_key_padded, .-DH_compute_key_padded
# WAS .section	.text.DH_num_bits,"ax",@progbits
.text
	.p2align 4
	.globl	DH_num_bits
	.type	DH_num_bits, @function
.LDH_num_bits_local_target:
DH_num_bits:
.LFB3133:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdi
# WAS jmp	BN_num_bits@PLT
	jmp	.LBN_num_bits_local_target
	.cfi_endproc
.LFE3133:

	.size	DH_num_bits, .-DH_num_bits
# WAS .section	.text.DH_up_ref,"ax",@progbits
.text
	.p2align 4
	.globl	DH_up_ref
	.type	DH_up_ref, @function
.LDH_up_ref_local_target:
DH_up_ref:
.LFB1478:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	addq	$116, %rdi
# WAS call	CRYPTO_refcount_inc@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_inc
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1478:

	.size	DH_up_ref, .-DH_up_ref
# WAS .section	.text.DH_get_rfc7919_2048,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get_rfc7919_2048
	.type	DH_get_rfc7919_2048, @function
.LDH_get_rfc7919_2048_local_target:
DH_get_rfc7919_2048:
.LFB1480:

	.cfi_startproc
	endbr64
	movl	$32, %esi
# WAS leaq	kFFDHE2048Data.81(%rip), %rdi
	leaq	.LkFFDHE2048Data.81_local_target(%rip), %rdi
# WAS jmp	calculate_rfc7919_DH_from_p
	jmp	.Lcalculate_rfc7919_DH_from_p_local_target
	.cfi_endproc
.LFE1480:

	.size	DH_get_rfc7919_2048, .-DH_get_rfc7919_2048
# WAS .section	.rodata.boringssl_self_test_ffdh.str1.1,"aMS",@progbits,1
.text
.LC201:

	.string	"FFC DH"
.LC202:

	.string	"FFDH failed.\n"
.LC203:

	.string	"FFC DH FB"
.LC204:

	.string	"FFDH FB failed.\n"
# WAS .section	.text.boringssl_self_test_ffdh,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_ffdh, @function
.Lboringssl_self_test_ffdh_local_target:
boringssl_self_test_ffdh:
.LFB2781:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1080, %rsp
	.cfi_def_cfa_offset 1136
	movdqa	.LC205(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 1064(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC206(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC207(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	movdqa	.LC208(%rip), %xmm0
	movaps	%xmm0, 80(%rsp)
	movdqa	.LC209(%rip), %xmm0
	movaps	%xmm0, 96(%rsp)
	movdqa	.LC210(%rip), %xmm0
	movaps	%xmm0, 112(%rsp)
	movdqa	.LC211(%rip), %xmm0
	movaps	%xmm0, 128(%rsp)
	movdqa	.LC212(%rip), %xmm0
	movaps	%xmm0, 144(%rsp)
	movdqa	.LC213(%rip), %xmm0
	movaps	%xmm0, 160(%rsp)
	movdqa	.LC214(%rip), %xmm0
	movaps	%xmm0, 176(%rsp)
	movdqa	.LC215(%rip), %xmm0
	movaps	%xmm0, 192(%rsp)
	movdqa	.LC216(%rip), %xmm0
	movaps	%xmm0, 208(%rsp)
	movdqa	.LC217(%rip), %xmm0
	movaps	%xmm0, 224(%rsp)
	movdqa	.LC218(%rip), %xmm0
	movaps	%xmm0, 240(%rsp)
	movdqa	.LC219(%rip), %xmm0
	movaps	%xmm0, 256(%rsp)
	movdqa	.LC220(%rip), %xmm0
	movaps	%xmm0, 272(%rsp)
	movdqa	.LC221(%rip), %xmm0
	movaps	%xmm0, 288(%rsp)
	movdqa	.LC222(%rip), %xmm0
	movaps	%xmm0, 304(%rsp)
	movdqa	.LC223(%rip), %xmm0
	movaps	%xmm0, 320(%rsp)
	movdqa	.LC224(%rip), %xmm0
	movaps	%xmm0, 336(%rsp)
	movdqa	.LC225(%rip), %xmm0
	movaps	%xmm0, 352(%rsp)
	movdqa	.LC226(%rip), %xmm0
	movaps	%xmm0, 368(%rsp)
	movdqa	.LC227(%rip), %xmm0
	movaps	%xmm0, 384(%rsp)
	movdqa	.LC228(%rip), %xmm0
	movaps	%xmm0, 400(%rsp)
	movdqa	.LC229(%rip), %xmm0
	movaps	%xmm0, 416(%rsp)
	movdqa	.LC230(%rip), %xmm0
	movaps	%xmm0, 432(%rsp)
	movdqa	.LC231(%rip), %xmm0
	movaps	%xmm0, 448(%rsp)
	movdqa	.LC232(%rip), %xmm0
	movaps	%xmm0, 464(%rsp)
	movdqa	.LC233(%rip), %xmm0
	movaps	%xmm0, 480(%rsp)
	movdqa	.LC234(%rip), %xmm0
	movaps	%xmm0, 496(%rsp)
	movdqa	.LC235(%rip), %xmm0
	movaps	%xmm0, 512(%rsp)
	movdqa	.LC236(%rip), %xmm0
	movaps	%xmm0, 528(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L8338
	movl	20(%rax), %eax
	testb	$2, %al
	je	.L8395
.L8339:

	movq	.LC200(%rip), %rdx
# WAS leaq	kFFDHE2048PublicValueData.44(%rip), %rcx
	leaq	.LkFFDHE2048PublicValueData.44_local_target(%rip), %rcx
	orl	$2, %eax
	movl	$0, 16(%rbx)
	movq	%rcx, (%rbx)
	movq	%rdx, 8(%rbx)
	movl	%eax, 20(%rbx)
.L8338:

# WAS call	DH_get_rfc7919_2048@PLT
	call	.LDH_get_rfc7919_2048_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L8340
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8344
	movl	20(%rax), %eax
	testb	$2, %al
	je	.L8396
.L8343:

	movq	.LC88(%rip), %rdx
	orl	$2, %eax
	movq	%r12, %rdi
# WAS leaq	kFFDHE2048PrivateKeyData.42(%rip), %rsi
	leaq	.LkFFDHE2048PrivateKeyData.42_local_target(%rip), %rsi
	movq	%rsi, 0(%rbp)
	xorl	%esi, %esi
	movq	%rdx, 8(%rbp)
	movq	%rbp, %rdx
	movl	$0, 16(%rbp)
	movl	%eax, 20(%rbp)
# WAS call	DH_set0_key@PLT
	call	.LDH_set0_key_local_target
	testl	%eax, %eax
	je	.L8344
	testq	%rbx, %rbx
	je	.L8342
	movq	%r12, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	cmpl	$256, %eax
	je	.L8397
.L8342:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	xorl	%r13d, %r13d
	xorl	%ebp, %ebp
	xorl	%r14d, %r14d
	movl	$13, %edx
	movl	$1, %esi
	leaq	.LC202(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
.L8351:

	movq	%r12, %rdi
# WAS call	DH_free@PLT
	call	.LDH_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	DH_free@PLT
	call	.LDH_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	1064(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8398
	addq	$1080, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8395:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rbx), %eax
	jmp	.L8339
	.p2align 4,,10
	.p2align 3
.L8397:

# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8342
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	movq	%rbp, %rdi
	movl	%eax, %r14d
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L8393
	movq	%rbp, %rcx
	movq	%rbx, %rdx
	movq	%rax, %rsi
	movq	%r12, %rdi
# WAS call	dh_compute_key
	call	.Ldh_compute_key_local_target
	testl	%eax, %eax
	jne	.L8348
.L8393:

	movq	%rbp, %rdi
.L8394:

# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L8342
	.p2align 4,,10
	.p2align 3
.L8396:

	movq	0(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rbp), %eax
	jmp	.L8343
	.p2align 4,,10
	.p2align 3
.L8344:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	DH_free@PLT
	call	.LDH_free_local_target
.L8340:

	xorl	%r12d, %r12d
	jmp	.L8342
	.p2align 4,,10
	.p2align 3
.L8348:

	leaq	544(%rsp), %r15
	movslq	%r14d, %rsi
	movq	%r13, %rdx
	movq	%r15, %rdi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	movq	%rbp, %rdi
	testl	%eax, %eax
	je	.L8394
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	cmpl	$256, %r14d
	jne	.L8342
	leaq	.LC201(%rip), %rcx
	movl	$256, %edx
	movq	%r15, %rsi
# WAS leaq	kDHOutput.43(%rip), %rdi
	leaq	.LkDHOutput.43_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L8342
	leaq	32(%rsp), %rdi
	xorl	%edx, %edx
	movl	$256, %esi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movdqa	.LC237(%rip), %xmm0
	movq	%rax, %r13
	movaps	%xmm0, (%rsp)
	movdqa	.LC238(%rip), %xmm0
	movups	%xmm0, 12(%rsp)
	movdqa	.LC239(%rip), %xmm0
	movaps	%xmm0, 800(%rsp)
	movdqa	.LC240(%rip), %xmm0
	movaps	%xmm0, 816(%rsp)
	movdqa	.LC241(%rip), %xmm0
	movaps	%xmm0, 832(%rsp)
	movdqa	.LC242(%rip), %xmm0
	movaps	%xmm0, 848(%rsp)
	movdqa	.LC243(%rip), %xmm0
	movaps	%xmm0, 864(%rsp)
	movdqa	.LC244(%rip), %xmm0
	movaps	%xmm0, 880(%rsp)
	movdqa	.LC245(%rip), %xmm0
	movaps	%xmm0, 896(%rsp)
	movdqa	.LC246(%rip), %xmm0
	movaps	%xmm0, 912(%rsp)
	movdqa	.LC247(%rip), %xmm0
	movaps	%xmm0, 928(%rsp)
	movdqa	.LC248(%rip), %xmm0
	movaps	%xmm0, 944(%rsp)
	movdqa	.LC249(%rip), %xmm0
	movaps	%xmm0, 960(%rsp)
	movdqa	.LC250(%rip), %xmm0
	movaps	%xmm0, 976(%rsp)
	movdqa	.LC251(%rip), %xmm0
	movaps	%xmm0, 992(%rsp)
	movdqa	.LC252(%rip), %xmm0
	movaps	%xmm0, 1008(%rsp)
	movdqa	.LC253(%rip), %xmm0
	movaps	%xmm0, 1024(%rsp)
	movdqa	.LC254(%rip), %xmm0
	movaps	%xmm0, 1040(%rsp)
# WAS call	DH_new@PLT
	call	.LDH_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8354
	xorl	%edx, %edx
	movl	$256, %esi
# WAS leaq	kDH_p.41(%rip), %rdi
	leaq	.LkDH_p.41_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 0(%rbp)
	testq	%rax, %rax
	je	.L8354
	xorl	%edx, %edx
	movl	$28, %esi
# WAS leaq	kDH_q.40(%rip), %rdi
	leaq	.LkDH_q.40_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 16(%rbp)
	testq	%rax, %rax
	je	.L8354
	xorl	%edx, %edx
	movl	$256, %esi
# WAS leaq	kDH_g.39(%rip), %rdi
	leaq	.LkDH_g.39_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 8(%rbp)
	testq	%rax, %rax
	je	.L8354
	movq	%rsp, %rdi
	xorl	%edx, %edx
	movl	$28, %esi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 32(%rbp)
	testq	%rax, %rax
	je	.L8354
	leaq	800(%rsp), %r14
	xorl	%edx, %edx
	movl	$256, %esi
	movq	%r14, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 24(%rbp)
	testq	%rax, %rax
	je	.L8354
	testq	%r13, %r13
	je	.L8353
	movq	%rbp, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	cmpl	$256, %eax
	je	.L8399
.L8353:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$16, %edx
	movl	$1, %esi
	xorl	%r14d, %r14d
	leaq	.LC204(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L8351
	.p2align 4,,10
	.p2align 3
.L8354:

	movq	%rbp, %rdi
	xorl	%ebp, %ebp
# WAS call	DH_free@PLT
	call	.LDH_free_local_target
	jmp	.L8353
.L8399:

	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	dh_compute_key_padded_no_self_test
	call	.Ldh_compute_key_padded_no_self_test_local_target
	cmpl	$256, %eax
	jne	.L8353
	movq	%r14, %rsi
	movl	$256, %edx
	leaq	288(%rsp), %rdi
	movl	$1, %r14d
	leaq	.LC203(%rip), %rcx
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	jne	.L8351
	jmp	.L8353
.L8398:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2781:

	.size	boringssl_self_test_ffdh, .-boringssl_self_test_ffdh
# WAS .section	.text.unlikely.run_self_test_ffdh,"ax",@progbits
.text
.LCOLDB255:

# WAS .section	.text.run_self_test_ffdh,"ax",@progbits
.text
.LHOTB255:

	.p2align 4
	.type	run_self_test_ffdh, @function
.Lrun_self_test_ffdh_local_target:
run_self_test_ffdh:
.LFB2788:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_ffdh
	call	.Lboringssl_self_test_ffdh_local_target
	testl	%eax, %eax
	je	.L8402
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.run_self_test_ffdh
.text
	.cfi_startproc
	.type	run_self_test_ffdh.cold, @function
.Lrun_self_test_ffdh.cold_local_target:
run_self_test_ffdh.cold:
.LFSB2788:

.L8402:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2788:

# WAS .section	.text.run_self_test_ffdh
.text
	.size	run_self_test_ffdh, .-run_self_test_ffdh
# WAS .section	.text.unlikely.run_self_test_ffdh
.text
	.size	run_self_test_ffdh.cold, .-run_self_test_ffdh.cold
.LCOLDE255:

# WAS .section	.text.run_self_test_ffdh
.text
.LHOTE255:

# WAS .section	.text.DH_get_rfc7919_3072,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get_rfc7919_3072
	.type	DH_get_rfc7919_3072, @function
.LDH_get_rfc7919_3072_local_target:
DH_get_rfc7919_3072:
.LFB1481:

	.cfi_startproc
	endbr64
	movl	$48, %esi
# WAS leaq	kFFDHE3072Data.80(%rip), %rdi
	leaq	.LkFFDHE3072Data.80_local_target(%rip), %rdi
# WAS jmp	calculate_rfc7919_DH_from_p
	jmp	.Lcalculate_rfc7919_DH_from_p_local_target
	.cfi_endproc
.LFE1481:

	.size	DH_get_rfc7919_3072, .-DH_get_rfc7919_3072
# WAS .section	.text.DH_get_rfc7919_4096,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get_rfc7919_4096
	.type	DH_get_rfc7919_4096, @function
.LDH_get_rfc7919_4096_local_target:
DH_get_rfc7919_4096:
.LFB1482:

	.cfi_startproc
	endbr64
	movl	$64, %esi
# WAS leaq	kFFDHE4096Data.79(%rip), %rdi
	leaq	.LkFFDHE4096Data.79_local_target(%rip), %rdi
# WAS jmp	calculate_rfc7919_DH_from_p
	jmp	.Lcalculate_rfc7919_DH_from_p_local_target
	.cfi_endproc
.LFE1482:

	.size	DH_get_rfc7919_4096, .-DH_get_rfc7919_4096
# WAS .section	.text.DH_get_rfc7919_8192,"ax",@progbits
.text
	.p2align 4
	.globl	DH_get_rfc7919_8192
	.type	DH_get_rfc7919_8192, @function
.LDH_get_rfc7919_8192_local_target:
DH_get_rfc7919_8192:
.LFB1483:

	.cfi_startproc
	endbr64
	movl	$128, %esi
# WAS leaq	kFFDHE8192Data.78(%rip), %rdi
	leaq	.LkFFDHE8192Data.78_local_target(%rip), %rdi
# WAS jmp	calculate_rfc7919_DH_from_p
	jmp	.Lcalculate_rfc7919_DH_from_p_local_target
	.cfi_endproc
.LFE1483:

	.size	DH_get_rfc7919_8192, .-DH_get_rfc7919_8192
# WAS .section	.text.DH_new_by_nid,"ax",@progbits
.text
	.p2align 4
	.globl	DH_new_by_nid
	.type	DH_new_by_nid, @function
.LDH_new_by_nid_local_target:
DH_new_by_nid:
.LFB1456:

	.cfi_startproc
	endbr64
	cmpl	$983, %edi
	je	.L8408
	jg	.L8409
	cmpl	$976, %edi
	je	.L8410
	cmpl	$977, %edi
	jne	.L8412
# WAS jmp	DH_get_rfc7919_4096@PLT
	jmp	.LDH_get_rfc7919_4096_local_target
	.p2align 4,,10
	.p2align 3
.L8409:

	cmpl	$984, %edi
	jne	.L8412
# WAS jmp	DH_get_rfc7919_8192@PLT
	jmp	.LDH_get_rfc7919_8192_local_target
	.p2align 4,,10
	.p2align 3
.L8412:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$5, %edi
	movl	$95, %r8d
	leaq	.LC199(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8408:

# WAS jmp	DH_get_rfc7919_3072@PLT
	jmp	.LDH_get_rfc7919_3072_local_target
	.p2align 4,,10
	.p2align 3
.L8410:

# WAS jmp	DH_get_rfc7919_2048@PLT
	jmp	.LDH_get_rfc7919_2048_local_target
	.cfi_endproc
.LFE1456:

	.size	DH_new_by_nid, .-DH_new_by_nid
# WAS .section	.text.EVP_MD_unstable_sha3_enable,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_unstable_sha3_enable
	.type	EVP_MD_unstable_sha3_enable, @function
.LEVP_MD_unstable_sha3_enable_local_target:
EVP_MD_unstable_sha3_enable:
.LFB1592:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE1592:

	.size	EVP_MD_unstable_sha3_enable, .-EVP_MD_unstable_sha3_enable
# WAS .section	.text.EVP_MD_unstable_sha3_is_enabled,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_unstable_sha3_is_enabled
	.type	EVP_MD_unstable_sha3_is_enabled, @function
.LEVP_MD_unstable_sha3_is_enabled_local_target:
EVP_MD_unstable_sha3_is_enabled:
.LFB1593:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1593:

	.size	EVP_MD_unstable_sha3_is_enabled, .-EVP_MD_unstable_sha3_is_enabled
# WAS .section	.text.EVP_MD_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_type
	.type	EVP_MD_type, @function
.LEVP_MD_type_local_target:
EVP_MD_type:
.LFB1594:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	ret
	.cfi_endproc
.LFE1594:

	.size	EVP_MD_type, .-EVP_MD_type
# WAS .section	.text.EVP_MD_nid,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_nid
	.type	EVP_MD_nid, @function
.LEVP_MD_nid_local_target:
EVP_MD_nid:
.LFB1595:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_type@PLT
	jmp	.LEVP_MD_type_local_target
	.cfi_endproc
.LFE1595:

	.size	EVP_MD_nid, .-EVP_MD_nid
# WAS .section	.text.EVP_MD_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_flags
	.type	EVP_MD_flags, @function
.LEVP_MD_flags_local_target:
EVP_MD_flags:
.LFB1596:

	.cfi_startproc
	endbr64
	movl	8(%rdi), %eax
	ret
	.cfi_endproc
.LFE1596:

	.size	EVP_MD_flags, .-EVP_MD_flags
# WAS .section	.text.EVP_MD_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_size
	.type	EVP_MD_size, @function
.LEVP_MD_size_local_target:
EVP_MD_size:
.LFB1597:

	.cfi_startproc
	endbr64
	movl	4(%rdi), %eax
	ret
	.cfi_endproc
.LFE1597:

	.size	EVP_MD_size, .-EVP_MD_size
# WAS .section	.rodata.pkey_hkdf_ctrl.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC256:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_hkdf.c"
# WAS .section	.text.pkey_hkdf_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_ctrl, @function
.Lpkey_hkdf_ctrl_local_target:
pkey_hkdf_ctrl:
.LFB2241:

	.cfi_startproc
	endbr64
	subl	$4110, %esi
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	40(%rdi), %rbp
	cmpl	$4, %esi
	ja	.L8423
	movq	%rcx, %rbx
	leaq	.L8425(%rip), %rcx
	movslq	(%rcx,%rsi,4), %rax
	addq	%rcx, %rax
	notrack jmp	*%rax
# WAS .section	.rodata.pkey_hkdf_ctrl,"a",@progbits
.text
	.align 4
	.align 4
.L8425:

	.long	.L8429-.L8425
	.long	.L8428-.L8425
	.long	.L8427-.L8425
	.long	.L8426-.L8425
	.long	.L8424-.L8425
# WAS .section	.text.pkey_hkdf_ctrl
.text
	.p2align 4,,10
	.p2align 3
.L8426:

	leaq	40(%rbp), %rdx
	leaq	32(%rbp), %rsi
.L8441:

	movq	%rbx, %rdi
# WAS call	CBS_stow@PLT
	call	.Lbcm_redirector_CBS_stow
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
.L8422:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8424:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	CBS_len@PLT
	call	.Lbcm_redirector_CBS_len
	movq	%rbx, %rdi
	movq	%rax, %r12
# WAS call	CBS_data@PLT
	call	.Lbcm_redirector_CBS_data
	leaq	48(%rbp), %rdi
	movq	%r12, %rdx
	movq	%rax, %rsi
# WAS call	CBB_add_bytes@PLT
	call	.Lbcm_redirector_CBB_add_bytes
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	testl	%eax, %eax
	popq	%r12
	.cfi_def_cfa_offset 8
	setne	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L8429:

	.cfi_restore_state
	movl	$149, %r8d
	cmpl	$2, %edx
	ja	.L8440
	movl	%edx, 0(%rbp)
.L8432:

	movl	$1, %eax
	jmp	.L8422
	.p2align 4,,10
	.p2align 3
.L8428:

	testq	%rbx, %rbx
	je	.L8435
	movq	%rbx, %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	testq	%rax, %rax
	je	.L8435
	movq	%rbx, 8(%rbp)
	jmp	.L8432
	.p2align 4,,10
	.p2align 3
.L8427:

	leaq	24(%rbp), %rdx
	leaq	16(%rbp), %rsi
	jmp	.L8441
.L8423:

	movl	$185, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8422
	.p2align 4,,10
	.p2align 3
.L8435:

	movl	$156, %r8d
.L8440:

	leaq	.LC256(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8422
	.cfi_endproc
.LFE2241:

	.size	pkey_hkdf_ctrl, .-pkey_hkdf_ctrl
# WAS .section	.text.sskdf_variant_digest_output_size,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_digest_output_size, @function
.Lsskdf_variant_digest_output_size_local_target:
sskdf_variant_digest_output_size:
.LFB2389:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8442
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L8442
	movq	(%rax), %rdi
# WAS jmp	EVP_MD_size@PLT
	jmp	.LEVP_MD_size_local_target
	.p2align 4,,10
	.p2align 3
.L8442:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2389:

	.size	sskdf_variant_digest_output_size, .-sskdf_variant_digest_output_size
# WAS .section	.text.EVP_MD_block_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_block_size
	.type	EVP_MD_block_size, @function
.LEVP_MD_block_size_local_target:
EVP_MD_block_size:
.LFB1598:

	.cfi_startproc
	endbr64
	movl	40(%rdi), %eax
	ret
	.cfi_endproc
.LFE1598:

	.size	EVP_MD_block_size, .-EVP_MD_block_size
# WAS .section	.text.EVP_MD_CTX_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_init
	.type	EVP_MD_CTX_init, @function
.LEVP_MD_CTX_init_local_target:
EVP_MD_CTX_init:
.LFB1599:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	ret
	.cfi_endproc
.LFE1599:

	.size	EVP_MD_CTX_init, .-EVP_MD_CTX_init
# WAS .section	.text.EVP_MD_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_new
	.type	EVP_MD_CTX_new, @function
.LEVP_MD_CTX_new_local_target:
EVP_MD_CTX_new:
.LFB1600:

	.cfi_startproc
	endbr64
	movl	$48, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE1600:

	.size	EVP_MD_CTX_new, .-EVP_MD_CTX_new
# WAS .section	.text.EVP_MD_CTX_create,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_create
	.type	EVP_MD_CTX_create, @function
.LEVP_MD_CTX_create_local_target:
EVP_MD_CTX_create:
.LFB1601:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_CTX_new@PLT
	jmp	.LEVP_MD_CTX_new_local_target
	.cfi_endproc
.LFE1601:

	.size	EVP_MD_CTX_create, .-EVP_MD_CTX_create
# WAS .section	.text.EVP_MD_CTX_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_cleanup
	.type	EVP_MD_CTX_cleanup, @function
.LEVP_MD_CTX_cleanup_local_target:
EVP_MD_CTX_cleanup:
.LFB1602:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8462
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	32(%rbx), %rax
	testq	%rax, %rax
	je	.L8454
	testb	$4, 41(%rbx)
	jne	.L8454
	movq	24(%rbx), %rdi
	call	*(%rax)
.L8454:

	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8462:

	.cfi_restore 3
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1602:

	.size	EVP_MD_CTX_cleanup, .-EVP_MD_CTX_cleanup
# WAS .section	.text.EVP_MD_CTX_cleanse,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_cleanse
	.type	EVP_MD_CTX_cleanse, @function
.LEVP_MD_CTX_cleanse_local_target:
EVP_MD_CTX_cleanse:
.LFB1603:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8477
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L8465
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L8465
	movl	44(%rax), %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_MD_CTX_cleanup@PLT
	jmp	.LEVP_MD_CTX_cleanup_local_target
	.p2align 4,,10
	.p2align 3
.L8465:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8477:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE1603:

	.size	EVP_MD_CTX_cleanse, .-EVP_MD_CTX_cleanse
# WAS .section	.text.EVP_MD_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_free
	.type	EVP_MD_CTX_free, @function
.LEVP_MD_CTX_free_local_target:
EVP_MD_CTX_free:
.LFB1604:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8480
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L8480:

	ret
	.cfi_endproc
.LFE1604:

	.size	EVP_MD_CTX_free, .-EVP_MD_CTX_free
# WAS .section	.text.EVP_MD_CTX_destroy,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_destroy
	.type	EVP_MD_CTX_destroy, @function
.LEVP_MD_CTX_destroy_local_target:
EVP_MD_CTX_destroy:
.LFB1605:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_CTX_free@PLT
	jmp	.LEVP_MD_CTX_free_local_target
	.cfi_endproc
.LFE1605:

	.size	EVP_MD_CTX_destroy, .-EVP_MD_CTX_destroy
# WAS .section	.rodata.EVP_DigestFinalXOF.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC257:

	.string	"/aws-lc/crypto/fipsmodule/digest/digest.c"
# WAS .section	.text.EVP_DigestFinalXOF,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestFinalXOF
	.type	EVP_DigestFinalXOF, @function
.LEVP_DigestFinalXOF_local_target:
EVP_DigestFinalXOF:
.LFB1606:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L8487
	movq	%rsi, %rbp
	movq	%rdx, %r12
# WAS call	EVP_MD_flags@PLT
	call	.LEVP_MD_flags_local_target
	testb	$4, %al
	je	.L8494
	movq	(%rbx), %rax
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*48(%rax)
	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8494:

	.cfi_restore_state
	movl	$143, %r8d
	leaq	.LC257(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$29, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8487:

	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1606:

	.size	EVP_DigestFinalXOF, .-EVP_DigestFinalXOF
# WAS .section	.text.EVP_MD_meth_get_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_meth_get_flags
	.type	EVP_MD_meth_get_flags, @function
.LEVP_MD_meth_get_flags_local_target:
EVP_MD_meth_get_flags:
.LFB1607:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_flags@PLT
	jmp	.LEVP_MD_flags_local_target
	.cfi_endproc
.LFE1607:

	.size	EVP_MD_meth_get_flags, .-EVP_MD_meth_get_flags
# WAS .section	.text.EVP_MD_CTX_set_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_set_flags
	.type	EVP_MD_CTX_set_flags, @function
.LEVP_MD_CTX_set_flags_local_target:
EVP_MD_CTX_set_flags:
.LFB1608:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE1608:

	.size	EVP_MD_CTX_set_flags, .-EVP_MD_CTX_set_flags
# WAS .section	.text.EVP_MD_CTX_copy_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_copy_ex
	.type	EVP_MD_CTX_copy_ex, @function
.LEVP_MD_CTX_copy_ex_local_target:
EVP_MD_CTX_copy_ex:
.LFB1609:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L8498
	movq	24(%rsi), %rbp
	movq	%rdi, %r13
	movq	%rsi, %rbx
	testq	%rbp, %rbp
	je	.L8527
	movq	32(%rsi), %rax
	movq	%rbp, %rdi
	call	*8(%rax)
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L8501
	movq	(%rbx), %r12
	testq	%r12, %r12
	je	.L8504
.L8500:

	cmpq	%r12, 0(%r13)
	je	.L8505
	movl	44(%r12), %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L8528
.L8504:

	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	movq	(%rbx), %rax
	movq	%r12, %xmm1
	movq	%rax, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 0(%r13)
	testq	%rax, %rax
	je	.L8507
	movq	8(%rbx), %rsi
	testq	%rsi, %rsi
	je	.L8507
	movl	44(%rax), %edx
	testq	%rdx, %rdx
	jne	.L8529
.L8507:

	movq	16(%rbx), %rax
	movq	%rbp, %xmm0
	movhps	32(%rbx), %xmm0
	movq	%rax, 16(%r13)
	movq	40(%rbx), %rax
	movups	%xmm0, 24(%r13)
	andb	$-5, %ah
	movq	%rax, 40(%r13)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8505:

	.cfi_restore_state
	movq	8(%r13), %r12
	movq	$0, 8(%r13)
	jmp	.L8504
	.p2align 4,,10
	.p2align 3
.L8527:

	movq	(%rsi), %r12
	testq	%r12, %r12
	jne	.L8500
.L8498:

	movl	$159, %r8d
	leaq	.LC257(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$29, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8501:

	xorl	%eax, %eax
.L8530:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8529:

	.cfi_restore_state
	movq	%r12, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L8507
	.p2align 4,,10
	.p2align 3
.L8528:

	testq	%rbp, %rbp
	je	.L8501
	movq	32(%rbx), %rax
	movq	%rbp, %rdi
	call	*(%rax)
	xorl	%eax, %eax
	jmp	.L8530
	.cfi_endproc
.LFE1609:

	.size	EVP_MD_CTX_copy_ex, .-EVP_MD_CTX_copy_ex
# WAS .section	.text.EVP_MD_CTX_move,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_move
	.type	EVP_MD_CTX_move, @function
.LEVP_MD_CTX_move_local_target:
EVP_MD_CTX_move:
.LFB1610:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	movdqu	(%rbx), %xmm0
	movq	%rbx, %rdi
	movups	%xmm0, 0(%rbp)
	movdqu	16(%rbx), %xmm1
	movups	%xmm1, 16(%rbp)
	movdqu	32(%rbx), %xmm2
	movups	%xmm2, 32(%rbp)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_MD_CTX_init@PLT
	jmp	.LEVP_MD_CTX_init_local_target
	.cfi_endproc
.LFE1610:

	.size	EVP_MD_CTX_move, .-EVP_MD_CTX_move
# WAS .section	.text.EVP_MD_CTX_copy,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_copy
	.type	EVP_MD_CTX_copy, @function
.LEVP_MD_CTX_copy_local_target:
EVP_MD_CTX_copy:
.LFB1611:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_MD_CTX_copy_ex@PLT
	jmp	.LEVP_MD_CTX_copy_ex_local_target
	.cfi_endproc
.LFE1611:

	.size	EVP_MD_CTX_copy, .-EVP_MD_CTX_copy
# WAS .section	.text.EVP_MD_CTX_reset,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_reset
	.type	EVP_MD_CTX_reset, @function
.LEVP_MD_CTX_reset_local_target:
EVP_MD_CTX_reset:
.LFB1612:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1612:

	.size	EVP_MD_CTX_reset, .-EVP_MD_CTX_reset
# WAS .section	.text.EVP_DigestUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestUpdate
	.type	EVP_DigestUpdate, @function
.LEVP_DigestUpdate_local_target:
EVP_DigestUpdate:
.LFB1615:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L8539
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	call	*%rax
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8539:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1615:

	.size	EVP_DigestUpdate, .-EVP_DigestUpdate
# WAS .section	.text.EVP_DigestFinal_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestFinal_ex
	.type	EVP_DigestFinal_ex, @function
.LEVP_DigestFinal_ex_local_target:
EVP_DigestFinal_ex:
.LFB1616:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L8545
	movq	%rsi, %rbp
	movq	%rdx, %r12
# WAS call	EVP_MD_flags@PLT
	call	.LEVP_MD_flags_local_target
	testb	$4, %al
	jne	.L8554
	movq	(%rbx), %rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*32(%rax)
	movq	(%rbx), %rax
	testq	%r12, %r12
	je	.L8549
	movl	4(%rax), %edx
	movl	%edx, (%r12)
.L8549:

	movl	44(%rax), %esi
	movq	8(%rbx), %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8554:

	.cfi_restore_state
	movl	$285, %r8d
	leaq	.LC257(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$29, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8545:

	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1616:

	.size	EVP_DigestFinal_ex, .-EVP_DigestFinal_ex
# WAS .section	.text.EVP_DigestFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestFinal
	.type	EVP_DigestFinal, @function
.LEVP_DigestFinal_local_target:
EVP_DigestFinal:
.LFB1617:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1617:

	.size	EVP_DigestFinal, .-EVP_DigestFinal
# WAS .section	.text.EVP_MD_CTX_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_md
	.type	EVP_MD_CTX_md, @function
.LEVP_MD_CTX_md_local_target:
EVP_MD_CTX_md:
.LFB1619:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8559
	movq	(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L8559:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1619:

	.size	EVP_MD_CTX_md, .-EVP_MD_CTX_md
# WAS .section	.text.EVP_MD_CTX_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_size
	.type	EVP_MD_CTX_size, @function
.LEVP_MD_CTX_size_local_target:
EVP_MD_CTX_size:
.LFB1620:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	EVP_MD_size@PLT
	jmp	.LEVP_MD_size_local_target
	.cfi_endproc
.LFE1620:

	.size	EVP_MD_CTX_size, .-EVP_MD_CTX_size
# WAS .section	.text.EVP_MD_CTX_block_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_block_size
	.type	EVP_MD_CTX_block_size, @function
.LEVP_MD_CTX_block_size_local_target:
EVP_MD_CTX_block_size:
.LFB1621:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	EVP_MD_block_size@PLT
	jmp	.LEVP_MD_block_size_local_target
	.cfi_endproc
.LFE1621:

	.size	EVP_MD_CTX_block_size, .-EVP_MD_CTX_block_size
# WAS .section	.text.EVP_MD_CTX_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_type
	.type	EVP_MD_CTX_type, @function
.LEVP_MD_CTX_type_local_target:
EVP_MD_CTX_type:
.LFB1622:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	EVP_MD_type@PLT
	jmp	.LEVP_MD_type_local_target
	.cfi_endproc
.LFE1622:

	.size	EVP_MD_CTX_type, .-EVP_MD_CTX_type
# WAS .section	.text.EVP_add_digest,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_add_digest
	.type	EVP_add_digest, @function
.LEVP_add_digest_local_target:
EVP_add_digest:
.LFB1623:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE1623:

	.size	EVP_add_digest, .-EVP_add_digest
# WAS .section	.text.EVP_md4,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_md4
	.type	EVP_md4, @function
.LEVP_md4_local_target:
EVP_md4:
.LFB1636:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md4_once_bss_get@PLT
	call	EVP_md4_once_bss_get
# WAS leaq	EVP_md4_init(%rip), %rsi
	leaq	.LEVP_md4_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_md4_storage_bss_get@PLT
	jmp	EVP_md4_storage_bss_get
	.cfi_endproc
.LFE1636:

	.size	EVP_md4, .-EVP_md4
# WAS .section	.text.EVP_md5,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_md5
	.type	EVP_md5, @function
.LEVP_md5_local_target:
EVP_md5:
.LFB1642:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md5_once_bss_get@PLT
	call	EVP_md5_once_bss_get
# WAS leaq	EVP_md5_init(%rip), %rsi
	leaq	.LEVP_md5_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_md5_storage_bss_get@PLT
	jmp	EVP_md5_storage_bss_get
	.cfi_endproc
.LFE1642:

	.size	EVP_md5, .-EVP_md5
# WAS .section	.text.EVP_ripemd160,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_ripemd160
	.type	EVP_ripemd160, @function
.LEVP_ripemd160_local_target:
EVP_ripemd160:
.LFB1648:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_ripemd160_once_bss_get@PLT
	call	EVP_ripemd160_once_bss_get
# WAS leaq	EVP_ripemd160_init(%rip), %rsi
	leaq	.LEVP_ripemd160_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_ripemd160_storage_bss_get@PLT
	jmp	EVP_ripemd160_storage_bss_get
	.cfi_endproc
.LFE1648:

	.size	EVP_ripemd160, .-EVP_ripemd160
# WAS .section	.text.EVP_sha1,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha1
	.type	EVP_sha1, @function
.LEVP_sha1_local_target:
EVP_sha1:
.LFB1654:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha1_once_bss_get@PLT
	call	EVP_sha1_once_bss_get
# WAS leaq	EVP_sha1_init(%rip), %rsi
	leaq	.LEVP_sha1_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha1_storage_bss_get@PLT
	jmp	EVP_sha1_storage_bss_get
	.cfi_endproc
.LFE1654:

	.size	EVP_sha1, .-EVP_sha1
# WAS .section	.rodata.pkey_rsa_ctrl.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC258:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_rsa.c"
# WAS .section	.text.pkey_rsa_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_ctrl, @function
.Lpkey_rsa_ctrl_local_target:
pkey_rsa_ctrl:
.LFB2294:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	40(%rdi), %rbp
	cmpl	$4108, %esi
	jg	.L8576
	movq	%rcx, %r12
	cmpl	$4096, %esi
	jle	.L8669
	movl	%edx, %ebx
	leal	-4098(%rsi), %edx
	cmpl	$10, %edx
	ja	.L8580
	leaq	.L8582(%rip), %rcx
	movslq	(%rcx,%rdx,4), %rdx
	addq	%rcx, %rdx
	notrack jmp	*%rdx
# WAS .section	.rodata.pkey_rsa_ctrl,"a",@progbits
.text
	.align 4
	.align 4
.L8582:

	.long	.L8589-.L8582
	.long	.L8588-.L8582
	.long	.L8588-.L8582
	.long	.L8587-.L8582
	.long	.L8586-.L8582
	.long	.L8585-.L8582
	.long	.L8585-.L8582
	.long	.L8584-.L8582
	.long	.L8584-.L8582
	.long	.L8583-.L8582
	.long	.L8581-.L8582
# WAS .section	.text.pkey_rsa_ctrl
.text
	.p2align 4,,10
	.p2align 3
.L8669:

	cmpl	$1, %esi
	je	.L8578
	cmpl	$2, %esi
	jne	.L8576
.L8616:

	movq	24(%rbp), %rax
	movq	%rax, (%r12)
	.p2align 4,,10
	.p2align 3
.L8599:

	movl	$1, %eax
.L8575:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8588:

	.cfi_restore_state
	cmpl	$6, 16(%rbp)
	movl	$523, %r8d
	jne	.L8668
	cmpl	$4100, %esi
	je	.L8670
	cmpl	$-2, %ebx
	jl	.L8596
	movslq	44(%rbp), %r12
	cmpl	$-1, %r12d
	je	.L8602
	cmpl	$-1, %ebx
	je	.L8671
	testl	%ebx, %ebx
	js	.L8602
	cmpl	%r12d, %ebx
	jge	.L8602
.L8604:

	movl	$544, %r8d
	.p2align 4,,10
	.p2align 3
.L8668:

	leaq	.LC258(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8596:

	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8585:

	cmpl	$4, 16(%rbp)
	movl	$576, %r8d
	jne	.L8666
	cmpl	$4104, %esi
	je	.L8616
.L8610:

	movq	%r12, 24(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8584:

	movl	16(%rbp), %edx
	movl	$607, %r8d
	andl	$-3, %edx
	cmpl	$4, %edx
	jne	.L8667
	movq	32(%rbp), %rdx
	cmpl	$4106, %esi
	jne	.L8615
	testq	%rdx, %rdx
	je	.L8616
	movq	%rdx, (%r12)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8578:

	testq	%rcx, %rcx
	setne	%dl
	cmpl	$3, 16(%rbp)
	jne	.L8609
	movl	$474, %r8d
	testb	%dl, %dl
	jne	.L8666
.L8609:

	movq	(%rdi), %rax
	movq	24(%rbp), %rcx
	cmpl	$912, (%rax)
	jne	.L8610
	cmpl	$-1, 44(%rbp)
	je	.L8610
	testq	%rcx, %rcx
	je	.L8613
	testb	%dl, %dl
	je	.L8613
	movq	%rcx, %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	%r12, %rdi
	movl	%eax, %ebx
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %ebx
	je	.L8610
	.p2align 4,,10
	.p2align 3
.L8613:

	movl	$593, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$500, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8581:

	cmpl	$4, 16(%rbp)
	je	.L8622
	movl	$641, %r8d
.L8666:

	leaq	.LC258(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8583:

	cmpl	$4, 16(%rbp)
	movl	$629, %r8d
	jne	.L8666
	movq	56(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	(%r12), %rax
	movq	%rax, 56(%rbp)
	movq	8(%r12), %rax
	movq	%rax, 64(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8589:

	movl	16(%rbp), %eax
	movl	%eax, (%r12)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8587:

	cmpl	$255, %ebx
	jle	.L8672
	movl	%ebx, 0(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8586:

	movl	$562, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8580:

	cmpl	$6, %ebx
	ja	.L8665
	movl	$90, %eax
	btq	%rbx, %rax
	jnc	.L8665
	movq	24(%rbp), %rax
	cmpl	$3, %ebx
	jne	.L8591
	testq	%rax, %rax
	jne	.L8673
.L8591:

	cmpl	$6, %ebx
	je	.L8674
	cmpl	$4, %ebx
	jne	.L8594
	testb	$-64, 32(%rdi)
	je	.L8665
	movq	(%rdi), %rdx
	cmpl	$912, (%rdx)
	jne	.L8593
.L8623:

	movl	$506, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8674:

	testb	$24, 32(%rdi)
	jne	.L8593
	.p2align 4,,10
	.p2align 3
.L8665:

	leaq	.LC258(%rip), %rcx
.L8590:

	movl	$502, %r8d
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8576:

	movl	$648, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8622:

	movq	64(%rbp), %rdx
	movq	56(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	CBS_init@PLT
	call	.Lbcm_redirector_CBS_init
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8615:

	movq	(%rdi), %rax
	cmpl	$912, (%rax)
	jne	.L8617
	cmpl	$-1, 44(%rbp)
	jne	.L8675
.L8617:

	movq	%r12, 32(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8670:

	movl	40(%rbp), %eax
	movl	%eax, (%r12)
	jmp	.L8599
.L8675:

	testq	%rdx, %rdx
	je	.L8620
	testq	%r12, %r12
	je	.L8620
	movq	%rdx, %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	%r12, %rdi
	movl	%eax, %ebx
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %ebx
	je	.L8617
.L8620:

	movl	$620, %r8d
.L8667:

	leaq	.LC258(%rip), %rcx
	movl	$113, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
.L8671:

	movq	24(%rbp), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpq	%r12, %rax
	jb	.L8604
	.p2align 4,,10
	.p2align 3
.L8602:

	movl	%ebx, 40(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8672:

	movl	$554, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8575
	.p2align 4,,10
	.p2align 3
.L8593:

	testq	%rax, %rax
	je	.L8676
.L8598:

	movl	%ebx, 16(%rbp)
	jmp	.L8599
	.p2align 4,,10
	.p2align 3
.L8594:

	movq	(%rdi), %rax
	cmpl	$912, (%rax)
	jne	.L8598
	jmp	.L8623
	.p2align 4,,10
	.p2align 3
.L8673:

	leaq	.LC258(%rip), %rcx
	movl	$474, %r8d
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movq	%rcx, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %rcx
	jmp	.L8590
.L8676:

# WAS call	EVP_sha1@PLT
	call	.LEVP_sha1_local_target
	movq	%rax, 24(%rbp)
	jmp	.L8598
	.cfi_endproc
.LFE2294:

	.size	pkey_rsa_ctrl, .-pkey_rsa_ctrl
# WAS .section	.text.EVP_sha224,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha224
	.type	EVP_sha224, @function
.LEVP_sha224_local_target:
EVP_sha224:
.LFB1660:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha224_once_bss_get@PLT
	call	EVP_sha224_once_bss_get
# WAS leaq	EVP_sha224_init(%rip), %rsi
	leaq	.LEVP_sha224_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha224_storage_bss_get@PLT
	jmp	EVP_sha224_storage_bss_get
	.cfi_endproc
.LFE1660:

	.size	EVP_sha224, .-EVP_sha224
# WAS .section	.text.EVP_sha256,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha256
	.type	EVP_sha256, @function
.LEVP_sha256_local_target:
EVP_sha256:
.LFB1666:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha256_once_bss_get@PLT
	call	EVP_sha256_once_bss_get
# WAS leaq	EVP_sha256_init(%rip), %rsi
	leaq	.LEVP_sha256_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha256_storage_bss_get@PLT
	jmp	EVP_sha256_storage_bss_get
	.cfi_endproc
.LFE1666:

	.size	EVP_sha256, .-EVP_sha256
# WAS .section	.text.EVP_sha384,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha384
	.type	EVP_sha384, @function
.LEVP_sha384_local_target:
EVP_sha384:
.LFB1672:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha384_once_bss_get@PLT
	call	EVP_sha384_once_bss_get
# WAS leaq	EVP_sha384_init(%rip), %rsi
	leaq	.LEVP_sha384_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha384_storage_bss_get@PLT
	jmp	EVP_sha384_storage_bss_get
	.cfi_endproc
.LFE1672:

	.size	EVP_sha384, .-EVP_sha384
# WAS .section	.text.EVP_sha512,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha512
	.type	EVP_sha512, @function
.LEVP_sha512_local_target:
EVP_sha512:
.LFB1678:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_once_bss_get@PLT
	call	EVP_sha512_once_bss_get
# WAS leaq	EVP_sha512_init(%rip), %rsi
	leaq	.LEVP_sha512_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha512_storage_bss_get@PLT
	jmp	EVP_sha512_storage_bss_get
	.cfi_endproc
.LFE1678:

	.size	EVP_sha512, .-EVP_sha512
# WAS .section	.text.EVP_sha512_224,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha512_224
	.type	EVP_sha512_224, @function
.LEVP_sha512_224_local_target:
EVP_sha512_224:
.LFB1684:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_224_once_bss_get@PLT
	call	EVP_sha512_224_once_bss_get
# WAS leaq	EVP_sha512_224_init(%rip), %rsi
	leaq	.LEVP_sha512_224_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha512_224_storage_bss_get@PLT
	jmp	EVP_sha512_224_storage_bss_get
	.cfi_endproc
.LFE1684:

	.size	EVP_sha512_224, .-EVP_sha512_224
# WAS .section	.text.EVP_sha512_256,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha512_256
	.type	EVP_sha512_256, @function
.LEVP_sha512_256_local_target:
EVP_sha512_256:
.LFB1690:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha512_256_once_bss_get@PLT
	call	EVP_sha512_256_once_bss_get
# WAS leaq	EVP_sha512_256_init(%rip), %rsi
	leaq	.LEVP_sha512_256_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha512_256_storage_bss_get@PLT
	jmp	EVP_sha512_256_storage_bss_get
	.cfi_endproc
.LFE1690:

	.size	EVP_sha512_256, .-EVP_sha512_256
# WAS .section	.text.AWSLC_hmac_in_place_methods_init,"ax",@progbits
.text
	.p2align 4
	.type	AWSLC_hmac_in_place_methods_init, @function
.LAWSLC_hmac_in_place_methods_init_local_target:
AWSLC_hmac_in_place_methods_init:
.LFB2362:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	AWSLC_hmac_in_place_methods_storage_bss_get@PLT
	call	AWSLC_hmac_in_place_methods_storage_bss_get
	leaq	8(%rax), %rdi
	movq	%rax, %rcx
	movq	%rax, %rbx
	movq	$0, (%rax)
	movq	$0, 440(%rax)
	andq	$-8, %rdi
	xorl	%eax, %eax
	subq	%rdi, %rcx
	addl	$448, %ecx
	shrl	$3, %ecx
	rep stosq
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA256_Init(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA256_Init_local_target(%rip), %rdx
# WAS leaq	AWS_LC_TRAMPOLINE_SHA256_Final(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_SHA256_Final_local_target(%rip), %rsi
	movq	$32, 8(%rbx)
	movq	%rax, (%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA256_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA256_Update_local_target(%rip), %rax
	movq	%rdx, %xmm0
	movq	%rax, %xmm1
# WAS leaq	AWS_LC_TRAMPOLINE_SHA256_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA256_Init_from_state_local_target(%rip), %rax
	movq	%rax, %xmm2
	punpcklqdq	%xmm1, %xmm0
# WAS leaq	AWS_LC_TRAMPOLINE_SHA256_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA256_get_state_local_target(%rip), %rax
	movups	%xmm0, 16(%rbx)
	movq	%rsi, %xmm0
	movq	%rax, 48(%rbx)
	punpcklqdq	%xmm2, %xmm0
	movups	%xmm0, 32(%rbx)
# WAS call	EVP_sha1@PLT
	call	.LEVP_sha1_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA1_Init(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA1_Init_local_target(%rip), %rdx
# WAS leaq	AWS_LC_TRAMPOLINE_SHA1_Final(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_SHA1_Final_local_target(%rip), %rsi
	movq	$20, 64(%rbx)
	movq	%rax, 56(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA1_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA1_Update_local_target(%rip), %rax
	movq	%rdx, %xmm0
	movq	%rax, %xmm3
# WAS leaq	AWS_LC_TRAMPOLINE_SHA1_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA1_Init_from_state_local_target(%rip), %rax
	movq	%rax, %xmm4
	punpcklqdq	%xmm3, %xmm0
# WAS leaq	AWS_LC_TRAMPOLINE_SHA1_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA1_get_state_local_target(%rip), %rax
	movups	%xmm0, 72(%rbx)
	movq	%rsi, %xmm0
	movq	%rax, 104(%rbx)
	punpcklqdq	%xmm4, %xmm0
	movups	%xmm0, 88(%rbx)
# WAS call	EVP_sha384@PLT
	call	.LEVP_sha384_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA384_Init(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA384_Init_local_target(%rip), %rdx
# WAS leaq	AWS_LC_TRAMPOLINE_SHA384_Final(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_SHA384_Final_local_target(%rip), %rsi
	movq	$64, 120(%rbx)
	movq	%rax, 112(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA384_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA384_Update_local_target(%rip), %rax
	movq	%rdx, %xmm0
	movq	%rax, %xmm5
# WAS leaq	AWS_LC_TRAMPOLINE_SHA384_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA384_Init_from_state_local_target(%rip), %rax
	movq	%rax, %xmm6
	punpcklqdq	%xmm5, %xmm0
# WAS leaq	AWS_LC_TRAMPOLINE_SHA384_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA384_get_state_local_target(%rip), %rax
	movups	%xmm0, 128(%rbx)
	movq	%rsi, %xmm0
	movq	%rax, 160(%rbx)
	punpcklqdq	%xmm6, %xmm0
	movups	%xmm0, 144(%rbx)
# WAS call	EVP_sha512@PLT
	call	.LEVP_sha512_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_Init(%rip), %rdi
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_Init_local_target(%rip), %rdi
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_Final(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_Final_local_target(%rip), %rdx
	movq	$64, 176(%rbx)
	movq	%rax, 168(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_Update_local_target(%rip), %rax
	movq	%rdi, %xmm0
	movq	%rax, %xmm7
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_Init_from_state_local_target(%rip), %rax
	movq	%rax, %xmm1
	punpcklqdq	%xmm7, %xmm0
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_get_state_local_target(%rip), %rax
	movups	%xmm0, 184(%rbx)
	movq	%rdx, %xmm0
	movq	%rax, 216(%rbx)
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, 200(%rbx)
# WAS call	EVP_md5@PLT
	call	.LEVP_md5_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_MD5_Init(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_MD5_Init_local_target(%rip), %rsi
# WAS leaq	AWS_LC_TRAMPOLINE_MD5_Final(%rip), %rdi
	leaq	.LAWS_LC_TRAMPOLINE_MD5_Final_local_target(%rip), %rdi
	movq	$16, 232(%rbx)
	movq	%rax, 224(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_MD5_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_MD5_Update_local_target(%rip), %rax
	movq	%rsi, %xmm0
	movq	%rax, %xmm2
# WAS leaq	AWS_LC_TRAMPOLINE_MD5_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_MD5_Init_from_state_local_target(%rip), %rax
	punpcklqdq	%xmm2, %xmm0
	movq	%rax, %xmm3
# WAS leaq	AWS_LC_TRAMPOLINE_MD5_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_MD5_get_state_local_target(%rip), %rax
	movups	%xmm0, 240(%rbx)
	movq	%rdi, %xmm0
	movq	%rax, 272(%rbx)
	punpcklqdq	%xmm3, %xmm0
	movups	%xmm0, 256(%rbx)
# WAS call	EVP_sha224@PLT
	call	.LEVP_sha224_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA224_Init(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA224_Init_local_target(%rip), %rdx
# WAS leaq	AWS_LC_TRAMPOLINE_SHA224_Final(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_SHA224_Final_local_target(%rip), %rsi
	movq	$32, 288(%rbx)
	movq	%rax, 280(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA224_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA224_Update_local_target(%rip), %rax
	movq	%rdx, %xmm0
	movq	%rax, %xmm4
# WAS leaq	AWS_LC_TRAMPOLINE_SHA224_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA224_Init_from_state_local_target(%rip), %rax
	punpcklqdq	%xmm4, %xmm0
	movq	%rax, %xmm5
# WAS leaq	AWS_LC_TRAMPOLINE_SHA224_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA224_get_state_local_target(%rip), %rax
	movups	%xmm0, 296(%rbx)
	movq	%rsi, %xmm0
	movq	%rax, 328(%rbx)
	punpcklqdq	%xmm5, %xmm0
	movups	%xmm0, 312(%rbx)
# WAS call	EVP_sha512_224@PLT
	call	.LEVP_sha512_224_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_224_Init(%rip), %rdi
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_224_Init_local_target(%rip), %rdi
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_224_Final(%rip), %rdx
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_224_Final_local_target(%rip), %rdx
	movq	$64, 344(%rbx)
	movq	%rax, 336(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_224_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_224_Update_local_target(%rip), %rax
	movq	%rdi, %xmm0
	movq	%rax, %xmm6
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_224_Init_from_state_local_target(%rip), %rax
	punpcklqdq	%xmm6, %xmm0
	movq	%rax, %xmm7
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_224_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_224_get_state_local_target(%rip), %rax
	movups	%xmm0, 352(%rbx)
	movq	%rdx, %xmm0
	movq	%rax, 384(%rbx)
	punpcklqdq	%xmm7, %xmm0
	movups	%xmm0, 368(%rbx)
# WAS call	EVP_sha512_256@PLT
	call	.LEVP_sha512_256_local_target
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_256_Init(%rip), %rsi
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_256_Init_local_target(%rip), %rsi
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_256_Final(%rip), %rdi
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_256_Final_local_target(%rip), %rdi
	movq	$64, 400(%rbx)
	movq	%rax, 392(%rbx)
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_256_Update(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_256_Update_local_target(%rip), %rax
	movq	%rsi, %xmm0
	movq	%rax, %xmm1
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_256_Init_from_state_local_target(%rip), %rax
	punpcklqdq	%xmm1, %xmm0
	movq	%rax, %xmm2
# WAS leaq	AWS_LC_TRAMPOLINE_SHA512_256_get_state(%rip), %rax
	leaq	.LAWS_LC_TRAMPOLINE_SHA512_256_get_state_local_target(%rip), %rax
	movups	%xmm0, 408(%rbx)
	movq	%rdi, %xmm0
	punpcklqdq	%xmm2, %xmm0
	movq	%rax, 440(%rbx)
	movups	%xmm0, 424(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2362:

	.size	AWSLC_hmac_in_place_methods_init, .-AWSLC_hmac_in_place_methods_init
# WAS .section	.text.EVP_sha3_224,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha3_224
	.type	EVP_sha3_224, @function
.LEVP_sha3_224_local_target:
EVP_sha3_224:
.LFB1696:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_224_once_bss_get@PLT
	call	EVP_sha3_224_once_bss_get
# WAS leaq	EVP_sha3_224_init(%rip), %rsi
	leaq	.LEVP_sha3_224_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha3_224_storage_bss_get@PLT
	jmp	EVP_sha3_224_storage_bss_get
	.cfi_endproc
.LFE1696:

	.size	EVP_sha3_224, .-EVP_sha3_224
# WAS .section	.text.EVP_sha3_256,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha3_256
	.type	EVP_sha3_256, @function
.LEVP_sha3_256_local_target:
EVP_sha3_256:
.LFB1702:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_256_once_bss_get@PLT
	call	EVP_sha3_256_once_bss_get
# WAS leaq	EVP_sha3_256_init(%rip), %rsi
	leaq	.LEVP_sha3_256_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha3_256_storage_bss_get@PLT
	jmp	EVP_sha3_256_storage_bss_get
	.cfi_endproc
.LFE1702:

	.size	EVP_sha3_256, .-EVP_sha3_256
# WAS .section	.text.EVP_sha3_384,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha3_384
	.type	EVP_sha3_384, @function
.LEVP_sha3_384_local_target:
EVP_sha3_384:
.LFB1708:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_384_once_bss_get@PLT
	call	EVP_sha3_384_once_bss_get
# WAS leaq	EVP_sha3_384_init(%rip), %rsi
	leaq	.LEVP_sha3_384_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha3_384_storage_bss_get@PLT
	jmp	EVP_sha3_384_storage_bss_get
	.cfi_endproc
.LFE1708:

	.size	EVP_sha3_384, .-EVP_sha3_384
# WAS .section	.text.EVP_sha3_512,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_sha3_512
	.type	EVP_sha3_512, @function
.LEVP_sha3_512_local_target:
EVP_sha3_512:
.LFB1714:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_sha3_512_once_bss_get@PLT
	call	EVP_sha3_512_once_bss_get
# WAS leaq	EVP_sha3_512_init(%rip), %rsi
	leaq	.LEVP_sha3_512_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_sha3_512_storage_bss_get@PLT
	jmp	EVP_sha3_512_storage_bss_get
	.cfi_endproc
.LFE1714:

	.size	EVP_sha3_512, .-EVP_sha3_512
# WAS .section	.text.EVP_shake128,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_shake128
	.type	EVP_shake128, @function
.LEVP_shake128_local_target:
EVP_shake128:
.LFB1720:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_shake128_once_bss_get@PLT
	call	EVP_shake128_once_bss_get
# WAS leaq	EVP_shake128_init(%rip), %rsi
	leaq	.LEVP_shake128_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_shake128_storage_bss_get@PLT
	jmp	EVP_shake128_storage_bss_get
	.cfi_endproc
.LFE1720:

	.size	EVP_shake128, .-EVP_shake128
# WAS .section	.text.EVP_shake256,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_shake256
	.type	EVP_shake256, @function
.LEVP_shake256_local_target:
EVP_shake256:
.LFB1726:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_shake256_once_bss_get@PLT
	call	EVP_shake256_once_bss_get
# WAS leaq	EVP_shake256_init(%rip), %rsi
	leaq	.LEVP_shake256_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_shake256_storage_bss_get@PLT
	jmp	EVP_shake256_storage_bss_get
	.cfi_endproc
.LFE1726:

	.size	EVP_shake256, .-EVP_shake256
# WAS .section	.text.EVP_md5_sha1,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_md5_sha1
	.type	EVP_md5_sha1, @function
.LEVP_md5_sha1_local_target:
EVP_md5_sha1:
.LFB1732:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_md5_sha1_once_bss_get@PLT
	call	EVP_md5_sha1_once_bss_get
# WAS leaq	EVP_md5_sha1_init(%rip), %rsi
	leaq	.LEVP_md5_sha1_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_md5_sha1_storage_bss_get@PLT
	jmp	EVP_md5_sha1_storage_bss_get
	.cfi_endproc
.LFE1732:

	.size	EVP_md5_sha1, .-EVP_md5_sha1
# WAS .section	.text.ECDSA_SIG_free,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_free
	.type	ECDSA_SIG_free, @function
.LECDSA_SIG_free_local_target:
ECDSA_SIG_free:
.LFB1738:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8705
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L8705:

	ret
	.cfi_endproc
.LFE1738:

	.size	ECDSA_SIG_free, .-ECDSA_SIG_free
# WAS .section	.text.ECDSA_SIG_new,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_new
	.type	ECDSA_SIG_new, @function
.LECDSA_SIG_new_local_target:
ECDSA_SIG_new:
.LFB1737:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L8711
	movq	%rax, %rbx
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, (%rbx)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	cmpq	$0, (%rbx)
	movq	%rax, 8(%rbx)
	je	.L8714
	testq	%rax, %rax
	je	.L8714
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8714:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
.L8711:

	xorl	%ebx, %ebx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1737:

	.size	ECDSA_SIG_new, .-ECDSA_SIG_new
# WAS .section	.text.ECDSA_SIG_get0_r,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_get0_r
	.type	ECDSA_SIG_get0_r, @function
.LECDSA_SIG_get0_r_local_target:
ECDSA_SIG_get0_r:
.LFB1739:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE1739:

	.size	ECDSA_SIG_get0_r, .-ECDSA_SIG_get0_r
# WAS .section	.text.ECDSA_SIG_get0_s,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_get0_s
	.type	ECDSA_SIG_get0_s, @function
.LECDSA_SIG_get0_s_local_target:
ECDSA_SIG_get0_s:
.LFB1740:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE1740:

	.size	ECDSA_SIG_get0_s, .-ECDSA_SIG_get0_s
# WAS .section	.text.ECDSA_SIG_get0,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_get0
	.type	ECDSA_SIG_get0, @function
.LECDSA_SIG_get0_local_target:
ECDSA_SIG_get0:
.LFB1741:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L8725
	movq	(%rdi), %rax
	movq	%rax, (%rsi)
.L8725:

	testq	%rdx, %rdx
	je	.L8724
	movq	8(%rdi), %rax
	movq	%rax, (%rdx)
.L8724:

	ret
	.cfi_endproc
.LFE1741:

	.size	ECDSA_SIG_get0, .-ECDSA_SIG_get0
# WAS .section	.text.ECDSA_SIG_set0,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_SIG_set0
	.type	ECDSA_SIG_set0, @function
.LECDSA_SIG_set0_local_target:
ECDSA_SIG_set0:
.LFB1742:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L8737
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	xorl	%eax, %eax
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%rdx, %rdx
	je	.L8733
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	movq	%rsi, %rbp
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, (%rbx)
	movl	$1, %eax
	movq	%r12, 8(%rbx)
.L8733:

	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8737:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1742:

	.size	ECDSA_SIG_set0, .-ECDSA_SIG_set0
# WAS .section	.text.EC_group_p224,"ax",@progbits
.text
	.p2align 4
	.globl	EC_group_p224
	.type	EC_group_p224, @function
.LEC_group_p224_local_target:
EC_group_p224:
.LFB1757:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_group_p224_once_bss_get@PLT
	call	EC_group_p224_once_bss_get
# WAS leaq	EC_group_p224_init(%rip), %rsi
	leaq	.LEC_group_p224_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_group_p224_storage_bss_get@PLT
	jmp	EC_group_p224_storage_bss_get
	.cfi_endproc
.LFE1757:

	.size	EC_group_p224, .-EC_group_p224
# WAS .section	.text.EC_group_p256,"ax",@progbits
.text
	.p2align 4
	.globl	EC_group_p256
	.type	EC_group_p256, @function
.LEC_group_p256_local_target:
EC_group_p256:
.LFB1760:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_group_p256_once_bss_get@PLT
	call	EC_group_p256_once_bss_get
# WAS leaq	EC_group_p256_init(%rip), %rsi
	leaq	.LEC_group_p256_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_group_p256_storage_bss_get@PLT
	jmp	EC_group_p256_storage_bss_get
	.cfi_endproc
.LFE1760:

	.size	EC_group_p256, .-EC_group_p256
# WAS .section	.text.EC_group_p384,"ax",@progbits
.text
	.p2align 4
	.globl	EC_group_p384
	.type	EC_group_p384, @function
.LEC_group_p384_local_target:
EC_group_p384:
.LFB1763:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_group_p384_once_bss_get@PLT
	call	EC_group_p384_once_bss_get
# WAS leaq	EC_group_p384_init(%rip), %rsi
	leaq	.LEC_group_p384_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_group_p384_storage_bss_get@PLT
	jmp	EC_group_p384_storage_bss_get
	.cfi_endproc
.LFE1763:

	.size	EC_group_p384, .-EC_group_p384
# WAS .section	.text.EC_group_p521,"ax",@progbits
.text
	.p2align 4
	.globl	EC_group_p521
	.type	EC_group_p521, @function
.LEC_group_p521_local_target:
EC_group_p521:
.LFB1766:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_group_p521_once_bss_get@PLT
	call	EC_group_p521_once_bss_get
# WAS leaq	EC_group_p521_init(%rip), %rsi
	leaq	.LEC_group_p521_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_group_p521_storage_bss_get@PLT
	jmp	EC_group_p521_storage_bss_get
	.cfi_endproc
.LFE1766:

	.size	EC_group_p521, .-EC_group_p521
# WAS .section	.text.EC_group_secp256k1,"ax",@progbits
.text
	.p2align 4
	.globl	EC_group_secp256k1
	.type	EC_group_secp256k1, @function
.LEC_group_secp256k1_local_target:
EC_group_secp256k1:
.LFB1769:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_group_secp256k1_once_bss_get@PLT
	call	EC_group_secp256k1_once_bss_get
# WAS leaq	EC_group_secp256k1_init(%rip), %rsi
	leaq	.LEC_group_secp256k1_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_group_secp256k1_storage_bss_get@PLT
	jmp	EC_group_secp256k1_storage_bss_get
	.cfi_endproc
.LFE1769:

	.size	EC_group_secp256k1, .-EC_group_secp256k1
# WAS .section	.rodata.EC_GROUP_new_by_curve_name.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC259:

	.string	"/aws-lc/crypto/fipsmodule/ec/ec.c"
# WAS .section	.text.EC_GROUP_new_by_curve_name,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_new_by_curve_name
	.type	EC_GROUP_new_by_curve_name, @function
.LEC_GROUP_new_by_curve_name_local_target:
EC_GROUP_new_by_curve_name:
.LFB1773:

	.cfi_startproc
	endbr64
	cmpl	$714, %edi
	je	.L8752
	jle	.L8761
	cmpl	$715, %edi
	je	.L8757
	cmpl	$716, %edi
	jne	.L8756
# WAS jmp	EC_group_p521@PLT
	jmp	.LEC_group_p521_local_target
	.p2align 4,,10
	.p2align 3
.L8761:

	cmpl	$415, %edi
	je	.L8754
	cmpl	$713, %edi
	jne	.L8756
# WAS jmp	EC_group_p224@PLT
	jmp	.LEC_group_p224_local_target
	.p2align 4,,10
	.p2align 3
.L8756:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$123, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$389, %r8d
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8754:

# WAS jmp	EC_group_p256@PLT
	jmp	.LEC_group_p256_local_target
	.p2align 4,,10
	.p2align 3
.L8757:

# WAS jmp	EC_group_p384@PLT
	jmp	.LEC_group_p384_local_target
	.p2align 4,,10
	.p2align 3
.L8752:

# WAS jmp	EC_group_secp256k1@PLT
	jmp	.LEC_group_secp256k1_local_target
	.cfi_endproc
.LFE1773:

	.size	EC_GROUP_new_by_curve_name, .-EC_GROUP_new_by_curve_name
# WAS .section	.rodata.pkey_ec_ctrl.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC260:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_ec.c"
# WAS .section	.text.pkey_ec_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_ctrl, @function
.Lpkey_ec_ctrl_local_target:
pkey_ec_ctrl:
.LFB2221:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpl	$3, %esi
	je	.L8763
	movq	40(%rdi), %rbx
	jg	.L8764
	movq	%rcx, %rbp
	cmpl	$1, %esi
	je	.L8765
	cmpl	$2, %esi
	jne	.L8767
	movq	(%rbx), %rax
	movq	%rax, (%rcx)
.L8763:

	movl	$1, %eax
.L8762:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8764:

	.cfi_restore_state
	cmpl	$4109, %esi
	jne	.L8767
	movl	%edx, %edi
# WAS call	EC_GROUP_new_by_curve_name@PLT
	call	.LEC_GROUP_new_by_curve_name_local_target
	testq	%rax, %rax
	je	.L8770
	movq	%rax, 8(%rbx)
	jmp	.L8763
	.p2align 4,,10
	.p2align 3
.L8767:

	movl	$224, %r8d
	leaq	.LC260(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8770:

	xorl	%eax, %eax
	jmp	.L8762
	.p2align 4,,10
	.p2align 3
.L8765:

	movq	%rcx, %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	$64, %eax
	je	.L8769
	cmpl	$675, %eax
	je	.L8769
	leal	-672(%rax), %edx
	cmpl	$2, %edx
	jbe	.L8769
	movl	%eax, %edx
	andl	$-17, %edx
	cmpl	$962, %edx
	je	.L8769
	subl	$965, %eax
	cmpl	$3, %eax
	jbe	.L8769
	movl	$199, %r8d
	leaq	.LC260(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8762
	.p2align 4,,10
	.p2align 3
.L8769:

	movq	%rbp, (%rbx)
	jmp	.L8763
	.cfi_endproc
.LFE2221:

	.size	pkey_ec_ctrl, .-pkey_ec_ctrl
# WAS .section	.text.EC_GROUP_free,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_free
	.type	EC_GROUP_free, @function
.LEC_GROUP_free_local_target:
EC_GROUP_free:
.LFB1774:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8794
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	512(%rdi), %eax
	movq	%rdi, %rbx
	testl	%eax, %eax
	je	.L8797
.L8786:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8797:

	.cfi_restore_state
	leaq	540(%rdi), %rdi
# WAS call	CRYPTO_refcount_dec_and_test_zero@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero
	testl	%eax, %eax
	je	.L8786
	leaq	232(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	leaq	256(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	leaq	296(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	leaq	320(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L8794:

	ret
	.cfi_endproc
.LFE1774:

	.size	EC_GROUP_free, .-EC_GROUP_free
# WAS .section	.text.EC_GROUP_dup,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_dup
	.type	EC_GROUP_dup, @function
.LEC_GROUP_dup_local_target:
EC_GROUP_dup:
.LFB1775:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	testq	%rdi, %rdi
	je	.L8799
	movl	512(%rdi), %eax
	testl	%eax, %eax
	je	.L8804
.L8799:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8804:

	.cfi_restore_state
	leaq	540(%rdi), %rdi
# WAS call	CRYPTO_refcount_inc@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_inc
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1775:

	.size	EC_GROUP_dup, .-EC_GROUP_dup
# WAS .section	.text.EC_GROUP_get0_generator,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get0_generator
	.type	EC_GROUP_get0_generator, @function
.LEC_GROUP_get0_generator_local_target:
EC_GROUP_get0_generator:
.LFB1777:

	.cfi_startproc
	endbr64
	movl	532(%rdi), %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	je	.L8805
	leaq	8(%rdi), %rax
.L8805:

	ret
	.cfi_endproc
.LFE1777:

	.size	EC_GROUP_get0_generator, .-EC_GROUP_get0_generator
# WAS .section	.text.EC_GROUP_get0_order,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get0_order
	.type	EC_GROUP_get0_order, @function
.LEC_GROUP_get0_order_local_target:
EC_GROUP_get0_order:
.LFB1778:

	.cfi_startproc
	endbr64
	leaq	256(%rdi), %rax
	ret
	.cfi_endproc
.LFE1778:

	.size	EC_GROUP_get0_order, .-EC_GROUP_get0_order
# WAS .section	.text.EC_GROUP_get_order,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_order
	.type	EC_GROUP_get_order, @function
.LEC_GROUP_get_order_local_target:
EC_GROUP_get_order:
.LFB1779:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	%rbx, %rdi
	movq	%rax, %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	popq	%rbx
	.cfi_def_cfa_offset 8
	testq	%rax, %rax
	setne	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE1779:

	.size	EC_GROUP_get_order, .-EC_GROUP_get_order
# WAS .section	.text.EC_GROUP_order_bits,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_order_bits
	.type	EC_GROUP_order_bits, @function
.LEC_GROUP_order_bits_local_target:
EC_GROUP_order_bits:
.LFB1780:

	.cfi_startproc
	endbr64
	addq	$256, %rdi
# WAS jmp	BN_num_bits@PLT
	jmp	.LBN_num_bits_local_target
	.cfi_endproc
.LFE1780:

	.size	EC_GROUP_order_bits, .-EC_GROUP_order_bits
# WAS .section	.text.EC_GROUP_get_cofactor,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_cofactor
	.type	EC_GROUP_get_cofactor, @function
.LEC_GROUP_get_cofactor_local_target:
EC_GROUP_get_cofactor:
.LFB1781:

	.cfi_startproc
	endbr64
	movq	%rsi, %rdi
	movl	$1, %esi
# WAS jmp	BN_set_word@PLT
	jmp	.LBN_set_word_local_target
	.cfi_endproc
.LFE1781:

	.size	EC_GROUP_get_cofactor, .-EC_GROUP_get_cofactor
# WAS .section	.text.EC_GROUP_get_curve_GFp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_curve_GFp
	.type	EC_GROUP_get_curve_GFp, @function
.LEC_GROUP_get_curve_GFp_local_target:
EC_GROUP_get_curve_GFp:
.LFB1782:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L8817
	movq	%rsi, %rdi
	leaq	320(%rbx), %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L8820
.L8817:

	testq	%rbp, %rbp
	je	.L8816
	movq	(%rbx), %rax
	leaq	16(%rsp), %r13
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%r13, %rsi
	leaq	360(%rbx), %rcx
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%rbp, %rdx
	movq	%r13, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L8820
.L8816:

	movl	$1, %eax
	testq	%r12, %r12
	je	.L8813
	movq	(%rbx), %rax
	leaq	16(%rsp), %rbp
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	leaq	432(%rbx), %rcx
	movq	%rbp, %rsi
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	setne	%al
	movzbl	%al, %eax
.L8813:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8826
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8820:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L8813
.L8826:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1782:

	.size	EC_GROUP_get_curve_GFp, .-EC_GROUP_get_curve_GFp
# WAS .section	.text.EC_GROUP_get_curve_name,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_curve_name
	.type	EC_GROUP_get_curve_name, @function
.LEC_GROUP_get_curve_name_local_target:
EC_GROUP_get_curve_name:
.LFB1783:

	.cfi_startproc
	endbr64
	movl	512(%rdi), %eax
	ret
	.cfi_endproc
.LFE1783:

	.size	EC_GROUP_get_curve_name, .-EC_GROUP_get_curve_name
# WAS .section	.text.EC_GROUP_get_degree,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_degree
	.type	EC_GROUP_get_degree, @function
.LEC_GROUP_get_degree_local_target:
EC_GROUP_get_degree:
.LFB1784:

	.cfi_startproc
	endbr64
	addq	$320, %rdi
# WAS jmp	BN_num_bits@PLT
	jmp	.LBN_num_bits_local_target
	.cfi_endproc
.LFE1784:

	.size	EC_GROUP_get_degree, .-EC_GROUP_get_degree
# WAS .section	.text.ec_GFp_mont_init_precomp,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_init_precomp
	.hidden	ec_GFp_mont_init_precomp
	.type	ec_GFp_mont_init_precomp, @function
.Lec_GFp_mont_init_precomp_local_target:
ec_GFp_mont_init_precomp:
.LFB2099:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$2648, %rsp
	.cfi_def_cfa_offset 6800
	movq	%fs:40, %rax
	movq	%rax, 6728(%rsp)
	xorl	%eax, %eax
	movq	%rdx, %r12
	movq	%rsi, %rbx
	movq	%rdi, %rbp
# WAS call	EC_GROUP_get_degree@PLT
	call	.LEC_GROUP_get_degree_local_target
	movdqu	(%r12), %xmm0
	movdqu	16(%r12), %xmm1
	movl	$1, 8(%rsp)
	leal	4(%rax), %r14d
	movl	$3435973837, %eax
	movdqu	32(%r12), %xmm2
	movdqu	48(%r12), %xmm3
	movdqu	64(%r12), %xmm4
	movq	%r14, %rcx
	imulq	%rax, %r14
	movq	208(%r12), %rax
	movdqu	80(%r12), %xmm5
	movdqu	96(%r12), %xmm6
	movaps	%xmm0, 32(%rsp)
	movdqu	112(%r12), %xmm7
	movaps	%xmm1, 48(%rsp)
	movdqu	128(%r12), %xmm0
	movdqu	144(%r12), %xmm1
	movaps	%xmm2, 64(%rsp)
	movdqu	160(%r12), %xmm2
	shrq	$34, %r14
	movaps	%xmm3, 80(%rsp)
	movdqu	176(%r12), %xmm3
	movaps	%xmm4, 96(%rsp)
	movdqu	192(%r12), %xmm4
	movq	%rax, 240(%rsp)
	leaq	32(%rsp), %rax
	movq	%r14, 16(%rsp)
	movq	%rax, (%rsp)
	movl	%ecx, 12(%rsp)
	movaps	%xmm5, 112(%rsp)
	movaps	%xmm6, 128(%rsp)
	movaps	%xmm7, 144(%rsp)
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm1, 176(%rsp)
	movaps	%xmm2, 192(%rsp)
	movaps	%xmm3, 208(%rsp)
	movaps	%xmm4, 224(%rsp)
	movq	%rbx, 24(%rsp)
.L8833:

	movzbl	8(%rsp), %ecx
	movl	$1, %r12d
	movq	%rbp, %rdi
	movl	$1, %r13d
	sall	%cl, %r12d
	movq	(%rsp), %rcx
	leal	-1(%r12), %eax
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,8), %rbx
	movl	%r12d, %eax
	shrl	%eax
	movq	%rbx, %rsi
	subl	$1, %eax
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%rcx,%rax,8), %rdx
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	cmpl	$9, 12(%rsp)
	movl	16(%rsp), %r14d
	jbe	.L8832
	.p2align 4,,10
	.p2align 3
.L8830:

	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	addl	$1, %r13d
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	cmpl	%r14d, %r13d
	jb	.L8830
.L8832:

	movslq	%r12d, %rdx
	movq	(%rsp), %r14
	movl	$1, %r15d
	leaq	(%rdx,%rdx,2), %rdx
	leaq	(%rdx,%rdx,8), %r13
	salq	$3, %r13
	.p2align 4,,10
	.p2align 3
.L8831:

	leaq	(%r14,%r13), %rsi
	movq	%r14, %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	addl	$1, %r15d
	addq	$216, %r14
	cmpl	%r12d, %r15d
	jb	.L8831
	addl	$1, 8(%rsp)
	movl	8(%rsp), %eax
	cmpl	$5, %eax
	jne	.L8833
	movq	0(%rbp), %rax
	movq	24(%rsp), %rbx
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L8844
	movq	(%rsp), %rdx
	movl	$31, %ecx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	call	*%rax
.L8829:

	movq	6728(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8845
	addq	$6744, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L8844:

	.cfi_restore_state
	movl	$654, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L8829
.L8845:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2099:

	.size	ec_GFp_mont_init_precomp, .-ec_GFp_mont_init_precomp
# WAS .section	.text.ec_GFp_mont_get_comb_window,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_mont_get_comb_window, @function
.Lec_GFp_mont_get_comb_window_local_target:
ec_GFp_mont_get_comb_window:
.LFB2100:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%r8d, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movslq	264(%rdi), %r15
# WAS call	EC_GROUP_get_degree@PLT
	call	.LEC_GROUP_get_degree_local_target
	movl	$3435973837, %edx
	xorl	%r9d, %r9d
	addl	$4, %eax
	imulq	%rdx, %rax
	movl	%r12d, %edx
	shrq	$6, %rdx
	shrq	$34, %rax
	cmpq	%r15, %rdx
	jnb	.L8847
	movq	(%r14,%rdx,8), %r9
	movl	%r12d, %ecx
	shrq	%cl, %r9
	andl	$1, %r9d
.L8847:

	leal	(%rax,%r12), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%r15, %rdx
	jnb	.L8848
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	addl	%edx, %edx
	andl	$2, %edx
	orl	%edx, %r9d
.L8848:

	leal	(%rcx,%rax), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%r15, %rdx
	jnb	.L8849
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$2, %edx
	andl	$4, %edx
	orl	%edx, %r9d
.L8849:

	leal	(%rcx,%rax), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%r15, %rdx
	jnb	.L8850
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$3, %edx
	andl	$8, %edx
	orl	%edx, %r9d
.L8850:

	addl	%ecx, %eax
	movq	%rax, %rcx
	shrq	$6, %rax
	cmpq	%r15, %rax
	jnb	.L8851
	movq	(%r14,%rax,8), %rax
	shrq	%cl, %rax
	sall	$4, %eax
	andl	$16, %eax
	orl	%eax, %r9d
.L8851:

	movl	$27, %ecx
	xorl	%eax, %eax
	movq	%rbx, %rdi
	xorl	%r10d, %r10d
	rep stosq
	leaq	72(%r13), %rdi
	movslq	328(%rbp), %r8
	.p2align 4,,10
	.p2align 3
.L8853:

	addl	$1, %r10d
	leaq	-72(%rdi), %r14
	movl	%r10d, %eax
	xorl	%r9d, %eax
	movq	%rax, %rsi
	subq	$1, %rax
	notq	%rsi
	andq	%rax, %rsi
	xorl	%eax, %eax
	sarq	$63, %rsi
	movq	%rsi, %r11
	notq	%r11
	testq	%r8, %r8
	je	.L8857
	movq	%rsi, %r13
	movq	%r11, %r12
	.p2align 4,,10
	.p2align 3
.L8855:

	movq	(%r14,%rax,8), %rdx
	movq	(%rbx,%rax,8), %rcx
	andq	%r13, %rdx
	andq	%r12, %rcx
	orq	%rcx, %rdx
	movq	%rax, %rcx
	movq	%rdx, (%rbx,%rax,8)
	leaq	1(%rax), %rax
	cmpq	%rax, %r8
	jne	.L8855
	xorl	%eax, %eax
	movq	%r11, %r12
	.p2align 4,,10
	.p2align 3
.L8856:

	movq	(%rdi,%rax,8), %rdx
	movq	72(%rbx,%rax,8), %r11
	andq	%rsi, %rdx
	andq	%r12, %r11
	orq	%r11, %rdx
	movq	%rdx, 72(%rbx,%rax,8)
	movq	%rax, %rdx
	addq	$1, %rax
	cmpq	%rcx, %rdx
	jne	.L8856
.L8857:

	addq	$144, %rdi
	cmpl	$31, %r10d
	jne	.L8853
	movq	%r9, %rcx
	subq	$1, %r9
	xorl	%eax, %eax
	notq	%rcx
	andq	%r9, %rcx
	sarq	$63, %rcx
	movq	%rcx, %rdi
	notq	%rdi
	testq	%r8, %r8
	je	.L8846
	.p2align 4,,10
	.p2align 3
.L8859:

	movq	144(%rbx,%rax,8), %rdx
	movq	160(%rbp,%rax,8), %rsi
	andq	%rcx, %rdx
	andq	%rdi, %rsi
	orq	%rsi, %rdx
	movq	%rdx, 144(%rbx,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L8859
.L8846:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2100:

	.size	ec_GFp_mont_get_comb_window, .-ec_GFp_mont_get_comb_window
# WAS .section	.text.ec_GFp_mont_mul_precomp,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_mul_precomp
	.hidden	ec_GFp_mont_mul_precomp
	.type	ec_GFp_mont_mul_precomp, @function
.Lec_GFp_mont_mul_precomp_local_target:
ec_GFp_mont_mul_precomp:
.LFB2101:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	336(%rsp), %rbp
	movq	344(%rsp), %rcx
	movq	%rdx, 8(%rsp)
	movq	%r8, 16(%rsp)
	movq	%r9, 24(%rsp)
	movq	%rbp, 32(%rsp)
	movq	%rcx, 40(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
# WAS call	EC_GROUP_get_degree@PLT
	call	.LEC_GROUP_get_degree_local_target
	leal	4(%rax), %r13d
	movl	$3435973837, %eax
	imulq	%rax, %r13
	shrq	$34, %r13
	movl	%r13d, %eax
	addl	$-1, %eax
	jnc	.L8874
	testq	%rbp, %rbp
	je	.L8898
	movq	8(%rsp), %rdx
	leaq	48(%rsp), %rbp
	movl	%eax, %r8d
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%eax, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movdqa	48(%rsp), %xmm1
	movq	112(%rsp), %rax
	movdqa	64(%rsp), %xmm2
	movdqa	80(%rsp), %xmm3
	movdqa	96(%rsp), %xmm4
	movdqu	120(%rsp), %xmm5
	movups	%xmm1, (%r14)
	movq	184(%rsp), %rdx
	movups	%xmm2, 16(%r14)
	movdqu	136(%rsp), %xmm6
	movdqu	152(%rsp), %xmm7
	movups	%xmm3, 32(%r14)
	movdqu	168(%rsp), %xmm0
	movdqa	192(%rsp), %xmm1
	movq	%rdx, 136(%r14)
	movdqa	208(%rsp), %xmm2
	movq	256(%rsp), %rdx
	movups	%xmm4, 48(%r14)
	movdqa	224(%rsp), %xmm3
	movq	%rax, 64(%r14)
	movdqa	240(%rsp), %xmm4
	movq	%rdx, 208(%r14)
	movups	%xmm5, 72(%r14)
	movups	%xmm6, 88(%r14)
	movups	%xmm7, 104(%r14)
	movups	%xmm0, 120(%r14)
	movups	%xmm1, 144(%r14)
	movups	%xmm2, 160(%r14)
	movups	%xmm3, 176(%r14)
	movups	%xmm4, 192(%r14)
	jmp	.L8886
	.p2align 4,,10
	.p2align 3
.L8899:

	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%r12d, %r8d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L8886:

	movq	16(%rsp), %rdx
	movl	%r12d, %r8d
	testq	%rdx, %rdx
	je	.L8884
	movq	24(%rsp), %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	movl	%r12d, %r8d
.L8884:

	movq	40(%rsp), %rcx
	movq	32(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	subl	$1, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	cmpl	%r13d, %r12d
	jb	.L8899
.L8871:

	movq	264(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8900
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8898:

	.cfi_restore_state
	cmpq	$0, 16(%rsp)
	movl	%eax, %r8d
	leaq	48(%rsp), %rbp
	je	.L8901
	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%eax, 32(%rsp)
	movl	%r13d, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movdqa	48(%rsp), %xmm5
	movq	%rbp, %rsi
	movdqa	64(%rsp), %xmm6
	movdqa	80(%rsp), %xmm7
	movq	112(%rsp), %rax
	movq	%rbx, %rdi
	movups	%xmm5, (%r14)
	movdqa	96(%rsp), %xmm5
	movq	184(%rsp), %rdx
	movups	%xmm6, 16(%r14)
	movdqu	120(%rsp), %xmm6
	movdqu	152(%rsp), %xmm0
	movups	%xmm7, 32(%r14)
	movl	32(%rsp), %r8d
	movdqu	136(%rsp), %xmm7
	movdqa	224(%rsp), %xmm1
	movups	%xmm5, 48(%r14)
	movq	24(%rsp), %rcx
	movdqu	168(%rsp), %xmm5
	movq	%rdx, 136(%r14)
	movdqa	240(%rsp), %xmm2
	movq	256(%rsp), %rdx
	movq	%rax, 64(%r14)
	movups	%xmm6, 72(%r14)
	movdqa	192(%rsp), %xmm6
	movups	%xmm7, 88(%r14)
	movdqa	208(%rsp), %xmm7
	movups	%xmm0, 104(%r14)
	movups	%xmm5, 120(%r14)
	movups	%xmm6, 144(%r14)
	movups	%xmm7, 160(%r14)
	movups	%xmm1, 176(%r14)
	movups	%xmm2, 192(%r14)
	movq	%rdx, 208(%r14)
	movq	16(%rsp), %rdx
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	addl	$-2, %r12d
	jnc	.L8871
.L8883:

	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	movq	8(%rsp), %rdx
	movl	%r12d, %r8d
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	movq	24(%rsp), %rcx
	movl	%r12d, %r8d
	movq	%rbp, %rsi
	movq	16(%rsp), %rdx
	movq	%rbx, %rdi
	subl	$1, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	cmpl	%r13d, %r12d
	jb	.L8883
	jmp	.L8871
	.p2align 4,,10
	.p2align 3
.L8901:

	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%r13d, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movdqa	48(%rsp), %xmm3
	movq	112(%rsp), %rax
	movdqa	64(%rsp), %xmm4
	movdqa	80(%rsp), %xmm0
	movdqa	96(%rsp), %xmm5
	movdqu	120(%rsp), %xmm6
	movups	%xmm3, (%r14)
	movq	184(%rsp), %rdx
	movups	%xmm4, 16(%r14)
	movdqu	136(%rsp), %xmm7
	movdqu	152(%rsp), %xmm3
	movups	%xmm0, 32(%r14)
	movdqu	168(%rsp), %xmm4
	movdqa	192(%rsp), %xmm1
	movq	%rdx, 136(%r14)
	movdqa	208(%rsp), %xmm2
	movq	256(%rsp), %rdx
	movups	%xmm5, 48(%r14)
	movdqa	224(%rsp), %xmm0
	movq	%rax, 64(%r14)
	movdqa	240(%rsp), %xmm5
	movq	%rdx, 208(%r14)
	movups	%xmm6, 72(%r14)
	movups	%xmm7, 88(%r14)
	movups	%xmm3, 104(%r14)
	movups	%xmm4, 120(%r14)
	movups	%xmm1, 144(%r14)
	movups	%xmm2, 160(%r14)
	movups	%xmm0, 176(%r14)
	movups	%xmm5, 192(%r14)
	addl	$-2, %r12d
	jnc	.L8871
.L8880:

	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	movq	8(%rsp), %rdx
	movl	%r12d, %r8d
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	subl	$1, %r12d
# WAS call	ec_GFp_mont_get_comb_window
	call	.Lec_GFp_mont_get_comb_window_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	cmpl	%r13d, %r12d
	jb	.L8880
	jmp	.L8871
	.p2align 4,,10
	.p2align 3
.L8874:

	pxor	%xmm0, %xmm0
	movq	$0, 64(%r14)
	movq	$0, 136(%r14)
	movq	$0, 208(%r14)
	movups	%xmm0, (%r14)
	movups	%xmm0, 16(%r14)
	movups	%xmm0, 32(%r14)
	movups	%xmm0, 48(%r14)
	movups	%xmm0, 72(%r14)
	movups	%xmm0, 88(%r14)
	movups	%xmm0, 104(%r14)
	movups	%xmm0, 120(%r14)
	movups	%xmm0, 144(%r14)
	movups	%xmm0, 160(%r14)
	movups	%xmm0, 176(%r14)
	movups	%xmm0, 192(%r14)
	jmp	.L8871
.L8900:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2101:

	.size	ec_GFp_mont_mul_precomp, .-ec_GFp_mont_mul_precomp
# WAS .section	.rodata.EC_curve_nid2nist.str1.1,"aMS",@progbits,1
.text
.LC261:

	.string	"P-224"
.LC262:

	.string	"P-256"
.LC263:

	.string	"P-384"
.LC264:

	.string	"P-521"
# WAS .section	.text.EC_curve_nid2nist,"ax",@progbits
.text
	.p2align 4
	.globl	EC_curve_nid2nist
	.type	EC_curve_nid2nist, @function
.LEC_curve_nid2nist_local_target:
EC_curve_nid2nist:
.LFB1785:

	.cfi_startproc
	endbr64
	leaq	.LC263(%rip), %rax
	cmpl	$715, %edi
	je	.L8902
	jg	.L8904
	leaq	.LC262(%rip), %rax
	cmpl	$415, %edi
	je	.L8902
	cmpl	$713, %edi
	movl	$0, %edx
	leaq	.LC261(%rip), %rax
	cmovne	%rdx, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L8904:

	cmpl	$716, %edi
	leaq	.LC264(%rip), %rax
	movl	$0, %edx
	cmovne	%rdx, %rax
.L8902:

	ret
	.cfi_endproc
.LFE1785:

	.size	EC_curve_nid2nist, .-EC_curve_nid2nist
# WAS .section	.text.EC_curve_nist2nid,"ax",@progbits
.text
	.p2align 4
	.globl	EC_curve_nist2nid
	.type	EC_curve_nist2nid, @function
.LEC_curve_nist2nid_local_target:
EC_curve_nist2nid:
.LFB1786:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	.LC261(%rip), %rsi
	movq	%rdi, %rbx
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %edx
	movl	$713, %eax
	testl	%edx, %edx
	je	.L8911
	leaq	.LC262(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %edx
	movl	$415, %eax
	testl	%edx, %edx
	je	.L8911
	leaq	.LC263(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %edx
	movl	$715, %eax
	testl	%edx, %edx
	je	.L8911
	leaq	.LC264(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	cmpl	$1, %eax
	sbbl	%eax, %eax
	andl	$716, %eax
.L8911:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1786:

	.size	EC_curve_nist2nid, .-EC_curve_nist2nid
# WAS .section	.text.EC_POINT_new,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_new
	.type	EC_POINT_new, @function
.LEC_POINT_new_local_target:
EC_POINT_new:
.LFB1787:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L8927
	movq	%rdi, %rbp
	movl	$224, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L8921
	movq	%rbp, %rdi
# WAS call	EC_GROUP_dup@PLT
	call	.LEC_GROUP_dup_local_target
	movq	$0, 72(%rbx)
	pxor	%xmm0, %xmm0
	movq	%rax, (%rbx)
	movq	$0, 144(%rbx)
	movq	$0, 216(%rbx)
	movups	%xmm0, 8(%rbx)
	movups	%xmm0, 24(%rbx)
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 56(%rbx)
	movups	%xmm0, 80(%rbx)
	movups	%xmm0, 96(%rbx)
	movups	%xmm0, 112(%rbx)
	movups	%xmm0, 128(%rbx)
	movups	%xmm0, 152(%rbx)
	movups	%xmm0, 168(%rbx)
	movups	%xmm0, 184(%rbx)
	movups	%xmm0, 200(%rbx)
.L8921:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8927:

	.cfi_restore_state
	movl	$516, %r8d
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC259(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8921
	.cfi_endproc
.LFE1787:

	.size	EC_POINT_new, .-EC_POINT_new
# WAS .section	.text.EC_POINT_free,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_free
	.type	EC_POINT_free, @function
.LEC_POINT_free_local_target:
EC_POINT_free:
.LFB1789:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L8928
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
# WAS call	EC_GROUP_free@PLT
	call	.LEC_GROUP_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L8928:

	ret
	.cfi_endproc
.LFE1789:

	.size	EC_POINT_free, .-EC_POINT_free
# WAS .section	.text.EC_POINT_clear_free,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_clear_free
	.type	EC_POINT_clear_free, @function
.LEC_POINT_clear_free_local_target:
EC_POINT_clear_free:
.LFB1790:

	.cfi_startproc
	endbr64
# WAS jmp	EC_POINT_free@PLT
	jmp	.LEC_POINT_free_local_target
	.cfi_endproc
.LFE1790:

	.size	EC_POINT_clear_free, .-EC_POINT_clear_free
# WAS .section	.text.ec_affine_to_jacobian,"ax",@progbits
.text
	.p2align 4
	.globl	ec_affine_to_jacobian
	.hidden	ec_affine_to_jacobian
	.type	ec_affine_to_jacobian, @function
.Lec_affine_to_jacobian_local_target:
ec_affine_to_jacobian:
.LFB1799:

	.cfi_startproc
	endbr64
	movq	64(%rdx), %rax
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movdqu	32(%rdx), %xmm2
	movdqu	48(%rdx), %xmm3
	movdqu	72(%rdx), %xmm4
	movq	%rax, 64(%rsi)
	movdqu	88(%rdx), %xmm5
	movdqu	104(%rdx), %xmm6
	movups	%xmm0, (%rsi)
	movdqu	120(%rdx), %xmm7
	movq	136(%rdx), %rax
	movups	%xmm1, 16(%rsi)
	movups	%xmm2, 32(%rsi)
	movq	%rax, 136(%rsi)
	movups	%xmm3, 48(%rsi)
	movups	%xmm4, 72(%rsi)
	movups	%xmm5, 88(%rsi)
	movups	%xmm6, 104(%rsi)
	movups	%xmm7, 120(%rsi)
	movdqu	160(%rdi), %xmm0
	movups	%xmm0, 144(%rsi)
	movdqu	176(%rdi), %xmm1
	movups	%xmm1, 160(%rsi)
	movdqu	192(%rdi), %xmm2
	movups	%xmm2, 176(%rsi)
	movdqu	208(%rdi), %xmm3
	movups	%xmm3, 192(%rsi)
	movq	224(%rdi), %rax
	movq	%rax, 208(%rsi)
	ret
	.cfi_endproc
.LFE1799:

	.size	ec_affine_to_jacobian, .-ec_affine_to_jacobian
# WAS .section	.text.ec_jacobian_to_affine,"ax",@progbits
.text
	.p2align 4
	.globl	ec_jacobian_to_affine
	.type	ec_jacobian_to_affine, @function
.Lec_jacobian_to_affine_local_target:
ec_jacobian_to_affine:
.LFB1800:

	.cfi_startproc
	endbr64
	movq	%rsi, %rax
	movq	%rdx, %rsi
	movq	(%rdi), %rdx
	leaq	72(%rax), %rcx
	movq	(%rdx), %r8
	movq	%rax, %rdx
	jmp	*%r8
	.cfi_endproc
.LFE1800:

	.size	ec_jacobian_to_affine, .-ec_jacobian_to_affine
# WAS .section	.text.EC_GROUP_set_generator,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_set_generator
	.type	EC_GROUP_set_generator, @function
.LEC_GROUP_set_generator_local_target:
EC_GROUP_set_generator:
.LFB1772:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$184, %rsp
	.cfi_def_cfa_offset 240
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	movl	512(%rdi), %eax
	testl	%eax, %eax
	jne	.L8937
	movl	532(%rdi), %ebp
	movq	%rdi, %rbx
	testl	%ebp, %ebp
	jne	.L8937
	movq	%rsi, %r13
	cmpq	%rdi, (%rsi)
	je	.L8938
.L8937:

	movl	$327, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L8939:

	xorl	%ebp, %ebp
.L8936:

	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L8959
	addq	$184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8938:

	.cfi_restore_state
	movq	%rdx, %rdi
	movq	%rcx, 8(%rsp)
	movq	%rdx, %r12
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movq	8(%rsp), %rcx
	cmpl	$66, %eax
	ja	.L8960
	movq	%rcx, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L8961
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L8947
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	BN_lshift1@PLT
	call	.LBN_lshift1_local_target
	testl	%eax, %eax
	je	.L8947
	leaq	320(%rbx), %r14
	movq	%r15, %rdi
	movq	%r14, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jle	.L8962
	leaq	8(%r13), %rdx
	leaq	16(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	ec_jacobian_to_affine@PLT
	call	.Lec_jacobian_to_affine_local_target
	testl	%eax, %eax
	je	.L8947
	xorl	%edx, %edx
	leaq	232(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	BN_MONT_CTX_set@PLT
	call	.LBN_MONT_CTX_set_local_target
	testl	%eax, %eax
	je	.L8947
	movq	%r12, %rsi
	movq	%r14, %rdi
	movl	$1, %ebp
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	movdqa	16(%rsp), %xmm0
	movdqa	32(%rsp), %xmm1
	movl	$1, 532(%rbx)
	testl	%eax, %eax
	movdqa	48(%rsp), %xmm2
	movdqa	64(%rsp), %xmm3
	setg	%al
	movdqu	88(%rsp), %xmm4
	movdqu	104(%rsp), %xmm5
	movups	%xmm0, 16(%rbx)
	movzbl	%al, %eax
	movdqu	120(%rsp), %xmm6
	movups	%xmm1, 32(%rbx)
	movdqu	136(%rsp), %xmm7
	movl	%eax, 536(%rbx)
	movq	80(%rsp), %rax
	movups	%xmm2, 48(%rbx)
	movq	%rax, 80(%rbx)
	movq	152(%rsp), %rax
	movups	%xmm3, 64(%rbx)
	movq	%rax, 152(%rbx)
	movups	%xmm4, 88(%rbx)
	movups	%xmm5, 104(%rbx)
	movups	%xmm6, 120(%rbx)
	movups	%xmm7, 136(%rbx)
	.p2align 4,,10
	.p2align 3
.L8947:

	movq	%r15, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L8936
	.p2align 4,,10
	.p2align 3
.L8960:

	movl	$332, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8939
	.p2align 4,,10
	.p2align 3
.L8961:

	movl	$338, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$131, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8939
.L8962:

	movl	$354, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L8947
.L8959:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1772:

	.size	EC_GROUP_set_generator, .-EC_GROUP_set_generator
# WAS .section	.text.ec_jacobian_to_affine_batch,"ax",@progbits
.text
	.p2align 4
	.globl	ec_jacobian_to_affine_batch
	.hidden	ec_jacobian_to_affine_batch
	.type	ec_jacobian_to_affine_batch, @function
.Lec_jacobian_to_affine_batch_local_target:
ec_jacobian_to_affine_batch:
.LFB1801:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L8967
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L8967:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$654, %r8d
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1801:

	.size	ec_jacobian_to_affine_batch, .-ec_jacobian_to_affine_batch
# WAS .section	.text.ec_point_set_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_set_affine_coordinates
	.hidden	ec_point_set_affine_coordinates
	.type	ec_point_set_affine_coordinates, @function
.Lec_point_set_affine_coordinates_local_target:
ec_point_set_affine_coordinates:
.LFB1802:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	movq	%rcx, %rdx
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$264, %rsp
	.cfi_def_cfa_offset 320
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	movq	(%rdi), %rax
	leaq	96(%rsp), %r12
	leaq	16(%rsp), %r15
	movq	%r15, %rsi
	movq	88(%rax), %r10
	movq	96(%rax), %rax
	movq	%r10, 8(%rsp)
	movq	%rax, (%rsp)
	call	*%rax
	movq	(%rsp), %rax
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*%rax
	movslq	328(%rbx), %r9
	movq	%r12, %rsi
	movq	%r12, %rdi
	movq	320(%rbx), %rcx
	leaq	176(%rsp), %r8
	leaq	360(%rbx), %rdx
	movq	%r8, (%rsp)
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	8(%rsp), %r10
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*%r10
	movq	320(%rbx), %rcx
	movq	%r12, %rsi
	movq	%r12, %rdi
	movslq	328(%rbx), %r9
	movq	(%rsp), %r8
	leaq	432(%rbx), %rdx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movslq	328(%rbx), %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L8976
	movdqu	0(%r13), %xmm0
	movups	%xmm0, 0(%rbp)
	movdqu	16(%r13), %xmm1
	movups	%xmm1, 16(%rbp)
	movdqu	32(%r13), %xmm2
	movups	%xmm2, 32(%rbp)
	movdqu	48(%r13), %xmm3
	movups	%xmm3, 48(%rbp)
	movq	64(%r13), %rax
	movq	%rax, 64(%rbp)
	movdqu	(%r14), %xmm4
	movups	%xmm4, 72(%rbp)
	movdqu	16(%r14), %xmm5
	movups	%xmm5, 88(%rbp)
	movdqu	32(%r14), %xmm6
	movups	%xmm6, 104(%rbp)
	movdqu	48(%r14), %xmm7
	movups	%xmm7, 120(%rbp)
	movq	64(%r14), %rax
	movq	%rax, 136(%rbp)
	movl	$1, %eax
.L8970:

	movq	248(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L8977
	addq	$264, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8976:

	.cfi_restore_state
	movl	$676, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	532(%rbx), %eax
	testl	%eax, %eax
	je	.L8972
	movq	80(%rbx), %rax
	movdqu	16(%rbx), %xmm0
	movdqu	32(%rbx), %xmm1
	movdqu	48(%rbx), %xmm2
	movdqu	64(%rbx), %xmm3
	movdqu	88(%rbx), %xmm4
	movq	%rax, 64(%rbp)
	movq	152(%rbx), %rax
	movdqu	104(%rbx), %xmm5
	movups	%xmm0, 0(%rbp)
	movdqu	120(%rbx), %xmm6
	movdqu	136(%rbx), %xmm7
	movups	%xmm1, 16(%rbp)
	movq	%rax, 136(%rbp)
	movups	%xmm2, 32(%rbp)
	movups	%xmm3, 48(%rbp)
	movups	%xmm4, 72(%rbp)
	movups	%xmm5, 88(%rbp)
	movups	%xmm6, 104(%rbp)
	movups	%xmm7, 120(%rbp)
.L8972:

	xorl	%eax, %eax
	jmp	.L8970
.L8977:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1802:

	.size	ec_point_set_affine_coordinates, .-ec_point_set_affine_coordinates
# WAS .section	.text.ec_point_mul_scalar_public,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar_public
	.type	ec_point_mul_scalar_public, @function
.Lec_point_mul_scalar_public_local_target:
ec_point_mul_scalar_public:
.LFB1811:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%r8, %r8
	movq	%rsi, %r10
	sete	%al
	testq	%rcx, %rcx
	sete	%sil
	orb	%sil, %al
	jne	.L8983
	testq	%rdx, %rdx
	je	.L8983
	movq	(%rdi), %rsi
	movq	56(%rsi), %rax
	testq	%rax, %rax
	je	.L8985
	movq	%r10, %rsi
	call	*%rax
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8983:

	.cfi_restore_state
	movl	$858, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8985:

	.cfi_restore_state
	movq	64(%rsi), %rax
	movl	$1, %r9d
	movq	%r10, %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.cfi_endproc
.LFE1811:

	.size	ec_point_mul_scalar_public, .-ec_point_mul_scalar_public
# WAS .section	.text.ec_point_mul_scalar_public_batch,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar_public_batch
	.hidden	ec_point_mul_scalar_public_batch
	.type	ec_point_mul_scalar_public_batch, @function
.Lec_point_mul_scalar_public_batch_local_target:
ec_point_mul_scalar_public_batch:
.LFB1812:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movq	64(%rax), %rax
	testq	%rax, %rax
	je	.L8990
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L8990:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$875, %r8d
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1812:

	.size	ec_point_mul_scalar_public_batch, .-ec_point_mul_scalar_public_batch
# WAS .section	.text.ec_init_precomp,"ax",@progbits
.text
	.p2align 4
	.globl	ec_init_precomp
	.hidden	ec_init_precomp
	.type	ec_init_precomp, @function
.Lec_init_precomp_local_target:
ec_init_precomp:
.LFB1816:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L8997
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L8997:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$951, %r8d
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1816:

	.size	ec_init_precomp, .-ec_init_precomp
# WAS .section	.text.ec_point_select,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_select
	.hidden	ec_point_select
	.type	ec_point_select, @function
.Lec_point_select_local_target:
ec_point_select:
.LFB1818:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movslq	328(%rdi), %rbp
	testq	%rbp, %rbp
	je	.L9000
	movq	%rdx, %r11
	movq	%rdx, %r9
	movq	%rcx, %rdi
	xorl	%eax, %eax
	notq	%r11
	movq	%rdx, %rbx
	movq	%r11, %r10
	.p2align 4,,10
	.p2align 3
.L9002:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r8,%rax,8), %rcx
	andq	%rbx, %rdx
	andq	%r10, %rcx
	orq	%rcx, %rdx
	movq	%rdx, (%rsi,%rax,8)
	movq	%rax, %rdx
	leaq	1(%rax), %rax
	cmpq	%rax, %rbp
	jne	.L9002
	xorl	%eax, %eax
	movq	%r9, %rbp
	movq	%r11, %rbx
	.p2align 4,,10
	.p2align 3
.L9003:

	movq	72(%rdi,%rax,8), %rcx
	movq	72(%r8,%rax,8), %r10
	andq	%rbp, %rcx
	andq	%rbx, %r10
	orq	%r10, %rcx
	movq	%rcx, 72(%rsi,%rax,8)
	movq	%rax, %rcx
	addq	$1, %rax
	cmpq	%rdx, %rcx
	jne	.L9003
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L9004:

	movq	144(%rdi,%rax,8), %rcx
	movq	144(%r8,%rax,8), %r10
	andq	%r9, %rcx
	andq	%r11, %r10
	orq	%r10, %rcx
	movq	%rcx, 144(%rsi,%rax,8)
	movq	%rax, %rcx
	addq	$1, %rax
	cmpq	%rdx, %rcx
	jne	.L9004
.L9000:

	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1818:

	.size	ec_point_select, .-ec_point_select
# WAS .section	.text.ec_GFp_mont_mul,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_mul
	.hidden	ec_GFp_mont_mul
	.type	ec_GFp_mont_mul, @function
.Lec_GFp_mont_mul_local_target:
ec_GFp_mont_mul:
.LFB2093:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$3096, %rsp
	.cfi_def_cfa_offset 7248
	pxor	%xmm0, %xmm0
	movl	$2, %ebx
	movdqu	(%rdx), %xmm6
	movdqu	16(%rdx), %xmm7
	movdqu	72(%rdx), %xmm1
	movdqu	88(%rdx), %xmm2
	movq	%rcx, (%rsp)
	movq	%rdi, %rbp
	movq	%rsi, %r13
	leaq	688(%rsp), %r12
	leaq	256(%rsp), %r14
	movq	%fs:40, %rax
	movq	%rax, 7176(%rsp)
	xorl	%eax, %eax
	movq	64(%rdx), %rax
	movups	%xmm6, 472(%rsp)
	movdqu	32(%rdx), %xmm6
	movups	%xmm7, 488(%rsp)
	movdqu	48(%rdx), %xmm7
	movq	%rax, 536(%rsp)
	movups	%xmm6, 504(%rsp)
	movups	%xmm7, 520(%rsp)
	movaps	%xmm1, 544(%rsp)
	movq	$0, 320(%rsp)
	movq	$0, 392(%rsp)
	movq	$0, 464(%rsp)
	movaps	%xmm0, 256(%rsp)
	movaps	%xmm0, 272(%rsp)
	movaps	%xmm0, 288(%rsp)
	movaps	%xmm0, 304(%rsp)
	movups	%xmm0, 328(%rsp)
	movups	%xmm0, 344(%rsp)
	movups	%xmm0, 360(%rsp)
	movups	%xmm0, 376(%rsp)
	movaps	%xmm0, 400(%rsp)
	movaps	%xmm0, 416(%rsp)
	movaps	%xmm0, 432(%rsp)
	movaps	%xmm0, 448(%rsp)
	movaps	%xmm2, 560(%rsp)
	movdqu	104(%rdx), %xmm3
	movq	136(%rdx), %rax
	movdqu	120(%rdx), %xmm4
	movdqu	144(%rdx), %xmm5
	movq	%rax, 608(%rsp)
	movdqu	160(%rdx), %xmm6
	movdqu	176(%rdx), %xmm7
	movdqu	192(%rdx), %xmm1
	movaps	%xmm3, 576(%rsp)
	movq	208(%rdx), %rax
	movaps	%xmm4, 592(%rsp)
	movups	%xmm5, 616(%rsp)
	movq	%rax, 680(%rsp)
	movups	%xmm6, 632(%rsp)
	movups	%xmm7, 648(%rsp)
	movups	%xmm1, 664(%rsp)
	jmp	.L9014
	.p2align 4,,10
	.p2align 3
.L9045:

	leaq	-216(%r12), %rcx
	leaq	472(%rsp), %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L9013:

	addq	$1, %rbx
	addq	$216, %r12
	cmpq	$32, %rbx
	je	.L9044
.L9014:

	testb	$1, %bl
	jne	.L9045
	movq	%rbx, %rdx
	movq	%rbx, %rax
	movq	%r12, %rsi
	movq	%rbp, %rdi
	shrq	%rdx
	andq	$-2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%r14,%rax,8), %rdx
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	jmp	.L9013
	.p2align 4,,10
	.p2align 3
.L9044:

	movq	%rbp, %rdi
	movq	%r13, 8(%rsp)
# WAS call	EC_GROUP_order_bits@PLT
	call	.LEC_GROUP_order_bits_local_target
	movq	8(%rsp), %r9
	movl	%eax, %r8d
	movl	%eax, %esi
	addl	$-1, %r8d
	movl	%r8d, %r13d
	jnc	.L9031
.L9017:

	imull	$-858993459, %r13d, %eax
	cmpl	$858993459, %eax
	jbe	.L9046
	subl	$1, %r13d
	cmpl	%esi, %r13d
	jb	.L9017
.L9031:

	movq	$0, 64(%r9)
	pxor	%xmm0, %xmm0
	movq	$0, 136(%r9)
	movq	$0, 208(%r9)
	movups	%xmm0, (%r9)
	movups	%xmm0, 16(%r9)
	movups	%xmm0, 32(%r9)
	movups	%xmm0, 48(%r9)
	movups	%xmm0, 72(%r9)
	movups	%xmm0, 88(%r9)
	movups	%xmm0, 104(%r9)
	movups	%xmm0, 120(%r9)
	movups	%xmm0, 144(%r9)
	movups	%xmm0, 160(%r9)
	movups	%xmm0, 176(%r9)
	movups	%xmm0, 192(%r9)
.L9011:

	movq	7176(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9047
	addq	$7192, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9046:

	.cfi_restore_state
	leaq	256(%rsp), %rax
	movl	$1, 8(%rsp)
	leaq	32(%rsp), %rbx
	movl	%r13d, %r15d
	movq	%rax, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%r9, %rsi
.L9019:

	leal	4(%r15), %edx
	movslq	264(%rbp), %rax
	xorl	%r12d, %r12d
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%rax, %rdx
	jnb	.L9023
	movq	(%rsp), %rdi
	movq	(%rdi,%rdx,8), %r12
	shrq	%cl, %r12
	andl	$1, %r12d
	sall	$4, %r12d
.L9023:

	leal	3(%r15), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%rax, %rdx
	jnb	.L9024
	movq	(%rsp), %rdi
	movq	(%rdi,%rdx,8), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	sall	$3, %edx
	orl	%edx, %r12d
.L9024:

	leal	2(%r15), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%rax, %rdx
	jnb	.L9025
	movq	(%rsp), %rdi
	movq	(%rdi,%rdx,8), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	sall	$2, %edx
	orl	%edx, %r12d
.L9025:

	leal	1(%r15), %edx
	movq	%rdx, %rcx
	shrq	$6, %rdx
	cmpq	%rax, %rdx
	jnb	.L9026
	movq	(%rsp), %rdi
	movq	(%rdi,%rdx,8), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	addl	%edx, %edx
	orl	%edx, %r12d
.L9026:

	movl	%r15d, %edx
	shrq	$6, %rdx
	cmpq	%rax, %rdx
	jnb	.L9027
	movq	(%rsp), %rax
	movl	%r15d, %ecx
	movq	(%rax,%rdx,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
	orl	%eax, %r12d
.L9027:

	movq	%rbx, %rdi
	movl	$27, %ecx
	xorl	%eax, %eax
	movq	24(%rsp), %r13
	rep stosq
	movq	%rbx, %r8
	movsbq	%r12b, %r12
	xorl	%r14d, %r14d
	movq	%r13, %rbx
	movq	%rsi, %r13
	.p2align 4,,10
	.p2align 3
.L9028:

	movq	%r14, %rax
	movq	%rbx, %rcx
	movq	%r8, %rsi
	movq	%rbp, %rdi
	xorq	%r12, %rax
	addq	$1, %r14
	addq	$216, %rbx
	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
	sarq	$63, %rdx
# WAS call	ec_point_select
	call	.Lec_point_select_local_target
	cmpq	$32, %r14
	jne	.L9028
	movl	8(%rsp), %eax
	movq	%r13, %rsi
	movq	%r8, %rbx
	testl	%eax, %eax
	je	.L9029
	movq	168(%rsp), %rdx
	movdqa	(%r8), %xmm1
	movdqa	16(%r8), %xmm2
	movdqa	32(%r8), %xmm3
	movdqa	48(%r8), %xmm4
	movdqu	104(%rsp), %xmm5
	movups	%xmm1, 0(%r13)
	movq	64(%r8), %rax
	movq	%rdx, 136(%r13)
	movq	240(%rsp), %rdx
	movdqu	120(%rsp), %xmm6
	movups	%xmm2, 16(%r13)
	movdqu	136(%rsp), %xmm7
	movups	%xmm3, 32(%r13)
	movdqu	152(%rsp), %xmm1
	movdqa	176(%rsp), %xmm2
	movups	%xmm4, 48(%r13)
	movdqa	192(%rsp), %xmm3
	movdqa	208(%rsp), %xmm4
	movups	%xmm5, 72(%r13)
	movdqa	224(%rsp), %xmm5
	movq	%rax, 64(%r13)
	movq	%rdx, 208(%r13)
	movups	%xmm6, 88(%r13)
	movups	%xmm7, 104(%r13)
	movups	%xmm1, 120(%r13)
	movups	%xmm2, 144(%r13)
	movups	%xmm3, 160(%r13)
	movups	%xmm4, 176(%r13)
	movups	%xmm5, 192(%r13)
.L9030:

	movl	20(%rsp), %eax
	subl	$1, %r15d
	cmpl	%eax, %r15d
	jnb	.L9011
	movl	$0, 8(%rsp)
	movq	%rsi, %r12
.L9020:

	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	imull	$-858993459, %r15d, %eax
	cmpl	$858993459, %eax
	jbe	.L9042
	movl	20(%rsp), %eax
	subl	$1, %r15d
	cmpl	%eax, %r15d
	jb	.L9020
	jmp	.L9011
	.p2align 4,,10
	.p2align 3
.L9029:

	movq	%r8, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rdi
	movq	%r13, 8(%rsp)
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	movq	8(%rsp), %rsi
	jmp	.L9030
.L9042:

	movq	%r12, %rsi
	jmp	.L9019
.L9047:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2093:

	.size	ec_GFp_mont_mul, .-ec_GFp_mont_mul
# WAS .section	.text.ec_GFp_mont_mul_base,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_mul_base
	.hidden	ec_GFp_mont_mul_base
	.type	ec_GFp_mont_mul_base, @function
.Lec_GFp_mont_mul_base_local_target:
ec_GFp_mont_mul_base:
.LFB2094:

	.cfi_startproc
	endbr64
	movq	%rdx, %rcx
	leaq	16(%rdi), %rdx
# WAS jmp	ec_GFp_mont_mul
	jmp	.Lec_GFp_mont_mul_local_target
	.cfi_endproc
.LFE2094:

	.size	ec_GFp_mont_mul_base, .-ec_GFp_mont_mul_base
# WAS .section	.text.ec_GFp_mont_batch_get_window,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_mont_batch_get_window, @function
.Lec_GFp_mont_batch_get_window_local_target:
ec_GFp_mont_batch_get_window:
.LFB2096:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	4(%r8), %r9d
	movq	%rdx, %r15
	movq	%rcx, %rdx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %rcx
	shrq	$6, %r9
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movslq	264(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	cmpq	%rdi, %r9
	jnb	.L9050
	movq	(%rdx,%r9,8), %rax
	shrq	%cl, %rax
	andl	$1, %eax
	sall	$5, %eax
.L9050:

	leal	3(%r8), %r9d
	movq	%r9, %rcx
	shrq	$6, %r9
	cmpq	%rdi, %r9
	jnb	.L9051
	movq	(%rdx,%r9,8), %r9
	shrq	%cl, %r9
	andl	$1, %r9d
	sall	$4, %r9d
	orl	%r9d, %eax
.L9051:

	leal	2(%r8), %r9d
	movq	%r9, %rcx
	shrq	$6, %r9
	cmpq	%rdi, %r9
	jnb	.L9052
	movq	(%rdx,%r9,8), %r9
	shrq	%cl, %r9
	andl	$1, %r9d
	leal	0(,%r9,8), %ecx
	orl	%ecx, %eax
.L9052:

	leal	1(%r8), %r9d
	movl	%r8d, %r10d
	movq	%r9, %rcx
	shrq	$6, %r9
	shrq	$6, %r10
	cmpq	%rdi, %r9
	jnb	.L9053
	movq	(%rdx,%r9,8), %r9
	shrq	%cl, %r9
	andl	$1, %r9d
	leal	0(,%r9,4), %ecx
	orl	%ecx, %eax
	cmpq	%rdi, %r10
	jnb	.L9054
.L9055:

	movq	(%rdx,%r10,8), %r9
	movl	%r8d, %ecx
	shrq	%cl, %r9
	andl	$1, %r9d
	leal	(%r9,%r9), %ecx
	orl	%ecx, %eax
.L9056:

	testl	%r8d, %r8d
	jne	.L9054
.L9057:

	movzbl	%al, %eax
	movl	$63, %edx
	movl	$27, %ecx
	movq	%rsi, %rdi
	movq	%rax, %r12
	subq	%rax, %rdx
	xorl	%r14d, %r14d
	shrq	$5, %r12
	movq	%r12, %r13
	subq	$1, %r12
	negq	%r13
	andq	%r12, %rax
	andq	%r13, %rdx
	orq	%rdx, %rax
	movq	%rax, %rbp
	andl	$1, %eax
	shrq	%rbp
	addq	%rax, %rbp
	xorl	%eax, %eax
	rep stosq
	.p2align 4,,10
	.p2align 3
.L9059:

	movq	%rbp, %rax
	movq	%r15, %rcx
	movq	%rsi, %r8
	movq	%rbx, %rdi
	xorq	%r14, %rax
	addq	$1, %r14
	addq	$216, %r15
	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
	sarq	$63, %rdx
# WAS call	ec_point_select
	call	.Lec_point_select_local_target
	cmpq	$17, %r14
	jne	.L9059
	movslq	328(%rbx), %rcx
	pxor	%xmm0, %xmm0
	movq	$0, 64(%rsp)
	movaps	%xmm0, (%rsp)
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 48(%rsp)
	testl	%ecx, %ecx
	jle	.L9060
	cmpl	$1, %ecx
	je	.L9075
	movl	%ecx, %eax
	movdqu	72(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L9062
	movdqu	88(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L9062
	movdqu	104(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L9062
	movdqu	120(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L9062
	movdqu	136(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L9062
	xorl	%edx, %edx
.L9063:

	movq	%rdx, %rdi
	addq	$1, %rdx
	salq	$4, %rdi
	movdqu	152(%rsi,%rdi), %xmm1
	leal	5(%rdx), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L9063
	.p2align 4,,10
	.p2align 3
.L9062:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L9107
	movl	%ecx, %eax
	andl	$-2, %eax
.L9061:

	cltq
	orq	72(%rsi,%rax,8), %rdx
.L9107:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	72(%rsi), %r8
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L9065:

	movq	%rsp, %rdi
	xorl	%r9d, %r9d
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%r9,8),%r10	
	sbbq	(%r8,%r9,8),%r10	
	movq	%r10,(%rdi,%r9,8)	
	lea	1(%r9),%r9	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	movslq	328(%rbx), %rcx
	testl	%ecx, %ecx
	jle	.L9067
	cmpl	$1, %ecx
	je	.L9068
	movdqa	(%rsp), %xmm1
	movq	%rax, %xmm0
	movl	%ecx, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movaps	%xmm1, (%rsp)
	cmpl	$1, %edx
	je	.L9069
	movdqa	16(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movaps	%xmm1, 16(%rsp)
	cmpl	$2, %edx
	je	.L9069
	movdqa	32(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movaps	%xmm1, 32(%rsp)
	cmpl	$3, %edx
	je	.L9069
	pand	48(%rsp), %xmm0
	movaps	%xmm0, 48(%rsp)
.L9069:

	movl	%ecx, %edx
	andl	$-2, %edx
	testb	$1, %cl
	je	.L9071
	movslq	%edx, %rdx
	andq	%rax, (%rsp,%rdx,8)
.L9071:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L9072:

	movq	72(%rsi,%rax,8), %r8
	movq	(%rdi,%rax,8), %rdx
	andq	%r12, %r8
	andq	%r13, %rdx
	orq	%r8, %rdx
	movq	%rdx, 72(%rsi,%rax,8)
	addq	$1, %rax
	cmpq	%rcx, %rax
	jne	.L9072
.L9049:

	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9108
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9054:

	.cfi_restore_state
	subl	$1, %r8d
	movq	%r8, %rcx
	shrq	$6, %r8
	cmpq	%rdi, %r8
	jnb	.L9057
	movq	(%rdx,%r8,8), %rdx
	shrq	%cl, %rdx
	andl	$1, %edx
	orl	%edx, %eax
	jmp	.L9057
.L9060:

	testq	%rcx, %rcx
	je	.L9049
	movq	320(%rbx), %rdx
	leaq	72(%rsi), %r8
	xorl	%eax, %eax
	jmp	.L9065
	.p2align 4,,10
	.p2align 3
.L9053:

	cmpq	%rdi, %r10
	jb	.L9055
	jmp	.L9056
.L9075:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L9061
.L9068:

	andq	%rax, (%rsp)
	andq	(%rsp), %r13
	andq	72(%rsi), %r12
	orq	%r12, %r13
	movq	%r13, 72(%rsi)
	jmp	.L9049
.L9067:

	testq	%rcx, %rcx
	je	.L9049
	jmp	.L9071
.L9108:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2096:

	.size	ec_GFp_mont_batch_get_window, .-ec_GFp_mont_batch_get_window
# WAS .section	.text.ec_GFp_mont_mul_batch,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_mul_batch
	.hidden	ec_GFp_mont_mul_batch
	.type	ec_GFp_mont_mul_batch, @function
.Lec_GFp_mont_mul_batch_local_target:
ec_GFp_mont_mul_batch:
.LFB2097:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$3112, %rsp
	.cfi_def_cfa_offset 11360
	pxor	%xmm0, %xmm0
	movl	$2, %r13d
	movq	11360(%rsp), %r15
	movq	%rsi, %r12
	movq	%rcx, 8(%rsp)
	movq	%rdx, %rax
	movq	%rdi, %rbx
	movq	11368(%rsp), %rsi
	movdqu	(%rax), %xmm1
	movq	%r9, (%rsp)
	leaq	704(%rsp), %r14
	movdqu	16(%rax), %xmm2
	movdqu	32(%rax), %xmm3
	leaq	272(%rsp), %rbp
	movq	%rsi, 24(%rsp)
	movdqu	48(%rax), %xmm4
	movq	%fs:40, %rdx
	movq	%rdx, 11288(%rsp)
	xorl	%edx, %edx
	movq	64(%rax), %rdx
	movups	%xmm1, 488(%rsp)
	movups	%xmm2, 504(%rsp)
	movq	%rdx, 552(%rsp)
	movups	%xmm3, 520(%rsp)
	movups	%xmm4, 536(%rsp)
	movq	$0, 336(%rsp)
	movq	$0, 408(%rsp)
	movq	$0, 480(%rsp)
	movaps	%xmm0, 272(%rsp)
	movaps	%xmm0, 288(%rsp)
	movaps	%xmm0, 304(%rsp)
	movaps	%xmm0, 320(%rsp)
	movups	%xmm0, 344(%rsp)
	movups	%xmm0, 360(%rsp)
	movups	%xmm0, 376(%rsp)
	movups	%xmm0, 392(%rsp)
	movaps	%xmm0, 416(%rsp)
	movaps	%xmm0, 432(%rsp)
	movaps	%xmm0, 448(%rsp)
	movaps	%xmm0, 464(%rsp)
	movdqu	72(%rax), %xmm5
	movdqu	88(%rax), %xmm6
	movdqu	104(%rax), %xmm7
	movdqu	120(%rax), %xmm1
	movq	%r12, 16(%rsp)
	movq	%r14, %r12
	movq	136(%rax), %rdx
	movdqu	144(%rax), %xmm2
	movaps	%xmm5, 560(%rsp)
	movq	%r8, %r14
	movdqu	160(%rax), %xmm3
	movdqu	176(%rax), %xmm4
	movaps	%xmm6, 576(%rsp)
	movdqu	192(%rax), %xmm5
	movq	208(%rax), %rax
	movq	%rdx, 624(%rsp)
	movaps	%xmm7, 592(%rsp)
	movq	%rax, 696(%rsp)
	movaps	%xmm1, 608(%rsp)
	movups	%xmm2, 632(%rsp)
	movups	%xmm3, 648(%rsp)
	movups	%xmm4, 664(%rsp)
	movups	%xmm5, 680(%rsp)
	jmp	.L9112
	.p2align 4,,10
	.p2align 3
.L9149:

	leaq	-216(%r12), %rcx
	leaq	488(%rsp), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L9111:

	addq	$1, %r13
	addq	$216, %r12
	cmpq	$17, %r13
	je	.L9148
.L9112:

	testb	$1, %r13b
	jne	.L9149
	movq	%r13, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	shrq	%rcx
	andq	$-2, %rdx
	addq	%rcx, %rdx
	leaq	(%rdx,%rdx,8), %rdx
	leaq	0(%rbp,%rdx,8), %rdx
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	jmp	.L9111
	.p2align 4,,10
	.p2align 3
.L9148:

	movdqu	16(%r14), %xmm7
	movdqu	32(%r14), %xmm1
	pxor	%xmm0, %xmm0
	movq	$0, 4008(%rsp)
	movdqu	48(%r14), %xmm2
	movq	64(%r14), %rax
	movl	$2, %ebp
	movq	$0, 4080(%rsp)
	movdqu	72(%r14), %xmm3
	movdqu	(%r14), %xmm6
	movaps	%xmm7, 4176(%rsp)
	leaq	3944(%rsp), %r13
	movdqu	88(%r14), %xmm4
	movdqu	104(%r14), %xmm5
	movq	%rax, 4224(%rsp)
	movaps	%xmm1, 4192(%rsp)
	movq	16(%rsp), %r12
	movaps	%xmm2, 4208(%rsp)
	movups	%xmm3, 4232(%rsp)
	movq	$0, 4152(%rsp)
	movups	%xmm0, 3944(%rsp)
	movups	%xmm0, 3960(%rsp)
	movups	%xmm0, 3976(%rsp)
	movups	%xmm0, 3992(%rsp)
	movaps	%xmm0, 4016(%rsp)
	movaps	%xmm0, 4032(%rsp)
	movaps	%xmm0, 4048(%rsp)
	movaps	%xmm0, 4064(%rsp)
	movups	%xmm0, 4088(%rsp)
	movups	%xmm0, 4104(%rsp)
	movups	%xmm0, 4120(%rsp)
	movups	%xmm0, 4136(%rsp)
	movaps	%xmm6, 4160(%rsp)
	movups	%xmm4, 4248(%rsp)
	movups	%xmm5, 4264(%rsp)
	movdqu	120(%r14), %xmm6
	movq	136(%r14), %rax
	movdqu	144(%r14), %xmm7
	movdqu	160(%r14), %xmm1
	movdqu	176(%r14), %xmm2
	movq	%rax, 4296(%rsp)
	movdqu	192(%r14), %xmm3
	movq	208(%r14), %rax
	movups	%xmm6, 4280(%rsp)
	leaq	4376(%rsp), %r14
	movaps	%xmm7, 4304(%rsp)
	movq	%rax, 4368(%rsp)
	movaps	%xmm1, 4320(%rsp)
	movaps	%xmm2, 4336(%rsp)
	movaps	%xmm3, 4352(%rsp)
	jmp	.L9115
	.p2align 4,,10
	.p2align 3
.L9151:

	leaq	-216(%r14), %rcx
	leaq	4160(%rsp), %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L9114:

	addq	$1, %rbp
	addq	$216, %r14
	cmpq	$17, %rbp
	je	.L9150
.L9115:

	testb	$1, %bpl
	jne	.L9151
	movq	%rbp, %rdx
	movq	%rbp, %rax
	movq	%r14, %rsi
	movq	%rbx, %rdi
	shrq	%rdx
	andq	$-2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rax,8), %rax
	leaq	0(%r13,%rax,8), %rdx
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	jmp	.L9114
	.p2align 4,,10
	.p2align 3
.L9150:

	testq	%r15, %r15
	je	.L9152
	movdqu	(%r15), %xmm3
	movdqu	16(%r15), %xmm5
	pxor	%xmm0, %xmm0
	movq	$0, 7680(%rsp)
	movdqu	32(%r15), %xmm6
	movq	64(%r15), %rax
	movq	$0, 7752(%rsp)
	leaq	8048(%rsp), %r14
	movdqu	48(%r15), %xmm7
	movdqu	72(%r15), %xmm4
	movups	%xmm3, 7832(%rsp)
	movl	$2, %r13d
	movdqu	88(%r15), %xmm3
	movdqu	104(%r15), %xmm1
	movq	%rax, 7896(%rsp)
	leaq	7616(%rsp), %rbp
	movdqu	120(%r15), %xmm2
	movups	%xmm5, 7848(%rsp)
	movups	%xmm6, 7864(%rsp)
	movups	%xmm7, 7880(%rsp)
	movaps	%xmm4, 7904(%rsp)
	movq	$0, 7824(%rsp)
	movaps	%xmm0, 7616(%rsp)
	movaps	%xmm0, 7632(%rsp)
	movaps	%xmm0, 7648(%rsp)
	movaps	%xmm0, 7664(%rsp)
	movups	%xmm0, 7688(%rsp)
	movups	%xmm0, 7704(%rsp)
	movups	%xmm0, 7720(%rsp)
	movups	%xmm0, 7736(%rsp)
	movaps	%xmm0, 7760(%rsp)
	movaps	%xmm0, 7776(%rsp)
	movaps	%xmm0, 7792(%rsp)
	movaps	%xmm0, 7808(%rsp)
	movaps	%xmm3, 7920(%rsp)
	movaps	%xmm1, 7936(%rsp)
	movaps	%xmm2, 7952(%rsp)
	movq	136(%r15), %rax
	movdqu	144(%r15), %xmm5
	movdqu	160(%r15), %xmm6
	movdqu	176(%r15), %xmm7
	movq	%rax, 7968(%rsp)
	movq	208(%r15), %rax
	movdqu	192(%r15), %xmm4
	movups	%xmm5, 7976(%rsp)
	movq	%rax, 8040(%rsp)
	movups	%xmm6, 7992(%rsp)
	movups	%xmm7, 8008(%rsp)
	movups	%xmm4, 8024(%rsp)
	jmp	.L9129
	.p2align 4,,10
	.p2align 3
.L9154:

	leaq	-216(%r14), %rcx
	leaq	7832(%rsp), %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L9128:

	addq	$1, %r13
	addq	$216, %r14
	cmpq	$17, %r13
	je	.L9153
.L9129:

	testb	$1, %r13b
	jne	.L9154
	movq	%r13, %rdx
	movq	%r13, %rax
	movq	%r14, %rsi
	movq	%rbx, %rdi
	shrq	%rdx
	andq	$-2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rax,8), %rax
	leaq	0(%rbp,%rax,8), %rdx
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	jmp	.L9128
	.p2align 4,,10
	.p2align 3
.L9153:

	movq	%rbx, %rdi
# WAS call	EC_GROUP_order_bits@PLT
	call	.LEC_GROUP_order_bits_local_target
	movl	$3435973837, %ecx
	movl	%eax, %r14d
	movl	%eax, %eax
	imulq	%rcx, %rax
	movl	%r14d, %r15d
	shrq	$34, %rax
	leal	(%rax,%rax,4), %edx
	movl	%r14d, %eax
	subl	%edx, %eax
	testl	%eax, %eax
	je	.L9135
.L9155:

	subl	$1, %r15d
	cmpl	%r15d, %r14d
	jb	.L9136
	movl	%r15d, %eax
	imulq	%rcx, %rax
	shrq	$34, %rax
	leal	(%rax,%rax,4), %edx
	movl	%r15d, %eax
	subl	%edx, %eax
	testl	%eax, %eax
	jne	.L9155
.L9135:

	movq	8(%rsp), %rcx
	leaq	48(%rsp), %rbp
	movl	%r15d, %r8d
	movq	%rbx, %rdi
	leaq	272(%rsp), %rax
	movq	%rbp, %rsi
	leaq	3944(%rsp), %r13
	movq	%rax, %rdx
	movq	%rax, 16(%rsp)
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movdqa	48(%rsp), %xmm4
	movq	112(%rsp), %rax
	movq	%r13, 40(%rsp)
	movdqa	64(%rsp), %xmm5
	movdqa	80(%rsp), %xmm6
	movl	%r15d, %r13d
	movq	184(%rsp), %rdx
	movdqa	96(%rsp), %xmm7
	movups	%xmm4, (%r12)
	movdqu	120(%rsp), %xmm4
	movq	%rax, 64(%r12)
	leaq	7616(%rsp), %rax
	movdqa	192(%rsp), %xmm1
	movups	%xmm5, 16(%r12)
	movdqa	208(%rsp), %xmm2
	movdqu	136(%rsp), %xmm5
	movq	%rdx, 136(%r12)
	movq	256(%rsp), %rdx
	movups	%xmm6, 32(%r12)
	movdqa	224(%rsp), %xmm3
	movdqu	152(%rsp), %xmm6
	movups	%xmm7, 48(%r12)
	movdqu	168(%rsp), %xmm7
	movups	%xmm4, 72(%r12)
	movdqa	240(%rsp), %xmm4
	movq	%rdx, 208(%r12)
	movq	%rax, 32(%rsp)
	movups	%xmm5, 88(%r12)
	movups	%xmm6, 104(%r12)
	movups	%xmm7, 120(%r12)
	movups	%xmm1, 144(%r12)
	movups	%xmm2, 160(%r12)
	movups	%xmm3, 176(%r12)
	movups	%xmm4, 192(%r12)
.L9134:

	movq	(%rsp), %rcx
	movq	40(%rsp), %rdx
	movl	%r13d, %r8d
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	movq	24(%rsp), %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	32(%rsp), %rdx
	movl	%r13d, %r8d
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
.L9147:

	subl	$1, %r13d
	cmpl	%r13d, %r14d
	jb	.L9109
	movl	$3435973837, %eax
	movl	%r13d, %r15d
	movq	%r12, %rdx
	movq	%r12, %rsi
	imulq	%rax, %r15
	movq	%rbx, %rdi
	shrq	$34, %r15
	leal	(%r15,%r15,4), %eax
	movl	%r13d, %r15d
	subl	%eax, %r15d
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	testl	%r15d, %r15d
	jne	.L9147
	movq	8(%rsp), %rcx
	movq	16(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%r13d, %r8d
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	jmp	.L9134
	.p2align 4,,10
	.p2align 3
.L9136:

	movq	$0, 64(%r12)
	pxor	%xmm0, %xmm0
	movq	$0, 136(%r12)
	movq	$0, 208(%r12)
	movups	%xmm0, (%r12)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	movups	%xmm0, 72(%r12)
	movups	%xmm0, 88(%r12)
	movups	%xmm0, 104(%r12)
	movups	%xmm0, 120(%r12)
	movups	%xmm0, 144(%r12)
	movups	%xmm0, 160(%r12)
	movups	%xmm0, 176(%r12)
	movups	%xmm0, 192(%r12)
.L9109:

	movq	11288(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9156
	addq	$11304, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9152:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EC_GROUP_order_bits@PLT
	call	.LEC_GROUP_order_bits_local_target
	movl	$3435973837, %ecx
	movl	%eax, %r15d
	movl	%eax, %eax
	imulq	%rcx, %rax
	movl	%r15d, %r14d
	shrq	$34, %rax
	leal	(%rax,%rax,4), %edx
	movl	%r15d, %eax
	subl	%edx, %eax
	testl	%eax, %eax
	je	.L9157
.L9119:

	subl	$1, %r14d
	cmpl	%r14d, %r15d
	jb	.L9136
	movl	%r14d, %eax
	imulq	%rcx, %rax
	shrq	$34, %rax
	leal	(%rax,%rax,4), %edx
	movl	%r14d, %eax
	subl	%edx, %eax
	testl	%eax, %eax
	jne	.L9119
.L9157:

	movq	8(%rsp), %rcx
	leaq	48(%rsp), %rbp
	movl	%r14d, %r8d
	movq	%rbx, %rdi
	leaq	272(%rsp), %rax
	movq	%rbp, %rsi
	leaq	3944(%rsp), %r13
	movq	%rax, %rdx
	movq	%rax, 16(%rsp)
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movdqa	48(%rsp), %xmm5
	movq	112(%rsp), %rax
	movq	%r13, 24(%rsp)
	movdqa	64(%rsp), %xmm6
	movdqa	80(%rsp), %xmm7
	movl	%r14d, %r13d
	movq	184(%rsp), %rdx
	movdqa	96(%rsp), %xmm1
	movups	%xmm5, (%r12)
	movdqu	120(%rsp), %xmm2
	movups	%xmm6, 16(%r12)
	movdqu	136(%rsp), %xmm3
	movdqu	152(%rsp), %xmm5
	movups	%xmm7, 32(%r12)
	movdqu	168(%rsp), %xmm6
	movdqa	192(%rsp), %xmm7
	movq	%rdx, 136(%r12)
	movq	256(%rsp), %rdx
	movups	%xmm1, 48(%r12)
	movdqa	208(%rsp), %xmm4
	movdqa	224(%rsp), %xmm1
	movups	%xmm2, 72(%r12)
	movdqa	240(%rsp), %xmm2
	movq	%rax, 64(%r12)
	movq	%rdx, 208(%r12)
	movups	%xmm3, 88(%r12)
	movups	%xmm5, 104(%r12)
	movups	%xmm6, 120(%r12)
	movups	%xmm7, 144(%r12)
	movups	%xmm4, 160(%r12)
	movups	%xmm1, 176(%r12)
	movups	%xmm2, 192(%r12)
.L9122:

	movq	(%rsp), %rcx
	movq	24(%rsp), %rdx
	movl	%r13d, %r8d
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	subl	$1, %r13d
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	cmpl	%r13d, %r15d
	jb	.L9109
	movl	$3435973837, %eax
	movl	%r13d, %r14d
	imulq	%rax, %r14
	shrq	$34, %r14
	leal	(%r14,%r14,4), %eax
	movl	%r13d, %r14d
	subl	%eax, %r14d
.L9126:

	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	testl	%r14d, %r14d
	jne	.L9121
	movq	8(%rsp), %rcx
	movq	16(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	%r13d, %r8d
# WAS call	ec_GFp_mont_batch_get_window
	call	.Lec_GFp_mont_batch_get_window_local_target
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	jmp	.L9122
	.p2align 4,,10
	.p2align 3
.L9121:

	subl	$1, %r13d
	cmpl	%r13d, %r15d
	jb	.L9109
	movl	%r13d, %r14d
	movl	$3435973837, %eax
	imulq	%r14, %rax
	movl	%r13d, %r14d
	shrq	$34, %rax
	leal	(%rax,%rax,4), %eax
	subl	%eax, %r14d
	jmp	.L9126
.L9156:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2097:

	.size	ec_GFp_mont_mul_batch, .-ec_GFp_mont_mul_batch
# WAS .section	.text.ec_affine_select,"ax",@progbits
.text
	.p2align 4
	.globl	ec_affine_select
	.hidden	ec_affine_select
	.type	ec_affine_select, @function
.Lec_affine_select_local_target:
ec_affine_select:
.LFB1819:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movslq	328(%rdi), %rbp
	testq	%rbp, %rbp
	je	.L9158
	movq	%rdx, %r11
	movq	%rdx, %r10
	movq	%rcx, %rdi
	xorl	%eax, %eax
	notq	%r11
	movq	%rdx, %rbx
	movq	%r11, %r9
	.p2align 4,,10
	.p2align 3
.L9160:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r8,%rax,8), %rcx
	andq	%rbx, %rdx
	andq	%r9, %rcx
	orq	%rcx, %rdx
	movq	%rax, %rcx
	movq	%rdx, (%rsi,%rax,8)
	leaq	1(%rax), %rax
	cmpq	%rax, %rbp
	jne	.L9160
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L9161:

	movq	72(%rdi,%rax,8), %rdx
	movq	72(%r8,%rax,8), %r9
	andq	%r10, %rdx
	andq	%r11, %r9
	orq	%r9, %rdx
	movq	%rdx, 72(%rsi,%rax,8)
	movq	%rax, %rdx
	addq	$1, %rax
	cmpq	%rcx, %rdx
	jne	.L9161
.L9158:

	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1819:

	.size	ec_affine_select, .-ec_affine_select
# WAS .section	.text.ec_precomp_select,"ax",@progbits
.text
	.p2align 4
	.globl	ec_precomp_select
	.hidden	ec_precomp_select
	.type	ec_precomp_select, @function
.Lec_precomp_select_local_target:
ec_precomp_select:
.LFB1820:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r10
	movq	%rdx, %r9
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	4536(%r8), %rbp
	notq	%r10
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	72(%r8), %rbx
	movslq	328(%rdi), %r11
	movq	%rcx, %rdi
	.p2align 4,,10
	.p2align 3
.L9169:

	leaq	-72(%rbx), %r8
	xorl	%eax, %eax
	testq	%r11, %r11
	je	.L9173
	.p2align 4,,10
	.p2align 3
.L9171:

	movq	(%rdi,%rax,8), %rdx
	movq	(%r8,%rax,8), %rcx
	andq	%r9, %rdx
	andq	%r10, %rcx
	orq	%rcx, %rdx
	movq	%rax, %rcx
	movq	%rdx, (%rsi,%rax,8)
	leaq	1(%rax), %rax
	cmpq	%rax, %r11
	jne	.L9171
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L9172:

	movq	72(%rdi,%rax,8), %rdx
	movq	72(%r8,%rax,8), %r12
	andq	%r9, %rdx
	andq	%r10, %r12
	orq	%r12, %rdx
	movq	%rdx, 72(%rsi,%rax,8)
	movq	%rax, %rdx
	addq	$1, %rax
	cmpq	%rdx, %rcx
	jne	.L9172
.L9173:

	addq	$144, %rbx
	addq	$144, %rdi
	addq	$144, %rsi
	cmpq	%rbx, %rbp
	jne	.L9169
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1820:

	.size	ec_precomp_select, .-ec_precomp_select
# WAS .section	.text.ec_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.globl	ec_cmp_x_coordinate
	.hidden	ec_cmp_x_coordinate
	.type	ec_cmp_x_coordinate, @function
.Lec_cmp_x_coordinate_local_target:
ec_cmp_x_coordinate:
.LFB1821:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	jmp	*152(%rax)
	.cfi_endproc
.LFE1821:

	.size	ec_cmp_x_coordinate, .-ec_cmp_x_coordinate
# WAS .section	.text.ec_get_x_coordinate_as_scalar,"ax",@progbits
.text
	.p2align 4
	.globl	ec_get_x_coordinate_as_scalar
	.hidden	ec_get_x_coordinate_as_scalar
	.type	ec_get_x_coordinate_as_scalar, @function
.Lec_get_x_coordinate_as_scalar_local_target:
ec_get_x_coordinate_as_scalar:
.LFB1822:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	addq	$320, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$176, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	cmpl	$66, %eax
	ja	.L9194
	movl	%eax, %r14d
	movq	(%r12), %rax
	leaq	16(%rsp), %rbp
	xorl	%ecx, %ecx
	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	*(%rax)
	testl	%eax, %eax
	je	.L9183
	movq	(%r12), %rax
	leaq	96(%rsp), %r13
	movq	%rbp, %rcx
	movq	%r12, %rdi
	leaq	8(%rsp), %rdx
	movq	%r13, %rsi
	call	*104(%rax)
	movq	%r12, %rdi
	movq	%r14, 8(%rsp)
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	8(%rsp), %rcx
	movq	%r13, %rdx
	movq	%rbp, %rdi
	movq	%rax, %r12
	movl	8(%rax), %eax
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 16(%rsp)
	leal	1(%rax), %esi
	movaps	%xmm0, 32(%rsp)
	movslq	%esi, %rsi
	movaps	%xmm0, 48(%rsp)
	movaps	%xmm0, 64(%rsp)
	movaps	%xmm0, 80(%rsp)
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movslq	8(%r12), %r8
	testq	%r8, %r8
	je	.L9187
	movq	16(%rsp,%r8,8), %rsi
	movq	(%r12), %rdi
	movq	%r8, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdx,%rdx		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rax,8),%rdx	
	sbbq	(%rdi,%rax,8),%rdx	
	movq	%rdx,(%rbx,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdx,%rdx		

# 0 "" 2
#NO_APP
	andl	$1, %edx
	xorl	%eax, %eax
	subq	%rdx, %rsi
	movq	%rsi, %rdi
	notq	%rdi
	.p2align 4,,10
	.p2align 3
.L9186:

	movq	(%rbx,%rax,8), %rcx
	movq	0(%rbp,%rax,8), %rdx
	andq	%rdi, %rcx
	andq	%rsi, %rdx
	orq	%rcx, %rdx
	movq	%rdx, (%rbx,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r8
	jne	.L9186
.L9187:

	movl	$1, %eax
.L9181:

	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9195
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9194:

	.cfi_restore_state
	movl	$1048, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L9183:

	xorl	%eax, %eax
	jmp	.L9181
.L9195:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1822:

	.size	ec_get_x_coordinate_as_scalar, .-ec_get_x_coordinate_as_scalar
# WAS .section	.text.ec_GFp_simple_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_cmp_x_coordinate
	.hidden	ec_GFp_simple_cmp_x_coordinate
	.type	ec_GFp_simple_cmp_x_coordinate, @function
.Lec_GFp_simple_cmp_x_coordinate_local_target:
ec_GFp_simple_cmp_x_coordinate:
.LFB2090:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movl	328(%rdi), %edx
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	testl	%edx, %edx
	jle	.L9197
	movq	%rdi, %rbp
	movq	%rsi, %rcx
	cmpl	$1, %edx
	je	.L9204
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L9199
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L9199
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L9199
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L9199
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L9199
	xorl	%esi, %esi
.L9200:

	movq	%rsi, %rdi
	addq	$1, %rsi
	salq	$4, %rdi
	movdqu	224(%rcx,%rdi), %xmm1
	leal	5(%rsi), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L9200
	.p2align 4,,10
	.p2align 3
.L9199:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L9201
	andl	$-2, %edx
.L9198:

	movslq	%edx, %rdx
	orq	144(%rcx,%rdx,8), %rax
.L9201:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	js	.L9197
	movq	%rsp, %r12
	movq	%rcx, %rdx
	movq	%rbp, %rdi
	movq	%r12, %rsi
# WAS call	ec_get_x_coordinate_as_scalar
	call	.Lec_get_x_coordinate_as_scalar_local_target
	testl	%eax, %eax
	jne	.L9233
.L9197:

	xorl	%eax, %eax
.L9196:

	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9234
	addq	$80, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9233:

	.cfi_restore_state
	movslq	264(%rbp), %rdx
	movl	$1, %eax
	salq	$3, %rdx
	je	.L9196
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	jmp	.L9196
.L9204:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L9198
.L9234:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2090:

	.size	ec_GFp_simple_cmp_x_coordinate, .-ec_GFp_simple_cmp_x_coordinate
# WAS .section	.text.ec_GFp_mont_cmp_x_coordinate,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_mont_cmp_x_coordinate, @function
.Lec_GFp_mont_cmp_x_coordinate_local_target:
ec_GFp_mont_cmp_x_coordinate:
.LFB1887:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$264, %rsp
	.cfi_def_cfa_offset 320
	movl	328(%rdi), %edx
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	xorl	%eax, %eax
	movl	536(%rdi), %eax
	testl	%eax, %eax
	je	.L9236
	cmpl	%edx, 264(%rdi)
	jne	.L9236
	testl	%edx, %edx
	jle	.L9245
	cmpl	$1, %edx
	je	.L9256
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L9247
	movdqu	160(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$2, %eax
	je	.L9247
	movdqu	176(%rsi), %xmm7
	por	%xmm7, %xmm0
	cmpl	$3, %eax
	je	.L9247
	movdqu	192(%rsi), %xmm7
	por	%xmm7, %xmm0
	cmpl	$4, %eax
	je	.L9247
	movdqu	208(%rsi), %xmm6
	por	%xmm6, %xmm0
	cmpl	$5, %eax
	je	.L9247
	xorl	%ecx, %ecx
.L9248:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L9248
	.p2align 4,,10
	.p2align 3
.L9247:

	movdqa	%xmm0, %xmm1
	movl	%edx, %ecx
	psrldq	$8, %xmm1
	andl	$-2, %ecx
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L9249
.L9246:

	movslq	%ecx, %rcx
	orq	144(%rbx,%rcx,8), %rax
.L9249:

	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	testq	%rax, %rcx
	js	.L9245
	leaq	96(%rsp), %rax
	leaq	144(%rbx), %rsi
	movslq	%edx, %rcx
	movq	%rax, %rdi
	movq	%rsi, %rdx
	movq	%rax, 8(%rsp)
	leaq	16(%rsp), %r12
	leaq	296(%r15), %r13
	movq	%r13, %r8
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movslq	328(%r15), %r14
	movq	%r14, %rdx
	salq	$3, %rdx
	jne	.L9311
.L9251:

	movq	8(%rsp), %rdx
	movq	%r14, %rcx
	movq	%r13, %r8
	movq	%r12, %rsi
	movq	%r12, %rdi
	leaq	176(%rsp), %r14
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%r13, %r8
	movq	%rbx, %rdx
	movq	%r14, %rdi
	movslq	328(%r15), %rsi
	movq	%rsi, %rcx
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	movslq	328(%r15), %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L9235
	movslq	328(%r15), %rbx
	movq	256(%r15), %rdx
	testq	%rbx, %rbx
	je	.L9252
	movq	%rbx, %rcx
	xorl	%eax, %eax
#APP
# 197 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rsi,%rsi		
	jmp	1f		
.p2align 4			
1:
	movq	(%rbp,%rax,8),%rsi	
	adcq	(%rdx,%rax,8),%rsi	
	movq	%rsi,(%r12,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rsi,%rsi		

# 0 "" 2
#NO_APP
	andl	$1, %esi
	jne	.L9245
	movslq	328(%r15), %rbx
.L9252:

	movq	320(%r15), %rdx
	movq	%rbx, %rcx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	testl	%eax, %eax
	js	.L9312
	.p2align 4,,10
	.p2align 3
.L9245:

	xorl	%eax, %eax
.L9235:

	movq	248(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9313
	addq	$264, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9236:

	.cfi_restore_state
	testl	%edx, %edx
	jle	.L9245
	cmpl	$1, %edx
	je	.L9254
	movl	%edx, %eax
	movdqu	144(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L9240
	movdqu	160(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L9240
	movdqu	176(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L9240
	movdqu	192(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L9240
	movdqu	208(%rbx), %xmm6
	por	%xmm6, %xmm0
	cmpl	$5, %eax
	je	.L9240
	xorl	%ecx, %ecx
.L9241:

	movq	%rcx, %rsi
	addq	$1, %rcx
	salq	$4, %rsi
	movdqu	224(%rbx,%rsi), %xmm1
	leal	5(%rcx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L9241
	.p2align 4,,10
	.p2align 3
.L9240:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L9242
	andl	$-2, %edx
.L9239:

	movslq	%edx, %rdx
	orq	144(%rbx,%rdx,8), %rax
.L9242:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	js	.L9245
	leaq	176(%rsp), %r12
	movq	%rbx, %rdx
	movq	%r15, %rdi
	movq	%r12, %rsi
# WAS call	ec_get_x_coordinate_as_scalar
	call	.Lec_get_x_coordinate_as_scalar_local_target
	testl	%eax, %eax
	je	.L9245
	movslq	264(%r15), %rdx
	movl	$1, %eax
	salq	$3, %rdx
	je	.L9235
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	jmp	.L9235
	.p2align 4,,10
	.p2align 3
.L9311:

	movl	$72, %ecx
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	jmp	.L9251
.L9254:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L9239
.L9312:

	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rsi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movslq	328(%r15), %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	jmp	.L9235
.L9256:

	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L9246
.L9313:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1887:

	.size	ec_GFp_mont_cmp_x_coordinate, .-ec_GFp_mont_cmp_x_coordinate
# WAS .section	.text.ec_get_x_coordinate_as_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_get_x_coordinate_as_bytes
	.hidden	ec_get_x_coordinate_as_bytes
	.type	ec_get_x_coordinate_as_bytes, @function
.Lec_get_x_coordinate_as_bytes_local_target:
ec_get_x_coordinate_as_bytes:
.LFB1823:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	addq	$320, %rdi
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %ebp
	cmpq	%rbp, %r13
	jb	.L9321
	movq	(%rbx), %rax
	movq	%rsp, %r13
	xorl	%ecx, %ecx
	movq	%r14, %rsi
	movq	%r13, %rdx
	movq	%rbx, %rdi
	call	*(%rax)
	testl	%eax, %eax
	je	.L9316
	movq	(%rbx), %rax
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
	call	*104(%rax)
	movq	%rbp, (%r12)
	movl	$1, %eax
.L9314:

	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9322
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9321:

	.cfi_restore_state
	movl	$1048, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L9316:

	xorl	%eax, %eax
	jmp	.L9314
.L9322:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1823:

	.size	ec_get_x_coordinate_as_bytes, .-ec_get_x_coordinate_as_bytes
# WAS .section	.text.ec_set_to_safe_point,"ax",@progbits
.text
	.p2align 4
	.globl	ec_set_to_safe_point
	.hidden	ec_set_to_safe_point
	.type	ec_set_to_safe_point, @function
.Lec_set_to_safe_point_local_target:
ec_set_to_safe_point:
.LFB1824:

	.cfi_startproc
	endbr64
	movl	532(%rdi), %eax
	testl	%eax, %eax
	je	.L9324
	movdqu	16(%rdi), %xmm1
	movups	%xmm1, (%rsi)
	movdqu	32(%rdi), %xmm2
	movups	%xmm2, 16(%rsi)
	movdqu	48(%rdi), %xmm3
	movups	%xmm3, 32(%rsi)
	movdqu	64(%rdi), %xmm4
	movups	%xmm4, 48(%rsi)
	movq	80(%rdi), %rax
	movq	%rax, 64(%rsi)
	movdqu	88(%rdi), %xmm5
	movups	%xmm5, 72(%rsi)
	movdqu	104(%rdi), %xmm6
	movups	%xmm6, 88(%rsi)
	movdqu	120(%rdi), %xmm7
	movups	%xmm7, 104(%rsi)
	movdqu	136(%rdi), %xmm1
	movups	%xmm1, 120(%rsi)
	movq	152(%rdi), %rdx
	movq	%rdx, 136(%rsi)
	movdqu	160(%rdi), %xmm2
	movups	%xmm2, 144(%rsi)
	movdqu	176(%rdi), %xmm3
	movups	%xmm3, 160(%rsi)
	movdqu	192(%rdi), %xmm4
	movups	%xmm4, 176(%rsi)
	movdqu	208(%rdi), %xmm5
	movups	%xmm5, 192(%rsi)
	movq	224(%rdi), %rdx
	movq	%rdx, 208(%rsi)
	ret
	.p2align 4,,10
	.p2align 3
.L9324:

	pxor	%xmm0, %xmm0
	movq	$0, 64(%rsi)
	movq	$0, 136(%rsi)
	movq	$0, 208(%rsi)
	movups	%xmm0, (%rsi)
	movups	%xmm0, 16(%rsi)
	movups	%xmm0, 32(%rsi)
	movups	%xmm0, 48(%rsi)
	movups	%xmm0, 72(%rsi)
	movups	%xmm0, 88(%rsi)
	movups	%xmm0, 104(%rsi)
	movups	%xmm0, 120(%rsi)
	movups	%xmm0, 144(%rsi)
	movups	%xmm0, 160(%rsi)
	movups	%xmm0, 176(%rsi)
	movups	%xmm0, 192(%rsi)
	ret
	.cfi_endproc
.LFE1824:

	.size	ec_set_to_safe_point, .-ec_set_to_safe_point
# WAS .section	.text.EC_GROUP_set_asn1_flag,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_set_asn1_flag
	.type	EC_GROUP_set_asn1_flag, @function
.LEC_GROUP_set_asn1_flag_local_target:
EC_GROUP_set_asn1_flag:
.LFB3117:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3117:

	.size	EC_GROUP_set_asn1_flag, .-EC_GROUP_set_asn1_flag
# WAS .section	.text.EC_GROUP_get_asn1_flag,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_asn1_flag
	.type	EC_GROUP_get_asn1_flag, @function
.LEC_GROUP_get_asn1_flag_local_target:
EC_GROUP_get_asn1_flag:
.LFB3121:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE3121:

	.size	EC_GROUP_get_asn1_flag, .-EC_GROUP_get_asn1_flag
# WAS .section	.text.EC_GROUP_method_of,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_method_of
	.type	EC_GROUP_method_of, @function
.LEC_GROUP_method_of_local_target:
EC_GROUP_method_of:
.LFB1827:

	.cfi_startproc
	endbr64
	movl	$305397760, %eax
	ret
	.cfi_endproc
.LFE1827:

	.size	EC_GROUP_method_of, .-EC_GROUP_method_of
# WAS .section	.text.EC_METHOD_get_field_type,"ax",@progbits
.text
	.p2align 4
	.globl	EC_METHOD_get_field_type
	.type	EC_METHOD_get_field_type, @function
.LEC_METHOD_get_field_type_local_target:
EC_METHOD_get_field_type:
.LFB1828:

	.cfi_startproc
	endbr64
	movl	$406, %eax
	ret
	.cfi_endproc
.LFE1828:

	.size	EC_METHOD_get_field_type, .-EC_METHOD_get_field_type
# WAS .section	.text.unlikely.EC_GROUP_set_point_conversion_form,"ax",@progbits
.text
.LCOLDB265:

# WAS .section	.text.EC_GROUP_set_point_conversion_form,"ax",@progbits
.text
.LHOTB265:

	.p2align 4
	.globl	EC_GROUP_set_point_conversion_form
	.type	EC_GROUP_set_point_conversion_form, @function
.LEC_GROUP_set_point_conversion_form_local_target:
EC_GROUP_set_point_conversion_form:
.LFB1829:

	.cfi_startproc
	endbr64
	subl	$2, %esi
	andl	$-3, %esi
	jne	.L9332
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.EC_GROUP_set_point_conversion_form
.text
	.cfi_startproc
	.type	EC_GROUP_set_point_conversion_form.cold, @function
.LEC_GROUP_set_point_conversion_form.cold_local_target:
EC_GROUP_set_point_conversion_form.cold:
.LFSB1829:

.L9332:

	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1829:

# WAS .section	.text.EC_GROUP_set_point_conversion_form
.text
	.size	EC_GROUP_set_point_conversion_form, .-EC_GROUP_set_point_conversion_form
# WAS .section	.text.unlikely.EC_GROUP_set_point_conversion_form
.text
	.size	EC_GROUP_set_point_conversion_form.cold, .-EC_GROUP_set_point_conversion_form.cold
.LCOLDE265:

# WAS .section	.text.EC_GROUP_set_point_conversion_form
.text
.LHOTE265:

# WAS .section	.text.EC_GROUP_set_seed,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_set_seed
	.type	EC_GROUP_set_seed, @function
.LEC_GROUP_set_seed_local_target:
EC_GROUP_set_seed:
.LFB1830:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1830:

	.size	EC_GROUP_set_seed, .-EC_GROUP_set_seed
# WAS .section	.text.EC_GROUP_get0_seed,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get0_seed
	.type	EC_GROUP_get0_seed, @function
.LEC_GROUP_get0_seed_local_target:
EC_GROUP_get0_seed:
.LFB3105:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE3105:

	.size	EC_GROUP_get0_seed, .-EC_GROUP_get0_seed
# WAS .section	.text.EC_GROUP_get_seed_len,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_get_seed_len
	.type	EC_GROUP_get_seed_len, @function
.LEC_GROUP_get_seed_len_local_target:
EC_GROUP_get_seed_len:
.LFB1832:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1832:

	.size	EC_GROUP_get_seed_len, .-EC_GROUP_get_seed_len
# WAS .section	.text.EC_KEY_free,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_free
	.type	EC_KEY_free, @function
.LEC_KEY_free_local_target:
EC_KEY_free:
.LFB1838:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9353
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	32(%rdi), %rdi
# WAS call	CRYPTO_refcount_dec_and_test_zero@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero
	testl	%eax, %eax
	je	.L9338
	movq	40(%rbx), %rax
	testq	%rax, %rax
	je	.L9342
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L9342
	movq	%rbx, %rdi
	call	*%rax
.L9342:

# WAS call	g_ec_ex_data_class_bss_get@PLT
	call	g_ec_ex_data_class_bss_get
	leaq	48(%rbx), %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_free_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_free_ex_data
	movq	(%rbx), %rdi
# WAS call	EC_GROUP_free@PLT
	call	.LEC_GROUP_free_local_target
	movq	8(%rbx), %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L9338:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9353:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE1838:

	.size	EC_KEY_free, .-EC_KEY_free
# WAS .section	.text.EC_KEY_up_ref,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_up_ref
	.type	EC_KEY_up_ref, @function
.LEC_KEY_up_ref_local_target:
EC_KEY_up_ref:
.LFB1840:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	addq	$32, %rdi
# WAS call	CRYPTO_refcount_inc@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_inc
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1840:

	.size	EC_KEY_up_ref, .-EC_KEY_up_ref
# WAS .section	.text.EC_KEY_is_opaque,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_is_opaque
	.type	EC_KEY_is_opaque, @function
.LEC_KEY_is_opaque_local_target:
EC_KEY_is_opaque:
.LFB1841:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L9358
	movl	32(%rdx), %eax
	andl	$1, %eax
.L9358:

	ret
	.cfi_endproc
.LFE1841:

	.size	EC_KEY_is_opaque, .-EC_KEY_is_opaque
# WAS .section	.text.EC_KEY_get0_group,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get0_group
	.type	EC_KEY_get0_group, @function
.LEC_KEY_get0_group_local_target:
EC_KEY_get0_group:
.LFB1842:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE1842:

	.size	EC_KEY_get0_group, .-EC_KEY_get0_group
# WAS .section	.rodata.evp_pkey_tls_encodedpoint_ec_curve_supported.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC266:

	.string	"/aws-lc/crypto/fipsmodule/evp/evp.c"
# WAS .section	.text.evp_pkey_tls_encodedpoint_ec_curve_supported,"ax",@progbits
.text
	.p2align 4
	.type	evp_pkey_tls_encodedpoint_ec_curve_supported, @function
.Levp_pkey_tls_encodedpoint_ec_curve_supported_local_target:
evp_pkey_tls_encodedpoint_ec_curve_supported:
.LFB2170:

	.cfi_startproc
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L9377
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rdi
	testq	%rax, %rax
	je	.L9378
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L9368
	cmpl	$415, %eax
	je	.L9368
.L9367:

	subl	$715, %eax
	movl	$1, %edx
	cmpl	$1, %eax
	ja	.L9379
	movl	%edx, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9368:

	.cfi_restore_state
	movl	$1, %edx
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	movl	%edx, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L9377:

	.cfi_restore_state
	movl	$67, %edx
	movl	$611, %r8d
	xorl	%esi, %esi
	movl	$6, %edi
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
.L9380:

	movl	%edx, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9378:

	.cfi_restore_state
	movl	$118, %edx
	movl	$617, %r8d
	xorl	%esi, %esi
	movl	$6, %edi
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
	jmp	.L9380
	.p2align 4,,10
	.p2align 3
.L9379:

	movl	$129, %edx
	movl	$626, %r8d
	xorl	%esi, %esi
	movl	$6, %edi
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
	jmp	.L9380
	.cfi_endproc
.LFE2170:

	.size	evp_pkey_tls_encodedpoint_ec_curve_supported, .-evp_pkey_tls_encodedpoint_ec_curve_supported
# WAS .section	.text.EC_KEY_get0_private_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get0_private_key
	.type	EC_KEY_get0_private_key, @function
.LEC_KEY_get0_private_key_local_target:
EC_KEY_get0_private_key:
.LFB1844:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	ret
	.cfi_endproc
.LFE1844:

	.size	EC_KEY_get0_private_key, .-EC_KEY_get0_private_key
# WAS .section	.text.EC_KEY_get0_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get0_public_key
	.type	EC_KEY_get0_public_key, @function
.LEC_KEY_get0_public_key_local_target:
EC_KEY_get0_public_key:
.LFB1846:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE1846:

	.size	EC_KEY_get0_public_key, .-EC_KEY_get0_public_key
# WAS .section	.text.EC_KEY_get_enc_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_enc_flags
	.type	EC_KEY_get_enc_flags, @function
.LEC_KEY_get_enc_flags_local_target:
EC_KEY_get_enc_flags:
.LFB1848:

	.cfi_startproc
	endbr64
	movl	24(%rdi), %eax
	ret
	.cfi_endproc
.LFE1848:

	.size	EC_KEY_get_enc_flags, .-EC_KEY_get_enc_flags
# WAS .section	.text.EC_KEY_set_enc_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_enc_flags
	.type	EC_KEY_set_enc_flags, @function
.LEC_KEY_set_enc_flags_local_target:
EC_KEY_set_enc_flags:
.LFB1849:

	.cfi_startproc
	endbr64
	movl	%esi, 24(%rdi)
	ret
	.cfi_endproc
.LFE1849:

	.size	EC_KEY_set_enc_flags, .-EC_KEY_set_enc_flags
# WAS .section	.text.EC_KEY_get_conv_form,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_conv_form
	.type	EC_KEY_get_conv_form, @function
.LEC_KEY_get_conv_form_local_target:
EC_KEY_get_conv_form:
.LFB1850:

	.cfi_startproc
	endbr64
	movl	28(%rdi), %eax
	ret
	.cfi_endproc
.LFE1850:

	.size	EC_KEY_get_conv_form, .-EC_KEY_get_conv_form
# WAS .section	.text.EC_KEY_set_conv_form,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_conv_form
	.type	EC_KEY_set_conv_form, @function
.LEC_KEY_set_conv_form_local_target:
EC_KEY_set_conv_form:
.LFB1851:

	.cfi_startproc
	endbr64
	movl	%esi, 28(%rdi)
	ret
	.cfi_endproc
.LFE1851:

	.size	EC_KEY_set_conv_form, .-EC_KEY_set_conv_form
# WAS .section	.text.EC_KEY_get_ex_new_index,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_ex_new_index
	.type	EC_KEY_get_ex_new_index, @function
.LEC_KEY_get_ex_new_index_local_target:
EC_KEY_get_ex_new_index:
.LFB1859:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	g_ec_ex_data_class_bss_get@PLT
	call	g_ec_ex_data_class_bss_get
	leaq	4(%rsp), %rsi
	movq	%r12, %r8
	movq	%rbp, %rcx
	movq	%rax, %rdi
	movq	%rbx, %rdx
# WAS call	CRYPTO_get_ex_new_index@PLT
	call	.Lbcm_redirector_CRYPTO_get_ex_new_index
	testl	%eax, %eax
	je	.L9390
	movl	4(%rsp), %eax
.L9387:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9392
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9390:

	.cfi_restore_state
	movl	$-1, %eax
	jmp	.L9387
.L9392:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1859:

	.size	EC_KEY_get_ex_new_index, .-EC_KEY_get_ex_new_index
# WAS .section	.text.EC_KEY_set_ex_data,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_ex_data
	.type	EC_KEY_set_ex_data, @function
.LEC_KEY_set_ex_data_local_target:
EC_KEY_set_ex_data:
.LFB1860:

	.cfi_startproc
	endbr64
	addq	$48, %rdi
# WAS jmp	CRYPTO_set_ex_data@PLT
	jmp	.Lbcm_redirector_CRYPTO_set_ex_data
	.cfi_endproc
.LFE1860:

	.size	EC_KEY_set_ex_data, .-EC_KEY_set_ex_data
# WAS .section	.text.EC_KEY_get_ex_data,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_ex_data
	.type	EC_KEY_get_ex_data, @function
.LEC_KEY_get_ex_data_local_target:
EC_KEY_get_ex_data:
.LFB1861:

	.cfi_startproc
	endbr64
	addq	$48, %rdi
# WAS jmp	CRYPTO_get_ex_data@PLT
	jmp	.Lbcm_redirector_CRYPTO_get_ex_data
	.cfi_endproc
.LFE1861:

	.size	EC_KEY_get_ex_data, .-EC_KEY_get_ex_data
# WAS .section	.text.EC_KEY_set_asn1_flag,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_asn1_flag
	.type	EC_KEY_set_asn1_flag, @function
.LEC_KEY_set_asn1_flag_local_target:
EC_KEY_set_asn1_flag:
.LFB3119:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3119:

	.size	EC_KEY_set_asn1_flag, .-EC_KEY_set_asn1_flag
# WAS .section	.text.EC_KEY_OpenSSL,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_OpenSSL
	.type	EC_KEY_OpenSSL, @function
.LEC_KEY_OpenSSL_local_target:
EC_KEY_OpenSSL:
.LFB1864:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_KEY_OpenSSL_once_bss_get@PLT
	call	EC_KEY_OpenSSL_once_bss_get
# WAS leaq	EC_KEY_OpenSSL_init(%rip), %rsi
	leaq	.LEC_KEY_OpenSSL_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_KEY_OpenSSL_storage_bss_get@PLT
	jmp	EC_KEY_OpenSSL_storage_bss_get
	.cfi_endproc
.LFE1864:

	.size	EC_KEY_OpenSSL, .-EC_KEY_OpenSSL
# WAS .section	.text.EC_KEY_get_default_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_default_method
	.type	EC_KEY_get_default_method, @function
.LEC_KEY_get_default_method_local_target:
EC_KEY_get_default_method:
.LFB1866:

	.cfi_startproc
	endbr64
# WAS jmp	EC_KEY_OpenSSL@PLT
	jmp	.LEC_KEY_OpenSSL_local_target
	.cfi_endproc
.LFE1866:

	.size	EC_KEY_get_default_method, .-EC_KEY_get_default_method
# WAS .section	.text.EC_KEY_new_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_new_method
	.type	EC_KEY_new_method, @function
.LEC_KEY_new_method_local_target:
EC_KEY_new_method:
.LFB1836:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	movl	$56, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L9400
	movq	%rax, %rbx
	testq	%rbp, %rbp
	je	.L9414
	movq	%rbp, %rdi
# WAS call	ENGINE_get_EC@PLT
	call	.Lbcm_redirector_ENGINE_get_EC
	movq	%rax, 40(%rbx)
	testq	%rax, %rax
	je	.L9415
.L9403:

	movq	.LC267(%rip), %rax
	leaq	48(%rbx), %rbp
	movq	%rbp, %rdi
	movq	%rax, 28(%rbx)
# WAS call	CRYPTO_new_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_new_ex_data
	movq	40(%rbx), %rax
	testq	%rax, %rax
	je	.L9399
	movq	(%rax), %rax
	testq	%rax, %rax
	je	.L9399
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L9416
.L9399:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9414:

	.cfi_restore_state
	movq	40(%rax), %rax
	testq	%rax, %rax
	jne	.L9403
.L9415:

# WAS call	EC_KEY_get_default_method@PLT
	call	.LEC_KEY_get_default_method_local_target
	movq	%rax, 40(%rbx)
	jmp	.L9403
	.p2align 4,,10
	.p2align 3
.L9416:

# WAS call	g_ec_ex_data_class_bss_get@PLT
	call	g_ec_ex_data_class_bss_get
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_free_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_free_ex_data
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L9400:

	xorl	%ebx, %ebx
	jmp	.L9399
	.cfi_endproc
.LFE1836:

	.size	EC_KEY_new_method, .-EC_KEY_new_method
# WAS .section	.text.EC_KEY_new,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_new
	.type	EC_KEY_new, @function
.LEC_KEY_new_local_target:
EC_KEY_new:
.LFB1835:

	.cfi_startproc
	endbr64
	xorl	%edi, %edi
# WAS jmp	EC_KEY_new_method@PLT
	jmp	.LEC_KEY_new_method_local_target
	.cfi_endproc
.LFE1835:

	.size	EC_KEY_new, .-EC_KEY_new
# WAS .section	.text.EC_KEY_new_by_curve_name,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_new_by_curve_name
	.type	EC_KEY_new_by_curve_name, @function
.LEC_KEY_new_by_curve_name_local_target:
EC_KEY_new_by_curve_name:
.LFB1837:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	testq	%rax, %rax
	je	.L9419
	movl	%ebp, %edi
	movq	%rax, %rbx
# WAS call	EC_GROUP_new_by_curve_name@PLT
	call	.LEC_GROUP_new_by_curve_name_local_target
	movq	%rax, (%rbx)
	testq	%rax, %rax
	je	.L9425
.L9418:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9425:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
	.p2align 4,,10
	.p2align 3
.L9419:

	xorl	%ebx, %ebx
	jmp	.L9418
	.cfi_endproc
.LFE1837:

	.size	EC_KEY_new_by_curve_name, .-EC_KEY_new_by_curve_name
# WAS .section	.rodata.EC_KEY_METHOD_new.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC268:

	.string	"/aws-lc/crypto/fipsmodule/ec/ec_key.c"
# WAS .section	.text.EC_KEY_METHOD_new,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_METHOD_new
	.type	EC_KEY_METHOD_new, @function
.LEC_KEY_METHOD_new_local_target:
EC_KEY_METHOD_new:
.LFB1867:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movl	$40, %edi
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L9433
	testq	%rbx, %rbx
	je	.L9426
	movdqu	(%rbx), %xmm0
	movups	%xmm0, (%rax)
	movdqu	16(%rbx), %xmm1
	movups	%xmm1, 16(%rax)
	movq	32(%rbx), %rdx
	movq	%rdx, 32(%rax)
.L9426:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9433:

	.cfi_restore_state
	movl	$582, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$65, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movq	%rax, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %rax
	jmp	.L9426
	.cfi_endproc
.LFE1867:

	.size	EC_KEY_METHOD_new, .-EC_KEY_METHOD_new
# WAS .section	.text.EC_KEY_METHOD_free,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_METHOD_free
	.type	EC_KEY_METHOD_free, @function
.LEC_KEY_METHOD_free_local_target:
EC_KEY_METHOD_free:
.LFB3135:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9434
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L9434:

	ret
	.cfi_endproc
.LFE3135:

	.size	EC_KEY_METHOD_free, .-EC_KEY_METHOD_free
# WAS .section	.text.EC_KEY_set_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_method
	.type	EC_KEY_set_method, @function
.LEC_KEY_set_method_local_target:
EC_KEY_set_method:
.LFB1869:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9440
	testq	%rsi, %rsi
	je	.L9440
	movq	%rsi, 40(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L9440:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$600, %r8d
	leaq	.LC268(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1869:

	.size	EC_KEY_set_method, .-EC_KEY_set_method
# WAS .section	.text.EC_KEY_get_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_get_method
	.type	EC_KEY_get_method, @function
.LEC_KEY_get_method_local_target:
EC_KEY_get_method:
.LFB1870:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9451
	movq	40(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L9451:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
	movl	$610, %r8d
	leaq	.LC268(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1870:

	.size	EC_KEY_get_method, .-EC_KEY_get_method
# WAS .section	.text.EC_KEY_METHOD_set_init_awslc,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_METHOD_set_init_awslc
	.type	EC_KEY_METHOD_set_init_awslc, @function
.LEC_KEY_METHOD_set_init_awslc_local_target:
EC_KEY_METHOD_set_init_awslc:
.LFB1871:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9454
	movq	%rsi, (%rdi)
	movq	%rdx, 8(%rdi)
	ret
	.p2align 4,,10
	.p2align 3
.L9454:

	movl	$620, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE1871:

	.size	EC_KEY_METHOD_set_init_awslc, .-EC_KEY_METHOD_set_init_awslc
# WAS .section	.text.EC_KEY_METHOD_set_sign_awslc,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_METHOD_set_sign_awslc
	.type	EC_KEY_METHOD_set_sign_awslc, @function
.LEC_KEY_METHOD_set_sign_awslc_local_target:
EC_KEY_METHOD_set_sign_awslc:
.LFB1872:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9457
	movq	%rsi, 16(%rdi)
	movq	%rdx, 24(%rdi)
	ret
	.p2align 4,,10
	.p2align 3
.L9457:

	movl	$639, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE1872:

	.size	EC_KEY_METHOD_set_sign_awslc, .-EC_KEY_METHOD_set_sign_awslc
# WAS .section	.text.EC_KEY_METHOD_set_flags,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_METHOD_set_flags
	.type	EC_KEY_METHOD_set_flags, @function
.LEC_KEY_METHOD_set_flags_local_target:
EC_KEY_METHOD_set_flags:
.LFB1873:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L9460
	cmpl	$1, %esi
	jne	.L9460
	orl	$1, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L9460:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1873:

	.size	EC_KEY_METHOD_set_flags, .-EC_KEY_METHOD_set_flags
# WAS .section	.text.EC_GFp_mont_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_mont_method
	.hidden	EC_GFp_mont_method
	.type	EC_GFp_mont_method, @function
.LEC_GFp_mont_method_local_target:
EC_GFp_mont_method:
.LFB1889:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_mont_method_once_bss_get@PLT
	call	EC_GFp_mont_method_once_bss_get
# WAS leaq	EC_GFp_mont_method_init(%rip), %rsi
	leaq	.LEC_GFp_mont_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_mont_method_storage_bss_get@PLT
	jmp	EC_GFp_mont_method_storage_bss_get
	.cfi_endproc
.LFE1889:

	.size	EC_GFp_mont_method, .-EC_GFp_mont_method
# WAS .section	.text.ec_nistp_point_double,"ax",@progbits
.text
	.p2align 4
	.globl	ec_nistp_point_double
	.hidden	ec_nistp_point_double
	.type	ec_nistp_point_double, @function
.Lec_nistp_point_double_local_target:
ec_nistp_point_double:
.LFB1892:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$712, %rsp
	.cfi_def_cfa_offset 768
	movq	%r9, 16(%rsp)
	movq	768(%rsp), %rcx
	leaq	144(%rsp), %rbp
	leaq	64(%rsp), %r13
	movq	%rsi, 8(%rsp)
	movq	%r13, %rdi
	movq	%rcx, %rsi
	movq	%fs:40, %rax
	movq	%rax, 696(%rsp)
	xorl	%eax, %eax
	movq	%rcx, 56(%rsp)
	call	*40(%rbx)
	movq	16(%rsp), %rsi
	movq	%rbp, %rdi
	call	*40(%rbx)
	leaq	224(%rsp), %rax
	movq	%r15, %rsi
	movq	%rbp, %rdx
	movq	%rax, %rdi
	movq	%rax, 48(%rsp)
	call	*32(%rbx)
	movq	%r13, %rdx
	movq	%r15, %rsi
	movq	%r13, 24(%rsp)
	leaq	304(%rsp), %rax
	leaq	384(%rsp), %r13
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
	call	*24(%rbx)
	movq	%r15, %rsi
	movq	%r13, %rdi
	movq	24(%rsp), %rdx
	call	*16(%rbx)
	leaq	464(%rsp), %r15
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	call	*16(%rbx)
	movq	%r15, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*16(%rbx)
	leaq	544(%rsp), %rcx
	movq	%r13, %rdx
	movq	32(%rsp), %rsi
	movq	%rcx, %r13
	movq	%rcx, %rdi
	call	*32(%rbx)
	movq	%r13, %rsi
	movq	%r13, 40(%rsp)
	movq	8(%rsp), %rdi
	call	*40(%rbx)
	movq	48(%rsp), %rax
	leaq	624(%rsp), %r13
	movq	%r13, %rdi
	movq	%rax, %rdx
	movq	%rax, %rsi
	call	*16(%rbx)
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*16(%rbx)
	movq	%r15, %rdi
	movq	%r13, %rdx
	movq	%r13, %rsi
	call	*16(%rbx)
	movq	8(%rsp), %rax
	movq	%r15, %rdx
	movq	%rax, %rsi
	movq	%rax, %rdi
	call	*24(%rbx)
	movq	32(%rsp), %r15
	movq	56(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%r15, %rdi
	call	*16(%rbx)
	movq	%r15, %rsi
	movq	%r14, %rdi
	call	*40(%rbx)
	movq	%rbp, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*24(%rbx)
	movq	24(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*24(%rbx)
	movq	8(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	*24(%rbx)
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	call	*16(%rbx)
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	call	*40(%rbx)
	movq	40(%rsp), %rsi
	movq	%r12, %rdx
	movq	%r12, %rdi
	call	*32(%rbx)
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	call	*16(%rbx)
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbx)
	movq	696(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9466
	addq	$712, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9466:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1892:

	.size	ec_nistp_point_double, .-ec_nistp_point_double
# WAS .section	.text.fiat_p256_point_double,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_point_double, @function
.Lfiat_p256_point_double_local_target:
fiat_p256_point_double:
.LFB1976:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	%r15
	.cfi_def_cfa_offset 80
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1976:

	.size	fiat_p256_point_double, .-fiat_p256_point_double
# WAS .section	.text.ec_GFp_nistp256_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_dbl, @function
.Lec_GFp_nistp256_dbl_local_target:
ec_GFp_nistp256_dbl:
.LFB1985:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %rax
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movdqu	(%rax), %xmm0
	movdqu	16(%rax), %xmm1
	movdqu	72(%rax), %xmm2
	movdqu	88(%rax), %xmm3
	movq	%rsp, %rbp
	leaq	32(%rsp), %r12
	movq	%fs:40, %rdx
	movq	%rdx, 104(%rsp)
	xorl	%edx, %edx
	movaps	%xmm0, (%rsp)
	leaq	64(%rsp), %r13
	movdqu	144(%rax), %xmm4
	movdqu	160(%rax), %xmm5
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm3, 48(%rsp)
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 80(%rsp)
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 168
	movq	%r12, %r9
	movq	%rbp, %r8
	pushq	%r13
	.cfi_def_cfa_offset 176
	movq	%rax, %rdi
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	movdqa	16(%rsp), %xmm6
	movdqa	32(%rsp), %xmm7
	movdqa	48(%rsp), %xmm0
	movdqa	64(%rsp), %xmm1
	movdqa	80(%rsp), %xmm2
	movdqa	96(%rsp), %xmm3
	movups	%xmm6, (%rbx)
	movq	%rbp, %rsp
	.cfi_def_cfa_offset 160
	movups	%xmm7, 16(%rbx)
	movups	%xmm0, 72(%rbx)
	movups	%xmm1, 88(%rbx)
	movups	%xmm2, 144(%rbx)
	movups	%xmm3, 160(%rbx)
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9472
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L9472:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1985:

	.size	ec_GFp_nistp256_dbl, .-ec_GFp_nistp256_dbl
# WAS .section	.text.p384_point_double,"ax",@progbits
.text
	.p2align 4
	.type	p384_point_double, @function
.Lp384_point_double_local_target:
p384_point_double:
.LFB2021:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	%r15
	.cfi_def_cfa_offset 80
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2021:

	.size	p384_point_double, .-p384_point_double
# WAS .section	.text.ec_GFp_nistp384_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_dbl, @function
.Lec_GFp_nistp384_dbl_local_target:
ec_GFp_nistp384_dbl:
.LFB2028:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$168, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r13
	leaq	48(%rsp), %r12
	movq	%r13, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	72(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	144(%rbp), %rsi
	leaq	96(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 216
	movq	%r12, %r9
	movq	%r13, %r8
	pushq	%rbp
	.cfi_def_cfa_offset 224
	movq	%rax, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r13, %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	72(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	144(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movq	%r13, %rsp
	.cfi_def_cfa_offset 208
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9478
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L9478:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2028:

	.size	ec_GFp_nistp384_dbl, .-ec_GFp_nistp384_dbl
# WAS .section	.text.p521_point_double,"ax",@progbits
.text
	.p2align 4
	.type	p521_point_double, @function
.Lp521_point_double_local_target:
p521_point_double:
.LFB2045:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	%r15
	.cfi_def_cfa_offset 80
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2045:

	.size	p521_point_double, .-p521_point_double
# WAS .section	.text.ec_GFp_nistp521_dbl,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_dbl, @function
.Lec_GFp_nistp521_dbl_local_target:
ec_GFp_nistp521_dbl:
.LFB2052:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$248, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r13
	leaq	80(%rsp), %r12
	movq	%r13, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	72(%rbp), %rsi
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	144(%rbp), %rsi
	leaq	160(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 296
	movq	%r12, %r9
	movq	%r13, %r8
	pushq	%rbp
	.cfi_def_cfa_offset 304
	movq	%rax, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%r13, %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	movq	%r13, %rsi
	movq	$0, 64(%rbx)
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	72(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r12, %rsi
	movups	%xmm0, 72(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	144(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movups	%xmm0, 144(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	%r13, %rsp
	.cfi_def_cfa_offset 288
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9484
	addq	$248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L9484:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2052:

	.size	ec_GFp_nistp521_dbl, .-ec_GFp_nistp521_dbl
# WAS .section	.text.ec_nistp_point_add.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	ec_nistp_point_add.constprop.0, @function
.Lec_nistp_point_add.constprop.0_local_target:
ec_nistp_point_add.constprop.0:
.LFB3281:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1400, %rsp
	.cfi_def_cfa_offset 1456
	movq	1464(%rsp), %rax
	movq	1456(%rsp), %rbx
	movq	%rdx, 88(%rsp)
	leaq	352(%rsp), %r12
	movq	1480(%rsp), %r14
	movq	%rsi, 64(%rsp)
	movq	%rax, 24(%rsp)
	movq	1472(%rsp), %rax
	movq	%rbx, %rdi
	movq	%rcx, 72(%rsp)
	movq	%r8, 80(%rsp)
	movq	%r9, 48(%rsp)
	movq	%rbx, (%rsp)
	movq	%rax, 32(%rsp)
	movq	%r14, 96(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 1384(%rsp)
	xorl	%eax, %eax
	call	*56(%rbp)
	movq	%r14, %rdi
	movq	%rax, %r15
	call	*56(%rbp)
	movq	%r12, %rdi
	movq	%rbx, %rsi
	movq	%rax, 56(%rsp)
	call	*40(%rbp)
	movq	0(%rbp), %rdx
	leaq	432(%rsp), %rdi
	movq	%rdi, 16(%rsp)
	salq	$3, %rdx
	je	.L9486
	movl	$72, %ecx
	movq	%r13, %rsi
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
.L9486:

	movq	(%rsp), %rsi
	leaq	592(%rsp), %r13
	movq	%r13, %rdi
	movq	%rsi, %rdx
	call	*16(%rbp)
	movq	0(%rbp), %rdx
	leaq	512(%rsp), %rdi
	movq	%rdi, 8(%rsp)
	salq	$3, %rdx
	je	.L9487
	movq	48(%rsp), %rsi
	movl	$72, %ecx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
.L9487:

	leaq	672(%rsp), %rbx
	leaq	752(%rsp), %r14
	movq	%r12, %rdx
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
	call	*32(%rbp)
	movq	%rbx, %rsi
	movq	16(%rsp), %rdx
	movq	%r14, %rdi
	call	*24(%rbp)
	movq	%r14, %rdi
	call	*56(%rbp)
	movq	%r13, %rdx
	leaq	832(%rsp), %r13
	movq	%r14, %rsi
	movq	%rax, %rbx
	leaq	272(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
	call	*32(%rbp)
	movq	%r12, %rdx
	movq	%r13, %rdi
	movq	(%rsp), %rsi
	call	*32(%rbp)
	leaq	912(%rsp), %r12
	movq	%r13, %rdx
	movq	32(%rsp), %rsi
	leaq	992(%rsp), %r13
	movq	%r12, %rdi
	call	*32(%rbp)
	movq	8(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r13, %rdi
	call	*24(%rbp)
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*16(%rbp)
	movq	%r13, %rdi
	call	*56(%rbp)
	movq	%r15, %rsi
	subq	$1, %r15
	orq	%rax, %rbx
	notq	%rsi
	movq	%rbx, %rdx
	movq	56(%rsp), %rbx
	movq	%rsi, %rax
	andq	%r15, %rax
	movq	%rbx, %rsi
	subq	$1, %rbx
	notq	%rsi
	andq	%rbx, %rsi
	movq	%rdx, %rbx
	subq	$1, %rdx
	movq	%rsi, %rcx
	notq	%rbx
	movq	%rsi, 56(%rsp)
	orq	%rax, %rcx
	andq	%rdx, %rbx
	movq	%rcx, %rdx
	sarq	$63, %rbx
	sarq	$63, %rdx
	notq	%rdx
	andq	%rdx, %rbx
	testq	%rbx, %rbx
	jne	.L9519
	leaq	1072(%rsp), %r12
	movq	%rax, 104(%rsp)
	movq	%r14, %rdx
	movq	%r14, %rsi
	leaq	1152(%rsp), %r15
	movq	%r12, %rdi
	call	*16(%rbp)
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*40(%rbp)
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
	call	*32(%rbp)
	leaq	1232(%rsp), %r14
	movq	%r12, %rdx
	leaq	112(%rsp), %r12
	movq	16(%rsp), %rsi
	movq	%r14, %rdi
	call	*32(%rbp)
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	*40(%rbp)
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	leaq	192(%rsp), %r8
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r8, %rdi
	movq	%r8, 16(%rsp)
	call	*24(%rbp)
	movq	16(%rsp), %r8
	movq	%r13, %rdx
	leaq	1312(%rsp), %r13
	movq	%r8, %rsi
	movq	%r8, %rdi
	call	*32(%rbp)
	movq	8(%rsp), %rsi
	movq	%r15, %rdx
	movq	%r13, %rdi
	call	*32(%rbp)
	movq	16(%rsp), %r8
	movq	%r13, %rdx
	movq	%r8, %rsi
	movq	%r8, %rdi
	movq	%r8, 8(%rsp)
	call	*24(%rbp)
	movq	8(%rsp), %r8
	movq	%r13, %rdx
	movq	%r8, %rsi
	movq	%r8, %rdi
	call	*24(%rbp)
	movq	0(%rbp), %r11
	testq	%r11, %r11
	je	.L9485
	movq	104(%rsp), %rax
	leaq	0(,%r11,8), %r10
	movq	24(%rsp), %rcx
	movq	8(%rsp), %r8
	leaq	(%r12,%r10), %r15
	sarq	$63, %rax
	movq	%rax, %r9
	movq	%rax, %rsi
	movq	%r12, %rax
	notq	%r9
	movq	%rsi, %r14
	movq	%r9, %r13
	.p2align 4,,10
	.p2align 3
.L9491:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%r14, %rdx
	andq	%r13, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9491
	movq	32(%rsp), %rcx
	movq	%r8, %rax
	leaq	(%r8,%r10), %r15
	movq	%rsi, %r14
	movq	%r9, %r13
	.p2align 4,,10
	.p2align 3
.L9492:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%r14, %rdx
	andq	%r13, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9492
	movq	40(%rsp), %rdi
	movq	96(%rsp), %rcx
	movq	%rdi, %rax
	addq	%rdi, %r10
	.p2align 4,,10
	.p2align 3
.L9493:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%rsi, %rdx
	andq	%r9, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r10, %rax
	jne	.L9493
	movq	56(%rsp), %rcx
	movq	64(%rsp), %r13
	xorl	%eax, %eax
	movq	80(%rsp), %r14
	sarq	$63, %rcx
	movq	%rcx, %rdi
	movq	%rcx, %r10
	notq	%rdi
	movq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L9494:

	movq	(%r14,%rax,8), %rdx
	movq	(%r12,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%r9, %rsi
	orq	%rsi, %rdx
	movq	%rdx, 0(%r13,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L9494
	movq	0(%rbp), %r11
	xorl	%eax, %eax
	testq	%r11, %r11
	je	.L9485
	movq	88(%rsp), %r12
	movq	48(%rsp), %r13
	movq	%rcx, %r10
	movq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L9495:

	movq	0(%r13,%rax,8), %rdx
	movq	(%r8,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%r9, %rsi
	orq	%rsi, %rdx
	movq	%rdx, (%r12,%rax,8)
	addq	$1, %rax
	cmpq	%r11, %rax
	jne	.L9495
	movq	0(%rbp), %rsi
	testq	%rsi, %rsi
	je	.L9485
	movq	72(%rsp), %r8
	movq	(%rsp), %r9
	movq	40(%rsp), %r10
	.p2align 4,,10
	.p2align 3
.L9496:

	movq	(%r9,%rbx,8), %rax
	movq	(%r10,%rbx,8), %rdx
	andq	%rcx, %rax
	andq	%rdi, %rdx
	orq	%rdx, %rax
	movq	%rax, (%r8,%rbx,8)
	addq	$1, %rbx
	cmpq	%rbx, %rsi
	jne	.L9496
.L9485:

	movq	1384(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9520
	addq	$1400, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9519:

	.cfi_restore_state
	subq	$8, %rsp
	.cfi_def_cfa_offset 1464
	movq	%rbp, %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 1472
	movq	64(%rsp), %r9
	movq	96(%rsp), %r8
	movq	88(%rsp), %rcx
	movq	104(%rsp), %rdx
	movq	80(%rsp), %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 1464
	popq	%rdx
	.cfi_def_cfa_offset 1456
	jmp	.L9485
.L9520:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3281:

	.size	ec_nistp_point_add.constprop.0, .-ec_nistp_point_add.constprop.0
# WAS .section	.text.ec_GFp_nistp256_point_mul_base,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_point_mul_base, @function
.Lec_GFp_nistp256_point_mul_base_local_target:
ec_GFp_nistp256_point_mul_base:
.LFB1987:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$12, %ecx
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$328, %rsp
	.cfi_def_cfa_offset 384
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	xorl	%eax, %eax
	leaq	112(%rsp), %rdi
	movl	$63, 48(%rsp)
	movq	%rdi, 64(%rsp)
	movl	$1, 52(%rsp)
	movq	%rsi, 104(%rsp)
	rep stosq
	leaq	144(%rsp), %rax
	movq	%rax, 80(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	208(%rsp), %rax
	movq	%rax, 56(%rsp)
	leaq	272(%rsp), %rax
	movq	%rax, 88(%rsp)
	leaq	240(%rsp), %rax
	movq	%rax, 72(%rsp)
	.p2align 4,,10
	.p2align 3
.L9527:

	movl	48(%rsp), %ebx
	movq	24(%r15), %rax
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	movq	16(%r15), %rdx
	movq	(%r15), %r10
	xorl	%r11d, %r11d
	xorl	%ebp, %ebp
	movl	%ebx, %ecx
	movq	%rax, %rdi
	movq	8(%r15), %r14
	movq	%rax, 32(%rsp)
	movq	%rdx, %rsi
	shrq	%cl, %rdi
	movq	%r10, 16(%rsp)
	xorl	%r12d, %r12d
	shrq	%cl, %rsi
	shrq	%cl, %r10
	movq	%r14, 8(%rsp)
	salq	$3, %rdi
	salq	$2, %rsi
	movq	%r10, %rcx
	movq	%rdx, 40(%rsp)
	andl	$8, %edi
	andl	$4, %esi
	andl	$1, %ecx
	xorl	%r10d, %r10d
	orq	%rdi, %rsi
	xorl	%edi, %edi
	orq	%rcx, %rsi
	movl	%ebx, %ecx
	xorl	%ebx, %ebx
	shrq	%cl, %r14
	xorl	%ecx, %ecx
	movq	%r14, %r13
	addq	%r13, %r13
	andl	$2, %r13d
	orq	%rsi, %r13
# WAS leaq	960+fiat_p256_g_pre_comp(%rip), %rsi
	leaq	.Lfiat_p256_g_pre_comp_local_target+960(%rip), %rsi
	movq	%r13, 24(%rsp)
	leaq	-1(%r13), %r14
	.p2align 4,,10
	.p2align 3
.L9522:

	xorl	%eax, %eax
	cmpq	%r14, %r12
	movq	(%rsi), %r13
	setne	%al
	addq	$1, %r12
	addq	$64, %rsi
	negq	%rax
	movq	%rax, %rdx
	notq	%rax
	andq	%rdx, %rbp
	andq	%rax, %r13
	andq	%rdx, %rbx
	andq	%rdx, %r11
	orq	%r13, %rbp
	movq	-56(%rsi), %r13
	andq	%rdx, %r10
	andq	%rdx, %r9
	andq	%rdx, %r8
	andq	%rdx, %rdi
	andq	%rcx, %rdx
	andq	%rax, %r13
	orq	%r13, %rbx
	movq	-48(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r11
	movq	-40(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r10
	movq	-32(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r9
	movq	-24(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r8
	movq	-16(%rsi), %r13
	andq	%rax, %r13
	andq	-8(%rsi), %rax
	orq	%rdx, %rax
	orq	%r13, %rdi
	movq	%rax, %rcx
	cmpq	$15, %r12
	jne	.L9522
	movq	24(%rsp), %r13
	movq	%rbp, 208(%rsp)
	movq	%rbx, 216(%rsp)
	movq	32(%rsp), %rax
	negq	%r13
	movl	52(%rsp), %r13d
	movq	%r11, 224(%rsp)
	sbbb	%sil, %sil
	movq	%r10, 232(%rsp)
	movq	40(%rsp), %rdx
	movsbq	%sil, %rsi
	movq	%r9, 240(%rsp)
	movq	%rsi, %xmm0
	movq	%rsi, %r12
	movq	%r8, 248(%rsp)
	punpcklqdq	%xmm0, %xmm0
	pand	.LC161(%rip), %xmm0
	andl	$4294967294, %r12d
	movq	%rdi, 256(%rsp)
	movq	%rcx, 264(%rsp)
	movq	%rsi, 288(%rsp)
	movq	%r12, 296(%rsp)
	movaps	%xmm0, 272(%rsp)
	testl	%r13d, %r13d
	jne	.L9532
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	pushq	88(%rsp)
	.cfi_def_cfa_offset 392
	pushq	80(%rsp)
	.cfi_def_cfa_offset 400
	movq	%rax, %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 408
	movq	120(%rsp), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 416
	movq	112(%rsp), %rdx
	movq	96(%rsp), %rsi
	movq	%rdx, %r9
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	movq	8(%r15), %rcx
	movq	24(%r15), %rax
	movq	16(%r15), %rdx
	movq	%rcx, 40(%rsp)
	movq	(%r15), %rcx
	movq	%rcx, 48(%rsp)
	addq	$32, %rsp
	.cfi_def_cfa_offset 384
.L9524:

	movl	48(%rsp), %ecx
	movq	8(%rsp), %r13
	xorl	%edi, %edi
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	xorl	%r10d, %r10d
	xorl	%r11d, %r11d
	xorl	%ebx, %ebx
	subl	$32, %ecx
	xorl	%ebp, %ebp
	xorl	%r12d, %r12d
	shrq	%cl, %rax
	shrq	%cl, %rdx
	leaq	0(,%rax,8), %rsi
	leaq	0(,%rdx,4), %rax
	movq	16(%rsp), %rdx
	shrq	%cl, %r13
	andl	$8, %esi
	andl	$4, %eax
	addq	%r13, %r13
	shrq	%cl, %rdx
	orq	%rsi, %rax
	andl	$2, %r13d
	xorl	%ecx, %ecx
	andl	$1, %edx
# WAS leaq	fiat_p256_g_pre_comp(%rip), %rsi
	leaq	.Lfiat_p256_g_pre_comp_local_target(%rip), %rsi
	orq	%rdx, %rax
	orq	%rax, %r13
	movq	%r13, 8(%rsp)
	leaq	-1(%r13), %r14
	.p2align 4,,10
	.p2align 3
.L9525:

	xorl	%eax, %eax
	cmpq	%r14, %r12
	movq	(%rsi), %r13
	setne	%al
	addq	$1, %r12
	addq	$64, %rsi
	negq	%rax
	movq	%rax, %rdx
	notq	%rax
	andq	%rdx, %rbp
	andq	%rax, %r13
	andq	%rdx, %rbx
	andq	%rdx, %r11
	orq	%r13, %rbp
	movq	-56(%rsi), %r13
	andq	%rdx, %r10
	andq	%rdx, %r9
	andq	%rdx, %r8
	andq	%rdx, %rdi
	andq	%rcx, %rdx
	andq	%rax, %r13
	orq	%r13, %rbx
	movq	-48(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r11
	movq	-40(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r10
	movq	-32(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r9
	movq	-24(%rsi), %r13
	andq	%rax, %r13
	orq	%r13, %r8
	movq	-16(%rsi), %r13
	andq	%rax, %r13
	andq	-8(%rsi), %rax
	orq	%rdx, %rax
	orq	%r13, %rdi
	movq	%rax, %rcx
	cmpq	$15, %r12
	jne	.L9525
	movq	8(%rsp), %r13
	movq	%rax, 264(%rsp)
	movq	%r11, 224(%rsp)
	negq	%r13
	movq	%r10, 232(%rsp)
	sbbb	%al, %al
	movq	%r9, 240(%rsp)
	movsbq	%al, %rax
	movq	%r8, 248(%rsp)
	movq	%rax, %rdx
	movq	%rax, 288(%rsp)
	andl	$1, %edx
	movq	%rbp, 208(%rsp)
	movq	%rdx, 272(%rsp)
	movabsq	$-4294967296, %rdx
	andq	%rax, %rdx
	andl	$4294967294, %eax
	movq	%rbx, 216(%rsp)
	movq	%rdx, 280(%rsp)
	movq	%rdi, 256(%rsp)
	movq	%rax, 296(%rsp)
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	pushq	88(%rsp)
	.cfi_def_cfa_offset 392
	pushq	80(%rsp)
	.cfi_def_cfa_offset 400
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	72(%rsp)
	.cfi_def_cfa_offset 408
	movq	120(%rsp), %r13
	pushq	%r13
	.cfi_def_cfa_offset 416
	movq	112(%rsp), %r12
	movq	%r13, %rcx
	movq	96(%rsp), %r14
	movq	%r12, %r9
	movq	%r12, %rdx
	movq	%r14, %r8
	movq	%r14, %rsi
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	subl	$1, 80(%rsp)
	movl	80(%rsp), %eax
	addq	$32, %rsp
	.cfi_def_cfa_offset 384
	cmpl	$31, %eax
	je	.L9526
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 392
	movq	%r12, %rdx
	movq	%r12, %r9
	pushq	%r13
	.cfi_def_cfa_offset 400
	movq	%r14, %r8
	movq	%r13, %rcx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 392
	popq	%rdx
	.cfi_def_cfa_offset 384
	movl	$0, 52(%rsp)
	jmp	.L9527
	.p2align 4,,10
	.p2align 3
.L9532:

	movq	%rbp, 112(%rsp)
	movq	%rbx, 120(%rsp)
	movq	%r11, 128(%rsp)
	movq	%r10, 136(%rsp)
	movq	%r9, 144(%rsp)
	movq	%r8, 152(%rsp)
	movq	%rdi, 160(%rsp)
	movq	%rcx, 168(%rsp)
	movq	%rsi, 192(%rsp)
	movq	%r12, 200(%rsp)
	movaps	%xmm0, 176(%rsp)
	jmp	.L9524
.L9526:

	movq	104(%rsp), %r12
	movdqa	112(%rsp), %xmm2
	movdqa	128(%rsp), %xmm3
	movdqa	144(%rsp), %xmm4
	movdqa	160(%rsp), %xmm5
	movups	%xmm2, (%r12)
	movdqa	176(%rsp), %xmm6
	movdqa	192(%rsp), %xmm7
	movups	%xmm3, 16(%r12)
	movups	%xmm4, 72(%r12)
	movups	%xmm5, 88(%r12)
	movups	%xmm6, 144(%r12)
	movups	%xmm7, 160(%r12)
	movq	312(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9533
	addq	$328, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9533:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1987:

	.size	ec_GFp_nistp256_point_mul_base, .-ec_GFp_nistp256_point_mul_base
# WAS .section	.text.ec_GFp_nistp384_point_mul_base,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_point_mul_base, @function
.Lec_GFp_nistp384_point_mul_base_local_target:
ec_GFp_nistp384_point_mul_base:
.LFB2034:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$18, %ecx
	pxor	%xmm0, %xmm0
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	$9, %esi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$648, %rsp
	.cfi_def_cfa_offset 704
	movq	(%rdx), %rdx
	movq	%fs:40, %rax
	movq	%rax, 632(%rsp)
	xorl	%eax, %eax
	leaq	176(%rsp), %rdi
	leaq	464(%rsp), %rbx
	movaps	%xmm0, 416(%rsp)
	movq	%rdi, 72(%rsp)
	movq	%rbx, %r8
	movq	%rdx, %r9
	movq	%rdx, %r10
	movq	%rbx, 96(%rsp)
	movaps	%xmm0, 432(%rsp)
	movaps	%xmm0, 448(%rsp)
	rep stosq
	leaq	464(%rsp), %rdi
	movl	$19, %ecx
	rep stosq
	movl	%edx, %eax
	movl	$10, %edi
	andl	$63, %eax
	orl	$1, %eax
.L9538:

	movl	%eax, %ecx
	cwtl
	andl	$63, %ecx
	subl	$32, %ecx
	movw	%cx, (%r8)
	movswl	%cx, %ecx
	subl	%ecx, %eax
	leal	-3(%rsi), %ecx
	shrq	%cl, %rdx
	leal	-2(%rsi), %ecx
	sarl	$5, %eax
	shrq	%cl, %r9
	addl	%edx, %edx
	leal	0(,%r9,4), %ecx
	andl	$2, %edx
	andl	$4, %ecx
	orl	%ecx, %edx
	leal	-1(%rsi), %ecx
	shrq	%cl, %r10
	orl	%edx, %eax
	leal	0(,%r10,8), %edx
	andl	$8, %edx
	orl	%eax, %edx
	cmpq	$384, %rsi
	jne	.L9535
	movq	%r15, 104(%rsp)
	movl	$3, %r14d
	movl	$75, %eax
	leaq	224(%rsp), %rdi
	movq	%rdi, 48(%rsp)
	leaq	272(%rsp), %rdi
	leaq	320(%rsp), %rbx
	movq	%rdi, 56(%rsp)
	leaq	368(%rsp), %rdi
	movq	%rdi, 80(%rsp)
	leaq	128(%rsp), %rdi
	movw	%dx, 616(%rsp)
	movq	%rbx, 64(%rsp)
	movq	%rdi, 88(%rsp)
	movq	%r13, 112(%rsp)
.L9536:

	cltq
	movl	%r14d, 124(%rsp)
	movq	%rax, %r14
	.p2align 4,,10
	.p2align 3
.L9541:

	movq	96(%rsp), %rax
	xorl	%esi, %esi
	xorl	%r10d, %r10d
	movq	%r14, 40(%rsp)
	movq	$0, 8(%rsp)
	xorl	%r15d, %r15d
	xorl	%edi, %edi
	xorl	%ebp, %ebp
	movzwl	(%rax,%r14,2), %edx
	movq	%rsi, 24(%rsp)
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	movq	$0, 16(%rsp)
	xorl	%r11d, %r11d
	xorl	%r12d, %r12d
	xorl	%r13d, %r13d
	movl	%edx, %eax
	movl	%edx, %ebx
	sarw	$15, %ax
	shrw	$15, %bx
	xorl	%edx, %eax
	movw	%bx, 122(%rsp)
	addl	%ebx, %eax
	xorl	%ebx, %ebx
	sarw	%ax
	movswq	%ax, %rax
	movq	%rax, 32(%rsp)
	movl	%r14d, %eax
	movq	%r10, %r14
	sarl	$2, %eax
	cltq
	leaq	(%rax,%rax,2), %rcx
# WAS leaq	p384_g_pre_comp(%rip), %rax
	leaq	.Lp384_g_pre_comp_local_target(%rip), %rax
	salq	$9, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L9540:

	movq	32(%rsp), %rdx
	movq	(%rcx), %r10
	movq	24(%rsp), %rsi
	xorq	%r13, %rdx
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	sarq	$63, %rax
	movq	%rax, %rdx
	notq	%rax
	andq	%rdx, %r10
	andq	%rax, %r12
	andq	%rax, %rbp
	andq	%rax, %rbx
	orq	%r10, %r12
	movq	8(%rcx), %r10
	andq	%rax, %r11
	andq	%rax, %r14
	andq	%rax, %r9
	andq	%rax, %r8
	andq	%rax, %rdi
	andq	%rax, %rsi
	andq	%rdx, %r10
	orq	%r10, %rbp
	movq	16(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %rbx
	movq	24(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %r11
	movq	32(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %r14
	movq	40(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %r9
	movq	48(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %r8
	movq	56(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %rdi
	movq	64(%rcx), %r10
	andq	%rdx, %r10
	orq	%r10, %rsi
	movq	72(%rcx), %r10
	andq	%rax, %r15
	addq	$1, %r13
	movq	%rsi, 24(%rsp)
	addq	$96, %rcx
	andq	%rdx, %r10
	orq	%r10, %r15
	movq	-16(%rcx), %r10
	andq	%rdx, %r10
	andq	-8(%rcx), %rdx
	movq	%r10, %rsi
	movq	16(%rsp), %r10
	andq	%rax, %r10
	andq	8(%rsp), %rax
	orq	%rsi, %r10
	orq	%rax, %rdx
	movq	%r10, 16(%rsp)
	movq	%rdx, 8(%rsp)
	cmpq	$16, %r13
	jne	.L9540
	movq	24(%rsp), %rsi
	movq	%r15, 392(%rsp)
	movq	%r10, %rax
	movq	%r14, %r10
	movq	80(%rsp), %r15
	movq	%rdi, 376(%rsp)
	movq	88(%rsp), %rdi
	movq	%rsi, 384(%rsp)
	movq	%r15, %rsi
	movq	%r11, 344(%rsp)
	movq	40(%rsp), %r14
	movq	%r10, 352(%rsp)
	movq	%r9, 360(%rsp)
	movq	%r8, 368(%rsp)
	movq	%rbp, 328(%rsp)
	movq	%rbx, 336(%rsp)
	movq	%rax, 400(%rsp)
	movq	%rdx, 408(%rsp)
	movq	%r12, 320(%rsp)
# WAS call	bignum_neg_p384@PLT
	call	.Lbignum_neg_p384_local_target
	cmpw	$1, 122(%rsp)
	movq	368(%rsp), %rdi
	sbbq	%rcx, %rcx
	movq	144(%rsp), %rbx
	subq	$4, %r14
	movq	%rcx, %rdx
	notq	%rcx
	movq	%rcx, %rax
	movq	128(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	andq	%rax, %rbx
	orq	%rdi, %rcx
	movq	136(%rsp), %rdi
	movq	%rcx, 368(%rsp)
	movq	376(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	152(%rsp), %rdi
	movq	%rcx, 376(%rsp)
	movq	384(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	160(%rsp), %rbx
	movq	%rcx, 384(%rsp)
	movq	392(%rsp), %rcx
	andq	%rax, %rbx
	andq	168(%rsp), %rax
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	%rcx, 392(%rsp)
	movq	400(%rsp), %rcx
	andq	%rdx, %rcx
	andq	408(%rsp), %rdx
	orq	%rbx, %rcx
	orq	%rdx, %rax
	movq	%rcx, 400(%rsp)
	movq	%rax, 408(%rsp)
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	movq	%rax, %rbx
# WAS leaq	p384_felem_one(%rip), %rax
	leaq	.Lp384_felem_one_local_target(%rip), %rax
	pushq	%rax
	.cfi_def_cfa_offset 712
	movq	%rbx, %rdi
	pushq	%r15
	.cfi_def_cfa_offset 720
	pushq	80(%rsp)
	.cfi_def_cfa_offset 728
	movq	80(%rsp), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 736
	movq	80(%rsp), %rdx
	movq	104(%rsp), %rsi
	movq	%rdx, %r9
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 704
	testl	%r14d, %r14d
	jns	.L9541
	movl	124(%rsp), %r14d
	subl	$1, %r14d
	jb	.L9551
	movl	%r14d, 8(%rsp)
	movq	72(%rsp), %r13
	movl	$5, %r12d
	movq	48(%rsp), %r14
	movq	56(%rsp), %r15
	.p2align 4,,10
	.p2align 3
.L9539:

# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 712
	movq	%r14, %rdx
	movq	%r14, %r9
	pushq	%r15
	.cfi_def_cfa_offset 720
	movq	%r13, %r8
	movq	%r15, %rcx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 712
	popq	%rdx
	.cfi_def_cfa_offset 704
	subl	$1, %r12d
	jne	.L9539
	movl	8(%rsp), %r14d
	movl	$76, %eax
	subl	%r14d, %eax
	andl	$-4, %eax
	addl	%r14d, %eax
	jmp	.L9536
.L9535:

	movq	%rsi, %rax
	movl	%esi, %ecx
	shrq	$6, %rax
	movq	0(%r13,%rax,8), %rax
	shrq	%cl, %rax
	sall	$4, %eax
	andl	$16, %eax
	orl	%edx, %eax
	cmpq	$384, %rdi
	je	.L9537
	movq	%rdi, %rdx
	movl	%edi, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	orl	%edx, %eax
.L9537:

	leaq	4(%rsi), %rcx
	leaq	2(%rsi), %rdx
	addq	$2, %r8
	addq	$5, %rdi
	shrq	$6, %rcx
	shrq	$6, %rdx
	movq	0(%r13,%rcx,8), %r10
	leaq	3(%rsi), %rcx
	movq	0(%r13,%rdx,8), %rdx
	addq	$5, %rsi
	shrq	$6, %rcx
	movq	0(%r13,%rcx,8), %r9
	jmp	.L9538
.L9551:

	movq	80(%rsp), %r14
# WAS movdqa	p384_g_pre_comp(%rip), %xmm1
	movdqa	.Lp384_g_pre_comp_local_target(%rip), %xmm1
# WAS leaq	48+p384_g_pre_comp(%rip), %rsi
	leaq	.Lp384_g_pre_comp_local_target+48(%rip), %rsi
# WAS movdqa	16+p384_g_pre_comp(%rip), %xmm2
	movdqa	.Lp384_g_pre_comp_local_target+16(%rip), %xmm2
# WAS movdqa	32+p384_g_pre_comp(%rip), %xmm3
	movdqa	.Lp384_g_pre_comp_local_target+32(%rip), %xmm3
	movq	%r14, %rdi
	movq	104(%rsp), %r15
	movq	112(%rsp), %r13
	movaps	%xmm1, 320(%rsp)
	movaps	%xmm2, 336(%rsp)
	movaps	%xmm3, 352(%rsp)
# WAS call	bignum_neg_p384@PLT
	call	.Lbignum_neg_p384_local_target
	movq	%rbp, %rdi
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS leaq	p384_felem_one(%rip), %rax
	leaq	.Lp384_felem_one_local_target(%rip), %rax
	movq	%r14, %rdx
	movq	%rbx, %rdi
	leaq	416(%rsp), %rcx
	pushq	%rax
	.cfi_def_cfa_offset 712
	pushq	%r14
	.cfi_def_cfa_offset 720
	movq	80(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 728
	movq	80(%rsp), %r12
	pushq	%r12
	.cfi_def_cfa_offset 736
	movq	80(%rsp), %rbp
	movq	104(%rsp), %r14
	movq	%rbp, %r9
	movq	%r14, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	movq	0(%r13), %rax
	movq	%r14, %rsi
	movq	208(%rsp), %rcx
	movq	352(%rsp), %rbx
	movq	360(%rsp), %rdi
	andl	$1, %eax
	leaq	-1(%rax), %rdx
	negq	%rax
	andq	%rdx, %rbx
	andq	%rax, %rcx
	andq	%rdx, %rdi
	orq	%rbx, %rcx
	movq	368(%rsp), %rbx
	movq	%rcx, 208(%rsp)
	movq	216(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	376(%rsp), %rdi
	movq	%rcx, 216(%rsp)
	movq	224(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	384(%rsp), %rbx
	movq	%rcx, 224(%rsp)
	movq	232(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	248(%rsp), %rdi
	movq	%rcx, 232(%rsp)
	movq	240(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	400(%rsp), %rbx
	movq	%rcx, 240(%rsp)
	movq	392(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	408(%rsp), %rdi
	movq	%rcx, 248(%rsp)
	movq	256(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	416(%rsp), %rbx
	movq	%rcx, 256(%rsp)
	movq	264(%rsp), %rcx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	424(%rsp), %rdi
	movq	%rcx, 264(%rsp)
	movq	272(%rsp), %rcx
	andq	%rax, %rcx
	andq	%rdx, %rbx
	andq	%rdx, %rdi
	orq	%rbx, %rcx
	movq	%rcx, 272(%rsp)
	movq	280(%rsp), %rcx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	%rcx, 280(%rsp)
	movq	288(%rsp), %rcx
	movq	432(%rsp), %rbx
	movq	296(%rsp), %rdi
	andq	%rax, %rcx
	andq	%rdx, %rbx
	andq	%rax, %rdi
	orq	%rbx, %rcx
	movq	304(%rsp), %rbx
	movq	%rcx, 288(%rsp)
	movq	440(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	456(%rsp), %rdi
	movq	%rcx, 296(%rsp)
	movq	448(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	464(%rsp), %rbx
	movq	%rcx, 304(%rsp)
	movq	312(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	472(%rsp), %rdi
	movq	%rcx, 312(%rsp)
	movq	320(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	480(%rsp), %rbx
	movq	%rcx, 320(%rsp)
	movq	328(%rsp), %rcx
	andq	%rdx, %rbx
	andq	488(%rsp), %rdx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	%r15, %rdi
	movq	%rcx, 328(%rsp)
	movq	336(%rsp), %rcx
	andq	%rax, %rcx
	andq	344(%rsp), %rax
	orq	%rdx, %rax
	orq	%rbx, %rcx
	movq	%rcx, 336(%rsp)
	movq	%rax, 344(%rsp)
	addq	$32, %rsp
	.cfi_def_cfa_offset 704
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	72(%r15), %rdi
	movq	%rbp, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	144(%r15), %rdi
	movq	%r12, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movq	632(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9552
	addq	$648, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9552:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2034:

	.size	ec_GFp_nistp384_point_mul_base, .-ec_GFp_nistp384_point_mul_base
# WAS .section	.text.ec_GFp_nistp521_point_mul_base,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_point_mul_base, @function
.Lec_GFp_nistp521_point_mul_base_local_target:
ec_GFp_nistp521_point_mul_base:
.LFB2055:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$27, %ecx
	pxor	%xmm0, %xmm0
	movl	$9, %r10d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	$8, %r9d
	movl	$7, %r8d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	movl	$6, %esi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$936, %rsp
	.cfi_def_cfa_offset 992
	movq	%fs:40, %rax
	movq	%rax, 920(%rsp)
	xorl	%eax, %eax
	leaq	480(%rsp), %rdi
	movq	$0, 912(%rsp)
	movq	%rdi, 104(%rsp)
	movaps	%xmm0, 848(%rsp)
	movaps	%xmm0, 864(%rsp)
	movaps	%xmm0, 880(%rsp)
	movaps	%xmm0, 896(%rsp)
	rep stosq
	leaq	256(%rsp), %rdi
	movl	$26, %ecx
	rep stosq
	movzwl	(%rdx), %eax
	leaq	256(%rsp), %rdi
	movq	%rdi, 136(%rsp)
	movq	%rdi, %r11
	movl	$10, %edi
	andl	$63, %eax
	orl	$1, %eax
.L9557:

	movl	%eax, %edx
	cwtl
	andl	$63, %edx
	subl	$32, %edx
	movw	%dx, (%r11)
	movswl	%dx, %edx
	subl	%edx, %eax
	sarl	$5, %eax
	cmpq	$521, %rsi
	jne	.L9554
	movw	%ax, 464(%rsp)
	leaq	552(%rsp), %rax
	movl	$3, %r14d
	movl	$103, %r15d
	movq	%rax, 112(%rsp)
	leaq	624(%rsp), %rax
	movq	%rax, 96(%rsp)
	leaq	704(%rsp), %rax
	movq	%rax, 120(%rsp)
	leaq	776(%rsp), %rax
	movq	%rax, 128(%rsp)
	leaq	176(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	%r12, 152(%rsp)
	movq	%r13, 160(%rsp)
.L9555:

	movslq	%r15d, %rax
	movl	%r14d, 172(%rsp)
	movq	%rax, %r14
	.p2align 4,,10
	.p2align 3
.L9560:

	movq	136(%rsp), %rax
	xorl	%esi, %esi
	xorl	%edi, %edi
	xorl	%r8d, %r8d
	movq	$0, 72(%rsp)
	xorl	%r9d, %r9d
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movzwl	(%rax,%r14,2), %edx
	movq	%r14, 88(%rsp)
	xorl	%r10d, %r10d
	xorl	%r11d, %r11d
	movq	$0, 16(%rsp)
	xorl	%r12d, %r12d
	xorl	%r13d, %r13d
	movq	$0, 64(%rsp)
	movl	%edx, %eax
	movl	%edx, %r15d
	sarw	$15, %ax
	shrw	$15, %r15w
	movq	$0, 40(%rsp)
	movq	$0, 56(%rsp)
	xorl	%edx, %eax
	movq	$0, 24(%rsp)
	addl	%r15d, %eax
	movq	$0, 8(%rsp)
	sarw	%ax
	movq	$0, 32(%rsp)
	movswq	%ax, %rax
	movq	%rax, 80(%rsp)
	movl	%r14d, %eax
	movq	$0, 48(%rsp)
	sarl	$2, %eax
	movw	%r15w, 170(%rsp)
	cltq
	leaq	(%rax,%rax,8), %rcx
# WAS leaq	p521_g_pre_comp(%rip), %rax
	leaq	.Lp521_g_pre_comp_local_target(%rip), %rax
	salq	$8, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L9559:

	movq	80(%rsp), %rdx
	movq	(%rcx), %r14
	movq	72(%rcx), %r15
	xorq	%r13, %rdx
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	sarq	$63, %rax
	movq	%rax, %rdx
	notq	%rax
	andq	%rdx, %r14
	andq	%rax, %r12
	andq	%rax, %rbp
	andq	%rax, %rbx
	orq	%r14, %r12
	movq	8(%rcx), %r14
	andq	%rax, %r11
	andq	%rax, %r10
	andq	%rax, %r9
	andq	%rax, %r8
	andq	%rax, %rdi
	andq	%rax, %rsi
	andq	%rdx, %r14
	orq	%r14, %rbp
	movq	16(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %rbx
	movq	24(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %r11
	movq	32(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %r10
	movq	40(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %r9
	movq	48(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %r8
	movq	56(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %rdi
	movq	64(%rcx), %r14
	andq	%rdx, %r14
	orq	%r14, %rsi
	movq	48(%rsp), %r14
	andq	%rdx, %r15
	addq	$1, %r13
	addq	$144, %rcx
	andq	%rax, %r14
	orq	%r14, %r15
	movq	32(%rsp), %r14
	movq	%r15, 48(%rsp)
	movq	-64(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	8(%rsp), %r14
	movq	%r15, 32(%rsp)
	movq	-56(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	24(%rsp), %r14
	movq	%r15, 8(%rsp)
	movq	-48(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	56(%rsp), %r14
	movq	%r15, 24(%rsp)
	movq	-40(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	40(%rsp), %r14
	movq	%r15, 56(%rsp)
	movq	-32(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	64(%rsp), %r14
	movq	%r15, 40(%rsp)
	movq	-24(%rcx), %r15
	andq	%rax, %r14
	andq	%rdx, %r15
	orq	%r14, %r15
	movq	%r15, 64(%rsp)
	movq	-16(%rcx), %r15
	movq	16(%rsp), %r14
	andq	%rdx, %r15
	andq	-8(%rcx), %rdx
	andq	%rax, %r14
	andq	72(%rsp), %rax
	orq	%r14, %r15
	orq	%rax, %rdx
	movq	%r15, 16(%rsp)
	movq	%rdx, 72(%rsp)
	cmpq	$16, %r13
	jne	.L9559
	movq	48(%rsp), %rax
	movq	128(%rsp), %r13
	movq	%rdi, 760(%rsp)
	movzwl	170(%rsp), %r15d
	movq	144(%rsp), %rdi
	movq	%rsi, 768(%rsp)
	movq	%rax, 776(%rsp)
	movq	32(%rsp), %rax
	movq	%r13, %rsi
	movq	%r11, 728(%rsp)
	movq	88(%rsp), %r14
	movq	%rax, 784(%rsp)
	movq	8(%rsp), %rax
	movq	%r10, 736(%rsp)
	movq	%rax, 792(%rsp)
	movq	24(%rsp), %rax
	movq	%r9, 744(%rsp)
	movq	%rax, 800(%rsp)
	movq	56(%rsp), %rax
	movq	%r8, 752(%rsp)
	movq	%rax, 808(%rsp)
	movq	40(%rsp), %rax
	movq	%rbp, 712(%rsp)
	movq	%rax, 816(%rsp)
	movq	64(%rsp), %rax
	movq	%rbx, 720(%rsp)
	movq	%rax, 824(%rsp)
	movq	16(%rsp), %rax
	movq	%rdx, 840(%rsp)
	movq	%rax, 832(%rsp)
	movq	%r12, 704(%rsp)
# WAS call	bignum_neg_p521@PLT
	call	.Lbignum_neg_p521_local_target
	cmpw	$1, %r15w
	movq	776(%rsp), %rbx
	movq	192(%rsp), %rdi
	sbbq	%rcx, %rcx
	movq	%rcx, %rdx
	notq	%rcx
	movq	%rcx, %rax
	movq	176(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	andq	%rax, %rdi
	orq	%rbx, %rcx
	movq	784(%rsp), %rbx
	movq	%rcx, 776(%rsp)
	movq	184(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	200(%rsp), %rbx
	movq	%rcx, 784(%rsp)
	movq	792(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	208(%rsp), %rdi
	movq	%rcx, 792(%rsp)
	movq	800(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	216(%rsp), %rbx
	movq	%rcx, 800(%rsp)
	movq	808(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	224(%rsp), %rdi
	movq	%rcx, 808(%rsp)
	movq	816(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	232(%rsp), %rbx
	movq	%rcx, 816(%rsp)
	movq	824(%rsp), %rcx
	andq	%rax, %rbx
	andq	240(%rsp), %rax
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	%rcx, 824(%rsp)
	movq	832(%rsp), %rcx
	andq	%rdx, %rcx
	andq	840(%rsp), %rdx
	orq	%rbx, %rcx
	orq	%rdx, %rax
	movq	%rcx, 832(%rsp)
	movq	%rax, 840(%rsp)
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	subq	$4, %r14
	movq	%rax, %r15
# WAS leaq	p521_felem_one(%rip), %rax
	leaq	.Lp521_felem_one_local_target(%rip), %rax
	pushq	%rax
	.cfi_def_cfa_offset 1000
	movq	%r15, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 1008
	pushq	136(%rsp)
	.cfi_def_cfa_offset 1016
	movq	120(%rsp), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 1024
	movq	144(%rsp), %rdx
	movq	136(%rsp), %rsi
	movq	%rdx, %r9
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 992
	testl	%r14d, %r14d
	jns	.L9560
	movl	172(%rsp), %r14d
	subl	$1, %r14d
	jb	.L9576
	movl	%r14d, 8(%rsp)
	movq	96(%rsp), %rbx
	movl	$5, %r12d
	movq	104(%rsp), %r13
	movq	112(%rsp), %r14
	.p2align 4,,10
	.p2align 3
.L9558:

# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 1000
	movq	%r14, %rdx
	movq	%r14, %r9
	pushq	%rbx
	.cfi_def_cfa_offset 1008
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 1000
	popq	%rdx
	.cfi_def_cfa_offset 992
	subq	$1, %r12
	jne	.L9558
	movl	8(%rsp), %r14d
	movl	$104, %r15d
	subl	%r14d, %r15d
	andl	$-4, %r15d
	addl	%r14d, %r15d
	jmp	.L9555
.L9554:

	movq	%rsi, %rdx
	movl	%esi, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	addl	%edx, %edx
	andl	$2, %edx
	orl	%edx, %eax
	cmpq	$521, %r8
	je	.L9556
	movq	%r8, %rdx
	movl	%r8d, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$2, %edx
	andl	$4, %edx
	orl	%edx, %eax
	cmpq	$520, %r9
	ja	.L9556
	movq	%r9, %rdx
	movl	%r9d, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$3, %edx
	andl	$8, %edx
	orl	%edx, %eax
	cmpq	$521, %r10
	je	.L9556
	movq	%r10, %rdx
	movl	%r10d, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$4, %edx
	andl	$16, %edx
	orl	%edx, %eax
	cmpq	$521, %rdi
	je	.L9556
	movq	%rdi, %rdx
	movl	%edi, %ecx
	shrq	$6, %rdx
	movq	0(%r13,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	orl	%edx, %eax
.L9556:

	addq	$2, %r11
	addq	$5, %rsi
	addq	$5, %rdi
	addq	$5, %r8
	addq	$5, %r9
	addq	$5, %r10
	jmp	.L9557
.L9576:

	movq	%r15, %rbx
	movq	128(%rsp), %r15
# WAS movdqa	p521_g_pre_comp(%rip), %xmm1
	movdqa	.Lp521_g_pre_comp_local_target(%rip), %xmm1
# WAS leaq	72+p521_g_pre_comp(%rip), %rsi
	leaq	.Lp521_g_pre_comp_local_target+72(%rip), %rsi
# WAS movdqa	16+p521_g_pre_comp(%rip), %xmm2
	movdqa	.Lp521_g_pre_comp_local_target+16(%rip), %xmm2
# WAS movdqa	32+p521_g_pre_comp(%rip), %xmm3
	movdqa	.Lp521_g_pre_comp_local_target+32(%rip), %xmm3
# WAS movdqa	48+p521_g_pre_comp(%rip), %xmm4
	movdqa	.Lp521_g_pre_comp_local_target+48(%rip), %xmm4
# WAS movq	64+p521_g_pre_comp(%rip), %rax
	movq	.Lp521_g_pre_comp_local_target+64(%rip), %rax
	movq	%r15, %rdi
	movaps	%xmm1, 704(%rsp)
	movq	152(%rsp), %r12
	movaps	%xmm2, 720(%rsp)
	movq	160(%rsp), %r13
	movaps	%xmm3, 736(%rsp)
	movaps	%xmm4, 752(%rsp)
	movq	%rax, 768(%rsp)
# WAS call	bignum_neg_p521@PLT
	call	.Lbignum_neg_p521_local_target
	movq	%rbp, %rdi
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS leaq	p521_felem_one(%rip), %rax
	leaq	.Lp521_felem_one_local_target(%rip), %rax
	movq	%r15, %rdx
	movq	%rbx, %rdi
	leaq	848(%rsp), %rcx
	pushq	%rax
	.cfi_def_cfa_offset 1000
	pushq	%r15
	.cfi_def_cfa_offset 1008
	movq	136(%rsp), %rsi
	pushq	%rsi
	.cfi_def_cfa_offset 1016
	movq	120(%rsp), %rbp
	pushq	%rbp
	.cfi_def_cfa_offset 1024
	movq	144(%rsp), %r14
	movq	136(%rsp), %r15
	movq	%r14, %r9
	movq	%r15, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	movq	0(%r13), %rax
	pxor	%xmm0, %xmm0
	movq	%r15, %rsi
	movq	512(%rsp), %rcx
	movq	736(%rsp), %rbx
	andl	$1, %eax
	movq	520(%rsp), %rdi
	leaq	-1(%rax), %rdx
	negq	%rax
	andq	%rdx, %rbx
	andq	%rax, %rcx
	andq	%rax, %rdi
	orq	%rbx, %rcx
	movq	528(%rsp), %rbx
	movq	%rcx, 512(%rsp)
	movq	744(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	536(%rsp), %rdi
	movq	%rcx, 520(%rsp)
	movq	752(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	544(%rsp), %rbx
	movq	%rcx, 528(%rsp)
	movq	760(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	552(%rsp), %rdi
	movq	%rcx, 536(%rsp)
	movq	768(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	560(%rsp), %rbx
	movq	%rcx, 544(%rsp)
	movq	776(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	568(%rsp), %rdi
	movq	%rcx, 552(%rsp)
	movq	784(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	576(%rsp), %rbx
	movq	%rcx, 560(%rsp)
	movq	792(%rsp), %rcx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	808(%rsp), %rdi
	movq	%rcx, 568(%rsp)
	movq	800(%rsp), %rcx
	andq	%rdx, %rcx
	andq	%rax, %rbx
	andq	%rdx, %rdi
	orq	%rbx, %rcx
	movq	%rcx, 576(%rsp)
	movq	584(%rsp), %rcx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	%rcx, 584(%rsp)
	movq	592(%rsp), %rcx
	movq	816(%rsp), %rbx
	movq	824(%rsp), %rdi
	andq	%rax, %rcx
	andq	%rdx, %rbx
	andq	%rdx, %rdi
	orq	%rbx, %rcx
	movq	832(%rsp), %rbx
	movq	%rcx, 592(%rsp)
	movq	600(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	840(%rsp), %rdi
	movq	%rcx, 600(%rsp)
	movq	608(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	848(%rsp), %rbx
	movq	%rcx, 608(%rsp)
	movq	616(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	856(%rsp), %rdi
	movq	%rcx, 616(%rsp)
	movq	624(%rsp), %rcx
	andq	%rdx, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	864(%rsp), %rbx
	movq	%rcx, 624(%rsp)
	movq	632(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	648(%rsp), %rdi
	movq	%rcx, 632(%rsp)
	movq	640(%rsp), %rcx
	andq	%rax, %rdi
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	656(%rsp), %rbx
	movq	%rcx, 640(%rsp)
	movq	872(%rsp), %rcx
	andq	%rax, %rbx
	andq	%rdx, %rcx
	orq	%rdi, %rcx
	movq	888(%rsp), %rdi
	movq	%rcx, 648(%rsp)
	movq	880(%rsp), %rcx
	andq	%rdx, %rcx
	orq	%rbx, %rcx
	movq	896(%rsp), %rbx
	movq	%rcx, 656(%rsp)
	movq	664(%rsp), %rcx
	andq	%rax, %rcx
	andq	%rdx, %rdi
	andq	%rdx, %rbx
	orq	%rdi, %rcx
	movq	%rcx, 664(%rsp)
	movq	672(%rsp), %rcx
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	%rcx, 672(%rsp)
	movq	680(%rsp), %rcx
	movq	904(%rsp), %rdi
	movq	912(%rsp), %rbx
	movups	%xmm0, (%r12)
	andq	%rax, %rcx
	movups	%xmm0, 16(%r12)
	andq	%rdx, %rdi
	andq	%rdx, %rbx
	movq	$0, 64(%r12)
	orq	%rdi, %rcx
	movq	920(%rsp), %rdi
	movups	%xmm0, 32(%r12)
	movq	%rcx, 680(%rsp)
	movq	688(%rsp), %rcx
	andq	%rdx, %rdi
	movups	%xmm0, 48(%r12)
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	928(%rsp), %rbx
	movq	%rcx, 688(%rsp)
	movq	696(%rsp), %rcx
	andq	%rdx, %rbx
	andq	%rax, %rcx
	orq	%rdi, %rcx
	movq	936(%rsp), %rdi
	movq	%rcx, 696(%rsp)
	movq	704(%rsp), %rcx
	andq	%rdx, %rdi
	andq	944(%rsp), %rdx
	andq	%rax, %rcx
	orq	%rbx, %rcx
	movq	%rcx, 704(%rsp)
	movq	712(%rsp), %rcx
	andq	%rax, %rcx
	andq	720(%rsp), %rax
	orq	%rdi, %rcx
	orq	%rdx, %rax
	movq	%r12, %rdi
	movq	%rax, 720(%rsp)
	movq	%rcx, 712(%rsp)
	addq	$32, %rsp
	.cfi_def_cfa_offset 992
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	72(%r12), %rdi
	pxor	%xmm0, %xmm0
	movq	%r14, %rsi
	movups	%xmm0, 72(%r12)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	144(%r12), %rdi
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movups	%xmm0, 144(%r12)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	920(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9577
	addq	$936, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9577:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2055:

	.size	ec_GFp_nistp521_point_mul_base, .-ec_GFp_nistp521_point_mul_base
# WAS .section	.text.ec_nistp_point_add.constprop.1,"ax",@progbits
.text
	.p2align 4
	.type	ec_nistp_point_add.constprop.1, @function
.Lec_nistp_point_add.constprop.1_local_target:
ec_nistp_point_add.constprop.1:
.LFB3288:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1432, %rsp
	.cfi_def_cfa_offset 1488
	movq	1512(%rsp), %r13
	movq	%rcx, 112(%rsp)
	leaq	384(%rsp), %r12
	leaq	1344(%rsp), %rbx
	movq	1504(%rsp), %rcx
	movq	1496(%rsp), %rax
	movq	%r9, 56(%rsp)
	movq	%r8, 40(%rsp)
	movq	1488(%rsp), %r14
	movq	%rcx, 96(%rsp)
	movq	%rdx, 128(%rsp)
	movq	%r14, %rdi
	movq	%rsi, 120(%rsp)
	movq	%r13, 136(%rsp)
	movq	%rax, 88(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 1416(%rsp)
	xorl	%eax, %eax
	call	*56(%rbp)
	movq	%r13, %rdi
	movq	%rax, %r15
	call	*56(%rbp)
	movq	%r14, %rsi
	movq	%r12, %rdi
	movq	%rax, 24(%rsp)
	call	*40(%rbp)
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	*40(%rbp)
	movq	%rbx, %rdx
	movq	%rbx, 64(%rsp)
	movq	40(%rsp), %rsi
	leaq	624(%rsp), %rbx
	leaq	464(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 72(%rsp)
	call	*32(%rbp)
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	movq	%r14, 48(%rsp)
	call	*16(%rbp)
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	call	*40(%rbp)
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	call	*24(%rbp)
	movq	64(%rsp), %r14
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	%r14, %rdx
	call	*24(%rbp)
	leaq	544(%rsp), %rax
	movq	%r13, %rsi
	movq	%r14, %rdx
	movq	%rax, %r13
	movq	%rax, %rdi
	leaq	704(%rsp), %r14
	call	*32(%rbp)
	movq	%r13, %rsi
	movq	%r13, %rdi
	movq	%r13, 80(%rsp)
	leaq	784(%rsp), %r13
	movq	56(%rsp), %rdx
	call	*32(%rbp)
	movq	%r12, %rdx
	movq	%r14, %rdi
	movq	88(%rsp), %rsi
	call	*32(%rbp)
	movq	%r14, %rsi
	movq	72(%rsp), %rdx
	movq	%r13, %rdi
	call	*24(%rbp)
	movq	%r13, %rdi
	leaq	864(%rsp), %r14
	call	*56(%rbp)
	leaq	304(%rsp), %r8
	movq	%rbx, %rdx
	movq	%r13, %rsi
	movq	%r8, %rdi
	movq	%r8, 104(%rsp)
	leaq	944(%rsp), %rbx
	movq	%rax, 8(%rsp)
	call	*32(%rbp)
	movq	%r12, %rdx
	movq	48(%rsp), %rsi
	movq	%r14, %rdi
	call	*32(%rbp)
	movq	%rbx, %rdi
	movq	96(%rsp), %rsi
	movq	%r14, %rdx
	call	*32(%rbp)
	leaq	1024(%rsp), %r12
	movq	%rbx, %rsi
	movq	80(%rsp), %rdx
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*16(%rbp)
	movq	%r12, %rdi
	call	*56(%rbp)
	movq	%r15, %rdx
	movq	8(%rsp), %rcx
	subq	$1, %r15
	notq	%rdx
	movq	24(%rsp), %r9
	movq	104(%rsp), %r8
	andq	%r15, %rdx
	orq	%rax, %rcx
	sarq	$63, %rdx
	movq	%rcx, %rax
	movq	%rdx, 8(%rsp)
	movq	%rdx, %rcx
	movq	%r9, %rdx
	movq	%rax, %rbx
	subq	$1, %r9
	notq	%rdx
	subq	$1, %rax
	notq	%rbx
	andq	%r9, %rdx
	andq	%rax, %rbx
	notq	%rcx
	sarq	$63, %rdx
	sarq	$63, %rbx
	movq	%rcx, 16(%rsp)
	movq	%rdx, %rsi
	andq	%rcx, %rbx
	movq	%rdx, 24(%rsp)
	movq	112(%rsp), %rcx
	notq	%rsi
	andq	%rsi, %rbx
	movq	%rsi, 32(%rsp)
	testq	%rbx, %rbx
	jne	.L9604
	leaq	1104(%rsp), %r14
	movq	%r8, 112(%rsp)
	movq	%r13, %rdx
	movq	%r13, %rsi
	leaq	1184(%rsp), %r15
	movq	%rcx, 104(%rsp)
	movq	%r14, %rdi
	call	*16(%rbp)
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*40(%rbp)
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	call	*32(%rbp)
	leaq	1264(%rsp), %r13
	movq	%r14, %rdx
	movq	72(%rsp), %rsi
	leaq	144(%rsp), %r14
	movq	%r13, %rdi
	call	*32(%rbp)
	movq	%r12, %rsi
	movq	%r14, %rdi
	call	*40(%rbp)
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*24(%rbp)
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*24(%rbp)
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*24(%rbp)
	leaq	224(%rsp), %r9
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r9, %rdi
	movq	%r9, 72(%rsp)
	call	*24(%rbp)
	movq	72(%rsp), %r9
	movq	%r12, %rdx
	movq	%r9, %rsi
	movq	%r9, %rdi
	call	*32(%rbp)
	movq	%r15, %rdx
	movq	64(%rsp), %r15
	movq	80(%rsp), %rsi
	movq	%r15, %rdi
	call	*32(%rbp)
	movq	72(%rsp), %r9
	movq	%r15, %rdx
	movq	%r9, %rsi
	movq	%r9, %rdi
	movq	%r9, 64(%rsp)
	call	*24(%rbp)
	movq	64(%rsp), %r9
	movq	%r15, %rdx
	movq	%r9, %rsi
	movq	%r9, %rdi
	call	*24(%rbp)
	movq	0(%rbp), %r11
	testq	%r11, %r11
	je	.L9578
	leaq	0(,%r11,8), %r10
	movq	88(%rsp), %rsi
	movq	104(%rsp), %rcx
	movq	%r14, %rax
	movq	112(%rsp), %r8
	movq	64(%rsp), %r9
	leaq	(%r14,%r10), %r15
	movq	8(%rsp), %r13
	movq	16(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L9582:

	movq	(%rax), %rdi
	movq	(%rsi), %rdx
	addq	$8, %rax
	addq	$8, %rsi
	andq	%r13, %rdx
	andq	%r12, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9582
	movq	96(%rsp), %rsi
	movq	%r9, %rax
	leaq	(%r9,%r10), %r15
	movq	8(%rsp), %r13
	movq	16(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L9583:

	movq	(%rax), %rdi
	movq	(%rsi), %rdx
	addq	$8, %rax
	addq	$8, %rsi
	andq	%r13, %rdx
	andq	%r12, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9583
	movq	%r8, %rax
	addq	%r8, %r10
	movq	8(%rsp), %r13
	movq	16(%rsp), %r12
	movq	136(%rsp), %rsi
	.p2align 4,,10
	.p2align 3
.L9584:

	movq	(%rax), %rdi
	movq	(%rsi), %rdx
	addq	$8, %rax
	addq	$8, %rsi
	andq	%r13, %rdx
	andq	%r12, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r10, %rax
	jne	.L9584
	movq	120(%rsp), %r12
	movq	40(%rsp), %r13
	xorl	%eax, %eax
	movq	24(%rsp), %r10
	movq	32(%rsp), %rdi
	.p2align 4,,10
	.p2align 3
.L9585:

	movq	0(%r13,%rax,8), %rdx
	movq	(%r14,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%rdi, %rsi
	orq	%rsi, %rdx
	movq	%rdx, (%r12,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L9585
	movq	0(%rbp), %r11
	xorl	%eax, %eax
	testq	%r11, %r11
	je	.L9578
	movq	128(%rsp), %r12
	movq	56(%rsp), %r13
	movq	24(%rsp), %r10
	movq	32(%rsp), %rdi
	.p2align 4,,10
	.p2align 3
.L9586:

	movq	0(%r13,%rax,8), %rdx
	movq	(%r9,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%rdi, %rsi
	orq	%rsi, %rdx
	movq	%rdx, (%r12,%rax,8)
	addq	$1, %rax
	cmpq	%r11, %rax
	jne	.L9586
	movq	0(%rbp), %r9
	testq	%r9, %r9
	je	.L9578
	movq	48(%rsp), %r10
	movq	24(%rsp), %rdi
	movq	32(%rsp), %rsi
	.p2align 4,,10
	.p2align 3
.L9587:

	movq	(%r10,%rbx,8), %rax
	movq	(%r8,%rbx,8), %rdx
	andq	%rdi, %rax
	andq	%rsi, %rdx
	orq	%rdx, %rax
	movq	%rax, (%rcx,%rbx,8)
	addq	$1, %rbx
	cmpq	%rbx, %r9
	jne	.L9587
.L9578:

	movq	1416(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9605
	addq	$1432, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9604:

	.cfi_restore_state
	subq	$8, %rsp
	.cfi_def_cfa_offset 1496
	movq	%rbp, %rdi
	pushq	56(%rsp)
	.cfi_def_cfa_offset 1504
	movq	72(%rsp), %r9
	movq	56(%rsp), %r8
	movq	144(%rsp), %rdx
	movq	136(%rsp), %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 1496
	popq	%rdx
	.cfi_def_cfa_offset 1488
	jmp	.L9578
.L9605:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3288:

	.size	ec_nistp_point_add.constprop.1, .-ec_nistp_point_add.constprop.1
# WAS .section	.text.ec_GFp_nistp256_add,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_add, @function
.Lec_GFp_nistp256_add_local_target:
ec_GFp_nistp256_add:
.LFB1984:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$232, %rsp
	.cfi_def_cfa_offset 288
	movdqu	(%rcx), %xmm6
	movdqu	16(%rcx), %xmm7
	movdqu	16(%rax), %xmm1
	movdqu	72(%rax), %xmm2
	leaq	80(%rsp), %r13
	leaq	112(%rsp), %r14
	movdqu	88(%rax), %xmm3
	movdqu	(%rax), %xmm0
	leaq	144(%rsp), %r15
	leaq	16(%rsp), %rbp
	movq	%fs:40, %rdx
	movq	%rdx, 216(%rsp)
	xorl	%edx, %edx
	movaps	%xmm6, 112(%rsp)
	movdqu	144(%rax), %xmm4
	movdqu	160(%rax), %xmm5
	movaps	%xmm7, 128(%rsp)
	leaq	176(%rsp), %rdx
	leaq	48(%rsp), %r12
	movaps	%xmm4, 80(%rsp)
	movaps	%xmm5, 96(%rsp)
	movaps	%xmm1, 32(%rsp)
	movaps	%xmm2, 48(%rsp)
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqu	72(%rcx), %xmm0
	movdqu	88(%rcx), %xmm1
	movdqu	144(%rcx), %xmm2
	movdqu	160(%rcx), %xmm3
	movq	%rdx, 8(%rsp)
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm1, 160(%rsp)
	movaps	%xmm2, 176(%rsp)
	movaps	%xmm3, 192(%rsp)
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	movq	8(%rsp), %rdx
	movq	%r12, %r9
	movq	%rbp, %r8
	movq	%rax, %rdi
	movq	%r13, %rcx
	movq	%rbp, %rsi
	pushq	%rdx
	.cfi_def_cfa_offset 296
	movq	%r12, %rdx
	pushq	%r15
	.cfi_def_cfa_offset 304
	pushq	%r14
	.cfi_def_cfa_offset 312
	pushq	%r13
	.cfi_def_cfa_offset 320
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	movdqa	48(%rsp), %xmm4
	movdqa	64(%rsp), %xmm5
	movdqa	80(%rsp), %xmm6
	movdqa	96(%rsp), %xmm7
	movdqa	112(%rsp), %xmm0
	movups	%xmm4, (%rbx)
	movdqa	128(%rsp), %xmm1
	addq	$32, %rsp
	.cfi_def_cfa_offset 288
	movups	%xmm5, 16(%rbx)
	movups	%xmm6, 72(%rbx)
	movups	%xmm7, 88(%rbx)
	movups	%xmm0, 144(%rbx)
	movups	%xmm1, 160(%rbx)
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9609
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9609:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1984:

	.size	ec_GFp_nistp256_add, .-ec_GFp_nistp256_add
# WAS .section	.text.ec_GFp_nistp256_point_mul_public,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_point_mul_public, @function
.Lec_GFp_nistp256_point_mul_public_local_target:
ec_GFp_nistp256_point_mul_public:
.LFB1988:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1336, %rsp
	.cfi_def_cfa_offset 1392
	movdqu	(%rcx), %xmm2
	movdqu	16(%rcx), %xmm3
	movq	%rdx, 48(%rsp)
	movdqu	72(%rcx), %xmm4
	leaq	288(%rsp), %r15
	leaq	320(%rsp), %r13
	movq	%r8, 16(%rsp)
	movdqu	88(%rcx), %xmm5
	leaq	352(%rsp), %r14
	leaq	96(%rsp), %rbx
	movq	%rdi, 32(%rsp)
	movdqu	144(%rcx), %xmm6
	leaq	160(%rsp), %r12
	leaq	128(%rsp), %rbp
	movq	%rsi, 56(%rsp)
	movdqu	160(%rcx), %xmm7
	movq	%fs:40, %rax
	movq	%rax, 1320(%rsp)
	xorl	%eax, %eax
	movaps	%xmm2, 288(%rsp)
	movaps	%xmm3, 304(%rsp)
	movaps	%xmm4, 320(%rsp)
	movaps	%xmm5, 336(%rsp)
	movaps	%xmm6, 352(%rsp)
	movaps	%xmm7, 368(%rsp)
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 1400
	movq	%r13, %r9
	movq	%r15, %r8
	pushq	%r14
	.cfi_def_cfa_offset 1408
	movq	%rbp, %rdx
	movq	%rax, %rdi
	movq	%r12, %rcx
	movq	%rbx, %rsi
	movq	%rax, 24(%rsp)
	leaq	400(%rsp), %r14
	leaq	1072(%rsp), %r13
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 1400
	popq	%rdx
	.cfi_def_cfa_offset 1392
	movq	%r15, 40(%rsp)
	movq	8(%rsp), %r15
	.p2align 4,,10
	.p2align 3
.L9611:

	movq	(%rsp), %rdi
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	-32(%r14), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 1400
	leaq	64(%r14), %rcx
	pushq	%rbp
	.cfi_def_cfa_offset 1408
	leaq	32(%r14), %rdx
	leaq	-64(%r14), %r9
	movq	%r15, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 1416
	leaq	-96(%r14), %r8
	pushq	%rsi
	.cfi_def_cfa_offset 1424
	movq	%r14, %rsi
	addq	$96, %r14
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 1392
	cmpq	%r13, %r14
	jne	.L9611
	movq	16(%rsp), %r10
	movq	32(%rsp), %rdi
	movl	$5, %ecx
	leaq	1051(%rsp), %rsi
	movq	40(%rsp), %r15
	movl	(%r10), %eax
	movslq	264(%rdi), %rdi
	andl	$31, %eax
	jmp	.L9617
	.p2align 4,,10
	.p2align 3
.L9653:

	sarl	%eax
	xorl	%edx, %edx
.L9613:

	movb	%dl, (%rsi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%rdi, %rdx
	jnb	.L9616
	movq	(%r10,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$4, %edx
	andl	$16, %edx
	addl	%edx, %eax
.L9616:

	addq	$1, %rcx
	cmpq	$262, %rcx
	je	.L9652
.L9617:

	testb	$1, %al
	je	.L9653
	movl	%eax, %r8d
	andl	$16, %r8d
	je	.L9614
	cmpq	$255, %rcx
	ja	.L9615
	subl	$32, %eax
	movl	$16, %r8d
.L9614:

	movl	%eax, %edx
	movl	%r8d, %eax
	jmp	.L9613
.L9615:

	movl	%eax, %r8d
	andl	$15, %eax
	andl	$-16, %r8d
	sarl	%r8d
	jmp	.L9614
.L9652:

	leaq	192(%rsp), %rdi
	movl	$12, %ecx
	xorl	%eax, %eax
	movl	$256, %ebp
	movq	%rdi, 32(%rsp)
	movl	$1, %r14d
	rep stosq
	jmp	.L9631
	.p2align 4,,10
	.p2align 3
.L9656:

	subq	$1, %rbp
.L9631:

	movl	%ebp, %eax
	movl	%ebp, %r12d
	testl	%r14d, %r14d
	je	.L9654
	cmpl	$31, %ebp
	jle	.L9655
.L9619:

	movsbl	0(%r13,%rbp), %eax
	testl	%eax, %eax
	je	.L9656
.L9622:

	testl	%eax, %eax
	js	.L9657
	sarl	%eax
	cltq
	leaq	(%rax,%rax,2), %rax
	salq	$5, %rax
	leaq	32(%r15,%rax), %rcx
.L9628:

	leaq	(%r15,%rax), %rdx
	leaq	64(%r15,%rax), %r12
	testl	%r14d, %r14d
	jne	.L9629
	movq	(%rsp), %rdi
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rdx, 40(%rsp)
	leaq	224(%rsp), %r14
	movq	%rcx, 16(%rsp)
	leaq	256(%rsp), %rbx
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	pushq	%r12
	.cfi_def_cfa_offset 1400
	movq	24(%rsp), %rcx
	movq	%r14, %r9
	pushq	%rcx
	.cfi_def_cfa_offset 1408
	movq	56(%rsp), %rdx
	movq	%rbx, %rcx
	pushq	%rdx
	.cfi_def_cfa_offset 1416
	movq	%r14, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 1424
	movq	64(%rsp), %rsi
	movq	40(%rsp), %rdi
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 1392
.L9630:

	subq	$1, %rbp
	jb	.L9623
	movl	%ebp, %eax
	movl	%ebp, %r12d
	leaq	224(%rsp), %r14
	leaq	256(%rsp), %rbx
.L9624:

	movq	(%rsp), %rdi
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movl	%eax, 16(%rsp)
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 1400
	movq	%r14, %r9
	movq	%r14, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 1408
	movq	48(%rsp), %rsi
	movq	%rbx, %rcx
	movq	24(%rsp), %rdi
	movq	%rsi, %r8
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%r14
	.cfi_def_cfa_offset 1400
	xorl	%r14d, %r14d
	popq	%rax
	.cfi_def_cfa_offset 1392
	movl	16(%rsp), %eax
	cmpl	$31, %ebp
	jg	.L9619
.L9655:

	movq	48(%rsp), %rbx
	leal	224(%rax), %ecx
	movq	24(%rbx), %r9
	movq	16(%rbx), %rdx
	movq	(%rbx), %rdi
	movq	8(%rbx), %rsi
	movq	%r9, %r11
	movq	%rdx, %r8
	shrq	%cl, %r11
	leal	160(%rax), %ecx
	movq	%rdi, %rbx
	shrq	%cl, %r8
	leal	32(%rax), %ecx
	salq	$3, %r11
	salq	$2, %r8
	shrq	%cl, %rbx
	andl	$8, %r11d
	andl	$4, %r8d
	movq	%rbx, %rcx
	andl	$1, %ecx
	orq	%r11, %r8
	orq	%rcx, %r8
	leal	96(%rax), %ecx
	movq	%rsi, %rax
	shrq	%cl, %rax
	addq	%rax, %rax
	andl	$2, %eax
	orq	%r8, %rax
	jne	.L9658
.L9620:

	movl	%r12d, %ecx
	shrq	%cl, %r9
	shrq	%cl, %rdx
	salq	$3, %r9
	leaq	0(,%rdx,4), %rax
	shrq	%cl, %rdi
	andl	$8, %r9d
	andl	$4, %eax
	shrq	%cl, %rsi
	andl	$1, %edi
	orq	%r9, %rax
	addq	%rsi, %rsi
	orq	%rdi, %rax
	andl	$2, %esi
	orq	%rax, %rsi
	jne	.L9659
	movsbl	0(%r13,%rbp), %eax
	testl	%eax, %eax
	jne	.L9622
	subq	$1, %rbp
	jnb	.L9631
	.p2align 4,,10
	.p2align 3
.L9623:

	movdqa	192(%rsp), %xmm2
	movq	56(%rsp), %rax
	movdqa	208(%rsp), %xmm3
	movdqa	224(%rsp), %xmm4
	movdqa	240(%rsp), %xmm5
	movups	%xmm2, (%rax)
	movdqa	256(%rsp), %xmm6
	movdqa	272(%rsp), %xmm7
	movups	%xmm3, 16(%rax)
	movups	%xmm4, 72(%rax)
	movups	%xmm5, 88(%rax)
	movups	%xmm6, 144(%rax)
	movups	%xmm7, 160(%rax)
	movq	1320(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9660
	addq	$1336, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9629:

	.cfi_restore_state
	movq	(%rdx), %rsi
	movdqa	16(%rcx), %xmm0
	movdqa	(%rcx), %xmm1
	movq	%rsi, 192(%rsp)
	movq	8(%rdx), %rsi
	movq	%rsi, 200(%rsp)
	movq	16(%rdx), %rsi
	movq	24(%rdx), %rdx
	movaps	%xmm1, 224(%rsp)
	movaps	%xmm0, 240(%rsp)
	movq	%rdx, 216(%rsp)
	movq	%rsi, 208(%rsp)
	movq	(%r12), %rdx
	movq	%rdx, 256(%rsp)
	movq	8(%r12), %rdx
	movq	%rdx, 264(%rsp)
	movq	16(%r12), %rdx
	movq	%rdx, 272(%rsp)
	movq	24(%r12), %rax
	movq	%rax, 280(%rsp)
	jmp	.L9630
	.p2align 4,,10
	.p2align 3
.L9657:

	negl	%eax
	sarl	%eax
	cltq
	leaq	(%rax,%rax,2), %rax
	salq	$5, %rax
	leaq	32(%r15,%rax), %rdx
	movq	(%rdx), %r10
	negq	%r10
	sbbq	%r11, %r11
	movq	%r11, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	negq	%rcx
	sbbq	%rbx, %rbx
	movq	%rcx, %rsi
	subq	8(%rdx), %rsi
	movq	%rbx, %rdi
	sbbq	$0, %rdi
	movq	%rdi, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	negq	%rcx
	sbbq	%rbx, %rbx
	subq	16(%rdx), %rcx
	sbbq	$0, %rbx
	movq	%rcx, %r8
	movq	%rbx, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	negq	%rcx
	sbbq	%rbx, %rbx
	subq	24(%rdx), %rcx
	sbbq	$0, %rbx
	xorl	%r11d, %r11d
	movq	%rcx, 16(%rsp)
	movq	%rsi, %rcx
	movq	%rbx, %rdx
	movq	%rbx, 24(%rsp)
	addq	%rdx, %r10
	movl	%edx, %esi
	adcq	$0, %r11
	xorl	%edi, %edi
	addq	%rsi, %rcx
	movq	%r10, 64(%rsp)
	movq	%rdi, %rbx
	adcq	$0, %rbx
	xorl	%edi, %edi
	addq	%r11, %rcx
	movabsq	$-4294967295, %r11
	adcq	%rdi, %rbx
	movq	%rcx, 72(%rsp)
	xorl	%edi, %edi
	xorl	%r9d, %r9d
	movq	%rbx, %rsi
	movq	16(%rsp), %rcx
	addq	%r8, %rsi
	adcq	%r9, %rdi
	andq	%r11, %rdx
	movq	%rsi, 80(%rsp)
	addq	%rdx, %rcx
	addq	%rdi, %rcx
	movq	%rcx, 88(%rsp)
	leaq	64(%rsp), %rcx
	jmp	.L9628
	.p2align 4,,10
	.p2align 3
.L9654:

	leaq	224(%rsp), %r14
	leaq	256(%rsp), %rbx
	jmp	.L9624
	.p2align 4,,10
	.p2align 3
.L9659:

	movq	(%rsp), %rdi
	leaq	-1(%rsi), %rax
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	salq	$6, %rax
	leaq	224(%rsp), %r14
	leaq	256(%rsp), %rbx
	movq	%rax, %r12
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS leaq	fiat_p256_one(%rip), %rax
	leaq	.Lfiat_p256_one_local_target(%rip), %rax
	movq	%r14, %r9
	movq	%rbx, %rcx
	pushq	%rax
	.cfi_def_cfa_offset 1400
# WAS leaq	fiat_p256_g_pre_comp(%rip), %rax
	leaq	.Lfiat_p256_g_pre_comp_local_target(%rip), %rax
	leaq	32(%rax,%r12), %rdx
	addq	%r12, %rax
	pushq	%rdx
	.cfi_def_cfa_offset 1408
	movq	%r14, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 1416
	pushq	%rbx
	.cfi_def_cfa_offset 1424
	movq	64(%rsp), %rsi
	movq	40(%rsp), %rdi
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	movsbl	0(%r13,%rbp), %eax
	addq	$32, %rsp
	.cfi_def_cfa_offset 1392
	testl	%eax, %eax
	jne	.L9633
	subq	$1, %rbp
	jb	.L9623
	movl	%ebp, %eax
	movl	%ebp, %r12d
	jmp	.L9624
	.p2align 4,,10
	.p2align 3
.L9658:

	movq	(%rsp), %rdi
	subq	$1, %rax
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	leaq	224(%rsp), %r14
	salq	$6, %rax
	leaq	256(%rsp), %rbx
	movq	%rax, 16(%rsp)
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS leaq	fiat_p256_one(%rip), %rax
	leaq	.Lfiat_p256_one_local_target(%rip), %rax
	movq	%r14, %r9
	movq	%rbx, %rcx
	pushq	%rax
	.cfi_def_cfa_offset 1400
	movq	24(%rsp), %rax
# WAS leaq	fiat_p256_g_pre_comp(%rip), %rdi
	leaq	.Lfiat_p256_g_pre_comp_local_target(%rip), %rdi
	leaq	992(%rdi,%rax), %rdx
	leaq	960(%rdi,%rax), %rax
	pushq	%rdx
	.cfi_def_cfa_offset 1408
	movq	%r14, %rdx
	xorl	%r14d, %r14d
	pushq	%rax
	.cfi_def_cfa_offset 1416
	pushq	%rbx
	.cfi_def_cfa_offset 1424
	movq	64(%rsp), %rsi
	movq	40(%rsp), %rdi
	movq	%rsi, %r8
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	movq	80(%rsp), %rax
	addq	$32, %rsp
	.cfi_def_cfa_offset 1392
	movq	24(%rax), %r9
	movq	16(%rax), %rdx
	movq	8(%rax), %rsi
	movq	(%rax), %rdi
	jmp	.L9620
	.p2align 4,,10
	.p2align 3
.L9633:

	xorl	%r14d, %r14d
	jmp	.L9622
.L9660:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1988:

	.size	ec_GFp_nistp256_point_mul_public, .-ec_GFp_nistp256_point_mul_public
# WAS .section	.text.ec_GFp_nistp384_add,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_add, @function
.Lec_GFp_nistp384_add_local_target:
ec_GFp_nistp384_add:
.LFB2027:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$328, %rsp
	.cfi_def_cfa_offset 384
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r14
	leaq	64(%rsp), %r13
	movq	%r14, %rdi
	leaq	160(%rsp), %r15
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	72(%r12), %rsi
	movq	%r13, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	144(%r12), %rsi
	leaq	112(%rsp), %r12
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	208(%rsp), %rdx
	leaq	72(%rbp), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 8(%rsp)
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	144(%rbp), %rsi
	leaq	256(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	pushq	%rbp
	.cfi_def_cfa_offset 392
	movq	16(%rsp), %rdx
	movq	%r13, %r9
	movq	%rax, %rdi
	movq	%r14, %r8
	movq	%r12, %rcx
	movq	%r14, %rsi
	pushq	%rdx
	.cfi_def_cfa_offset 400
	movq	%r13, %rdx
	pushq	%r15
	.cfi_def_cfa_offset 408
	pushq	%r12
	.cfi_def_cfa_offset 416
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 384
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	72(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	144(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movq	312(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9664
	addq	$328, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9664:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2027:

	.size	ec_GFp_nistp384_add, .-ec_GFp_nistp384_add
# WAS .section	.text.ec_GFp_nistp384_point_mul_public,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_point_mul_public, @function
.Lec_GFp_nistp384_point_mul_public_local_target:
ec_GFp_nistp384_point_mul_public:
.LFB2035:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	movl	$18, %ecx
	subq	$3528, %rsp
	.cfi_def_cfa_offset 3584
	movq	%r8, 64(%rsp)
	leaq	128(%rsp), %rbp
	leaq	464(%rsp), %r15
	movq	%rdi, 48(%rsp)
	movq	%rbp, %rdi
	leaq	272(%rsp), %r13
	leaq	320(%rsp), %r12
	movq	%rsi, 56(%rsp)
	movq	%rbx, %rsi
	movq	%fs:40, %rax
	movq	%rax, 3512(%rsp)
	xorl	%eax, %eax
	rep stosq
	leaq	272(%rsp), %rdi
	movl	$18, %ecx
	rep stosq
	leaq	416(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	72(%rbx), %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	512(%rsp), %rdx
	leaq	144(%rbx), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 16(%rsp)
	leaq	368(%rsp), %rbx
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 3592
	movq	%rbx, %rcx
	movq	%r15, %r9
	movq	24(%rsp), %rdx
	movq	%r13, %rsi
	movq	%rax, %rdi
	pushq	%rdx
	.cfi_def_cfa_offset 3600
	movq	56(%rsp), %r8
	movq	%r12, %rdx
	movq	%rax, 32(%rsp)
	leaq	576(%rsp), %r15
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	leaq	2736(%rsp), %rax
	movq	%rax, 40(%rsp)
	popq	%rcx
	.cfi_def_cfa_offset 3592
	popq	%rsi
	.cfi_def_cfa_offset 3584
	movq	%r14, 32(%rsp)
	movq	16(%rsp), %r14
	movq	%rbp, 72(%rsp)
	movq	%r15, %rbp
	movq	%rbx, %r15
	movq	%rax, %rbx
	.p2align 4,,10
	.p2align 3
.L9666:

	movq	8(%rsp), %rdi
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	-48(%rbp), %rsi
	leaq	96(%rbp), %rcx
	movq	%r12, %r9
	pushq	%rsi
	.cfi_def_cfa_offset 3592
	leaq	-96(%rbp), %rsi
	leaq	48(%rbp), %rdx
	movq	%r13, %r8
	pushq	%rsi
	.cfi_def_cfa_offset 3600
	leaq	-144(%rbp), %rsi
	movq	%r14, %rdi
	pushq	%rsi
	.cfi_def_cfa_offset 3608
	movq	%rbp, %rsi
	addq	$144, %rbp
	pushq	%r15
	.cfi_def_cfa_offset 3616
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 3584
	cmpq	%rbp, %rbx
	jne	.L9666
	movq	24(%rsp), %rdi
	xorl	%eax, %eax
	movl	$48, %ecx
	movq	32(%rsp), %r14
	movq	64(%rsp), %r11
	movq	72(%rsp), %rbp
	rep stosq
	movl	$48, %ecx
	movb	$0, (%rdi)
	leaq	3120(%rsp), %rdi
	movq	%rdi, 32(%rsp)
	rep stosq
	movl	(%r11), %eax
	movl	$6, %ecx
	andl	$63, %eax
	movb	$0, (%rdi)
	movq	48(%rsp), %rdi
	movslq	264(%rdi), %rsi
	leaq	2714(%rsp), %rdi
	jmp	.L9672
	.p2align 4,,10
	.p2align 3
.L9719:

	sarl	%eax
	xorl	%edx, %edx
.L9668:

	movb	%dl, (%rdi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%rsi, %rdx
	jnb	.L9671
	movq	(%r11,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	addl	%edx, %eax
.L9671:

	addq	$1, %rcx
	cmpq	$391, %rcx
	je	.L9718
.L9672:

	testb	$1, %al
	je	.L9719
	movl	%eax, %r8d
	andl	$32, %r8d
	je	.L9669
	cmpq	$383, %rcx
	ja	.L9670
	subl	$64, %eax
	movl	$32, %r8d
.L9669:

	movl	%eax, %edx
	movl	%r8d, %eax
	jmp	.L9668
.L9670:

	movl	%eax, %r8d
	andl	$31, %eax
	andl	$-32, %r8d
	sarl	%r8d
	jmp	.L9669
.L9718:

	movl	(%r14), %eax
	movl	$6, %ecx
	leaq	3114(%rsp), %rdi
	andl	$63, %eax
	jmp	.L9678
	.p2align 4,,10
	.p2align 3
.L9721:

	sarl	%eax
	xorl	%edx, %edx
.L9674:

	movb	%dl, (%rdi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%rsi, %rdx
	jnb	.L9677
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	addl	%edx, %eax
.L9677:

	addq	$1, %rcx
	cmpq	$391, %rcx
	je	.L9720
.L9678:

	testb	$1, %al
	je	.L9721
	movl	%eax, %r8d
	andl	$32, %r8d
	je	.L9675
	cmpq	$383, %rcx
	ja	.L9676
	subl	$64, %eax
	movl	$32, %r8d
.L9675:

	movl	%eax, %edx
	movl	%r8d, %eax
	jmp	.L9674
.L9676:

	movl	%eax, %r8d
	andl	$31, %eax
	andl	$-32, %r8d
	sarl	%r8d
	jmp	.L9675
.L9720:

	movl	$384, %r14d
	movl	$1, %ecx
	leaq	176(%rsp), %r13
	leaq	224(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L9679:

	movq	24(%rsp), %rax
	movzbl	(%rax,%r14), %esi
	testb	%sil, %sil
	je	.L9681
.L9723:

	movsbl	%sil, %edx
	andl	$128, %esi
	je	.L9682
	notl	%edx
	sarl	%edx
	movl	%edx, %ebx
	testw	%cx, %cx
	jne	.L9683
	movslq	%edx, %rdx
	movq	40(%rsp), %rax
	leaq	80(%rsp), %r15
	leaq	(%rdx,%rdx,8), %rdx
	movq	%r15, %rdi
	salq	$4, %rdx
	leaq	48(%rax,%rdx), %rsi
# WAS call	bignum_neg_p384@PLT
	call	.Lbignum_neg_p384_local_target
.L9687:

	movq	8(%rsp), %rdi
	movswq	%bx, %rdx
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	leaq	(%rdx,%rdx,8), %rbx
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	40(%rsp), %rax
	movq	%r13, %r9
	movq	%rbp, %r8
	salq	$4, %rbx
	movq	%r12, %rcx
	movq	%rbp, %rsi
	leaq	96(%rax,%rbx), %rdx
	addq	%rax, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 3592
	movq	%r13, %rdx
	pushq	%r15
	.cfi_def_cfa_offset 3600
	pushq	%rbx
	.cfi_def_cfa_offset 3608
	pushq	%r12
	.cfi_def_cfa_offset 3616
	movq	48(%rsp), %rdi
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 3584
.L9686:

	movq	32(%rsp), %rax
	movzbl	(%rax,%r14), %ecx
	testb	%cl, %cl
	je	.L9696
	movsbl	%cl, %edx
	andl	$128, %ecx
	je	.L9722
	notl	%edx
	sarl	%edx
	movswq	%dx, %rbx
.L9694:

	movslq	%edx, %rdx
# WAS leaq	p384_g_pre_comp(%rip), %rax
	leaq	.Lp384_g_pre_comp_local_target(%rip), %rax
	leaq	80(%rsp), %r15
	leaq	(%rdx,%rdx,2), %rdx
	movq	%r15, %rdi
	salq	$5, %rdx
	leaq	48(%rax,%rdx), %rsi
# WAS call	bignum_neg_p384@PLT
	call	.Lbignum_neg_p384_local_target
.L9697:

	movq	8(%rsp), %rdi
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	(%rbx,%rbx,2), %rdx
	movq	%r13, %r9
	movq	%rbp, %r8
# WAS leaq	p384_felem_one(%rip), %rax
	leaq	.Lp384_felem_one_local_target(%rip), %rax
	salq	$5, %rdx
	movq	%r12, %rcx
	movq	%rbp, %rsi
	pushq	%rax
	.cfi_def_cfa_offset 3592
# WAS leaq	p384_g_pre_comp(%rip), %rax
	leaq	.Lp384_g_pre_comp_local_target(%rip), %rax
	addq	%rax, %rdx
	pushq	%r15
	.cfi_def_cfa_offset 3600
	pushq	%rdx
	.cfi_def_cfa_offset 3608
	movq	%r13, %rdx
	pushq	%r12
	.cfi_def_cfa_offset 3616
	movq	48(%rsp), %rdi
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 3584
.L9696:

	subq	$1, %r14
	jb	.L9690
.L9689:

	movq	8(%rsp), %rdi
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 3592
	movq	%r12, %rcx
	movq	%r13, %rdx
	pushq	%r12
	.cfi_def_cfa_offset 3600
	movq	32(%rsp), %rdi
	movq	%rbp, %rsi
	movq	%r13, %r9
	movq	%rbp, %r8
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 3592
	popq	%rdx
	.cfi_def_cfa_offset 3584
	xorl	%ecx, %ecx
	movq	24(%rsp), %rax
	movzbl	(%rax,%r14), %esi
	testb	%sil, %sil
	jne	.L9723
.L9681:

	movq	32(%rsp), %rax
	movzbl	(%rax,%r14), %esi
	testb	%sil, %sil
	je	.L9691
	movsbl	%sil, %edx
	andl	$128, %esi
	je	.L9692
	notl	%edx
	sarl	%edx
	movswq	%dx, %rbx
	testw	%cx, %cx
	je	.L9694
.L9693:

	leaq	(%rbx,%rbx,2), %rdx
# WAS leaq	p384_g_pre_comp(%rip), %rax
	leaq	.Lp384_g_pre_comp_local_target(%rip), %rax
	salq	$5, %rdx
	addq	%rax, %rdx
	movdqa	32(%rdx), %xmm3
	movdqa	48(%rdx), %xmm2
	movdqa	80(%rdx), %xmm0
	movdqa	16(%rdx), %xmm4
	movdqa	64(%rdx), %xmm1
	movdqa	(%rdx), %xmm7
	movaps	%xmm3, 160(%rsp)
	movaps	%xmm2, 176(%rsp)
	movdqa	.LC108(%rip), %xmm3
	movdqa	.LC127(%rip), %xmm2
	movaps	%xmm0, 208(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm7, 128(%rsp)
	movaps	%xmm4, 144(%rsp)
	movaps	%xmm1, 192(%rsp)
	movaps	%xmm2, 224(%rsp)
	movaps	%xmm3, 240(%rsp)
	movaps	%xmm0, 256(%rsp)
	subq	$1, %r14
	jnb	.L9689
.L9690:

	movq	56(%rsp), %rbx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	72(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	144(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	movq	3512(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9724
	addq	$3528, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9691:

	.cfi_restore_state
	subq	$1, %r14
	jb	.L9690
	testw	%cx, %cx
	jne	.L9679
	jmp	.L9689
	.p2align 4,,10
	.p2align 3
.L9682:

	subl	$1, %edx
	sarl	%edx
	movl	%edx, %ebx
	testw	%cx, %cx
	jne	.L9683
	movslq	%edx, %rdx
	movq	40(%rsp), %rax
	leaq	80(%rsp), %r15
	leaq	(%rdx,%rdx,8), %rdx
	salq	$4, %rdx
	leaq	48(%rax,%rdx), %rdx
	movdqa	16(%rdx), %xmm1
	movdqa	32(%rdx), %xmm0
	movdqa	(%rdx), %xmm5
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm0, 112(%rsp)
	jmp	.L9687
	.p2align 4,,10
	.p2align 3
.L9692:

	subl	$1, %edx
	sarl	%edx
	movswq	%dx, %rbx
	testw	%cx, %cx
	jne	.L9693
.L9695:

	movslq	%edx, %rdx
# WAS leaq	p384_g_pre_comp(%rip), %rax
	leaq	.Lp384_g_pre_comp_local_target(%rip), %rax
	leaq	80(%rsp), %r15
	leaq	(%rdx,%rdx,2), %rdx
	salq	$5, %rdx
	leaq	48(%rax,%rdx), %rdx
	movdqa	16(%rdx), %xmm1
	movdqa	32(%rdx), %xmm0
	movdqa	(%rdx), %xmm6
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm6, 80(%rsp)
	movaps	%xmm0, 112(%rsp)
	jmp	.L9697
	.p2align 4,,10
	.p2align 3
.L9683:

	movswq	%bx, %rdx
	movq	40(%rsp), %rax
	leaq	(%rdx,%rdx,8), %rdx
	salq	$4, %rdx
	addq	%rax, %rdx
	movdqa	16(%rdx), %xmm7
	movdqa	32(%rdx), %xmm6
	movdqa	48(%rdx), %xmm5
	movdqa	64(%rdx), %xmm4
	movdqa	80(%rdx), %xmm3
	movdqa	96(%rdx), %xmm2
	movaps	%xmm7, 144(%rsp)
	movdqa	112(%rdx), %xmm1
	movdqa	128(%rdx), %xmm0
	movaps	%xmm6, 160(%rsp)
	movdqa	(%rdx), %xmm8
	movaps	%xmm5, 176(%rsp)
	movaps	%xmm4, 192(%rsp)
	movaps	%xmm8, 128(%rsp)
	movaps	%xmm3, 208(%rsp)
	movaps	%xmm2, 224(%rsp)
	movaps	%xmm1, 240(%rsp)
	movaps	%xmm0, 256(%rsp)
	jmp	.L9686
	.p2align 4,,10
	.p2align 3
.L9722:

	subl	$1, %edx
	sarl	%edx
	movswq	%dx, %rbx
	jmp	.L9695
.L9724:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2035:

	.size	ec_GFp_nistp384_point_mul_public, .-ec_GFp_nistp384_point_mul_public
# WAS .section	.text.ec_GFp_nistp521_add,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_add, @function
.Lec_GFp_nistp521_add_local_target:
ec_GFp_nistp521_add:
.LFB2051:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$504, %rsp
	.cfi_def_cfa_offset 560
	movq	%fs:40, %rax
	movq	%rax, 488(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r14
	leaq	96(%rsp), %r13
	movq	%r14, %rdi
	leaq	256(%rsp), %r15
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	72(%r12), %rsi
	movq	%r13, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	144(%r12), %rsi
	leaq	176(%rsp), %r12
	movq	%r12, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	336(%rsp), %rdx
	leaq	72(%rbp), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 8(%rsp)
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	144(%rbp), %rsi
	leaq	416(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	pushq	%rbp
	.cfi_def_cfa_offset 568
	movq	16(%rsp), %rdx
	movq	%r13, %r9
	movq	%rax, %rdi
	movq	%r14, %r8
	movq	%r12, %rcx
	movq	%r14, %rsi
	pushq	%rdx
	.cfi_def_cfa_offset 576
	movq	%r13, %rdx
	pushq	%r15
	.cfi_def_cfa_offset 584
	pushq	%r12
	.cfi_def_cfa_offset 592
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	addq	$32, %rsp
	.cfi_def_cfa_offset 560
	movq	$0, 64(%rbx)
	movq	%r14, %rsi
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	72(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r13, %rsi
	movups	%xmm0, 72(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	144(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r12, %rsi
	movups	%xmm0, 144(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	488(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9728
	addq	$504, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9728:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2051:

	.size	ec_GFp_nistp521_add, .-ec_GFp_nistp521_add
# WAS .section	.text.ec_GFp_nistp521_point_mul_public,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_point_mul_public, @function
.Lec_GFp_nistp521_point_mul_public_local_target:
ec_GFp_nistp521_point_mul_public:
.LFB2056:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$1048, %rsp
	.cfi_def_cfa_offset 5200
	movq	%r8, 56(%rsp)
	leaq	160(%rsp), %rbp
	movq	%rcx, %rbx
	movl	$27, %ecx
	movq	%rdx, 40(%rsp)
	leaq	608(%rsp), %r14
	leaq	680(%rsp), %r15
	movq	%rdi, 16(%rsp)
	movq	%rbp, %rdi
	leaq	456(%rsp), %r12
	leaq	384(%rsp), %r13
	movq	%rsi, 48(%rsp)
	movq	%rbx, %rsi
	movq	%fs:40, %rax
	movq	%rax, 5128(%rsp)
	xorl	%eax, %eax
	rep stosq
	leaq	384(%rsp), %rdi
	movl	$27, %ecx
	rep stosq
	movq	%r14, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	72(%rbx), %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	752(%rsp), %rdx
	leaq	144(%rbx), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 24(%rsp)
	leaq	528(%rsp), %rbx
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 5208
	movq	%r14, %r8
	movq	%r15, %r9
	movq	32(%rsp), %rdx
	movq	%rax, %rdi
	movq	%rbx, %rcx
	movq	%r13, %rsi
	pushq	%rdx
	.cfi_def_cfa_offset 5216
	movq	%r12, %rdx
	movq	%rax, 40(%rsp)
	leaq	840(%rsp), %r15
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	leaq	4080(%rsp), %rax
	movq	%rax, 48(%rsp)
	popq	%rdi
	.cfi_def_cfa_offset 5208
	popq	%r8
	.cfi_def_cfa_offset 5200
	movq	%r14, 64(%rsp)
	movq	24(%rsp), %r14
	movq	%rbp, 72(%rsp)
	movq	%r15, %rbp
	movq	%r12, %r15
	movq	%rax, %r12
	.p2align 4,,10
	.p2align 3
.L9730:

	movq	8(%rsp), %rdi
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	-72(%rbp), %rsi
	leaq	72(%rbp), %rdx
	movq	%r15, %r9
	pushq	%rsi
	.cfi_def_cfa_offset 5208
	leaq	-144(%rbp), %rsi
	movq	%r13, %r8
	movq	%r14, %rdi
	pushq	%rsi
	.cfi_def_cfa_offset 5216
	leaq	-216(%rbp), %rsi
	leaq	144(%rbp), %rcx
	pushq	%rsi
	.cfi_def_cfa_offset 5224
	movq	%rbp, %rsi
	addq	$216, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 5232
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 5200
	cmpq	%rbp, %r12
	jne	.L9730
	movq	32(%rsp), %rdi
	xorl	%eax, %eax
	movl	$65, %ecx
	xorl	%esi, %esi
	movq	40(%rsp), %r10
	movq	56(%rsp), %r11
	rep stosq
	xorl	%ecx, %ecx
	movq	64(%rsp), %r14
	movq	72(%rsp), %rbp
	movw	%cx, (%rdi)
	leaq	4592(%rsp), %rdi
	movl	$65, %ecx
	movq	%rdi, 40(%rsp)
	rep stosq
	movq	16(%rsp), %rcx
	movl	(%r11), %eax
	andl	$63, %eax
	movw	%si, (%rdi)
	movslq	264(%rcx), %rsi
	movl	$6, %ecx
	leaq	4058(%rsp), %rdi
	jmp	.L9736
	.p2align 4,,10
	.p2align 3
.L9783:

	sarl	%eax
	xorl	%edx, %edx
.L9732:

	movb	%dl, (%rdi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%rsi, %rdx
	jnb	.L9735
	movq	(%r11,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	addl	%edx, %eax
.L9735:

	addq	$1, %rcx
	cmpq	$528, %rcx
	je	.L9782
.L9736:

	testb	$1, %al
	je	.L9783
	movl	%eax, %r8d
	andl	$32, %r8d
	je	.L9733
	cmpq	$520, %rcx
	ja	.L9734
	subl	$64, %eax
	movl	$32, %r8d
.L9733:

	movl	%eax, %edx
	movl	%r8d, %eax
	jmp	.L9732
.L9782:

	movl	(%r10), %eax
	movl	$6, %ecx
	leaq	4586(%rsp), %rdi
	andl	$63, %eax
	jmp	.L9742
	.p2align 4,,10
	.p2align 3
.L9785:

	sarl	%eax
	xorl	%edx, %edx
.L9738:

	movb	%dl, (%rdi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%rsi, %rdx
	jnb	.L9741
	movq	(%r10,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$5, %edx
	andl	$32, %edx
	addl	%edx, %eax
.L9741:

	addq	$1, %rcx
	cmpq	$528, %rcx
	je	.L9784
.L9742:

	testb	$1, %al
	je	.L9785
	movl	%eax, %r8d
	andl	$32, %r8d
	je	.L9739
	cmpq	$520, %rcx
	ja	.L9740
	subl	$64, %eax
	movl	$32, %r8d
.L9739:

	movl	%eax, %edx
	movl	%r8d, %eax
	jmp	.L9738
.L9740:

	movl	%eax, %r8d
	andl	$31, %eax
	andl	$-32, %r8d
	sarl	%r8d
	jmp	.L9739
.L9734:

	movl	%eax, %r8d
	andl	$31, %eax
	andl	$-32, %r8d
	sarl	%r8d
	jmp	.L9733
.L9784:

	leaq	80(%rsp), %rax
	movl	$521, %r15d
	movl	$1, %ecx
	movq	%rax, 16(%rsp)
	leaq	232(%rsp), %r13
	leaq	304(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L9743:

	movq	32(%rsp), %rax
	movzbl	(%rax,%r15), %edx
	testb	%dl, %dl
	je	.L9745
.L9787:

	movsbl	%dl, %eax
	andl	$128, %edx
	je	.L9746
	notl	%eax
	sarl	%eax
	movl	%eax, %ebx
	testw	%cx, %cx
	jne	.L9747
	cltq
	movq	16(%rsp), %rdi
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	72(%r14,%rax,8), %rsi
# WAS call	bignum_neg_p521@PLT
	call	.Lbignum_neg_p521_local_target
.L9751:

	movswq	%bx, %rax
	movq	8(%rsp), %rdi
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rbx
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	salq	$3, %rbx
	movq	%r13, %r9
	movq	%rbp, %r8
	leaq	144(%r14,%rbx), %rax
	addq	%r14, %rbx
	movq	%r12, %rcx
	movq	%r13, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 5208
	movq	%rbp, %rsi
	pushq	24(%rsp)
	.cfi_def_cfa_offset 5216
	pushq	%rbx
	.cfi_def_cfa_offset 5224
	pushq	%r12
	.cfi_def_cfa_offset 5232
	movq	56(%rsp), %rdi
# WAS call	ec_nistp_point_add.constprop.1
	call	.Lec_nistp_point_add.constprop.1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 5200
.L9750:

	movq	40(%rsp), %rax
	movzbl	(%rax,%r15), %edx
	testb	%dl, %dl
	je	.L9760
	movsbl	%dl, %eax
	andl	$128, %edx
	je	.L9786
	notl	%eax
	sarl	%eax
	movswq	%ax, %rbx
.L9758:

	cltq
# WAS leaq	p521_g_pre_comp(%rip), %rcx
	leaq	.Lp521_g_pre_comp_local_target(%rip), %rcx
	movq	16(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	salq	$4, %rax
	leaq	72(%rcx,%rax), %rsi
# WAS call	bignum_neg_p521@PLT
	call	.Lbignum_neg_p521_local_target
.L9761:

	movq	8(%rsp), %rdi
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%r13, %r9
	movq	%rbp, %r8
	movq	%r12, %rcx
# WAS leaq	p521_felem_one(%rip), %rax
	leaq	.Lp521_felem_one_local_target(%rip), %rax
# WAS leaq	p521_g_pre_comp(%rip), %rdi
	leaq	.Lp521_g_pre_comp_local_target(%rip), %rdi
	movq	%r13, %rdx
	movq	%rbp, %rsi
	pushq	%rax
	.cfi_def_cfa_offset 5208
	leaq	(%rbx,%rbx,8), %rax
	salq	$4, %rax
	pushq	24(%rsp)
	.cfi_def_cfa_offset 5216
	addq	%rdi, %rax
	pushq	%rax
	.cfi_def_cfa_offset 5224
	pushq	%r12
	.cfi_def_cfa_offset 5232
	movq	56(%rsp), %rdi
# WAS call	ec_nistp_point_add.constprop.0
	call	.Lec_nistp_point_add.constprop.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 5200
.L9760:

	subq	$1, %r15
	jb	.L9754
.L9753:

	movq	8(%rsp), %rdi
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	subq	$8, %rsp
	.cfi_def_cfa_offset 5208
	movq	%r12, %rcx
	movq	%r13, %rdx
	pushq	%r12
	.cfi_def_cfa_offset 5216
	movq	40(%rsp), %rdi
	movq	%r13, %r9
	movq	%rbp, %r8
	movq	%rbp, %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 5208
	popq	%rdx
	.cfi_def_cfa_offset 5200
	xorl	%ecx, %ecx
	movq	32(%rsp), %rax
	movzbl	(%rax,%r15), %edx
	testb	%dl, %dl
	jne	.L9787
.L9745:

	movq	40(%rsp), %rax
	movzbl	(%rax,%r15), %edx
	testb	%dl, %dl
	je	.L9755
	movsbl	%dl, %eax
	andl	$128, %edx
	je	.L9756
	notl	%eax
	sarl	%eax
	movswq	%ax, %rbx
	testw	%cx, %cx
	je	.L9758
.L9757:

	leaq	(%rbx,%rbx,8), %rax
# WAS leaq	p521_g_pre_comp(%rip), %rdi
	leaq	.Lp521_g_pre_comp_local_target(%rip), %rdi
	movq	$0, 368(%rsp)
	salq	$4, %rax
	addq	%rdi, %rax
	movdqa	96(%rax), %xmm2
	movdqa	128(%rax), %xmm0
	movdqa	16(%rax), %xmm7
	movdqa	32(%rax), %xmm6
	movdqa	48(%rax), %xmm5
	movdqa	64(%rax), %xmm4
	movaps	%xmm2, 256(%rsp)
	movdqa	80(%rax), %xmm3
	movdqa	112(%rax), %xmm1
	movaps	%xmm0, 288(%rsp)
	pxor	%xmm0, %xmm0
	movdqa	(%rax), %xmm13
	movdqa	.LC108(%rip), %xmm2
	movaps	%xmm7, 176(%rsp)
	movaps	%xmm6, 192(%rsp)
	movaps	%xmm13, 160(%rsp)
	movaps	%xmm5, 208(%rsp)
	movaps	%xmm4, 224(%rsp)
	movaps	%xmm3, 240(%rsp)
	movaps	%xmm1, 272(%rsp)
	movaps	%xmm2, 304(%rsp)
	movaps	%xmm0, 320(%rsp)
	movaps	%xmm0, 336(%rsp)
	movaps	%xmm0, 352(%rsp)
	subq	$1, %r15
	jnb	.L9753
.L9754:

	movq	48(%rsp), %rbx
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movq	$0, 64(%rbx)
	movq	%rbx, %rdi
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	72(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r13, %rsi
	movups	%xmm0, 72(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	144(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r12, %rsi
	movups	%xmm0, 144(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	movq	5128(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9788
	addq	$5144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9755:

	.cfi_restore_state
	subq	$1, %r15
	jb	.L9754
	testw	%cx, %cx
	jne	.L9743
	jmp	.L9753
	.p2align 4,,10
	.p2align 3
.L9746:

	subl	$1, %eax
	sarl	%eax
	movl	%eax, %ebx
	testw	%cx, %cx
	jne	.L9747
	cltq
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	72(%r14,%rax,8), %rax
	movdqu	(%rax), %xmm1
	movdqu	16(%rax), %xmm2
	movdqu	32(%rax), %xmm3
	movdqu	48(%rax), %xmm4
	movq	64(%rax), %rax
	movaps	%xmm1, 80(%rsp)
	movaps	%xmm2, 96(%rsp)
	movq	%rax, 144(%rsp)
	movaps	%xmm3, 112(%rsp)
	movaps	%xmm4, 128(%rsp)
	jmp	.L9751
	.p2align 4,,10
	.p2align 3
.L9756:

	subl	$1, %eax
	sarl	%eax
	movswq	%ax, %rbx
	testw	%cx, %cx
	jne	.L9757
.L9759:

	cltq
# WAS leaq	p521_g_pre_comp(%rip), %rdi
	leaq	.Lp521_g_pre_comp_local_target(%rip), %rdi
	leaq	(%rax,%rax,8), %rax
	salq	$4, %rax
	leaq	72(%rdi,%rax), %rax
	movdqu	(%rax), %xmm5
	movdqu	16(%rax), %xmm6
	movdqu	32(%rax), %xmm7
	movdqu	48(%rax), %xmm1
	movq	64(%rax), %rax
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm6, 96(%rsp)
	movq	%rax, 144(%rsp)
	movaps	%xmm7, 112(%rsp)
	movaps	%xmm1, 128(%rsp)
	jmp	.L9761
	.p2align 4,,10
	.p2align 3
.L9747:

	movswq	%bx, %rax
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rdx
	salq	$3, %rdx
	leaq	(%r14,%rdx), %rax
	movdqu	16(%rax), %xmm11
	movdqu	32(%rax), %xmm10
	movdqu	48(%rax), %xmm9
	movdqu	64(%rax), %xmm8
	movdqu	80(%rax), %xmm7
	movdqu	96(%rax), %xmm6
	movaps	%xmm11, 176(%rsp)
	movdqu	112(%rax), %xmm5
	movdqu	128(%rax), %xmm4
	movaps	%xmm10, 192(%rsp)
	movdqu	144(%rax), %xmm3
	movdqu	160(%rax), %xmm2
	movaps	%xmm9, 208(%rsp)
	movdqu	176(%rax), %xmm1
	movdqu	(%rax), %xmm12
	movaps	%xmm8, 224(%rsp)
	movdqu	192(%rax), %xmm0
	movq	816(%rsp,%rdx), %rax
	movaps	%xmm7, 240(%rsp)
	movaps	%xmm12, 160(%rsp)
	movq	%rax, 368(%rsp)
	movaps	%xmm6, 256(%rsp)
	movaps	%xmm5, 272(%rsp)
	movaps	%xmm4, 288(%rsp)
	movaps	%xmm3, 304(%rsp)
	movaps	%xmm2, 320(%rsp)
	movaps	%xmm1, 336(%rsp)
	movaps	%xmm0, 352(%rsp)
	jmp	.L9750
	.p2align 4,,10
	.p2align 3
.L9786:

	subl	$1, %eax
	sarl	%eax
	movswq	%ax, %rbx
	jmp	.L9759
.L9788:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2056:

	.size	ec_GFp_nistp521_point_mul_public, .-ec_GFp_nistp521_point_mul_public
# WAS .section	.text.ec_nistp_point_add,"ax",@progbits
.text
	.p2align 4
	.globl	ec_nistp_point_add
	.hidden	ec_nistp_point_add
	.type	ec_nistp_point_add, @function
.Lec_nistp_point_add_local_target:
ec_nistp_point_add:
.LFB1893:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1400, %rsp
	.cfi_def_cfa_offset 1456
	movq	1472(%rsp), %rax
	movq	1488(%rsp), %r14
	movq	%rcx, 88(%rsp)
	leaq	352(%rsp), %r13
	movq	%rsi, 80(%rsp)
	movq	1456(%rsp), %rbx
	movq	%rax, 24(%rsp)
	movq	1480(%rsp), %rax
	movq	%rdx, 96(%rsp)
	movq	%rbx, %rdi
	movq	%r8, 56(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rax, 32(%rsp)
	movq	%r14, 104(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 1384(%rsp)
	xorl	%eax, %eax
	call	*56(%rbp)
	movq	%r14, %rdi
	movq	%rax, %r15
	call	*56(%rbp)
	movq	%rbx, (%rsp)
	movq	%rbx, %rsi
	movq	%r13, %rdi
	movq	%rax, 64(%rsp)
	call	*40(%rbp)
	movl	1464(%rsp), %ecx
	testl	%ecx, %ecx
	jne	.L9790
	leaq	1312(%rsp), %rbx
	movq	%r14, %rsi
	movq	%rbx, %rdi
	call	*40(%rbp)
	leaq	432(%rsp), %rax
	movq	%r12, %rsi
	movq	%rbx, %rdx
	leaq	592(%rsp), %r12
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
	call	*32(%rbp)
	movq	%r14, %rdx
	movq	(%rsp), %rsi
	movq	%r12, %rdi
	call	*16(%rbp)
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*40(%rbp)
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	leaq	512(%rsp), %rax
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%rax, %rbx
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	*32(%rbp)
	movq	40(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	call	*32(%rbp)
.L9791:

	leaq	672(%rsp), %rbx
	leaq	752(%rsp), %r14
	movq	%r13, %rdx
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
	call	*32(%rbp)
	movq	%rbx, %rsi
	movq	16(%rsp), %rdx
	movq	%r14, %rdi
	call	*24(%rbp)
	leaq	272(%rsp), %rbx
	movq	%r14, %rdi
	call	*56(%rbp)
	movq	%r12, %rdx
	movq	%rbx, %rdi
	movq	%rbx, 48(%rsp)
	movq	%rax, 72(%rsp)
	leaq	832(%rsp), %rbx
	movq	%r14, %rsi
	leaq	912(%rsp), %r12
	call	*32(%rbp)
	movq	%r13, %rdx
	movq	%rbx, %rdi
	movq	(%rsp), %rsi
	call	*32(%rbp)
	movq	%rbx, %rdx
	movq	32(%rsp), %rsi
	movq	%r12, %rdi
	call	*32(%rbp)
	leaq	992(%rsp), %r13
	movq	8(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r13, %rdi
	call	*24(%rbp)
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
	call	*16(%rbp)
	movq	%r13, %rdi
	call	*56(%rbp)
	movq	64(%rsp), %rcx
	movq	%r15, %rsi
	movq	72(%rsp), %rdx
	notq	%rsi
	subq	$1, %r15
	orq	%rax, %rdx
	movq	%rsi, %rax
	movq	%rcx, %rsi
	subq	$1, %rcx
	notq	%rsi
	movq	%rdx, %rbx
	andq	%r15, %rax
	subq	$1, %rdx
	andq	%rcx, %rsi
	notq	%rbx
	movq	%rsi, %rcx
	andq	%rdx, %rbx
	movq	%rsi, 64(%rsp)
	orq	%rax, %rcx
	sarq	$63, %rbx
	movq	%rcx, %rdx
	sarq	$63, %rdx
	notq	%rdx
	andq	%rdx, %rbx
	testq	%rbx, %rbx
	jne	.L9824
	leaq	1072(%rsp), %r12
	movq	%rax, 72(%rsp)
	movq	%r14, %rdx
	movq	%r14, %rsi
	leaq	1152(%rsp), %r15
	movq	%r12, %rdi
	call	*16(%rbp)
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*40(%rbp)
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
	call	*32(%rbp)
	leaq	1232(%rsp), %r14
	movq	%r12, %rdx
	leaq	112(%rsp), %r12
	movq	16(%rsp), %rsi
	movq	%r14, %rdi
	call	*32(%rbp)
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	*40(%rbp)
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*24(%rbp)
	leaq	192(%rsp), %r8
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r8, %rdi
	movq	%r8, 16(%rsp)
	call	*24(%rbp)
	movq	16(%rsp), %r8
	movq	%r13, %rdx
	leaq	1312(%rsp), %r13
	movq	%r8, %rsi
	movq	%r8, %rdi
	call	*32(%rbp)
	movq	8(%rsp), %rsi
	movq	%r15, %rdx
	movq	%r13, %rdi
	call	*32(%rbp)
	movq	16(%rsp), %r8
	movq	%r13, %rdx
	movq	%r8, %rsi
	movq	%r8, %rdi
	movq	%r8, 8(%rsp)
	call	*24(%rbp)
	movq	8(%rsp), %r8
	movq	%r13, %rdx
	movq	%r8, %rsi
	movq	%r8, %rdi
	call	*24(%rbp)
	movq	0(%rbp), %r11
	testq	%r11, %r11
	je	.L9789
	movq	72(%rsp), %rax
	leaq	0(,%r11,8), %r10
	movq	24(%rsp), %rcx
	movq	8(%rsp), %r8
	leaq	(%r12,%r10), %r15
	sarq	$63, %rax
	movq	%rax, %r9
	movq	%rax, %rsi
	movq	%r12, %rax
	notq	%r9
	movq	%rsi, %r14
	movq	%r9, %r13
	.p2align 4,,10
	.p2align 3
.L9796:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%r14, %rdx
	andq	%r13, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9796
	movq	32(%rsp), %rcx
	movq	%r8, %rax
	leaq	(%r8,%r10), %r15
	movq	%rsi, %r14
	movq	%r9, %r13
	.p2align 4,,10
	.p2align 3
.L9797:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%r14, %rdx
	andq	%r13, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r15, %rax
	jne	.L9797
	movq	48(%rsp), %rdi
	movq	104(%rsp), %rcx
	movq	%rdi, %rax
	addq	%rdi, %r10
	.p2align 4,,10
	.p2align 3
.L9798:

	movq	(%rax), %rdi
	movq	(%rcx), %rdx
	addq	$8, %rax
	addq	$8, %rcx
	andq	%rsi, %rdx
	andq	%r9, %rdi
	orq	%rdi, %rdx
	movq	%rdx, -8(%rax)
	cmpq	%r10, %rax
	jne	.L9798
	movq	64(%rsp), %rcx
	movq	80(%rsp), %r13
	xorl	%eax, %eax
	movq	56(%rsp), %r14
	sarq	$63, %rcx
	movq	%rcx, %rdi
	movq	%rcx, %r10
	notq	%rdi
	movq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L9799:

	movq	(%r14,%rax,8), %rdx
	movq	(%r12,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%r9, %rsi
	orq	%rsi, %rdx
	movq	%rdx, 0(%r13,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L9799
	movq	0(%rbp), %r11
	xorl	%eax, %eax
	testq	%r11, %r11
	je	.L9789
	movq	96(%rsp), %r12
	movq	40(%rsp), %r13
	movq	%rcx, %r10
	movq	%rdi, %r9
	.p2align 4,,10
	.p2align 3
.L9800:

	movq	0(%r13,%rax,8), %rdx
	movq	(%r8,%rax,8), %rsi
	andq	%r10, %rdx
	andq	%r9, %rsi
	orq	%rsi, %rdx
	movq	%rdx, (%r12,%rax,8)
	addq	$1, %rax
	cmpq	%r11, %rax
	jne	.L9800
	movq	0(%rbp), %rsi
	testq	%rsi, %rsi
	je	.L9789
	movq	88(%rsp), %r8
	movq	(%rsp), %r9
	movq	48(%rsp), %r10
	.p2align 4,,10
	.p2align 3
.L9801:

	movq	(%r9,%rbx,8), %rax
	movq	(%r10,%rbx,8), %rdx
	andq	%rcx, %rax
	andq	%rdi, %rdx
	orq	%rdx, %rax
	movq	%rax, (%r8,%rbx,8)
	addq	$1, %rbx
	cmpq	%rbx, %rsi
	jne	.L9801
.L9789:

	movq	1384(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9825
	addq	$1400, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9790:

	.cfi_restore_state
	movq	0(%rbp), %rdx
	leaq	432(%rsp), %rdi
	movq	%rdi, 16(%rsp)
	salq	$3, %rdx
	jne	.L9826
.L9792:

	movq	(%rsp), %rsi
	leaq	592(%rsp), %r12
	movq	%r12, %rdi
	movq	%rsi, %rdx
	call	*16(%rbp)
	movq	0(%rbp), %rdx
	leaq	512(%rsp), %rdi
	movq	%rdi, 8(%rsp)
	salq	$3, %rdx
	je	.L9791
	movq	40(%rsp), %rsi
	movl	$72, %ecx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	jmp	.L9791
	.p2align 4,,10
	.p2align 3
.L9826:

	movq	56(%rsp), %rsi
	movl	$72, %ecx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	jmp	.L9792
	.p2align 4,,10
	.p2align 3
.L9824:

	subq	$8, %rsp
	.cfi_def_cfa_offset 1464
	movq	%rbp, %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 1472
	movq	56(%rsp), %r9
	movq	72(%rsp), %r8
	movq	104(%rsp), %rcx
	movq	112(%rsp), %rdx
	movq	96(%rsp), %rsi
# WAS call	ec_nistp_point_double
	call	.Lec_nistp_point_double_local_target
	popq	%rax
	.cfi_def_cfa_offset 1464
	popq	%rdx
	.cfi_def_cfa_offset 1456
	jmp	.L9789
.L9825:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1893:

	.size	ec_nistp_point_add, .-ec_nistp_point_add
# WAS .section	.text.fiat_p256_point_add,"ax",@progbits
.text
	.p2align 4
	.type	fiat_p256_point_add, @function
.Lfiat_p256_point_add_local_target:
fiat_p256_point_add:
.LFB1977:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	96(%rsp)
	.cfi_def_cfa_offset 80
	movq	%rax, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	pushq	96(%rsp)
	.cfi_def_cfa_offset 88
	movq	%rbx, %rsi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 96
	movl	96(%rsp), %eax
	pushq	%rax
	.cfi_def_cfa_offset 104
	pushq	%r15
	.cfi_def_cfa_offset 112
# WAS call	ec_nistp_point_add
	call	.Lec_nistp_point_add_local_target
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1977:

	.size	fiat_p256_point_add, .-fiat_p256_point_add
# WAS .section	.text.p384_point_add,"ax",@progbits
.text
	.p2align 4
	.type	p384_point_add, @function
.Lp384_point_add_local_target:
p384_point_add:
.LFB2022:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	96(%rsp)
	.cfi_def_cfa_offset 80
	movq	%rax, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	pushq	96(%rsp)
	.cfi_def_cfa_offset 88
	movq	%rbx, %rsi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 96
	movl	96(%rsp), %eax
	pushq	%rax
	.cfi_def_cfa_offset 104
	pushq	%r15
	.cfi_def_cfa_offset 112
# WAS call	ec_nistp_point_add
	call	.Lec_nistp_point_add_local_target
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2022:

	.size	p384_point_add, .-p384_point_add
# WAS .section	.text.p521_point_add,"ax",@progbits
.text
	.p2align 4
	.type	p521_point_add, @function
.Lp521_point_add_local_target:
p521_point_add:
.LFB2046:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	subq	$8, %rsp
	.cfi_def_cfa_offset 72
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	96(%rsp)
	.cfi_def_cfa_offset 80
	movq	%rax, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	pushq	96(%rsp)
	.cfi_def_cfa_offset 88
	movq	%rbx, %rsi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 96
	movl	96(%rsp), %eax
	pushq	%rax
	.cfi_def_cfa_offset 104
	pushq	%r15
	.cfi_def_cfa_offset 112
# WAS call	ec_nistp_point_add
	call	.Lec_nistp_point_add_local_target
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2046:

	.size	p521_point_add, .-p521_point_add
# WAS .section	.text.ec_nistp_scalar_mul,"ax",@progbits
.text
	.p2align 4
	.globl	ec_nistp_scalar_mul
	.hidden	ec_nistp_scalar_mul
	.type	ec_nistp_scalar_mul, @function
.Lec_nistp_scalar_mul_local_target:
ec_nistp_scalar_mul:
.LFB1898:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$296, %rsp
	.cfi_def_cfa_offset 4448
	movq	4456(%rsp), %rax
	movq	(%rdi), %rbx
	movq	4448(%rsp), %r15
	movq	%rbx, %rbp
	movq	%rbx, %r13
	salq	$4, %rbp
	movq	%rdi, 16(%rsp)
	leaq	912(%rsp), %rdi
	movq	%rsi, 128(%rsp)
	leaq	(%rdi,%rbp), %r12
	movq	%rdi, %r14
	movq	%rdx, 136(%rsp)
	movq	%rcx, 144(%rsp)
	movq	%r9, (%rsp)
	movq	%rax, 120(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 4376(%rsp)
	xorl	%eax, %eax
	salq	$3, %r13
	movq	%rdi, 104(%rsp)
	je	.L9834
	movq	%r8, %rsi
	movl	$3456, %ecx
	leaq	(%rdi,%r13), %r14
	movq	%r13, %rdx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	movl	$3456, %eax
	movq	%r13, %rdx
	movq	%r14, %rdi
	cmpq	%rax, %r13
	movq	(%rsp), %rsi
	cmovnb	%r13, %rax
	subq	%r13, %rax
	movq	%rax, %rcx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	movl	$3456, %eax
	movq	%r13, %rdx
	movq	%r15, %rsi
	cmpq	%rax, %rbp
	movq	%r12, %rdi
	cmovnb	%rbp, %rax
	subq	%rbp, %rax
	movq	%rax, %rcx
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
.L9834:

	movq	%r14, %r8
	movq	16(%rsp), %rax
	movq	104(%rsp), %r14
	movq	%r12, %r9
	leaq	464(%rsp), %rsi
	leaq	688(%rsp), %r15
	salq	$5, %rbx
	leaq	240(%rsp), %rdi
	movq	%rsi, 32(%rsp)
	movq	%r14, %rcx
	movq	%r15, %rdx
	movq	%r15, 64(%rsp)
	movq	%rdi, 48(%rsp)
	call	*64(%rax)
	movq	%rbx, %rsi
	leaq	(%r14,%r13), %r8
	movq	%rbp, %rbx
	addq	%r14, %rsi
	movl	$15, %r14d
	.p2align 4,,10
	.p2align 3
.L9835:

	pushq	%r15
	.cfi_def_cfa_offset 4456
	leaq	0(%r13,%r8), %rbp
	leaq	0(%r13,%rsi), %r12
	movq	%r8, %rcx
	pushq	40(%rsp)
	.cfi_def_cfa_offset 4464
	movq	%rsi, %rdi
	subq	%r13, %rcx
	movq	%rbp, %r9
	pushq	64(%rsp)
	.cfi_def_cfa_offset 4472
	subq	%r13, %rdi
	movq	%r12, %rdx
	pushq	$0
	.cfi_def_cfa_offset 4480
	movq	48(%rsp), %rax
	call	*72(%rax)
	leaq	(%r12,%rbx), %rsi
	leaq	0(%rbp,%rbx), %r8
	addq	$32, %rsp
	.cfi_def_cfa_offset 4448
	subq	$1, %r14
	jne	.L9835
	movq	16(%rsp), %rax
	movq	120(%rsp), %r13
	movq	8(%rax), %rdi
	movq	0(%r13), %rax
	leaq	4(%rdi), %rdx
	movq	%rax, (%rsp)
	movzwl	(%rsp), %esi
	movabsq	$-3689348814741910323, %rax
	mulq	%rdx
	andl	$63, %esi
	orl	$1, %esi
	movq	%rdx, %rcx
	shrq	$2, %rcx
	movq	%rcx, %r12
	subq	$1, %r12
	je	.L9836
	movq	48(%rsp), %rbx
	leaq	1(%rcx,%rcx,4), %rbp
	movq	%rcx, %r15
	movl	$7, %r11d
	movl	$8, %r10d
	movl	$9, %r9d
	movl	$10, %r8d
	movl	$6, %edx
	.p2align 4,,10
	.p2align 3
.L9842:

	movl	%esi, %eax
	movswl	%si, %ecx
	andl	$63, %eax
	subl	$32, %eax
	movw	%ax, (%rbx)
	cwtl
	subl	%eax, %ecx
	movl	%ecx, %eax
	sarl	$5, %eax
	movl	%eax, %esi
	cmpq	%rdi, %rdx
	jnb	.L9837
	movq	%rdx, %rcx
	shrq	$6, %rcx
	movq	0(%r13,%rcx,8), %rsi
	movl	%edx, %ecx
	shrq	%cl, %rsi
	addl	%esi, %esi
	andl	$2, %esi
	orl	%eax, %esi
.L9837:

	cmpq	%rdi, %r11
	jnb	.L9838
	movq	%r11, %rax
	movl	%r11d, %ecx
	shrq	$6, %rax
	movq	0(%r13,%rax,8), %rax
	shrq	%cl, %rax
	sall	$2, %eax
	andl	$4, %eax
	orl	%eax, %esi
.L9838:

	cmpq	%rdi, %r10
	jnb	.L9839
	movq	%r10, %rax
	movl	%r10d, %ecx
	shrq	$6, %rax
	movq	0(%r13,%rax,8), %rax
	shrq	%cl, %rax
	sall	$3, %eax
	andl	$8, %eax
	orl	%eax, %esi
.L9839:

	cmpq	%rdi, %r9
	jnb	.L9840
	movq	%r9, %rax
	movl	%r9d, %ecx
	shrq	$6, %rax
	movq	0(%r13,%rax,8), %rax
	shrq	%cl, %rax
	sall	$4, %eax
	andl	$16, %eax
	orl	%eax, %esi
.L9840:

	cmpq	%rdi, %r8
	jnb	.L9841
	movq	%r8, %rax
	movl	%r8d, %ecx
	shrq	$6, %rax
	movq	0(%r13,%rax,8), %rax
	shrq	%cl, %rax
	sall	$5, %eax
	andl	$32, %eax
	orl	%eax, %esi
.L9841:

	addq	$5, %rdx
	addq	$2, %rbx
	addq	$5, %r8
	addq	$5, %r9
	addq	$5, %r10
	addq	$5, %r11
	cmpq	%rdx, %rbp
	jne	.L9842
	movq	%r15, %rcx
.L9836:

	movq	16(%rsp), %rax
	movq	32(%rsp), %rbx
	movw	%si, 238(%rsp,%rcx,2)
	movq	64(%rsp), %rsi
	movq	(%rax), %rdx
	leaq	0(,%rdx,8), %rdi
	movq	%rdx, %r8
	leaq	(%rbx,%rdi), %rax
	salq	$4, %r8
	movq	%rax, 56(%rsp)
	leaq	(%rsi,%rdi), %rax
	addq	%r8, %rsi
	leaq	(%rbx,%r8), %r9
	movq	%rsi, 96(%rsp)
	movzwl	240(%rsp,%r12,2), %esi
	sarw	%si
	movswq	%si, %r15
	testq	%rdx, %rdx
	je	.L9843
	leaq	(%rdx,%rdx,2), %r11
	movq	104(%rsp), %rsi
	movq	%r9, 40(%rsp)
	movl	$1, %r12d
	movq	%r11, %r13
	salq	$3, %r11
	movq	%rax, 72(%rsp)
	movq	%rdi, %r10
	subq	%r11, %rsi
	movq	%rcx, 88(%rsp)
	leaq	(%rbx,%r11), %rbp
	salq	$4, %r13
	movq	%r8, 112(%rsp)
	movq	%rsi, 24(%rsp)
	movq	%rbx, %rsi
	xorl	%ebx, %ebx
	movq	%r14, 80(%rsp)
	movq	%rsi, %r14
.L9845:

	leaq	-1(%r12), %rax
	movq	%r15, (%rsp)
	movq	%r14, %rdx
	xorq	%r15, %rax
	movq	%r10, 8(%rsp)
	movq	%rax, %rdi
	subq	$1, %rax
	notq	%rdi
	andq	%rax, %rdi
	movq	24(%rsp), %rax
	sarq	$63, %rdi
	leaq	(%rax,%r11), %rcx
	movq	%r15, %rax
	movq	%rdi, %r9
	xorq	%r12, %rax
	notq	%r9
	leaq	-1(%rax), %rsi
	notq	%rax
	andq	%rax, %rsi
	sarq	$63, %rsi
	movq	%rsi, %r8
	notq	%r8
	.p2align 4,,10
	.p2align 3
.L9844:

	movq	(%rdx), %r15
	movq	(%rcx), %rax
	addq	$8, %rdx
	andq	%r9, %r15
	andq	%rdi, %rax
	orq	%r15, %rax
	leaq	(%rbx,%rcx), %r15
	addq	$8, %rcx
	movq	(%r15,%r11), %r10
	andq	%r8, %rax
	andq	%rsi, %r10
	orq	%r10, %rax
	movq	%rax, -8(%rdx)
	cmpq	%rdx, %rbp
	jne	.L9844
	addq	$2, %r12
	movq	(%rsp), %r15
	movq	8(%rsp), %r10
	addq	%r13, %r11
	subq	%r13, %rbx
	cmpq	$17, %r12
	jne	.L9845
	movq	40(%rsp), %r9
	movq	72(%rsp), %rax
	movq	%r10, %rdi
	movq	80(%rsp), %r14
	movq	88(%rsp), %rcx
	movq	112(%rsp), %r8
.L9843:

	leal	-2(%rcx), %ebx
	movq	16(%rsp), %rbp
	movq	%rbx, 40(%rsp)
	movq	%rbx, %rcx
	leaq	160(%rsp), %rbx
	movq	%rbx, 112(%rsp)
	testl	%ecx, %ecx
	js	.L9848
	movq	%r9, 72(%rsp)
	movq	%rax, %r15
	movq	%r14, 152(%rsp)
	.p2align 4,,10
	.p2align 3
.L9855:

	movq	56(%rsp), %rbp
	movq	72(%rsp), %r12
	movl	$5, %ebx
	movq	16(%rsp), %r14
	movq	32(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L9849:

	movq	%r12, %r9
	movq	%rbp, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r13, %rdi
	call	*64(%r14)
	subq	$1, %rbx
	jne	.L9849
	movq	48(%rsp), %rax
	movq	40(%rsp), %rdi
	movzwl	(%rax,%rdi,2), %ecx
	movq	16(%rsp), %rax
	movl	%ecx, %r13d
	movl	%ecx, %edx
	sarw	$15, %r13w
	shrw	$15, %dx
	xorl	%ecx, %r13d
	movq	(%rax), %rcx
	addl	%edx, %r13d
	sarw	%r13w
	movswq	%r13w, %r13
	testq	%rcx, %rcx
	je	.L9850
	leaq	(%rcx,%rcx,2), %r10
	movq	104(%rsp), %rax
	movq	64(%rsp), %rdi
	xorl	%r11d, %r11d
	movq	%r10, %r14
	movw	%dx, 80(%rsp)
	salq	$3, %r10
	movl	$1, %r12d
	movq	%rbx, 88(%rsp)
	subq	%r10, %rax
	salq	$4, %r14
	leaq	(%rdi,%r10), %rbp
	movq	%rax, 24(%rsp)
	movq	%r15, %rax
	movq	%rdi, %r15
	.p2align 4,,10
	.p2align 3
.L9852:

	leaq	-1(%r12), %rdx
	movq	24(%rsp), %rdi
	movq	%r13, (%rsp)
	movq	%r15, %rcx
	xorq	%r13, %rdx
	movq	%rax, 8(%rsp)
	movq	%rdx, %r8
	subq	$1, %rdx
	leaq	(%rdi,%r10), %rsi
	notq	%r8
	andq	%rdx, %r8
	movq	%r13, %rdx
	xorq	%r12, %rdx
	sarq	$63, %r8
	leaq	-1(%rdx), %rdi
	notq	%rdx
	movq	%r8, %rbx
	andq	%rdx, %rdi
	notq	%rbx
	sarq	$63, %rdi
	movq	%rdi, %r9
	notq	%r9
	.p2align 4,,10
	.p2align 3
.L9851:

	movq	(%rcx), %r13
	movq	(%rsi), %rdx
	addq	$8, %rcx
	andq	%rbx, %r13
	andq	%r8, %rdx
	orq	%r13, %rdx
	leaq	(%r11,%rsi), %r13
	addq	$8, %rsi
	movq	0(%r13,%r10), %rax
	andq	%r9, %rdx
	andq	%rdi, %rax
	orq	%rax, %rdx
	movq	%rdx, -8(%rcx)
	cmpq	%rcx, %rbp
	jne	.L9851
	addq	$2, %r12
	movq	(%rsp), %r13
	movq	8(%rsp), %rax
	addq	%r14, %r10
	subq	%r14, %r11
	cmpq	$17, %r12
	jne	.L9852
	movzwl	80(%rsp), %edx
	movq	88(%rsp), %rbx
	movq	%rax, %r15
.L9850:

	movq	112(%rsp), %rbp
	movq	16(%rsp), %r14
	movl	%edx, (%rsp)
	movq	%r15, %rsi
	movq	%rbp, %rdi
	call	*48(%r14)
	movl	(%rsp), %edx
	movq	(%r14), %rsi
	cmpw	$1, %dx
	sbbq	%rcx, %rcx
	movq	%rcx, %rdi
	notq	%rdi
	testq	%rsi, %rsi
	je	.L9858
	movq	%rbp, %rax
	.p2align 4,,10
	.p2align 3
.L9857:

	movq	(%r15,%rbx,8), %rdx
	movq	(%rax,%rbx,8), %r8
	andq	%rcx, %rdx
	andq	%rdi, %r8
	orq	%r8, %rdx
	movq	%rdx, (%r15,%rbx,8)
	addq	$1, %rbx
	cmpq	%rbx, %rsi
	jne	.L9857
.L9858:

	pushq	96(%rsp)
	.cfi_def_cfa_offset 4456
	pushq	%r15
	.cfi_def_cfa_offset 4464
	pushq	80(%rsp)
	.cfi_def_cfa_offset 4472
	pushq	$0
	.cfi_def_cfa_offset 4480
	movq	104(%rsp), %rdx
	movq	88(%rsp), %rsi
	movq	64(%rsp), %rdi
	movq	48(%rsp), %rax
	movq	%rdx, %r9
	movq	%rsi, %r8
	movq	%rdi, %rcx
	call	*72(%rax)
	subq	$1, 72(%rsp)
	movq	72(%rsp), %rax
	addq	$32, %rsp
	.cfi_def_cfa_offset 4448
	testl	%eax, %eax
	jns	.L9855
	movq	16(%rsp), %rbx
	movq	72(%rsp), %r9
	movq	%r15, %rax
	movq	152(%rsp), %r14
	movq	(%rbx), %rdx
	movq	%rbx, %rbp
	leaq	0(,%rdx,8), %rdi
	salq	$4, %rdx
	movq	%rdx, %r8
.L9848:

	movq	104(%rsp), %r15
	movq	%r8, 8(%rsp)
	movq	%rax, 24(%rsp)
	leaq	(%r15,%rdi), %rbx
	movq	%r9, (%rsp)
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	call	*48(%rbp)
	movq	8(%rsp), %r8
	addq	%r15, %r8
	pushq	%r8
	.cfi_def_cfa_offset 4456
	pushq	%rbx
	.cfi_def_cfa_offset 4464
	pushq	%r15
	.cfi_def_cfa_offset 4472
	pushq	$0
	.cfi_def_cfa_offset 4480
	movq	56(%rsp), %rax
	movq	32(%rsp), %r9
	movq	64(%rsp), %r13
	movq	96(%rsp), %r12
	movq	%rax, %rsi
	movq	88(%rsp), %r8
	movq	%rax, 32(%rsp)
	movq	128(%rsp), %rdx
	movq	%r13, %rcx
	movq	%r9, 40(%rsp)
	movq	%r12, %rdi
	call	*72(%rbp)
	movq	152(%rsp), %rax
	movq	0(%rbp), %r11
	addq	$32, %rsp
	.cfi_def_cfa_offset 4448
	movq	(%rax), %rsi
	andl	$1, %esi
	subq	$1, %rsi
	sarq	$63, %rsi
	testq	%r11, %r11
	je	.L9833
	movq	%rsi, %rbx
	movq	8(%rsp), %r9
	movq	(%rsp), %rax
	xorl	%edx, %edx
	movq	128(%rsp), %rbp
	notq	%rbx
	movq	%rsi, %r10
	movq	%rbx, %r8
	.p2align 4,,10
	.p2align 3
.L9860:

	movq	(%r12,%rdx,8), %rcx
	movq	0(%r13,%rdx,8), %rdi
	andq	%r10, %rcx
	andq	%r8, %rdi
	orq	%rdi, %rcx
	movq	%rcx, 0(%rbp,%rdx,8)
	addq	$1, %rdx
	cmpq	%rdx, %r11
	jne	.L9860
	movq	16(%rsp), %rdi
	movq	(%rdi), %r11
	testq	%r11, %r11
	je	.L9833
	movq	56(%rsp), %rbp
	xorl	%edx, %edx
	movq	%rsi, %r10
	movq	%rbx, %r8
	movq	136(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L9861:

	movq	(%rax,%rdx,8), %rcx
	movq	0(%rbp,%rdx,8), %rdi
	andq	%r10, %rcx
	andq	%r8, %rdi
	orq	%rdi, %rcx
	movq	%rcx, (%r12,%rdx,8)
	addq	$1, %rdx
	cmpq	%rdx, %r11
	jne	.L9861
	movq	16(%rsp), %rax
	movq	(%rax), %rcx
	testq	%rcx, %rcx
	je	.L9833
	movq	96(%rsp), %rdi
	movq	144(%rsp), %r8
	.p2align 4,,10
	.p2align 3
.L9863:

	movq	(%rdi,%r14,8), %rax
	movq	(%r9,%r14,8), %rdx
	andq	%rsi, %rax
	andq	%rbx, %rdx
	orq	%rdx, %rax
	movq	%rax, (%r8,%r14,8)
	addq	$1, %r14
	cmpq	%r14, %rcx
	jne	.L9863
.L9833:

	movq	4376(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9907
	addq	$4392, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9907:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1898:

	.size	ec_nistp_scalar_mul, .-ec_nistp_scalar_mul
# WAS .section	.text.ec_GFp_nistp256_point_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp256_point_mul, @function
.Lec_GFp_nistp256_point_mul_local_target:
ec_GFp_nistp256_point_mul:
.LFB1986:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$208, %rsp
	.cfi_def_cfa_offset 256
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movdqu	72(%rdx), %xmm2
	movdqu	88(%rdx), %xmm3
	leaq	160(%rsp), %r14
	leaq	96(%rsp), %r12
	movdqu	144(%rdx), %xmm4
	movdqu	160(%rdx), %xmm5
	leaq	128(%rsp), %r13
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm1, 112(%rsp)
	movaps	%xmm2, 128(%rsp)
	movaps	%xmm3, 144(%rsp)
	movaps	%xmm4, 160(%rsp)
	movaps	%xmm5, 176(%rsp)
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p256_methods_storage_bss_get@PLT
	call	p256_methods_storage_bss_get
	movq	%rsp, %rsi
	leaq	64(%rsp), %rcx
	movq	%r13, %r9
	leaq	32(%rsp), %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 264
	movq	%rax, %rdi
	movq	%r12, %r8
	pushq	%r14
	.cfi_def_cfa_offset 272
# WAS call	ec_nistp_scalar_mul
	call	.Lec_nistp_scalar_mul_local_target
	movdqa	16(%rsp), %xmm6
	movdqa	32(%rsp), %xmm7
	movdqa	48(%rsp), %xmm0
	movdqa	64(%rsp), %xmm1
	movdqa	80(%rsp), %xmm2
	movdqa	96(%rsp), %xmm3
	movups	%xmm6, (%rbx)
	movups	%xmm7, 16(%rbx)
	movups	%xmm0, 72(%rbx)
	movups	%xmm1, 88(%rbx)
	movups	%xmm2, 144(%rbx)
	movups	%xmm3, 160(%rbx)
	popq	%rax
	.cfi_def_cfa_offset 264
	popq	%rdx
	.cfi_def_cfa_offset 256
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9911
	addq	$208, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L9911:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1986:

	.size	ec_GFp_nistp256_point_mul, .-ec_GFp_nistp256_point_mul
# WAS .section	.text.ec_GFp_nistp384_point_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp384_point_mul, @function
.Lec_GFp_nistp384_point_mul_local_target:
ec_GFp_nistp384_point_mul:
.LFB2033:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	movl	$18, %ecx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$328, %rsp
	.cfi_def_cfa_offset 384
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rdi
	leaq	160(%rsp), %r14
	leaq	208(%rsp), %r15
	leaq	64(%rsp), %r13
	rep stosq
	leaq	160(%rsp), %rdi
	movl	$18, %ecx
	rep stosq
	movq	%r14, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	72(%rbp), %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
	leaq	256(%rsp), %rdx
	leaq	144(%rbp), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 8(%rsp)
	leaq	112(%rsp), %rbp
# WAS call	bignum_fromlebytes_6@PLT
	call	.Lbignum_fromlebytes_6_local_target
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p384_methods_storage_bss_get@PLT
	call	p384_methods_storage_bss_get
	leaq	16(%rsp), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 392
	movq	%r15, %r9
	movq	16(%rsp), %rdx
	movq	%rax, %rdi
	movq	%r14, %r8
	movq	%rbp, %rcx
	pushq	%rdx
	.cfi_def_cfa_offset 400
	movq	%r13, %rdx
	movq	%rsi, 24(%rsp)
# WAS call	ec_nistp_scalar_mul
	call	.Lec_nistp_scalar_mul_local_target
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	72(%rbx), %rdi
	movq	%r13, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	leaq	144(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	bignum_tolebytes_6@PLT
	call	.Lbignum_tolebytes_6_local_target
	popq	%rax
	.cfi_def_cfa_offset 392
	popq	%rdx
	.cfi_def_cfa_offset 384
	movq	312(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9915
	addq	$328, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9915:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2033:

	.size	ec_GFp_nistp384_point_mul, .-ec_GFp_nistp384_point_mul
# WAS .section	.text.ec_GFp_nistp521_point_mul,"ax",@progbits
.text
	.p2align 4
	.type	ec_GFp_nistp521_point_mul, @function
.Lec_GFp_nistp521_point_mul_local_target:
ec_GFp_nistp521_point_mul:
.LFB2054:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	movl	$27, %ecx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	subq	$472, %rsp
	.cfi_def_cfa_offset 528
	movq	%fs:40, %rax
	movq	%rax, 456(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rdi
	leaq	240(%rsp), %r14
	leaq	312(%rsp), %r15
	leaq	88(%rsp), %r13
	rep stosq
	leaq	240(%rsp), %rdi
	movl	$27, %ecx
	rep stosq
	movq	%r14, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	72(%rbp), %rsi
	movq	%r15, %rdi
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
	leaq	384(%rsp), %rdx
	leaq	144(%rbp), %rsi
	movq	%rdx, %rdi
	movq	%rdx, 8(%rsp)
	leaq	160(%rsp), %rbp
# WAS call	bignum_fromlebytes_p521@PLT
	call	.Lbignum_fromlebytes_p521_local_target
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	p521_methods_storage_bss_get@PLT
	call	p521_methods_storage_bss_get
	leaq	16(%rsp), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 536
	movq	%r15, %r9
	movq	16(%rsp), %rdx
	movq	%rax, %rdi
	movq	%r14, %r8
	movq	%rbp, %rcx
	pushq	%rdx
	.cfi_def_cfa_offset 544
	movq	%r13, %rdx
	movq	%rsi, 24(%rsp)
# WAS call	ec_nistp_scalar_mul
	call	.Lec_nistp_scalar_mul_local_target
	movq	$0, 64(%rbx)
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	movq	24(%rsp), %rsi
	movups	%xmm0, (%rbx)
	movups	%xmm0, 16(%rbx)
	movups	%xmm0, 32(%rbx)
	movups	%xmm0, 48(%rbx)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	72(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%r13, %rsi
	movups	%xmm0, 72(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	leaq	144(%rbx), %rdi
	pxor	%xmm0, %xmm0
	movq	%rbp, %rsi
	movups	%xmm0, 144(%rbx)
	movq	$0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	bignum_tolebytes_p521@PLT
	call	.Lbignum_tolebytes_p521_local_target
	popq	%rax
	.cfi_def_cfa_offset 536
	popq	%rdx
	.cfi_def_cfa_offset 528
	movq	456(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9919
	addq	$472, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L9919:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2054:

	.size	ec_GFp_nistp521_point_mul, .-ec_GFp_nistp521_point_mul
# WAS .section	.text.ec_felem_one,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_one
	.hidden	ec_felem_one
	.type	ec_felem_one, @function
.Lec_felem_one_local_target:
ec_felem_one:
.LFB1899:

	.cfi_startproc
	endbr64
	leaq	160(%rdi), %rax
	ret
	.cfi_endproc
.LFE1899:

	.size	ec_felem_one, .-ec_felem_one
# WAS .section	.rodata.ec_bignum_to_felem.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC270:

	.string	"/aws-lc/crypto/fipsmodule/ec/felem.c"
# WAS .section	.text.ec_bignum_to_felem,"ax",@progbits
.text
	.p2align 4
	.globl	ec_bignum_to_felem
	.hidden	ec_bignum_to_felem
	.type	ec_bignum_to_felem, @function
.Lec_bignum_to_felem_local_target:
ec_bignum_to_felem:
.LFB1900:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	320(%rdi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	movq	%r12, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movq	%rbx, %rdi
	movl	%eax, %r14d
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L9924
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L9930
.L9924:

	movl	$37, %r8d
	leaq	.LC270(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L9921:

	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9931
	addq	$80, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9930:

	.cfi_restore_state
	movq	%rsp, %r12
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L9924
	movq	0(%rbp), %rax
	movq	%r14, %rcx
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
	call	*112(%rax)
	jmp	.L9921
.L9931:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1900:

	.size	ec_bignum_to_felem, .-ec_bignum_to_felem
# WAS .section	.text.ec_felem_to_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_to_bignum
	.hidden	ec_felem_to_bignum
	.type	ec_felem_to_bignum, @function
.Lec_felem_to_bignum_local_target:
ec_felem_to_bignum:
.LFB1901:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rcx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	(%rdi), %rax
	leaq	16(%rsp), %rbp
	leaq	8(%rsp), %rdx
	movq	%rbp, %rsi
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%rbx, %rdx
	movq	%rbp, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	setne	%al
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L9935
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L9935:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1901:

	.size	ec_felem_to_bignum, .-ec_felem_to_bignum
# WAS .section	.text.ec_felem_to_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_to_bytes
	.hidden	ec_felem_to_bytes
	.type	ec_felem_to_bytes, @function
.Lec_felem_to_bytes_local_target:
ec_felem_to_bytes:
.LFB1902:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	jmp	*104(%rax)
	.cfi_endproc
.LFE1902:

	.size	ec_felem_to_bytes, .-ec_felem_to_bytes
# WAS .section	.text.ec_felem_from_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_from_bytes
	.hidden	ec_felem_from_bytes
	.type	ec_felem_from_bytes, @function
.Lec_felem_from_bytes_local_target:
ec_felem_from_bytes:
.LFB1903:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	jmp	*112(%rax)
	.cfi_endproc
.LFE1903:

	.size	ec_felem_from_bytes, .-ec_felem_from_bytes
# WAS .section	.text.ec_felem_neg,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_neg
	.hidden	ec_felem_neg
	.type	ec_felem_neg, @function
.Lec_felem_neg_local_target:
ec_felem_neg:
.LFB1904:

	.cfi_startproc
	endbr64
	movslq	328(%rdi), %rcx
	movq	%rdx, %r8
	testl	%ecx, %ecx
	jle	.L9939
	cmpl	$1, %ecx
	je	.L9950
	movl	%ecx, %eax
	movdqu	(%rdx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L9941
	movdqu	16(%rdx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L9941
	movdqu	32(%rdx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L9941
	movdqu	48(%rdx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L9941
	movdqu	64(%rdx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L9941
	xorl	%edx, %edx
.L9942:

	movq	%rdx, %r9
	addq	$1, %rdx
	salq	$4, %r9
	movdqu	80(%r8,%r9), %xmm1
	leal	5(%rdx), %r9d
	por	%xmm1, %xmm0
	cmpl	%eax, %r9d
	jb	.L9942
	.p2align 4,,10
	.p2align 3
.L9941:

	movdqa	%xmm0, %xmm1
	movl	%ecx, %eax
	psrldq	$8, %xmm1
	andl	$-2, %eax
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L9987
.L9940:

	cltq
	orq	(%r8,%rax,8), %rdx
.L9987:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rdi), %rdx
	sarq	$63, %rax
	notq	%rax
.L9943:

	xorl	%r9d, %r9d
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%r9,8),%r10	
	sbbq	(%r8,%r9,8),%r10	
	movq	%r10,(%rsi,%r9,8)	
	lea	1(%r9),%r9	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	movl	328(%rdi), %edx
	testl	%edx, %edx
	jle	.L9938
	cmpl	$1, %edx
	je	.L9951
	movdqu	(%rsi), %xmm1
	movq	%rax, %xmm0
	movl	%edx, %ecx
	punpcklqdq	%xmm0, %xmm0
	shrl	%ecx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rsi)
	cmpl	$1, %ecx
	je	.L9947
	movdqu	16(%rsi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rsi)
	cmpl	$2, %ecx
	je	.L9947
	movdqu	32(%rsi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rsi)
	cmpl	$3, %ecx
	je	.L9947
	movdqu	48(%rsi), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rsi)
	cmpl	$4, %ecx
	je	.L9947
	movdqu	64(%rsi), %xmm1
	leaq	80(%rsi), %rdi
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rsi)
	cmpl	$5, %ecx
	je	.L9947
	movl	$5, %r8d
.L9948:

	movdqu	(%rdi), %xmm1
	addl	$1, %r8d
	addq	$16, %rdi
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rdi)
	cmpl	%ecx, %r8d
	jne	.L9948
	.p2align 4,,10
	.p2align 3
.L9947:

	testb	$1, %dl
	je	.L9938
	andl	$-2, %edx
.L9946:

	movslq	%edx, %rdx
	andq	%rax, (%rsi,%rdx,8)
.L9938:

	ret
	.p2align 4,,10
	.p2align 3
.L9939:

	testq	%rcx, %rcx
	je	.L9938
	movq	320(%rdi), %rdx
	xorl	%eax, %eax
	jmp	.L9943
	.p2align 4,,10
	.p2align 3
.L9951:

	xorl	%edx, %edx
	jmp	.L9946
.L9950:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L9940
	.cfi_endproc
.LFE1904:

	.size	ec_felem_neg, .-ec_felem_neg
# WAS .section	.text.ec_felem_add,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_add
	.hidden	ec_felem_add
	.type	ec_felem_add, @function
.Lec_felem_add_local_target:
ec_felem_add:
.LFB1905:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	movslq	328(%rax), %r9
	movq	%rsp, %r8
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	movq	320(%rax), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9991
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L9991:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1905:

	.size	ec_felem_add, .-ec_felem_add
# WAS .section	.text.ec_felem_sub,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_sub
	.hidden	ec_felem_sub
	.type	ec_felem_sub, @function
.Lec_felem_sub_local_target:
ec_felem_sub:
.LFB1906:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	movslq	328(%rax), %r9
	movq	%rsp, %r8
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	movq	320(%rax), %rcx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L9995
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L9995:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1906:

	.size	ec_felem_sub, .-ec_felem_sub
# WAS .section	.text.ec_felem_non_zero_mask,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_non_zero_mask
	.hidden	ec_felem_non_zero_mask
	.type	ec_felem_non_zero_mask, @function
.Lec_felem_non_zero_mask_local_target:
ec_felem_non_zero_mask:
.LFB1907:

	.cfi_startproc
	endbr64
	movl	328(%rdi), %eax
	testl	%eax, %eax
	jle	.L10002
	cmpl	$1, %eax
	je	.L10003
	movl	%eax, %edx
	movdqu	(%rsi), %xmm0
	shrl	%edx
	cmpl	$1, %edx
	je	.L9999
	movdqu	16(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %edx
	je	.L9999
	movdqu	32(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %edx
	je	.L9999
	movdqu	48(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %edx
	je	.L9999
	movdqu	64(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %edx
	je	.L9999
	xorl	%ecx, %ecx
.L10000:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	80(%rsi,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%edx, %edi
	jb	.L10000
	.p2align 4,,10
	.p2align 3
.L9999:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %al
	je	.L10001
	andl	$-2, %eax
.L9998:

	cltq
	orq	(%rsi,%rax,8), %rdx
.L10001:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	sarq	$63, %rax
	notq	%rax
	ret
	.p2align 4,,10
	.p2align 3
.L10002:

	xorl	%eax, %eax
	ret
.L10003:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L9998
	.cfi_endproc
.LFE1907:

	.size	ec_felem_non_zero_mask, .-ec_felem_non_zero_mask
# WAS .section	.text.ec_felem_select,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_select
	.hidden	ec_felem_select
	.type	ec_felem_select, @function
.Lec_felem_select_local_target:
ec_felem_select:
.LFB1908:

	.cfi_startproc
	endbr64
	movslq	328(%rdi), %r11
	movq	%rdx, %r9
	movq	%rsi, %r10
	xorl	%eax, %eax
	notq	%r9
	testq	%r11, %r11
	je	.L10023
	.p2align 4,,10
	.p2align 3
.L10025:

	movq	(%rcx,%rax,8), %rsi
	movq	(%r8,%rax,8), %rdi
	andq	%rdx, %rsi
	andq	%r9, %rdi
	orq	%rdi, %rsi
	movq	%rsi, (%r10,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L10025
.L10023:

	ret
	.cfi_endproc
.LFE1908:

	.size	ec_felem_select, .-ec_felem_select
# WAS .section	.text.ec_felem_equal,"ax",@progbits
.text
	.p2align 4
	.globl	ec_felem_equal
	.hidden	ec_felem_equal
	.type	ec_felem_equal, @function
.Lec_felem_equal_local_target:
ec_felem_equal:
.LFB1909:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	328(%rax), %rdx
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	sete	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE1909:

	.size	ec_felem_equal, .-ec_felem_equal
# WAS .section	.rodata.ec_point_byte_len.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC271:

	.string	"/aws-lc/crypto/fipsmodule/ec/oct.c"
# WAS .section	.text.ec_point_byte_len,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_byte_len
	.hidden	ec_point_byte_len
	.type	ec_point_byte_len, @function
.Lec_point_byte_len_local_target:
ec_point_byte_len:
.LFB1910:

	.cfi_startproc
	endbr64
	leal	-2(%rsi), %eax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	andl	$-3, %eax
	jne	.L10035
	addq	$320, %rdi
	movl	%esi, %ebx
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %eax
	leaq	1(%rax), %rdx
	addq	%rdx, %rax
	cmpl	$4, %ebx
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	cmove	%rax, %rdx
	movq	%rdx, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L10035:

	.cfi_restore_state
	movl	$111, %edx
	movl	$79, %r8d
	xorl	%esi, %esi
	movl	$15, %edi
	leaq	.LC271(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
	popq	%rbx
	.cfi_def_cfa_offset 8
	movq	%rdx, %rax
	ret
	.cfi_endproc
.LFE1910:

	.size	ec_point_byte_len, .-ec_point_byte_len
# WAS .section	.text.ec_point_to_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_to_bytes
	.hidden	ec_point_to_bytes
	.type	ec_point_to_bytes, @function
.Lec_point_to_bytes_local_target:
ec_point_to_bytes:
.LFB1911:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	leal	-2(%rdx), %eax
	andl	$-3, %eax
	jne	.L10047
	leaq	320(%rdi), %rdi
	movq	%r8, %r14
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %eax
	leaq	1(%rax), %r15
	cmpl	$4, %r12d
	je	.L10048
	cmpq	%r15, %r14
	jnb	.L10049
.L10042:

	movl	$97, %r8d
	movl	$100, %edx
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	leaq	.LC271(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10036:

	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10050
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r15, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10048:

	.cfi_restore_state
	addq	%rax, %r15
	cmpq	%r15, %r14
	jb	.L10042
	movq	(%rbx), %rax
	leaq	8(%rsp), %r12
	leaq	1(%r13), %rsi
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rdi
	call	*104(%rax)
	movq	8(%rsp), %rax
	leaq	72(%rbp), %rcx
	movq	%r12, %rdx
	movq	%rbx, %rdi
	leaq	1(%r13,%rax), %rsi
	movq	(%rbx), %rax
	call	*104(%rax)
	movb	$4, 0(%r13)
	jmp	.L10036
	.p2align 4,,10
	.p2align 3
.L10047:

	movl	$79, %r8d
	movl	$111, %edx
	xorl	%esi, %esi
	xorl	%r15d, %r15d
	leaq	.LC271(%rip), %rcx
	movl	$15, %edi
	leaq	8(%rsp), %r14
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	(%rbx), %rax
	leaq	1(%r13), %rsi
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%rbx, %rdi
	call	*104(%rax)
.L10038:

	movq	(%rbx), %rax
	leaq	72(%rbp), %rcx
	leaq	16(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rbx, %rdi
	call	*104(%rax)
	movq	8(%rsp), %rax
	movzbl	15(%rsp,%rax), %eax
	andl	$1, %eax
	addl	%r12d, %eax
	movb	%al, 0(%r13)
	jmp	.L10036
	.p2align 4,,10
	.p2align 3
.L10049:

	movq	(%rbx), %rax
	leaq	8(%rsp), %r14
	leaq	1(%r13), %rsi
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movq	%rbx, %rdi
	call	*104(%rax)
	jmp	.L10038
.L10050:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1911:

	.size	ec_point_to_bytes, .-ec_point_to_bytes
# WAS .section	.text.ec_point_from_uncompressed,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_from_uncompressed
	.hidden	ec_point_from_uncompressed
	.type	ec_point_from_uncompressed, @function
.Lec_point_from_uncompressed_local_target:
ec_point_from_uncompressed:
.LFB1912:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	addq	$320, %rdi
	subq	$160, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %ebp
	leaq	1(%rbp,%rbp), %rax
	cmpq	%r13, %rax
	jne	.L10052
	cmpb	$4, (%r12)
	jne	.L10052
	movq	(%rbx), %rax
	movq	%rsp, %r13
	leaq	1(%r12), %rdx
	movq	%rbp, %rcx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	*112(%rax)
	testl	%eax, %eax
	je	.L10054
	movq	(%rbx), %rax
	leaq	1(%r12,%rbp), %rdx
	leaq	80(%rsp), %r12
	movq	%rbp, %rcx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*112(%rax)
	testl	%eax, %eax
	jne	.L10063
	.p2align 4,,10
	.p2align 3
.L10054:

	xorl	%eax, %eax
.L10051:

	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10064
	addq	$160, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10052:

	.cfi_restore_state
	movl	$122, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10054
	.p2align 4,,10
	.p2align 3
.L10063:

	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_point_set_affine_coordinates
	call	.Lec_point_set_affine_coordinates_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L10051
.L10064:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1912:

	.size	ec_point_from_uncompressed, .-ec_point_from_uncompressed
# WAS .section	.text.EC_GFp_nistp224_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_nistp224_method
	.hidden	EC_GFp_nistp224_method
	.type	EC_GFp_nistp224_method, @function
.LEC_GFp_nistp224_method_local_target:
EC_GFp_nistp224_method:
.LFB1947:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp224_method_once_bss_get@PLT
	call	EC_GFp_nistp224_method_once_bss_get
# WAS leaq	EC_GFp_nistp224_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp224_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_nistp224_method_storage_bss_get@PLT
	jmp	EC_GFp_nistp224_method_storage_bss_get
	.cfi_endproc
.LFE1947:

	.size	EC_GFp_nistp224_method, .-EC_GFp_nistp224_method
# WAS .section	.text.p256_methods,"ax",@progbits
.text
	.p2align 4
	.globl	p256_methods
	.hidden	p256_methods
	.type	p256_methods, @function
.Lp256_methods_local_target:
p256_methods:
.LFB1979:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	p256_methods_once_bss_get@PLT
	call	p256_methods_once_bss_get
# WAS leaq	p256_methods_init(%rip), %rsi
	leaq	.Lp256_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	p256_methods_storage_bss_get@PLT
	jmp	p256_methods_storage_bss_get
	.cfi_endproc
.LFE1979:

	.size	p256_methods, .-p256_methods
# WAS .section	.text.EC_GFp_nistp256_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_nistp256_method
	.hidden	EC_GFp_nistp256_method
	.type	EC_GFp_nistp256_method, @function
.LEC_GFp_nistp256_method_local_target:
EC_GFp_nistp256_method:
.LFB1991:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp256_method_once_bss_get@PLT
	call	EC_GFp_nistp256_method_once_bss_get
# WAS leaq	EC_GFp_nistp256_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp256_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_nistp256_method_storage_bss_get@PLT
	jmp	EC_GFp_nistp256_method_storage_bss_get
	.cfi_endproc
.LFE1991:

	.size	EC_GFp_nistp256_method, .-EC_GFp_nistp256_method
# WAS .section	.text.EC_GFp_nistz256_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_nistz256_method
	.hidden	EC_GFp_nistz256_method
	.type	EC_GFp_nistz256_method, @function
.LEC_GFp_nistz256_method_local_target:
EC_GFp_nistz256_method:
.LFB2012:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistz256_method_once_bss_get@PLT
	call	EC_GFp_nistz256_method_once_bss_get
# WAS leaq	EC_GFp_nistz256_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistz256_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_nistz256_method_storage_bss_get@PLT
	jmp	EC_GFp_nistz256_method_storage_bss_get
	.cfi_endproc
.LFE2012:

	.size	EC_GFp_nistz256_method, .-EC_GFp_nistz256_method
# WAS .section	.text.p384_methods,"ax",@progbits
.text
	.p2align 4
	.globl	p384_methods
	.hidden	p384_methods
	.type	p384_methods, @function
.Lp384_methods_local_target:
p384_methods:
.LFB2024:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	p384_methods_once_bss_get@PLT
	call	p384_methods_once_bss_get
# WAS leaq	p384_methods_init(%rip), %rsi
	leaq	.Lp384_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	p384_methods_storage_bss_get@PLT
	jmp	p384_methods_storage_bss_get
	.cfi_endproc
.LFE2024:

	.size	p384_methods, .-p384_methods
# WAS .section	.text.EC_GFp_nistp384_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_nistp384_method
	.hidden	EC_GFp_nistp384_method
	.type	EC_GFp_nistp384_method, @function
.LEC_GFp_nistp384_method_local_target:
EC_GFp_nistp384_method:
.LFB2037:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp384_method_once_bss_get@PLT
	call	EC_GFp_nistp384_method_once_bss_get
# WAS leaq	EC_GFp_nistp384_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp384_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_nistp384_method_storage_bss_get@PLT
	jmp	EC_GFp_nistp384_method_storage_bss_get
	.cfi_endproc
.LFE2037:

	.size	EC_GFp_nistp384_method, .-EC_GFp_nistp384_method
# WAS .section	.text.p521_methods,"ax",@progbits
.text
	.p2align 4
	.globl	p521_methods
	.hidden	p521_methods
	.type	p521_methods, @function
.Lp521_methods_local_target:
p521_methods:
.LFB2048:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	p521_methods_once_bss_get@PLT
	call	p521_methods_once_bss_get
# WAS leaq	p521_methods_init(%rip), %rsi
	leaq	.Lp521_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	p521_methods_storage_bss_get@PLT
	jmp	p521_methods_storage_bss_get
	.cfi_endproc
.LFE2048:

	.size	p521_methods, .-p521_methods
# WAS .section	.text.EC_GFp_nistp521_method,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GFp_nistp521_method
	.hidden	EC_GFp_nistp521_method
	.type	EC_GFp_nistp521_method, @function
.LEC_GFp_nistp521_method_local_target:
EC_GFp_nistp521_method:
.LFB2060:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_GFp_nistp521_method_once_bss_get@PLT
	call	EC_GFp_nistp521_method_once_bss_get
# WAS leaq	EC_GFp_nistp521_method_init(%rip), %rsi
	leaq	.LEC_GFp_nistp521_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EC_GFp_nistp521_method_storage_bss_get@PLT
	jmp	EC_GFp_nistp521_method_storage_bss_get
	.cfi_endproc
.LFE2060:

	.size	EC_GFp_nistp521_method, .-EC_GFp_nistp521_method
# WAS .section	.rodata.ec_bignum_to_scalar.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC272:

	.string	"/aws-lc/crypto/fipsmodule/ec/scalar.c"
# WAS .section	.text.ec_bignum_to_scalar,"ax",@progbits
.text
	.p2align 4
	.globl	ec_bignum_to_scalar
	.type	ec_bignum_to_scalar, @function
.Lec_bignum_to_scalar_local_target:
ec_bignum_to_scalar:
.LFB2062:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	16(%r12), %eax
	movslq	264(%rdi), %rdx
	testl	%eax, %eax
	jne	.L10106
	movslq	8(%r12), %rbx
	movq	%rsi, %rdi
	cmpq	%rbx, %rdx
	jnb	.L10084
	subq	%rdx, %rbx
	movq	(%r12), %rsi
	cmpq	$1, %rbx
	je	.L10091
	movq	%rbx, %rcx
	leaq	(%rsi,%rdx,8), %rax
	pxor	%xmm0, %xmm0
	shrq	%rcx
	salq	$4, %rcx
	addq	%rax, %rcx
	.p2align 4,,10
	.p2align 3
.L10086:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rcx
	jne	.L10086
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %bl
	je	.L10087
	andq	$-2, %rbx
	addq	%rdx, %rbx
.L10085:

	orq	(%rsi,%rbx,8), %rax
.L10087:

	movq	%rdx, %rbx
	testq	%rax, %rax
	jne	.L10107
.L10084:

	salq	$3, %rdx
	jne	.L10108
	salq	$3, %rbx
	jne	.L10109
.L10089:

	movslq	264(%rbp), %rsi
	movq	256(%rbp), %rdx
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jns	.L10083
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10106:

	.cfi_restore_state
	movl	$315, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10083:

	movl	$28, %r8d
	leaq	.LC272(%rip), %rcx
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10109:

	.cfi_restore_state
	movq	(%r12), %rsi
	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rax, %rdi
	jmp	.L10089
	.p2align 4,,10
	.p2align 3
.L10108:

	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	salq	$3, %rbx
	movq	%rax, %rdi
	je	.L10089
	jmp	.L10109
	.p2align 4,,10
	.p2align 3
.L10107:

	movl	$322, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10083
	.p2align 4,,10
	.p2align 3
.L10091:

	movq	%rdx, %rbx
	xorl	%eax, %eax
	jmp	.L10085
	.cfi_endproc
.LFE2062:

	.size	ec_bignum_to_scalar, .-ec_bignum_to_scalar
# WAS .section	.text.EC_KEY_set_private_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_private_key
	.type	EC_KEY_set_private_key, @function
.LEC_KEY_set_private_key_local_target:
EC_KEY_set_private_key:
.LFB1845:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdi), %r12
	testq	%r12, %r12
	je	.L10142
	movq	%rdi, %rbp
	movl	$96, %edi
	movq	%rsi, %r13
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L10112
	leaq	24(%rax), %rsi
	movq	0(%rbp), %rdi
	movq	%r13, %rdx
	movd	264(%r12), %xmm0
	movq	%rsi, (%rax)
	movl	$2, 20(%rax)
	pshufd	$0xe0, %xmm0, %xmm0
	movq	%xmm0, 8(%rax)
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	testl	%eax, %eax
	je	.L10115
	movq	0(%rbp), %rax
	movl	264(%rax), %ecx
	testl	%ecx, %ecx
	jle	.L10115
	cmpl	$1, %ecx
	je	.L10121
	movl	%ecx, %eax
	movdqu	24(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10117
	movdqu	40(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L10117
	movdqu	56(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L10117
	movdqu	72(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L10117
	movdqu	88(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L10117
	xorl	%edx, %edx
.L10118:

	movq	%rdx, %rsi
	addq	$1, %rdx
	salq	$4, %rsi
	movdqu	104(%rbx,%rsi), %xmm1
	leal	5(%rdx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L10118
	.p2align 4,,10
	.p2align 3
.L10117:

	movdqa	%xmm0, %xmm1
	movl	%ecx, %edx
	psrldq	$8, %xmm1
	andl	$-2, %edx
	andl	$1, %ecx
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	je	.L10119
.L10116:

	movslq	%edx, %rdx
	orq	24(%rbx,%rdx,8), %rax
.L10119:

	testq	%rax, %rax
	je	.L10115
	movq	16(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbx, 16(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10115:

	.cfi_restore_state
	movl	$15, %edi
	movl	$242, %r8d
	leaq	.LC268(%rip), %rcx
	xorl	%esi, %esi
	movl	$113, %edx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L10112:

	xorl	%eax, %eax
.L10143:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10142:

	.cfi_restore_state
	movl	$232, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10143
.L10121:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L10116
	.cfi_endproc
.LFE1845:

	.size	EC_KEY_set_private_key, .-EC_KEY_set_private_key
# WAS .section	.rodata.ecdsa_do_verify_no_self_test.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC273:

	.string	"/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c"
# WAS .section	.text.ecdsa_do_verify_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ecdsa_do_verify_no_self_test
	.hidden	ecdsa_do_verify_no_self_test
	.type	ecdsa_do_verify_no_self_test, @function
.Lecdsa_do_verify_no_self_test_local_target:
ecdsa_do_verify_no_self_test:
.LFB1743:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movq	%rcx, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$744, %rsp
	.cfi_def_cfa_offset 800
	movq	%fs:40, %rax
	movq	%rax, 728(%rsp)
	xorl	%eax, %eax
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rbx, %rdi
	movq	%rax, %r12
# WAS call	EC_KEY_get0_public_key@PLT
	call	.LEC_KEY_get0_public_key_local_target
	testq	%r12, %r12
	movq	%rax, %rbx
	sete	%al
	testq	%rbx, %rbx
	sete	%dl
	orb	%dl, %al
	jne	.L10160
	testq	%rbp, %rbp
	je	.L10160
	movq	0(%rbp), %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L10150
	leaq	32(%rsp), %r15
	movq	0(%rbp), %rdx
	movq	%r12, %rdi
	movq	%r15, %rsi
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	testl	%eax, %eax
	jne	.L10170
.L10150:

	movl	$166, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10147:

	xorl	%eax, %eax
.L10144:

	movq	728(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10171
	addq	$744, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10160:

	.cfi_restore_state
	movl	$157, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10147
	.p2align 4,,10
	.p2align 3
.L10170:

	movq	8(%rbp), %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L10150
	movq	8(%rbp), %rdx
	leaq	112(%rsp), %rbp
	movq	%r12, %rdi
	movq	%rbp, %rsi
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	testl	%eax, %eax
	je	.L10150
	leaq	352(%rsp), %rax
	movq	%rbp, %rdx
	movq	%r12, %rdi
	movq	%rax, (%rsp)
	movq	%rax, %rsi
	movq	(%r12), %rax
	call	*144(%rax)
	testl	%eax, %eax
	je	.L10172
	movq	%r12, %rdi
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movslq	8(%rbp), %rsi
	leaq	432(%rsp), %rdi
	movl	%eax, %r9d
	movl	%eax, 28(%rsp)
	leaq	7(%r9), %rdx
	movq	%r9, 16(%rsp)
	shrq	$3, %rdx
	movq	%rdi, 8(%rsp)
	cmpq	%r13, %rdx
	cmovbe	%rdx, %r13
	movq	%r14, %rdx
	movq	%r13, %rcx
	salq	$3, %r13
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movq	16(%rsp), %r9
	movq	8(%rsp), %rdi
	movl	28(%rsp), %eax
	cmpq	%r13, %r9
	jb	.L10173
.L10152:

	movslq	8(%rbp), %rsi
	leaq	512(%rsp), %r13
	testq	%rsi, %rsi
	je	.L10157
	movq	0(%rbp), %rdx
	movq	%rsi, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%rax,8),%r8	
	sbbq	(%rdx,%rax,8),%r8	
	movq	%r8,(%r13,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	andl	$1, %r8d
	movq	%r13, %rdx
	leaq	0(%r13,%rsi,8), %r10
	movq	%rdi, %rax
	movq	%r8, %r9
	subq	$1, %r8
	negq	%r9
	.p2align 4,,10
	.p2align 3
.L10156:

	movq	(%rax), %rcx
	movq	(%rdx), %rsi
	addq	$8, %rdx
	addq	$8, %rax
	andq	%r9, %rcx
	andq	%r8, %rsi
	orq	%rsi, %rcx
	movq	%rcx, -8(%rax)
	cmpq	%rdx, %r10
	jne	.L10156
.L10157:

	movslq	264(%r12), %rcx
	movq	(%rsp), %rdx
	movq	%rdi, %rsi
	leaq	192(%rsp), %r14
	leaq	232(%r12), %r8
	movq	%r14, %rdi
	leaq	272(%rsp), %rbp
	movq	%r8, 8(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	8(%rsp), %r8
	movq	%r15, %rsi
	movq	%rbp, %rdi
	movslq	264(%r12), %rcx
	movq	(%rsp), %rdx
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	leaq	8(%rbx), %rcx
	movq	%rbp, %r8
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	ec_point_mul_scalar_public@PLT
	call	.Lec_point_mul_scalar_public_local_target
	testl	%eax, %eax
	je	.L10174
	movq	(%r12), %rax
	movq	%r15, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	*152(%rax)
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jne	.L10144
	movl	$192, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$205, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10147
	.p2align 4,,10
	.p2align 3
.L10172:

	movl	$172, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10147
	.p2align 4,,10
	.p2align 3
.L10173:

	andl	$7, %eax
	movslq	8(%rbp), %rcx
	movl	$8, %edx
	movq	%rdi, %rsi
	subl	%eax, %edx
# WAS call	bn_rshift_words
	call	.Lbn_rshift_words_local_target
	movq	8(%rsp), %rdi
	jmp	.L10152
.L10174:

	movl	$187, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$15, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10147
.L10171:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1743:

	.size	ecdsa_do_verify_no_self_test, .-ecdsa_do_verify_no_self_test
# WAS .section	.text.ECDSA_do_verify,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_do_verify
	.type	ECDSA_do_verify, @function
.LECDSA_do_verify_local_target:
ECDSA_do_verify:
.LFB1744:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	ecdsa_do_verify_no_self_test
	jmp	.Lecdsa_do_verify_no_self_test_local_target
	.cfi_endproc
.LFE1744:

	.size	ECDSA_do_verify, .-ECDSA_do_verify
# WAS .section	.text.ECDSA_verify,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_verify
	.type	ECDSA_verify, @function
.LECDSA_verify_local_target:
ECDSA_verify:
.LFB1750:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %rdi
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	movq	%r8, %rsi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	$0, 8(%rsp)
# WAS call	ECDSA_SIG_from_bytes@PLT
	call	.Lbcm_redirector_ECDSA_SIG_from_bytes
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L10178
	leaq	16(%rsp), %rsi
	leaq	8(%rsp), %rdi
	movq	%rax, %rdx
# WAS call	ECDSA_SIG_to_bytes@PLT
	call	.Lbcm_redirector_ECDSA_SIG_to_bytes
	testl	%eax, %eax
	je	.L10179
	cmpq	%rbp, 16(%rsp)
	je	.L10196
.L10179:

	movl	$429, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10178:

	xorl	%ebp, %ebp
.L10181:

	movq	8(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbx, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10197
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10196:

	.cfi_restore_state
	movq	8(%rsp), %rsi
	testq	%rbp, %rbp
	je	.L10180
	movq	%rbp, %rdx
	movq	%r12, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	jne	.L10179
.L10180:

	movq	%r15, %rcx
	movq	%rbx, %rdx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	ECDSA_do_verify@PLT
	call	.LECDSA_do_verify_local_target
	movl	%eax, %ebp
	jmp	.L10181
.L10197:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1750:

	.size	ECDSA_verify, .-ECDSA_verify
# WAS .section	.text.pkey_ec_verify,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_verify, @function
.Lpkey_ec_verify_local_target:
pkey_ec_verify:
.LFB2219:

	.cfi_startproc
	endbr64
	movq	%rdi, %r9
	movq	%rsi, %rax
	movq	%rcx, %rsi
	movq	%rdx, %rdi
	movq	16(%r9), %rcx
	movq	%r8, %rdx
	movq	%rdi, %r8
	xorl	%edi, %edi
	movq	8(%rcx), %r9
	movq	%rax, %rcx
# WAS jmp	ECDSA_verify@PLT
	jmp	.LECDSA_verify_local_target
	.cfi_endproc
.LFE2219:

	.size	pkey_ec_verify, .-pkey_ec_verify
# WAS .section	.text.ec_scalar_equal_vartime,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_equal_vartime
	.hidden	ec_scalar_equal_vartime
	.type	ec_scalar_equal_vartime, @function
.Lec_scalar_equal_vartime_local_target:
ec_scalar_equal_vartime:
.LFB2063:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	264(%rax), %rdx
	salq	$3, %rdx
	je	.L10203
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	sete	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L10203:

	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2063:

	.size	ec_scalar_equal_vartime, .-ec_scalar_equal_vartime
# WAS .section	.text.ec_scalar_is_zero,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_is_zero
	.hidden	ec_scalar_is_zero
	.type	ec_scalar_is_zero, @function
.Lec_scalar_is_zero_local_target:
ec_scalar_is_zero:
.LFB2064:

	.cfi_startproc
	endbr64
	movl	264(%rdi), %eax
	testl	%eax, %eax
	jle	.L10214
	cmpl	$1, %eax
	je	.L10215
	movl	%eax, %edx
	movdqu	(%rsi), %xmm0
	shrl	%edx
	cmpl	$1, %edx
	je	.L10211
	movdqu	16(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %edx
	je	.L10211
	movdqu	32(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %edx
	je	.L10211
	movdqu	48(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %edx
	je	.L10211
	movdqu	64(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %edx
	je	.L10211
	xorl	%ecx, %ecx
.L10212:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	80(%rsi,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%edx, %edi
	jb	.L10212
	.p2align 4,,10
	.p2align 3
.L10211:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %al
	je	.L10213
	andl	$-2, %eax
.L10210:

	cltq
	orq	(%rsi,%rax,8), %rdx
.L10213:

	xorl	%eax, %eax
	testq	%rdx, %rdx
	sete	%al
	ret
	.p2align 4,,10
	.p2align 3
.L10214:

	movl	$1, %eax
	ret
.L10215:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L10210
	.cfi_endproc
.LFE2064:

	.size	ec_scalar_is_zero, .-ec_scalar_is_zero
# WAS .section	.text.ec_scalar_to_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_to_bytes
	.type	ec_scalar_to_bytes, @function
.Lec_scalar_to_bytes_local_target:
ec_scalar_to_bytes:
.LFB2066:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	addq	$256, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rcx, %rbx
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movslq	264(%r14), %rsi
	movl	%eax, %r13d
	salq	$3, %rsi
	cmpq	%r13, %rsi
	cmova	%r13, %rsi
	testq	%rsi, %rsi
	je	.L10240
	movq	%rbx, %rax
	leaq	-1(%r12,%r13), %rdx
	leaq	(%rbx,%rsi), %rdi
	.p2align 4,,10
	.p2align 3
.L10239:

	movzbl	(%rax), %ecx
	addq	$1, %rax
	subq	$1, %rdx
	movb	%cl, 1(%rdx)
	cmpq	%rdi, %rax
	jne	.L10239
.L10240:

	movq	%r13, %rdx
	subq	%rsi, %rdx
	je	.L10237
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L10237:

	movq	%r13, 0(%rbp)
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2066:

	.size	ec_scalar_to_bytes, .-ec_scalar_to_bytes
# WAS .section	.text.ec_scalar_from_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_from_bytes
	.type	ec_scalar_from_bytes, @function
.Lec_scalar_from_bytes_local_target:
ec_scalar_from_bytes:
.LFB2067:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	addq	$256, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	$64, %r8d
	movl	%eax, %ecx
	cmpq	%r12, %rcx
	jne	.L10253
	movslq	264(%rbx), %rsi
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movslq	264(%rbx), %rsi
	movq	256(%rbx), %rdx
	movq	%rbp, %rdi
	movq	%rsi, %rcx
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jns	.L10254
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10254:

	.cfi_restore_state
	movl	$71, %r8d
.L10253:

	leaq	.LC272(%rip), %rcx
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2067:

	.size	ec_scalar_from_bytes, .-ec_scalar_from_bytes
# WAS .section	.text.unlikely.ec_scalar_reduce,"ax",@progbits
.text
.LCOLDB274:

# WAS .section	.text.ec_scalar_reduce,"ax",@progbits
.text
.LHOTB274:

	.p2align 4
	.globl	ec_scalar_reduce
	.hidden	ec_scalar_reduce
	.type	ec_scalar_reduce, @function
.Lec_scalar_reduce_local_target:
ec_scalar_reduce:
.LFB2068:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$160, %rsp
	.cfi_def_cfa_offset 208
	movslq	264(%rdi), %r12
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	cmpq	$9, %r12
	ja	.L10256
	leaq	(%r12,%r12), %r9
	movq	%rsi, %rbx
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	cmpq	%rcx, %r9
	jb	.L10256
	movq	%rsp, %r14
	xorl	%eax, %eax
	movq	%rdi, %r13
	movl	$18, %ecx
	leaq	232(%rdi), %rbp
	salq	$3, %rdx
	movq	%r14, %rdi
	rep stosq
	jne	.L10272
.L10258:

	movq	%rbp, %r8
	movq	%r9, %rcx
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	bn_from_montgomery_in_place
	call	.Lbn_from_montgomery_in_place_local_target
	testl	%eax, %eax
	je	.L10256
	movq	%r12, %rsi
	movq	%r14, %rdi
	salq	$4, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10273
	movslq	264(%r13), %rcx
	movq	%rbp, %r8
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	movq	232(%r13), %rdx
	addq	$160, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.p2align 4,,10
	.p2align 3
.L10272:

	.cfi_restore_state
	cmpl	$8, %edx
	jb	.L10258
	shrl	$3, %edx
	movq	%r14, %rdi
	movl	%edx, %ecx
	rep movsq
	jmp	.L10258
.L10273:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.ec_scalar_reduce
.text
	.cfi_startproc
	.type	ec_scalar_reduce.cold, @function
.Lec_scalar_reduce.cold_local_target:
ec_scalar_reduce.cold:
.LFSB2068:

.L10256:

	.cfi_def_cfa_offset 208
	.cfi_offset 3, -48
	.cfi_offset 6, -40
	.cfi_offset 12, -32
	.cfi_offset 13, -24
	.cfi_offset 14, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2068:

# WAS .section	.text.ec_scalar_reduce
.text
	.size	ec_scalar_reduce, .-ec_scalar_reduce
# WAS .section	.text.unlikely.ec_scalar_reduce
.text
	.size	ec_scalar_reduce.cold, .-ec_scalar_reduce.cold
.LCOLDE274:

# WAS .section	.text.ec_scalar_reduce
.text
.LHOTE274:

# WAS .section	.text.ec_scalar_add,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_add
	.hidden	ec_scalar_add
	.type	ec_scalar_add, @function
.Lec_scalar_add_local_target:
ec_scalar_add:
.LFB2069:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	264(%rax), %r9
	movq	%rcx, %rdx
	movq	%rsp, %r8
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	xorl	%ecx, %ecx
	movq	256(%rax), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movl	$72, %esi
	movq	%r8, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10277
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L10277:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2069:

	.size	ec_scalar_add, .-ec_scalar_add
# WAS .section	.text.ec_scalar_sub,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_sub
	.hidden	ec_scalar_sub
	.type	ec_scalar_sub, @function
.Lec_scalar_sub_local_target:
ec_scalar_sub:
.LFB2070:

	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	264(%rax), %r9
	movq	%rcx, %rdx
	movq	%rsp, %r8
	movq	%fs:40, %rcx
	movq	%rcx, 72(%rsp)
	xorl	%ecx, %ecx
	movq	256(%rax), %rcx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	$72, %esi
	movq	%r8, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10281
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L10281:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2070:

	.size	ec_scalar_sub, .-ec_scalar_sub
# WAS .section	.text.ec_scalar_neg,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_neg
	.hidden	ec_scalar_neg
	.type	ec_scalar_neg, @function
.Lec_scalar_neg_local_target:
ec_scalar_neg:
.LFB2071:

	.cfi_startproc
	endbr64
	subq	$168, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdi, %rax
	pxor	%xmm0, %xmm0
	movq	%rsi, %rdi
	movq	%fs:40, %rcx
	movq	%rcx, 152(%rsp)
	xorl	%ecx, %ecx
	movq	%rsp, %rsi
	leaq	80(%rsp), %r8
	movaps	%xmm0, (%rsp)
	movq	256(%rax), %rcx
	movslq	264(%rax), %r9
	movaps	%xmm0, 16(%rsp)
	movq	$0, 64(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 48(%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	$72, %esi
	movq	%r8, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10285
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L10285:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2071:

	.size	ec_scalar_neg, .-ec_scalar_neg
# WAS .section	.text.ec_scalar_select,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_select
	.hidden	ec_scalar_select
	.type	ec_scalar_select, @function
.Lec_scalar_select_local_target:
ec_scalar_select:
.LFB2072:

	.cfi_startproc
	endbr64
	movslq	264(%rdi), %r11
	movq	%rdx, %r9
	movq	%rsi, %r10
	xorl	%eax, %eax
	notq	%r9
	testq	%r11, %r11
	je	.L10286
	.p2align 4,,10
	.p2align 3
.L10288:

	movq	(%rcx,%rax,8), %rsi
	movq	(%r8,%rax,8), %rdi
	andq	%rdx, %rsi
	andq	%r9, %rdi
	orq	%rdi, %rsi
	movq	%rsi, (%r10,%rax,8)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L10288
.L10286:

	ret
	.cfi_endproc
.LFE2072:

	.size	ec_scalar_select, .-ec_scalar_select
# WAS .section	.text.ec_scalar_to_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_to_montgomery
	.hidden	ec_scalar_to_montgomery
	.type	ec_scalar_to_montgomery, @function
.Lec_scalar_to_montgomery_local_target:
ec_scalar_to_montgomery:
.LFB2073:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movslq	264(%rax), %rcx
	movq	232(%rax), %rdx
	leaq	232(%rax), %r8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE2073:

	.size	ec_scalar_to_montgomery, .-ec_scalar_to_montgomery
# WAS .section	.text.unlikely.ec_scalar_from_montgomery,"ax",@progbits
.text
.LCOLDB275:

# WAS .section	.text.ec_scalar_from_montgomery,"ax",@progbits
.text
.LHOTB275:

	.p2align 4
	.globl	ec_scalar_from_montgomery
	.hidden	ec_scalar_from_montgomery
	.type	ec_scalar_from_montgomery, @function
.Lec_scalar_from_montgomery_local_target:
ec_scalar_from_montgomery:
.LFB2074:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$168, %rsp
	.cfi_def_cfa_offset 192
	movslq	264(%rdi), %rbx
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
	cmpq	$9, %rbx
	ja	.L10294
	leaq	(%rbx,%rbx), %r10
	cmpq	%rbx, %r10
	jb	.L10294
	movq	%rsp, %rbp
	xorl	%eax, %eax
	leaq	232(%rdi), %r8
	movq	%rsi, %r9
	movl	$18, %ecx
	movq	%rbp, %rdi
	rep stosq
	movq	%rbx, %rcx
	salq	$3, %rcx
	jne	.L10309
.L10296:

	movq	%r10, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r9, %rdi
# WAS call	bn_from_montgomery_in_place
	call	.Lbn_from_montgomery_in_place_local_target
	testl	%eax, %eax
	je	.L10294
	salq	$4, %rbx
	movq	%rbp, %rdi
	movq	%rbx, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	152(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10310
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10309:

	.cfi_restore_state
	cmpl	$8, %ecx
	jb	.L10296
	shrl	$3, %ecx
	movq	%rbp, %rdi
	movq	%rdx, %rsi
	rep movsq
	jmp	.L10296
.L10310:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.ec_scalar_from_montgomery
.text
	.cfi_startproc
	.type	ec_scalar_from_montgomery.cold, @function
.Lec_scalar_from_montgomery.cold_local_target:
ec_scalar_from_montgomery.cold:
.LFSB2074:

.L10294:

	.cfi_def_cfa_offset 192
	.cfi_offset 3, -24
	.cfi_offset 6, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2074:

# WAS .section	.text.ec_scalar_from_montgomery
.text
	.size	ec_scalar_from_montgomery, .-ec_scalar_from_montgomery
# WAS .section	.text.unlikely.ec_scalar_from_montgomery
.text
	.size	ec_scalar_from_montgomery.cold, .-ec_scalar_from_montgomery.cold
.LCOLDE275:

# WAS .section	.text.ec_scalar_from_montgomery
.text
.LHOTE275:

# WAS .section	.text.ec_scalar_mul_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_mul_montgomery
	.hidden	ec_scalar_mul_montgomery
	.type	ec_scalar_mul_montgomery, @function
.Lec_scalar_mul_montgomery_local_target:
ec_scalar_mul_montgomery:
.LFB2075:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	%rcx, %rdx
	movslq	264(%rax), %rcx
	leaq	232(%rax), %r8
# WAS jmp	bn_mod_mul_montgomery_small
	jmp	.Lbn_mod_mul_montgomery_small_local_target
	.cfi_endproc
.LFE2075:

	.size	ec_scalar_mul_montgomery, .-ec_scalar_mul_montgomery
# WAS .section	.text.ec_scalar_inv0_montgomery,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_inv0_montgomery
	.hidden	ec_scalar_inv0_montgomery
	.type	ec_scalar_inv0_montgomery, @function
.Lec_scalar_inv0_montgomery_local_target:
ec_scalar_inv0_montgomery:
.LFB2078:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	jmp	*136(%rax)
	.cfi_endproc
.LFE2078:

	.size	ec_scalar_inv0_montgomery, .-ec_scalar_inv0_montgomery
# WAS .section	.text.ec_scalar_to_montgomery_inv_vartime,"ax",@progbits
.text
	.p2align 4
	.globl	ec_scalar_to_montgomery_inv_vartime
	.hidden	ec_scalar_to_montgomery_inv_vartime
	.type	ec_scalar_to_montgomery_inv_vartime, @function
.Lec_scalar_to_montgomery_inv_vartime_local_target:
ec_scalar_to_montgomery_inv_vartime:
.LFB2079:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	jmp	*144(%rax)
	.cfi_endproc
.LFE2079:

	.size	ec_scalar_to_montgomery_inv_vartime, .-ec_scalar_to_montgomery_inv_vartime
# WAS .section	.text.ec_GFp_simple_group_set_curve,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_group_set_curve
	.hidden	ec_GFp_simple_group_set_curve
	.type	ec_GFp_simple_group_set_curve, @function
.Lec_GFp_simple_group_set_curve_local_target:
ec_GFp_simple_group_set_curve:
.LFB2080:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	movq	%rsi, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$2, %eax
	jbe	.L10317
	movq	%rbx, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	jne	.L10343
.L10317:

	movl	$96, %r8d
	movl	$110, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC123(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10314:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10343:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L10320
	leaq	296(%r12), %rdi
	movq	%rbp, %rdx
	movq	%rbx, %rsi
# WAS call	BN_MONT_CTX_set@PLT
	call	.LBN_MONT_CTX_set_local_target
	testl	%eax, %eax
	jne	.L10344
.L10320:

	xorl	%ebx, %ebx
.L10319:

	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L10314
	.p2align 4,,10
	.p2align 3
.L10344:

	leaq	360(%r12), %rsi
	movq	%r13, %rdx
	movq	%r12, %rdi
# WAS call	ec_bignum_to_felem
	call	.Lec_bignum_to_felem_local_target
	testl	%eax, %eax
	je	.L10320
	leaq	432(%r12), %rsi
	movq	%r14, %rdx
	movq	%r12, %rdi
# WAS call	ec_bignum_to_felem
	call	.Lec_bignum_to_felem_local_target
	testl	%eax, %eax
	je	.L10320
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	leaq	160(%r12), %rsi
	movq	%r12, %rdi
	movq	%rax, %rdx
# WAS call	ec_bignum_to_felem
	call	.Lec_bignum_to_felem_local_target
	testl	%eax, %eax
	je	.L10320
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L10320
	movl	$3, %esi
	movq	%r15, %rdi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	je	.L10320
	leaq	320(%r12), %rsi
	movq	%r15, %rdi
	movl	$1, %ebx
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	movl	%eax, 528(%r12)
	jmp	.L10319
	.cfi_endproc
.LFE2080:

	.size	ec_GFp_simple_group_set_curve, .-ec_GFp_simple_group_set_curve
# WAS .section	.text.EC_GROUP_new_curve_GFp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_new_curve_GFp
	.type	EC_GROUP_new_curve_GFp, @function
.LEC_GROUP_new_curve_GFp_local_target:
EC_GROUP_new_curve_GFp:
.LFB1771:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rdx, 8(%rsp)
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	cmpl	$66, %eax
	ja	.L10368
	xorl	%r15d, %r15d
	testq	%rbx, %rbx
	je	.L10369
.L10348:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r12
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%r12, %r12
	je	.L10352
	testq	%rax, %rax
	je	.L10352
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	jne	.L10370
.L10352:

	xorl	%r13d, %r13d
.L10355:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r15, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L10345:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r13, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10369:

	.cfi_restore_state
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	movq	%rax, %r15
	testq	%rax, %rax
	jne	.L10348
	jmp	.L10347
	.p2align 4,,10
	.p2align 3
.L10370:

	movq	8(%rsp), %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r14, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L10352
	movl	$544, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L10347
	movl	$1, 540(%rax)
# WAS call	EC_GFp_mont_method_once_bss_get@PLT
	call	EC_GFp_mont_method_once_bss_get
# WAS leaq	EC_GFp_mont_method_init(%rip), %rsi
	leaq	.LEC_GFp_mont_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EC_GFp_mont_method_storage_bss_get@PLT
	call	EC_GFp_mont_method_storage_bss_get
	pxor	%xmm0, %xmm0
	leaq	296(%r13), %rdi
	movq	%rax, 0(%r13)
	movups	%xmm0, 296(%r13)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	320(%r13), %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	pxor	%xmm0, %xmm0
	leaq	232(%r13), %rdi
	movups	%xmm0, 232(%r13)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	256(%r13), %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	%r13, 8(%r13)
	movq	%rbx, %r8
	movq	%r14, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	ec_GFp_simple_group_set_curve
	call	.Lec_GFp_simple_group_set_curve_local_target
	testl	%eax, %eax
	jne	.L10355
	movq	%r13, %rdi
# WAS call	EC_GROUP_free@PLT
	call	.LEC_GROUP_free_local_target
	jmp	.L10352
	.p2align 4,,10
	.p2align 3
.L10368:

	movl	$274, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$110, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10347:

	xorl	%r13d, %r13d
	jmp	.L10345
	.cfi_endproc
.LFE1771:

	.size	EC_GROUP_new_curve_GFp, .-EC_GROUP_new_curve_GFp
# WAS .section	.text.ec_GFp_simple_group_get_curve,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_group_get_curve
	.hidden	ec_GFp_simple_group_get_curve
	.type	ec_GFp_simple_group_get_curve, @function
.Lec_GFp_simple_group_get_curve_local_target:
ec_GFp_simple_group_get_curve:
.LFB2081:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L10375
	movq	%rsi, %rdi
	leaq	320(%rbx), %rsi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L10378
.L10375:

	testq	%rbp, %rbp
	je	.L10374
	movq	(%rbx), %rax
	leaq	16(%rsp), %r13
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%r13, %rsi
	leaq	360(%rbx), %rcx
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%rbp, %rdx
	movq	%r13, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L10378
.L10374:

	movl	$1, %eax
	testq	%r12, %r12
	je	.L10371
	movq	(%rbx), %rax
	leaq	16(%rsp), %rbp
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	leaq	432(%rbx), %rcx
	movq	%rbp, %rsi
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	setne	%al
	movzbl	%al, %eax
.L10371:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10384
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10378:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L10371
.L10384:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2081:

	.size	ec_GFp_simple_group_get_curve, .-ec_GFp_simple_group_get_curve
# WAS .section	.text.ec_GFp_simple_point_init,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_point_init
	.hidden	ec_GFp_simple_point_init
	.type	ec_GFp_simple_point_init, @function
.Lec_GFp_simple_point_init_local_target:
ec_GFp_simple_point_init:
.LFB2082:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movq	$0, 64(%rdi)
	movq	$0, 136(%rdi)
	movq	$0, 208(%rdi)
	movups	%xmm0, (%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 72(%rdi)
	movups	%xmm0, 88(%rdi)
	movups	%xmm0, 104(%rdi)
	movups	%xmm0, 120(%rdi)
	movups	%xmm0, 144(%rdi)
	movups	%xmm0, 160(%rdi)
	movups	%xmm0, 176(%rdi)
	movups	%xmm0, 192(%rdi)
	ret
	.cfi_endproc
.LFE2082:

	.size	ec_GFp_simple_point_init, .-ec_GFp_simple_point_init
# WAS .section	.text.ec_GFp_mont_mul_public_batch,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_mont_mul_public_batch
	.hidden	ec_GFp_mont_mul_public_batch
	.type	ec_GFp_mont_mul_public_batch, @function
.Lec_GFp_mont_mul_public_batch_local_target:
ec_GFp_mont_mul_public_batch:
.LFB2106:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$1208, %rsp
	.cfi_def_cfa_offset 9456
	movq	%rdx, 40(%rsp)
	movq	%rdi, %rbp
	movq	%rsi, %r13
	movq	%r8, %r14
	movq	%rcx, 16(%rsp)
	movq	%r9, %rbx
	movq	%r9, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 9384(%rsp)
	xorl	%eax, %eax
# WAS call	EC_GROUP_order_bits@PLT
	call	.LEC_GROUP_order_bits_local_target
	movslq	%eax, %r10
	leaq	1(%r10), %rax
	movq	%rax, 8(%rsp)
	cmpq	$3, %rbx
	ja	.L10564
	cmpq	$0, 40(%rsp)
	je	.L10461
	leaq	3664(%rsp), %r12
	leaq	336(%rsp), %rax
	movq	$0, 88(%rsp)
	movq	%r12, 56(%rsp)
	movq	%rax, 48(%rsp)
	movq	$0, 96(%rsp)
.L10458:

	movq	40(%rsp), %rax
	movq	(%rax), %rax
	movq	%rax, 24(%rsp)
	movl	24(%rsp), %eax
	andl	$31, %eax
	cmpq	$0, 8(%rsp)
	je	.L10399
	movslq	264(%rbp), %r8
	movq	40(%rsp), %r9
	leaq	6(%r10), %rdi
	movl	$5, %ecx
	leaq	8843(%rsp), %rsi
	jmp	.L10398
	.p2align 4,,10
	.p2align 3
.L10565:

	sarl	%eax
	xorl	%edx, %edx
.L10394:

	movb	%dl, (%rsi,%rcx)
	movq	%rcx, %rdx
	shrq	$6, %rdx
	cmpq	%r8, %rdx
	jnb	.L10397
	movq	(%r9,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$4, %edx
	andl	$16, %edx
	addl	%edx, %eax
.L10397:

	addq	$1, %rcx
	cmpq	%rcx, %rdi
	je	.L10399
.L10398:

	testb	$1, %al
	je	.L10565
	testb	$16, %al
	je	.L10462
	cmpq	%r10, %rcx
	jnb	.L10396
	leal	-32(%rax), %edx
	movl	$16, %eax
	jmp	.L10394
.L10461:

	leaq	3664(%rsp), %rax
	movq	$0, 88(%rsp)
	movq	%rax, 56(%rsp)
	leaq	336(%rsp), %rax
	movq	$0, 96(%rsp)
	movq	%rax, 48(%rsp)
.L10390:

	cmpq	$0, 32(%rsp)
	je	.L10413
.L10400:

	movq	56(%rsp), %rax
	movq	%r14, %r8
	leaq	112(%rsp), %rbx
	movq	16(%rsp), %rdx
	imulq	$529, 32(%rsp), %r12
	movq	%r10, 72(%rsp)
	leaq	1728(%rax), %r15
	movq	48(%rsp), %rax
	movq	%rbx, 16(%rsp)
	movq	%r13, 104(%rsp)
	movq	%rax, %r14
	addq	%r12, %rax
	leaq	6(%r10), %r12
	movq	%rax, 64(%rsp)
	movq	%r14, %r13
	movq	%r8, %r14
	movq	%r12, 80(%rsp)
	movq	%r15, %r12
	movq	%rdx, %r15
	.p2align 4,,10
	.p2align 3
.L10412:

	movl	(%r14), %eax
	movl	$5, %ecx
	andl	$31, %eax
	cmpq	$0, 8(%rsp)
	je	.L10411
	movq	72(%rsp), %rsi
	movq	80(%rsp), %r10
	jmp	.L10410
	.p2align 4,,10
	.p2align 3
.L10566:

	sarl	%eax
	xorl	%edx, %edx
.L10406:

	movb	%dl, -5(%r13,%rcx)
	movq	%rcx, %rdx
	movslq	264(%rbp), %rdi
	shrq	$6, %rdx
	cmpq	%rdi, %rdx
	jnb	.L10409
	movq	(%r14,%rdx,8), %rdx
	shrq	%cl, %rdx
	sall	$4, %edx
	andl	$16, %edx
	addl	%edx, %eax
.L10409:

	addq	$1, %rcx
	cmpq	%rcx, %r10
	je	.L10411
.L10410:

	testb	$1, %al
	je	.L10566
	movl	%eax, %edi
	andl	$16, %edi
	je	.L10407
	cmpq	%rsi, %rcx
	jnb	.L10408
	subl	$32, %eax
	movl	$16, %edi
.L10407:

	movl	%eax, %edx
	movl	%edi, %eax
	jmp	.L10406
	.p2align 4,,10
	.p2align 3
.L10408:

	movl	%eax, %edi
	andl	$15, %eax
	andl	$-16, %edi
	sarl	%edi
	jmp	.L10407
	.p2align 4,,10
	.p2align 3
.L10411:

	movdqu	(%r15), %xmm2
	movq	16(%rsp), %rsi
	movq	%r15, %rdx
	movq	%rbp, %rdi
	leaq	-1512(%r12), %rbx
	movups	%xmm2, -1728(%r12)
	movdqu	16(%r15), %xmm3
	movups	%xmm3, -1712(%r12)
	movdqu	32(%r15), %xmm4
	movups	%xmm4, -1696(%r12)
	movdqu	48(%r15), %xmm5
	movups	%xmm5, -1680(%r12)
	movq	64(%r15), %rcx
	movq	%rcx, -1664(%r12)
	movdqu	72(%r15), %xmm6
	movups	%xmm6, -1656(%r12)
	movdqu	88(%r15), %xmm7
	movups	%xmm7, -1640(%r12)
	movdqu	104(%r15), %xmm0
	movups	%xmm0, -1624(%r12)
	movdqu	120(%r15), %xmm1
	movups	%xmm1, -1608(%r12)
	movq	136(%r15), %rcx
	movq	%rcx, -1592(%r12)
	movdqu	144(%r15), %xmm2
	movups	%xmm2, -1584(%r12)
	movdqu	160(%r15), %xmm3
	movups	%xmm3, -1568(%r12)
	movdqu	176(%r15), %xmm4
	movups	%xmm4, -1552(%r12)
	movdqu	192(%r15), %xmm5
	movups	%xmm5, -1536(%r12)
	movq	208(%r15), %rcx
	movq	%rcx, -1520(%r12)
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	movq	%r13, 24(%rsp)
	movq	16(%rsp), %r13
	.p2align 4,,10
	.p2align 3
.L10404:

	leaq	-216(%rbx), %rdx
	movq	%rbx, %rsi
	movq	%r13, %rcx
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	addq	$216, %rbx
	cmpq	%r12, %rbx
	jne	.L10404
	movq	24(%rsp), %r13
	addq	$72, %r14
	addq	$1728, %r12
	addq	$216, %r15
	addq	$529, %r13
	cmpq	%r13, 64(%rsp)
	jne	.L10412
	movq	72(%rsp), %r10
	movq	104(%rsp), %r13
.L10413:

	movq	8(%rsp), %rax
	cmpq	%rax, %r10
	jnb	.L10402
	movq	48(%rsp), %rax
	movl	$1, %r9d
	movq	%r10, %r15
	imulq	$529, 32(%rsp), %r14
	addq	%r10, %r14
	addq	%rax, %r14
	.p2align 4,,10
	.p2align 3
.L10415:

	cmpq	$0, 40(%rsp)
	je	.L10417
	movsbl	8848(%rsp,%r15), %eax
	testb	%al, %al
	jne	.L10567
.L10417:

	cmpq	$0, 32(%rsp)
	je	.L10438
.L10433:

	movq	48(%rsp), %rax
	movq	56(%rsp), %r12
	leaq	(%rax,%r15), %rbx
	jmp	.L10456
	.p2align 4,,10
	.p2align 3
.L10439:

	addq	$529, %rbx
	addq	$1728, %r12
	cmpq	%rbx, %r14
	je	.L10438
.L10456:

	movsbl	(%rbx), %eax
	testb	%al, %al
	je	.L10439
	testl	%eax, %eax
	js	.L10568
	sarl	%eax
	leaq	112(%rsp), %rdi
	leaq	184(%rsp), %rsi
	cltq
	leaq	256(%rsp), %r8
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%r12,%rax,8), %rax
	movdqu	(%rax), %xmm2
	movaps	%xmm2, 112(%rsp)
	movdqu	16(%rax), %xmm3
	movaps	%xmm3, 128(%rsp)
	movdqu	32(%rax), %xmm4
	movaps	%xmm4, 144(%rsp)
	movdqu	48(%rax), %xmm5
	movaps	%xmm5, 160(%rsp)
	movq	64(%rax), %rdx
	movq	%rdx, 176(%rsp)
	movdqu	72(%rax), %xmm6
	movups	%xmm6, 184(%rsp)
	movdqu	88(%rax), %xmm7
	movups	%xmm7, 200(%rsp)
	movdqu	104(%rax), %xmm2
	movups	%xmm2, 216(%rsp)
	movdqu	120(%rax), %xmm3
	movups	%xmm3, 232(%rsp)
	movq	136(%rax), %rdx
	movq	%rdx, 248(%rsp)
	movdqu	144(%rax), %xmm4
	movaps	%xmm4, 256(%rsp)
	movdqu	160(%rax), %xmm5
	movaps	%xmm5, 272(%rsp)
	movdqu	176(%rax), %xmm6
	movaps	%xmm6, 288(%rsp)
	movdqu	192(%rax), %xmm7
	movaps	%xmm7, 304(%rsp)
	movq	208(%rax), %rax
	movq	%rax, 320(%rsp)
	.p2align 4,,10
	.p2align 3
.L10448:

	testl	%r9d, %r9d
	je	.L10454
	movq	64(%rsi), %rdx
	movdqa	(%rdi), %xmm2
	movdqa	16(%rdi), %xmm3
	movdqa	32(%rdi), %xmm4
	movdqa	48(%rdi), %xmm5
	movdqu	(%rsi), %xmm6
	movups	%xmm2, 0(%r13)
	movdqu	16(%rsi), %xmm7
	movq	64(%rdi), %rax
	movups	%xmm3, 16(%r13)
	movdqu	32(%rsi), %xmm2
	movdqu	48(%rsi), %xmm3
	movups	%xmm4, 32(%r13)
	movq	%rdx, 136(%r13)
	movq	64(%r8), %rdx
	movdqa	(%r8), %xmm4
	movups	%xmm5, 48(%r13)
	movdqa	16(%r8), %xmm5
	movups	%xmm6, 72(%r13)
	movdqa	32(%r8), %xmm6
	movups	%xmm7, 88(%r13)
	movdqa	48(%r8), %xmm7
	movq	%rax, 64(%r13)
	movq	%rdx, 208(%r13)
	movups	%xmm2, 104(%r13)
	movups	%xmm3, 120(%r13)
	movups	%xmm4, 144(%r13)
	movups	%xmm5, 160(%r13)
	movups	%xmm6, 176(%r13)
	movups	%xmm7, 192(%r13)
.L10455:

	xorl	%r9d, %r9d
	jmp	.L10439
	.p2align 4,,10
	.p2align 3
.L10454:

	movq	%rdi, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	jmp	.L10455
	.p2align 4,,10
	.p2align 3
.L10568:

	negl	%eax
	movslq	328(%rbp), %rcx
	leaq	112(%rsp), %rdi
	leaq	184(%rsp), %rsi
	sarl	%eax
	leaq	256(%rsp), %r8
	cltq
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	(%r12,%rax,8), %rax
	movdqu	(%rax), %xmm2
	movaps	%xmm2, 112(%rsp)
	movdqu	16(%rax), %xmm3
	movaps	%xmm3, 128(%rsp)
	movdqu	32(%rax), %xmm4
	movaps	%xmm4, 144(%rsp)
	movdqu	48(%rax), %xmm5
	movaps	%xmm5, 160(%rsp)
	movq	64(%rax), %rdx
	movq	%rdx, 176(%rsp)
	movdqu	72(%rax), %xmm6
	movups	%xmm6, 184(%rsp)
	movdqu	88(%rax), %xmm7
	movups	%xmm7, 200(%rsp)
	movdqu	104(%rax), %xmm2
	movups	%xmm2, 216(%rsp)
	movdqu	120(%rax), %xmm3
	movups	%xmm3, 232(%rsp)
	movq	136(%rax), %rdx
	movq	%rdx, 248(%rsp)
	movdqu	144(%rax), %xmm4
	movaps	%xmm4, 256(%rsp)
	movdqu	160(%rax), %xmm5
	movaps	%xmm5, 272(%rsp)
	movdqu	176(%rax), %xmm6
	movaps	%xmm6, 288(%rsp)
	movdqu	192(%rax), %xmm7
	movaps	%xmm7, 304(%rsp)
	movq	208(%rax), %rax
	movq	%rax, 320(%rsp)
	testl	%ecx, %ecx
	jle	.L10441
	cmpl	$1, %ecx
	je	.L10466
	movdqu	184(%rsp), %xmm0
	movl	%ecx, %eax
	shrl	%eax
	cmpl	$1, %eax
	je	.L10443
	movdqu	200(%rsp), %xmm6
	por	%xmm6, %xmm0
	cmpl	$2, %eax
	je	.L10443
	movdqu	216(%rsp), %xmm7
	por	%xmm7, %xmm0
	cmpl	$3, %eax
	je	.L10443
	movdqu	232(%rsp), %xmm7
	por	%xmm7, %xmm0
	cmpl	$4, %eax
	je	.L10443
	movdqu	248(%rsp), %xmm6
	por	%xmm6, %xmm0
	cmpl	$5, %eax
	je	.L10443
	xorl	%edx, %edx
	leaq	264(%rsp), %r10
.L10444:

	movq	%rdx, %r11
	addq	$1, %rdx
	salq	$4, %r11
	movdqu	(%r10,%r11), %xmm1
	leal	5(%rdx), %r11d
	por	%xmm1, %xmm0
	cmpl	%eax, %r11d
	jb	.L10444
	.p2align 4,,10
	.p2align 3
.L10443:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L10563
	movl	%ecx, %eax
	andl	$-2, %eax
.L10442:

	cltq
	orq	184(%rsp,%rax,8), %rdx
.L10563:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rbp), %rdx
	sarq	$63, %rax
	notq	%rax
.L10446:

	xorl	%r10d, %r10d
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r11,%r11		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%r10,8),%r11	
	sbbq	(%rsi,%r10,8),%r11	
	movq	%r11,(%rsi,%r10,8)	
	lea	1(%r10),%r10	
	dec	%rcx		
	jnz	1b		
	sbbq	%r11,%r11		

# 0 "" 2
#NO_APP
	movl	328(%rbp), %ecx
	testl	%ecx, %ecx
	jle	.L10448
	cmpl	$1, %ecx
	je	.L10467
	movdqu	184(%rsp), %xmm1
	movq	%rax, %xmm0
	movl	%ecx, %edx
	punpcklqdq	%xmm0, %xmm0
	shrl	%edx
	pand	%xmm0, %xmm1
	movups	%xmm1, 184(%rsp)
	cmpl	$1, %edx
	je	.L10451
	movdqu	200(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 200(%rsp)
	cmpl	$2, %edx
	je	.L10451
	movdqu	216(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 216(%rsp)
	cmpl	$3, %edx
	je	.L10451
	movdqu	232(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 232(%rsp)
	cmpl	$4, %edx
	je	.L10451
	movdqu	248(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 248(%rsp)
	cmpl	$5, %edx
	je	.L10451
	leaq	264(%rsp), %r10
	movl	$5, %r11d
.L10452:

	movdqu	(%r10), %xmm1
	addl	$1, %r11d
	addq	$16, %r10
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%r10)
	cmpl	%r11d, %edx
	jne	.L10452
	.p2align 4,,10
	.p2align 3
.L10451:

	movl	%ecx, %edx
	andl	$-2, %edx
	andl	$1, %ecx
	je	.L10448
.L10450:

	movslq	%edx, %rdx
	andq	%rax, 184(%rsp,%rdx,8)
	jmp	.L10448
	.p2align 4,,10
	.p2align 3
.L10438:

	movq	8(%rsp), %rax
	subq	$1, %r15
	subq	$1, %r14
	cmpq	%rax, %r15
	jnb	.L10569
	testl	%r9d, %r9d
	jne	.L10415
.L10436:

	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	xorl	%r9d, %r9d
	jmp	.L10415
	.p2align 4,,10
	.p2align 3
.L10441:

	testq	%rcx, %rcx
	je	.L10448
	movq	320(%rbp), %rdx
	xorl	%eax, %eax
	jmp	.L10446
	.p2align 4,,10
	.p2align 3
.L10567:

	testl	%eax, %eax
	js	.L10570
	sarl	%eax
	cltq
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	1936(%rsp,%rax,8), %rax
	movdqu	(%rax), %xmm0
	movq	64(%rax), %rdx
	movdqu	72(%rax), %xmm2
	movdqu	88(%rax), %xmm3
	movaps	%xmm0, 112(%rsp)
	movdqu	16(%rax), %xmm0
	movdqu	104(%rax), %xmm4
	movdqu	120(%rax), %xmm5
	movdqu	160(%rax), %xmm7
	movq	%rdx, 176(%rsp)
	movaps	%xmm0, 128(%rsp)
	movdqu	32(%rax), %xmm0
	movq	136(%rax), %rdx
	movups	%xmm2, 184(%rsp)
	movdqu	176(%rax), %xmm2
	movaps	%xmm0, 144(%rsp)
	movdqu	48(%rax), %xmm0
	movups	%xmm3, 200(%rsp)
	movdqu	192(%rax), %xmm3
	movaps	%xmm0, 160(%rsp)
	movdqu	144(%rax), %xmm0
	movq	208(%rax), %rax
	movq	%rdx, 248(%rsp)
	movq	%rax, 320(%rsp)
	movups	%xmm4, 216(%rsp)
	movups	%xmm5, 232(%rsp)
	movaps	%xmm0, 256(%rsp)
	movaps	%xmm7, 272(%rsp)
	movaps	%xmm2, 288(%rsp)
	movaps	%xmm3, 304(%rsp)
	.p2align 4,,10
	.p2align 3
.L10426:

	testl	%r9d, %r9d
	je	.L10432
	movdqa	112(%rsp), %xmm4
	movq	248(%rsp), %rdx
	movdqa	128(%rsp), %xmm5
	movq	176(%rsp), %rax
	movdqa	144(%rsp), %xmm0
	movq	%rdx, 136(%r13)
	movdqa	160(%rsp), %xmm6
	movups	%xmm4, 0(%r13)
	movq	320(%rsp), %rdx
	movdqu	184(%rsp), %xmm4
	movups	%xmm5, 16(%r13)
	movdqu	232(%rsp), %xmm7
	movdqu	200(%rsp), %xmm5
	movups	%xmm0, 32(%r13)
	movdqa	256(%rsp), %xmm2
	movdqu	216(%rsp), %xmm0
	movups	%xmm6, 48(%r13)
	movdqa	272(%rsp), %xmm3
	movdqa	288(%rsp), %xmm6
	movups	%xmm4, 72(%r13)
	movdqa	304(%rsp), %xmm4
	movq	%rax, 64(%r13)
	movq	%rdx, 208(%r13)
	movups	%xmm5, 88(%r13)
	movups	%xmm0, 104(%r13)
	movups	%xmm7, 120(%r13)
	movups	%xmm2, 144(%r13)
	movups	%xmm3, 160(%r13)
	movups	%xmm6, 176(%r13)
	movups	%xmm4, 192(%r13)
.L10435:

	xorl	%r9d, %r9d
	cmpq	$0, 32(%rsp)
	jne	.L10433
	movq	8(%rsp), %rax
	subq	$1, %r15
	subq	$1, %r14
	cmpq	%rax, %r15
	jb	.L10436
	jmp	.L10414
	.p2align 4,,10
	.p2align 3
.L10462:

	movl	%eax, %edx
	xorl	%eax, %eax
	jmp	.L10394
	.p2align 4,,10
	.p2align 3
.L10432:

	leaq	112(%rsp), %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	jmp	.L10435
	.p2align 4,,10
	.p2align 3
.L10569:

	testl	%r9d, %r9d
	jne	.L10402
.L10414:

	movl	$1, %ebx
.L10388:

	movq	96(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	88(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	9384(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10571
	addq	$9400, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L10467:

	.cfi_restore_state
	xorl	%edx, %edx
	jmp	.L10450
.L10466:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L10442
.L10570:

	negl	%eax
	movslq	328(%rbp), %rcx
	sarl	%eax
	cltq
	leaq	(%rax,%rax,2), %rax
	leaq	(%rax,%rax,8), %rax
	leaq	1936(%rsp,%rax,8), %rax
	movdqu	(%rax), %xmm5
	movdqu	16(%rax), %xmm0
	movdqu	32(%rax), %xmm7
	movdqu	48(%rax), %xmm2
	movq	64(%rax), %rdx
	movdqu	72(%rax), %xmm3
	movaps	%xmm5, 112(%rsp)
	movdqu	88(%rax), %xmm6
	movdqu	104(%rax), %xmm5
	movaps	%xmm0, 128(%rsp)
	movdqu	192(%rax), %xmm4
	movdqu	120(%rax), %xmm0
	movq	%rdx, 176(%rsp)
	movaps	%xmm7, 144(%rsp)
	movq	136(%rax), %rdx
	movdqu	144(%rax), %xmm7
	movaps	%xmm2, 160(%rsp)
	movdqu	160(%rax), %xmm2
	movups	%xmm3, 184(%rsp)
	movdqu	176(%rax), %xmm3
	movq	208(%rax), %rax
	movq	%rdx, 248(%rsp)
	movq	%rax, 320(%rsp)
	movups	%xmm6, 200(%rsp)
	movups	%xmm5, 216(%rsp)
	movups	%xmm0, 232(%rsp)
	movaps	%xmm7, 256(%rsp)
	movaps	%xmm2, 272(%rsp)
	movaps	%xmm3, 288(%rsp)
	movaps	%xmm4, 304(%rsp)
	testl	%ecx, %ecx
	jle	.L10419
	cmpl	$1, %ecx
	je	.L10463
	movdqu	184(%rsp), %xmm0
	movl	%ecx, %eax
	shrl	%eax
	cmpl	$1, %eax
	je	.L10421
	movdqu	200(%rsp), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L10421
	movdqu	216(%rsp), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L10421
	movdqu	232(%rsp), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L10421
	movdqu	248(%rsp), %xmm6
	por	%xmm6, %xmm0
	cmpl	$5, %eax
	je	.L10421
	xorl	%edx, %edx
	leaq	264(%rsp), %rsi
.L10422:

	movq	%rdx, %rdi
	addq	$1, %rdx
	salq	$4, %rdi
	movdqu	(%rsi,%rdi), %xmm1
	leal	5(%rdx), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L10422
.L10421:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L10423
	movl	%ecx, %eax
	andl	$-2, %eax
.L10420:

	cltq
	orq	184(%rsp,%rax,8), %rdx
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rbp), %rdx
	sarq	$63, %rax
	notq	%rax
.L10424:

	leaq	184(%rsp), %rsi
	xorl	%edi, %edi
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r8,%r8		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%rdi,8),%r8	
	sbbq	(%rsi,%rdi,8),%r8	
	movq	%r8,(%rsi,%rdi,8)	
	lea	1(%rdi),%rdi	
	dec	%rcx		
	jnz	1b		
	sbbq	%r8,%r8		

# 0 "" 2
#NO_APP
	movl	328(%rbp), %edx
	testl	%edx, %edx
	jle	.L10426
	cmpl	$1, %edx
	je	.L10464
	movdqu	184(%rsp), %xmm1
	movq	%rax, %xmm0
	movl	%edx, %ecx
	punpcklqdq	%xmm0, %xmm0
	shrl	%ecx
	pand	%xmm0, %xmm1
	movups	%xmm1, 184(%rsp)
	cmpl	$1, %ecx
	je	.L10429
	movdqu	200(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 200(%rsp)
	cmpl	$2, %ecx
	je	.L10429
	movdqu	216(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 216(%rsp)
	cmpl	$3, %ecx
	je	.L10429
	movdqu	232(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 232(%rsp)
	cmpl	$4, %ecx
	je	.L10429
	movdqu	248(%rsp), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 248(%rsp)
	cmpl	$5, %ecx
	je	.L10429
	leaq	264(%rsp), %rsi
	movl	$5, %edi
.L10430:

	movdqu	(%rsi), %xmm1
	addl	$1, %edi
	addq	$16, %rsi
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rsi)
	cmpl	%ecx, %edi
	jne	.L10430
.L10429:

	testb	$1, %dl
	je	.L10426
	andl	$-2, %edx
.L10428:

	movslq	%edx, %rdx
	andq	%rax, 184(%rsp,%rdx,8)
	jmp	.L10426
.L10396:

	movl	%eax, %edx
	andl	$-16, %eax
	andl	$15, %edx
	sarl	%eax
	jmp	.L10394
.L10399:

	movdqu	16(%rbp), %xmm6
	movq	80(%rbp), %rax
	leaq	16(%rbp), %rdx
	movq	%rbp, %rdi
	movdqu	88(%rbp), %xmm7
	movdqu	32(%rdx), %xmm5
	leaq	112(%rsp), %rbx
	leaq	2152(%rsp), %r15
	movdqu	48(%rdx), %xmm0
	movq	%rax, 2000(%rsp)
	movq	%rbx, %rsi
	movdqu	104(%rbp), %xmm2
	movdqu	120(%rbp), %xmm3
	movaps	%xmm6, 1936(%rsp)
	movq	152(%rbp), %rax
	movdqu	16(%rdx), %xmm6
	movaps	%xmm5, 1968(%rsp)
	movdqu	136(%rbp), %xmm4
	movdqu	176(%rbp), %xmm5
	movaps	%xmm0, 1984(%rsp)
	movq	%rax, 2072(%rsp)
	movdqu	192(%rbp), %xmm0
	movq	224(%rbp), %rax
	movaps	%xmm6, 1952(%rsp)
	movdqu	160(%rbp), %xmm6
	movups	%xmm7, 2008(%rsp)
	movdqu	208(%rbp), %xmm7
	movq	%r10, 24(%rsp)
	movq	%rax, 2144(%rsp)
	movups	%xmm2, 2024(%rsp)
	movups	%xmm3, 2040(%rsp)
	movups	%xmm4, 2056(%rsp)
	movaps	%xmm6, 2080(%rsp)
	movaps	%xmm5, 2096(%rsp)
	movaps	%xmm0, 2112(%rsp)
	movaps	%xmm7, 2128(%rsp)
# WAS call	ec_GFp_mont_dbl
	call	.Lec_GFp_mont_dbl_local_target
	movq	%r13, 64(%rsp)
	movq	%r15, %r13
	movq	24(%rsp), %r15
	.p2align 4,,10
	.p2align 3
.L10392:

	leaq	-216(%r13), %rdx
	movq	%r13, %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdi
# WAS call	ec_GFp_mont_add
	call	.Lec_GFp_mont_add_local_target
	addq	$216, %r13
	cmpq	%r13, %r12
	jne	.L10392
	movq	64(%rsp), %r13
	movq	%r15, %r10
	jmp	.L10390
.L10564:

	movq	32(%rsp), %r15
	movl	$529, %esi
	movq	%r10, 24(%rsp)
	movq	%r15, %rdi
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movl	$1728, %esi
	movq	%r15, %rdi
	movq	%rax, 96(%rsp)
	movq	%rax, %rbx
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, 88(%rsp)
	testq	%rbx, %rbx
	je	.L10460
	testq	%rax, %rax
	movq	24(%rsp), %r10
	je	.L10460
	movq	%rax, 56(%rsp)
	movq	96(%rsp), %rax
	leaq	3664(%rsp), %r12
	cmpq	$0, 40(%rsp)
	movq	%rax, 48(%rsp)
	jne	.L10458
	jmp	.L10400
.L10402:

	movq	%r13, %rdi
# WAS call	ec_GFp_simple_point_init
	call	.Lec_GFp_simple_point_init_local_target
	jmp	.L10414
.L10419:

	testq	%rcx, %rcx
	je	.L10426
	movq	320(%rbp), %rdx
	xorl	%eax, %eax
	jmp	.L10424
	.p2align 4,,10
	.p2align 3
.L10423:

	leaq	-1(%rdx), %rax
	notq	%rdx
	andq	%rdx, %rax
	movq	320(%rbp), %rdx
	sarq	$63, %rax
	notq	%rax
	jmp	.L10424
.L10460:

	xorl	%ebx, %ebx
	jmp	.L10388
.L10464:

	xorl	%edx, %edx
	jmp	.L10428
.L10463:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L10420
.L10571:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2106:

	.size	ec_GFp_mont_mul_public_batch, .-ec_GFp_mont_mul_public_batch
# WAS .section	.text.ec_GFp_simple_point_copy,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_point_copy
	.hidden	ec_GFp_simple_point_copy
	.type	ec_GFp_simple_point_copy, @function
.Lec_GFp_simple_point_copy_local_target:
ec_GFp_simple_point_copy:
.LFB2083:

	.cfi_startproc
	endbr64
	movdqu	(%rsi), %xmm0
	movups	%xmm0, (%rdi)
	movdqu	16(%rsi), %xmm1
	movups	%xmm1, 16(%rdi)
	movdqu	32(%rsi), %xmm2
	movups	%xmm2, 32(%rdi)
	movdqu	48(%rsi), %xmm3
	movups	%xmm3, 48(%rdi)
	movq	64(%rsi), %rax
	movq	%rax, 64(%rdi)
	movdqu	72(%rsi), %xmm4
	movups	%xmm4, 72(%rdi)
	movdqu	88(%rsi), %xmm5
	movups	%xmm5, 88(%rdi)
	movdqu	104(%rsi), %xmm6
	movups	%xmm6, 104(%rdi)
	movdqu	120(%rsi), %xmm7
	movups	%xmm7, 120(%rdi)
	movq	136(%rsi), %rdx
	movq	%rdx, 136(%rdi)
	movdqu	144(%rsi), %xmm0
	movups	%xmm0, 144(%rdi)
	movdqu	160(%rsi), %xmm1
	movups	%xmm1, 160(%rdi)
	movdqu	176(%rsi), %xmm2
	movups	%xmm2, 176(%rdi)
	movdqu	192(%rsi), %xmm3
	movups	%xmm3, 192(%rdi)
	movq	208(%rsi), %rdx
	movq	%rdx, 208(%rdi)
	ret
	.cfi_endproc
.LFE2083:

	.size	ec_GFp_simple_point_copy, .-ec_GFp_simple_point_copy
# WAS .section	.text.ec_GFp_simple_point_set_to_infinity,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_point_set_to_infinity
	.hidden	ec_GFp_simple_point_set_to_infinity
	.type	ec_GFp_simple_point_set_to_infinity, @function
.Lec_GFp_simple_point_set_to_infinity_local_target:
ec_GFp_simple_point_set_to_infinity:
.LFB2084:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movq	$0, 64(%rsi)
	movq	$0, 136(%rsi)
	movq	$0, 208(%rsi)
	movups	%xmm0, (%rsi)
	movups	%xmm0, 16(%rsi)
	movups	%xmm0, 32(%rsi)
	movups	%xmm0, 48(%rsi)
	movups	%xmm0, 72(%rsi)
	movups	%xmm0, 88(%rsi)
	movups	%xmm0, 104(%rsi)
	movups	%xmm0, 120(%rsi)
	movups	%xmm0, 144(%rsi)
	movups	%xmm0, 160(%rsi)
	movups	%xmm0, 176(%rsi)
	movups	%xmm0, 192(%rsi)
	ret
	.cfi_endproc
.LFE2084:

	.size	ec_GFp_simple_point_set_to_infinity, .-ec_GFp_simple_point_set_to_infinity
# WAS .section	.text.ec_GFp_simple_invert,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_invert
	.hidden	ec_GFp_simple_invert
	.type	ec_GFp_simple_invert, @function
.Lec_GFp_simple_invert_local_target:
ec_GFp_simple_invert:
.LFB2085:

	.cfi_startproc
	endbr64
	movslq	328(%rdi), %rcx
	testl	%ecx, %ecx
	jle	.L10575
	cmpl	$1, %ecx
	je	.L10587
	movl	%ecx, %eax
	movdqu	72(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10577
	movdqu	88(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L10577
	movdqu	104(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L10577
	movdqu	120(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L10577
	movdqu	136(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L10577
	xorl	%edx, %edx
.L10578:

	movq	%rdx, %r8
	addq	$1, %rdx
	salq	$4, %r8
	movdqu	152(%rsi,%r8), %xmm1
	leal	5(%rdx), %r8d
	por	%xmm1, %xmm0
	cmpl	%eax, %r8d
	jb	.L10578
	.p2align 4,,10
	.p2align 3
.L10577:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L10624
	movl	%ecx, %eax
	andl	$-2, %eax
.L10576:

	cltq
	orq	72(%rsi,%rax,8), %rdx
.L10624:

	movq	%rdx, %rax
	subq	$1, %rdx
	leaq	72(%rsi), %r8
	notq	%rax
	andq	%rdx, %rax
	movq	320(%rdi), %rdx
	sarq	$63, %rax
	notq	%rax
.L10580:

	xorl	%r9d, %r9d
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r10,%r10		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdx,%r9,8),%r10	
	sbbq	(%r8,%r9,8),%r10	
	movq	%r10,(%r8,%r9,8)	
	lea	1(%r9),%r9	
	dec	%rcx		
	jnz	1b		
	sbbq	%r10,%r10		

# 0 "" 2
#NO_APP
	movl	328(%rdi), %edx
	testl	%edx, %edx
	jle	.L10574
	cmpl	$1, %edx
	je	.L10588
	movdqu	(%r8), %xmm1
	movq	%rax, %xmm0
	movl	%edx, %ecx
	punpcklqdq	%xmm0, %xmm0
	shrl	%ecx
	pand	%xmm0, %xmm1
	movups	%xmm1, (%r8)
	cmpl	$1, %ecx
	je	.L10584
	movdqu	16(%r8), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%r8)
	cmpl	$2, %ecx
	je	.L10584
	movdqu	32(%r8), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%r8)
	cmpl	$3, %ecx
	je	.L10584
	movdqu	48(%r8), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%r8)
	cmpl	$4, %ecx
	je	.L10584
	movdqu	64(%r8), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%r8)
	cmpl	$5, %ecx
	je	.L10584
	leaq	152(%rsi), %rdi
	movl	$5, %r8d
.L10585:

	movdqu	(%rdi), %xmm1
	addl	$1, %r8d
	addq	$16, %rdi
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rdi)
	cmpl	%ecx, %r8d
	jne	.L10585
	.p2align 4,,10
	.p2align 3
.L10584:

	testb	$1, %dl
	je	.L10574
	andl	$-2, %edx
.L10583:

	movslq	%edx, %rdx
	andq	%rax, 72(%rsi,%rdx,8)
.L10574:

	ret
	.p2align 4,,10
	.p2align 3
.L10575:

	testq	%rcx, %rcx
	je	.L10574
	movq	320(%rdi), %rdx
	leaq	72(%rsi), %r8
	xorl	%eax, %eax
	jmp	.L10580
	.p2align 4,,10
	.p2align 3
.L10588:

	xorl	%edx, %edx
	jmp	.L10583
.L10587:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L10576
	.cfi_endproc
.LFE2085:

	.size	ec_GFp_simple_invert, .-ec_GFp_simple_invert
# WAS .section	.text.ec_GFp_simple_is_at_infinity,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_is_at_infinity
	.hidden	ec_GFp_simple_is_at_infinity
	.type	ec_GFp_simple_is_at_infinity, @function
.Lec_GFp_simple_is_at_infinity_local_target:
ec_GFp_simple_is_at_infinity:
.LFB2086:

	.cfi_startproc
	endbr64
	movl	328(%rdi), %edx
	testl	%edx, %edx
	jle	.L10631
	cmpl	$1, %edx
	je	.L10632
	movl	%edx, %eax
	movdqu	144(%rsi), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10628
	movdqu	160(%rsi), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L10628
	movdqu	176(%rsi), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L10628
	movdqu	192(%rsi), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L10628
	movdqu	208(%rsi), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L10628
	xorl	%ecx, %ecx
.L10629:

	movq	%rcx, %rdi
	addq	$1, %rcx
	salq	$4, %rdi
	movdqu	224(%rsi,%rdi), %xmm1
	leal	5(%rcx), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L10629
	.p2align 4,,10
	.p2align 3
.L10628:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L10630
	andl	$-2, %edx
.L10627:

	movslq	%edx, %rdx
	orq	144(%rsi,%rdx,8), %rax
.L10630:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	testq	%rax, %rdx
	sets	%al
	movzbl	%al, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L10631:

	movl	$1, %eax
	ret
.L10632:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L10627
	.cfi_endproc
.LFE2086:

	.size	ec_GFp_simple_is_at_infinity, .-ec_GFp_simple_is_at_infinity
# WAS .section	.text.ec_GFp_simple_is_on_curve,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_is_on_curve
	.hidden	ec_GFp_simple_is_on_curve
	.type	ec_GFp_simple_is_on_curve, @function
.Lec_GFp_simple_is_on_curve_local_target:
ec_GFp_simple_is_on_curve:
.LFB2087:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$440, %rsp
	.cfi_def_cfa_offset 496
	movq	%fs:40, %rdx
	movq	%rdx, 424(%rsp)
	movq	(%rdi), %rdx
	leaq	112(%rsp), %rbx
	leaq	32(%rsp), %rbp
	movq	96(%rdx), %r12
	movq	88(%rdx), %r13
	movq	%rsi, %rdx
	movq	%rbp, %rsi
	call	*%r12
	leaq	144(%r15), %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	call	*%r12
	leaq	192(%rsp), %rax
	movq	%rbx, %rdx
	movq	%r14, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	*%r12
	movq	8(%rsp), %rdx
	movq	%rbx, %rcx
	movq	%r14, %rdi
	leaq	272(%rsp), %rax
	movq	%rax, 16(%rsp)
	movq	%rax, %rsi
	call	*%r13
	movl	528(%r14), %eax
	testl	%eax, %eax
	jne	.L10685
	movq	8(%rsp), %rdx
	leaq	360(%r14), %rcx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	call	*%r13
	movq	320(%r14), %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	leaq	352(%rsp), %rax
	movslq	328(%r14), %r9
	movq	%rbp, %rdi
	movq	%rax, %r8
	movq	%rax, 24(%rsp)
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
.L10654:

	movq	%r15, %rcx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
	call	*%r13
	movq	16(%rsp), %rcx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	leaq	432(%r14), %rdx
	call	*%r13
	movq	24(%rsp), %r13
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	320(%r14), %rcx
	movslq	328(%r14), %r9
	movq	%rbp, %rdi
	movq	%r13, %r8
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	leaq	72(%r15), %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	call	*%r12
	movq	320(%r14), %rcx
	movq	%rbx, %rsi
	movq	%r13, %r8
	movslq	328(%r14), %r9
	movq	%rbp, %rdx
	movq	%rbx, %rdi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	328(%r14), %esi
	testl	%esi, %esi
	jle	.L10664
	cmpl	$1, %esi
	je	.L10686
	movl	%esi, %edi
	movdqa	112(%rsp), %xmm0
	shrl	%edi
	cmpl	$1, %edi
	je	.L10658
	por	128(%rsp), %xmm0
	cmpl	$2, %edi
	je	.L10658
	por	144(%rsp), %xmm0
	cmpl	$3, %edi
	je	.L10658
	por	160(%rsp), %xmm0
.L10658:

	movdqa	%xmm0, %xmm1
	movl	%esi, %ecx
	psrldq	$8, %xmm1
	andl	$-2, %ecx
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %sil
	je	.L10684
	movslq	%ecx, %rax
	orq	112(%rsp,%rax,8), %rdx
.L10684:

	movdqu	144(%r15), %xmm0
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	cmpl	$1, %edi
	je	.L10661
	movdqu	160(%r15), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %edi
	je	.L10661
	movdqu	176(%r15), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %edi
	je	.L10661
	movdqu	192(%r15), %xmm4
	por	%xmm4, %xmm0
.L10661:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	cmpl	%ecx, %esi
	je	.L10662
.L10657:

	movslq	%ecx, %rcx
	orq	144(%r15,%rcx,8), %rdx
.L10662:

	movq	%rdx, %rcx
	subq	$1, %rdx
	notq	%rcx
	andq	%rcx, %rdx
	orq	%rdx, %rax
	shrq	$63, %rax
.L10652:

	movq	424(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10687
	addq	$440, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10685:

	.cfi_restore_state
	movq	8(%rsp), %rdx
	movq	320(%r14), %rcx
	movq	%rbx, %rdi
	leaq	352(%rsp), %r8
	movslq	328(%r14), %r9
	movq	%r8, 24(%rsp)
	movq	%rdx, %rsi
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	320(%r14), %rcx
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movslq	328(%r14), %r9
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movq	320(%r14), %rcx
	movslq	328(%r14), %r9
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	jmp	.L10654
	.p2align 4,,10
	.p2align 3
.L10664:

	movl	$1, %eax
	jmp	.L10652
.L10686:

	movq	112(%rsp), %rdx
	xorl	%ecx, %ecx
	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rdx, %rax
	xorl	%edx, %edx
	jmp	.L10657
.L10687:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2087:

	.size	ec_GFp_simple_is_on_curve, .-ec_GFp_simple_is_on_curve
# WAS .section	.text.ec_point_mul_scalar,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar
	.hidden	ec_point_mul_scalar
	.type	ec_point_mul_scalar, @function
.Lec_point_mul_scalar_local_target:
ec_point_mul_scalar:
.LFB1813:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdx, %rdx
	je	.L10694
	testq	%rcx, %rcx
	je	.L10694
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	call	*32(%rax)
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L10696
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10694:

	.cfi_restore_state
	movl	$887, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L10697:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10696:

	.cfi_restore_state
	movl	$896, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10697
	.cfi_endproc
.LFE1813:

	.size	ec_point_mul_scalar, .-ec_point_mul_scalar
# WAS .section	.text.ec_point_mul_scalar_base,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar_base
	.hidden	ec_point_mul_scalar_base
	.type	ec_point_mul_scalar_base, @function
.Lec_point_mul_scalar_base_local_target:
ec_point_mul_scalar_base:
.LFB1814:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdx, %rdx
	je	.L10704
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	call	*40(%rax)
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	movl	$1, %edx
	testl	%eax, %eax
	je	.L10705
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10705:

	.cfi_restore_state
	movl	$68, %edx
	movl	$919, %r8d
	xorl	%esi, %esi
	movl	$15, %edi
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
.L10706:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10704:

	.cfi_restore_state
	movl	$67, %edx
	movl	$907, %r8d
	xorl	%esi, %esi
	movl	$15, %edi
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%edx, %edx
	jmp	.L10706
	.cfi_endproc
.LFE1814:

	.size	ec_point_mul_scalar_base, .-ec_point_mul_scalar_base
# WAS .section	.text.ec_point_mul_scalar_batch,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar_batch
	.hidden	ec_point_mul_scalar_batch
	.type	ec_point_mul_scalar_batch, @function
.Lec_point_mul_scalar_batch_local_target:
ec_point_mul_scalar_batch:
.LFB1815:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rax
	movq	48(%rax), %rax
	testq	%rax, %rax
	je	.L10713
	pushq	40(%rsp)
	.cfi_def_cfa_offset 40
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	pushq	40(%rsp)
	.cfi_def_cfa_offset 48
	call	*%rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	movl	%eax, %edx
	popq	%rax
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rcx
	.cfi_def_cfa_offset 32
	testl	%edx, %edx
	je	.L10714
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10714:

	.cfi_restore_state
	movl	$941, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L10715:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10713:

	.cfi_restore_state
	movl	$932, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10715
	.cfi_endproc
.LFE1815:

	.size	ec_point_mul_scalar_batch, .-ec_point_mul_scalar_batch
# WAS .section	.text.ec_point_mul_scalar_precomp,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_scalar_precomp
	.hidden	ec_point_mul_scalar_precomp
	.type	ec_point_mul_scalar_precomp, @function
.Lec_point_mul_scalar_precomp_local_target:
ec_point_mul_scalar_precomp:
.LFB1817:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rax
	movq	80(%rax), %rax
	testq	%rax, %rax
	je	.L10722
	pushq	40(%rsp)
	.cfi_def_cfa_offset 40
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	pushq	40(%rsp)
	.cfi_def_cfa_offset 48
	call	*%rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	movl	%eax, %edx
	popq	%rax
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rcx
	.cfi_def_cfa_offset 32
	testl	%edx, %edx
	je	.L10723
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10723:

	.cfi_restore_state
	movl	$973, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L10724:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10722:

	.cfi_restore_state
	movl	$964, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10724
	.cfi_endproc
.LFE1817:

	.size	ec_point_mul_scalar_precomp, .-ec_point_mul_scalar_precomp
# WAS .section	.text.ecdsa_sign_impl,"ax",@progbits
.text
	.p2align 4
	.type	ecdsa_sign_impl, @function
.Lecdsa_sign_impl_local_target:
ecdsa_sign_impl:
.LFB1745:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$616, %rsp
	.cfi_def_cfa_offset 672
	movq	%rcx, 8(%rsp)
	movq	%r8, 16(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 600(%rsp)
	xorl	%eax, %eax
	movl	$0, (%rsi)
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	%rax, %rdi
	movq	%rax, %r13
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$159, %eax
	jbe	.L10791
	movq	(%rbx), %rax
	leaq	384(%rsp), %r14
	movq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%r14, %rsi
	call	*40(%rax)
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	testl	%eax, %eax
	je	.L10728
	leaq	64(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rbx, %rdi
	movq	%rsi, 32(%rsp)
# WAS call	ec_get_x_coordinate_as_scalar
	call	.Lec_get_x_coordinate_as_scalar_local_target
	testl	%eax, %eax
	je	.L10727
	movslq	264(%rbx), %rcx
	movl	$1, %eax
	testl	%ecx, %ecx
	jle	.L10732
	cmpl	$1, %ecx
	je	.L10751
	movl	%ecx, %eax
	movdqa	64(%rsp), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10734
	por	80(%rsp), %xmm0
	cmpl	$2, %eax
	je	.L10734
	por	96(%rsp), %xmm0
	cmpl	$3, %eax
	je	.L10734
	por	112(%rsp), %xmm0
.L10734:

	movdqa	%xmm0, %xmm1
	movl	%ecx, %edx
	psrldq	$8, %xmm1
	andl	$-2, %edx
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %cl
	je	.L10735
.L10733:

	movslq	%edx, %rdx
	orq	64(%rsp,%rdx,8), %rax
.L10735:

	testq	%rax, %rax
	sete	%al
	movzbl	%al, %eax
.L10732:

	testl	%eax, %eax
	jne	.L10746
	leaq	232(%rbx), %rax
	leaq	144(%rsp), %r14
	movq	32(%rsp), %rsi
	movq	232(%rbx), %rdx
	movq	%rax, %r8
	movq	%r14, %rdi
	movq	%rax, 24(%rsp)
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	24(%rsp), %r8
	movq	%r15, %rsi
	movq	%r14, %rdx
	movslq	264(%rbx), %rcx
	movq	%r14, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movq	%rbx, %rdi
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	%rax, %rdi
	movq	%rax, %r15
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movslq	8(%r15), %rsi
	movq	16(%rsp), %rdx
	movl	%eax, %r9d
	leaq	7(%r9), %rax
	movl	%r9d, 60(%rsp)
	shrq	$3, %rax
	movq	%r9, 48(%rsp)
	cmpq	%r12, %rax
	cmova	%r12, %rax
	leaq	224(%rsp), %r12
	movq	%r12, %rdi
	movq	%rax, %rcx
	movq	%rax, 40(%rsp)
# WAS call	bn_big_endian_to_words
	call	.Lbn_big_endian_to_words_local_target
	movq	40(%rsp), %rax
	movq	48(%rsp), %r9
	movl	60(%rsp), %r8d
	salq	$3, %rax
	cmpq	%rax, %r9
	jb	.L10792
.L10737:

	movslq	8(%r15), %rsi
	leaq	304(%rsp), %r8
	testq	%rsi, %rsi
	je	.L10742
	movq	(%r15), %rdx
	movq	%rsi, %rcx
	xorl	%eax, %eax
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%rdi,%rdi		
	jmp	1f		
.p2align 4			
1:
	movq	(%r12,%rax,8),%rdi	
	sbbq	(%rdx,%rax,8),%rdi	
	movq	%rdi,(%r8,%rax,8)	
	lea	1(%rax),%rax	
	dec	%rcx		
	jnz	1b		
	sbbq	%rdi,%rdi		

# 0 "" 2
#NO_APP
	andl	$1, %edi
	movq	%r8, %rdx
	leaq	(%r8,%rsi,8), %r10
	movq	%r12, %rax
	movq	%rdi, %r9
	subq	$1, %rdi
	negq	%r9
	.p2align 4,,10
	.p2align 3
.L10741:

	movq	(%rax), %rcx
	movq	(%rdx), %rsi
	addq	$8, %rdx
	addq	$8, %rax
	andq	%r9, %rcx
	andq	%rdi, %rsi
	orq	%rsi, %rcx
	movq	%rcx, -8(%rax)
	cmpq	%r10, %rdx
	jne	.L10741
.L10742:

	movslq	264(%rbx), %r9
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	movq	256(%rbx), %rcx
# WAS call	bn_mod_add_words
	call	.Lbn_mod_add_words_local_target
	movq	%r8, %rdi
	movl	$72, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rbx), %rax
	movq	8(%rsp), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*136(%rax)
	movslq	264(%rbx), %rsi
	movq	%r12, %rdx
	movq	%r12, %rdi
	movq	24(%rsp), %r15
	movq	%rsi, %rcx
	movq	%r15, %r8
# WAS call	bn_from_montgomery_small
	call	.Lbn_from_montgomery_small_local_target
	movq	%r15, %r8
	movq	%r12, %rdx
	movq	%r14, %rsi
	movslq	264(%rbx), %rcx
	movq	%r14, %rdi
# WAS call	bn_mod_mul_montgomery_small
	call	.Lbn_mod_mul_montgomery_small_local_target
	movl	264(%rbx), %eax
	testl	%eax, %eax
	jle	.L10793
	cmpl	$1, %eax
	je	.L10752
	movdqa	144(%rsp), %xmm0
	movl	%eax, %edx
	shrl	%edx
	cmpl	$1, %edx
	je	.L10744
	por	160(%rsp), %xmm0
	cmpl	$2, %edx
	je	.L10744
	por	176(%rsp), %xmm0
	cmpl	$3, %edx
	je	.L10744
	por	192(%rsp), %xmm0
.L10744:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %al
	je	.L10745
	andl	$-2, %eax
.L10743:

	cltq
	orq	144(%rsp,%rax,8), %rdx
.L10745:

	xorl	%eax, %eax
	testq	%rdx, %rdx
	sete	%al
.L10740:

	testl	%eax, %eax
	jne	.L10746
# WAS call	ECDSA_SIG_new@PLT
	call	.LECDSA_SIG_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L10747
	movslq	8(%r13), %rbp
	movq	(%rax), %r15
	movq	%rbp, %rsi
	movq	%r15, %rdi
	movq	%rbp, %r12
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L10747
	salq	$3, %rbp
	je	.L10748
	movq	(%r15), %rdi
	movq	32(%rsp), %rsi
	movq	%rbp, %rdx
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
.L10748:

	movl	%r12d, 8(%r15)
	movq	8(%rbx), %r12
	movslq	8(%r13), %rbp
	movl	$0, 16(%r15)
	movq	%r12, %rdi
	movq	%rbp, %rsi
	movq	%rbp, %r13
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L10747
	salq	$3, %rbp
	je	.L10749
	movq	(%r12), %rdi
	movq	%rbp, %rdx
	movq	%r14, %rsi
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
.L10749:

	movl	%r13d, 8(%r12)
	movl	$0, 16(%r12)
	jmp	.L10725
	.p2align 4,,10
	.p2align 3
.L10746:

	movl	$1, 0(%rbp)
.L10727:

	xorl	%ebx, %ebx
.L10725:

	movq	600(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L10794
	addq	$616, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10747:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
	jmp	.L10727
	.p2align 4,,10
	.p2align 3
.L10791:

	movl	$215, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10727
	.p2align 4,,10
	.p2align 3
.L10728:

	movl	$919, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10727
	.p2align 4,,10
	.p2align 3
.L10792:

	andl	$7, %r8d
	movslq	8(%r15), %rcx
	movl	$8, %edx
	movq	%r12, %rsi
	subl	%r8d, %edx
	movq	%r12, %rdi
# WAS call	bn_rshift_words
	call	.Lbn_rshift_words_local_target
	jmp	.L10737
	.p2align 4,,10
	.p2align 3
.L10793:

	movl	$1, %eax
	jmp	.L10740
	.p2align 4,,10
	.p2align 3
.L10751:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L10733
.L10752:

	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L10743
.L10794:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1745:

	.size	ecdsa_sign_impl, .-ecdsa_sign_impl
# WAS .section	.text.ecdsa_sign_with_nonce_for_known_answer_test,"ax",@progbits
.text
	.p2align 4
	.globl	ecdsa_sign_with_nonce_for_known_answer_test
	.hidden	ecdsa_sign_with_nonce_for_known_answer_test
	.type	ecdsa_sign_with_nonce_for_known_answer_test, @function
.Lecdsa_sign_with_nonce_for_known_answer_test_local_target:
ecdsa_sign_with_nonce_for_known_answer_test:
.LFB1746:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	movq	40(%rdx), %rax
	testq	%rax, %rax
	je	.L10796
	cmpq	$0, 16(%rax)
	jne	.L10812
.L10796:

	movq	%rbx, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L10798
	movq	16(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L10798
	leaq	32(%rsp), %r13
	movq	%r15, %rcx
	movq	%r12, %rdx
	movq	%rax, %rdi
	movq	%r13, %rsi
# WAS call	ec_scalar_from_bytes@PLT
	call	.Lec_scalar_from_bytes_local_target
	testl	%eax, %eax
	je	.L10797
	movq	8(%rsp), %r8
	leaq	24(%rbx), %rdx
	movq	%r14, %r9
	movq	%r13, %rcx
	leaq	28(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	ecdsa_sign_impl
	call	.Lecdsa_sign_impl_local_target
.L10795:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10813
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10812:

	.cfi_restore_state
	movl	$277, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10797:

	xorl	%eax, %eax
	jmp	.L10795
	.p2align 4,,10
	.p2align 3
.L10798:

	movl	$283, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10795
.L10813:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1746:

	.size	ecdsa_sign_with_nonce_for_known_answer_test, .-ecdsa_sign_with_nonce_for_known_answer_test
# WAS .section	.text.ECDSA_sign_with_nonce_and_leak_private_key_for_testing,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_sign_with_nonce_and_leak_private_key_for_testing
	.type	ECDSA_sign_with_nonce_and_leak_private_key_for_testing, @function
.LECDSA_sign_with_nonce_and_leak_private_key_for_testing_local_target:
ECDSA_sign_with_nonce_and_leak_private_key_for_testing:
.LFB1747:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	40(%rbx), %rax
	testq	%rax, %rax
	je	.L10815
	cmpq	$0, 16(%rax)
	jne	.L10831
.L10815:

	movq	%rbx, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L10817
	movq	16(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L10817
	leaq	32(%rsp), %r14
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rax, %rdi
	movq	%r14, %rsi
# WAS call	ec_scalar_from_bytes@PLT
	call	.Lec_scalar_from_bytes_local_target
	testl	%eax, %eax
	je	.L10816
	movq	8(%rsp), %r8
	leaq	24(%rbx), %rdx
	movq	%r15, %r9
	movq	%r14, %rcx
	leaq	28(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	ecdsa_sign_impl
	call	.Lecdsa_sign_impl_local_target
.L10814:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10832
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10831:

	.cfi_restore_state
	movl	$277, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10816:

	xorl	%eax, %eax
	jmp	.L10814
	.p2align 4,,10
	.p2align 3
.L10817:

	movl	$283, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10814
.L10832:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1747:

	.size	ECDSA_sign_with_nonce_and_leak_private_key_for_testing, .-ECDSA_sign_with_nonce_and_leak_private_key_for_testing
# WAS .section	.text.ec_GFp_simple_points_equal,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_simple_points_equal
	.hidden	ec_GFp_simple_points_equal
	.type	ec_GFp_simple_points_equal, @function
.Lec_GFp_simple_points_equal_local_target:
ec_GFp_simple_points_equal:
.LFB2088:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$456, %rsp
	.cfi_def_cfa_offset 512
	movq	%fs:40, %rax
	movq	%rax, 440(%rsp)
	movq	(%rdi), %rax
	leaq	48(%rsp), %rbp
	leaq	288(%rsp), %rdi
	movq	%rdi, %rsi
	movq	%rdi, 8(%rsp)
	movq	%rbx, %rdi
	movq	88(%rax), %r12
	movq	96(%rax), %r15
	leaq	144(%rdx), %rax
	movq	%rax, %rdx
	movq	%rax, 40(%rsp)
	call	*%r15
	movq	8(%rsp), %rcx
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*%r12
	leaq	208(%rsp), %rax
	leaq	144(%r13), %rdx
	movq	%rbx, %rdi
	movq	%rax, %rsi
	movq	%rax, 16(%rsp)
	movq	%rdx, 24(%rsp)
	call	*%r15
	movq	16(%rsp), %rcx
	movq	%r14, %rdx
	movq	%rbx, %rdi
	leaq	128(%rsp), %r15
	movq	%r15, %rsi
	call	*%r12
	movq	320(%rbx), %rcx
	movq	%r15, %rdx
	movq	%rbp, %rsi
	leaq	368(%rsp), %rax
	movslq	328(%rbx), %r9
	movq	%rbp, %rdi
	movq	%rax, %r8
	movq	%rax, 32(%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	328(%rbx), %ecx
	movq	40(%rsp), %rax
	testl	%ecx, %ecx
	jle	.L10852
	cmpl	$1, %ecx
	je	.L10853
	movl	%ecx, %edx
	movdqa	48(%rsp), %xmm0
	shrl	%edx
	cmpl	$1, %edx
	je	.L10836
	por	64(%rsp), %xmm0
	cmpl	$2, %edx
	je	.L10836
	por	80(%rsp), %xmm0
	cmpl	$3, %edx
	je	.L10836
	por	96(%rsp), %xmm0
.L10836:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L10837
	andl	$-2, %ecx
.L10835:

	movslq	%ecx, %rcx
	orq	48(%rsp,%rcx,8), %rdx
.L10837:

	movq	%rdx, %rcx
	subq	$1, %rdx
	notq	%rcx
	andq	%rdx, %rcx
	movq	%rcx, 40(%rsp)
.L10834:

	movq	8(%rsp), %rdx
	movq	%rax, %rcx
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	call	*%r12
	movq	8(%rsp), %rcx
	leaq	72(%r13), %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*%r12
	movq	16(%rsp), %rdx
	movq	24(%rsp), %rcx
	movq	%rbx, %rdi
	movq	%rdx, %rsi
	call	*%r12
	movq	16(%rsp), %rcx
	leaq	72(%r14), %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
	call	*%r12
	movq	320(%rbx), %rcx
	movq	%rbp, %rdi
	movq	%r15, %rdx
	movslq	328(%rbx), %r9
	movq	32(%rsp), %r8
	movq	%rbp, %rsi
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	328(%rbx), %edi
	testl	%edi, %edi
	jle	.L10854
	cmpl	$1, %edi
	je	.L10839
	movl	%edi, %eax
	movdqa	48(%rsp), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10840
	por	64(%rsp), %xmm0
	cmpl	$2, %eax
	je	.L10840
	por	80(%rsp), %xmm0
	cmpl	$3, %eax
	je	.L10840
	por	96(%rsp), %xmm0
.L10840:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dil
	je	.L10893
	movdqu	144(%r13), %xmm0
	movl	%edi, %edx
	movl	%edi, %r9d
	andl	$-2, %edx
	shrl	%r9d
	movslq	%edx, %rdx
	orq	48(%rsp,%rdx,8), %rax
	leaq	-1(%rax), %r8
	notq	%rax
	andq	%rax, %r8
	andq	40(%rsp), %r8
	leaq	160(%r13), %rax
	sarq	$63, %r8
	cmpl	$1, %r9d
	je	.L10843
.L10850:

	movdqu	(%rax), %xmm1
	por	%xmm1, %xmm0
	cmpl	$2, %r9d
	je	.L10843
	movdqu	176(%r13), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %r9d
	je	.L10843
	movdqu	192(%r13), %xmm5
	por	%xmm5, %xmm0
.L10843:

	movdqa	%xmm0, %xmm1
	leal	(%r9,%r9), %eax
	psrldq	$8, %xmm1
	movslq	%eax, %rcx
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	cmpl	%eax, %edi
	je	.L10892
	movslq	%eax, %rsi
	orq	144(%r13,%rsi,8), %rdx
.L10892:

	movdqu	144(%r14), %xmm0
	movq	%rdx, %rsi
	subq	$1, %rdx
	notq	%rsi
	andq	%rdx, %rsi
	cmpl	$1, %r9d
	je	.L10846
	movdqu	160(%r14), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %r9d
	je	.L10846
	movdqu	176(%r14), %xmm4
	por	%xmm4, %xmm0
	cmpl	$3, %r9d
	je	.L10846
	movdqu	192(%r14), %xmm6
	por	%xmm6, %xmm0
.L10846:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	cmpl	%edi, %eax
	je	.L10847
.L10849:

	orq	144(%r14,%rcx,8), %rdx
.L10847:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	andq	%rax, %rdx
	movq	%rsi, %rax
	orq	%rdx, %rax
	andq	%rsi, %rdx
	sarq	$63, %rax
	sarq	$63, %rdx
	notq	%rax
	andq	%r8, %rax
	orq	%rdx, %rax
	andl	$1, %eax
.L10833:

	movq	440(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10894
	addq	$456, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10893:

	.cfi_restore_state
	movdqu	144(%r13), %xmm1
	movq	%rax, %r8
	movl	%edi, %r9d
	subq	$1, %rax
	notq	%r8
	shrl	%r9d
	andq	%rax, %r8
	andq	40(%rsp), %r8
	movdqa	%xmm1, %xmm0
	sarq	$63, %r8
	leaq	160(%r13), %rax
	cmpl	$1, %r9d
	jne	.L10850
	psrldq	$8, %xmm0
	movl	$2, %eax
	movl	$2, %ecx
	por	%xmm0, %xmm1
	movq	%xmm1, %rdx
	jmp	.L10892
	.p2align 4,,10
	.p2align 3
.L10852:

	movq	$-1, 40(%rsp)
	jmp	.L10834
	.p2align 4,,10
	.p2align 3
.L10854:

	movl	$1, %eax
	jmp	.L10833
.L10839:

	movq	48(%rsp), %rax
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	leaq	-1(%rax), %r8
	notq	%rax
	andq	%rax, %r8
	movq	144(%r13), %rax
	andq	40(%rsp), %r8
	sarq	$63, %r8
	leaq	-1(%rax), %rsi
	notq	%rax
	andq	%rax, %rsi
	jmp	.L10849
.L10853:

	xorl	%edx, %edx
	xorl	%ecx, %ecx
	jmp	.L10835
.L10894:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2088:

	.size	ec_GFp_simple_points_equal, .-ec_GFp_simple_points_equal
# WAS .section	.text.EC_GROUP_cmp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_GROUP_cmp
	.type	EC_GROUP_cmp, @function
.LEC_GROUP_cmp_local_target:
EC_GROUP_cmp:
.LFB1776:

	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	je	.L10899
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movl	512(%rdi), %edx
	cmpl	512(%rsi), %edx
	je	.L10897
.L10898:

	movl	$1, %eax
.L10895:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10897:

	.cfi_restore_state
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L10895
	movq	(%rsi), %rax
	cmpq	%rax, (%rdi)
	jne	.L10898
	movl	532(%rdi), %edx
	testl	%edx, %edx
	je	.L10898
	movl	532(%rsi), %eax
	testl	%eax, %eax
	je	.L10898
	leaq	256(%rsi), %rsi
	leaq	256(%rdi), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L10898
	leaq	320(%rbp), %rsi
	leaq	320(%rbx), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L10898
	movslq	328(%rbx), %rdx
	leaq	360(%rbp), %rsi
	leaq	360(%rbx), %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L10898
	movslq	328(%rbx), %rdx
	leaq	432(%rbp), %rsi
	leaq	432(%rbx), %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L10898
	leaq	16(%rbp), %rdx
	leaq	16(%rbx), %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_points_equal
	call	.Lec_GFp_simple_points_equal_local_target
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	jmp	.L10895
	.p2align 4,,10
	.p2align 3
.L10899:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE1776:

	.size	EC_GROUP_cmp, .-EC_GROUP_cmp
# WAS .section	.text.EC_POINT_copy,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_copy
	.type	EC_POINT_copy, @function
.LEC_POINT_copy_local_target:
EC_POINT_copy:
.LFB1791:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	xorl	%edx, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rsi), %rsi
	movq	(%rdi), %rdi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L10910
	cmpq	%rbx, %rbp
	je	.L10908
	movdqu	8(%rbp), %xmm0
	movups	%xmm0, 8(%rbx)
	movdqu	24(%rbp), %xmm1
	movups	%xmm1, 24(%rbx)
	movdqu	40(%rbp), %xmm2
	movups	%xmm2, 40(%rbx)
	movdqu	56(%rbp), %xmm3
	movups	%xmm3, 56(%rbx)
	movq	72(%rbp), %rdx
	movq	%rdx, 72(%rbx)
	movdqu	80(%rbp), %xmm4
	movups	%xmm4, 80(%rbx)
	movdqu	96(%rbp), %xmm5
	movups	%xmm5, 96(%rbx)
	movdqu	112(%rbp), %xmm6
	movups	%xmm6, 112(%rbx)
	movdqu	128(%rbp), %xmm7
	movups	%xmm7, 128(%rbx)
	movq	144(%rbp), %rdx
	movq	%rdx, 144(%rbx)
	movdqu	152(%rbp), %xmm0
	movups	%xmm0, 152(%rbx)
	movdqu	168(%rbp), %xmm1
	movups	%xmm1, 168(%rbx)
	movdqu	184(%rbp), %xmm2
	movups	%xmm2, 184(%rbx)
	movdqu	200(%rbp), %xmm3
	movups	%xmm3, 200(%rbx)
	movq	216(%rbp), %rdx
	movq	%rdx, 216(%rbx)
.L10908:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10910:

	.cfi_restore_state
	movl	$548, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1791:

	.size	EC_POINT_copy, .-EC_POINT_copy
# WAS .section	.text.EC_POINT_dup,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_dup
	.type	EC_POINT_dup, @function
.LEC_POINT_dup_local_target:
EC_POINT_dup:
.LFB1792:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L10912
	movq	%rsi, %rdi
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L10915
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	EC_POINT_copy@PLT
	call	.LEC_POINT_copy_local_target
	testl	%eax, %eax
	je	.L10915
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10915:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
.L10912:

	xorl	%ebx, %ebx
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1792:

	.size	EC_POINT_dup, .-EC_POINT_dup
# WAS .section	.text.EC_POINT_set_to_infinity,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_set_to_infinity
	.type	EC_POINT_set_to_infinity, @function
.LEC_POINT_set_to_infinity_local_target:
EC_POINT_set_to_infinity:
.LFB1793:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
	movq	(%rsi), %rsi
	xorl	%edx, %edx
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L10927
	pxor	%xmm0, %xmm0
	movl	$1, %eax
	movq	$0, 72(%rbx)
	movq	$0, 144(%rbx)
	movq	$0, 216(%rbx)
	movups	%xmm0, 8(%rbx)
	movups	%xmm0, 24(%rbx)
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 56(%rbx)
	movups	%xmm0, 80(%rbx)
	movups	%xmm0, 96(%rbx)
	movups	%xmm0, 112(%rbx)
	movups	%xmm0, 128(%rbx)
	movups	%xmm0, 152(%rbx)
	movups	%xmm0, 168(%rbx)
	movups	%xmm0, 184(%rbx)
	movups	%xmm0, 200(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10927:

	.cfi_restore_state
	movl	$575, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1793:

	.size	EC_POINT_set_to_infinity, .-EC_POINT_set_to_infinity
# WAS .section	.text.EC_POINT_is_at_infinity,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_is_at_infinity
	.type	EC_POINT_is_at_infinity, @function
.LEC_POINT_is_at_infinity_local_target:
EC_POINT_is_at_infinity:
.LFB1794:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%edx, %edx
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rsi), %rsi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L10929
	movl	328(%rbp), %ecx
	testl	%ecx, %ecx
	jle	.L10958
	cmpl	$1, %ecx
	je	.L10937
	movl	%ecx, %eax
	movdqu	152(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L10934
	movdqu	168(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L10934
	movdqu	184(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L10934
	movdqu	200(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L10934
	movdqu	216(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L10934
	xorl	%edx, %edx
.L10935:

	movq	%rdx, %rsi
	addq	$1, %rdx
	salq	$4, %rsi
	movdqu	232(%rbx,%rsi), %xmm1
	leal	5(%rdx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L10935
	.p2align 4,,10
	.p2align 3
.L10934:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L10936
	movl	%ecx, %eax
	andl	$-2, %eax
.L10933:

	cltq
	orq	152(%rbx,%rax,8), %rdx
.L10936:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	testq	%rdx, %rax
	sets	%al
	movzbl	%al, %eax
.L10928:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10929:

	.cfi_restore_state
	movl	$584, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10958:

	.cfi_restore_state
	movl	$1, %eax
	jmp	.L10928
.L10937:

	xorl	%edx, %edx
	jmp	.L10933
	.cfi_endproc
.LFE1794:

	.size	EC_POINT_is_at_infinity, .-EC_POINT_is_at_infinity
# WAS .section	.text.EC_POINT_is_on_curve,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_is_on_curve
	.type	EC_POINT_is_on_curve, @function
.LEC_POINT_is_on_curve_local_target:
EC_POINT_is_on_curve:
.LFB1795:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%edx, %edx
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rsi), %rsi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L10963
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	leaq	8(%rbx), %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	ec_GFp_simple_is_on_curve
	jmp	.Lec_GFp_simple_is_on_curve_local_target
	.p2align 4,,10
	.p2align 3
.L10963:

	.cfi_restore_state
	movl	$593, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1795:

	.size	EC_POINT_is_on_curve, .-EC_POINT_is_on_curve
# WAS .section	.text.EC_POINT_get_affine_coordinates_GFp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_get_affine_coordinates_GFp
	.type	EC_POINT_get_affine_coordinates_GFp, @function
.LEC_POINT_get_affine_coordinates_GFp_local_target:
EC_POINT_get_affine_coordinates_GFp:
.LFB1797:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$256, %rsp
	.cfi_def_cfa_offset 304
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	movq	(%rdi), %rax
	cmpq	$0, (%rax)
	je	.L10990
	movq	%rsi, %rbp
	movq	(%rsi), %rsi
	movq	%rdx, %r13
	xorl	%edx, %edx
	movq	%rdi, %rbx
	movq	%rcx, %r12
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L10991
	movq	(%rbx), %rax
	xorl	%edx, %edx
	leaq	96(%rsp), %rcx
	testq	%r12, %r12
	cmove	%rdx, %rcx
	movq	(%rax), %rax
	testq	%r13, %r13
	je	.L10992
	leaq	16(%rsp), %r14
	leaq	8(%rbp), %rsi
	movq	%rbx, %rdi
	movq	%r14, %rdx
	call	*%rax
	testl	%eax, %eax
	je	.L10967
	movq	(%rbx), %rax
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	movq	%r14, %rcx
	leaq	176(%rsp), %rbp
	movq	%rbp, %rsi
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L10967
	movl	$1, %eax
	testq	%r12, %r12
	je	.L10965
.L10994:

	movq	(%rbx), %rax
	leaq	96(%rsp), %rcx
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
	leaq	176(%rsp), %rbp
	movq	%rbp, %rsi
	call	*104(%rax)
	movq	8(%rsp), %rsi
	movq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	setne	%al
	movzbl	%al, %eax
.L10965:

	movq	248(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L10993
	addq	$256, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L10990:

	.cfi_restore_state
	movl	$615, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L10967:

	xorl	%eax, %eax
	jmp	.L10965
	.p2align 4,,10
	.p2align 3
.L10992:

	xorl	%edx, %edx
	leaq	8(%rbp), %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L10967
	movl	$1, %eax
	testq	%r12, %r12
	jne	.L10994
	jmp	.L10965
	.p2align 4,,10
	.p2align 3
.L10991:

	movl	$619, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L10965
.L10993:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1797:

	.size	EC_POINT_get_affine_coordinates_GFp, .-EC_POINT_get_affine_coordinates_GFp
# WAS .section	.text.EC_POINT_get_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_get_affine_coordinates
	.type	EC_POINT_get_affine_coordinates, @function
.LEC_POINT_get_affine_coordinates_local_target:
EC_POINT_get_affine_coordinates:
.LFB1798:

	.cfi_startproc
	endbr64
# WAS jmp	EC_POINT_get_affine_coordinates_GFp@PLT
	jmp	.LEC_POINT_get_affine_coordinates_GFp_local_target
	.cfi_endproc
.LFE1798:

	.size	EC_POINT_get_affine_coordinates, .-EC_POINT_get_affine_coordinates
# WAS .section	.text.EC_POINT_set_affine_coordinates_GFp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_set_affine_coordinates_GFp
	.type	EC_POINT_set_affine_coordinates_GFp, @function
.LEC_POINT_set_affine_coordinates_GFp_local_target:
EC_POINT_set_affine_coordinates_GFp:
.LFB1803:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	xorl	%edx, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$320, %rsp
	.cfi_def_cfa_offset 368
	movq	(%rsi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	xorl	%eax, %eax
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11018
	testq	%r12, %r12
	je	.L11008
	testq	%r13, %r13
	je	.L11008
	movq	%rsp, %r14
	movq	%r12, %rdx
	movq	%rbp, %rdi
	movq	%r14, %rsi
# WAS call	ec_bignum_to_felem
	call	.Lec_bignum_to_felem_local_target
	testl	%eax, %eax
	je	.L11005
	leaq	80(%rsp), %r12
	movq	%r13, %rdx
	movq	%rbp, %rdi
	movq	%r12, %rsi
# WAS call	ec_bignum_to_felem
	call	.Lec_bignum_to_felem_local_target
	testl	%eax, %eax
	jne	.L11019
.L11005:

	movl	532(%rbp), %eax
	testl	%eax, %eax
	je	.L11020
	movdqu	16(%rbp), %xmm1
	movups	%xmm1, 8(%rbx)
	movdqu	32(%rbp), %xmm2
	movups	%xmm2, 24(%rbx)
	movdqu	48(%rbp), %xmm3
	movups	%xmm3, 40(%rbx)
	movdqu	64(%rbp), %xmm4
	movups	%xmm4, 56(%rbx)
	movq	80(%rbp), %rdx
	movq	%rdx, 72(%rbx)
	movdqu	88(%rbp), %xmm5
	movups	%xmm5, 80(%rbx)
	movdqu	104(%rbp), %xmm6
	movups	%xmm6, 96(%rbx)
	movdqu	120(%rbp), %xmm7
	movups	%xmm7, 112(%rbx)
	movdqu	136(%rbp), %xmm1
	movups	%xmm1, 128(%rbx)
	movq	152(%rbp), %rdx
	movq	%rdx, 144(%rbx)
	movdqu	160(%rbp), %xmm2
	movups	%xmm2, 152(%rbx)
	movdqu	176(%rbp), %xmm3
	movups	%xmm3, 168(%rbx)
	movdqu	192(%rbp), %xmm4
	movups	%xmm4, 184(%rbx)
	movdqu	208(%rbp), %xmm5
	movups	%xmm5, 200(%rbx)
	movq	224(%rbp), %rdx
	movq	%rdx, 216(%rbx)
.L10998:

	xorl	%eax, %eax
.L10996:

	movq	312(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11021
	addq	$320, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11008:

	.cfi_restore_state
	movl	$702, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10998
	.p2align 4,,10
	.p2align 3
.L11020:

	pxor	%xmm0, %xmm0
	movq	$0, 72(%rbx)
	movq	$0, 144(%rbx)
	movq	$0, 216(%rbx)
	movups	%xmm0, 8(%rbx)
	movups	%xmm0, 24(%rbx)
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 56(%rbx)
	movups	%xmm0, 80(%rbx)
	movups	%xmm0, 96(%rbx)
	movups	%xmm0, 112(%rbx)
	movups	%xmm0, 128(%rbx)
	movups	%xmm0, 152(%rbx)
	movups	%xmm0, 168(%rbx)
	movups	%xmm0, 184(%rbx)
	movups	%xmm0, 200(%rbx)
	jmp	.L10998
	.p2align 4,,10
	.p2align 3
.L11018:

	movl	$697, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L10998
	.p2align 4,,10
	.p2align 3
.L11019:

	leaq	160(%rsp), %rsi
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rbp, %rdi
# WAS call	ec_point_set_affine_coordinates
	call	.Lec_point_set_affine_coordinates_local_target
	testl	%eax, %eax
	je	.L11005
	movdqa	160(%rsp), %xmm6
	movdqa	176(%rsp), %xmm7
	movq	224(%rsp), %rax
	movdqu	232(%rsp), %xmm1
	movdqu	248(%rsp), %xmm2
	movups	%xmm6, 8(%rbx)
	movdqu	264(%rsp), %xmm3
	movdqa	192(%rsp), %xmm6
	movq	%rax, 72(%rbx)
	movups	%xmm7, 24(%rbx)
	movq	296(%rsp), %rax
	movdqa	208(%rsp), %xmm7
	movdqu	280(%rsp), %xmm4
	movups	%xmm6, 40(%rbx)
	movq	%rax, 144(%rbx)
	movups	%xmm7, 56(%rbx)
	movups	%xmm1, 80(%rbx)
	movups	%xmm2, 96(%rbx)
	movups	%xmm3, 112(%rbx)
	movups	%xmm4, 128(%rbx)
	movdqu	160(%rbp), %xmm5
	movups	%xmm5, 152(%rbx)
	movdqu	176(%rbp), %xmm6
	movups	%xmm6, 168(%rbx)
	movdqu	192(%rbp), %xmm7
	movups	%xmm7, 184(%rbx)
	movdqu	208(%rbp), %xmm1
	movups	%xmm1, 200(%rbx)
	movq	224(%rbp), %rax
	movq	%rax, 216(%rbx)
	movl	$1, %eax
	jmp	.L10996
.L11021:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1803:

	.size	EC_POINT_set_affine_coordinates_GFp, .-EC_POINT_set_affine_coordinates_GFp
# WAS .section	.text.EC_POINT_set_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_set_affine_coordinates
	.type	EC_POINT_set_affine_coordinates, @function
.LEC_POINT_set_affine_coordinates_local_target:
EC_POINT_set_affine_coordinates:
.LFB1804:

	.cfi_startproc
	endbr64
# WAS jmp	EC_POINT_set_affine_coordinates_GFp@PLT
	jmp	.LEC_POINT_set_affine_coordinates_GFp_local_target
	.cfi_endproc
.LFE1804:

	.size	EC_POINT_set_affine_coordinates, .-EC_POINT_set_affine_coordinates
# WAS .section	.text.EC_POINT_add,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_add
	.type	EC_POINT_add, @function
.LEC_POINT_add_local_target:
EC_POINT_add:
.LFB1805:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	xorl	%edx, %edx
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rsi), %rsi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11026
	movq	0(%r13), %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	je	.L11028
.L11026:

	movl	$732, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11028:

	.cfi_restore_state
	movq	(%r12), %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11026
	movq	(%rbx), %rax
	leaq	8(%r12), %rcx
	leaq	8(%r13), %rdx
	movq	%rbx, %rdi
	leaq	8(%rbp), %rsi
	call	*16(%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1805:

	.size	EC_POINT_add, .-EC_POINT_add
# WAS .section	.text.EC_POINT_dbl,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_dbl
	.type	EC_POINT_dbl, @function
.LEC_POINT_dbl_local_target:
EC_POINT_dbl:
.LFB1806:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	xorl	%edx, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rsi), %rsi
	movq	%rdi, %rbx
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11032
	movq	(%r12), %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11032
	movq	(%rbx), %rax
	leaq	8(%r12), %rdx
	leaq	8(%rbp), %rsi
	movq	%rbx, %rdi
	call	*24(%rax)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11032:

	.cfi_restore_state
	movl	$743, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1806:

	.size	EC_POINT_dbl, .-EC_POINT_dbl
# WAS .section	.text.EC_POINT_invert,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_invert
	.type	EC_POINT_invert, @function
.LEC_POINT_invert_local_target:
EC_POINT_invert:
.LFB1807:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%edx, %edx
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rsi), %rsi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11035
	movslq	328(%rbp), %rcx
	movl	%eax, %esi
	testl	%ecx, %ecx
	jle	.L11092
	cmpl	$1, %ecx
	je	.L11050
	movl	%ecx, %eax
	movdqu	80(%rbx), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L11040
	movdqu	96(%rbx), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L11040
	movdqu	112(%rbx), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L11040
	movdqu	128(%rbx), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L11040
	movdqu	144(%rbx), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L11040
	xorl	%edx, %edx
.L11041:

	movq	%rdx, %rdi
	addq	$1, %rdx
	salq	$4, %rdi
	movdqu	160(%rbx,%rdi), %xmm1
	leal	5(%rdx), %edi
	por	%xmm1, %xmm0
	cmpl	%eax, %edi
	jb	.L11041
	.p2align 4,,10
	.p2align 3
.L11040:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L11091
	movl	%ecx, %eax
	andl	$-2, %eax
.L11039:

	cltq
	orq	80(%rbx,%rax,8), %rdx
.L11091:

	movq	%rdx, %rax
	subq	$1, %rdx
	movq	320(%rbp), %rdi
	notq	%rax
	andq	%rdx, %rax
	leaq	80(%rbx), %rdx
	sarq	$63, %rax
	notq	%rax
.L11043:

	xorl	%r8d, %r8d
#APP
# 225 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/crypto/fipsmodule/bn/asm/x86_64-gcc.c" 1
		subq	%r9,%r9		
	jmp	1f		
.p2align 4			
1:
	movq	(%rdi,%r8,8),%r9	
	sbbq	(%rdx,%r8,8),%r9	
	movq	%r9,(%rdx,%r8,8)	
	lea	1(%r8),%r8	
	dec	%rcx		
	jnz	1b		
	sbbq	%r9,%r9		

# 0 "" 2
#NO_APP
	movl	328(%rbp), %ecx
	testl	%ecx, %ecx
	jle	.L11045
	cmpl	$1, %ecx
	je	.L11046
	movdqu	(%rdx), %xmm1
	movq	%rax, %xmm0
	movl	%ecx, %esi
	punpcklqdq	%xmm0, %xmm0
	shrl	%esi
	pand	%xmm0, %xmm1
	movups	%xmm1, (%rdx)
	cmpl	$1, %esi
	je	.L11047
	movdqu	16(%rdx), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 16(%rdx)
	cmpl	$2, %esi
	je	.L11047
	movdqu	32(%rdx), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 32(%rdx)
	cmpl	$3, %esi
	je	.L11047
	movdqu	48(%rdx), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 48(%rdx)
	cmpl	$4, %esi
	je	.L11047
	movdqu	64(%rdx), %xmm1
	pand	%xmm0, %xmm1
	movups	%xmm1, 64(%rdx)
	cmpl	$5, %esi
	je	.L11047
	leaq	160(%rbx), %rdx
	movl	$5, %edi
.L11048:

	movdqu	(%rdx), %xmm1
	addl	$1, %edi
	addq	$16, %rdx
	pand	%xmm0, %xmm1
	movups	%xmm1, -16(%rdx)
	cmpl	%edi, %esi
	jne	.L11048
	.p2align 4,,10
	.p2align 3
.L11047:

	testb	$1, %cl
	je	.L11045
	movl	%ecx, %esi
	andl	$-2, %esi
.L11046:

	movslq	%esi, %rdx
	andq	%rax, 80(%rbx,%rdx,8)
.L11045:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11035:

	.cfi_restore_state
	movl	$753, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11092:

	.cfi_restore_state
	testq	%rcx, %rcx
	je	.L11045
	movq	320(%rbp), %rdi
	leaq	80(%rbx), %rdx
	xorl	%eax, %eax
	jmp	.L11043
	.p2align 4,,10
	.p2align 3
.L11050:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L11039
	.cfi_endproc
.LFE1807:

	.size	EC_POINT_invert, .-EC_POINT_invert
# WAS .section	.text.ec_point_mul_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ec_point_mul_no_self_test
	.hidden	ec_point_mul_no_self_test
	.type	ec_point_mul_no_self_test, @function
.Lec_point_mul_no_self_test_local_target:
ec_point_mul_no_self_test:
.LFB1809:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	movq	%r8, %rdi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$344, %rsp
	.cfi_def_cfa_offset 400
	movq	%fs:40, %rax
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	testq	%r8, %r8
	sete	%al
	orq	%rdx, %rdi
	je	.L11094
	testq	%rcx, %rcx
	movq	%rdx, %rbx
	movq	%rcx, %rbp
	sete	%dl
	cmpb	%dl, %al
	je	.L11095
.L11094:

	movl	$786, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11096:

	xorl	%r13d, %r13d
.L11093:

	movq	328(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L11138
	addq	$344, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11095:

	.cfi_restore_state
	movq	%rsi, %r14
	movq	(%rsi), %rsi
	xorl	%edx, %edx
	movq	%r15, %rdi
	movq	%r8, (%rsp)
	movq	%r9, %r12
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	movq	(%rsp), %r8
	testl	%eax, %eax
	movl	%eax, %r13d
	jne	.L11100
	testq	%rbp, %rbp
	je	.L11099
	movq	0(%rbp), %rsi
	xorl	%edx, %edx
	movq	%r15, %rdi
	movq	%r8, (%rsp)
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	movq	(%rsp), %r8
	testl	%eax, %eax
	jne	.L11100
.L11099:

	movq	$0, (%rsp)
	testq	%r12, %r12
	je	.L11139
.L11101:

	testq	%rbx, %rbx
	je	.L11103
	leaq	112(%rsp), %rax
	movq	%rbx, %rdx
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
	movq	%rax, %rsi
	movq	%rax, 16(%rsp)
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L11140
.L11104:

	movq	(%r15), %rax
	leaq	8(%r14), %rsi
	movq	%r8, 24(%rsp)
	movq	%r15, %rdi
	movq	%rsi, 8(%rsp)
	movq	16(%rsp), %rdx
	call	*40(%rax)
	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	movq	24(%rsp), %r8
	testl	%eax, %eax
	jne	.L11103
	movl	$919, %r8d
.L11136:

	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	.p2align 4,,10
	.p2align 3
.L11102:

	movq	(%rsp), %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L11093
	.p2align 4,,10
	.p2align 3
.L11103:

	testq	%r8, %r8
	je	.L11121
	leaq	32(%rsp), %rsi
	movq	%r8, %rdx
	movq	%r15, %rdi
	movq	%r8, 16(%rsp)
	movq	%rsi, 8(%rsp)
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	testl	%eax, %eax
	je	.L11141
.L11112:

	movq	(%r15), %rax
	leaq	112(%rsp), %r12
	movq	%r15, %rdi
	movq	8(%rsp), %rcx
	movq	%r12, %rsi
	leaq	8(%rbp), %rdx
	call	*32(%rax)
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	testl	%eax, %eax
	je	.L11117
	testq	%rbx, %rbx
	je	.L11142
	movq	(%r15), %rax
	leaq	8(%r14), %rsi
	movq	%r12, %rcx
	movq	%r15, %rdi
	movq	%rsi, %rdx
	call	*16(%rax)
.L11121:

	movl	$1, %r13d
	jmp	.L11102
	.p2align 4,,10
	.p2align 3
.L11100:

	movl	$792, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11096
	.p2align 4,,10
	.p2align 3
.L11140:

	movq	%r8, 24(%rsp)
# WAS call	ERR_clear_error@PLT
	call	.Lbcm_redirector_ERR_clear_error
	movq	%r12, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	movq	%rax, 8(%rsp)
	je	.L11114
	movq	%r15, %rdi
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	8(%rsp), %rdi
	movq	%r12, %rcx
	movq	%rbx, %rsi
	movq	%rax, %rdx
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	movq	8(%rsp), %r9
	movq	24(%rsp), %r8
	testl	%eax, %eax
	jne	.L11143
.L11114:

	movq	%r12, %rdi
.L11137:

# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L11102
	.p2align 4,,10
	.p2align 3
.L11141:

# WAS call	ERR_clear_error@PLT
	call	.Lbcm_redirector_ERR_clear_error
	movq	%r12, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	movq	%rax, 24(%rsp)
	je	.L11114
	movq	%r15, %rdi
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	24(%rsp), %r9
	movq	16(%rsp), %rsi
	movq	%r12, %rcx
	movq	%rax, %rdx
	movq	%r9, %rdi
	movq	%r9, 16(%rsp)
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	movq	16(%rsp), %r9
	testl	%eax, %eax
	je	.L11114
	movq	8(%rsp), %rsi
	movq	%r15, %rdi
	movq	%r9, %rdx
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	movq	%r12, %rdi
	testl	%eax, %eax
	je	.L11137
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L11112
	.p2align 4,,10
	.p2align 3
.L11139:

	movq	%r8, 8(%rsp)
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L11102
	movq	%rax, (%rsp)
	movq	8(%rsp), %r8
	jmp	.L11101
.L11143:

	movq	16(%rsp), %rsi
	movq	%r9, %rdx
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
# WAS call	ec_bignum_to_scalar@PLT
	call	.Lec_bignum_to_scalar_local_target
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L11114
	movq	%r12, %rdi
	movq	%r8, 8(%rsp)
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	8(%rsp), %r8
	jmp	.L11104
.L11117:

	movl	$896, %r8d
	jmp	.L11136
.L11142:

	leaq	8(%r14), %rdi
	movl	$216, %edx
	movq	%r12, %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	jmp	.L11121
.L11138:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1809:

	.size	ec_point_mul_no_self_test, .-ec_point_mul_no_self_test
# WAS .section	.text.EC_POINT_mul,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_mul
	.type	EC_POINT_mul, @function
.LEC_POINT_mul_local_target:
EC_POINT_mul:
.LFB1810:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	%r15, %r9
	movq	%r14, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	ec_point_mul_no_self_test
	jmp	.Lec_point_mul_no_self_test_local_target
	.cfi_endproc
.LFE1810:

	.size	EC_POINT_mul, .-EC_POINT_mul
# WAS .section	.text.EC_KEY_set_group,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_group
	.type	EC_KEY_set_group, @function
.LEC_KEY_set_group_local_target:
EC_KEY_set_group:
.LFB1843:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L11147
	xorl	%edx, %edx
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jne	.L11152
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11152:

	.cfi_restore_state
	movl	$212, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$130, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11147:

	.cfi_restore_state
	xorl	%edi, %edi
	movq	%rsi, 8(%rsp)
# WAS call	EC_GROUP_free@PLT
	call	.LEC_GROUP_free_local_target
	movq	8(%rsp), %rdi
# WAS call	EC_GROUP_dup@PLT
	call	.LEC_GROUP_dup_local_target
	testq	%rax, %rax
	movq	%rax, (%rbx)
	setne	%al
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1843:

	.size	EC_KEY_set_group, .-EC_KEY_set_group
# WAS .section	.text.EC_KEY_set_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_public_key
	.type	EC_KEY_set_public_key, @function
.LEC_KEY_set_public_key_local_target:
EC_KEY_set_public_key:
.LFB1847:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L11165
	movq	%rsi, %rbp
	testq	%rsi, %rsi
	je	.L11156
	movq	(%rsi), %rsi
	xorl	%edx, %edx
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11166
.L11156:

	movq	8(%rbx), %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	(%rbx), %rsi
	movq	%rbp, %rdi
# WAS call	EC_POINT_dup@PLT
	call	.LEC_POINT_dup_local_target
	testq	%rax, %rax
	movq	%rax, 8(%rbx)
	setne	%al
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11166:

	.cfi_restore_state
	movl	$262, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$130, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L11167:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11165:

	.cfi_restore_state
	movl	$257, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11167
	.cfi_endproc
.LFE1847:

	.size	EC_KEY_set_public_key, .-EC_KEY_set_public_key
# WAS .section	.text.EC_KEY_dup,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_dup
	.type	EC_KEY_dup, @function
.LEC_KEY_dup_local_target:
EC_KEY_dup:
.LFB1839:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L11187
	movq	%rdi, %rbx
# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L11170
	movq	(%rbx), %rsi
	testq	%rsi, %rsi
	je	.L11176
	movq	%rax, %rdi
# WAS call	EC_KEY_set_group@PLT
	call	.LEC_KEY_set_group_local_target
	testl	%eax, %eax
	je	.L11179
.L11176:

	movq	8(%rbx), %rsi
	testq	%rsi, %rsi
	je	.L11175
	movq	%rbp, %rdi
# WAS call	EC_KEY_set_public_key@PLT
	call	.LEC_KEY_set_public_key_local_target
	testl	%eax, %eax
	je	.L11179
.L11175:

	cmpq	$0, 16(%rbx)
	je	.L11178
	movq	%rbx, %rdi
# WAS call	EC_KEY_get0_private_key@PLT
	call	.LEC_KEY_get0_private_key_local_target
	movq	%rbp, %rdi
	movq	%rax, %rsi
# WAS call	EC_KEY_set_private_key@PLT
	call	.LEC_KEY_set_private_key_local_target
	testl	%eax, %eax
	je	.L11179
.L11178:

	movq	24(%rbx), %rax
	movq	%rax, 24(%rbp)
.L11168:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11179:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
.L11170:

	xorl	%ebp, %ebp
	jmp	.L11168
	.p2align 4,,10
	.p2align 3
.L11187:

	movl	$173, %r8d
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	leaq	.LC268(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11168
	.cfi_endproc
.LFE1839:

	.size	EC_KEY_dup, .-EC_KEY_dup
# WAS .section	.text.EC_POINT_point2oct,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_point2oct
	.type	EC_POINT_point2oct, @function
.LEC_POINT_point2oct_local_target:
EC_POINT_point2oct:
.LFB1915:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movl	%edx, %ebp
	xorl	%edx, %edx
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$160, %rsp
	.cfi_def_cfa_offset 208
	movq	(%rsi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11225
	testq	%r12, %r12
	je	.L11226
	leaq	8(%r14), %rdx
	movq	%rsp, %r14
	movq	%rbx, %rdi
	movq	%r14, %rsi
# WAS call	ec_jacobian_to_affine@PLT
	call	.Lec_jacobian_to_affine_local_target
	testl	%eax, %eax
	jne	.L11227
	xorl	%eax, %eax
	jmp	.L11188
	.p2align 4,,10
	.p2align 3
.L11226:

	movl	328(%rbx), %ecx
	testl	%ecx, %ecx
	jle	.L11192
	cmpl	$1, %ecx
	je	.L11201
	movdqu	152(%r14), %xmm0
	movl	%ecx, %eax
	shrl	%eax
	cmpl	$1, %eax
	je	.L11194
	movdqu	168(%r14), %xmm2
	por	%xmm2, %xmm0
	cmpl	$2, %eax
	je	.L11194
	movdqu	184(%r14), %xmm3
	por	%xmm3, %xmm0
	cmpl	$3, %eax
	je	.L11194
	movdqu	200(%r14), %xmm4
	por	%xmm4, %xmm0
	cmpl	$4, %eax
	je	.L11194
	movdqu	216(%r14), %xmm5
	por	%xmm5, %xmm0
	cmpl	$5, %eax
	je	.L11194
	xorl	%edx, %edx
.L11195:

	movq	%rdx, %rsi
	addq	$1, %rdx
	salq	$4, %rsi
	movdqu	232(%r14,%rsi), %xmm1
	leal	5(%rdx), %esi
	por	%xmm1, %xmm0
	cmpl	%eax, %esi
	jb	.L11195
	.p2align 4,,10
	.p2align 3
.L11194:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	testb	$1, %cl
	je	.L11196
	movl	%ecx, %eax
	andl	$-2, %eax
.L11193:

	cltq
	orq	152(%r14,%rax,8), %rdx
.L11196:

	movq	%rdx, %rax
	subq	$1, %rdx
	notq	%rax
	testq	%rdx, %rax
	js	.L11192
	leal	-2(%rbp), %eax
	andl	$-3, %eax
	jne	.L11228
	leaq	320(%rbx), %rdi
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %edx
	leaq	1(%rdx), %rax
	addq	%rax, %rdx
	cmpl	$4, %ebp
	cmove	%rdx, %rax
	jmp	.L11188
	.p2align 4,,10
	.p2align 3
.L11227:

	movq	%r13, %r8
	movq	%r12, %rcx
	movl	%ebp, %edx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	ec_point_to_bytes
	call	.Lec_point_to_bytes_local_target
.L11188:

	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11229
	addq	$160, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11225:

	.cfi_restore_state
	movl	$215, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11188
	.p2align 4,,10
	.p2align 3
.L11228:

	movl	$79, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11188
	.p2align 4,,10
	.p2align 3
.L11192:

	movl	$222, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11188
.L11201:

	xorl	%edx, %edx
	jmp	.L11193
.L11229:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1915:

	.size	EC_POINT_point2oct, .-EC_POINT_point2oct
# WAS .section	.text.EC_KEY_key2buf,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_key2buf
	.type	EC_KEY_key2buf, @function
.LEC_KEY_key2buf_local_target:
EC_KEY_key2buf:
.LFB1856:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rdi, %rdi
	je	.L11235
	movl	%esi, %r14d
	movq	8(%rdi), %rsi
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	je	.L11235
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L11235
	movq	%rcx, %r9
	movq	%rdx, %r13
	movq	%rcx, %r12
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	movl	%r14d, %edx
# WAS call	EC_POINT_point2oct@PLT
	call	.LEC_POINT_point2oct_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L11235
	movq	%rax, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L11235
	movq	8(%rbx), %rsi
	movq	(%rbx), %rdi
	movq	%r12, %r9
	movq	%rbp, %r8
	movq	%rax, %rcx
	movl	%r14d, %edx
# WAS call	EC_POINT_point2oct@PLT
	call	.LEC_POINT_point2oct_local_target
	cmpq	%rbp, %rax
	jne	.L11249
	movq	%r15, 0(%r13)
	jmp	.L11230
	.p2align 4,,10
	.p2align 3
.L11249:

	movq	%r15, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L11235:

	xorl	%ebp, %ebp
.L11230:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1856:

	.size	EC_KEY_key2buf, .-EC_KEY_key2buf
# WAS .section	.text.EC_POINT_cmp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_cmp
	.type	EC_POINT_cmp, @function
.LEC_POINT_cmp_local_target:
EC_POINT_cmp:
.LFB1796:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	xorl	%edx, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rsi), %rsi
	movq	%rdi, %rbx
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L11253
	movq	(%r12), %rsi
	xorl	%edx, %edx
	movq	%rbx, %rdi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	je	.L11255
.L11253:

	movl	$603, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$-1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11255:

	.cfi_restore_state
	leaq	8(%r12), %rdx
	leaq	8(%rbp), %rsi
	movq	%rbx, %rdi
# WAS call	ec_GFp_simple_points_equal
	call	.Lec_GFp_simple_points_equal_local_target
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	testl	%eax, %eax
	popq	%r12
	.cfi_def_cfa_offset 8
	sete	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE1796:

	.size	EC_POINT_cmp, .-EC_POINT_cmp
# WAS .section	.text.EC_KEY_check_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_check_key
	.type	EC_KEY_check_key, @function
.LEC_KEY_check_key_local_target:
EC_KEY_check_key:
.LFB1852:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$224, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L11257
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L11257
	movq	8(%rbx), %rsi
	testq	%rsi, %rsi
	je	.L11257
# WAS call	EC_POINT_is_at_infinity@PLT
	call	.LEC_POINT_is_at_infinity_local_target
	testl	%eax, %eax
	jne	.L11279
	movq	8(%rbx), %rsi
	movq	(%rbx), %rdi
	xorl	%edx, %edx
# WAS call	EC_POINT_is_on_curve@PLT
	call	.LEC_POINT_is_on_curve_local_target
	testl	%eax, %eax
	je	.L11280
	movq	16(%rbx), %rdx
	testq	%rdx, %rdx
	je	.L11263
	movq	(%rbx), %rbp
	movq	%rsp, %r12
	addq	$24, %rdx
	movq	%r12, %rsi
	movq	0(%rbp), %rax
	movq	%rbp, %rdi
	call	*40(%rax)
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	testl	%eax, %eax
	je	.L11264
	movq	8(%rbx), %rax
	movq	(%rbx), %rdi
	movq	%r12, %rsi
	leaq	8(%rax), %rdx
# WAS call	ec_GFp_simple_points_equal
	call	.Lec_GFp_simple_points_equal_local_target
	testl	%eax, %eax
	je	.L11281
.L11263:

	movl	$1, %eax
	jmp	.L11256
	.p2align 4,,10
	.p2align 3
.L11257:

	movl	$287, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11259:

	xorl	%eax, %eax
.L11256:

	movq	216(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11282
	addq	$224, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11279:

	.cfi_restore_state
	movl	$292, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11259
	.p2align 4,,10
	.p2align 3
.L11280:

	movl	$298, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11259
	.p2align 4,,10
	.p2align 3
.L11264:

	xorl	%esi, %esi
	movl	$919, %r8d
	movl	$68, %edx
	movl	$15, %edi
	leaq	.LC259(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	$310, %r8d
	leaq	.LC268(%rip), %rcx
	xorl	%esi, %esi
	movl	$15, %edx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11259
	.p2align 4,,10
	.p2align 3
.L11281:

	movl	$317, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$113, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11259
.L11282:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1852:

	.size	EC_KEY_check_key, .-EC_KEY_check_key
# WAS .section	.text.EC_KEY_set_public_key_affine_coordinates,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_set_public_key_affine_coordinates
	.type	EC_KEY_set_public_key_affine_coordinates, @function
.LEC_KEY_set_public_key_affine_coordinates_local_target:
EC_KEY_set_public_key_affine_coordinates:
.LFB1855:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L11284
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L11284
	movq	%rsi, %rbp
	testq	%rsi, %rsi
	je	.L11284
	movq	%rdx, %r12
	testq	%rdx, %rdx
	je	.L11284
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L11290
	movq	(%rbx), %rdi
	xorl	%r8d, %r8d
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rax, %rsi
# WAS call	EC_POINT_set_affine_coordinates_GFp@PLT
	call	.LEC_POINT_set_affine_coordinates_GFp_local_target
	testl	%eax, %eax
	jne	.L11304
.L11290:

	xorl	%ebx, %ebx
.L11289:

	movq	%r13, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11284:

	.cfi_restore_state
	movl	$431, %r8d
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC268(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11304:

	.cfi_restore_state
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	EC_KEY_set_public_key@PLT
	call	.LEC_KEY_set_public_key_local_target
	testl	%eax, %eax
	je	.L11290
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EC_KEY_check_key@PLT
	call	.LEC_KEY_check_key_local_target
	testl	%eax, %eax
	setne	%bl
	jmp	.L11289
	.cfi_endproc
.LFE1855:

	.size	EC_KEY_set_public_key_affine_coordinates, .-EC_KEY_set_public_key_affine_coordinates
# WAS .section	.text.ec_affine_jacobian_equal,"ax",@progbits
.text
	.p2align 4
	.globl	ec_affine_jacobian_equal
	.hidden	ec_affine_jacobian_equal
	.type	ec_affine_jacobian_equal, @function
.Lec_affine_jacobian_equal_local_target:
ec_affine_jacobian_equal:
.LFB2089:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	144(%rdx), %rbx
	movq	%rbx, %rdx
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	movq	(%rdi), %rax
	leaq	112(%rsp), %r13
	movq	%rbx, 8(%rsp)
	leaq	32(%rsp), %rbx
	movq	%r13, %rsi
	movq	88(%rax), %r12
	call	*96(%rax)
	movq	%r13, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	call	*%r12
	movq	320(%r15), %rcx
	movq	%r14, %rdx
	movq	%rbx, %rsi
	leaq	192(%rsp), %rax
	movslq	328(%r15), %r9
	movq	%rbx, %rdi
	movq	%rax, %r8
	movq	%rax, 16(%rsp)
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	328(%r15), %edx
	testl	%edx, %edx
	jle	.L11320
	cmpl	$1, %edx
	je	.L11321
	movl	%edx, %eax
	movdqa	32(%rsp), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L11308
	por	48(%rsp), %xmm0
	cmpl	$2, %eax
	je	.L11308
	por	64(%rsp), %xmm0
	cmpl	$3, %eax
	je	.L11308
	por	80(%rsp), %xmm0
.L11308:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dl
	je	.L11309
	andl	$-2, %edx
.L11307:

	movslq	%edx, %rdx
	orq	32(%rsp,%rdx,8), %rax
.L11309:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
	movq	%rdx, 24(%rsp)
.L11306:

	leaq	72(%rbp), %rdx
	movq	%r13, %rcx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	call	*%r12
	movq	8(%rsp), %rcx
	movq	%rbx, %rdx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	call	*%r12
	movq	320(%r15), %rcx
	movq	%rbx, %rdi
	movq	%rbx, %rsi
	movslq	328(%r15), %r9
	movq	16(%rsp), %r8
	leaq	72(%r14), %rdx
# WAS call	bn_mod_sub_words
	call	.Lbn_mod_sub_words_local_target
	movl	328(%r15), %edi
	testl	%edi, %edi
	jle	.L11322
	cmpl	$1, %edi
	je	.L11311
	movl	%edi, %eax
	movdqa	32(%rsp), %xmm0
	shrl	%eax
	cmpl	$1, %eax
	je	.L11312
	por	48(%rsp), %xmm0
	cmpl	$2, %eax
	je	.L11312
	por	64(%rsp), %xmm0
	cmpl	$3, %eax
	je	.L11312
	por	80(%rsp), %xmm0
.L11312:

	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %dil
	je	.L11351
	movdqu	144(%r14), %xmm0
	movl	%edi, %edx
	andl	$-2, %edx
	movslq	%edx, %rdx
	orq	32(%rsp,%rdx,8), %rax
	movl	%edi, %edx
	movq	%rax, %rsi
	subq	$1, %rax
	shrl	%edx
	notq	%rsi
	andq	%rax, %rsi
	andq	24(%rsp), %rsi
	leaq	160(%r14), %rax
	sarq	$63, %rsi
	cmpl	$1, %edx
	je	.L11315
.L11318:

	movdqu	(%rax), %xmm1
	por	%xmm1, %xmm0
	cmpl	$2, %edx
	je	.L11315
	movdqu	176(%r14), %xmm2
	por	%xmm2, %xmm0
	cmpl	$3, %edx
	je	.L11315
	movdqu	192(%r14), %xmm3
	por	%xmm3, %xmm0
.L11315:

	movdqa	%xmm0, %xmm1
	addl	%edx, %edx
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rcx
	cmpl	%edx, %edi
	je	.L11316
.L11317:

	movslq	%edx, %rdx
	orq	144(%r14,%rdx,8), %rcx
.L11316:

	movq	%rcx, %rax
	subq	$1, %rcx
	notq	%rax
	andq	%rcx, %rax
	sarq	$63, %rax
	notq	%rax
	andq	%rsi, %rax
	andl	$1, %eax
.L11305:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11352
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11351:

	.cfi_restore_state
	movdqu	144(%r14), %xmm1
	leaq	-1(%rax), %rsi
	movl	%edi, %edx
	notq	%rax
	andq	%rax, %rsi
	shrl	%edx
	andq	24(%rsp), %rsi
	leaq	160(%r14), %rax
	sarq	$63, %rsi
	movdqa	%xmm1, %xmm0
	cmpl	$1, %edx
	jne	.L11318
	psrldq	$8, %xmm0
	por	%xmm0, %xmm1
	movq	%xmm1, %rcx
	jmp	.L11316
	.p2align 4,,10
	.p2align 3
.L11320:

	movq	$-1, 24(%rsp)
	jmp	.L11306
	.p2align 4,,10
	.p2align 3
.L11322:

	xorl	%eax, %eax
	jmp	.L11305
.L11311:

	movq	32(%rsp), %rax
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	leaq	-1(%rax), %rsi
	notq	%rax
	andq	%rax, %rsi
	andq	24(%rsp), %rsi
	sarq	$63, %rsi
	jmp	.L11317
.L11321:

	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L11307
.L11352:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2089:

	.size	ec_affine_jacobian_equal, .-ec_affine_jacobian_equal
# WAS .section	.text.ec_GFp_nistp_recode_scalar_bits,"ax",@progbits
.text
	.p2align 4
	.globl	ec_GFp_nistp_recode_scalar_bits
	.hidden	ec_GFp_nistp_recode_scalar_bits
	.type	ec_GFp_nistp_recode_scalar_bits, @function
.Lec_GFp_nistp_recode_scalar_bits_local_target:
ec_GFp_nistp_recode_scalar_bits:
.LFB2102:

	.cfi_startproc
	endbr64
	movq	%rdx, %rax
	movq	%rdx, %rcx
	movq	%rdi, %r8
	movl	$63, %edx
	shrq	$5, %rax
	movq	%rsi, %rdi
	subq	%rcx, %rdx
	movq	%rax, %rsi
	negq	%rsi
	andq	%rdx, %rsi
	leaq	-1(%rax), %rdx
	andl	$1, %eax
	andq	%rcx, %rdx
	movq	%rax, (%r8)
	orq	%rsi, %rdx
	movq	%rdx, %rcx
	andl	$1, %edx
	shrq	%rcx
	addq	%rdx, %rcx
	movq	%rcx, (%rdi)
	ret
	.cfi_endproc
.LFE2102:

	.size	ec_GFp_nistp_recode_scalar_bits, .-ec_GFp_nistp_recode_scalar_bits
# WAS .section	.text.ec_compute_wNAF,"ax",@progbits
.text
	.p2align 4
	.globl	ec_compute_wNAF
	.hidden	ec_compute_wNAF
	.type	ec_compute_wNAF, @function
.Lec_compute_wNAF_local_target:
ec_compute_wNAF:
.LFB2103:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r10
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	movl	%r8d, %ecx
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	$1, %ebx
	movl	(%rdx), %edx
	sall	%cl, %ebx
	leal	(%rbx,%rbx), %r13d
	leal	-1(%r13), %r12d
	andl	%r12d, %edx
	cmpq	$-1, %rbp
	je	.L11354
	movslq	%r8d, %rcx
	movq	%rdi, %r9
	movl	%r13d, %r14d
	movq	%rsi, %rdi
	sarl	%r12d
	leaq	1(%rcx), %rax
	leaq	2(%rcx,%rbp), %r11
	sarl	%r14d
	subq	%rcx, %rdi
	jmp	.L11361
	.p2align 4,,10
	.p2align 3
.L11366:

	sarl	%edx
	xorl	%ecx, %ecx
.L11357:

	movb	%cl, -1(%rdi,%rax)
	movq	%rax, %rcx
	movslq	264(%r9), %rsi
	shrq	$6, %rcx
	cmpq	%rsi, %rcx
	jnb	.L11360
	movq	(%r10,%rcx,8), %rsi
	movl	%eax, %ecx
	shrq	%cl, %rsi
	movl	%r8d, %ecx
	andl	$1, %esi
	sall	%cl, %esi
	addl	%esi, %edx
.L11360:

	addq	$1, %rax
	cmpq	%rax, %r11
	je	.L11354
.L11361:

	testb	$1, %dl
	je	.L11366
	testl	%edx, %ebx
	je	.L11363
	cmpq	%rbp, %rax
	jnb	.L11359
	subl	%r13d, %edx
	movl	%edx, %ecx
	movl	%r14d, %edx
	jmp	.L11357
	.p2align 4,,10
	.p2align 3
.L11363:

	movl	%edx, %ecx
	xorl	%edx, %edx
	jmp	.L11357
	.p2align 4,,10
	.p2align 3
.L11359:

	movl	%r12d, %ecx
	andl	%edx, %ecx
	subl	%ecx, %edx
	sarl	%edx
	jmp	.L11357
	.p2align 4,,10
	.p2align 3
.L11354:

	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2103:

	.size	ec_compute_wNAF, .-ec_compute_wNAF
# WAS .section	.rodata.EVP_DigestSignUpdate.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC276:

	.string	"/aws-lc/crypto/fipsmodule/evp/digestsign.c"
# WAS .section	.text.EVP_DigestSignUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestSignUpdate
	.type	EVP_DigestSignUpdate, @function
.LEVP_DigestSignUpdate_local_target:
EVP_DigestSignUpdate:
.LFB2116:

	.cfi_startproc
	endbr64
	movq	24(%rdi), %rax
	movq	(%rax), %rax
	cmpq	$0, 48(%rax)
	jne	.L11368
	cmpq	$2048, 40(%rdi)
	je	.L11368
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$173, %r8d
	leaq	.LC276(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11368:

# WAS jmp	EVP_DigestUpdate@PLT
	jmp	.LEVP_DigestUpdate_local_target
	.cfi_endproc
.LFE2116:

	.size	EVP_DigestSignUpdate, .-EVP_DigestSignUpdate
# WAS .section	.text.EVP_DigestVerifyUpdate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestVerifyUpdate
	.type	EVP_DigestVerifyUpdate, @function
.LEVP_DigestVerifyUpdate_local_target:
EVP_DigestVerifyUpdate:
.LFB2117:

	.cfi_startproc
	endbr64
	movq	24(%rdi), %rax
	movq	(%rax), %rax
	cmpq	$0, 72(%rax)
	je	.L11375
	cmpq	$2048, 40(%rdi)
	je	.L11375
# WAS jmp	EVP_DigestUpdate@PLT
	jmp	.LEVP_DigestUpdate_local_target
	.p2align 4,,10
	.p2align 3
.L11375:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$183, %r8d
	leaq	.LC276(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2117:

	.size	EVP_DigestVerifyUpdate, .-EVP_DigestVerifyUpdate
# WAS .section	.text.EVP_PKEY_new,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_new
	.type	EVP_PKEY_new, @function
.LEVP_PKEY_new_local_target:
EVP_PKEY_new:
.LFB2123:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L11378
	movq	$1, (%rax)
.L11378:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2123:

	.size	EVP_PKEY_new, .-EVP_PKEY_new
# WAS .section	.text.EVP_PKEY_free,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_free
	.type	EVP_PKEY_free, @function
.LEVP_PKEY_free_local_target:
EVP_PKEY_free:
.LFB2125:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11399
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	CRYPTO_refcount_dec_and_test_zero@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero
	testl	%eax, %eax
	je	.L11384
	movq	16(%rbx), %rax
	testq	%rax, %rax
	je	.L11388
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11388
	movq	%rbx, %rdi
	call	*%rax
	movq	$0, 8(%rbx)
	movl	$0, 4(%rbx)
.L11388:

	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L11384:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11399:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE2125:

	.size	EVP_PKEY_free, .-EVP_PKEY_free
# WAS .section	.text.EVP_PKEY_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_free
	.type	EVP_PKEY_CTX_free, @function
.LEVP_PKEY_CTX_free_local_target:
EVP_PKEY_CTX_free:
.LFB2184:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11402
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L11404
	movq	24(%rax), %rax
	testq	%rax, %rax
	je	.L11404
	call	*%rax
.L11404:

	movq	16(%rbx), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	24(%rbx), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L11402:

	ret
	.cfi_endproc
.LFE2184:

	.size	EVP_PKEY_CTX_free, .-EVP_PKEY_CTX_free
# WAS .section	.text.EVP_MD_CTX_set_pkey_ctx,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_CTX_set_pkey_ctx
	.type	EVP_MD_CTX_set_pkey_ctx, @function
.LEVP_MD_CTX_set_pkey_ctx_local_target:
EVP_MD_CTX_set_pkey_ctx:
.LFB2122:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testb	$4, 41(%rdi)
	je	.L11419
.L11415:

	movq	%rbp, 24(%rbx)
# WAS call	EVP_MD_pctx_ops_once_bss_get@PLT
	call	EVP_MD_pctx_ops_once_bss_get
# WAS leaq	EVP_MD_pctx_ops_init(%rip), %rsi
	leaq	.LEVP_MD_pctx_ops_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_MD_pctx_ops_storage_bss_get@PLT
	call	EVP_MD_pctx_ops_storage_bss_get
	movq	%rax, 32(%rbx)
	movq	40(%rbx), %rax
	testq	%rbp, %rbp
	je	.L11416
	orb	$4, %ah
	movq	%rax, 40(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11419:

	.cfi_restore_state
	movq	24(%rdi), %rdi
# WAS call	EVP_PKEY_CTX_free@PLT
	call	.LEVP_PKEY_CTX_free_local_target
	jmp	.L11415
	.p2align 4,,10
	.p2align 3
.L11416:

	andb	$-5, %ah
	movq	%rax, 40(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2122:

	.size	EVP_MD_CTX_set_pkey_ctx, .-EVP_MD_CTX_set_pkey_ctx
# WAS .section	.text.EVP_PKEY_kem_new,"ax",@progbits
.text
	.p2align 4
	.type	EVP_PKEY_kem_new, @function
.LEVP_PKEY_kem_new_local_target:
EVP_PKEY_kem_new:
.LFB2272:

	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11432
	leal	-972(%rbp), %edi
	cmpl	$18, %edi
	ja	.L11422
	leaq	.L11424(%rip), %rdx
	movslq	(%rdx,%rdi,4), %rax
	addq	%rdx, %rax
	notrack jmp	*%rax
# WAS .section	.rodata.EVP_PKEY_kem_new,"a",@progbits
.text
	.align 4
	.align 4
.L11424:

	.long	.L11429-.L11424
	.long	.L11428-.L11424
	.long	.L11427-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11422-.L11424
	.long	.L11426-.L11424
	.long	.L11425-.L11424
	.long	.L11423-.L11424
# WAS .section	.text.EVP_PKEY_kem_new
.text
	.p2align 4,,10
	.p2align 3
.L11422:

	movl	$360, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11432:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11429:

	.cfi_restore_state
# WAS call	get_legacy_kem_kyber512_r3@PLT
	call	.Lbcm_redirector_get_legacy_kem_kyber512_r3
	movq	%rax, %rbp
	.p2align 4,,10
	.p2align 3
.L11430:

	testq	%rbp, %rbp
	je	.L11422
	movq	16(%rbx), %rax
	testq	%rax, %rax
	je	.L11433
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11433
	movq	%rbx, %rdi
	call	*%rax
	movq	$0, 8(%rbx)
.L11433:

# WAS movq	kem_asn1_meth@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq kem_asn1_meth_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$24, %edi
	movq	%rax, 16(%rbx)
	movl	(%rax), %eax
	movl	%eax, 4(%rbx)
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L11432
	movq	%rbp, (%rax)
	movq	%rax, 8(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11428:

	.cfi_restore_state
# WAS call	get_legacy_kem_kyber768_r3@PLT
	call	.Lbcm_redirector_get_legacy_kem_kyber768_r3
	movq	%rax, %rbp
	jmp	.L11430
	.p2align 4,,10
	.p2align 3
.L11427:

# WAS call	get_legacy_kem_kyber1024_r3@PLT
	call	.Lbcm_redirector_get_legacy_kem_kyber1024_r3
	movq	%rax, %rbp
	jmp	.L11430
	.p2align 4,,10
	.p2align 3
.L11426:

# WAS call	KEM_ml_kem_512_once_bss_get@PLT
	call	KEM_ml_kem_512_once_bss_get
# WAS leaq	KEM_ml_kem_512_init(%rip), %rsi
	leaq	.LKEM_ml_kem_512_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	KEM_ml_kem_512_storage_bss_get@PLT
	call	KEM_ml_kem_512_storage_bss_get
	movq	%rax, %rbp
	jmp	.L11430
	.p2align 4,,10
	.p2align 3
.L11425:

# WAS call	KEM_ml_kem_768_once_bss_get@PLT
	call	KEM_ml_kem_768_once_bss_get
# WAS leaq	KEM_ml_kem_768_init(%rip), %rsi
	leaq	.LKEM_ml_kem_768_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	KEM_ml_kem_768_storage_bss_get@PLT
	call	KEM_ml_kem_768_storage_bss_get
	movq	%rax, %rbp
	jmp	.L11430
	.p2align 4,,10
	.p2align 3
.L11423:

# WAS call	KEM_ml_kem_1024_once_bss_get@PLT
	call	KEM_ml_kem_1024_once_bss_get
# WAS leaq	KEM_ml_kem_1024_init(%rip), %rsi
	leaq	.LKEM_ml_kem_1024_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	KEM_ml_kem_1024_storage_bss_get@PLT
	call	KEM_ml_kem_1024_storage_bss_get
	movq	%rax, %rbp
	jmp	.L11430
	.cfi_endproc
.LFE2272:

	.size	EVP_PKEY_kem_new, .-EVP_PKEY_kem_new
# WAS .section	.text.EVP_PKEY_up_ref,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_up_ref
	.type	EVP_PKEY_up_ref, @function
.LEVP_PKEY_up_ref_local_target:
EVP_PKEY_up_ref:
.LFB2126:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	CRYPTO_refcount_inc@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_inc
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2126:

	.size	EVP_PKEY_up_ref, .-EVP_PKEY_up_ref
# WAS .section	.rodata.evp_pkey_ctx_new.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC277:

	.string	"/aws-lc/crypto/fipsmodule/evp/evp_ctx.c"
# WAS .section	.rodata.evp_pkey_ctx_new.str1.1,"aMS",@progbits,1
.text
.LC278:

	.string	"algorithm %d"
# WAS .section	.text.evp_pkey_ctx_new,"ax",@progbits
.text
	.p2align 4
	.type	evp_pkey_ctx_new, @function
.Levp_pkey_ctx_new_local_target:
evp_pkey_ctx_new:
.LFB2181:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	cmpl	$-1, %edx
	jne	.L11472
	testq	%rdi, %rdi
	je	.L11453
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11453
	movl	(%rax), %ebp
.L11451:

# WAS call	AWSLC_fips_evp_pkey_methods_once_bss_get@PLT
	call	AWSLC_fips_evp_pkey_methods_once_bss_get
# WAS leaq	AWSLC_fips_evp_pkey_methods_init(%rip), %rsi
	leaq	.LAWSLC_fips_evp_pkey_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	AWSLC_fips_evp_pkey_methods_storage_bss_get@PLT
	call	AWSLC_fips_evp_pkey_methods_storage_bss_get
	movq	(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	8(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	16(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	24(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	32(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	40(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	48(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
# WAS call	AWSLC_non_fips_pkey_evp_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_methods
	movq	(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	movq	8(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11456
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$116, %r8d
	movl	$128, %edx
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	%ebp, %esi
	leaq	.LC278(%rip), %rdi
	xorl	%eax, %eax
# WAS call	ERR_add_error_dataf@PLT
	call	.Lbcm_redirector_ERR_add_error_dataf
.L11453:

	xorl	%ebp, %ebp
.L11450:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11456:

	.cfi_restore_state
	movl	$48, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L11453
	movq	%r13, 8(%rax)
	movq	%rbx, (%rax)
	movl	$0, 32(%rax)
	testq	%r12, %r12
	je	.L11458
	movq	%r12, %rdi
# WAS call	EVP_PKEY_up_ref@PLT
	call	.LEVP_PKEY_up_ref_local_target
	movq	%r12, 16(%rbp)
.L11458:

	movq	8(%rbx), %rax
	testq	%rax, %rax
	je	.L11450
	movq	%rbp, %rdi
	call	*%rax
	testl	%eax, %eax
	jg	.L11450
	movq	16(%rbp), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L11453
	.p2align 4,,10
	.p2align 3
.L11472:

	movl	%edx, %ebp
	jmp	.L11451
	.cfi_endproc
.LFE2181:

	.size	evp_pkey_ctx_new, .-evp_pkey_ctx_new
# WAS .section	.text.EVP_PKEY_CTX_dup,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_dup
	.type	EVP_PKEY_CTX_dup, @function
.LEVP_PKEY_CTX_dup_local_target:
EVP_PKEY_CTX_dup:
.LFB2185:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L11480
	cmpq	$0, 16(%rax)
	je	.L11480
	movq	%rdi, %rbx
	movl	$48, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L11480
	movdqu	(%rbx), %xmm0
	movups	%xmm0, (%rax)
	movl	32(%rbx), %eax
	movq	16(%rbx), %rdi
	movl	%eax, 32(%rbp)
	testq	%rdi, %rdi
	je	.L11478
# WAS call	EVP_PKEY_up_ref@PLT
	call	.LEVP_PKEY_up_ref_local_target
	movq	16(%rbx), %rax
	movq	%rax, 16(%rbp)
.L11478:

	movq	24(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L11479
# WAS call	EVP_PKEY_up_ref@PLT
	call	.LEVP_PKEY_up_ref_local_target
	movq	24(%rbx), %rax
	movq	%rax, 24(%rbp)
.L11479:

	movq	(%rbx), %rax
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	call	*16(%rax)
	testl	%eax, %eax
	jle	.L11491
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11491:

	.cfi_restore_state
	movq	$0, 0(%rbp)
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_CTX_free@PLT
	call	.LEVP_PKEY_CTX_free_local_target
	movl	$196, %r8d
	leaq	.LC277(%rip), %rcx
	xorl	%esi, %esi
	movl	$6, %edx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11480:

	xorl	%ebp, %ebp
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2185:

	.size	EVP_PKEY_CTX_dup, .-EVP_PKEY_CTX_dup
# WAS .section	.text.EVP_PKEY_is_opaque,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_is_opaque
	.type	EVP_PKEY_is_opaque, @function
.LEVP_PKEY_is_opaque_local_target:
EVP_PKEY_is_opaque:
.LFB2127:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11492
	movq	112(%rax), %rax
	testq	%rax, %rax
	je	.L11492
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11492:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2127:

	.size	EVP_PKEY_is_opaque, .-EVP_PKEY_is_opaque
# WAS .section	.text.EVP_PKEY_cmp,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_cmp
	.type	EVP_PKEY_cmp, @function
.LEVP_PKEY_cmp_local_target:
EVP_PKEY_cmp:
.LFB2128:

	.cfi_startproc
	endbr64
	movl	4(%rsi), %eax
	cmpl	%eax, 4(%rdi)
	jne	.L11503
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11502
	movq	152(%rax), %rdx
	movq	%rsi, %rbp
	testq	%rdx, %rdx
	je	.L11501
	call	*%rdx
	testl	%eax, %eax
	jle	.L11498
	movq	16(%rbx), %rax
.L11501:

	movq	48(%rax), %rax
	testq	%rax, %rax
	je	.L11502
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11502:

	.cfi_restore_state
	movl	$-2, %eax
.L11498:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11503:

	.cfi_restore 3
	.cfi_restore 6
	movl	$-1, %eax
	ret
	.cfi_endproc
.LFE2128:

	.size	EVP_PKEY_cmp, .-EVP_PKEY_cmp
# WAS .section	.text.EVP_PKEY_missing_parameters,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_missing_parameters
	.type	EVP_PKEY_missing_parameters, @function
.LEVP_PKEY_missing_parameters_local_target:
EVP_PKEY_missing_parameters:
.LFB2130:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11514
	movq	136(%rax), %rax
	testq	%rax, %rax
	je	.L11514
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11514:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2130:

	.size	EVP_PKEY_missing_parameters, .-EVP_PKEY_missing_parameters
# WAS .section	.text.EVP_PKEY_size,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_size
	.type	EVP_PKEY_size, @function
.LEVP_PKEY_size_local_target:
EVP_PKEY_size:
.LFB2131:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11520
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11520
	movq	120(%rax), %rax
	testq	%rax, %rax
	je	.L11520
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11520:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2131:

	.size	EVP_PKEY_size, .-EVP_PKEY_size
# WAS .section	.text.pkey_rsa_encrypt,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_encrypt, @function
.Lpkey_rsa_encrypt_local_target:
pkey_rsa_encrypt:
.LFB2290:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	40(%rdi), %r15
	movq	16(%rdi), %rdi
	movq	8(%rdi), %rax
	movq	%rax, (%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %rsi
	testq	%r12, %r12
	je	.L11540
	movq	0(%rbp), %rcx
	cmpq	%rsi, %rcx
	jb	.L11541
	movl	16(%r15), %eax
	cmpl	$4, %eax
	je	.L11542
	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	%r12, %rdx
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	%rax
	.cfi_def_cfa_offset 96
	movq	16(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	RSA_encrypt@PLT
	call	.Lbcm_redirector_RSA_encrypt
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
.L11528:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11542:

	.cfi_restore_state
	movq	48(%r15), %rdi
	testq	%rdi, %rdi
	je	.L11543
.L11534:

	movq	64(%r15), %r9
	movq	56(%r15), %r8
	pushq	32(%r15)
	.cfi_def_cfa_offset 88
	movq	%r14, %rcx
	pushq	24(%r15)
	.cfi_def_cfa_offset 96
	movq	%r13, %rdx
	movq	%rsi, 24(%rsp)
# WAS call	RSA_padding_add_PKCS1_OAEP_mgf1@PLT
	call	.Lbcm_redirector_RSA_padding_add_PKCS1_OAEP_mgf1
	popq	%r8
	.cfi_def_cfa_offset 88
	popq	%r9
	.cfi_def_cfa_offset 80
	testl	%eax, %eax
	je	.L11532
	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	48(%r15), %r8
	movq	0(%rbp), %rcx
	movq	%rbp, %rsi
	pushq	$3
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r9
	movq	%r12, %rdx
	movq	16(%rsp), %rdi
# WAS call	RSA_encrypt@PLT
	call	.Lbcm_redirector_RSA_encrypt
	popq	%rsi
	.cfi_def_cfa_offset 88
	popq	%rdi
	.cfi_def_cfa_offset 80
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L11528
	.p2align 4,,10
	.p2align 3
.L11543:

	movq	16(%rbx), %rdi
	movq	%rsi, 8(%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	8(%rsp), %rsi
	testq	%rax, %rax
	movq	%rax, 48(%r15)
	movq	%rax, %rdi
	jne	.L11534
.L11532:

	xorl	%eax, %eax
	jmp	.L11528
	.p2align 4,,10
	.p2align 3
.L11540:

	movq	%rsi, 0(%rbp)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11541:

	.cfi_restore_state
	movl	$416, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11528
	.cfi_endproc
.LFE2290:

	.size	pkey_rsa_encrypt, .-pkey_rsa_encrypt
# WAS .section	.text.pkey_rsa_decrypt,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_decrypt, @function
.Lpkey_rsa_decrypt_local_target:
pkey_rsa_decrypt:
.LFB2291:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	40(%rdi), %r14
	movq	16(%rdi), %rdi
	movq	%rcx, (%rsp)
	movq	8(%rdi), %r15
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %r10
	testq	%rbx, %rbx
	je	.L11557
	cmpq	%r10, 0(%rbp)
	jb	.L11558
	movl	16(%r14), %eax
	cmpl	$4, %eax
	je	.L11559
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%r10, %rcx
	movq	%rbx, %rdx
	movq	%r13, %r9
	pushq	%rax
	.cfi_def_cfa_offset 112
	movq	16(%rsp), %r8
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	RSA_decrypt@PLT
	call	.Lbcm_redirector_RSA_decrypt
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
.L11544:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11560
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11559:

	.cfi_restore_state
	movq	48(%r14), %rdx
	testq	%rdx, %rdx
	je	.L11561
.L11549:

	leaq	16(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%r15, %rdi
	movq	%r13, %r9
	pushq	$3
	.cfi_def_cfa_offset 112
	movq	16(%rsp), %r8
	movq	%r10, %rcx
	movq	%r10, 16(%rsp)
# WAS call	RSA_decrypt@PLT
	call	.Lbcm_redirector_RSA_decrypt
	popq	%rsi
	.cfi_def_cfa_offset 104
	popq	%rdi
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	je	.L11551
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	56(%r14), %r9
	movq	48(%r14), %rcx
	pushq	32(%r14)
	.cfi_def_cfa_offset 112
	pushq	24(%r14)
	.cfi_def_cfa_offset 120
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	pushq	64(%r14)
	.cfi_def_cfa_offset 128
	movq	48(%rsp), %r8
	movq	32(%rsp), %rdx
# WAS call	RSA_padding_check_PKCS1_OAEP_mgf1@PLT
	call	.Lbcm_redirector_RSA_padding_check_PKCS1_OAEP_mgf1
	addq	$32, %rsp
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L11544
	.p2align 4,,10
	.p2align 3
.L11561:

	movq	16(%r12), %rdi
	movq	%r10, 8(%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	8(%rsp), %r10
	testq	%rax, %rax
	movq	%rax, 48(%r14)
	movq	%rax, %rdx
	jne	.L11549
	.p2align 4,,10
	.p2align 3
.L11551:

	xorl	%eax, %eax
	jmp	.L11544
	.p2align 4,,10
	.p2align 3
.L11557:

	movq	%r10, 0(%rbp)
	movl	$1, %eax
	jmp	.L11544
	.p2align 4,,10
	.p2align 3
.L11558:

	movl	$448, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L11544
.L11560:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2291:

	.size	pkey_rsa_decrypt, .-pkey_rsa_decrypt
# WAS .section	.text.EVP_PKEY_bits,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_bits
	.type	EVP_PKEY_bits, @function
.LEVP_PKEY_bits_local_target:
EVP_PKEY_bits:
.LFB2132:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11562
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11562
	movq	128(%rax), %rax
	testq	%rax, %rax
	je	.L11562
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11562:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2132:

	.size	EVP_PKEY_bits, .-EVP_PKEY_bits
# WAS .section	.text.EVP_PKEY_id,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_id
	.type	EVP_PKEY_id, @function
.LEVP_PKEY_id_local_target:
EVP_PKEY_id:
.LFB2133:

	.cfi_startproc
	endbr64
	movl	4(%rdi), %eax
	ret
	.cfi_endproc
.LFE2133:

	.size	EVP_PKEY_id, .-EVP_PKEY_id
# WAS .section	.text.custom_meth_invoked,"ax",@progbits
.text
	.p2align 4
	.type	custom_meth_invoked, @function
.Lcustom_meth_invoked_local_target:
custom_meth_invoked:
.LFB2817:

	.cfi_startproc
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	16(%rdi), %rdi
# WAS call	EVP_PKEY_id@PLT
	call	.LEVP_PKEY_id_local_target
	cmpl	$408, %eax
	je	.L11572
	cmpl	$912, %eax
	je	.L11573
	xorl	%edx, %edx
	cmpl	$6, %eax
	je	.L11573
.L11571:

	movl	%edx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11573:

	.cfi_restore_state
	movq	16(%rbx), %rax
	movq	8(%rax), %rax
	movq	(%rax), %rcx
	movl	32(%rbx), %eax
	cmpl	$16, %eax
	je	.L11585
	xorl	%edx, %edx
	cmpl	$8, %eax
	jne	.L11571
	cmpq	$0, 32(%rcx)
	movl	$1, %edx
	jne	.L11571
	xorl	%edx, %edx
	cmpq	$0, 40(%rcx)
	setne	%dl
	jmp	.L11571
	.p2align 4,,10
	.p2align 3
.L11572:

	xorl	%edx, %edx
	cmpl	$8, 32(%rbx)
	jne	.L11571
	movq	16(%rbx), %rax
	movl	$1, %edx
	movq	8(%rax), %rax
	movq	40(%rax), %rax
	cmpq	$0, 16(%rax)
	jne	.L11571
	xorl	%edx, %edx
	cmpq	$0, 24(%rax)
	setne	%dl
	jmp	.L11571
	.p2align 4,,10
	.p2align 3
.L11585:

	xorl	%edx, %edx
	cmpq	$0, 48(%rcx)
	setne	%dl
	jmp	.L11571
	.cfi_endproc
.LFE2817:

	.size	custom_meth_invoked, .-custom_meth_invoked
# WAS .section	.text.EVP_MD_get_pkey_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_get_pkey_type
	.type	EVP_MD_get_pkey_type, @function
.LEVP_MD_get_pkey_type_local_target:
EVP_MD_get_pkey_type:
.LFB2134:

	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L11590
	movl	(%rdi), %esi
	movl	$6, %edx
	leaq	4(%rsp), %rdi
	movl	$0, 4(%rsp)
# WAS call	OBJ_find_sigid_by_algs@PLT
	call	.Lbcm_redirector_OBJ_find_sigid_by_algs
	testl	%eax, %eax
	jne	.L11596
.L11590:

	xorl	%eax, %eax
.L11586:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11597
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11596:

	.cfi_restore_state
	movl	4(%rsp), %eax
	jmp	.L11586
.L11597:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2134:

	.size	EVP_MD_get_pkey_type, .-EVP_MD_get_pkey_type
# WAS .section	.text.EVP_MD_pkey_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_pkey_type
	.type	EVP_MD_pkey_type, @function
.LEVP_MD_pkey_type_local_target:
EVP_MD_pkey_type:
.LFB2135:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_get_pkey_type@PLT
	jmp	.LEVP_MD_get_pkey_type_local_target
	.cfi_endproc
.LFE2135:

	.size	EVP_MD_pkey_type, .-EVP_MD_pkey_type
# WAS .section	.text.EVP_MD_get0_name,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_get0_name
	.type	EVP_MD_get0_name, @function
.LEVP_MD_get0_name_local_target:
EVP_MD_get0_name:
.LFB2136:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11600
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_MD_nid@PLT
	call	.LEVP_MD_nid_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movl	%eax, %edi
# WAS jmp	OBJ_nid2sn@PLT
	jmp	.Lbcm_redirector_OBJ_nid2sn
	.p2align 4,,10
	.p2align 3
.L11600:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2136:

	.size	EVP_MD_get0_name, .-EVP_MD_get0_name
# WAS .section	.text.EVP_MD_name,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_MD_name
	.type	EVP_MD_name, @function
.LEVP_MD_name_local_target:
EVP_MD_name:
.LFB2137:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_MD_get0_name@PLT
	jmp	.LEVP_MD_get0_name_local_target
	.cfi_endproc
.LFE2137:

	.size	EVP_MD_name, .-EVP_MD_name
# WAS .section	.text.evp_pkey_set_method,"ax",@progbits
.text
	.p2align 4
	.globl	evp_pkey_set_method
	.hidden	evp_pkey_set_method
	.type	evp_pkey_set_method, @function
.Levp_pkey_set_method_local_target:
evp_pkey_set_method:
.LFB2139:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11606
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11606
	call	*%rax
	movq	$0, 8(%rbx)
.L11606:

	movl	0(%rbp), %eax
	movq	%rbp, 16(%rbx)
	movl	%eax, 4(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2139:

	.size	evp_pkey_set_method, .-evp_pkey_set_method
# WAS .section	.text.EVP_PKEY_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_type
	.type	EVP_PKEY_type, @function
.LEVP_PKEY_type_local_target:
EVP_PKEY_type:
.LFB2140:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%edi, %ebx
# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	8(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	16(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	24(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	32(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	40(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	48(%rax), %rdx
	cmpl	(%rdx), %ebx
	je	.L11615
	movq	56(%rax), %rdx
	xorl	%eax, %eax
	cmpl	(%rdx), %ebx
	je	.L11615
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11615:

	.cfi_restore_state
	movl	(%rdx), %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2140:

	.size	EVP_PKEY_type, .-EVP_PKEY_type
# WAS .section	.text.EVP_PKEY_assign_RSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_assign_RSA
	.type	EVP_PKEY_assign_RSA, @function
.LEVP_PKEY_assign_RSA_local_target:
EVP_PKEY_assign_RSA:
.LFB2143:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	8(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	16(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	24(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	32(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	40(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	48(%rax), %rbx
	cmpl	$6, (%rbx)
	je	.L11621
	movq	56(%rax), %rbx
	xorl	%eax, %eax
	cmpl	$6, (%rbx)
	cmovne	%rax, %rbx
.L11621:

	movq	16(%rbp), %rax
	testq	%rax, %rax
	je	.L11622
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11622
	movq	%rbp, %rdi
	call	*%rax
.L11622:

	movl	(%rbx), %eax
	movq	%rbx, 16(%rbp)
	movq	%r12, 8(%rbp)
	movl	%eax, 4(%rbp)
	xorl	%eax, %eax
	testq	%r12, %r12
	popq	%rbx
	.cfi_def_cfa_offset 24
	setne	%al
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2143:

	.size	EVP_PKEY_assign_RSA, .-EVP_PKEY_assign_RSA
# WAS .section	.text.EVP_PKEY_get0_RSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get0_RSA
	.type	EVP_PKEY_get0_RSA, @function
.LEVP_PKEY_get0_RSA_local_target:
EVP_PKEY_get0_RSA:
.LFB2144:

	.cfi_startproc
	endbr64
	movl	4(%rdi), %eax
	cmpl	$6, %eax
	je	.L11632
	cmpl	$912, %eax
	jne	.L11644
.L11632:

	movq	8(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L11644:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$338, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2144:

	.size	EVP_PKEY_get0_RSA, .-EVP_PKEY_get0_RSA
# WAS .section	.text.EVP_PKEY_assign_DSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_assign_DSA
	.type	EVP_PKEY_assign_DSA, @function
.LEVP_PKEY_assign_DSA_local_target:
EVP_PKEY_assign_DSA:
.LFB2147:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	8(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	16(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	24(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	32(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	40(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	48(%rax), %rbx
	cmpl	$116, (%rbx)
	je	.L11647
	movq	56(%rax), %rbx
	xorl	%eax, %eax
	cmpl	$116, (%rbx)
	cmovne	%rax, %rbx
.L11647:

	movq	16(%rbp), %rax
	testq	%rax, %rax
	je	.L11648
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11648
	movq	%rbp, %rdi
	call	*%rax
.L11648:

	movl	(%rbx), %eax
	movq	%rbx, 16(%rbp)
	movq	%r12, 8(%rbp)
	movl	%eax, 4(%rbp)
	xorl	%eax, %eax
	testq	%r12, %r12
	popq	%rbx
	.cfi_def_cfa_offset 24
	setne	%al
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2147:

	.size	EVP_PKEY_assign_DSA, .-EVP_PKEY_assign_DSA
# WAS .section	.text.EVP_PKEY_set1_DSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_set1_DSA
	.type	EVP_PKEY_set1_DSA, @function
.LEVP_PKEY_set1_DSA_local_target:
EVP_PKEY_set1_DSA:
.LFB2146:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
# WAS call	EVP_PKEY_assign_DSA@PLT
	call	.LEVP_PKEY_assign_DSA_local_target
	testl	%eax, %eax
	jne	.L11663
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11663:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	DSA_up_ref@PLT
	call	.Lbcm_redirector_DSA_up_ref
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2146:

	.size	EVP_PKEY_set1_DSA, .-EVP_PKEY_set1_DSA
# WAS .section	.text.EVP_PKEY_get0_DSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get0_DSA
	.type	EVP_PKEY_get0_DSA, @function
.LEVP_PKEY_get0_DSA_local_target:
EVP_PKEY_get0_DSA:
.LFB2148:

	.cfi_startproc
	endbr64
	cmpl	$116, 4(%rdi)
	jne	.L11671
	movq	8(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L11671:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$108, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$374, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2148:

	.size	EVP_PKEY_get0_DSA, .-EVP_PKEY_get0_DSA
# WAS .section	.text.EVP_PKEY_get1_DSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get1_DSA
	.type	EVP_PKEY_get1_DSA, @function
.LEVP_PKEY_get1_DSA_local_target:
EVP_PKEY_get1_DSA:
.LFB2149:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	EVP_PKEY_get0_DSA@PLT
	call	.LEVP_PKEY_get0_DSA_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11672
	movq	%rax, %rdi
# WAS call	DSA_up_ref@PLT
	call	.Lbcm_redirector_DSA_up_ref
.L11672:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2149:

	.size	EVP_PKEY_get1_DSA, .-EVP_PKEY_get1_DSA
# WAS .section	.text.EVP_PKEY_assign_EC_KEY,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_assign_EC_KEY
	.type	EVP_PKEY_assign_EC_KEY, @function
.LEVP_PKEY_assign_EC_KEY_local_target:
EVP_PKEY_assign_EC_KEY:
.LFB2151:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	8(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	16(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	24(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	32(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	40(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	48(%rax), %rbx
	cmpl	$408, (%rbx)
	je	.L11680
	movq	56(%rax), %rbx
	xorl	%eax, %eax
	cmpl	$408, (%rbx)
	cmovne	%rax, %rbx
.L11680:

	movq	16(%rbp), %rax
	testq	%rax, %rax
	je	.L11681
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11681
	movq	%rbp, %rdi
	call	*%rax
.L11681:

	movl	(%rbx), %eax
	movq	%rbx, 16(%rbp)
	movq	%r12, 8(%rbp)
	movl	%eax, 4(%rbp)
	xorl	%eax, %eax
	testq	%r12, %r12
	popq	%rbx
	.cfi_def_cfa_offset 24
	setne	%al
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2151:

	.size	EVP_PKEY_assign_EC_KEY, .-EVP_PKEY_assign_EC_KEY
# WAS .section	.text.EVP_PKEY_set1_EC_KEY,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_set1_EC_KEY
	.type	EVP_PKEY_set1_EC_KEY, @function
.LEVP_PKEY_set1_EC_KEY_local_target:
EVP_PKEY_set1_EC_KEY:
.LFB2150:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
# WAS call	EVP_PKEY_assign_EC_KEY@PLT
	call	.LEVP_PKEY_assign_EC_KEY_local_target
	testl	%eax, %eax
	jne	.L11696
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11696:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EC_KEY_up_ref@PLT
	call	.LEC_KEY_up_ref_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2150:

	.size	EVP_PKEY_set1_EC_KEY, .-EVP_PKEY_set1_EC_KEY
# WAS .section	.text.pkey_ec_paramgen,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_paramgen, @function
.Lpkey_ec_paramgen_local_target:
pkey_ec_paramgen:
.LFB2224:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	40(%rdi), %rbp
	cmpq	$0, 8(%rbp)
	je	.L11707
	movq	%rsi, %r12
# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11702
	movq	8(%rbp), %rsi
	movq	%rax, %rdi
# WAS call	EC_KEY_set_group@PLT
	call	.LEC_KEY_set_group_local_target
	testl	%eax, %eax
	jne	.L11708
.L11702:

	movq	%rbx, %rdi
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
.L11699:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11708:

	.cfi_restore_state
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_assign_EC_KEY@PLT
	call	.LEVP_PKEY_assign_EC_KEY_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11707:

	.cfi_restore_state
	movl	$294, %r8d
	leaq	.LC260(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11699
	.cfi_endproc
.LFE2224:

	.size	pkey_ec_paramgen, .-pkey_ec_paramgen
# WAS .section	.text.EVP_PKEY_get0_EC_KEY,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get0_EC_KEY
	.type	EVP_PKEY_get0_EC_KEY, @function
.LEVP_PKEY_get0_EC_KEY_local_target:
EVP_PKEY_get0_EC_KEY:
.LFB2152:

	.cfi_startproc
	endbr64
	cmpl	$408, 4(%rdi)
	jne	.L11716
	movq	8(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L11716:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$410, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2152:

	.size	EVP_PKEY_get0_EC_KEY, .-EVP_PKEY_get0_EC_KEY
# WAS .section	.text.EVP_PKEY_get1_EC_KEY,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get1_EC_KEY
	.type	EVP_PKEY_get1_EC_KEY, @function
.LEVP_PKEY_get1_EC_KEY_local_target:
EVP_PKEY_get1_EC_KEY:
.LFB2153:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	EVP_PKEY_get0_EC_KEY@PLT
	call	.LEVP_PKEY_get0_EC_KEY_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11717
	movq	%rax, %rdi
# WAS call	EC_KEY_up_ref@PLT
	call	.LEC_KEY_up_ref_local_target
.L11717:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2153:

	.size	EVP_PKEY_get1_EC_KEY, .-EVP_PKEY_get1_EC_KEY
# WAS .section	.text.EVP_PKEY_set_type,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_set_type
	.type	EVP_PKEY_set_type, @function
.LEVP_PKEY_set_type_local_target:
EVP_PKEY_set_type:
.LFB2155:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%rdi, %rdi
	je	.L11742
	cmpq	$0, 8(%rdi)
	je	.L11741
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11741
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11741
	call	*%rax
	movq	$0, 8(%r12)
	movl	$0, 4(%r12)
.L11741:

# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11728
.L11726:

	movq	8(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	16(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	24(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	32(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	40(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	48(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movq	56(%rax), %rbx
	cmpl	(%rbx), %ebp
	je	.L11731
	movl	$459, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	%ebp, %esi
	xorl	%eax, %eax
	leaq	.LC278(%rip), %rdi
# WAS call	ERR_add_error_dataf@PLT
	call	.Lbcm_redirector_ERR_add_error_dataf
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11731:

	.cfi_restore_state
	testq	%r12, %r12
	je	.L11725
.L11728:

	movq	16(%r12), %rax
	testq	%rax, %rax
	je	.L11733
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11733
	movq	%r12, %rdi
	call	*%rax
	movq	$0, 8(%r12)
.L11733:

	movl	(%rbx), %eax
	movq	%rbx, 16(%r12)
	movl	%eax, 4(%r12)
.L11725:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11742:

	.cfi_restore_state
# WAS call	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
	call	.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods
	movq	(%rax), %rdx
	cmpl	(%rdx), %ebp
	jne	.L11726
	jmp	.L11725
	.cfi_endproc
.LFE2155:

	.size	EVP_PKEY_set_type, .-EVP_PKEY_set_type
# WAS .section	.text.EVP_PKEY_assign,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_assign
	.type	EVP_PKEY_assign, @function
.LEVP_PKEY_assign_local_target:
EVP_PKEY_assign:
.LFB2154:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdx, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	cmpl	$116, %esi
	je	.L11744
	jg	.L11745
	cmpl	$6, %esi
	je	.L11746
	cmpl	$28, %esi
	jne	.L11748
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	movq	%rdx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_assign_DH@PLT
	jmp	.Lbcm_redirector_EVP_PKEY_assign_DH
	.p2align 4,,10
	.p2align 3
.L11745:

	.cfi_restore_state
	cmpl	$408, %esi
	jne	.L11748
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	movq	%rdx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_assign_EC_KEY@PLT
	jmp	.LEVP_PKEY_assign_EC_KEY_local_target
	.p2align 4,,10
	.p2align 3
.L11748:

	.cfi_restore_state
	movq	%rdi, 8(%rsp)
# WAS call	EVP_PKEY_set_type@PLT
	call	.LEVP_PKEY_set_type_local_target
	testl	%eax, %eax
	je	.L11743
	movq	8(%rsp), %rdi
	xorl	%eax, %eax
	testq	%rbx, %rbx
	setne	%al
	movq	%rbx, 8(%rdi)
.L11743:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11744:

	.cfi_restore_state
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	movq	%rdx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_assign_DSA@PLT
	jmp	.LEVP_PKEY_assign_DSA_local_target
	.p2align 4,,10
	.p2align 3
.L11746:

	.cfi_restore_state
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_assign_RSA@PLT
	jmp	.LEVP_PKEY_assign_RSA_local_target
	.cfi_endproc
.LFE2154:

	.size	EVP_PKEY_assign, .-EVP_PKEY_assign
# WAS .section	.text.EVP_PKEY_new_mac_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_new_mac_key
	.type	EVP_PKEY_new_mac_key, @function
.LEVP_PKEY_new_mac_key_local_target:
EVP_PKEY_new_mac_key:
.LFB2141:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	cmpl	$855, %edi
	jne	.L11780
	testq	%rcx, %rcx
	movq	%rdx, %rbp
	movq	%rcx, %rbx
	setne	%r14b
	testq	%rdx, %rdx
	jne	.L11758
	testb	%r14b, %r14b
	jne	.L11757
.L11758:

# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L11781
	movl	$16, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L11761
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 0(%r13)
	testq	%rax, %rax
	jne	.L11762
	testb	%r14b, %r14b
	jne	.L11779
.L11762:

	movq	%rbx, 8(%r13)
	movq	%r13, %rdx
	movl	$855, %esi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_assign@PLT
	call	.LEVP_PKEY_assign_local_target
	testl	%eax, %eax
	je	.L11779
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11780:

	.cfi_restore_state
	movl	$279, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11757:

	xorl	%r12d, %r12d
.L11782:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11779:

	.cfi_restore_state
	movq	%r13, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L11761:

	movl	$312, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	%r12, %rdi
	xorl	%r12d, %r12d
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	jmp	.L11782
	.p2align 4,,10
	.p2align 3
.L11781:

	movl	$290, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11757
	.cfi_endproc
.LFE2141:

	.size	EVP_PKEY_new_mac_key, .-EVP_PKEY_new_mac_key
# WAS .section	.text.pkey_kem_keygen_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_keygen_deterministic, @function
.Lpkey_kem_keygen_deterministic_local_target:
pkey_kem_keygen_deterministic:
.LFB2262:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$39, %r8d
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L11801
	movq	40(%rdi), %rax
	testq	%rax, %rax
	je	.L11803
	movq	(%rax), %rbp
	movq	%rsi, %r12
	movq	%rdx, %r13
	testq	%rbp, %rbp
	je	.L11804
.L11788:

	testq	%rcx, %rcx
	je	.L11805
	movq	64(%rbp), %rax
	testq	%r13, %r13
	je	.L11806
	cmpq	%rax, (%rcx)
	jne	.L11807
	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11785
	movq	$0, (%rax)
	movq	8(%rax), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, (%rbx)
	movq	32(%rbp), %rdi
	movq	$0, 8(%rbx)
	movq	$0, 16(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	40(%rbp), %rdi
	movq	%rax, 8(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	8(%rbx), %rdi
	movq	%rax, 16(%rbx)
	movq	%rax, %rsi
	testq	%rdi, %rdi
	je	.L11794
	testq	%rax, %rax
	je	.L11794
	movq	80(%rbp), %rax
	movq	%r13, %rdx
	call	*(%rax)
	testl	%eax, %eax
	je	.L11802
	movq	%rbx, %rdx
	movl	$970, %esi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_assign@PLT
	call	.LEVP_PKEY_assign_local_target
	testl	%eax, %eax
	je	.L11802
.L11792:

	movl	$1, %eax
	jmp	.L11783
	.p2align 4,,10
	.p2align 3
.L11807:

	movl	$65, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11785:

	xorl	%eax, %eax
.L11783:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11804:

	.cfi_restore_state
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11808
	movq	8(%rax), %rax
	movq	(%rax), %rbp
	jmp	.L11788
	.p2align 4,,10
	.p2align 3
.L11803:

	movl	$41, %r8d
.L11801:

	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11785
	.p2align 4,,10
	.p2align 3
.L11806:

	movq	%rax, (%rcx)
	jmp	.L11792
	.p2align 4,,10
	.p2align 3
.L11802:

	movq	8(%rbx), %rdi
.L11796:

	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	movups	%xmm0, 8(%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L11785
	.p2align 4,,10
	.p2align 3
.L11805:

	movl	$53, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11785
	.p2align 4,,10
	.p2align 3
.L11794:

	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	xorl	%edi, %edi
	movups	%xmm0, 8(%rbx)
	jmp	.L11796
	.p2align 4,,10
	.p2align 3
.L11808:

	movl	$45, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11785
	.cfi_endproc
.LFE2262:

	.size	pkey_kem_keygen_deterministic, .-pkey_kem_keygen_deterministic
# WAS .section	.text.pkey_kem_keygen,"ax",@progbits
.text
	.p2align 4
	.type	pkey_kem_keygen, @function
.Lpkey_kem_keygen_local_target:
pkey_kem_keygen:
.LFB2263:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movl	$82, %r8d
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%rdi, %rdi
	je	.L11829
	movq	40(%rdi), %rax
	testq	%rax, %rax
	je	.L11831
	movq	(%rax), %rbp
	movq	%rsi, %r12
	testq	%rbp, %rbp
	je	.L11814
	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11811
.L11815:

	movq	$0, (%rbx)
	movq	8(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, (%rbx)
	movq	32(%rbp), %rdi
	movq	$0, 8(%rbx)
	movq	$0, 16(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	40(%rbp), %rdi
	movq	%rax, 8(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	8(%rbx), %rdi
	movq	%rax, 16(%rbx)
	movq	%rax, %rsi
	testq	%rdi, %rdi
	je	.L11819
	testq	%rax, %rax
	je	.L11819
	movq	80(%rbp), %rax
	call	*8(%rax)
	testl	%eax, %eax
	je	.L11830
	movl	$970, %esi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_set_type@PLT
	call	.LEVP_PKEY_set_type_local_target
	testl	%eax, %eax
	je	.L11830
	movq	%rbx, 8(%r12)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11814:

	.cfi_restore_state
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11832
	movq	8(%rax), %rax
	movl	$24, %edi
	movq	(%rax), %rbp
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11811
	movq	8(%rax), %rdi
	testq	%rbp, %rbp
	jne	.L11815
.L11818:

	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	movups	%xmm0, 8(%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L11811:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11830:

	.cfi_restore_state
	movq	8(%rbx), %rdi
	jmp	.L11818
	.p2align 4,,10
	.p2align 3
.L11819:

	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	xorl	%edi, %edi
	movups	%xmm0, 8(%rbx)
	jmp	.L11818
	.p2align 4,,10
	.p2align 3
.L11831:

	movl	$84, %r8d
.L11829:

	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11811
	.p2align 4,,10
	.p2align 3
.L11832:

	movl	$88, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11811
	.cfi_endproc
.LFE2263:

	.size	pkey_kem_keygen, .-pkey_kem_keygen
# WAS .section	.text.EVP_PKEY_new_raw_private_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_new_raw_private_key
	.type	EVP_PKEY_new_raw_private_key, @function
.LEVP_PKEY_new_raw_private_key_local_target:
EVP_PKEY_new_raw_private_key:
.LFB2156:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11835
	movl	%ebp, %esi
	movq	%rax, %rdi
# WAS call	EVP_PKEY_set_type@PLT
	call	.LEVP_PKEY_set_type_local_target
	testl	%eax, %eax
	je	.L11835
	movq	16(%rbx), %rax
	movq	80(%rax), %rax
	testq	%rax, %rax
	je	.L11846
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L11835
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11846:

	.cfi_restore_state
	movl	$481, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11835:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2156:

	.size	EVP_PKEY_new_raw_private_key, .-EVP_PKEY_new_raw_private_key
# WAS .section	.text.EVP_PKEY_new_raw_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_new_raw_public_key
	.type	EVP_PKEY_new_raw_public_key, @function
.LEVP_PKEY_new_raw_public_key_local_target:
EVP_PKEY_new_raw_public_key:
.LFB2157:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11849
	movl	%ebp, %esi
	movq	%rax, %rdi
# WAS call	EVP_PKEY_set_type@PLT
	call	.LEVP_PKEY_set_type_local_target
	testl	%eax, %eax
	je	.L11849
	movq	16(%rbx), %rax
	movq	88(%rax), %rax
	testq	%rax, %rax
	je	.L11860
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L11849
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11860:

	.cfi_restore_state
	movl	$505, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11849:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2157:

	.size	EVP_PKEY_new_raw_public_key, .-EVP_PKEY_new_raw_public_key
# WAS .section	.text.EVP_PKEY_get_raw_private_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get_raw_private_key
	.type	EVP_PKEY_get_raw_private_key, @function
.LEVP_PKEY_get_raw_private_key_local_target:
EVP_PKEY_get_raw_private_key:
.LFB2158:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11862
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11862
	movq	96(%rax), %rax
	testq	%rax, %rax
	je	.L11862
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11862:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$526, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2158:

	.size	EVP_PKEY_get_raw_private_key, .-EVP_PKEY_get_raw_private_key
# WAS .section	.text.EVP_PKEY_get_raw_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get_raw_public_key
	.type	EVP_PKEY_get_raw_public_key, @function
.LEVP_PKEY_get_raw_public_key_local_target:
EVP_PKEY_get_raw_public_key:
.LFB2159:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11875
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11875
	movq	104(%rax), %rax
	testq	%rax, %rax
	je	.L11875
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11875:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$539, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2159:

	.size	EVP_PKEY_get_raw_public_key, .-EVP_PKEY_get_raw_public_key
# WAS .section	.text.EVP_PKEY_cmp_parameters,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_cmp_parameters
	.type	EVP_PKEY_cmp_parameters, @function
.LEVP_PKEY_cmp_parameters_local_target:
EVP_PKEY_cmp_parameters:
.LFB2160:

	.cfi_startproc
	endbr64
	movl	4(%rsi), %eax
	cmpl	%eax, 4(%rdi)
	jne	.L11889
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11891
	movq	152(%rax), %rax
	testq	%rax, %rax
	je	.L11891
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11891:

	movl	$-2, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L11889:

	movl	$-1, %eax
	ret
	.cfi_endproc
.LFE2160:

	.size	EVP_PKEY_cmp_parameters, .-EVP_PKEY_cmp_parameters
# WAS .section	.text.EVP_PKEY_copy_parameters,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_copy_parameters
	.type	EVP_PKEY_copy_parameters, @function
.LEVP_PKEY_copy_parameters_local_target:
EVP_PKEY_copy_parameters:
.LFB2129:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	4(%rdi), %eax
	movq	%rdi, %rbx
	testl	%eax, %eax
	jne	.L11893
	movq	16(%rdi), %rax
	movq	16(%rsi), %r12
	testq	%rax, %rax
	je	.L11894
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L11894
	call	*%rax
	movq	$0, 8(%rbx)
.L11894:

	movl	(%r12), %eax
	movq	%r12, 16(%rbx)
	movl	%eax, 4(%rbx)
.L11895:

	movq	%rbp, %rdi
# WAS call	EVP_PKEY_missing_parameters@PLT
	call	.LEVP_PKEY_missing_parameters_local_target
	testl	%eax, %eax
	jne	.L11916
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_missing_parameters@PLT
	call	.LEVP_PKEY_missing_parameters_local_target
	testl	%eax, %eax
	je	.L11917
	movq	16(%rbp), %rax
	testq	%rax, %rax
	je	.L11896
	movq	144(%rax), %rax
	testq	%rax, %rax
	je	.L11896
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L11916:

	.cfi_restore_state
	movl	$169, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11896:

	xorl	%eax, %eax
.L11892:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11893:

	.cfi_restore_state
	cmpl	4(%rsi), %eax
	je	.L11895
	movl	$164, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11896
	.p2align 4,,10
	.p2align 3
.L11917:

	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_cmp_parameters@PLT
	call	.LEVP_PKEY_cmp_parameters_local_target
	cmpl	$1, %eax
	je	.L11892
	movl	$178, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11896
	.cfi_endproc
.LFE2129:

	.size	EVP_PKEY_copy_parameters, .-EVP_PKEY_copy_parameters
# WAS .section	.text.EVP_PKEY_get0,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get0
	.type	EVP_PKEY_get0, @function
.LEVP_PKEY_get0_local_target:
EVP_PKEY_get0:
.LFB2163:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L11944
	movl	4(%rdi), %eax
	cmpl	$116, %eax
	je	.L11921
	jle	.L11945
	cmpl	$408, %eax
	je	.L11921
	cmpl	$912, %eax
	je	.L11921
.L11940:

	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L11945:

	cmpl	$6, %eax
	je	.L11921
	cmpl	$28, %eax
	jne	.L11940
.L11921:

	movq	8(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L11944:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
	movl	$573, %r8d
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2163:

	.size	EVP_PKEY_get0, .-EVP_PKEY_get0
# WAS .section	.text.OpenSSL_add_all_algorithms,"ax",@progbits
.text
	.p2align 4
	.globl	OpenSSL_add_all_algorithms
	.type	OpenSSL_add_all_algorithms, @function
.LOpenSSL_add_all_algorithms_local_target:
OpenSSL_add_all_algorithms:
.LFB2164:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE2164:

	.size	OpenSSL_add_all_algorithms, .-OpenSSL_add_all_algorithms
# WAS .section	.text.OPENSSL_add_all_algorithms_conf,"ax",@progbits
.text
	.p2align 4
	.globl	OPENSSL_add_all_algorithms_conf
	.type	OPENSSL_add_all_algorithms_conf, @function
.LOPENSSL_add_all_algorithms_conf_local_target:
OPENSSL_add_all_algorithms_conf:
.LFB3141:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3141:

	.size	OPENSSL_add_all_algorithms_conf, .-OPENSSL_add_all_algorithms_conf
# WAS .section	.text.OpenSSL_add_all_ciphers,"ax",@progbits
.text
	.p2align 4
	.globl	OpenSSL_add_all_ciphers
	.type	OpenSSL_add_all_ciphers, @function
.LOpenSSL_add_all_ciphers_local_target:
OpenSSL_add_all_ciphers:
.LFB3143:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3143:

	.size	OpenSSL_add_all_ciphers, .-OpenSSL_add_all_ciphers
# WAS .section	.text.OpenSSL_add_all_digests,"ax",@progbits
.text
	.p2align 4
	.globl	OpenSSL_add_all_digests
	.type	OpenSSL_add_all_digests, @function
.LOpenSSL_add_all_digests_local_target:
OpenSSL_add_all_digests:
.LFB3145:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3145:

	.size	OpenSSL_add_all_digests, .-OpenSSL_add_all_digests
# WAS .section	.text.EVP_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_cleanup
	.type	EVP_cleanup, @function
.LEVP_cleanup_local_target:
EVP_cleanup:
.LFB3147:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE3147:

	.size	EVP_cleanup, .-EVP_cleanup
# WAS .section	.text.EVP_PKEY_base_id,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_base_id
	.type	EVP_PKEY_base_id, @function
.LEVP_PKEY_base_id_local_target:
EVP_PKEY_base_id:
.LFB2169:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_PKEY_id@PLT
	jmp	.LEVP_PKEY_id_local_target
	.cfi_endproc
.LFE2169:

	.size	EVP_PKEY_base_id, .-EVP_PKEY_base_id
# WAS .section	.text.EVP_PKEY_get1_tls_encodedpoint,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get1_tls_encodedpoint
	.type	EVP_PKEY_get1_tls_encodedpoint, @function
.LEVP_PKEY_get1_tls_encodedpoint_local_target:
EVP_PKEY_get1_tls_encodedpoint:
.LFB2176:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L11984
	movl	4(%rdi), %eax
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	cmpl	$408, %eax
	je	.L11955
	cmpl	$948, %eax
	jne	.L11956
	movq	$0, 16(%rsp)
	movl	$823, %r8d
	testq	%rsi, %rsi
	je	.L11981
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L11959
	cmpq	$0, 104(%rax)
	je	.L11959
	movq	$32, 16(%rsp)
	movl	$32, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 0(%rbp)
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L11958
	movq	16(%rbx), %rax
	leaq	16(%rsp), %rdx
	movq	%rbx, %rdi
	call	*104(%rax)
	movl	$844, %r8d
	testl	%eax, %eax
	je	.L11983
	movq	16(%rsp), %rax
	cmpq	$32, %rax
	je	.L11952
	movl	$849, %r8d
.L11983:

	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	0(%rbp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 0(%rbp)
	.p2align 4,,10
	.p2align 3
.L11958:

	xorl	%eax, %eax
.L11952:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L11985
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11956:

	.cfi_restore_state
	movl	$876, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$129, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11958
	.p2align 4,,10
	.p2align 3
.L11955:

	movl	$777, %r8d
	testq	%rsi, %rsi
	je	.L11981
# WAS call	EVP_PKEY_get0_EC_KEY@PLT
	call	.LEVP_PKEY_get0_EC_KEY_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L11986
	movq	%rax, %rdi
# WAS call	evp_pkey_tls_encodedpoint_ec_curve_supported
	call	.Levp_pkey_tls_encodedpoint_ec_curve_supported_local_target
	movl	$793, %r8d
	testl	%eax, %eax
	je	.L11982
	movq	%rbx, %rdi
# WAS call	EC_KEY_get_conv_form@PLT
	call	.LEC_KEY_get_conv_form_local_target
	cmpl	$4, %eax
	jne	.L11987
	xorl	%ecx, %ecx
	movq	%rbp, %rdx
	movl	$4, %esi
	movq	%rbx, %rdi
# WAS call	EC_KEY_key2buf@PLT
	call	.LEC_KEY_key2buf_local_target
	testq	%rax, %rax
	jne	.L11952
	movl	$808, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movq	%rax, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %rax
	jmp	.L11952
	.p2align 4,,10
	.p2align 3
.L11984:

	movl	$866, %r8d
.L11981:

	leaq	.LC266(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11958
	.p2align 4,,10
	.p2align 3
.L11959:

	movl	$833, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11958
	.p2align 4,,10
	.p2align 3
.L11987:

	movl	$801, %r8d
.L11982:

	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11958
	.p2align 4,,10
	.p2align 3
.L11986:

	movl	$788, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11958
.L11985:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2176:

	.size	EVP_PKEY_get1_tls_encodedpoint, .-EVP_PKEY_get1_tls_encodedpoint
# WAS .section	.text.EVP_PKEY_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_new
	.type	EVP_PKEY_CTX_new, @function
.LEVP_PKEY_CTX_new_local_target:
EVP_PKEY_CTX_new:
.LFB2182:

	.cfi_startproc
	endbr64
	movl	$-1, %edx
# WAS jmp	evp_pkey_ctx_new
	jmp	.Levp_pkey_ctx_new_local_target
	.cfi_endproc
.LFE2182:

	.size	EVP_PKEY_CTX_new, .-EVP_PKEY_CTX_new
# WAS .section	.text.EVP_PKEY_CTX_new_id,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_new_id
	.type	EVP_PKEY_CTX_new_id, @function
.LEVP_PKEY_CTX_new_id_local_target:
EVP_PKEY_CTX_new_id:
.LFB2183:

	.cfi_startproc
	endbr64
	movl	%edi, %edx
	xorl	%edi, %edi
# WAS jmp	evp_pkey_ctx_new
	jmp	.Levp_pkey_ctx_new_local_target
	.cfi_endproc
.LFE2183:

	.size	EVP_PKEY_CTX_new_id, .-EVP_PKEY_CTX_new_id
# WAS .section	.text.EVP_PKEY_CTX_get0_pkey,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get0_pkey
	.type	EVP_PKEY_CTX_get0_pkey, @function
.LEVP_PKEY_CTX_get0_pkey_local_target:
EVP_PKEY_CTX_get0_pkey:
.LFB2186:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	ret
	.cfi_endproc
.LFE2186:

	.size	EVP_PKEY_CTX_get0_pkey, .-EVP_PKEY_CTX_get0_pkey
# WAS .section	.text.EVP_PKEY_CTX_ctrl,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_ctrl
	.type	EVP_PKEY_CTX_ctrl, @function
.LEVP_PKEY_CTX_ctrl_local_target:
EVP_PKEY_CTX_ctrl:
.LFB2187:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L11992
	movl	%esi, %eax
	movl	%ecx, %esi
	movq	(%rdi), %rcx
	testq	%rcx, %rcx
	je	.L11992
	movq	128(%rcx), %r10
	testq	%r10, %r10
	je	.L11992
	cmpl	$-1, %eax
	je	.L11995
	cmpl	%eax, (%rcx)
	jne	.L12012
.L11995:

	movl	32(%rdi), %eax
	testl	%eax, %eax
	je	.L12013
	cmpl	$-1, %edx
	je	.L11998
	testl	%edx, %eax
	je	.L12014
.L11998:

	movq	%r9, %rcx
	movl	%r8d, %edx
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%r10
	.p2align 4,,10
	.p2align 3
.L11992:

	.cfi_restore_state
	movl	$212, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L11996:

	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12014:

	.cfi_restore_state
	movl	$226, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11996
	.p2align 4,,10
	.p2align 3
.L12012:

	movl	$216, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12013:

	.cfi_restore_state
	movl	$221, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$123, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L11996
	.cfi_endproc
.LFE2187:

	.size	EVP_PKEY_CTX_ctrl, .-EVP_PKEY_CTX_ctrl
# WAS .section	.text.EVP_PKEY_CTX_set_signature_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_signature_md
	.type	EVP_PKEY_CTX_set_signature_md, @function
.LEVP_PKEY_CTX_set_signature_md_local_target:
EVP_PKEY_CTX_set_signature_md:
.LFB2161:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	xorl	%r8d, %r8d
	movl	$1, %ecx
	movl	$56, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2161:

	.size	EVP_PKEY_CTX_set_signature_md, .-EVP_PKEY_CTX_set_signature_md
# WAS .section	.text.EVP_PKEY_CTX_get_signature_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_signature_md
	.type	EVP_PKEY_CTX_get_signature_md, @function
.LEVP_PKEY_CTX_get_signature_md_local_target:
EVP_PKEY_CTX_get_signature_md:
.LFB2162:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	xorl	%r8d, %r8d
	movl	$2, %ecx
	movl	$56, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2162:

	.size	EVP_PKEY_CTX_get_signature_md, .-EVP_PKEY_CTX_get_signature_md
# WAS .section	.text.EVP_PKEY_sign_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_sign_init
	.type	EVP_PKEY_sign_init, @function
.LEVP_PKEY_sign_init_local_target:
EVP_PKEY_sign_init:
.LFB2188:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	testq	%rdi, %rdi
	je	.L12018
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L12018
	cmpq	$0, 48(%rax)
	je	.L12031
.L12019:

	movq	40(%rax), %rax
	movl	$8, 32(%rbx)
	testq	%rax, %rax
	je	.L12023
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	jne	.L12023
	movl	$0, 32(%rbx)
	xorl	%eax, %eax
.L12017:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12023:

	.cfi_restore_state
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12031:

	.cfi_restore_state
	cmpq	$0, 56(%rax)
	jne	.L12019
	.p2align 4,,10
	.p2align 3
.L12018:

	movl	$237, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12017
	.cfi_endproc
.LFE2188:

	.size	EVP_PKEY_sign_init, .-EVP_PKEY_sign_init
# WAS .section	.text.EVP_PKEY_sign,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_sign
	.type	EVP_PKEY_sign, @function
.LEVP_PKEY_sign_local_target:
EVP_PKEY_sign:
.LFB2189:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12033
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12033
	movq	48(%rax), %rax
	testq	%rax, %rax
	je	.L12033
	cmpl	$8, 32(%rdi)
	jne	.L12045
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12033:

	.cfi_restore_state
	movl	$253, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12045:

	.cfi_restore_state
	movl	$257, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2189:

	.size	EVP_PKEY_sign, .-EVP_PKEY_sign
# WAS .section	.text.EVP_PKEY_verify_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_verify_init
	.type	EVP_PKEY_verify_init, @function
.LEVP_PKEY_verify_init_local_target:
EVP_PKEY_verify_init:
.LFB2190:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	testq	%rdi, %rdi
	je	.L12047
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L12047
	cmpq	$0, 72(%rax)
	je	.L12060
.L12048:

	movq	64(%rax), %rax
	movl	$16, 32(%rbx)
	testq	%rax, %rax
	je	.L12052
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	jne	.L12052
	movl	$0, 32(%rbx)
	xorl	%eax, %eax
.L12046:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12052:

	.cfi_restore_state
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12060:

	.cfi_restore_state
	cmpq	$0, 80(%rax)
	jne	.L12048
	.p2align 4,,10
	.p2align 3
.L12047:

	movl	$267, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12046
	.cfi_endproc
.LFE2190:

	.size	EVP_PKEY_verify_init, .-EVP_PKEY_verify_init
# WAS .section	.text.EVP_PKEY_verify,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_verify
	.type	EVP_PKEY_verify, @function
.LEVP_PKEY_verify_local_target:
EVP_PKEY_verify:
.LFB2191:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12062
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12062
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L12062
	cmpl	$16, 32(%rdi)
	jne	.L12074
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12062:

	.cfi_restore_state
	movl	$282, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12074:

	.cfi_restore_state
	movl	$286, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2191:

	.size	EVP_PKEY_verify, .-EVP_PKEY_verify
# WAS .section	.text.EVP_PKEY_encrypt_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_encrypt_init
	.type	EVP_PKEY_encrypt_init, @function
.LEVP_PKEY_encrypt_init_local_target:
EVP_PKEY_encrypt_init:
.LFB2192:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12076
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12076
	cmpq	$0, 96(%rax)
	je	.L12076
	movl	$64, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12076:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$294, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2192:

	.size	EVP_PKEY_encrypt_init, .-EVP_PKEY_encrypt_init
# WAS .section	.text.EVP_PKEY_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_encrypt
	.type	EVP_PKEY_encrypt, @function
.LEVP_PKEY_encrypt_local_target:
EVP_PKEY_encrypt:
.LFB2193:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12089
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12089
	movq	96(%rax), %rax
	testq	%rax, %rax
	je	.L12089
	cmpl	$64, 32(%rdi)
	jne	.L12101
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12089:

	.cfi_restore_state
	movl	$305, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12101:

	.cfi_restore_state
	movl	$309, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2193:

	.size	EVP_PKEY_encrypt, .-EVP_PKEY_encrypt
# WAS .section	.text.EVP_PKEY_decrypt_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_decrypt_init
	.type	EVP_PKEY_decrypt_init, @function
.LEVP_PKEY_decrypt_init_local_target:
EVP_PKEY_decrypt_init:
.LFB2194:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12103
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12103
	cmpq	$0, 104(%rax)
	je	.L12103
	movl	$128, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12103:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$318, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2194:

	.size	EVP_PKEY_decrypt_init, .-EVP_PKEY_decrypt_init
# WAS .section	.text.EVP_PKEY_decrypt,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_decrypt
	.type	EVP_PKEY_decrypt, @function
.LEVP_PKEY_decrypt_local_target:
EVP_PKEY_decrypt:
.LFB2195:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12116
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12116
	movq	104(%rax), %rax
	testq	%rax, %rax
	je	.L12116
	cmpl	$128, 32(%rdi)
	jne	.L12128
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12116:

	.cfi_restore_state
	movl	$329, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12128:

	.cfi_restore_state
	movl	$333, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2195:

	.size	EVP_PKEY_decrypt, .-EVP_PKEY_decrypt
# WAS .section	.text.EVP_PKEY_verify_recover_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_verify_recover_init
	.type	EVP_PKEY_verify_recover_init, @function
.LEVP_PKEY_verify_recover_init_local_target:
EVP_PKEY_verify_recover_init:
.LFB2196:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12130
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12130
	cmpq	$0, 88(%rax)
	je	.L12130
	movl	$32, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12130:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$342, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2196:

	.size	EVP_PKEY_verify_recover_init, .-EVP_PKEY_verify_recover_init
# WAS .section	.text.EVP_PKEY_verify_recover,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_verify_recover
	.type	EVP_PKEY_verify_recover, @function
.LEVP_PKEY_verify_recover_local_target:
EVP_PKEY_verify_recover:
.LFB2197:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12143
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12143
	movq	88(%rax), %rax
	testq	%rax, %rax
	je	.L12143
	cmpl	$32, 32(%rdi)
	jne	.L12155
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12143:

	.cfi_restore_state
	movl	$353, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12155:

	.cfi_restore_state
	movl	$357, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2197:

	.size	EVP_PKEY_verify_recover, .-EVP_PKEY_verify_recover
# WAS .section	.text.EVP_PKEY_derive_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_derive_init
	.type	EVP_PKEY_derive_init, @function
.LEVP_PKEY_derive_init_local_target:
EVP_PKEY_derive_init:
.LFB2198:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12157
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12157
	cmpq	$0, 112(%rax)
	je	.L12157
	movl	$256, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12157:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$366, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2198:

	.size	EVP_PKEY_derive_init, .-EVP_PKEY_derive_init
# WAS .section	.text.EVP_PKEY_derive_set_peer,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_derive_set_peer
	.type	EVP_PKEY_derive_set_peer, @function
.LEVP_PKEY_derive_set_peer_local_target:
EVP_PKEY_derive_set_peer:
.LFB2199:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L12170
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L12170
	cmpq	$0, 112(%rax)
	movq	%rsi, %rbp
	je	.L12197
.L12171:

	movq	128(%rax), %rax
	testq	%rax, %rax
	je	.L12170
	movl	32(%rbx), %edx
	leal	-64(%rdx), %ecx
	andl	$-65, %ecx
	je	.L12174
	cmpl	$256, %edx
	jne	.L12198
.L12174:

	xorl	%edx, %edx
	movq	%rbp, %rcx
	movl	$3, %esi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	jle	.L12173
	cmpl	$2, %eax
	je	.L12176
	movq	16(%rbx), %rax
	testq	%rax, %rax
	je	.L12199
	movl	4(%rbp), %edx
	cmpl	%edx, 4(%rax)
	jne	.L12200
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_missing_parameters@PLT
	call	.LEVP_PKEY_missing_parameters_local_target
	testl	%eax, %eax
	jne	.L12179
	movq	16(%rbx), %rdi
	movq	%rbp, %rsi
# WAS call	EVP_PKEY_cmp_parameters@PLT
	call	.LEVP_PKEY_cmp_parameters_local_target
	testl	%eax, %eax
	je	.L12201
.L12179:

	movq	24(%rbx), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	(%rbx), %rax
	movq	%rbp, 24(%rbx)
	movq	%rbp, %rcx
	movl	$1, %edx
	movl	$3, %esi
	movq	%rbx, %rdi
	call	*128(%rax)
	testl	%eax, %eax
	jle	.L12202
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_up_ref@PLT
	call	.LEVP_PKEY_up_ref_local_target
.L12176:

	movl	$1, %eax
	jmp	.L12169
	.p2align 4,,10
	.p2align 3
.L12197:

	cmpq	$0, 96(%rax)
	jne	.L12171
	cmpq	$0, 104(%rax)
	jne	.L12171
	.p2align 4,,10
	.p2align 3
.L12170:

	movl	$379, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12173:

	xorl	%eax, %eax
.L12169:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12200:

	.cfi_restore_state
	movl	$405, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12173
	.p2align 4,,10
	.p2align 3
.L12198:

	movl	$385, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12173
	.p2align 4,,10
	.p2align 3
.L12202:

	movq	$0, 24(%rbx)
	jmp	.L12173
	.p2align 4,,10
	.p2align 3
.L12199:

	movl	$400, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12173
	.p2align 4,,10
	.p2align 3
.L12201:

	movl	$416, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12173
	.cfi_endproc
.LFE2199:

	.size	EVP_PKEY_derive_set_peer, .-EVP_PKEY_derive_set_peer
# WAS .section	.text.EVP_PKEY_derive,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_derive
	.type	EVP_PKEY_derive, @function
.LEVP_PKEY_derive_local_target:
EVP_PKEY_derive:
.LFB2200:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	testq	%rdi, %rdi
	je	.L12204
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12204
	movq	112(%rax), %rax
	testq	%rax, %rax
	je	.L12204
	cmpl	$256, 32(%rdi)
	jne	.L12216
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12204:

	.cfi_restore_state
	movl	$437, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12216:

	.cfi_restore_state
	movl	$441, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2200:

	.size	EVP_PKEY_derive, .-EVP_PKEY_derive
# WAS .section	.text.EVP_PKEY_keygen_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_keygen_init
	.type	EVP_PKEY_keygen_init, @function
.LEVP_PKEY_keygen_init_local_target:
EVP_PKEY_keygen_init:
.LFB2201:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12218
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12218
	cmpq	$0, 32(%rax)
	je	.L12218
	movl	$4, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12218:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$450, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2201:

	.size	EVP_PKEY_keygen_init, .-EVP_PKEY_keygen_init
# WAS .section	.text.EVP_PKEY_keygen_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_keygen_deterministic
	.type	EVP_PKEY_keygen_deterministic, @function
.LEVP_PKEY_keygen_deterministic_local_target:
EVP_PKEY_keygen_deterministic:
.LFB2202:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L12231
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12231
	movq	144(%rax), %r8
	testq	%r8, %r8
	je	.L12231
	cmpl	$4, 32(%rdi)
	jne	.L12249
	movq	%rsi, %rbx
	testq	%rsi, %rsi
	je	.L12233
	movq	(%rsi), %rsi
	testq	%rsi, %rsi
	je	.L12250
.L12236:

.L12235:

	call	*%r8
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L12251
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12231:

	.cfi_restore_state
	movl	$463, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12233:

	xorl	%eax, %eax
.L12252:

	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12249:

	.cfi_restore_state
	movl	$467, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12252
	.p2align 4,,10
	.p2align 3
.L12251:

	movq	(%rbx), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	$0, (%rbx)
	xorl	%eax, %eax
	jmp	.L12252
	.p2align 4,,10
	.p2align 3
.L12250:

	movq	%rcx, 24(%rsp)
	movq	%rdx, 16(%rsp)
	movq	%rdi, 8(%rsp)
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, (%rbx)
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L12237
	movq	8(%rsp), %rdi
	movq	16(%rsp), %rdx
	movq	24(%rsp), %rcx
	movq	(%rdi), %rax
	movq	144(%rax), %r8
	jmp	.L12236
.L12237:

	movl	$478, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12252
	.cfi_endproc
.LFE2202:

	.size	EVP_PKEY_keygen_deterministic, .-EVP_PKEY_keygen_deterministic
# WAS .section	.text.EVP_PKEY_paramgen_init,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_paramgen_init
	.type	EVP_PKEY_paramgen_init, @function
.LEVP_PKEY_paramgen_init_local_target:
EVP_PKEY_paramgen_init:
.LFB2204:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12254
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12254
	cmpq	$0, 120(%rax)
	je	.L12254
	movl	$512, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12254:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$539, %r8d
	leaq	.LC277(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2204:

	.size	EVP_PKEY_paramgen_init, .-EVP_PKEY_paramgen_init
# WAS .section	.text.EVP_PKEY_paramgen,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_paramgen
	.type	EVP_PKEY_paramgen, @function
.LEVP_PKEY_paramgen_local_target:
EVP_PKEY_paramgen:
.LFB2205:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L12267
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12267
	movq	120(%rax), %rdx
	testq	%rdx, %rdx
	je	.L12267
	cmpl	$512, 32(%rdi)
	jne	.L12285
	movq	%rsi, %rbx
	testq	%rsi, %rsi
	je	.L12269
	movq	(%rsi), %rsi
	testq	%rsi, %rsi
	je	.L12286
.L12272:

	call	*%rdx
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L12287
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12267:

	.cfi_restore_state
	movl	$549, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12269:

	xorl	%eax, %eax
.L12288:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12285:

	.cfi_restore_state
	movl	$553, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12288
	.p2align 4,,10
	.p2align 3
.L12287:

	movq	(%rbx), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	$0, (%rbx)
	xorl	%eax, %eax
	jmp	.L12288
	.p2align 4,,10
	.p2align 3
.L12286:

	movq	%rdi, 8(%rsp)
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, (%rbx)
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L12273
	movq	8(%rsp), %rdi
	movq	(%rdi), %rax
	movq	120(%rax), %rdx
	jmp	.L12272
.L12273:

	movl	$564, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12288
	.cfi_endproc
.LFE2205:

	.size	EVP_PKEY_paramgen, .-EVP_PKEY_paramgen
# WAS .section	.text.EVP_PKEY_encapsulate_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_encapsulate_deterministic
	.type	EVP_PKEY_encapsulate_deterministic, @function
.LEVP_PKEY_encapsulate_deterministic_local_target:
EVP_PKEY_encapsulate_deterministic:
.LFB2206:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	16(%rsp), %r10
	testq	%rdi, %rdi
	je	.L12290
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12290
	movq	152(%rax), %rax
	testq	%rax, %rax
	je	.L12290
	movq	%r10, 16(%rsp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12290:

	.cfi_restore_state
	movl	$585, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2206:

	.size	EVP_PKEY_encapsulate_deterministic, .-EVP_PKEY_encapsulate_deterministic
# WAS .section	.text.EVP_PKEY_CTX_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_md
	.type	EVP_PKEY_CTX_md, @function
.LEVP_PKEY_CTX_md_local_target:
EVP_PKEY_CTX_md:
.LFB2209:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	testq	%rcx, %rcx
	je	.L12304
	movq	%rdi, %rbx
	movq	%rcx, %rdi
	movl	%esi, %ebp
	movl	%edx, %r12d
# WAS call	EVP_get_digestbyname@PLT
	call	.Lbcm_redirector_EVP_get_digestbyname
	movq	%rax, %r9
	testq	%rax, %rax
	je	.L12304
	movl	%r12d, %ecx
	movl	%ebp, %edx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$-1, %esi
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12304:

	.cfi_restore_state
	movl	$652, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2209:

	.size	EVP_PKEY_CTX_md, .-EVP_PKEY_CTX_md
# WAS .section	.rodata.EVP_PKEY_CTX_ctrl_str.str1.1,"aMS",@progbits,1
.text
.LC279:

	.string	"digest"
# WAS .section	.text.EVP_PKEY_CTX_ctrl_str,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_ctrl_str
	.type	EVP_PKEY_CTX_ctrl_str, @function
.LEVP_PKEY_CTX_ctrl_str_local_target:
EVP_PKEY_CTX_ctrl_str:
.LFB2210:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L12311
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L12311
	movq	136(%rax), %r13
	testq	%r13, %r13
	je	.L12311
	movq	%rsi, %rbp
	leaq	.LC279(%rip), %rsi
	movq	%rdx, %r12
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12323
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%r13, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12323:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rcx
	movq	%rbx, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 32
	movl	$56, %esi
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_md@PLT
	jmp	.LEVP_PKEY_CTX_md_local_target
	.p2align 4,,10
	.p2align 3
.L12311:

	.cfi_restore_state
	movl	$661, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$-2, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2210:

	.size	EVP_PKEY_CTX_ctrl_str, .-EVP_PKEY_CTX_ctrl_str
# WAS .section	.text.EVP_PKEY_CTX_set_cb,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_cb
	.type	EVP_PKEY_CTX_set_cb, @function
.LEVP_PKEY_CTX_set_cb_local_target:
EVP_PKEY_CTX_set_cb:
.LFB2211:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE2211:

	.size	EVP_PKEY_CTX_set_cb, .-EVP_PKEY_CTX_set_cb
# WAS .section	.text.EVP_PKEY_CTX_set_app_data,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_app_data
	.type	EVP_PKEY_CTX_set_app_data, @function
.LEVP_PKEY_CTX_set_app_data_local_target:
EVP_PKEY_CTX_set_app_data:
.LFB2212:

	.cfi_startproc
	endbr64
	ret
	.cfi_endproc
.LFE2212:

	.size	EVP_PKEY_CTX_set_app_data, .-EVP_PKEY_CTX_set_app_data
# WAS .section	.text.EVP_PKEY_CTX_get_app_data,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_app_data
	.type	EVP_PKEY_CTX_get_app_data, @function
.LEVP_PKEY_CTX_get_app_data_local_target:
EVP_PKEY_CTX_get_app_data:
.LFB3103:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE3103:

	.size	EVP_PKEY_CTX_get_app_data, .-EVP_PKEY_CTX_get_app_data
# WAS .section	.text.EVP_PKEY_CTX_get_keygen_info,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_keygen_info
	.type	EVP_PKEY_CTX_get_keygen_info, @function
.LEVP_PKEY_CTX_get_keygen_info_local_target:
EVP_PKEY_CTX_get_keygen_info:
.LFB3139:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE3139:

	.size	EVP_PKEY_CTX_get_keygen_info, .-EVP_PKEY_CTX_get_keygen_info
# WAS .section	.text.EVP_PKEY_ec_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_ec_pkey_meth
	.hidden	EVP_PKEY_ec_pkey_meth
	.type	EVP_PKEY_ec_pkey_meth, @function
.LEVP_PKEY_ec_pkey_meth_local_target:
EVP_PKEY_ec_pkey_meth:
.LFB2226:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_ec_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_ec_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_ec_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_ec_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_ec_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_ec_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2226:

	.size	EVP_PKEY_ec_pkey_meth, .-EVP_PKEY_ec_pkey_meth
# WAS .section	.text.EVP_PKEY_CTX_set_ec_paramgen_curve_nid,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_ec_paramgen_curve_nid
	.type	EVP_PKEY_CTX_set_ec_paramgen_curve_nid, @function
.LEVP_PKEY_CTX_set_ec_paramgen_curve_nid_local_target:
EVP_PKEY_CTX_set_ec_paramgen_curve_nid:
.LFB2228:

	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	xorl	%r9d, %r9d
	movl	$4109, %ecx
	movl	$516, %edx
	movl	$408, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2228:

	.size	EVP_PKEY_CTX_set_ec_paramgen_curve_nid, .-EVP_PKEY_CTX_set_ec_paramgen_curve_nid
# WAS .section	.text.EVP_PKEY_CTX_set_ec_param_enc,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_ec_param_enc
	.type	EVP_PKEY_CTX_set_ec_param_enc, @function
.LEVP_PKEY_CTX_set_ec_param_enc_local_target:
EVP_PKEY_CTX_set_ec_param_enc:
.LFB2229:

	.cfi_startproc
	endbr64
	cmpl	$1, %esi
	jne	.L12341
	movl	%esi, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12341:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$336, %r8d
	leaq	.LC260(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2229:

	.size	EVP_PKEY_CTX_set_ec_param_enc, .-EVP_PKEY_CTX_set_ec_param_enc
# WAS .section	.rodata.pkey_ec_ctrl_str.str1.1,"aMS",@progbits,1
.text
.LC280:

	.string	"ec_paramgen_curve"
.LC281:

	.string	"ec_param_enc"
.LC282:

	.string	"named_curve"
# WAS .section	.text.pkey_ec_ctrl_str,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_ctrl_str, @function
.Lpkey_ec_ctrl_str_local_target:
pkey_ec_ctrl_str:
.LFB2222:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	leaq	.LC280(%rip), %rsi
	movq	%rbx, %rdi
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12349
	leaq	.LC281(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12347
	leaq	.LC282(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12347
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movq	%r12, %rdi
	movl	$1, %esi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set_ec_param_enc@PLT
	jmp	.LEVP_PKEY_CTX_set_ec_param_enc_local_target
	.p2align 4,,10
	.p2align 3
.L12349:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	EC_curve_nist2nid@PLT
	call	.LEC_curve_nist2nid_local_target
	testl	%eax, %eax
	je	.L12350
.L12344:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movq	%r12, %rdi
	movl	%eax, %esi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set_ec_paramgen_curve_nid@PLT
	jmp	.LEVP_PKEY_CTX_set_ec_paramgen_curve_nid_local_target
	.p2align 4,,10
	.p2align 3
.L12350:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	OBJ_sn2nid@PLT
	call	.Lbcm_redirector_OBJ_sn2nid
	testl	%eax, %eax
	jne	.L12344
	movq	%rbp, %rdi
# WAS call	OBJ_ln2nid@PLT
	call	.Lbcm_redirector_OBJ_ln2nid
	testl	%eax, %eax
	jne	.L12344
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	%eax, 12(%rsp)
	movl	$241, %r8d
	leaq	.LC260(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	12(%rsp), %eax
.L12342:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12347:

	.cfi_restore_state
	movl	$-2, %eax
	jmp	.L12342
	.cfi_endproc
.LFE2222:

	.size	pkey_ec_ctrl_str, .-pkey_ec_ctrl_str
# WAS .section	.text.EVP_PKEY_ed25519_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_ed25519_pkey_meth
	.hidden	EVP_PKEY_ed25519_pkey_meth
	.type	EVP_PKEY_ed25519_pkey_meth, @function
.LEVP_PKEY_ed25519_pkey_meth_local_target:
EVP_PKEY_ed25519_pkey_meth:
.LFB2235:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_ed25519_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_ed25519_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_ed25519_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_ed25519_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_ed25519_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_ed25519_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2235:

	.size	EVP_PKEY_ed25519_pkey_meth, .-EVP_PKEY_ed25519_pkey_meth
# WAS .section	.text.EVP_PKEY_hkdf_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_hkdf_pkey_meth
	.hidden	EVP_PKEY_hkdf_pkey_meth
	.type	EVP_PKEY_hkdf_pkey_meth, @function
.LEVP_PKEY_hkdf_pkey_meth_local_target:
EVP_PKEY_hkdf_pkey_meth:
.LFB2244:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_hkdf_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_hkdf_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_hkdf_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_hkdf_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_hkdf_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_hkdf_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2244:

	.size	EVP_PKEY_hkdf_pkey_meth, .-EVP_PKEY_hkdf_pkey_meth
# WAS .section	.text.EVP_PKEY_CTX_hkdf_mode,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_hkdf_mode
	.type	EVP_PKEY_CTX_hkdf_mode, @function
.LEVP_PKEY_CTX_hkdf_mode_local_target:
EVP_PKEY_CTX_hkdf_mode:
.LFB2246:

	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	xorl	%r9d, %r9d
	movl	$4110, %ecx
	movl	$256, %edx
	movl	$969, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2246:

	.size	EVP_PKEY_CTX_hkdf_mode, .-EVP_PKEY_CTX_hkdf_mode
# WAS .section	.text.EVP_PKEY_CTX_set_hkdf_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_hkdf_md
	.type	EVP_PKEY_CTX_set_hkdf_md, @function
.LEVP_PKEY_CTX_set_hkdf_md_local_target:
EVP_PKEY_CTX_set_hkdf_md:
.LFB2247:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	xorl	%r8d, %r8d
	movl	$4111, %ecx
	movl	$256, %edx
	movl	$969, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2247:

	.size	EVP_PKEY_CTX_set_hkdf_md, .-EVP_PKEY_CTX_set_hkdf_md
# WAS .section	.text.EVP_PKEY_CTX_set1_hkdf_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set1_hkdf_key
	.type	EVP_PKEY_CTX_set1_hkdf_key, @function
.LEVP_PKEY_CTX_set1_hkdf_key_local_target:
EVP_PKEY_CTX_set1_hkdf_key:
.LFB2248:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rdi
# WAS call	CBS_init@PLT
	call	.Lbcm_redirector_CBS_init
	xorl	%r8d, %r8d
	movl	$256, %edx
	movq	%rbp, %r9
	movl	$4112, %ecx
	movl	$969, %esi
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_CTX_ctrl@PLT
	call	.LEVP_PKEY_CTX_ctrl_local_target
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12360
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L12360:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2248:

	.size	EVP_PKEY_CTX_set1_hkdf_key, .-EVP_PKEY_CTX_set1_hkdf_key
# WAS .section	.text.EVP_PKEY_CTX_set1_hkdf_salt,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set1_hkdf_salt
	.type	EVP_PKEY_CTX_set1_hkdf_salt, @function
.LEVP_PKEY_CTX_set1_hkdf_salt_local_target:
EVP_PKEY_CTX_set1_hkdf_salt:
.LFB2249:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rdi
# WAS call	CBS_init@PLT
	call	.Lbcm_redirector_CBS_init
	xorl	%r8d, %r8d
	movl	$256, %edx
	movq	%rbp, %r9
	movl	$4113, %ecx
	movl	$969, %esi
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_CTX_ctrl@PLT
	call	.LEVP_PKEY_CTX_ctrl_local_target
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12364
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L12364:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2249:

	.size	EVP_PKEY_CTX_set1_hkdf_salt, .-EVP_PKEY_CTX_set1_hkdf_salt
# WAS .section	.text.EVP_PKEY_CTX_add1_hkdf_info,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_add1_hkdf_info
	.type	EVP_PKEY_CTX_add1_hkdf_info, @function
.LEVP_PKEY_CTX_add1_hkdf_info_local_target:
EVP_PKEY_CTX_add1_hkdf_info:
.LFB2250:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rdi
# WAS call	CBS_init@PLT
	call	.Lbcm_redirector_CBS_init
	xorl	%r8d, %r8d
	movl	$256, %edx
	movq	%rbp, %r9
	movl	$4114, %ecx
	movl	$969, %esi
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_CTX_ctrl@PLT
	call	.LEVP_PKEY_CTX_ctrl_local_target
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12368
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L12368:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2250:

	.size	EVP_PKEY_CTX_add1_hkdf_info, .-EVP_PKEY_CTX_add1_hkdf_info
# WAS .section	.rodata.pkey_hkdf_ctrl_str.str1.1,"aMS",@progbits,1
.text
.LC283:

	.string	"mode"
.LC284:

	.string	"EXTRACT_AND_EXPAND"
.LC285:

	.string	"EXTRACT_ONLY"
.LC286:

	.string	"EXPAND_ONLY"
.LC287:

	.string	"salt"
.LC288:

	.string	"hexsalt"
.LC289:

	.string	"key"
.LC290:

	.string	"hexkey"
.LC291:

	.string	"info"
.LC292:

	.string	"hexinfo"
# WAS .section	.text.pkey_hkdf_ctrl_str,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_ctrl_str, @function
.Lpkey_hkdf_ctrl_str_local_target:
pkey_hkdf_ctrl_str:
.LFB2242:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	leaq	.LC283(%rip), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	movq	%r13, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12370
	leaq	.LC284(%rip), %rsi
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %esi
	testl	%eax, %eax
	je	.L12371
	leaq	.LC285(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12389
	leaq	.LC286(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	$2, %esi
	testl	%eax, %eax
	je	.L12371
.L12369:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12389:

	.cfi_restore_state
	movl	$1, %esi
.L12371:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_hkdf_mode@PLT
	jmp	.LEVP_PKEY_CTX_hkdf_mode_local_target
	.p2align 4,,10
	.p2align 3
.L12370:

	.cfi_restore_state
	cmpb	$109, 0(%r13)
	jne	.L12375
	cmpb	$100, 1(%r13)
	je	.L12406
.L12375:

	leaq	.LC287(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12407
	leaq	.LC288(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L12408
	leaq	.LC289(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12409
	leaq	.LC290(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L12410
	leaq	.LC291(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12411
	leaq	.LC292(%rip), %rsi
	movq	%r13, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L12390
	movq	%rbp, %rdi
	movq	%rsp, %rsi
	movq	$0, (%rsp)
# WAS call	OPENSSL_hexstr2buf@PLT
	call	.Lbcm_redirector_OPENSSL_hexstr2buf
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L12369
	movq	(%rsp), %rdx
	movq	%r12, %rdi
	movq	%rax, %rsi
# WAS call	EVP_PKEY_CTX_add1_hkdf_info@PLT
	call	.LEVP_PKEY_CTX_add1_hkdf_info_local_target
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L12369
	.p2align 4,,10
	.p2align 3
.L12406:

	cmpb	$0, 2(%r13)
	jne	.L12375
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rcx
	movq	%r12, %rdi
	movl	$4111, %edx
	popq	%rbx
	.cfi_def_cfa_offset 32
	movl	$256, %esi
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_md@PLT
	jmp	.LEVP_PKEY_CTX_md_local_target
	.p2align 4,,10
	.p2align 3
.L12408:

	.cfi_restore_state
	movq	%rbp, %rdi
	movq	%rsp, %rsi
	movq	$0, (%rsp)
# WAS call	OPENSSL_hexstr2buf@PLT
	call	.Lbcm_redirector_OPENSSL_hexstr2buf
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L12369
	movq	(%rsp), %rdx
	movq	%r12, %rdi
	movq	%rax, %rsi
# WAS call	EVP_PKEY_CTX_set1_hkdf_salt@PLT
	call	.LEVP_PKEY_CTX_set1_hkdf_salt_local_target
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L12369
	.p2align 4,,10
	.p2align 3
.L12407:

	movl	$32767, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_strnlen@PLT
	call	.Lbcm_redirector_OPENSSL_strnlen
	movq	%rax, %rdx
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set1_hkdf_salt@PLT
	jmp	.LEVP_PKEY_CTX_set1_hkdf_salt_local_target
	.p2align 4,,10
	.p2align 3
.L12410:

	.cfi_restore_state
	movq	%rbp, %rdi
	movq	%rsp, %rsi
	movq	$0, (%rsp)
# WAS call	OPENSSL_hexstr2buf@PLT
	call	.Lbcm_redirector_OPENSSL_hexstr2buf
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L12369
	movq	(%rsp), %rdx
	movq	%r12, %rdi
	movq	%rax, %rsi
# WAS call	EVP_PKEY_CTX_set1_hkdf_key@PLT
	call	.LEVP_PKEY_CTX_set1_hkdf_key_local_target
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L12369
	.p2align 4,,10
	.p2align 3
.L12409:

	movl	$32767, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_strnlen@PLT
	call	.Lbcm_redirector_OPENSSL_strnlen
	movq	%rax, %rdx
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set1_hkdf_key@PLT
	jmp	.LEVP_PKEY_CTX_set1_hkdf_key_local_target
	.p2align 4,,10
	.p2align 3
.L12411:

	.cfi_restore_state
	movl	$32767, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_strnlen@PLT
	call	.Lbcm_redirector_OPENSSL_strnlen
	movq	%rax, %rdx
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12405
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rsi
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_add1_hkdf_info@PLT
	jmp	.LEVP_PKEY_CTX_add1_hkdf_info_local_target
.L12390:

	.cfi_restore_state
	movl	$-2, %ebx
	jmp	.L12369
.L12405:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2242:

	.size	pkey_hkdf_ctrl_str, .-pkey_hkdf_ctrl_str
# WAS .section	.text.EVP_PKEY_hmac_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_hmac_pkey_meth
	.hidden	EVP_PKEY_hmac_pkey_meth
	.type	EVP_PKEY_hmac_pkey_meth, @function
.LEVP_PKEY_hmac_pkey_meth_local_target:
EVP_PKEY_hmac_pkey_meth:
.LFB2256:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_hmac_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_hmac_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_hmac_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_hmac_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_hmac_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_hmac_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2256:

	.size	EVP_PKEY_hmac_pkey_meth, .-EVP_PKEY_hmac_pkey_meth
# WAS .section	.text.used_for_hmac,"ax",@progbits
.text
	.p2align 4
	.globl	used_for_hmac
	.hidden	used_for_hmac
	.type	used_for_hmac, @function
.Lused_for_hmac_local_target:
used_for_hmac:
.LFB2258:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	cmpq	$2048, 40(%rdi)
	je	.L12417
	ret
	.p2align 4,,10
	.p2align 3
.L12417:

	xorl	%eax, %eax
	cmpq	$0, 24(%rdi)
	setne	%al
	ret
	.cfi_endproc
.LFE2258:

	.size	used_for_hmac, .-used_for_hmac
# WAS .section	.text.HMAC_KEY_new,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_KEY_new
	.hidden	HMAC_KEY_new
	.type	HMAC_KEY_new, @function
.LHMAC_KEY_new_local_target:
HMAC_KEY_new:
.LFB2259:

	.cfi_startproc
	endbr64
	movl	$16, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE2259:

	.size	HMAC_KEY_new, .-HMAC_KEY_new
# WAS .section	.text.EVP_PKEY_kem_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_kem_pkey_meth
	.hidden	EVP_PKEY_kem_pkey_meth
	.type	EVP_PKEY_kem_pkey_meth, @function
.LEVP_PKEY_kem_pkey_meth_local_target:
EVP_PKEY_kem_pkey_meth:
.LFB2268:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_kem_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_kem_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_kem_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_kem_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_kem_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_kem_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2268:

	.size	EVP_PKEY_kem_pkey_meth, .-EVP_PKEY_kem_pkey_meth
# WAS .section	.text.EVP_PKEY_kem_new_raw_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_kem_new_raw_public_key
	.type	EVP_PKEY_kem_new_raw_public_key, @function
.LEVP_PKEY_kem_new_raw_public_key_local_target:
EVP_PKEY_kem_new_raw_public_key:
.LFB2273:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L12436
	movq	%rsi, %rbp
	movq	%rdx, %r12
# WAS call	EVP_PKEY_kem_new
	call	.LEVP_PKEY_kem_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L12425
	movq	8(%rax), %r13
	testq	%r13, %r13
	je	.L12425
	movq	0(%r13), %rax
	movq	32(%rax), %rsi
	cmpq	%r12, %rsi
	jne	.L12437
	movq	%rbp, %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 8(%r13)
	testq	%rax, %rax
	je	.L12425
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12437:

	.cfi_restore_state
	movl	$404, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$137, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12425:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
.L12438:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12436:

	.cfi_restore_state
	movl	$392, %r8d
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC5(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12438
	.cfi_endproc
.LFE2273:

	.size	EVP_PKEY_kem_new_raw_public_key, .-EVP_PKEY_kem_new_raw_public_key
# WAS .section	.text.EVP_PKEY_kem_new_raw_secret_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_kem_new_raw_secret_key
	.type	EVP_PKEY_kem_new_raw_secret_key, @function
.LEVP_PKEY_kem_new_raw_secret_key_local_target:
EVP_PKEY_kem_new_raw_secret_key:
.LFB2274:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L12454
	movq	%rsi, %rbp
	movq	%rdx, %r12
# WAS call	EVP_PKEY_kem_new
	call	.LEVP_PKEY_kem_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L12443
	movq	8(%rax), %r13
	testq	%r13, %r13
	je	.L12443
	movq	0(%r13), %rax
	movq	40(%rax), %rsi
	cmpq	%r12, %rsi
	jne	.L12455
	movq	%rbp, %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rax, 16(%r13)
	testq	%rax, %rax
	je	.L12443
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12455:

	.cfi_restore_state
	movl	$434, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$137, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12443:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
.L12456:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12454:

	.cfi_restore_state
	movl	$422, %r8d
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC5(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12456
	.cfi_endproc
.LFE2274:

	.size	EVP_PKEY_kem_new_raw_secret_key, .-EVP_PKEY_kem_new_raw_secret_key
# WAS .section	.text.EVP_PKEY_kem_new_raw_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_kem_new_raw_key
	.type	EVP_PKEY_kem_new_raw_key, @function
.LEVP_PKEY_kem_new_raw_key_local_target:
EVP_PKEY_kem_new_raw_key:
.LFB2275:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rsi, %rsi
	je	.L12466
	movq	%rcx, %r12
	testq	%rcx, %rcx
	je	.L12466
	movq	%rsi, %rbp
	movq	%rdx, %r15
	movq	%r8, %r14
# WAS call	EVP_PKEY_kem_new
	call	.LEVP_PKEY_kem_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L12461
	movq	8(%rax), %r13
	testq	%r13, %r13
	je	.L12461
	movq	0(%r13), %rax
	movq	32(%rax), %rsi
	cmpq	%r15, %rsi
	jne	.L12462
	cmpq	%r14, 40(%rax)
	jne	.L12462
	movq	%rbp, %rdi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%r12, %rdi
	movq	%rax, 8(%r13)
	movq	0(%r13), %rax
	movq	40(%rax), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	8(%r13), %rdi
	movq	%rax, 16(%r13)
	testq	%rdi, %rdi
	je	.L12467
	testq	%rax, %rax
	jne	.L12457
.L12467:

	movq	$0, 0(%r13)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%r13), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movups	%xmm0, 8(%r13)
.L12461:

	movq	%rbx, %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
.L12460:

	xorl	%ebx, %ebx
.L12457:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12462:

	.cfi_restore_state
	movl	$466, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$137, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	%rbx, %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	jmp	.L12460
	.p2align 4,,10
	.p2align 3
.L12466:

	movl	$454, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12460
	.cfi_endproc
.LFE2275:

	.size	EVP_PKEY_kem_new_raw_key, .-EVP_PKEY_kem_new_raw_key
# WAS .section	.text.EVP_PKEY_rsa_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_rsa_pkey_meth
	.hidden	EVP_PKEY_rsa_pkey_meth
	.type	EVP_PKEY_rsa_pkey_meth, @function
.LEVP_PKEY_rsa_pkey_meth_local_target:
EVP_PKEY_rsa_pkey_meth:
.LFB2298:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_rsa_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_rsa_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_rsa_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_rsa_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_rsa_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_rsa_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2298:

	.size	EVP_PKEY_rsa_pkey_meth, .-EVP_PKEY_rsa_pkey_meth
# WAS .section	.text.EVP_PKEY_rsa_pss_pkey_meth,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_rsa_pss_pkey_meth
	.hidden	EVP_PKEY_rsa_pss_pkey_meth
	.type	EVP_PKEY_rsa_pss_pkey_meth, @function
.LEVP_PKEY_rsa_pss_pkey_meth_local_target:
EVP_PKEY_rsa_pss_pkey_meth:
.LFB2301:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_PKEY_rsa_pss_pkey_meth_once_bss_get@PLT
	call	EVP_PKEY_rsa_pss_pkey_meth_once_bss_get
# WAS leaq	EVP_PKEY_rsa_pss_pkey_meth_init(%rip), %rsi
	leaq	.LEVP_PKEY_rsa_pss_pkey_meth_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get@PLT
	jmp	EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get
	.cfi_endproc
.LFE2301:

	.size	EVP_PKEY_rsa_pss_pkey_meth, .-EVP_PKEY_rsa_pss_pkey_meth
# WAS .section	.text.EVP_RSA_PKEY_CTX_ctrl,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_RSA_PKEY_CTX_ctrl
	.hidden	EVP_RSA_PKEY_CTX_ctrl
	.type	EVP_RSA_PKEY_CTX_ctrl, @function
.LEVP_RSA_PKEY_CTX_ctrl_local_target:
EVP_RSA_PKEY_CTX_ctrl:
.LFB2303:

	.cfi_startproc
	endbr64
	movq	%r8, %r9
	testq	%rdi, %rdi
	je	.L12483
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12483
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12483
	cmpl	$912, %eax
	jne	.L12498
.L12483:

	movl	%ecx, %r8d
	movl	%edx, %ecx
	movl	%esi, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12498:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2303:

	.size	EVP_RSA_PKEY_CTX_ctrl, .-EVP_RSA_PKEY_CTX_ctrl
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_padding,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_padding
	.type	EVP_PKEY_CTX_set_rsa_padding, @function
.LEVP_PKEY_CTX_set_rsa_padding_local_target:
EVP_PKEY_CTX_set_rsa_padding:
.LFB2304:

	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	testq	%rdi, %rdi
	je	.L12502
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12502
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12502
	cmpl	$912, %eax
	jne	.L12517
.L12502:

	xorl	%r9d, %r9d
	movl	$4097, %ecx
	movl	$-1, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12517:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2304:

	.size	EVP_PKEY_CTX_set_rsa_padding, .-EVP_PKEY_CTX_set_rsa_padding
# WAS .section	.text.EVP_PKEY_CTX_get_rsa_padding,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_rsa_padding
	.type	EVP_PKEY_CTX_get_rsa_padding, @function
.LEVP_PKEY_CTX_get_rsa_padding_local_target:
EVP_PKEY_CTX_get_rsa_padding:
.LFB2305:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	testq	%rdi, %rdi
	je	.L12521
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12521
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12521
	cmpl	$912, %eax
	jne	.L12536
.L12521:

	xorl	%r8d, %r8d
	movl	$4098, %ecx
	movl	$-1, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12536:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2305:

	.size	EVP_PKEY_CTX_get_rsa_padding, .-EVP_PKEY_CTX_get_rsa_padding
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_pss_keygen_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_pss_keygen_md
	.type	EVP_PKEY_CTX_set_rsa_pss_keygen_md, @function
.LEVP_PKEY_CTX_set_rsa_pss_keygen_md_local_target:
EVP_PKEY_CTX_set_rsa_pss_keygen_md:
.LFB2306:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2306:

	.size	EVP_PKEY_CTX_set_rsa_pss_keygen_md, .-EVP_PKEY_CTX_set_rsa_pss_keygen_md
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
	.type	EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen, @function
.LEVP_PKEY_CTX_set_rsa_pss_keygen_saltlen_local_target:
EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen:
.LFB2307:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2307:

	.size	EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen, .-EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md
	.type	EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md, @function
.LEVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_local_target:
EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md:
.LFB3137:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE3137:

	.size	EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md, .-EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_pss_saltlen,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_pss_saltlen
	.type	EVP_PKEY_CTX_set_rsa_pss_saltlen, @function
.LEVP_PKEY_CTX_set_rsa_pss_saltlen_local_target:
EVP_PKEY_CTX_set_rsa_pss_saltlen:
.LFB2309:

	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	testq	%rdi, %rdi
	je	.L12543
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12543
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12543
	cmpl	$912, %eax
	jne	.L12558
.L12543:

	xorl	%r9d, %r9d
	movl	$4099, %ecx
	movl	$24, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12558:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2309:

	.size	EVP_PKEY_CTX_set_rsa_pss_saltlen, .-EVP_PKEY_CTX_set_rsa_pss_saltlen
# WAS .section	.text.EVP_PKEY_CTX_get_rsa_pss_saltlen,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_rsa_pss_saltlen
	.type	EVP_PKEY_CTX_get_rsa_pss_saltlen, @function
.LEVP_PKEY_CTX_get_rsa_pss_saltlen_local_target:
EVP_PKEY_CTX_get_rsa_pss_saltlen:
.LFB2310:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	testq	%rdi, %rdi
	je	.L12562
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12562
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12562
	cmpl	$912, %eax
	jne	.L12577
.L12562:

	xorl	%r8d, %r8d
	movl	$4100, %ecx
	movl	$24, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12577:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2310:

	.size	EVP_PKEY_CTX_get_rsa_pss_saltlen, .-EVP_PKEY_CTX_get_rsa_pss_saltlen
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_keygen_bits,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_keygen_bits
	.type	EVP_PKEY_CTX_set_rsa_keygen_bits, @function
.LEVP_PKEY_CTX_set_rsa_keygen_bits_local_target:
EVP_PKEY_CTX_set_rsa_keygen_bits:
.LFB2311:

	.cfi_startproc
	endbr64
	movl	%esi, %r8d
	testq	%rdi, %rdi
	je	.L12581
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12581
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12581
	cmpl	$912, %eax
	jne	.L12596
.L12581:

	xorl	%r9d, %r9d
	movl	$4101, %ecx
	movl	$4, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12596:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2311:

	.size	EVP_PKEY_CTX_set_rsa_keygen_bits, .-EVP_PKEY_CTX_set_rsa_keygen_bits
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_keygen_pubexp,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_keygen_pubexp
	.type	EVP_PKEY_CTX_set_rsa_keygen_pubexp, @function
.LEVP_PKEY_CTX_set_rsa_keygen_pubexp_local_target:
EVP_PKEY_CTX_set_rsa_keygen_pubexp:
.LFB2312:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	testq	%rdi, %rdi
	je	.L12600
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12600
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12600
	cmpl	$912, %eax
	jne	.L12615
.L12600:

	xorl	%r8d, %r8d
	movl	$4102, %ecx
	movl	$4, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12615:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2312:

	.size	EVP_PKEY_CTX_set_rsa_keygen_pubexp, .-EVP_PKEY_CTX_set_rsa_keygen_pubexp
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_oaep_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_oaep_md
	.type	EVP_PKEY_CTX_set_rsa_oaep_md, @function
.LEVP_PKEY_CTX_set_rsa_oaep_md_local_target:
EVP_PKEY_CTX_set_rsa_oaep_md:
.LFB2313:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	xorl	%r8d, %r8d
	movl	$4103, %ecx
	movl	$192, %edx
	movl	$6, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2313:

	.size	EVP_PKEY_CTX_set_rsa_oaep_md, .-EVP_PKEY_CTX_set_rsa_oaep_md
# WAS .section	.text.EVP_PKEY_CTX_get_rsa_oaep_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_rsa_oaep_md
	.type	EVP_PKEY_CTX_get_rsa_oaep_md, @function
.LEVP_PKEY_CTX_get_rsa_oaep_md_local_target:
EVP_PKEY_CTX_get_rsa_oaep_md:
.LFB2314:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	xorl	%r8d, %r8d
	movl	$4104, %ecx
	movl	$192, %edx
	movl	$6, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.cfi_endproc
.LFE2314:

	.size	EVP_PKEY_CTX_get_rsa_oaep_md, .-EVP_PKEY_CTX_get_rsa_oaep_md
# WAS .section	.text.EVP_PKEY_CTX_set_rsa_mgf1_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set_rsa_mgf1_md
	.type	EVP_PKEY_CTX_set_rsa_mgf1_md, @function
.LEVP_PKEY_CTX_set_rsa_mgf1_md_local_target:
EVP_PKEY_CTX_set_rsa_mgf1_md:
.LFB2315:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	testq	%rdi, %rdi
	je	.L12621
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12621
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12621
	cmpl	$912, %eax
	jne	.L12636
.L12621:

	xorl	%r8d, %r8d
	movl	$4105, %ecx
	movl	$248, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12636:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2315:

	.size	EVP_PKEY_CTX_set_rsa_mgf1_md, .-EVP_PKEY_CTX_set_rsa_mgf1_md
# WAS .section	.text.EVP_PKEY_CTX_get_rsa_mgf1_md,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get_rsa_mgf1_md
	.type	EVP_PKEY_CTX_get_rsa_mgf1_md, @function
.LEVP_PKEY_CTX_get_rsa_mgf1_md_local_target:
EVP_PKEY_CTX_get_rsa_mgf1_md:
.LFB2316:

	.cfi_startproc
	endbr64
	movq	%rsi, %r9
	testq	%rdi, %rdi
	je	.L12640
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12640
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L12640
	cmpl	$912, %eax
	jne	.L12655
.L12640:

	xorl	%r8d, %r8d
	movl	$4106, %ecx
	movl	$248, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L12655:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
	movl	$842, %r8d
	leaq	.LC258(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2316:

	.size	EVP_PKEY_CTX_get_rsa_mgf1_md, .-EVP_PKEY_CTX_get_rsa_mgf1_md
# WAS .section	.text.EVP_PKEY_CTX_set0_rsa_oaep_label,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_set0_rsa_oaep_label
	.type	EVP_PKEY_CTX_set0_rsa_oaep_label, @function
.LEVP_PKEY_CTX_set0_rsa_oaep_label_local_target:
EVP_PKEY_CTX_set0_rsa_oaep_label:
.LFB2317:

	.cfi_startproc
	endbr64
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	xorl	%r8d, %r8d
	movl	$4107, %ecx
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r9
	movq	%rsi, (%rsp)
	movl	$6, %esi
	movq	%rdx, 8(%rsp)
	movl	$192, %edx
# WAS call	EVP_PKEY_CTX_ctrl@PLT
	call	.LEVP_PKEY_CTX_ctrl_local_target
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12661
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L12661:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2317:

	.size	EVP_PKEY_CTX_set0_rsa_oaep_label, .-EVP_PKEY_CTX_set0_rsa_oaep_label
# WAS .section	.rodata.pkey_rsa_ctrl_str.str1.1,"aMS",@progbits,1
.text
.LC293:

	.string	"rsa_padding_mode"
.LC294:

	.string	"pkcs1"
.LC295:

	.string	"none"
.LC296:

	.string	"oeap"
.LC297:

	.string	"oaep"
.LC298:

	.string	"pss"
.LC299:

	.string	"rsa_pss_saltlen"
.LC300:

	.string	"rsa_keygen_bits"
.LC301:

	.string	"rsa_keygen_pubexp"
.LC302:

	.string	"rsa_mgf1_md"
.LC303:

	.string	"rsa_oaep_md"
.LC304:

	.string	"rsa_oaep_label"
# WAS .section	.text.pkey_rsa_ctrl_str,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_ctrl_str, @function
.Lpkey_rsa_ctrl_str_local_target:
pkey_rsa_ctrl_str:
.LFB2296:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L12703
	movq	%rsi, %rbp
	movq	%rdi, %r12
	leaq	.LC293(%rip), %rsi
	movq	%rdx, %rbx
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12665
	leaq	.LC294(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12688
	leaq	.LC295(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12689
	leaq	.LC296(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12691
	leaq	.LC297(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12691
	leaq	.LC298(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12704
	movl	$6, %esi
.L12666:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12702
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set_rsa_padding@PLT
	jmp	.LEVP_PKEY_CTX_set_rsa_padding_local_target
	.p2align 4,,10
	.p2align 3
.L12665:

	.cfi_restore_state
	leaq	.LC299(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	jne	.L12669
	leaq	.LC279(%rip), %rsi
	movq	%rbx, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12693
	movq	%rsp, %rsi
	movl	$10, %edx
	movq	%rbx, %rdi
# WAS call	__isoc23_strtol@PLT
	call	.Lbcm_redirector___isoc23_strtol
	movq	%rax, %rsi
	cmpq	%rbx, (%rsp)
	je	.L12671
	cmpq	$2147483647, %rax
	ja	.L12671
.L12670:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12702
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_set_rsa_pss_saltlen@PLT
	jmp	.LEVP_PKEY_CTX_set_rsa_pss_saltlen_local_target
	.p2align 4,,10
	.p2align 3
.L12669:

	.cfi_restore_state
	leaq	.LC300(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12705
	leaq	.LC301(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12706
	leaq	.LC302(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12707
	leaq	.LC303(%rip), %rsi
	movq	%rbp, %rdi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	testl	%eax, %eax
	je	.L12708
	movq	%rbp, %rdi
	leaq	.LC304(%rip), %rsi
# WAS call	strcmp@PLT
	call	.Lbcm_redirector_strcmp
	movl	%eax, %ebp
	testl	%eax, %eax
	jne	.L12667
	movq	%rbx, %rdi
	movq	%rsp, %rsi
	movq	$0, (%rsp)
# WAS call	OPENSSL_hexstr2buf@PLT
	call	.Lbcm_redirector_OPENSSL_hexstr2buf
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L12662
	movq	(%rsp), %rdx
	movq	%rax, %rsi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_CTX_set0_rsa_oaep_label@PLT
	call	.LEVP_PKEY_CTX_set0_rsa_oaep_label_local_target
	movl	%eax, %ebp
	testl	%eax, %eax
	jg	.L12662
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L12662
	.p2align 4,,10
	.p2align 3
.L12691:

	movl	$4, %esi
	jmp	.L12666
	.p2align 4,,10
	.p2align 3
.L12693:

	movl	$-1, %esi
	jmp	.L12670
	.p2align 4,,10
	.p2align 3
.L12705:

	movq	%rsp, %rsi
	movl	$10, %edx
	movq	%rbx, %rdi
# WAS call	__isoc23_strtol@PLT
	call	.Lbcm_redirector___isoc23_strtol
	cmpq	%rbx, (%rsp)
	je	.L12675
	leaq	-1(%rax), %rdx
	cmpq	$2147483646, %rdx
	jbe	.L12676
.L12675:

	movl	$742, %r8d
.L12700:

	leaq	.LC258(%rip), %rcx
	movl	$124, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12667:

	movl	$-2, %ebp
	.p2align 4,,10
	.p2align 3
.L12662:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12702
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12689:

	.cfi_restore_state
	movl	$3, %esi
	jmp	.L12666
	.p2align 4,,10
	.p2align 3
.L12703:

	movl	$696, %r8d
	movl	$144, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	leaq	.LC258(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12662
	.p2align 4,,10
	.p2align 3
.L12688:

	movl	$1, %esi
	jmp	.L12666
	.p2align 4,,10
	.p2align 3
.L12676:

	movl	%eax, %esi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_CTX_set_rsa_keygen_bits@PLT
	call	.LEVP_PKEY_CTX_set_rsa_keygen_bits_local_target
	movl	%eax, %ebp
	jmp	.L12662
	.p2align 4,,10
	.p2align 3
.L12706:

	movq	%rsp, %rdi
	movq	%rbx, %rsi
	movl	$-2, %ebp
	movq	$0, (%rsp)
# WAS call	BN_asc2bn@PLT
	call	.Lbcm_redirector_BN_asc2bn
	testl	%eax, %eax
	je	.L12662
	movq	(%rsp), %rsi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_CTX_set_rsa_keygen_pubexp@PLT
	call	.LEVP_PKEY_CTX_set_rsa_keygen_pubexp_local_target
	movl	%eax, %ebp
	testl	%eax, %eax
	jg	.L12662
	movq	(%rsp), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L12662
	.p2align 4,,10
	.p2align 3
.L12707:

	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12702
	movq	%rbx, %rcx
	movl	$4105, %edx
	movl	$248, %esi
.L12701:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movq	%r12, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_CTX_md@PLT
	jmp	.LEVP_PKEY_CTX_md_local_target
	.p2align 4,,10
	.p2align 3
.L12708:

	.cfi_restore_state
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12702
	movq	%rbx, %rcx
	movl	$4103, %edx
	movl	$192, %esi
	jmp	.L12701
.L12671:

	movl	$731, %r8d
	jmp	.L12700
.L12704:

	movl	$715, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$143, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L12667
.L12702:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2296:

	.size	pkey_rsa_ctrl_str, .-pkey_rsa_ctrl_str
# WAS .section	.text.EVP_PKEY_CTX_get0_rsa_oaep_label,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_get0_rsa_oaep_label
	.type	EVP_PKEY_CTX_get0_rsa_oaep_label, @function
.LEVP_PKEY_CTX_get0_rsa_oaep_label_local_target:
EVP_PKEY_CTX_get0_rsa_oaep_label:
.LFB2318:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	xorl	%r8d, %r8d
	movq	%rsi, %rbp
	movl	$4108, %ecx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movl	$192, %edx
	movl	$6, %esi
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rbx, %r9
# WAS call	EVP_PKEY_CTX_ctrl@PLT
	call	.LEVP_PKEY_CTX_ctrl_local_target
	testl	%eax, %eax
	je	.L12710
	movq	%rbx, %rdi
# WAS call	CBS_len@PLT
	call	.Lbcm_redirector_CBS_len
	cmpq	$2147483647, %rax
	ja	.L12718
	movq	%rbx, %rdi
# WAS call	CBS_data@PLT
	call	.Lbcm_redirector_CBS_data
	movq	%rbx, %rdi
	movq	%rax, 0(%rbp)
# WAS call	CBS_len@PLT
	call	.Lbcm_redirector_CBS_len
.L12709:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12719
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12718:

	.cfi_restore_state
	movl	$928, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$69, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L12710:

	movl	$-1, %eax
	jmp	.L12709
.L12719:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2318:

	.size	EVP_PKEY_CTX_get0_rsa_oaep_label, .-EVP_PKEY_CTX_get0_rsa_oaep_label
# WAS .section	.text.HMAC_CTX_init,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_init
	.type	HMAC_CTX_init, @function
.LHMAC_CTX_init_local_target:
HMAC_CTX_init:
.LFB2368:

	.cfi_startproc
	endbr64
	movq	$0, (%rdi)
	movq	%rdi, %rcx
	leaq	8(%rdi), %rdi
	xorl	%eax, %eax
	movq	$0, 656(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$672, %ecx
	shrl	$3, %ecx
	rep stosq
	ret
	.cfi_endproc
.LFE2368:

	.size	HMAC_CTX_init, .-HMAC_CTX_init
# WAS .section	.text.hmac_init,"ax",@progbits
.text
	.p2align 4
	.type	hmac_init, @function
.Lhmac_init_local_target:
hmac_init:
.LFB2251:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	movl	$680, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %rbx
	xorl	%eax, %eax
	testq	%rbx, %rbx
	je	.L12721
	leaq	8(%rbx), %rdi
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	%rbx, 40(%rbp)
	movl	$1, %eax
.L12721:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2251:

	.size	hmac_init, .-hmac_init
# WAS .section	.text.HMAC_CTX_new,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_new
	.type	HMAC_CTX_new, @function
.LHMAC_CTX_new_local_target:
HMAC_CTX_new:
.LFB2369:

	.cfi_startproc
	endbr64
	movl	$672, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE2369:

	.size	HMAC_CTX_new, .-HMAC_CTX_new
# WAS .section	.text.HMAC_CTX_cleanup,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_cleanup
	.type	HMAC_CTX_cleanup, @function
.LHMAC_CTX_cleanup_local_target:
HMAC_CTX_cleanup:
.LFB2370:

	.cfi_startproc
	endbr64
	movl	$672, %esi
# WAS jmp	OPENSSL_cleanse@PLT
	jmp	.Lbcm_redirector_OPENSSL_cleanse
	.cfi_endproc
.LFE2370:

	.size	HMAC_CTX_cleanup, .-HMAC_CTX_cleanup
# WAS .section	.text.HMAC_CTX_cleanse,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_cleanse
	.type	HMAC_CTX_cleanse, @function
.LHMAC_CTX_cleanse_local_target:
HMAC_CTX_cleanse:
.LFB2371:

	.cfi_startproc
	endbr64
# WAS jmp	HMAC_CTX_cleanup@PLT
	jmp	.LHMAC_CTX_cleanup_local_target
	.cfi_endproc
.LFE2371:

	.size	HMAC_CTX_cleanse, .-HMAC_CTX_cleanse
# WAS .section	.text.HMAC_CTX_free,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_free
	.type	HMAC_CTX_free, @function
.LHMAC_CTX_free_local_target:
HMAC_CTX_free:
.LFB2372:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12730
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L12730:

	ret
	.cfi_endproc
.LFE2372:

	.size	HMAC_CTX_free, .-HMAC_CTX_free
# WAS .section	.text.HMAC_Update,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_Update
	.type	HMAC_Update, @function
.LHMAC_Update_local_target:
HMAC_Update:
.LFB2375:

	.cfi_startproc
	endbr64
	movzbl	664(%rdi), %eax
	subl	$1, %eax
	cmpb	$1, %al
	ja	.L12736
	movq	8(%rdi), %rax
	leaq	16(%rdi), %rcx
	movb	$2, 664(%rdi)
	movq	%rcx, %rdi
	movq	24(%rax), %rax
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L12736:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2375:

	.size	HMAC_Update, .-HMAC_Update
# WAS .section	.text.hmac_update,"ax",@progbits
.text
	.p2align 4
	.type	hmac_update, @function
.Lhmac_update_local_target:
hmac_update:
.LFB2111:

	.cfi_startproc
	endbr64
	movq	24(%rdi), %rax
	movq	40(%rax), %rdi
	addq	$8, %rdi
# WAS jmp	HMAC_Update@PLT
	jmp	.LHMAC_Update_local_target
	.cfi_endproc
.LFE2111:

	.size	hmac_update, .-hmac_update
# WAS .section	.text.HMAC_size,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_size
	.type	HMAC_size, @function
.LHMAC_size_local_target:
HMAC_size:
.LFB2377:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdi
# WAS jmp	EVP_MD_size@PLT
	jmp	.LEVP_MD_size_local_target
	.cfi_endproc
.LFE2377:

	.size	HMAC_size, .-HMAC_size
# WAS .section	.text.sskdf_variant_hmac_output_size,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_hmac_output_size, @function
.Lsskdf_variant_hmac_output_size_local_target:
sskdf_variant_hmac_output_size:
.LFB2396:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12739
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L12739
	movq	(%rax), %rdi
# WAS jmp	HMAC_size@PLT
	jmp	.LHMAC_size_local_target
	.p2align 4,,10
	.p2align 3
.L12739:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2396:

	.size	sskdf_variant_hmac_output_size, .-sskdf_variant_hmac_output_size
# WAS .section	.text.HMAC_CTX_get_md,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_get_md
	.type	HMAC_CTX_get_md, @function
.LHMAC_CTX_get_md_local_target:
HMAC_CTX_get_md:
.LFB2378:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE2378:

	.size	HMAC_CTX_get_md, .-HMAC_CTX_get_md
# WAS .section	.text.HMAC_CTX_copy_ex,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_copy_ex
	.type	HMAC_CTX_copy_ex, @function
.LHMAC_CTX_copy_ex_local_target:
HMAC_CTX_copy_ex:
.LFB2379:

	.cfi_startproc
	endbr64
	movq	(%rsi), %rax
	movq	%rdi, %rcx
	leaq	8(%rdi), %rdi
	movq	%rax, -8(%rdi)
	movq	664(%rsi), %rax
	movq	%rax, 656(%rdi)
	andq	$-8, %rdi
	movl	$1, %eax
	subq	%rdi, %rcx
	subq	%rcx, %rsi
	addl	$672, %ecx
	shrl	$3, %ecx
	rep movsq
	ret
	.cfi_endproc
.LFE2379:

	.size	HMAC_CTX_copy_ex, .-HMAC_CTX_copy_ex
# WAS .section	.text.hmac_copy,"ax",@progbits
.text
	.p2align 4
	.type	hmac_copy, @function
.Lhmac_copy_local_target:
hmac_copy:
.LFB2252:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	movl	$680, %edi
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L12748
	leaq	8(%rax), %r13
	movq	%rax, %rbx
	movq	%r13, %rdi
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	%rbx, 40(%r12)
	movq	40(%rbp), %rsi
	movq	%r13, %rdi
	movq	(%rsi), %rax
	addq	$8, %rsi
	movq	%rax, (%rbx)
# WAS call	HMAC_CTX_copy_ex@PLT
	call	.LHMAC_CTX_copy_ex_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L12755
.L12747:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12755:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L12748:

	xorl	%eax, %eax
	jmp	.L12747
	.cfi_endproc
.LFE2252:

	.size	hmac_copy, .-hmac_copy
# WAS .section	.text.HMAC_CTX_reset,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_reset
	.type	HMAC_CTX_reset, @function
.LHMAC_CTX_reset_local_target:
HMAC_CTX_reset:
.LFB3107:

	.cfi_startproc
	endbr64
# WAS jmp	HMAC_CTX_cleanup@PLT
	jmp	.LHMAC_CTX_cleanup_local_target
	.cfi_endproc
.LFE3107:

	.size	HMAC_CTX_reset, .-HMAC_CTX_reset
# WAS .section	.rodata.HMAC_set_precomputed_key_export.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC305:

	.string	"/aws-lc/crypto/fipsmodule/hmac/hmac.c"
# WAS .section	.text.HMAC_set_precomputed_key_export,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_set_precomputed_key_export
	.type	HMAC_set_precomputed_key_export, @function
.LHMAC_set_precomputed_key_export_local_target:
HMAC_set_precomputed_key_export:
.LFB2381:

	.cfi_startproc
	endbr64
	movzbl	664(%rdi), %eax
	cmpb	$1, %al
	je	.L12758
	cmpb	$4, %al
	jne	.L12770
.L12758:

	movb	$4, 664(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12770:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$28, %edi
	movl	$500, %r8d
	leaq	.LC305(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2381:

	.size	HMAC_set_precomputed_key_export, .-HMAC_set_precomputed_key_export
# WAS .section	.text.HMAC_get_precomputed_key,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_get_precomputed_key
	.type	HMAC_get_precomputed_key, @function
.LHMAC_get_precomputed_key_local_target:
HMAC_get_precomputed_key:
.LFB2382:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	cmpb	$4, 664(%rdi)
	jne	.L12785
	testq	%rdx, %rdx
	je	.L12786
	movq	8(%rdi), %rax
	movq	%rdi, %rbx
	movq	%rsi, %rbp
	movq	8(%rax), %r12
	leaq	(%r12,%r12), %rcx
	testq	%rsi, %rsi
	je	.L12787
	cmpq	%rcx, (%rdx)
	jb	.L12788
	movq	%rcx, (%rdx)
	leaq	232(%rdi), %rdi
	leaq	8(%rsp), %rdx
	movq	$0, 16(%rsp)
	call	*48(%rax)
	testl	%eax, %eax
	jne	.L12789
.L12779:

	movq	(%rbx), %rdi
# WAS call	EVP_MD_block_size@PLT
	call	.LEVP_MD_block_size_local_target
	movb	$1, 664(%rbx)
.L12777:

	movl	$1, %eax
.L12771:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L12790
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12785:

	.cfi_restore_state
	movl	$509, %r8d
	leaq	.LC305(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12771
	.p2align 4,,10
	.p2align 3
.L12789:

	movq	8(%rbx), %rax
	leaq	16(%rsp), %rdx
	leaq	0(%rbp,%r12), %rsi
	leaq	448(%rbx), %rdi
	call	*48(%rax)
	jmp	.L12779
	.p2align 4,,10
	.p2align 3
.L12787:

	movq	%rcx, (%rdx)
	jmp	.L12777
	.p2align 4,,10
	.p2align 3
.L12788:

	movl	$530, %r8d
	leaq	.LC305(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$28, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12771
	.p2align 4,,10
	.p2align 3
.L12786:

	movl	$514, %r8d
	leaq	.LC305(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12771
.L12790:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2382:

	.size	HMAC_get_precomputed_key, .-HMAC_get_precomputed_key
# WAS .section	.text.HMAC_CTX_copy,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_CTX_copy
	.type	HMAC_CTX_copy, @function
.LHMAC_CTX_copy_local_target:
HMAC_CTX_copy:
.LFB2385:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	HMAC_CTX_copy_ex@PLT
	jmp	.LHMAC_CTX_copy_ex_local_target
	.cfi_endproc
.LFE2385:

	.size	HMAC_CTX_copy, .-HMAC_CTX_copy
# WAS .section	.text.sskdf_variant_digest,"ax",@progbits
.text
	.p2align 4
	.globl	sskdf_variant_digest
	.hidden	sskdf_variant_digest
	.type	sskdf_variant_digest, @function
.Lsskdf_variant_digest_local_target:
sskdf_variant_digest:
.LFB2392:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	sskdf_variant_digest_once_bss_get@PLT
	call	sskdf_variant_digest_once_bss_get
# WAS leaq	sskdf_variant_digest_init(%rip), %rsi
	leaq	.Lsskdf_variant_digest_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	sskdf_variant_digest_storage_bss_get@PLT
	jmp	sskdf_variant_digest_storage_bss_get
	.cfi_endproc
.LFE2392:

	.size	sskdf_variant_digest, .-sskdf_variant_digest
# WAS .section	.text.sskdf_variant_hmac,"ax",@progbits
.text
	.p2align 4
	.globl	sskdf_variant_hmac
	.hidden	sskdf_variant_hmac
	.type	sskdf_variant_hmac, @function
.Lsskdf_variant_hmac_local_target:
sskdf_variant_hmac:
.LFB2399:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	sskdf_variant_hmac_once_bss_get@PLT
	call	sskdf_variant_hmac_once_bss_get
# WAS leaq	sskdf_variant_hmac_init(%rip), %rsi
	leaq	.Lsskdf_variant_hmac_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	sskdf_variant_hmac_storage_bss_get@PLT
	jmp	sskdf_variant_hmac_storage_bss_get
	.cfi_endproc
.LFE2399:

	.size	sskdf_variant_hmac, .-sskdf_variant_hmac
# WAS .section	.text.KEM_find_kem_by_nid,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_find_kem_by_nid
	.hidden	KEM_find_kem_by_nid
	.type	KEM_find_kem_by_nid, @function
.LKEM_find_kem_by_nid_local_target:
KEM_find_kem_by_nid:
.LFB2437:

	.cfi_startproc
	endbr64
	subl	$972, %edi
	cmpl	$18, %edi
	ja	.L12807
	leaq	.L12800(%rip), %rdx
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movslq	(%rdx,%rdi,4), %rax
	addq	%rdx, %rax
	notrack jmp	*%rax
# WAS .section	.rodata.KEM_find_kem_by_nid,"a",@progbits
.text
	.align 4
	.align 4
.L12800:

	.long	.L12805-.L12800
	.long	.L12804-.L12800
	.long	.L12803-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12798-.L12800
	.long	.L12802-.L12800
	.long	.L12801-.L12800
	.long	.L12799-.L12800
# WAS .section	.text.KEM_find_kem_by_nid
.text
	.p2align 4,,10
	.p2align 3
.L12798:

	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12805:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	get_legacy_kem_kyber512_r3@PLT
	jmp	.Lbcm_redirector_get_legacy_kem_kyber512_r3
	.p2align 4,,10
	.p2align 3
.L12804:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	get_legacy_kem_kyber768_r3@PLT
	jmp	.Lbcm_redirector_get_legacy_kem_kyber768_r3
	.p2align 4,,10
	.p2align 3
.L12803:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	get_legacy_kem_kyber1024_r3@PLT
	jmp	.Lbcm_redirector_get_legacy_kem_kyber1024_r3
	.p2align 4,,10
	.p2align 3
.L12802:

	.cfi_restore_state
# WAS call	KEM_ml_kem_512_once_bss_get@PLT
	call	KEM_ml_kem_512_once_bss_get
# WAS leaq	KEM_ml_kem_512_init(%rip), %rsi
	leaq	.LKEM_ml_kem_512_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	KEM_ml_kem_512_storage_bss_get@PLT
	jmp	KEM_ml_kem_512_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L12801:

	.cfi_restore_state
# WAS call	KEM_ml_kem_768_once_bss_get@PLT
	call	KEM_ml_kem_768_once_bss_get
# WAS leaq	KEM_ml_kem_768_init(%rip), %rsi
	leaq	.LKEM_ml_kem_768_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	KEM_ml_kem_768_storage_bss_get@PLT
	jmp	KEM_ml_kem_768_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L12799:

	.cfi_restore_state
# WAS call	KEM_ml_kem_1024_once_bss_get@PLT
	call	KEM_ml_kem_1024_once_bss_get
# WAS leaq	KEM_ml_kem_1024_init(%rip), %rsi
	leaq	.LKEM_ml_kem_1024_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	KEM_ml_kem_1024_storage_bss_get@PLT
	jmp	KEM_ml_kem_1024_storage_bss_get
	.p2align 4,,10
	.p2align 3
.L12807:

	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2437:

	.size	KEM_find_kem_by_nid, .-KEM_find_kem_by_nid
# WAS .section	.text.EVP_PKEY_CTX_kem_set_params,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_CTX_kem_set_params
	.type	EVP_PKEY_CTX_kem_set_params, @function
.LEVP_PKEY_CTX_kem_set_params_local_target:
EVP_PKEY_CTX_kem_set_params:
.LFB2270:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	testq	%rdi, %rdi
	je	.L12811
	cmpq	$0, 40(%rdi)
	movq	%rdi, %rbx
	je	.L12811
	cmpq	$0, 16(%rdi)
	je	.L12814
	movl	$339, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L12810:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12814:

	.cfi_restore_state
	movl	%esi, %edi
# WAS call	KEM_find_kem_by_nid
	call	.LKEM_find_kem_by_nid_local_target
	testq	%rax, %rax
	je	.L12821
	movq	40(%rbx), %rdx
	movq	%rax, (%rdx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12811:

	.cfi_restore_state
	movl	$332, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12810
	.p2align 4,,10
	.p2align 3
.L12821:

	movl	$345, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L12810
	.cfi_endproc
.LFE2270:

	.size	EVP_PKEY_CTX_kem_set_params, .-EVP_PKEY_CTX_kem_set_params
# WAS .section	.text.KEM_KEY_new,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_new
	.hidden	KEM_KEY_new
	.type	KEM_KEY_new, @function
.LKEM_KEY_new_local_target:
KEM_KEY_new:
.LFB2438:

	.cfi_startproc
	endbr64
	movl	$24, %edi
# WAS jmp	OPENSSL_zalloc@PLT
	jmp	.Lbcm_redirector_OPENSSL_zalloc
	.cfi_endproc
.LFE2438:

	.size	KEM_KEY_new, .-KEM_KEY_new
# WAS .section	.text.KEM_KEY_init,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_init
	.hidden	KEM_KEY_init
	.type	KEM_KEY_init, @function
.LKEM_KEY_init_local_target:
KEM_KEY_init:
.LFB2440:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12831
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L12824
	movq	$0, (%rdi)
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, (%rbx)
	movq	32(%rbp), %rdi
	movq	$0, 8(%rbx)
	movq	$0, 16(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	40(%rbp), %rdi
	movq	%rax, 8(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	8(%rbx), %rdi
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L12828
	movl	$1, %eax
	testq	%rdi, %rdi
	je	.L12828
.L12823:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12828:

	.cfi_restore_state
	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
.L12824:

	xorl	%eax, %eax
	jmp	.L12823
	.p2align 4,,10
	.p2align 3
.L12831:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2440:

	.size	KEM_KEY_init, .-KEM_KEY_init
# WAS .section	.text.KEM_KEY_free,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_free
	.hidden	KEM_KEY_free
	.type	KEM_KEY_free, @function
.LKEM_KEY_free_local_target:
KEM_KEY_free:
.LFB2441:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L12835
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	$0, (%rdi)
	movq	8(%rdi), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movq	%rbx, %rdi
	movups	%xmm0, 8(%rbx)
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L12835:

	ret
	.cfi_endproc
.LFE2441:

	.size	KEM_KEY_free, .-KEM_KEY_free
# WAS .section	.text.KEM_KEY_get0_kem,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_get0_kem
	.hidden	KEM_KEY_get0_kem
	.type	KEM_KEY_get0_kem, @function
.LKEM_KEY_get0_kem_local_target:
KEM_KEY_get0_kem:
.LFB2442:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	ret
	.cfi_endproc
.LFE2442:

	.size	KEM_KEY_get0_kem, .-KEM_KEY_get0_kem
# WAS .section	.text.KEM_KEY_set_raw_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_set_raw_public_key
	.hidden	KEM_KEY_set_raw_public_key
	.type	KEM_KEY_set_raw_public_key, @function
.LKEM_KEY_set_raw_public_key_local_target:
KEM_KEY_set_raw_public_key:
.LFB2443:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	(%rbx), %rax
	movq	32(%rax), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	testq	%rax, %rax
	movq	%rax, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	setne	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2443:

	.size	KEM_KEY_set_raw_public_key, .-KEM_KEY_set_raw_public_key
# WAS .section	.text.KEM_KEY_set_raw_secret_key,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_set_raw_secret_key
	.hidden	KEM_KEY_set_raw_secret_key
	.type	KEM_KEY_set_raw_secret_key, @function
.LKEM_KEY_set_raw_secret_key_local_target:
KEM_KEY_set_raw_secret_key:
.LFB2444:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	(%rbx), %rax
	movq	40(%rax), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	testq	%rax, %rax
	movq	%rax, 16(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	setne	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2444:

	.size	KEM_KEY_set_raw_secret_key, .-KEM_KEY_set_raw_secret_key
# WAS .section	.text.KEM_KEY_set_raw_key,"ax",@progbits
.text
	.p2align 4
	.globl	KEM_KEY_set_raw_key
	.hidden	KEM_KEY_set_raw_key
	.type	KEM_KEY_set_raw_key, @function
.LKEM_KEY_set_raw_key_local_target:
KEM_KEY_set_raw_key:
.LFB2445:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	(%rbx), %rax
	movq	32(%rax), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	%rbp, %rdi
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rax
	movq	40(%rax), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	movq	8(%rbx), %rdi
	movq	%rax, 16(%rbx)
	testq	%rdi, %rdi
	je	.L12849
	movl	$1, %edx
	testq	%rax, %rax
	je	.L12849
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12849:

	.cfi_restore_state
	movq	$0, (%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	xorl	%edx, %edx
	movups	%xmm0, 8(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2445:

	.size	KEM_KEY_set_raw_key, .-KEM_KEY_set_raw_key
# WAS .section	.text.MD4_Init,"ax",@progbits
.text
	.p2align 4
	.globl	MD4_Init
	.type	MD4_Init, @function
.LMD4_Init_local_target:
MD4_Init:
.LFB2449:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movl	$1, %eax
	movups	%xmm0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 76(%rdi)
	movdqa	.LC306(%rip), %xmm0
	movups	%xmm0, (%rdi)
	ret
	.cfi_endproc
.LFE2449:

	.size	MD4_Init, .-MD4_Init
# WAS .section	.text.md4_init,"ax",@progbits
.text
	.p2align 4
	.type	md4_init, @function
.Lmd4_init_local_target:
md4_init:
.LFB1632:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	MD4_Init@PLT
	jmp	.LMD4_Init_local_target
	.cfi_endproc
.LFE1632:

	.size	md4_init, .-md4_init
# WAS .section	.text.md4_block_data_order,"ax",@progbits
.text
	.p2align 4
	.globl	md4_block_data_order
	.hidden	md4_block_data_order
	.type	md4_block_data_order, @function
.Lmd4_block_data_order_local_target:
md4_block_data_order:
.LFB2453:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	4(%rax), %r9d
	movl	12(%rax), %ebp
	movq	%rdi, -16(%rsp)
	movl	(%rdi), %edi
	movl	%edi, -64(%rsp)
	movl	8(%rax), %edi
	leaq	-1(%rdx), %rax
	movq	%rax, -72(%rsp)
	testq	%rdx, %rdx
	je	.L12854
	movq	%rsi, %r10
	.p2align 4,,10
	.p2align 3
.L12855:

	movl	%ebp, %eax
	movl	(%r10), %ebx
	movl	%edi, %r8d
	movl	4(%r10), %esi
	xorl	%edi, %eax
	xorl	%r9d, %r8d
	movl	8(%r10), %ecx
	movl	12(%r10), %r11d
	andl	%r9d, %eax
	movl	%ebx, -60(%rsp)
	leal	0(%rbp,%rsi), %edx
	movl	24(%r10), %r13d
	xorl	%ebp, %eax
	movl	%esi, -56(%rsp)
	addl	%ebx, %eax
	movl	-64(%rsp), %ebx
	movl	%ecx, -52(%rsp)
	movl	%r11d, -48(%rsp)
	addl	%ebx, %eax
	movl	%r13d, -36(%rsp)
	movl	56(%r10), %ebx
	roll	$3, %eax
	andl	%eax, %r8d
	movl	%eax, %r14d
	xorl	%edi, %r8d
	xorl	%r9d, %r14d
	addl	%edx, %r8d
	movl	%r14d, %esi
	leal	(%rdi,%rcx), %edx
	movl	16(%r10), %r14d
	roll	$7, %r8d
	andl	%r8d, %esi
	movl	%r8d, %r12d
	movl	%r14d, -44(%rsp)
	xorl	%r9d, %esi
	xorl	%eax, %r12d
	addl	%edx, %esi
	movl	%r12d, %ecx
	leal	(%r9,%r11), %edx
	movl	20(%r10), %r12d
	roll	$11, %esi
	movl	28(%r10), %r11d
	andl	%esi, %ecx
	movl	%r12d, -40(%rsp)
	xorl	%eax, %ecx
	addl	%r14d, %eax
	movl	40(%r10), %r14d
	movl	%r11d, -32(%rsp)
	addl	%edx, %ecx
	movl	%esi, %edx
	rorl	$13, %ecx
	xorl	%r8d, %edx
	movl	%r14d, -24(%rsp)
	andl	%ecx, %edx
	xorl	%r8d, %edx
	addl	%r12d, %r8d
	movl	36(%r10), %r12d
	addl	%eax, %edx
	movl	%ecx, %eax
	roll	$3, %edx
	xorl	%esi, %eax
	movl	%r12d, -28(%rsp)
	andl	%edx, %eax
	xorl	%esi, %eax
	addl	%r8d, %eax
	movl	%edx, %r8d
	roll	$7, %eax
	xorl	%ecx, %r8d
	addl	%r13d, %esi
	movl	32(%r10), %r13d
	andl	%eax, %r8d
	xorl	%ecx, %r8d
	addl	%r11d, %ecx
	movl	44(%r10), %r11d
	addl	%esi, %r8d
	movl	%eax, %esi
	roll	$11, %r8d
	xorl	%edx, %esi
	movl	%r11d, -20(%rsp)
	andl	%r8d, %esi
	xorl	%edx, %esi
	addl	%r13d, %edx
	addl	%ecx, %esi
	movl	%r8d, %ecx
	rorl	$13, %esi
	xorl	%eax, %ecx
	andl	%esi, %ecx
	xorl	%eax, %ecx
	addl	%r12d, %eax
	movl	48(%r10), %r12d
	addl	%edx, %ecx
	movl	%esi, %edx
	roll	$3, %ecx
	xorl	%r8d, %edx
	andl	%ecx, %edx
	xorl	%r8d, %edx
	addl	%r14d, %r8d
	addl	%eax, %edx
	movl	%esi, %eax
	roll	$7, %edx
	xorl	%ecx, %eax
	andl	%edx, %eax
	xorl	%esi, %eax
	addl	%r8d, %eax
	movl	%ecx, %r8d
	xorl	%edx, %r8d
	roll	$11, %eax
	movl	%r8d, %r14d
	movl	%edx, %r8d
	andl	%eax, %r14d
	addl	%r11d, %esi
	xorl	%eax, %r8d
	movl	52(%r10), %r11d
	xorl	%ecx, %r14d
	addl	%r12d, %ecx
	addq	$64, %r10
	addl	%esi, %r14d
	movl	%r8d, %esi
	movl	%eax, %r8d
	rorl	$13, %r14d
	andl	%r14d, %esi
	xorl	%r14d, %r8d
	xorl	%edx, %esi
	addl	%r11d, %edx
	addl	%ecx, %esi
	movl	%r8d, %ecx
	movl	-4(%r10), %r8d
	roll	$3, %esi
	andl	%esi, %ecx
	xorl	%eax, %ecx
	addl	%ebx, %eax
	addl	%edx, %ecx
	movl	%r14d, %edx
	roll	$7, %ecx
	xorl	%esi, %edx
	andl	%ecx, %edx
	movl	%ecx, %r15d
	xorl	%r14d, %edx
	addl	%r8d, %r14d
	addl	%eax, %edx
	movl	%esi, %eax
	roll	$11, %edx
	xorl	%ecx, %eax
	andl	%edx, %eax
	orl	%edx, %r15d
	xorl	%esi, %eax
	addl	%r14d, %eax
	movl	%ecx, %r14d
	rorl	$13, %eax
	andl	%eax, %r15d
	andl	%edx, %r14d
	orl	%r15d, %r14d
	movl	-60(%rsp), %r15d
	leal	1518500249(%rsi,%r15), %esi
	movl	%edx, %r15d
	addl	%esi, %r14d
	movl	%edx, %esi
	leal	1518500249(%rdx,%r13), %edx
	andl	%eax, %r15d
	roll	$3, %r14d
	orl	%eax, %esi
	andl	%r14d, %esi
	orl	%esi, %r15d
	movl	-44(%rsp), %esi
	leal	1518500249(%rcx,%rsi), %ecx
	movl	%eax, %esi
	addl	%ecx, %r15d
	movl	%eax, %ecx
	leal	1518500249(%rax,%r12), %eax
	andl	%r14d, %esi
	roll	$5, %r15d
	orl	%r14d, %ecx
	andl	%r15d, %ecx
	orl	%ecx, %esi
	movl	%r14d, %ecx
	addl	%edx, %esi
	movl	%r14d, %edx
	andl	%r15d, %ecx
	roll	$9, %esi
	orl	%r15d, %edx
	andl	%esi, %edx
	orl	%edx, %ecx
	movl	%r15d, %edx
	addl	%eax, %ecx
	orl	%esi, %edx
	movl	%r15d, %eax
	roll	$13, %ecx
	andl	%esi, %eax
	andl	%ecx, %edx
	orl	%edx, %eax
	movl	-56(%rsp), %edx
	leal	1518500249(%r14,%rdx), %r14d
	movl	%esi, %edx
	addl	%eax, %r14d
	movl	%esi, %eax
	andl	%ecx, %edx
	roll	$3, %r14d
	orl	%ecx, %eax
	andl	%r14d, %eax
	orl	%eax, %edx
	movl	-40(%rsp), %eax
	leal	1518500249(%r15,%rax), %eax
	addl	%eax, %edx
	movl	%ecx, %eax
	orl	%r14d, %eax
	roll	$5, %edx
	movl	%eax, %r15d
	movl	%ecx, %eax
	leal	1518500249(%rcx,%r11), %ecx
	andl	%edx, %r15d
	andl	%r14d, %eax
	orl	%r15d, %eax
	movl	-28(%rsp), %r15d
	leal	1518500249(%rsi,%r15), %esi
	movl	%r14d, %r15d
	addl	%esi, %eax
	movl	%r14d, %esi
	andl	%edx, %r15d
	roll	$9, %eax
	orl	%edx, %esi
	andl	%eax, %esi
	orl	%esi, %r15d
	movl	%edx, %esi
	addl	%ecx, %r15d
	movl	%edx, %ecx
	andl	%eax, %esi
	roll	$13, %r15d
	orl	%eax, %ecx
	andl	%r15d, %ecx
	orl	%ecx, %esi
	movl	-52(%rsp), %ecx
	leal	1518500249(%r14,%rcx), %ecx
	addl	%ecx, %esi
	movl	%eax, %ecx
	orl	%r15d, %ecx
	roll	$3, %esi
	movl	%ecx, %r14d
	movl	%eax, %ecx
	andl	%esi, %r14d
	andl	%r15d, %ecx
	orl	%r14d, %ecx
	movl	-36(%rsp), %r14d
	leal	1518500249(%rdx,%r14), %edx
	movl	%r15d, %r14d
	addl	%edx, %ecx
	movl	%r15d, %edx
	andl	%esi, %r14d
	roll	$5, %ecx
	orl	%esi, %edx
	andl	%ecx, %edx
	orl	%edx, %r14d
	movl	-24(%rsp), %edx
	leal	1518500249(%rax,%rdx), %eax
	movl	%esi, %edx
	addl	%eax, %r14d
	movl	%esi, %eax
	roll	$9, %r14d
	orl	%ecx, %eax
	andl	%ecx, %edx
	andl	%r14d, %eax
	orl	%eax, %edx
	leal	1518500249(%r15,%rbx), %eax
	addl	%eax, %edx
	movl	%ecx, %eax
	orl	%r14d, %eax
	roll	$13, %edx
	movl	%eax, %r15d
	movl	%ecx, %eax
	andl	%edx, %r15d
	andl	%r14d, %eax
	orl	%r15d, %eax
	movl	-48(%rsp), %r15d
	leal	1518500249(%rsi,%r15), %esi
	addl	%esi, %eax
	movl	%r14d, %esi
	orl	%edx, %esi
	roll	$3, %eax
	movl	%esi, %r15d
	movl	%r14d, %esi
	andl	%eax, %r15d
	andl	%edx, %esi
	orl	%r15d, %esi
	movl	-32(%rsp), %r15d
	leal	1518500249(%rcx,%r15), %ecx
	addl	%esi, %ecx
	movl	%edx, %esi
	orl	%eax, %esi
	roll	$5, %ecx
	movl	%esi, %r15d
	movl	%edx, %esi
	leal	1518500249(%rdx,%r8), %edx
	andl	%ecx, %r15d
	andl	%eax, %esi
	orl	%r15d, %esi
	movl	-20(%rsp), %r15d
	leal	1518500249(%r14,%r15), %r14d
	addl	%esi, %r14d
	movl	%eax, %esi
	orl	%ecx, %esi
	roll	$9, %r14d
	movl	%esi, %r15d
	movl	%eax, %esi
	andl	%r14d, %r15d
	andl	%ecx, %esi
	orl	%r15d, %esi
	movl	-60(%rsp), %r15d
	addl	%edx, %esi
	movl	%ecx, %edx
	leal	1859775393(%rcx,%r13), %ecx
	movl	-44(%rsp), %r13d
	roll	$13, %esi
	xorl	%r14d, %edx
	leal	1859775393(%rax,%r15), %eax
	movl	-52(%rsp), %r15d
	xorl	%esi, %edx
	leal	1859775393(%r14,%r13), %r13d
	addl	%eax, %edx
	movl	%r14d, %eax
	movl	-24(%rsp), %r14d
	roll	$3, %edx
	xorl	%esi, %eax
	xorl	%edx, %eax
	addl	%ecx, %eax
	movl	%esi, %ecx
	leal	1859775393(%rsi,%r12), %esi
	movl	-40(%rsp), %r12d
	roll	$9, %eax
	xorl	%edx, %ecx
	xorl	%eax, %ecx
	addl	%r13d, %ecx
	movl	%edx, %r13d
	leal	1859775393(%rdx,%r15), %edx
	movl	-56(%rsp), %r15d
	roll	$11, %ecx
	xorl	%eax, %r13d
	xorl	%ecx, %r13d
	addl	%esi, %r13d
	movl	%eax, %esi
	leal	1859775393(%rax,%r14), %eax
	movl	-36(%rsp), %r14d
	roll	$15, %r13d
	xorl	%ecx, %esi
	xorl	%r13d, %esi
	leal	1859775393(%r13,%rbx), %ebx
	addl	%edx, %esi
	movl	%ecx, %edx
	leal	1859775393(%rcx,%r14), %ecx
	movl	-28(%rsp), %r14d
	roll	$3, %esi
	xorl	%r13d, %edx
	xorl	%esi, %edx
	addl	%eax, %edx
	movl	%r13d, %eax
	roll	$9, %edx
	xorl	%esi, %eax
	xorl	%edx, %eax
	movl	%edx, %r13d
	addl	%ecx, %eax
	movl	%esi, %ecx
	leal	1859775393(%rsi,%r15), %esi
	movl	-48(%rsp), %r15d
	roll	$11, %eax
	xorl	%edx, %ecx
	leal	1859775393(%rdx,%r14), %edx
	movl	-20(%rsp), %r14d
	xorl	%eax, %ecx
	xorl	%eax, %r13d
	addl	%ebx, %ecx
	movl	%r13d, %ebx
	roll	$15, %ecx
	xorl	%ecx, %ebx
	addl	%esi, %ebx
	movl	%eax, %esi
	leal	1859775393(%rax,%r12), %eax
	roll	$3, %ebx
	xorl	%ecx, %esi
	xorl	%ebx, %esi
	addl	%edx, %esi
	movl	%ecx, %edx
	leal	1859775393(%rcx,%r11), %ecx
	roll	$9, %esi
	xorl	%ebx, %edx
	leal	1859775393(%rbx,%r15), %r11d
	movl	-32(%rsp), %r15d
	xorl	%esi, %edx
	addl	%eax, %edx
	movl	%ebx, %eax
	roll	$11, %edx
	xorl	%esi, %eax
	xorl	%edx, %eax
	addl	%ecx, %eax
	movl	%esi, %ecx
	leal	1859775393(%rsi,%r14), %esi
	roll	$15, %eax
	xorl	%edx, %ecx
	xorl	%eax, %ecx
	addl	%r11d, %ecx
	movl	%edx, %r11d
	leal	1859775393(%rdx,%r15), %edx
	roll	$3, %ecx
	xorl	%eax, %r11d
	addl	%ecx, -64(%rsp)
	movl	-64(%rsp), %ebx
	xorl	%ecx, %r11d
	addl	%r11d, %esi
	movl	%eax, %r11d
	leal	1859775393(%rax,%r8), %eax
	roll	$9, %esi
	xorl	%ecx, %r11d
	movd	%ebx, %xmm0
	xorl	%esi, %r11d
	xorl	%esi, %ecx
	addl	%r11d, %edx
	roll	$11, %edx
	xorl	%edx, %ecx
	addl	%eax, %ecx
	movq	-16(%rsp), %rax
	roll	$15, %ecx
	addl	%ecx, %r9d
	addl	%edx, %edi
	addl	%esi, %ebp
	subq	$1, -72(%rsp)
	movd	%edi, %xmm1
	movd	%ebp, %xmm2
	movd	%r9d, %xmm3
	punpckldq	%xmm2, %xmm1
	punpckldq	%xmm3, %xmm0
	punpcklqdq	%xmm1, %xmm0
	movups	%xmm0, (%rax)
	movq	-72(%rsp), %rax
	cmpq	$-1, %rax
	jne	.L12855
.L12854:

	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2453:

	.size	md4_block_data_order, .-md4_block_data_order
# WAS .section	.text.MD4_Transform,"ax",@progbits
.text
	.p2align 4
	.globl	MD4_Transform
	.type	MD4_Transform, @function
.LMD4_Transform_local_target:
MD4_Transform:
.LFB2450:

	.cfi_startproc
	endbr64
	movl	$1, %edx
# WAS jmp	md4_block_data_order
	jmp	.Lmd4_block_data_order_local_target
	.cfi_endproc
.LFE2450:

	.size	MD4_Transform, .-MD4_Transform
# WAS .section	.text.MD4_Final,"ax",@progbits
.text
	.p2align 4
	.globl	MD4_Final
	.type	MD4_Final, @function
.LMD4_Final_local_target:
MD4_Final:
.LFB2452:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	24(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	88(%rsi), %eax
	movq	%rsi, %rbx
	movq	16(%rsi), %xmm4
	movb	$-128, 24(%rsi,%rax)
	addq	$1, %rax
	cmpq	$56, %rax
	jbe	.L12862
	movl	$64, %edx
	subq	%rax, %rdx
	jne	.L12894
.L12863:

	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	md4_block_data_order
	call	.Lmd4_block_data_order_local_target
	movq	%r12, %rax
	movl	$56, %edx
.L12866:

	movl	%edx, %ecx
	xorl	%edi, %edi
	cmpl	$8, %edx
	jnb	.L12868
	andl	$4, %edx
	jne	.L12895
	testl	%ecx, %ecx
	jne	.L12896
.L12867:

	movq	%xmm4, 80(%rbx)
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
# WAS call	md4_block_data_order
	call	.Lmd4_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbx)
	movups	%xmm0, 24(%rbx)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	movl	(%rbx), %eax
	movl	%eax, 0(%rbp)
	movl	4(%rbx), %eax
	movl	%eax, 4(%rbp)
	movl	8(%rbx), %eax
	movl	%eax, 8(%rbp)
	movl	12(%rbx), %eax
	movl	%eax, 12(%rbp)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12868:

	.cfi_restore_state
	leaq	8(%rax), %rsi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rsi
	subq	%rsi, %rax
	leal	(%rdx,%rax), %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L12867
	andl	$-8, %ecx
	xorl	%eax, %eax
.L12872:

	movl	%eax, %edx
	addl	$8, %eax
	movq	%rdi, (%rsi,%rdx)
	cmpl	%ecx, %eax
	jb	.L12872
	jmp	.L12867
	.p2align 4,,10
	.p2align 3
.L12894:

	addq	%r12, %rax
	xorl	%ecx, %ecx
	testb	$1, %dl
	je	.L12864
	movl	$1, %ecx
	movb	$0, (%rax)
	cmpq	%rdx, %rcx
	jnb	.L12863
.L12864:

	movb	$0, (%rax,%rcx)
	movb	$0, 1(%rax,%rcx)
	addq	$2, %rcx
	cmpq	%rdx, %rcx
	jb	.L12864
	jmp	.L12863
	.p2align 4,,10
	.p2align 3
.L12862:

	movl	$56, %edx
	subq	%rax, %rdx
	je	.L12867
	addq	%r12, %rax
	jmp	.L12866
	.p2align 4,,10
	.p2align 3
.L12896:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L12867
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L12867
	.p2align 4,,10
	.p2align 3
.L12895:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L12867
	.cfi_endproc
.LFE2452:

	.size	MD4_Final, .-MD4_Final
# WAS .section	.text.md4_final,"ax",@progbits
.text
	.p2align 4
	.type	md4_final, @function
.Lmd4_final_local_target:
md4_final:
.LFB1634:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	MD4_Final@PLT
	jmp	.LMD4_Final_local_target
	.cfi_endproc
.LFE1634:

	.size	md4_final, .-md4_final
# WAS .section	.text.MD4_Update,"ax",@progbits
.text
	.p2align 4
	.globl	MD4_Update
	.type	MD4_Update, @function
.LMD4_Update_local_target:
MD4_Update:
.LFB2451:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L12945
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	0(,%rdx,8), %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	24(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	movq	%rbx, %rcx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	20(%rdi), %edx
	addl	16(%rdi), %eax
	movl	%eax, 16(%rdi)
	adcl	$0, %edx
	shrq	$29, %rcx
	addl	%ecx, %edx
	movl	%edx, 20(%rdi)
	movl	88(%rdi), %edx
	testq	%rdx, %rdx
	je	.L12904
	leaq	(%rbx,%rdx), %rax
	leaq	0(%r13,%rdx), %rdi
	orq	%rbx, %rax
	cmpq	$63, %rax
	jbe	.L12905
	movl	$64, %eax
	leaq	-64(%rdx,%rbx), %rbx
	subq	%rdx, %rax
	movq	%rbx, %r14
	leaq	(%rsi,%rax), %r15
	shrq	$6, %r14
	testq	%rax, %rax
	je	.L12906
	cmpq	$8, %rax
	jnb	.L12907
	testb	$4, %al
	jne	.L12949
	testq	%rax, %rax
	je	.L12908
	movzbl	(%rsi), %edx
	movb	%dl, (%rdi)
	testb	$2, %al
	je	.L12908
	movzwl	-2(%rsi,%rax), %edx
	movw	%dx, -2(%rdi,%rax)
	.p2align 4,,10
	.p2align 3
.L12908:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	md4_block_data_order
	call	.Lmd4_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbp)
	movups	%xmm0, 24(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L12913
	jmp	.L12923
	.p2align 4,,10
	.p2align 3
.L12904:

	cmpq	$63, %rbx
	jbe	.L12915
	movq	%rbx, %r14
	shrq	$6, %r14
.L12914:

	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	md4_block_data_order
	call	.Lmd4_block_data_order_local_target
	movq	%rbx, %rax
	andl	$63, %ebx
	andq	$-64, %rax
	leaq	(%r12,%rax), %r15
.L12913:

	testq	%rbx, %rbx
	jne	.L12948
.L12930:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12948:

	.cfi_restore_state
	movl	%ebx, %r14d
	movq	%r15, %r12
.L12915:

	movl	%r14d, 88(%rbp)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jb	.L12950
	movq	(%r12), %rax
	leaq	8(%r13), %rsi
	andq	$-8, %rsi
	movq	%rax, 24(%rbp)
	movl	%ebx, %eax
	movq	-8(%r12,%rax), %rdx
	movq	%rdx, -8(%r13,%rax)
	movq	%r13, %rax
	subq	%rsi, %rax
	subq	%rax, %r12
	addl	%ebx, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L12930
	andl	$-8, %eax
	xorl	%edx, %edx
.L12921:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	(%r12,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L12921
	jmp	.L12930
	.p2align 4,,10
	.p2align 3
.L12945:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L12950:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	andl	$4, %ebx
	jne	.L12951
	testl	%eax, %eax
	je	.L12930
	movzbl	(%r12), %edx
	movb	%dl, 24(%rbp)
	testb	$2, %al
	je	.L12930
	movzwl	-2(%r12,%rax), %edx
	movw	%dx, -2(%r13,%rax)
	jmp	.L12930
	.p2align 4,,10
	.p2align 3
.L12906:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	md4_block_data_order
	call	.Lmd4_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbp)
	movups	%xmm0, 24(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L12948
.L12923:

	movq	%r15, %r12
	jmp	.L12914
	.p2align 4,,10
	.p2align 3
.L12907:

	movq	(%rsi), %rdx
	leaq	8(%rdi), %rcx
	andq	$-8, %rcx
	movq	%rdx, (%rdi)
	movq	-8(%rsi,%rax), %rdx
	movq	%rdx, -8(%rdi,%rax)
	subq	%rcx, %rdi
	addq	%rdi, %rax
	subq	%rdi, %r12
	andq	$-8, %rax
	cmpq	$8, %rax
	jb	.L12908
	andq	$-8, %rax
	xorl	%edx, %edx
.L12911:

	movq	(%r12,%rdx), %rsi
	movq	%rsi, (%rcx,%rdx)
	addq	$8, %rdx
	cmpq	%rax, %rdx
	jb	.L12911
	jmp	.L12908
	.p2align 4,,10
	.p2align 3
.L12905:

	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addl	%ebx, 88(%rbp)
	jmp	.L12930
	.p2align 4,,10
	.p2align 3
.L12951:

	movl	(%r12), %edx
	movl	%edx, 24(%rbp)
	movl	-4(%r12,%rax), %edx
	movl	%edx, -4(%r13,%rax)
	jmp	.L12930
.L12949:

	movl	(%rsi), %edx
	movl	%edx, (%rdi)
	movl	-4(%rsi,%rax), %edx
	movl	%edx, -4(%rdi,%rax)
	jmp	.L12908
	.cfi_endproc
.LFE2451:

	.size	MD4_Update, .-MD4_Update
# WAS .section	.text.md4_update,"ax",@progbits
.text
	.p2align 4
	.type	md4_update, @function
.Lmd4_update_local_target:
md4_update:
.LFB1633:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	MD4_Update@PLT
	jmp	.LMD4_Update_local_target
	.cfi_endproc
.LFE1633:

	.size	md4_update, .-md4_update
# WAS .section	.text.MD4,"ax",@progbits
.text
	.p2align 4
	.globl	MD4
	.type	MD4, @function
.LMD4_local_target:
MD4:
.LFB2448:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rdi
# WAS call	MD4_Init@PLT
	call	.LMD4_Init_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movq	%r13, %rdx
# WAS call	MD4_Update@PLT
	call	.LMD4_Update_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	MD4_Final@PLT
	call	.LMD4_Final_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L12956
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L12956:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2448:

	.size	MD4, .-MD4
# WAS .section	.text.MD5_Init,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_Init
	.type	MD5_Init, @function
.LMD5_Init_local_target:
MD5_Init:
.LFB2455:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movl	$1, %eax
	movups	%xmm0, 64(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 76(%rdi)
	movdqa	.LC306(%rip), %xmm0
	movups	%xmm0, (%rdi)
	ret
	.cfi_endproc
.LFE2455:

	.size	MD5_Init, .-MD5_Init
# WAS .section	.text.md5_init,"ax",@progbits
.text
	.p2align 4
	.type	md5_init, @function
.Lmd5_init_local_target:
md5_init:
.LFB1638:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	MD5_Init@PLT
	jmp	.LMD5_Init_local_target
	.cfi_endproc
.LFE1638:

	.size	md5_init, .-md5_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_MD5_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_MD5_Init, @function
.LAWS_LC_TRAMPOLINE_MD5_Init_local_target:
AWS_LC_TRAMPOLINE_MD5_Init:
.LFB2322:

	.cfi_startproc
	endbr64
# WAS jmp	MD5_Init@PLT
	jmp	.LMD5_Init_local_target
	.cfi_endproc
.LFE2322:

	.size	AWS_LC_TRAMPOLINE_MD5_Init, .-AWS_LC_TRAMPOLINE_MD5_Init
# WAS .section	.text.MD5_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_Init_from_state
	.type	MD5_Init_from_state, @function
.LMD5_Init_from_state_local_target:
MD5_Init_from_state:
.LFB2456:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$511, %r9d
	je	.L12963
	ret
	.p2align 4,,10
	.p2align 3
.L12963:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 76(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$92, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	(%rsi), %eax
	bswap	%eax
	movl	%eax, (%r8)
	movl	4(%rsi), %eax
	bswap	%eax
	movl	%eax, 4(%r8)
	movl	8(%rsi), %eax
	bswap	%eax
	movl	%eax, 8(%r8)
	movl	12(%rsi), %eax
	movq	%rdx, 16(%r8)
	bswap	%eax
	movl	%eax, 12(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2456:

	.size	MD5_Init_from_state, .-MD5_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_MD5_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_MD5_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_MD5_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_MD5_Init_from_state:
.LFB2325:

	.cfi_startproc
	endbr64
# WAS jmp	MD5_Init_from_state@PLT
	jmp	.LMD5_Init_from_state_local_target
	.cfi_endproc
.LFE2325:

	.size	AWS_LC_TRAMPOLINE_MD5_Init_from_state, .-AWS_LC_TRAMPOLINE_MD5_Init_from_state
# WAS .section	.text.MD5_Transform,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_Transform
	.type	MD5_Transform, @function
.LMD5_Transform_local_target:
MD5_Transform:
.LFB2457:

	.cfi_startproc
	endbr64
	movl	$1, %edx
# WAS jmp	md5_block_asm_data_order@PLT
	jmp	.Lmd5_block_asm_data_order_local_target
	.cfi_endproc
.LFE2457:

	.size	MD5_Transform, .-MD5_Transform
# WAS .section	.text.MD5_Update,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_Update
	.type	MD5_Update, @function
.LMD5_Update_local_target:
MD5_Update:
.LFB2458:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L13013
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	0(,%rdx,8), %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	24(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	movq	%rbx, %rcx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	20(%rdi), %edx
	addl	16(%rdi), %eax
	movl	%eax, 16(%rdi)
	adcl	$0, %edx
	shrq	$29, %rcx
	addl	%ecx, %edx
	movl	%edx, 20(%rdi)
	movl	88(%rdi), %edx
	testq	%rdx, %rdx
	je	.L12972
	leaq	(%rbx,%rdx), %rax
	leaq	0(%r13,%rdx), %rdi
	orq	%rbx, %rax
	cmpq	$63, %rax
	jbe	.L12973
	movl	$64, %eax
	leaq	-64(%rdx,%rbx), %rbx
	subq	%rdx, %rax
	movq	%rbx, %r14
	leaq	(%rsi,%rax), %r15
	shrq	$6, %r14
	testq	%rax, %rax
	je	.L12974
	cmpq	$8, %rax
	jnb	.L12975
	testb	$4, %al
	jne	.L13017
	testq	%rax, %rax
	je	.L12976
	movzbl	(%rsi), %edx
	movb	%dl, (%rdi)
	testb	$2, %al
	je	.L12976
	movzwl	-2(%rsi,%rax), %edx
	movw	%dx, -2(%rdi,%rax)
	.p2align 4,,10
	.p2align 3
.L12976:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	md5_block_asm_data_order@PLT
	call	.Lmd5_block_asm_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbp)
	movups	%xmm0, 24(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L12981
	jmp	.L12991
	.p2align 4,,10
	.p2align 3
.L12972:

	cmpq	$63, %rbx
	jbe	.L12983
	movq	%rbx, %r14
	shrq	$6, %r14
.L12982:

	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	md5_block_asm_data_order@PLT
	call	.Lmd5_block_asm_data_order_local_target
	movq	%rbx, %rax
	andl	$63, %ebx
	andq	$-64, %rax
	leaq	(%r12,%rax), %r15
.L12981:

	testq	%rbx, %rbx
	jne	.L13016
.L12998:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13016:

	.cfi_restore_state
	movl	%ebx, %r14d
	movq	%r15, %r12
.L12983:

	movl	%r14d, 88(%rbp)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jb	.L13018
	movq	(%r12), %rax
	leaq	8(%r13), %rsi
	andq	$-8, %rsi
	movq	%rax, 24(%rbp)
	movl	%ebx, %eax
	movq	-8(%r12,%rax), %rdx
	movq	%rdx, -8(%r13,%rax)
	movq	%r13, %rax
	subq	%rsi, %rax
	subq	%rax, %r12
	addl	%ebx, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L12998
	andl	$-8, %eax
	xorl	%edx, %edx
.L12989:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	(%r12,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L12989
	jmp	.L12998
	.p2align 4,,10
	.p2align 3
.L13013:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L13018:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	andl	$4, %ebx
	jne	.L13019
	testl	%eax, %eax
	je	.L12998
	movzbl	(%r12), %edx
	movb	%dl, 24(%rbp)
	testb	$2, %al
	je	.L12998
	movzwl	-2(%r12,%rax), %edx
	movw	%dx, -2(%r13,%rax)
	jmp	.L12998
	.p2align 4,,10
	.p2align 3
.L12974:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	md5_block_asm_data_order@PLT
	call	.Lmd5_block_asm_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbp)
	movups	%xmm0, 24(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L13016
.L12991:

	movq	%r15, %r12
	jmp	.L12982
	.p2align 4,,10
	.p2align 3
.L12975:

	movq	(%rsi), %rdx
	leaq	8(%rdi), %rcx
	andq	$-8, %rcx
	movq	%rdx, (%rdi)
	movq	-8(%rsi,%rax), %rdx
	movq	%rdx, -8(%rdi,%rax)
	subq	%rcx, %rdi
	addq	%rdi, %rax
	subq	%rdi, %r12
	andq	$-8, %rax
	cmpq	$8, %rax
	jb	.L12976
	andq	$-8, %rax
	xorl	%edx, %edx
.L12979:

	movq	(%r12,%rdx), %rsi
	movq	%rsi, (%rcx,%rdx)
	addq	$8, %rdx
	cmpq	%rax, %rdx
	jb	.L12979
	jmp	.L12976
	.p2align 4,,10
	.p2align 3
.L12973:

	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addl	%ebx, 88(%rbp)
	jmp	.L12998
	.p2align 4,,10
	.p2align 3
.L13019:

	movl	(%r12), %edx
	movl	%edx, 24(%rbp)
	movl	-4(%r12,%rax), %edx
	movl	%edx, -4(%r13,%rax)
	jmp	.L12998
.L13017:

	movl	(%rsi), %edx
	movl	%edx, (%rdi)
	movl	-4(%rsi,%rax), %edx
	movl	%edx, -4(%rdi,%rax)
	jmp	.L12976
	.cfi_endproc
.LFE2458:

	.size	MD5_Update, .-MD5_Update
# WAS .section	.text.md5_update,"ax",@progbits
.text
	.p2align 4
	.type	md5_update, @function
.Lmd5_update_local_target:
md5_update:
.LFB1639:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	MD5_Update@PLT
	jmp	.LMD5_Update_local_target
	.cfi_endproc
.LFE1639:

	.size	md5_update, .-md5_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_MD5_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_MD5_Update, @function
.LAWS_LC_TRAMPOLINE_MD5_Update_local_target:
AWS_LC_TRAMPOLINE_MD5_Update:
.LFB2323:

	.cfi_startproc
	endbr64
# WAS jmp	MD5_Update@PLT
	jmp	.LMD5_Update_local_target
	.cfi_endproc
.LFE2323:

	.size	AWS_LC_TRAMPOLINE_MD5_Update, .-AWS_LC_TRAMPOLINE_MD5_Update
# WAS .section	.text.MD5_Final,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_Final
	.type	MD5_Final, @function
.LMD5_Final_local_target:
MD5_Final:
.LFB2459:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	24(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	88(%rsi), %eax
	movq	16(%rsi), %r13
	movb	$-128, 24(%rsi,%rax)
	addq	$1, %rax
	cmpq	$56, %rax
	jbe	.L13023
	movl	$64, %edx
	subq	%rax, %rdx
	jne	.L13055
.L13024:

	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	md5_block_asm_data_order@PLT
	call	.Lmd5_block_asm_data_order_local_target
	movq	%r12, %rax
	movl	$56, %edx
.L13027:

	movl	%edx, %ecx
	xorl	%edi, %edi
	cmpl	$8, %edx
	jnb	.L13029
	andl	$4, %edx
	jne	.L13056
	testl	%ecx, %ecx
	jne	.L13057
.L13028:

	movq	%r13, 80(%rbx)
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
# WAS call	md5_block_asm_data_order@PLT
	call	.Lmd5_block_asm_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 88(%rbx)
	movups	%xmm0, 24(%rbx)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	movl	(%rbx), %eax
	movl	%eax, 0(%rbp)
	movl	4(%rbx), %eax
	movl	%eax, 4(%rbp)
	movl	8(%rbx), %eax
	movl	%eax, 8(%rbp)
	movl	12(%rbx), %eax
	movl	%eax, 12(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13029:

	.cfi_restore_state
	leaq	8(%rax), %rsi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rsi
	subq	%rsi, %rax
	leal	(%rdx,%rax), %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L13028
	andl	$-8, %ecx
	xorl	%eax, %eax
.L13033:

	movl	%eax, %edx
	addl	$8, %eax
	movq	%rdi, (%rsi,%rdx)
	cmpl	%ecx, %eax
	jb	.L13033
	jmp	.L13028
	.p2align 4,,10
	.p2align 3
.L13055:

	addq	%r12, %rax
	xorl	%ecx, %ecx
	testb	$1, %dl
	je	.L13025
	movl	$1, %ecx
	movb	$0, (%rax)
	cmpq	%rdx, %rcx
	jnb	.L13024
.L13025:

	movb	$0, (%rax,%rcx)
	movb	$0, 1(%rax,%rcx)
	addq	$2, %rcx
	cmpq	%rdx, %rcx
	jb	.L13025
	jmp	.L13024
	.p2align 4,,10
	.p2align 3
.L13023:

	movl	$56, %edx
	subq	%rax, %rdx
	je	.L13028
	addq	%r12, %rax
	jmp	.L13027
	.p2align 4,,10
	.p2align 3
.L13057:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L13028
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L13028
	.p2align 4,,10
	.p2align 3
.L13056:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L13028
	.cfi_endproc
.LFE2459:

	.size	MD5_Final, .-MD5_Final
# WAS .section	.text.md5_final,"ax",@progbits
.text
	.p2align 4
	.type	md5_final, @function
.Lmd5_final_local_target:
md5_final:
.LFB1640:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	MD5_Final@PLT
	jmp	.LMD5_Final_local_target
	.cfi_endproc
.LFE1640:

	.size	md5_final, .-md5_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_MD5_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_MD5_Final, @function
.LAWS_LC_TRAMPOLINE_MD5_Final_local_target:
AWS_LC_TRAMPOLINE_MD5_Final:
.LFB2324:

	.cfi_startproc
	endbr64
# WAS jmp	MD5_Final@PLT
	jmp	.LMD5_Final_local_target
	.cfi_endproc
.LFE2324:

	.size	AWS_LC_TRAMPOLINE_MD5_Final, .-AWS_LC_TRAMPOLINE_MD5_Final
# WAS .section	.text.MD5,"ax",@progbits
.text
	.p2align 4
	.globl	MD5
	.type	MD5, @function
.LMD5_local_target:
MD5:
.LFB2454:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movq	%rbp, %rdi
# WAS call	MD5_Init@PLT
	call	.LMD5_Init_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movq	%r13, %rdx
# WAS call	MD5_Update@PLT
	call	.LMD5_Update_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	MD5_Final@PLT
	call	.LMD5_Final_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13063
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L13063:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2454:

	.size	MD5, .-MD5
# WAS .section	.text.MD5_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	MD5_get_state
	.type	MD5_get_state, @function
.LMD5_get_state_local_target:
MD5_get_state:
.LFB2460:

	.cfi_startproc
	endbr64
	xorl	%ecx, %ecx
	testw	$511, 16(%rdi)
	jne	.L13064
	movl	(%rdi), %ecx
	bswap	%ecx
	movl	%ecx, (%rsi)
	movl	4(%rdi), %ecx
	bswap	%ecx
	movl	%ecx, 4(%rsi)
	movl	8(%rdi), %ecx
	bswap	%ecx
	movl	%ecx, 8(%rsi)
	movl	12(%rdi), %ecx
	bswap	%ecx
	movl	%ecx, 12(%rsi)
	movq	16(%rdi), %rax
	movl	$1, %ecx
	movq	%rax, (%rdx)
.L13064:

	movl	%ecx, %eax
	ret
	.cfi_endproc
.LFE2460:

	.size	MD5_get_state, .-MD5_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_MD5_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_MD5_get_state, @function
.LAWS_LC_TRAMPOLINE_MD5_get_state_local_target:
AWS_LC_TRAMPOLINE_MD5_get_state:
.LFB2326:

	.cfi_startproc
	endbr64
# WAS jmp	MD5_get_state@PLT
	jmp	.LMD5_get_state_local_target
	.cfi_endproc
.LFE2326:

	.size	AWS_LC_TRAMPOLINE_MD5_get_state, .-AWS_LC_TRAMPOLINE_MD5_get_state
# WAS .section	.text.ml_kem_poly_cbd_eta1_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_cbd_eta1_ref
	.hidden	ml_kem_poly_cbd_eta1_ref
	.type	ml_kem_poly_cbd_eta1_ref, @function
.Lml_kem_poly_cbd_eta1_ref_local_target:
ml_kem_poly_cbd_eta1_ref:
.LFB2465:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdx, %rcx
	movq	%rsi, %rdi
	cmpq	$2, 8(%rax)
	je	.L13072
	leaq	192(%rdx), %rdi
	.p2align 4,,10
	.p2align 3
.L13070:

	movzbl	1(%rcx), %edx
	movzbl	2(%rcx), %eax
	addq	$3, %rcx
	addq	$8, %rsi
	movzbl	-3(%rcx), %r8d
	sall	$16, %eax
	sall	$8, %edx
	orl	%eax, %edx
	orl	%r8d, %edx
	movl	%edx, %eax
	movl	%edx, %r8d
	shrl	$2, %edx
	shrl	%eax
	andl	$2396745, %edx
	andl	$2396745, %r8d
	andl	$2396745, %eax
	addl	%edx, %eax
	addl	%r8d, %eax
	movl	%eax, %r8d
	movl	%eax, %edx
	shrl	$3, %r8d
	andl	$7, %edx
	andl	$7, %r8d
	subl	%r8d, %edx
	movl	%eax, %r8d
	movw	%dx, -8(%rsi)
	movl	%eax, %edx
	shrl	$9, %r8d
	shrl	$6, %edx
	andl	$7, %r8d
	andl	$7, %edx
	subl	%r8d, %edx
	movl	%eax, %r8d
	movw	%dx, -6(%rsi)
	movl	%eax, %edx
	shrl	$15, %r8d
	shrl	$12, %edx
	andl	$7, %r8d
	andl	$7, %edx
	subl	%r8d, %edx
	movw	%dx, -4(%rsi)
	movl	%eax, %edx
	shrl	$21, %eax
	shrl	$18, %edx
	andl	$7, %edx
	subl	%eax, %edx
	movw	%dx, -2(%rsi)
	cmpq	%rcx, %rdi
	jne	.L13070
	ret
.L13072:

	movq	%rdx, %rsi
# WAS jmp	cbd2
	jmp	.Lcbd2_local_target
	.cfi_endproc
.LFE2465:

	.size	ml_kem_poly_cbd_eta1_ref, .-ml_kem_poly_cbd_eta1_ref
# WAS .section	.text.ml_kem_poly_cbd_eta2_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_cbd_eta2_ref
	.hidden	ml_kem_poly_cbd_eta2_ref
	.type	ml_kem_poly_cbd_eta2_ref, @function
.Lml_kem_poly_cbd_eta2_ref_local_target:
ml_kem_poly_cbd_eta2_ref:
.LFB2466:

	.cfi_startproc
	endbr64
# WAS jmp	cbd2
	jmp	.Lcbd2_local_target
	.cfi_endproc
.LFE2466:

	.size	ml_kem_poly_cbd_eta2_ref, .-ml_kem_poly_cbd_eta2_ref
# WAS .section	.text.ml_kem_ntt_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_ntt_ref
	.hidden	ml_kem_ntt_ref
	.type	ml_kem_ntt_ref, @function
.Lml_kem_ntt_ref_local_target:
ml_kem_ntt_ref:
.LFB2490:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$7, %eax
	movdqa	.LC307(%rip), %xmm6
	movl	$128, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movdqa	.LC308(%rip), %xmm5
	movl	$1, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	$-758, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%eax, -12(%rsp)
	.p2align 4,,10
	.p2align 3
.L13075:

	movl	%r15d, %eax
	leal	-1(%r15), %r11d
	leal	1(%r15), %r12d
	xorl	%esi, %esi
	movq	%rax, -40(%rsp)
	movl	%r15d, %eax
	shrl	$3, %eax
	salq	$4, %rax
	movq	%rax, -32(%rsp)
	movl	%r15d, %eax
	andl	$-8, %eax
	movl	%eax, -20(%rsp)
	movl	%r15d, %eax
	andl	$7, %eax
	movl	%eax, -16(%rsp)
	.p2align 4,,10
	.p2align 3
.L13084:

	leal	1(%rsi), %eax
	leal	(%r15,%rsi), %edi
	addl	$1, %r14d
	movswl	%r13w, %r8d
	cmpl	%eax, %edi
	movl	%esi, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L13076
	testb	%r10b, %r10b
	je	.L13076
	movq	-40(%rsp), %rbx
	leaq	(%rax,%rax), %rdx
	leaq	8(%rax,%rbx), %r9
	leaq	16(%rdx), %rbx
	addq	%r9, %r9
	leaq	-16(%r9), %rcx
	cmpq	%rbx, %rcx
	jge	.L13085
	cmpq	%r9, %rdx
	jge	.L13085
.L13076:

	movl	%edi, %edx
	subq	%rax, %rdx
	leaq	0(%rbp,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L13080:

	movswl	(%rcx,%rax,2), %r9d
	imull	%r8d, %r9d
	imulw	$-3327, %r9w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r9d, %edx
	movzwl	0(%rbp,%rax,2), %r9d
	sarl	$16, %edx
	subl	%edx, %r9d
	movw	%r9w, (%rcx,%rax,2)
	addw	%dx, 0(%rbp,%rax,2)
	addq	$1, %rax
	cmpl	%edi, %eax
	jb	.L13080
.L13081:

	addl	%r12d, %esi
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %esi
	cmpl	$255, %esi
	ja	.L13101
	movl	%r14d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rdi
	movzwl	(%rdi,%rax,2), %r13d
	jmp	.L13084
	.p2align 4,,10
	.p2align 3
.L13085:

	movq	-32(%rsp), %rax
	movd	%r13d, %xmm4
	addq	%rbp, %rcx
	addq	%rbp, %rdx
	punpcklwd	%xmm4, %xmm4
	pshufd	$0, %xmm4, %xmm4
	addq	%rcx, %rax
	.p2align 4,,10
	.p2align 3
.L13078:

	movdqu	(%rcx), %xmm3
	movdqu	(%rcx), %xmm0
	addq	$16, %rcx
	addq	$16, %rdx
	pmullw	%xmm4, %xmm3
	pmulhw	%xmm4, %xmm0
	movdqa	%xmm3, %xmm7
	punpckhwd	%xmm0, %xmm3
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpckhwd	%xmm3, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm2, %xmm0
	pmullw	%xmm6, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm5, %xmm1
	pmullw	%xmm5, %xmm2
	movdqa	%xmm2, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm3, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm2, %xmm1
	punpcklwd	%xmm2, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rcx, %rax
	jne	.L13078
	movl	-20(%rsp), %eax
	leal	(%rax,%rsi), %edx
	movl	-16(%rsp), %eax
	testl	%eax, %eax
	je	.L13081
	leal	(%r15,%rdx), %eax
	leaq	0(%rbp,%rax,2), %r9
	movl	%edx, %eax
	movswl	(%r9), %ebx
	leaq	0(%rbp,%rax,2), %rcx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13081
	leal	(%r15,%rax), %ecx
	leaq	0(%rbp,%rcx,2), %r9
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13081
	leal	(%r15,%rax), %ecx
	leaq	0(%rbp,%rcx,2), %r9
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13081
	leal	(%r15,%rax), %ecx
	leaq	0(%rbp,%rcx,2), %r9
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13081
	leal	(%r15,%rax), %ecx
	leaq	0(%rbp,%rcx,2), %r9
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13081
	leal	(%r15,%rax), %ecx
	addl	$6, %edx
	leaq	0(%rbp,%rcx,2), %r9
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	cmpl	%edi, %edx
	jnb	.L13081
	leal	(%r15,%rdx), %eax
	leaq	0(%rbp,%rdx,2), %rdx
	leaq	0(%rbp,%rax,2), %rcx
	movswl	(%rcx), %edi
	imull	%r8d, %edi
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	movzwl	(%rdx), %edi
	sarl	$16, %eax
	subl	%eax, %edi
	movw	%di, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L13081
	.p2align 4,,10
	.p2align 3
.L13101:

	shrl	%r15d
	subl	$1, -12(%rsp)
	je	.L13074
	movl	%r14d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rsi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rsi
	movzwl	(%rsi,%rax,2), %r13d
	jmp	.L13075
.L13074:

	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2490:

	.size	ml_kem_ntt_ref, .-ml_kem_ntt_ref
# WAS .section	.text.ml_kem_invntt_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_invntt_ref
	.hidden	ml_kem_invntt_ref
	.type	ml_kem_invntt_ref, @function
.Lml_kem_invntt_ref_local_target:
ml_kem_invntt_ref:
.LFB2491:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r8
	movl	$7, %edi
	movdqa	.LC307(%rip), %xmm5
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	leaq	2(%r8), %rax
	movdqa	.LC308(%rip), %xmm2
	movl	$1628, %ecx
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movdqa	.LC309(%rip), %xmm4
	movl	$127, %r15d
	movl	$2, %r9d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movdqa	.LC310(%rip), %xmm3
# WAS leaq	ml_kem_zetas_ref(%rip), %r14
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %r14
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movdqa	.LC311(%rip), %xmm6
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rax, -24(%rsp)
	movl	%edi, -12(%rsp)
	.p2align 4,,10
	.p2align 3
.L13103:

	movl	%r9d, %eax
	xorl	%esi, %esi
	movl	%r9d, %r13d
	subl	$1, %r15d
	andl	$-8, %eax
	shrl	$3, %r13d
	leal	(%rsi,%r9), %r10d
	leal	-1(%r9), %r12d
	movl	%eax, -28(%rsp)
	movl	%r9d, %eax
	salq	$4, %r13
	andl	$7, %eax
	movl	%eax, -16(%rsp)
	cmpl	%r10d, %esi
	jnb	.L13114
	.p2align 4,,10
	.p2align 3
.L13129:

	movswl	%cx, %edi
	movl	%esi, %ebx
	cmpl	$6, %r12d
	jbe	.L13105
	movl	%r9d, %eax
	leaq	8(%rax,%rbx), %r11
	leaq	(%rbx,%rbx), %rax
	addq	%r11, %r11
	leaq	16(%rax), %rbp
	leaq	-16(%r11), %rdx
	cmpq	%rbp, %rdx
	jge	.L13115
	cmpq	%r11, %rax
	jge	.L13115
.L13105:

	movl	%r10d, %eax
	leaq	(%r8,%rbx,2), %rcx
	leaq	(%r8,%rax,2), %rdx
	movl	%r12d, %eax
	addq	%rbx, %rax
	movq	-24(%rsp), %rbx
	leaq	(%rbx,%rax,2), %rbx
	.p2align 4,,10
	.p2align 3
.L13109:

	movzwl	(%rcx), %r11d
	movzwl	(%rdx), %esi
	addq	$2, %rcx
	addq	$2, %rdx
	addl	%r11d, %esi
	movswl	%si, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %esi
	movw	%si, -2(%rcx)
	movzwl	-2(%rdx), %esi
	subl	%r11d, %esi
	movswl	%si, %esi
	imull	%edi, %esi
	imulw	$-3327, %si, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%esi, %eax
	sarl	$16, %eax
	movw	%ax, -2(%rdx)
	cmpq	%rcx, %rbx
	jne	.L13109
.L13110:

	leal	(%r10,%r9), %esi
	cmpl	$255, %esi
	ja	.L13128
.L13104:

	movl	%r15d, %eax
	leal	(%rsi,%r9), %r10d
	subl	$1, %r15d
	movzwl	(%r14,%rax,2), %ecx
	cmpl	%r10d, %esi
	jb	.L13129
.L13114:

	movl	%r10d, %esi
	jmp	.L13104
	.p2align 4,,10
	.p2align 3
.L13115:

	movd	%ecx, %xmm1
	addq	%r8, %rax
	addq	%r8, %rdx
	punpcklwd	%xmm1, %xmm1
	leaq	0(%r13,%rax), %rcx
	pshufd	$0, %xmm1, %xmm1
	.p2align 4,,10
	.p2align 3
.L13107:

	movdqu	(%rax), %xmm9
	movdqu	(%rdx), %xmm8
	addq	$16, %rax
	addq	$16, %rdx
	paddw	%xmm9, %xmm8
	movdqa	%xmm8, %xmm7
	movdqa	%xmm8, %xmm10
	pmullw	%xmm4, %xmm7
	pmulhw	%xmm4, %xmm10
	movdqa	%xmm7, %xmm0
	punpckhwd	%xmm10, %xmm7
	punpcklwd	%xmm10, %xmm0
	paddd	%xmm3, %xmm7
	paddd	%xmm3, %xmm0
	psrad	$26, %xmm7
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm10
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm10
	movdqa	%xmm0, %xmm7
	punpckhwd	%xmm10, %xmm7
	punpcklwd	%xmm10, %xmm0
	punpcklwd	%xmm7, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm8
	movups	%xmm8, -16(%rax)
	movdqu	-16(%rdx), %xmm0
	psubw	%xmm9, %xmm0
	movdqa	%xmm0, %xmm9
	pmulhw	%xmm1, %xmm0
	pmullw	%xmm1, %xmm9
	movdqa	%xmm9, %xmm10
	punpckhwd	%xmm0, %xmm9
	punpcklwd	%xmm0, %xmm10
	movdqa	%xmm10, %xmm0
	movdqa	%xmm10, %xmm7
	punpcklwd	%xmm9, %xmm0
	punpckhwd	%xmm9, %xmm7
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm8, %xmm0
	pmullw	%xmm5, %xmm0
	movdqa	%xmm0, %xmm8
	movdqa	%xmm0, %xmm7
	pmulhw	%xmm2, %xmm7
	pmullw	%xmm2, %xmm8
	movdqa	%xmm8, %xmm0
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm7, %xmm0
	movdqa	%xmm8, %xmm7
	paddd	%xmm10, %xmm0
	paddd	%xmm9, %xmm7
	psrad	$16, %xmm7
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm8
	movdqa	%xmm0, %xmm7
	punpckhwd	%xmm8, %xmm7
	punpcklwd	%xmm8, %xmm0
	punpcklwd	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rax, %rcx
	jne	.L13107
	movl	-28(%rsp), %eax
	addl	%eax, %esi
	movl	-16(%rsp), %eax
	testl	%eax, %eax
	je	.L13110
	movl	%esi, %eax
	leaq	(%r8,%rax,2), %rbx
	leal	(%r9,%rsi), %eax
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	leal	1(%rsi), %eax
	cmpl	%r10d, %eax
	jnb	.L13110
	movl	%eax, %edx
	addl	%r9d, %eax
	movl	%eax, %eax
	leaq	(%r8,%rdx,2), %rbx
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	leal	2(%rsi), %eax
	cmpl	%r10d, %eax
	jnb	.L13110
	movl	%eax, %edx
	addl	%r9d, %eax
	movl	%eax, %eax
	leaq	(%r8,%rdx,2), %rbx
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	leal	3(%rsi), %eax
	cmpl	%r10d, %eax
	jnb	.L13110
	movl	%eax, %edx
	addl	%r9d, %eax
	movl	%eax, %eax
	leaq	(%r8,%rdx,2), %rbx
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	leal	4(%rsi), %eax
	cmpl	%r10d, %eax
	jnb	.L13110
	movl	%eax, %edx
	addl	%r9d, %eax
	movl	%eax, %eax
	leaq	(%r8,%rdx,2), %rbx
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	leal	5(%rsi), %eax
	cmpl	%r10d, %eax
	jnb	.L13110
	movl	%eax, %edx
	addl	%r9d, %eax
	addl	$6, %esi
	movl	%eax, %eax
	leaq	(%r8,%rdx,2), %rbx
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%rbx), %r11d
	movzwl	(%rcx), %edx
	addl	%r11d, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%rbx)
	movzwl	(%rcx), %edx
	subl	%r11d, %edx
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	cmpl	%r10d, %esi
	jnb	.L13110
	movl	%esi, %eax
	leaq	(%r8,%rax,2), %r11
	leal	(%r9,%rsi), %eax
	leaq	(%r8,%rax,2), %rcx
	movzwl	(%r11), %esi
	movzwl	(%rcx), %edx
	addl	%esi, %edx
	movswl	%dx, %eax
	imull	$20159, %eax, %eax
	addl	$33554432, %eax
	sarl	$26, %eax
	imulw	$3329, %ax, %ax
	subl	%eax, %edx
	movw	%dx, (%r11)
	movzwl	(%rcx), %edx
	subl	%esi, %edx
	leal	(%r10,%r9), %esi
	movswl	%dx, %edx
	imull	%edi, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	movw	%ax, (%rcx)
	cmpl	$255, %esi
	jbe	.L13104
	.p2align 4,,10
	.p2align 3
.L13128:

	addl	%r9d, %r9d
	subl	$1, -12(%rsp)
	je	.L13111
	movl	%r15d, %eax
	movzwl	(%r14,%rax,2), %ecx
	jmp	.L13103
.L13111:

	movdqa	.LC312(%rip), %xmm6
	leaq	512(%r8), %rax
	.p2align 4,,10
	.p2align 3
.L13113:

	movdqu	(%r8), %xmm4
	movdqu	(%r8), %xmm0
	addq	$16, %r8
	pmullw	%xmm6, %xmm4
	pmulhw	%xmm6, %xmm0
	movdqa	%xmm4, %xmm7
	punpckhwd	%xmm0, %xmm4
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm4, %xmm0
	punpckhwd	%xmm4, %xmm1
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	punpcklwd	%xmm3, %xmm0
	pmullw	%xmm5, %xmm0
	movdqa	%xmm0, %xmm3
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm2, %xmm1
	pmullw	%xmm2, %xmm3
	movdqa	%xmm3, %xmm0
	punpckhwd	%xmm1, %xmm3
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm3, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm4, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	movups	%xmm0, -16(%r8)
	cmpq	%r8, %rax
	jne	.L13113
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2491:

	.size	ml_kem_invntt_ref, .-ml_kem_invntt_ref
# WAS .section	.text.ml_kem_basemul_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_basemul_ref
	.hidden	ml_kem_basemul_ref
	.type	ml_kem_basemul_ref, @function
.Lml_kem_basemul_ref_local_target:
ml_kem_basemul_ref:
.LFB2492:

	.cfi_startproc
	endbr64
	movswl	2(%rsi), %eax
	movl	%ecx, %r8d
	movswl	2(%rdx), %ecx
	imull	%ecx, %eax
	imulw	$-3327, %ax, %cx
	movswl	%cx, %ecx
	imull	$-3329, %ecx, %ecx
	addl	%eax, %ecx
	movswl	%r8w, %eax
	sarl	$16, %ecx
	imull	%eax, %ecx
	imulw	$-3327, %cx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%eax, %ecx
	sarl	$16, %ecx
	movw	%cx, (%rdi)
	movswl	(%rdx), %eax
	movswl	(%rsi), %r8d
	imull	%eax, %r8d
	imulw	$-3327, %r8w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r8d, %eax
	sarl	$16, %eax
	addl	%ecx, %eax
	movw	%ax, (%rdi)
	movswl	2(%rdx), %ecx
	movswl	(%rsi), %eax
	imull	%ecx, %eax
	imulw	$-3327, %ax, %cx
	movswl	%cx, %ecx
	imull	$-3329, %ecx, %ecx
	addl	%eax, %ecx
	sarl	$16, %ecx
	movw	%cx, 2(%rdi)
	movswl	2(%rsi), %eax
	movswl	(%rdx), %edx
	imull	%eax, %edx
	imulw	$-3327, %dx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edx, %eax
	sarl	$16, %eax
	addl	%ecx, %eax
	movw	%ax, 2(%rdi)
	ret
	.cfi_endproc
.LFE2492:

	.size	ml_kem_basemul_ref, .-ml_kem_basemul_ref
# WAS .section	.text.ml_kem_512_params_init,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_params_init
	.hidden	ml_kem_512_params_init
	.type	ml_kem_512_params_init, @function
.Lml_kem_512_params_init_local_target:
ml_kem_512_params_init:
.LFB2494:

	.cfi_startproc
	endbr64
	movdqa	.LC313(%rip), %xmm0
	movq	$768, 80(%rdi)
	movups	%xmm0, (%rdi)
	movdqa	.LC314(%rip), %xmm0
	movups	%xmm0, 16(%rdi)
	movdqa	.LC315(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC316(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	movdqa	.LC60(%rip), %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2494:

	.size	ml_kem_512_params_init, .-ml_kem_512_params_init
# WAS .section	.text.ml_kem_768_params_init,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_params_init
	.hidden	ml_kem_768_params_init
	.type	ml_kem_768_params_init, @function
.Lml_kem_768_params_init_local_target:
ml_kem_768_params_init:
.LFB2495:

	.cfi_startproc
	endbr64
	movdqa	.LC317(%rip), %xmm0
	movq	$1088, 80(%rdi)
	movups	%xmm0, (%rdi)
	movdqa	.LC318(%rip), %xmm0
	movups	%xmm0, 16(%rdi)
	movdqa	.LC319(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC320(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	movdqa	.LC64(%rip), %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2495:

	.size	ml_kem_768_params_init, .-ml_kem_768_params_init
# WAS .section	.text.ml_kem_1024_params_init,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_params_init
	.hidden	ml_kem_1024_params_init
	.type	ml_kem_1024_params_init, @function
.Lml_kem_1024_params_init_local_target:
ml_kem_1024_params_init:
.LFB2496:

	.cfi_startproc
	endbr64
	movdqa	.LC321(%rip), %xmm0
	movq	$1568, 80(%rdi)
	movups	%xmm0, (%rdi)
	movdqa	.LC322(%rip), %xmm0
	movups	%xmm0, 16(%rdi)
	movdqa	.LC323(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC324(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	movdqa	.LC67(%rip), %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2496:

	.size	ml_kem_1024_params_init, .-ml_kem_1024_params_init
# WAS .section	.text.ml_kem_poly_compress_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_compress_ref
	.hidden	ml_kem_poly_compress_ref
	.type	ml_kem_poly_compress_ref, @function
.Lml_kem_poly_compress_ref_local_target:
ml_kem_poly_compress_ref:
.LFB2497:

	.cfi_startproc
	endbr64
	movq	%rdi, %rcx
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	160(%rdi), %r8
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	cmpq	$128, 16(%rcx)
	je	.L13150
	.p2align 4,,10
	.p2align 3
.L13141:

	movswl	(%rsi), %eax
	movl	%eax, %edx
	sarl	$15, %edx
	andl	$3329, %edx
	leal	(%rax,%rdx), %r12d
	movswl	2(%rsi), %eax
	sall	$5, %r12d
	movl	%eax, %edx
	addl	$1664, %r12d
	sarl	$15, %edx
	imull	$40318, %r12d, %r12d
	andl	$3329, %edx
	leal	(%rax,%rdx), %ebp
	movswl	4(%rsi), %eax
	sall	$5, %ebp
	movl	%eax, %edx
	addl	$1664, %ebp
	sarl	$15, %edx
	imull	$40318, %ebp, %ebp
	andl	$3329, %edx
	leal	(%rax,%rdx), %r10d
	movswl	6(%rsi), %eax
	sall	$5, %r10d
	shrl	$27, %ebp
	movl	%eax, %edx
	addl	$1664, %r10d
	sarl	$15, %edx
	imull	$40318, %r10d, %r10d
	andl	$3329, %edx
	leal	(%rax,%rdx), %r11d
	movswl	8(%rsi), %eax
	sall	$5, %r11d
	movl	%eax, %edx
	addl	$1664, %r11d
	sarl	$15, %edx
	imull	$40318, %r11d, %r11d
	andl	$3329, %edx
	leal	(%rax,%rdx), %ebx
	movswl	10(%rsi), %eax
	sall	$5, %ebx
	shrl	$27, %r11d
	movl	%eax, %edx
	addl	$1664, %ebx
	sarl	$15, %edx
	imull	$40318, %ebx, %ebx
	andl	$3329, %edx
	addl	%edx, %eax
	movswl	12(%rsi), %edx
	sall	$5, %eax
	shrl	$27, %ebx
	movl	%edx, %ecx
	addl	$1664, %eax
	shrl	$27, %r12d
	sarl	$15, %ecx
	shrl	$27, %r10d
	imull	$40318, %eax, %eax
	andl	$3329, %ecx
	sall	$2, %r10d
	addl	%edx, %ecx
	movswl	14(%rsi), %edx
	sall	$5, %ecx
	shrl	$27, %eax
	movl	%edx, %r9d
	addl	$1664, %ecx
	addl	%eax, %eax
	sarl	$15, %r9d
	imull	$40318, %ecx, %ecx
	andl	$3329, %r9d
	addl	%r9d, %edx
	movl	%ebp, %r9d
	shrb	$3, %bpl
	sall	$5, %r9d
	shrl	$27, %ecx
	orl	%r12d, %r9d
	movl	%r11d, %r12d
	shrb	%r11b
	sall	$7, %r12d
	sall	$5, %edx
	movzbl	%r9b, %r9d
	orl	%r12d, %r10d
	addl	$1664, %edx
	orl	%ebp, %r10d
	imull	$40318, %edx, %edx
	movl	%ebx, %ebp
	shrb	$4, %bl
	sall	$4, %ebp
	movzbl	%r10b, %r10d
	orl	%ebp, %r11d
	movl	%ecx, %ebp
	sall	$6, %ebp
	movzbl	%r11b, %r11d
	orl	%ebp, %eax
	orl	%ebx, %eax
	shrl	$27, %edx
	addq	$5, %rdi
	addq	$16, %rsi
	sall	$3, %edx
	movzbl	%al, %eax
	shrb	$2, %cl
	sall	$8, %eax
	orl	%edx, %ecx
	orl	%r11d, %eax
	movb	%cl, -1(%rdi)
	sall	$8, %eax
	orl	%r10d, %eax
	sall	$8, %eax
	orl	%r9d, %eax
	movl	%eax, -5(%rdi)
	cmpq	%r8, %rdi
	jne	.L13141
.L13134:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L13150:

	.cfi_restore_state
	movq	%rdx, %rax
	leaq	512(%rdx), %rdx
	leaq	128(%rdi), %rbx
	cmpq	%rdx, %rdi
	jnb	.L13143
	cmpq	%rbx, %rsi
	jb	.L13140
.L13143:

	movdqa	.LC325(%rip), %xmm5
	movdqa	.LC326(%rip), %xmm4
	pxor	%xmm6, %xmm6
	movdqa	.LC327(%rip), %xmm7
	.p2align 4,,10
	.p2align 3
.L13138:

	movdqu	(%rax), %xmm1
	movdqu	16(%rax), %xmm10
	movdqa	%xmm6, %xmm11
	movdqa	%xmm6, %xmm15
	movdqu	32(%rax), %xmm0
	movdqu	48(%rax), %xmm2
	addq	$16, %rdi
	addq	$64, %rax
	movdqa	%xmm1, %xmm3
	movdqa	%xmm1, %xmm9
	punpcklwd	%xmm10, %xmm1
	movdqu	-16(%rax), %xmm12
	punpcklwd	%xmm10, %xmm3
	punpckhwd	%xmm10, %xmm9
	movdqa	%xmm0, %xmm8
	movdqa	%xmm3, %xmm14
	punpcklwd	%xmm9, %xmm1
	punpcklwd	%xmm9, %xmm3
	punpckhwd	%xmm9, %xmm14
	punpckhwd	%xmm2, %xmm8
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm14, %xmm3
	punpckhwd	%xmm14, %xmm1
	movdqu	-16(%rax), %xmm14
	punpcklwd	%xmm12, %xmm2
	movdqa	%xmm2, %xmm13
	punpcklwd	%xmm8, %xmm2
	movdqa	%xmm1, %xmm10
	punpcklwd	%xmm14, %xmm0
	punpckhwd	%xmm8, %xmm13
	movdqa	%xmm3, %xmm12
	punpcklwd	%xmm8, %xmm0
	movdqa	%xmm6, %xmm8
	punpcklwd	%xmm13, %xmm2
	pcmpgtw	%xmm1, %xmm8
	pcmpgtw	%xmm3, %xmm11
	punpckhwd	%xmm13, %xmm0
	movdqa	%xmm0, %xmm9
	pcmpgtw	%xmm2, %xmm15
	punpcklwd	%xmm8, %xmm10
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm11, %xmm12
	movdqa	%xmm10, %xmm8
	movdqa	%xmm1, %xmm13
	movdqa	%xmm6, %xmm1
	psrad	$15, %xmm8
	pcmpgtw	%xmm0, %xmm1
	punpckhwd	%xmm11, %xmm3
	pand	%xmm5, %xmm8
	movdqa	%xmm2, %xmm11
	punpckhwd	%xmm15, %xmm2
	paddd	%xmm10, %xmm8
	movdqa	%xmm13, %xmm10
	punpcklwd	%xmm15, %xmm11
	pslld	$4, %xmm8
	punpckhwd	%xmm1, %xmm0
	punpcklwd	%xmm1, %xmm9
	paddd	%xmm4, %xmm8
	psrad	$15, %xmm10
	movdqa	%xmm8, %xmm1
	pand	%xmm5, %xmm10
	pslld	$6, %xmm1
	paddd	%xmm13, %xmm10
	psubd	%xmm8, %xmm1
	pslld	$4, %xmm10
	pslld	$8, %xmm1
	paddd	%xmm4, %xmm10
	psubd	%xmm8, %xmm1
	movdqa	%xmm1, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm1
	movdqa	%xmm10, %xmm8
	pslld	$6, %xmm8
	psrld	$28, %xmm1
	psubd	%xmm10, %xmm8
	pslld	$8, %xmm8
	psubd	%xmm10, %xmm8
	movdqa	%xmm8, %xmm10
	pslld	$2, %xmm10
	paddd	%xmm10, %xmm8
	movdqa	%xmm1, %xmm10
	psrld	$28, %xmm8
	punpcklwd	%xmm8, %xmm1
	punpckhwd	%xmm8, %xmm10
	movdqa	%xmm1, %xmm8
	punpcklwd	%xmm10, %xmm1
	punpckhwd	%xmm10, %xmm8
	punpcklwd	%xmm8, %xmm1
	movdqa	%xmm9, %xmm8
	psrad	$15, %xmm8
	pand	%xmm7, %xmm1
	pand	%xmm5, %xmm8
	paddd	%xmm8, %xmm9
	pslld	$4, %xmm9
	paddd	%xmm4, %xmm9
	movdqa	%xmm9, %xmm8
	pslld	$6, %xmm8
	psubd	%xmm9, %xmm8
	pslld	$8, %xmm8
	psubd	%xmm9, %xmm8
	movdqa	%xmm8, %xmm9
	pslld	$2, %xmm9
	paddd	%xmm9, %xmm8
	movdqa	%xmm0, %xmm9
	psrad	$15, %xmm9
	psrld	$28, %xmm8
	pand	%xmm5, %xmm9
	paddd	%xmm0, %xmm9
	pslld	$4, %xmm9
	paddd	%xmm4, %xmm9
	movdqa	%xmm9, %xmm0
	pslld	$6, %xmm0
	psubd	%xmm9, %xmm0
	pslld	$8, %xmm0
	psubd	%xmm9, %xmm0
	movdqa	%xmm0, %xmm9
	pslld	$2, %xmm9
	paddd	%xmm9, %xmm0
	movdqa	%xmm8, %xmm9
	psrld	$28, %xmm0
	punpcklwd	%xmm0, %xmm8
	punpckhwd	%xmm0, %xmm9
	movdqa	%xmm8, %xmm0
	punpcklwd	%xmm9, %xmm8
	punpckhwd	%xmm9, %xmm0
	punpcklwd	%xmm0, %xmm8
	movdqa	%xmm1, %xmm0
	pand	%xmm7, %xmm8
	packuswb	%xmm8, %xmm0
	movdqa	%xmm12, %xmm8
	psrad	$15, %xmm8
	paddb	%xmm0, %xmm0
	pand	%xmm5, %xmm8
	paddb	%xmm0, %xmm0
	paddd	%xmm12, %xmm8
	paddb	%xmm0, %xmm0
	pslld	$4, %xmm8
	movdqa	%xmm0, %xmm1
	paddd	%xmm4, %xmm8
	paddb	%xmm0, %xmm1
	movdqa	%xmm8, %xmm0
	pslld	$6, %xmm0
	psubd	%xmm8, %xmm0
	pslld	$8, %xmm0
	psubd	%xmm8, %xmm0
	movdqa	%xmm0, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm0
	movdqa	%xmm3, %xmm8
	psrad	$15, %xmm8
	psrld	$28, %xmm0
	pand	%xmm5, %xmm8
	paddd	%xmm3, %xmm8
	pslld	$4, %xmm8
	paddd	%xmm4, %xmm8
	movdqa	%xmm8, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm8, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm8, %xmm3
	movdqa	%xmm3, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm3
	movdqa	%xmm0, %xmm8
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm0
	punpckhwd	%xmm3, %xmm8
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm8, %xmm0
	punpckhwd	%xmm8, %xmm3
	movdqa	%xmm11, %xmm8
	psrad	$15, %xmm8
	punpcklwd	%xmm3, %xmm0
	pand	%xmm5, %xmm8
	pand	%xmm7, %xmm0
	paddd	%xmm11, %xmm8
	pslld	$4, %xmm8
	paddd	%xmm4, %xmm8
	movdqa	%xmm8, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm8, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm8, %xmm3
	movdqa	%xmm3, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm3
	movdqa	%xmm2, %xmm8
	psrad	$15, %xmm8
	psrld	$28, %xmm3
	pand	%xmm5, %xmm8
	paddd	%xmm2, %xmm8
	pslld	$4, %xmm8
	paddd	%xmm4, %xmm8
	movdqa	%xmm8, %xmm2
	pslld	$6, %xmm2
	psubd	%xmm8, %xmm2
	pslld	$8, %xmm2
	psubd	%xmm8, %xmm2
	movdqa	%xmm2, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm2
	movdqa	%xmm3, %xmm8
	psrld	$28, %xmm2
	punpcklwd	%xmm2, %xmm3
	punpckhwd	%xmm2, %xmm8
	movdqa	%xmm3, %xmm2
	punpcklwd	%xmm8, %xmm3
	punpckhwd	%xmm8, %xmm2
	punpcklwd	%xmm2, %xmm3
	pand	%xmm7, %xmm3
	packuswb	%xmm3, %xmm0
	por	%xmm1, %xmm0
	movups	%xmm0, -16(%rdi)
	cmpq	%rbx, %rdi
	jne	.L13138
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13140:

	.cfi_restore_state
	movswl	(%rax), %edx
	movswl	12(%rax), %ebp
	movswl	14(%rax), %r12d
	movl	%edx, %r11d
	sarl	$15, %r11d
	andl	$3329, %r11d
	addl	%edx, %r11d
	movswl	2(%rax), %edx
	sall	$4, %r11d
	movl	%edx, %r8d
	addl	$1665, %r11d
	sarl	$15, %r8d
	imull	$80635, %r11d, %r11d
	andl	$3329, %r8d
	addl	%edx, %r8d
	movswl	4(%rax), %edx
	sall	$4, %r8d
	movl	%edx, %r10d
	addl	$1665, %r8d
	sarl	$15, %r10d
	imull	$80635, %r8d, %r8d
	andl	$3329, %r10d
	addl	%edx, %r10d
	movswl	6(%rax), %edx
	sall	$4, %r10d
	movl	%edx, %esi
	addl	$1665, %r10d
	sarl	$15, %esi
	imull	$80635, %r10d, %r10d
	andl	$3329, %esi
	addl	%edx, %esi
	movswl	8(%rax), %edx
	sall	$4, %esi
	movl	%edx, %r9d
	addl	$1665, %esi
	sarl	$15, %r9d
	imull	$80635, %esi, %esi
	andl	$3329, %r9d
	addl	%edx, %r9d
	movswl	10(%rax), %edx
	sall	$4, %r9d
	movl	%edx, %ecx
	addl	$1665, %r9d
	sarl	$15, %ecx
	imull	$80635, %r9d, %r9d
	andl	$3329, %ecx
	addl	%edx, %ecx
	movl	%ebp, %edx
	shrl	$28, %r8d
	sarl	$15, %edx
	sall	$4, %ecx
	andl	$3329, %edx
	addl	$1665, %ecx
	shrl	$28, %r9d
	imull	$80635, %ecx, %ecx
	shrl	$28, %esi
	addl	%ebp, %edx
	sall	$4, %r8d
	sall	$4, %edx
	shrl	$28, %r11d
	sall	$4, %esi
	addl	$1665, %edx
	shrl	$28, %r10d
	orl	%r8d, %r11d
	imull	$80635, %edx, %ebp
	movl	%r12d, %edx
	shrl	$28, %ecx
	orl	%esi, %r10d
	sarl	$15, %edx
	sall	$4, %ecx
	movb	%r11b, (%rdi)
	andl	$3329, %edx
	orl	%ecx, %r9d
	movb	%r10b, 1(%rdi)
	addl	%r12d, %edx
	movb	%r9b, 2(%rdi)
	sall	$4, %edx
	addl	$1665, %edx
	imull	$80635, %edx, %edx
	shrl	$28, %edx
	movl	%edx, %ecx
	movl	%ebp, %edx
	sall	$4, %ecx
	shrl	$28, %edx
	orl	%ecx, %edx
	addq	$4, %rdi
	movb	%dl, -1(%rdi)
	addq	$16, %rax
	cmpq	%rbx, %rdi
	jne	.L13140
	jmp	.L13134
	.cfi_endproc
.LFE2497:

	.size	ml_kem_poly_compress_ref, .-ml_kem_poly_compress_ref
# WAS .section	.text.ml_kem_poly_decompress_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_decompress_ref
	.hidden	ml_kem_poly_decompress_ref
	.type	ml_kem_poly_decompress_ref, @function
.Lml_kem_poly_decompress_ref_local_target:
ml_kem_poly_decompress_ref:
.LFB2498:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rcx
	leaq	160(%rdx), %r8
	movq	%rdx, %rdi
	cmpq	$128, 16(%rax)
	je	.L13163
	.p2align 4,,10
	.p2align 3
.L13156:

	movzbl	(%rdi), %r10d
	movzbl	1(%rdi), %edx
	addq	$5, %rdi
	movzbl	-3(%rdi), %r9d
	movzbl	-2(%rdi), %eax
	movl	%r10d, %r11d
	movzbl	-1(%rdi), %ecx
	shrb	$5, %r10b
	andl	$31, %r11d
	imull	$3329, %r11d, %r11d
	addl	$16, %r11d
	shrl	$5, %r11d
	movw	%r11w, (%rsi)
	leal	0(,%rdx,8), %r11d
	orl	%r11d, %r10d
	andl	$31, %r10d
	imull	$3329, %r10d, %r10d
	addl	$16, %r10d
	shrl	$5, %r10d
	movw	%r10w, 2(%rsi)
	movl	%edx, %r10d
	shrb	$7, %dl
	shrb	$2, %r10b
	andl	$31, %r10d
	imull	$3329, %r10d, %r10d
	addl	$16, %r10d
	shrl	$5, %r10d
	movw	%r10w, 4(%rsi)
	leal	(%r9,%r9), %r10d
	orl	%r10d, %edx
	andl	$31, %edx
	imull	$3329, %edx, %edx
	addl	$16, %edx
	shrl	$5, %edx
	movw	%dx, 6(%rsi)
	movl	%r9d, %edx
	movl	%eax, %r9d
	shrb	$4, %dl
	sall	$4, %r9d
	orl	%r9d, %edx
	andl	$31, %edx
	imull	$3329, %edx, %edx
	addl	$16, %edx
	shrl	$5, %edx
	movw	%dx, 8(%rsi)
	movl	%eax, %edx
	shrb	%dl
	andl	$31, %edx
	imull	$3329, %edx, %edx
	addl	$16, %edx
	shrb	$6, %al
	addq	$16, %rsi
	shrl	$5, %edx
	movw	%dx, -6(%rsi)
	leal	0(,%rcx,4), %edx
	shrb	$3, %cl
	orl	%edx, %eax
	andl	$31, %eax
	imull	$3329, %eax, %eax
	addl	$16, %eax
	shrl	$5, %eax
	movw	%ax, -4(%rsi)
	movzbl	%cl, %eax
	imull	$3329, %eax, %eax
	addl	$16, %eax
	shrl	$5, %eax
	movw	%ax, -2(%rsi)
	cmpq	%r8, %rdi
	jne	.L13156
	ret
.L13163:

	leaq	512(%rsi), %rax
	cmpq	%rax, %rdx
	jnb	.L13159
	leaq	128(%rdx), %rax
	cmpq	%rax, %rsi
	jb	.L13158
.L13159:

	movdqu	(%rdi), %xmm4
	movdqa	.LC197(%rip), %xmm3
	pxor	%xmm2, %xmm2
	movdqa	.LC311(%rip), %xmm0
	movdqa	.LC328(%rip), %xmm1
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 16(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, (%rcx)
	movups	%xmm6, 32(%rcx)
	movups	%xmm5, 48(%rcx)
	movdqu	16(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	16(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 80(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 64(%rcx)
	movups	%xmm6, 96(%rcx)
	movups	%xmm5, 112(%rcx)
	movdqu	32(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	32(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 144(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 128(%rcx)
	movups	%xmm6, 160(%rcx)
	movups	%xmm5, 176(%rcx)
	movdqu	48(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	48(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 208(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 192(%rcx)
	movups	%xmm6, 224(%rcx)
	movups	%xmm5, 240(%rcx)
	movdqu	64(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	64(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 272(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 256(%rcx)
	movups	%xmm6, 288(%rcx)
	movups	%xmm5, 304(%rcx)
	movdqu	80(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	80(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 336(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 320(%rcx)
	movups	%xmm6, 352(%rcx)
	movups	%xmm5, 368(%rcx)
	movdqu	96(%rdi), %xmm4
	pand	%xmm3, %xmm4
	movdqa	%xmm4, %xmm6
	movdqa	%xmm4, %xmm5
	movdqu	96(%rdi), %xmm4
	punpcklbw	%xmm2, %xmm6
	punpckhbw	%xmm2, %xmm5
	psrlw	$4, %xmm4
	pmullw	%xmm0, %xmm6
	pand	%xmm3, %xmm4
	pmullw	%xmm0, %xmm5
	movdqa	%xmm4, %xmm7
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm7
	pmullw	%xmm0, %xmm4
	pmullw	%xmm0, %xmm7
	paddw	%xmm1, %xmm6
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm5
	movdqa	%xmm6, %xmm8
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm7
	psrlw	$4, %xmm4
	psrlw	$4, %xmm7
	punpckhwd	%xmm7, %xmm6
	punpcklwd	%xmm7, %xmm8
	movups	%xmm6, 400(%rcx)
	movdqa	%xmm5, %xmm6
	punpckhwd	%xmm4, %xmm5
	punpcklwd	%xmm4, %xmm6
	movups	%xmm8, 384(%rcx)
	movups	%xmm6, 416(%rcx)
	movups	%xmm5, 432(%rcx)
	movdqu	112(%rdi), %xmm5
	movdqa	%xmm5, %xmm4
	psrlw	$4, %xmm5
	pand	%xmm3, %xmm4
	pand	%xmm5, %xmm3
	movdqa	%xmm4, %xmm6
	movdqa	%xmm3, %xmm5
	punpckhbw	%xmm2, %xmm4
	punpcklbw	%xmm2, %xmm6
	punpcklbw	%xmm2, %xmm5
	punpckhbw	%xmm2, %xmm3
	pmullw	%xmm0, %xmm6
	pmullw	%xmm0, %xmm5
	pmullw	%xmm0, %xmm4
	pmullw	%xmm3, %xmm0
	paddw	%xmm1, %xmm6
	paddw	%xmm1, %xmm5
	psrlw	$4, %xmm6
	paddw	%xmm1, %xmm4
	paddw	%xmm1, %xmm0
	psrlw	$4, %xmm5
	psrlw	$4, %xmm4
	movdqa	%xmm6, %xmm1
	punpcklwd	%xmm5, %xmm1
	psrlw	$4, %xmm0
	punpckhwd	%xmm5, %xmm6
	movups	%xmm1, 448(%rcx)
	movdqa	%xmm4, %xmm1
	punpckhwd	%xmm0, %xmm4
	punpcklwd	%xmm0, %xmm1
	movups	%xmm6, 464(%rcx)
	movups	%xmm1, 480(%rcx)
	movups	%xmm4, 496(%rcx)
	ret
.L13158:

	xorl	%edx, %edx
	.p2align 4,,10
	.p2align 3
.L13153:

	movzbl	(%rdi,%rdx), %eax
	andl	$15, %eax
	imull	$3329, %eax, %eax
	addl	$8, %eax
	sarl	$4, %eax
	movw	%ax, (%rcx,%rdx,4)
	movzbl	(%rdi,%rdx), %eax
	shrb	$4, %al
	movzbl	%al, %eax
	imull	$3329, %eax, %eax
	addl	$8, %eax
	sarl	$4, %eax
	movw	%ax, 2(%rcx,%rdx,4)
	addq	$1, %rdx
	cmpq	$128, %rdx
	jne	.L13153
	ret
	.cfi_endproc
.LFE2498:

	.size	ml_kem_poly_decompress_ref, .-ml_kem_poly_decompress_ref
# WAS .section	.text.ml_kem_poly_tobytes_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_tobytes_ref
	.hidden	ml_kem_poly_tobytes_ref
	.type	ml_kem_poly_tobytes_ref, @function
.Lml_kem_poly_tobytes_ref_local_target:
ml_kem_poly_tobytes_ref:
.LFB2499:

	.cfi_startproc
	endbr64
	leaq	384(%rdi), %r8
	.p2align 4,,10
	.p2align 3
.L13165:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ecx
	addq	$3, %rdi
	addq	$4, %rsi
	movl	%eax, %edx
	sarw	$15, %dx
	andw	$3329, %dx
	addl	%eax, %edx
	movl	%ecx, %eax
	sarw	$15, %ax
	movb	%dl, -3(%rdi)
	andw	$3329, %ax
	addl	%ecx, %eax
	movl	%eax, %ecx
	shrw	$4, %ax
	sall	$4, %ecx
	movb	%al, -1(%rdi)
	orb	%dh, %cl
	movb	%cl, -2(%rdi)
	cmpq	%rdi, %r8
	jne	.L13165
	ret
	.cfi_endproc
.LFE2499:

	.size	ml_kem_poly_tobytes_ref, .-ml_kem_poly_tobytes_ref
# WAS .section	.text.ml_kem_poly_frombytes_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_frombytes_ref
	.hidden	ml_kem_poly_frombytes_ref
	.type	ml_kem_poly_frombytes_ref, @function
.Lml_kem_poly_frombytes_ref_local_target:
ml_kem_poly_frombytes_ref:
.LFB2500:

	.cfi_startproc
	endbr64
	leaq	384(%rsi), %rcx
	.p2align 4,,10
	.p2align 3
.L13168:

	movzbl	1(%rsi), %eax
	movzbl	(%rsi), %edx
	addq	$3, %rsi
	addq	$4, %rdi
	sall	$8, %eax
	orl	%edx, %eax
	andw	$4095, %ax
	movw	%ax, -4(%rdi)
	movzbl	-2(%rsi), %eax
	movzbl	-1(%rsi), %edx
	shrb	$4, %al
	movzbl	%al, %eax
	sall	$4, %edx
	orl	%edx, %eax
	movw	%ax, -2(%rdi)
	cmpq	%rsi, %rcx
	jne	.L13168
	ret
	.cfi_endproc
.LFE2500:

	.size	ml_kem_poly_frombytes_ref, .-ml_kem_poly_frombytes_ref
# WAS .section	.text.ml_kem_poly_frommsg_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_frommsg_ref
	.hidden	ml_kem_poly_frommsg_ref
	.type	ml_kem_poly_frommsg_ref, @function
.Lml_kem_poly_frommsg_ref_local_target:
ml_kem_poly_frommsg_ref:
.LFB2501:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdi, %rdx
	leaq	512(%rdi), %rsi
	.p2align 4,,10
	.p2align 3
.L13171:

	movzbl	(%rcx), %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, (%rdx)
	movzbl	(%rcx), %eax
	sarl	%eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, 2(%rdx)
	movzbl	(%rcx), %eax
	sarl	$2, %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, 4(%rdx)
	movzbl	(%rcx), %eax
	sarl	$3, %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, 6(%rdx)
	movzbl	(%rcx), %eax
	sarl	$4, %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, 8(%rdx)
	movzbl	(%rcx), %eax
	sarl	$5, %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	movw	%ax, 10(%rdx)
	movzbl	(%rcx), %eax
	sarl	$6, %eax
	andl	$1, %eax
	negq	%rax
	andl	$1665, %eax
	addq	$16, %rdx
	addq	$1, %rcx
	movw	%ax, -4(%rdx)
	movzbl	-1(%rcx), %eax
	shrb	$7, %al
	salq	$63, %rax
	sarq	$63, %rax
	andl	$1665, %eax
	movw	%ax, -2(%rdx)
	cmpq	%rdx, %rsi
	jne	.L13171
	ret
	.cfi_endproc
.LFE2501:

	.size	ml_kem_poly_frommsg_ref, .-ml_kem_poly_frommsg_ref
# WAS .section	.text.ml_kem_poly_tomsg_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_tomsg_ref
	.hidden	ml_kem_poly_tomsg_ref
	.type	ml_kem_poly_tomsg_ref, @function
.Lml_kem_poly_tomsg_ref_local_target:
ml_kem_poly_tomsg_ref:
.LFB2502:

	.cfi_startproc
	endbr64
	leaq	32(%rdi), %rax
	movq	%rdi, %rcx
	movq	%rsi, %rdx
	cmpq	%rax, %rsi
	jnb	.L13176
	leaq	512(%rsi), %r8
	cmpq	%r8, %rdi
	jb	.L13178
.L13176:

	pxor	%xmm7, %xmm7
	addq	$16, %rcx
	addq	$256, %rdx
	movups	%xmm7, -16(%rcx)
	movdqu	-256(%rdx), %xmm5
	movdqu	-240(%rdx), %xmm8
	movdqu	-224(%rdx), %xmm6
	movdqu	-208(%rdx), %xmm7
	movdqa	%xmm5, %xmm0
	movdqa	%xmm5, %xmm2
	movdqu	-192(%rdx), %xmm1
	punpcklwd	%xmm8, %xmm5
	punpcklwd	%xmm8, %xmm0
	punpckhwd	%xmm8, %xmm2
	movdqa	%xmm6, %xmm8
	movdqu	-176(%rdx), %xmm4
	movdqa	%xmm0, %xmm10
	punpcklwd	%xmm2, %xmm5
	punpcklwd	%xmm7, %xmm8
	movdqu	-160(%rdx), %xmm3
	punpckhwd	%xmm2, %xmm10
	punpcklwd	%xmm2, %xmm0
	movdqa	%xmm6, %xmm2
	movdqu	-144(%rdx), %xmm9
	punpckhwd	%xmm7, %xmm2
	punpcklwd	%xmm10, %xmm0
	punpckhwd	%xmm10, %xmm5
	movdqu	-80(%rdx), %xmm12
	movdqa	%xmm8, %xmm10
	punpcklwd	%xmm7, %xmm6
	movdqa	%xmm1, %xmm7
	punpckhwd	%xmm2, %xmm10
	punpcklwd	%xmm4, %xmm7
	punpcklwd	%xmm2, %xmm8
	punpcklwd	%xmm2, %xmm6
	movdqa	%xmm1, %xmm2
	punpcklwd	%xmm10, %xmm8
	punpckhwd	%xmm10, %xmm6
	punpckhwd	%xmm4, %xmm2
	movdqa	%xmm7, %xmm10
	punpcklwd	%xmm4, %xmm1
	punpckhwd	%xmm2, %xmm10
	punpcklwd	%xmm2, %xmm7
	punpcklwd	%xmm2, %xmm1
	movdqa	%xmm3, %xmm2
	movdqa	%xmm3, %xmm4
	punpcklwd	%xmm9, %xmm2
	punpckhwd	%xmm9, %xmm4
	punpcklwd	%xmm10, %xmm7
	punpckhwd	%xmm10, %xmm1
	punpcklwd	%xmm9, %xmm3
	movdqa	%xmm2, %xmm10
	punpckhwd	%xmm4, %xmm10
	punpcklwd	%xmm4, %xmm2
	punpcklwd	%xmm4, %xmm3
	movdqa	%xmm0, %xmm4
	movdqa	%xmm0, %xmm9
	punpcklwd	%xmm10, %xmm2
	punpcklwd	%xmm8, %xmm4
	punpckhwd	%xmm10, %xmm3
	punpckhwd	%xmm8, %xmm9
	movdqa	%xmm4, %xmm10
	punpcklwd	%xmm8, %xmm0
	movdqa	%xmm7, %xmm8
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm2, %xmm8
	punpcklwd	%xmm9, %xmm4
	punpcklwd	%xmm9, %xmm0
	movdqa	%xmm7, %xmm9
	punpcklwd	%xmm10, %xmm4
	punpckhwd	%xmm2, %xmm9
	punpckhwd	%xmm10, %xmm0
	punpcklwd	%xmm2, %xmm7
	movdqa	%xmm8, %xmm10
	movdqa	%xmm5, %xmm2
	punpcklwd	%xmm9, %xmm8
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm6, %xmm2
	punpcklwd	%xmm9, %xmm7
	movdqa	%xmm5, %xmm9
	punpcklwd	%xmm10, %xmm8
	punpckhwd	%xmm10, %xmm7
	punpckhwd	%xmm6, %xmm9
	movdqa	%xmm2, %xmm10
	punpcklwd	%xmm6, %xmm5
	movdqa	%xmm1, %xmm6
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm9, %xmm2
	punpcklwd	%xmm3, %xmm6
	punpcklwd	%xmm9, %xmm5
	movdqa	%xmm1, %xmm9
	punpckhwd	%xmm3, %xmm9
	punpcklwd	%xmm10, %xmm2
	punpckhwd	%xmm10, %xmm5
	movdqa	%xmm4, %xmm11
	movdqa	%xmm6, %xmm10
	punpcklwd	%xmm3, %xmm1
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm8, %xmm11
	punpcklwd	%xmm9, %xmm6
	movdqa	%xmm4, %xmm3
	punpcklwd	%xmm10, %xmm6
	punpcklwd	%xmm9, %xmm1
	punpckhwd	%xmm8, %xmm3
	movdqa	%xmm11, %xmm9
	punpcklwd	%xmm8, %xmm4
	movdqa	%xmm2, %xmm13
	punpckhwd	%xmm3, %xmm9
	punpcklwd	%xmm3, %xmm11
	punpcklwd	%xmm6, %xmm13
	punpcklwd	%xmm3, %xmm4
	movdqa	%xmm2, %xmm3
	punpckhwd	%xmm6, %xmm3
	punpcklwd	%xmm9, %xmm11
	punpckhwd	%xmm9, %xmm4
	movdqa	%xmm13, %xmm8
	punpcklwd	%xmm6, %xmm2
	movdqa	%xmm0, %xmm9
	punpckhwd	%xmm3, %xmm8
	punpcklwd	%xmm7, %xmm9
	punpcklwd	%xmm3, %xmm13
	punpcklwd	%xmm3, %xmm2
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm3
	movdqa	%xmm9, %xmm6
	movdqa	%xmm0, %xmm7
	movdqu	-48(%rdx), %xmm0
	punpckhwd	%xmm3, %xmm6
	punpcklwd	%xmm3, %xmm7
	punpckhwd	%xmm10, %xmm1
	movdqu	-64(%rdx), %xmm10
	punpckhwd	%xmm6, %xmm7
	punpcklwd	%xmm3, %xmm9
	movdqa	%xmm5, %xmm3
	movaps	%xmm7, -56(%rsp)
	movdqa	%xmm5, %xmm7
	punpckhwd	%xmm1, %xmm3
	punpcklwd	%xmm6, %xmm9
	punpcklwd	%xmm1, %xmm7
	punpcklwd	%xmm1, %xmm5
	punpcklwd	%xmm8, %xmm13
	movdqa	%xmm7, %xmm6
	punpcklwd	%xmm3, %xmm5
	punpcklwd	%xmm3, %xmm7
	punpckhwd	%xmm3, %xmm6
	movdqu	-112(%rdx), %xmm3
	punpckhwd	%xmm8, %xmm2
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm6, %xmm7
	movdqu	-96(%rdx), %xmm6
	movaps	%xmm5, -40(%rsp)
	movdqu	-128(%rdx), %xmm5
	movdqa	%xmm6, %xmm14
	movdqa	%xmm5, %xmm15
	movdqa	%xmm5, %xmm1
	punpcklwd	%xmm3, %xmm5
	punpcklwd	%xmm3, %xmm15
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm12, %xmm14
	movdqa	%xmm15, %xmm8
	punpcklwd	%xmm1, %xmm5
	punpcklwd	%xmm1, %xmm15
	punpckhwd	%xmm1, %xmm8
	movdqa	%xmm6, %xmm1
	punpcklwd	%xmm8, %xmm15
	punpckhwd	%xmm8, %xmm5
	movdqa	%xmm6, %xmm8
	punpcklwd	%xmm12, %xmm8
	punpckhwd	%xmm12, %xmm1
	movdqa	%xmm8, %xmm3
	punpcklwd	%xmm1, %xmm14
	punpcklwd	%xmm1, %xmm8
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm10, %xmm1
	punpcklwd	%xmm3, %xmm8
	punpckhwd	%xmm3, %xmm14
	movdqu	-48(%rdx), %xmm3
	punpckhwd	%xmm0, %xmm1
	movdqa	%xmm10, %xmm0
	punpcklwd	%xmm3, %xmm0
	movdqa	%xmm0, %xmm6
	movdqa	%xmm0, %xmm3
	movdqu	-48(%rdx), %xmm0
	punpckhwd	%xmm1, %xmm3
	punpcklwd	%xmm1, %xmm6
	punpcklwd	%xmm0, %xmm10
	punpcklwd	%xmm3, %xmm6
	movdqu	-16(%rdx), %xmm0
	punpcklwd	%xmm1, %xmm10
	movdqu	-16(%rdx), %xmm1
	punpckhwd	%xmm3, %xmm10
	movdqu	-32(%rdx), %xmm3
	punpckhwd	%xmm1, %xmm3
	movdqu	-32(%rdx), %xmm1
	punpcklwd	%xmm0, %xmm1
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	movdqa	%xmm1, %xmm12
	movdqa	%xmm0, %xmm1
	movdqu	-16(%rdx), %xmm0
	punpcklwd	%xmm12, %xmm1
	movaps	%xmm1, -24(%rsp)
	movdqu	-32(%rdx), %xmm1
	punpcklwd	%xmm0, %xmm1
	punpcklwd	%xmm3, %xmm1
	movdqa	%xmm15, %xmm3
	punpckhwd	%xmm12, %xmm1
	punpcklwd	%xmm8, %xmm3
	movdqa	%xmm15, %xmm12
	movaps	%xmm1, -72(%rsp)
	punpckhwd	%xmm8, %xmm12
	movdqa	%xmm3, %xmm0
	movdqa	-24(%rsp), %xmm1
	punpcklwd	%xmm8, %xmm15
	punpckhwd	%xmm12, %xmm0
	punpcklwd	%xmm12, %xmm3
	punpcklwd	%xmm12, %xmm15
	movdqa	%xmm6, %xmm8
	movdqa	%xmm6, %xmm12
	punpckhwd	%xmm1, %xmm12
	punpcklwd	%xmm1, %xmm8
	punpcklwd	%xmm1, %xmm6
	punpcklwd	%xmm0, %xmm3
	punpckhwd	%xmm0, %xmm15
	punpcklwd	%xmm12, %xmm6
	movdqa	%xmm8, %xmm0
	punpcklwd	%xmm12, %xmm8
	punpckhwd	%xmm12, %xmm0
	movdqa	%xmm6, %xmm12
	punpcklwd	%xmm0, %xmm8
	punpckhwd	%xmm0, %xmm12
	movdqa	%xmm5, %xmm0
	punpckhwd	%xmm14, %xmm0
	movaps	%xmm12, -24(%rsp)
	movdqa	%xmm0, %xmm6
	movdqa	%xmm5, %xmm0
	punpcklwd	%xmm14, %xmm5
	punpcklwd	%xmm14, %xmm0
	punpcklwd	%xmm6, %xmm5
	movdqa	-72(%rsp), %xmm14
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm6, %xmm0
	punpcklwd	%xmm6, %xmm1
	punpckhwd	%xmm0, %xmm5
	punpcklwd	%xmm0, %xmm1
	movdqa	%xmm10, %xmm0
	punpckhwd	%xmm14, %xmm0
	movdqa	%xmm0, %xmm12
	movdqa	%xmm10, %xmm0
	punpcklwd	%xmm14, %xmm0
	movdqa	%xmm0, %xmm6
	punpckhwd	%xmm12, %xmm0
	punpcklwd	%xmm12, %xmm6
	movdqa	%xmm0, %xmm14
	punpcklwd	%xmm0, %xmm6
	movdqa	%xmm10, %xmm0
	punpcklwd	-72(%rsp), %xmm0
	movdqa	%xmm3, %xmm10
	punpcklwd	%xmm8, %xmm10
	punpcklwd	%xmm12, %xmm0
	movdqa	%xmm3, %xmm12
	punpckhwd	%xmm8, %xmm12
	punpckhwd	%xmm14, %xmm0
	punpcklwd	%xmm8, %xmm3
	movdqa	%xmm10, %xmm14
	punpcklwd	%xmm12, %xmm3
	punpcklwd	%xmm12, %xmm10
	movaps	%xmm0, -72(%rsp)
	punpckhwd	%xmm12, %xmm14
	movdqa	%xmm1, %xmm12
	movdqa	%xmm1, %xmm8
	movdqa	-24(%rsp), %xmm0
	punpcklwd	%xmm6, %xmm12
	punpckhwd	%xmm14, %xmm3
	punpckhwd	%xmm6, %xmm8
	punpcklwd	%xmm14, %xmm10
	punpcklwd	%xmm6, %xmm1
	movdqa	%xmm12, %xmm14
	punpckhwd	%xmm8, %xmm14
	punpcklwd	%xmm8, %xmm12
	punpcklwd	%xmm8, %xmm1
	movdqa	%xmm15, %xmm8
	punpckhwd	%xmm14, %xmm1
	punpcklwd	%xmm14, %xmm12
	punpckhwd	%xmm0, %xmm8
	movdqa	%xmm8, %xmm6
	movdqa	%xmm15, %xmm8
	punpcklwd	%xmm0, %xmm15
	punpcklwd	%xmm0, %xmm8
	punpcklwd	%xmm6, %xmm15
	movdqa	-72(%rsp), %xmm0
	movdqa	%xmm8, %xmm14
	punpcklwd	%xmm6, %xmm8
	punpckhwd	%xmm6, %xmm14
	movdqa	%xmm5, %xmm6
	punpcklwd	%xmm14, %xmm8
	punpckhwd	%xmm14, %xmm15
	movdqa	%xmm5, %xmm14
	punpckhwd	%xmm0, %xmm14
	punpcklwd	%xmm0, %xmm6
	punpcklwd	%xmm0, %xmm5
	movaps	%xmm15, -24(%rsp)
	pxor	%xmm0, %xmm0
	movdqa	%xmm6, %xmm15
	punpcklwd	%xmm14, %xmm5
	pcmpgtw	%xmm13, %xmm0
	punpckhwd	%xmm14, %xmm15
	punpcklwd	%xmm14, %xmm6
	movdqa	%xmm5, %xmm14
	punpcklwd	%xmm15, %xmm6
	punpckhwd	%xmm15, %xmm14
	movdqa	%xmm0, %xmm15
	movdqa	%xmm13, %xmm0
	movaps	%xmm14, -72(%rsp)
	punpcklwd	%xmm15, %xmm0
	punpckhwd	%xmm15, %xmm13
	movdqa	%xmm0, %xmm14
	pslld	$1, %xmm13
	paddd	.LC326(%rip), %xmm13
	pslld	$1, %xmm14
	paddd	.LC326(%rip), %xmm14
	movdqa	%xmm14, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm5
	psubd	%xmm14, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm14, %xmm5
	movdqa	%xmm5, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm0, %xmm5
	movdqa	%xmm13, %xmm0
	pslld	$6, %xmm0
	psrld	$28, %xmm5
	movdqa	%xmm0, %xmm14
	movdqa	%xmm5, %xmm0
	psubd	%xmm13, %xmm14
	pslld	$8, %xmm14
	psubd	%xmm13, %xmm14
	movdqa	%xmm14, %xmm13
	pslld	$2, %xmm13
	paddd	%xmm14, %xmm13
	psrld	$28, %xmm13
	punpckhwd	%xmm13, %xmm0
	movdqa	%xmm0, %xmm14
	movdqa	%xmm5, %xmm0
	punpcklwd	%xmm13, %xmm0
	movdqa	%xmm12, %xmm13
	movdqa	%xmm0, %xmm15
	punpckhwd	%xmm14, %xmm0
	punpcklwd	%xmm14, %xmm15
	punpcklwd	%xmm0, %xmm15
	pxor	%xmm0, %xmm0
	pcmpgtw	%xmm12, %xmm0
	punpcklwd	%xmm0, %xmm13
	movdqa	%xmm0, %xmm14
	pslld	$1, %xmm13
	punpckhwd	%xmm14, %xmm12
	paddd	.LC326(%rip), %xmm13
	pslld	$1, %xmm12
	paddd	.LC326(%rip), %xmm12
	movdqa	%xmm13, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm5
	psubd	%xmm13, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm13, %xmm5
	movdqa	%xmm5, %xmm13
	pslld	$2, %xmm13
	paddd	%xmm13, %xmm5
	movdqa	%xmm12, %xmm13
	pslld	$6, %xmm13
	psrld	$28, %xmm5
	psubd	%xmm12, %xmm13
	pslld	$8, %xmm13
	psubd	%xmm12, %xmm13
	movdqa	%xmm13, %xmm12
	pslld	$2, %xmm12
	paddd	%xmm12, %xmm13
	movdqa	%xmm5, %xmm12
	psrld	$28, %xmm13
	punpcklwd	%xmm13, %xmm5
	punpckhwd	%xmm13, %xmm12
	movdqa	%xmm5, %xmm13
	punpcklwd	%xmm12, %xmm5
	punpckhwd	%xmm12, %xmm13
	movdqa	.LC327(%rip), %xmm12
	punpcklwd	%xmm13, %xmm5
	pand	.LC327(%rip), %xmm5
	pxor	%xmm13, %xmm13
	pand	%xmm15, %xmm12
	pcmpgtw	%xmm11, %xmm13
	packuswb	%xmm5, %xmm12
	paddb	%xmm12, %xmm12
	pand	.LC329(%rip), %xmm12
	movdqa	%xmm12, %xmm14
	movdqa	%xmm11, %xmm12
	punpckhwd	%xmm13, %xmm11
	punpcklwd	%xmm13, %xmm12
	pslld	$1, %xmm11
	paddd	.LC326(%rip), %xmm11
	pslld	$1, %xmm12
	paddd	.LC326(%rip), %xmm12
	movdqa	%xmm12, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm5
	psubd	%xmm12, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm12, %xmm5
	movdqa	%xmm5, %xmm12
	pslld	$2, %xmm12
	paddd	%xmm12, %xmm5
	movdqa	%xmm11, %xmm12
	pslld	$6, %xmm11
	psrld	$28, %xmm5
	psubd	%xmm12, %xmm11
	movdqa	%xmm5, %xmm13
	pslld	$8, %xmm11
	psubd	%xmm12, %xmm11
	movdqa	%xmm11, %xmm12
	pslld	$2, %xmm12
	paddd	%xmm12, %xmm11
	movdqa	%xmm5, %xmm12
	psrld	$28, %xmm11
	punpcklwd	%xmm11, %xmm13
	punpckhwd	%xmm11, %xmm12
	movdqa	%xmm10, %xmm11
	movdqa	%xmm13, %xmm0
	punpcklwd	%xmm12, %xmm13
	punpckhwd	%xmm12, %xmm0
	pxor	%xmm12, %xmm12
	pcmpgtw	%xmm10, %xmm12
	punpcklwd	%xmm0, %xmm13
	pand	.LC327(%rip), %xmm13
	punpcklwd	%xmm12, %xmm11
	punpckhwd	%xmm12, %xmm10
	movdqa	%xmm9, %xmm12
	pslld	$1, %xmm11
	pslld	$1, %xmm10
	paddd	.LC326(%rip), %xmm11
	paddd	.LC326(%rip), %xmm10
	movdqa	%xmm11, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm5
	psubd	%xmm11, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm11, %xmm5
	movdqa	%xmm5, %xmm11
	pslld	$2, %xmm11
	paddd	%xmm11, %xmm5
	movdqa	%xmm10, %xmm11
	pslld	$6, %xmm11
	psrld	$28, %xmm5
	psubd	%xmm10, %xmm11
	pslld	$8, %xmm11
	psubd	%xmm10, %xmm11
	movdqa	%xmm11, %xmm10
	pslld	$2, %xmm10
	paddd	%xmm11, %xmm10
	movdqa	%xmm5, %xmm11
	psrld	$28, %xmm10
	punpcklwd	%xmm10, %xmm5
	punpckhwd	%xmm10, %xmm11
	movdqa	%xmm5, %xmm10
	punpcklwd	%xmm11, %xmm5
	punpckhwd	%xmm11, %xmm10
	pxor	%xmm11, %xmm11
	pcmpgtw	%xmm9, %xmm11
	punpcklwd	%xmm10, %xmm5
	movdqa	%xmm13, %xmm10
	pand	.LC327(%rip), %xmm5
	punpcklwd	%xmm11, %xmm12
	punpckhwd	%xmm11, %xmm9
	packuswb	%xmm5, %xmm10
	pslld	$1, %xmm12
	pslld	$1, %xmm9
	paddd	.LC326(%rip), %xmm12
	paddd	.LC326(%rip), %xmm9
	pand	.LC330(%rip), %xmm10
	movdqa	%xmm12, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm9, %xmm11
	por	%xmm14, %xmm10
	movdqa	%xmm0, %xmm5
	pslld	$6, %xmm11
	psubd	%xmm12, %xmm5
	psubd	%xmm9, %xmm11
	pslld	$8, %xmm5
	pslld	$8, %xmm11
	psubd	%xmm9, %xmm11
	psubd	%xmm12, %xmm5
	movdqa	%xmm5, %xmm12
	movdqa	%xmm11, %xmm9
	pslld	$2, %xmm12
	pslld	$2, %xmm9
	paddd	%xmm12, %xmm5
	paddd	%xmm11, %xmm9
	movdqa	%xmm8, %xmm12
	psrld	$28, %xmm9
	psrld	$28, %xmm5
	movdqa	%xmm5, %xmm11
	punpcklwd	%xmm9, %xmm5
	punpckhwd	%xmm9, %xmm11
	movdqa	%xmm5, %xmm9
	punpckhwd	%xmm11, %xmm9
	punpcklwd	%xmm11, %xmm5
	pxor	%xmm11, %xmm11
	pcmpgtw	%xmm8, %xmm11
	punpcklwd	%xmm9, %xmm5
	pand	.LC327(%rip), %xmm5
	punpcklwd	%xmm11, %xmm12
	punpckhwd	%xmm11, %xmm8
	pslld	$1, %xmm12
	pslld	$1, %xmm8
	paddd	.LC326(%rip), %xmm12
	paddd	.LC326(%rip), %xmm8
	movdqa	%xmm12, %xmm9
	movdqa	%xmm8, %xmm11
	pslld	$6, %xmm9
	pslld	$6, %xmm11
	psubd	%xmm12, %xmm9
	psubd	%xmm8, %xmm11
	pslld	$8, %xmm9
	pslld	$8, %xmm11
	psubd	%xmm12, %xmm9
	psubd	%xmm8, %xmm11
	movdqa	%xmm9, %xmm12
	movdqa	%xmm11, %xmm8
	pslld	$2, %xmm12
	pslld	$2, %xmm8
	paddd	%xmm12, %xmm9
	paddd	%xmm11, %xmm8
	psrld	$28, %xmm9
	psrld	$28, %xmm8
	movdqa	%xmm9, %xmm11
	punpcklwd	%xmm8, %xmm9
	punpckhwd	%xmm8, %xmm11
	movdqa	%xmm9, %xmm8
	punpcklwd	%xmm11, %xmm9
	punpckhwd	%xmm11, %xmm8
	punpcklwd	%xmm8, %xmm9
	movdqa	%xmm10, %xmm8
	movdqa	%xmm7, %xmm10
	pand	.LC327(%rip), %xmm9
	packuswb	%xmm9, %xmm5
	pxor	%xmm9, %xmm9
	pcmpgtw	%xmm7, %xmm9
	paddb	%xmm5, %xmm5
	paddb	%xmm5, %xmm5
	pand	.LC331(%rip), %xmm5
	punpcklwd	%xmm9, %xmm10
	punpckhwd	%xmm9, %xmm7
	por	%xmm5, %xmm8
	pslld	$1, %xmm10
	pslld	$1, %xmm7
	paddd	.LC326(%rip), %xmm10
	paddd	.LC326(%rip), %xmm7
	movdqa	%xmm10, %xmm0
	movdqa	%xmm7, %xmm9
	pslld	$6, %xmm0
	pslld	$6, %xmm9
	movdqa	%xmm0, %xmm5
	psubd	%xmm7, %xmm9
	psubd	%xmm10, %xmm5
	pslld	$8, %xmm9
	pslld	$8, %xmm5
	psubd	%xmm7, %xmm9
	psubd	%xmm10, %xmm5
	movdqa	%xmm9, %xmm0
	movdqa	%xmm5, %xmm10
	pslld	$2, %xmm0
	pslld	$2, %xmm10
	movdqa	%xmm0, %xmm7
	paddd	%xmm10, %xmm5
	movdqa	%xmm6, %xmm10
	paddd	%xmm9, %xmm7
	psrld	$28, %xmm5
	psrld	$28, %xmm7
	movdqa	%xmm5, %xmm9
	punpcklwd	%xmm7, %xmm5
	punpckhwd	%xmm7, %xmm9
	movdqa	%xmm5, %xmm0
	punpcklwd	%xmm9, %xmm5
	punpckhwd	%xmm9, %xmm0
	pxor	%xmm9, %xmm9
	pcmpgtw	%xmm6, %xmm9
	punpcklwd	%xmm0, %xmm5
	pand	.LC327(%rip), %xmm5
	punpcklwd	%xmm9, %xmm10
	punpckhwd	%xmm9, %xmm6
	pslld	$1, %xmm10
	pslld	$1, %xmm6
	paddd	.LC326(%rip), %xmm10
	paddd	.LC326(%rip), %xmm6
	movdqa	%xmm10, %xmm0
	movdqa	%xmm6, %xmm9
	pslld	$6, %xmm0
	pslld	$6, %xmm9
	movdqa	%xmm0, %xmm7
	psubd	%xmm6, %xmm9
	psubd	%xmm10, %xmm7
	pslld	$8, %xmm9
	pslld	$8, %xmm7
	psubd	%xmm6, %xmm9
	psubd	%xmm10, %xmm7
	movdqa	%xmm9, %xmm0
	movdqa	%xmm7, %xmm10
	pslld	$2, %xmm0
	pslld	$2, %xmm10
	movdqa	%xmm0, %xmm6
	paddd	%xmm10, %xmm7
	paddd	%xmm9, %xmm6
	psrld	$28, %xmm7
	psrld	$28, %xmm6
	movdqa	%xmm7, %xmm9
	punpcklwd	%xmm6, %xmm7
	punpckhwd	%xmm6, %xmm9
	movdqa	%xmm7, %xmm0
	punpcklwd	%xmm9, %xmm7
	punpckhwd	%xmm9, %xmm0
	punpcklwd	%xmm0, %xmm7
	pand	.LC327(%rip), %xmm7
	pxor	%xmm0, %xmm0
	pcmpgtw	%xmm4, %xmm0
	packuswb	%xmm7, %xmm5
	paddb	%xmm5, %xmm5
	paddb	%xmm5, %xmm5
	movdqa	%xmm0, %xmm7
	paddb	%xmm5, %xmm5
	pand	.LC332(%rip), %xmm5
	por	%xmm8, %xmm5
	movdqa	%xmm4, %xmm8
	punpckhwd	%xmm7, %xmm4
	punpcklwd	%xmm0, %xmm8
	pslld	$1, %xmm4
	pslld	$1, %xmm8
	paddd	.LC326(%rip), %xmm8
	paddd	.LC326(%rip), %xmm4
	movdqa	%xmm8, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm6
	movdqa	%xmm4, %xmm0
	pslld	$6, %xmm0
	psubd	%xmm8, %xmm6
	movdqa	%xmm0, %xmm7
	pslld	$8, %xmm6
	psubd	%xmm4, %xmm7
	psubd	%xmm8, %xmm6
	pslld	$8, %xmm7
	movdqa	%xmm6, %xmm8
	psubd	%xmm4, %xmm7
	pslld	$2, %xmm8
	movdqa	%xmm7, %xmm4
	paddd	%xmm8, %xmm6
	pxor	%xmm8, %xmm8
	pslld	$2, %xmm4
	psrld	$28, %xmm6
	paddd	%xmm7, %xmm4
	pcmpgtw	%xmm3, %xmm8
	movdqa	%xmm6, %xmm0
	psrld	$28, %xmm4
	punpcklwd	%xmm4, %xmm6
	punpckhwd	%xmm4, %xmm0
	movdqa	%xmm6, %xmm4
	punpcklwd	%xmm0, %xmm6
	punpckhwd	%xmm0, %xmm4
	punpcklwd	%xmm4, %xmm6
	movdqa	%xmm3, %xmm4
	punpcklwd	%xmm8, %xmm4
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	movdqa	%xmm4, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm7
	psubd	%xmm4, %xmm7
	pslld	$8, %xmm7
	psubd	%xmm4, %xmm7
	movdqa	%xmm7, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm7
	movdqa	%xmm3, %xmm4
	punpckhwd	%xmm8, %xmm4
	psrld	$28, %xmm7
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm4, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm4, %xmm3
	movdqa	%xmm3, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm3
	movdqa	%xmm7, %xmm4
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm7
	punpckhwd	%xmm3, %xmm4
	movdqa	%xmm7, %xmm3
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm3
	pxor	%xmm4, %xmm4
	punpcklwd	%xmm3, %xmm7
	movdqa	.LC327(%rip), %xmm3
	pand	.LC327(%rip), %xmm7
	pcmpgtw	%xmm2, %xmm4
	pand	%xmm6, %xmm3
	packuswb	%xmm7, %xmm3
	movdqa	-56(%rsp), %xmm7
	paddb	%xmm3, %xmm3
	movdqa	%xmm4, %xmm6
	movdqa	%xmm2, %xmm4
	paddb	%xmm3, %xmm3
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm2
	paddb	%xmm3, %xmm3
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	paddb	%xmm3, %xmm3
	pand	.LC333(%rip), %xmm3
	por	%xmm5, %xmm3
	movdqa	%xmm4, %xmm5
	pslld	$1, %xmm5
	paddd	.LC326(%rip), %xmm5
	movdqa	%xmm5, %xmm4
	pslld	$6, %xmm4
	psubd	%xmm5, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm5, %xmm4
	movdqa	%xmm4, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm0, %xmm4
	movdqa	%xmm2, %xmm0
	pslld	$6, %xmm0
	psrld	$28, %xmm4
	movdqa	%xmm0, %xmm5
	movdqa	%xmm4, %xmm0
	psubd	%xmm2, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm2, %xmm5
	movdqa	%xmm5, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm5, %xmm2
	psrld	$28, %xmm2
	punpcklwd	%xmm2, %xmm4
	punpckhwd	%xmm2, %xmm0
	movdqa	%xmm4, %xmm2
	punpcklwd	%xmm0, %xmm4
	punpckhwd	%xmm0, %xmm2
	punpcklwd	%xmm2, %xmm4
	pxor	%xmm2, %xmm2
	pand	.LC327(%rip), %xmm4
	pcmpgtw	%xmm1, %xmm2
	movdqa	%xmm2, %xmm6
	movdqa	%xmm1, %xmm2
	punpcklwd	%xmm6, %xmm2
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	movdqa	%xmm2, %xmm0
	pslld	$6, %xmm0
	movdqa	%xmm0, %xmm5
	psubd	%xmm2, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm2, %xmm5
	movdqa	%xmm5, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm2, %xmm5
	movdqa	%xmm1, %xmm2
	punpckhwd	%xmm6, %xmm2
	psrld	$28, %xmm5
	movdqa	-40(%rsp), %xmm6
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	movdqa	%xmm2, %xmm1
	pslld	$6, %xmm1
	psubd	%xmm2, %xmm1
	pslld	$8, %xmm1
	psubd	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm2, %xmm1
	movdqa	%xmm5, %xmm2
	psrld	$28, %xmm1
	punpcklwd	%xmm1, %xmm5
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm5, %xmm1
	punpcklwd	%xmm2, %xmm5
	punpckhwd	%xmm2, %xmm1
	movdqa	%xmm3, %xmm2
	movdqa	%xmm7, %xmm3
	punpcklwd	%xmm1, %xmm5
	pand	.LC327(%rip), %xmm5
	movdqa	%xmm4, %xmm1
	pxor	%xmm4, %xmm4
	packuswb	%xmm5, %xmm1
	pcmpgtw	%xmm7, %xmm4
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	punpcklwd	%xmm4, %xmm3
	punpckhwd	%xmm4, %xmm7
	paddb	%xmm1, %xmm1
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	paddb	%xmm1, %xmm1
	pand	.LC334(%rip), %xmm1
	movdqa	%xmm7, %xmm0
	movdqa	-24(%rsp), %xmm7
	pslld	$1, %xmm0
	paddd	.LC326(%rip), %xmm0
	pxor	%xmm4, %xmm4
	por	%xmm1, %xmm2
	pcmpgtw	%xmm7, %xmm4
	movdqa	%xmm3, %xmm1
	pslld	$6, %xmm1
	psubd	%xmm3, %xmm1
	pslld	$8, %xmm1
	movdqa	%xmm4, %xmm5
	psubd	%xmm3, %xmm1
	movdqa	%xmm1, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm3, %xmm1
	movdqa	%xmm0, %xmm3
	pslld	$6, %xmm3
	psrld	$28, %xmm1
	psubd	%xmm0, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm0, %xmm3
	movdqa	%xmm3, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm3, %xmm0
	movdqa	%xmm1, %xmm3
	psrld	$28, %xmm0
	punpcklwd	%xmm0, %xmm1
	punpckhwd	%xmm0, %xmm3
	movdqa	%xmm1, %xmm0
	punpcklwd	%xmm3, %xmm1
	punpckhwd	%xmm3, %xmm0
	punpcklwd	%xmm0, %xmm1
	movdqa	%xmm7, %xmm0
	pand	.LC327(%rip), %xmm1
	punpcklwd	%xmm4, %xmm0
	pslld	$1, %xmm0
	paddd	.LC326(%rip), %xmm0
	movdqa	%xmm0, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm0, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm0, %xmm3
	movdqa	%xmm3, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm0, %xmm3
	movdqa	%xmm7, %xmm0
	movdqa	-72(%rsp), %xmm7
	punpckhwd	%xmm5, %xmm0
	movdqa	%xmm3, %xmm4
	pslld	$1, %xmm0
	paddd	.LC326(%rip), %xmm0
	psrld	$28, %xmm4
	movdqa	%xmm0, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm0, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm0, %xmm3
	movdqa	%xmm3, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm3, %xmm0
	movdqa	%xmm4, %xmm3
	psrld	$28, %xmm0
	punpckhwd	%xmm0, %xmm3
	movdqa	%xmm3, %xmm5
	movdqa	%xmm4, %xmm3
	pxor	%xmm4, %xmm4
	punpcklwd	%xmm0, %xmm3
	pcmpgtw	%xmm7, %xmm4
	movdqa	%xmm3, %xmm0
	punpcklwd	%xmm5, %xmm3
	punpckhwd	%xmm5, %xmm0
	punpcklwd	%xmm0, %xmm3
	pand	.LC327(%rip), %xmm3
	packuswb	%xmm3, %xmm1
	pxor	%xmm3, %xmm3
	paddb	%xmm1, %xmm1
	pcmpgtw	%xmm6, %xmm3
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	pand	.LC335(%rip), %xmm1
	por	%xmm1, %xmm2
	movdqa	%xmm2, %xmm0
	movdqa	%xmm6, %xmm2
	punpckhwd	%xmm3, %xmm6
	punpcklwd	%xmm3, %xmm2
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	movdqa	%xmm2, %xmm1
	pslld	$6, %xmm1
	psubd	%xmm2, %xmm1
	pslld	$8, %xmm1
	psubd	%xmm2, %xmm1
	movdqa	%xmm1, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm2, %xmm1
	movdqa	%xmm6, %xmm2
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	psrld	$28, %xmm1
	movdqa	%xmm2, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm2, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm2, %xmm3
	movdqa	%xmm3, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm3, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$28, %xmm2
	punpcklwd	%xmm2, %xmm1
	punpckhwd	%xmm2, %xmm3
	movdqa	%xmm1, %xmm2
	punpcklwd	%xmm3, %xmm1
	punpckhwd	%xmm3, %xmm2
	movdqa	%xmm7, %xmm3
	punpckhwd	%xmm4, %xmm7
	punpcklwd	%xmm4, %xmm3
	punpcklwd	%xmm2, %xmm1
	pand	.LC327(%rip), %xmm1
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	movdqa	%xmm3, %xmm2
	pslld	$6, %xmm2
	psubd	%xmm3, %xmm2
	pslld	$8, %xmm2
	psubd	%xmm3, %xmm2
	movdqa	%xmm2, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm3, %xmm2
	movdqa	%xmm7, %xmm3
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	psrld	$28, %xmm2
	movdqa	%xmm3, %xmm4
	pslld	$6, %xmm4
	psubd	%xmm3, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm3, %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm4, %xmm3
	movdqa	%xmm2, %xmm4
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm2
	punpckhwd	%xmm3, %xmm4
	movdqa	%xmm2, %xmm3
	punpcklwd	%xmm4, %xmm2
	punpckhwd	%xmm4, %xmm3
	punpcklwd	%xmm3, %xmm2
	pand	.LC327(%rip), %xmm2
	packuswb	%xmm2, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	paddb	%xmm1, %xmm1
	por	%xmm1, %xmm0
	movups	%xmm0, -16(%rcx)
	cmpq	%rax, %rcx
	jne	.L13176
	ret
	.p2align 4,,10
	.p2align 3
.L13178:

	movb	$0, (%rcx)
	movswl	(%rdx), %eax
	addq	$1, %rcx
	leal	1665(%rax,%rax), %eax
	imull	$80635, %eax, %eax
	shrl	$28, %eax
	andl	$1, %eax
	movb	%al, -1(%rcx)
	movswl	2(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$27, %esi
	andl	$2, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	4(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$26, %esi
	andl	$4, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	6(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$25, %esi
	andl	$8, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	8(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$24, %esi
	andl	$16, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	10(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$23, %esi
	andl	$32, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	12(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$22, %esi
	andl	$64, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	movswl	14(%rdx), %esi
	leal	1665(%rsi,%rsi), %esi
	imull	$80635, %esi, %esi
	shrl	$28, %esi
	sall	$7, %esi
	orl	%esi, %eax
	movb	%al, -1(%rcx)
	addq	$16, %rdx
	cmpq	%r8, %rdx
	jne	.L13178
	ret
	.cfi_endproc
.LFE2502:

	.size	ml_kem_poly_tomsg_ref, .-ml_kem_poly_tomsg_ref
# WAS .section	.text.ml_kem_poly_ntt_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_ntt_ref
	.hidden	ml_kem_poly_ntt_ref
	.type	ml_kem_poly_ntt_ref, @function
.Lml_kem_poly_ntt_ref_local_target:
ml_kem_poly_ntt_ref:
.LFB2505:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$7, %eax
	movdqa	.LC307(%rip), %xmm6
	movl	$128, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movdqa	.LC308(%rip), %xmm5
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movl	$1, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	$-758, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%eax, -12(%rsp)
	.p2align 4,,10
	.p2align 3
.L13183:

	movl	%r15d, %eax
	leal	-1(%r15), %r11d
	leal	1(%r15), %r12d
	xorl	%esi, %esi
	movq	%rax, -40(%rsp)
	movl	%r15d, %eax
	shrl	$3, %eax
	salq	$4, %rax
	movq	%rax, -32(%rsp)
	movl	%r15d, %eax
	andl	$-8, %eax
	movl	%eax, -20(%rsp)
	movl	%r15d, %eax
	andl	$7, %eax
	movl	%eax, -16(%rsp)
	.p2align 4,,10
	.p2align 3
.L13192:

	leal	1(%rsi), %eax
	leal	(%r15,%rsi), %edi
	addl	$1, %r13d
	movswl	%bp, %r8d
	cmpl	%eax, %edi
	movl	%esi, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L13184
	testb	%r10b, %r10b
	je	.L13184
	movq	-40(%rsp), %rbx
	leaq	(%rax,%rax), %rdx
	leaq	8(%rax,%rbx), %r9
	leaq	16(%rdx), %rbx
	addq	%r9, %r9
	leaq	-16(%r9), %rcx
	cmpq	%rbx, %rcx
	jge	.L13194
	cmpq	%r9, %rdx
	jge	.L13194
.L13184:

	movl	%edi, %edx
	subq	%rax, %rdx
	leaq	(%r14,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L13188:

	movswl	(%rcx,%rax,2), %r9d
	imull	%r8d, %r9d
	imulw	$-3327, %r9w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r9d, %edx
	movzwl	(%r14,%rax,2), %r9d
	sarl	$16, %edx
	subl	%edx, %r9d
	movw	%r9w, (%rcx,%rax,2)
	addw	%dx, (%r14,%rax,2)
	addq	$1, %rax
	cmpl	%edi, %eax
	jb	.L13188
.L13189:

	addl	%r12d, %esi
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %esi
	cmpl	$255, %esi
	ja	.L13211
	movl	%r13d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rdi
	movzwl	(%rdi,%rax,2), %ebp
	jmp	.L13192
	.p2align 4,,10
	.p2align 3
.L13194:

	movq	-32(%rsp), %rax
	movd	%ebp, %xmm4
	addq	%r14, %rcx
	addq	%r14, %rdx
	punpcklwd	%xmm4, %xmm4
	pshufd	$0, %xmm4, %xmm4
	addq	%rcx, %rax
	.p2align 4,,10
	.p2align 3
.L13186:

	movdqu	(%rcx), %xmm3
	movdqu	(%rcx), %xmm0
	addq	$16, %rcx
	addq	$16, %rdx
	pmullw	%xmm4, %xmm3
	pmulhw	%xmm4, %xmm0
	movdqa	%xmm3, %xmm7
	punpckhwd	%xmm0, %xmm3
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpckhwd	%xmm3, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm2, %xmm0
	pmullw	%xmm6, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm5, %xmm1
	pmullw	%xmm5, %xmm2
	movdqa	%xmm2, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm3, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm2, %xmm1
	punpcklwd	%xmm2, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rcx, %rax
	jne	.L13186
	movl	-20(%rsp), %eax
	leal	(%rax,%rsi), %edx
	movl	-16(%rsp), %eax
	testl	%eax, %eax
	je	.L13189
	leal	(%r15,%rdx), %eax
	leaq	(%r14,%rax,2), %r9
	movl	%edx, %eax
	movswl	(%r9), %ebx
	leaq	(%r14,%rax,2), %rcx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13189
	leal	(%rax,%r15), %ecx
	leaq	(%r14,%rcx,2), %r9
	leaq	(%r14,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13189
	leal	(%r15,%rax), %ecx
	leaq	(%r14,%rcx,2), %r9
	leaq	(%r14,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13189
	leal	(%r15,%rax), %ecx
	leaq	(%r14,%rcx,2), %r9
	leaq	(%r14,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13189
	leal	(%r15,%rax), %ecx
	leaq	(%r14,%rcx,2), %r9
	leaq	(%r14,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13189
	leal	(%r15,%rax), %ecx
	addl	$6, %edx
	leaq	(%r14,%rcx,2), %r9
	leaq	(%r14,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	cmpl	%edi, %edx
	jnb	.L13189
	leal	(%r15,%rdx), %eax
	leaq	(%r14,%rdx,2), %rdx
	leaq	(%r14,%rax,2), %rcx
	movswl	(%rcx), %edi
	imull	%r8d, %edi
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	movzwl	(%rdx), %edi
	sarl	$16, %eax
	subl	%eax, %edi
	movw	%di, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L13189
	.p2align 4,,10
	.p2align 3
.L13211:

	shrl	%r15d
	subl	$1, -12(%rsp)
	je	.L13191
	movl	%r13d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rsi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rsi
	movzwl	(%rsi,%rax,2), %ebp
	jmp	.L13183
.L13191:

	movdqa	.LC309(%rip), %xmm5
	movdqa	.LC310(%rip), %xmm4
	movq	%r14, %rax
	leaq	512(%r14), %rdx
	movdqa	.LC311(%rip), %xmm6
	.p2align 4,,10
	.p2align 3
.L13193:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm5, %xmm1
	pmulhw	%xmm5, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm4, %xmm1
	paddd	%xmm4, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm2
	movups	%xmm2, -16(%rax)
	cmpq	%rax, %rdx
	jne	.L13193
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2505:

	.size	ml_kem_poly_ntt_ref, .-ml_kem_poly_ntt_ref
# WAS .section	.text.ml_kem_poly_invntt_tomont_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_invntt_tomont_ref
	.hidden	ml_kem_poly_invntt_tomont_ref
	.type	ml_kem_poly_invntt_tomont_ref, @function
.Lml_kem_poly_invntt_tomont_ref_local_target:
ml_kem_poly_invntt_tomont_ref:
.LFB2506:

	.cfi_startproc
	endbr64
# WAS jmp	ml_kem_invntt_ref
	jmp	.Lml_kem_invntt_ref_local_target
	.cfi_endproc
.LFE2506:

	.size	ml_kem_poly_invntt_tomont_ref, .-ml_kem_poly_invntt_tomont_ref
# WAS .section	.text.ml_kem_poly_basemul_montgomery_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_basemul_montgomery_ref
	.hidden	ml_kem_poly_basemul_montgomery_ref
	.type	ml_kem_poly_basemul_montgomery_ref, @function
.Lml_kem_poly_basemul_montgomery_ref_local_target:
ml_kem_poly_basemul_montgomery_ref:
.LFB2507:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
# WAS leaq	128+ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target+128(%rip), %rdi
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	leaq	128(%rdi), %r8
	movq	%rax, %rdx
	.p2align 4,,10
	.p2align 3
.L13214:

	movswl	2(%rsi), %eax
	movswl	2(%rcx), %r10d
	movzwl	(%rdi), %r9d
	imull	%eax, %r10d
	imulw	$-3327, %r10w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r10d, %eax
	movswl	%r9w, %r10d
	sarl	$16, %eax
	imull	%r10d, %eax
	imulw	$-3327, %ax, %r10w
	movswl	%r10w, %r10d
	imull	$-3329, %r10d, %r10d
	addl	%eax, %r10d
	sarl	$16, %r10d
	movw	%r10w, (%rdx)
	movswl	(%rsi), %eax
	movswl	(%rcx), %r11d
	imull	%eax, %r11d
	imulw	$-3327, %r11w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r11d, %eax
	sarl	$16, %eax
	addl	%r10d, %eax
	movw	%ax, (%rdx)
	movswl	2(%rsi), %r10d
	movswl	(%rcx), %eax
	imull	%r10d, %eax
	imulw	$-3327, %ax, %r10w
	movswl	%r10w, %r10d
	imull	$-3329, %r10d, %r10d
	addl	%eax, %r10d
	sarl	$16, %r10d
	movw	%r10w, 2(%rdx)
	movswl	(%rsi), %eax
	movswl	2(%rcx), %r11d
	imull	%eax, %r11d
	imulw	$-3327, %r11w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r11d, %eax
	sarl	$16, %eax
	addl	%r10d, %eax
	movw	%ax, 2(%rdx)
	movswl	6(%rsi), %eax
	movswl	6(%rcx), %r10d
	imull	%eax, %r10d
	imulw	$-3327, %r10w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r10d, %eax
	sarl	$16, %eax
	negl	%r9d
	addq	$2, %rdi
	addq	$8, %rsi
	movswl	%r9w, %r9d
	addq	$8, %rcx
	addq	$8, %rdx
	imull	%r9d, %eax
	imulw	$-3327, %ax, %r9w
	movswl	%r9w, %r9d
	imull	$-3329, %r9d, %r9d
	addl	%eax, %r9d
	sarl	$16, %r9d
	movw	%r9w, -4(%rdx)
	movswl	-4(%rsi), %eax
	movswl	-4(%rcx), %r10d
	imull	%eax, %r10d
	imulw	$-3327, %r10w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r10d, %eax
	sarl	$16, %eax
	addl	%r9d, %eax
	movw	%ax, -4(%rdx)
	movswl	-2(%rsi), %r9d
	movswl	-4(%rcx), %eax
	imull	%r9d, %eax
	imulw	$-3327, %ax, %r9w
	movswl	%r9w, %r9d
	imull	$-3329, %r9d, %r9d
	addl	%eax, %r9d
	sarl	$16, %r9d
	movw	%r9w, -2(%rdx)
	movswl	-4(%rsi), %eax
	movswl	-2(%rcx), %r10d
	imull	%eax, %r10d
	imulw	$-3327, %r10w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r10d, %eax
	sarl	$16, %eax
	addl	%r9d, %eax
	movw	%ax, -2(%rdx)
	cmpq	%rdi, %r8
	jne	.L13214
	ret
	.cfi_endproc
.LFE2507:

	.size	ml_kem_poly_basemul_montgomery_ref, .-ml_kem_poly_basemul_montgomery_ref
# WAS .section	.text.ml_kem_poly_tomont_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_tomont_ref
	.hidden	ml_kem_poly_tomont_ref
	.type	ml_kem_poly_tomont_ref, @function
.Lml_kem_poly_tomont_ref_local_target:
ml_kem_poly_tomont_ref:
.LFB2508:

	.cfi_startproc
	endbr64
	movdqa	.LC336(%rip), %xmm5
	movdqa	.LC307(%rip), %xmm6
	leaq	512(%rdi), %rax
	movdqa	.LC308(%rip), %xmm4
	.p2align 4,,10
	.p2align 3
.L13217:

	movdqu	(%rdi), %xmm3
	movdqu	(%rdi), %xmm0
	addq	$16, %rdi
	pmullw	%xmm5, %xmm3
	pmulhw	%xmm5, %xmm0
	movdqa	%xmm3, %xmm7
	punpckhwd	%xmm0, %xmm3
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpckhwd	%xmm3, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm2, %xmm0
	pmullw	%xmm6, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm4, %xmm1
	pmullw	%xmm4, %xmm2
	movdqa	%xmm2, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm3, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm2, %xmm1
	punpcklwd	%xmm2, %xmm0
	punpcklwd	%xmm1, %xmm0
	movups	%xmm0, -16(%rdi)
	cmpq	%rdi, %rax
	jne	.L13217
	ret
	.cfi_endproc
.LFE2508:

	.size	ml_kem_poly_tomont_ref, .-ml_kem_poly_tomont_ref
# WAS .section	.text.ml_kem_poly_reduce_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_reduce_ref
	.hidden	ml_kem_poly_reduce_ref
	.type	ml_kem_poly_reduce_ref, @function
.Lml_kem_poly_reduce_ref_local_target:
ml_kem_poly_reduce_ref:
.LFB2509:

	.cfi_startproc
	endbr64
	movdqa	.LC309(%rip), %xmm5
	movdqa	.LC310(%rip), %xmm4
	leaq	512(%rdi), %rax
	movdqa	.LC311(%rip), %xmm6
	.p2align 4,,10
	.p2align 3
.L13220:

	movdqu	(%rdi), %xmm2
	addq	$16, %rdi
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm5, %xmm1
	pmulhw	%xmm5, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm4, %xmm1
	paddd	%xmm4, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm2
	movups	%xmm2, -16(%rdi)
	cmpq	%rdi, %rax
	jne	.L13220
	ret
	.cfi_endproc
.LFE2509:

	.size	ml_kem_poly_reduce_ref, .-ml_kem_poly_reduce_ref
# WAS .section	.text.ml_kem_poly_add_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_add_ref
	.hidden	ml_kem_poly_add_ref
	.type	ml_kem_poly_add_ref, @function
.Lml_kem_poly_add_ref_local_target:
ml_kem_poly_add_ref:
.LFB2510:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L13223:

	movdqu	(%rdx,%rax), %xmm0
	movdqu	(%rsi,%rax), %xmm1
	paddw	%xmm1, %xmm0
	movups	%xmm0, (%rdi,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L13223
	ret
	.cfi_endproc
.LFE2510:

	.size	ml_kem_poly_add_ref, .-ml_kem_poly_add_ref
# WAS .section	.text.ml_kem_poly_sub_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_sub_ref
	.hidden	ml_kem_poly_sub_ref
	.type	ml_kem_poly_sub_ref, @function
.Lml_kem_poly_sub_ref_local_target:
ml_kem_poly_sub_ref:
.LFB2511:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L13226:

	movdqu	(%rsi,%rax), %xmm0
	movdqu	(%rdx,%rax), %xmm1
	psubw	%xmm1, %xmm0
	movups	%xmm0, (%rdi,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L13226
	ret
	.cfi_endproc
.LFE2511:

	.size	ml_kem_poly_sub_ref, .-ml_kem_poly_sub_ref
# WAS .section	.text.ml_kem_polyvec_compress_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_compress_ref
	.hidden	ml_kem_polyvec_compress_ref
	.type	ml_kem_polyvec_compress_ref, @function
.Lml_kem_polyvec_compress_ref_local_target:
ml_kem_polyvec_compress_ref:
.LFB2512:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	movq	%rsi, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	(%r12), %rax
	leaq	(%rax,%rax,4), %rdx
	leaq	(%rax,%rdx,2), %rdx
	salq	$5, %rdx
	cmpq	%rdx, 32(%r12)
	je	.L13229
	testq	%rax, %rax
	je	.L13228
	addq	$320, %rdi
	xorl	%r8d, %r8d
	xorl	%edx, %edx
.L13231:

	salq	$9, %rdx
	leaq	-320(%rdi), %rcx
	addq	%r13, %rdx
	.p2align 4,,10
	.p2align 3
.L13234:

	movzwl	(%rdx), %eax
	movzwl	6(%rdx), %esi
	movl	%eax, %ebx
	sarw	$15, %bx
	andw	$3329, %bx
	addl	%eax, %ebx
	movzwl	2(%rdx), %eax
	movzwl	%bx, %ebx
	movl	%eax, %r9d
	salq	$10, %rbx
	sarw	$15, %r9w
	addq	$1665, %rbx
	andw	$3329, %r9w
	imulq	$1290167, %rbx, %rbx
	addl	%eax, %r9d
	movzwl	4(%rdx), %eax
	movzwl	%r9w, %r9d
	salq	$10, %r9
	movl	%eax, %r10d
	shrq	$32, %rbx
	sarw	$15, %r10w
	addq	$1665, %r9
	andw	$1023, %bx
	andw	$3329, %r10w
	imulq	$1290167, %r9, %r9
	addl	%eax, %r10d
	movl	%esi, %eax
	sarw	$15, %ax
	movzwl	%r10w, %r10d
	salq	$10, %r10
	andw	$3329, %ax
	shrq	$32, %r9
	addl	%esi, %eax
	addq	$1665, %r10
	movl	%r9d, %ebp
	movzwl	%ax, %eax
	imulq	$1290167, %r10, %r10
	andw	$1023, %bp
	salq	$10, %rax
	addq	$1665, %rax
	imulq	$1290167, %rax, %rax
	shrq	$32, %r10
	movl	%r10d, %r11d
	andw	$1023, %r11w
	shrq	$32, %rax
	movl	%eax, %esi
	movq	%rax, %r14
	andw	$1023, %si
	sall	$2, %r9d
	addq	$5, %rcx
	addq	$8, %rdx
	shrw	$4, %r11w
	movl	%r9d, %eax
	shrw	$6, %bp
	sall	$4, %r10d
	orb	%bh, %al
	movzbl	%bl, %ebx
	shrw	$2, %si
	movzbl	%al, %r9d
	movl	%r14d, %eax
	orl	%ebp, %r10d
	movb	%sil, -1(%rcx)
	sall	$6, %eax
	movzbl	%r10b, %r10d
	orl	%r11d, %eax
	movzbl	%al, %eax
	sall	$8, %eax
	orl	%r10d, %eax
	sall	$8, %eax
	orl	%r9d, %eax
	sall	$8, %eax
	orl	%ebx, %eax
	movl	%eax, -5(%rcx)
	cmpq	%rdi, %rcx
	jne	.L13234
	leal	1(%r8), %edx
	addq	$320, %rdi
	movq	%rdx, %r8
	cmpq	(%r12), %rdx
	jb	.L13231
.L13228:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13229:

	.cfi_restore_state
	testq	%rax, %rax
	je	.L13228
	leaq	352(%rsi), %rax
	xorl	%r14d, %r14d
	movq	%r12, %rdx
	movq	%r13, %rcx
	movq	%rax, -32(%rsp)
	movl	%r14d, %r11d
	xorl	%eax, %eax
.L13232:

	movq	-32(%rsp), %rdi
	movl	%r11d, -20(%rsp)
	salq	$9, %rax
	movq	%rdx, -16(%rsp)
	leaq	(%rcx,%rax), %rbp
	movq	%rcx, -8(%rsp)
	leaq	-352(%rdi), %r12
	.p2align 4,,10
	.p2align 3
.L13233:

	movzwl	0(%rbp), %edx
	movzwl	6(%rbp), %ecx
	movzwl	8(%rbp), %esi
	movzwl	10(%rbp), %edi
	movl	%edx, %eax
	movzwl	12(%rbp), %r8d
	movzwl	14(%rbp), %r15d
	sarw	$15, %ax
	andw	$3329, %ax
	addl	%edx, %eax
	movzwl	4(%rbp), %edx
	movzwl	%ax, %eax
	salq	$11, %rax
	addq	$1664, %rax
	imulq	$645084, %rax, %rax
	shrq	$31, %rax
	movl	%eax, %ebx
	movzwl	2(%rbp), %eax
	andw	$2047, %bx
	movl	%eax, %r9d
	sarw	$15, %r9w
	andw	$3329, %r9w
	addl	%eax, %r9d
	movl	%edx, %eax
	sarw	$15, %ax
	movzwl	%r9w, %r9d
	andw	$3329, %ax
	salq	$11, %r9
	addl	%edx, %eax
	movl	%ecx, %edx
	addq	$1664, %r9
	sarw	$15, %dx
	imulq	$645084, %r9, %r9
	movzwl	%ax, %eax
	andw	$3329, %dx
	salq	$11, %rax
	addl	%ecx, %edx
	addq	$1664, %rax
	movl	%esi, %ecx
	movzwl	%dx, %edx
	imulq	$645084, %rax, %rax
	shrq	$31, %r9
	salq	$11, %rdx
	movl	%r9d, %r14d
	addq	$1664, %rdx
	andw	$2047, %r14w
	imulq	$645084, %rdx, %rdx
	shrq	$31, %rax
	movl	%eax, %r11d
	movq	%rax, -40(%rsp)
	andw	$2047, %r11w
	shrq	$31, %rdx
	movl	%edx, %r13d
	andw	$2047, %r13w
	sarw	$15, %cx
	andw	$3329, %cx
	addl	%esi, %ecx
	movl	%edi, %esi
	sarw	$15, %si
	movzwl	%cx, %ecx
	andw	$3329, %si
	salq	$11, %rcx
	addl	%edi, %esi
	movl	%r8d, %edi
	addq	$1664, %rcx
	sarw	$15, %di
	imulq	$645084, %rcx, %rcx
	movzwl	%si, %esi
	andw	$3329, %di
	salq	$11, %rsi
	addl	%edi, %r8d
	addq	$1664, %rsi
	movzwl	%r8w, %r8d
	imulq	$645084, %rsi, %rsi
	shrq	$31, %rcx
	salq	$11, %r8
	movl	%ecx, %eax
	addq	$1664, %r8
	andw	$2047, %ax
	imulq	$645084, %r8, %r8
	shrq	$31, %rsi
	movw	%ax, -42(%rsp)
	movl	%esi, %r10d
	andw	$2047, %r10w
	shrq	$31, %r8
	movl	%r8d, %edi
	andw	$2047, %di
	movw	%di, -24(%rsp)
	movl	%r15d, %edi
	sarw	$15, %di
	andw	$3329, %di
	addl	%r15d, %edi
	movzwl	%di, %edi
	salq	$11, %rdi
	addq	$1664, %rdi
	imulq	$645084, %rdi, %rdi
	shrq	$31, %rdi
	movl	%edi, %r15d
	andw	$2047, %r15w
	sall	$3, %r9d
	addl	%edx, %edx
	shrw	$7, %r13w
	sall	$4, %ecx
	movl	%r9d, %eax
	movl	%r11d, %r9d
	shrw	$10, %r11w
	orl	%r13d, %ecx
	movzwl	-42(%rsp), %r13d
	orb	%bh, %al
	orl	%r11d, %edx
	movl	%esi, %r11d
	movl	%r10d, %esi
	movzbl	%cl, %ecx
	shrw	$4, %r13w
	sall	$7, %r11d
	movzbl	%dl, %edx
	movb	%al, -21(%rsp)
	shrw	%si
	orl	%r13d, %r11d
	shrw	$2, %r9w
	movzbl	-40(%rsp), %eax
	movzbl	%sil, %esi
	movzbl	%r11b, %r11d
	movzbl	%r9b, %r9d
	sall	$2, %r8d
	salq	$8, %rsi
	shrw	$5, %r14w
	sall	$6, %eax
	orq	%r11, %rsi
	shrw	$9, %r10w
	salq	$8, %rsi
	orl	%r14d, %eax
	orq	%rcx, %rsi
	salq	$8, %rsi
	orq	%rdx, %rsi
	movzbl	%al, %edx
	salq	$8, %rsi
	orq	%r9, %rsi
	salq	$8, %rsi
	movq	%rsi, %rax
	orq	%rdx, %rax
	movzbl	-21(%rsp), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	%bl, %edx
	movzwl	-24(%rsp), %ebx
	salq	$8, %rax
	orq	%rdx, %rax
	orl	%r10d, %r8d
	shrw	$6, %bx
	addq	$11, %r12
	sall	$5, %edi
	movq	%rax, -11(%r12)
	shrw	$3, %r15w
	movq	-32(%rsp), %rax
	orl	%ebx, %edi
	movb	%r8b, -3(%r12)
	addq	$16, %rbp
	movb	%dil, -2(%r12)
	movb	%r15b, -1(%r12)
	cmpq	%rax, %r12
	jne	.L13233
	movl	-20(%rsp), %r11d
	movq	-16(%rsp), %rdx
	addq	$352, -32(%rsp)
	movq	-8(%rsp), %rcx
	leal	1(%r11), %eax
	movq	%rax, %r11
	cmpq	(%rdx), %rax
	jb	.L13232
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2512:

	.size	ml_kem_polyvec_compress_ref, .-ml_kem_polyvec_compress_ref
# WAS .section	.text.ml_kem_polyvec_decompress_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_decompress_ref
	.hidden	ml_kem_polyvec_decompress_ref
	.type	ml_kem_polyvec_decompress_ref, @function
.Lml_kem_polyvec_decompress_ref_local_target:
ml_kem_polyvec_decompress_ref:
.LFB2513:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	movq	%rdx, %rsi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	(%rdi), %r15
	leaq	(%r15,%r15,4), %rdx
	leaq	(%r15,%rdx,2), %rdx
	salq	$5, %rdx
	cmpq	%rdx, 32(%rdi)
	je	.L13246
	testq	%r15, %r15
	je	.L13245
	addq	$320, %rsi
	xorl	%edi, %edi
	xorl	%ecx, %ecx
.L13248:

	salq	$9, %rcx
	leaq	-320(%rsi), %rdx
	addq	%r14, %rcx
	.p2align 4,,10
	.p2align 3
.L13251:

	movzbl	2(%rdx), %eax
	movzwl	(%rdx), %r8d
	addq	$5, %rdx
	addq	$8, %rcx
	movzbl	-4(%rdx), %r9d
	movzbl	-2(%rdx), %r11d
	movl	%eax, %r10d
	sall	$6, %eax
	andl	$1023, %r8d
	shrb	$2, %r9b
	movl	%r11d, %ebx
	shrb	$4, %r10b
	shrb	$6, %bl
	movzbl	%r9b, %r9d
	movzbl	%r10b, %r10d
	sall	$4, %r11d
	orl	%eax, %r9d
	movzbl	-1(%rdx), %eax
	movzbl	%bl, %ebx
	orl	%r11d, %r10d
	andl	$1023, %r10d
	andl	$1023, %r9d
	sall	$2, %eax
	imull	$3329, %r10d, %r10d
	orl	%ebx, %eax
	imull	$3329, %r9d, %r9d
	cwtl
	imull	$3329, %r8d, %r8d
	imull	$3329, %eax, %eax
	addl	$512, %r10d
	shrl	$10, %r10d
	addl	$512, %r9d
	movzwl	%r10w, %r10d
	shrl	$10, %r9d
	addl	$512, %r8d
	addl	$512, %eax
	movzwl	%r9w, %r9d
	shrl	$10, %r8d
	shrl	$10, %eax
	movzwl	%r8w, %r8d
	movzwl	%ax, %eax
	salq	$16, %rax
	orq	%r10, %rax
	salq	$16, %rax
	orq	%r9, %rax
	salq	$16, %rax
	orq	%r8, %rax
	movq	%rax, -8(%rcx)
	cmpq	%rsi, %rdx
	jne	.L13251
	leal	1(%rdi), %ecx
	addq	$320, %rsi
	movq	%rcx, %rdi
	cmpq	%r15, %rcx
	jb	.L13248
.L13245:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13246:

	.cfi_restore_state
	testq	%r15, %r15
	je	.L13245
	movq	%r15, %rbp
	leaq	352(%rsi), %r13
	xorl	%ebx, %ebx
	xorl	%eax, %eax
	movq	%r14, %r15
.L13249:

	movq	%rbp, -16(%rsp)
	salq	$9, %rax
	leaq	-352(%r13), %r9
	movl	%ebx, -4(%rsp)
	leaq	(%r15,%rax), %r11
	.p2align 4,,10
	.p2align 3
.L13250:

	movzbl	2(%r9), %edx
	movzbl	3(%r9), %edi
	addq	$11, %r9
	movzbl	-7(%r9), %ecx
	movzbl	-5(%r9), %r12d
	movl	%edx, %eax
	sall	$2, %edi
	movzbl	-10(%r9), %r8d
	movzbl	-4(%r9), %esi
	shrb	$6, %al
	movl	%r12d, %r10d
	movzwl	-11(%r9), %ebx
	sall	$5, %edx
	movzbl	%al, %eax
	shrb	$3, %r8b
	addl	%esi, %esi
	movzbl	-2(%r9), %ebp
	orl	%eax, %edi
	movl	%ecx, %eax
	shrb	$7, %r10b
	movzbl	%r8b, %r8d
	sall	$10, %eax
	orl	%edx, %r8d
	movzbl	%r10b, %r10d
	movzbl	-6(%r9), %edx
	orl	%eax, %edi
	movzbl	-3(%r9), %eax
	orl	%r10d, %esi
	andl	$2047, %ebx
	andl	$2047, %edi
	andl	$2047, %r8d
	movzbl	-1(%r9), %r14d
	shrb	%cl
	imull	$3329, %edi, %edi
	movl	%eax, %r10d
	movzbl	%cl, %ecx
	sall	$9, %r10d
	imull	$3329, %ebx, %ebx
	sall	$3, %r14d
	imull	$3329, %r8d, %r8d
	orl	%r10d, %esi
	movl	%ebp, %r10d
	addl	$1024, %edi
	shrb	$5, %r10b
	shrl	$11, %edi
	addl	$1024, %ebx
	movzbl	%r10b, %r10d
	movw	%di, 4(%r11)
	movzbl	%dl, %edi
	addl	$1024, %r8d
	orl	%r14d, %r10d
	sall	$7, %edi
	shrl	$11, %ebx
	orl	%edi, %ecx
	shrl	$11, %r8d
	movw	%bx, (%r11)
	andl	$2047, %ecx
	shrb	$2, %al
	andl	$2047, %esi
	movw	%r8w, 2(%r11)
	shrb	$4, %dl
	movzbl	%al, %eax
	sall	$6, %ebp
	addq	$16, %r11
	movzbl	%dl, %edx
	sall	$4, %r12d
	imull	$3329, %ecx, %ecx
	orl	%ebp, %eax
	orl	%r12d, %edx
	andl	$2047, %eax
	imull	$3329, %eax, %eax
	andl	$2047, %edx
	imull	$3329, %edx, %edx
	addl	$1024, %ecx
	shrl	$11, %ecx
	addl	$1024, %eax
	movw	%cx, -10(%r11)
	shrl	$11, %eax
	addl	$1024, %edx
	shrl	$11, %edx
	movw	%ax, -4(%r11)
	movswl	%r10w, %eax
	movw	%dx, -8(%r11)
	imull	$3329, %eax, %eax
	imull	$3329, %esi, %edx
	addl	$1024, %eax
	addl	$1024, %edx
	shrl	$11, %eax
	shrl	$11, %edx
	movw	%ax, -2(%r11)
	movw	%dx, -6(%r11)
	cmpq	%r13, %r9
	jne	.L13250
	movl	-4(%rsp), %ebx
	movq	-16(%rsp), %rbp
	addq	$352, %r13
	leal	1(%rbx), %eax
	movq	%rax, %rbx
	cmpq	%rbp, %rax
	jb	.L13249
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2513:

	.size	ml_kem_polyvec_decompress_ref, .-ml_kem_polyvec_decompress_ref
# WAS .section	.text.ml_kem_indcpa_dec_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_indcpa_dec_ref
	.hidden	ml_kem_indcpa_dec_ref
	.type	ml_kem_indcpa_dec_ref, @function
.Lml_kem_indcpa_dec_ref_local_target:
ml_kem_indcpa_dec_ref:
.LFB2477:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$1688, %rsp
	.cfi_def_cfa_offset 5840
	movq	%fs:40, %rax
	movq	%rax, 5768(%rsp)
	xorl	%eax, %eax
	leaq	3712(%rsp), %rbx
	movq	%rdi, %r15
	movq	%rcx, %r14
	movq	%rbx, %rdi
	movl	$256, %ecx
	movq	%rsi, %r13
	movq	%rdx, %rbp
	leaq	128(%rsp), %r12
	rep stosq
	leaq	1664(%rsp), %rax
	movq	%r15, %rdi
	movq	%rax, %rsi
	movq	%rax, 72(%rsp)
# WAS call	ml_kem_polyvec_decompress_ref
	call	.Lml_kem_polyvec_decompress_ref_local_target
	movq	32(%r15), %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
	addq	%rbp, %rdx
# WAS call	ml_kem_poly_decompress_ref
	call	.Lml_kem_poly_decompress_ref_local_target
	movq	(%r15), %rbp
	testq	%rbp, %rbp
	je	.L13263
	movq	%rbp, %r9
	movq	%r14, %rdi
	leaq	384(%r14), %rsi
	movq	%rbx, %r8
	salq	$9, %r9
	addq	%rbx, %r9
.L13265:

	movq	%r8, %r10
	movq	%rdi, %rdx
	.p2align 4,,10
	.p2align 3
.L13264:

	movzbl	1(%rdx), %eax
	movzbl	(%rdx), %ecx
	addq	$3, %rdx
	addq	$4, %r10
	movl	%eax, %r11d
	shrb	$4, %al
	sall	$8, %r11d
	movzbl	%al, %eax
	orl	%r11d, %ecx
	andw	$4095, %cx
	movw	%cx, -4(%r10)
	movzbl	-1(%rdx), %ecx
	sall	$4, %ecx
	orl	%ecx, %eax
	movw	%ax, -2(%r10)
	cmpq	%rdx, %rsi
	jne	.L13264
	addq	$512, %r8
	addq	$384, %rdi
	addq	$384, %rsi
	cmpq	%r9, %r8
	jne	.L13265
	movq	72(%rsp), %r15
	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%rbx, %r8
	movq	$0, (%rsp)
	salq	$8, %rdx
	movq	%r12, %rcx
	movdqa	.LC309(%rip), %xmm12
	movdqa	.LC310(%rip), %xmm11
	movdqa	.LC307(%rip), %xmm5
	movq	%r15, %r13
	movdqa	.LC311(%rip), %xmm13
	movdqa	.LC308(%rip), %xmm4
.L13278:

	movl	$7, %eax
	movq	%rbp, 88(%rsp)
	movl	$-758, %r14d
	movl	$1, %ebx
	movq	%rdx, 96(%rsp)
	movl	$128, %r12d
	movl	%eax, 84(%rsp)
	movq	%rsi, 104(%rsp)
	movq	%r8, 112(%rsp)
	movq	%rcx, 120(%rsp)
	.p2align 4,,10
	.p2align 3
.L13268:

	movq	(%rsp), %rax
	movl	%r12d, %ecx
	xorl	%esi, %esi
	leal	-1(%r12), %r11d
	leal	1(%r12), %r15d
	addq	%rcx, %rax
	movl	%r12d, %ecx
	movq	%rax, 16(%rsp)
	movl	%r12d, %eax
	shrl	$3, %ecx
	andl	$-8, %eax
	salq	$4, %rcx
	movl	%eax, 48(%rsp)
	movl	%r12d, %eax
	andl	$7, %eax
	movq	%rcx, 32(%rsp)
	movl	%eax, 80(%rsp)
	.p2align 4,,10
	.p2align 3
.L13277:

	leal	1(%rsi), %eax
	leal	(%rsi,%r12), %edi
	addl	$1, %ebx
	movswl	%r14w, %r8d
	cmpl	%eax, %edi
	movl	%esi, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L13269
	testb	%r10b, %r10b
	je	.L13269
	movq	16(%rsp), %rcx
	leaq	8(%rax,%rcx), %r9
	movq	(%rsp), %rcx
	addq	%r9, %r9
	leaq	(%rax,%rcx), %rdx
	leaq	-16(%r9), %rcx
	addq	%rdx, %rdx
	leaq	16(%rdx), %rbp
	cmpq	%rbp, %rcx
	jge	.L13290
	cmpq	%r9, %rdx
	jge	.L13290
.L13269:

	movl	%edi, %edx
	subq	%rax, %rdx
	leaq	0(%r13,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L13273:

	movswl	(%rcx,%rax,2), %r9d
	imull	%r8d, %r9d
	imulw	$-3327, %r9w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r9d, %edx
	movzwl	0(%r13,%rax,2), %r9d
	sarl	$16, %edx
	subl	%edx, %r9d
	movw	%r9w, (%rcx,%rax,2)
	addw	%dx, 0(%r13,%rax,2)
	addq	$1, %rax
	cmpl	%edi, %eax
	jb	.L13273
.L13274:

	addl	%r15d, %esi
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %esi
	cmpl	$255, %esi
	ja	.L13316
	movl	%ebx, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rdi
	movzwl	(%rdi,%rax,2), %r14d
	jmp	.L13277
	.p2align 4,,10
	.p2align 3
.L13290:

	movq	72(%rsp), %rax
	movd	%r14d, %xmm3
	punpcklwd	%xmm3, %xmm3
	addq	%rax, %rcx
	addq	%rax, %rdx
	movq	32(%rsp), %rax
	pshufd	$0, %xmm3, %xmm3
	addq	%rcx, %rax
	.p2align 4,,10
	.p2align 3
.L13271:

	movdqu	(%rcx), %xmm6
	movdqu	(%rcx), %xmm0
	addq	$16, %rcx
	addq	$16, %rdx
	pmullw	%xmm3, %xmm6
	pmulhw	%xmm3, %xmm0
	movdqa	%xmm6, %xmm7
	punpckhwd	%xmm0, %xmm6
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm6, %xmm0
	punpckhwd	%xmm6, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm2, %xmm0
	pmullw	%xmm5, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm4, %xmm1
	pmullw	%xmm4, %xmm2
	movdqa	%xmm2, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm6, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm2, %xmm1
	punpcklwd	%xmm2, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rcx, %rax
	jne	.L13271
	movl	48(%rsp), %eax
	leal	(%rax,%rsi), %edx
	movl	80(%rsp), %eax
	testl	%eax, %eax
	je	.L13274
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rax,2), %r9
	movl	%edx, %eax
	movswl	(%r9), %ebp
	leaq	0(%r13,%rax,2), %rcx
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13274
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebp
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13274
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebp
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13274
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebp
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13274
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebp
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L13274
	leal	(%rax,%r12), %ecx
	addl	$6, %edx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebp
	imull	%r8d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r9)
	addw	%ax, (%rcx)
	cmpl	%edi, %edx
	jnb	.L13274
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rdx,2), %rdx
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%rcx), %edi
	imull	%r8d, %edi
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	movzwl	(%rdx), %edi
	sarl	$16, %eax
	subl	%eax, %edi
	movw	%di, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L13274
	.p2align 4,,10
	.p2align 3
.L13316:

	shrl	%r12d
	subl	$1, 84(%rsp)
	je	.L13287
	movl	%ebx, %ecx
# WAS leaq	ml_kem_zetas_ref(%rip), %rax
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rax
	movzwl	(%rax,%rcx,2), %r14d
	jmp	.L13268
.L13287:

	movq	88(%rsp), %rbp
	movq	96(%rsp), %rdx
	movq	%r13, %rax
	leaq	512(%r13), %rdi
	movq	104(%rsp), %rsi
	movq	112(%rsp), %r8
	movq	120(%rsp), %rcx
	.p2align 4,,10
	.p2align 3
.L13276:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, %rdi
	jne	.L13276
	addq	$256, (%rsp)
	movq	(%rsp), %rax
	cmpq	%rax, %rdx
	je	.L13317
	movq	%rdi, %r13
	jmp	.L13278
.L13317:

	movq	72(%rsp), %rdx
	movq	%rsi, %r13
	movq	%r8, %rsi
	movq	%r8, %rbx
	leaq	640(%rsp), %r14
	movq	%rcx, %r12
	movq	%r14, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	cmpq	$1, %rbp
	je	.L13318
	movl	$1, %ecx
	movq	%r12, (%rsp)
	movl	$1, %eax
	movq	%rbx, %r12
	leaq	1152(%rsp), %r15
	movl	%ecx, %ebx
.L13279:

	movq	72(%rsp), %rsi
	salq	$9, %rax
	movq	%r15, %rdi
	leaq	(%rsi,%rax), %rdx
	leaq	(%r12,%rax), %rsi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movq	%r14, %rax
	movq	%r15, %rdx
	.p2align 4,,10
	.p2align 3
.L13280:

	movdqa	(%rdx), %xmm0
	paddw	(%rax), %xmm0
	addq	$16, %rax
	addq	$16, %rdx
	movaps	%xmm0, -16(%rax)
	cmpq	%rax, %r15
	jne	.L13280
	leal	1(%rbx), %eax
	movq	%rax, %rbx
	cmpq	%rbp, %rax
	jb	.L13279
	movq	%r12, %rbx
	movq	(%rsp), %r12
.L13267:

	movq	%r14, %rbp
	movq	%r14, %rax
.L13282:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, %r15
	jne	.L13282
	movq	%r14, %rdi
# WAS call	ml_kem_invntt_ref
	call	.Lml_kem_invntt_ref_local_target
	movq	%r12, %rdx
	movq	%r14, %rax
.L13283:

	movdqa	(%rdx), %xmm0
	psubw	(%rax), %xmm0
	addq	$16, %rax
	addq	$16, %rdx
	movaps	%xmm0, -16(%rax)
	cmpq	%rax, %r15
	jne	.L13283
	movq	%r14, %rax
.L13284:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, %r15
	jne	.L13284
	xorl	%eax, %eax
.L13285:

	movdqa	0(%rbp), %xmm1
	movdqa	16(%rbp), %xmm8
	addq	$256, %rbp
	movdqa	-224(%rbp), %xmm4
	movdqa	-208(%rbp), %xmm6
	movdqa	%xmm1, %xmm3
	movdqa	%xmm1, %xmm5
	movdqa	-192(%rbp), %xmm0
	punpcklwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm3
	punpckhwd	%xmm8, %xmm5
	movdqa	%xmm4, %xmm8
	movdqa	-176(%rbp), %xmm7
	movdqa	%xmm3, %xmm10
	punpcklwd	%xmm5, %xmm1
	punpcklwd	%xmm6, %xmm8
	movdqa	-160(%rbp), %xmm2
	punpckhwd	%xmm5, %xmm10
	punpcklwd	%xmm5, %xmm3
	movdqa	%xmm4, %xmm5
	movdqa	-144(%rbp), %xmm9
	punpckhwd	%xmm6, %xmm5
	punpcklwd	%xmm10, %xmm3
	punpckhwd	%xmm10, %xmm1
	movdqa	-80(%rbp), %xmm14
	movdqa	%xmm8, %xmm10
	punpcklwd	%xmm6, %xmm4
	movdqa	%xmm0, %xmm6
	punpckhwd	%xmm5, %xmm10
	punpcklwd	%xmm7, %xmm6
	punpcklwd	%xmm5, %xmm8
	punpcklwd	%xmm5, %xmm4
	movdqa	%xmm0, %xmm5
	punpcklwd	%xmm10, %xmm8
	punpckhwd	%xmm10, %xmm4
	punpckhwd	%xmm7, %xmm5
	movdqa	%xmm6, %xmm10
	punpcklwd	%xmm7, %xmm0
	movdqa	%xmm2, %xmm7
	punpckhwd	%xmm5, %xmm10
	punpcklwd	%xmm9, %xmm7
	punpcklwd	%xmm5, %xmm6
	punpcklwd	%xmm5, %xmm0
	movdqa	%xmm2, %xmm5
	punpcklwd	%xmm10, %xmm6
	punpckhwd	%xmm10, %xmm0
	punpckhwd	%xmm9, %xmm5
	movdqa	%xmm7, %xmm10
	punpcklwd	%xmm9, %xmm2
	punpckhwd	%xmm5, %xmm10
	punpcklwd	%xmm5, %xmm7
	punpcklwd	%xmm5, %xmm2
	movdqa	%xmm3, %xmm5
	movdqa	%xmm3, %xmm9
	punpcklwd	%xmm10, %xmm7
	punpcklwd	%xmm8, %xmm5
	punpckhwd	%xmm10, %xmm2
	punpckhwd	%xmm8, %xmm9
	movdqa	%xmm5, %xmm10
	punpcklwd	%xmm8, %xmm3
	movdqa	%xmm6, %xmm8
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm7, %xmm8
	punpcklwd	%xmm9, %xmm5
	punpcklwd	%xmm9, %xmm3
	movdqa	%xmm6, %xmm9
	punpcklwd	%xmm10, %xmm5
	punpckhwd	%xmm7, %xmm9
	punpckhwd	%xmm10, %xmm3
	punpcklwd	%xmm7, %xmm6
	movdqa	%xmm8, %xmm10
	movdqa	%xmm1, %xmm7
	punpcklwd	%xmm9, %xmm8
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm4, %xmm7
	punpcklwd	%xmm9, %xmm6
	movdqa	%xmm1, %xmm9
	punpcklwd	%xmm10, %xmm8
	punpckhwd	%xmm10, %xmm6
	punpckhwd	%xmm4, %xmm9
	movdqa	%xmm7, %xmm10
	punpcklwd	%xmm4, %xmm1
	movdqa	%xmm0, %xmm4
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm9, %xmm7
	punpcklwd	%xmm2, %xmm4
	punpcklwd	%xmm9, %xmm1
	movdqa	%xmm0, %xmm9
	punpckhwd	%xmm10, %xmm1
	punpckhwd	%xmm2, %xmm9
	punpcklwd	%xmm10, %xmm7
	punpcklwd	%xmm2, %xmm0
	movdqa	%xmm4, %xmm10
	punpcklwd	%xmm9, %xmm4
	punpckhwd	%xmm9, %xmm10
	punpcklwd	%xmm9, %xmm0
	movdqa	%xmm5, %xmm9
	punpcklwd	%xmm8, %xmm9
	movdqa	%xmm5, %xmm2
	punpcklwd	%xmm10, %xmm4
	punpckhwd	%xmm10, %xmm0
	punpckhwd	%xmm8, %xmm2
	movdqa	%xmm9, %xmm10
	punpcklwd	%xmm8, %xmm5
	movdqa	%xmm7, %xmm11
	punpckhwd	%xmm2, %xmm10
	punpcklwd	%xmm4, %xmm11
	punpcklwd	%xmm2, %xmm9
	punpcklwd	%xmm2, %xmm5
	movdqa	%xmm7, %xmm2
	movdqa	%xmm11, %xmm8
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm2
	movdqa	%xmm3, %xmm13
	movdqa	%xmm1, %xmm15
	punpckhwd	%xmm2, %xmm8
	punpcklwd	%xmm6, %xmm13
	punpcklwd	%xmm2, %xmm11
	punpcklwd	%xmm2, %xmm7
	movdqa	%xmm3, %xmm2
	movdqa	%xmm13, %xmm4
	punpckhwd	%xmm6, %xmm2
	punpcklwd	%xmm6, %xmm3
	punpckhwd	%xmm8, %xmm7
	movdqa	-64(%rbp), %xmm6
	punpckhwd	%xmm2, %xmm4
	punpcklwd	%xmm2, %xmm13
	punpcklwd	%xmm2, %xmm3
	movaps	%xmm7, 48(%rsp)
	punpcklwd	%xmm4, %xmm13
	punpckhwd	%xmm4, %xmm3
	movdqa	%xmm1, %xmm2
	movdqa	%xmm1, %xmm4
	punpckhwd	%xmm0, %xmm2
	punpcklwd	%xmm0, %xmm15
	punpcklwd	%xmm0, %xmm4
	movdqa	-128(%rbp), %xmm0
	punpckhwd	%xmm10, %xmm5
	punpcklwd	%xmm10, %xmm9
	movdqa	%xmm4, %xmm7
	movdqa	-112(%rbp), %xmm10
	punpcklwd	%xmm8, %xmm11
	punpckhwd	%xmm2, %xmm4
	movdqa	-96(%rbp), %xmm8
	punpcklwd	%xmm2, %xmm7
	punpcklwd	%xmm2, %xmm15
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm4, %xmm7
	punpckhwd	%xmm4, %xmm15
	punpcklwd	%xmm10, %xmm2
	movdqa	%xmm0, %xmm4
	movdqa	%xmm2, %xmm12
	punpcklwd	%xmm10, %xmm0
	movaps	%xmm15, 32(%rsp)
	punpckhwd	%xmm10, %xmm4
	movdqa	%xmm8, %xmm10
	movdqa	-32(%rbp), %xmm15
	punpckhwd	%xmm4, %xmm12
	punpcklwd	%xmm14, %xmm10
	punpcklwd	%xmm4, %xmm2
	punpcklwd	%xmm4, %xmm0
	movdqa	%xmm8, %xmm4
	punpcklwd	%xmm12, %xmm2
	punpckhwd	%xmm14, %xmm4
	punpckhwd	%xmm12, %xmm0
	punpcklwd	%xmm14, %xmm8
	movdqa	%xmm10, %xmm12
	punpcklwd	%xmm4, %xmm8
	punpcklwd	%xmm4, %xmm10
	punpckhwd	%xmm4, %xmm12
	movdqa	%xmm6, %xmm14
	movdqa	%xmm6, %xmm4
	punpcklwd	-48(%rbp), %xmm14
	punpcklwd	-48(%rbp), %xmm6
	punpcklwd	%xmm12, %xmm10
	punpckhwd	-48(%rbp), %xmm4
	punpckhwd	%xmm12, %xmm8
	movdqa	%xmm6, %xmm1
	movdqa	%xmm14, %xmm12
	punpckhwd	%xmm4, %xmm12
	punpcklwd	%xmm4, %xmm14
	punpcklwd	%xmm4, %xmm1
	punpckhwd	%xmm12, %xmm1
	punpcklwd	%xmm12, %xmm14
	movdqa	%xmm15, %xmm12
	punpcklwd	-16(%rbp), %xmm12
	movdqa	%xmm15, %xmm4
	punpckhwd	-16(%rbp), %xmm4
	punpcklwd	-16(%rbp), %xmm15
	movdqa	%xmm12, %xmm6
	punpcklwd	%xmm4, %xmm12
	punpckhwd	%xmm4, %xmm6
	punpcklwd	%xmm4, %xmm15
	movdqa	%xmm2, %xmm4
	punpckhwd	%xmm10, %xmm4
	punpcklwd	%xmm6, %xmm12
	punpckhwd	%xmm6, %xmm15
	movaps	%xmm4, (%rsp)
	movdqa	%xmm2, %xmm4
	punpcklwd	%xmm10, %xmm2
	punpcklwd	(%rsp), %xmm2
	punpcklwd	%xmm10, %xmm4
	movdqa	%xmm14, %xmm10
	movdqa	%xmm4, %xmm6
	punpcklwd	(%rsp), %xmm4
	punpckhwd	(%rsp), %xmm6
	punpckhwd	%xmm12, %xmm10
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm2
	movdqa	%xmm14, %xmm6
	movaps	%xmm10, (%rsp)
	punpcklwd	%xmm12, %xmm6
	punpcklwd	%xmm12, %xmm14
	punpcklwd	(%rsp), %xmm14
	movdqa	%xmm6, %xmm10
	punpckhwd	(%rsp), %xmm6
	punpcklwd	(%rsp), %xmm10
	movdqa	%xmm0, %xmm12
	punpcklwd	%xmm6, %xmm10
	punpckhwd	%xmm6, %xmm14
	movdqa	%xmm0, %xmm6
	punpcklwd	%xmm8, %xmm6
	punpckhwd	%xmm8, %xmm12
	movaps	%xmm14, 16(%rsp)
	punpcklwd	%xmm8, %xmm0
	movdqa	%xmm6, %xmm14
	punpcklwd	%xmm12, %xmm0
	punpckhwd	%xmm12, %xmm6
	punpcklwd	%xmm12, %xmm14
	punpckhwd	%xmm6, %xmm0
	punpcklwd	%xmm6, %xmm14
	movdqa	%xmm1, %xmm6
	punpckhwd	%xmm15, %xmm6
	movdqa	%xmm6, %xmm8
	movdqa	%xmm1, %xmm6
	punpcklwd	%xmm15, %xmm6
	movdqa	%xmm6, %xmm12
	punpckhwd	%xmm8, %xmm6
	punpcklwd	%xmm8, %xmm12
	movaps	%xmm6, (%rsp)
	punpcklwd	%xmm6, %xmm12
	movdqa	%xmm1, %xmm6
	punpcklwd	%xmm15, %xmm6
	punpcklwd	%xmm8, %xmm6
	movdqa	%xmm4, %xmm8
	punpckhwd	(%rsp), %xmm6
	punpckhwd	%xmm10, %xmm8
	movdqa	%xmm6, %xmm1
	movdqa	%xmm8, %xmm6
	movdqa	%xmm4, %xmm8
	punpcklwd	%xmm10, %xmm8
	punpcklwd	%xmm10, %xmm4
	movdqa	%xmm14, %xmm10
	punpckhwd	%xmm12, %xmm10
	movdqa	%xmm8, %xmm15
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm15
	punpcklwd	%xmm6, %xmm8
	movdqa	%xmm10, %xmm6
	movdqa	%xmm14, %xmm10
	punpcklwd	%xmm15, %xmm8
	punpckhwd	%xmm15, %xmm4
	punpcklwd	%xmm12, %xmm10
	punpcklwd	%xmm12, %xmm14
	movdqa	%xmm2, %xmm12
	movdqa	%xmm10, %xmm15
	punpcklwd	%xmm6, %xmm14
	punpcklwd	%xmm6, %xmm10
	punpckhwd	%xmm6, %xmm15
	punpcklwd	%xmm15, %xmm10
	punpckhwd	%xmm15, %xmm14
	movdqa	16(%rsp), %xmm15
	movaps	%xmm14, (%rsp)
	punpckhwd	%xmm15, %xmm12
	movdqa	%xmm12, %xmm6
	movdqa	%xmm2, %xmm12
	punpcklwd	%xmm15, %xmm2
	punpcklwd	%xmm15, %xmm12
	movdqa	%xmm0, %xmm15
	punpcklwd	%xmm6, %xmm2
	movdqa	%xmm12, %xmm14
	punpckhwd	%xmm1, %xmm15
	punpcklwd	%xmm6, %xmm12
	punpckhwd	%xmm6, %xmm14
	punpcklwd	%xmm14, %xmm12
	punpckhwd	%xmm14, %xmm2
	movdqa	%xmm15, %xmm14
	movdqa	%xmm0, %xmm15
	punpcklwd	%xmm1, %xmm0
	punpcklwd	%xmm1, %xmm15
	punpcklwd	%xmm14, %xmm0
	movdqa	%xmm15, %xmm6
	punpckhwd	%xmm14, %xmm15
	punpcklwd	%xmm14, %xmm6
	punpckhwd	%xmm15, %xmm0
	movdqa	%xmm13, %xmm14
	punpcklwd	%xmm15, %xmm6
	pxor	%xmm15, %xmm15
	pcmpgtw	%xmm13, %xmm15
	punpcklwd	%xmm15, %xmm14
	movdqa	%xmm15, %xmm1
	movdqa	%xmm14, %xmm15
	punpckhwd	%xmm1, %xmm13
	pslld	$1, %xmm15
	pslld	$1, %xmm13
	paddd	.LC326(%rip), %xmm15
	paddd	.LC326(%rip), %xmm13
	movdqa	%xmm15, %xmm14
	pslld	$6, %xmm14
	psubd	%xmm15, %xmm14
	pslld	$8, %xmm14
	psubd	%xmm15, %xmm14
	movdqa	%xmm14, %xmm15
	pslld	$2, %xmm15
	paddd	%xmm15, %xmm14
	movdqa	%xmm14, %xmm15
	movdqa	%xmm13, %xmm14
	pslld	$6, %xmm14
	psrld	$28, %xmm15
	psubd	%xmm13, %xmm14
	pslld	$8, %xmm14
	psubd	%xmm13, %xmm14
	movdqa	%xmm14, %xmm13
	pslld	$2, %xmm13
	paddd	%xmm14, %xmm13
	movdqa	%xmm15, %xmm14
	psrld	$28, %xmm13
	punpcklwd	%xmm13, %xmm15
	punpckhwd	%xmm13, %xmm14
	movdqa	%xmm15, %xmm13
	punpcklwd	%xmm14, %xmm15
	punpckhwd	%xmm14, %xmm13
	movdqa	%xmm12, %xmm14
	punpcklwd	%xmm13, %xmm15
	pxor	%xmm13, %xmm13
	pand	.LC327(%rip), %xmm15
	pcmpgtw	%xmm12, %xmm13
	punpcklwd	%xmm13, %xmm14
	movdqa	%xmm13, %xmm1
	pslld	$1, %xmm14
	punpckhwd	%xmm1, %xmm12
	paddd	.LC326(%rip), %xmm14
	pslld	$1, %xmm12
	paddd	.LC326(%rip), %xmm12
	movdqa	%xmm14, %xmm13
	pslld	$6, %xmm13
	psubd	%xmm14, %xmm13
	pslld	$8, %xmm13
	psubd	%xmm14, %xmm13
	movdqa	%xmm13, %xmm14
	pslld	$2, %xmm14
	paddd	%xmm14, %xmm13
	movdqa	%xmm13, %xmm14
	movdqa	%xmm12, %xmm13
	pslld	$6, %xmm13
	psrld	$28, %xmm14
	psubd	%xmm12, %xmm13
	pslld	$8, %xmm13
	psubd	%xmm12, %xmm13
	movdqa	%xmm13, %xmm12
	pslld	$2, %xmm12
	paddd	%xmm13, %xmm12
	movdqa	%xmm14, %xmm13
	psrld	$28, %xmm12
	punpckhwd	%xmm12, %xmm13
	movaps	%xmm13, 16(%rsp)
	movdqa	%xmm14, %xmm13
	movdqa	16(%rsp), %xmm14
	punpcklwd	%xmm12, %xmm13
	movdqa	%xmm15, %xmm12
	movdqa	.LC331(%rip), %xmm15
	movdqa	%xmm13, %xmm1
	punpcklwd	%xmm14, %xmm13
	punpckhwd	%xmm14, %xmm1
	punpcklwd	%xmm1, %xmm13
	pxor	%xmm1, %xmm1
	pand	.LC327(%rip), %xmm13
	pcmpgtw	%xmm11, %xmm1
	packuswb	%xmm13, %xmm12
	movdqa	%xmm11, %xmm13
	paddb	%xmm12, %xmm12
	punpcklwd	%xmm1, %xmm13
	paddb	%xmm12, %xmm12
	punpckhwd	%xmm1, %xmm11
	pslld	$1, %xmm13
	pand	%xmm12, %xmm15
	pxor	%xmm1, %xmm1
	paddd	.LC326(%rip), %xmm13
	pslld	$1, %xmm11
	paddd	.LC326(%rip), %xmm11
	pcmpgtw	%xmm10, %xmm1
	movdqa	%xmm13, %xmm12
	pslld	$6, %xmm12
	psubd	%xmm13, %xmm12
	pslld	$8, %xmm12
	psubd	%xmm13, %xmm12
	movdqa	%xmm12, %xmm13
	pslld	$2, %xmm13
	paddd	%xmm13, %xmm12
	movdqa	%xmm11, %xmm13
	pslld	$6, %xmm13
	psrld	$28, %xmm12
	psubd	%xmm11, %xmm13
	pslld	$8, %xmm13
	psubd	%xmm11, %xmm13
	movdqa	%xmm13, %xmm11
	pslld	$2, %xmm11
	paddd	%xmm13, %xmm11
	movdqa	%xmm12, %xmm13
	psrld	$28, %xmm11
	punpcklwd	%xmm11, %xmm12
	punpckhwd	%xmm11, %xmm13
	movdqa	%xmm12, %xmm11
	punpcklwd	%xmm13, %xmm12
	punpckhwd	%xmm13, %xmm11
	movdqa	%xmm10, %xmm13
	punpckhwd	%xmm1, %xmm10
	punpcklwd	%xmm1, %xmm13
	pslld	$1, %xmm10
	punpcklwd	%xmm11, %xmm12
	paddd	.LC326(%rip), %xmm10
	pslld	$1, %xmm13
	paddd	.LC326(%rip), %xmm13
	pand	.LC327(%rip), %xmm12
	movdqa	%xmm13, %xmm11
	pslld	$6, %xmm11
	psubd	%xmm13, %xmm11
	pslld	$8, %xmm11
	psubd	%xmm13, %xmm11
	movdqa	%xmm11, %xmm13
	pslld	$2, %xmm13
	paddd	%xmm13, %xmm11
	movdqa	%xmm10, %xmm13
	pslld	$6, %xmm13
	psrld	$28, %xmm11
	psubd	%xmm10, %xmm13
	pslld	$8, %xmm13
	psubd	%xmm10, %xmm13
	movdqa	%xmm13, %xmm10
	pslld	$2, %xmm10
	paddd	%xmm13, %xmm10
	movdqa	%xmm11, %xmm13
	psrld	$28, %xmm10
	punpcklwd	%xmm10, %xmm11
	punpckhwd	%xmm10, %xmm13
	movdqa	%xmm11, %xmm10
	punpcklwd	%xmm13, %xmm11
	punpckhwd	%xmm13, %xmm10
	pxor	%xmm13, %xmm13
	punpcklwd	%xmm10, %xmm11
	movdqa	%xmm12, %xmm10
	pand	.LC327(%rip), %xmm11
	packuswb	%xmm11, %xmm10
	paddb	%xmm10, %xmm10
	pand	.LC329(%rip), %xmm10
	por	%xmm15, %xmm10
	movdqa	32(%rsp), %xmm15
	pcmpgtw	%xmm15, %xmm13
	movdqa	%xmm15, %xmm1
	punpcklwd	%xmm13, %xmm1
	movdqa	%xmm1, %xmm12
	movdqa	%xmm15, %xmm1
	pslld	$1, %xmm12
	punpckhwd	%xmm13, %xmm1
	paddd	.LC326(%rip), %xmm12
	movdqa	%xmm12, %xmm11
	pslld	$6, %xmm11
	psubd	%xmm12, %xmm11
	pslld	$8, %xmm11
	psubd	%xmm12, %xmm11
	movdqa	%xmm11, %xmm12
	pslld	$2, %xmm12
	paddd	%xmm12, %xmm11
	psrld	$28, %xmm11
	movdqa	%xmm11, %xmm12
	movdqa	%xmm1, %xmm11
	pslld	$1, %xmm11
	movdqa	%xmm12, %xmm13
	paddd	.LC326(%rip), %xmm11
	movdqa	%xmm11, %xmm1
	pslld	$6, %xmm1
	psubd	%xmm11, %xmm1
	pslld	$8, %xmm1
	psubd	%xmm11, %xmm1
	movdqa	%xmm1, %xmm11
	pslld	$2, %xmm11
	paddd	%xmm11, %xmm1
	psrld	$28, %xmm1
	punpckhwd	%xmm1, %xmm13
	movdqa	%xmm1, %xmm11
	movdqa	%xmm12, %xmm1
	pxor	%xmm12, %xmm12
	punpcklwd	%xmm11, %xmm1
	pcmpgtw	%xmm0, %xmm12
	movdqa	%xmm1, %xmm11
	punpcklwd	%xmm13, %xmm1
	punpckhwd	%xmm13, %xmm11
	movdqa	%xmm0, %xmm13
	punpcklwd	%xmm11, %xmm1
	pand	.LC327(%rip), %xmm1
	punpcklwd	%xmm12, %xmm13
	punpckhwd	%xmm12, %xmm0
	pslld	$1, %xmm13
	pslld	$1, %xmm0
	paddd	.LC326(%rip), %xmm13
	paddd	.LC326(%rip), %xmm0
	movdqa	%xmm13, %xmm11
	movdqa	%xmm0, %xmm12
	pslld	$6, %xmm11
	pslld	$6, %xmm12
	psubd	%xmm13, %xmm11
	psubd	%xmm0, %xmm12
	pslld	$8, %xmm11
	pslld	$8, %xmm12
	psubd	%xmm13, %xmm11
	psubd	%xmm0, %xmm12
	movdqa	%xmm11, %xmm13
	movdqa	%xmm12, %xmm0
	pslld	$2, %xmm13
	pslld	$2, %xmm0
	paddd	%xmm13, %xmm11
	paddd	%xmm12, %xmm0
	psrld	$28, %xmm11
	psrld	$28, %xmm0
	movdqa	%xmm11, %xmm12
	punpcklwd	%xmm0, %xmm11
	punpckhwd	%xmm0, %xmm12
	movdqa	%xmm11, %xmm0
	punpcklwd	%xmm12, %xmm11
	punpckhwd	%xmm12, %xmm0
	movdqa	%xmm9, %xmm12
	punpcklwd	%xmm0, %xmm11
	movdqa	%xmm1, %xmm0
	movdqa	.LC327(%rip), %xmm1
	pand	%xmm11, %xmm1
	pxor	%xmm11, %xmm11
	pcmpgtw	%xmm9, %xmm11
	packuswb	%xmm1, %xmm0
	paddb	%xmm0, %xmm0
	paddb	%xmm0, %xmm0
	punpcklwd	%xmm11, %xmm12
	punpckhwd	%xmm11, %xmm9
	paddb	%xmm0, %xmm0
	pslld	$1, %xmm12
	pslld	$1, %xmm9
	paddb	%xmm0, %xmm0
	paddd	.LC326(%rip), %xmm12
	paddb	%xmm0, %xmm0
	paddd	.LC326(%rip), %xmm9
	paddb	%xmm0, %xmm0
	movdqa	%xmm12, %xmm1
	paddb	%xmm0, %xmm0
	movdqa	%xmm9, %xmm11
	pslld	$6, %xmm1
	pslld	$6, %xmm11
	psubd	%xmm12, %xmm1
	psubd	%xmm9, %xmm11
	pslld	$8, %xmm1
	pslld	$8, %xmm11
	psubd	%xmm12, %xmm1
	psubd	%xmm9, %xmm11
	movdqa	%xmm1, %xmm12
	movdqa	%xmm11, %xmm9
	pslld	$2, %xmm12
	pslld	$2, %xmm9
	paddd	%xmm12, %xmm1
	movdqa	%xmm8, %xmm12
	paddd	%xmm11, %xmm9
	psrld	$28, %xmm1
	psrld	$28, %xmm9
	movdqa	%xmm1, %xmm11
	punpcklwd	%xmm9, %xmm1
	punpckhwd	%xmm9, %xmm11
	movdqa	%xmm1, %xmm9
	punpcklwd	%xmm11, %xmm1
	punpckhwd	%xmm11, %xmm9
	pxor	%xmm11, %xmm11
	pcmpgtw	%xmm8, %xmm11
	punpcklwd	%xmm9, %xmm1
	pand	.LC327(%rip), %xmm1
	punpcklwd	%xmm11, %xmm12
	punpckhwd	%xmm11, %xmm8
	pslld	$1, %xmm12
	pslld	$1, %xmm8
	paddd	.LC326(%rip), %xmm12
	paddd	.LC326(%rip), %xmm8
	movdqa	%xmm12, %xmm9
	movdqa	%xmm8, %xmm11
	pslld	$6, %xmm9
	pslld	$6, %xmm11
	psubd	%xmm12, %xmm9
	psubd	%xmm8, %xmm11
	pslld	$8, %xmm9
	pslld	$8, %xmm11
	psubd	%xmm12, %xmm9
	psubd	%xmm8, %xmm11
	movdqa	%xmm9, %xmm12
	movdqa	%xmm11, %xmm8
	pslld	$2, %xmm12
	pslld	$2, %xmm8
	paddd	%xmm12, %xmm9
	paddd	%xmm11, %xmm8
	psrld	$28, %xmm9
	psrld	$28, %xmm8
	movdqa	%xmm9, %xmm11
	punpcklwd	%xmm8, %xmm9
	punpckhwd	%xmm8, %xmm11
	movdqa	%xmm9, %xmm8
	punpcklwd	%xmm11, %xmm9
	punpckhwd	%xmm11, %xmm8
	punpcklwd	%xmm8, %xmm9
	movdqa	%xmm5, %xmm8
	pand	.LC327(%rip), %xmm9
	packuswb	%xmm9, %xmm1
	pxor	%xmm9, %xmm9
	pand	.LC330(%rip), %xmm1
	pcmpgtw	%xmm5, %xmm9
	por	%xmm1, %xmm0
	movdqa	%xmm10, %xmm1
	por	%xmm0, %xmm1
	punpcklwd	%xmm9, %xmm8
	pslld	$1, %xmm8
	paddd	.LC326(%rip), %xmm8
	movdqa	%xmm8, %xmm0
	pslld	$6, %xmm0
	psubd	%xmm8, %xmm0
	pslld	$8, %xmm0
	psubd	%xmm8, %xmm0
	movdqa	%xmm0, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm0
	psrld	$28, %xmm0
	movdqa	%xmm0, %xmm8
	movdqa	%xmm5, %xmm0
	punpckhwd	%xmm9, %xmm0
	movdqa	%xmm8, %xmm9
	pslld	$1, %xmm0
	paddd	.LC326(%rip), %xmm0
	movdqa	%xmm0, %xmm15
	pslld	$6, %xmm15
	movdqa	%xmm15, %xmm5
	psubd	%xmm0, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm0, %xmm5
	movdqa	%xmm5, %xmm0
	pslld	$2, %xmm0
	paddd	%xmm0, %xmm5
	movdqa	%xmm8, %xmm0
	pxor	%xmm8, %xmm8
	psrld	$28, %xmm5
	pcmpgtw	%xmm4, %xmm8
	punpcklwd	%xmm5, %xmm0
	punpckhwd	%xmm5, %xmm9
	movdqa	%xmm0, %xmm15
	punpcklwd	%xmm9, %xmm0
	punpckhwd	%xmm9, %xmm15
	movdqa	%xmm4, %xmm9
	punpckhwd	%xmm8, %xmm4
	punpcklwd	%xmm8, %xmm9
	pslld	$1, %xmm4
	punpcklwd	%xmm15, %xmm0
	pslld	$1, %xmm9
	paddd	.LC326(%rip), %xmm4
	paddd	.LC326(%rip), %xmm9
	pand	.LC327(%rip), %xmm0
	movdqa	%xmm9, %xmm15
	movdqa	%xmm4, %xmm8
	pslld	$6, %xmm15
	pslld	$6, %xmm8
	movdqa	%xmm15, %xmm5
	psubd	%xmm4, %xmm8
	psubd	%xmm9, %xmm5
	pslld	$8, %xmm8
	pslld	$8, %xmm5
	psubd	%xmm4, %xmm8
	psubd	%xmm9, %xmm5
	movdqa	%xmm8, %xmm4
	movdqa	%xmm5, %xmm9
	pslld	$2, %xmm4
	pslld	$2, %xmm9
	paddd	%xmm8, %xmm4
	paddd	%xmm9, %xmm5
	psrld	$28, %xmm4
	psrld	$28, %xmm5
	movdqa	%xmm5, %xmm8
	punpcklwd	%xmm4, %xmm5
	punpckhwd	%xmm4, %xmm8
	movdqa	%xmm5, %xmm4
	punpckhwd	%xmm8, %xmm4
	punpcklwd	%xmm8, %xmm5
	movdqa	%xmm7, %xmm8
	punpcklwd	%xmm4, %xmm5
	pxor	%xmm4, %xmm4
	pand	.LC327(%rip), %xmm5
	pcmpgtw	%xmm7, %xmm4
	packuswb	%xmm5, %xmm0
	paddb	%xmm0, %xmm0
	punpcklwd	%xmm4, %xmm8
	movdqa	%xmm4, %xmm5
	paddb	%xmm0, %xmm0
	pslld	$1, %xmm8
	paddb	%xmm0, %xmm0
	paddd	.LC326(%rip), %xmm8
	paddb	%xmm0, %xmm0
	pand	.LC333(%rip), %xmm0
	movdqa	%xmm8, %xmm4
	pslld	$6, %xmm4
	psubd	%xmm8, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm8, %xmm4
	movdqa	%xmm4, %xmm8
	pslld	$2, %xmm8
	paddd	%xmm8, %xmm4
	psrld	$28, %xmm4
	movdqa	%xmm4, %xmm8
	movdqa	%xmm7, %xmm4
	punpckhwd	%xmm5, %xmm4
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	movdqa	%xmm4, %xmm15
	pslld	$6, %xmm15
	movdqa	%xmm15, %xmm5
	psubd	%xmm4, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm4, %xmm5
	movdqa	%xmm5, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm5
	movdqa	%xmm8, %xmm4
	psrld	$28, %xmm5
	punpckhwd	%xmm5, %xmm4
	movdqa	%xmm4, %xmm7
	movdqa	%xmm8, %xmm4
	pxor	%xmm8, %xmm8
	punpcklwd	%xmm5, %xmm4
	pcmpgtw	%xmm6, %xmm8
	movdqa	%xmm4, %xmm15
	punpcklwd	%xmm7, %xmm4
	punpckhwd	%xmm7, %xmm15
	punpcklwd	%xmm15, %xmm4
	movdqa	%xmm6, %xmm15
	punpckhwd	%xmm8, %xmm6
	punpcklwd	%xmm8, %xmm15
	pand	.LC327(%rip), %xmm4
	movdqa	%xmm15, %xmm7
	pslld	$1, %xmm7
	paddd	.LC326(%rip), %xmm7
	movdqa	%xmm7, %xmm15
	pslld	$6, %xmm15
	movdqa	%xmm15, %xmm5
	psubd	%xmm7, %xmm5
	pslld	$8, %xmm5
	psubd	%xmm7, %xmm5
	movdqa	%xmm5, %xmm15
	pslld	$2, %xmm15
	paddd	%xmm15, %xmm5
	movdqa	%xmm5, %xmm15
	movdqa	%xmm6, %xmm5
	pslld	$1, %xmm5
	paddd	.LC326(%rip), %xmm5
	psrld	$28, %xmm15
	movdqa	%xmm5, %xmm6
	movdqa	%xmm15, %xmm7
	pslld	$6, %xmm6
	psubd	%xmm5, %xmm6
	pslld	$8, %xmm6
	psubd	%xmm5, %xmm6
	movdqa	%xmm6, %xmm15
	pslld	$2, %xmm15
	movdqa	%xmm15, %xmm5
	paddd	%xmm6, %xmm5
	movdqa	%xmm7, %xmm6
	psrld	$28, %xmm5
	punpcklwd	%xmm5, %xmm7
	punpckhwd	%xmm5, %xmm6
	movdqa	%xmm7, %xmm15
	punpcklwd	%xmm6, %xmm7
	punpckhwd	%xmm6, %xmm15
	pxor	%xmm6, %xmm6
	punpcklwd	%xmm15, %xmm7
	pand	.LC327(%rip), %xmm7
	packuswb	%xmm7, %xmm4
	movdqa	(%rsp), %xmm7
	paddb	%xmm4, %xmm4
	paddb	%xmm4, %xmm4
	pcmpgtw	%xmm7, %xmm6
	paddb	%xmm4, %xmm4
	pand	.LC332(%rip), %xmm4
	por	%xmm4, %xmm0
	pxor	%xmm4, %xmm4
	pcmpgtw	%xmm3, %xmm4
	por	%xmm0, %xmm1
	movdqa	%xmm4, %xmm5
	movdqa	%xmm3, %xmm4
	punpcklwd	%xmm5, %xmm4
	punpckhwd	%xmm5, %xmm3
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	movdqa	%xmm4, %xmm0
	pslld	$6, %xmm0
	psubd	%xmm4, %xmm0
	pslld	$8, %xmm0
	psubd	%xmm4, %xmm0
	movdqa	%xmm0, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm0
	movdqa	%xmm3, %xmm4
	pslld	$6, %xmm4
	psrld	$28, %xmm0
	psubd	%xmm3, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm3, %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm4, %xmm3
	movdqa	%xmm0, %xmm4
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm0
	punpckhwd	%xmm3, %xmm4
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm4, %xmm0
	punpckhwd	%xmm4, %xmm3
	pxor	%xmm4, %xmm4
	pcmpgtw	%xmm2, %xmm4
	punpcklwd	%xmm3, %xmm0
	pand	.LC327(%rip), %xmm0
	movdqa	%xmm4, %xmm5
	movdqa	%xmm2, %xmm4
	punpcklwd	%xmm5, %xmm4
	punpckhwd	%xmm5, %xmm2
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	pslld	$1, %xmm2
	paddd	.LC326(%rip), %xmm2
	movdqa	%xmm4, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm4, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm4, %xmm3
	movdqa	%xmm3, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm3
	movdqa	%xmm3, %xmm4
	movdqa	%xmm2, %xmm3
	pslld	$6, %xmm3
	psrld	$28, %xmm4
	psubd	%xmm2, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm2, %xmm3
	movdqa	%xmm3, %xmm2
	pslld	$2, %xmm2
	paddd	%xmm3, %xmm2
	movdqa	%xmm4, %xmm3
	psrld	$28, %xmm2
	punpckhwd	%xmm2, %xmm3
	movdqa	%xmm3, %xmm5
	movdqa	%xmm4, %xmm3
	pxor	%xmm4, %xmm4
	punpcklwd	%xmm2, %xmm3
	movdqa	%xmm3, %xmm2
	punpcklwd	%xmm5, %xmm3
	punpckhwd	%xmm5, %xmm2
	movdqa	48(%rsp), %xmm5
	punpcklwd	%xmm2, %xmm3
	pand	.LC327(%rip), %xmm3
	pcmpgtw	%xmm5, %xmm4
	packuswb	%xmm3, %xmm0
	movdqa	%xmm5, %xmm3
	paddb	%xmm0, %xmm0
	punpcklwd	%xmm4, %xmm3
	punpckhwd	%xmm4, %xmm5
	paddb	%xmm0, %xmm0
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	paddb	%xmm0, %xmm0
	paddb	%xmm0, %xmm0
	movdqa	%xmm3, %xmm2
	paddb	%xmm0, %xmm0
	pslld	$6, %xmm2
	paddb	%xmm0, %xmm0
	pand	.LC335(%rip), %xmm0
	psubd	%xmm3, %xmm2
	pslld	$8, %xmm2
	psubd	%xmm3, %xmm2
	movdqa	%xmm2, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm3, %xmm2
	movdqa	%xmm5, %xmm3
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	psrld	$28, %xmm2
	movdqa	%xmm3, %xmm4
	pslld	$6, %xmm4
	psubd	%xmm3, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm3, %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm4, %xmm3
	movdqa	%xmm2, %xmm4
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm2
	punpckhwd	%xmm3, %xmm4
	movdqa	%xmm2, %xmm3
	punpcklwd	%xmm4, %xmm2
	punpckhwd	%xmm4, %xmm3
	movdqa	%xmm7, %xmm4
	punpcklwd	%xmm6, %xmm4
	punpcklwd	%xmm3, %xmm2
	pand	.LC327(%rip), %xmm2
	pslld	$1, %xmm4
	paddd	.LC326(%rip), %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$6, %xmm3
	psubd	%xmm4, %xmm3
	pslld	$8, %xmm3
	psubd	%xmm4, %xmm3
	movdqa	%xmm3, %xmm4
	pslld	$2, %xmm4
	paddd	%xmm4, %xmm3
	movdqa	%xmm3, %xmm5
	movdqa	%xmm7, %xmm3
	punpckhwd	%xmm6, %xmm3
	psrld	$28, %xmm5
	pslld	$1, %xmm3
	paddd	.LC326(%rip), %xmm3
	movdqa	%xmm5, %xmm6
	movdqa	%xmm3, %xmm4
	pslld	$6, %xmm4
	psubd	%xmm3, %xmm4
	pslld	$8, %xmm4
	psubd	%xmm3, %xmm4
	movdqa	%xmm4, %xmm3
	pslld	$2, %xmm3
	paddd	%xmm4, %xmm3
	movdqa	%xmm5, %xmm4
	psrld	$28, %xmm3
	punpcklwd	%xmm3, %xmm4
	punpckhwd	%xmm3, %xmm6
	movdqa	%xmm4, %xmm3
	punpcklwd	%xmm6, %xmm4
	punpckhwd	%xmm6, %xmm3
	punpcklwd	%xmm3, %xmm4
	pand	.LC327(%rip), %xmm4
	packuswb	%xmm4, %xmm2
	paddb	%xmm2, %xmm2
	paddb	%xmm2, %xmm2
	paddb	%xmm2, %xmm2
	paddb	%xmm2, %xmm2
	paddb	%xmm2, %xmm2
	pand	.LC334(%rip), %xmm2
	por	%xmm2, %xmm0
	por	%xmm0, %xmm1
	movups	%xmm1, 0(%r13,%rax)
	addq	$16, %rax
	cmpq	$32, %rax
	jne	.L13285
	movq	72(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$2048, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$512, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$512, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	5768(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13319
	addq	$5784, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13263:

	.cfi_restore_state
	movq	72(%rsp), %rdx
	leaq	640(%rsp), %r14
	movq	%rbx, %rsi
	leaq	1152(%rsp), %r15
	movq	%r14, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movdqa	.LC309(%rip), %xmm12
	movdqa	.LC310(%rip), %xmm11
	movdqa	.LC311(%rip), %xmm13
	jmp	.L13267
.L13318:

	leaq	1152(%rsp), %r15
	jmp	.L13267
.L13319:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2477:

	.size	ml_kem_indcpa_dec_ref, .-ml_kem_indcpa_dec_ref
# WAS .section	.text.ml_kem_polyvec_tobytes_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_tobytes_ref
	.hidden	ml_kem_polyvec_tobytes_ref
	.type	ml_kem_polyvec_tobytes_ref, @function
.Lml_kem_polyvec_tobytes_ref_local_target:
ml_kem_polyvec_tobytes_ref:
.LFB2514:

	.cfi_startproc
	endbr64
	cmpq	$0, (%rdi)
	je	.L13327
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rsi, %r11
	movq	%rdi, %r10
	movq	%rdx, %r14
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	xorl	%esi, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
.L13323:

	movl	%r9d, %ecx
	salq	$9, %rsi
	addq	%r11, %rcx
	addq	%r14, %rsi
	leaq	384(%rcx), %rdi
	.p2align 4,,10
	.p2align 3
.L13322:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %ebp
	addq	$3, %rcx
	addq	$4, %rsi
	movl	%eax, %edx
	sarw	$15, %dx
	andw	$3329, %dx
	addl	%eax, %edx
	movl	%ebp, %eax
	sarw	$15, %ax
	movb	%dl, -3(%rcx)
	andw	$3329, %ax
	addl	%ebp, %eax
	movl	%eax, %ebp
	shrw	$4, %ax
	sall	$4, %ebp
	movb	%al, -1(%rcx)
	movl	%ebp, %ebx
	orb	%dh, %bl
	movb	%bl, -2(%rcx)
	cmpq	%rcx, %rdi
	jne	.L13322
	leal	1(%r8), %esi
	addl	$384, %r9d
	movq	%rsi, %r8
	cmpq	(%r10), %rsi
	jb	.L13323
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L13327:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 14
	ret
	.cfi_endproc
.LFE2514:

	.size	ml_kem_polyvec_tobytes_ref, .-ml_kem_polyvec_tobytes_ref
# WAS .section	.text.ml_kem_polyvec_frombytes_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_frombytes_ref
	.hidden	ml_kem_polyvec_frombytes_ref
	.type	ml_kem_polyvec_frombytes_ref, @function
.Lml_kem_polyvec_frombytes_ref_local_target:
ml_kem_polyvec_frombytes_ref:
.LFB2515:

	.cfi_startproc
	endbr64
	movq	(%rdi), %r11
	testq	%r11, %r11
	je	.L13340
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %r9
	movq	%rdx, %r10
	xorl	%r8d, %r8d
	xorl	%edi, %edi
	xorl	%ecx, %ecx
.L13333:

	movl	%r8d, %edx
	salq	$9, %rcx
	addq	%r10, %rdx
	addq	%r9, %rcx
	leaq	384(%rdx), %rsi
	.p2align 4,,10
	.p2align 3
.L13332:

	movzbl	1(%rdx), %eax
	movzbl	(%rdx), %ebx
	addq	$3, %rdx
	addq	$4, %rcx
	sall	$8, %eax
	orl	%ebx, %eax
	andw	$4095, %ax
	movw	%ax, -4(%rcx)
	movzbl	-2(%rdx), %eax
	movzbl	-1(%rdx), %ebx
	shrb	$4, %al
	movzbl	%al, %eax
	sall	$4, %ebx
	orl	%ebx, %eax
	movw	%ax, -2(%rcx)
	cmpq	%rdx, %rsi
	jne	.L13332
	leal	1(%rdi), %ecx
	addl	$384, %r8d
	movq	%rcx, %rdi
	cmpq	%r11, %rcx
	jb	.L13333
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L13340:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE2515:

	.size	ml_kem_polyvec_frombytes_ref, .-ml_kem_polyvec_frombytes_ref
# WAS .section	.text.ml_kem_polyvec_ntt_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_ntt_ref
	.hidden	ml_kem_polyvec_ntt_ref
	.type	ml_kem_polyvec_ntt_ref, @function
.Lml_kem_polyvec_ntt_ref_local_target:
ml_kem_polyvec_ntt_ref:
.LFB2516:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, -32(%rsp)
	movq	(%rdi), %rsi
	testq	%rsi, %rsi
	je	.L13343
	xorl	%edx, %edx
	xorl	%r15d, %r15d
	movdqa	.LC309(%rip), %xmm3
	movdqa	.LC310(%rip), %xmm2
	movdqa	.LC311(%rip), %xmm5
	movdqa	.LC307(%rip), %xmm6
	movl	%edx, %ecx
	movq	%r15, %rdx
	movdqa	.LC308(%rip), %xmm4
.L13344:

	movq	%rdx, %rax
	movq	-32(%rsp), %rbx
	salq	$8, %rdx
	movl	%ecx, -12(%rsp)
	salq	$9, %rax
	movq	%rdx, -64(%rsp)
	movl	$-758, %r12d
	movl	$1, %r13d
	leaq	(%rbx,%rax), %r15
	movl	$7, %eax
	movq	%rsi, -24(%rsp)
	movl	$128, %r14d
	movl	%eax, -16(%rsp)
	.p2align 4,,10
	.p2align 3
.L13345:

	movq	-64(%rsp), %rax
	movl	%r14d, %edi
	xorl	%edx, %edx
	leal	-1(%r14), %r11d
	leal	1(%r14), %ebp
	addq	%rdi, %rax
	movl	%r14d, %edi
	movq	%rax, -56(%rsp)
	movl	%r14d, %eax
	shrl	$3, %edi
	andl	$-8, %eax
	salq	$4, %rdi
	movl	%eax, -40(%rsp)
	movl	%r14d, %eax
	andl	$7, %eax
	movq	%rdi, -48(%rsp)
	movl	%eax, -36(%rsp)
	.p2align 4,,10
	.p2align 3
.L13354:

	leal	1(%rdx), %eax
	leal	(%r14,%rdx), %esi
	addl	$1, %r13d
	movswl	%r12w, %r9d
	cmpl	%eax, %esi
	movl	%edx, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L13346
	testb	%r10b, %r10b
	je	.L13346
	movq	-56(%rsp), %rbx
	leaq	8(%rax,%rbx), %rdi
	movq	-64(%rsp), %rbx
	addq	%rdi, %rdi
	leaq	(%rax,%rbx), %rcx
	leaq	-16(%rdi), %r8
	addq	%rcx, %rcx
	leaq	16(%rcx), %rbx
	cmpq	%rbx, %r8
	jge	.L13358
	cmpq	%rdi, %rcx
	jge	.L13358
.L13346:

	movl	%esi, %ecx
	subq	%rax, %rcx
	leaq	(%r15,%rcx,2), %rdi
	.p2align 4,,10
	.p2align 3
.L13350:

	movswl	(%rdi,%rax,2), %r8d
	imull	%r9d, %r8d
	imulw	$-3327, %r8w, %cx
	movswl	%cx, %ecx
	imull	$-3329, %ecx, %ecx
	addl	%r8d, %ecx
	movzwl	(%r15,%rax,2), %r8d
	sarl	$16, %ecx
	subl	%ecx, %r8d
	movw	%r8w, (%rdi,%rax,2)
	addw	%cx, (%r15,%rax,2)
	addq	$1, %rax
	cmpl	%esi, %eax
	jb	.L13350
.L13351:

	addl	%ebp, %edx
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %edx
	cmpl	$255, %edx
	ja	.L13376
	movl	%r13d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rsi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rsi
	movzwl	(%rsi,%rax,2), %r12d
	jmp	.L13354
	.p2align 4,,10
	.p2align 3
.L13358:

	movq	-32(%rsp), %rax
	movd	%r12d, %xmm0
	punpcklwd	%xmm0, %xmm0
	addq	%rax, %r8
	addq	%rax, %rcx
	movq	-48(%rsp), %rax
	pshufd	$0, %xmm0, %xmm0
	addq	%r8, %rax
.L13348:

	movdqu	(%r8), %xmm9
	movdqu	(%r8), %xmm1
	addq	$16, %r8
	addq	$16, %rcx
	pmullw	%xmm0, %xmm9
	pmulhw	%xmm0, %xmm1
	movdqa	%xmm9, %xmm10
	punpckhwd	%xmm1, %xmm9
	punpcklwd	%xmm1, %xmm10
	movdqa	%xmm10, %xmm1
	movdqa	%xmm10, %xmm7
	punpcklwd	%xmm9, %xmm1
	punpckhwd	%xmm9, %xmm7
	movdqa	%xmm1, %xmm8
	punpcklwd	%xmm7, %xmm1
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm8, %xmm1
	pmullw	%xmm6, %xmm1
	movdqa	%xmm1, %xmm8
	movdqa	%xmm1, %xmm7
	pmulhw	%xmm4, %xmm7
	pmullw	%xmm4, %xmm8
	movdqa	%xmm8, %xmm1
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm7, %xmm1
	movdqa	%xmm8, %xmm7
	paddd	%xmm10, %xmm1
	paddd	%xmm9, %xmm7
	psrad	$16, %xmm7
	psrad	$16, %xmm1
	movdqa	%xmm1, %xmm8
	punpcklwd	%xmm7, %xmm1
	punpckhwd	%xmm7, %xmm8
	movdqa	%xmm1, %xmm7
	punpckhwd	%xmm8, %xmm7
	punpcklwd	%xmm8, %xmm1
	punpcklwd	%xmm7, %xmm1
	movdqu	-16(%rcx), %xmm7
	psubw	%xmm1, %xmm7
	movups	%xmm7, -16(%r8)
	movdqu	-16(%rcx), %xmm7
	paddw	%xmm7, %xmm1
	movups	%xmm1, -16(%rcx)
	cmpq	%r8, %rax
	jne	.L13348
	movl	-40(%rsp), %eax
	leal	(%rax,%rdx), %ecx
	movl	-36(%rsp), %eax
	testl	%eax, %eax
	je	.L13351
	leal	(%rcx,%r14), %eax
	leaq	(%r15,%rax,2), %r8
	movl	%ecx, %eax
	movswl	(%r8), %ebx
	leaq	(%r15,%rax,2), %rdi
	imull	%r9d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rdi), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r8)
	addw	%ax, (%rdi)
	leal	1(%rcx), %eax
	cmpl	%esi, %eax
	jnb	.L13351
	leal	(%rax,%r14), %edi
	leaq	(%r15,%rdi,2), %r8
	leaq	(%r15,%rax,2), %rdi
	movswl	(%r8), %ebx
	imull	%r9d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rdi), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r8)
	addw	%ax, (%rdi)
	leal	2(%rcx), %eax
	cmpl	%esi, %eax
	jnb	.L13351
	leal	(%r14,%rax), %edi
	leaq	(%r15,%rdi,2), %rbx
	leaq	(%r15,%rax,2), %rdi
	movswl	(%rbx), %r8d
	imull	%r9d, %r8d
	imulw	$-3327, %r8w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r8d, %eax
	movzwl	(%rdi), %r8d
	sarl	$16, %eax
	subl	%eax, %r8d
	movw	%r8w, (%rbx)
	addw	%ax, (%rdi)
	leal	3(%rcx), %eax
	cmpl	%esi, %eax
	jnb	.L13351
	leal	(%r14,%rax), %edi
	leaq	(%r15,%rdi,2), %rbx
	leaq	(%r15,%rax,2), %rdi
	movswl	(%rbx), %r8d
	imull	%r9d, %r8d
	imulw	$-3327, %r8w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r8d, %eax
	movzwl	(%rdi), %r8d
	sarl	$16, %eax
	subl	%eax, %r8d
	movw	%r8w, (%rbx)
	addw	%ax, (%rdi)
	leal	4(%rcx), %eax
	cmpl	%esi, %eax
	jnb	.L13351
	leal	(%r14,%rax), %edi
	leaq	(%r15,%rdi,2), %rbx
	leaq	(%r15,%rax,2), %rdi
	movswl	(%rbx), %r8d
	imull	%r9d, %r8d
	imulw	$-3327, %r8w, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%r8d, %eax
	movzwl	(%rdi), %r8d
	sarl	$16, %eax
	subl	%eax, %r8d
	movw	%r8w, (%rbx)
	addw	%ax, (%rdi)
	leal	5(%rcx), %eax
	cmpl	%esi, %eax
	jnb	.L13351
	leal	(%r14,%rax), %edi
	addq	%rax, %rax
	addl	$6, %ecx
	addq	%rdi, %rdi
	addq	%r15, %rax
	leaq	(%r15,%rdi), %rbx
	movswl	(%rbx), %r8d
	imull	%r9d, %r8d
	imulw	$-3327, %r8w, %di
	movswl	%di, %edi
	imull	$-3329, %edi, %edi
	addl	%r8d, %edi
	movzwl	(%rax), %r8d
	sarl	$16, %edi
	subl	%edi, %r8d
	movw	%r8w, (%rbx)
	addw	%di, (%rax)
	cmpl	%esi, %ecx
	jnb	.L13351
	leal	(%r14,%rcx), %eax
	addq	%rcx, %rcx
	addq	%rax, %rax
	leaq	(%r15,%rax), %rdi
	leaq	(%r15,%rcx), %rax
	movswl	(%rdi), %esi
	imull	%r9d, %esi
	imulw	$-3327, %si, %cx
	movswl	%cx, %ecx
	imull	$-3329, %ecx, %ecx
	addl	%esi, %ecx
	movzwl	(%rax), %esi
	sarl	$16, %ecx
	subl	%ecx, %esi
	movw	%si, (%rdi)
	addw	%cx, (%rax)
	jmp	.L13351
	.p2align 4,,10
	.p2align 3
.L13376:

	shrl	%r14d
	subl	$1, -16(%rsp)
	je	.L13353
	movl	%r13d, %edx
# WAS leaq	ml_kem_zetas_ref(%rip), %rax
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rax
	movzwl	(%rax,%rdx,2), %r12d
	jmp	.L13345
.L13353:

	movq	-24(%rsp), %rsi
	movl	-12(%rsp), %ecx
	movq	%r15, %rax
	leaq	512(%r15), %rdx
	.p2align 4,,10
	.p2align 3
.L13355:

	movdqu	(%rax), %xmm7
	addq	$16, %rax
	movdqa	%xmm7, %xmm1
	movdqa	%xmm7, %xmm8
	pmullw	%xmm3, %xmm1
	pmulhw	%xmm3, %xmm8
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	paddd	%xmm2, %xmm1
	paddd	%xmm2, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm8
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm5, %xmm0
	psubw	%xmm0, %xmm7
	movups	%xmm7, -16(%rax)
	cmpq	%rax, %rdx
	jne	.L13355
	leal	1(%rcx), %edx
	movq	%rdx, %rcx
	cmpq	%rsi, %rdx
	jb	.L13344
.L13343:

	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2516:

	.size	ml_kem_polyvec_ntt_ref, .-ml_kem_polyvec_ntt_ref
# WAS .section	.text.ml_kem_polyvec_invntt_tomont_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_invntt_tomont_ref
	.hidden	ml_kem_polyvec_invntt_tomont_ref
	.type	ml_kem_polyvec_invntt_tomont_ref, @function
.Lml_kem_polyvec_invntt_tomont_ref_local_target:
ml_kem_polyvec_invntt_tomont_ref:
.LFB2517:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	(%rdi), %r12
	testq	%r12, %r12
	je	.L13377
	movq	%rsi, %rbp
	xorl	%ebx, %ebx
	xorl	%edi, %edi
	.p2align 4,,10
	.p2align 3
.L13379:

	salq	$9, %rdi
	addq	%rbp, %rdi
# WAS call	ml_kem_invntt_ref
	call	.Lml_kem_invntt_ref_local_target
	leal	1(%rbx), %edi
	movq	%rdi, %rbx
	cmpq	%r12, %rdi
	jb	.L13379
.L13377:

	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2517:

	.size	ml_kem_polyvec_invntt_tomont_ref, .-ml_kem_polyvec_invntt_tomont_ref
# WAS .section	.text.ml_kem_polyvec_basemul_acc_montgomery_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_basemul_acc_montgomery_ref
	.hidden	ml_kem_polyvec_basemul_acc_montgomery_ref
	.type	ml_kem_polyvec_basemul_acc_montgomery_ref, @function
.Lml_kem_polyvec_basemul_acc_montgomery_ref_local_target:
ml_kem_polyvec_basemul_acc_montgomery_ref:
.LFB2518:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	$1, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	movq	%rcx, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	subq	$536, %rsp
	.cfi_def_cfa_offset 592
	movq	%fs:40, %rax
	movq	%rax, 520(%rsp)
	xorl	%eax, %eax
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movq	0(%rbp), %r14
	movl	$1, %eax
	movq	%rsp, %rbp
	cmpq	$1, %r14
	jbe	.L13389
.L13386:

	salq	$9, %rax
	movq	%rbp, %rdi
	leaq	0(%r13,%rax), %rdx
	leaq	(%r12,%rax), %rsi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L13388:

	movdqu	(%rbx,%rax), %xmm0
	paddw	0(%rbp,%rax), %xmm0
	movups	%xmm0, (%rbx,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L13388
	leal	1(%r15), %eax
	movq	%rax, %r15
	cmpq	%r14, %rax
	jb	.L13386
.L13389:

	movdqa	.LC309(%rip), %xmm5
	movdqa	.LC310(%rip), %xmm4
	leaq	512(%rbx), %rax
	movdqa	.LC311(%rip), %xmm6
	.p2align 4,,10
	.p2align 3
.L13387:

	movdqu	(%rbx), %xmm2
	addq	$16, %rbx
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm5, %xmm1
	pmulhw	%xmm5, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm4, %xmm1
	paddd	%xmm4, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm2
	movups	%xmm2, -16(%rbx)
	cmpq	%rbx, %rax
	jne	.L13387
	movq	520(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13398
	addq	$536, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13398:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2518:

	.size	ml_kem_polyvec_basemul_acc_montgomery_ref, .-ml_kem_polyvec_basemul_acc_montgomery_ref
# WAS .section	.text.ml_kem_polyvec_reduce_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_reduce_ref
	.hidden	ml_kem_polyvec_reduce_ref
	.type	ml_kem_polyvec_reduce_ref, @function
.Lml_kem_polyvec_reduce_ref_local_target:
ml_kem_polyvec_reduce_ref:
.LFB2519:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L13405
	movdqa	.LC309(%rip), %xmm5
	movdqa	.LC310(%rip), %xmm4
	xorl	%ecx, %ecx
	xorl	%eax, %eax
	movdqa	.LC311(%rip), %xmm6
.L13400:

	salq	$9, %rax
	addq	%rsi, %rax
	leaq	512(%rax), %rdx
	.p2align 4,,10
	.p2align 3
.L13402:

	movdqu	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm5, %xmm1
	pmulhw	%xmm5, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm4, %xmm1
	paddd	%xmm4, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm2
	movups	%xmm2, -16(%rax)
	cmpq	%rax, %rdx
	jne	.L13402
	leal	1(%rcx), %eax
	movq	%rax, %rcx
	cmpq	%rdi, %rax
	jb	.L13400
	ret
.L13405:

	ret
	.cfi_endproc
.LFE2519:

	.size	ml_kem_polyvec_reduce_ref, .-ml_kem_polyvec_reduce_ref
# WAS .section	.text.ml_kem_polyvec_add_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_polyvec_add_ref
	.hidden	ml_kem_polyvec_add_ref
	.type	ml_kem_polyvec_add_ref, @function
.Lml_kem_polyvec_add_ref_local_target:
ml_kem_polyvec_add_ref:
.LFB2520:

	.cfi_startproc
	endbr64
	movq	(%rdi), %r11
	movq	%rsi, %r10
	xorl	%r9d, %r9d
	xorl	%esi, %esi
	testq	%r11, %r11
	je	.L13413
.L13407:

	salq	$9, %rsi
	xorl	%eax, %eax
	leaq	(%rdx,%rsi), %r8
	leaq	(%rcx,%rsi), %rdi
	addq	%r10, %rsi
	.p2align 4,,10
	.p2align 3
.L13409:

	movdqu	(%rdi,%rax), %xmm0
	movdqu	(%r8,%rax), %xmm1
	paddw	%xmm1, %xmm0
	movups	%xmm0, (%rsi,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L13409
	leal	1(%r9), %esi
	movq	%rsi, %r9
	cmpq	%r11, %rsi
	jb	.L13407
	ret
.L13413:

	ret
	.cfi_endproc
.LFE2520:

	.size	ml_kem_polyvec_add_ref, .-ml_kem_polyvec_add_ref
# WAS .section	.text.ml_kem_montgomery_reduce_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_montgomery_reduce_ref
	.hidden	ml_kem_montgomery_reduce_ref
	.type	ml_kem_montgomery_reduce_ref, @function
.Lml_kem_montgomery_reduce_ref_local_target:
ml_kem_montgomery_reduce_ref:
.LFB2521:

	.cfi_startproc
	endbr64
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	shrl	$16, %eax
	ret
	.cfi_endproc
.LFE2521:

	.size	ml_kem_montgomery_reduce_ref, .-ml_kem_montgomery_reduce_ref
# WAS .section	.text.ml_kem_barrett_reduce_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_barrett_reduce_ref
	.hidden	ml_kem_barrett_reduce_ref
	.type	ml_kem_barrett_reduce_ref, @function
.Lml_kem_barrett_reduce_ref_local_target:
ml_kem_barrett_reduce_ref:
.LFB2522:

	.cfi_startproc
	endbr64
	movswl	%di, %edx
	movl	%edi, %eax
	imull	$20159, %edx, %edx
	addl	$33554432, %edx
	sarl	$26, %edx
	imulw	$3329, %dx, %dx
	subl	%edx, %eax
	ret
	.cfi_endproc
.LFE2522:

	.size	ml_kem_barrett_reduce_ref, .-ml_kem_barrett_reduce_ref
# WAS .section	.text.ml_kem_verify_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_verify_ref
	.hidden	ml_kem_verify_ref
	.type	ml_kem_verify_ref, @function
.Lml_kem_verify_ref_local_target:
ml_kem_verify_ref:
.LFB2527:

	.cfi_startproc
	endbr64
	movq	%rdx, %r8
	testq	%rdx, %rdx
	je	.L13423
	leaq	-1(%rdx), %rax
	cmpq	$14, %rax
	jbe	.L13424
	movq	%rdx, %rcx
	xorl	%eax, %eax
	pxor	%xmm1, %xmm1
	andq	$-16, %rcx
	.p2align 4,,10
	.p2align 3
.L13419:

	movdqu	(%rdi,%rax), %xmm0
	movdqu	(%rsi,%rax), %xmm3
	addq	$16, %rax
	pxor	%xmm3, %xmm0
	por	%xmm0, %xmm1
	cmpq	%rax, %rcx
	jne	.L13419
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm0
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$4, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$2, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$1, %xmm2
	por	%xmm2, %xmm0
	movd	%xmm0, %eax
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm1
	por	%xmm0, %xmm1
	cmpq	%rcx, %r8
	je	.L13420
.L13418:

	movq	%r8, %r9
	subq	%rcx, %r9
	leaq	-1(%r9), %rdx
	cmpq	$6, %rdx
	jbe	.L13421
	movq	(%rdi,%rcx), %xmm0
	movq	(%rsi,%rcx), %xmm2
	pxor	%xmm2, %xmm0
	por	%xmm1, %xmm0
	movq	%xmm0, %rdx
	movq	%rdx, %rax
	movq	%rdx, %r10
	orb	%dh, %al
	shrq	$16, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$24, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$32, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$40, %r10
	orl	%r10d, %eax
	movq	%rdx, %r10
	shrq	$56, %rdx
	shrq	$48, %r10
	orl	%r10d, %eax
	orl	%edx, %eax
	movq	%r9, %rdx
	andq	$-8, %rdx
	addq	%rdx, %rcx
	andl	$7, %r9d
	je	.L13420
.L13421:

	movzbl	(%rdi,%rcx), %edx
	xorb	(%rsi,%rcx), %dl
	orl	%edx, %eax
	leaq	1(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	1(%rsi,%rcx), %edx
	xorb	1(%rdi,%rcx), %dl
	orl	%edx, %eax
	leaq	2(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	2(%rdi,%rcx), %edx
	xorb	2(%rsi,%rcx), %dl
	orl	%edx, %eax
	leaq	3(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	3(%rdi,%rcx), %edx
	xorb	3(%rsi,%rcx), %dl
	orl	%edx, %eax
	leaq	4(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	4(%rdi,%rcx), %edx
	xorb	4(%rsi,%rcx), %dl
	orl	%edx, %eax
	leaq	5(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	5(%rdi,%rcx), %edx
	xorb	5(%rsi,%rcx), %dl
	orl	%edx, %eax
	leaq	6(%rcx), %rdx
	cmpq	%r8, %rdx
	jnb	.L13420
	movzbl	6(%rdi,%rcx), %edx
	xorb	6(%rsi,%rcx), %dl
	orl	%edx, %eax
.L13420:

	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L13423:

	xorl	%eax, %eax
	ret
.L13424:

	pxor	%xmm1, %xmm1
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	jmp	.L13418
	.cfi_endproc
.LFE2527:

	.size	ml_kem_verify_ref, .-ml_kem_verify_ref
# WAS .section	.text.ml_kem_cmov_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_cmov_ref
	.hidden	ml_kem_cmov_ref
	.type	ml_kem_cmov_ref, @function
.Lml_kem_cmov_ref_local_target:
ml_kem_cmov_ref:
.LFB2528:

	.cfi_startproc
	endbr64
	movzbl	%cl, %ecx
	movq	%rsi, %r8
	movq	%rdx, %r9
	xorl	%eax, %eax
	movq	%rcx, %rsi
	subq	$1, %rcx
	notq	%rsi
	andq	%rcx, %rsi
	sarq	$63, %rsi
	movzbl	%sil, %esi
	movq	%rsi, %r10
	notq	%r10
	testq	%rdx, %rdx
	je	.L13429
	.p2align 4,,10
	.p2align 3
.L13431:

	movzbl	(%rdi,%rax), %edx
	movzbl	(%r8,%rax), %ecx
	andq	%rsi, %rdx
	andq	%r10, %rcx
	orq	%rcx, %rdx
	movb	%dl, (%rdi,%rax)
	addq	$1, %rax
	cmpq	%rax, %r9
	jne	.L13431
.L13429:

	ret
	.cfi_endproc
.LFE2528:

	.size	ml_kem_cmov_ref, .-ml_kem_cmov_ref
# WAS .section	.text.CRYPTO_cbc128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_cbc128_encrypt
	.hidden	CRYPTO_cbc128_encrypt
	.type	CRYPTO_cbc128_encrypt, @function
.LCRYPTO_cbc128_encrypt_local_target:
CRYPTO_cbc128_encrypt:
.LFB2547:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L13435
# WAS jmp	CRYPTO_cbc128_encrypt.part.0
	jmp	.LCRYPTO_cbc128_encrypt.part.0_local_target
.L13435:

	ret
	.cfi_endproc
.LFE2547:

	.size	CRYPTO_cbc128_encrypt, .-CRYPTO_cbc128_encrypt
# WAS .section	.text.CRYPTO_cbc128_decrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_cbc128_decrypt
	.hidden	CRYPTO_cbc128_decrypt
	.type	CRYPTO_cbc128_decrypt, @function
.LCRYPTO_cbc128_decrypt_local_target:
CRYPTO_cbc128_decrypt:
.LFB2548:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L13437
# WAS jmp	CRYPTO_cbc128_decrypt.part.0
	jmp	.LCRYPTO_cbc128_decrypt.part.0_local_target
.L13437:

	ret
	.cfi_endproc
.LFE2548:

	.size	CRYPTO_cbc128_decrypt, .-CRYPTO_cbc128_decrypt
# WAS .section	.text.CRYPTO_cfb128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_cfb128_encrypt
	.hidden	CRYPTO_cfb128_encrypt
	.type	CRYPTO_cfb128_encrypt, @function
.LCRYPTO_cfb128_encrypt_local_target:
CRYPTO_cfb128_encrypt:
.LFB2549:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	(%r9), %r15d
	movl	96(%rsp), %eax
	movq	%rcx, (%rsp)
	testl	%r15d, %r15d
	movq	%r9, 16(%rsp)
	setne	%dl
	testq	%rbp, %rbp
	setne	%sil
	andl	%esi, %edx
	testl	%eax, %eax
	jne	.L13440
	testb	%dl, %dl
	jne	.L13441
.L13442:

	cmpq	$15, %rbp
	jbe	.L13465
.L13576:

	leaq	-16(%rbp), %rdx
	movq	%r14, %r13
	andq	$-16, %rdx
	leaq	16(%rdx), %rax
	movq	%rax, 24(%rsp)
	addq	%rbx, %rax
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L13458:

	movq	(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*104(%rsp)
	cmpl	$15, %r15d
	ja	.L13461
	movl	%r15d, %edx
	leal	8(%r15), %ecx
	leaq	(%r12,%rdx), %rsi
	movq	(%rbx,%rdx), %rdi
	movq	(%rsi), %r11
	xorq	%rdi, %r11
	movq	%r11, 0(%r13,%rdx)
	movq	%rdi, (%rsi)
	cmpl	$15, %ecx
	ja	.L13461
	leaq	(%r12,%rcx), %rdx
	movq	(%rbx,%rcx), %rsi
	movq	(%rdx), %rdi
	xorq	%rsi, %rdi
	movq	%rdi, 0(%r13,%rcx)
	movq	%rsi, (%rdx)
.L13461:

	movq	8(%rsp), %rax
	addq	$16, %rbx
	addq	$16, %r13
	xorl	%r15d, %r15d
	cmpq	%rax, %rbx
	jne	.L13458
	movq	24(%rsp), %rax
	andl	$15, %ebp
	addq	%rax, %r14
.L13456:

	testq	%rbp, %rbp
	je	.L13454
	movq	(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*104(%rsp)
	movl	%r15d, %edx
	movq	8(%rsp), %r10
	leaq	(%r12,%rdx), %rsi
	movzbl	(%r10,%rdx), %edi
	movzbl	(%rsi), %r9d
	xorl	%edi, %r9d
	movb	%r9b, (%r14,%rdx)
	movb	%dil, (%rsi)
	movq	%rbp, %rsi
	leal	1(%r15), %edi
	subq	$1, %rsi
	je	.L13463
	movl	%edi, %edx
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	2(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$1, %rsi
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	3(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$3, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	4(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$4, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	5(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$5, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	6(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$6, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	7(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$7, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	8(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$8, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	9(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$9, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	10(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$10, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	11(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$11, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	12(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$12, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	leal	13(%r15), %edx
	movb	%r11b, (%r9)
	cmpq	$13, %rbp
	je	.L13463
	leaq	(%r12,%rdx), %r9
	movzbl	(%r10,%rdx), %r11d
	leal	14(%r15), %ecx
	movzbl	(%r9), %ebx
	xorl	%r11d, %ebx
	movb	%bl, (%r14,%rdx)
	movb	%r11b, (%r9)
	cmpq	$14, %rbp
	je	.L13463
	movl	%ecx, %eax
	leaq	(%r12,%rax), %r8
	movzbl	(%r10,%rax), %edx
	movzbl	(%r8), %ecx
	xorl	%edx, %ecx
	movb	%cl, (%r14,%rax)
	movb	%dl, (%r8)
.L13463:

	leal	(%rdi,%rsi), %r15d
.L13454:

	movq	16(%rsp), %rax
	movl	%r15d, (%rax)
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13575:

	.cfi_restore_state
	testq	%rbp, %rbp
	je	.L13442
.L13441:

	movl	%r15d, %edx
	movzbl	(%rbx), %esi
	leal	1(%r15), %ecx
	addq	$1, %rbx
	addq	%r12, %rdx
	addq	$1, %r14
	subq	$1, %rbp
	movzbl	(%rdx), %edi
	xorl	%esi, %edi
	andl	$15, %ecx
	movb	%dil, -1(%r14)
	movl	%ecx, %r15d
	movb	%sil, (%rdx)
	jne	.L13575
	cmpq	$15, %rbp
	ja	.L13576
	jmp	.L13465
	.p2align 4,,10
	.p2align 3
.L13440:

	testb	%dl, %dl
	jne	.L13444
.L13443:

	cmpq	$15, %rbp
	jbe	.L13464
.L13578:

	leaq	-16(%rbp), %rdx
	movq	%r14, %r13
	andq	$-16, %rdx
	leaq	16(%rdx), %rax
	movq	%rax, 24(%rsp)
	addq	%rbx, %rax
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L13448:

	movq	(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*104(%rsp)
	cmpl	$15, %r15d
	ja	.L13451
	movl	%r15d, %esi
	leal	8(%r15), %ecx
	leaq	(%r12,%rsi), %rdi
	movq	(%rbx,%rsi), %rdx
	xorq	(%rdi), %rdx
	movq	%rdx, (%rdi)
	movq	%rdx, 0(%r13,%rsi)
	cmpl	$15, %ecx
	ja	.L13451
	leaq	(%r12,%rcx), %rsi
	movq	(%rbx,%rcx), %rdx
	xorq	(%rsi), %rdx
	movq	%rdx, (%rsi)
	movq	%rdx, 0(%r13,%rcx)
.L13451:

	movq	8(%rsp), %rax
	addq	$16, %rbx
	addq	$16, %r13
	xorl	%r15d, %r15d
	cmpq	%rax, %rbx
	jne	.L13448
	movq	24(%rsp), %rax
	andl	$15, %ebp
	addq	%rax, %r14
.L13446:

	testq	%rbp, %rbp
	je	.L13454
	movq	(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
	call	*104(%rsp)
	movl	%r15d, %esi
	movq	8(%rsp), %rbx
	leal	1(%r15), %r9d
	leaq	(%r12,%rsi), %rdi
	movzbl	(%rbx,%rsi), %edx
	xorb	(%rdi), %dl
	movb	%dl, (%rdi)
	movq	%rbp, %rdi
	movb	%dl, (%r14,%rsi)
	subq	$1, %rdi
	je	.L13453
	movl	%r9d, %esi
	leaq	(%r12,%rsi), %r11
	movzbl	(%rbx,%rsi), %edx
	xorb	(%r11), %dl
	movb	%dl, (%r11)
	movb	%dl, (%r14,%rsi)
	leal	2(%r15), %edx
	cmpq	$1, %rdi
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	3(%r15), %edx
	cmpq	$3, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	4(%r15), %edx
	cmpq	$4, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	5(%r15), %edx
	cmpq	$5, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	6(%r15), %edx
	cmpq	$6, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	7(%r15), %edx
	cmpq	$7, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	8(%r15), %edx
	cmpq	$8, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	9(%r15), %edx
	cmpq	$9, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	10(%r15), %edx
	cmpq	$10, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	11(%r15), %edx
	cmpq	$11, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	12(%r15), %edx
	cmpq	$12, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	leal	13(%r15), %edx
	cmpq	$13, %rbp
	je	.L13453
	leaq	(%r12,%rdx), %r11
	movzbl	(%rbx,%rdx), %esi
	leal	14(%r15), %ecx
	xorb	(%r11), %sil
	movb	%sil, (%r11)
	movb	%sil, (%r14,%rdx)
	cmpq	$14, %rbp
	je	.L13453
	movl	%ecx, %eax
	leaq	(%r12,%rax), %r8
	movzbl	(%rbx,%rax), %edx
	xorb	(%r8), %dl
	movb	%dl, (%r8)
	movb	%dl, (%r14,%rax)
.L13453:

	leal	(%r9,%rdi), %r15d
	jmp	.L13454
	.p2align 4,,10
	.p2align 3
.L13577:

	testq	%rbp, %rbp
	je	.L13443
.L13444:

	movl	%r15d, %esi
	addq	$1, %rbx
	leal	1(%r15), %ecx
	addq	$1, %r14
	addq	%r12, %rsi
	subq	$1, %rbp
	movzbl	(%rsi), %edx
	xorb	-1(%rbx), %dl
	andl	$15, %ecx
	movb	%dl, (%rsi)
	movl	%ecx, %r15d
	movb	%dl, -1(%r14)
	jne	.L13577
	cmpq	$15, %rbp
	ja	.L13578
.L13464:

	movq	%rbx, 8(%rsp)
	jmp	.L13446
.L13465:

	movq	%rbx, 8(%rsp)
	jmp	.L13456
	.cfi_endproc
.LFE2549:

	.size	CRYPTO_cfb128_encrypt, .-CRYPTO_cfb128_encrypt
# WAS .section	.text.AES_cfb128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_cfb128_encrypt
	.type	AES_cfb128_encrypt, @function
.LAES_cfb128_encrypt_local_target:
AES_cfb128_encrypt:
.LFB801:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%r9, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	movl	(%r9), %eax
	movl	%eax, 4(%rsp)
# WAS pushq	AES_encrypt@GOTPCREL(%rip)
	pushq %rax
	leaq	.LAES_encrypt_local_target(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_def_cfa_offset 40
	movl	40(%rsp), %eax
	pushq	%rax
	.cfi_def_cfa_offset 48
	leaq	20(%rsp), %r9
# WAS call	CRYPTO_cfb128_encrypt
	call	.LCRYPTO_cfb128_encrypt_local_target
	movl	20(%rsp), %eax
	movl	%eax, (%rbx)
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rdx
	.cfi_def_cfa_offset 32
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13582
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L13582:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE801:

	.size	AES_cfb128_encrypt, .-AES_cfb128_encrypt
# WAS .section	.text.CRYPTO_cfb128_1_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_cfb128_1_encrypt
	.hidden	CRYPTO_cfb128_1_encrypt
	.type	CRYPTO_cfb128_1_encrypt, @function
.LCRYPTO_cfb128_1_encrypt_local_target:
CRYPTO_cfb128_1_encrypt:
.LFB2551:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L13594
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movl	112(%rsp), %eax
	testl	%eax, %eax
	jne	.L13587
	movq	%rdi, 16(%rsp)
	xorl	%r8d, %r8d
	movq	%rsi, 24(%rsp)
	movq	%r8, %r14
	movq	%rdx, 32(%rsp)
	movq	%rcx, 40(%rsp)
	.p2align 4,,10
	.p2align 3
.L13586:

	movq	16(%rsp), %rax
	movq	%r14, %r12
	movl	%r14d, %ecx
	movq	8(%rbx), %rbp
	shrq	$3, %r12
	notl	%ecx
	movq	40(%rsp), %rdx
	movq	%rbx, %rsi
	movzbl	(%rax,%r12), %r9d
	andl	$7, %ecx
	movq	(%rbx), %rax
	movq	%rbx, %rdi
	movl	%ecx, %r15d
	sarl	%cl, %r9d
	movq	%rax, 8(%rsp)
	movl	%r9d, %r13d
	call	*120(%rsp)
	movq	8(%rsp), %rax
	movzbl	(%rbx), %esi
	sall	$7, %r13d
	movzbl	%r13b, %r9d
	movzbl	%ah, %edi
	leal	(%rax,%rax), %edx
	movzbl	%ah, %ecx
	xorl	%r13d, %esi
	sarl	$7, %edi
	movq	%rcx, %r11
	movl	%r15d, %ecx
	orl	%edi, %edx
	addl	%r11d, %r11d
	movb	%dl, (%rbx)
	movq	%rax, %rdx
	shrq	$16, %rdx
	movl	%edx, %edi
	addl	%edx, %edx
	shrb	$7, %dil
	orl	%r11d, %edi
	movl	%eax, %r11d
	shrl	$31, %r11d
	movb	%dil, 1(%rbx)
	movq	%rax, %rdi
	orl	%r11d, %edx
	shrq	$24, %rdi
	movb	%dl, 2(%rbx)
	movq	%rax, %rdx
	addl	%edi, %edi
	shrq	$32, %rdx
	movl	%edx, %r11d
	addl	%edx, %edx
	shrb	$7, %r11b
	orl	%edi, %r11d
	movq	%rax, %rdi
	shrq	$40, %rdi
	movb	%r11b, 3(%rbx)
	movl	%edi, %r11d
	addl	%edi, %edi
	shrb	$7, %r11b
	orl	%edx, %r11d
	movq	%rax, %rdx
	shrq	$48, %rdx
	movb	%r11b, 4(%rbx)
	movl	%edx, %r11d
	addl	%edx, %edx
	shrb	$7, %r11b
	orl	%edi, %r11d
	movq	%rax, %rdi
	shrq	$63, %rax
	orl	%edx, %eax
	shrq	$56, %rdi
	movb	%r11b, 5(%rbx)
	movb	%al, 6(%rbx)
	movl	%ebp, %eax
	shrb	$7, %al
	addl	%edi, %edi
	sarl	$7, %r9d
	orl	%edi, %eax
	movb	%al, 7(%rbx)
	movq	%rbp, %rax
	movzbl	%ah, %edx
	movzbl	%ah, %edi
	leal	(%rbp,%rbp), %eax
	sarl	$7, %edx
	addl	%edi, %edi
	orl	%edx, %eax
	movb	%al, 8(%rbx)
	movq	%rbp, %rax
	shrq	$16, %rax
	movl	%eax, %edx
	addl	%eax, %eax
	shrb	$7, %dl
	orl	%edi, %edx
	movl	%ebp, %edi
	shrl	$31, %edi
	movb	%dl, 9(%rbx)
	movq	%rbp, %rdx
	orl	%edi, %eax
	movq	%rbp, %rdi
	shrq	$24, %rdx
	shrq	$32, %rdi
	movb	%al, 10(%rbx)
	addl	%edx, %edx
	movl	%edi, %eax
	addl	%edi, %edi
	shrb	$7, %al
	orl	%edx, %eax
	movb	%al, 11(%rbx)
	movq	%rbp, %rax
	shrq	$40, %rax
	movl	%eax, %edx
	addl	%eax, %eax
	shrb	$7, %dl
	orl	%edi, %edx
	movb	%dl, 12(%rbx)
	movq	%rbp, %rdx
	shrq	$48, %rdx
	movl	%edx, %edi
	addl	%edx, %edx
	shrb	$7, %dil
	orl	%eax, %edi
	movq	%rbp, %rax
	shrq	$63, %rbp
	shrq	$56, %rax
	orl	%edx, %ebp
	movb	%dil, 13(%rbx)
	addl	%eax, %eax
	movb	%bpl, 14(%rbx)
	orl	%r9d, %eax
	movb	%al, 15(%rbx)
	movq	24(%rsp), %rax
	leaq	(%rax,%r12), %r10
	movl	$1, %eax
	sall	%cl, %eax
	movl	%r14d, %ecx
	andl	$128, %esi
	addq	$1, %r14
	andl	$7, %ecx
	notl	%eax
	andb	(%r10), %al
	sarl	%cl, %esi
	orl	%esi, %eax
	movb	%al, (%r10)
	cmpq	%r14, 32(%rsp)
	jne	.L13586
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13587:

	.cfi_restore_state
	movq	%rdi, 16(%rsp)
	xorl	%r15d, %r15d
	movq	%rsi, 24(%rsp)
	movq	%r15, %r14
	movq	%r8, %r15
	movq	%rdx, 32(%rsp)
	movq	%rcx, 40(%rsp)
	.p2align 4,,10
	.p2align 3
.L13585:

	movl	%r14d, %ecx
	movq	16(%rsp), %rax
	movq	%r14, %r12
	movq	8(%r15), %r13
	notl	%ecx
	shrq	$3, %r12
	movq	40(%rsp), %rdx
	movq	%r15, %rsi
	movl	%ecx, %ebx
	movzbl	(%rax,%r12), %ebp
	movq	(%r15), %rax
	movq	%r15, %rdi
	andl	$7, %ebx
	movl	%ebx, %ecx
	movq	%rax, 8(%rsp)
	sarl	%cl, %ebp
	call	*120(%rsp)
	movq	8(%rsp), %rax
	sall	$7, %ebp
	xorb	(%r15), %bpl
	movq	%r13, %r8
	movl	%ebx, %ecx
	movzbl	%ah, %esi
	leal	(%rax,%rax), %edx
	movzbl	%ah, %edi
	sarl	$7, %esi
	addl	%edi, %edi
	orl	%esi, %edx
	movb	%dl, (%r15)
	movq	%rax, %rdx
	shrq	$16, %rdx
	movl	%edx, %esi
	addl	%edx, %edx
	shrb	$7, %sil
	orl	%edi, %esi
	movl	%eax, %edi
	shrl	$31, %edi
	movb	%sil, 1(%r15)
	movq	%rax, %rsi
	orl	%edi, %edx
	movq	%rax, %rdi
	shrq	$24, %rsi
	shrq	$32, %rdi
	movb	%dl, 2(%r15)
	addl	%esi, %esi
	movl	%edi, %edx
	addl	%edi, %edi
	shrb	$7, %dl
	orl	%esi, %edx
	movb	%dl, 3(%r15)
	movq	%rax, %rdx
	shrq	$40, %rdx
	movl	%edx, %esi
	addl	%edx, %edx
	shrb	$7, %sil
	orl	%edi, %esi
	movb	%sil, 4(%r15)
	movq	%rax, %rsi
	shrq	$48, %rsi
	movl	%esi, %edi
	addl	%esi, %esi
	shrb	$7, %dil
	orl	%edi, %edx
	movb	%dl, 5(%r15)
	movq	%rax, %rdx
	shrq	$63, %rax
	shrq	$56, %rdx
	movq	%rax, %r11
	movq	%r13, %rax
	orl	%esi, %r11d
	leal	(%rdx,%rdx), %esi
	movl	%r13d, %edx
	movzbl	%ah, %edi
	shrb	$7, %dl
	addl	%edi, %edi
	shrq	$63, %r8
	movb	%r11b, 6(%r15)
	orl	%esi, %edx
	movzbl	%ah, %esi
	movq	24(%rsp), %rax
	movb	%dl, 7(%r15)
	sarl	$7, %esi
	leal	(%r13,%r13), %edx
	orl	%esi, %edx
	leaq	(%rax,%r12), %r10
	movb	%dl, 8(%r15)
	movq	%r13, %rdx
	shrq	$16, %rdx
	movl	%edx, %esi
	addl	%edx, %edx
	shrb	$7, %sil
	orl	%edi, %esi
	movl	%r13d, %edi
	shrl	$31, %edi
	movb	%sil, 9(%r15)
	movq	%r13, %rsi
	orl	%edi, %edx
	shrq	$24, %rsi
	movb	%dl, 10(%r15)
	movq	%r13, %rdx
	leal	(%rsi,%rsi), %edi
	shrq	$32, %rdx
	movl	%edx, %esi
	addl	%edx, %edx
	shrb	$7, %sil
	orl	%edi, %esi
	movb	%sil, 11(%r15)
	movq	%r13, %rsi
	shrq	$40, %rsi
	movl	%esi, %edi
	addl	%esi, %esi
	shrb	$7, %dil
	orl	%edi, %edx
	movb	%dl, 12(%r15)
	movq	%r13, %rdx
	shrq	$48, %rdx
	movl	%edx, %edi
	addl	%edx, %edx
	shrb	$7, %dil
	orl	%edx, %r8d
	movl	%ebp, %edx
	orl	%edi, %esi
	shrb	$7, %dl
	movb	%r8b, 14(%r15)
	movb	%sil, 13(%r15)
	movq	%r13, %rsi
	shrq	$56, %rsi
	addl	%esi, %esi
	orl	%esi, %edx
	movb	%dl, 15(%r15)
	movl	$1, %edx
	sall	%cl, %edx
	movl	%r14d, %ecx
	notl	%edx
	andb	(%r10), %dl
	andl	$128, %ebp
	andl	$7, %ecx
	sarl	%cl, %ebp
	addq	$1, %r14
	orl	%ebp, %edx
	movb	%dl, (%r10)
	cmpq	%r14, 32(%rsp)
	jne	.L13585
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13594:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	ret
	.cfi_endproc
.LFE2551:

	.size	CRYPTO_cfb128_1_encrypt, .-CRYPTO_cfb128_1_encrypt
# WAS .section	.text.AES_cfb1_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_cfb1_encrypt
	.hidden	AES_cfb1_encrypt
	.type	AES_cfb1_encrypt, @function
.LAES_cfb1_encrypt_local_target:
AES_cfb1_encrypt:
.LFB799:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%r9, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movl	(%r9), %ebp
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS pushq	AES_encrypt@GOTPCREL(%rip)
	pushq %rax
	leaq	.LAES_encrypt_local_target(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_def_cfa_offset 56
	movl	56(%rsp), %eax
	pushq	%rax
	.cfi_def_cfa_offset 64
	leaq	20(%rsp), %r9
# WAS call	CRYPTO_cfb128_1_encrypt
	call	.LCRYPTO_cfb128_1_encrypt_local_target
	movl	%ebp, (%rbx)
	popq	%rax
	.cfi_def_cfa_offset 56
	popq	%rdx
	.cfi_def_cfa_offset 48
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13600
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L13600:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE799:

	.size	AES_cfb1_encrypt, .-AES_cfb1_encrypt
# WAS .section	.text.CRYPTO_cfb128_8_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_cfb128_8_encrypt
	.hidden	CRYPTO_cfb128_8_encrypt
	.type	CRYPTO_cfb128_8_encrypt, @function
.LCRYPTO_cfb128_8_encrypt_local_target:
CRYPTO_cfb128_8_encrypt:
.LFB2552:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movq	72(%rsp), %r14
	testq	%rdx, %rdx
	je	.L13601
	movq	%rcx, %rbp
	movq	%r8, %r12
	movq	%rdi, %rbx
	movq	%rsi, %r13
	leaq	(%rdi,%rdx), %r15
	.p2align 4,,10
	.p2align 3
.L13603:

	movl	64(%rsp), %r8d
	movq	%r13, %rsi
	movq	%rbx, %rdi
	movq	%r14, %r9
	movq	%r12, %rcx
	movq	%rbp, %rdx
	addq	$1, %rbx
	addq	$1, %r13
# WAS call	cfbr_encrypt_block.part.0.constprop.0
	call	.Lcfbr_encrypt_block.part.0.constprop.0_local_target
	cmpq	%r15, %rbx
	jne	.L13603
.L13601:

	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2552:

	.size	CRYPTO_cfb128_8_encrypt, .-CRYPTO_cfb128_8_encrypt
# WAS .section	.text.CRYPTO_ctr128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_ctr128_encrypt
	.hidden	CRYPTO_ctr128_encrypt
	.type	CRYPTO_ctr128_encrypt, @function
.LCRYPTO_ctr128_encrypt_local_target:
CRYPTO_ctr128_encrypt:
.LFB2554:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	144(%rsp), %rax
	movq	%rcx, 48(%rsp)
	movq	%r9, 16(%rsp)
	movl	(%rax), %r12d
	testl	%r12d, %r12d
	je	.L13610
	testq	%rdx, %rdx
	je	.L13610
	movq	%r9, %rdx
	jmp	.L13611
	.p2align 4,,10
	.p2align 3
.L13676:

	testq	%rbx, %rbx
	je	.L13610
.L13611:

	movl	%r12d, %eax
	addq	$1, %r14
	addq	$1, %rbp
	addl	$1, %r12d
	movzbl	(%rdx,%rax), %eax
	xorb	-1(%r14), %al
	subq	$1, %rbx
	movb	%al, -1(%rbp)
	andl	$15, %r12d
	jne	.L13676
.L13610:

	cmpq	$15, %rbx
	jbe	.L13617
	leaq	-16(%rbx), %rax
	movq	%rbp, 64(%rsp)
	andq	$-16, %rax
	movq	%rbx, 72(%rsp)
	movq	%rbp, %rbx
	leaq	16(%rax), %r12
	leaq	(%r14,%r12), %rax
	movq	%r12, 56(%rsp)
	movq	%rax, 40(%rsp)
	.p2align 4,,10
	.p2align 3
.L13614:

	movq	48(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%r13, %rdi
	call	*152(%rsp)
	movzbl	15(%r13), %eax
	movzbl	14(%r13), %edi
	movzbl	13(%r13), %esi
	movzbl	12(%r13), %ecx
	addl	$1, %eax
	movzbl	11(%r13), %edx
	movzbl	6(%r13), %r12d
	shrl	$8, %eax
	addl	%eax, %edi
	movl	%edi, %eax
	movzbl	%dil, %edi
	shrl	$8, %eax
	addl	%eax, %esi
	movl	%esi, %eax
	movzbl	%sil, %esi
	shrl	$8, %eax
	addl	%eax, %ecx
	movl	%ecx, %eax
	movzbl	%cl, %ecx
	shrl	$8, %eax
	addl	%edx, %eax
	movzbl	10(%r13), %edx
	movl	%eax, (%rsp)
	shrl	$8, %eax
	addl	%eax, %edx
	movzbl	7(%r13), %eax
	movl	%edx, 28(%rsp)
	movl	%edx, %r15d
	movzbl	9(%r13), %edx
	shrl	$8, %r15d
	leal	(%rdx,%r15), %r11d
	movzbl	8(%r13), %edx
	movl	%r11d, %r10d
	movl	%r11d, 32(%rsp)
	movzbl	4(%r13), %r11d
	shrl	$8, %r10d
	leal	(%rdx,%r10), %r8d
	movzbl	3(%r13), %r10d
	movl	%r8d, %r9d
	movl	%r8d, 36(%rsp)
	movzbl	1(%r13), %r8d
	shrl	$8, %r9d
	addl	%r9d, %eax
	movzbl	2(%r13), %r9d
	movl	%eax, %ebp
	movzbl	%al, %eax
	shrl	$8, %ebp
	salq	$8, %rax
	addl	%ebp, %r12d
	movl	%r12d, %ebp
	movzbl	%r12b, %r12d
	shrl	$8, %ebp
	movl	%ebp, %edx
	movzbl	5(%r13), %ebp
	addl	%edx, %ebp
	movl	%ebp, %edx
	movzbl	%bpl, %ebp
	shrl	$8, %edx
	addl	%edx, %r11d
	movl	%r11d, %edx
	movzbl	%r11b, %r11d
	shrl	$8, %edx
	addl	%edx, %r10d
	movl	%r10d, %edx
	movzbl	%r10b, %r10d
	shrl	$8, %edx
	addl	%edx, %r9d
	movl	%r9d, %edx
	movzbl	%r9b, %r9d
	shrl	$8, %edx
	addl	%edx, %r8d
	movzbl	15(%r13), %edx
	movl	%r8d, %r15d
	movzbl	%r8b, %r8d
	addl	$1, %edx
	shrl	$8, %r15d
	addb	0(%r13), %r15b
	orq	%r12, %rax
	movzbl	%dl, %edx
	salq	$8, %rax
	movzbl	%r15b, %r15d
	addq	$16, %r14
	salq	$8, %rdx
	orq	%rbp, %rax
	addq	$16, %rbx
	orq	%rdi, %rdx
	salq	$8, %rax
	movq	16(%rsp), %rdi
	salq	$8, %rdx
	orq	%r11, %rax
	orq	%rsi, %rdx
	salq	$8, %rax
	salq	$8, %rdx
	orq	%r10, %rax
	orq	%rcx, %rdx
	movzbl	(%rsp), %ecx
	salq	$8, %rax
	salq	$8, %rdx
	orq	%r9, %rax
	orq	%rcx, %rdx
	movzbl	28(%rsp), %ecx
	salq	$8, %rax
	salq	$8, %rdx
	orq	%r8, %rax
	orq	%rcx, %rdx
	movzbl	32(%rsp), %ecx
	salq	$8, %rax
	salq	$8, %rdx
	orq	%r15, %rax
	orq	%rcx, %rdx
	movzbl	36(%rsp), %ecx
	movq	%rax, (%rsp)
	salq	$8, %rdx
	orq	%rcx, %rdx
	movq	%rdx, 8(%rsp)
	movdqa	(%rsp), %xmm0
	movups	%xmm0, 0(%r13)
	movq	-16(%r14), %rax
	xorq	(%rdi), %rax
	movq	%rax, -16(%rbx)
	movq	-8(%r14), %rax
	xorq	8(%rdi), %rax
	movq	%rax, -8(%rbx)
	movq	40(%rsp), %rax
	cmpq	%rax, %r14
	jne	.L13614
	movq	56(%rsp), %r12
	movq	64(%rsp), %rbp
	movq	72(%rsp), %rbx
	addq	%r12, %rbp
	xorl	%r12d, %r12d
	andl	$15, %ebx
.L13613:

	testq	%rbx, %rbx
	je	.L13615
	movq	48(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%r13, %rdi
	call	*152(%rsp)
	movzbl	15(%r13), %eax
	movzbl	14(%r13), %edx
	movzbl	13(%r13), %ecx
	movzbl	4(%r13), %r8d
	addl	$1, %eax
	movzbl	3(%r13), %edi
	movzbl	2(%r13), %esi
	shrl	$8, %eax
	addl	%edx, %eax
	movzbl	15(%r13), %edx
	movl	%eax, (%rsp)
	shrl	$8, %eax
	addl	%ecx, %eax
	movzbl	12(%r13), %ecx
	addl	$1, %edx
	movl	%eax, 28(%rsp)
	shrl	$8, %eax
	leal	(%rcx,%rax), %r14d
	movl	%r14d, %ecx
	shrl	$8, %ecx
	movl	%ecx, %eax
	movzbl	11(%r13), %ecx
	leal	(%rcx,%rax), %r15d
	movl	%r15d, %ecx
	movzbl	%r15b, %r15d
	shrl	$8, %ecx
	movl	%ecx, %eax
	movzbl	10(%r13), %ecx
	addl	%eax, %ecx
	movl	%ecx, 32(%rsp)
	shrl	$8, %ecx
	movl	%ecx, %eax
	movzbl	9(%r13), %ecx
	leal	(%rcx,%rax), %r10d
	movzbl	8(%r13), %ecx
	movzbl	7(%r13), %eax
	movl	%r10d, 36(%rsp)
	shrl	$8, %r10d
	leal	(%rcx,%r10), %r9d
	movzbl	6(%r13), %r10d
	movl	%r9d, 48(%rsp)
	shrl	$8, %r9d
	addl	%r9d, %eax
	movzbl	5(%r13), %r9d
	movl	%eax, %r11d
	movzbl	%al, %eax
	shrl	$8, %r11d
	salq	$8, %rax
	addl	%r11d, %r10d
	movl	%r10d, %r11d
	movzbl	%r10b, %r10d
	shrl	$8, %r11d
	orq	%r10, %rax
	addl	%r11d, %r9d
	salq	$8, %rax
	movl	%r9d, %r11d
	movzbl	%r9b, %r9d
	shrl	$8, %r11d
	addl	%r11d, %r8d
	movl	%r8d, %r11d
	movzbl	%r8b, %r8d
	shrl	$8, %r11d
	addl	%r11d, %edi
	movl	%edi, %r11d
	movzbl	%dil, %edi
	shrl	$8, %r11d
	addl	%r11d, %esi
	movl	%esi, %r11d
	movzbl	%sil, %esi
	shrl	$8, %r11d
	movl	%r11d, %ecx
	movzbl	1(%r13), %r11d
	addl	%r11d, %ecx
	movl	%ecx, %r11d
	shrl	$8, %r11d
	addb	0(%r13), %r11b
	orq	%r9, %rax
	salq	$8, %rax
	orq	%r8, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	salq	$8, %rax
	orq	%rsi, %rax
	movzbl	%cl, %esi
	salq	$8, %rax
	movq	%rax, %r8
	movzbl	%dl, %eax
	movzbl	(%rsp), %edx
	salq	$8, %rax
	orq	%rsi, %r8
	movzbl	%r11b, %esi
	orq	%rdx, %rax
	movzbl	28(%rsp), %edx
	movq	%r8, %rcx
	salq	$8, %rax
	salq	$8, %rcx
	orq	%rdx, %rax
	movzbl	%r14b, %edx
	orq	%rsi, %rcx
	salq	$8, %rax
	movq	%rcx, (%rsp)
	leal	1(%r12), %ecx
	orq	%rdx, %rax
	movzbl	32(%rsp), %edx
	salq	$8, %rax
	orq	%r15, %rax
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	36(%rsp), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	48(%rsp), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movq	%rax, 8(%rsp)
	movdqa	(%rsp), %xmm1
	movl	%r12d, %eax
	movups	%xmm1, 0(%r13)
	movq	16(%rsp), %rdi
	movq	40(%rsp), %r14
	movzbl	(%rdi,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, 0(%rbp,%rax)
	movq	%rbx, %rdx
	subq	$1, %rdx
	je	.L13616
	movl	%ecx, %eax
	movzbl	(%rdi,%rax), %esi
	xorb	(%r14,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	2(%r12), %eax
	cmpq	$1, %rdx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	3(%r12), %eax
	cmpq	$3, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	4(%r12), %eax
	cmpq	$4, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	5(%r12), %eax
	cmpq	$5, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	6(%r12), %eax
	cmpq	$6, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	7(%r12), %eax
	cmpq	$7, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	8(%r12), %eax
	cmpq	$8, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	9(%r12), %eax
	cmpq	$9, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	10(%r12), %eax
	cmpq	$10, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	11(%r12), %eax
	cmpq	$11, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	12(%r12), %eax
	cmpq	$12, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	13(%r12), %eax
	cmpq	$13, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
	leal	14(%r12), %eax
	cmpq	$14, %rbx
	je	.L13616
	movzbl	(%r14,%rax), %esi
	xorb	(%rdi,%rax), %sil
	movb	%sil, 0(%rbp,%rax)
.L13616:

	leal	(%rcx,%rdx), %r12d
.L13615:

	movq	144(%rsp), %rax
	movl	%r12d, (%rax)
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13617:

	.cfi_restore_state
	movq	%r14, 40(%rsp)
	jmp	.L13613
	.cfi_endproc
.LFE2554:

	.size	CRYPTO_ctr128_encrypt, .-CRYPTO_ctr128_encrypt
# WAS .section	.text.CRYPTO_ctr128_encrypt_ctr32,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_ctr128_encrypt_ctr32
	.hidden	CRYPTO_ctr128_encrypt_ctr32
	.type	CRYPTO_ctr128_encrypt_ctr32, @function
.LCRYPTO_ctr128_encrypt_ctr32_local_target:
CRYPTO_ctr128_encrypt_ctr32:
.LFB2556:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	96(%rsp), %rax
	movq	%rcx, 8(%rsp)
	movl	(%rax), %r13d
	testq	%rdx, %rdx
	je	.L13678
	testl	%r13d, %r13d
	je	.L13678
	.p2align 4,,10
	.p2align 3
.L13679:

	movl	%r13d, %eax
	addq	$1, %r14
	addq	$1, %r15
	addl	$1, %r13d
	movzbl	(%r9,%rax), %eax
	xorb	-1(%r14), %al
	subq	$1, %r12
	movb	%al, -1(%r15)
	andl	$15, %r13d
	je	.L13678
	testq	%r12, %r12
	jne	.L13679
.L13678:

	movl	12(%rbx), %ebp
	bswap	%ebp
	cmpq	$15, %r12
	jbe	.L13681
	movq	%r9, 24(%rsp)
	movl	%ebp, %eax
	movq	%r15, %rbp
	movq	%r14, %r15
	movq	%r12, %r14
	movq	%rbx, %r12
	.p2align 4,,10
	.p2align 3
.L13685:

	movabsq	$4294967311, %rsi
	cmpq	%r14, %rsi
	jb	.L13696
.L13749:

	movq	%r14, %rbx
	shrq	$4, %rbx
	movl	%ebx, %edx
	addl	%eax, %edx
	cmpq	%rbx, %rdx
	jnb	.L13683
.L13750:

	subq	%rdx, %rbx
	movq	%r15, %rdi
	movq	8(%rsp), %rcx
	movq	%r12, %r8
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	call	*104(%rsp)
	movzbl	11(%r12), %edx
	movzbl	10(%r12), %edi
	movl	$0, 12(%r12)
	movzbl	9(%r12), %ecx
	movzbl	6(%r12), %r11d
	movl	%edx, %eax
	addl	$1, %edx
	movzbl	5(%r12), %r10d
	movzbl	4(%r12), %r9d
	shrl	$8, %edx
	addl	$1, %eax
	addl	%edx, %edi
	movzbl	%al, %eax
	movl	%edi, %edx
	sall	$8, %eax
	movzbl	%dil, %edi
	shrl	$8, %edx
	orl	%edi, %eax
	movzbl	2(%r12), %edi
	addl	%edx, %ecx
	movzbl	8(%r12), %edx
	sall	$8, %eax
	movl	%ecx, %r8d
	movzbl	%cl, %ecx
	shrl	$8, %r8d
	orl	%ecx, %eax
	addl	%r8d, %edx
	sall	$8, %eax
	movzbl	3(%r12), %r8d
	movzbl	%dl, %ecx
	shrl	$8, %edx
	orl	%ecx, %eax
	movzbl	1(%r12), %ecx
	movl	%eax, 8(%r12)
	movzbl	7(%r12), %eax
	addl	%edx, %eax
	movl	%eax, %edx
	movzbl	%al, %eax
	shrl	$8, %edx
	addl	%edx, %r11d
	movl	%r11d, %edx
	movzbl	%r11b, %r11d
	shrl	$8, %edx
	addl	%edx, %r10d
	movl	%r10d, %edx
	movzbl	%r10b, %r10d
	shrl	$8, %edx
	addl	%edx, %r9d
	movl	%r9d, %edx
	movzbl	%r9b, %r9d
	shrl	$8, %edx
	addl	%edx, %r8d
	movl	%r8d, %edx
	movzbl	%r8b, %r8d
	shrl	$8, %edx
	addl	%edx, %edi
	movl	%edi, %edx
	movzbl	%dil, %edi
	shrl	$8, %edx
	addl	%edx, %ecx
	movl	%ecx, %edx
	movzbl	%cl, %ecx
	shrl	$8, %edx
	addb	(%r12), %dl
	salq	$8, %rax
	orq	%r11, %rax
	salq	$4, %rbx
	movzbl	%dl, %edx
	salq	$8, %rax
	subq	%rbx, %r14
	addq	%rbx, %rbp
	addq	%rbx, %r15
	orq	%r10, %rax
	salq	$8, %rax
	orq	%r9, %rax
	salq	$8, %rax
	orq	%r8, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	salq	$8, %rax
	orq	%rcx, %rax
	salq	$8, %rax
	orq	%rdx, %rax
	movq	%rax, (%r12)
	cmpq	$15, %r14
	jbe	.L13684
	movabsq	$4294967311, %rsi
	xorl	%eax, %eax
	cmpq	%r14, %rsi
	jnb	.L13749
.L13696:

	movl	$268435456, %edx
	movl	$268435456, %ebx
	addl	%eax, %edx
	cmpq	%rbx, %rdx
	jb	.L13750
.L13683:

	movl	%edx, 20(%rsp)
	movq	%rbp, %rsi
	movq	%rbx, %rdx
	movq	%r15, %rdi
	movq	8(%rsp), %rcx
	movq	%r12, %r8
	salq	$4, %rbx
	call	*104(%rsp)
	movl	20(%rsp), %eax
	subq	%rbx, %r14
	addq	%rbx, %rbp
	addq	%rbx, %r15
	movl	%eax, %edx
	bswap	%edx
	movl	%edx, 12(%r12)
	cmpq	$15, %r14
	ja	.L13685
	movq	24(%rsp), %r9
	movq	%r12, %rbx
	movq	%r14, %r12
	movq	%r15, %r14
	movq	%rbp, %r15
	movl	%eax, %ebp
.L13681:

	testq	%r12, %r12
	jne	.L13751
.L13687:

	movq	96(%rsp), %rax
	movl	%r13d, (%rax)
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13684:

	.cfi_restore_state
	movq	%r12, %rbx
	movq	%r14, %r12
	movq	24(%rsp), %r9
	movq	%r15, %r14
	movq	%rbp, %r15
	testq	%r12, %r12
	je	.L13687
	pxor	%xmm0, %xmm0
	movq	8(%rsp), %rcx
	movq	%r9, %rsi
	movq	%r9, %rdi
	movq	%r9, 8(%rsp)
	movq	%rbx, %r8
	movl	$1, %edx
	movups	%xmm0, (%r9)
	call	*104(%rsp)
	movl	$16777216, 12(%rbx)
	movq	8(%rsp), %r9
	jmp	.L13693
.L13751:

	pxor	%xmm0, %xmm0
	movq	8(%rsp), %rcx
	movq	%r9, %rsi
	movq	%r9, %rdi
	movq	%r9, 8(%rsp)
	movq	%rbx, %r8
	movl	$1, %edx
	movups	%xmm0, (%r9)
	call	*104(%rsp)
	addl	$1, %ebp
	movq	8(%rsp), %r9
	movl	%ebp, %eax
	bswap	%eax
	movl	%eax, 12(%rbx)
	jne	.L13693
	movzbl	11(%rbx), %edx
	movzbl	10(%rbx), %esi
	movzbl	9(%rbx), %ecx
	movzbl	6(%rbx), %r11d
	movl	%edx, %eax
	addl	$1, %edx
	movzbl	5(%rbx), %r10d
	movzbl	4(%rbx), %r8d
	shrl	$8, %edx
	addl	$1, %eax
	addl	%edx, %esi
	movzbl	%al, %eax
	movl	%esi, %edx
	sall	$8, %eax
	movzbl	%sil, %esi
	shrl	$8, %edx
	orl	%esi, %eax
	movzbl	2(%rbx), %esi
	addl	%edx, %ecx
	movzbl	8(%rbx), %edx
	sall	$8, %eax
	movl	%ecx, %edi
	movzbl	%cl, %ecx
	shrl	$8, %edi
	orl	%ecx, %eax
	addl	%edi, %edx
	sall	$8, %eax
	movzbl	3(%rbx), %edi
	movzbl	%dl, %ecx
	shrl	$8, %edx
	orl	%ecx, %eax
	movzbl	1(%rbx), %ecx
	movl	%eax, 8(%rbx)
	movzbl	7(%rbx), %eax
	addl	%edx, %eax
	movl	%eax, %edx
	movzbl	%al, %eax
	shrl	$8, %edx
	salq	$8, %rax
	addl	%edx, %r11d
	movl	%r11d, %edx
	movzbl	%r11b, %r11d
	shrl	$8, %edx
	orq	%r11, %rax
	addl	%edx, %r10d
	movl	%r10d, %edx
	movzbl	%r10b, %r10d
	shrl	$8, %edx
	addl	%edx, %r8d
	movl	%r8d, %edx
	movzbl	%r8b, %r8d
	shrl	$8, %edx
	addl	%edx, %edi
	movl	%edi, %edx
	movzbl	%dil, %edi
	shrl	$8, %edx
	addl	%edx, %esi
	movl	%esi, %edx
	movzbl	%sil, %esi
	shrl	$8, %edx
	addl	%edx, %ecx
	movl	%ecx, %edx
	movzbl	%cl, %ecx
	shrl	$8, %edx
	addb	(%rbx), %dl
	salq	$8, %rax
	orq	%r10, %rax
	movzbl	%dl, %edx
	salq	$8, %rax
	orq	%r8, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	salq	$8, %rax
	orq	%rsi, %rax
	salq	$8, %rax
	orq	%rcx, %rax
	salq	$8, %rax
	orq	%rdx, %rax
	movq	%rax, (%rbx)
.L13693:

	movl	%r13d, %eax
	movq	%r12, %rcx
	leal	1(%r13), %esi
	movzbl	(%r9,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, (%r15,%rax)
	subq	$1, %rcx
	je	.L13689
	movl	%esi, %eax
	movzbl	(%r9,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	2(%r13), %eax
	cmpq	$1, %rcx
	je	.L13689
	movzbl	(%r9,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	3(%r13), %eax
	cmpq	$3, %r12
	je	.L13689
	movzbl	(%r9,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	4(%r13), %eax
	cmpq	$4, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	5(%r13), %eax
	cmpq	$5, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	6(%r13), %eax
	cmpq	$6, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	7(%r13), %eax
	cmpq	$7, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	8(%r13), %eax
	cmpq	$8, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	9(%r13), %eax
	cmpq	$9, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	10(%r13), %eax
	cmpq	$10, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	11(%r13), %eax
	cmpq	$11, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	12(%r13), %eax
	cmpq	$12, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	13(%r13), %eax
	cmpq	$13, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	leal	14(%r13), %eax
	cmpq	$14, %r12
	je	.L13689
	movzbl	(%r14,%rax), %edx
	xorb	(%r9,%rax), %dl
	movb	%dl, (%r15,%rax)
	.p2align 4,,10
	.p2align 3
.L13689:

	leal	(%rsi,%rcx), %r13d
	jmp	.L13687
	.cfi_endproc
.LFE2556:

	.size	CRYPTO_ctr128_encrypt_ctr32, .-CRYPTO_ctr128_encrypt_ctr32
# WAS .section	.text.aes_ctr_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_ctr_cipher, @function
.Laes_ctr_cipher_local_target:
aes_ctr_cipher:
.LFB1160:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	movq	%rcx, %rdx
	movq	16(%rax), %rcx
	movq	256(%rcx), %r8
	testq	%r8, %r8
	je	.L13753
	pushq	%r8
	.cfi_def_cfa_offset 24
	leaq	104(%rax), %r8
	leaq	68(%rax), %r9
	pushq	%r8
	.cfi_def_cfa_offset 32
	leaq	52(%rax), %r8
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13753:

	.cfi_restore_state
	leaq	104(%rax), %r8
	pushq	248(%rcx)
	.cfi_def_cfa_offset 24
	leaq	68(%rax), %r9
	pushq	%r8
	.cfi_def_cfa_offset 32
	leaq	52(%rax), %r8
# WAS call	CRYPTO_ctr128_encrypt
	call	.LCRYPTO_ctr128_encrypt_local_target
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1160:

	.size	aes_ctr_cipher, .-aes_ctr_cipher
# WAS .section	.text.AES_ctr128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_ctr128_encrypt
	.type	AES_ctr128_encrypt, @function
.LAES_ctr128_encrypt_local_target:
AES_ctr128_encrypt:
.LFB795:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rdi, 8(%rsp)
	movq	80(%rsp), %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	8(%rsp), %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L13766
	testb	$2, %ah
	jne	.L13767
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
	pushq	%rax
	.cfi_def_cfa_offset 88
.L13765:

	pushq	%rbx
	.cfi_def_cfa_offset 96
	movq	%r15, %r9
	movq	%r14, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%rax
	.cfi_def_cfa_offset 88
	movl	$3, %edi
	popq	%rdx
	.cfi_def_cfa_offset 80
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L13768
.L13760:

	cmpq	$0, (%rbx)
	jne	.L13756
	addq	$1, 8(%rbx)
.L13756:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13767:

	.cfi_restore_state
# WAS pushq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip)
	pushq %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_remember_state
	.cfi_def_cfa_offset 88
	jmp	.L13765
	.p2align 4,,10
	.p2align 3
.L13766:

	.cfi_restore_state
# WAS pushq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip)
	pushq %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_remember_state
	.cfi_def_cfa_offset 88
	jmp	.L13765
	.p2align 4,,10
	.p2align 3
.L13768:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L13756
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L13760
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
	popq	%rbx
	.cfi_def_cfa_offset 48
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE795:

	.size	AES_ctr128_encrypt, .-AES_ctr128_encrypt
# WAS .section	.text.cipher_aes_ccm_cipher,"ax",@progbits
.text
	.p2align 4
	.type	cipher_aes_ccm_cipher, @function
.Lcipher_aes_ccm_cipher_local_target:
cipher_aes_ccm_cipher:
.LFB1306:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	testq	%rdx, %rdx
	jne	.L13794
	testq	%rsi, %rsi
	je	.L13794
.L13769:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L13908
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13794:

	.cfi_restore_state
	movq	16(%r15), %rbx
	movq	%rbx, %rax
	andl	$8, %eax
	addq	%rax, %rbx
	cmpb	$0, 305(%rbx)
	je	.L13790
	cmpb	$0, 304(%rbx)
	je	.L13790
	leaq	272(%rbx), %r13
	testq	%rbp, %rbp
	je	.L13909
	movq	%r15, %rdi
# WAS call	EVP_CIPHER_CTX_encrypting@PLT
	call	.LEVP_CIPHER_CTX_encrypting_local_target
	testl	%eax, %eax
	je	.L13910
.L13777:

	cmpb	$0, 307(%rbx)
	je	.L13790
	cmpb	$0, 308(%rbx)
	jne	.L13778
	movl	$15, %eax
	subl	312(%rbx), %eax
	movl	268(%rbx), %edx
	leaq	344(%rbx), %r9
	movl	264(%rbx), %esi
	movq	248(%rbx), %rdi
	movq	%rbx, %r8
	movq	%r13, %rcx
	pushq	320(%rbx)
	.cfi_def_cfa_offset 136
	pushq	$0
	.cfi_def_cfa_offset 144
	pushq	$0
	.cfi_def_cfa_offset 152
	pushq	%rax
	.cfi_def_cfa_offset 160
# WAS call	ccm128_init_state.isra.0
	call	.Lccm128_init_state.isra.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L13790
	movb	$1, 308(%rbx)
.L13778:

	leaq	248(%rbx), %rax
	movq	%r15, %rdi
	movq	%rax, 8(%rsp)
# WAS call	EVP_CIPHER_CTX_encrypting@PLT
	call	.LEVP_CIPHER_CTX_encrypting_local_target
	testl	%eax, %eax
	je	.L13779
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movq	%rbx, %rdx
	movq	%r14, %r9
	movq	%r13, %rsi
	movl	316(%rbx), %r8d
	pushq	%r12
	.cfi_def_cfa_offset 144
	leaq	328(%rbx), %rcx
	movq	24(%rsp), %rdi
# WAS call	ccm128_compute_mac
	call	.Lccm128_compute_mac_local_target
	popq	%r15
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L13790
	movl	268(%rbx), %eax
	testl	%eax, %eax
	je	.L13780
	movb	$0, 287(%rbx)
	cmpl	$1, %eax
	je	.L13780
	movb	$0, 286(%rbx)
	cmpl	$2, %eax
	je	.L13780
	movb	$0, 285(%rbx)
	cmpl	$3, %eax
	je	.L13780
	movb	$0, 284(%rbx)
	cmpl	$4, %eax
	je	.L13780
	movb	$0, 283(%rbx)
	cmpl	$5, %eax
	je	.L13780
	movb	$0, 282(%rbx)
	cmpl	$6, %eax
	je	.L13780
	movb	$0, 281(%rbx)
	cmpl	$7, %eax
	je	.L13780
	movb	$0, 280(%rbx)
	cmpl	$8, %eax
	je	.L13780
	movb	$0, 279(%rbx)
	cmpl	$9, %eax
	je	.L13780
	movb	$0, 278(%rbx)
	cmpl	$10, %eax
	je	.L13780
	movb	$0, 277(%rbx)
	cmpl	$11, %eax
	je	.L13780
	movb	$0, 276(%rbx)
	cmpl	$12, %eax
	je	.L13780
	movb	$0, 275(%rbx)
	cmpl	$13, %eax
	je	.L13780
	movb	$0, 274(%rbx)
	cmpl	$14, %eax
	je	.L13780
	movb	$0, 273(%rbx)
	cmpl	$15, %eax
	je	.L13780
	movb	$0, 272(%rbx)
	.p2align 4,,10
	.p2align 3
.L13780:

	movq	256(%rbx), %rax
	movb	$1, 287(%rbx)
	movl	$0, 28(%rsp)
	testq	%rax, %rax
	je	.L13782
	pushq	%rax
	.cfi_def_cfa_offset 136
	movq	%r13, %r8
	movq	%rbp, %rsi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%r14, %rdi
	leaq	36(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 144
	leaq	48(%rsp), %r9
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%rbp
	.cfi_def_cfa_offset 136
	popq	%r13
	.cfi_def_cfa_offset 128
.L13783:

	movb	$1, 306(%rbx)
	jmp	.L13784
	.p2align 4,,10
	.p2align 3
.L13909:

	testq	%r14, %r14
	je	.L13911
	cmpb	$0, 307(%rbx)
	jne	.L13795
	testq	%r12, %r12
	jne	.L13790
.L13795:

	movl	$15, %eax
	subl	312(%rbx), %eax
	movl	268(%rbx), %edx
	leaq	344(%rbx), %r9
	movl	264(%rbx), %esi
	movq	248(%rbx), %rdi
	movq	%rbx, %r8
	movq	%r13, %rcx
	pushq	320(%rbx)
	.cfi_def_cfa_offset 136
	pushq	%r12
	.cfi_def_cfa_offset 144
	pushq	%r14
	.cfi_def_cfa_offset 152
	pushq	%rax
	.cfi_def_cfa_offset 160
# WAS call	ccm128_init_state.isra.0
	call	.Lccm128_init_state.isra.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L13790
	movb	$1, 308(%rbx)
	movl	%r12d, %eax
	jmp	.L13769
	.p2align 4,,10
	.p2align 3
.L13910:

	cmpb	$0, 306(%rbx)
	jne	.L13777
	.p2align 4,,10
	.p2align 3
.L13790:

	movl	$-1, %eax
	jmp	.L13769
	.p2align 4,,10
	.p2align 3
.L13779:

	movl	268(%rbx), %eax
	testl	%eax, %eax
	je	.L13785
	movb	$0, 287(%rbx)
	cmpl	$1, %eax
	je	.L13785
	movb	$0, 286(%rbx)
	cmpl	$2, %eax
	je	.L13785
	movb	$0, 285(%rbx)
	cmpl	$3, %eax
	je	.L13785
	movb	$0, 284(%rbx)
	cmpl	$4, %eax
	je	.L13785
	movb	$0, 283(%rbx)
	cmpl	$5, %eax
	je	.L13785
	movb	$0, 282(%rbx)
	cmpl	$6, %eax
	je	.L13785
	movb	$0, 281(%rbx)
	cmpl	$7, %eax
	je	.L13785
	movb	$0, 280(%rbx)
	cmpl	$8, %eax
	je	.L13785
	movb	$0, 279(%rbx)
	cmpl	$9, %eax
	je	.L13785
	movb	$0, 278(%rbx)
	cmpl	$10, %eax
	je	.L13785
	movb	$0, 277(%rbx)
	cmpl	$11, %eax
	je	.L13785
	movb	$0, 276(%rbx)
	cmpl	$12, %eax
	je	.L13785
	movb	$0, 275(%rbx)
	cmpl	$13, %eax
	je	.L13785
	movb	$0, 274(%rbx)
	cmpl	$14, %eax
	je	.L13785
	movb	$0, 273(%rbx)
	cmpl	$15, %eax
	je	.L13785
	movb	$0, 272(%rbx)
	.p2align 4,,10
	.p2align 3
.L13785:

	movq	256(%rbx), %rax
	movb	$1, 287(%rbx)
	leaq	32(%rsp), %r15
	movl	$0, 28(%rsp)
	testq	%rax, %rax
	je	.L13787
	pushq	%rax
	.cfi_def_cfa_offset 136
	movq	%r15, %r9
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
	leaq	36(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 144
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%r8
	.cfi_def_cfa_offset 136
	popq	%r9
	.cfi_def_cfa_offset 128
.L13788:

	pxor	%xmm0, %xmm0
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movq	%r15, %rcx
	movq	%rbx, %rdx
	movaps	%xmm0, 40(%rsp)
	movl	316(%rbx), %r8d
	movq	%rbp, %r9
	movq	%r13, %rsi
	pushq	%r12
	.cfi_def_cfa_offset 144
	movq	24(%rsp), %rdi
# WAS call	ccm128_compute_mac
	call	.Lccm128_compute_mac_local_target
	popq	%rdx
	.cfi_def_cfa_offset 136
	popq	%rcx
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L13791
	movl	316(%rbx), %edx
	leaq	328(%rbx), %rdi
	movq	%r15, %rsi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L13791
	movl	$0, 305(%rbx)
.L13784:

	movl	%r12d, %eax
	jmp	.L13769
	.p2align 4,,10
	.p2align 3
.L13911:

	movq	%r12, 320(%rbx)
	movl	%r12d, %eax
	movb	$1, 307(%rbx)
	jmp	.L13769
	.p2align 4,,10
	.p2align 3
.L13787:

	pushq	248(%rbx)
	.cfi_def_cfa_offset 136
	movq	%rbp, %rsi
	movq	%r14, %rdi
	movq	%r15, %r9
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdx
	leaq	36(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 144
# WAS call	CRYPTO_ctr128_encrypt
	call	.LCRYPTO_ctr128_encrypt_local_target
	popq	%rsi
	.cfi_def_cfa_offset 136
	popq	%rdi
	.cfi_def_cfa_offset 128
	jmp	.L13788
	.p2align 4,,10
	.p2align 3
.L13782:

	pushq	248(%rbx)
	.cfi_def_cfa_offset 136
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
	leaq	36(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 144
	leaq	48(%rsp), %r9
# WAS call	CRYPTO_ctr128_encrypt
	call	.LCRYPTO_ctr128_encrypt_local_target
	popq	%r10
	.cfi_def_cfa_offset 136
	popq	%r11
	.cfi_def_cfa_offset 128
	jmp	.L13783
.L13791:

	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L13790
.L13908:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1306:

	.size	cipher_aes_ccm_cipher, .-cipher_aes_ccm_cipher
# WAS .section	.text.gcm_init_ssse3,"ax",@progbits
.text
	.p2align 4
	.globl	gcm_init_ssse3
	.hidden	gcm_init_ssse3
	.type	gcm_init_ssse3, @function
.Lgcm_init_ssse3_local_target:
gcm_init_ssse3:
.LFB2558:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movabsq	$-2233785415175766016, %rbx
	movups	%xmm0, (%rdi)
	movq	8(%rsi), %r8
	movq	(%rsi), %rdi
	movq	%r8, %rdx
	movq	%r8, %rsi
	movq	%rdi, %rcx
	movq	%r8, 128(%rax)
	andl	$1, %edx
	shrdq	$1, %rdi, %rsi
	movq	%rdi, 136(%rax)
	negq	%rdx
	shrq	%rcx
	movq	%rsi, %r9
	movq	%rsi, 64(%rax)
	andq	%rbx, %rdx
	xorq	%rcx, %rdx
	movq	%rsi, %rcx
	andl	$1, %ecx
	movq	%rdx, %r10
	shrdq	$1, %rdx, %r9
	movq	%rdx, 72(%rax)
	negq	%rcx
	shrq	%r10
	movq	%r9, %r11
	movq	%r9, %r14
	andq	%rbx, %rcx
	xorq	%rsi, %r14
	movq	%r9, 32(%rax)
	xorq	%r10, %rcx
	movq	%r9, %r10
	movq	%r14, 96(%rax)
	andl	$1, %r10d
	shrdq	$1, %rcx, %r11
	movq	%rcx, %r15
	movq	%rcx, 40(%rax)
	negq	%r10
	movq	%r11, %rbp
	xorq	%rdx, %r15
	movq	%r14, -16(%rsp)
	andq	%rbx, %r10
	movq	%rcx, %rbx
	xorq	%r9, %rbp
	movq	%r15, 104(%rax)
	shrq	%rbx
	movq	%r15, -8(%rsp)
	movq	%r11, %r13
	movq	%rbp, %r15
	xorq	%rbx, %r10
	movq	%rbp, 48(%rax)
	xorq	%rsi, %r13
	xorq	%rsi, %r15
	movq	%r10, %rbx
	movq	%r10, %r12
	movq	%r10, 24(%rax)
	xorq	%r8, %r9
	xorq	%rcx, %rbx
	xorq	%rdx, %r12
	xorq	%rdi, %rcx
	xorq	%rdi, %r10
	movq	%r12, 88(%rax)
	movq	%rbx, %r14
	xorq	%r8, %rbp
	movq	%r12, -24(%rsp)
	movq	%r8, %r12
	xorq	%rdx, %r14
	movq	%rbx, 56(%rax)
	xorq	%r11, %r12
	xorq	%rdi, %rbx
	xorq	%r8, %rsi
	xorq	%rdi, %rdx
	movq	%r13, 80(%rax)
	xorq	%r8, %r13
	movq	%r11, 16(%rax)
	movq	%r15, 112(%rax)
	movq	%rdx, 200(%rax)
	movq	-16(%rsp), %rdx
	movq	%r12, 144(%rax)
	movq	-24(%rsp), %r12
	xorq	%r8, %rdx
	xorq	%r15, %r8
	movq	%rcx, 168(%rax)
	movl	$2, %ecx
	movq	%rdx, 224(%rax)
	movq	-8(%rsp), %rdx
	xorq	%rdi, %r12
	movq	%r14, 120(%rax)
	xorq	%rdi, %rdx
	xorq	%r14, %rdi
	movq	%r10, 152(%rax)
	movq	%rdx, 232(%rax)
	movzbl	1(%rax), %edx
	movq	%r9, 160(%rax)
	movb	%dl, 16(%rax)
	leaq	32(%rax), %rdx
	addq	$2, %rax
	movq	%rbp, 174(%rax)
	movq	%rbx, 182(%rax)
	movq	%rsi, 190(%rax)
	movq	%r13, 206(%rax)
	movq	%r12, 214(%rax)
	movq	%r8, 238(%rax)
	movq	%rdi, 246(%rax)
	movb	%r11b, -1(%rax)
	.p2align 4,,10
	.p2align 3
.L13913:

	movzbl	(%rdx), %esi
	movzbl	(%rax), %edi
	movb	%dil, (%rdx)
	movzbl	16(%rax), %edi
	movb	%sil, (%rax)
	movzbl	1(%rdx), %esi
	movb	%dil, 1(%rdx)
	movb	%sil, 16(%rax)
	cmpl	$2, %ecx
	je	.L13932
	movzbl	2(%rdx), %esi
	movzbl	32(%rax), %edi
	movb	%dil, 2(%rdx)
	movb	%sil, 32(%rax)
	cmpl	$3, %ecx
	je	.L13933
	movzbl	3(%rdx), %esi
	movzbl	48(%rax), %edi
	movb	%dil, 3(%rdx)
	movb	%sil, 48(%rax)
	cmpl	$4, %ecx
	je	.L13934
	movzbl	4(%rdx), %esi
	movzbl	64(%rax), %edi
	movb	%dil, 4(%rdx)
	movb	%sil, 64(%rax)
	cmpl	$5, %ecx
	je	.L13935
	movzbl	5(%rdx), %esi
	movzbl	80(%rax), %edi
	movb	%dil, 5(%rdx)
	movb	%sil, 80(%rax)
	cmpl	$6, %ecx
	je	.L13936
	movzbl	6(%rdx), %esi
	movzbl	96(%rax), %edi
	movb	%dil, 6(%rdx)
	movb	%sil, 96(%rax)
	cmpl	$7, %ecx
	je	.L13937
	movzbl	7(%rdx), %esi
	movzbl	112(%rax), %edi
	movb	%dil, 7(%rdx)
	movb	%sil, 112(%rax)
	cmpl	$8, %ecx
	je	.L13938
	movzbl	8(%rdx), %esi
	movzbl	128(%rax), %edi
	movb	%dil, 8(%rdx)
	movb	%sil, 128(%rax)
	cmpl	$9, %ecx
	je	.L13939
	movzbl	9(%rdx), %esi
	movzbl	144(%rax), %edi
	movb	%dil, 9(%rdx)
	movb	%sil, 144(%rax)
	cmpl	$10, %ecx
	je	.L13940
	movzbl	10(%rdx), %esi
	movzbl	160(%rax), %edi
	movb	%dil, 10(%rdx)
	movb	%sil, 160(%rax)
	cmpl	$11, %ecx
	je	.L13941
	movzbl	11(%rdx), %esi
	movzbl	176(%rax), %edi
	movb	%dil, 11(%rdx)
	movb	%sil, 176(%rax)
	cmpl	$12, %ecx
	je	.L13942
	movzbl	12(%rdx), %esi
	movzbl	192(%rax), %edi
	movb	%dil, 12(%rdx)
	movb	%sil, 192(%rax)
	cmpl	$13, %ecx
	je	.L13943
	movzbl	13(%rdx), %esi
	movzbl	208(%rax), %edi
	movb	%dil, 13(%rdx)
	movb	%sil, 208(%rax)
	cmpl	$15, %ecx
	jne	.L13944
	movzbl	14(%rdx), %ecx
	movzbl	224(%rax), %esi
	movb	%sil, 14(%rdx)
	movb	%cl, 224(%rax)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L13932:

	.cfi_restore_state
	addq	$16, %rdx
	addq	$1, %rax
	movl	$3, %ecx
	jmp	.L13913
.L13933:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$4, %ecx
	jmp	.L13913
.L13934:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$5, %ecx
	jmp	.L13913
.L13935:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$6, %ecx
	jmp	.L13913
.L13936:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$7, %ecx
	jmp	.L13913
.L13937:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$8, %ecx
	jmp	.L13913
.L13938:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$9, %ecx
	jmp	.L13913
.L13939:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$10, %ecx
	jmp	.L13913
.L13940:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$11, %ecx
	jmp	.L13913
.L13941:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$12, %ecx
	jmp	.L13913
.L13942:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$13, %ecx
	jmp	.L13913
.L13943:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$14, %ecx
	jmp	.L13913
.L13944:

	addq	$16, %rdx
	addq	$1, %rax
	movl	$15, %ecx
	jmp	.L13913
	.cfi_endproc
.LFE2558:

	.size	gcm_init_ssse3, .-gcm_init_ssse3
# WAS .section	.text.CRYPTO_ghash_init,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_ghash_init
	.hidden	CRYPTO_ghash_init
	.type	CRYPTO_ghash_init, @function
.LCRYPTO_ghash_init_local_target:
CRYPTO_ghash_init:
.LFB2561:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movl	$0, (%rcx)
	movq	8(%r8), %rdx
	movq	(%r8), %r13
	movq	%rdx, %rcx
	movq	%rdx, 8(%rsp)
	movq	%r13, %r15
	bswap	%rcx
	movq	%rcx, 24(%rsp)
	movq	%rcx, (%rsp)
	bswap	%r15
	movq	%r15, 16(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %rdx
	movl	12(%rax), %esi
	testl	$512, %esi
	je	.L13946
	movl	8(%rax), %edi
	notl	%edi
	andl	$-1073545216, %edi
	je	.L13947
.L13946:

	movl	4(%rax), %esi
	movl	(%rax), %eax
	testl	$16777216, %eax
	je	.L13949
	testb	$2, %sil
	je	.L13949
	notl	%esi
	movq	%r14, %rdi
	andl	$272629760, %esi
	leaq	16(%rsp), %rsi
	je	.L13965
# WAS call	gcm_init_clmul@PLT
	call	.Lgcm_init_clmul_local_target
# WAS movq	gcm_gmult_clmul@GOTPCREL(%rip), %rax
	leaq	.Lgcm_gmult_clmul_local_target(%rip), %rax
	movq	%rax, (%r12)
# WAS movq	gcm_ghash_clmul@GOTPCREL(%rip), %rax
	leaq	.Lgcm_ghash_clmul_local_target(%rip), %rax
	movq	%rax, 0(%rbp)
	jmp	.L13945
	.p2align 4,,10
	.p2align 3
.L13949:

	andl	$512, %esi
	jne	.L13966
	movl	%r13d, %eax
	addq	%rcx, %rcx
	shrb	$7, %dl
	addq	%r15, %r15
	shrb	$7, %al
	sarb	$7, %r13b
	movzbl	%dl, %edx
	movzbl	%al, %eax
	movsbq	%r13b, %r13
	orq	%rdx, %r15
	xorq	%rax, %rcx
	movabsq	$-4467570830351532032, %rax
	andq	%rax, %r13
# WAS leaq	gcm_gmult_nohw(%rip), %rax
	leaq	.Lgcm_gmult_nohw_local_target(%rip), %rax
	movq	%rcx, 8(%r14)
	xorq	%r13, %r15
	movq	%r15, (%r14)
	movq	%rax, (%r12)
# WAS leaq	gcm_ghash_nohw(%rip), %rax
	leaq	.Lgcm_ghash_nohw_local_target(%rip), %rax
	movq	%rax, 0(%rbp)
.L13945:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13967
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13947:

	.cfi_restore_state
	andl	$1024, %esi
	je	.L13946
	leaq	16(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	gcm_init_avx512@PLT
	call	.Lgcm_init_avx512_local_target
# WAS movq	gcm_gmult_avx512@GOTPCREL(%rip), %rax
	leaq	.Lgcm_gmult_avx512_local_target(%rip), %rax
	movq	%rax, (%r12)
# WAS movq	gcm_ghash_avx512@GOTPCREL(%rip), %rax
	leaq	.Lgcm_ghash_avx512_local_target(%rip), %rax
	movq	%rax, 0(%rbp)
	movl	$1, (%rbx)
	jmp	.L13945
	.p2align 4,,10
	.p2align 3
.L13966:

	leaq	16(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	gcm_init_ssse3
	call	.Lgcm_init_ssse3_local_target
# WAS movq	gcm_gmult_ssse3@GOTPCREL(%rip), %rax
	leaq	.Lgcm_gmult_ssse3_local_target(%rip), %rax
	movq	%rax, (%r12)
# WAS movq	gcm_ghash_ssse3@GOTPCREL(%rip), %rax
	leaq	.Lgcm_ghash_ssse3_local_target(%rip), %rax
	movq	%rax, 0(%rbp)
	jmp	.L13945
	.p2align 4,,10
	.p2align 3
.L13965:

# WAS call	gcm_init_avx@PLT
	call	.Lgcm_init_avx_local_target
# WAS movq	gcm_gmult_avx@GOTPCREL(%rip), %rax
	leaq	.Lgcm_gmult_avx_local_target(%rip), %rax
	movq	%rax, (%r12)
# WAS movq	gcm_ghash_avx@GOTPCREL(%rip), %rax
	leaq	.Lgcm_ghash_avx_local_target(%rip), %rax
	movq	%rax, 0(%rbp)
	movl	$1, (%rbx)
	jmp	.L13945
.L13967:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2561:

	.size	CRYPTO_ghash_init, .-CRYPTO_ghash_init
# WAS .section	.text.CRYPTO_gcm128_init_key,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_init_key
	.type	CRYPTO_gcm128_init_key, @function
.LCRYPTO_gcm128_init_key_local_target:
CRYPTO_gcm128_init_key:
.LFB2562:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pxor	%xmm0, %xmm0
	movq	%rdx, %r9
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movl	%ecx, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	addq	$8, %rdi
	movq	%rbx, %rcx
	subq	$48, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movq	$0, -8(%rdi)
	leaq	16(%rsp), %r12
	movq	$0, 272(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$288, %ecx
	shrl	$3, %ecx
	rep stosq
	movq	%rdx, 272(%rbx)
	movq	%r12, %rdi
	movq	%rsi, %rdx
	movaps	%xmm0, 16(%rsp)
	movq	%r12, %rsi
	call	*%r9
	movq	%rbx, %rdx
	leaq	12(%rsp), %rcx
	movq	%r12, %r8
	leaq	264(%rbx), %rsi
	leaq	256(%rbx), %rdi
# WAS call	CRYPTO_ghash_init
	call	.LCRYPTO_ghash_init_local_target
	movl	12(%rsp), %eax
	testl	%eax, %eax
	setne	%dl
	testl	%ebp, %ebp
	setne	%al
	andl	%eax, %edx
	movzbl	280(%rbx), %eax
	andl	$-2, %eax
	orl	%edx, %eax
	movb	%al, 280(%rbx)
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L13971
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L13971:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2562:

	.size	CRYPTO_gcm128_init_key, .-CRYPTO_gcm128_init_key
# WAS .section	.text.aes_ctr_set_key,"ax",@progbits
.text
	.p2align 4
	.globl	aes_ctr_set_key
	.hidden	aes_ctr_set_key
	.type	aes_ctr_set_key, @function
.Laes_ctr_set_key_local_target:
aes_ctr_set_key:
.LFB1162:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%r8, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leal	0(,%rbx,8), %esi
	movq	%r14, %rdx
	movq	%rbp, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L13999
	testb	$2, %ah
	jne	.L14000
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
	testq	%r13, %r13
	je	.L13980
	xorl	%ecx, %ecx
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
.L13980:

	testq	%r12, %r12
	je	.L13982
# WAS leaq	aes_nohw_encrypt(%rip), %rax
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rax
	movq	%rax, (%r12)
.L13982:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14000:

	.cfi_restore_state
# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
	testq	%r12, %r12
	je	.L13978
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_encrypt_local_target(%rip), %rax
	movq	%rax, (%r12)
.L13978:

	testq	%r13, %r13
	je	.L13979
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
	xorl	%ecx, %ecx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
.L13979:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L13999:

	.cfi_restore_state
# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
	testq	%r13, %r13
	je	.L13974
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
	movl	$1, %ecx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
.L13974:

	testq	%r12, %r12
	je	.L13975
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_encrypt_local_target(%rip), %rax
	movq	%rax, (%r12)
.L13975:

	popq	%rbx
	.cfi_def_cfa_offset 40
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1162:

	.size	aes_ctr_set_key, .-aes_ctr_set_key
# WAS .section	.text.aead_aes_gcm_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_init, @function
.Laead_aes_gcm_init_local_target:
aead_aes_gcm_init:
.LFB1238:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	0(,%rdx,8), %rax
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	movq	%rax, %rdx
	andq	$-65, %rdx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	cmpq	$128, %rdx
	je	.L14002
	cmpq	$256, %rax
	jne	.L14018
.L14002:

	testq	%rcx, %rcx
	je	.L14010
	cmpq	$16, %rcx
	ja	.L14005
	movl	%ecx, %r12d
.L14004:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbp), %r13
	leaq	256(%rbp), %r14
	movq	%r15, %rdi
	movl	4(%rax), %eax
	leal	0(,%rbx,8), %esi
	movq	%r13, %rdx
	testl	$33554432, %eax
	jne	.L14019
	testb	$2, %ah
	jne	.L14020
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L14008:

	movq	%rax, 544(%rbp)
	movl	$1, %eax
	movb	%r12b, 577(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14010:

	.cfi_restore_state
	movl	$16, %r12d
	jmp	.L14004
	.p2align 4,,10
	.p2align 3
.L14018:

	movl	$1095, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L14021:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14005:

	.cfi_restore_state
	movl	$1104, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14021
	.p2align 4,,10
	.p2align 3
.L14020:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14008
	.p2align 4,,10
	.p2align 3
.L14019:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
	movl	$1, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14008
	.cfi_endproc
.LFE1238:

	.size	aead_aes_gcm_init, .-aead_aes_gcm_init
# WAS .section	.text.aead_aes_gcm_tls12_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls12_init, @function
.Laead_aes_gcm_tls12_init_local_target:
aead_aes_gcm_tls12_init:
.LFB1262:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	0(,%rdx,8), %rax
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	movq	%rax, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	andq	$-65, %rdx
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movq	$0, 552(%rdi)
	cmpq	$128, %rdx
	je	.L14023
	cmpq	$256, %rax
	jne	.L14039
.L14023:

	testq	%rcx, %rcx
	je	.L14031
	cmpq	$16, %rcx
	ja	.L14026
	movl	%ecx, %r12d
.L14025:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbx), %r13
	leaq	256(%rbx), %r14
	movq	%r15, %rdi
	movl	4(%rax), %eax
	leal	0(,%rbp,8), %esi
	movq	%r13, %rdx
	testl	$33554432, %eax
	jne	.L14040
	testb	$2, %ah
	jne	.L14041
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L14029:

	movq	%rax, 544(%rbx)
	movl	$1, %eax
	movb	%r12b, 577(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14031:

	.cfi_restore_state
	movl	$16, %r12d
	jmp	.L14025
	.p2align 4,,10
	.p2align 3
.L14039:

	movl	$1095, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L14042:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14026:

	.cfi_restore_state
	movl	$1104, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14042
	.p2align 4,,10
	.p2align 3
.L14041:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14029
	.p2align 4,,10
	.p2align 3
.L14040:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
	movl	$1, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14029
	.cfi_endproc
.LFE1262:

	.size	aead_aes_gcm_tls12_init, .-aead_aes_gcm_tls12_init
# WAS .section	.text.aead_aes_gcm_tls13_init,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls13_init, @function
.Laead_aes_gcm_tls13_init_local_target:
aead_aes_gcm_tls13_init:
.LFB1270:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	0(,%rdx,8), %rax
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	movq	%rax, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	andq	$-65, %rdx
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movb	$1, 568(%rdi)
	movq	$0, 552(%rdi)
	cmpq	$128, %rdx
	je	.L14044
	cmpq	$256, %rax
	jne	.L14060
.L14044:

	testq	%rcx, %rcx
	je	.L14052
	cmpq	$16, %rcx
	ja	.L14047
	movl	%ecx, %r12d
.L14046:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%rbx), %r13
	leaq	256(%rbx), %r14
	movq	%r15, %rdi
	movl	4(%rax), %eax
	leal	0(,%rbp,8), %esi
	movq	%r13, %rdx
	testl	$33554432, %eax
	jne	.L14061
	testb	$2, %ah
	jne	.L14062
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L14050:

	movq	%rax, 544(%rbx)
	movl	$1, %eax
	movb	%r12b, 577(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14052:

	.cfi_restore_state
	movl	$16, %r12d
	jmp	.L14046
	.p2align 4,,10
	.p2align 3
.L14060:

	movl	$1095, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L14063:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14047:

	.cfi_restore_state
	movl	$1104, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14063
	.p2align 4,,10
	.p2align 3
.L14062:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14050
	.p2align 4,,10
	.p2align 3
.L14061:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
	movl	$1, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14050
	.cfi_endproc
.LFE1270:

	.size	aead_aes_gcm_tls13_init, .-aead_aes_gcm_tls13_init
# WAS .section	.text.aead_aes_gcm_init_randnonce,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_init_randnonce, @function
.Laead_aes_gcm_init_randnonce_local_target:
aead_aes_gcm_init_randnonce:
.LFB1253:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rcx, %rcx
	je	.L14085
	cmpq	$11, %rcx
	jbe	.L14086
	leaq	0(,%rdx,8), %rax
	subq	$12, %rcx
	movq	%rax, %rdx
	andq	$-65, %rdx
	cmpq	$128, %rdx
	jne	.L14087
.L14070:

	testq	%rcx, %rcx
	je	.L14077
	cmpq	$16, %rcx
	ja	.L14071
	leal	12(%rcx), %ebx
.L14066:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	leaq	8(%r12), %r13
	movq	%r15, %rdi
	leaq	256(%r12), %r14
	movl	4(%rax), %eax
	leal	0(,%rbp,8), %esi
	movq	%r13, %rdx
	testl	$33554432, %eax
	jne	.L14088
	testb	$2, %ah
	jne	.L14089
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L14074:

	movb	%bl, 577(%r12)
	movq	%rax, 544(%r12)
	movl	$1, %eax
.L14064:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14087:

	.cfi_restore_state
	cmpq	$256, %rax
	je	.L14070
	jmp	.L14067
	.p2align 4,,10
	.p2align 3
.L14085:

	leaq	0(,%rdx,8), %rax
	movq	%rax, %rdx
	andq	$-65, %rdx
	cmpq	$128, %rdx
	je	.L14077
	cmpq	$256, %rax
	je	.L14077
.L14067:

	movl	$1095, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14064
	.p2align 4,,10
	.p2align 3
.L14077:

	movl	$28, %ebx
	jmp	.L14066
	.p2align 4,,10
	.p2align 3
.L14089:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
	xorl	%ecx, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14074
	.p2align 4,,10
	.p2align 3
.L14086:

	movl	$1326, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14064
	.p2align 4,,10
	.p2align 3
.L14088:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
	movl	$1, %ecx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS call	CRYPTO_gcm128_init_key@PLT
	call	.LCRYPTO_gcm128_init_key_local_target
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L14074
	.p2align 4,,10
	.p2align 3
.L14071:

	movl	$1104, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L14064
	.cfi_endproc
.LFE1253:

	.size	aead_aes_gcm_init_randnonce, .-aead_aes_gcm_init_randnonce
# WAS .section	.text.CRYPTO_gcm128_setiv,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_setiv
	.type	CRYPTO_gcm128_setiv, @function
.LCRYPTO_gcm128_setiv_local_target:
CRYPTO_gcm128_setiv:
.LFB2563:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pxor	%xmm0, %xmm0
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	336(%rdi), %r13
	movq	%rsi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movups	%xmm0, (%rdi)
	movups	%xmm0, 64(%rdi)
	pxor	%xmm0, %xmm0
	movq	$0, 368(%rdi)
	movaps	%xmm0, 48(%rdi)
	testb	$1, 360(%rdi)
	je	.L14091
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	12(%rax), %ecx
	testb	$2, %ch
	jne	.L14167
.L14091:

	cmpq	$12, %rbp
	je	.L14168
	cmpq	$15, %rbp
	jbe	.L14108
	leaq	-16(%rbp), %rax
	leaq	80(%rbx), %r14
	andq	$-16, %rax
	leaq	16(%r15,%rax), %r12
	xorl	%eax, %eax
	jmp	.L14097
	.p2align 4,,10
	.p2align 3
.L14096:

	movq	(%rbx), %rax
.L14097:

	xorq	(%r15), %rax
	addq	$16, %r15
	movq	%r14, %rsi
	movq	%rbx, %rdi
	movq	%rax, (%rbx)
	movq	-8(%r15), %rax
	xorq	%rax, 8(%rbx)
	call	*%r13
	cmpq	%r12, %r15
	jne	.L14096
	movq	%rbp, %rax
	andl	$15, %eax
.L14095:

	testq	%rax, %rax
	jne	.L14169
.L14098:

	salq	$3, %rbp
	movdqu	(%rbx), %xmm0
	movq	%r14, %rsi
	movq	%rbx, %rdi
	movq	$0, 16(%rsp)
	bswap	%rbp
	movq	%rbp, 24(%rsp)
	pxor	16(%rsp), %xmm0
	movups	%xmm0, (%rbx)
	call	*%r13
	movl	12(%rbx), %ebp
	bswap	%ebp
	addl	$1, %ebp
.L14094:

	movq	8(%rsp), %rdx
	leaq	32(%rbx), %rsi
	movq	%rbx, %rdi
	bswap	%ebp
	call	*352(%rbx)
	movl	%ebp, 12(%rbx)
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L14165
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14169:

	.cfi_restore_state
	leaq	-1(%rax), %rcx
	cmpq	$2, %rcx
	jbe	.L14099
	leaq	-1(%rbx), %rdx
	subq	%r12, %rdx
	cmpq	$6, %rdx
	ja	.L14170
	movzbl	(%r12), %edx
	xorb	%dl, (%rbx)
	movzbl	1(%r12), %edx
	xorb	%dl, 1(%rbx)
.L14106:

	movzbl	2(%r12), %edx
	xorb	%dl, 2(%rbx)
	cmpq	$3, %rax
	je	.L14105
	movzbl	3(%r12), %edx
	xorb	%dl, 3(%rbx)
	cmpq	$4, %rax
	je	.L14105
	movzbl	4(%r12), %edx
	xorb	%dl, 4(%rbx)
	cmpq	$5, %rax
	je	.L14105
	movzbl	5(%r12), %edx
	xorb	%dl, 5(%rbx)
	cmpq	$6, %rax
	je	.L14105
	movzbl	6(%r12), %edx
	xorb	%dl, 6(%rbx)
	cmpq	$7, %rax
	je	.L14105
	movzbl	7(%r12), %edx
	xorb	%dl, 7(%rbx)
	cmpq	$8, %rax
	je	.L14105
	movzbl	8(%r12), %edx
	xorb	%dl, 8(%rbx)
	cmpq	$9, %rax
	je	.L14105
	movzbl	9(%r12), %edx
	xorb	%dl, 9(%rbx)
	cmpq	$10, %rax
	je	.L14105
	movzbl	10(%r12), %edx
	xorb	%dl, 10(%rbx)
	cmpq	$11, %rax
	je	.L14105
	movzbl	11(%r12), %edx
	xorb	%dl, 11(%rbx)
	cmpq	$12, %rax
	je	.L14105
	movzbl	12(%r12), %edx
	xorb	%dl, 12(%rbx)
	cmpq	$13, %rax
	je	.L14105
	movzbl	13(%r12), %edx
	xorb	%dl, 13(%rbx)
	cmpq	$15, %rax
	jne	.L14105
	movzbl	14(%r12), %eax
	xorb	%al, 14(%rbx)
	jmp	.L14105
	.p2align 4,,10
	.p2align 3
.L14167:

	movl	8(%rax), %eax
	notl	%eax
	testl	$-1073545216, %eax
	jne	.L14091
	andb	$4, %ch
	je	.L14091
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L14165
	movq	8(%rsp), %rdi
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbp, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	gcm_setiv_avx512@PLT
	jmp	.Lgcm_setiv_avx512_local_target
.L14170:

	.cfi_restore_state
	cmpq	$6, %rcx
	jbe	.L14109
	movq	(%r12), %xmm1
	movq	(%rbx), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rbx)
	cmpq	$8, %rax
	je	.L14105
	leaq	-9(%rax), %rdx
	leaq	-8(%rax), %rcx
	cmpq	$2, %rdx
	movl	$8, %edx
	jbe	.L14103
.L14101:

	movd	(%r12,%rdx), %xmm0
	movd	(%rbx,%rdx), %xmm2
	pxor	%xmm0, %xmm2
	movd	%xmm2, (%rbx,%rdx)
	addq	$4, %rdx
	cmpq	$4, %rcx
	je	.L14105
.L14103:

	movzbl	(%r12,%rdx), %ecx
	xorb	%cl, (%rbx,%rdx)
	leaq	1(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L14105
	movzbl	1(%r12,%rdx), %ecx
	xorb	%cl, 1(%rbx,%rdx)
	leaq	2(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L14105
	movzbl	2(%r12,%rdx), %eax
	xorb	%al, 2(%rbx,%rdx)
.L14105:

	movq	%r14, %rsi
	movq	%rbx, %rdi
	call	*%r13
	jmp	.L14098
	.p2align 4,,10
	.p2align 3
.L14168:

	movq	(%r15), %rax
	movl	$2, %ebp
	movq	%rax, (%rbx)
	movl	8(%r15), %eax
	movb	$1, 15(%rbx)
	movl	%eax, 8(%rbx)
	jmp	.L14094
.L14108:

	movq	%rbp, %rax
	movq	%r15, %r12
	leaq	80(%rbx), %r14
	jmp	.L14095
.L14099:

	movzbl	(%r12), %edx
	xorb	%dl, (%rbx)
	cmpq	$1, %rax
	je	.L14105
	movzbl	1(%r12), %edx
	xorb	%dl, 1(%rbx)
	cmpq	$3, %rax
	je	.L14106
	jmp	.L14105
	.p2align 4,,10
	.p2align 3
.L14109:

	movq	%rax, %rcx
	xorl	%edx, %edx
	jmp	.L14101
.L14165:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2563:

	.size	CRYPTO_gcm128_setiv, .-CRYPTO_gcm128_setiv
# WAS .section	.text.aes_gcm_init_key,"ax",@progbits
.text
	.p2align 4
	.type	aes_gcm_init_key, @function
.Laes_gcm_init_key_local_target:
aes_gcm_init_key:
.LFB1164:

	.cfi_startproc
	endbr64
	movq	%rsi, %rax
	orq	%rdx, %rax
	je	.L14188
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r8
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	16(%rdi), %rbx
	movq	%rbx, %rax
	andl	$8, %eax
	addq	%rax, %rbx
	testq	%rsi, %rsi
	je	.L14173
	leaq	8(%rbx), %rdi
	movq	%rbx, %rcx
	xorl	%eax, %eax
	movq	$0, (%rbx)
	andq	$-8, %rdi
	leaq	384(%rbx), %r12
	xorl	%edx, %edx
	movq	$0, 376(%rbx)
	subq	%rdi, %rcx
	addl	$384, %ecx
	shrl	$3, %ecx
	rep stosq
	leaq	80(%rbx), %rax
	movq	%rsi, %rcx
	movq	%r12, %rdi
	movq	%rax, %rsi
	movl	24(%r8), %r8d
# WAS call	aes_ctr_set_key
	call	.Laes_ctr_set_key_local_target
	movq	%rax, 664(%rbx)
	testq	%rbp, %rbp
	je	.L14191
.L14174:

	movslq	648(%rbx), %rcx
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	movl	$1, 636(%rbx)
.L14175:

	movl	$1, 632(%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14173:

	.cfi_restore_state
	movl	632(%rbx), %edx
	movslq	648(%rbx), %rcx
	testl	%edx, %edx
	jne	.L14192
	testl	%ecx, %ecx
	jne	.L14193
.L14177:

	movl	$1, 636(%rbx)
	movl	$1, %eax
	movl	$0, 656(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14188:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L14191:

	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	.cfi_offset 6, -24
	.cfi_offset 12, -16
	movl	636(%rbx), %ecx
	testl	%ecx, %ecx
	je	.L14175
	movq	640(%rbx), %rbp
	testq	%rbp, %rbp
	jne	.L14174
	jmp	.L14175
	.p2align 4,,10
	.p2align 3
.L14193:

	movq	640(%rbx), %rdi
	movq	%rcx, %rdx
	movq	%rbp, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L14177
	.p2align 4,,10
	.p2align 3
.L14192:

	leaq	384(%rbx), %rsi
	movq	%rbp, %rdx
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	jmp	.L14177
	.cfi_endproc
.LFE1164:

	.size	aes_gcm_init_key, .-aes_gcm_init_key
# WAS .section	.text.CRYPTO_gcm128_aad,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_aad
	.type	CRYPTO_gcm128_aad, @function
.LCRYPTO_gcm128_aad_local_target:
CRYPTO_gcm128_aad:
.LFB2564:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movq	56(%rdi), %r13
	testq	%r13, %r13
	jne	.L14194
	movq	%rdx, %rax
	xorl	%ecx, %ecx
	movq	%rdx, %rbp
	addq	48(%rdi), %rax
	movabsq	$2305843009213693952, %rdx
	movq	%rdi, %rbx
	setc	%cl
	cmpq	%rax, %rdx
	jb	.L14215
	testq	%rcx, %rcx
	jne	.L14215
	movq	%rax, 48(%rdi)
	movl	372(%rdi), %eax
	movq	%rsi, %r12
	movq	336(%rdi), %r8
	movq	344(%rdi), %r14
	testl	%eax, %eax
	je	.L14198
	testq	%rbp, %rbp
	je	.L14212
	.p2align 4,,10
	.p2align 3
.L14200:

	movl	%eax, %ecx
	addq	$1, %r12
	addl	$1, %eax
	subq	$1, %rbp
	movzbl	64(%rbx,%rcx), %edx
	xorb	-1(%r12), %dl
	movb	%dl, 64(%rbx,%rcx)
	andl	$15, %eax
	je	.L14284
	testq	%rbp, %rbp
	jne	.L14200
	testl	%eax, %eax
	je	.L14284
	.p2align 4,,10
	.p2align 3
.L14212:

	movl	%eax, 372(%rbx)
	movl	$1, %eax
.L14194:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14215:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14284:

	.cfi_restore_state
	leaq	80(%rbx), %rsi
	leaq	64(%rbx), %rdi
	call	*%r8
.L14198:

	movq	%rbp, %r15
	andq	$-16, %r15
	je	.L14202
	movq	%r12, %rdx
	leaq	80(%rbx), %rsi
	leaq	64(%rbx), %rdi
	movq	%r15, %rcx
	call	*%r14
	addq	%r15, %r12
	subq	%r15, %rbp
.L14202:

	xorl	%eax, %eax
	testq	%rbp, %rbp
	je	.L14212
	leaq	-1(%rbp), %rcx
	movl	%ebp, %eax
	cmpq	$6, %rcx
	jbe	.L14204
	leaq	63(%rbx), %rdx
	subq	%r12, %rdx
	cmpq	$14, %rdx
	ja	.L14286
	movzbl	(%r12), %edx
	xorb	%dl, 64(%rbx)
	movzbl	1(%r12), %edx
	xorb	%dl, 65(%rbx)
.L14213:

	movzbl	2(%r12), %edx
	xorb	%dl, 66(%rbx)
	cmpq	$3, %rbp
	je	.L14212
	movzbl	3(%r12), %edx
	xorb	%dl, 67(%rbx)
	cmpq	$4, %rbp
	je	.L14212
	movzbl	4(%r12), %edx
	xorb	%dl, 68(%rbx)
	cmpq	$5, %rbp
	je	.L14212
	movzbl	5(%r12), %edx
	xorb	%dl, 69(%rbx)
	cmpq	$6, %rbp
	je	.L14212
	movzbl	6(%r12), %edx
	xorb	%dl, 70(%rbx)
	cmpq	$7, %rbp
	je	.L14212
	movzbl	7(%r12), %edx
	xorb	%dl, 71(%rbx)
	cmpq	$8, %rbp
	je	.L14212
	movzbl	8(%r12), %edx
	xorb	%dl, 72(%rbx)
	cmpq	$9, %rbp
	je	.L14212
	movzbl	9(%r12), %edx
	xorb	%dl, 73(%rbx)
	cmpq	$10, %rbp
	je	.L14212
	movzbl	10(%r12), %edx
	xorb	%dl, 74(%rbx)
	cmpq	$11, %rbp
	je	.L14212
	movzbl	11(%r12), %edx
	xorb	%dl, 75(%rbx)
	cmpq	$12, %rbp
	je	.L14212
	movzbl	12(%r12), %edx
	xorb	%dl, 76(%rbx)
	cmpq	$13, %rbp
	je	.L14212
	movzbl	13(%r12), %edx
	xorb	%dl, 77(%rbx)
	cmpq	$14, %rbp
	je	.L14212
	movzbl	14(%r12), %edx
	xorb	%dl, 78(%rbx)
	cmpq	$15, %rbp
	je	.L14212
	movzbl	15(%r12), %edx
	xorb	%dl, 79(%rbx)
	jmp	.L14212
	.p2align 4,,10
	.p2align 3
.L14286:

	cmpq	$14, %rcx
	jbe	.L14217
	movdqu	(%r12), %xmm0
	pxor	64(%rbx), %xmm0
	movq	%rbp, %r13
	andq	$-16, %r13
	movaps	%xmm0, 64(%rbx)
	testb	$15, %bpl
	je	.L14212
	movq	%rbp, %rdx
	subq	%r13, %rdx
	leaq	-1(%rdx), %rcx
	cmpq	$6, %rcx
	jbe	.L14209
.L14206:

	leaq	64(%rbx,%r13), %rcx
	movq	(%r12,%r13), %xmm1
	movq	(%rcx), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rcx)
	movq	%rdx, %rcx
	andq	$-8, %rcx
	addq	%rcx, %r13
	andl	$7, %edx
	je	.L14212
.L14209:

	movzbl	(%r12,%r13), %edx
	xorb	%dl, 64(%rbx,%r13)
	leaq	1(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	1(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	leaq	2(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	2(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	leaq	3(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	3(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	leaq	4(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	4(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	leaq	5(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	5(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	leaq	6(%r13), %rdx
	cmpq	%rbp, %rdx
	jnb	.L14212
	movzbl	6(%r12,%r13), %ecx
	xorb	%cl, 64(%rbx,%rdx)
	jmp	.L14212
	.p2align 4,,10
	.p2align 3
.L14204:

	movzbl	(%r12), %edx
	xorb	%dl, 64(%rbx)
	cmpq	$1, %rbp
	je	.L14212
	movzbl	1(%r12), %edx
	xorb	%dl, 65(%rbx)
	cmpq	$2, %rbp
	jne	.L14213
	jmp	.L14212
	.p2align 4,,10
	.p2align 3
.L14217:

	movq	%rbp, %rdx
	jmp	.L14206
	.cfi_endproc
.LFE2564:

	.size	CRYPTO_gcm128_aad, .-CRYPTO_gcm128_aad
# WAS .section	.text.CRYPTO_gcm128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_encrypt
	.type	CRYPTO_gcm128_encrypt, @function
.LCRYPTO_gcm128_encrypt_local_target:
CRYPTO_gcm128_encrypt:
.LFB2565:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r9
	movq	%rcx, %rdx
	movq	%r8, %rcx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	addq	56(%rdi), %rcx
	movabsq	$68719476704, %rdi
	movq	%rsi, 8(%rsp)
	setc	%sil
	cmpq	%rcx, %rdi
	jb	.L14312
	movzbl	%sil, %esi
	testq	%rsi, %rsi
	jne	.L14312
	movq	352(%r14), %rax
	movq	%rcx, 56(%r14)
	movq	336(%r14), %rbx
	movq	%rax, 32(%rsp)
	movq	344(%r14), %rax
	movq	%rax, 56(%rsp)
	movl	372(%r14), %eax
	testl	%eax, %eax
	je	.L14291
	movq	%r8, 24(%rsp)
	leaq	80(%r14), %rsi
	leaq	64(%r14), %rdi
	movq	%rdx, 16(%rsp)
	movq	%r9, (%rsp)
	call	*%rbx
	movq	24(%rsp), %r8
	movq	16(%rsp), %rdx
	movl	$0, 372(%r14)
	movq	(%rsp), %r9
.L14291:

	movl	368(%r14), %ecx
	testl	%ecx, %ecx
	je	.L14292
	testq	%r8, %r8
	jne	.L14294
	jmp	.L14296
	.p2align 4,,10
	.p2align 3
.L14401:

	testq	%r8, %r8
	je	.L14400
.L14294:

	movl	%ecx, %esi
	movzbl	(%r9), %eax
	addq	$1, %rdx
	addl	$1, %ecx
	xorb	16(%r14,%rsi), %al
	addq	$1, %r9
	subq	$1, %r8
	movb	%al, -1(%rdx)
	xorb	%al, 64(%r14,%rsi)
	andl	$15, %ecx
	jne	.L14401
.L14394:

	movq	%r8, 24(%rsp)
	leaq	80(%r14), %rsi
	leaq	64(%r14), %rdi
	movq	%rdx, 16(%rsp)
	movq	%r9, (%rsp)
	call	*%rbx
	movq	24(%rsp), %r8
	movq	16(%rsp), %rdx
	movq	(%rsp), %r9
.L14292:

	movl	12(%r14), %eax
	bswap	%eax
	movl	%eax, 24(%rsp)
	cmpq	$3071, %r8
	jbe	.L14313
	leaq	80(%r14), %rsi
	leaq	64(%r14), %rdi
	movq	%r8, 16(%rsp)
	movq	%rdi, 64(%rsp)
	leaq	3072(%r9), %rbx
	leaq	16(%r14), %r13
	movq	%rsi, 72(%rsp)
.L14298:

	movl	24(%rsp), %ebp
	movq	%rdx, 40(%rsp)
	movq	%rdx, %r15
	leaq	-3072(%rbx), %r12
	movq	%r13, (%rsp)
	movq	%r14, %r13
	movl	%ebp, %r14d
	movq	32(%rsp), %rbp
	.p2align 4,,10
	.p2align 3
.L14299:

	addl	$1, %r14d
	movq	8(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%r13, %rdi
	call	*%rbp
	movl	%r14d, %edx
	addq	$16, %r12
	addq	$16, %r15
	bswap	%edx
	movl	%edx, 12(%r13)
	movq	-16(%r12), %rdx
	xorq	16(%r13), %rdx
	movq	%rdx, -16(%r15)
	movq	-8(%r12), %rdx
	xorq	24(%r13), %rdx
	movq	%rdx, -8(%r15)
	cmpq	%rbx, %r12
	jne	.L14299
	movq	40(%rsp), %rdx
	addl	$192, 24(%rsp)
	movq	%r13, %r14
	movl	$3072, %ecx
	movq	(%rsp), %r13
	movq	56(%rsp), %rax
	movq	%rbx, 48(%rsp)
	addq	$3072, %rbx
	leaq	3072(%rdx), %r10
	movq	72(%rsp), %rsi
	movq	64(%rsp), %rdi
	movq	%r10, (%rsp)
	call	*%rax
	movq	(%rsp), %r10
	movq	48(%rsp), %r9
	subq	$3072, 16(%rsp)
	movq	16(%rsp), %rax
	cmpq	$3071, %rax
	jbe	.L14398
	movq	%r10, %rdx
	jmp	.L14298
.L14398:

	movq	%rax, %r8
.L14297:

	movq	%r8, %rsi
	andq	$-16, %rsi
	je	.L14300
	movl	24(%rsp), %r11d
	leaq	-16(%r8), %rdx
	leaq	16(%r14), %r13
	movq	%rsi, %r15
	shrq	$4, %rdx
	movq	%r13, %rsi
	movq	%r9, %rbx
	movq	%r10, %rbp
	addl	$1, %r11d
	movq	%rdx, 16(%rsp)
	movq	%r10, %r13
	leal	(%r11,%rdx), %eax
	movl	%r11d, %r12d
	movl	%eax, (%rsp)
	jmp	.L14301
.L14402:

	movq	24(%rsp), %rsi
	addl	$1, %r12d
.L14301:

	movq	%r8, 48(%rsp)
	movq	%r14, %rdi
	addq	$16, %rbp
	addq	$16, %rbx
	movq	32(%rsp), %rax
	movq	8(%rsp), %rdx
	movq	%r9, 40(%rsp)
	movq	%rsi, 24(%rsp)
	call	*%rax
	movl	%r12d, %eax
	movq	40(%rsp), %r9
	movq	48(%rsp), %r8
	bswap	%eax
	movl	%eax, 12(%r14)
	movq	16(%r14), %rax
	xorq	-16(%rbx), %rax
	movq	%rax, -16(%rbp)
	movq	-8(%rbx), %rax
	xorq	24(%r14), %rax
	movq	%rax, -8(%rbp)
	movl	(%rsp), %eax
	cmpl	%eax, %r12d
	jne	.L14402
	movq	16(%rsp), %rdx
	movq	%r13, %r10
	andl	$15, %r8d
	leaq	80(%r14), %r11
	movq	%r8, 16(%rsp)
	movq	56(%rsp), %rax
	movq	%r15, %rcx
	movq	%r11, %rsi
	addq	$1, %rdx
	movl	%r12d, 24(%rsp)
	leaq	64(%r14), %rdi
	salq	$4, %rdx
	addq	%rdx, %r10
	addq	%rdx, %r9
	movq	%r10, %rdx
	movq	%r9, 40(%rsp)
	movq	%r10, (%rsp)
	subq	%r15, %rdx
	call	*%rax
	movq	40(%rsp), %r9
	movq	16(%rsp), %r8
	movq	(%rsp), %r10
.L14300:

	xorl	%ecx, %ecx
	testq	%r8, %r8
	movq	%r9, 40(%rsp)
	movq	%r10, 16(%rsp)
	movq	%r8, (%rsp)
	je	.L14296
	leaq	16(%r14), %rbx
	movq	8(%rsp), %rdx
	movq	32(%rsp), %rax
	movq	%r14, %rdi
	movq	%rbx, %rsi
	call	*%rax
	movq	(%rsp), %r8
	movl	24(%rsp), %edx
	movq	16(%rsp), %r10
	movq	40(%rsp), %r9
	leaq	-1(%r8), %rcx
	addl	$1, %edx
	cmpq	$2, %rcx
	bswap	%edx
	movl	%edx, 12(%r14)
	jbe	.L14303
	leaq	63(%r14), %rdx
	subq	%r9, %rdx
	cmpq	$6, %rdx
	leaq	-1(%r10), %rdx
	seta	%sil
	subq	%r9, %rdx
	cmpq	$6, %rdx
	seta	%dl
	testb	%dl, %sil
	je	.L14304
	leaq	72(%r14), %rdx
	leaq	8(%r10), %rsi
	cmpq	%rdx, %r10
	setnb	%dl
	cmpq	%rsi, %rbx
	setnb	%sil
	orb	%sil, %dl
	je	.L14304
	cmpq	$6, %rcx
	jbe	.L14315
	movq	(%r9), %xmm0
	movq	16(%r14), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%r10)
	movq	64(%r14), %xmm1
	pxor	%xmm0, %xmm1
	movq	%xmm1, 64(%r14)
	cmpq	$8, %r8
	je	.L14310
	leaq	-9(%r8), %rcx
	leaq	-8(%r8), %rdi
	movl	$8, %edx
	cmpq	$2, %rcx
	jbe	.L14308
	movl	$8, %esi
.L14305:

	movd	(%r9,%rsi), %xmm0
	movd	16(%r14,%rsi), %xmm3
	addl	$4, %edx
	subq	$4, %rcx
	pxor	%xmm3, %xmm0
	movd	%xmm0, (%r10,%rsi)
	movd	64(%r14,%rsi), %xmm2
	pxor	%xmm0, %xmm2
	movd	%xmm2, 64(%r14,%rsi)
	cmpq	$4, %rdi
	je	.L14310
.L14308:

	movl	%edx, %esi
	movzbl	(%r9,%rsi), %edi
	xorb	16(%r14,%rsi), %dil
	movb	%dil, (%r10,%rsi)
	xorb	%dil, 64(%r14,%rsi)
	leal	1(%rdx), %esi
	testq	%rcx, %rcx
	je	.L14310
	movzbl	(%r9,%rsi), %edi
	xorb	16(%r14,%rsi), %dil
	addl	$2, %edx
	movb	%dil, (%r10,%rsi)
	xorb	%dil, 64(%r14,%rsi)
	cmpq	$1, %rcx
	je	.L14310
	movzbl	(%r9,%rdx), %ecx
	xorb	16(%r14,%rdx), %cl
	movb	%cl, (%r10,%rdx)
	xorb	%cl, 64(%r14,%rdx)
.L14310:

	movl	%r8d, %ecx
.L14296:

	movl	%ecx, 368(%r14)
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L14312:

	.cfi_restore_state
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L14304:

	.cfi_restore_state
	movzbl	16(%r14), %edx
	xorb	(%r9), %dl
	leaq	-2(%r8), %rcx
	movb	%dl, (%r10)
	xorb	%dl, 64(%r14)
.L14311:

	movzbl	1(%r9), %edx
	xorb	17(%r14), %dl
	movb	%dl, 1(%r10)
	xorb	%dl, 65(%r14)
	testq	%rcx, %rcx
	je	.L14310
	movzbl	2(%r9), %edx
	xorb	18(%r14), %dl
	movb	%dl, 2(%r10)
	xorb	%dl, 66(%r14)
	cmpq	$3, %r8
	je	.L14310
	movzbl	3(%r9), %edx
	xorb	19(%r14), %dl
	movb	%dl, 3(%r10)
	xorb	%dl, 67(%r14)
	cmpq	$4, %r8
	je	.L14310
	movzbl	4(%r9), %edx
	xorb	20(%r14), %dl
	movb	%dl, 4(%r10)
	xorb	%dl, 68(%r14)
	cmpq	$5, %r8
	je	.L14310
	movzbl	5(%r9), %edx
	xorb	21(%r14), %dl
	movb	%dl, 5(%r10)
	xorb	%dl, 69(%r14)
	cmpq	$6, %r8
	je	.L14310
	movzbl	6(%r9), %edx
	xorb	22(%r14), %dl
	movb	%dl, 6(%r10)
	xorb	%dl, 70(%r14)
	cmpq	$7, %r8
	je	.L14310
	movzbl	7(%r9), %edx
	xorb	23(%r14), %dl
	movb	%dl, 7(%r10)
	xorb	%dl, 71(%r14)
	cmpq	$8, %r8
	je	.L14310
	movzbl	8(%r9), %edx
	xorb	24(%r14), %dl
	movb	%dl, 8(%r10)
	xorb	%dl, 72(%r14)
	cmpq	$9, %r8
	je	.L14310
	movzbl	9(%r9), %edx
	xorb	25(%r14), %dl
	movb	%dl, 9(%r10)
	xorb	%dl, 73(%r14)
	cmpq	$10, %r8
	je	.L14310
	movzbl	10(%r9), %edx
	xorb	26(%r14), %dl
	movb	%dl, 10(%r10)
	xorb	%dl, 74(%r14)
	cmpq	$11, %r8
	je	.L14310
	movzbl	11(%r9), %edx
	xorb	27(%r14), %dl
	movb	%dl, 11(%r10)
	xorb	%dl, 75(%r14)
	cmpq	$12, %r8
	je	.L14310
	movzbl	12(%r9), %edx
	xorb	28(%r14), %dl
	movb	%dl, 12(%r10)
	xorb	%dl, 76(%r14)
	cmpq	$13, %r8
	je	.L14310
	movzbl	13(%r9), %edx
	xorb	29(%r14), %dl
	movb	%dl, 13(%r10)
	xorb	%dl, 77(%r14)
	cmpq	$14, %r8
	je	.L14310
	movzbl	14(%r9), %edx
	xorb	30(%r14), %dl
	movb	%dl, 14(%r10)
	xorb	%dl, 78(%r14)
	jmp	.L14310
.L14400:

	testl	%ecx, %ecx
	jne	.L14296
	jmp	.L14394
.L14313:

	movq	%rdx, %r10
	jmp	.L14297
.L14303:

	movzbl	(%r9), %edx
	xorb	16(%r14), %dl
	movb	%dl, (%r10)
	xorb	%dl, 64(%r14)
	testq	%rcx, %rcx
	je	.L14310
	leaq	-2(%r8), %rcx
	jmp	.L14311
	.p2align 4,,10
	.p2align 3
.L14315:

	movq	%r8, %rdi
	xorl	%edx, %edx
	xorl	%esi, %esi
	jmp	.L14305
	.cfi_endproc
.LFE2565:

	.size	CRYPTO_gcm128_encrypt, .-CRYPTO_gcm128_encrypt
# WAS .section	.text.CRYPTO_gcm128_decrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_decrypt
	.type	CRYPTO_gcm128_decrypt, @function
.LCRYPTO_gcm128_decrypt_local_target:
CRYPTO_gcm128_decrypt:
.LFB2566:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r9
	movq	%r8, %rdx
	movq	%rcx, %r10
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	addq	56(%rdi), %rdx
	movq	%rsi, 16(%rsp)
	setc	%cl
	movabsq	$68719476704, %rsi
	cmpq	%rdx, %rsi
	jb	.L14428
	movzbl	%cl, %ecx
	testq	%rcx, %rcx
	jne	.L14428
	movq	352(%rdi), %rax
	movq	%rdx, 56(%rdi)
	movq	%rdi, %r15
	movq	336(%rdi), %rbx
	movq	%rax, 48(%rsp)
	movq	344(%rdi), %rax
	movq	%rax, 56(%rsp)
	movl	372(%rdi), %eax
	testl	%eax, %eax
	je	.L14407
	movq	%r8, 32(%rsp)
	leaq	80(%rdi), %rsi
	leaq	64(%rdi), %rdi
	movq	%r10, 24(%rsp)
	movq	%r9, 8(%rsp)
	call	*%rbx
	movq	32(%rsp), %r8
	movq	24(%rsp), %r10
	movl	$0, 372(%r15)
	movq	8(%rsp), %r9
.L14407:

	movl	368(%r15), %edx
	testl	%edx, %edx
	je	.L14408
	testq	%r8, %r8
	jne	.L14410
	jmp	.L14412
	.p2align 4,,10
	.p2align 3
.L14516:

	testq	%r8, %r8
	je	.L14515
.L14410:

	movl	%edx, %eax
	movzbl	(%r9), %ecx
	addq	$1, %r10
	addl	$1, %edx
	movzbl	16(%r15,%rax), %esi
	addq	$1, %r9
	subq	$1, %r8
	xorl	%ecx, %esi
	movb	%sil, -1(%r10)
	xorb	%cl, 64(%r15,%rax)
	andl	$15, %edx
	jne	.L14516
.L14510:

	movq	%r8, 32(%rsp)
	leaq	80(%r15), %rsi
	leaq	64(%r15), %rdi
	movq	%r10, 24(%rsp)
	movq	%r9, 8(%rsp)
	call	*%rbx
	movq	32(%rsp), %r8
	movq	24(%rsp), %r10
	movq	8(%rsp), %r9
.L14408:

	movl	12(%r15), %eax
	bswap	%eax
	movl	%eax, 32(%rsp)
	cmpq	$3071, %r8
	jbe	.L14413
	leaq	80(%r15), %rsi
	leaq	64(%r15), %rdi
	movq	%r10, 40(%rsp)
	movq	%r15, %r13
	movq	%r8, 24(%rsp)
	leaq	3072(%r9), %rbp
	leaq	16(%r15), %r14
	movq	%rdi, 64(%rsp)
	movq	%rsi, 72(%rsp)
.L14415:

	movq	72(%rsp), %rsi
	movq	64(%rsp), %rdi
	movl	$3072, %ecx
	leaq	-3072(%rbp), %r12
	movq	56(%rsp), %rax
	movq	%r12, %rdx
	call	*%rax
	movl	32(%rsp), %ebx
	movq	40(%rsp), %r15
	movq	%r14, 8(%rsp)
	movq	%r13, %r14
	movl	%ebx, %r13d
	movq	48(%rsp), %rbx
	.p2align 4,,10
	.p2align 3
.L14414:

	addl	$1, %r13d
	movq	16(%rsp), %rdx
	movq	%r14, %rdi
	addq	$16, %r12
	movq	8(%rsp), %rsi
	addq	$16, %r15
	call	*%rbx
	movl	%r13d, %edx
	movq	%rbp, %r9
	bswap	%edx
	movl	%edx, 12(%r14)
	movq	-16(%r12), %rdx
	xorq	16(%r14), %rdx
	movq	%rdx, -16(%r15)
	movq	-8(%r12), %rdx
	xorq	24(%r14), %rdx
	movq	%rdx, -8(%r15)
	cmpq	%rbp, %r12
	jne	.L14414
	subq	$3072, 24(%rsp)
	movq	24(%rsp), %rax
	movq	%r14, %r13
	addq	$3072, %rbp
	addq	$3072, 40(%rsp)
	movq	8(%rsp), %r14
	addl	$192, 32(%rsp)
	cmpq	$3071, %rax
	ja	.L14415
	movq	40(%rsp), %r10
	movq	%r13, %r15
	movq	%rax, %r8
.L14413:

	movq	%r8, %rcx
	andq	$-16, %rcx
	je	.L14416
	movq	%r9, %rdx
	movq	%r8, 40(%rsp)
	leaq	80(%r15), %rsi
	leaq	64(%r15), %rdi
	movq	%r10, 24(%rsp)
	movq	56(%rsp), %rax
	leaq	16(%r15), %r14
	movq	%r9, 8(%rsp)
	call	*%rax
	movq	40(%rsp), %r8
	movl	32(%rsp), %ecx
	movq	24(%rsp), %r10
	movq	8(%rsp), %r9
	leaq	-16(%r8), %rdx
	addl	$1, %ecx
	shrq	$4, %rdx
	movl	%ecx, %r12d
	movq	%r10, %rbp
	movq	%r9, %rbx
	leal	(%rcx,%rdx), %r11d
	movq	%r14, %rcx
	movq	%rdx, %r14
	movl	%r11d, %r13d
	jmp	.L14417
.L14517:

	movq	8(%rsp), %rcx
	addl	$1, %r12d
.L14417:

	movq	%r8, 40(%rsp)
	movq	48(%rsp), %rax
	movq	%rcx, %rsi
	movq	%r15, %rdi
	movq	%r10, 32(%rsp)
	movq	16(%rsp), %rdx
	addq	$16, %rbp
	addq	$16, %rbx
	movq	%r9, 24(%rsp)
	movq	%rcx, 8(%rsp)
	call	*%rax
	movl	%r12d, %eax
	movq	24(%rsp), %r9
	movq	32(%rsp), %r10
	bswap	%eax
	movl	%eax, 12(%r15)
	movq	16(%r15), %rax
	xorq	-16(%rbx), %rax
	movq	40(%rsp), %r8
	movq	%rax, -16(%rbp)
	movq	-8(%rbx), %rax
	xorq	24(%r15), %rax
	movq	%rax, -8(%rbp)
	cmpl	%r13d, %r12d
	jne	.L14517
	movq	%r14, %rdx
	movl	%r12d, 32(%rsp)
	andl	$15, %r8d
	addq	$1, %rdx
	salq	$4, %rdx
	addq	%rdx, %r10
	addq	%rdx, %r9
.L14416:

	xorl	%edx, %edx
	testq	%r8, %r8
	movq	%r10, 40(%rsp)
	movq	%r9, 24(%rsp)
	movq	%r8, 8(%rsp)
	jne	.L14518
.L14412:

	movl	%edx, 368(%r15)
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L14518:

	.cfi_restore_state
	movq	16(%rsp), %rdx
	movq	48(%rsp), %rax
	leaq	16(%r15), %rsi
	movq	%r15, %rdi
	call	*%rax
	movq	8(%rsp), %r8
	movl	32(%rsp), %edx
	movq	24(%rsp), %r9
	movq	40(%rsp), %r10
	leaq	-1(%r8), %rcx
	addl	$1, %edx
	cmpq	$2, %rcx
	bswap	%edx
	movl	%edx, 12(%r15)
	jbe	.L14419
	leaq	63(%r15), %rdx
	subq	%r9, %rdx
	cmpq	$6, %rdx
	leaq	-1(%r10), %rdx
	seta	%sil
	subq	%r9, %rdx
	cmpq	$6, %rdx
	seta	%dl
	testb	%dl, %sil
	je	.L14420
	movq	%r10, %rdx
	subq	%r15, %rdx
	subq	$17, %rdx
	cmpq	$54, %rdx
	jbe	.L14420
	cmpq	$6, %rcx
	jbe	.L14430
	movq	(%r9), %xmm0
	movq	64(%r15), %xmm1
	pxor	%xmm0, %xmm1
	movq	%xmm1, 64(%r15)
	movq	16(%r15), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%r10)
	cmpq	$8, %r8
	je	.L14426
	leaq	-9(%r8), %rcx
	leaq	-8(%r8), %rdi
	movl	$8, %edx
	cmpq	$2, %rcx
	jbe	.L14424
	movl	$8, %esi
.L14421:

	movd	(%r9,%rsi), %xmm0
	movd	64(%r15,%rsi), %xmm2
	addl	$4, %edx
	subq	$4, %rcx
	movd	16(%r15,%rsi), %xmm3
	pxor	%xmm0, %xmm2
	pxor	%xmm3, %xmm0
	movd	%xmm2, 64(%r15,%rsi)
	movd	%xmm0, (%r10,%rsi)
	cmpq	$4, %rdi
	je	.L14426
.L14424:

	movl	%edx, %esi
	movzbl	(%r9,%rsi), %edi
	xorb	%dil, 64(%r15,%rsi)
	xorb	16(%r15,%rsi), %dil
	movb	%dil, (%r10,%rsi)
	leal	1(%rdx), %esi
	testq	%rcx, %rcx
	je	.L14426
	movzbl	(%r9,%rsi), %edi
	xorb	%dil, 64(%r15,%rsi)
	addl	$2, %edx
	xorb	16(%r15,%rsi), %dil
	movb	%dil, (%r10,%rsi)
	cmpq	$1, %rcx
	je	.L14426
	movzbl	(%r9,%rdx), %ecx
	xorb	%cl, 64(%r15,%rdx)
	xorb	16(%r15,%rdx), %cl
	movb	%cl, (%r10,%rdx)
.L14426:

	movl	%r8d, %edx
	jmp	.L14412
.L14428:

	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L14420:

	.cfi_restore_state
	movzbl	(%r9), %edx
	xorb	%dl, 64(%r15)
	leaq	-2(%r8), %rcx
	xorb	16(%r15), %dl
	movb	%dl, (%r10)
.L14427:

	movzbl	1(%r9), %edx
	xorb	%dl, 65(%r15)
	xorb	17(%r15), %dl
	movb	%dl, 1(%r10)
	testq	%rcx, %rcx
	je	.L14426
	movzbl	2(%r9), %edx
	xorb	%dl, 66(%r15)
	xorb	18(%r15), %dl
	movb	%dl, 2(%r10)
	cmpq	$3, %r8
	je	.L14426
	movzbl	3(%r9), %edx
	xorb	%dl, 67(%r15)
	xorb	19(%r15), %dl
	movb	%dl, 3(%r10)
	cmpq	$4, %r8
	je	.L14426
	movzbl	4(%r9), %edx
	xorb	%dl, 68(%r15)
	xorb	20(%r15), %dl
	movb	%dl, 4(%r10)
	cmpq	$5, %r8
	je	.L14426
	movzbl	5(%r9), %edx
	xorb	%dl, 69(%r15)
	xorb	21(%r15), %dl
	movb	%dl, 5(%r10)
	cmpq	$6, %r8
	je	.L14426
	movzbl	6(%r9), %edx
	xorb	%dl, 70(%r15)
	xorb	22(%r15), %dl
	movb	%dl, 6(%r10)
	cmpq	$7, %r8
	je	.L14426
	movzbl	7(%r9), %edx
	xorb	%dl, 71(%r15)
	xorb	23(%r15), %dl
	movb	%dl, 7(%r10)
	cmpq	$8, %r8
	je	.L14426
	movzbl	8(%r9), %edx
	xorb	%dl, 72(%r15)
	xorb	24(%r15), %dl
	movb	%dl, 8(%r10)
	cmpq	$9, %r8
	je	.L14426
	movzbl	9(%r9), %edx
	xorb	%dl, 73(%r15)
	xorb	25(%r15), %dl
	movb	%dl, 9(%r10)
	cmpq	$10, %r8
	je	.L14426
	movzbl	10(%r9), %edx
	xorb	%dl, 74(%r15)
	xorb	26(%r15), %dl
	movb	%dl, 10(%r10)
	cmpq	$11, %r8
	je	.L14426
	movzbl	11(%r9), %edx
	xorb	%dl, 75(%r15)
	xorb	27(%r15), %dl
	movb	%dl, 11(%r10)
	cmpq	$12, %r8
	je	.L14426
	movzbl	12(%r9), %edx
	xorb	%dl, 76(%r15)
	xorb	28(%r15), %dl
	movb	%dl, 12(%r10)
	cmpq	$13, %r8
	je	.L14426
	movzbl	13(%r9), %edx
	xorb	%dl, 77(%r15)
	xorb	29(%r15), %dl
	movb	%dl, 13(%r10)
	cmpq	$14, %r8
	je	.L14426
	movzbl	14(%r9), %edx
	xorb	%dl, 78(%r15)
	xorb	30(%r15), %dl
	movb	%dl, 14(%r10)
	jmp	.L14426
.L14515:

	testl	%edx, %edx
	jne	.L14412
	jmp	.L14510
.L14419:

	movzbl	(%r9), %edx
	xorb	%dl, 64(%r15)
	xorb	16(%r15), %dl
	movb	%dl, (%r10)
	testq	%rcx, %rcx
	je	.L14426
	leaq	-2(%r8), %rcx
	jmp	.L14427
	.p2align 4,,10
	.p2align 3
.L14430:

	movq	%r8, %rdi
	xorl	%edx, %edx
	xorl	%esi, %esi
	jmp	.L14421
	.cfi_endproc
.LFE2566:

	.size	CRYPTO_gcm128_decrypt, .-CRYPTO_gcm128_decrypt
# WAS .section	.text.CRYPTO_gcm128_encrypt_ctr32,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_encrypt_ctr32
	.type	CRYPTO_gcm128_encrypt_ctr32, @function
.LCRYPTO_gcm128_encrypt_ctr32_local_target:
CRYPTO_gcm128_encrypt_ctr32:
.LFB2567:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	movabsq	$68719476704, %rdx
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	addq	56(%rdi), %rax
	movq	%rsi, (%rsp)
	setc	%cl
	movq	%r9, 8(%rsp)
	cmpq	%rax, %rdx
	jb	.L14547
	movzbl	%cl, %ecx
	testq	%rcx, %rcx
	jne	.L14547
	movq	%rdi, %rbx
	movq	336(%rdi), %r12
	movq	%r8, %rbp
	movq	344(%rdi), %rdi
	movl	372(%rbx), %ecx
	movq	%rax, 56(%rbx)
	movq	%rdi, 16(%rsp)
	testl	%ecx, %ecx
	je	.L14523
	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, %rsi
	movq	%r15, %rdi
	call	*%r12
	movl	$0, 372(%rbx)
.L14523:

	testb	$1, 360(%rbx)
	je	.L14524
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	12(%rax), %edx
	testb	$2, %dh
	je	.L14525
	movl	8(%rax), %eax
	notl	%eax
	testl	$-1073545216, %eax
	jne	.L14525
	andb	$4, %dh
	je	.L14525
	testq	%rbp, %rbp
	je	.L14525
	movq	(%rsp), %rdi
	movq	%r14, %r9
	movq	%rbp, %r8
	movq	%r13, %rcx
	leaq	368(%rbx), %rdx
	movq	%rbx, %rsi
# WAS call	aes_gcm_encrypt_avx512@PLT
	call	.Laes_gcm_encrypt_avx512_local_target
	jmp	.L14526
	.p2align 4,,10
	.p2align 3
.L14524:

	movl	368(%rbx), %eax
	testl	%eax, %eax
	jne	.L14545
.L14531:

	movl	12(%rbx), %r12d
	bswap	%r12d
	cmpq	$3071, %rbp
	jbe	.L14533
	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L14534:

	addl	$192, %r12d
	movq	%r14, %rsi
	movq	%r13, %rdi
	movq	%rbx, %r8
	movq	(%rsp), %rcx
	movq	8(%rsp), %rax
	movl	$192, %edx
	subq	$3072, %rbp
	call	*%rax
	movl	%r12d, %eax
	movq	%r14, %rdx
	movq	24(%rsp), %rsi
	bswap	%eax
	movl	$3072, %ecx
	movl	%eax, 12(%rbx)
	movq	%r15, %rdi
	movq	16(%rsp), %rax
	addq	$3072, %r14
	addq	$3072, %r13
	call	*%rax
	cmpq	$3071, %rbp
	ja	.L14534
.L14533:

	movq	%rbp, %r15
	andq	$-16, %r15
	je	.L14535
	movq	%rbp, %rax
	movq	%r14, %rsi
	movq	%r13, %rdi
	movq	(%rsp), %rcx
	shrq	$4, %rax
	movq	%rbx, %r8
	addq	%r15, %r13
	subq	%r15, %rbp
	movq	%rax, %rdx
	movq	%rax, 24(%rsp)
	movq	8(%rsp), %rax
	call	*%rax
	movq	24(%rsp), %rax
	movq	%r14, %rdx
	leaq	80(%rbx), %rsi
	leaq	64(%rbx), %rdi
	movq	%r15, %rcx
	addq	%r15, %r14
	addl	%eax, %r12d
	movl	%r12d, %eax
	bswap	%eax
	movl	%eax, 12(%rbx)
	movq	16(%rsp), %rax
	call	*%rax
.L14535:

	testq	%rbp, %rbp
	je	.L14532
	movq	(%rsp), %rdx
	leaq	16(%rbx), %rsi
	movq	%rbx, %rdi
	addl	$1, %r12d
	call	*352(%rbx)
	leaq	-1(%rbp), %rax
	bswap	%r12d
	movl	%r12d, 12(%rbx)
	cmpq	$6, %rax
	jbe	.L14536
	leaq	63(%rbx), %rdx
	subq	%r13, %rdx
	cmpq	$14, %rdx
	leaq	-1(%r14), %rdx
	seta	%cl
	subq	%r13, %rdx
	cmpq	$14, %rdx
	seta	%dl
	testb	%dl, %cl
	je	.L14537
	leaq	80(%rbx), %rdx
	cmpq	%rdx, %r14
	setnb	%dl
	cmpq	%r14, %rbx
	setnb	%cl
	orb	%cl, %dl
	je	.L14537
	cmpq	$14, %rax
	jbe	.L14548
	movdqu	0(%r13), %xmm0
	pxor	16(%rbx), %xmm0
	movq	%rbp, %rcx
	andq	$-16, %rcx
	movups	%xmm0, (%r14)
	pxor	64(%rbx), %xmm0
	movl	%ecx, %edx
	subq	%rcx, %rax
	movaps	%xmm0, 64(%rbx)
	testb	$15, %bpl
	je	.L14541
	movq	%rbp, %rsi
	subq	%rcx, %rsi
	leaq	-1(%rsi), %rdi
	cmpq	$6, %rdi
	jbe	.L14542
.L14538:

	movq	16(%rbx,%rcx), %xmm1
	movq	0(%r13,%rcx), %xmm0
	leaq	64(%rbx,%rcx), %rdi
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%r14,%rcx)
	movq	%rsi, %rcx
	movq	(%rdi), %xmm1
	andq	$-8, %rcx
	pxor	%xmm0, %xmm1
	addl	%ecx, %edx
	subq	%rcx, %rax
	andl	$7, %esi
	movq	%xmm1, (%rdi)
	je	.L14541
.L14542:

	movl	%edx, %ecx
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	leal	1(%rdx), %ecx
	testq	%rax, %rax
	je	.L14541
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	leal	2(%rdx), %ecx
	cmpq	$1, %rax
	je	.L14541
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	leal	3(%rdx), %ecx
	cmpq	$2, %rax
	je	.L14541
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	leal	4(%rdx), %ecx
	cmpq	$3, %rax
	je	.L14541
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	leal	5(%rdx), %ecx
	cmpq	$4, %rax
	je	.L14541
	movzbl	0(%r13,%rcx), %esi
	xorb	16(%rbx,%rcx), %sil
	addl	$6, %edx
	movb	%sil, (%r14,%rcx)
	xorb	%sil, 64(%rbx,%rcx)
	cmpq	$5, %rax
	je	.L14541
	movl	%edx, %eax
	movzbl	0(%r13,%rax), %edx
	xorb	16(%rbx,%rax), %dl
	movb	%dl, (%r14,%rax)
	xorb	%dl, 64(%rbx,%rax)
	jmp	.L14541
	.p2align 4,,10
	.p2align 3
.L14525:

	movl	368(%rbx), %eax
	testl	%eax, %eax
	je	.L14530
.L14545:

	testq	%rbp, %rbp
	je	.L14527
	.p2align 4,,10
	.p2align 3
.L14528:

	movl	%eax, %ecx
	movzbl	0(%r13), %edx
	addq	$1, %r14
	addl	$1, %eax
	xorb	16(%rbx,%rcx), %dl
	addq	$1, %r13
	subq	$1, %rbp
	movb	%dl, -1(%r14)
	xorb	%dl, 64(%rbx,%rcx)
	andl	$15, %eax
	je	.L14651
	testq	%rbp, %rbp
	jne	.L14528
	testl	%eax, %eax
	je	.L14651
.L14527:

	movl	%eax, 368(%rbx)
	jmp	.L14526
	.p2align 4,,10
	.p2align 3
.L14651:

	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, %rsi
	movq	%r15, %rdi
	call	*%r12
	testb	$1, 360(%rbx)
	je	.L14531
.L14530:

	testq	%rbp, %rbp
	jne	.L14654
.L14532:

	xorl	%ebp, %ebp
.L14541:

	movl	%ebp, 368(%rbx)
.L14526:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14547:

	.cfi_restore_state
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14654:

	.cfi_restore_state
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	leaq	64(%rbx), %r15
	movq	%rbp, %rdx
	movq	%r14, %rsi
	pushq	%r15
	.cfi_def_cfa_offset 112
	movq	16(%rsp), %rcx
	movq	%r13, %rdi
	leaq	80(%rbx), %r9
	movq	%rbx, %r8
# WAS call	aesni_gcm_encrypt@PLT
	call	.Laesni_gcm_encrypt_local_target
	addq	%rax, %r13
	addq	%rax, %r14
	subq	%rax, %rbp
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
	jmp	.L14531
	.p2align 4,,10
	.p2align 3
.L14537:

	movzbl	16(%rbx), %eax
	xorb	0(%r13), %al
	leaq	-2(%rbp), %rdx
	movb	%al, (%r14)
	xorb	%al, 64(%rbx)
.L14546:

	movzbl	17(%rbx), %eax
	xorb	1(%r13), %al
	movb	%al, 1(%r14)
	xorb	%al, 65(%rbx)
	testq	%rdx, %rdx
	je	.L14541
	movzbl	2(%r13), %eax
	xorb	18(%rbx), %al
	movb	%al, 2(%r14)
	xorb	%al, 66(%rbx)
	cmpq	$3, %rbp
	je	.L14541
	movzbl	3(%r13), %eax
	xorb	19(%rbx), %al
	movb	%al, 3(%r14)
	xorb	%al, 67(%rbx)
	cmpq	$4, %rbp
	je	.L14541
	movzbl	4(%r13), %eax
	xorb	20(%rbx), %al
	movb	%al, 4(%r14)
	xorb	%al, 68(%rbx)
	cmpq	$5, %rbp
	je	.L14541
	movzbl	5(%r13), %eax
	xorb	21(%rbx), %al
	movb	%al, 5(%r14)
	xorb	%al, 69(%rbx)
	cmpq	$6, %rbp
	je	.L14541
	movzbl	6(%r13), %eax
	xorb	22(%rbx), %al
	movb	%al, 6(%r14)
	xorb	%al, 70(%rbx)
	cmpq	$7, %rbp
	je	.L14541
	movzbl	7(%r13), %eax
	xorb	23(%rbx), %al
	movb	%al, 7(%r14)
	xorb	%al, 71(%rbx)
	cmpq	$8, %rbp
	je	.L14541
	movzbl	8(%r13), %eax
	xorb	24(%rbx), %al
	movb	%al, 8(%r14)
	xorb	%al, 72(%rbx)
	cmpq	$9, %rbp
	je	.L14541
	movzbl	9(%r13), %eax
	xorb	25(%rbx), %al
	movb	%al, 9(%r14)
	xorb	%al, 73(%rbx)
	cmpq	$10, %rbp
	je	.L14541
	movzbl	10(%r13), %eax
	xorb	26(%rbx), %al
	movb	%al, 10(%r14)
	xorb	%al, 74(%rbx)
	cmpq	$11, %rbp
	je	.L14541
	movzbl	11(%r13), %eax
	xorb	27(%rbx), %al
	movb	%al, 11(%r14)
	xorb	%al, 75(%rbx)
	cmpq	$12, %rbp
	je	.L14541
	movzbl	12(%r13), %eax
	xorb	28(%rbx), %al
	movb	%al, 12(%r14)
	xorb	%al, 76(%rbx)
	cmpq	$13, %rbp
	je	.L14541
	movzbl	13(%r13), %eax
	xorb	29(%rbx), %al
	movb	%al, 13(%r14)
	xorb	%al, 77(%rbx)
	cmpq	$14, %rbp
	je	.L14541
	movzbl	14(%r13), %eax
	xorb	30(%rbx), %al
	movb	%al, 14(%r14)
	xorb	%al, 78(%rbx)
	cmpq	$15, %rbp
	je	.L14541
	movzbl	31(%rbx), %eax
	xorb	15(%r13), %al
	movb	%al, 15(%r14)
	xorb	%al, 79(%rbx)
	jmp	.L14541
	.p2align 4,,10
	.p2align 3
.L14536:

	movzbl	0(%r13), %edx
	xorb	16(%rbx), %dl
	movb	%dl, (%r14)
	xorb	%dl, 64(%rbx)
	testq	%rax, %rax
	je	.L14541
	leaq	-2(%rbp), %rdx
	jmp	.L14546
	.p2align 4,,10
	.p2align 3
.L14548:

	movq	%rbp, %rsi
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	jmp	.L14538
	.cfi_endproc
.LFE2567:

	.size	CRYPTO_gcm128_encrypt_ctr32, .-CRYPTO_gcm128_encrypt_ctr32
# WAS .section	.text.CRYPTO_gcm128_decrypt_ctr32,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_decrypt_ctr32
	.type	CRYPTO_gcm128_decrypt_ctr32, @function
.LCRYPTO_gcm128_decrypt_ctr32_local_target:
CRYPTO_gcm128_decrypt_ctr32:
.LFB2568:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	movabsq	$68719476704, %rdx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	addq	56(%rdi), %rax
	movq	%rsi, (%rsp)
	setc	%cl
	movq	%r9, 8(%rsp)
	cmpq	%rax, %rdx
	jb	.L14683
	movzbl	%cl, %ecx
	testq	%rcx, %rcx
	jne	.L14683
	movq	%rdi, %rbx
	movq	336(%rdi), %rcx
	movq	%r8, %rbp
	movq	344(%rdi), %rdi
	movl	372(%rbx), %esi
	movq	%rax, 56(%rbx)
	movq	%rdi, 16(%rsp)
	movq	%rcx, %r13
	testl	%esi, %esi
	je	.L14659
	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, %rsi
	movq	%r15, %rdi
	call	*%rcx
	movl	$0, 372(%rbx)
.L14659:

	testb	$1, 360(%rbx)
	je	.L14660
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	12(%rax), %edx
	testb	$2, %dh
	je	.L14661
	movl	8(%rax), %eax
	notl	%eax
	testl	$-1073545216, %eax
	jne	.L14661
	andb	$4, %dh
	je	.L14661
	testq	%rbp, %rbp
	je	.L14661
	movq	(%rsp), %rdi
	movq	%r14, %r9
	movq	%rbp, %r8
	movq	%r12, %rcx
	leaq	368(%rbx), %rdx
	movq	%rbx, %rsi
# WAS call	aes_gcm_decrypt_avx512@PLT
	call	.Laes_gcm_decrypt_avx512_local_target
	jmp	.L14662
	.p2align 4,,10
	.p2align 3
.L14660:

	movl	368(%rbx), %eax
	testl	%eax, %eax
	jne	.L14681
.L14667:

	movl	12(%rbx), %eax
	bswap	%eax
	movl	%eax, %r13d
	cmpq	$3071, %rbp
	jbe	.L14669
	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L14670:

	movq	%r12, %rdx
	movq	24(%rsp), %rsi
	movq	16(%rsp), %rax
	movq	%r15, %rdi
	addl	$192, %r13d
	movl	$3072, %ecx
	subq	$3072, %rbp
	call	*%rax
	movl	$192, %edx
	movq	%r14, %rsi
	movq	%r12, %rdi
	movq	(%rsp), %rcx
	movq	8(%rsp), %rax
	movq	%rbx, %r8
	addq	$3072, %r14
	call	*%rax
	movl	%r13d, %edx
	addq	$3072, %r12
	bswap	%edx
	movl	%edx, 12(%rbx)
	cmpq	$3071, %rbp
	ja	.L14670
.L14669:

	movq	%rbp, %r9
	andq	$-16, %r9
	je	.L14671
	movq	%rbp, %r15
	movq	%r9, %rcx
	movq	%r9, 24(%rsp)
	movq	%r12, %rdx
	shrq	$4, %r15
	movq	16(%rsp), %rax
	leaq	80(%rbx), %rsi
	leaq	64(%rbx), %rdi
	call	*%rax
	addl	%r15d, %r13d
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	movq	(%rsp), %rcx
	movq	8(%rsp), %rax
	movq	%rbx, %r8
	call	*%rax
	movl	%r13d, %edx
	movq	24(%rsp), %r9
	bswap	%edx
	movl	%edx, 12(%rbx)
	addq	%r9, %r14
	addq	%r9, %r12
	subq	%r9, %rbp
.L14671:

	testq	%rbp, %rbp
	je	.L14668
	movq	(%rsp), %rdx
	leaq	16(%rbx), %rsi
	movq	%rbx, %rdi
	call	*352(%rbx)
	leal	1(%r13), %eax
	bswap	%eax
	movl	%eax, 12(%rbx)
	leaq	-1(%rbp), %rax
	cmpq	$6, %rax
	jbe	.L14672
	leaq	63(%rbx), %rdx
	subq	%r12, %rdx
	cmpq	$14, %rdx
	leaq	-1(%r14), %rdx
	seta	%cl
	subq	%r12, %rdx
	cmpq	$14, %rdx
	seta	%dl
	testb	%dl, %cl
	je	.L14673
	movq	%r14, %rdx
	subq	%rbx, %rdx
	subq	$17, %rdx
	cmpq	$62, %rdx
	jbe	.L14673
	cmpq	$14, %rax
	jbe	.L14684
	movdqu	(%r12), %xmm0
	movdqa	64(%rbx), %xmm1
	movq	%rbp, %rcx
	andq	$-16, %rcx
	pxor	%xmm0, %xmm1
	pxor	16(%rbx), %xmm0
	movl	%ecx, %edx
	subq	%rcx, %rax
	movaps	%xmm1, 64(%rbx)
	movups	%xmm0, (%r14)
	testb	$15, %bpl
	je	.L14677
	movq	%rbp, %rsi
	subq	%rcx, %rsi
	leaq	-1(%rsi), %rdi
	cmpq	$6, %rdi
	jbe	.L14678
.L14674:

	leaq	64(%rbx,%rcx), %rdi
	movq	(%r12,%rcx), %xmm0
	movq	(%rdi), %xmm1
	pxor	%xmm0, %xmm1
	movq	%xmm1, (%rdi)
	movq	16(%rbx,%rcx), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%r14,%rcx)
	movq	%rsi, %rcx
	andq	$-8, %rcx
	addl	%ecx, %edx
	subq	%rcx, %rax
	andl	$7, %esi
	je	.L14677
.L14678:

	movl	%edx, %ecx
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	leal	1(%rdx), %ecx
	testq	%rax, %rax
	je	.L14677
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	leal	2(%rdx), %ecx
	cmpq	$1, %rax
	je	.L14677
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	leal	3(%rdx), %ecx
	cmpq	$2, %rax
	je	.L14677
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	leal	4(%rdx), %ecx
	cmpq	$3, %rax
	je	.L14677
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	leal	5(%rdx), %ecx
	cmpq	$4, %rax
	je	.L14677
	movzbl	(%r12,%rcx), %esi
	xorb	%sil, 64(%rbx,%rcx)
	addl	$6, %edx
	xorb	16(%rbx,%rcx), %sil
	movb	%sil, (%r14,%rcx)
	cmpq	$5, %rax
	je	.L14677
	movl	%edx, %eax
	movzbl	(%r12,%rax), %edx
	xorb	%dl, 64(%rbx,%rax)
	xorb	16(%rbx,%rax), %dl
	movb	%dl, (%r14,%rax)
	jmp	.L14677
	.p2align 4,,10
	.p2align 3
.L14661:

	movl	368(%rbx), %eax
	testl	%eax, %eax
	je	.L14666
.L14681:

	testq	%rbp, %rbp
	je	.L14663
	.p2align 4,,10
	.p2align 3
.L14664:

	movl	%eax, %edx
	movzbl	(%r12), %ecx
	addq	$1, %r14
	addl	$1, %eax
	movzbl	16(%rbx,%rdx), %esi
	addq	$1, %r12
	subq	$1, %rbp
	xorl	%ecx, %esi
	movb	%sil, -1(%r14)
	xorb	%cl, 64(%rbx,%rdx)
	andl	$15, %eax
	je	.L14787
	testq	%rbp, %rbp
	jne	.L14664
	testl	%eax, %eax
	je	.L14787
.L14663:

	movl	%eax, 368(%rbx)
	jmp	.L14662
	.p2align 4,,10
	.p2align 3
.L14787:

	leaq	80(%rbx), %rax
	leaq	64(%rbx), %r15
	movq	%rax, %rsi
	movq	%r15, %rdi
	call	*%r13
	testb	$1, 360(%rbx)
	je	.L14667
.L14666:

	testq	%rbp, %rbp
	jne	.L14790
.L14668:

	xorl	%ebp, %ebp
.L14677:

	movl	%ebp, 368(%rbx)
.L14662:

	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14683:

	.cfi_restore_state
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14790:

	.cfi_restore_state
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	leaq	64(%rbx), %r15
	movq	%rbp, %rdx
	movq	%r14, %rsi
	pushq	%r15
	.cfi_def_cfa_offset 112
	movq	16(%rsp), %rcx
	movq	%r12, %rdi
	leaq	80(%rbx), %r9
	movq	%rbx, %r8
# WAS call	aesni_gcm_decrypt@PLT
	call	.Laesni_gcm_decrypt_local_target
	addq	%rax, %r12
	addq	%rax, %r14
	subq	%rax, %rbp
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
	jmp	.L14667
	.p2align 4,,10
	.p2align 3
.L14673:

	movzbl	(%r12), %eax
	xorb	%al, 64(%rbx)
	leaq	-2(%rbp), %rdx
	xorb	16(%rbx), %al
	movb	%al, (%r14)
.L14682:

	movzbl	1(%r12), %eax
	xorb	%al, 65(%rbx)
	xorb	17(%rbx), %al
	movb	%al, 1(%r14)
	testq	%rdx, %rdx
	je	.L14677
	movzbl	2(%r12), %eax
	xorb	%al, 66(%rbx)
	xorb	18(%rbx), %al
	movb	%al, 2(%r14)
	cmpq	$3, %rbp
	je	.L14677
	movzbl	3(%r12), %eax
	xorb	%al, 67(%rbx)
	xorb	19(%rbx), %al
	movb	%al, 3(%r14)
	cmpq	$4, %rbp
	je	.L14677
	movzbl	4(%r12), %eax
	xorb	%al, 68(%rbx)
	xorb	20(%rbx), %al
	movb	%al, 4(%r14)
	cmpq	$5, %rbp
	je	.L14677
	movzbl	5(%r12), %eax
	xorb	%al, 69(%rbx)
	xorb	21(%rbx), %al
	movb	%al, 5(%r14)
	cmpq	$6, %rbp
	je	.L14677
	movzbl	6(%r12), %eax
	xorb	%al, 70(%rbx)
	xorb	22(%rbx), %al
	movb	%al, 6(%r14)
	cmpq	$7, %rbp
	je	.L14677
	movzbl	7(%r12), %eax
	xorb	%al, 71(%rbx)
	xorb	23(%rbx), %al
	movb	%al, 7(%r14)
	cmpq	$8, %rbp
	je	.L14677
	movzbl	8(%r12), %eax
	xorb	%al, 72(%rbx)
	xorb	24(%rbx), %al
	movb	%al, 8(%r14)
	cmpq	$9, %rbp
	je	.L14677
	movzbl	9(%r12), %eax
	xorb	%al, 73(%rbx)
	xorb	25(%rbx), %al
	movb	%al, 9(%r14)
	cmpq	$10, %rbp
	je	.L14677
	movzbl	10(%r12), %eax
	xorb	%al, 74(%rbx)
	xorb	26(%rbx), %al
	movb	%al, 10(%r14)
	cmpq	$11, %rbp
	je	.L14677
	movzbl	11(%r12), %eax
	xorb	%al, 75(%rbx)
	xorb	27(%rbx), %al
	movb	%al, 11(%r14)
	cmpq	$12, %rbp
	je	.L14677
	movzbl	12(%r12), %eax
	xorb	%al, 76(%rbx)
	xorb	28(%rbx), %al
	movb	%al, 12(%r14)
	cmpq	$13, %rbp
	je	.L14677
	movzbl	13(%r12), %eax
	xorb	%al, 77(%rbx)
	xorb	29(%rbx), %al
	movb	%al, 13(%r14)
	cmpq	$14, %rbp
	je	.L14677
	movzbl	14(%r12), %eax
	xorb	%al, 78(%rbx)
	xorb	30(%rbx), %al
	movb	%al, 14(%r14)
	cmpq	$15, %rbp
	je	.L14677
	movzbl	15(%r12), %eax
	xorb	%al, 79(%rbx)
	xorb	31(%rbx), %al
	movb	%al, 15(%r14)
	jmp	.L14677
	.p2align 4,,10
	.p2align 3
.L14672:

	movzbl	(%r12), %edx
	xorb	%dl, 64(%rbx)
	xorb	16(%rbx), %dl
	movb	%dl, (%r14)
	testq	%rax, %rax
	je	.L14677
	leaq	-2(%rbp), %rdx
	jmp	.L14682
	.p2align 4,,10
	.p2align 3
.L14684:

	movq	%rbp, %rsi
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	jmp	.L14674
	.cfi_endproc
.LFE2568:

	.size	CRYPTO_gcm128_decrypt_ctr32, .-CRYPTO_gcm128_decrypt_ctr32
# WAS .section	.text.CRYPTO_gcm128_finish,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_finish
	.type	CRYPTO_gcm128_finish, @function
.LCRYPTO_gcm128_finish_local_target:
CRYPTO_gcm128_finish:
.LFB2569:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	80(%rdi), %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	64(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	cmpq	$0, 368(%rdi)
	movq	336(%rdi), %r14
	je	.L14792
	movq	%r15, %rsi
	movq	%r13, %rdi
	call	*%r14
.L14792:

	movq	48(%rbx), %rax
	movdqu	64(%rbx), %xmm0
	movq	%r15, %rsi
	movq	%r13, %rdi
	salq	$3, %rax
	bswap	%rax
	movq	%rax, (%rsp)
	movq	56(%rbx), %rax
	salq	$3, %rax
	bswap	%rax
	movq	%rax, 8(%rsp)
	pxor	(%rsp), %xmm0
	movups	%xmm0, 64(%rbx)
	call	*%r14
	movdqu	64(%rbx), %xmm1
	movdqu	32(%rbx), %xmm0
	pxor	%xmm1, %xmm0
	movups	%xmm0, 64(%rbx)
	testq	%rbp, %rbp
	je	.L14794
	cmpq	$16, %r12
	jbe	.L14804
.L14794:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14804:

	.cfi_restore_state
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	sete	%al
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	movzbl	%al, %eax
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2569:

	.size	CRYPTO_gcm128_finish, .-CRYPTO_gcm128_finish
# WAS .section	.text.CRYPTO_gcm128_tag,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_gcm128_tag
	.type	CRYPTO_gcm128_tag, @function
.LCRYPTO_gcm128_tag_local_target:
CRYPTO_gcm128_tag:
.LFB2570:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	xorl	%esi, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	xorl	%edx, %edx
# WAS call	CRYPTO_gcm128_finish@PLT
	call	.LCRYPTO_gcm128_finish_local_target
	testq	%rbx, %rbx
	jne	.L14821
.L14805:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14821:

	.cfi_restore_state
	movl	$16, %eax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	leaq	64(%r12), %rax
	cmpl	$8, %ebx
	jnb	.L14807
	testb	$4, %bl
	jne	.L14822
	testl	%ebx, %ebx
	je	.L14805
	movzbl	64(%r12), %edx
	movb	%dl, 0(%rbp)
	testb	$2, %bl
	je	.L14805
	movl	%ebx, %ebx
	movzwl	-2(%rax,%rbx), %eax
	movw	%ax, -2(%rbp,%rbx)
	jmp	.L14805
	.p2align 4,,10
	.p2align 3
.L14807:

	movq	64(%r12), %rdx
	leaq	8(%rbp), %rsi
	andq	$-8, %rsi
	movq	%rdx, 0(%rbp)
	movl	%ebx, %edx
	movq	-8(%rax,%rdx), %rcx
	movq	%rcx, -8(%rbp,%rdx)
	subq	%rsi, %rbp
	addl	%ebp, %ebx
	subq	%rbp, %rax
	andl	$-8, %ebx
	movq	%rax, %rdx
	cmpl	$8, %ebx
	jb	.L14805
	andl	$-8, %ebx
	xorl	%eax, %eax
.L14811:

	movl	%eax, %ecx
	addl	$8, %eax
	movq	(%rdx,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%ebx, %eax
	jb	.L14811
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14822:

	.cfi_restore_state
	movl	64(%r12), %edx
	movl	%ebx, %ebx
	movl	%edx, 0(%rbp)
	movl	-4(%rax,%rbx), %eax
	movl	%eax, -4(%rbp,%rbx)
	jmp	.L14805
	.cfi_endproc
.LFE2570:

	.size	CRYPTO_gcm128_tag, .-CRYPTO_gcm128_tag
# WAS .section	.text.aead_aes_gcm_seal_scatter_impl,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_seal_scatter_impl, @function
.Laead_aes_gcm_seal_scatter_impl_local_target:
aead_aes_gcm_seal_scatter_impl:
.LFB1240:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	movq	%r9, %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$440, %rsp
	.cfi_def_cfa_offset 496
	movq	520(%rsp), %rax
	movq	504(%rsp), %r15
	movq	536(%rsp), %r9
	movq	528(%rsp), %r14
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 424(%rsp)
	xorl	%eax, %eax
	addq	552(%rsp), %r14
	jc	.L14825
	cmpq	%r14, %r8
	jb	.L14856
	cmpq	$0, 496(%rsp)
	je	.L14857
	leaq	32(%rsp), %r13
	movq	%rdi, %rbx
	xorl	%eax, %eax
	movq	%rcx, %r12
	movq	%r13, %rdi
	movl	$48, %ecx
	movq	%rsi, 16(%rsp)
	leaq	248(%rbx), %rsi
	rep stosq
	leaq	112(%rsp), %rax
	movl	$36, %ecx
	movq	%r9, 24(%rsp)
	movq	%rax, %rdi
	rep movsq
	movq	496(%rsp), %rcx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	movq	16(%rsp), %r10
	movq	24(%rsp), %r9
	cmpq	$0, 544(%rsp)
	jne	.L14830
.L14833:

	movq	536(%rbx), %r9
	testq	%r9, %r9
	je	.L14858
	movq	%r10, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	movq	512(%rsp), %r8
# WAS call	CRYPTO_gcm128_encrypt_ctr32@PLT
	call	.LCRYPTO_gcm128_encrypt_ctr32_local_target
	testl	%eax, %eax
	je	.L14827
.L14837:

	cmpq	$0, 528(%rsp)
	je	.L14836
	movq	536(%rbx), %r9
	movq	%rbp, %rcx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	movq	528(%rsp), %r8
	movq	8(%rsp), %rdx
	testq	%r9, %r9
	je	.L14839
# WAS call	CRYPTO_gcm128_encrypt_ctr32@PLT
	call	.LCRYPTO_gcm128_encrypt_ctr32_local_target
	testl	%eax, %eax
	je	.L14827
.L14836:

	movq	528(%rsp), %rsi
	movq	552(%rsp), %rdx
	movq	%r13, %rdi
	addq	%rbp, %rsi
# WAS call	CRYPTO_gcm128_tag@PLT
	call	.LCRYPTO_gcm128_tag_local_target
	movq	%r14, (%r12)
	movl	$1, %eax
	jmp	.L14823
	.p2align 4,,10
	.p2align 3
.L14857:

	movl	$1151, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L14827:

	xorl	%eax, %eax
.L14823:

	movq	424(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L14859
	addq	$440, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14856:

	.cfi_restore_state
	movl	$1147, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L14827
	.p2align 4,,10
	.p2align 3
.L14830:

	movq	544(%rsp), %rdx
	movq	%r9, %rsi
	movq	%r13, %rdi
	movq	%r10, 16(%rsp)
# WAS call	CRYPTO_gcm128_aad@PLT
	call	.LCRYPTO_gcm128_aad_local_target
	movq	16(%rsp), %r10
	testl	%eax, %eax
	jne	.L14833
	jmp	.L14827
	.p2align 4,,10
	.p2align 3
.L14858:

	movq	%r10, %rcx
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	movq	512(%rsp), %r8
# WAS call	CRYPTO_gcm128_encrypt@PLT
	call	.LCRYPTO_gcm128_encrypt_local_target
	testl	%eax, %eax
	jne	.L14837
	jmp	.L14827
	.p2align 4,,10
	.p2align 3
.L14839:

# WAS call	CRYPTO_gcm128_encrypt@PLT
	call	.LCRYPTO_gcm128_encrypt_local_target
	testl	%eax, %eax
	jne	.L14836
	jmp	.L14827
.L14825:

	movl	$1143, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$117, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L14827
.L14859:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1240:

	.size	aead_aes_gcm_seal_scatter_impl, .-aead_aes_gcm_seal_scatter_impl
# WAS .section	.text.aead_aes_gcm_seal_scatter,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_seal_scatter, @function
.Laead_aes_gcm_seal_scatter_local_target:
aead_aes_gcm_seal_scatter:
.LFB1241:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	leaq	8(%rdi), %rax
	movzbl	577(%rdi), %edi
	pushq	%rdi
	.cfi_def_cfa_offset 24
	movq	%rax, %rdi
	pushq	72(%rsp)
	.cfi_def_cfa_offset 32
	pushq	72(%rsp)
	.cfi_def_cfa_offset 40
	pushq	72(%rsp)
	.cfi_def_cfa_offset 48
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	pushq	72(%rsp)
	.cfi_def_cfa_offset 72
	pushq	72(%rsp)
	.cfi_def_cfa_offset 80
# WAS call	aead_aes_gcm_seal_scatter_impl
	call	.Laead_aes_gcm_seal_scatter_impl_local_target
	addq	$72, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1241:

	.size	aead_aes_gcm_seal_scatter, .-aead_aes_gcm_seal_scatter
# WAS .section	.text.aes_gcm_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_gcm_cipher, @function
.Laes_gcm_cipher_local_target:
aes_gcm_cipher:
.LFB1167:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	16(%rdi), %rbx
	movq	%rbx, %rax
	andl	$8, %eax
	addq	%rax, %rbx
	movl	632(%rbx), %r9d
	testl	%r9d, %r9d
	je	.L14865
	movl	636(%rbx), %r8d
	testl	%r8d, %r8d
	je	.L14865
	movq	%rcx, %rbp
	cmpq	$2147483647, %rcx
	ja	.L14865
	movq	%rsi, %r10
	movq	%rdx, %rsi
	testq	%rdx, %rdx
	je	.L14866
	testq	%r10, %r10
	je	.L14895
	movl	28(%rdi), %edi
	leaq	384(%rbx), %rax
	movq	%rcx, %r8
	movq	664(%rbx), %r9
	movq	%r10, %rcx
	movq	%rax, %rsi
	testl	%edi, %edi
	movq	%rbx, %rdi
	je	.L14868
	testq	%r9, %r9
	je	.L14869
# WAS call	CRYPTO_gcm128_encrypt_ctr32@PLT
	call	.LCRYPTO_gcm128_encrypt_ctr32_local_target
	testl	%eax, %eax
	je	.L14865
.L14870:

	movl	%ebp, %eax
.L14896:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14868:

	.cfi_restore_state
	testq	%r9, %r9
	je	.L14871
# WAS call	CRYPTO_gcm128_decrypt_ctr32@PLT
	call	.LCRYPTO_gcm128_decrypt_ctr32_local_target
	testl	%eax, %eax
	jne	.L14870
	.p2align 4,,10
	.p2align 3
.L14865:

	movl	$-1, %eax
	jmp	.L14862
	.p2align 4,,10
	.p2align 3
.L14866:

	movl	28(%rdi), %eax
	testl	%eax, %eax
	jne	.L14872
	movslq	652(%rbx), %rdx
	testl	%edx, %edx
	js	.L14865
	leaq	68(%rdi), %rsi
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_finish@PLT
	call	.LCRYPTO_gcm128_finish_local_target
	testl	%eax, %eax
	je	.L14865
	movl	$0, 636(%rbx)
.L14873:

	xorl	%eax, %eax
.L14862:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14871:

	.cfi_restore_state
# WAS call	CRYPTO_gcm128_decrypt@PLT
	call	.LCRYPTO_gcm128_decrypt_local_target
	testl	%eax, %eax
	je	.L14865
	movl	%ebp, %eax
	jmp	.L14896
	.p2align 4,,10
	.p2align 3
.L14869:

# WAS call	CRYPTO_gcm128_encrypt@PLT
	call	.LCRYPTO_gcm128_encrypt_local_target
	testl	%eax, %eax
	je	.L14865
	movl	%ebp, %eax
	jmp	.L14896
	.p2align 4,,10
	.p2align 3
.L14895:

	movq	%rcx, %rdx
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_aad@PLT
	call	.LCRYPTO_gcm128_aad_local_target
	testl	%eax, %eax
	je	.L14865
	movl	%ebp, %eax
	jmp	.L14896
	.p2align 4,,10
	.p2align 3
.L14872:

	leaq	68(%rdi), %rsi
	movl	$16, %edx
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_tag@PLT
	call	.LCRYPTO_gcm128_tag_local_target
	movl	$16, 652(%rbx)
	movl	$0, 636(%rbx)
	jmp	.L14873
	.cfi_endproc
.LFE1167:

	.size	aes_gcm_cipher, .-aes_gcm_cipher
# WAS .section	.text.aead_aes_gcm_open_gather_impl,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_open_gather_impl, @function
.Laead_aes_gcm_open_gather_impl_local_target:
aead_aes_gcm_open_gather_impl:
.LFB1242:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$440, %rsp
	.cfi_def_cfa_offset 496
	movq	%fs:40, %rax
	movq	%rax, 424(%rsp)
	xorl	%eax, %eax
	movq	496(%rsp), %r13
	movq	512(%rsp), %r8
	testq	%rcx, %rcx
	je	.L14916
	movq	528(%rsp), %rax
	cmpq	%rax, 504(%rsp)
	je	.L14900
	movl	$1222, %r8d
.L14915:

	leaq	.LC27(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L14899:

	xorl	%eax, %eax
.L14897:

	movq	424(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L14917
	addq	$440, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L14900:

	.cfi_restore_state
	leaq	16(%rsp), %r12
	movq	%rdi, %rbx
	movq	%rdx, %r10
	xorl	%eax, %eax
	movq	%rcx, %rdx
	movq	%r12, %rdi
	movl	$48, %ecx
	movq	%rsi, %r14
	rep stosq
	leaq	96(%rsp), %rax
	movl	$36, %ecx
	movq	%r9, %r15
	movq	%rax, %rdi
	leaq	248(%rbx), %rsi
	movq	%r8, 8(%rsp)
	rep movsq
	movq	%rdx, %rcx
	movq	%rbx, %rsi
	movq	%r10, %rdx
	movq	%r12, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	movq	520(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%r12, %rdi
# WAS call	CRYPTO_gcm128_aad@PLT
	call	.LCRYPTO_gcm128_aad_local_target
	testl	%eax, %eax
	je	.L14899
	movq	536(%rbx), %r9
	movq	%r15, %r8
	movq	%r14, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	testq	%r9, %r9
	je	.L14903
# WAS call	CRYPTO_gcm128_decrypt_ctr32@PLT
	call	.LCRYPTO_gcm128_decrypt_ctr32_local_target
	testl	%eax, %eax
	je	.L14899
.L14906:

	movq	528(%rsp), %rdx
	leaq	400(%rsp), %rbx
	movq	%r12, %rdi
	movq	%rbx, %rsi
# WAS call	CRYPTO_gcm128_tag@PLT
	call	.LCRYPTO_gcm128_tag_local_target
	movq	528(%rsp), %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L14905
	movl	$1, %eax
	jmp	.L14897
	.p2align 4,,10
	.p2align 3
.L14916:

	movl	$1217, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L14899
	.p2align 4,,10
	.p2align 3
.L14903:

# WAS call	CRYPTO_gcm128_decrypt@PLT
	call	.LCRYPTO_gcm128_decrypt_local_target
	testl	%eax, %eax
	jne	.L14906
	jmp	.L14899
	.p2align 4,,10
	.p2align 3
.L14905:

	movl	$1250, %r8d
	jmp	.L14915
.L14917:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1242:

	.size	aead_aes_gcm_open_gather_impl, .-aead_aes_gcm_open_gather_impl
# WAS .section	.text.crypto_gcm_clmul_enabled,"ax",@progbits
.text
	.p2align 4
	.globl	crypto_gcm_clmul_enabled
	.hidden	crypto_gcm_clmul_enabled
	.type	crypto_gcm_clmul_enabled, @function
.Lcrypto_gcm_clmul_enabled_local_target:
crypto_gcm_clmul_enabled:
.LFB2571:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rax, %rdx
	xorl	%eax, %eax
	testl	$16777216, (%rdx)
	je	.L14918
	movl	4(%rdx), %eax
	shrl	%eax
	andl	$1, %eax
.L14918:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2571:

	.size	crypto_gcm_clmul_enabled, .-crypto_gcm_clmul_enabled
# WAS .section	.text.crypto_gcm_avx512_enabled,"ax",@progbits
.text
	.p2align 4
	.globl	crypto_gcm_avx512_enabled
	.hidden	crypto_gcm_avx512_enabled
	.type	crypto_gcm_avx512_enabled, @function
.Lcrypto_gcm_avx512_enabled_local_target:
crypto_gcm_avx512_enabled:
.LFB2572:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	xorl	%ecx, %ecx
	movl	12(%rax), %edx
	testb	$2, %dh
	je	.L14924
	movl	8(%rax), %eax
	shrl	$10, %edx
	andl	$1, %edx
	notl	%eax
	testl	$-1073545216, %eax
	cmove	%edx, %ecx
.L14924:

	movl	%ecx, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2572:

	.size	crypto_gcm_avx512_enabled, .-crypto_gcm_avx512_enabled
# WAS .section	.text.gcm_init_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	gcm_init_nohw
	.hidden	gcm_init_nohw
	.type	gcm_init_nohw, @function
.Lgcm_init_nohw_local_target:
gcm_init_nohw:
.LFB2574:

	.cfi_startproc
	endbr64
	movq	8(%rsi), %rax
	movq	%rax, 8(%rdi)
	movq	(%rsi), %rdx
	movq	%rdx, %rcx
	shrdq	$63, %rax, %rcx
	shrdq	$63, %rdx, %rax
	movq	%rcx, 8(%rdi)
	sarq	$63, %rdx
	movabsq	$-4467570830351532032, %rcx
	andq	%rcx, %rdx
	xorq	%rdx, %rax
	movq	%rax, (%rdi)
	ret
	.cfi_endproc
.LFE2574:

	.size	gcm_init_nohw, .-gcm_init_nohw
# WAS .section	.text.CRYPTO_ofb128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_ofb128_encrypt
	.hidden	CRYPTO_ofb128_encrypt
	.type	CRYPTO_ofb128_encrypt, @function
.LCRYPTO_ofb128_encrypt_local_target:
CRYPTO_ofb128_encrypt:
.LFB2578:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	(%r9), %ebp
	movq	%rcx, 8(%rsp)
	movq	%r9, 16(%rsp)
	testl	%ebp, %ebp
	jne	.L14997
	jmp	.L14932
	.p2align 4,,10
	.p2align 3
.L14998:

	movl	%ebp, %edx
	addq	$1, %rbx
	addq	$1, %r15
	addl	$1, %ebp
	movzbl	(%r14,%rdx), %edx
	xorb	-1(%rbx), %dl
	subq	$1, %r13
	movb	%dl, -1(%r15)
	andl	$15, %ebp
	je	.L14932
.L14997:

	testq	%r13, %r13
	jne	.L14998
.L14932:

	cmpq	$15, %r13
	jbe	.L14939
	leaq	-16(%r13), %rdx
	movq	%r15, %rbp
	andq	$-16, %rdx
	leaq	16(%rdx), %rax
	movq	%rax, 24(%rsp)
	leaq	(%rbx,%rax), %r12
	.p2align 4,,10
	.p2align 3
.L14936:

	movq	8(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	addq	$16, %rbx
	call	*96(%rsp)
	movq	-16(%rbx), %rdx
	xorq	(%r14), %rdx
	addq	$16, %rbp
	movq	%rdx, -16(%rbp)
	movq	-8(%rbx), %rdx
	xorq	8(%r14), %rdx
	movq	%rdx, -8(%rbp)
	cmpq	%r12, %rbx
	jne	.L14936
	movq	24(%rsp), %rax
	andl	$15, %r13d
	xorl	%ebp, %ebp
	addq	%rax, %r15
.L14935:

	testq	%r13, %r13
	je	.L14937
	movq	8(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r14, %rdi
	call	*96(%rsp)
	movl	%ebp, %edx
	leal	1(%rbp), %esi
	movzbl	(%r14,%rdx), %ecx
	xorb	(%r12,%rdx), %cl
	movb	%cl, (%r15,%rdx)
	movq	%r13, %rcx
	subq	$1, %rcx
	je	.L14938
	movl	%esi, %edx
	movzbl	(%r14,%rdx), %edi
	xorb	(%r12,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	2(%rbp), %edx
	cmpq	$1, %rcx
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	3(%rbp), %edx
	cmpq	$3, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	4(%rbp), %edx
	cmpq	$4, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	5(%rbp), %edx
	cmpq	$5, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	6(%rbp), %edx
	cmpq	$6, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	7(%rbp), %edx
	cmpq	$7, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	8(%rbp), %edx
	cmpq	$8, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	9(%rbp), %edx
	cmpq	$9, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	10(%rbp), %edx
	cmpq	$10, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	11(%rbp), %edx
	cmpq	$11, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	12(%rbp), %edx
	cmpq	$12, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	movb	%dil, (%r15,%rdx)
	leal	13(%rbp), %edx
	cmpq	$13, %r13
	je	.L14938
	movzbl	(%r12,%rdx), %edi
	xorb	(%r14,%rdx), %dil
	addl	$14, %ebp
	movb	%dil, (%r15,%rdx)
	cmpq	$14, %r13
	je	.L14938
	movl	%ebp, %eax
	movzbl	(%r12,%rax), %edx
	xorb	(%r14,%rax), %dl
	movb	%dl, (%r15,%rax)
	.p2align 4,,10
	.p2align 3
.L14938:

	leal	(%rsi,%rcx), %ebp
.L14937:

	movq	16(%rsp), %rax
	movl	%ebp, (%rax)
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L14939:

	.cfi_restore_state
	movq	%rbx, %r12
	jmp	.L14935
	.cfi_endproc
.LFE2578:

	.size	CRYPTO_ofb128_encrypt, .-CRYPTO_ofb128_encrypt
# WAS .section	.text.AES_ofb128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	AES_ofb128_encrypt
	.type	AES_ofb128_encrypt, @function
.LAES_ofb128_encrypt_local_target:
AES_ofb128_encrypt:
.LFB798:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%r9, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 40
	movq	%fs:40, %rax
	movq	%rax, 16(%rsp)
	movl	(%r9), %eax
	movl	%eax, 12(%rsp)
# WAS pushq	AES_encrypt@GOTPCREL(%rip)
	pushq %rax
	leaq	.LAES_encrypt_local_target(%rip), %rax
	xchg %rax, (%rsp)
	.cfi_def_cfa_offset 48
	leaq	20(%rsp), %r9
# WAS call	CRYPTO_ofb128_encrypt
	call	.LCRYPTO_ofb128_encrypt_local_target
	movl	20(%rsp), %eax
	movl	%eax, (%rbx)
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rdx
	.cfi_def_cfa_offset 32
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15002
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L15002:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE798:

	.size	AES_ofb128_encrypt, .-AES_ofb128_encrypt
# WAS .section	.text.aes_ofb_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_ofb_cipher, @function
.Laes_ofb_cipher_local_target:
aes_ofb_cipher:
.LFB1161:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	subq	$16, %rsp
	.cfi_def_cfa_offset 24
	movq	%rdx, %rdi
	movq	%rcx, %rdx
	movq	16(%rax), %rcx
	leaq	104(%rax), %r9
	leaq	52(%rax), %r8
	pushq	248(%rcx)
	.cfi_def_cfa_offset 32
# WAS call	CRYPTO_ofb128_encrypt
	call	.LCRYPTO_ofb128_encrypt_local_target
	movl	$1, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1161:

	.size	aes_ofb_cipher, .-aes_ofb_cipher
# WAS .section	.text.CRYPTO_xts128_encrypt,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_xts128_encrypt
	.hidden	CRYPTO_xts128_encrypt
	.type	CRYPTO_xts128_encrypt, @function
.LCRYPTO_xts128_encrypt_local_target:
CRYPTO_xts128_encrypt:
.LFB2579:

	.cfi_startproc
	endbr64
	cmpq	$15, %r8
	ja	.L15007
	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15007:

# WAS jmp	CRYPTO_xts128_encrypt.part.0
	jmp	.LCRYPTO_xts128_encrypt.part.0_local_target
	.cfi_endproc
.LFE2579:

	.size	CRYPTO_xts128_encrypt, .-CRYPTO_xts128_encrypt
# WAS .section	.text.CRYPTO_POLYVAL_init,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_POLYVAL_init
	.hidden	CRYPTO_POLYVAL_init
	.type	CRYPTO_POLYVAL_init, @function
.LCRYPTO_POLYVAL_init_local_target:
CRYPTO_POLYVAL_init:
.LFB2582:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movabsq	$-2233785415175766016, %rdi
	subq	$48, %rsp
	.cfi_def_cfa_offset 64
	movq	(%rsi), %rcx
	movq	8(%rsi), %rdx
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r8
	movq	%rcx, %rax
	movq	%rdx, %rsi
	salq	$63, %rax
	shrq	%rsi
	sarq	$63, %rax
	negq	%rax
	sbbq	%rax, %rax
	salq	$56, %rax
	andq	%rdi, %rax
	leaq	272(%rbx), %rdi
	xorq	%rsi, %rax
	leaq	280(%rbx), %rsi
	bswap	%rax
	movq	%rax, 16(%rsp)
	movq	%rdx, %rax
	leaq	16(%rbx), %rdx
	shldq	$63, %rcx, %rax
	leaq	12(%rsp), %rcx
	bswap	%rax
	movq	%rax, 24(%rsp)
# WAS call	CRYPTO_ghash_init
	call	.LCRYPTO_ghash_init_local_target
	pxor	%xmm0, %xmm0
	movups	%xmm0, (%rbx)
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15011
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L15011:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2582:

	.size	CRYPTO_POLYVAL_init, .-CRYPTO_POLYVAL_init
# WAS .section	.text.CRYPTO_POLYVAL_update_blocks,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_POLYVAL_update_blocks
	.hidden	CRYPTO_POLYVAL_update_blocks
	.type	CRYPTO_POLYVAL_update_blocks, @function
.LCRYPTO_POLYVAL_update_blocks_local_target:
CRYPTO_POLYVAL_update_blocks:
.LFB2583:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$528, %rsp
	.cfi_def_cfa_offset 576
	movq	%fs:40, %rax
	movq	%rax, 520(%rsp)
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L15012
	movq	%rdi, %rbx
	movq	%rsi, %r13
	movq	%rdx, %r12
	movq	%rsp, %r14
	leaq	16(%rdi), %rbp
	.p2align 4,,10
	.p2align 3
.L15020:

	movl	$512, %r8d
	movq	%r14, %rdi
	movq	%r13, %rsi
	cmpq	%r8, %r12
	cmovbe	%r12, %r8
	cmpl	$8, %r8d
	jb	.L15014
	movl	%r8d, %ecx
	shrl	$3, %ecx
	rep movsq
.L15014:

	xorl	%eax, %eax
	testb	$4, %r8b
	je	.L15015
	movl	(%rsi), %eax
	movl	%eax, (%rdi)
	movl	$4, %eax
.L15015:

	testb	$2, %r8b
	je	.L15016
	movzwl	(%rsi,%rax), %edx
	movw	%dx, (%rdi,%rax)
	addq	$2, %rax
.L15016:

	testb	$1, %r8b
	je	.L15017
	movzbl	(%rsi,%rax), %edx
	movb	%dl, (%rdi,%rax)
.L15017:

	movq	%r8, %rdi
	addq	%r8, %r13
	subq	%r8, %r12
	shrq	$4, %rdi
	je	.L15018
	salq	$4, %rdi
	movq	%r14, %rax
	addq	%r14, %rdi
	.p2align 4,,10
	.p2align 3
.L15019:

	movq	(%rax), %rdx
	movq	8(%rax), %rcx
	addq	$16, %rax
	bswap	%rcx
	bswap	%rdx
	movq	%rcx, -16(%rax)
	movq	%rdx, -8(%rax)
	cmpq	%rax, %rdi
	jne	.L15019
.L15018:

	movq	%r8, %rcx
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*280(%rbx)
	testq	%r12, %r12
	jne	.L15020
.L15012:

	movq	520(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15040
	addq	$528, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L15040:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2583:

	.size	CRYPTO_POLYVAL_update_blocks, .-CRYPTO_POLYVAL_update_blocks
# WAS .section	.text.CRYPTO_POLYVAL_finish,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_POLYVAL_finish
	.hidden	CRYPTO_POLYVAL_finish
	.type	CRYPTO_POLYVAL_finish, @function
.LCRYPTO_POLYVAL_finish_local_target:
CRYPTO_POLYVAL_finish:
.LFB2584:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	movq	8(%rdi), %rdx
	bswap	%rax
	bswap	%rdx
	movq	%rax, 8(%rsi)
	movq	%rdx, (%rsi)
	ret
	.cfi_endproc
.LFE2584:

	.size	CRYPTO_POLYVAL_finish, .-CRYPTO_POLYVAL_finish
# WAS .section	.text.CTR_DRBG_free,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_free
	.type	CTR_DRBG_free, @function
.LCTR_DRBG_free_local_target:
CTR_DRBG_free:
.LFB3109:

	.cfi_startproc
	endbr64
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.cfi_endproc
.LFE3109:

	.size	CTR_DRBG_free, .-CTR_DRBG_free
# WAS .section	.text.CTR_DRBG_init,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_init
	.type	CTR_DRBG_init, @function
.LCTR_DRBG_init_local_target:
CTR_DRBG_init:
.LFB2593:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	subq	$72, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rdx
	movq	%rdx, 56(%rsp)
	xorl	%edx, %edx
	cmpq	$48, %rcx
	jbe	.L15072
.L15043:

	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15073
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15072:

	.cfi_restore_state
	movdqu	(%rsi), %xmm2
	movdqu	16(%rsi), %xmm3
	movq	%rcx, %rax
	movdqu	32(%rsi), %xmm4
	movaps	%xmm2, (%rsp)
	movaps	%xmm3, 16(%rsp)
	movaps	%xmm4, 32(%rsp)
	testq	%rcx, %rcx
	je	.L15071
	leaq	-1(%rcx), %rdx
	cmpq	$14, %rdx
	jbe	.L15056
	movdqu	(%rdi), %xmm0
	movq	%rcx, %rdx
	pxor	(%rsp), %xmm0
	shrq	$4, %rdx
	movaps	%xmm0, (%rsp)
	cmpq	$1, %rdx
	je	.L15047
	movdqu	16(%rdi), %xmm0
	pxor	16(%rsp), %xmm0
	movaps	%xmm0, 16(%rsp)
	cmpq	$3, %rdx
	jne	.L15047
	movdqu	32(%rdi), %xmm0
	pxor	32(%rsp), %xmm0
	movaps	%xmm0, 32(%rsp)
.L15071:

	movq	%rsp, %rbp
.L15045:

	movdqa	.LC337(%rip), %xmm0
	pxor	(%rsp), %xmm0
	movaps	%xmm0, (%rsp)
	movdqa	.LC338(%rip), %xmm0
	pxor	16(%rsp), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC339(%rip), %xmm0
	pxor	32(%rsp), %xmm0
	movaps	%xmm0, 32(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbx, %rdx
	movl	$256, %esi
	movq	%rbp, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L15074
	testb	$2, %ah
	jne	.L15075
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L15052:

	movdqa	32(%rsp), %xmm5
	movq	%rdx, 248(%rbx)
	movl	$1, %edx
	movq	%rax, 256(%rbx)
	movq	$1, 280(%rbx)
	movups	%xmm5, 264(%rbx)
	jmp	.L15043
.L15047:

	movq	%rax, %rdx
	andq	$-16, %rdx
	testb	$15, %al
	je	.L15071
.L15046:

	movq	%rax, %rcx
	movq	%rsp, %rbp
	subq	%rdx, %rcx
	leaq	-1(%rcx), %rsi
	cmpq	$6, %rsi
	jbe	.L15049
	leaq	0(%rbp,%rdx), %rsi
	movq	(%rdi,%rdx), %xmm1
	movq	(%rsi), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rsi)
	movq	%rcx, %rsi
	andq	$-8, %rsi
	addq	%rsi, %rdx
	andl	$7, %ecx
	je	.L15045
.L15049:

	movzbl	(%rdi,%rdx), %ecx
	xorb	%cl, (%rsp,%rdx)
	leaq	1(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	1(%rdi,%rdx), %esi
	xorb	%sil, (%rsp,%rcx)
	leaq	2(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	2(%rdi,%rdx), %esi
	xorb	%sil, (%rsp,%rcx)
	leaq	3(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	3(%rdi,%rdx), %esi
	xorb	%sil, (%rsp,%rcx)
	leaq	4(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	4(%rdi,%rdx), %esi
	xorb	%sil, (%rsp,%rcx)
	leaq	5(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	5(%rdi,%rdx), %esi
	xorb	%sil, (%rsp,%rcx)
	leaq	6(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15045
	movzbl	6(%rdi,%rdx), %eax
	xorb	%al, (%rsp,%rcx)
	jmp	.L15045
.L15075:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L15052
.L15074:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L15052
.L15056:

	xorl	%edx, %edx
	jmp	.L15046
.L15073:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2593:

	.size	CTR_DRBG_init, .-CTR_DRBG_init
# WAS .section	.text.CTR_DRBG_new,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_new
	.type	CTR_DRBG_new, @function
.LCTR_DRBG_new_local_target:
CTR_DRBG_new:
.LFB2591:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	movl	$288, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L15079
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rax, %rdi
# WAS call	CTR_DRBG_init@PLT
	call	.LCTR_DRBG_init_local_target
	testl	%eax, %eax
	je	.L15079
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15079:

	.cfi_restore_state
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	CTR_DRBG_free@PLT
	call	.LCTR_DRBG_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2591:

	.size	CTR_DRBG_new, .-CTR_DRBG_new
# WAS .section	.text.CTR_DRBG_get_nonce,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_get_nonce
	.type	CTR_DRBG_get_nonce, @function
.LCTR_DRBG_get_nonce_local_target:
CTR_DRBG_get_nonce:
.LFB2595:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
# WAS call	generation_nonce_lock_bss_get@PLT
	call	generation_nonce_lock_bss_get
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
# WAS call	generation_nonce_bss_get@PLT
	call	generation_nonce_bss_get
	movdqu	(%rax), %xmm0
	movq	%rax, %rcx
	movups	%xmm0, (%rbx)
	movzbl	15(%rax), %eax
	movzbl	14(%rcx), %r10d
	movzbl	13(%rcx), %r9d
	movzbl	12(%rcx), %r8d
	addq	$1, %rax
	movzbl	11(%rcx), %edi
	movzbl	10(%rcx), %esi
	shrq	$8, %rax
	movzbl	9(%rcx), %edx
	movzbl	6(%rcx), %r14d
	addq	%rax, %r10
	movzbl	5(%rcx), %r13d
	movzbl	4(%rcx), %r12d
	movq	%r10, %rax
	movzbl	3(%rcx), %ebp
	movzbl	1(%rcx), %r11d
	movzbl	%r10b, %r10d
	shrq	$8, %rax
	addq	%rax, %r9
	movq	%r9, %rax
	movzbl	%r9b, %r9d
	shrq	$8, %rax
	addq	%rax, %r8
	movq	%r8, %rax
	movzbl	%r8b, %r8d
	shrq	$8, %rax
	addq	%rax, %rdi
	movq	%rdi, %rax
	movzbl	%dil, %edi
	shrq	$8, %rax
	addq	%rax, %rsi
	movq	%rsi, %rax
	movzbl	%sil, %esi
	shrq	$8, %rax
	addq	%rdx, %rax
	movzbl	8(%rcx), %edx
	movq	%rax, (%rsp)
	shrq	$8, %rax
	leaq	(%rdx,%rax), %rbx
	movzbl	7(%rcx), %eax
	movq	%rbx, %rdx
	movq	%rbx, 24(%rsp)
	movzbl	2(%rcx), %ebx
	shrq	$8, %rdx
	addq	%rdx, %rax
	movq	%rax, %rdx
	movzbl	%al, %eax
	shrq	$8, %rdx
	addq	%rdx, %r14
	movq	%r14, %rdx
	movzbl	%r14b, %r14d
	shrq	$8, %rdx
	addq	%rdx, %r13
	movq	%r13, %rdx
	movzbl	%r13b, %r13d
	shrq	$8, %rdx
	addq	%rdx, %r12
	movq	%r12, %rdx
	movzbl	%r12b, %r12d
	shrq	$8, %rdx
	addq	%rdx, %rbp
	movq	%rbp, %rdx
	movzbl	%bpl, %ebp
	shrq	$8, %rdx
	addq	%rdx, %rbx
	movq	%rbx, %rdx
	shrq	$8, %rdx
	addq	%rdx, %r11
	movzbl	15(%rcx), %edx
	movq	%r11, %r15
	shrq	$8, %r15
	salq	$8, %rax
	addl	$1, %edx
	addb	(%rcx), %r15b
	orq	%r14, %rax
	movzbl	%r15b, %r15d
	salq	$8, %rax
	orq	%r13, %rax
	salq	$8, %rax
	orq	%r12, %rax
	salq	$8, %rax
	orq	%rbp, %rax
	movzbl	%bl, %ebp
	movq	%rax, %r14
	movzbl	%r11b, %eax
	salq	$8, %r14
	movq	%r14, %rbx
	orq	%rbp, %rbx
	movq	%rbx, %r11
	salq	$8, %r11
	orq	%rax, %r11
	movzbl	%dl, %eax
	movzbl	(%rsp), %edx
	salq	$8, %rax
	salq	$8, %r11
	orq	%r10, %rax
	orq	%r15, %r11
	salq	$8, %rax
	movq	%r11, (%rsp)
	orq	%r9, %rax
	salq	$8, %rax
	orq	%r8, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	movq	16(%rsp), %rdi
	salq	$8, %rax
	orq	%rsi, %rax
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	24(%rsp), %edx
	salq	$8, %rax
	orq	%rdx, %rax
	movq	%rax, 8(%rsp)
	movdqa	(%rsp), %xmm1
	movups	%xmm1, (%rcx)
	addq	$40, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	CRYPTO_STATIC_MUTEX_unlock_write@PLT
	jmp	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write
	.cfi_endproc
.LFE2595:

	.size	CTR_DRBG_get_nonce, .-CTR_DRBG_get_nonce
# WAS .section	.text.CTR_DRBG_init_df,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_init_df
	.type	CTR_DRBG_init_df, @function
.LCTR_DRBG_init_df_local_target:
CTR_DRBG_init_df:
.LFB2596:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %rax
	movq	%rdx, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rcx, %rbx
	addq	$-128, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rdx
	movq	%rdx, 120(%rsp)
	xorl	%edx, %edx
	leaq	48(%rax), %rdx
	cmpq	%rdx, %rsi
	jnb	.L15087
	leaq	(%rcx,%rsi), %rdx
	cmpq	%rdx, %rax
	jnb	.L15087
.L15089:

	xorl	%ebx, %ebx
.L15086:

	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15099
	subq	$-128, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15087:

	.cfi_restore_state
	cmpq	$48, %rbx
	ja	.L15089
	movdqu	(%rax), %xmm1
	movdqu	16(%rax), %xmm2
	movdqu	32(%rax), %xmm3
	movdqu	(%r8), %xmm4
	movaps	%xmm1, (%rsp)
	movaps	%xmm2, 16(%rsp)
	movaps	%xmm3, 32(%rsp)
	movaps	%xmm4, 48(%rsp)
	testq	%rbx, %rbx
	jne	.L15100
.L15090:

	movq	%rsp, %r12
	leaq	64(%rbx), %rdx
	movq	%rbp, %rdi
	movq	%r12, %rcx
	movq	%r12, %rsi
# WAS call	CTR_DRBG_df
	call	.LCTR_DRBG_df_local_target
	movl	%eax, %ebx
	cmpl	$1, %eax
	jne	.L15089
	movdqa	.LC337(%rip), %xmm0
	pxor	(%rsp), %xmm0
	movaps	%xmm0, (%rsp)
	movdqa	.LC338(%rip), %xmm0
	pxor	16(%rsp), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC339(%rip), %xmm0
	pxor	32(%rsp), %xmm0
	movaps	%xmm0, 32(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rdx
	movl	$256, %esi
	movq	%r12, %rdi
	movl	4(%rax), %eax
	testl	$33554432, %eax
	jne	.L15101
	testb	$2, %ah
	jne	.L15102
# WAS call	aes_nohw_set_encrypt_key
	call	.Laes_nohw_set_encrypt_key_local_target
# WAS leaq	aes_nohw_encrypt(%rip), %rdx
	leaq	.Laes_nohw_encrypt_local_target(%rip), %rdx
# WAS leaq	aes_nohw_ctr32_encrypt_blocks(%rip), %rax
	leaq	.Laes_nohw_ctr32_encrypt_blocks_local_target(%rip), %rax
.L15092:

	movdqa	32(%rsp), %xmm5
	movq	%rdx, 248(%rbp)
	movq	%rax, 256(%rbp)
	movq	$1, 280(%rbp)
	movups	%xmm5, 264(%rbp)
	jmp	.L15086
	.p2align 4,,10
	.p2align 3
.L15100:

	leaq	64(%rsp), %rdi
	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L15090
.L15102:

# WAS call	vpaes_set_encrypt_key@PLT
	call	.Lvpaes_set_encrypt_key_local_target
# WAS movq	vpaes_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Lvpaes_encrypt_local_target(%rip), %rdx
# WAS movq	vpaes_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Lvpaes_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L15092
.L15101:

# WAS call	aes_hw_set_encrypt_key@PLT
	call	.Laes_hw_set_encrypt_key_local_target
# WAS movq	aes_hw_encrypt@GOTPCREL(%rip), %rdx
	leaq	.Laes_hw_encrypt_local_target(%rip), %rdx
# WAS movq	aes_hw_ctr32_encrypt_blocks@GOTPCREL(%rip), %rax
	leaq	.Laes_hw_ctr32_encrypt_blocks_local_target(%rip), %rax
	jmp	.L15092
.L15099:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2596:

	.size	CTR_DRBG_init_df, .-CTR_DRBG_init_df
# WAS .section	.text.CTR_DRBG_reseed,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_reseed
	.type	CTR_DRBG_reseed, @function
.LCTR_DRBG_reseed_local_target:
CTR_DRBG_reseed:
.LFB2599:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	subq	$64, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rdx
	movq	%rdx, 56(%rsp)
	xorl	%edx, %edx
	testq	%rcx, %rcx
	je	.L15104
	movq	%rcx, %rax
	cmpq	$48, %rcx
	jbe	.L15105
.L15112:

	xorl	%eax, %eax
.L15103:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L15132
	addq	$64, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15105:

	.cfi_restore_state
	movdqu	(%rsi), %xmm2
	movdqu	16(%rsi), %xmm3
	leaq	-1(%rcx), %rdx
	movdqu	32(%rsi), %xmm4
	movaps	%xmm2, (%rsp)
	movaps	%xmm3, 16(%rsp)
	movaps	%xmm4, 32(%rsp)
	cmpq	$14, %rdx
	jbe	.L15114
	movdqu	(%rdi), %xmm0
	movq	%rcx, %rdx
	pxor	(%rsp), %xmm0
	shrq	$4, %rdx
	movaps	%xmm0, (%rsp)
	cmpq	$1, %rdx
	jne	.L15133
.L15108:

	movq	%rax, %rdx
	andq	$-16, %rdx
	testb	$15, %al
	je	.L15134
.L15107:

	movq	%rax, %rcx
	subq	%rdx, %rcx
	leaq	-1(%rcx), %rsi
	cmpq	$6, %rsi
	movq	%rsp, %rsi
	jbe	.L15110
	leaq	(%rsi,%rdx), %r8
	movq	(%rdi,%rdx), %xmm1
	movq	(%r8), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%r8)
	movq	%rcx, %r8
	andq	$-8, %r8
	addq	%r8, %rdx
	andl	$7, %ecx
	je	.L15104
.L15110:

	movzbl	(%rdi,%rdx), %ecx
	xorb	%cl, (%rsp,%rdx)
	leaq	1(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	1(%rdi,%rdx), %r8d
	xorb	%r8b, (%rsp,%rcx)
	leaq	2(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	2(%rdi,%rdx), %r8d
	xorb	%r8b, (%rsp,%rcx)
	leaq	3(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	3(%rdi,%rdx), %r8d
	xorb	%r8b, (%rsp,%rcx)
	leaq	4(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	4(%rdi,%rdx), %r8d
	xorb	%r8b, (%rsp,%rcx)
	leaq	5(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	5(%rdi,%rdx), %r8d
	xorb	%r8b, (%rsp,%rcx)
	leaq	6(%rdx), %rcx
	cmpq	%rax, %rcx
	jnb	.L15104
	movzbl	6(%rdi,%rdx), %eax
	xorb	%al, (%rsp,%rcx)
.L15104:

	movq	%rbx, %rdi
# WAS call	ctr_drbg_update.part.0.constprop.0
	call	.Lctr_drbg_update.part.0.constprop.0_local_target
	testl	%eax, %eax
	je	.L15112
.L15135:

	movq	$1, 280(%rbx)
	movl	$1, %eax
	jmp	.L15103
	.p2align 4,,10
	.p2align 3
.L15133:

	movdqu	16(%rdi), %xmm0
	pxor	16(%rsp), %xmm0
	movaps	%xmm0, 16(%rsp)
	cmpq	$3, %rdx
	jne	.L15108
	movdqu	32(%rdi), %xmm0
	pxor	32(%rsp), %xmm0
	movq	%rsp, %rsi
	movq	%rbx, %rdi
	movaps	%xmm0, 32(%rsp)
# WAS call	ctr_drbg_update.part.0.constprop.0
	call	.Lctr_drbg_update.part.0.constprop.0_local_target
	testl	%eax, %eax
	jne	.L15135
	jmp	.L15112
	.p2align 4,,10
	.p2align 3
.L15114:

	xorl	%edx, %edx
	jmp	.L15107
.L15132:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L15134:

	movq	%rsp, %rsi
	jmp	.L15104
	.cfi_endproc
.LFE2599:

	.size	CTR_DRBG_reseed, .-CTR_DRBG_reseed
# WAS .section	.text.CTR_DRBG_reseed_df,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_reseed_df
	.type	CTR_DRBG_reseed_df, @function
.LCTR_DRBG_reseed_df_local_target:
CTR_DRBG_reseed_df:
.LFB2600:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rcx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	leaq	48(%rdi), %rax
	cmpq	%rax, %rdx
	jnb	.L15137
	leaq	(%rcx,%rdx), %rax
	xorl	%ebp, %ebp
	cmpq	%rax, %rdi
	jnb	.L15137
.L15136:

	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15153
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15137:

	.cfi_restore_state
	xorl	%ebp, %ebp
	cmpq	$48, %rbx
	ja	.L15136
	movdqu	(%rdi), %xmm0
	movdqu	16(%rdi), %xmm1
	movdqu	32(%rdi), %xmm2
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm2, 32(%rsp)
	testq	%rbx, %rbx
	jne	.L15154
.L15139:

	movq	%rsp, %r13
	leaq	48(%rbx), %rdx
	movq	%r12, %rdi
	movq	%r13, %rcx
	movq	%r13, %rsi
# WAS call	CTR_DRBG_df
	call	.LCTR_DRBG_df_local_target
	movl	%eax, %ebp
	cmpl	$1, %eax
	je	.L15140
.L15142:

	xorl	%ebp, %ebp
.L15141:

	movl	$96, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L15136
	.p2align 4,,10
	.p2align 3
.L15154:

	leaq	48(%rsp), %rdi
	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L15139
	.p2align 4,,10
	.p2align 3
.L15140:

	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	ctr_drbg_update.part.0.constprop.0
	call	.Lctr_drbg_update.part.0.constprop.0_local_target
	testl	%eax, %eax
	je	.L15142
	movq	$1, 280(%r12)
	jmp	.L15141
.L15153:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2600:

	.size	CTR_DRBG_reseed_df, .-CTR_DRBG_reseed_df
# WAS .section	.text.CTR_DRBG_clear,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_clear
	.type	CTR_DRBG_clear, @function
.LCTR_DRBG_clear_local_target:
CTR_DRBG_clear:
.LFB2603:

	.cfi_startproc
	endbr64
	movl	$288, %esi
# WAS jmp	OPENSSL_cleanse@PLT
	jmp	.Lbcm_redirector_OPENSSL_cleanse
	.cfi_endproc
.LFE2603:

	.size	CTR_DRBG_clear, .-CTR_DRBG_clear
# WAS .section	.text.rand_thread_state_free,"ax",@progbits
.text
	.p2align 4
	.type	rand_thread_state_free, @function
.Lrand_thread_state_free_local_target:
rand_thread_state_free:
.LFB2630:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15156
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	thread_states_list_lock_bss_get@PLT
	call	thread_states_list_lock_bss_get
	movq	%rax, %rdi
	movq	%rax, %rbp
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
	movq	320(%rbx), %rax
	testq	%rax, %rax
	je	.L15158
	movq	312(%rbx), %rdx
	movq	%rdx, 312(%rax)
.L15159:

	movq	312(%rbx), %rax
	testq	%rax, %rax
	je	.L15160
	movq	320(%rbx), %rdx
	movq	%rdx, 320(%rax)
.L15160:

	movq	%rbp, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write
	movq	%rbx, %rdi
# WAS call	CTR_DRBG_clear@PLT
	call	.LCTR_DRBG_clear_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_restore 6
	.cfi_def_cfa_offset 8
# WAS jmp	free@PLT
	jmp	.Lbcm_redirector_free
	.p2align 4,,10
	.p2align 3
.L15158:

	.cfi_restore_state
# WAS call	thread_states_list_bss_get@PLT
	call	thread_states_list_bss_get
	cmpq	(%rax), %rbx
	jne	.L15159
	movq	312(%rbx), %rdx
	movq	%rdx, (%rax)
	jmp	.L15159
	.p2align 4,,10
	.p2align 3
.L15156:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	ret
	.cfi_endproc
.LFE2630:

	.size	rand_thread_state_free, .-rand_thread_state_free
# WAS .section	.text.CRYPTO_get_fork_generation,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_get_fork_generation
	.type	CRYPTO_get_fork_generation, @function
.LCRYPTO_get_fork_generation_local_target:
CRYPTO_get_fork_generation:
.LFB2606:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	xorl	%ebx, %ebx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	g_fork_detect_once_bss_get@PLT
	call	g_fork_detect_once_bss_get
# WAS leaq	init_fork_detect(%rip), %rsi
	leaq	.Linit_fork_detect_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	g_fork_detect_addr_bss_get@PLT
	call	g_fork_detect_addr_bss_get
	movq	(%rax), %r13
	testq	%r13, %r13
	je	.L15167
# WAS call	g_fork_detect_lock_bss_get@PLT
	call	g_fork_detect_lock_bss_get
	movq	%rax, %rbp
# WAS call	g_fork_generation_bss_get@PLT
	call	g_fork_generation_bss_get
	movq	%rbp, %rdi
	movq	%rax, %r12
# WAS call	CRYPTO_STATIC_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_read
	movzbl	0(%r13), %eax
	movq	(%r12), %rbx
	movq	%rbp, %rdi
	testb	%al, %al
	jne	.L15174
# WAS call	CRYPTO_STATIC_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_read
	movq	%rbp, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
	movzbl	0(%r13), %eax
	movq	(%r12), %rbx
	testb	%al, %al
	jne	.L15170
	addq	$1, %rbx
	movl	$1, %eax
	movb	$1, 0(%r13)
	cmove	%rax, %rbx
	movq	%rbx, (%r12)
.L15170:

	movq	%rbp, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write
.L15167:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15174:

	.cfi_restore_state
# WAS call	CRYPTO_STATIC_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_read
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2606:

	.size	CRYPTO_get_fork_generation, .-CRYPTO_get_fork_generation
# WAS .section	.text.CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing
	.type	CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing, @function
.LCRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing_local_target:
CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing:
.LFB2607:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_ignore_madv_wipeonfork_bss_get@PLT
	call	g_ignore_madv_wipeonfork_bss_get
	movl	$1, (%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2607:

	.size	CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing, .-CRYPTO_fork_detect_ignore_madv_wipeonfork_for_testing
# WAS .section	.text.exit.rand_thread_state_clear_all,"ax",@progbits
.text
	.p2align 4
	.type	rand_thread_state_clear_all, @function
.Lrand_thread_state_clear_all_local_target:
rand_thread_state_clear_all:
.LFB2629:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	thread_states_list_lock_bss_get@PLT
	call	thread_states_list_lock_bss_get
	movq	%rax, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
# WAS call	state_clear_all_lock_bss_get@PLT
	call	state_clear_all_lock_bss_get
	movq	%rax, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
# WAS call	thread_states_list_bss_get@PLT
	call	thread_states_list_bss_get
	movq	(%rax), %rbx
	testq	%rbx, %rbx
	je	.L15177
	.p2align 4,,10
	.p2align 3
.L15179:

	movq	%rbx, %rdi
# WAS call	CTR_DRBG_clear@PLT
	call	.LCTR_DRBG_clear_local_target
	movq	312(%rbx), %rbx
	testq	%rbx, %rbx
	jne	.L15179
.L15177:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2629:

	.size	rand_thread_state_clear_all, .-rand_thread_state_clear_all
	.section	.fini_array,"aw"
	.align 8
	.quad	rand_thread_state_clear_all
# WAS .section	.text.RAND_load_entropy,"ax",@progbits
.text
	.p2align 4
	.globl	RAND_load_entropy
	.type	RAND_load_entropy, @function
.LRAND_load_entropy_local_target:
RAND_load_entropy:
.LFB2632:

	.cfi_startproc
	endbr64
	movdqu	(%rsi), %xmm0
	movups	%xmm0, (%rdi)
	movdqu	16(%rsi), %xmm1
	movups	%xmm1, 16(%rdi)
	movdqu	32(%rsi), %xmm2
	movups	%xmm2, 32(%rdi)
	ret
	.cfi_endproc
.LFE2632:

	.size	RAND_load_entropy, .-RAND_load_entropy
# WAS .section	.text.unlikely.CRYPTO_get_seed_entropy,"ax",@progbits
.text
.LCOLDB340:

# WAS .section	.text.CRYPTO_get_seed_entropy,"ax",@progbits
.text
.LHOTB340:

	.p2align 4
	.globl	CRYPTO_get_seed_entropy
	.hidden	CRYPTO_get_seed_entropy
	.type	CRYPTO_get_seed_entropy, @function
.LCRYPTO_get_seed_entropy_local_target:
CRYPTO_get_seed_entropy:
.LFB2633:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	$0, (%rsi)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$64, 7(%rax)
	je	.L15198
	movl	$10, %ebx
	.p2align 4,,10
	.p2align 3
.L15187:

	movl	$48, %esi
	movq	%rbp, %rdi
# WAS call	CRYPTO_rdrand_multiple8_buf@PLT
	call	.LCRYPTO_rdrand_multiple8_buf_local_target
	cmpl	$1, %eax
	je	.L15199
	subq	$1, %rbx
	jne	.L15187
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.p2align 4,,10
	.p2align 3
.L15198:

	movl	$1, %ecx
	movl	$1, %edx
	movl	$48, %esi
	movq	%rbp, %rdi
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	je	.L15194
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15199:

	.cfi_restore_state
	movl	$1, (%r12)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.CRYPTO_get_seed_entropy
.text
	.cfi_startproc
	.type	CRYPTO_get_seed_entropy.cold, @function
.LCRYPTO_get_seed_entropy.cold_local_target:
CRYPTO_get_seed_entropy.cold:
.LFSB2633:

.L15194:

	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	.cfi_offset 6, -24
	.cfi_offset 12, -16
	call	CRYPTO_sysrand_for_seed.part.0
	.cfi_endproc
.LFE2633:

# WAS .section	.text.CRYPTO_get_seed_entropy
.text
	.size	CRYPTO_get_seed_entropy, .-CRYPTO_get_seed_entropy
# WAS .section	.text.unlikely.CRYPTO_get_seed_entropy
.text
	.size	CRYPTO_get_seed_entropy.cold, .-CRYPTO_get_seed_entropy.cold
.LCOLDE340:

# WAS .section	.text.CRYPTO_get_seed_entropy
.text
.LHOTE340:

# WAS .section	.text.unlikely.RAND_get_system_entropy_for_custom_prng,"ax",@progbits
.text
.LCOLDB341:

# WAS .section	.text.RAND_get_system_entropy_for_custom_prng,"ax",@progbits
.text
.LHOTB341:

	.p2align 4
	.globl	RAND_get_system_entropy_for_custom_prng
	.type	RAND_get_system_entropy_for_custom_prng, @function
.LRAND_get_system_entropy_for_custom_prng_local_target:
RAND_get_system_entropy_for_custom_prng:
.LFB2639:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	cmpq	$256, %rsi
	ja	.L15203
	movl	$1, %ecx
	movl	$1, %edx
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	je	.L15204
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.RAND_get_system_entropy_for_custom_prng
.text
	.cfi_startproc
	.type	RAND_get_system_entropy_for_custom_prng.cold, @function
.LRAND_get_system_entropy_for_custom_prng.cold_local_target:
RAND_get_system_entropy_for_custom_prng.cold:
.LFSB2639:

.L15203:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L15204:

	call	CRYPTO_sysrand_for_seed.part.0
	.cfi_endproc
.LFE2639:

# WAS .section	.text.RAND_get_system_entropy_for_custom_prng
.text
	.size	RAND_get_system_entropy_for_custom_prng, .-RAND_get_system_entropy_for_custom_prng
# WAS .section	.text.unlikely.RAND_get_system_entropy_for_custom_prng
.text
	.size	RAND_get_system_entropy_for_custom_prng.cold, .-RAND_get_system_entropy_for_custom_prng.cold
.LCOLDE341:

# WAS .section	.text.RAND_get_system_entropy_for_custom_prng
.text
.LHOTE341:

# WAS .section	.text.unlikely.CRYPTO_get_snapsafe_generation,"ax",@progbits
.text
.LCOLDB342:

# WAS .section	.text.CRYPTO_get_snapsafe_generation,"ax",@progbits
.text
.LHOTB342:

	.p2align 4
	.globl	CRYPTO_get_snapsafe_generation
	.type	CRYPTO_get_snapsafe_generation, @function
.LCRYPTO_get_snapsafe_generation_local_target:
CRYPTO_get_snapsafe_generation:
.LFB2643:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	aws_snapsafe_init_bss_get@PLT
	call	aws_snapsafe_init_bss_get
# WAS leaq	do_aws_snapsafe_init(%rip), %rsi
	leaq	.Ldo_aws_snapsafe_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	snapsafety_state_bss_get@PLT
	call	snapsafety_state_bss_get
	movl	(%rax), %ebx
	cmpl	$1, %ebx
	je	.L15207
	cmpl	$2, %ebx
	jne	.L15214
	xorl	%eax, %eax
	movl	$1, %ebx
	movl	%eax, 0(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15214:

	.cfi_restore_state
	testl	%ebx, %ebx
	jne	.L15215
	xorl	%eax, %eax
	movl	%eax, 0(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15207:

	.cfi_restore_state
# WAS call	sgc_addr_bss_get@PLT
	call	sgc_addr_bss_get
	movq	(%rax), %rax
	movl	(%rax), %eax
	movl	%eax, 0(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L15215:

	.cfi_restore_state
	jmp	.L15212
	.cfi_endproc
# WAS .section	.text.unlikely.CRYPTO_get_snapsafe_generation
.text
	.cfi_startproc
	.type	CRYPTO_get_snapsafe_generation.cold, @function
.LCRYPTO_get_snapsafe_generation.cold_local_target:
CRYPTO_get_snapsafe_generation.cold:
.LFSB2643:

.L15212:

	.cfi_def_cfa_offset 32
	.cfi_offset 3, -24
	.cfi_offset 6, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2643:

# WAS .section	.text.CRYPTO_get_snapsafe_generation
.text
	.size	CRYPTO_get_snapsafe_generation, .-CRYPTO_get_snapsafe_generation
# WAS .section	.text.unlikely.CRYPTO_get_snapsafe_generation
.text
	.size	CRYPTO_get_snapsafe_generation.cold, .-CRYPTO_get_snapsafe_generation.cold
.LCOLDE342:

# WAS .section	.text.CRYPTO_get_snapsafe_generation
.text
.LHOTE342:

# WAS .section	.text.CRYPTO_get_snapsafe_active,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_get_snapsafe_active
	.type	CRYPTO_get_snapsafe_active, @function
.LCRYPTO_get_snapsafe_active_local_target:
CRYPTO_get_snapsafe_active:
.LFB2644:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aws_snapsafe_init_bss_get@PLT
	call	aws_snapsafe_init_bss_get
# WAS leaq	do_aws_snapsafe_init(%rip), %rsi
	leaq	.Ldo_aws_snapsafe_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	snapsafety_state_bss_get@PLT
	call	snapsafety_state_bss_get
	cmpl	$1, (%rax)
	sete	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2644:

	.size	CRYPTO_get_snapsafe_active, .-CRYPTO_get_snapsafe_active
# WAS .section	.text.CRYPTO_get_snapsafe_supported,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_get_snapsafe_supported
	.type	CRYPTO_get_snapsafe_supported, @function
.LCRYPTO_get_snapsafe_supported_local_target:
CRYPTO_get_snapsafe_supported:
.LFB2645:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	aws_snapsafe_init_bss_get@PLT
	call	aws_snapsafe_init_bss_get
# WAS leaq	do_aws_snapsafe_init(%rip), %rsi
	leaq	.Ldo_aws_snapsafe_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	snapsafety_state_bss_get@PLT
	call	snapsafety_state_bss_get
	cmpl	$2, (%rax)
	setne	%al
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2645:

	.size	CRYPTO_get_snapsafe_supported, .-CRYPTO_get_snapsafe_supported
# WAS .section	.rodata.CRYPTO_get_sysgenid_path.str1.1,"aMS",@progbits,1
.text
.LC343:

	.string	"/dev/sysgenid"
# WAS .section	.text.CRYPTO_get_sysgenid_path,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_get_sysgenid_path
	.type	CRYPTO_get_sysgenid_path, @function
.LCRYPTO_get_sysgenid_path_local_target:
CRYPTO_get_sysgenid_path:
.LFB2646:

	.cfi_startproc
	endbr64
	leaq	.LC343(%rip), %rax
	ret
	.cfi_endproc
.LFE2646:

	.size	CRYPTO_get_sysgenid_path, .-CRYPTO_get_sysgenid_path
# WAS .section	.text.do_aws_snapsafe_init,"ax",@progbits
.text
	.p2align 4
	.type	do_aws_snapsafe_init, @function
.Ldo_aws_snapsafe_init_local_target:
do_aws_snapsafe_init:
.LFB2641:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	snapsafety_state_bss_get@PLT
	call	snapsafety_state_bss_get
	movl	$2, (%rax)
	movq	%rax, %rbx
# WAS call	sgc_addr_bss_get@PLT
	call	sgc_addr_bss_get
	movq	$0, (%rax)
	movq	%rax, %rbp
# WAS call	CRYPTO_get_sysgenid_path@PLT
	call	.LCRYPTO_get_sysgenid_path_local_target
	xorl	%esi, %esi
	movq	%rax, %rdi
# WAS call	access@PLT
	call	.Lbcm_redirector_access
	testl	%eax, %eax
	jne	.L15221
	movl	$0, (%rbx)
# WAS call	CRYPTO_get_sysgenid_path@PLT
	call	.LCRYPTO_get_sysgenid_path_local_target
	xorl	%esi, %esi
	movq	%rax, %rdi
	xorl	%eax, %eax
# WAS call	open@PLT
	call	.Lbcm_redirector_open
	movl	%eax, %r12d
	cmpl	$-1, %eax
	je	.L15221
	xorl	%edi, %edi
	xorl	%r9d, %r9d
	movl	%eax, %r8d
	movl	$1, %ecx
	movl	$1, %edx
	movl	$4, %esi
# WAS call	mmap@PLT
	call	.Lbcm_redirector_mmap
	movl	%r12d, %edi
	movq	%rax, %r13
# WAS call	close@PLT
	call	.Lbcm_redirector_close
	cmpq	$-1, %r13
	je	.L15221
	movq	%r13, 0(%rbp)
	movl	$1, (%rbx)
.L15221:

	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2641:

	.size	do_aws_snapsafe_init, .-do_aws_snapsafe_init
# WAS .section	.text.CRYPTO_init_sysrand,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_init_sysrand
	.hidden	CRYPTO_init_sysrand
	.type	CRYPTO_init_sysrand, @function
.LCRYPTO_init_sysrand_local_target:
CRYPTO_init_sysrand:
.LFB2653:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	rand_once_bss_get@PLT
	call	rand_once_bss_get
# WAS leaq	init_once(%rip), %rsi
	leaq	.Linit_once_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2653:

	.size	CRYPTO_init_sysrand, .-CRYPTO_init_sysrand
# WAS .section	.text.unlikely.CRYPTO_sysrand,"ax",@progbits
.text
.LCOLDB344:

# WAS .section	.text.CRYPTO_sysrand,"ax",@progbits
.text
.LHOTB344:

	.p2align 4
	.globl	CRYPTO_sysrand
	.hidden	CRYPTO_sysrand
	.type	CRYPTO_sysrand, @function
.LCRYPTO_sysrand_local_target:
CRYPTO_sysrand:
.LFB2654:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	xorl	%ecx, %ecx
	movl	$1, %edx
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	je	.L15236
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.CRYPTO_sysrand
.text
	.cfi_startproc
	.type	CRYPTO_sysrand.cold, @function
.LCRYPTO_sysrand.cold_local_target:
CRYPTO_sysrand.cold:
.LFSB2654:

.L15236:

	.cfi_def_cfa_offset 16
# WAS call	CRYPTO_sysrand.part.0
	call	.LCRYPTO_sysrand.part.0_local_target
	.cfi_endproc
.LFE2654:

# WAS .section	.text.CRYPTO_sysrand
.text
	.size	CRYPTO_sysrand, .-CRYPTO_sysrand
# WAS .section	.text.unlikely.CRYPTO_sysrand
.text
	.size	CRYPTO_sysrand.cold, .-CRYPTO_sysrand.cold
.LCOLDE344:

# WAS .section	.text.CRYPTO_sysrand
.text
.LHOTE344:

# WAS .section	.text.unlikely.CRYPTO_sysrand_for_seed,"ax",@progbits
.text
.LCOLDB345:

# WAS .section	.text.CRYPTO_sysrand_for_seed,"ax",@progbits
.text
.LHOTB345:

	.p2align 4
	.globl	CRYPTO_sysrand_for_seed
	.hidden	CRYPTO_sysrand_for_seed
	.type	CRYPTO_sysrand_for_seed, @function
.LCRYPTO_sysrand_for_seed_local_target:
CRYPTO_sysrand_for_seed:
.LFB2655:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$1, %ecx
	movl	$1, %edx
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	je	.L15240
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.CRYPTO_sysrand_for_seed
.text
	.cfi_startproc
	.type	CRYPTO_sysrand_for_seed.cold, @function
.LCRYPTO_sysrand_for_seed.cold_local_target:
CRYPTO_sysrand_for_seed.cold:
.LFSB2655:

.L15240:

	.cfi_def_cfa_offset 16
	call	CRYPTO_sysrand_for_seed.part.0
	.cfi_endproc
.LFE2655:

# WAS .section	.text.CRYPTO_sysrand_for_seed
.text
	.size	CRYPTO_sysrand_for_seed, .-CRYPTO_sysrand_for_seed
# WAS .section	.text.unlikely.CRYPTO_sysrand_for_seed
.text
	.size	CRYPTO_sysrand_for_seed.cold, .-CRYPTO_sysrand_for_seed.cold
.LCOLDE345:

# WAS .section	.text.CRYPTO_sysrand_for_seed
.text
.LHOTE345:

# WAS .section	.rodata.CRYPTO_sysrand_if_available.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC346:

	.string	"opportunistic entropy fill failed"
# WAS .section	.text.unlikely.CRYPTO_sysrand_if_available,"ax",@progbits
.text
.LCOLDB347:

# WAS .section	.text.CRYPTO_sysrand_if_available,"ax",@progbits
.text
.LHOTB347:

	.p2align 4
	.globl	CRYPTO_sysrand_if_available
	.hidden	CRYPTO_sysrand_if_available
	.type	CRYPTO_sysrand_if_available, @function
.LCRYPTO_sysrand_if_available_local_target:
CRYPTO_sysrand_if_available:
.LFB2656:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	jne	.L15246
	movl	%eax, %ebx
# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	cmpl	$11, (%rax)
	jne	.L15244
	testq	%rbp, %rbp
	jne	.L15251
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15246:

	.cfi_restore_state
	movl	$1, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15251:

	.cfi_restore_state
	movq	%rbp, %rdx
	movq	%r12, %rdi
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.CRYPTO_sysrand_if_available
.text
	.cfi_startproc
	.type	CRYPTO_sysrand_if_available.cold, @function
.LCRYPTO_sysrand_if_available.cold_local_target:
CRYPTO_sysrand_if_available.cold:
.LFSB2656:

.L15244:

	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	.cfi_offset 6, -24
	.cfi_offset 12, -16
	leaq	.LC346(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2656:

# WAS .section	.text.CRYPTO_sysrand_if_available
.text
	.size	CRYPTO_sysrand_if_available, .-CRYPTO_sysrand_if_available
# WAS .section	.text.unlikely.CRYPTO_sysrand_if_available
.text
	.size	CRYPTO_sysrand_if_available.cold, .-CRYPTO_sysrand_if_available.cold
.LCOLDE347:

# WAS .section	.text.CRYPTO_sysrand_if_available
.text
.LHOTE347:

# WAS .section	.text.BN_BLINDING_new,"ax",@progbits
.text
	.p2align 4
	.globl	BN_BLINDING_new
	.hidden	BN_BLINDING_new
	.type	BN_BLINDING_new, @function
.LBN_BLINDING_new_local_target:
BN_BLINDING_new:
.LFB2657:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L15253
	movq	%rax, %rbx
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, (%rbx)
	testq	%rax, %rax
	je	.L15254
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L15264
	movq	%rbx, %rax
	movl	$31, 16(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15264:

	.cfi_restore_state
	movq	(%rbx), %rax
.L15254:

	movq	%rax, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L15253:

	xorl	%ebx, %ebx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2657:

	.size	BN_BLINDING_new, .-BN_BLINDING_new
# WAS .section	.text.BN_BLINDING_free,"ax",@progbits
.text
	.p2align 4
	.globl	BN_BLINDING_free
	.hidden	BN_BLINDING_free
	.type	BN_BLINDING_free, @function
.LBN_BLINDING_free_local_target:
BN_BLINDING_free:
.LFB2658:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15265
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L15265:

	ret
	.cfi_endproc
.LFE2658:

	.size	BN_BLINDING_free, .-BN_BLINDING_free
# WAS .section	.text.BN_BLINDING_invalidate,"ax",@progbits
.text
	.p2align 4
	.globl	BN_BLINDING_invalidate
	.hidden	BN_BLINDING_invalidate
	.type	BN_BLINDING_invalidate, @function
.LBN_BLINDING_invalidate_local_target:
BN_BLINDING_invalidate:
.LFB2659:

	.cfi_startproc
	endbr64
	movl	$31, 16(%rdi)
	ret
	.cfi_endproc
.LFE2659:

	.size	BN_BLINDING_invalidate, .-BN_BLINDING_invalidate
# WAS .section	.text.BN_BLINDING_invert,"ax",@progbits
.text
	.p2align 4
	.globl	BN_BLINDING_invert
	.hidden	BN_BLINDING_invert
	.type	BN_BLINDING_invert, @function
.LBN_BLINDING_invert_local_target:
BN_BLINDING_invert:
.LFB2662:

	.cfi_startproc
	endbr64
	movq	8(%rsi), %rax
	movq	%rcx, %r8
	movq	%rdi, %rsi
	movq	%rdx, %rcx
	movq	%rax, %rdx
# WAS jmp	BN_mod_mul_montgomery@PLT
	jmp	.LBN_mod_mul_montgomery_local_target
	.cfi_endproc
.LFE2662:

	.size	BN_BLINDING_invert, .-BN_BLINDING_invert
# WAS .section	.rodata.RSA_padding_add_PKCS1_type_1.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC348:

	.string	"/aws-lc/crypto/fipsmodule/rsa/padding.c"
# WAS .section	.text.RSA_padding_add_PKCS1_type_1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_padding_add_PKCS1_type_1
	.hidden	RSA_padding_add_PKCS1_type_1
	.type	RSA_padding_add_PKCS1_type_1, @function
.LRSA_padding_add_PKCS1_type_1_local_target:
RSA_padding_add_PKCS1_type_1:
.LFB2664:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	cmpq	$10, %rsi
	jbe	.L15284
	leaq	-11(%rsi), %rax
	movq	%rcx, %r12
	cmpq	%rcx, %rax
	jb	.L15285
	movq	%rsi, %rbx
	movq	%rdx, %r13
	movl	$256, %eax
	movq	%rdi, %rbp
	subq	%rcx, %rbx
	movw	%ax, (%rdi)
	movq	%rbx, %rdx
	subq	$3, %rdx
	jne	.L15277
	movb	$0, 2(%rdi)
	leaq	3(%rdi), %rdi
.L15278:

	movq	%r12, %rdx
	movq	%r13, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L15279:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15277:

	.cfi_restore_state
	leaq	2(%rdi), %rdi
	movl	$255, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movb	$0, -1(%rbp,%rbx)
	testq	%r12, %r12
	je	.L15279
	leaq	0(%rbp,%rbx), %rdi
	jmp	.L15278
	.p2align 4,,10
	.p2align 3
.L15284:

	movl	$77, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L15286:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15285:

	.cfi_restore_state
	movl	$82, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15286
	.cfi_endproc
.LFE2664:

	.size	RSA_padding_add_PKCS1_type_1, .-RSA_padding_add_PKCS1_type_1
# WAS .section	.text.RSA_padding_check_PKCS1_type_1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_padding_check_PKCS1_type_1
	.hidden	RSA_padding_check_PKCS1_type_1
	.type	RSA_padding_check_PKCS1_type_1, @function
.LRSA_padding_check_PKCS1_type_1_local_target:
RSA_padding_check_PKCS1_type_1:
.LFB2665:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	cmpq	$1, %r8
	jbe	.L15307
	cmpb	$0, (%rcx)
	jne	.L15290
	cmpb	$1, 1(%rcx)
	jne	.L15290
	movq	%rdi, %r9
	movq	%rsi, %rbp
	movl	$2, %eax
	cmpq	$2, %r8
	jne	.L15291
	jmp	.L15292
	.p2align 4,,10
	.p2align 3
.L15309:

	cmpb	$-1, %dil
	jne	.L15308
	addq	$1, %rax
	cmpq	%rax, %r8
	je	.L15292
.L15291:

	movzbl	(%rcx,%rax), %edi
	testb	%dil, %dil
	jne	.L15309
	cmpq	%rax, %r8
	je	.L15292
	cmpq	$9, %rax
	jbe	.L15310
	addq	$1, %rax
	movq	%r8, %rbx
	subq	%rax, %rbx
	cmpq	%rbx, %rdx
	jb	.L15311
	testq	%rbx, %rbx
	je	.L15299
	leaq	(%rcx,%rax), %rsi
	movq	%rbx, %rdx
	movq	%r9, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L15299:

	movq	%rbx, 0(%rbp)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15290:

	.cfi_restore_state
	movl	$106, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15289:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15307:

	.cfi_restore_state
	movl	$100, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15289
	.p2align 4,,10
	.p2align 3
.L15308:

	movl	$118, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15289
.L15310:

	movl	$129, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15289
	.p2align 4,,10
	.p2align 3
.L15311:

	movl	$137, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$113, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15289
	.p2align 4,,10
	.p2align 3
.L15292:

	movl	$124, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$131, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15289
	.cfi_endproc
.LFE2665:

	.size	RSA_padding_check_PKCS1_type_1, .-RSA_padding_check_PKCS1_type_1
# WAS .section	.text.RSA_padding_add_none,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_padding_add_none
	.hidden	RSA_padding_add_none
	.type	RSA_padding_add_none, @function
.LRSA_padding_add_none_local_target:
RSA_padding_add_none:
.LFB2666:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	cmpq	%rcx, %rsi
	jb	.L15322
	cmpq	%rsi, %rcx
	jb	.L15323
	testq	%rcx, %rcx
	jne	.L15324
.L15317:

	movl	$1, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15324:

	.cfi_restore_state
	movq	%rdx, %rsi
	movq	%rcx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L15317
	.p2align 4,,10
	.p2align 3
.L15322:

	movl	$149, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L15325:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15323:

	.cfi_restore_state
	movl	$154, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$116, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15325
	.cfi_endproc
.LFE2666:

	.size	RSA_padding_add_none, .-RSA_padding_add_none
# WAS .section	.text.RSA_up_ref,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_up_ref
	.type	RSA_up_ref, @function
.LRSA_up_ref_local_target:
RSA_up_ref:
.LFB2681:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	addq	$88, %rdi
# WAS call	CRYPTO_refcount_inc@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_inc
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2681:

	.size	RSA_up_ref, .-RSA_up_ref
# WAS .section	.text.EVP_PKEY_set1_RSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_set1_RSA
	.type	EVP_PKEY_set1_RSA, @function
.LEVP_PKEY_set1_RSA_local_target:
EVP_PKEY_set1_RSA:
.LFB2142:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rbx
# WAS call	EVP_PKEY_assign_RSA@PLT
	call	.LEVP_PKEY_assign_RSA_local_target
	testl	%eax, %eax
	jne	.L15334
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15334:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	RSA_up_ref@PLT
	call	.LRSA_up_ref_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2142:

	.size	EVP_PKEY_set1_RSA, .-EVP_PKEY_set1_RSA
# WAS .section	.text.EVP_PKEY_get1_RSA,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_get1_RSA
	.type	EVP_PKEY_get1_RSA, @function
.LEVP_PKEY_get1_RSA_local_target:
EVP_PKEY_get1_RSA:
.LFB2145:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	EVP_PKEY_get0_RSA@PLT
	call	.LEVP_PKEY_get0_RSA_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L15335
	movq	%rax, %rdi
# WAS call	RSA_up_ref@PLT
	call	.LRSA_up_ref_local_target
.L15335:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2145:

	.size	EVP_PKEY_get1_RSA, .-EVP_PKEY_get1_RSA
# WAS .section	.text.RSA_bits,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_bits
	.type	RSA_bits, @function
.LRSA_bits_local_target:
RSA_bits:
.LFB2682:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	BN_num_bits@PLT
	jmp	.LBN_num_bits_local_target
	.cfi_endproc
.LFE2682:

	.size	RSA_bits, .-RSA_bits
# WAS .section	.text.RSA_get0_n,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_n
	.type	RSA_get0_n, @function
.LRSA_get0_n_local_target:
RSA_get0_n:
.LFB2683:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rax
	ret
	.cfi_endproc
.LFE2683:

	.size	RSA_get0_n, .-RSA_get0_n
# WAS .section	.text.RSA_get0_e,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_e
	.type	RSA_get0_e, @function
.LRSA_get0_e_local_target:
RSA_get0_e:
.LFB2684:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	ret
	.cfi_endproc
.LFE2684:

	.size	RSA_get0_e, .-RSA_get0_e
# WAS .section	.text.RSA_get0_d,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_d
	.type	RSA_get0_d, @function
.LRSA_get0_d_local_target:
RSA_get0_d:
.LFB2685:

	.cfi_startproc
	endbr64
	movq	24(%rdi), %rax
	ret
	.cfi_endproc
.LFE2685:

	.size	RSA_get0_d, .-RSA_get0_d
# WAS .section	.text.RSA_get0_p,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_p
	.type	RSA_get0_p, @function
.LRSA_get0_p_local_target:
RSA_get0_p:
.LFB2686:

	.cfi_startproc
	endbr64
	movq	32(%rdi), %rax
	ret
	.cfi_endproc
.LFE2686:

	.size	RSA_get0_p, .-RSA_get0_p
# WAS .section	.text.RSA_get0_q,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_q
	.type	RSA_get0_q, @function
.LRSA_get0_q_local_target:
RSA_get0_q:
.LFB2687:

	.cfi_startproc
	endbr64
	movq	40(%rdi), %rax
	ret
	.cfi_endproc
.LFE2687:

	.size	RSA_get0_q, .-RSA_get0_q
# WAS .section	.text.RSA_get0_dmp1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_dmp1
	.type	RSA_get0_dmp1, @function
.LRSA_get0_dmp1_local_target:
RSA_get0_dmp1:
.LFB2688:

	.cfi_startproc
	endbr64
	movq	48(%rdi), %rax
	ret
	.cfi_endproc
.LFE2688:

	.size	RSA_get0_dmp1, .-RSA_get0_dmp1
# WAS .section	.text.RSA_get0_dmq1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_dmq1
	.type	RSA_get0_dmq1, @function
.LRSA_get0_dmq1_local_target:
RSA_get0_dmq1:
.LFB2689:

	.cfi_startproc
	endbr64
	movq	56(%rdi), %rax
	ret
	.cfi_endproc
.LFE2689:

	.size	RSA_get0_dmq1, .-RSA_get0_dmq1
# WAS .section	.text.RSA_get0_iqmp,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_iqmp
	.type	RSA_get0_iqmp, @function
.LRSA_get0_iqmp_local_target:
RSA_get0_iqmp:
.LFB2690:

	.cfi_startproc
	endbr64
	movq	64(%rdi), %rax
	ret
	.cfi_endproc
.LFE2690:

	.size	RSA_get0_iqmp, .-RSA_get0_iqmp
# WAS .section	.text.RSA_get0_key,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_key
	.type	RSA_get0_key, @function
.LRSA_get0_key_local_target:
RSA_get0_key:
.LFB2691:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L15351
	movq	8(%rdi), %rax
	movq	%rax, (%rsi)
.L15351:

	testq	%rdx, %rdx
	je	.L15352
	movq	16(%rdi), %rax
	movq	%rax, (%rdx)
.L15352:

	testq	%rcx, %rcx
	je	.L15350
	movq	24(%rdi), %rax
	movq	%rax, (%rcx)
.L15350:

	ret
	.cfi_endproc
.LFE2691:

	.size	RSA_get0_key, .-RSA_get0_key
# WAS .section	.text.RSA_get0_factors,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_factors
	.type	RSA_get0_factors, @function
.LRSA_get0_factors_local_target:
RSA_get0_factors:
.LFB2692:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L15364
	movq	32(%rdi), %rax
	movq	%rax, (%rsi)
.L15364:

	testq	%rdx, %rdx
	je	.L15363
	movq	40(%rdi), %rax
	movq	%rax, (%rdx)
.L15363:

	ret
	.cfi_endproc
.LFE2692:

	.size	RSA_get0_factors, .-RSA_get0_factors
# WAS .section	.text.RSA_get0_pss_params,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_pss_params
	.type	RSA_get0_pss_params, @function
.LRSA_get0_pss_params_local_target:
RSA_get0_pss_params:
.LFB2693:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2693:

	.size	RSA_get0_pss_params, .-RSA_get0_pss_params
# WAS .section	.text.RSA_get0_crt_params,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get0_crt_params
	.type	RSA_get0_crt_params, @function
.LRSA_get0_crt_params_local_target:
RSA_get0_crt_params:
.LFB2694:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	je	.L15374
	movq	48(%rdi), %rax
	movq	%rax, (%rsi)
.L15374:

	testq	%rdx, %rdx
	je	.L15375
	movq	56(%rdi), %rax
	movq	%rax, (%rdx)
.L15375:

	testq	%rcx, %rcx
	je	.L15373
	movq	64(%rdi), %rax
	movq	%rax, (%rcx)
.L15373:

	ret
	.cfi_endproc
.LFE2694:

	.size	RSA_get0_crt_params, .-RSA_get0_crt_params
# WAS .section	.text.RSA_meth_new,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_new
	.type	RSA_meth_new, @function
.LRSA_meth_new_local_target:
RSA_meth_new:
.LFB2698:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$88, %edi
	movl	%esi, %ebx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L15390
	cmpl	$1, %ebx
	jne	.L15386
	movl	$1, 80(%rax)
.L15386:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15390:

	.cfi_restore_state
	movl	$455, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$65, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movq	%rax, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %rax
	jmp	.L15386
	.cfi_endproc
.LFE2698:

	.size	RSA_meth_new, .-RSA_meth_new
# WAS .section	.text.RSA_set_method,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set_method
	.type	RSA_set_method, @function
.LRSA_set_method_local_target:
RSA_set_method:
.LFB2699:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15395
	testq	%rsi, %rsi
	je	.L15395
	movq	%rsi, (%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15395:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$467, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2699:

	.size	RSA_set_method, .-RSA_set_method
# WAS .section	.text.RSA_get_method,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get_method
	.type	RSA_get_method, @function
.LRSA_get_method_local_target:
RSA_get_method:
.LFB2700:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15406
	movq	(%rdi), %rax
	ret
	.p2align 4,,10
	.p2align 3
.L15406:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$477, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2700:

	.size	RSA_get_method, .-RSA_get_method
# WAS .section	.text.RSA_meth_free,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_free
	.type	RSA_meth_free, @function
.LRSA_meth_free_local_target:
RSA_meth_free:
.LFB2701:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15407
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L15407:

	ret
	.cfi_endproc
.LFE2701:

	.size	RSA_meth_free, .-RSA_meth_free
# WAS .section	.text.RSA_meth_set_init,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_init
	.type	RSA_meth_set_init, @function
.LRSA_meth_set_init_local_target:
RSA_meth_set_init:
.LFB2702:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15416
	movq	%rsi, 8(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15416:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$493, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2702:

	.size	RSA_meth_set_init, .-RSA_meth_set_init
# WAS .section	.text.RSA_meth_set_finish,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_finish
	.type	RSA_meth_set_finish, @function
.LRSA_meth_set_finish_local_target:
RSA_meth_set_finish:
.LFB2703:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15424
	movq	%rsi, 16(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15424:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$503, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2703:

	.size	RSA_meth_set_finish, .-RSA_meth_set_finish
# WAS .section	.text.RSA_meth_set_priv_dec,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_priv_dec
	.type	RSA_meth_set_priv_dec, @function
.LRSA_meth_set_priv_dec_local_target:
RSA_meth_set_priv_dec:
.LFB2704:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15432
	movq	%rsi, 56(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15432:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$516, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2704:

	.size	RSA_meth_set_priv_dec, .-RSA_meth_set_priv_dec
# WAS .section	.text.RSA_meth_set_priv_enc,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_priv_enc
	.type	RSA_meth_set_priv_enc, @function
.LRSA_meth_set_priv_enc_local_target:
RSA_meth_set_priv_enc:
.LFB2705:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15440
	movq	%rsi, 40(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15440:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$529, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2705:

	.size	RSA_meth_set_priv_enc, .-RSA_meth_set_priv_enc
# WAS .section	.text.RSA_meth_set_pub_dec,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_pub_dec
	.type	RSA_meth_set_pub_dec, @function
.LRSA_meth_set_pub_dec_local_target:
RSA_meth_set_pub_dec:
.LFB2706:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15448
	movq	%rsi, 48(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15448:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$542, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2706:

	.size	RSA_meth_set_pub_dec, .-RSA_meth_set_pub_dec
# WAS .section	.text.RSA_meth_set_pub_enc,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_pub_enc
	.type	RSA_meth_set_pub_enc, @function
.LRSA_meth_set_pub_enc_local_target:
RSA_meth_set_pub_enc:
.LFB2707:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15456
	movq	%rsi, 64(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15456:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$555, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2707:

	.size	RSA_meth_set_pub_enc, .-RSA_meth_set_pub_enc
# WAS .section	.text.RSA_meth_set0_app_data,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set0_app_data
	.type	RSA_meth_set0_app_data, @function
.LRSA_meth_set0_app_data_local_target:
RSA_meth_set0_app_data:
.LFB2708:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15464
	movq	%rsi, (%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15464:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$565, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2708:

	.size	RSA_meth_set0_app_data, .-RSA_meth_set0_app_data
# WAS .section	.text.RSA_meth_set_sign,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_meth_set_sign
	.type	RSA_meth_set_sign, @function
.LRSA_meth_set_sign_local_target:
RSA_meth_set_sign:
.LFB2709:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15472
	movq	%rsi, 32(%rdi)
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15472:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$577, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2709:

	.size	RSA_meth_set_sign, .-RSA_meth_set_sign
# WAS .section	.text.RSA_size,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_size
	.type	RSA_size, @function
.LRSA_size_local_target:
RSA_size:
.LFB2712:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L15474
	movq	24(%rax), %rax
	testq	%rax, %rax
	je	.L15474
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	call	*%rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15474:

	movq	8(%rdi), %rdi
# WAS jmp	BN_num_bytes@PLT
	jmp	.LBN_num_bytes_local_target
	.cfi_endproc
.LFE2712:

	.size	RSA_size, .-RSA_size
# WAS .section	.text.pkey_pss_init_verify,"ax",@progbits
.text
	.p2align 4
	.type	pkey_pss_init_verify, @function
.Lpkey_pss_init_verify_local_target:
pkey_pss_init_verify:
.LFB3111:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movq	40(%rdi), %rbx
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	(%rdi), %rax
	movq	$0, 16(%rsp)
	movq	$0, 8(%rsp)
	cmpl	$912, (%rax)
	jne	.L15488
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L15488
	movq	8(%rax), %rbp
	movq	72(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L15490
	leaq	4(%rsp), %rcx
	leaq	8(%rsp), %rdx
	leaq	16(%rsp), %rsi
# WAS call	RSASSA_PSS_PARAMS_get@PLT
	call	.Lbcm_redirector_RSASSA_PSS_PARAMS_get
	testl	%eax, %eax
	jne	.L15506
.L15488:

	xorl	%eax, %eax
	jmp	.L15486
	.p2align 4,,10
	.p2align 3
.L15506:

	movq	%rbp, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movq	16(%rsp), %rdi
	movl	%eax, %r12d
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbp, %rdi
	subl	%eax, %r12d
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	movl	4(%rsp), %edx
	andl	$7, %eax
	cmpl	$1, %eax
	movd	%edx, %xmm2
	setne	%al
	pshufd	$0xe0, %xmm2, %xmm1
	movzbl	%al, %eax
	leal	-3(%r12,%rax), %eax
	cmpl	%edx, %eax
	jl	.L15507
	movq	16(%rsp), %xmm0
	movq	%xmm1, 40(%rbx)
	movhps	8(%rsp), %xmm0
	movups	%xmm0, 24(%rbx)
.L15490:

	movl	$1, %eax
.L15486:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L15508
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15507:

	.cfi_restore_state
	movl	$162, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$501, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15486
.L15508:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3111:

	.size	pkey_pss_init_verify, .-pkey_pss_init_verify
# WAS .section	.text.pkey_pss_init_sign,"ax",@progbits
.text
	.p2align 4
	.type	pkey_pss_init_sign, @function
.Lpkey_pss_init_sign_local_target:
pkey_pss_init_sign:
.LFB2281:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$32, %rsp
	.cfi_def_cfa_offset 64
	movq	40(%rdi), %rbx
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	(%rdi), %rax
	movq	$0, 8(%rsp)
	movq	$0, 16(%rsp)
	cmpl	$912, (%rax)
	jne	.L15511
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L15511
	movq	8(%rax), %rbp
	movq	72(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L15513
	leaq	4(%rsp), %rcx
	leaq	16(%rsp), %rdx
	leaq	8(%rsp), %rsi
# WAS call	RSASSA_PSS_PARAMS_get@PLT
	call	.Lbcm_redirector_RSASSA_PSS_PARAMS_get
	testl	%eax, %eax
	jne	.L15529
.L15511:

	xorl	%eax, %eax
	jmp	.L15509
	.p2align 4,,10
	.p2align 3
.L15529:

	movq	%rbp, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movq	8(%rsp), %rdi
	movl	%eax, %r12d
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbp, %rdi
	subl	%eax, %r12d
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	movl	4(%rsp), %edx
	andl	$7, %eax
	cmpl	$1, %eax
	movd	%edx, %xmm2
	setne	%al
	pshufd	$0xe0, %xmm2, %xmm1
	movzbl	%al, %eax
	leal	-3(%r12,%rax), %eax
	cmpl	%edx, %eax
	jl	.L15530
	movq	8(%rsp), %xmm0
	movq	%xmm1, 40(%rbx)
	movhps	16(%rsp), %xmm0
	movups	%xmm0, 24(%rbx)
.L15513:

	movl	$1, %eax
.L15509:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L15531
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15530:

	.cfi_restore_state
	movl	$162, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$501, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15509
.L15531:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2281:

	.size	pkey_pss_init_sign, .-pkey_pss_init_sign
# WAS .section	.text.RSA_is_opaque,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_is_opaque
	.type	RSA_is_opaque, @function
.LRSA_is_opaque_local_target:
RSA_is_opaque:
.LFB2713:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L15532
	movl	80(%rdx), %eax
	andl	$1, %eax
.L15532:

	ret
	.cfi_endproc
.LFE2713:

	.size	RSA_is_opaque, .-RSA_is_opaque
# WAS .section	.text.RSA_get_ex_new_index,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get_ex_new_index
	.type	RSA_get_ex_new_index, @function
.LRSA_get_ex_new_index_local_target:
RSA_get_ex_new_index:
.LFB2714:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
# WAS call	g_rsa_ex_data_class_bss_get@PLT
	call	g_rsa_ex_data_class_bss_get
	leaq	4(%rsp), %rsi
	movq	%r12, %r8
	movq	%rbp, %rcx
	movq	%rax, %rdi
	movq	%rbx, %rdx
# WAS call	CRYPTO_get_ex_new_index@PLT
	call	.Lbcm_redirector_CRYPTO_get_ex_new_index
	testl	%eax, %eax
	je	.L15539
	movl	4(%rsp), %eax
.L15536:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L15541
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15539:

	.cfi_restore_state
	movl	$-1, %eax
	jmp	.L15536
.L15541:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2714:

	.size	RSA_get_ex_new_index, .-RSA_get_ex_new_index
# WAS .section	.text.RSA_set_ex_data,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set_ex_data
	.type	RSA_set_ex_data, @function
.LRSA_set_ex_data_local_target:
RSA_set_ex_data:
.LFB2715:

	.cfi_startproc
	endbr64
	addq	$80, %rdi
# WAS jmp	CRYPTO_set_ex_data@PLT
	jmp	.Lbcm_redirector_CRYPTO_set_ex_data
	.cfi_endproc
.LFE2715:

	.size	RSA_set_ex_data, .-RSA_set_ex_data
# WAS .section	.text.RSA_get_ex_data,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get_ex_data
	.type	RSA_get_ex_data, @function
.LRSA_get_ex_data_local_target:
RSA_get_ex_data:
.LFB2716:

	.cfi_startproc
	endbr64
	addq	$80, %rdi
# WAS jmp	CRYPTO_get_ex_data@PLT
	jmp	.Lbcm_redirector_CRYPTO_get_ex_data
	.cfi_endproc
.LFE2716:

	.size	RSA_get_ex_data, .-RSA_get_ex_data
# WAS .section	.text.RSA_add_pkcs1_prefix,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_add_pkcs1_prefix
	.type	RSA_add_pkcs1_prefix, @function
.LRSA_add_pkcs1_prefix_local_target:
RSA_add_pkcs1_prefix:
.LFB2718:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	cmpl	$114, %ecx
	je	.L15595
	cmpl	$4, %ecx
	je	.L15548
	cmpl	$64, %ecx
	je	.L15549
	cmpl	$675, %ecx
	je	.L15550
	cmpl	$672, %ecx
	je	.L15551
	cmpl	$673, %ecx
	je	.L15552
	cmpl	$674, %ecx
	je	.L15553
	cmpl	$978, %ecx
	je	.L15554
	cmpl	$962, %ecx
	je	.L15555
	cmpl	$965, %ecx
	je	.L15556
	cmpl	$966, %ecx
	je	.L15557
	cmpl	$967, %ecx
	je	.L15558
	cmpl	$968, %ecx
	je	.L15596
	movl	$785, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$142, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15547:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15595:

	.cfi_restore_state
	xorl	%eax, %eax
	movl	$768, %r8d
	cmpq	$36, %r9
	jne	.L15594
	movq	%r15, 0(%r13)
	movq	%rbx, (%r12)
	movl	%eax, 0(%rbp)
	movl	$1, %eax
.L15599:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L15550:

	.cfi_restore_state
	movl	$2, %edx
	cmpq	$28, %r9
	je	.L15563
	.p2align 4,,10
	.p2align 3
.L15560:

	movl	$778, %r8d
.L15594:

	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15547
.L15596:

	movl	$11, %edx
	cmpq	$64, %r9
	jne	.L15560
	.p2align 4,,10
	.p2align 3
.L15563:

	leaq	0(,%rdx,8), %rax
# WAS leaq	kPKCS1SigPrefixes(%rip), %rcx
	leaq	.LkPKCS1SigPrefixes_local_target(%rip), %rcx
	subq	%rdx, %rax
	movzbl	5(%rcx,%rax,4), %edx
	leaq	0(,%rax,4), %rsi
	movq	%rsi, 8(%rsp)
	leaq	(%rbx,%rdx), %r14
	movq	%rdx, (%rsp)
	movq	%r14, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r9
	testq	%rax, %rax
	je	.L15547
	movq	(%rsp), %rdx
	testq	%rdx, %rdx
	je	.L15565
	movq	8(%rsp), %rax
# WAS leaq	kPKCS1SigPrefixes(%rip), %rcx
	leaq	.LkPKCS1SigPrefixes_local_target(%rip), %rcx
	leaq	6(%rcx,%rax), %rsi
	cmpl	$8, %edx
	jnb	.L15566
	testb	$4, %dl
	jne	.L15597
	testl	%edx, %edx
	je	.L15565
	movzbl	(%rsi), %eax
	movb	%al, (%r9)
	testb	$2, %dl
	jne	.L15598
	.p2align 4,,10
	.p2align 3
.L15565:

	testq	%rbx, %rbx
	je	.L15570
	leaq	(%r9,%rdx), %rdi
	movq	%r15, %rsi
	movq	%rbx, %rdx
	movq	%r9, (%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rsp), %r9
.L15570:

	movl	$1, %eax
	movq	%r9, %r15
	movq	%r14, %rbx
	movq	%r15, 0(%r13)
	movq	%rbx, (%r12)
	movl	%eax, 0(%rbp)
	movl	$1, %eax
	jmp	.L15599
	.p2align 4,,10
	.p2align 3
.L15566:

	movq	(%rsi), %rax
	leaq	8(%r9), %rdi
	andq	$-8, %rdi
	movq	%rax, (%r9)
	movq	-8(%rdx,%rsi), %rax
	movq	%rax, -8(%r9,%rdx)
	movq	%r9, %rax
	subq	%rdi, %rax
	subq	%rax, %rsi
	addl	%edx, %eax
	shrl	$3, %eax
	movl	%eax, %ecx
	rep movsq
	jmp	.L15565
.L15548:

	xorl	%edx, %edx
	cmpq	$16, %r9
	je	.L15563
	jmp	.L15560
.L15549:

	movl	$1, %edx
	cmpq	$20, %r9
	je	.L15563
	jmp	.L15560
.L15551:

	movl	$3, %edx
	cmpq	$32, %r9
	je	.L15563
	jmp	.L15560
.L15552:

	movl	$4, %edx
	cmpq	$48, %r9
	je	.L15563
	jmp	.L15560
.L15553:

	movl	$5, %edx
	cmpq	$64, %r9
	je	.L15563
	jmp	.L15560
.L15554:

	movl	$6, %edx
	cmpq	$28, %r9
	je	.L15563
	jmp	.L15560
.L15555:

	movl	$7, %edx
	cmpq	$32, %r9
	je	.L15563
	jmp	.L15560
.L15556:

	movl	$8, %edx
	cmpq	$28, %r9
	je	.L15563
	jmp	.L15560
.L15557:

	movl	$9, %edx
	cmpq	$32, %r9
	je	.L15563
	jmp	.L15560
.L15558:

	movl	$10, %edx
	cmpq	$48, %r9
	je	.L15563
	jmp	.L15560
.L15597:

	movl	(%rsi), %eax
	movl	%eax, (%r9)
	movl	-4(%rdx,%rsi), %eax
	movl	%eax, -4(%r9,%rdx)
	jmp	.L15565
.L15598:

	movzwl	-2(%rdx,%rsi), %eax
	movw	%ax, -2(%r9,%rdx)
	jmp	.L15565
	.cfi_endproc
.LFE2718:

	.size	RSA_add_pkcs1_prefix, .-RSA_add_pkcs1_prefix
# WAS .section	.text.RSA_flags,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_flags
	.type	RSA_flags, @function
.LRSA_flags_local_target:
RSA_flags:
.LFB2729:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15607
	movl	92(%rdi), %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15607:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$1058, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2729:

	.size	RSA_flags, .-RSA_flags
# WAS .section	.text.RSA_set_flags,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set_flags
	.type	RSA_set_flags, @function
.LRSA_set_flags_local_target:
RSA_set_flags:
.LFB2730:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15610
	orl	%esi, 92(%rdi)
	ret
	.p2align 4,,10
	.p2align 3
.L15610:

	movl	$1068, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2730:

	.size	RSA_set_flags, .-RSA_set_flags
# WAS .section	.text.RSA_test_flags,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_test_flags
	.type	RSA_test_flags, @function
.LRSA_test_flags_local_target:
RSA_test_flags:
.LFB2731:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15612
	movl	92(%rdi), %eax
	andl	%esi, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15612:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$1081, %r8d
	leaq	.LC120(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2731:

	.size	RSA_test_flags, .-RSA_test_flags
# WAS .section	.text.RSA_blinding_on,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_blinding_on
	.type	RSA_blinding_on, @function
.LRSA_blinding_on_local_target:
RSA_blinding_on:
.LFB2732:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L15617
	xorl	%eax, %eax
	testb	$8, 92(%rdi)
	sete	%al
.L15617:

	ret
	.cfi_endproc
.LFE2732:

	.size	RSA_blinding_on, .-RSA_blinding_on
# WAS .section	.text.RSA_blinding_off_temp_for_accp_compatibility,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_blinding_off_temp_for_accp_compatibility
	.type	RSA_blinding_off_temp_for_accp_compatibility, @function
.LRSA_blinding_off_temp_for_accp_compatibility_local_target:
RSA_blinding_off_temp_for_accp_compatibility:
.LFB2733:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15621
	orl	$8, 92(%rdi)
.L15621:

	ret
	.cfi_endproc
.LFE2733:

	.size	RSA_blinding_off_temp_for_accp_compatibility, .-RSA_blinding_off_temp_for_accp_compatibility
# WAS .section	.text.RSA_pkey_ctx_ctrl,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_pkey_ctx_ctrl
	.type	RSA_pkey_ctx_ctrl, @function
.LRSA_pkey_ctx_ctrl_local_target:
RSA_pkey_ctx_ctrl:
.LFB2734:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15630
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L15630
	movl	(%rax), %eax
	cmpl	$6, %eax
	je	.L15632
	cmpl	$912, %eax
	jne	.L15631
.L15632:

	movq	%r8, %r9
	movl	%ecx, %r8d
	movl	%edx, %ecx
	movl	%esi, %edx
	movl	$-1, %esi
# WAS jmp	EVP_PKEY_CTX_ctrl@PLT
	jmp	.LEVP_PKEY_CTX_ctrl_local_target
	.p2align 4,,10
	.p2align 3
.L15630:

	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L15631:

	movl	$-1, %eax
	ret
	.cfi_endproc
.LFE2734:

	.size	RSA_pkey_ctx_ctrl, .-RSA_pkey_ctx_ctrl
# WAS .section	.text.is_public_component_of_rsa_key_good,"ax",@progbits
.text
	.p2align 4
	.globl	is_public_component_of_rsa_key_good
	.hidden	is_public_component_of_rsa_key_good
	.type	is_public_component_of_rsa_key_good, @function
.Lis_public_component_of_rsa_key_good_local_target:
is_public_component_of_rsa_key_good:
.LFB2735:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$1125, %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	8(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L15647
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$16384, %eax
	ja	.L15649
	movq	8(%rbx), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L15639
	movq	8(%rbx), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L15639
	movq	16(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L15650
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	16(%rbx), %rdi
	movl	%eax, %ebp
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L15643
	movq	16(%rbx), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L15643
	cmpl	$1, %ebp
	jbe	.L15643
	testb	$-128, 92(%rbx)
	jne	.L15651
	cmpl	$33, %ebp
	jbe	.L15645
	movl	$1180, %r8d
	jmp	.L15648
	.p2align 4,,10
	.p2align 3
.L15639:

	movl	$1138, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15635:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15649:

	.cfi_restore_state
	movl	$1131, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$128, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15635
	.p2align 4,,10
	.p2align 3
.L15641:

	movl	$1147, %r8d
	.p2align 4,,10
	.p2align 3
.L15647:

	leaq	.LC120(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15635
	.p2align 4,,10
	.p2align 3
.L15650:

	testb	$64, 92(%rbx)
	je	.L15641
.L15645:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15643:

	.cfi_restore_state
	movl	$1162, %r8d
.L15648:

	leaq	.LC120(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15635
	.p2align 4,,10
	.p2align 3
.L15651:

	movq	16(%rbx), %rsi
	movq	8(%rbx), %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	movl	$1170, %r8d
	testl	%eax, %eax
	jg	.L15645
	jmp	.L15648
	.cfi_endproc
.LFE2735:

	.size	is_public_component_of_rsa_key_good, .-is_public_component_of_rsa_key_good
# WAS .section	.text.RSA_check_key,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_check_key
	.type	RSA_check_key, @function
.LRSA_check_key_local_target:
RSA_check_key:
.LFB2737:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$232, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	cmpq	$0, 8(%rdi)
	je	.L15653
	cmpq	$0, 16(%rdi)
	movq	24(%rdi), %rax
	movq	%rdi, %r15
	je	.L15654
	movq	32(%rdi), %rdx
	testq	%rax, %rax
	je	.L15734
	testq	%rdx, %rdx
	je	.L15732
	cmpq	$0, 40(%r15)
	je	.L15653
	cmpq	$0, 48(%r15)
	je	.L15735
.L15657:

	cmpq	$0, 48(%r15)
	je	.L15653
	cmpq	$0, 56(%r15)
	je	.L15653
	cmpq	$0, 64(%r15)
	jne	.L15736
	.p2align 4,,10
	.p2align 3
.L15653:

	movl	$1276, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15660:

	xorl	%eax, %eax
.L15652:

	movq	216(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L15737
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15654:

	.cfi_restore_state
	testq	%rax, %rax
	je	.L15653
	cmpq	$0, 32(%rdi)
	jne	.L15653
.L15732:

	cmpq	$0, 40(%r15)
	jne	.L15653
	cmpq	$0, 48(%r15)
	jne	.L15653
	cmpq	$0, 56(%r15)
	jne	.L15653
	cmpq	$0, 64(%r15)
	jne	.L15653
	movq	%r15, %rdi
# WAS call	is_public_component_of_rsa_key_good
	call	.Lis_public_component_of_rsa_key_good_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	jne	.L15652
	jmp	.L15660
	.p2align 4,,10
	.p2align 3
.L15734:

	testq	%rdx, %rdx
	jne	.L15653
	jmp	.L15732
	.p2align 4,,10
	.p2align 3
.L15735:

	cmpq	$0, 56(%r15)
	je	.L15738
.L15658:

	cmpq	$0, 40(%r15)
	jne	.L15657
	jmp	.L15653
	.p2align 4,,10
	.p2align 3
.L15736:

	movl	$3, 20(%rsp)
.L15659:

	movq	%r15, %rdi
# WAS call	is_public_component_of_rsa_key_good
	call	.Lis_public_component_of_rsa_key_good_local_target
	testl	%eax, %eax
	je	.L15660
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L15739
	leaq	32(%rsp), %rbp
	leaq	64(%rsp), %r12
	movq	%rbp, %rdi
	leaq	96(%rsp), %r13
	leaq	128(%rsp), %r14
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	%r12, %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	%r13, %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	%r14, %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	160(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	leaq	192(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	32(%r15), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L15665
	movq	8(%r15), %rsi
	movq	32(%r15), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L15740
.L15665:

	movl	$1324, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15664:

	xorl	%eax, %eax
.L15667:

	movq	%rbp, %rdi
	movl	%eax, 20(%rsp)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r14, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	(%rsp), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%rsp), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	movl	20(%rsp), %eax
	jmp	.L15652
	.p2align 4,,10
	.p2align 3
.L15738:

	cmpq	$0, 64(%r15)
	jne	.L15658
	movl	$2, 20(%rsp)
	jmp	.L15659
	.p2align 4,,10
	.p2align 3
.L15740:

	movq	40(%r15), %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L15665
	movq	8(%r15), %rsi
	movq	40(%r15), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jns	.L15665
	movq	40(%r15), %rdx
	movq	32(%r15), %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdi
# WAS call	bn_mul_consttime
	call	.Lbn_mul_consttime_local_target
	testl	%eax, %eax
	je	.L15741
	movq	8(%r15), %rsi
	movq	%rbp, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L15742
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	32(%r15), %rsi
	movq	%r13, %rdi
	movq	%rax, %rdx
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	je	.L15670
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	40(%r15), %rsi
	movq	%r14, %rdi
	movq	%rax, %rdx
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	je	.L15670
	movq	%r13, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	%r14, %rdi
	movl	%eax, 24(%rsp)
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	16(%r15), %rdx
	movq	24(%r15), %rsi
	movq	%rbx, %rcx
	movq	%r12, %rdi
	movl	%eax, 28(%rsp)
# WAS call	bn_mul_consttime
	call	.Lbn_mul_consttime_local_target
	testl	%eax, %eax
	je	.L15672
	movl	24(%rsp), %r8d
	xorl	%edi, %edi
	movq	%rbx, %r9
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L15672
	movl	28(%rsp), %r8d
	xorl	%edi, %edi
	movq	%rbx, %r9
	movq	%r14, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L15672
	movq	%rbp, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L15674
	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L15674
	cmpl	$2, 20(%rsp)
	je	.L15683
	movq	24(%r15), %rdx
	movl	24(%rsp), %r8d
	xorl	%edi, %edi
	movq	%rbx, %r9
	movq	%r13, %rcx
	movq	%rbp, %rsi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L15677
	movq	24(%r15), %rdx
	movl	28(%rsp), %r8d
	xorl	%edi, %edi
	movq	%rbx, %r9
	movq	%r14, %rcx
	movq	%r12, %rsi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L15677
	movq	48(%r15), %rsi
	movq	%rbp, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L15679
	movq	56(%r15), %rsi
	movq	%r12, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L15679
	movq	32(%r15), %rsi
	movq	64(%r15), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	movl	$1385, %r8d
	testl	%eax, %eax
	jns	.L15724
	movq	64(%r15), %rdx
	movq	40(%r15), %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdi
# WAS call	bn_mul_consttime
	call	.Lbn_mul_consttime_local_target
	testl	%eax, %eax
	je	.L15682
	movq	32(%r15), %rcx
	movl	24(%rsp), %r8d
	xorl	%edi, %edi
	movq	%rbx, %r9
	movq	%rbp, %rdx
	movq	%rbp, %rsi
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L15682
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	%rbp, %rdi
	movq	%rax, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L15743
.L15683:

	movl	$1, %eax
	jmp	.L15667
	.p2align 4,,10
	.p2align 3
.L15739:

	movl	$1305, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15660
.L15741:

	movl	$1328, %r8d
.L15723:

	leaq	.LC120(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15664
.L15670:

	movl	$1342, %r8d
	jmp	.L15723
.L15742:

	movl	$1332, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$132, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15664
.L15672:

	movl	$1350, %r8d
	jmp	.L15723
.L15737:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L15674:

	movl	$1355, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15664
.L15743:

	movl	$1398, %r8d
.L15724:

	leaq	.LC120(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15664
.L15682:

	movl	$1392, %r8d
	jmp	.L15723
.L15679:

	movl	$1379, %r8d
	jmp	.L15724
.L15677:

	movl	$1373, %r8d
	jmp	.L15723
	.cfi_endproc
.LFE2737:

	.size	RSA_check_key, .-RSA_check_key
# WAS .section	.text.rsa_invalidate_key,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_invalidate_key
	.hidden	rsa_invalidate_key
	.type	rsa_invalidate_key, @function
.Lrsa_invalidate_key_local_target:
rsa_invalidate_key:
.LFB2745:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	xorl	%ebp, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	andb	$-2, 240(%rdi)
	movq	152(%rdi), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	160(%rbx), %rdi
	movq	$0, 152(%rbx)
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	168(%rbx), %rdi
	movq	$0, 160(%rbx)
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	176(%rbx), %rdi
	movq	$0, 168(%rbx)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	184(%rbx), %rdi
	movq	$0, 176(%rbx)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	192(%rbx), %rdi
	movq	$0, 184(%rbx)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	200(%rbx), %rdi
	movq	$0, 192(%rbx)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	208(%rbx), %rax
	movq	$0, 200(%rbx)
	testq	%rax, %rax
	jne	.L15754
	jmp	.L15753
	.p2align 4,,10
	.p2align 3
.L15755:

	movq	(%r12), %rdi
	addq	$1, %rbp
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%r12), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	208(%rbx), %rax
	cmpq	%rax, %rbp
	jnb	.L15753
.L15754:

	movq	216(%rbx), %rdi
.L15745:

	movq	(%rdi,%rbp,8), %r12
	testq	%r12, %r12
	jne	.L15755
	addq	$1, %rbp
	cmpq	%rax, %rbp
	jb	.L15745
.L15748:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	224(%rbx), %rdi
	movq	$0, 216(%rbx)
	movq	$0, 208(%rbx)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 224(%rbx)
	movq	$0, 232(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15753:

	.cfi_restore_state
	movq	216(%rbx), %rdi
	jmp	.L15748
	.cfi_endproc
.LFE2745:

	.size	rsa_invalidate_key, .-rsa_invalidate_key
# WAS .section	.text.RSA_free,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_free
	.type	RSA_free, @function
.LRSA_free_local_target:
RSA_free:
.LFB2680:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L15771
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	leaq	88(%rdi), %rdi
# WAS call	CRYPTO_refcount_dec_and_test_zero@PLT
	call	.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero
	testl	%eax, %eax
	je	.L15756
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L15760
	movq	16(%rax), %rax
	testq	%rax, %rax
	je	.L15760
	movq	%rbx, %rdi
	call	*%rax
.L15760:

# WAS call	g_rsa_ex_data_class_bss_get@PLT
	call	g_rsa_ex_data_class_bss_get
	leaq	80(%rbx), %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_free_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_free_ex_data
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	24(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	32(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	40(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	48(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	56(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	64(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	72(%rbx), %rdi
# WAS call	RSASSA_PSS_PARAMS_free@PLT
	call	.Lbcm_redirector_RSASSA_PSS_PARAMS_free
	movq	%rbx, %rdi
# WAS call	rsa_invalidate_key
	call	.Lrsa_invalidate_key_local_target
	leaq	96(%rbx), %rdi
# WAS call	CRYPTO_MUTEX_cleanup@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_cleanup
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_restore 3
	.cfi_def_cfa_offset 8
# WAS jmp	OPENSSL_free@PLT
	jmp	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L15756:

	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15771:

	.cfi_restore 3
	ret
	.cfi_endproc
.LFE2680:

	.size	RSA_free, .-RSA_free
# WAS .section	.text.RSA_set0_key,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set0_key
	.type	RSA_set0_key, @function
.LRSA_set0_key_local_target:
RSA_set0_key:
.LFB2695:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	8(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L15810
	cmpq	$0, 16(%rbx)
	je	.L15811
	testq	%rsi, %rsi
	jne	.L15777
	testq	%r13, %r13
	jne	.L15812
	.p2align 4,,10
	.p2align 3
.L15786:

	testq	%r12, %r12
	je	.L15789
	movq	24(%rbx), %rbp
.L15783:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 24(%rbx)
.L15789:

	movq	%rbx, %rdi
# WAS call	rsa_invalidate_key
	call	.Lrsa_invalidate_key_local_target
	movl	$1, %eax
.L15774:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15811:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L15813
	testq	%rsi, %rsi
	je	.L15784
	jmp	.L15779
	.p2align 4,,10
	.p2align 3
.L15810:

	testq	%rsi, %rsi
	je	.L15793
	cmpq	$0, 16(%rbx)
	je	.L15814
.L15777:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 8(%rbx)
	testq	%r13, %r13
	je	.L15786
.L15812:

	movq	16(%rbx), %rbp
.L15784:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, 16(%rbx)
	jmp	.L15786
	.p2align 4,,10
	.p2align 3
.L15814:

	testq	%rdx, %rdx
	je	.L15815
.L15779:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 8(%rbx)
	movq	16(%rbx), %rbp
	jmp	.L15784
	.p2align 4,,10
	.p2align 3
.L15813:

	cmpq	$0, 24(%rbx)
	je	.L15816
	testq	%rsi, %rsi
	je	.L15786
.L15785:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 8(%rbx)
	jmp	.L15786
	.p2align 4,,10
	.p2align 3
.L15815:

	cmpq	$0, 24(%rbx)
	jne	.L15785
	testq	%rcx, %rcx
	jne	.L15790
	.p2align 4,,10
	.p2align 3
.L15793:

	xorl	%eax, %eax
	jmp	.L15774
	.p2align 4,,10
	.p2align 3
.L15816:

	testq	%rcx, %rcx
	je	.L15793
	testq	%rsi, %rsi
	je	.L15783
.L15790:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 8(%rbx)
	movq	24(%rbx), %rbp
	jmp	.L15783
	.cfi_endproc
.LFE2695:

	.size	RSA_set0_key, .-RSA_set0_key
# WAS .section	.text.RSA_set0_factors,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set0_factors
	.type	RSA_set0_factors, @function
.LRSA_set0_factors_local_target:
RSA_set0_factors:
.LFB2696:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	movq	32(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L15839
	cmpq	$0, 40(%rbx)
	je	.L15840
	testq	%rsi, %rsi
	jne	.L15820
	testq	%r12, %r12
	jne	.L15841
.L15825:

	movq	%rbx, %rdi
# WAS call	rsa_invalidate_key
	call	.Lrsa_invalidate_key_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15840:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L15828
	testq	%rsi, %rsi
	je	.L15823
	jmp	.L15821
	.p2align 4,,10
	.p2align 3
.L15839:

	testq	%rsi, %rsi
	je	.L15828
	cmpq	$0, 40(%rbx)
	je	.L15842
.L15820:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 32(%rbx)
	testq	%r12, %r12
	je	.L15825
.L15841:

	movq	40(%rbx), %rbp
.L15823:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 40(%rbx)
	jmp	.L15825
	.p2align 4,,10
	.p2align 3
.L15842:

	testq	%rdx, %rdx
	je	.L15828
.L15821:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 32(%rbx)
	movq	40(%rbx), %rbp
	jmp	.L15823
	.p2align 4,,10
	.p2align 3
.L15828:

	popq	%rbx
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2696:

	.size	RSA_set0_factors, .-RSA_set0_factors
# WAS .section	.text.RSA_set0_crt_params,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_set0_crt_params
	.type	RSA_set0_crt_params, @function
.LRSA_set0_crt_params_local_target:
RSA_set0_crt_params:
.LFB2697:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	48(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L15886
	movq	56(%rbx), %rax
	testq	%rax, %rax
	je	.L15887
	cmpq	$0, 64(%rbx)
	je	.L15888
	testq	%rsi, %rsi
	jne	.L15848
.L15860:

	testq	%rbp, %rbp
	jne	.L15855
	testq	%r13, %r13
	jne	.L15853
.L15862:

	movq	%rbx, %rdi
# WAS call	rsa_invalidate_key
	call	.Lrsa_invalidate_key_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15887:

	.cfi_restore_state
	testq	%rdx, %rdx
	je	.L15868
	cmpq	$0, 64(%rbx)
	je	.L15847
	testq	%rsi, %rsi
	je	.L15854
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 48(%rbx)
	.p2align 4,,10
	.p2align 3
.L15855:

	movq	56(%rbx), %r12
.L15854:

	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 56(%rbx)
	testq	%r13, %r13
	je	.L15862
.L15853:

	movq	64(%rbx), %rbp
.L15858:

	movq	%rbp, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, 64(%rbx)
	jmp	.L15862
	.p2align 4,,10
	.p2align 3
.L15886:

	testq	%rsi, %rsi
	je	.L15868
	cmpq	$0, 56(%rbx)
	jne	.L15846
	testq	%rdx, %rdx
	je	.L15868
	cmpq	$0, 64(%rbx)
	je	.L15847
	.p2align 4,,10
	.p2align 3
.L15848:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 48(%rbx)
	jmp	.L15860
	.p2align 4,,10
	.p2align 3
.L15846:

	cmpq	$0, 64(%rbx)
	jne	.L15848
	testq	%rcx, %rcx
	je	.L15868
.L15857:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 48(%rbx)
	testq	%rbp, %rbp
	je	.L15853
.L15885:

	movq	56(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 56(%rbx)
	jmp	.L15853
	.p2align 4,,10
	.p2align 3
.L15868:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15847:

	.cfi_restore_state
	testq	%r13, %r13
	je	.L15868
	testq	%r12, %r12
	jne	.L15852
	xorl	%edi, %edi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 56(%rbx)
	jmp	.L15853
	.p2align 4,,10
	.p2align 3
.L15888:

	testq	%rcx, %rcx
	je	.L15868
	testq	%rsi, %rsi
	jne	.L15857
	testq	%rdx, %rdx
	je	.L15858
	movq	%rax, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, 56(%rbx)
	jmp	.L15853
	.p2align 4,,10
	.p2align 3
.L15852:

# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, 48(%rbx)
	jmp	.L15885
	.cfi_endproc
.LFE2697:

	.size	RSA_set0_crt_params, .-RSA_set0_crt_params
# WAS .section	.text.rsa_default_size,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_default_size
	.hidden	rsa_default_size
	.type	rsa_default_size, @function
.Lrsa_default_size_local_target:
rsa_default_size:
.LFB2746:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	8(%rdi), %rdi
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movl	%eax, %eax
	ret
	.cfi_endproc
.LFE2746:

	.size	rsa_default_size, .-rsa_default_size
# WAS .section	.text.rsa_verify_raw_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_verify_raw_no_self_test
	.hidden	rsa_verify_raw_no_self_test
	.type	rsa_verify_raw_no_self_test, @function
.Lrsa_verify_raw_no_self_test_local_target:
rsa_verify_raw_no_self_test:
.LFB2750:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L15892
	movq	48(%rax), %rax
	testq	%rax, %rax
	je	.L15892
	movq	%rdi, %rcx
	movl	112(%rsp), %r8d
	movq	%r15, %rsi
	movl	%r14d, %edi
	call	*%rax
	testl	%eax, %eax
	js	.L15942
	cltq
	movq	%rax, (%r12)
	movl	$1, %eax
.L15891:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15892:

	.cfi_restore_state
	cmpq	$0, 8(%rbx)
	je	.L15896
	cmpq	$0, 16(%rbx)
	je	.L15896
	movq	%rbx, %rdi
# WAS call	is_public_component_of_rsa_key_good
	call	.Lis_public_component_of_rsa_key_good_local_target
	testl	%eax, %eax
	jne	.L15943
.L15894:

	xorl	%eax, %eax
.L15944:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15942:

	.cfi_restore_state
	movq	$0, (%r12)
	xorl	%eax, %eax
	jmp	.L15944
	.p2align 4,,10
	.p2align 3
.L15943:

	movq	%rbx, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %r10d
	cmpq	%r10, %r14
	jb	.L15945
	cmpq	%r13, %r10
	je	.L15900
	movl	$450, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15944
	.p2align 4,,10
	.p2align 3
.L15896:

	movl	$433, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15944
	.p2align 4,,10
	.p2align 3
.L15900:

	movq	%r10, 16(%rsp)
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L15894
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r14, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r14, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	cmpq	$0, 8(%rsp)
	movq	%rax, 24(%rsp)
	je	.L15906
	testq	%rax, %rax
	movq	16(%rsp), %r10
	je	.L15906
	cmpl	$3, 112(%rsp)
	movq	%r10, 32(%rsp)
	je	.L15905
	movq	%r13, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 16(%rsp)
	testq	%rax, %rax
	je	.L15906
	movq	8(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	32(%rsp), %r10
	movq	%rax, %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	je	.L15904
.L15922:

	movq	8(%rbx), %rsi
	movq	8(%rsp), %rdi
	movq	%r10, 32(%rsp)
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	movq	32(%rsp), %r10
	testl	%eax, %eax
	jns	.L15946
	movq	8(%rbx), %rax
	leaq	96(%rbx), %r13
	movq	%r10, 32(%rsp)
	movq	%r13, %rdi
	movq	%rax, 40(%rsp)
# WAS call	CRYPTO_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_read
	movq	152(%rbx), %r15
	movq	%r13, %rdi
# WAS call	CRYPTO_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_read
	movq	32(%rsp), %r10
	testq	%r15, %r15
	je	.L15947
.L15909:

	movq	152(%rbx), %r9
	movq	16(%rbx), %rdx
	movq	%r14, %r8
	movq	%r10, 32(%rsp)
	movq	24(%rsp), %rbx
	movq	8(%rsp), %rsi
	leaq	24(%r9), %rcx
	movq	%rbx, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L15912
	movq	32(%rsp), %r10
	movq	16(%rsp), %rdi
	movq	%rbx, %rdx
	movq	%r10, %rsi
	movq	%r10, 8(%rsp)
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L15948
	cmpl	$1, 112(%rsp)
	je	.L15914
	cmpl	$3, 112(%rsp)
	je	.L15915
	movl	$508, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$143, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15912:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L15904:

	movq	%r14, %rdi
	movl	%eax, 8(%rsp)
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r14, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	movq	16(%rsp), %rdi
	movl	8(%rsp), %eax
	cmpq	%rbp, %rdi
	je	.L15891
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	8(%rsp), %eax
	jmp	.L15891
	.p2align 4,,10
	.p2align 3
.L15945:

	movl	$445, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$135, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15944
	.p2align 4,,10
	.p2align 3
.L15906:

	movq	$0, 16(%rsp)
	xorl	%eax, %eax
	jmp	.L15904
.L15905:

	movq	8(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L15921
	movq	%rbp, 16(%rsp)
	movq	32(%rsp), %r10
	jmp	.L15922
.L15946:

	movl	$484, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L15904
.L15921:

	movq	%r14, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r14, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	xorl	%eax, %eax
	jmp	.L15944
.L15947:

	movq	%r13, %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	cmpq	$0, 152(%rbx)
	movq	32(%rsp), %r10
	je	.L15949
	movq	%r13, %rdi
	movq	%r10, 32(%rsp)
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	movq	32(%rsp), %r10
	jmp	.L15909
.L15949:

	movq	40(%rsp), %rdi
	movq	%r14, %rsi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%r13, %rdi
	movq	%rax, 152(%rbx)
	movq	%rax, %r15
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	testq	%r15, %r15
	movq	32(%rsp), %r10
	je	.L15912
	jmp	.L15909
.L15915:

	movq	%r10, (%r12)
	movl	$1, %eax
	jmp	.L15904
.L15914:

	movq	16(%rsp), %rcx
	movq	%r10, %r8
	movq	%r10, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	RSA_padding_check_PKCS1_type_1
	call	.LRSA_padding_check_PKCS1_type_1_local_target
	testl	%eax, %eax
	jne	.L15904
	movl	$136, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	%eax, 8(%rsp)
	movl	$513, %r8d
	leaq	.LC181(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	8(%rsp), %eax
	jmp	.L15904
.L15948:

	movl	$494, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15912
	.cfi_endproc
.LFE2750:

	.size	rsa_verify_raw_no_self_test, .-rsa_verify_raw_no_self_test
# WAS .section	.text.rsa_verify_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_verify_no_self_test
	.hidden	rsa_verify_no_self_test
	.type	rsa_verify_no_self_test, @function
.Lrsa_verify_no_self_test_local_target:
rsa_verify_no_self_test:
.LFB2723:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	cmpq	$0, 8(%r9)
	je	.L15951
	cmpq	$0, 16(%r9)
	movq	%r9, %rbx
	je	.L15951
	movl	%edi, %ebp
	movq	%r9, %rdi
	movq	%rsi, %r15
	movq	%rdx, %r12
	movq	%rcx, %r13
	movq	%r8, %r14
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	$0, 28(%rsp)
	movq	$0, 32(%rsp)
	movq	$0, 40(%rsp)
	cmpl	$114, %ebp
	jne	.L15954
	cmpq	$36, %r12
	je	.L15954
	movl	$947, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15953:

	xorl	%ebx, %ebx
.L15950:

	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L15981
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15954:

	.cfi_restore_state
	movl	%eax, %ecx
	movq	%rcx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L15953
	leaq	48(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movq	%rax, %rdx
	movq	%r14, %r9
	pushq	$1
	.cfi_def_cfa_offset 144
	movq	24(%rsp), %rcx
	movq	%r13, %r8
	movq	%rbx, %rdi
	movq	%rax, 24(%rsp)
# WAS call	rsa_verify_raw_no_self_test
	call	.Lrsa_verify_raw_no_self_test_local_target
	popq	%rdx
	.cfi_def_cfa_offset 136
	popq	%rcx
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	movq	8(%rsp), %r10
	jne	.L15982
.L15957:

	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L15960:

	movq	%r10, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	28(%rsp), %eax
	testl	%eax, %eax
	je	.L15950
	movq	32(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L15950
	.p2align 4,,10
	.p2align 3
.L15951:

	movl	$935, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15953
	.p2align 4,,10
	.p2align 3
.L15982:

	leaq	28(%rsp), %rdx
	leaq	40(%rsp), %rsi
	movq	%r12, %r9
	movq	%r15, %r8
	leaq	32(%rsp), %rdi
	movl	%ebp, %ecx
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L15957
	movq	48(%rsp), %rdx
	cmpq	40(%rsp), %rdx
	jne	.L15983
	movl	$1, %ebx
	testq	%rdx, %rdx
	je	.L15960
	movq	32(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r10, 8(%rsp)
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L15960
	movl	$972, %r8d
	movl	$248, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC120(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L15960
	.p2align 4,,10
	.p2align 3
.L15983:

	movl	$966, %r8d
	movl	$105, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC120(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L15960
.L15981:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2723:

	.size	rsa_verify_no_self_test, .-rsa_verify_no_self_test
# WAS .section	.text.RSA_verify,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_verify
	.type	RSA_verify, @function
.LRSA_verify_local_target:
RSA_verify:
.LFB2725:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%edi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	cmpq	$0, 8(%rbx)
	je	.L15985
	cmpq	$0, 16(%rbx)
	je	.L15985
	movq	%rbx, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	$0, 28(%rsp)
	movq	$0, 32(%rsp)
	movq	$0, 40(%rsp)
	cmpl	$114, %ebp
	jne	.L15988
	cmpq	$36, %r12
	je	.L15988
	movl	$947, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L15987:

	xorl	%ebx, %ebx
.L15984:

	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L16014
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L15988:

	.cfi_restore_state
	movl	%eax, %ecx
	movq	%rcx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L15987
	leaq	48(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movq	%rax, %rdx
	movq	%r14, %r9
	pushq	$1
	.cfi_def_cfa_offset 144
	movq	24(%rsp), %rcx
	movq	%r13, %r8
	movq	%rbx, %rdi
	movq	%rax, 24(%rsp)
# WAS call	rsa_verify_raw_no_self_test
	call	.Lrsa_verify_raw_no_self_test_local_target
	popq	%rdx
	.cfi_def_cfa_offset 136
	popq	%rcx
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	movq	8(%rsp), %r10
	jne	.L16015
.L15991:

	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L15994:

	movq	%r10, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	28(%rsp), %eax
	testl	%eax, %eax
	je	.L15984
	movq	32(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L15984
	.p2align 4,,10
	.p2align 3
.L15985:

	movl	$935, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L15987
	.p2align 4,,10
	.p2align 3
.L16015:

	leaq	28(%rsp), %rdx
	leaq	40(%rsp), %rsi
	movq	%r12, %r9
	movq	%r15, %r8
	leaq	32(%rsp), %rdi
	movl	%ebp, %ecx
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L15991
	movq	48(%rsp), %rdx
	cmpq	40(%rsp), %rdx
	jne	.L16016
	movl	$1, %ebx
	testq	%rdx, %rdx
	je	.L15994
	movq	32(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r10, 8(%rsp)
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L15994
	movl	$972, %r8d
	movl	$248, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC120(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L15994
	.p2align 4,,10
	.p2align 3
.L16016:

	movl	$966, %r8d
	movl	$105, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC120(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L15994
.L16014:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2725:

	.size	RSA_verify, .-RSA_verify
# WAS .section	.text.RSA_verify_raw,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_verify_raw
	.type	RSA_verify_raw, @function
.LRSA_verify_raw_local_target:
RSA_verify_raw:
.LFB2751:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movl	80(%rsp), %ebx
	movq	%rdi, 8(%rsp)
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movl	%ebx, 80(%rsp)
	movq	%r15, %r9
	movq	%r14, %r8
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movq	%r13, %rcx
	movq	%r12, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 48
	movq	%rbp, %rsi
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	rsa_verify_raw_no_self_test
	jmp	.Lrsa_verify_raw_no_self_test_local_target
	.cfi_endproc
.LFE2751:

	.size	RSA_verify_raw, .-RSA_verify_raw
# WAS .section	.text.pkey_rsa_verify_recover,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_verify_recover, @function
.Lpkey_rsa_verify_recover_local_target:
pkey_rsa_verify_recover:
.LFB2289:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	40(%rdi), %r15
	movq	16(%rdi), %rdi
	movq	%rcx, 8(%rsp)
	movq	8(%rdi), %r14
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %r10
	testq	%rbp, %rbp
	je	.L16053
	movq	(%rbx), %rcx
	cmpq	%r10, %rcx
	jb	.L16054
	movq	24(%r15), %rdi
	movl	16(%r15), %eax
	testq	%rdi, %rdi
	je	.L16055
	cmpl	$1, %eax
	je	.L16026
.L16023:

	xorl	%eax, %eax
.L16019:

	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16056
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16026:

	.cfi_restore_state
	movq	%r10, 24(%rsp)
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpq	$0, 48(%r15)
	movq	24(%rsp), %r10
	movq	%rax, 16(%rsp)
	je	.L16027
.L16030:

	movq	24(%r15), %rdi
	movq	%r10, 24(%rsp)
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	16(%rsp), %r9
	leaq	44(%rsp), %rdx
	leaq	56(%rsp), %rsi
	movl	%eax, %ecx
	leaq	48(%rsp), %rdi
# WAS leaq	kDummyHash.69(%rip), %r8
	leaq	.LkDummyHash.69_local_target(%rip), %r8
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	testl	%eax, %eax
	je	.L16023
	movq	24(%rsp), %r10
	leaq	64(%rsp), %rsi
	movq	%r13, %r9
	movq	%r14, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 152
	movq	48(%r15), %rdx
	pushq	$1
	.cfi_def_cfa_offset 160
	movq	24(%rsp), %r8
	movq	%r10, %rcx
# WAS call	RSA_verify_raw@PLT
	call	.LRSA_verify_raw_local_target
	popq	%rcx
	.cfi_def_cfa_offset 152
	popq	%rsi
	.cfi_def_cfa_offset 144
	testl	%eax, %eax
	je	.L16034
	movq	56(%rsp), %rdx
	cmpq	%rdx, 64(%rsp)
	jne	.L16034
	movq	16(%rsp), %rax
	movq	48(%r15), %rdi
	movq	48(%rsp), %rsi
	subq	%rax, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L16034
	movl	44(%rsp), %eax
	testl	%eax, %eax
	jne	.L16057
.L16035:

	movq	16(%rsp), %rdx
	testq	%rdx, %rdx
	je	.L16036
	movq	64(%rsp), %rsi
	movq	%rbp, %rdi
	subq	%rdx, %rsi
	addq	48(%r15), %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L16036:

	movq	16(%rsp), %rax
	movq	%rax, (%rbx)
	jmp	.L16021
	.p2align 4,,10
	.p2align 3
.L16053:

	movq	%r10, (%rbx)
.L16021:

	movl	$1, %eax
	jmp	.L16019
	.p2align 4,,10
	.p2align 3
.L16054:

	movl	$352, %r8d
	leaq	.LC258(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16023
	.p2align 4,,10
	.p2align 3
.L16055:

	subq	$8, %rsp
	.cfi_def_cfa_offset 152
	movq	%r14, %rdi
	movq	%r13, %r9
	movq	%rbp, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 160
	movq	24(%rsp), %r8
	movq	%rbx, %rsi
# WAS call	RSA_verify_raw@PLT
	call	.LRSA_verify_raw_local_target
	popq	%rdi
	.cfi_def_cfa_offset 152
	popq	%r8
	.cfi_def_cfa_offset 144
	jmp	.L16019
	.p2align 4,,10
	.p2align 3
.L16027:

	movq	16(%r12), %rdi
	movq	%r10, 24(%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	24(%rsp), %r10
	testq	%rax, %rax
	movq	%rax, 48(%r15)
	jne	.L16030
	jmp	.L16023
	.p2align 4,,10
	.p2align 3
.L16034:

	movl	44(%rsp), %edx
	testl	%edx, %edx
	je	.L16023
	movq	48(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L16023
.L16057:

	movq	48(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L16035
.L16056:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2289:

	.size	pkey_rsa_verify_recover, .-pkey_rsa_verify_recover
# WAS .section	.text.RSA_get_default_method,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_get_default_method
	.type	RSA_get_default_method, @function
.LRSA_get_default_method_local_target:
RSA_get_default_method:
.LFB2764:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	RSA_get_default_method_once_bss_get@PLT
	call	RSA_get_default_method_once_bss_get
# WAS leaq	RSA_get_default_method_init(%rip), %rsi
	leaq	.LRSA_get_default_method_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	RSA_get_default_method_storage_bss_get@PLT
	jmp	RSA_get_default_method_storage_bss_get
	.cfi_endproc
.LFE2764:

	.size	RSA_get_default_method, .-RSA_get_default_method
# WAS .section	.text.RSA_new_method,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_method
	.type	RSA_new_method, @function
.LRSA_new_method_local_target:
RSA_new_method:
.LFB2678:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	movl	$248, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	testq	%rax, %rax
	je	.L16061
	movq	%rax, %rbx
	testq	%rbp, %rbp
	je	.L16072
	movq	%rbp, %rdi
# WAS call	ENGINE_get_RSA@PLT
	call	.Lbcm_redirector_ENGINE_get_RSA
	movq	%rax, (%rbx)
	testq	%rax, %rax
	je	.L16073
.L16064:

	movl	80(%rax), %eax
	movl	$1, 88(%rbx)
	leaq	96(%rbx), %rbp
	leaq	80(%rbx), %r12
	movq	%rbp, %rdi
	movl	%eax, 92(%rbx)
# WAS call	CRYPTO_MUTEX_init@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_init
	movq	%r12, %rdi
# WAS call	CRYPTO_new_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_new_ex_data
	movq	(%rbx), %rax
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L16060
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L16074
.L16060:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16072:

	.cfi_restore_state
	movq	(%rax), %rax
	testq	%rax, %rax
	jne	.L16064
.L16073:

# WAS call	RSA_get_default_method@PLT
	call	.LRSA_get_default_method_local_target
	movq	%rax, (%rbx)
	jmp	.L16064
	.p2align 4,,10
	.p2align 3
.L16074:

# WAS call	g_rsa_ex_data_class_bss_get@PLT
	call	g_rsa_ex_data_class_bss_get
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_free_ex_data@PLT
	call	.Lbcm_redirector_CRYPTO_free_ex_data
	movq	%rbp, %rdi
# WAS call	CRYPTO_MUTEX_cleanup@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_cleanup
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L16061:

	xorl	%ebx, %ebx
	jmp	.L16060
	.cfi_endproc
.LFE2678:

	.size	RSA_new_method, .-RSA_new_method
# WAS .section	.text.RSA_new,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new
	.type	RSA_new, @function
.LRSA_new_local_target:
RSA_new:
.LFB2677:

	.cfi_startproc
	endbr64
	xorl	%edi, %edi
# WAS jmp	RSA_new_method@PLT
	jmp	.LRSA_new_method_local_target
	.cfi_endproc
.LFE2677:

	.size	RSA_new, .-RSA_new
# WAS .section	.text.RSA_new_public_key,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_public_key
	.type	RSA_new_public_key, @function
.LRSA_new_public_key_local_target:
RSA_new_public_key:
.LFB2671:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16078
	testq	%rbp, %rbp
	je	.L16081
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L16078
	testq	%r12, %r12
	je	.L16081
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L16078
	movq	%rbx, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	jne	.L16076
	.p2align 4,,10
	.p2align 3
.L16078:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16076:

	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16081:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16078
	.cfi_endproc
.LFE2671:

	.size	RSA_new_public_key, .-RSA_new_public_key
# WAS .section	.text.RSA_new_private_key,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_private_key
	.type	RSA_new_private_key, @function
.LRSA_new_private_key_local_target:
RSA_new_private_key:
.LFB2672:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%r9, 8(%rsp)
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L16098
	testq	%rbx, %rbx
	je	.L16101
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%r15)
	testq	%rax, %rax
	je	.L16098
	testq	%rbp, %rbp
	je	.L16101
	movq	16(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 16(%r15)
	testq	%rax, %rax
	je	.L16098
	testq	%r12, %r12
	je	.L16101
	movq	24(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 24(%r15)
	testq	%rax, %rax
	je	.L16098
	testq	%r13, %r13
	je	.L16101
	movq	32(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 32(%r15)
	testq	%rax, %rax
	je	.L16098
	testq	%r14, %r14
	je	.L16101
	movq	40(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r14, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 40(%r15)
	testq	%rax, %rax
	je	.L16098
	movq	8(%rsp), %rbx
	testq	%rbx, %rbx
	je	.L16101
	movq	48(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 48(%r15)
	testq	%rax, %rax
	je	.L16098
	cmpq	$0, 80(%rsp)
	je	.L16101
	movq	56(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	80(%rsp), %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 56(%r15)
	testq	%rax, %rax
	je	.L16098
	movq	88(%rsp), %rsi
	leaq	64(%r15), %rdi
# WAS call	bn_dup_into
	call	.Lbn_dup_into_local_target
	testl	%eax, %eax
	je	.L16098
	movq	%r15, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	jne	.L16096
	.p2align 4,,10
	.p2align 3
.L16098:

	movq	%r15, %rdi
	xorl	%r15d, %r15d
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16096:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r15, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16101:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16098
	.cfi_endproc
.LFE2672:

	.size	RSA_new_private_key, .-RSA_new_private_key
# WAS .section	.text.RSA_new_private_key_no_crt,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_private_key_no_crt
	.type	RSA_new_private_key_no_crt, @function
.LRSA_new_private_key_no_crt_local_target:
RSA_new_private_key_no_crt:
.LFB2673:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16151
	testq	%r13, %r13
	je	.L16154
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L16151
	testq	%r12, %r12
	je	.L16154
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L16151
	testq	%rbp, %rbp
	je	.L16154
	movq	24(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 24(%rbx)
	testq	%rax, %rax
	je	.L16151
	movq	%rbx, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	jne	.L16149
	.p2align 4,,10
	.p2align 3
.L16151:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16149:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16154:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16151
	.cfi_endproc
.LFE2673:

	.size	RSA_new_private_key_no_crt, .-RSA_new_private_key_no_crt
# WAS .section	.text.RSA_new_private_key_no_e,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_private_key_no_e
	.type	RSA_new_private_key_no_e, @function
.LRSA_new_private_key_no_e_local_target:
RSA_new_private_key_no_e:
.LFB2674:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	testq	%rax, %rax
	je	.L16176
	orl	$64, 92(%rax)
	movq	%rax, %rbx
	testq	%rbp, %rbp
	je	.L16180
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L16178
	testq	%r12, %r12
	je	.L16180
	movq	24(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 24(%rbx)
	testq	%rax, %rax
	je	.L16178
	movq	%rbx, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	je	.L16178
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16180:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16178:

	movq	%rbx, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16176:

	xorl	%ebx, %ebx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2674:

	.size	RSA_new_private_key_no_e, .-RSA_new_private_key_no_e
# WAS .section	.text.RSA_new_public_key_large_e,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_public_key_large_e
	.type	RSA_new_public_key_large_e, @function
.LRSA_new_public_key_large_e_local_target:
RSA_new_public_key_large_e:
.LFB2675:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	testq	%rax, %rax
	je	.L16197
	orl	$128, 92(%rax)
	movq	%rax, %rbx
	testq	%rbp, %rbp
	je	.L16201
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L16199
	testq	%r12, %r12
	je	.L16201
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L16199
	movq	%rbx, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	je	.L16199
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16201:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16199:

	movq	%rbx, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16197:

	xorl	%ebx, %ebx
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2675:

	.size	RSA_new_public_key_large_e, .-RSA_new_public_key_large_e
# WAS .section	.text.RSA_new_private_key_large_e,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_private_key_large_e
	.type	RSA_new_private_key_large_e, @function
.LRSA_new_private_key_large_e_local_target:
RSA_new_private_key_large_e:
.LFB2676:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%r9, 8(%rsp)
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	testq	%rax, %rax
	je	.L16218
	orl	$128, 92(%rax)
	movq	%rax, %r15
	testq	%rbx, %rbx
	je	.L16222
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%r15)
	testq	%rax, %rax
	je	.L16220
	testq	%rbp, %rbp
	je	.L16222
	movq	16(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 16(%r15)
	testq	%rax, %rax
	je	.L16220
	testq	%r12, %r12
	je	.L16222
	movq	24(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 24(%r15)
	testq	%rax, %rax
	je	.L16220
	testq	%r13, %r13
	je	.L16222
	movq	32(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 32(%r15)
	testq	%rax, %rax
	je	.L16220
	testq	%r14, %r14
	je	.L16222
	movq	40(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r14, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 40(%r15)
	testq	%rax, %rax
	je	.L16220
	movq	8(%rsp), %rbx
	testq	%rbx, %rbx
	je	.L16222
	movq	48(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 48(%r15)
	testq	%rax, %rax
	je	.L16220
	cmpq	$0, 80(%rsp)
	je	.L16222
	movq	56(%r15), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	80(%rsp), %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 56(%r15)
	testq	%rax, %rax
	je	.L16220
	movq	88(%rsp), %rsi
	leaq	64(%r15), %rdi
# WAS call	bn_dup_into
	call	.Lbn_dup_into_local_target
	testl	%eax, %eax
	je	.L16220
	movq	%r15, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	jne	.L16217
	jmp	.L16220
	.p2align 4,,10
	.p2align 3
.L16222:

	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16220:

	movq	%r15, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L16218:

	xorl	%r15d, %r15d
.L16217:

	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movq	%r15, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2676:

	.size	RSA_new_private_key_large_e, .-RSA_new_private_key_large_e
# WAS .section	.text.RSA_new_method_no_e,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_new_method_no_e
	.type	RSA_new_method_no_e, @function
.LRSA_new_method_no_e_local_target:
RSA_new_method_no_e:
.LFB2679:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	RSA_new_method@PLT
	call	.LRSA_new_method_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16273
	testq	%rbp, %rbp
	je	.L16283
	movq	8(%rax), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_dup@PLT
	call	.LBN_dup_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L16273
	orl	$64, 92(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16283:

	.cfi_restore_state
	movl	$89, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16273:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2679:

	.size	RSA_new_method_no_e, .-RSA_new_method_no_e
# WAS .section	.text.FIPS_mode,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_mode
	.type	FIPS_mode, @function
.LFIPS_mode_local_target:
FIPS_mode:
.LFB2766:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2766:

	.size	FIPS_mode, .-FIPS_mode
# WAS .section	.text.FIPS_mode_set,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_mode_set
	.type	FIPS_mode_set, @function
.LFIPS_mode_set_local_target:
FIPS_mode_set:
.LFB2767:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%edi, %ebx
# WAS call	FIPS_mode@PLT
	call	.LFIPS_mode_local_target
	cmpl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	sete	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2767:

	.size	FIPS_mode_set, .-FIPS_mode_set
# WAS .section	.text.FIPS_read_counter,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_read_counter
	.type	FIPS_read_counter, @function
.LFIPS_read_counter_local_target:
FIPS_read_counter:
.LFB2768:

	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE2768:

	.size	FIPS_read_counter, .-FIPS_read_counter
# WAS .section	.text.boringssl_ensure_rsa_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_ensure_rsa_self_test
	.hidden	boringssl_ensure_rsa_self_test
	.type	boringssl_ensure_rsa_self_test, @function
.Lboringssl_ensure_rsa_self_test_local_target:
boringssl_ensure_rsa_self_test:
.LFB2785:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2785:

	.size	boringssl_ensure_rsa_self_test, .-boringssl_ensure_rsa_self_test
# WAS .section	.text.boringssl_ensure_ecc_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_ensure_ecc_self_test
	.hidden	boringssl_ensure_ecc_self_test
	.type	boringssl_ensure_ecc_self_test, @function
.Lboringssl_ensure_ecc_self_test_local_target:
boringssl_ensure_ecc_self_test:
.LFB2787:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2787:

	.size	boringssl_ensure_ecc_self_test, .-boringssl_ensure_ecc_self_test
# WAS .section	.text.boringssl_ensure_ffdh_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_ensure_ffdh_self_test
	.hidden	boringssl_ensure_ffdh_self_test
	.type	boringssl_ensure_ffdh_self_test, @function
.Lboringssl_ensure_ffdh_self_test_local_target:
boringssl_ensure_ffdh_self_test:
.LFB2789:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_self_test_once_ffdh_bss_get@PLT
	call	g_self_test_once_ffdh_bss_get
# WAS leaq	run_self_test_ffdh(%rip), %rsi
	leaq	.Lrun_self_test_ffdh_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2789:

	.size	boringssl_ensure_ffdh_self_test, .-boringssl_ensure_ffdh_self_test
# WAS .section	.text.boringssl_ensure_ml_kem_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_ensure_ml_kem_self_test
	.hidden	boringssl_ensure_ml_kem_self_test
	.type	boringssl_ensure_ml_kem_self_test, @function
.Lboringssl_ensure_ml_kem_self_test_local_target:
boringssl_ensure_ml_kem_self_test:
.LFB2791:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2791:

	.size	boringssl_ensure_ml_kem_self_test, .-boringssl_ensure_ml_kem_self_test
# WAS .section	.text.boringssl_ensure_eddsa_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_ensure_eddsa_self_test
	.hidden	boringssl_ensure_eddsa_self_test
	.type	boringssl_ensure_eddsa_self_test, @function
.Lboringssl_ensure_eddsa_self_test_local_target:
boringssl_ensure_eddsa_self_test:
.LFB2793:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	g_self_test_once_eddsa_bss_get@PLT
	call	g_self_test_once_eddsa_bss_get
# WAS leaq	run_self_test_eddsa(%rip), %rsi
	leaq	.Lrun_self_test_eddsa_local_target(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	movq	%rax, %rdi
# WAS jmp	CRYPTO_once@PLT
	jmp	.Lbcm_redirector_CRYPTO_once
	.cfi_endproc
.LFE2793:

	.size	boringssl_ensure_eddsa_self_test, .-boringssl_ensure_eddsa_self_test
# WAS .section	.rodata.awslc_version_string.str1.1,"aMS",@progbits,1
.text
.LC350:

	.string	"AWS-LC FIPS 3.3.0"
# WAS .section	.text.awslc_version_string,"ax",@progbits
.text
	.p2align 4
	.globl	awslc_version_string
	.type	awslc_version_string, @function
.Lawslc_version_string_local_target:
awslc_version_string:
.LFB2802:

	.cfi_startproc
	endbr64
	leaq	.LC350(%rip), %rax
	ret
	.cfi_endproc
.LFE2802:

	.size	awslc_version_string, .-awslc_version_string
# WAS .section	.text.is_fips_build,"ax",@progbits
.text
	.p2align 4
	.globl	is_fips_build
	.hidden	is_fips_build
	.type	is_fips_build, @function
.Lis_fips_build_local_target:
is_fips_build:
.LFB2803:

	.cfi_startproc
	endbr64
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2803:

	.size	is_fips_build, .-is_fips_build
# WAS .section	.text.FIPS_service_indicator_before_call,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_service_indicator_before_call
	.type	FIPS_service_indicator_before_call, @function
.LFIPS_service_indicator_before_call_local_target:
FIPS_service_indicator_before_call:
.LFB2806:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16309
.L16301:

	movq	8(%rbx), %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16309:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16302
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16301
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16302:

	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2806:

	.size	FIPS_service_indicator_before_call, .-FIPS_service_indicator_before_call
# WAS .section	.text.FIPS_service_indicator_after_call,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_service_indicator_after_call
	.type	FIPS_service_indicator_after_call, @function
.LFIPS_service_indicator_after_call_local_target:
FIPS_service_indicator_after_call:
.LFB3123:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16319
.L16311:

	movq	8(%rbx), %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16319:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16312
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16311
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16312:

	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE3123:

	.size	FIPS_service_indicator_after_call, .-FIPS_service_indicator_after_call
# WAS .section	.text.FIPS_service_indicator_update_state,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_service_indicator_update_state
	.hidden	FIPS_service_indicator_update_state
	.type	FIPS_service_indicator_update_state, @function
.LFIPS_service_indicator_update_state_local_target:
FIPS_service_indicator_update_state:
.LFB2808:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16327
.L16321:

	cmpq	$0, (%rbx)
	jne	.L16320
	addq	$1, 8(%rbx)
.L16320:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16327:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16320
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16321
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2808:

	.size	FIPS_service_indicator_update_state, .-FIPS_service_indicator_update_state
# WAS .section	.text.AES_wrap_key,"ax",@progbits
.text
	.p2align 4
	.globl	AES_wrap_key
	.type	AES_wrap_key, @function
.LAES_wrap_key_local_target:
AES_wrap_key:
.LFB790:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%rdx, 16(%rsp)
	movq	%r8, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	leaq	-16(%r8), %rax
	cmpq	$2147483623, %rax
	ja	.L16336
	movq	%rsi, %rbx
	movq	%rcx, %rsi
	movq	%r8, %rcx
	andl	$7, %ecx
	jne	.L16336
	testq	%rbx, %rbx
# WAS leaq	kDefaultIV(%rip), %rax
	leaq	.LkDefaultIV_local_target(%rip), %rax
	movq	%rdi, %r12
	movq	%r8, %r14
	cmove	%rax, %rbx
	leaq	8(%rdx), %rdi
	movq	%r8, %rdx
	shrq	$3, %r14
	movq	%rdi, (%rsp)
	movq	%r14, %rbp
# WAS call	memmove@PLT
	call	.Lbcm_redirector_memmove
	movq	(%rbx), %rax
	addl	$1, %ebp
	leaq	32(%rsp), %rbx
	movl	$6, 12(%rsp)
	movq	%rax, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L16331:

	movl	%ebp, %r15d
	movq	(%rsp), %r13
	subl	%r14d, %r15d
	.p2align 4,,10
	.p2align 3
.L16332:

	movq	0(%r13), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	addq	$8, %r13
	movq	%rdx, 40(%rsp)
	movq	%r12, %rdx
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	movl	36(%rsp), %eax
	movl	%r15d, %edx
	addl	$1, %r15d
	bswap	%edx
	xorl	%edx, %eax
	movq	40(%rsp), %rdx
	movl	%eax, 36(%rsp)
	movq	%rdx, -8(%r13)
	cmpl	%ebp, %r15d
	jne	.L16332
	subl	$1, 12(%rsp)
	leal	(%r15,%r14), %ebp
	jne	.L16331
	movq	32(%rsp), %rax
	movq	16(%rsp), %rcx
	movq	%rax, (%rcx)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	24(%rsp), %eax
	addl	$8, %eax
.L16328:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16340
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L16336:

	.cfi_restore_state
	movl	$-1, %eax
	jmp	.L16328
.L16340:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE790:

	.size	AES_wrap_key, .-AES_wrap_key
# WAS .section	.text.AES_unwrap_key,"ax",@progbits
.text
	.p2align 4
	.globl	AES_unwrap_key
	.type	AES_unwrap_key, @function
.LAES_unwrap_key_local_target:
AES_unwrap_key:
.LFB792:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	-24(%r8), %rax
	cmpq	$2147483623, %rax
	ja	.L16344
	movq	%r8, %rbx
	testb	$7, %r8b
	je	.L16352
.L16344:

	movl	$-1, %eax
.L16341:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16353
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16352:

	.cfi_restore_state
	movq	%rsp, %r12
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	movq	%r12, %rdx
# WAS call	aes_unwrap_key_inner.part.0
	call	.Laes_unwrap_key_inner.part.0_local_target
	testl	%eax, %eax
	je	.L16344
	testq	%rbp, %rbp
# WAS leaq	kDefaultIV(%rip), %rax
	leaq	.LkDefaultIV_local_target(%rip), %rax
	movl	$8, %edx
	movq	%r12, %rdi
	cmove	%rax, %rbp
	movq	%rbp, %rsi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L16344
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	leal	-8(%rbx), %eax
	jmp	.L16341
.L16353:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE792:

	.size	AES_unwrap_key, .-AES_unwrap_key
# WAS .section	.text.AES_unwrap_key_padded,"ax",@progbits
.text
	.p2align 4
	.globl	AES_unwrap_key_padded
	.type	AES_unwrap_key_padded, @function
.LAES_unwrap_key_padded_local_target:
AES_unwrap_key_padded:
.LFB794:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$48, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rdx
	movq	%rdx, 40(%rsp)
	xorl	%edx, %edx
	movq	$0, 0(%rbp)
	cmpq	$15, %r9
	jbe	.L16357
	leaq	-8(%r9), %r13
	movq	%r9, %rbx
	cmpq	%r13, %rcx
	jb	.L16357
	movq	%rsi, %r12
	movq	%r8, %rax
	cmpq	$16, %r9
	je	.L16367
	leaq	-24(%r9), %rdx
	cmpq	$2147483623, %rdx
	ja	.L16357
	testb	$7, %r9b
	je	.L16368
	.p2align 4,,10
	.p2align 3
.L16357:

	xorl	%eax, %eax
.L16354:

	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16369
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16368:

	.cfi_restore_state
	leaq	8(%rsp), %r14
	movq	%r9, %r8
	movq	%rax, %rcx
	movq	%r14, %rdx
# WAS call	aes_unwrap_key_inner.part.0
	call	.Laes_unwrap_key_inner.part.0_local_target
	testl	%eax, %eax
	je	.L16357
.L16359:

	movl	$4, %edx
# WAS leaq	kPaddingConstant(%rip), %rsi
	leaq	.LkPaddingConstant_local_target(%rip), %rsi
	movq	%r14, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	movl	12(%rsp), %edx
	leaq	-15(%rbx), %r8
	cltq
	bswap	%edx
	movl	%edx, %edx
	movq	%rax, %rsi
	subq	$1, %rax
	movq	%rdx, %rcx
	leaq	-1(%rdx), %rdi
	notq	%rsi
	notq	%rcx
	andq	%rsi, %rax
	leaq	-9(%rbx), %rsi
	andq	%rdi, %rcx
	xorq	%rsi, %rdi
	sarq	$63, %rax
	sarq	$63, %rcx
	shrq	$3, %rdi
	notq	%rcx
	andq	%rax, %rcx
	movq	%rdi, %rax
	subq	$1, %rdi
	notq	%rax
	andq	%rdi, %rax
	sarq	$63, %rax
	andq	%rcx, %rax
	cmpq	%r13, %r8
	jnb	.L16360
	movq	%r8, %rcx
	movq	%rdx, %r9
	leaq	-14(%rbx), %rdi
	subq	%rdx, %rcx
	xorq	%r8, %r9
	xorq	%r8, %rcx
	orq	%r9, %rcx
	xorq	%r8, %rcx
	sarq	$63, %rcx
	notq	%rcx
	andb	-15(%r12,%rbx), %cl
	movzbl	%cl, %ecx
	leaq	-1(%rcx), %r8
	notq	%rcx
	andq	%r8, %rcx
	sarq	$63, %rcx
	andq	%rcx, %rax
	cmpq	%rdi, %r13
	jb	.L16360
	movq	%rdi, %rcx
	movq	%rdx, %r8
	subq	%rdx, %rcx
	xorq	%rdi, %r8
	xorq	%rdi, %rcx
	orq	%r8, %rcx
	movq	%rdx, %r8
	xorq	%rdi, %rcx
	sarq	$63, %rcx
	notq	%rcx
	andb	-14(%r12,%rbx), %cl
	movzbl	%cl, %ecx
	leaq	-1(%rcx), %rdi
	notq	%rcx
	andq	%rcx, %rdi
	leaq	-13(%rbx), %rcx
	sarq	$63, %rdi
	xorq	%rcx, %r8
	andq	%rax, %rdi
	movq	%rcx, %rax
	subq	%rdx, %rax
	xorq	%rcx, %rax
	orq	%r8, %rax
	movq	%rdx, %r8
	xorq	%rcx, %rax
	sarq	$63, %rax
	notq	%rax
	andb	-13(%r12,%rbx), %al
	movzbl	%al, %eax
	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	andq	%rax, %rcx
	sarq	$63, %rcx
	andq	%rdi, %rcx
	leaq	-12(%rbx), %rdi
	movq	%rdi, %rax
	xorq	%rdi, %r8
	subq	%rdx, %rax
	xorq	%rdi, %rax
	orq	%r8, %rax
	movq	%rdx, %r8
	xorq	%rdi, %rax
	sarq	$63, %rax
	notq	%rax
	andb	-12(%r12,%rbx), %al
	movzbl	%al, %eax
	movq	%rax, %rdi
	subq	$1, %rax
	notq	%rdi
	andq	%rax, %rdi
	sarq	$63, %rdi
	andq	%rcx, %rdi
	leaq	-11(%rbx), %rcx
	movq	%rcx, %rax
	subq	%rdx, %rax
	xorq	%rcx, %r8
	xorq	%rcx, %rax
	orq	%r8, %rax
	movq	%rdx, %r8
	xorq	%rcx, %rax
	sarq	$63, %rax
	notq	%rax
	andb	-11(%r12,%rbx), %al
	movzbl	%al, %eax
	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	andq	%rax, %rcx
	sarq	$63, %rcx
	andq	%rdi, %rcx
	leaq	-10(%rbx), %rdi
	movq	%rdi, %rax
	xorq	%rdi, %r8
	subq	%rdx, %rax
	xorq	%rdi, %rax
	orq	%r8, %rax
	xorq	%rdi, %rax
	sarq	$63, %rax
	notq	%rax
	andb	-10(%r12,%rbx), %al
	movzbl	%al, %eax
	movq	%rax, %rdi
	subq	$1, %rax
	notq	%rdi
	andq	%rax, %rdi
	movq	%rsi, %rax
	sarq	$63, %rdi
	xorq	%rdx, %rax
	andq	%rcx, %rdi
	movq	%rsi, %rcx
	subq	%rdx, %rcx
	xorq	%rsi, %rcx
	orq	%rax, %rcx
	xorq	%rsi, %rcx
	sarq	$63, %rcx
	notq	%rcx
	andb	-9(%r12,%rbx), %cl
	movzbl	%cl, %ecx
	movq	%rcx, %rax
	subq	$1, %rcx
	notq	%rax
	andq	%rcx, %rax
	sarq	$63, %rax
	andq	%rdi, %rax
.L16360:

	movq	%rax, %rcx
	andq	%rcx, %rdx
	movq	%rdx, 0(%rbp)
	cmpl	$-1, %eax
	jne	.L16357
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
	jmp	.L16354
	.p2align 4,,10
	.p2align 3
.L16367:

	movq	%rdi, %rdx
	leaq	16(%rsp), %rsi
	leaq	8(%rsp), %r14
	movq	%r8, %rdi
# WAS call	AES_decrypt@PLT
	call	.LAES_decrypt_local_target
	movq	16(%rsp), %rax
	movq	%rax, 8(%rsp)
	movq	24(%rsp), %rax
	movq	%rax, (%r12)
	jmp	.L16359
.L16369:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE794:

	.size	AES_unwrap_key_padded, .-AES_unwrap_key_padded
# WAS .section	.text.CTR_DRBG_generate,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_generate
	.type	CTR_DRBG_generate, @function
.LCTR_DRBG_generate_local_target:
CTR_DRBG_generate:
.LFB2601:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%rcx, 8(%rsp)
	movq	%r8, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpq	$65536, %rdx
	ja	.L16373
	movabsq	$281474976710656, %rax
	movq	%rdi, %r15
	cmpq	280(%rdi), %rax
	jb	.L16373
	cmpq	$0, (%rsp)
	movq	%rsi, %r13
	movq	%rdx, %rbx
	je	.L16377
	cmpq	$48, %r8
	ja	.L16373
	movq	%rcx, %rsi
	movq	%r8, %rdx
# WAS call	ctr_drbg_update.part.0
	call	.Lctr_drbg_update.part.0_local_target
	testl	%eax, %eax
	je	.L16373
.L16377:

	leaq	264(%r15), %rbp
	cmpq	$15, %rbx
	ja	.L16375
	jmp	.L16376
	.p2align 4,,10
	.p2align 3
.L16410:

	leaq	8(%r13), %rdi
	movq	%r13, %rcx
	movl	%r14d, %eax
	movq	%r13, %rsi
	andq	$-8, %rdi
	movq	$0, 0(%r13)
	movq	%rbp, %r8
	subq	%r14, %rbx
	movq	$0, -8(%r13,%rax)
	subq	%rdi, %rcx
	xorl	%eax, %eax
	addl	%r14d, %ecx
	shrl	$3, %ecx
	rep stosq
	movq	%r13, %rdi
	movq	%r15, %rcx
	addq	%r14, %r13
	movl	276(%r15), %eax
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*256(%r15)
	movl	276(%r15), %eax
	bswap	%eax
	leal	-1(%rax,%r12), %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	cmpq	$15, %rbx
	jbe	.L16376
.L16375:

	movl	$8192, %edx
	cmpq	%rdx, %rbx
	cmovbe	%rbx, %rdx
	movq	%rdx, %r14
	shrq	$4, %rdx
	andq	$-16, %r14
	cmpq	$0, 256(%r15)
	movq	%rdx, %r12
	jne	.L16410
	xorl	%r12d, %r12d
	.p2align 4,,10
	.p2align 3
.L16378:

	movl	276(%r15), %eax
	leaq	0(%r13,%r12), %rsi
	addq	$16, %r12
	movq	%r15, %rdx
	movq	%rbp, %rdi
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*248(%r15)
	cmpq	%r14, %r12
	jb	.L16378
	subq	%r14, %rbx
	addq	%r14, %r13
	cmpq	$15, %rbx
	ja	.L16375
	.p2align 4,,10
	.p2align 3
.L16376:

	testq	%rbx, %rbx
	jne	.L16411
.L16380:

	movq	(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	ctr_drbg_update.part.0
	call	.Lctr_drbg_update.part.0_local_target
	testl	%eax, %eax
	jne	.L16412
	.p2align 4,,10
	.p2align 3
.L16373:

	xorl	%eax, %eax
.L16370:

	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16413
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16412:

	.cfi_restore_state
	addq	$1, 280(%r15)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
	jmp	.L16370
	.p2align 4,,10
	.p2align 3
.L16411:

	movl	276(%r15), %eax
	leaq	16(%rsp), %rbp
	leaq	264(%r15), %rdi
	movq	%r15, %rdx
	movq	%rbp, %rsi
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*248(%r15)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jnb	.L16381
	andl	$4, %ebx
	jne	.L16414
	testl	%eax, %eax
	je	.L16380
	movzbl	16(%rsp), %edx
	movb	%dl, 0(%r13)
	testb	$2, %al
	je	.L16380
	movzwl	-2(%rbp,%rax), %edx
	movw	%dx, -2(%r13,%rax)
	jmp	.L16380
	.p2align 4,,10
	.p2align 3
.L16381:

	movq	16(%rsp), %rax
	leaq	8(%r13), %rsi
	movq	%r13, %r9
	andq	$-8, %rsi
	movq	%rax, 0(%r13)
	movl	%ebx, %eax
	subq	%rsi, %r9
	movq	-8(%rbp,%rax), %rdx
	subq	%r9, %rbp
	movq	%rdx, -8(%r13,%rax)
	leal	(%rbx,%r9), %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L16380
	andl	$-8, %eax
	xorl	%edx, %edx
.L16385:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	0(%rbp,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L16385
	jmp	.L16380
.L16414:

	movl	16(%rsp), %edx
	movl	%edx, 0(%r13)
	movl	-4(%rbp,%rax), %edx
	movl	%edx, -4(%r13,%rax)
	jmp	.L16380
.L16413:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2601:

	.size	CTR_DRBG_generate, .-CTR_DRBG_generate
# WAS .section	.text.CTR_DRBG_generate_df,"ax",@progbits
.text
	.p2align 4
	.globl	CTR_DRBG_generate_df
	.type	CTR_DRBG_generate_df, @function
.LCTR_DRBG_generate_df_local_target:
CTR_DRBG_generate_df:
.LFB2602:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%r8, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	cmpq	$65536, %rdx
	ja	.L16419
	cmpq	$48, %r8
	ja	.L16419
	movabsq	$281474976710656, %rax
	movq	%rdi, %r15
	cmpq	280(%rdi), %rax
	jb	.L16419
	cmpq	$0, (%rsp)
	movq	%rsi, %r14
	movq	%rdx, %rbx
	jne	.L16420
	leaq	32(%rsp), %rax
	movq	%rax, 8(%rsp)
	cmpq	$15, %rdx
	jbe	.L16470
.L16421:

	leaq	264(%r15), %rbp
	jmp	.L16428
	.p2align 4,,10
	.p2align 3
.L16472:

	leaq	8(%r14), %rdi
	movq	%r14, %rcx
	movl	%r13d, %eax
	movq	%r14, %rsi
	andq	$-8, %rdi
	movq	$0, (%r14)
	movq	%rbp, %r8
	subq	%r13, %rbx
	movq	$0, -8(%r14,%rax)
	subq	%rdi, %rcx
	xorl	%eax, %eax
	addl	%r13d, %ecx
	shrl	$3, %ecx
	rep stosq
	movq	%r14, %rdi
	movq	%r15, %rcx
	addq	%r13, %r14
	movl	276(%r15), %eax
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*256(%r15)
	movl	276(%r15), %eax
	bswap	%eax
	leal	-1(%rax,%r12), %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	cmpq	$15, %rbx
	jbe	.L16471
.L16428:

	movl	$8192, %edx
	cmpq	%rdx, %rbx
	cmovbe	%rbx, %rdx
	movq	%rdx, %r13
	shrq	$4, %rdx
	andq	$-16, %r13
	cmpq	$0, 256(%r15)
	movq	%rdx, %r12
	jne	.L16472
	xorl	%r12d, %r12d
	.p2align 4,,10
	.p2align 3
.L16426:

	movl	276(%r15), %eax
	leaq	(%r14,%r12), %rsi
	addq	$16, %r12
	movq	%r15, %rdx
	movq	%rbp, %rdi
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*248(%r15)
	cmpq	%r13, %r12
	jb	.L16426
	subq	%r13, %rbx
	addq	%r13, %r14
	cmpq	$15, %rbx
	ja	.L16428
.L16471:

	testq	%rbx, %rbx
	jne	.L16423
.L16432:

	cmpq	$0, (%rsp)
	je	.L16422
.L16431:

	movl	$48, %edx
.L16439:

	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	ctr_drbg_update.part.0
	call	.Lctr_drbg_update.part.0_local_target
	testl	%eax, %eax
	je	.L16419
	addq	$1, 280(%r15)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
	jmp	.L16415
	.p2align 4,,10
	.p2align 3
.L16420:

	leaq	32(%rsp), %rax
	movq	%rcx, %rsi
	movq	%r8, %r12
	movq	%r8, %rdx
	movq	%rax, %rbp
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	CTR_DRBG_df
	call	.LCTR_DRBG_df_local_target
	cmpl	$1, %eax
	je	.L16473
	.p2align 4,,10
	.p2align 3
.L16419:

	xorl	%eax, %eax
.L16415:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16474
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L16470:

	.cfi_restore_state
	testq	%rdx, %rdx
	jne	.L16469
	.p2align 4,,10
	.p2align 3
.L16422:

	xorl	%edx, %edx
	jmp	.L16439
.L16473:

	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	ctr_drbg_update.part.0.constprop.0
	call	.Lctr_drbg_update.part.0.constprop.0_local_target
	testl	%eax, %eax
	je	.L16419
	cmpq	$15, %rbx
	ja	.L16421
	testq	%rbx, %rbx
	je	.L16431
.L16469:

	leaq	264(%r15), %rbp
	.p2align 4,,10
	.p2align 3
.L16423:

	movl	276(%r15), %eax
	leaq	16(%rsp), %r13
	movq	%r15, %rdx
	movq	%rbp, %rdi
	movq	%r13, %rsi
	bswap	%eax
	addl	$1, %eax
	bswap	%eax
	movl	%eax, 276(%r15)
	call	*248(%r15)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jnb	.L16433
	andl	$4, %ebx
	jne	.L16475
	testl	%eax, %eax
	je	.L16432
	movzbl	16(%rsp), %edx
	movb	%dl, (%r14)
	testb	$2, %al
	je	.L16432
	movzwl	-2(%r13,%rax), %edx
	movw	%dx, -2(%r14,%rax)
	jmp	.L16432
	.p2align 4,,10
	.p2align 3
.L16433:

	movq	16(%rsp), %rax
	leaq	8(%r14), %rsi
	movq	%r14, %r9
	andq	$-8, %rsi
	movq	%rax, (%r14)
	movl	%ebx, %eax
	subq	%rsi, %r9
	movq	-8(%r13,%rax), %rdx
	subq	%r9, %r13
	movq	%rdx, -8(%r14,%rax)
	leal	(%rbx,%r9), %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L16432
	andl	$-8, %eax
	xorl	%edx, %edx
.L16437:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	0(%r13,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L16437
	jmp	.L16432
.L16475:

	movl	16(%rsp), %edx
	movl	%edx, (%r14)
	movl	-4(%r13,%rax), %edx
	movl	%edx, -4(%r14,%rax)
	jmp	.L16432
.L16474:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2602:

	.size	CTR_DRBG_generate_df, .-CTR_DRBG_generate_df
# WAS .section	.text.unlikely.RAND_bytes_with_additional_data.part.0,"ax",@progbits
.text
.LCOLDB351:

# WAS .section	.text.RAND_bytes_with_additional_data.part.0,"ax",@progbits
.text
.LHOTB351:

	.p2align 4
	.type	RAND_bytes_with_additional_data.part.0, @function
.LRAND_bytes_with_additional_data.part.0_local_target:
RAND_bytes_with_additional_data.part.0:
.LFB3057:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$648, %rsp
	.cfi_def_cfa_offset 704
	movq	%fs:40, %rax
	movq	%rax, 632(%rsp)
	xorl	%eax, %eax
# WAS call	CRYPTO_get_fork_generation@PLT
	call	.LCRYPTO_get_fork_generation_local_target
	movq	%rax, %r14
# WAS call	rand_fork_unsafe_buffering_enabled@PLT
	call	.Lbcm_redirector_rand_fork_unsafe_buffering_enabled
	movl	$0, 36(%rsp)
	movl	%eax, 24(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, (%rsp)
# WAS call	CRYPTO_get_snapsafe_generation@PLT
	call	.LCRYPTO_get_snapsafe_generation_local_target
	movl	%eax, 8(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rax, 16(%rsp)
	testb	$64, 7(%rax)
	je	.L16477
	movl	(%rax), %eax
	movl	%eax, 28(%rsp)
	testl	$1073741824, %eax
	je	.L16545
	movl	$10, %r13d
	leaq	400(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L16478:

	movl	$32, %esi
	movq	%r12, %rdi
# WAS call	CRYPTO_rdrand_multiple8_buf@PLT
	call	.LCRYPTO_rdrand_multiple8_buf_local_target
	cmpl	$1, %eax
	je	.L16483
	subq	$1, %r13
	jne	.L16478
	movl	8(%rsp), %edx
	testl	%edx, %edx
	setne	%dl
	testq	%r14, %r14
	setne	%al
	testb	%al, %dl
	jne	.L16510
	movl	24(%rsp), %eax
	testl	%eax, %eax
	jne	.L16510
	movq	16(%rsp), %rax
	testb	$64, 7(%rax)
	je	.L16487
.L16484:

	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movl	$32, %esi
	movq	%r12, %rdi
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	jne	.L16483
# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	cmpl	$11, (%rax)
	jne	.L16485
	pxor	%xmm0, %xmm0
	movl	$10, %r13d
	movaps	%xmm0, 400(%rsp)
	movaps	%xmm0, 416(%rsp)
.L16486:

	movl	$32, %esi
	movq	%r12, %rdi
# WAS call	CRYPTO_rdrand_multiple8_buf@PLT
	call	.LCRYPTO_rdrand_multiple8_buf_local_target
	cmpl	$1, %eax
	je	.L16483
	subq	$1, %r13
	jne	.L16486
.L16487:

	xorl	%ecx, %ecx
	movl	$1, %edx
	movl	$32, %esi
	movq	%r12, %rdi
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	jne	.L16483
	jmp	.L16512
	.p2align 4,,10
	.p2align 3
.L16477:

	movl	8(%rsp), %r8d
	testq	%r14, %r14
	setne	%dl
	testl	%r8d, %r8d
	setne	%al
	testb	%al, %dl
	jne	.L16510
	movl	24(%rsp), %edi
	leaq	400(%rsp), %r12
	testl	%edi, %edi
	je	.L16487
.L16510:

	pxor	%xmm0, %xmm0
	movaps	%xmm0, 400(%rsp)
	movaps	%xmm0, 416(%rsp)
.L16483:

	movdqu	(%r15), %xmm0
	movl	$1, %edi
	pxor	400(%rsp), %xmm0
	movaps	%xmm0, 400(%rsp)
	movdqu	16(%r15), %xmm0
	pxor	416(%rsp), %xmm0
	movaps	%xmm0, 416(%rsp)
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L16546
.L16489:

	cmpl	$4095, 296(%r15)
	ja	.L16498
	movl	36(%rsp), %eax
	cmpl	%eax, 304(%r15)
	je	.L16547
.L16498:

	leaq	528(%rsp), %r12
	leaq	44(%rsp), %rsi
	movl	$0, 44(%rsp)
	movq	%r12, %rdi
	leaq	576(%rsp), %r13
# WAS call	RAND_module_entropy_depleted@PLT
	call	.Lbcm_redirector_RAND_module_entropy_depleted
# WAS call	state_clear_all_lock_bss_get@PLT
	call	state_clear_all_lock_bss_get
	movq	%rax, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_read
	cmpl	$1, 44(%rsp)
	je	.L16500
.L16502:

	xorl	%ecx, %ecx
.L16501:

	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	CTR_DRBG_reseed_df@PLT
	call	.LCTR_DRBG_reseed_df_local_target
	testl	%eax, %eax
	je	.L16503
	movl	24(%rsp), %eax
	movq	%r14, 288(%r15)
	movl	$48, %esi
	movq	%r12, %rdi
	movl	$0, 296(%r15)
	movl	%eax, 300(%r15)
	movl	36(%rsp), %eax
	movl	%eax, 304(%r15)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$48, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L16504:

	movl	$1, %r8d
	leaq	400(%rsp), %r12
	testq	%rbx, %rbx
	je	.L16508
	.p2align 4,,10
	.p2align 3
.L16505:

	movl	$65536, %r13d
	movq	%r12, %rcx
	movq	%rbp, %rsi
	movq	%r15, %rdi
	cmpq	%r13, %rbx
	cmovbe	%rbx, %r13
	salq	$5, %r8
	movq	%r13, %rdx
# WAS call	CTR_DRBG_generate_df@PLT
	call	.LCTR_DRBG_generate_df_local_target
	testl	%eax, %eax
	je	.L16503
	addl	$1, 296(%r15)
	addq	%r13, %rbp
	xorl	%r8d, %r8d
	subq	%r13, %rbx
	jne	.L16505
.L16508:

	leaq	48(%rsp), %rax
	cmpq	%rax, %r15
	je	.L16548
.L16507:

	movq	%r12, %rdi
	movl	$32, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rsp), %rdi
# WAS call	CRYPTO_get_snapsafe_generation@PLT
	call	.LCRYPTO_get_snapsafe_generation_local_target
	cmpl	$1, %eax
	jne	.L16509
	movl	36(%rsp), %eax
	cmpl	%eax, 304(%r15)
	jne	.L16503
.L16509:

# WAS call	state_clear_all_lock_bss_get@PLT
	call	state_clear_all_lock_bss_get
	movq	%rax, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_read
	movq	632(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L16549
	addq	$648, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L16545:

	.cfi_restore_state
	movl	8(%rsp), %esi
	testl	%esi, %esi
	setne	%dl
	testq	%r14, %r14
	setne	%al
	testb	%al, %dl
	jne	.L16510
	movl	24(%rsp), %ecx
	leaq	400(%rsp), %r12
	testl	%ecx, %ecx
	je	.L16484
	jmp	.L16510
.L16547:

	cmpq	288(%r15), %r14
	jne	.L16498
	movl	24(%rsp), %eax
	cmpl	300(%r15), %eax
	jne	.L16498
# WAS call	state_clear_all_lock_bss_get@PLT
	call	state_clear_all_lock_bss_get
	movq	%rax, %rdi
# WAS call	CRYPTO_STATIC_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_read
	jmp	.L16504
	.p2align 4,,10
	.p2align 3
.L16500:

	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movl	$48, %esi
	movq	%r13, %rdi
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	jne	.L16517
# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	cmpl	$11, (%rax)
	jne	.L16485
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 576(%rsp)
	movaps	%xmm0, 592(%rsp)
	movaps	%xmm0, 608(%rsp)
	jmp	.L16502
.L16548:

	movq	%r15, %rdi
# WAS call	CTR_DRBG_clear@PLT
	call	.LCTR_DRBG_clear_local_target
	jmp	.L16507
.L16546:

	movl	$1, %esi
	movl	$328, %edi
# WAS call	calloc@PLT
	call	.Lbcm_redirector_calloc
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L16490
# WAS leaq	rand_thread_state_free(%rip), %rdx
	leaq	.Lrand_thread_state_free_local_target(%rip), %rdx
	movq	%rax, %rsi
	movl	$1, %edi
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16491
.L16490:

	leaq	48(%rsp), %r15
.L16491:

	leaq	432(%rsp), %r12
	leaq	40(%rsp), %rsi
	movl	$0, 40(%rsp)
	movq	%r12, %rdi
	leaq	480(%rsp), %r13
# WAS call	RAND_module_entropy_depleted@PLT
	call	.Lbcm_redirector_RAND_module_entropy_depleted
	pxor	%xmm0, %xmm0
	cmpl	$1, 40(%rsp)
	movaps	%xmm0, 480(%rsp)
	movaps	%xmm0, 496(%rsp)
	movaps	%xmm0, 512(%rsp)
	je	.L16492
.L16494:

	xorl	%ecx, %ecx
.L16493:

	leaq	384(%rsp), %r8
	movq	%rcx, 16(%rsp)
	movq	%r8, %rdi
	movq	%r8, 8(%rsp)
# WAS call	CTR_DRBG_get_nonce@PLT
	call	.LCTR_DRBG_get_nonce_local_target
	movq	8(%rsp), %r8
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	16(%rsp), %rcx
	movq	%r15, %rdi
# WAS call	CTR_DRBG_init_df@PLT
	call	.LCTR_DRBG_init_df_local_target
	testl	%eax, %eax
	je	.L16503
	movl	24(%rsp), %eax
	movq	%r14, 288(%r15)
	movl	$0, 296(%r15)
	movl	%eax, 300(%r15)
	movl	36(%rsp), %eax
	movl	%eax, 304(%r15)
	leaq	48(%rsp), %rax
	cmpq	%rax, %r15
	je	.L16496
# WAS call	thread_states_list_lock_bss_get@PLT
	call	thread_states_list_lock_bss_get
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_STATIC_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write
# WAS call	thread_states_list_bss_get@PLT
	call	thread_states_list_bss_get
	movq	8(%rsp), %rdi
	movq	(%rax), %rdx
	testq	%rdx, %rdx
	movq	%rdx, 312(%r15)
	je	.L16497
	movq	%r15, 320(%rdx)
.L16497:

	movq	$0, 320(%r15)
	movq	%r15, (%rax)
# WAS call	CRYPTO_STATIC_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write
.L16496:

	movq	%r12, %rdi
	movl	$48, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$48, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L16489
.L16517:

	movl	$48, %ecx
	jmp	.L16501
.L16492:

	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movl	$48, %esi
	movq	%r13, %rdi
# WAS call	fill_with_entropy
	call	.Lfill_with_entropy_local_target
	testl	%eax, %eax
	jne	.L16516
# WAS call	__errno_location@PLT
	call	.Lbcm_redirector___errno_location
	cmpl	$11, (%rax)
	jne	.L16485
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 480(%rsp)
	movaps	%xmm0, 496(%rsp)
	movaps	%xmm0, 512(%rsp)
	jmp	.L16494
.L16516:

	movl	$48, %ecx
	jmp	.L16493
.L16549:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.RAND_bytes_with_additional_data.part.0
.text
	.cfi_startproc
	.type	RAND_bytes_with_additional_data.part.0.cold, @function
.LRAND_bytes_with_additional_data.part.0.cold_local_target:
RAND_bytes_with_additional_data.part.0.cold:
.LFSB3057:

.L16503:

	.cfi_def_cfa_offset 704
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L16485:

	leaq	.LC346(%rip), %rdi
# WAS call	perror@PLT
	call	.Lbcm_redirector_perror
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
.L16512:

# WAS call	CRYPTO_sysrand.part.0
	call	.LCRYPTO_sysrand.part.0_local_target
	.cfi_endproc
.LFE3057:

# WAS .section	.text.RAND_bytes_with_additional_data.part.0
.text
	.size	RAND_bytes_with_additional_data.part.0, .-RAND_bytes_with_additional_data.part.0
# WAS .section	.text.unlikely.RAND_bytes_with_additional_data.part.0
.text
	.size	RAND_bytes_with_additional_data.part.0.cold, .-RAND_bytes_with_additional_data.part.0.cold
.LCOLDE351:

# WAS .section	.text.RAND_bytes_with_additional_data.part.0
.text
.LHOTE351:

# WAS .section	.text.RAND_bytes_with_additional_data,"ax",@progbits
.text
	.p2align 4
	.globl	RAND_bytes_with_additional_data
	.hidden	RAND_bytes_with_additional_data
	.type	RAND_bytes_with_additional_data, @function
.LRAND_bytes_with_additional_data_local_target:
RAND_bytes_with_additional_data:
.LFB2635:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	jne	.L16552
	ret
	.p2align 4,,10
	.p2align 3
.L16552:

# WAS jmp	RAND_bytes_with_additional_data.part.0
	jmp	.LRAND_bytes_with_additional_data.part.0_local_target
	.cfi_endproc
.LFE2635:

	.size	RAND_bytes_with_additional_data, .-RAND_bytes_with_additional_data
# WAS .section	.text.RAND_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	RAND_bytes
	.type	RAND_bytes, @function
.LRAND_bytes_local_target:
RAND_bytes:
.LFB2636:

	.cfi_startproc
	endbr64
	testq	%rsi, %rsi
	jne	.L16562
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L16562:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS leaq	kZeroAdditionalData.67(%rip), %rdx
	leaq	.LkZeroAdditionalData.67_local_target(%rip), %rdx
# WAS call	RAND_bytes_with_additional_data.part.0
	call	.LRAND_bytes_with_additional_data.part.0_local_target
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2636:

	.size	RAND_bytes, .-RAND_bytes
# WAS .section	.text.X25519_keypair,"ax",@progbits
.text
	.p2align 4
	.globl	X25519_keypair
	.type	X25519_keypair, @function
.LX25519_keypair_local_target:
X25519_keypair:
.LFB1345:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	movl	$32, %esi
	movq	%rbx, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movzbl	31(%rbx), %eax
	orb	$7, (%rbx)
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	andl	$-65, %eax
	orl	$-128, %eax
	movb	%al, 31(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	X25519_public_from_private@PLT
	jmp	.LX25519_public_from_private_local_target
	.cfi_endproc
.LFE1345:

	.size	X25519_keypair, .-X25519_keypair
# WAS .section	.text.RAND_priv_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	RAND_priv_bytes
	.type	RAND_priv_bytes, @function
.LRAND_priv_bytes_local_target:
RAND_priv_bytes:
.LFB2637:

	.cfi_startproc
	endbr64
# WAS jmp	RAND_bytes@PLT
	jmp	.LRAND_bytes_local_target
	.cfi_endproc
.LFE2637:

	.size	RAND_priv_bytes, .-RAND_priv_bytes
# WAS .section	.text.RAND_pseudo_bytes,"ax",@progbits
.text
	.p2align 4
	.globl	RAND_pseudo_bytes
	.type	RAND_pseudo_bytes, @function
.LRAND_pseudo_bytes_local_target:
RAND_pseudo_bytes:
.LFB3131:

	.cfi_startproc
	endbr64
# WAS jmp	RAND_bytes@PLT
	jmp	.LRAND_bytes_local_target
	.cfi_endproc
.LFE3131:

	.size	RAND_pseudo_bytes, .-RAND_pseudo_bytes
# WAS .section	.text.evp_md_ctx_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.type	evp_md_ctx_verify_service_indicator, @function
.Levp_md_ctx_verify_service_indicator_local_target:
evp_md_ctx_verify_service_indicator:
.LFB2818:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%esi, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	testq	%rax, %rax
	je	.L16619
	movq	24(%rbx), %r15
	movq	%r15, %rdi
# WAS call	EVP_PKEY_CTX_get0_pkey@PLT
	call	.LEVP_PKEY_CTX_get0_pkey_local_target
	movq	%rax, %rdi
	movq	%rax, %r14
# WAS call	EVP_PKEY_id@PLT
	call	.LEVP_PKEY_id_local_target
	movq	%rbx, %rdi
	movl	%eax, %r13d
# WAS call	EVP_MD_CTX_type@PLT
	call	.LEVP_MD_CTX_type_local_target
	movl	%eax, 12(%rsp)
	cmpl	$6, %r13d
	je	.L16589
	cmpl	$912, %r13d
	je	.L16589
	cmpl	$408, %r13d
	je	.L16620
.L16570:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L16617
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	ERR_clear_error@PLT
	jmp	.Lbcm_redirector_ERR_clear_error
	.p2align 4,,10
	.p2align 3
.L16619:

	.cfi_restore_state
	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	cmpl	$949, 4(%rax)
	jne	.L16570
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L16617
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L16589:

	.cfi_restore_state
	leaq	24(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_PKEY_CTX_get_signature_md@PLT
	call	.LEVP_PKEY_CTX_get_signature_md_local_target
	testl	%eax, %eax
	je	.L16570
	movq	24(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movl	12(%rsp), %ecx
	cmpl	%ecx, %eax
	jne	.L16570
	leaq	16(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_padding@PLT
	call	.LEVP_PKEY_CTX_get_rsa_padding_local_target
	testl	%eax, %eax
	je	.L16570
	cmpl	$6, 16(%rsp)
	je	.L16621
.L16575:

	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	movq	8(%rax), %rdi
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	movl	12(%rsp), %edi
	movl	%r13d, %esi
	movl	%eax, %ebx
	call	*%rbp
	testl	%eax, %eax
	je	.L16570
	movl	%ebx, %eax
	cmpl	$1024, %ebx
	jne	.L16590
	andl	$1, %r12d
	jne	.L16585
.L16590:

	cmpq	$2047, %rax
	jbe	.L16570
	andl	$1, %ebx
	jne	.L16570
	jmp	.L16585
	.p2align 4,,10
	.p2align 3
.L16620:

	movq	8(%r14), %rax
	movq	(%rax), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	movl	12(%rsp), %edi
	movl	$408, %esi
	movl	%eax, %ebx
	call	*%rbp
	testl	%eax, %eax
	je	.L16570
	cmpl	$713, %ebx
	je	.L16585
	jg	.L16586
	cmpl	$415, %ebx
	jne	.L16570
.L16585:

	movq	%r15, %rdi
# WAS call	custom_meth_invoked
	call	.Lcustom_meth_invoked_local_target
	testl	%eax, %eax
	jne	.L16570
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16570
	.p2align 4,,10
	.p2align 3
.L16586:

	leal	-715(%rbx), %eax
	cmpl	$1, %eax
	ja	.L16570
	jmp	.L16585
.L16621:

	leaq	20(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_pss_saltlen@PLT
	call	.LEVP_PKEY_CTX_get_rsa_pss_saltlen_local_target
	testl	%eax, %eax
	je	.L16570
	leaq	32(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_mgf1_md@PLT
	call	.LEVP_PKEY_CTX_get_rsa_mgf1_md_local_target
	testl	%eax, %eax
	je	.L16570
	cmpl	$-1, 20(%rsp)
	je	.L16581
	movq	24(%rsp), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpl	%eax, 20(%rsp)
	jne	.L16570
.L16581:

	movq	32(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movl	12(%rsp), %ecx
	cmpl	%ecx, %eax
	jne	.L16570
	jmp	.L16575
.L16617:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2818:

	.size	evp_md_ctx_verify_service_indicator, .-evp_md_ctx_verify_service_indicator
# WAS .section	.text.aead_aes_ccm_seal_scatter,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_seal_scatter, @function
.Laead_aes_ccm_seal_scatter_local_target:
aead_aes_ccm_seal_scatter:
.LFB1290:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movl	276(%rdi), %ecx
	movq	%rsi, (%rsp)
	movq	184(%rsp), %r13
	movq	216(%rsp), %r12
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	cmpl	$7, %ecx
	ja	.L16623
	sall	$3, %ecx
	movl	$1, %eax
	salq	%cl, %rax
	subq	$1, %rax
	cmpq	192(%rsp), %rax
	jb	.L16689
.L16623:

	movzbl	577(%r14), %eax
	cmpq	%rax, %r8
	jb	.L16690
	movq	(%r14), %rdi
# WAS call	EVP_AEAD_nonce_length@PLT
	call	.LEVP_AEAD_nonce_length_local_target
	cmpq	176(%rsp), %rax
	je	.L16627
	movl	$375, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16624:

	xorl	%eax, %eax
.L16622:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16691
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16627:

	.cfi_restore_state
	movzbl	577(%r14), %eax
	leaq	8(%r14), %r8
	movl	276(%r14), %edx
	movq	%r15, %r9
	movq	%r8, 8(%rsp)
	movl	272(%r14), %esi
	movb	%al, 31(%rsp)
	leaq	48(%rsp), %rax
	movq	256(%r14), %rdi
	movq	%rax, 16(%rsp)
	movq	%rax, %rcx
	pushq	192(%rsp)
	.cfi_def_cfa_offset 184
	pushq	232(%rsp)
	.cfi_def_cfa_offset 192
	pushq	%r12
	.cfi_def_cfa_offset 200
	pushq	200(%rsp)
	.cfi_def_cfa_offset 208
# WAS call	ccm128_init_state.isra.0
	call	.Lccm128_init_state.isra.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 176
	testl	%eax, %eax
	jne	.L16628
.L16629:

	movl	$382, %r8d
.L16688:

	leaq	.LC188(%rip), %rcx
	movl	$117, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16624
	.p2align 4,,10
	.p2align 3
.L16690:

	movl	$370, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16624
	.p2align 4,,10
	.p2align 3
.L16628:

	subq	$8, %rsp
	.cfi_def_cfa_offset 184
	leaq	256(%r14), %rdi
	movq	%r13, %r9
	movq	%rbp, %rcx
	pushq	200(%rsp)
	.cfi_def_cfa_offset 192
	movzbl	47(%rsp), %r8d
	movq	24(%rsp), %rdx
	movq	32(%rsp), %rsi
# WAS call	ccm128_compute_mac
	call	.Lccm128_compute_mac_local_target
	popq	%rdi
	.cfi_def_cfa_offset 184
	popq	%r8
	.cfi_def_cfa_offset 176
	testl	%eax, %eax
	je	.L16629
	movl	276(%r14), %eax
	testl	%eax, %eax
	je	.L16630
	cmpl	$1, %eax
	je	.L16630
	movb	$0, 62(%rsp)
	cmpl	$2, %eax
	je	.L16630
	movb	$0, 61(%rsp)
	cmpl	$3, %eax
	je	.L16630
	movb	$0, 60(%rsp)
	cmpl	$4, %eax
	je	.L16630
	movb	$0, 59(%rsp)
	cmpl	$5, %eax
	je	.L16630
	movb	$0, 58(%rsp)
	cmpl	$6, %eax
	je	.L16630
	movb	$0, 57(%rsp)
	cmpl	$7, %eax
	je	.L16630
	movb	$0, 56(%rsp)
	cmpl	$8, %eax
	je	.L16630
	movb	$0, 55(%rsp)
	cmpl	$9, %eax
	je	.L16630
	movb	$0, 54(%rsp)
	cmpl	$10, %eax
	je	.L16630
	movb	$0, 53(%rsp)
	cmpl	$11, %eax
	je	.L16630
	movb	$0, 52(%rsp)
	cmpl	$12, %eax
	je	.L16630
	movb	$0, 51(%rsp)
	cmpl	$13, %eax
	je	.L16630
	movb	$0, 50(%rsp)
	cmpl	$14, %eax
	je	.L16630
	movb	$0, 49(%rsp)
	cmpl	$15, %eax
	je	.L16630
	movb	$0, 48(%rsp)
	.p2align 4,,10
	.p2align 3
.L16630:

	movq	264(%r14), %rax
	movb	$1, 63(%rsp)
	movl	$0, 44(%rsp)
	testq	%rax, %rax
	je	.L16632
	pushq	%rax
	.cfi_def_cfa_offset 184
	movq	%r13, %rdi
	leaq	52(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 192
	movq	32(%rsp), %r8
	movq	24(%rsp), %rcx
	movq	208(%rsp), %rdx
	movq	16(%rsp), %rsi
	leaq	96(%rsp), %r9
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%rcx
	.cfi_def_cfa_offset 184
	popq	%rsi
	.cfi_def_cfa_offset 176
.L16633:

	movzbl	577(%r14), %eax
	movq	(%r14), %rdi
	movq	%rax, (%rbx)
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	$16, %rax
	je	.L16692
.L16634:

	movl	$1, %eax
	jmp	.L16622
	.p2align 4,,10
	.p2align 3
.L16689:

	movl	$365, %r8d
	jmp	.L16688
	.p2align 4,,10
	.p2align 3
.L16692:

	cmpb	$4, 577(%r14)
	jne	.L16634
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16634
.L16632:

	pushq	256(%r14)
	.cfi_def_cfa_offset 184
	movq	%r13, %rdi
	leaq	52(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 192
	movq	32(%rsp), %r8
	movq	24(%rsp), %rcx
	movq	208(%rsp), %rdx
	movq	16(%rsp), %rsi
	leaq	96(%rsp), %r9
# WAS call	CRYPTO_ctr128_encrypt
	call	.LCRYPTO_ctr128_encrypt_local_target
	popq	%rax
	.cfi_def_cfa_offset 184
	popq	%rdx
	.cfi_def_cfa_offset 176
	jmp	.L16633
.L16691:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1290:

	.size	aead_aes_ccm_seal_scatter, .-aead_aes_ccm_seal_scatter
# WAS .section	.text.aead_aes_gcm_open_gather,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_open_gather, @function
.Laead_aes_gcm_open_gather_local_target:
aead_aes_gcm_open_gather:
.LFB1243:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	addq	$8, %rdi
	movzbl	577(%rbx), %eax
	subq	$8, %rsp
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	pushq	56(%rsp)
	.cfi_def_cfa_offset 40
	pushq	56(%rsp)
	.cfi_def_cfa_offset 48
	pushq	56(%rsp)
	.cfi_def_cfa_offset 56
	pushq	56(%rsp)
	.cfi_def_cfa_offset 64
# WAS call	aead_aes_gcm_open_gather_impl
	call	.Laead_aes_gcm_open_gather_impl_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 16
	testl	%eax, %eax
	jne	.L16700
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16700:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	je	.L16701
.L16695:

	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16701:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16695
	.cfi_endproc
.LFE1243:

	.size	aead_aes_gcm_open_gather, .-aead_aes_gcm_open_gather
# WAS .section	.text.aead_aes_ccm_open_gather,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_ccm_open_gather, @function
.Laead_aes_ccm_open_gather_local_target:
aead_aes_ccm_open_gather:
.LFB1291:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movl	276(%rdi), %ecx
	movq	%rsi, 8(%rsp)
	movq	192(%rsp), %r15
	movq	%r8, 16(%rsp)
	movq	208(%rsp), %r14
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	cmpl	$7, %ecx
	ja	.L16703
	sall	$3, %ecx
	movl	$1, %eax
	movl	$400, %r8d
	salq	%cl, %rax
	subq	$1, %rax
	cmpq	%r9, %rax
	jb	.L16769
.L16703:

	movq	0(%r13), %rdi
# WAS call	EVP_AEAD_nonce_length@PLT
	call	.LEVP_AEAD_nonce_length_local_target
	cmpq	%r12, %rax
	jne	.L16771
	movzbl	577(%r13), %r11d
	movl	$410, %r8d
	cmpq	200(%rsp), %r11
	jne	.L16770
	leaq	64(%rsp), %rax
	leaq	8(%r13), %r8
	movq	%r11, 24(%rsp)
	movl	276(%r13), %edx
	movq	%r8, 32(%rsp)
	movq	%rbp, %r9
	movq	%rax, %rcx
	movq	256(%r13), %rdi
	movq	%rax, 40(%rsp)
	movl	272(%r13), %esi
	pushq	%rbx
	.cfi_def_cfa_offset 200
	pushq	224(%rsp)
	.cfi_def_cfa_offset 208
	pushq	%r14
	.cfi_def_cfa_offset 216
	pushq	%r12
	.cfi_def_cfa_offset 224
# WAS call	ccm128_init_state.isra.0
	call	.Lccm128_init_state.isra.0_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 192
	movq	24(%rsp), %r11
	testl	%eax, %eax
	jne	.L16772
.L16708:

	movl	$419, %r8d
.L16769:

	leaq	.LC188(%rip), %rcx
	movl	$117, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16704:

	xorl	%eax, %eax
.L16702:

	movq	120(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16773
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16774:

	.cfi_restore_state
	movl	$424, %r8d
	.p2align 4,,10
	.p2align 3
.L16770:

	leaq	.LC188(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16704
	.p2align 4,,10
	.p2align 3
.L16771:

	movl	$405, %r8d
	leaq	.LC188(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16704
	.p2align 4,,10
	.p2align 3
.L16772:

	movl	276(%r13), %eax
	testl	%eax, %eax
	je	.L16709
	cmpl	$1, %eax
	je	.L16709
	movb	$0, 78(%rsp)
	cmpl	$2, %eax
	je	.L16709
	movb	$0, 77(%rsp)
	cmpl	$3, %eax
	je	.L16709
	movb	$0, 76(%rsp)
	cmpl	$4, %eax
	je	.L16709
	movb	$0, 75(%rsp)
	cmpl	$5, %eax
	je	.L16709
	movb	$0, 74(%rsp)
	cmpl	$6, %eax
	je	.L16709
	movb	$0, 73(%rsp)
	cmpl	$7, %eax
	je	.L16709
	movb	$0, 72(%rsp)
	cmpl	$8, %eax
	je	.L16709
	movb	$0, 71(%rsp)
	cmpl	$9, %eax
	je	.L16709
	movb	$0, 70(%rsp)
	cmpl	$10, %eax
	je	.L16709
	movb	$0, 69(%rsp)
	cmpl	$11, %eax
	je	.L16709
	movb	$0, 68(%rsp)
	cmpl	$12, %eax
	je	.L16709
	movb	$0, 67(%rsp)
	cmpl	$13, %eax
	je	.L16709
	movb	$0, 66(%rsp)
	cmpl	$14, %eax
	je	.L16709
	movb	$0, 65(%rsp)
	cmpl	$15, %eax
	je	.L16709
	movb	$0, 64(%rsp)
	.p2align 4,,10
	.p2align 3
.L16709:

	movq	264(%r13), %rax
	movb	$1, 79(%rsp)
	leaq	96(%rsp), %rbp
	movl	$0, 60(%rsp)
	movq	%r11, 24(%rsp)
	testq	%rax, %rax
	je	.L16711
	pushq	%rax
	.cfi_def_cfa_offset 200
	movq	%rbp, %r9
	movq	%rbx, %rdx
	leaq	68(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 208
	movq	56(%rsp), %r8
	movq	48(%rsp), %rcx
	movq	24(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	CRYPTO_ctr128_encrypt_ctr32
	call	.LCRYPTO_ctr128_encrypt_ctr32_local_target
	popq	%r8
	.cfi_def_cfa_offset 200
	popq	%r9
	.cfi_def_cfa_offset 192
	movq	24(%rsp), %r11
.L16712:

	subq	$8, %rsp
	.cfi_def_cfa_offset 200
	movq	%rbp, %rcx
	leaq	256(%r13), %rdi
	movq	%r11, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 208
	movq	24(%rsp), %r9
	movq	48(%rsp), %rdx
	movq	56(%rsp), %rsi
# WAS call	ccm128_compute_mac
	call	.Lccm128_compute_mac_local_target
	popq	%rdx
	.cfi_def_cfa_offset 200
	popq	%rcx
	.cfi_def_cfa_offset 192
	testl	%eax, %eax
	je	.L16708
	movzbl	577(%r13), %edx
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L16774
	movq	0(%r13), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	$16, %rax
	je	.L16775
.L16715:

	movl	$1, %eax
	jmp	.L16702
	.p2align 4,,10
	.p2align 3
.L16775:

	cmpb	$4, 577(%r13)
	jne	.L16715
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16715
	.p2align 4,,10
	.p2align 3
.L16711:

	pushq	256(%r13)
	.cfi_def_cfa_offset 200
	movq	%rbp, %r9
	movq	%rbx, %rdx
	leaq	68(%rsp), %rax
	pushq	%rax
	.cfi_def_cfa_offset 208
	movq	56(%rsp), %r8
	movq	48(%rsp), %rcx
	movq	24(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	CRYPTO_ctr128_encrypt
	call	.LCRYPTO_ctr128_encrypt_local_target
	popq	%rsi
	.cfi_def_cfa_offset 200
	popq	%rdi
	.cfi_def_cfa_offset 192
	movq	24(%rsp), %r11
	jmp	.L16712
.L16773:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1291:

	.size	aead_aes_ccm_open_gather, .-aead_aes_ccm_open_gather
# WAS .section	.text.aead_aes_gcm_open_gather_randnonce,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_open_gather_randnonce, @function
.Laead_aes_gcm_open_gather_randnonce_local_target:
aead_aes_gcm_open_gather_randnonce:
.LFB1255:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	32(%rsp), %r11
	movq	40(%rsp), %rax
	testq	%rcx, %rcx
	jne	.L16786
	cmpq	$11, %rax
	jbe	.L16787
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 40
	subq	$12, %rax
	movl	$12, %ecx
	movzbl	577(%rbx), %edx
	leaq	(%r11,%rax), %r10
	leaq	8(%rdi), %rdi
	subl	$12, %edx
	movslq	%edx, %rdx
	pushq	%rdx
	.cfi_def_cfa_offset 48
	movq	%r10, %rdx
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	pushq	%rax
	.cfi_def_cfa_offset 72
	pushq	%r11
	.cfi_def_cfa_offset 80
# WAS call	aead_aes_gcm_open_gather_impl
	call	.Laead_aes_gcm_open_gather_impl_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 32
	movl	%eax, %ebp
	testl	%eax, %eax
	jne	.L16788
.L16778:

	xorl	%ebp, %ebp
.L16776:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16787:

	.cfi_restore_state
	movl	$1390, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16778
	.p2align 4,,10
	.p2align 3
.L16786:

	movl	$1385, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16778
	.p2align 4,,10
	.p2align 3
.L16788:

	movq	(%rbx), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	jne	.L16776
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16776
	.cfi_endproc
.LFE1255:

	.size	aead_aes_gcm_open_gather_randnonce, .-aead_aes_gcm_open_gather_randnonce
# WAS .section	.text.EVP_EncryptFinal_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_EncryptFinal_ex
	.type	EVP_EncryptFinal_ex, @function
.LEVP_EncryptFinal_ex_local_target:
EVP_EncryptFinal_ex:
.LFB1123:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movl	$363, %r8d
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	testq	%rdi, %rdi
	je	.L16817
	movl	144(%rdi), %eax
	movq	%rdi, %rbx
	testl	%eax, %eax
	jne	.L16818
	movq	(%rdi), %rbp
	testq	%rbp, %rbp
	je	.L16819
	movq	%rsi, %r13
	movq	%rdx, %r12
	testb	$4, 21(%rbp)
	jne	.L16820
	movl	4(%rbp), %r14d
	cmpl	$1, %r14d
	je	.L16796
	movl	100(%rdi), %ecx
	testb	$8, 33(%rdi)
	jne	.L16821
	movl	%r14d, %esi
	subl	%ecx, %esi
	cmpl	%r14d, %ecx
	jnb	.L16801
	leal	-1(%r14), %edx
	movzbl	%sil, %esi
	leaq	68(%rdi,%rcx), %rdi
	subl	%ecx, %edx
	addq	$1, %rdx
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
.L16801:

	movl	%r14d, %ecx
	leaq	68(%rbx), %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	*40(%rbp)
	testl	%eax, %eax
	je	.L16791
	movl	%r14d, %eax
	.p2align 4,,10
	.p2align 3
.L16796:

	movl	%eax, (%r12)
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_nid@PLT
	call	.LEVP_CIPHER_CTX_nid_local_target
	cmpl	$427, %eax
	jg	.L16802
	cmpl	$417, %eax
	jg	.L16822
.L16803:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16820:

	.cfi_restore_state
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	call	*40(%rbp)
	testl	%eax, %eax
	jns	.L16796
.L16791:

	xorl	%eax, %eax
.L16823:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16822:

	.cfi_restore_state
	subl	$418, %eax
	movl	$819, %edx
	btq	%rax, %rdx
	jnc	.L16803
.L16804:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16803
	.p2align 4,,10
	.p2align 3
.L16821:

	testl	%ecx, %ecx
	je	.L16796
	movl	$392, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16823
	.p2align 4,,10
	.p2align 3
.L16818:

	movl	$366, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16823
	.p2align 4,,10
	.p2align 3
.L16819:

	movl	$369, %r8d
.L16817:

	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16823
	.p2align 4,,10
	.p2align 3
.L16802:

	cmpl	$906, %eax
	jg	.L16805
	cmpl	$903, %eax
	jle	.L16803
	jmp	.L16804
	.p2align 4,,10
	.p2align 3
.L16805:

	cmpl	$914, %eax
	jne	.L16803
	jmp	.L16804
	.cfi_endproc
.LFE1123:

	.size	EVP_EncryptFinal_ex, .-EVP_EncryptFinal_ex
# WAS .section	.text.EVP_EncryptFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_EncryptFinal
	.type	EVP_EncryptFinal, @function
.LEVP_EncryptFinal_local_target:
EVP_EncryptFinal:
.LFB1153:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_EncryptFinal_ex@PLT
	jmp	.LEVP_EncryptFinal_ex_local_target
	.cfi_endproc
.LFE1153:

	.size	EVP_EncryptFinal, .-EVP_EncryptFinal
# WAS .section	.text.EVP_DecryptFinal_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DecryptFinal_ex
	.type	EVP_DecryptFinal_ex, @function
.LEVP_DecryptFinal_ex_local_target:
EVP_DecryptFinal_ex:
.LFB1125:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$486, %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movl	$0, (%rdx)
	testq	%rdi, %rdi
	je	.L16868
	movl	144(%rdi), %ecx
	movq	%rdi, %rbx
	testl	%ecx, %ecx
	jne	.L16870
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L16871
	movq	%rdx, %rbp
	testb	$4, 21(%rax)
	je	.L16831
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	call	*40(%rax)
	testl	%eax, %eax
	js	.L16827
	movl	%eax, 0(%rbp)
.L16832:

	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_nid@PLT
	call	.LEVP_CIPHER_CTX_nid_local_target
	cmpl	$427, %eax
	jg	.L16848
	cmpl	$417, %eax
	jg	.L16872
.L16849:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16831:

	.cfi_restore_state
	movl	32(%rdi), %edx
	movl	4(%rax), %ecx
	andl	$2048, %edx
	jne	.L16873
	cmpl	$1, %ecx
	jbe	.L16832
	movl	100(%rdi), %r10d
	testl	%r10d, %r10d
	jne	.L16834
	movl	108(%rdi), %eax
	testl	%eax, %eax
	je	.L16834
	leal	-1(%rcx), %eax
	movzbl	112(%rdi,%rax), %r8d
	movl	%r8d, %r9d
	testl	%r8d, %r8d
	je	.L16853
	movl	%ecx, %eax
	cmpl	%r8d, %ecx
	jge	.L16836
	jmp	.L16853
	.p2align 4,,10
	.p2align 3
.L16838:

	movl	%ecx, %edi
	subl	%eax, %edi
	cmpl	%edi, %r8d
	jle	.L16874
.L16836:

	leal	-1(%rax), %edi
	movq	%rdi, %rax
	cmpb	112(%rbx,%rdi), %r9b
	je	.L16838
	movl	$534, %r8d
.L16869:

	leaq	.LC192(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16827:

	xorl	%eax, %eax
.L16875:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16873:

	.cfi_restore_state
	movl	100(%rdi), %edx
	testl	%edx, %edx
	je	.L16832
	movl	$510, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16875
	.p2align 4,,10
	.p2align 3
.L16870:

	movl	$493, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16875
	.p2align 4,,10
	.p2align 3
.L16871:

	movl	$496, %r8d
.L16868:

	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16875
	.p2align 4,,10
	.p2align 3
.L16848:

	cmpl	$906, %eax
	jg	.L16851
	cmpl	$903, %eax
	jle	.L16849
.L16850:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16849
	.p2align 4,,10
	.p2align 3
.L16872:

	subl	$418, %eax
	movl	$819, %edx
	btq	%rax, %rdx
	jnc	.L16849
	jmp	.L16850
	.p2align 4,,10
	.p2align 3
.L16851:

	cmpl	$914, %eax
	jne	.L16849
	jmp	.L16850
	.p2align 4,,10
	.p2align 3
.L16853:

	movl	$528, %r8d
	jmp	.L16869
	.p2align 4,,10
	.p2align 3
.L16834:

	movl	$519, %r8d
	leaq	.LC192(%rip), %rcx
	movl	$123, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16875
	.p2align 4,,10
	.p2align 3
.L16874:

	subl	%r8d, %ecx
	movl	%ecx, %edi
	testl	%ecx, %ecx
	jle	.L16839
	leal	-1(%rcx), %r8d
	cmpl	$6, %r8d
	jbe	.L16840
	leaq	-113(%rsi), %rax
	subq	%rbx, %rax
	cmpq	$14, %rax
	ja	.L16876
.L16840:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L16846:

	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	addq	$1, %rax
	cmpq	%rcx, %rax
	jne	.L16846
.L16839:

	movl	%edi, 0(%rbp)
	jmp	.L16832
.L16876:

	cmpl	$14, %r8d
	jbe	.L16841
	movdqu	112(%rbx), %xmm0
	movl	%ecx, %eax
	shrl	$4, %eax
	movups	%xmm0, (%rsi)
	cmpl	$1, %eax
	je	.L16842
	movdqu	128(%rbx), %xmm1
	movups	%xmm1, 16(%rsi)
.L16842:

	movl	%ecx, %edx
	andl	$-16, %edx
	movl	%edx, %r10d
	testb	$15, %cl
	je	.L16839
	subl	%edx, %ecx
	leal	-1(%rcx), %eax
	cmpl	$6, %eax
	jbe	.L16844
.L16841:

	movl	%edx, %edx
	movq	112(%rbx,%rdx), %rax
	movq	%rax, (%rsi,%rdx)
	movl	%ecx, %eax
	andl	$-8, %eax
	addl	%eax, %r10d
	andl	$7, %ecx
	je	.L16839
.L16844:

	movslq	%r10d, %rax
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	1(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	2(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	3(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	4(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	5(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	leal	6(%r10), %eax
	cmpl	%eax, %edi
	jle	.L16839
	cltq
	movzbl	112(%rbx,%rax), %edx
	movb	%dl, (%rsi,%rax)
	jmp	.L16839
	.cfi_endproc
.LFE1125:

	.size	EVP_DecryptFinal_ex, .-EVP_DecryptFinal_ex
# WAS .section	.text.EVP_CipherFinal_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CipherFinal_ex
	.type	EVP_CipherFinal_ex, @function
.LEVP_CipherFinal_ex_local_target:
EVP_CipherFinal_ex:
.LFB1128:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L16882
	movl	28(%rdi), %eax
	testl	%eax, %eax
	je	.L16880
# WAS jmp	EVP_EncryptFinal_ex@PLT
	jmp	.LEVP_EncryptFinal_ex_local_target
	.p2align 4,,10
	.p2align 3
.L16880:

# WAS jmp	EVP_DecryptFinal_ex@PLT
	jmp	.LEVP_DecryptFinal_ex_local_target
	.p2align 4,,10
	.p2align 3
.L16882:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$14, %edi
	movl	$589, %r8d
	leaq	.LC192(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE1128:

	.size	EVP_CipherFinal_ex, .-EVP_CipherFinal_ex
# WAS .section	.text.EVP_CipherFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_CipherFinal
	.type	EVP_CipherFinal, @function
.LEVP_CipherFinal_local_target:
EVP_CipherFinal:
.LFB1152:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_CipherFinal_ex@PLT
	jmp	.LEVP_CipherFinal_ex_local_target
	.cfi_endproc
.LFE1152:

	.size	EVP_CipherFinal, .-EVP_CipherFinal
# WAS .section	.text.EVP_DecryptFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DecryptFinal
	.type	EVP_DecryptFinal, @function
.LEVP_DecryptFinal_local_target:
EVP_DecryptFinal:
.LFB1154:

	.cfi_startproc
	endbr64
# WAS jmp	EVP_DecryptFinal_ex@PLT
	jmp	.LEVP_DecryptFinal_ex_local_target
	.cfi_endproc
.LFE1154:

	.size	EVP_DecryptFinal, .-EVP_DecryptFinal
# WAS .section	.text.EVP_Cipher,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_Cipher
	.type	EVP_Cipher, @function
.LEVP_Cipher_local_target:
EVP_Cipher:
.LFB1126:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$556, %r8d
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	testq	%rdi, %rdi
	je	.L16901
	movq	(%rdi), %rax
	movq	%rdi, %rbx
	testq	%rax, %rax
	je	.L16902
	call	*40(%rax)
	movl	%eax, %ebp
	movq	(%rbx), %rax
	testb	$4, 21(%rax)
	jne	.L16887
	testl	%ebp, %ebp
	jne	.L16903
	xorl	%ebp, %ebp
.L16887:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16903:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_nid@PLT
	call	.LEVP_CIPHER_CTX_nid_local_target
	cmpl	$427, %eax
	jg	.L16893
	cmpl	$417, %eax
	jle	.L16887
	subl	$418, %eax
	movl	$819, %edx
	btq	%rax, %rdx
	jnc	.L16887
.L16895:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16887
	.p2align 4,,10
	.p2align 3
.L16902:

	movl	$557, %r8d
.L16901:

	leaq	.LC192(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16887
	.p2align 4,,10
	.p2align 3
.L16893:

	cmpl	$906, %eax
	jg	.L16896
	cmpl	$903, %eax
	jle	.L16887
	jmp	.L16895
	.p2align 4,,10
	.p2align 3
.L16896:

	cmpl	$914, %eax
	jne	.L16887
	jmp	.L16895
	.cfi_endproc
.LFE1126:

	.size	EVP_Cipher, .-EVP_Cipher
# WAS .section	.text.aead_aes_gcm_tls12_seal_scatter,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls12_seal_scatter, @function
.Laead_aes_gcm_tls12_seal_scatter_local_target:
aead_aes_gcm_tls12_seal_scatter:
.LFB1263:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	cmpq	$12, 16(%rsp)
	je	.L16905
	movl	$1479, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$121, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16906:

	xorl	%eax, %eax
.L16904:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16905:

	.cfi_restore_state
	movq	%rdi, %rbx
	movq	4(%r9), %rdi
	movq	%rdi, %rax
	bswap	%rax
	cmpq	$-1, %rdi
	je	.L16907
	cmpq	552(%rbx), %rax
	jb	.L16907
	addq	$1, %rax
	leaq	8(%rbx), %rdi
	movq	%rax, 552(%rbx)
	movzbl	577(%rbx), %eax
	pushq	%rax
	.cfi_def_cfa_offset 24
	pushq	72(%rsp)
	.cfi_def_cfa_offset 32
	pushq	72(%rsp)
	.cfi_def_cfa_offset 40
	pushq	72(%rsp)
	.cfi_def_cfa_offset 48
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	pushq	72(%rsp)
	.cfi_def_cfa_offset 72
	pushq	$12
	.cfi_def_cfa_offset 80
# WAS call	aead_aes_gcm_seal_scatter_impl
	call	.Laead_aes_gcm_seal_scatter_impl_local_target
	addq	$64, %rsp
	.cfi_def_cfa_offset 16
	testl	%eax, %eax
	je	.L16906
	movq	(%rbx), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	je	.L16918
.L16910:

	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16907:

	.cfi_restore_state
	movl	$1487, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16904
	.p2align 4,,10
	.p2align 3
.L16918:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16910
	.cfi_endproc
.LFE1263:

	.size	aead_aes_gcm_tls12_seal_scatter, .-aead_aes_gcm_tls12_seal_scatter
# WAS .section	.text.aead_aes_gcm_tls13_seal_scatter,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_tls13_seal_scatter, @function
.Laead_aes_gcm_tls13_seal_scatter_local_target:
aead_aes_gcm_tls13_seal_scatter:
.LFB1271:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	cmpq	$12, 16(%rsp)
	je	.L16920
	movl	$1575, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$121, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L16921:

	xorl	%eax, %eax
.L16919:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16920:

	.cfi_restore_state
	movq	4(%r9), %rax
	cmpb	$0, 568(%rdi)
	movq	%rdi, %rbx
	bswap	%rax
	je	.L16922
	movb	$0, 568(%rdi)
	movq	%rax, 560(%rdi)
	xorl	%eax, %eax
.L16923:

	cmpq	552(%rbx), %rax
	jb	.L16925
	addq	$1, %rax
	leaq	8(%rbx), %rdi
	movq	%rax, 552(%rbx)
	movzbl	577(%rbx), %eax
	pushq	%rax
	.cfi_def_cfa_offset 24
	pushq	72(%rsp)
	.cfi_def_cfa_offset 32
	pushq	72(%rsp)
	.cfi_def_cfa_offset 40
	pushq	72(%rsp)
	.cfi_def_cfa_offset 48
	pushq	72(%rsp)
	.cfi_def_cfa_offset 56
	pushq	72(%rsp)
	.cfi_def_cfa_offset 64
	pushq	72(%rsp)
	.cfi_def_cfa_offset 72
	pushq	$12
	.cfi_def_cfa_offset 80
# WAS call	aead_aes_gcm_seal_scatter_impl
	call	.Laead_aes_gcm_seal_scatter_impl_local_target
	addq	$64, %rsp
	.cfi_def_cfa_offset 16
	testl	%eax, %eax
	je	.L16921
	movq	(%rbx), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	je	.L16931
.L16926:

	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16922:

	.cfi_restore_state
	xorq	560(%rdi), %rax
	cmpq	$-1, %rax
	jne	.L16923
.L16925:

	movl	$1594, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L16919
	.p2align 4,,10
	.p2align 3
.L16931:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L16926
	.cfi_endproc
.LFE1271:

	.size	aead_aes_gcm_tls13_seal_scatter, .-aead_aes_gcm_tls13_seal_scatter
# WAS .section	.text.FIPS_service_indicator_lock_state,"ax",@progbits
.text
	.p2align 4
	.globl	FIPS_service_indicator_lock_state
	.hidden	FIPS_service_indicator_lock_state
	.type	FIPS_service_indicator_lock_state, @function
.LFIPS_service_indicator_lock_state_local_target:
FIPS_service_indicator_lock_state:
.LFB2809:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16943
.L16933:

	movq	(%rbx), %rax
	addq	$1, %rax
	jc	.L16936
	movq	%rax, (%rbx)
.L16932:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16943:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16932
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16933
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
.L16936:

	.cfi_restore_state
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2809:

	.size	FIPS_service_indicator_lock_state, .-FIPS_service_indicator_lock_state
# WAS .section	.text.unlikely.FIPS_service_indicator_unlock_state,"ax",@progbits
.text
.LCOLDB352:

# WAS .section	.text.FIPS_service_indicator_unlock_state,"ax",@progbits
.text
.LHOTB352:

	.p2align 4
	.globl	FIPS_service_indicator_unlock_state
	.hidden	FIPS_service_indicator_unlock_state
	.type	FIPS_service_indicator_unlock_state, @function
.LFIPS_service_indicator_unlock_state_local_target:
FIPS_service_indicator_unlock_state:
.LFB2810:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16954
.L16945:

	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L16951
	subq	$1, %rax
	movq	%rax, (%rbx)
.L16944:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16954:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L16944
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L16945
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
# WAS .section	.text.unlikely.FIPS_service_indicator_unlock_state
.text
	.cfi_startproc
	.type	FIPS_service_indicator_unlock_state.cold, @function
.LFIPS_service_indicator_unlock_state.cold_local_target:
FIPS_service_indicator_unlock_state.cold:
.LFSB2810:

.L16951:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2810:

# WAS .section	.text.FIPS_service_indicator_unlock_state
.text
	.size	FIPS_service_indicator_unlock_state, .-FIPS_service_indicator_unlock_state
# WAS .section	.text.unlikely.FIPS_service_indicator_unlock_state
.text
	.size	FIPS_service_indicator_unlock_state.cold, .-FIPS_service_indicator_unlock_state.cold
.LCOLDE352:

# WAS .section	.text.FIPS_service_indicator_unlock_state
.text
.LHOTE352:

# WAS .section	.text.AES_wrap_key_padded,"ax",@progbits
.text
	.p2align 4
	.globl	AES_wrap_key_padded
	.type	AES_wrap_key_padded, @function
.LAES_wrap_key_padded_local_target:
AES_wrap_key_padded:
.LFB793:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	7(%rbx), %r8
	leaq	-1(%rbx), %rax
	movl	$4294967294, %edx
	movq	$0, 0(%rbp)
	andq	$-8, %r8
	cmpq	%rax, %rdx
	jb	.L16956
	leaq	8(%r8), %rax
	cmpq	%rax, %r12
	jnb	.L16957
.L16956:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L16955:

	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L16966
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L16957:

	.cfi_restore_state
	movl	%ebx, %eax
	movl	$-1504093786, 16(%rsp)
	bswap	%eax
	movl	%eax, 20(%rsp)
	cmpq	$8, %rbx
	jbe	.L16967
	movq	%r8, %rdi
	movq	%r8, 8(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L16956
	movq	8(%rsp), %r8
	movq	%rbx, %rdx
	movq	%r15, %rsi
	movq	%rax, %rdi
	movq	$0, -8(%rax,%r8)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	8(%rsp), %r8
	movq	%r13, %rdi
	movq	%r12, %rcx
	leaq	16(%rsp), %rsi
	movq	%r14, %rdx
# WAS call	AES_wrap_key@PLT
	call	.LAES_wrap_key_local_target
	movq	%r12, %rdi
	movslq	%eax, %rbx
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	testl	%ebx, %ebx
	js	.L16956
	movq	%rbx, 0(%rbp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L16960:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
	jmp	.L16955
	.p2align 4,,10
	.p2align 3
.L16967:

	leaq	24(%rsp), %rdi
	movq	%rbx, %rdx
	leaq	16(%rsp), %r12
	movq	%r15, %rsi
	movq	$0, 24(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	AES_encrypt@PLT
	call	.LAES_encrypt_local_target
	movq	$16, 0(%rbp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L16960
.L16966:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE793:

	.size	AES_wrap_key_padded, .-AES_wrap_key_padded
# WAS .section	.text.BN_rand,"ax",@progbits
.text
	.p2align 4
	.globl	BN_rand
	.type	BN_rand, @function
.LBN_rand_local_target:
BN_rand:
.LFB1055:

	.cfi_startproc
	endbr64
	testq	%rdi, %rdi
	je	.L17002
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	1(%rdx), %eax
	movl	%ecx, %r8d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%esi, %ebx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	cmpl	$1, %eax
	jbe	.L16971
	cmpl	$1, %edx
	jne	.L17007
.L16971:

	cmpl	$1, %r8d
	ja	.L17008
	testl	%ebx, %ebx
	je	.L17009
	cmpl	$2147483584, %ebx
	jg	.L17010
	movl	%ebx, %eax
	leal	126(%rbx), %r13d
	movq	$-1, %r14
	addl	$63, %eax
	cmovns	%eax, %r13d
	sarl	$6, %r13d
	movl	%r13d, 4(%rsp)
	leal	-1(%rbx), %r13d
	movl	%r13d, %eax
	sarl	$31, %eax
	shrl	$26, %eax
	leal	0(%r13,%rax), %r12d
	andl	$63, %r12d
	subl	%eax, %r12d
	cmpl	$63, %r12d
	je	.L16977
	leal	1(%r12), %ecx
	movl	$1, %r14d
	salq	%cl, %r14
	subq	$1, %r14
.L16977:

	movslq	4(%rsp), %r15
	movq	%rbp, %rdi
	movl	%r8d, 12(%rsp)
	movl	%edx, 8(%rsp)
	movq	%r15, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	jne	.L17011
.L16970:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17008:

	.cfi_restore_state
	movl	$135, %r8d
.L17005:

	leaq	.LC70(%rip), %rcx
	movl	$66, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16970
	.p2align 4,,10
	.p2align 3
.L17007:

	movl	$130, %r8d
	jmp	.L17005
	.p2align 4,,10
	.p2align 3
.L17011:

# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	salq	$3, %r15
	movq	0(%rbp), %rdi
	movq	%r15, %rsi
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	0(%rbp), %rax
	movl	8(%rsp), %edx
	movl	12(%rsp), %r8d
	leaq	-8(%rax,%r15), %rsi
	andq	(%rsi), %r14
	cmpl	$-1, %edx
	je	.L17006
	movl	%r13d, %r9d
	andl	$63, %r9d
	cmpl	$1, %ebx
	jle	.L16981
	andl	$1, %edx
	je	.L16981
	testl	%r9d, %r9d
	jne	.L16982
	orq	$1, %r14
	movq	%r14, (%rsi)
	btsq	$63, -16(%rax,%r15)
	jmp	.L16980
	.p2align 4,,10
	.p2align 3
.L16981:

	btsq	%r9, %r14
.L17006:

	movq	%r14, (%rsi)
.L16980:

	cmpl	$1, %r8d
	jne	.L16983
	orq	$1, (%rax)
.L16983:

	movl	4(%rsp), %eax
	movl	$0, 16(%rbp)
	movl	%eax, 8(%rbp)
.L16975:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17009:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L16975
	.p2align 4,,10
	.p2align 3
.L17010:

	movl	$145, %r8d
	leaq	.LC70(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L16970
	.p2align 4,,10
	.p2align 3
.L17002:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	xorl	%eax, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L16982:

	.cfi_def_cfa_offset 80
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	leal	-1(%r12), %ecx
	movl	$3, %edx
	salq	%cl, %rdx
	orq	%r14, %rdx
	movq	%rdx, (%rsi)
	jmp	.L16980
	.cfi_endproc
.LFE1055:

	.size	BN_rand, .-BN_rand
# WAS .section	.text.BN_pseudo_rand,"ax",@progbits
.text
	.p2align 4
	.globl	BN_pseudo_rand
	.type	BN_pseudo_rand, @function
.LBN_pseudo_rand_local_target:
BN_pseudo_rand:
.LFB1056:

	.cfi_startproc
	endbr64
# WAS jmp	BN_rand@PLT
	jmp	.LBN_rand_local_target
	.cfi_endproc
.LFE1056:

	.size	BN_pseudo_rand, .-BN_pseudo_rand
# WAS .section	.text.BN_mod_sqrt,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_sqrt
	.type	BN_mod_sqrt, @function
.LBN_mod_sqrt_local_target:
BN_mod_sqrt:
.LFB1088:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	movq	%rdx, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L17017
	movl	$1, %esi
	movq	%rbx, %rdi
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	je	.L17228
.L17017:

	movl	$2, %esi
	movq	%rbx, %rdi
# WAS call	BN_abs_is_word@PLT
	call	.LBN_abs_is_word_local_target
	testl	%eax, %eax
	je	.L17229
	testq	%rbp, %rbp
	je	.L17230
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
.L17221:

	movslq	%eax, %rsi
	movq	%rbp, %rdi
	movq	%rbp, %r15
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	je	.L17021
.L17013:

	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r15, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17230:

	.cfi_restore_state
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L17021
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
.L17227:

	movslq	%eax, %rsi
	movq	%r15, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	jne	.L17013
	movq	%r15, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
.L17021:

	xorl	%r15d, %r15d
	jmp	.L17013
	.p2align 4,,10
	.p2align 3
.L17228:

	movq	%r12, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L17024
.L17027:

	testq	%rbp, %rbp
	je	.L17231
	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	jmp	.L17221
	.p2align 4,,10
	.p2align 3
.L17229:

	movl	$89, %r8d
	leaq	.LC187(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17021
	.p2align 4,,10
	.p2align 3
.L17024:

	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17027
	movq	%r13, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, (%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 40(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 16(%rsp)
	testq	%rax, %rax
	je	.L17070
	testq	%rbp, %rbp
	je	.L17232
	movq	(%rsp), %rdi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%rbp, %r15
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L17070
.L17074:

	movl	$1, %r12d
	jmp	.L17036
	.p2align 4,,10
	.p2align 3
.L17037:

	addl	$1, %r12d
.L17036:

	movl	%r12d, %esi
	movq	%rbx, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L17037
	cmpl	$1, %r12d
	je	.L17233
	cmpl	$2, %r12d
	je	.L17234
	movq	8(%rsp), %r14
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L17040
	movq	%r14, %rax
	movl	$0, 16(%r14)
	movl	$2, %r14d
	movl	%r12d, 60(%rsp)
	movq	%rax, %r12
	movq	%rbx, 48(%rsp)
	movq	16(%rsp), %rbx
	jmp	.L17053
	.p2align 4,,10
	.p2align 3
.L17048:

	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	bn_jacobi
	call	.Lbn_jacobi_local_target
	cmpl	$-1, %eax
	jl	.L17040
	testl	%eax, %eax
	je	.L17235
	cmpl	$1, %eax
	jne	.L17052
	addq	$1, %r14
	cmpq	$82, %r14
	je	.L17054
.L17053:

	cmpq	$21, %r14
	ja	.L17044
.L17222:

	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	jne	.L17048
.L17040:

	cmpq	%r15, %rbp
	je	.L17070
.L17073:

	movq	%r15, %rdi
# WAS call	BN_clear_free@PLT
	call	.LBN_clear_free_local_target
.L17070:

	xorl	%r15d, %r15d
.L17032:

	movq	%r13, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L17013
	.p2align 4,,10
	.p2align 3
.L17231:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L17021
	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	jmp	.L17227
.L17232:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L17070
	movq	(%rsp), %rdi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	jne	.L17074
	jmp	.L17073
.L17234:

	movq	(%rsp), %r12
	movq	40(%rsp), %r14
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	je	.L17040
	movq	8(%rsp), %rdi
	movl	$3, %edx
	movq	%rbx, %rsi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L17040
	movq	8(%rsp), %rax
	xorl	%edx, %edx
	movq	24(%rsp), %rdi
	xorl	%r9d, %r9d
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movl	%edx, 16(%rax)
	movq	%rax, %rdx
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17040
	movq	24(%rsp), %rsi
	movq	16(%rsp), %rdi
	movq	%r13, %rcx
	movq	%rbx, %rdx
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	je	.L17040
	movq	16(%rsp), %rdx
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17040
	movl	$1, %esi
	movq	%r14, %rdi
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r12, %rsi
	movq	32(%rsp), %r12
	movq	24(%rsp), %rdx
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L17040
.L17042:

	movq	32(%rsp), %rdi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r15, %rsi
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	je	.L17040
	movq	(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	je	.L17032
	movl	$410, %r8d
.L17223:

	leaq	.LC187(%rip), %rcx
	movl	$110, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17040
	.p2align 4,,10
	.p2align 3
.L17233:

	movq	8(%rsp), %r14
	movl	$2, %edx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L17040
	xorl	%ecx, %ecx
	movl	$1, %esi
	movq	%r14, %rdi
	movl	%ecx, 16(%r14)
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	je	.L17040
	movq	(%rsp), %rsi
	xorl	%r9d, %r9d
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r15, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17040
	jmp	.L17042
.L17235:

	movl	$258, %r8d
.L17224:

	leaq	.LC187(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17040
.L17052:

	addl	$1, %eax
	movl	60(%rsp), %r12d
	movq	48(%rsp), %rbx
	jne	.L17054
	movq	8(%rsp), %r14
	movl	%r12d, %edx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r14, %rdx
	movq	16(%rsp), %r14
	xorl	%r9d, %r9d
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r14, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17236
	movq	40(%rsp), %r14
	movq	8(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r14, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L17057
	movq	(%rsp), %rsi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r14, %rdi
# WAS call	BN_nnmod@PLT
	call	.LBN_nnmod_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r14, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L17225
	movq	32(%rsp), %rdi
# WAS call	BN_one@PLT
	call	.LBN_one_local_target
	testl	%eax, %eax
	je	.L17040
.L17060:

	movq	32(%rsp), %r14
	movq	24(%rsp), %rdi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r14, %rsi
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	je	.L17040
	movq	24(%rsp), %rdi
	movq	(%rsp), %rdx
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%rdi, %rsi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17040
	movq	(%rsp), %rdx
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%rbp, 8(%rsp)
	movq	40(%rsp), %rbp
.L17069:

	movq	24(%rsp), %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17237
	movl	$1, %r14d
	jmp	.L17061
.L17062:

	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17219
.L17065:

	movq	%rbp, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17238
	addl	$1, %r14d
.L17061:

	cmpl	%r14d, %r12d
	je	.L17239
	cmpl	$1, %r14d
	jne	.L17062
	movq	24(%rsp), %rsi
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rdi
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	jne	.L17065
.L17219:

	movq	8(%rsp), %rbp
	jmp	.L17040
.L17054:

	movl	$268, %r8d
	leaq	.LC187(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17040
.L17236:

	movl	$283, %r8d
	jmp	.L17224
.L17044:

	movq	48(%rsp), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movq	%rbx, %rdi
	movl	%eax, %esi
# WAS call	BN_pseudo_rand@PLT
	call	.LBN_pseudo_rand_local_target
	testl	%eax, %eax
	je	.L17040
	movq	48(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	js	.L17050
	movq	48(%rsp), %rax
	cmpl	$0, 16(%rax)
	je	.L17075
# WAS movq	BN_add@GOTPCREL(%rip), %rax
	leaq	.LBN_add_local_target(%rip), %rax
.L17049:

	movq	48(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L17040
.L17050:

	movq	%rbx, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L17048
	jmp	.L17222
.L17238:

	movq	16(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L17219
	subl	%r14d, %r12d
	subl	$1, %r12d
	jmp	.L17067
.L17068:

	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	je	.L17219
	subl	$1, %r12d
.L17067:

	testl	%r12d, %r12d
	jne	.L17068
	movq	16(%rsp), %r12
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17219
	movq	32(%rsp), %rsi
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%rsi, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17219
	movq	24(%rsp), %rdi
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rdi, %rsi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17219
	movl	%r14d, %r12d
	jmp	.L17069
.L17239:

	movq	8(%rsp), %rbp
	movl	$378, %r8d
	jmp	.L17223
.L17237:

	movq	32(%rsp), %rsi
	movq	%r15, %rdi
	movq	8(%rsp), %rbp
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	jne	.L17042
	jmp	.L17040
.L17057:

	movq	32(%rsp), %r14
	movq	40(%rsp), %rdx
	xorl	%r9d, %r9d
	movq	%r13, %r8
	movq	(%rsp), %rsi
	movq	%rbx, %rcx
	movq	%r14, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17040
	movq	%r14, %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	je	.L17060
.L17225:

	movq	%r15, %rdi
# WAS call	BN_zero@PLT
	call	.LBN_zero_local_target
	jmp	.L17032
.L17075:

# WAS movq	BN_sub@GOTPCREL(%rip), %rax
	leaq	.LBN_sub_local_target(%rip), %rax
	jmp	.L17049
	.cfi_endproc
.LFE1088:

	.size	BN_mod_sqrt, .-BN_mod_sqrt
# WAS .section	.text.EC_POINT_set_compressed_coordinates_GFp,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_set_compressed_coordinates_GFp
	.type	EC_POINT_set_compressed_coordinates_GFp, @function
.LEC_POINT_set_compressed_coordinates_GFp_local_target:
EC_POINT_set_compressed_coordinates_GFp:
.LFB1916:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	xorl	%edx, %edx
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	(%rsi), %rsi
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L17298
	movq	%r12, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	.L17245
	leaq	320(%rbp), %rax
	movq	%r12, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	js	.L17299
.L17245:

	movl	$244, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$107, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17242:

	xorl	%r15d, %r15d
.L17240:

	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r15d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17298:

	.cfi_restore_state
	movl	$238, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17242
	.p2align 4,,10
	.p2align 3
.L17299:

# WAS call	ERR_clear_error@PLT
	call	.Lbcm_redirector_ERR_clear_error
	movq	$0, 16(%rsp)
	testq	%rbx, %rbx
	je	.L17300
.L17246:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 48(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 40(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 56(%rsp)
	testq	%rax, %rax
	je	.L17255
	movq	32(%rsp), %rcx
	movq	24(%rsp), %rdx
	xorl	%esi, %esi
	movq	%rbx, %r8
	movq	%rbp, %rdi
# WAS call	EC_GROUP_get_curve_GFp@PLT
	call	.LEC_GROUP_get_curve_GFp_local_target
	testl	%eax, %eax
	je	.L17255
	movq	8(%rsp), %rdx
	movq	40(%rsp), %rdi
	movq	%rbx, %rcx
	movq	%r12, %rsi
# WAS call	BN_mod_sqr@PLT
	call	.LBN_mod_sqr_local_target
	testl	%eax, %eax
	jne	.L17301
	.p2align 4,,10
	.p2align 3
.L17255:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	16(%rsp), %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L17240
	.p2align 4,,10
	.p2align 3
.L17300:

# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L17242
	movq	%rax, 16(%rsp)
	jmp	.L17246
	.p2align 4,,10
	.p2align 3
.L17301:

	movq	8(%rsp), %rcx
	movq	40(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r12, %rdx
	movq	48(%rsp), %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17255
	movl	528(%rbp), %eax
	movq	8(%rsp), %rcx
	movq	%rbx, %r8
	movq	%r12, %rdx
	testl	%eax, %eax
	je	.L17250
	movq	40(%rsp), %rdi
	movq	%r12, %rsi
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	je	.L17255
	movq	40(%rsp), %rsi
	movq	8(%rsp), %rcx
	movq	%rbx, %r8
	movq	%r12, %rdx
	movq	%rsi, %rdi
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	je	.L17255
	movq	48(%rsp), %rsi
	movq	8(%rsp), %rcx
	movq	%rbx, %r8
	movq	40(%rsp), %rdx
	movq	%rsi, %rdi
# WAS call	bn_mod_sub_consttime
	call	.Lbn_mod_sub_consttime_local_target
	testl	%eax, %eax
	je	.L17255
.L17252:

	movq	48(%rsp), %rsi
	movq	8(%rsp), %rcx
	movq	%rbx, %r8
	movq	32(%rsp), %rdx
	movq	%rsi, %rdi
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	je	.L17255
	movq	8(%rsp), %rdx
	movq	48(%rsp), %rsi
	movq	%rbx, %rcx
	movq	56(%rsp), %rdi
# WAS call	BN_mod_sqrt@PLT
	call	.LBN_mod_sqrt_local_target
	testq	%rax, %rax
	je	.L17302
	testl	%r14d, %r14d
	movq	56(%rsp), %rdi
	setne	%r14b
	movzbl	%r14b, %r14d
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	cmpl	%r14d, %eax
	je	.L17260
	movq	56(%rsp), %rdi
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L17303
	movq	56(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%rdx, %rdi
# WAS call	BN_usub@PLT
	call	.LBN_usub_local_target
	testl	%eax, %eax
	je	.L17255
.L17260:

	movq	56(%rsp), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	cmpl	%r14d, %eax
	je	.L17304
	movl	$324, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17255
	.p2align 4,,10
	.p2align 3
.L17250:

	movq	24(%rsp), %rsi
	movq	40(%rsp), %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17255
	movq	48(%rsp), %rsi
	movq	8(%rsp), %rcx
	movq	%rbx, %r8
	movq	40(%rsp), %rdx
	movq	%rsi, %rdi
# WAS call	bn_mod_add_consttime
	call	.Lbn_mod_add_consttime_local_target
	testl	%eax, %eax
	jne	.L17252
	jmp	.L17255
.L17304:

	movq	56(%rsp), %rcx
	movq	%rbx, %r8
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
	xorl	%r15d, %r15d
# WAS call	EC_POINT_set_affine_coordinates_GFp@PLT
	call	.LEC_POINT_set_affine_coordinates_GFp_local_target
	testl	%eax, %eax
	setne	%r15b
	jmp	.L17255
.L17302:

# WAS call	ERR_peek_last_error@PLT
	call	.Lbcm_redirector_ERR_peek_last_error
	movl	%eax, %edx
	shrl	$24, %edx
	cmpl	$3, %edx
	jne	.L17254
	andl	$4095, %eax
	cmpl	$110, %eax
	je	.L17305
.L17254:

	movl	$309, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17255
.L17303:

	movl	$316, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$108, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17255
.L17305:

# WAS call	ERR_clear_error@PLT
	call	.Lbcm_redirector_ERR_clear_error
	movl	$307, %r8d
	leaq	.LC271(%rip), %rcx
	xorl	%esi, %esi
	movl	$107, %edx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17255
	.cfi_endproc
.LFE1916:

	.size	EC_POINT_set_compressed_coordinates_GFp, .-EC_POINT_set_compressed_coordinates_GFp
# WAS .section	.text.EC_POINT_oct2point,"ax",@progbits
.text
	.p2align 4
	.globl	EC_POINT_oct2point
	.type	EC_POINT_oct2point, @function
.LEC_POINT_oct2point_local_target:
EC_POINT_oct2point:
.LFB1914:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	xorl	%edx, %edx
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$200, %rsp
	.cfi_def_cfa_offset 256
	movq	(%rsi), %rsi
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	testl	%eax, %eax
	jne	.L17333
	testq	%r12, %r12
	je	.L17334
	movzbl	0(%r13), %edx
	cmpb	$4, %dl
	je	.L17335
	movl	%eax, %ebx
	leaq	320(%rbp), %rax
	movl	%edx, (%rsp)
	movq	%rax, %rdi
	movb	%dl, 8(%rsp)
	movq	%rax, 16(%rsp)
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	(%rsp), %edx
	andl	$-2, %edx
	cmpl	$2, %edx
	jne	.L17316
	movl	%eax, %esi
	movzbl	8(%rsp), %ecx
	leaq	1(%rsi), %rax
	cmpq	%rax, %r12
	jne	.L17316
	movq	$0, (%rsp)
	testq	%r14, %r14
	je	.L17336
.L17318:

	movq	%r14, %rdi
	movq	%rsi, 8(%rsp)
	movb	%cl, 24(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r14, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L17323
	movq	8(%rsp), %rsi
	leaq	1(%r13), %rdi
	movq	%rax, %rdx
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L17323
	movq	16(%rsp), %rsi
	movq	%r12, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	movzbl	24(%rsp), %ecx
	testl	%eax, %eax
	jns	.L17337
	andl	$1, %ecx
	movq	%r14, %r8
	movq	%r12, %rdx
	movq	%r15, %rsi
	movq	%rbp, %rdi
	xorl	%ebx, %ebx
# WAS call	EC_POINT_set_compressed_coordinates_GFp@PLT
	call	.LEC_POINT_set_compressed_coordinates_GFp_local_target
	testl	%eax, %eax
	setne	%bl
.L17323:

	movq	%r14, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	(%rsp), %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L17306
	.p2align 4,,10
	.p2align 3
.L17316:

	movl	$162, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17310:

	xorl	%ebx, %ebx
.L17306:

	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17338
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17333:

	.cfi_restore_state
	movl	$205, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17310
	.p2align 4,,10
	.p2align 3
.L17335:

	leaq	32(%rsp), %rsi
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rdi
# WAS call	ec_point_from_uncompressed
	call	.Lec_point_from_uncompressed_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L17339
	movq	96(%rsp), %rax
	movdqa	32(%rsp), %xmm0
	movl	$1, %ebx
	movdqa	48(%rsp), %xmm1
	movdqa	64(%rsp), %xmm2
	movdqa	80(%rsp), %xmm3
	movdqu	104(%rsp), %xmm4
	movq	%rax, 72(%r15)
	movdqu	120(%rsp), %xmm5
	movq	168(%rsp), %rax
	movups	%xmm0, 8(%r15)
	movdqu	136(%rsp), %xmm6
	movups	%xmm1, 24(%r15)
	movdqu	152(%rsp), %xmm7
	movq	%rax, 144(%r15)
	movups	%xmm2, 40(%r15)
	movups	%xmm3, 56(%r15)
	movups	%xmm4, 80(%r15)
	movups	%xmm5, 96(%r15)
	movups	%xmm6, 112(%r15)
	movups	%xmm7, 128(%r15)
	movdqu	160(%rbp), %xmm0
	movups	%xmm0, 152(%r15)
	movdqu	176(%rbp), %xmm1
	movups	%xmm1, 168(%r15)
	movdqu	192(%rbp), %xmm2
	movups	%xmm2, 184(%r15)
	movdqu	208(%rbp), %xmm3
	movups	%xmm3, 200(%r15)
	movq	224(%rbp), %rax
	movq	%rax, 216(%r15)
	jmp	.L17306
	.p2align 4,,10
	.p2align 3
.L17334:

	movl	$140, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17310
	.p2align 4,,10
	.p2align 3
.L17339:

	movl	532(%rbp), %eax
	leaq	8(%r15), %rdi
	testl	%eax, %eax
	je	.L17313
	leaq	16(%rbp), %rsi
# WAS call	ec_GFp_simple_point_copy
	call	.Lec_GFp_simple_point_copy_local_target
	jmp	.L17306
	.p2align 4,,10
	.p2align 3
.L17313:

# WAS call	ec_GFp_simple_point_init
	call	.Lec_GFp_simple_point_init_local_target
	jmp	.L17306
	.p2align 4,,10
	.p2align 3
.L17337:

	movl	$186, %r8d
	leaq	.LC271(%rip), %rcx
	movl	$109, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17323
	.p2align 4,,10
	.p2align 3
.L17336:

	movq	%rsi, 24(%rsp)
	movb	%cl, 8(%rsp)
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L17310
	movq	24(%rsp), %rsi
	movzbl	8(%rsp), %ecx
	movq	%rax, (%rsp)
	jmp	.L17318
.L17338:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1914:

	.size	EC_POINT_oct2point, .-EC_POINT_oct2point
# WAS .section	.text.EVP_PKEY_set1_tls_encodedpoint,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_set1_tls_encodedpoint
	.type	EVP_PKEY_set1_tls_encodedpoint, @function
.LEVP_PKEY_set1_tls_encodedpoint_local_target:
EVP_PKEY_set1_tls_encodedpoint:
.LFB2173:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	testq	%rdi, %rdi
	je	.L17369
	movl	4(%rdi), %eax
	cmpl	$408, %eax
	je	.L17343
	cmpl	$948, %eax
	jne	.L17344
	testq	%rsi, %rsi
	je	.L17370
	testq	%rdx, %rdx
	je	.L17371
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L17348
	movq	88(%rax), %rax
	testq	%rax, %rax
	je	.L17348
	call	*%rax
	movl	$1, %ebx
	testl	%eax, %eax
	jne	.L17340
	movl	$738, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	.p2align 4,,10
	.p2align 3
.L17346:

	xorl	%ebx, %ebx
.L17340:

	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17344:

	.cfi_restore_state
	movl	$762, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$129, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17346
	.p2align 4,,10
	.p2align 3
.L17343:

	testq	%rsi, %rsi
	je	.L17372
	testq	%rdx, %rdx
	je	.L17373
	cmpb	$4, (%rsi)
	movl	$668, %r8d
	jne	.L17367
	movq	%rdx, 8(%rsp)
	movq	%rsi, (%rsp)
# WAS call	EVP_PKEY_get0_EC_KEY@PLT
	call	.LEVP_PKEY_get0_EC_KEY_local_target
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbx
	je	.L17374
	movq	%rax, %rdi
	movq	%rdx, 8(%rsp)
	movq	%rsi, (%rsp)
# WAS call	evp_pkey_tls_encodedpoint_ec_curve_supported
	call	.Levp_pkey_tls_encodedpoint_ec_curve_supported_local_target
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdx
	movl	$679, %r8d
	testl	%eax, %eax
	je	.L17367
	movq	%rbx, %rdi
	movq	%rdx, 8(%rsp)
	movq	%rsi, (%rsp)
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %r12
	je	.L17375
	movq	%rax, %rdi
	movq	%rdx, 8(%rsp)
	movq	%rsi, (%rsp)
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	(%rsp), %rsi
	movq	8(%rsp), %rdx
	testq	%rax, %rax
	movq	%rax, %rbp
	je	.L17376
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movq	%r12, %rdi
	movq	%rsi, %rdx
	movq	%rax, %rsi
# WAS call	EC_POINT_oct2point@PLT
	call	.LEC_POINT_oct2point_local_target
	movl	$696, %r8d
	testl	%eax, %eax
	je	.L17368
	movq	%rbx, %rdi
	movq	%rbp, %rsi
	movl	$1, %ebx
# WAS call	EC_KEY_set_public_key@PLT
	call	.LEC_KEY_set_public_key_local_target
	testl	%eax, %eax
	jne	.L17351
	movl	$701, %r8d
.L17368:

	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17351
.L17376:

	movl	$691, %r8d
	.p2align 4,,10
	.p2align 3
.L17367:

	leaq	.LC266(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17354:

	xorl	%ebp, %ebp
	xorl	%ebx, %ebx
.L17351:

	movq	%rbp, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17369:

	.cfi_restore_state
	movl	$752, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17346
	.p2align 4,,10
	.p2align 3
.L17372:

	movl	$645, %r8d
	movl	$67, %edx
	movl	$6, %edi
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17354
	.p2align 4,,10
	.p2align 3
.L17370:

	movl	$718, %r8d
	movl	$67, %edx
	movl	$6, %edi
	leaq	.LC266(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17346
	.p2align 4,,10
	.p2align 3
.L17373:

	movl	$650, %r8d
	movl	$133, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	leaq	.LC266(%rip), %rcx
	movl	$6, %edi
	xorl	%ebx, %ebx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17351
	.p2align 4,,10
	.p2align 3
.L17371:

	movl	$728, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$133, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17346
	.p2align 4,,10
	.p2align 3
.L17348:

	movl	$733, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17346
	.p2align 4,,10
	.p2align 3
.L17374:

	movl	$674, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17354
.L17375:

	movl	$685, %r8d
	leaq	.LC266(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17354
	.cfi_endproc
.LFE2173:

	.size	EVP_PKEY_set1_tls_encodedpoint, .-EVP_PKEY_set1_tls_encodedpoint
# WAS .section	.text.bn_rand_range_words,"ax",@progbits
.text
	.p2align 4
	.globl	bn_rand_range_words
	.hidden	bn_rand_range_words
	.type	bn_rand_range_words, @function
.Lbn_rand_range_words_local_target:
bn_rand_range_words:
.LFB1060:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdx, (%rsp)
	movq	%r8, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	64(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r15, %rcx
	leaq	56(%rsp), %rdi
	movq	%r12, %rdx
# WAS call	bn_range_to_mask
	call	.Lbn_range_to_mask_local_target
	testl	%eax, %eax
	je	.L17378
	movq	56(%rsp), %r15
	subq	%r15, %rbx
	leaq	0(,%r15,8), %rcx
	salq	$3, %rbx
	jne	.L17412
.L17379:

	leaq	-1(%r15), %rdx
	movl	$100, 8(%rsp)
	leaq	-8(%rcx), %r13
	movq	%rdx, %rax
	movq	%rdx, %rbp
	movq	%rcx, 16(%rsp)
	orq	$1, %rax
	shrq	%rbp
	movq	%rdx, 32(%rsp)
	movq	%rax, 40(%rsp)
	salq	$4, %rbp
	addq	%r14, %rbp
	.p2align 4,,10
	.p2align 3
.L17388:

	subl	$1, 8(%rsp)
	je	.L17413
	movq	16(%rsp), %rax
	testq	%rax, %rax
	je	.L17382
	movq	24(%rsp), %rdx
	movq	%rax, %rsi
	movq	%r14, %rdi
# WAS call	RAND_bytes_with_additional_data.part.0
	call	.LRAND_bytes_with_additional_data.part.0_local_target
.L17382:

	movq	64(%rsp), %rax
	movl	$-1, %ebx
	andq	%rax, (%r14,%r13)
	testq	%r12, %r12
	je	.L17383
	xorl	%ebx, %ebx
	testq	%r15, %r15
	je	.L17383
	cmpq	$1, %r15
	je	.L17392
	cmpq	$2, %r15
	je	.L17393
	movq	%r14, %rax
	pxor	%xmm0, %xmm0
	.p2align 4,,10
	.p2align 3
.L17386:

	movdqu	8(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rbp
	jne	.L17386
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, 32(%rsp)
	je	.L17387
	movq	40(%rsp), %rdx
.L17385:

	orq	(%r14,%rdx,8), %rax
.L17387:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
.L17384:

	movq	(%r14), %rax
	movq	%r12, %rcx
	movq	%rax, %r8
	xorq	%rax, %rcx
	subq	%r12, %r8
	xorq	%rax, %r8
	orq	%rcx, %r8
	xorq	%rax, %r8
	andq	%rdx, %r8
	sarq	$63, %r8
	movl	%r8d, %ebx
	notl	%ebx
.L17383:

	movq	(%rsp), %rdx
	movq	%r15, %rcx
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	shrl	$31, %eax
	andl	%ebx, %eax
	testl	%eax, %eax
	je	.L17388
	movl	$1, %ebx
.L17381:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17414
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17392:

	.cfi_restore_state
	movq	$-1, %rdx
	jmp	.L17384
.L17412:

	leaq	(%r14,%rcx), %rdi
	movq	%rbx, %rdx
	xorl	%esi, %esi
	movq	%rcx, 8(%rsp)
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	8(%rsp), %rcx
	jmp	.L17379
.L17393:

	xorl	%eax, %eax
	movl	$1, %edx
	jmp	.L17385
.L17413:

	movl	$277, %r8d
	leaq	.LC70(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17378:

	xorl	%ebx, %ebx
	jmp	.L17381
.L17414:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1060:

	.size	bn_rand_range_words, .-bn_rand_range_words
# WAS .section	.text.BN_rand_range_ex,"ax",@progbits
.text
	.p2align 4
	.globl	BN_rand_range_ex
	.type	BN_rand_range_ex, @function
.LBN_rand_range_ex_local_target:
BN_rand_range_ex:
.LFB1061:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movslq	8(%rdx), %rcx
	movq	%rdi, %rbx
	movslq	12(%rdi), %rax
	cmpq	%rcx, %rax
	jnb	.L17432
	cmpq	$8388607, %rcx
	ja	.L17433
	testb	$2, 20(%rdi)
	jne	.L17434
	movl	$8, %esi
	movq	%rcx, %rdi
	movq	%rcx, %r14
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L17421
	movslq	8(%rbx), %rdx
	movq	(%rbx), %rdi
	salq	$3, %rdx
	jne	.L17435
.L17423:

# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r13, (%rbx)
	movslq	8(%rbp), %rcx
	movl	%r14d, 12(%rbx)
.L17417:

	movq	0(%rbp), %rdx
# WAS leaq	kDefaultAdditionalData.85(%rip), %r8
	leaq	.LkDefaultAdditionalData.85_local_target(%rip), %r8
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	bn_rand_range_words
	call	.Lbn_rand_range_words_local_target
	testl	%eax, %eax
	je	.L17421
	movl	8(%rbp), %eax
	movl	$0, 16(%rbx)
	movl	%eax, 8(%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17432:

	.cfi_restore_state
	movq	(%rdi), %r13
	jmp	.L17417
	.p2align 4,,10
	.p2align 3
.L17434:

	movl	$358, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$106, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17421:

	xorl	%eax, %eax
.L17436:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17435:

	.cfi_restore_state
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	(%rbx), %rdi
	jmp	.L17423
	.p2align 4,,10
	.p2align 3
.L17433:

	movl	$353, %r8d
	leaq	.LC119(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17436
	.cfi_endproc
.LFE1061:

	.size	BN_rand_range_ex, .-BN_rand_range_ex
# WAS .section	.text.BN_mod_inverse_blinded,"ax",@progbits
.text
	.p2align 4
	.globl	BN_mod_inverse_blinded
	.type	BN_mod_inverse_blinded, @function
.LBN_mod_inverse_blinded_local_target:
BN_mod_inverse_blinded:
.LFB976:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%rdx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%r8, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movl	$0, (%rsi)
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L17440
	leaq	24(%r12), %r15
	movq	%rbx, %rdi
	movl	%eax, %r14d
	movq	%r15, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	notl	%eax
	shrl	$31, %eax
	testl	%eax, %eax
	je	.L17452
.L17440:

	movl	$334, %r8d
	movl	$107, %edx
	xorl	%esi, %esi
	xorl	%r14d, %r14d
	leaq	.LC185(%rip), %rcx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17437:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17453
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17452:

	.cfi_restore_state
	leaq	16(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	8(%rsp), %rdi
	movq	%r15, %rdx
	movl	$1, %esi
# WAS call	BN_rand_range_ex@PLT
	call	.LBN_rand_range_ex_local_target
	testl	%eax, %eax
	jne	.L17454
.L17442:

	movq	8(%rsp), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L17437
	.p2align 4,,10
	.p2align 3
.L17454:

	movq	%rbx, %rdx
	movq	8(%rsp), %rbx
	movq	(%rsp), %r8
	movq	%r12, %rcx
	movq	%r13, %rdi
	movq	%rbx, %rsi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L17442
	movq	(%rsp), %r8
	movq	%r15, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	BN_mod_inverse_odd
	call	.LBN_mod_inverse_odd_local_target
	testl	%eax, %eax
	je	.L17442
	movq	(%rsp), %r8
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	xorl	%r14d, %r14d
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	setne	%r14b
	jmp	.L17442
.L17453:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE976:

	.size	BN_mod_inverse_blinded, .-BN_mod_inverse_blinded
# WAS .section	.rodata.BN_enhanced_miller_rabin_primality_test.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC353:

	.string	"/aws-lc/crypto/fipsmodule/bn/prime.c"
# WAS .section	.text.BN_enhanced_miller_rabin_primality_test,"ax",@progbits
.text
	.p2align 4
	.globl	BN_enhanced_miller_rabin_primality_test
	.type	BN_enhanced_miller_rabin_primality_test, @function
.LBN_enhanced_miller_rabin_primality_test_local_target:
BN_enhanced_miller_rabin_primality_test:
.LFB1049:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %r15
	movq	%rsi, %rdi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%r8, 8(%rsp)
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L17458
	movl	$3, %esi
	movq	%rbx, %rdi
# WAS call	BN_cmp_word@PLT
	call	.LBN_cmp_word_local_target
	testl	%eax, %eax
	jle	.L17458
	testl	%r14d, %r14d
	je	.L17552
.L17459:

	movq	%rbp, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L17462
	movq	%rbx, %rsi
	movq	%rax, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	je	.L17462
	movl	$1, %esi
	movq	%r13, %rdi
	xorl	%r12d, %r12d
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	testl	%eax, %eax
	jne	.L17463
	.p2align 4,,10
	.p2align 3
.L17462:

	xorl	%r9d, %r9d
	xorl	%ebx, %ebx
.L17461:

	movq	%r9, %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L17455
	.p2align 4,,10
	.p2align 3
.L17458:

	movl	$815, %r8d
	movl	$119, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC353(%rip), %rcx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17455:

	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17464:

	.cfi_restore_state
	addl	$1, %r12d
.L17463:

	movl	%r12d, %esi
	movq	%r13, %rdi
# WAS call	BN_is_bit_set@PLT
	call	.LBN_is_bit_set_local_target
	testl	%eax, %eax
	je	.L17464
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rax, %rax
	je	.L17462
	movl	%r12d, %edx
	movq	%r13, %rsi
	movq	%rax, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	testl	%eax, %eax
	je	.L17462
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 24(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 48(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rdi
	movq	%rax, 40(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	cmpq	$0, 16(%rsp)
	movq	%rax, %r10
	je	.L17462
	cmpq	$0, 24(%rsp)
	je	.L17462
	cmpq	$0, 48(%rsp)
	sete	%al
	cmpq	$0, 40(%rsp)
	sete	%dl
	orb	%dl, %al
	jne	.L17462
	testq	%r10, %r10
	movq	%r10, 72(%rsp)
	je	.L17462
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%rax, %r9
	testq	%rax, %rax
	je	.L17462
	testl	%r14d, %r14d
	jle	.L17465
	movq	32(%rsp), %rcx
	movq	72(%rsp), %r10
	movq	%rax, 32(%rsp)
	movl	$1, 60(%rsp)
	movq	%rcx, 64(%rsp)
	movq	%r10, 88(%rsp)
	movq	%r15, 80(%rsp)
	movl	%r12d, 56(%rsp)
	movq	48(%rsp), %r12
	movl	%r14d, 72(%rsp)
	movq	40(%rsp), %r14
.L17478:

	movq	16(%rsp), %r15
	movq	%r13, %rdx
	movl	$2, %esi
	movq	%r15, %rdi
# WAS call	BN_rand_range_ex@PLT
	call	.LBN_rand_range_ex_local_target
	testl	%eax, %eax
	je	.L17550
	movq	%r15, %rsi
	movq	24(%rsp), %r15
	movq	%rbp, %rcx
	movq	%rbx, %rdx
	movq	%r15, %rdi
# WAS call	BN_gcd@PLT
	call	.LBN_gcd_local_target
	testl	%eax, %eax
	je	.L17550
	movl	$1, %esi
	movq	%r15, %rdi
# WAS call	BN_cmp_word@PLT
	call	.LBN_cmp_word_local_target
	movq	32(%rsp), %r9
	testl	%eax, %eax
	jg	.L17553
	movq	64(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%rbp, %r8
	movq	%rbx, %rcx
	movq	%r12, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17550
	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17469
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jne	.L17554
.L17469:

	movl	60(%rsp), %r15d
	movq	8(%rsp), %rdi
	movl	$1, %esi
	leal	-1(%r15), %edx
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L17550
	movl	72(%rsp), %eax
	addl	$1, %r15d
	movl	%r15d, 60(%rsp)
	cmpl	%eax, %r15d
	jle	.L17478
	movq	32(%rsp), %r9
	movq	80(%rsp), %r15
.L17465:

	xorl	%eax, %eax
.L17468:

	movl	%eax, (%r15)
	movl	$1, %ebx
	jmp	.L17461
	.p2align 4,,10
	.p2align 3
.L17552:

	movq	%rbx, %rdi
	movl	$3, %r14d
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$3746, %eax
	jg	.L17459
	movl	$4, %r14d
	cmpl	$1344, %eax
	jg	.L17459
	movl	$5, %r14d
	cmpl	$475, %eax
	jg	.L17459
	movl	$6, %r14d
	cmpl	$399, %eax
	jg	.L17459
	movl	$7, %r14d
	cmpl	$346, %eax
	jg	.L17459
	movl	$8, %r14d
	cmpl	$307, %eax
	jg	.L17459
	cmpl	$54, %eax
	movl	$27, %r14d
	movl	$34, %eax
	cmovle	%eax, %r14d
	jmp	.L17459
.L17554:

	cmpl	$1, 56(%rsp)
	jle	.L17546
	movl	$1, %r15d
	jmp	.L17474
	.p2align 4,,10
	.p2align 3
.L17556:

	movq	%rbp, %r8
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	testl	%eax, %eax
	je	.L17550
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	je	.L17469
	movq	%r12, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L17555
	addl	$1, %r15d
	cmpl	%r15d, 56(%rsp)
	je	.L17546
.L17474:

	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	testq	%rax, %rax
	jne	.L17556
.L17550:

	movq	32(%rsp), %r9
.L17466:

	xorl	%ebx, %ebx
	jmp	.L17461
.L17546:

	movq	48(%rsp), %r14
	movq	40(%rsp), %r13
	movq	32(%rsp), %r9
	movq	88(%rsp), %r10
	movq	%r14, %rsi
	movq	%r13, %rdi
	movq	80(%rsp), %r15
	movq	%r9, 8(%rsp)
	movq	%r10, 16(%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	8(%rsp), %r9
	testq	%rax, %rax
	je	.L17466
	movq	%rbp, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	BN_mod_mul@PLT
	call	.LBN_mod_mul_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L17466
	movq	%r14, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	movq	8(%rsp), %r9
	movq	16(%rsp), %r10
	testl	%eax, %eax
	je	.L17557
.L17476:

	movq	40(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r9, 16(%rsp)
	movq	%r10, 8(%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	8(%rsp), %r10
	movq	16(%rsp), %r9
	testq	%rax, %rax
	je	.L17466
	movl	$1, %esi
	movq	%r10, %rdi
	movq	%r9, 8(%rsp)
	movq	%r10, 16(%rsp)
# WAS call	BN_sub_word@PLT
	call	.LBN_sub_word_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L17466
	movq	16(%rsp), %rsi
	movq	24(%rsp), %rdi
	movq	%rbp, %rcx
	movq	%rbx, %rdx
# WAS call	BN_gcd@PLT
	call	.LBN_gcd_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L17466
	movq	24(%rsp), %rdi
	movl	$1, %esi
# WAS call	BN_cmp_word@PLT
	call	.LBN_cmp_word_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	jle	.L17558
.L17477:

	movl	$1, %eax
	jmp	.L17468
.L17555:

	movq	88(%rsp), %r10
	movq	32(%rsp), %r9
	movq	80(%rsp), %r15
	jmp	.L17476
.L17553:

	movq	80(%rsp), %r15
	jmp	.L17477
.L17557:

	movq	48(%rsp), %rsi
	movq	40(%rsp), %rdi
	movq	%r9, 16(%rsp)
	movq	%r10, 8(%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	8(%rsp), %r10
	movq	16(%rsp), %r9
	testq	%rax, %rax
	jne	.L17476
	xorl	%ebx, %ebx
	jmp	.L17461
.L17558:

	movl	$2, %eax
	jmp	.L17468
	.cfi_endproc
.LFE1049:

	.size	BN_enhanced_miller_rabin_primality_test, .-BN_enhanced_miller_rabin_primality_test
# WAS .section	.text.BN_rand_range,"ax",@progbits
.text
	.p2align 4
	.globl	BN_rand_range
	.type	BN_rand_range, @function
.LBN_rand_range_local_target:
BN_rand_range:
.LFB1063:

	.cfi_startproc
	endbr64
	movq	%rsi, %rdx
	xorl	%esi, %esi
# WAS jmp	BN_rand_range_ex@PLT
	jmp	.LBN_rand_range_ex_local_target
	.cfi_endproc
.LFE1063:

	.size	BN_rand_range, .-BN_rand_range
# WAS .section	.text.BN_pseudo_rand_range,"ax",@progbits
.text
	.p2align 4
	.globl	BN_pseudo_rand_range
	.type	BN_pseudo_rand_range, @function
.LBN_pseudo_rand_range_local_target:
BN_pseudo_rand_range:
.LFB1064:

	.cfi_startproc
	endbr64
# WAS jmp	BN_rand_range@PLT
	jmp	.LBN_rand_range_local_target
	.cfi_endproc
.LFE1064:

	.size	BN_pseudo_rand_range, .-BN_pseudo_rand_range
# WAS .section	.text.DH_generate_key,"ax",@progbits
.text
	.p2align 4
	.globl	DH_generate_key
	.type	DH_generate_key, @function
.LDH_generate_key_local_target:
DH_generate_key:
.LFB1470:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	g_self_test_once_ffdh_bss_get@PLT
	call	g_self_test_once_ffdh_bss_get
# WAS leaq	run_self_test_ffdh(%rip), %rsi
	leaq	.Lrun_self_test_ffdh_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbx, %rdi
# WAS call	dh_check_params_fast
	call	.Ldh_check_params_fast_local_target
	movl	%eax, %r12d
	testl	%eax, %eax
	jne	.L17616
.L17561:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17616:

	.cfi_restore_state
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L17563
	movq	32(%rbx), %r13
	movl	$0, 4(%rsp)
	testq	%r13, %r13
	je	.L17617
.L17564:

	movq	24(%rbx), %r12
	testq	%r12, %r12
	je	.L17618
.L17565:

	movq	(%rbx), %rax
	leaq	48(%rbx), %r14
	movq	%r14, %rdi
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_MUTEX_lock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_read
	movq	104(%rbx), %r15
	movq	%r14, %rdi
# WAS call	CRYPTO_MUTEX_unlock_read@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_read
	testq	%r15, %r15
	je	.L17619
.L17568:

	movl	4(%rsp), %eax
	testl	%eax, %eax
	jne	.L17572
.L17575:

	xorl	%r14d, %r14d
.L17573:

	movq	(%rbx), %rcx
	movq	8(%rbx), %rsi
	movq	%rbp, %r8
	movq	%r13, %rdx
	movq	104(%rbx), %r9
	movq	%r12, %rdi
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	je	.L17566
	movq	%r13, 32(%rbx)
	movq	%r12, 24(%rbx)
	movl	$1, %r12d
.L17582:

	movq	%r14, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L17561
	.p2align 4,,10
	.p2align 3
.L17572:

	movq	16(%rbx), %rdx
	testq	%rdx, %rdx
	je	.L17574
	movl	$1, %esi
	movq	%r13, %rdi
# WAS call	BN_rand_range_ex@PLT
	call	.LBN_rand_range_ex_local_target
	testl	%eax, %eax
	jne	.L17575
.L17589:

	xorl	%r14d, %r14d
.L17566:

	xorl	%esi, %esi
	movl	$329, %r8d
	movl	$3, %edx
	movl	$5, %edi
	leaq	.LC199(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	cmpq	$0, 24(%rbx)
	je	.L17583
.L17615:

	movq	32(%rbx), %rax
	testq	%rax, %rax
	je	.L17585
.L17586:

	xorl	%r12d, %r12d
	jmp	.L17582
	.p2align 4,,10
	.p2align 3
.L17618:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	jne	.L17565
	jmp	.L17589
	.p2align 4,,10
	.p2align 3
.L17619:

	movq	%r14, %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	cmpq	$0, 104(%rbx)
	je	.L17620
	movq	%r14, %rdi
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	jmp	.L17568
	.p2align 4,,10
	.p2align 3
.L17563:

	xorl	%r14d, %r14d
	xorl	%r13d, %r13d
	xorl	%r12d, %r12d
	jmp	.L17566
	.p2align 4,,10
	.p2align 3
.L17585:

	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L17586
	.p2align 4,,10
	.p2align 3
.L17583:

	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L17615
	.p2align 4,,10
	.p2align 3
.L17620:

	movq	8(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	BN_MONT_CTX_new_for_modulus@PLT
	call	.LBN_MONT_CTX_new_for_modulus_local_target
	movq	%r14, %rdi
	movq	%rax, 104(%rbx)
	movq	%rax, 8(%rsp)
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	movq	8(%rsp), %rax
	testq	%rax, %rax
	je	.L17589
	jmp	.L17568
	.p2align 4,,10
	.p2align 3
.L17617:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L17563
	movl	$1, 4(%rsp)
	jmp	.L17564
	.p2align 4,,10
	.p2align 3
.L17574:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L17589
	movl	40(%rbx), %r15d
	movq	(%rbx), %rsi
	testl	%r15d, %r15d
	je	.L17580
	movq	%rsi, %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	subl	$1, %eax
	cmpl	%eax, %r15d
	jb	.L17612
	movq	(%rbx), %rsi
.L17580:

	movq	%r14, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L17566
.L17579:

	movq	%r14, %rdx
	movl	$1, %esi
	movq	%r13, %rdi
# WAS call	BN_rand_range_ex@PLT
	call	.LBN_rand_range_ex_local_target
	testl	%eax, %eax
	jne	.L17573
	jmp	.L17566
.L17612:

	movl	40(%rbx), %esi
	movq	%r14, %rdi
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	jne	.L17579
	jmp	.L17566
	.cfi_endproc
.LFE1470:

	.size	DH_generate_key, .-DH_generate_key
# WAS .section	.rodata.BN_BLINDING_convert.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC354:

	.string	"/aws-lc/crypto/fipsmodule/rsa/blinding.c"
# WAS .section	.text.BN_BLINDING_convert,"ax",@progbits
.text
	.p2align 4
	.globl	BN_BLINDING_convert
	.hidden	BN_BLINDING_convert
	.type	BN_BLINDING_convert, @function
.LBN_BLINDING_convert_local_target:
BN_BLINDING_convert:
.LFB2661:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	(%rsi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	movl	16(%rsi), %eax
	addl	$1, %eax
	movl	%eax, 16(%rsi)
	cmpl	$32, %eax
	je	.L17649
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	jne	.L17650
.L17625:

	movl	$31, 16(%rbx)
	xorl	%eax, %eax
.L17621:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L17651
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17650:

	.cfi_restore_state
	movq	8(%rbx), %rdi
	movq	%r12, %r8
	movq	%rbp, %rcx
	movq	%rdi, %rdx
	movq	%rdi, %rsi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L17625
.L17624:

	movq	(%rbx), %rdx
	movq	%r12, %r8
	movq	%rbp, %rcx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L17621
	.p2align 4,,10
	.p2align 3
.L17649:

	leaq	24(%rcx), %r15
	movq	%rdx, %r14
	movl	$1, %esi
	movq	%r15, %rdx
# WAS call	BN_rand_range_ex@PLT
	call	.LBN_rand_range_ex_local_target
	testl	%eax, %eax
	je	.L17623
	movq	(%rbx), %rsi
	movq	8(%rbx), %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
# WAS call	BN_from_montgomery@PLT
	call	.LBN_from_montgomery_local_target
	testl	%eax, %eax
	jne	.L17652
.L17623:

	movl	$236, %r8d
	leaq	.LC354(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17625
	.p2align 4,,10
	.p2align 3
.L17652:

	movq	8(%rbx), %rdi
	leaq	4(%rsp), %rsi
	movq	%r12, %r8
	movq	%rbp, %rcx
	movq	%rdi, %rdx
# WAS call	BN_mod_inverse_blinded@PLT
	call	.LBN_mod_inverse_blinded_local_target
	testl	%eax, %eax
	je	.L17623
	movq	(%rbx), %rdi
	movq	%rbp, %r9
	movq	%r12, %r8
	movq	%r15, %rcx
	movq	%r14, %rdx
	movq	%rdi, %rsi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17623
	movq	(%rbx), %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rdi, %rsi
# WAS call	BN_to_montgomery@PLT
	call	.LBN_to_montgomery_local_target
	testl	%eax, %eax
	je	.L17623
	movl	$0, 16(%rbx)
	jmp	.L17624
.L17651:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2661:

	.size	BN_BLINDING_convert, .-BN_BLINDING_convert
# WAS .section	.text.rsa_default_private_transform.part.0,"ax",@progbits
.text
	.p2align 4
	.type	rsa_default_private_transform.part.0, @function
.Lrsa_default_private_transform.part.0_local_target:
rsa_default_private_transform.part.0:
.LFB3061:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%rsi, 16(%rsp)
	movq	%rcx, 8(%rsp)
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	testq	%rax, %rax
	je	.L17658
	movq	%rax, %rbx
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r15
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%r15, %r15
	je	.L17766
	testq	%rax, %rax
	je	.L17766
	movq	8(%rsp), %rsi
	movq	%r15, %rdx
	movq	%r12, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L17766
	movq	8(%rbp), %rsi
	movq	%r15, %rdi
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	movl	$569, %r8d
	movl	$115, %edx
	leaq	.LC181(%rip), %rcx
	notl	%eax
	shrl	$31, %eax
	testl	%eax, %eax
	jne	.L17767
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	freeze_private_key
	call	.Lfreeze_private_key_local_target
	movl	$574, %r8d
	testl	%eax, %eax
	je	.L17768
	movl	92(%rbp), %eax
	movq	16(%rbp), %r12
	movq	$0, 24(%rsp)
	andl	$72, %eax
	movl	%eax, 36(%rsp)
	testq	%r12, %r12
	je	.L17773
	movl	36(%rsp), %esi
	xorl	%r12d, %r12d
	testl	%esi, %esi
	je	.L17774
.L17663:

	cmpq	$0, 32(%rbp)
	je	.L17686
	movq	40(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L17686
	cmpq	$0, 16(%rbp)
	je	.L17686
	cmpq	$0, 48(%rbp)
	je	.L17686
	cmpq	$0, 56(%rbp)
	je	.L17686
	cmpq	$0, 64(%rbp)
	je	.L17686
	movq	160(%rbp), %rsi
# WAS call	bn_less_than_montgomery_R
	call	.Lbn_less_than_montgomery_R_local_target
	testl	%eax, %eax
	je	.L17686
	movq	168(%rbp), %rsi
	movq	32(%rbp), %rdi
# WAS call	bn_less_than_montgomery_R
	call	.Lbn_less_than_montgomery_R_local_target
	testl	%eax, %eax
	je	.L17686
	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r14
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 48(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 40(%rsp)
	testq	%r14, %r14
	je	.L17691
	cmpq	$0, 48(%rsp)
	je	.L17691
	cmpq	$0, 40(%rsp)
	je	.L17691
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	freeze_private_key
	call	.Lfreeze_private_key_local_target
	testl	%eax, %eax
	je	.L17691
	movq	152(%rbp), %rax
	movq	%rbx, %r8
	movq	%r15, %rsi
	movq	%r14, %rdi
	movq	168(%rbp), %rdx
	movq	%rax, 72(%rsp)
	movq	160(%rbp), %rax
	movq	%rdx, 56(%rsp)
	addq	$24, %rax
	movq	%rax, %rcx
	movq	%rax, 64(%rsp)
# WAS call	mod_montgomery.isra.0
	call	.Lmod_montgomery.isra.0_local_target
	movq	56(%rsp), %rdx
	testl	%eax, %eax
	je	.L17691
	leaq	24(%rdx), %rax
	movq	48(%rsp), %rdi
	movq	%rbx, %r8
	movq	%r15, %rsi
	movq	160(%rbp), %rdx
	movq	%rax, %rcx
	movq	%rax, 56(%rsp)
# WAS call	mod_montgomery.isra.0
	call	.Lmod_montgomery.isra.0_local_target
	testl	%eax, %eax
	je	.L17691
	movq	192(%rbp), %rdx
	pushq	%rcx
	.cfi_def_cfa_offset 152
	movq	%r13, %r9
	movq	%r14, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 160
	pushq	160(%rbp)
	.cfi_def_cfa_offset 168
	movq	168(%rbp), %r8
	pushq	88(%rsp)
	.cfi_def_cfa_offset 176
	pushq	184(%rbp)
	.cfi_def_cfa_offset 184
	pushq	88(%rsp)
	.cfi_def_cfa_offset 192
	movq	104(%rsp), %rcx
	movq	88(%rsp), %rdi
# WAS call	BN_mod_exp_mont_consttime_x2@PLT
	call	.LBN_mod_exp_mont_consttime_x2_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 144
	testl	%eax, %eax
	je	.L17691
	movq	56(%rsp), %rcx
	movq	40(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r14, %rdi
	movq	160(%rbp), %rdx
# WAS call	mod_montgomery.isra.0
	call	.Lmod_montgomery.isra.0_local_target
	testl	%eax, %eax
	je	.L17691
	movq	64(%rsp), %rcx
	movq	%rbx, %r8
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	bn_mod_sub_consttime
	call	.Lbn_mod_sub_consttime_local_target
	testl	%eax, %eax
	je	.L17691
	movq	160(%rbp), %rcx
	movq	%rbx, %r8
	movq	%r13, %rsi
	movq	%r13, %rdi
	movq	200(%rbp), %rdx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	testl	%eax, %eax
	je	.L17691
	movq	56(%rsp), %rdx
	movq	%rbx, %rcx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	bn_mul_consttime
	call	.Lbn_mul_consttime_local_target
	testl	%eax, %eax
	je	.L17691
	movq	40(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r13, %rdi
# WAS call	bn_uadd_consttime
	call	.Lbn_uadd_consttime_local_target
	testl	%eax, %eax
	je	.L17691
	movq	72(%rsp), %r14
	leaq	24(%r14), %rdi
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movq	%r13, %rdi
	movl	%eax, %esi
# WAS call	bn_assert_fits_in_bytes@PLT
	call	.Lbn_assert_fits_in_bytes_local_target
	movslq	32(%r14), %rsi
	movq	%r13, %rdi
# WAS call	bn_resize_words@PLT
	call	.Lbn_resize_words_local_target
	movq	%rbx, %rdi
	testl	%eax, %eax
	je	.L17772
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L17701
	.p2align 4,,10
	.p2align 3
.L17778:

	movq	(%r14), %rax
.L17678:

	movq	%rax, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%r14), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r14, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L17677:

	movq	208(%rbp), %rax
	movq	$0, (%r15)
	cmpq	%r12, %rax
	jnb	.L17673
	movq	48(%rsp), %rdx
	leaq	(%rdx,%rax,8), %rbp
	leaq	(%rdx,%r12,8), %r12
	.p2align 4,,10
	.p2align 3
.L17682:

	movq	0(%rbp), %r13
	testq	%r13, %r13
	je	.L17681
	movq	0(%r13), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%r13), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L17681:

	addq	$8, %rbp
	cmpq	%rbp, %r12
	jne	.L17682
.L17673:

	movq	24(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	48(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	40(%rsp), %rdi
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
.L17683:

	movl	$597, %r8d
	.p2align 4,,10
	.p2align 3
.L17768:

	leaq	.LC181(%rip), %rcx
	movl	$68, %edx
.L17767:

	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17766:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L17658:

	xorl	%r14d, %r14d
.L17653:

	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17686:

	.cfi_restore_state
	movq	8(%rbp), %rcx
	movq	%rbx, %r8
	movq	%r15, %rsi
	movq	%r13, %rdi
	movq	176(%rbp), %rdx
	movq	152(%rbp), %r9
# WAS call	BN_mod_exp_mont_consttime@PLT
	call	.LBN_mod_exp_mont_consttime_local_target
	testl	%eax, %eax
	je	.L17689
.L17701:

	cmpq	$0, 16(%rbp)
	je	.L17703
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L17705
	movq	8(%rbp), %rcx
	movq	16(%rbp), %rdx
	movq	%rbx, %r8
	movq	%r13, %rsi
	movq	152(%rbp), %r9
	movq	%rax, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L17705
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	BN_equal_consttime@PLT
	call	.LBN_equal_consttime_local_target
	testl	%eax, %eax
	je	.L17705
.L17703:

	movl	36(%rsp), %eax
	testl	%eax, %eax
	jne	.L17706
	movq	152(%rbp), %rcx
	movq	%rbx, %r8
	movq	%r13, %rsi
	movq	%r13, %rdi
	movq	8(%r12), %rdx
# WAS call	BN_mod_mul_montgomery@PLT
	call	.LBN_mod_mul_montgomery_local_target
	movl	%eax, %r14d
	testl	%eax, %eax
	je	.L17685
	movq	8(%rsp), %r14
	movq	%r13, %rdi
	movq	%r14, %rsi
# WAS call	bn_assert_fits_in_bytes@PLT
	call	.Lbn_assert_fits_in_bytes_local_target
	movq	16(%rsp), %rdi
	movq	%r13, %rdx
	movq	%r14, %rsi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	jne	.L17775
.L17711:

	movl	$654, %r8d
.L17771:

	leaq	.LC181(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17689:

	xorl	%r14d, %r14d
.L17702:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	testq	%r12, %r12
	je	.L17653
.L17708:

	cmpq	$1024, 24(%rsp)
	jne	.L17709
	movq	(%r12), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%r12), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L17653
	.p2align 4,,10
	.p2align 3
.L17709:

	leaq	96(%rbp), %rbx
	movq	%rbx, %rdi
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	movq	224(%rbp), %rax
	movq	24(%rsp), %rcx
	movq	%rbx, %rdi
	movb	$0, (%rax,%rcx)
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	jmp	.L17653
	.p2align 4,,10
	.p2align 3
.L17773:

	movl	$590, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$130, %edx
	testl	%eax, %eax
	jne	.L17663
	jmp	.L17767
	.p2align 4,,10
	.p2align 3
.L17774:

# WAS call	CRYPTO_get_fork_generation@PLT
	call	.LCRYPTO_get_fork_generation_local_target
	movq	%rax, %r12
	leaq	96(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, 40(%rsp)
# WAS call	CRYPTO_MUTEX_lock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_lock_write
	cmpq	232(%rbp), %r12
	movq	208(%rbp), %r14
	je	.L17776
	testq	%r14, %r14
	je	.L17777
	movq	216(%rbp), %rdx
	leaq	(%rdx,%r14,8), %rsi
	.p2align 4,,10
	.p2align 3
.L17668:

	movq	(%rdx), %rax
	addq	$8, %rdx
	movl	$31, 16(%rax)
	cmpq	%rsi, %rdx
	jne	.L17668
	movq	%r12, 232(%rbp)
	movq	224(%rbp), %rdi
.L17666:

	xorl	%esi, %esi
	movq	%r14, %rdx
# WAS call	memchr@PLT
	call	.Lbcm_redirector_memchr
	testq	%rax, %rax
	je	.L17670
	movb	$1, (%rax)
	subq	224(%rbp), %rax
	movq	%rax, %rdx
	movq	%rax, 24(%rsp)
	movq	216(%rbp), %rax
	movq	(%rax,%rdx,8), %r12
.L17671:

	movq	40(%rsp), %rdi
# WAS call	CRYPTO_MUTEX_unlock_write@PLT
	call	.Lbcm_redirector_CRYPTO_MUTEX_unlock_write
	testq	%r12, %r12
	je	.L17683
	movq	152(%rbp), %rcx
	movq	%rbx, %r8
	movq	%r12, %rsi
	movq	%r15, %rdi
	movq	16(%rbp), %rdx
# WAS call	BN_BLINDING_convert
	call	.LBN_BLINDING_convert_local_target
	movl	%eax, %r14d
	testl	%eax, %eax
	jne	.L17663
.L17685:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L17708
	.p2align 4,,10
	.p2align 3
.L17705:

	movl	$636, %r8d
	jmp	.L17771
	.p2align 4,,10
	.p2align 3
.L17706:

	movq	8(%rsp), %r14
	movq	%r13, %rdi
	movq	%r14, %rsi
# WAS call	bn_assert_fits_in_bytes@PLT
	call	.Lbn_assert_fits_in_bytes_local_target
	movq	16(%rsp), %rdi
	movq	%r13, %rdx
	movq	%r14, %rsi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L17711
	movl	$1, %r14d
	jmp	.L17702
	.p2align 4,,10
	.p2align 3
.L17670:

	cmpq	$1023, %r14
	jbe	.L17672
# WAS call	BN_BLINDING_new
	call	.LBN_BLINDING_new_local_target
	movq	$1024, 24(%rsp)
	movq	%rax, %r12
	jmp	.L17671
.L17776:

	movq	224(%rbp), %rdi
	testq	%r14, %r14
	jne	.L17666
.L17665:

	xorl	%r14d, %r14d
.L17672:

	leaq	(%r14,%r14), %rcx
	movl	$1024, %eax
	movl	$8, %esi
	cmpq	%rax, %rcx
	cmova	%rax, %rcx
	movl	$1, %eax
	testq	%rcx, %rcx
	cmove	%rax, %rcx
	movq	%rcx, %rdi
	movq	%rcx, 24(%rsp)
# WAS call	OPENSSL_calloc@PLT
	call	.Lbcm_redirector_OPENSSL_calloc
	movq	24(%rsp), %rcx
	movq	%rax, %r14
	movq	%rax, 48(%rsp)
	movq	%rcx, %rdi
	movq	%rcx, 56(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%r14, %rdi
	movq	%rax, 24(%rsp)
	testq	%r14, %r14
	je	.L17673
	testq	%rax, %rax
	je	.L17673
	movq	208(%rbp), %r12
	movq	56(%rsp), %rcx
	movq	%r12, %rdx
	salq	$3, %rdx
	je	.L17674
	movq	216(%rbp), %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movq	208(%rbp), %r12
	movq	56(%rsp), %rcx
.L17674:

	testq	%r12, %r12
	je	.L17675
	movq	224(%rbp), %rsi
	movq	24(%rsp), %rdi
	movq	%r12, %rdx
	movq	%rcx, 56(%rsp)
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movq	208(%rbp), %r12
	movq	56(%rsp), %rcx
	movq	%r12, %rax
	cmpq	%rcx, %r12
	jnb	.L17676
.L17675:

	movq	48(%rsp), %rax
	movq	%r15, 56(%rsp)
	movq	%r13, 64(%rsp)
	movq	%rcx, %r13
	leaq	(%rax,%r12,8), %rax
	movq	%rax, %r15
	jmp	.L17680
	.p2align 4,,10
	.p2align 3
.L17780:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, (%r14)
	testq	%rax, %rax
	je	.L17678
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, 8(%r14)
	testq	%rax, %rax
	je	.L17778
	addq	$1, %r12
	movl	$31, 16(%r14)
	addq	$8, %r15
	movq	%r14, -8(%r15)
	cmpq	%r12, %r13
	je	.L17779
.L17680:

	movl	$24, %edi
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %r14
	testq	%rax, %rax
	jne	.L17780
	jmp	.L17677
.L17779:

	movq	%r13, %rcx
	movq	56(%rsp), %r15
	movq	64(%rsp), %r13
	movq	208(%rbp), %rax
.L17676:

	movq	24(%rsp), %r14
	movq	%rcx, %rdx
	xorl	%esi, %esi
	movq	%rcx, 56(%rsp)
	subq	%rax, %rdx
	leaq	(%r14,%rax), %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	208(%rbp), %rax
	movq	48(%rsp), %rdx
	movb	$1, (%r14,%rax)
	movq	208(%rbp), %rax
	movq	216(%rbp), %rdi
	movq	(%rdx,%rax,8), %r12
	movq	%rax, 24(%rsp)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	48(%rsp), %rdx
	movq	224(%rbp), %rdi
	movq	%rdx, 216(%rbp)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	56(%rsp), %rcx
	movq	%r14, 224(%rbp)
	movq	%rcx, 208(%rbp)
	jmp	.L17671
.L17777:

	movq	%r12, 232(%rbp)
	jmp	.L17665
.L17691:

	movq	%rbx, %rdi
.L17772:

# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L17689
.L17775:

	movq	%rbx, %rdi
	movl	$1, %r14d
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L17708
	.cfi_endproc
.LFE3061:

	.size	rsa_default_private_transform.part.0, .-rsa_default_private_transform.part.0
# WAS .section	.text.rsa_default_private_transform,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_default_private_transform
	.hidden	rsa_default_private_transform
	.type	rsa_default_private_transform, @function
.Lrsa_default_private_transform_local_target:
rsa_default_private_transform:
.LFB2752:

	.cfi_startproc
	endbr64
	cmpq	$0, 8(%rdi)
	je	.L17782
	cmpq	$0, 24(%rdi)
	je	.L17782
# WAS jmp	rsa_default_private_transform.part.0
	jmp	.Lrsa_default_private_transform.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L17782:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$537, %r8d
	leaq	.LC181(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2752:

	.size	rsa_default_private_transform, .-rsa_default_private_transform
# WAS .section	.text.rsa_private_transform_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_private_transform_no_self_test
	.hidden	rsa_private_transform_no_self_test
	.type	rsa_private_transform_no_self_test, @function
.Lrsa_private_transform_no_self_test_local_target:
rsa_private_transform_no_self_test:
.LFB2727:

	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L17789
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L17789
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L17789:

	cmpq	$0, 8(%rdi)
	je	.L17790
	cmpq	$0, 24(%rdi)
	je	.L17790
# WAS jmp	rsa_default_private_transform.part.0
	jmp	.Lrsa_default_private_transform.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L17790:

	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movl	$537, %r8d
	leaq	.LC181(%rip), %rcx
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2727:

	.size	rsa_private_transform_no_self_test, .-rsa_private_transform_no_self_test
# WAS .section	.text.rsa_private_transform,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_private_transform
	.hidden	rsa_private_transform
	.type	rsa_private_transform, @function
.Lrsa_private_transform_local_target:
rsa_private_transform:
.LFB2728:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L17803
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L17803
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L17803:

	.cfi_restore_state
	cmpq	$0, 8(%rbx)
	je	.L17804
	cmpq	$0, 24(%rbx)
	je	.L17804
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	rsa_default_private_transform.part.0
	jmp	.Lrsa_default_private_transform.part.0_local_target
	.p2align 4,,10
	.p2align 3
.L17804:

	.cfi_restore_state
	movl	$537, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$144, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2728:

	.size	rsa_private_transform, .-rsa_private_transform
# WAS .section	.text.rsa_default_sign_raw,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_default_sign_raw
	.hidden	rsa_default_sign_raw
	.type	rsa_default_sign_raw, @function
.Lrsa_default_sign_raw_local_target:
rsa_default_sign_raw:
.LFB2749:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rdx, 8(%rsp)
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %r14d
	cmpq	%r14, %rbp
	jb	.L17848
	movq	%r14, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L17819
	cmpl	$1, 80(%rsp)
	je	.L17820
	cmpl	$3, 80(%rsp)
	jne	.L17849
	cmpq	%r12, %r14
	jb	.L17850
	cmpq	%r14, %r12
	jb	.L17851
	testq	%r12, %r12
	je	.L17827
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rax, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L17827:

	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L17829
	movq	72(%rax), %rax
	testq	%rax, %rax
	je	.L17829
	movq	8(%rsp), %rsi
	movq	%r14, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rdi
	call	*%rax
.L17830:

	testl	%eax, %eax
	je	.L17819
	movq	%r14, (%r15)
	movl	$1, %ebx
.L17828:

	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L17815
	.p2align 4,,10
	.p2align 3
.L17848:

	movl	$370, %r8d
	movl	$135, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC181(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17815:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17849:

	.cfi_restore_state
	movl	$387, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$143, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L17819:

	xorl	%ebx, %ebx
	jmp	.L17828
	.p2align 4,,10
	.p2align 3
.L17820:

	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%rax, %rdi
# WAS call	RSA_padding_add_PKCS1_type_1
	call	.LRSA_padding_add_PKCS1_type_1_local_target
	testl	%eax, %eax
	jg	.L17827
	xorl	%ebx, %ebx
	jmp	.L17828
	.p2align 4,,10
	.p2align 3
.L17829:

	cmpq	$0, 8(%rbx)
	je	.L17831
	cmpq	$0, 24(%rbx)
	je	.L17831
	movq	8(%rsp), %rsi
	movq	%r14, %rcx
	movq	%rbp, %rdx
	movq	%rbx, %rdi
# WAS call	rsa_default_private_transform.part.0
	call	.Lrsa_default_private_transform.part.0_local_target
	jmp	.L17830
	.p2align 4,,10
	.p2align 3
.L17831:

	movl	$537, %r8d
	movl	$144, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC181(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17828
	.p2align 4,,10
	.p2align 3
.L17850:

	movl	$149, %r8d
	movl	$114, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC348(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17828
	.p2align 4,,10
	.p2align 3
.L17851:

	movl	$154, %r8d
	movl	$116, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC348(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17828
	.cfi_endproc
.LFE2749:

	.size	rsa_default_sign_raw, .-rsa_default_sign_raw
# WAS .section	.text.rsa_sign_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_sign_no_self_test
	.hidden	rsa_sign_no_self_test
	.type	rsa_sign_no_self_test, @function
.Lrsa_sign_no_self_test_local_target:
rsa_sign_no_self_test:
.LFB2719:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%edi, %ebx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	movq	(%r9), %rax
	testq	%rax, %rax
	je	.L17853
	movq	32(%rax), %rax
	testq	%rax, %rax
	je	.L17853
	cmpl	$114, %edi
	je	.L17901
	cmpl	$4, %edi
	je	.L17869
	cmpl	$64, %edi
	je	.L17870
	cmpl	$675, %edi
	je	.L17871
	cmpl	$672, %edi
	je	.L17872
	cmpl	$673, %edi
	je	.L17873
	cmpl	$674, %edi
	je	.L17874
	cmpl	$978, %edi
	je	.L17875
	cmpl	$962, %edi
	je	.L17876
	cmpl	$965, %edi
	je	.L17877
	cmpl	$966, %edi
	je	.L17878
	cmpl	$967, %edi
	je	.L17879
	movl	$11, %ecx
	cmpl	$968, %edi
	je	.L17857
	movl	$785, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$142, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17852
	.p2align 4,,10
	.p2align 3
.L17853:

	movq	%rbp, %rdi
	movq	%rsi, 8(%rsp)
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movq	8(%rsp), %r8
	movq	%r12, %r9
	movl	%ebx, %ecx
	movl	%eax, %r15d
	leaq	40(%rsp), %rax
	leaq	28(%rsp), %rdx
	movq	$0, 32(%rsp)
	leaq	32(%rsp), %rdi
	movq	%rax, %rsi
	movq	$0, 40(%rsp)
	movl	$0, 28(%rsp)
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	testl	%eax, %eax
	jne	.L17902
.L17862:

	xorl	%eax, %eax
	jmp	.L17866
	.p2align 4,,10
	.p2align 3
.L17902:

	movq	0(%rbp), %rax
	movq	40(%rsp), %r9
	movq	32(%rsp), %rsi
	testq	%rax, %rax
	je	.L17863
	movq	40(%rax), %rax
	testq	%rax, %rax
	je	.L17863
	movl	$1, %r8d
	movq	%rbp, %rcx
	movq	%r14, %rdx
	movl	%r15d, %edi
	call	*%rax
	testl	%eax, %eax
	js	.L17862
	cltq
.L17865:

	movl	%eax, 0(%r13)
	movl	$1, %eax
.L17866:

	movl	28(%rsp), %edx
	testl	%edx, %edx
	jne	.L17903
.L17852:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L17900
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17863:

	.cfi_restore_state
	leaq	48(%rsp), %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movl	%r15d, %ecx
	movq	%rsi, %r8
	pushq	$1
	.cfi_def_cfa_offset 144
	movq	%rax, %rsi
	movq	%r14, %rdx
	movq	%rbp, %rdi
# WAS call	rsa_default_sign_raw
	call	.Lrsa_default_sign_raw_local_target
	popq	%rcx
	.cfi_def_cfa_offset 136
	popq	%rsi
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L17862
	movq	48(%rsp), %rax
	movq	%rax, %rbx
	shrq	$32, %rbx
	je	.L17865
	movl	$871, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$69, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17866
	.p2align 4,,10
	.p2align 3
.L17903:

	movq	32(%rsp), %rdi
	movl	%eax, 8(%rsp)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	8(%rsp), %eax
	jmp	.L17852
	.p2align 4,,10
	.p2align 3
.L17901:

	movl	$768, %r8d
	cmpq	$36, %rdx
	je	.L17855
.L17899:

	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17852
	.p2align 4,,10
	.p2align 3
.L17855:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L17900
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbp, %r9
	movq	%r13, %r8
	movq	%r14, %rcx
	movl	%r12d, %edx
	movl	%ebx, %edi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L17869:

	.cfi_restore_state
	xorl	%ecx, %ecx
	.p2align 4,,10
	.p2align 3
.L17857:

	leaq	0(,%rcx,8), %rdx
	subq	%rcx, %rdx
# WAS leaq	kPKCS1SigPrefixes(%rip), %rcx
	leaq	.LkPKCS1SigPrefixes_local_target(%rip), %rcx
	movzbl	4(%rcx,%rdx,4), %edx
	cmpq	%rdx, %r12
	je	.L17855
	movl	$778, %r8d
	jmp	.L17899
.L17872:

	movl	$3, %ecx
	jmp	.L17857
.L17870:

	movl	$1, %ecx
	jmp	.L17857
.L17871:

	movl	$2, %ecx
	jmp	.L17857
.L17873:

	movl	$4, %ecx
	jmp	.L17857
.L17874:

	movl	$5, %ecx
	jmp	.L17857
.L17875:

	movl	$6, %ecx
	jmp	.L17857
.L17876:

	movl	$7, %ecx
	jmp	.L17857
.L17877:

	movl	$8, %ecx
	jmp	.L17857
.L17878:

	movl	$9, %ecx
	jmp	.L17857
.L17879:

	movl	$10, %ecx
	jmp	.L17857
.L17900:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2719:

	.size	rsa_sign_no_self_test, .-rsa_sign_no_self_test
# WAS .section	.text.RSA_sign_raw,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_sign_raw
	.type	RSA_sign_raw, @function
.LRSA_sign_raw_local_target:
RSA_sign_raw:
.LFB2711:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%r9, 8(%rsp)
	movl	80(%rsp), %r15d
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	0(%rbp), %rax
	testq	%rax, %rax
	je	.L17905
	movq	40(%rax), %rax
	testq	%rax, %rax
	je	.L17905
	movl	%r15d, %r8d
	movq	%rbp, %rcx
	movq	%r13, %rdx
	movq	%r14, %rsi
	movl	%ebx, %edi
	call	*%rax
	testl	%eax, %eax
	js	.L17915
	cltq
	movq	%rax, (%r12)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17915:

	.cfi_restore_state
	movq	$0, (%r12)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17905:

	.cfi_restore_state
	movl	%r15d, 80(%rsp)
	movq	8(%rsp), %r9
	movq	%r14, %r8
	movq	%rbx, %rcx
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	rsa_default_sign_raw
	jmp	.Lrsa_default_sign_raw_local_target
	.cfi_endproc
.LFE2711:

	.size	RSA_sign_raw, .-RSA_sign_raw
# WAS .section	.text.RSA_sign,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_sign
	.type	RSA_sign, @function
.LRSA_sign_local_target:
RSA_sign:
.LFB2720:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	%edi, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L17917
	movq	32(%rax), %rax
	testq	%rax, %rax
	je	.L17917
	cmpl	$114, %r15d
	je	.L17965
	cmpl	$4, %r15d
	je	.L17933
	cmpl	$64, %r15d
	je	.L17934
	cmpl	$675, %r15d
	je	.L17935
	cmpl	$672, %r15d
	je	.L17936
	cmpl	$673, %r15d
	je	.L17937
	cmpl	$674, %r15d
	je	.L17938
	cmpl	$978, %r15d
	je	.L17939
	cmpl	$962, %r15d
	je	.L17940
	cmpl	$965, %r15d
	je	.L17941
	cmpl	$966, %r15d
	je	.L17942
	cmpl	$967, %r15d
	je	.L17943
	movl	$11, %ecx
	cmpl	$968, %r15d
	je	.L17921
	movl	$785, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$142, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17916
	.p2align 4,,10
	.p2align 3
.L17917:

	movq	%rbx, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	leaq	28(%rsp), %rdx
	movq	%rbp, %r9
	movq	%r12, %r8
	leaq	40(%rsp), %rsi
	leaq	32(%rsp), %rdi
	movl	%r15d, %ecx
	movl	%eax, 12(%rsp)
	movq	$0, 32(%rsp)
	movq	$0, 40(%rsp)
	movl	$0, 28(%rsp)
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	testl	%eax, %eax
	jne	.L17966
.L17926:

	xorl	%eax, %eax
	jmp	.L17930
	.p2align 4,,10
	.p2align 3
.L17966:

	movq	(%rbx), %rax
	movq	40(%rsp), %r9
	movq	32(%rsp), %rsi
	testq	%rax, %rax
	je	.L17927
	movq	40(%rax), %rax
	testq	%rax, %rax
	je	.L17927
	movl	12(%rsp), %edi
	movl	$1, %r8d
	movq	%rbx, %rcx
	movq	%r13, %rdx
	call	*%rax
	testl	%eax, %eax
	js	.L17926
	cltq
.L17929:

	movl	%eax, (%r14)
	movl	$1, %eax
.L17930:

	movl	28(%rsp), %edx
	testl	%edx, %edx
	jne	.L17967
.L17916:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L17964
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17927:

	.cfi_restore_state
	movl	12(%rsp), %ecx
	leaq	48(%rsp), %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 136
	movq	%rsi, %r8
	pushq	$1
	.cfi_def_cfa_offset 144
	movq	%rax, %rsi
	movq	%r13, %rdx
	movq	%rbx, %rdi
# WAS call	rsa_default_sign_raw
	call	.Lrsa_default_sign_raw_local_target
	popq	%rcx
	.cfi_def_cfa_offset 136
	popq	%rsi
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	je	.L17926
	movq	48(%rsp), %rax
	movq	%rax, %rbx
	shrq	$32, %rbx
	je	.L17929
	movl	$871, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$69, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17930
	.p2align 4,,10
	.p2align 3
.L17967:

	movq	32(%rsp), %rdi
	movl	%eax, 12(%rsp)
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	12(%rsp), %eax
	jmp	.L17916
	.p2align 4,,10
	.p2align 3
.L17965:

	movl	$768, %r8d
	cmpq	$36, %rbp
	je	.L17919
.L17963:

	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L17916
	.p2align 4,,10
	.p2align 3
.L17919:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L17964
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%rbx, %r9
	movq	%r14, %r8
	movq	%r13, %rcx
	popq	%rbx
	.cfi_def_cfa_offset 48
	movl	%ebp, %edx
	movq	%r12, %rsi
	popq	%rbp
	.cfi_def_cfa_offset 40
	movl	%r15d, %edi
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	*%rax
.L17933:

	.cfi_restore_state
	xorl	%ecx, %ecx
	.p2align 4,,10
	.p2align 3
.L17921:

	leaq	0(,%rcx,8), %rdx
	subq	%rcx, %rdx
# WAS leaq	kPKCS1SigPrefixes(%rip), %rcx
	leaq	.LkPKCS1SigPrefixes_local_target(%rip), %rcx
	movzbl	4(%rcx,%rdx,4), %edx
	cmpq	%rdx, %rbp
	je	.L17919
	movl	$778, %r8d
	jmp	.L17963
.L17936:

	movl	$3, %ecx
	jmp	.L17921
.L17934:

	movl	$1, %ecx
	jmp	.L17921
.L17935:

	movl	$2, %ecx
	jmp	.L17921
.L17937:

	movl	$4, %ecx
	jmp	.L17921
.L17938:

	movl	$5, %ecx
	jmp	.L17921
.L17939:

	movl	$6, %ecx
	jmp	.L17921
.L17940:

	movl	$7, %ecx
	jmp	.L17921
.L17941:

	movl	$8, %ecx
	jmp	.L17921
.L17942:

	movl	$9, %ecx
	jmp	.L17921
.L17943:

	movl	$10, %ecx
	jmp	.L17921
.L17964:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2720:

	.size	RSA_sign, .-RSA_sign
# WAS .section	.text.bn_rand_secret_range,"ax",@progbits
.text
	.p2align 4
	.globl	bn_rand_secret_range
	.hidden	bn_rand_secret_range
	.type	bn_rand_secret_range, @function
.Lbn_rand_secret_range_local_target:
bn_rand_secret_range:
.LFB1062:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	0(%rbp), %rcx
	movslq	8(%rbp), %r8
	movq	%rbx, %rdx
	leaq	32(%rsp), %rsi
	leaq	24(%rsp), %rdi
# WAS call	bn_range_to_mask
	call	.Lbn_range_to_mask_local_target
	testl	%eax, %eax
	jne	.L17995
.L17970:

	xorl	%ebx, %ebx
	jmp	.L17974
	.p2align 4,,10
	.p2align 3
.L17995:

	movq	24(%rsp), %r15
	movq	%r12, %rdi
	movq	%r15, %rsi
# WAS call	bn_wexpand
	call	.Lbn_wexpand_local_target
	testl	%eax, %eax
	je	.L17970
	movq	32(%rsp), %r9
	movq	%r9, %r13
	shrq	%r13
	cmpq	$1, %r15
	jne	.L17972
	cmpq	%rbx, %r13
	jb	.L17996
	movq	(%r12), %rdi
	movl	$8, %esi
	movq	%r9, (%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	(%r12), %rdi
	movq	(%rsp), %r9
	movq	$-1, %rax
	movq	0(%rbp), %rdx
	movl	$-1, %ebp
	andq	(%rdi), %r9
	movq	%rdi, %r8
	movq	%r9, (%rdi)
	testq	%rbx, %rbx
	jne	.L17981
.L17976:

	movq	%r15, %rcx
	movq	%r15, %rsi
	movq	%r8, 8(%rsp)
	movq	%r9, (%rsp)
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	movq	(%rsp), %r9
	movq	8(%rsp), %r8
	shrl	$31, %eax
	andl	%ebp, %eax
	leaq	-1(%rax), %rdx
	movl	%eax, (%r14)
	negq	%rax
	andq	%rdx, %rbx
	andq	%r13, %rdx
	orq	%r9, %rbx
	movq	%rbx, (%rdi)
	movl	$1, %ebx
	orq	%rax, %rdx
	andq	%rdx, (%r8)
	movl	$0, 16(%r12)
	movl	%r15d, 8(%r12)
.L17974:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17997
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L17972:

	.cfi_restore_state
	leaq	0(,%r15,8), %rdx
	movq	(%r12), %rdi
	movq	%r9, 8(%rsp)
	movq	%rdx, %rsi
	movq	%rdx, (%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	(%r12), %rdi
	movq	(%rsp), %rdx
	movq	8(%rsp), %r9
	leaq	-8(%rdi,%rdx), %r8
	movq	0(%rbp), %rdx
	andq	%r9, (%r8)
	testq	%rbx, %rbx
	je	.L17998
	testq	%r15, %r15
	je	.L17999
	leaq	-1(%r15), %rcx
	cmpq	$2, %r15
	je	.L17983
	movq	%rcx, %rsi
	movq	%rdi, %rax
	pxor	%xmm0, %xmm0
	shrq	%rsi
	salq	$4, %rsi
	addq	%rdi, %rsi
	.p2align 4,,10
	.p2align 3
.L17979:

	movdqu	8(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %rsi
	jne	.L17979
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, %cl
	je	.L17980
	orq	$1, %rcx
.L17978:

	orq	(%rdi,%rcx,8), %rax
.L17980:

	movq	%rax, %rcx
	subq	$1, %rax
	notq	%rcx
	andq	%rcx, %rax
.L17981:

	movq	(%rdi), %r9
	movq	%rbx, %rcx
	movq	%r9, %rbp
	xorq	%r9, %rcx
	subq	%rbx, %rbp
	xorq	%r9, %rbp
	orq	%rcx, %rbp
	xorq	%r9, %rbp
	andq	%rax, %rbp
	sarq	$63, %rbp
	notl	%ebp
	jmp	.L17976
	.p2align 4,,10
	.p2align 3
.L17999:

	movq	(%rdi), %r9
	xorl	%ebp, %ebp
	jmp	.L17976
	.p2align 4,,10
	.p2align 3
.L17996:

	movl	$337, %r8d
	movl	$108, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC70(%rip), %rcx
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L17974
.L17983:

	xorl	%eax, %eax
	movl	$1, %ecx
	jmp	.L17978
.L17997:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L17998:

	movq	(%rdi), %r9
	movl	$-1, %ebp
	jmp	.L17976
	.cfi_endproc
.LFE1062:

	.size	bn_rand_secret_range, .-bn_rand_secret_range
# WAS .section	.text.BN_primality_test,"ax",@progbits
.text
	.p2align 4
	.globl	BN_primality_test
	.type	BN_primality_test, @function
.LBN_primality_test_local_target:
BN_primality_test:
.LFB1046:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%r8d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movl	$0, (%rdi)
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	%rbx, %rdi
	movq	%rax, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jle	.L18001
	movq	%rbx, %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L18064
	movl	$3, %esi
	movq	%rbx, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	movl	%eax, %ecx
	testl	%eax, %eax
	jne	.L18065
	testl	%r14d, %r14d
	jne	.L18005
.L18025:

	testl	%r12d, %r12d
	je	.L18066
.L18007:

	movq	$0, 40(%rsp)
	testq	%rbp, %rbp
	je	.L18067
.L18013:

	movq	%rbp, %rdi
	movl	%ecx, 16(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, %r14
# WAS call	BN_MONT_CTX_new_consttime@PLT
	call	.LBN_MONT_CTX_new_consttime_local_target
	testq	%r14, %r14
	movl	16(%rsp), %ecx
	movq	%rax, %rsi
	je	.L18017
	testq	%rax, %rax
	je	.L18017
	leaq	80(%rsp), %rdi
	movq	%rbp, %rdx
	movl	%ecx, 32(%rsp)
	movq	%rdi, 16(%rsp)
	movq	%rax, 24(%rsp)
# WAS call	bn_miller_rabin_init@PLT
	call	.Lbn_miller_rabin_init_local_target
	movq	24(%rsp), %rsi
	movl	32(%rsp), %ecx
	testl	%eax, %eax
	je	.L18017
	leaq	72(%rsp), %rax
	movq	%r13, 56(%rsp)
	movslq	%r12d, %r15
	xorl	%ebx, %ebx
	movq	%rax, 24(%rsp)
	leaq	76(%rsp), %rax
	movl	$1, %r12d
	movq	%rsi, %r13
	movq	%rax, 32(%rsp)
	movl	%ecx, 52(%rsp)
	jmp	.L18023
	.p2align 4,,10
	.p2align 3
.L18070:

	movslq	72(%rsp), %rax
	movq	32(%rsp), %rsi
	movq	%rbp, %r8
	movq	%r13, %rcx
	movq	16(%rsp), %rdi
	movq	%r14, %rdx
	movl	$0, 76(%rsp)
	addq	%rax, %rbx
# WAS call	bn_miller_rabin_iteration@PLT
	call	.Lbn_miller_rabin_iteration_local_target
	testl	%eax, %eax
	je	.L18061
	movl	76(%rsp), %eax
	testl	%eax, %eax
	je	.L18068
	movq	8(%rsp), %rdi
	leal	-1(%r12), %edx
	movl	$1, %esi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18061
	movq	%rbx, %rax
	movq	%r15, %rdx
	addl	$1, %r12d
	subq	%r15, %rax
	xorq	%rbx, %rdx
	xorq	%rbx, %rax
	orq	%rdx, %rax
	xorl	%edx, %edx
	xorq	%rbx, %rax
	sarq	$63, %rax
	cmpl	$16, %r12d
	setle	%dl
	orq	%rdx, %rax
	je	.L18069
.L18023:

	movq	80(%rsp), %rcx
	movq	24(%rsp), %rsi
	movl	$2, %edx
	movq	%r14, %rdi
# WAS call	bn_rand_secret_range
	call	.Lbn_rand_secret_range_local_target
	testl	%eax, %eax
	jne	.L18070
.L18061:

	movl	52(%rsp), %ecx
	movq	%r13, %rsi
	.p2align 4,,10
	.p2align 3
.L18017:

	movq	%rsi, %rdi
	movl	%ecx, 8(%rsp)
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	40(%rsp), %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	movl	8(%rsp), %ecx
	jmp	.L18000
	.p2align 4,,10
	.p2align 3
.L18064:

	movl	$2, %esi
	movq	%rbx, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	movl	%eax, 0(%r13)
.L18001:

	movl	$1, %ecx
.L18000:

	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18071
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ecx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18005:

	.cfi_restore_state
	movl	8(%rbx), %eax
	movl	$512, %edx
# WAS leaq	2+kPrimes(%rip), %r15
	leaq	.LkPrimes_local_target+2(%rip), %r15
	movq	%rbp, 24(%rsp)
	leaq	-2(%r15), %rsi
	movq	%r15, %rbp
	movl	%ecx, 16(%rsp)
	sall	$6, %eax
	cmpl	$1024, %eax
	movl	$1024, %eax
	cmovle	%rdx, %rax
	leaq	(%rsi,%rax,2), %rax
	movq	%rax, %r15
	jmp	.L18010
	.p2align 4,,10
	.p2align 3
.L18073:

	addq	$2, %rbp
	cmpq	%r15, %rbp
	je	.L18072
.L18010:

	movzwl	0(%rbp), %esi
	movq	%rbx, %rdi
	movl	%esi, %r14d
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	jne	.L18073
	movzwl	%r14w, %esi
	movq	%rbx, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	movl	$1, %ecx
	movl	%eax, 0(%r13)
	jmp	.L18000
	.p2align 4,,10
	.p2align 3
.L18066:

	movq	%rbx, %rdi
	movl	%ecx, 16(%rsp)
	movl	$3, %r12d
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movl	16(%rsp), %ecx
	cmpl	$3746, %eax
	jg	.L18007
	movl	$4, %r12d
	cmpl	$1344, %eax
	jg	.L18007
	movl	$5, %r12d
	cmpl	$475, %eax
	jg	.L18007
	movl	$6, %r12d
	cmpl	$399, %eax
	jg	.L18007
	movl	$7, %r12d
	cmpl	$346, %eax
	jg	.L18007
	movl	$8, %r12d
	cmpl	$307, %eax
	jg	.L18007
	cmpl	$54, %eax
	movl	$27, %r12d
	movl	$34, %eax
	cmovle	%eax, %r12d
	jmp	.L18007
	.p2align 4,,10
	.p2align 3
.L18067:

	movl	%ecx, 16(%rsp)
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movl	16(%rsp), %ecx
	testq	%rax, %rax
	movq	%rax, %rbp
	je	.L18000
	movq	%rax, 40(%rsp)
	jmp	.L18013
	.p2align 4,,10
	.p2align 3
.L18065:

	movl	$1, 0(%r13)
	jmp	.L18001
	.p2align 4,,10
	.p2align 3
.L18072:

	movq	8(%rsp), %rdi
	movl	$-1, %edx
	movl	$1, %esi
	movq	24(%rsp), %rbp
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	movl	16(%rsp), %ecx
	testl	%eax, %eax
	jne	.L18025
	jmp	.L18000
	.p2align 4,,10
	.p2align 3
.L18068:

	movq	%r13, %rsi
	movq	56(%rsp), %r13
	movl	$1, %ecx
	movl	$0, 0(%r13)
	jmp	.L18017
	.p2align 4,,10
	.p2align 3
.L18069:

	movq	%r13, %rsi
	movq	56(%rsp), %r13
	movl	$1, %ecx
	movl	$1, 0(%r13)
	jmp	.L18017
.L18071:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1046:

	.size	BN_primality_test, .-BN_primality_test
# WAS .section	.text.BN_is_prime_fasttest_ex,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_prime_fasttest_ex
	.type	BN_is_prime_fasttest_ex, @function
.LBN_is_prime_fasttest_ex_local_target:
BN_is_prime_fasttest_ex:
.LFB1048:

	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%r8, %r9
	movl	%ecx, %r8d
	movq	%rdx, %rcx
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rax
	movl	%esi, %edx
	movq	%rdi, %rsi
	movq	%rax, %rdi
# WAS call	BN_primality_test@PLT
	call	.LBN_primality_test_local_target
	testl	%eax, %eax
	je	.L18077
	movl	4(%rsp), %eax
.L18074:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18079
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18077:

	.cfi_restore_state
	movl	$-1, %eax
	jmp	.L18074
.L18079:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1048:

	.size	BN_is_prime_fasttest_ex, .-BN_is_prime_fasttest_ex
# WAS .section	.text.BN_generate_prime_ex,"ax",@progbits
.text
	.p2align 4
	.globl	BN_generate_prime_ex
	.type	BN_generate_prime_ex, @function
.LBN_generate_prime_ex_local_target:
BN_generate_prime_ex:
.LFB1041:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	%esi, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movl	%edx, 12(%rsp)
	movq	%rcx, (%rsp)
	movq	%r8, 40(%rsp)
	cmpl	$3746, %esi
	jg	.L18137
	cmpl	$1344, %esi
	jg	.L18138
	cmpl	$475, %esi
	jg	.L18139
	cmpl	$399, %esi
	jg	.L18140
	cmpl	$346, %esi
	jg	.L18141
	cmpl	$307, %esi
	jg	.L18142
	cmpl	$54, %esi
	jg	.L18143
	movl	$408, %r8d
	cmpl	$1, %esi
	jle	.L18215
	cmpl	$2, %esi
	jne	.L18144
	movl	12(%rsp), %ecx
	testl	%ecx, %ecx
	je	.L18144
	movl	$412, %r8d
.L18215:

	leaq	.LC353(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L18083:

	xorl	%ebp, %ebp
.L18080:

	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18138:

	.cfi_restore_state
	movl	$4, 24(%rsp)
.L18081:

# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L18083
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, 48(%rsp)
	testq	%rax, %rax
	je	.L18098
	cmpq	$0, (%rsp)
	je	.L18220
	movl	12(%rsp), %edx
	testl	%edx, %edx
	je	.L18149
	movl	$1, 28(%rsp)
	movl	$0, 8(%rsp)
.L18088:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, %r13
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L18111
	movq	(%rsp), %rsi
	movq	%rax, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	jne	.L18099
	.p2align 4,,10
	.p2align 3
.L18111:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L18098:

	xorl	%ebp, %ebp
	jmp	.L18132
	.p2align 4,,10
	.p2align 3
.L18137:

	movl	$3, 24(%rsp)
	jmp	.L18081
.L18099:

	movq	16(%rsp), %rdi
	xorl	%edx, %edx
	leal	-1(%r15), %esi
	movl	$1, %ecx
# WAS call	BN_rand@PLT
	call	.LBN_rand_local_target
	testl	%eax, %eax
	je	.L18111
	movq	16(%rsp), %rdx
	xorl	%edi, %edi
	movq	%rbx, %r8
	movq	%r14, %rcx
	movq	%r13, %rsi
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L18111
	movq	16(%rsp), %rdi
	movq	%r13, %rdx
	movq	%rdi, %rsi
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	je	.L18111
	cmpq	$0, 40(%rsp)
	je	.L18221
	movq	40(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L18111
	movq	16(%rsp), %rdi
	movq	%r13, %rdx
	movq	%rdi, %rsi
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	je	.L18111
.L18104:

	movq	16(%rsp), %rsi
	movq	%rbp, %rdi
# WAS call	BN_lshift1@PLT
	call	.LBN_lshift1_local_target
	testl	%eax, %eax
	je	.L18111
	movl	$1, %esi
	movq	%rbp, %rdi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	je	.L18111
	movl	8(%rbp), %eax
	movl	$512, %edx
	movq	%r12, 56(%rsp)
	movq	16(%rsp), %r12
	sall	$6, %eax
	cmpl	$1024, %eax
	movl	$1024, %eax
	cmovle	%rdx, %rax
# WAS leaq	kPrimes(%rip), %rdx
	leaq	.LkPrimes_local_target(%rip), %rdx
	leaq	(%rdx,%rax,2), %rax
	movq	%rax, 32(%rsp)
.L18109:

# WAS leaq	2+kPrimes(%rip), %r13
	leaq	.LkPrimes_local_target+2(%rip), %r13
	movq	%rbx, 16(%rsp)
	movq	%r13, %rbx
	jmp	.L18115
.L18110:

	movl	%r13d, %esi
	movq	%r12, %rdi
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	je	.L18217
	movq	32(%rsp), %rax
	addq	$2, %rbx
	cmpq	%rax, %rbx
	je	.L18222
.L18115:

	movzwl	(%rbx), %r13d
	movq	%rbp, %rdi
	movl	%r13d, %esi
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	jne	.L18110
.L18217:

	movq	(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
	movq	16(%rsp), %rbx
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	je	.L18111
	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%r12, %rdi
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	jne	.L18109
	jmp	.L18111
	.p2align 4,,10
	.p2align 3
.L18140:

	movl	$6, 24(%rsp)
	jmp	.L18081
.L18139:

	movl	$5, 24(%rsp)
	jmp	.L18081
.L18141:

	movl	$7, 24(%rsp)
	jmp	.L18081
.L18149:

	movl	$0, 8(%rsp)
	movl	$1, %r13d
	.p2align 4,,10
	.p2align 3
.L18089:

	movq	%rbx, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L18111
	xorl	%edx, %edx
	movl	$1, %ecx
	movl	%r15d, %esi
	movq	%rbp, %rdi
# WAS call	BN_rand@PLT
	call	.LBN_rand_local_target
	testl	%eax, %eax
	je	.L18111
	movq	(%rsp), %rcx
	xorl	%edi, %edi
	movq	%rbx, %r8
	movq	%rbp, %rdx
	movq	%r14, %rsi
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L18111
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	je	.L18111
	cmpq	$0, 40(%rsp)
	je	.L18223
	movq	40(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	je	.L18111
.L18123:

	movl	8(%rbp), %eax
	movl	$512, %edx
	movq	%rbx, 16(%rsp)
	sall	$6, %eax
	cmpl	$1024, %eax
	movl	$1024, %eax
	cmovle	%rdx, %rax
# WAS leaq	kPrimes(%rip), %rdx
	leaq	.LkPrimes_local_target(%rip), %rdx
	leaq	(%rdx,%rax,2), %r14
.L18125:

# WAS leaq	2+kPrimes(%rip), %rbx
	leaq	.LkPrimes_local_target+2(%rip), %rbx
	jmp	.L18128
	.p2align 4,,10
	.p2align 3
.L18126:

	addq	$2, %rbx
	cmpq	%rbx, %r14
	je	.L18224
.L18128:

	movzwl	(%rbx), %esi
	movq	%rbp, %rdi
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	cmpw	$1, %ax
	ja	.L18126
	movq	(%rsp), %rdx
	movq	%rbp, %rsi
	movq	%rbp, %rdi
# WAS call	BN_add@PLT
	call	.LBN_add_local_target
	testl	%eax, %eax
	jne	.L18125
	movq	16(%rsp), %rbx
	xorl	%ebp, %ebp
	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	jmp	.L18132
	.p2align 4,,10
	.p2align 3
.L18220:

	movl	$0, 8(%rsp)
	movl	$1, %r14d
.L18087:

	movq	%rbx, 16(%rsp)
# WAS leaq	kPrimes(%rip), %r13
	leaq	.LkPrimes_local_target(%rip), %r13
	movl	%r14d, 28(%rsp)
	movq	%r12, 32(%rsp)
.L18095:

	movl	$1, %ecx
	movl	$1, %edx
	movl	%r15d, %esi
	movq	%rbp, %rdi
# WAS call	BN_rand@PLT
	call	.LBN_rand_local_target
	testl	%eax, %eax
	je	.L18210
	movl	8(%rbp), %eax
	movl	$1024, %edx
# WAS leaq	2+kPrimes(%rip), %rbx
	leaq	.LkPrimes_local_target+2(%rip), %rbx
	sall	$6, %eax
	cmpl	$1025, %eax
	movl	$512, %eax
	cmovge	%rdx, %rax
	leaq	0(%r13,%rax,2), %r14
	jmp	.L18093
	.p2align 4,,10
	.p2align 3
.L18225:

	addq	$2, %rbx
	cmpq	%rbx, %r14
	je	.L18216
.L18093:

	movzwl	(%rbx), %esi
	movq	%rbp, %rdi
	movl	%esi, %r12d
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	jne	.L18225
	movzwl	%r12w, %esi
	movq	%rbp, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	testl	%eax, %eax
	je	.L18095
.L18216:

	movq	32(%rsp), %r12
	movl	8(%rsp), %edx
	xorl	%esi, %esi
	movq	16(%rsp), %rbx
	movl	28(%rsp), %r14d
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18098
	movl	12(%rsp), %eax
	testl	%eax, %eax
	jne	.L18117
.L18130:

	movl	24(%rsp), %esi
	xorl	%ecx, %ecx
	movq	%r12, %r8
	movq	%rbx, %rdx
	movq	%rbp, %rdi
# WAS call	BN_is_prime_fasttest_ex@PLT
	call	.LBN_is_prime_fasttest_ex_local_target
	cmpl	$-1, %eax
	je	.L18098
	testl	%eax, %eax
	jne	.L18136
	cmpq	$0, (%rsp)
	movl	%r14d, 8(%rsp)
	leal	1(%r14), %r13d
	jne	.L18089
	movl	%r13d, %r14d
	jmp	.L18087
.L18222:

.L18116:

	movq	16(%rsp), %rbx
	movq	56(%rsp), %r12
	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	8(%rsp), %edx
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18098
	movl	28(%rsp), %r14d
	.p2align 4,,10
	.p2align 3
.L18117:

	movq	48(%rsp), %rdi
	movq	%rbp, %rsi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L18098
	movl	%r14d, 8(%rsp)
	xorl	%r13d, %r13d
	movq	48(%rsp), %r14
	movl	%r15d, 16(%rsp)
	movl	24(%rsp), %r15d
	jmp	.L18135
	.p2align 4,,10
	.p2align 3
.L18226:

	testl	%eax, %eax
	je	.L18133
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	movq	%rbx, %rdx
	movl	$1, %esi
	movq	%r14, %rdi
# WAS call	BN_is_prime_fasttest_ex@PLT
	call	.LBN_is_prime_fasttest_ex_local_target
	cmpl	$-1, %eax
	je	.L18098
	testl	%eax, %eax
	je	.L18133
	movl	%r13d, %edx
	movl	$1, %esi
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18098
	addl	$1, %r13d
	cmpl	%r15d, %r13d
	je	.L18136
.L18135:

	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	movq	%rbx, %rdx
	movl	$1, %esi
	movq	%rbp, %rdi
# WAS call	BN_is_prime_fasttest_ex@PLT
	call	.LBN_is_prime_fasttest_ex_local_target
	cmpl	$-1, %eax
	jne	.L18226
	xorl	%ebp, %ebp
	jmp	.L18132
	.p2align 4,,10
	.p2align 3
.L18210:

	movq	16(%rsp), %rbx
	xorl	%ebp, %ebp
	jmp	.L18132
.L18133:

	movl	8(%rsp), %r14d
	cmpq	$0, (%rsp)
	movl	16(%rsp), %r15d
	leal	1(%r14), %eax
	movl	%eax, 28(%rsp)
	jne	.L18088
	movl	%eax, %r14d
	jmp	.L18087
.L18136:

	movl	$1, %ebp
.L18132:

	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	jmp	.L18080
.L18223:

	movl	$1, %esi
	movq	%rbp, %rdi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	jne	.L18123
	jmp	.L18111
.L18142:

	movl	$8, 24(%rsp)
	jmp	.L18081
.L18224:

.L18129:

	movq	16(%rsp), %rbx
	movq	%rbx, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movl	8(%rsp), %edx
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18098
	movl	%r13d, %r14d
	jmp	.L18130
.L18143:

	movl	$27, 24(%rsp)
	jmp	.L18081
.L18221:

	movq	16(%rsp), %rdi
	movl	$1, %esi
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	jne	.L18104
	jmp	.L18111
.L18144:

	movl	$34, 24(%rsp)
	jmp	.L18081
	.cfi_endproc
.LFE1041:

	.size	BN_generate_prime_ex, .-BN_generate_prime_ex
# WAS .section	.text.BN_is_prime_ex,"ax",@progbits
.text
	.p2align 4
	.globl	BN_is_prime_ex
	.type	BN_is_prime_ex, @function
.LBN_is_prime_ex_local_target:
BN_is_prime_ex:
.LFB1047:

	.cfi_startproc
	endbr64
	movq	%rcx, %r8
	xorl	%ecx, %ecx
# WAS jmp	BN_is_prime_fasttest_ex@PLT
	jmp	.LBN_is_prime_fasttest_ex_local_target
	.cfi_endproc
.LFE1047:

	.size	BN_is_prime_ex, .-BN_is_prime_ex
# WAS .section	.text.DH_check,"ax",@progbits
.text
	.p2align 4
	.globl	DH_check
	.type	DH_check, @function
.LDH_check_local_target:
DH_check:
.LFB1454:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	movl	$0, (%rsi)
# WAS call	dh_check_params_fast
	call	.Ldh_check_params_fast_local_target
	testl	%eax, %eax
	jne	.L18229
.L18231:

	xorl	%ebx, %ebx
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18229:

	.cfi_restore_state
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L18231
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L18234
	movq	%r12, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L18234
	movq	16(%rbx), %rsi
	movq	(%rbx), %rdi
	testq	%rsi, %rsi
	je	.L18236
# WAS call	BN_ucmp@PLT
	call	.LBN_ucmp_local_target
	testl	%eax, %eax
	jg	.L18237
.L18263:

	orl	$32, 0(%rbp)
.L18266:

	movq	(%rbx), %rdi
.L18236:

	xorl	%ecx, %ecx
	movq	%r12, %rdx
	movl	$64, %esi
# WAS call	BN_is_prime_ex@PLT
	call	.LBN_is_prime_ex_local_target
	testl	%eax, %eax
	js	.L18234
	jne	.L18243
	orl	$1, 0(%rbp)
.L18245:

	movl	$1, %ebx
	jmp	.L18233
	.p2align 4,,10
	.p2align 3
.L18237:

# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	8(%rbx), %rdi
	movq	%rax, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jg	.L18238
.L18265:

	orl	$8, 0(%rbp)
.L18239:

	movq	16(%rbx), %rdi
	xorl	%ecx, %ecx
	movq	%r12, %rdx
	movl	$64, %esi
# WAS call	BN_is_prime_ex@PLT
	call	.LBN_is_prime_ex_local_target
	testl	%eax, %eax
	jns	.L18267
	.p2align 4,,10
	.p2align 3
.L18234:

	xorl	%ebx, %ebx
.L18233:

	movq	%r12, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r12, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18243:

	.cfi_restore_state
	cmpq	$0, 16(%rbx)
	jne	.L18245
	movq	(%rbx), %rsi
	movq	%r13, %rdi
# WAS call	BN_rshift1@PLT
	call	.LBN_rshift1_local_target
	testl	%eax, %eax
	je	.L18234
	xorl	%ecx, %ecx
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	BN_is_prime_ex@PLT
	call	.LBN_is_prime_ex_local_target
	testl	%eax, %eax
	js	.L18234
	jne	.L18245
	orl	$2, 0(%rbp)
	jmp	.L18245
	.p2align 4,,10
	.p2align 3
.L18267:

	jne	.L18241
	orl	$16, 0(%rbp)
.L18241:

	movq	16(%rbx), %rcx
	movq	(%rbx), %rdx
	movq	%r12, %r8
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	BN_div@PLT
	call	.LBN_div_local_target
	testl	%eax, %eax
	je	.L18234
	movq	%r14, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L18263
	jmp	.L18266
	.p2align 4,,10
	.p2align 3
.L18238:

	movq	(%rbx), %rsi
	movq	8(%rbx), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jns	.L18265
	movq	(%rbx), %rcx
	movq	16(%rbx), %rdx
	xorl	%r9d, %r9d
	movq	%r12, %r8
	movq	8(%rbx), %rsi
	movq	%r13, %rdi
# WAS call	BN_mod_exp_mont@PLT
	call	.LBN_mod_exp_mont_local_target
	testl	%eax, %eax
	je	.L18234
	movq	%r13, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	jne	.L18239
	jmp	.L18265
	.cfi_endproc
.LFE1454:

	.size	DH_check, .-DH_check
# WAS .section	.text.generate_prime,"ax",@progbits
.text
	.p2align 4
	.type	generate_prime, @function
.Lgenerate_prime_local_target:
generate_prime:
.LFB2756:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	144(%rsp), %rax
	movq	152(%rsp), %rcx
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	cmpl	$67108862, %esi
	jg	.L18326
	movl	%esi, 48(%rsp)
	movq	%rdi, %r15
	movl	$3, %esi
	movq	%rdx, %rdi
	movq	%rcx, 40(%rsp)
	movq	%r9, 32(%rsp)
	movq	%r8, 24(%rsp)
	movq	%rdx, 16(%rsp)
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	movl	48(%rsp), %r11d
	movq	8(%rsp), %rbx
	movl	%eax, %edi
	testl	%edi, %edi
	leal	(%r11,%r11,4), %eax
	movq	%rbx, %rdi
	movl	%r11d, (%rsp)
	leal	0(,%r11,8), %esi
	cmovne	%esi, %eax
	movl	%eax, 52(%rsp)
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movl	(%rsp), %r11d
	movq	16(%rsp), %rdx
	movl	$0, 48(%rsp)
	testq	%rax, %rax
	movq	24(%rsp), %r8
	movq	32(%rsp), %r9
	movq	40(%rsp), %rcx
	je	.L18274
	movq	%rax, 16(%rsp)
	movl	%r11d, 24(%rsp)
	movq	%rdx, 56(%rsp)
	movq	%r8, 32(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rcx, (%rsp)
	.p2align 4,,10
	.p2align 3
.L18273:

	movl	24(%rsp), %esi
	xorl	%edx, %edx
	movl	$1, %ecx
	movq	%r15, %rdi
# WAS call	BN_rand@PLT
	call	.LBN_rand_local_target
	testl	%eax, %eax
	je	.L18274
	movq	(%rsp), %rdi
	xorl	%esi, %esi
	movl	%ebx, %edx
	leal	1(%rbx), %r12d
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18274
	testq	%r14, %r14
	je	.L18279
	movq	16(%rsp), %rbx
	movq	8(%rsp), %rcx
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	bn_abs_sub_consttime@PLT
	call	.Lbn_abs_sub_consttime_local_target
	testl	%eax, %eax
	je	.L18274
	movq	40(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jle	.L18290
.L18279:

	movq	32(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jle	.L18290
	movl	8(%r15), %eax
	movl	$1024, %edx
# WAS leaq	2+kPrimes(%rip), %r13
	leaq	.LkPrimes_local_target+2(%rip), %r13
	leaq	-2(%r13), %rcx
	sall	$6, %eax
	cmpl	$1025, %eax
	movl	$512, %eax
	cmovge	%rdx, %rax
	leaq	(%rcx,%rax,2), %rbp
	jmp	.L18282
	.p2align 4,,10
	.p2align 3
.L18327:

	addq	$2, %r13
	cmpq	%r13, %rbp
	je	.L18291
.L18282:

	movzwl	0(%r13), %esi
	movq	%r15, %rdi
	movl	%esi, %ebx
# WAS call	bn_mod_u16_consttime@PLT
	call	.Lbn_mod_u16_consttime_local_target
	testw	%ax, %ax
	jne	.L18327
	movzwl	%bx, %esi
	movq	%r15, %rdi
# WAS call	BN_is_word@PLT
	call	.LBN_is_word_local_target
	testl	%eax, %eax
	je	.L18287
.L18291:

# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	16(%rsp), %rbx
	movq	%r15, %rsi
	movq	%rax, %rdx
	movq	%rbx, %rdi
# WAS call	BN_sub@PLT
	call	.LBN_sub_local_target
	testl	%eax, %eax
	je	.L18274
	movq	8(%rsp), %rcx
	movq	56(%rsp), %rdx
	leaq	64(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	bn_is_relatively_prime@PLT
	call	.Lbn_is_relatively_prime_local_target
	testl	%eax, %eax
	je	.L18274
	movl	64(%rsp), %edx
	testl	%edx, %edx
	jne	.L18328
.L18287:

	addl	$1, 48(%rsp)
	movl	52(%rsp), %ecx
	movl	48(%rsp), %eax
	cmpl	%ecx, %eax
	jge	.L18329
	movq	(%rsp), %rdi
	movl	%eax, %edx
	movl	$2, %esi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L18274
.L18290:

	movl	%r12d, %ebx
	jmp	.L18273
.L18329:

	movl	$979, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$141, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	.p2align 4,,10
	.p2align 3
.L18274:

	xorl	%ebx, %ebx
.L18288:

	movq	8(%rsp), %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
.L18268:

	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18330
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18326:

	.cfi_restore_state
	movl	$910, %r8d
	movl	$128, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC181(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18268
	.p2align 4,,10
	.p2align 3
.L18328:

	movq	(%rsp), %r9
	movq	8(%rsp), %rcx
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	leaq	68(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	BN_primality_test@PLT
	call	.LBN_primality_test_local_target
	testl	%eax, %eax
	je	.L18324
	movl	68(%rsp), %eax
	testl	%eax, %eax
	je	.L18287
	movl	$1, %ebx
	jmp	.L18288
.L18324:

	movl	%eax, %ebx
	jmp	.L18288
.L18330:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2756:

	.size	generate_prime, .-generate_prime
# WAS .section	.text.aes_gcm_ctrl,"ax",@progbits
.text
	.p2align 4
	.type	aes_gcm_ctrl, @function
.Laes_gcm_ctrl_local_target:
aes_gcm_ctrl:
.LFB1166:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	16(%rdi), %rbx
	movq	%rbx, %rax
	andl	$8, %eax
	addq	%rax, %rbx
	cmpl	$25, %esi
	ja	.L18371
	movl	%edx, %ebp
	movl	%esi, %esi
	leaq	.L18334(%rip), %rdx
	movq	%rdi, %r12
	movslq	(%rdx,%rsi,4), %rax
	movq	%rcx, %r13
	addq	%rdx, %rax
	notrack jmp	*%rax
# WAS .section	.rodata.aes_gcm_ctrl,"a",@progbits
.text
	.align 4
	.align 4
.L18334:

	.long	.L18342-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18341-.L18334
	.long	.L18340-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18339-.L18334
	.long	.L18338-.L18334
	.long	.L18337-.L18334
	.long	.L18336-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18371-.L18334
	.long	.L18335-.L18334
	.long	.L18333-.L18334
# WAS .section	.text.aes_gcm_ctrl
.text
	.p2align 4,,10
	.p2align 3
.L18371:

	movl	$-1, %eax
.L18331:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18333:

	.cfi_restore_state
	movl	648(%rbx), %eax
	movl	%eax, (%rcx)
.L18343:

	movl	$1, %eax
	jmp	.L18331
	.p2align 4,,10
	.p2align 3
.L18342:

	movq	(%rdi), %rax
	addq	$52, %r12
	movq	$0, 632(%rbx)
	movl	12(%rax), %eax
	movq	%r12, 640(%rbx)
	movl	%eax, 648(%rbx)
	movl	$4294967295, %eax
	movq	%rax, 652(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18341:

	movq	16(%rcx), %rbp
	movq	%rbx, %rsi
	addq	$52, %r12
	movq	%rbp, %rax
	andl	$8, %eax
	addq	%rax, %rbp
	movq	(%rbx), %rax
	leaq	8(%rbp), %rdi
	movq	%rbp, %rcx
	andq	$-8, %rdi
	movq	%rax, 0(%rbp)
	movq	664(%rbx), %rax
	subq	%rdi, %rcx
	subq	%rcx, %rsi
	addl	$672, %ecx
	movq	%rax, 664(%rbp)
	shrl	$3, %ecx
	rep movsq
	movq	640(%rbx), %rdi
	cmpq	%r12, %rdi
	je	.L18400
	movslq	648(%rbx), %rsi
# WAS call	OPENSSL_memdup@PLT
	call	.Lbcm_redirector_OPENSSL_memdup
	testq	%rax, %rax
	movq	%rax, 640(%rbp)
	setne	%al
	movzbl	%al, %eax
	jmp	.L18331
	.p2align 4,,10
	.p2align 3
.L18340:

	testl	%ebp, %ebp
	jle	.L18345
	cmpl	$16, %ebp
	jle	.L18347
	cmpl	%ebp, 648(%rbx)
	jge	.L18347
	movq	640(%rbx), %rdi
	addq	$52, %r12
	cmpq	%r12, %rdi
	je	.L18348
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L18348:

	movslq	%ebp, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 640(%rbx)
	testq	%rax, %rax
	je	.L18345
.L18347:

	movl	%ebp, 648(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18339:

	leal	-1(%rbp), %eax
	cmpl	$15, %eax
	ja	.L18345
	movl	28(%rdi), %r10d
	testl	%r10d, %r10d
	je	.L18345
	movl	652(%rbx), %r9d
	testl	%r9d, %r9d
	js	.L18345
	leaq	68(%rdi), %rax
	cmpl	$8, %ebp
	jnb	.L18356
	testb	$4, %bpl
	jne	.L18401
	testl	%ebp, %ebp
	je	.L18343
	movzbl	68(%rdi), %edx
	movb	%dl, (%rcx)
	testb	$2, %bpl
	je	.L18343
	movl	%ebp, %ebp
	movzwl	-2(%rax,%rbp), %eax
	movw	%ax, -2(%rcx,%rbp)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18338:

	leal	-1(%rbp), %eax
	cmpl	$15, %eax
	ja	.L18345
	movl	28(%rdi), %r11d
	testl	%r11d, %r11d
	je	.L18402
.L18345:

	xorl	%eax, %eax
	jmp	.L18331
	.p2align 4,,10
	.p2align 3
.L18337:

	cmpl	$-1, %ebp
	je	.L18403
	cmpl	$3, %ebp
	jle	.L18345
	movl	648(%rbx), %eax
	subl	%ebp, %eax
	cmpl	$7, %eax
	jle	.L18345
	movq	640(%rbx), %rdi
	movslq	%ebp, %r14
	movq	%rcx, %rsi
	movq	%r14, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	28(%r12), %r8d
	testl	%r8d, %r8d
	je	.L18364
	movl	648(%rbx), %esi
	movq	640(%rbx), %rdi
	subl	%ebp, %esi
	addq	%r14, %rdi
	movslq	%esi, %rsi
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	testl	%eax, %eax
	je	.L18404
.L18364:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L18399:

	movl	$1, 656(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18336:

	movl	656(%rbx), %edi
	testl	%edi, %edi
	je	.L18345
	movl	632(%rbx), %esi
	testl	%esi, %esi
	je	.L18345
	movslq	648(%rbx), %rcx
	movq	640(%rbx), %rdx
	leaq	384(%rbx), %rsi
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	movl	648(%rbx), %eax
	testl	%ebp, %ebp
	jle	.L18366
	cmpl	%ebp, %eax
	jl	.L18366
	movslq	%ebp, %rdx
	movslq	%eax, %rsi
	subq	%rdx, %rsi
	addq	640(%rbx), %rsi
.L18367:

	movq	%r13, %rdi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movq	640(%rbx), %rsi
	movslq	648(%rbx), %rdx
.L18368:

	leaq	-8(%rsi,%rdx), %rdx
	movq	(%rdx), %rax
	bswap	%rax
	addq	$1, %rax
	bswap	%rax
	movq	%rax, (%rdx)
	movl	$1, 636(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18335:

	movl	656(%rbx), %ecx
	testl	%ecx, %ecx
	je	.L18345
	movl	632(%rbx), %edx
	testl	%edx, %edx
	je	.L18345
	movl	28(%rdi), %eax
	testl	%eax, %eax
	jne	.L18345
	movslq	%ebp, %rdx
	movq	640(%rbx), %rdi
	movslq	648(%rbx), %rcx
	testq	%rdx, %rdx
	je	.L18369
	subq	%rdx, %rcx
	movq	%r13, %rsi
	addq	%rcx, %rdi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	movslq	648(%rbx), %rcx
	movq	640(%rbx), %rdi
.L18369:

	movq	%rdi, %rdx
	leaq	384(%rbx), %rsi
	movq	%rbx, %rdi
# WAS call	CRYPTO_gcm128_setiv@PLT
	call	.LCRYPTO_gcm128_setiv_local_target
	movl	$1, 636(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18402:

	leaq	68(%rdi), %rax
	cmpl	$8, %ebp
	jnb	.L18350
	testb	$4, %bpl
	jne	.L18405
	testl	%ebp, %ebp
	je	.L18351
	movzbl	(%rcx), %edx
	movb	%dl, 68(%rdi)
	testb	$2, %bpl
	jne	.L18406
.L18351:

	movl	%ebp, 652(%rbx)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18400:

	addq	$52, %r13
	movq	%r13, 640(%rbp)
	jmp	.L18343
	.p2align 4,,10
	.p2align 3
.L18366:

	movslq	%eax, %rdx
	movq	640(%rbx), %rsi
	testq	%rdx, %rdx
	je	.L18368
	jmp	.L18367
	.p2align 4,,10
	.p2align 3
.L18403:

	movslq	648(%rbx), %rdx
	testq	%rdx, %rdx
	je	.L18399
	movq	640(%rbx), %rdi
	movq	%rcx, %rsi
# WAS call	OPENSSL_memcpy.part.0.isra.0
	call	.LOPENSSL_memcpy.part.0.isra.0_local_target
	jmp	.L18399
	.p2align 4,,10
	.p2align 3
.L18350:

	movq	(%rcx), %rdx
	addq	$76, %r12
	andq	$-8, %r12
	movq	%rdx, 68(%rdi)
	movl	%ebp, %edx
	movq	-8(%rcx,%rdx), %rcx
	movq	%rcx, -8(%rax,%rdx)
	subq	%r12, %rax
	subq	%rax, %r13
	addl	%ebp, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L18351
	andl	$-8, %eax
	xorl	%edx, %edx
.L18354:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	0(%r13,%rcx), %rsi
	movq	%rsi, (%r12,%rcx)
	cmpl	%eax, %edx
	jb	.L18354
	jmp	.L18351
	.p2align 4,,10
	.p2align 3
.L18356:

	movq	68(%rdi), %rdx
	leaq	8(%r13), %rdi
	andq	$-8, %rdi
	movq	%rdx, (%rcx)
	movl	%ebp, %edx
	movq	-8(%rax,%rdx), %rcx
	movq	%rcx, -8(%r13,%rdx)
	subq	%rdi, %r13
	subq	%r13, %rax
	movq	%rax, %rcx
	leal	0(%rbp,%r13), %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L18343
	andl	$-8, %eax
	xorl	%edx, %edx
.L18360:

	movl	%edx, %esi
	addl	$8, %edx
	movq	(%rcx,%rsi), %r8
	movq	%r8, (%rdi,%rsi)
	cmpl	%eax, %edx
	jb	.L18360
	jmp	.L18343
.L18404:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
	jmp	.L18331
.L18405:

	movl	(%rcx), %edx
	movl	%edx, 68(%rdi)
	movl	%ebp, %edx
	movl	-4(%rcx,%rdx), %ecx
	movl	%ecx, -4(%rax,%rdx)
	jmp	.L18351
.L18401:

	movl	68(%rdi), %edx
	movl	%ebp, %ebp
	movl	%edx, (%rcx)
	movl	-4(%rax,%rbp), %eax
	movl	%eax, -4(%rcx,%rbp)
	jmp	.L18343
.L18406:

	movl	%ebp, %edx
	movzwl	-2(%rcx,%rdx), %ecx
	movw	%cx, -2(%rax,%rdx)
	jmp	.L18351
	.cfi_endproc
.LFE1166:

	.size	aes_gcm_ctrl, .-aes_gcm_ctrl
# WAS .section	.text.aes_wrap_cipher,"ax",@progbits
.text
	.p2align 4
	.type	aes_wrap_cipher, @function
.Laes_wrap_cipher_local_target:
aes_wrap_cipher:
.LFB1172:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rdx, %rdx
	je	.L18416
	movq	16(%rdi), %r15
	movq	%rdi, %rbp
	movl	$3, %edi
	movq	%rsi, %r13
	movq	%rdx, %rbx
	movq	%rcx, %r14
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L18421
.L18409:

	movq	(%r12), %rax
	addq	$1, %rax
	jc	.L18412
	movq	%rax, (%r12)
.L18410:

	movl	28(%rbp), %eax
	movq	248(%r15), %rsi
	movq	%r14, %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r15, %rdi
	testl	%eax, %eax
	jne	.L18422
# WAS call	AES_unwrap_key@PLT
	call	.LAES_unwrap_key_local_target
	movl	%eax, %ebx
.L18415:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L18407:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18422:

	.cfi_restore_state
# WAS call	AES_wrap_key@PLT
	call	.LAES_wrap_key_local_target
	movl	%eax, %ebx
	jmp	.L18415
	.p2align 4,,10
	.p2align 3
.L18416:

	xorl	%ebx, %ebx
	jmp	.L18407
	.p2align 4,,10
	.p2align 3
.L18421:

	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L18410
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L18409
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18410
.L18412:

# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1172:

	.size	aes_wrap_cipher, .-aes_wrap_cipher
# WAS .section	.text.HMAC_Init_ex,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_Init_ex
	.type	HMAC_Init_ex, @function
.LHMAC_Init_ex_local_target:
HMAC_Init_ex:
.LFB2374:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$296, %rsp
	.cfi_def_cfa_offset 352
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
	movzbl	664(%rdi), %eax
	leal	-3(%rax), %edx
	cmpb	$1, %dl
	jbe	.L18541
	cmpb	$1, %al
	je	.L18425
	testq	%rcx, %rcx
	je	.L18440
	testb	%al, %al
	jne	.L18542
.L18441:

# WAS call	AWSLC_hmac_in_place_methods_once_bss_get@PLT
	call	AWSLC_hmac_in_place_methods_once_bss_get
# WAS leaq	AWSLC_hmac_in_place_methods_init(%rip), %rsi
	leaq	.LAWSLC_hmac_in_place_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	AWSLC_hmac_in_place_methods_storage_bss_get@PLT
	call	AWSLC_hmac_in_place_methods_storage_bss_get
	cmpq	(%rax), %r14
	je	.L18429
	cmpq	56(%rax), %r14
	je	.L18430
	cmpq	112(%rax), %r14
	je	.L18431
	cmpq	168(%rax), %r14
	je	.L18432
	cmpq	224(%rax), %r14
	je	.L18433
	cmpq	280(%rax), %r14
	je	.L18434
	cmpq	336(%rax), %r14
	je	.L18435
	cmpq	392(%rax), %r14
	je	.L18436
	movq	$0, 8(%rbp)
.L18540:

	xorl	%eax, %eax
.L18423:

	movq	280(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18543
	addq	$296, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18541:

	.cfi_restore_state
	movb	$1, 664(%rdi)
.L18425:

	testq	%r13, %r13
	je	.L18544
	testq	%r14, %r14
	je	.L18539
	cmpq	0(%rbp), %r14
	jne	.L18441
.L18539:

	movq	8(%rbp), %rbx
.L18439:

	movq	(%rbx), %rdi
	leaq	16(%rsp), %r15
# WAS call	EVP_MD_block_size@PLT
	call	.LEVP_MD_block_size_local_target
	movq	%rax, %r14
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	xorl	%eax, %eax
	movl	$16, %ecx
	movq	%r15, %rdi
	rep stosq
	leaq	144(%rsp), %rdi
	movl	$16, %ecx
	movq	%rdi, (%rsp)
	rep stosq
	cmpq	%r12, %r14
	jnb	.L18443
	leaq	16(%rbp), %rax
	movq	%rax, 8(%rsp)
	movq	%rax, %rdi
	call	*16(%rbx)
	testl	%eax, %eax
	je	.L18444
	movq	8(%rsp), %rdi
	movq	%r12, %rdx
	movq	%r13, %rsi
	call	*24(%rbx)
	testl	%eax, %eax
	je	.L18444
	movq	8(%rsp), %rsi
	movq	(%rsp), %rdi
	call	*32(%rbx)
	testl	%eax, %eax
	je	.L18444
.L18447:

	movq	%r14, %r12
	shrq	$3, %r12
	je	.L18453
	cmpq	$1, %r12
	je	.L18465
	movdqa	.LC355(%rip), %xmm0
	movq	%r14, %rdx
	movdqa	144(%rsp), %xmm1
	shrq	$4, %rdx
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 16(%rsp)
	cmpq	$1, %rdx
	je	.L18452
	movdqa	160(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 32(%rsp)
	cmpq	$2, %rdx
	je	.L18452
	movdqa	176(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 48(%rsp)
	cmpq	$3, %rdx
	je	.L18452
	movdqa	192(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 64(%rsp)
	cmpq	$4, %rdx
	je	.L18452
	movdqa	208(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 80(%rsp)
	cmpq	$5, %rdx
	je	.L18452
	movdqa	224(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 96(%rsp)
	cmpq	$6, %rdx
	je	.L18452
	movdqa	240(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 112(%rsp)
	cmpq	$7, %rdx
	je	.L18452
	pxor	256(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp)
.L18452:

	addq	%rdx, %rdx
	cmpq	%rdx, %r12
	je	.L18453
.L18451:

	movabsq	$3906369333256140342, %rax
	xorq	144(%rsp,%rdx,8), %rax
	movq	%rax, 16(%rsp,%rdx,8)
.L18453:

	leaq	232(%rbp), %r13
	movq	%r13, %rdi
	call	*16(%rbx)
	testl	%eax, %eax
	je	.L18444
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%r13, %rdi
	call	*24(%rbx)
	testl	%eax, %eax
	je	.L18444
	testq	%r12, %r12
	je	.L18459
	cmpq	$1, %r12
	je	.L18466
	movdqa	.LC356(%rip), %xmm0
	movq	%r14, %rdx
	movdqa	144(%rsp), %xmm1
	shrq	$4, %rdx
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 16(%rsp)
	cmpq	$1, %rdx
	je	.L18458
	movdqa	160(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 32(%rsp)
	cmpq	$2, %rdx
	je	.L18458
	movdqa	176(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 48(%rsp)
	cmpq	$3, %rdx
	je	.L18458
	movdqa	192(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 64(%rsp)
	cmpq	$4, %rdx
	je	.L18458
	movdqa	208(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 80(%rsp)
	cmpq	$5, %rdx
	je	.L18458
	movdqa	224(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 96(%rsp)
	cmpq	$6, %rdx
	je	.L18458
	movdqa	240(%rsp), %xmm1
	pxor	%xmm0, %xmm1
	movaps	%xmm1, 112(%rsp)
	cmpq	$7, %rdx
	je	.L18458
	pxor	256(%rsp), %xmm0
	movaps	%xmm0, 128(%rsp)
.L18458:

	addq	%rdx, %rdx
	cmpq	%r12, %rdx
	je	.L18459
.L18457:

	movabsq	$6655295901103053916, %rax
	xorq	144(%rsp,%rdx,8), %rax
	movq	%rax, 16(%rsp,%rdx,8)
.L18459:

	leaq	448(%rbp), %r12
	movq	%r12, %rdi
	call	*16(%rbx)
	testl	%eax, %eax
	je	.L18444
	movq	%r14, %rdx
	movq	%r15, %rsi
	movq	%r12, %rdi
	call	*24(%rbx)
	testl	%eax, %eax
	jne	.L18545
	.p2align 4,,10
	.p2align 3
.L18444:

	movq	%r15, %rdi
	movl	$128, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rsp), %rdi
	movl	$128, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	jmp	.L18540
	.p2align 4,,10
	.p2align 3
.L18443:

	testq	%r12, %r12
	je	.L18447
	movq	(%rsp), %rdi
	movl	$128, %ecx
	movq	%r12, %rdx
	movq	%r13, %rsi
# WAS call	__memcpy_chk@PLT
	call	.Lbcm_redirector___memcpy_chk
	jmp	.L18447
.L18542:

	cmpq	(%rdi), %rcx
	jne	.L18441
.L18440:

	cmpb	$2, %al
	jne	.L18540
	jmp	.L18539
	.p2align 4,,10
	.p2align 3
.L18544:

	testq	%r14, %r14
	je	.L18464
	cmpq	0(%rbp), %r14
	jne	.L18441
.L18464:

	movl	$1, %eax
	jmp	.L18423
	.p2align 4,,10
	.p2align 3
.L18545:

	movdqu	232(%rbp), %xmm2
	movl	$128, %esi
	movq	%r15, %rdi
	movups	%xmm2, 16(%rbp)
	movdqu	16(%r13), %xmm3
	movups	%xmm3, 32(%rbp)
	movdqu	32(%r13), %xmm4
	movups	%xmm4, 48(%rbp)
	movdqu	48(%r13), %xmm5
	movups	%xmm5, 64(%rbp)
	movdqu	64(%r13), %xmm6
	movups	%xmm6, 80(%rbp)
	movdqu	80(%r13), %xmm7
	movups	%xmm7, 96(%rbp)
	movdqu	96(%r13), %xmm2
	movups	%xmm2, 112(%rbp)
	movdqu	112(%r13), %xmm3
	movups	%xmm3, 128(%rbp)
	movdqu	128(%r13), %xmm4
	movups	%xmm4, 144(%rbp)
	movdqu	144(%r13), %xmm5
	movups	%xmm5, 160(%rbp)
	movdqu	160(%r13), %xmm6
	movups	%xmm6, 176(%rbp)
	movdqu	176(%r13), %xmm7
	movups	%xmm7, 192(%rbp)
	movdqu	192(%r13), %xmm2
	movups	%xmm2, 208(%rbp)
	movq	208(%r13), %rdx
	movb	$1, 664(%rbp)
	movq	%rdx, 224(%rbp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rsp), %rdi
	movl	$128, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	$1, %eax
	jmp	.L18423
.L18431:

	leaq	112(%rax), %rbx
	movq	%rbx, %rax
	.p2align 4,,10
	.p2align 3
.L18442:

	movq	%rax, 8(%rbp)
	movq	%r14, 0(%rbp)
	jmp	.L18439
.L18432:

	leaq	168(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18433:

	leaq	224(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18465:

	xorl	%edx, %edx
	jmp	.L18451
.L18434:

	leaq	280(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18435:

	leaq	336(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18436:

	leaq	392(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18466:

	xorl	%edx, %edx
	jmp	.L18457
.L18430:

	leaq	56(%rax), %rbx
	movq	%rbx, %rax
	jmp	.L18442
.L18543:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L18429:

	movq	%rax, %rbx
	jmp	.L18442
	.cfi_endproc
.LFE2374:

	.size	HMAC_Init_ex, .-HMAC_Init_ex
# WAS .section	.text.EVP_DigestInit_ex,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestInit_ex
	.type	EVP_DigestInit_ex, @function
.LEVP_DigestInit_ex_local_target:
EVP_DigestInit_ex:
.LFB1613:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	40(%rdi), %rax
	cmpq	%rsi, (%rdi)
	je	.L18547
	movq	%rsi, (%rdi)
	cmpq	$2048, %rax
	je	.L18568
.L18548:

	movq	24(%rsi), %rax
	movl	44(%rsi), %edi
	movq	%rax, 16(%rbx)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L18554
	movq	8(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, 8(%rbx)
.L18547:

	cmpq	$2048, 40(%rbx)
	je	.L18552
.L18553:

	movq	(%rbx), %rax
	movq	%rbx, %rdi
	call	*16(%rax)
	movl	$1, %eax
.L18546:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18568:

	.cfi_restore_state
	movq	24(%rdi), %rax
	testq	%rax, %rax
	je	.L18548
.L18549:

	movq	40(%rax), %rdi
	testq	%rdi, %rdi
	je	.L18554
	movq	16(%rax), %rdx
	testq	%rdx, %rdx
	je	.L18554
	movq	8(%rdx), %rdx
	testq	%rdx, %rdx
	je	.L18554
	movq	8(%rdx), %r9
	movq	(%rdi), %rcx
	addq	$8, %rdi
	movq	(%rdx), %rsi
	movq	8(%rax), %r8
	movq	%r9, %rdx
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L18546
	.p2align 4,,10
	.p2align 3
.L18554:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18552:

	.cfi_restore_state
	movq	24(%rbx), %rax
	testq	%rax, %rax
	je	.L18553
	jmp	.L18549
	.cfi_endproc
.LFE1613:

	.size	EVP_DigestInit_ex, .-EVP_DigestInit_ex
# WAS .section	.text.EVP_DigestInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestInit
	.type	EVP_DigestInit, @function
.LEVP_DigestInit_local_target:
EVP_DigestInit:
.LFB1614:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%edx, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_DigestInit_ex@PLT
	jmp	.LEVP_DigestInit_ex_local_target
	.cfi_endproc
.LFE1614:

	.size	EVP_DigestInit, .-EVP_DigestInit
# WAS .section	.text.EVP_Digest,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_Digest
	.type	EVP_Digest, @function
.LEVP_Digest_local_target:
EVP_Digest:
.LFB1618:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movq	%r8, %rdi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%rdx, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_flags@PLT
	call	.LEVP_MD_flags_local_target
	testb	$4, %al
	je	.L18572
	testq	%r12, %r12
	je	.L18589
.L18572:

	leaq	16(%rsp), %r13
	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	jne	.L18574
.L18573:

	xorl	%eax, %eax
.L18571:

	movq	72(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18590
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18574:

	.cfi_restore_state
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r13, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18573
	movq	%rbx, %rdi
# WAS call	EVP_MD_flags@PLT
	call	.LEVP_MD_flags_local_target
	testb	$4, %al
	je	.L18577
	movl	(%r12), %edx
	movq	8(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_DigestFinalXOF@PLT
	call	.LEVP_DigestFinalXOF_local_target
	andl	$1, %eax
	jmp	.L18571
	.p2align 4,,10
	.p2align 3
.L18577:

	movq	8(%rsp), %rsi
	movq	%r12, %rdx
	movq	%r13, %rdi
# WAS call	EVP_DigestFinal@PLT
	call	.LEVP_DigestFinal_local_target
	andl	$1, %eax
	jmp	.L18571
	.p2align 4,,10
	.p2align 3
.L18589:

	movl	$310, %r8d
	leaq	.LC257(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$29, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18573
.L18590:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1618:

	.size	EVP_Digest, .-EVP_Digest
# WAS .section	.text.ecdsa_digestsign_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ecdsa_digestsign_no_self_test
	.hidden	ecdsa_digestsign_no_self_test
	.type	ecdsa_digestsign_no_self_test, @function
.Lecdsa_digestsign_no_self_test_local_target:
ecdsa_digestsign_no_self_test:
.LFB1751:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	xorl	%r9d, %r9d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r8, %rbp
	movq	%rax, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$200, %rsp
	.cfi_def_cfa_offset 256
	movq	%fs:40, %rdx
	movq	%rdx, 184(%rsp)
	xorl	%edx, %edx
	leaq	112(%rsp), %r13
	leaq	24(%rsp), %rcx
	movl	$64, 24(%rsp)
	movq	%r13, %rdx
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	je	.L18591
	movq	40(%rbx), %rax
	movl	24(%rsp), %r15d
	testq	%rax, %rax
	je	.L18593
	cmpq	$0, 16(%rax)
	jne	.L18611
.L18593:

	movq	%rbx, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L18595
	movq	16(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L18595
	leaq	32(%rsp), %r10
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movq	%rax, %rdi
	movq	%r10, %rsi
	movq	%r10, 8(%rsp)
# WAS call	ec_scalar_from_bytes@PLT
	call	.Lec_scalar_from_bytes_local_target
	testl	%eax, %eax
	je	.L18594
	movq	8(%rsp), %rcx
	leaq	24(%rbx), %rdx
	movl	%r15d, %r9d
	movq	%r13, %r8
	leaq	28(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	ecdsa_sign_impl
	call	.Lecdsa_sign_impl_local_target
.L18591:

	movq	184(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18612
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18611:

	.cfi_restore_state
	movl	$277, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L18594:

	xorl	%eax, %eax
	jmp	.L18591
	.p2align 4,,10
	.p2align 3
.L18595:

	movl	$283, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L18591
.L18612:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1751:

	.size	ecdsa_digestsign_no_self_test, .-ecdsa_digestsign_no_self_test
# WAS .section	.text.ecdsa_digestverify_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ecdsa_digestverify_no_self_test
	.hidden	ecdsa_digestverify_no_self_test
	.type	ecdsa_digestverify_no_self_test, @function
.Lecdsa_digestverify_no_self_test_local_target:
ecdsa_digestverify_no_self_test:
.LFB1752:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %rax
	xorl	%r9d, %r9d
	movq	%rsi, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rsi
	movq	%r8, %rbp
	movq	%rax, %r8
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rcx, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rdx
	movq	%rdx, 88(%rsp)
	xorl	%edx, %edx
	leaq	16(%rsp), %r12
	leaq	12(%rsp), %rcx
	movl	$64, 12(%rsp)
	movq	%r12, %rdx
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18613
	movl	12(%rsp), %esi
	movq	%rbp, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rdi
# WAS call	ecdsa_do_verify_no_self_test
	call	.Lecdsa_do_verify_no_self_test_local_target
.L18613:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18620
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L18620:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1752:

	.size	ecdsa_digestverify_no_self_test, .-ecdsa_digestverify_no_self_test
# WAS .section	.text.rsa_digestsign_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_digestsign_no_self_test
	.hidden	rsa_digestsign_no_self_test
	.type	rsa_digestsign_no_self_test, @function
.Lrsa_digestsign_no_self_test_local_target:
rsa_digestsign_no_self_test:
.LFB2722:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	xorl	%r9d, %r9d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movq	%rbx, %r8
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r14
	leaq	12(%rsp), %rcx
	movl	$64, 12(%rsp)
	movq	%r14, %rdx
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18621
	movl	12(%rsp), %r15d
	movq	%rbx, %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	%r13, %r9
	movq	%r12, %r8
	movq	%rbp, %rcx
	movl	%eax, %edi
	movq	%r15, %rdx
	movq	%r14, %rsi
# WAS call	rsa_sign_no_self_test
	call	.Lrsa_sign_no_self_test_local_target
.L18621:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18628
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L18628:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2722:

	.size	rsa_digestsign_no_self_test, .-rsa_digestsign_no_self_test
# WAS .section	.text.rsa_digestverify_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	rsa_digestverify_no_self_test
	.hidden	rsa_digestverify_no_self_test
	.type	rsa_digestverify_no_self_test, @function
.Lrsa_digestverify_no_self_test_local_target:
rsa_digestverify_no_self_test:
.LFB2724:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r9, %r12
	xorl	%r9d, %r9d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rbp, %r8
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	leaq	48(%rsp), %r15
	leaq	16(%rsp), %rcx
	movl	$64, 16(%rsp)
	movq	%r15, %rdx
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L18663
.L18629:

	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18664
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18663:

	.cfi_restore_state
	movq	%rbp, %rdi
	movl	16(%rsp), %ebx
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpq	$0, 8(%r12)
	movl	%eax, %ebp
	je	.L18631
	cmpq	$0, 16(%r12)
	je	.L18631
	movq	%r12, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	$0, 20(%rsp)
	movq	$0, 24(%rsp)
	movq	$0, 32(%rsp)
	cmpl	$114, %ebp
	jne	.L18634
	cmpq	$36, %rbx
	je	.L18634
	movl	$947, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L18633:

	xorl	%ebx, %ebx
	jmp	.L18629
	.p2align 4,,10
	.p2align 3
.L18634:

	movl	%eax, %ecx
	movq	%rcx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L18633
	leaq	40(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 200
	movq	%rax, %rdx
	movq	%r14, %r9
	pushq	$1
	.cfi_def_cfa_offset 208
	movq	24(%rsp), %rcx
	movq	%r13, %r8
	movq	%r12, %rdi
	movq	%rax, 24(%rsp)
# WAS call	rsa_verify_raw_no_self_test
	call	.Lrsa_verify_raw_no_self_test_local_target
	popq	%rdx
	.cfi_def_cfa_offset 200
	popq	%rcx
	.cfi_def_cfa_offset 192
	testl	%eax, %eax
	movq	8(%rsp), %r10
	jne	.L18665
.L18637:

	xorl	%ebx, %ebx
.L18640:

	movq	%r10, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	20(%rsp), %eax
	testl	%eax, %eax
	je	.L18629
	movq	24(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L18629
	.p2align 4,,10
	.p2align 3
.L18665:

	leaq	20(%rsp), %rdx
	leaq	32(%rsp), %rsi
	movq	%rbx, %r9
	movq	%r15, %r8
	leaq	24(%rsp), %rdi
	movl	%ebp, %ecx
# WAS call	RSA_add_pkcs1_prefix@PLT
	call	.LRSA_add_pkcs1_prefix_local_target
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L18637
	movq	40(%rsp), %rdx
	cmpq	32(%rsp), %rdx
	jne	.L18666
	movl	$1, %ebx
	testq	%rdx, %rdx
	je	.L18640
	movq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%r10, 8(%rsp)
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L18640
	movl	$972, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$248, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L18637
	.p2align 4,,10
	.p2align 3
.L18631:

	movl	$935, %r8d
	movl	$144, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC120(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18629
	.p2align 4,,10
	.p2align 3
.L18666:

	movl	$966, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r10
	jmp	.L18637
.L18664:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2724:

	.size	rsa_digestverify_no_self_test, .-rsa_digestverify_no_self_test
# WAS .section	.rodata.boringssl_self_test_rsa.str1.1,"aMS",@progbits,1
.text
.LC357:

	.string	"RSA key construction failed\n"
.LC358:

	.string	"RSA-sign KAT"
.LC359:

	.string	"RSA signing test failed.\n"
.LC360:

	.string	"RSA-verify KAT failed.\n"
# WAS .section	.text.boringssl_self_test_rsa,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_rsa, @function
.Lboringssl_self_test_rsa_local_target:
boringssl_self_test_rsa:
.LFB2779:

	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$352, %rsp
	.cfi_def_cfa_offset 400
	movq	%fs:40, %rax
	movq	%rax, 344(%rsp)
	xorl	%eax, %eax
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$256, %esi
# WAS leaq	kN.62(%rip), %rdi
	leaq	.LkN.62_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 8(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$3, %esi
# WAS leaq	kE.61(%rip), %rdi
	leaq	.LkE.61_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 16(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$256, %esi
# WAS leaq	kD.60(%rip), %rdi
	leaq	.LkD.60_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 24(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$128, %esi
# WAS leaq	kP.59(%rip), %rdi
	leaq	.LkP.59_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 32(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$128, %esi
# WAS leaq	kQ.58(%rip), %rdi
	leaq	.LkQ.58_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 40(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$128, %esi
# WAS leaq	kDModPMinusOne.57(%rip), %rdi
	leaq	.LkDModPMinusOne.57_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 48(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$128, %esi
# WAS leaq	kDModQMinusOne.56(%rip), %rdi
	leaq	.LkDModQMinusOne.56_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 56(%rbx)
	testq	%rax, %rax
	je	.L18668
	xorl	%edx, %edx
	movl	$128, %esi
# WAS leaq	kQInverseModP.55(%rip), %rdi
	leaq	.LkQInverseModP.55_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, 64(%rbx)
	testq	%rax, %rax
	je	.L18668
	orl	$8, 92(%rbx)
	leaq	12(%rsp), %r13
	leaq	16(%rsp), %r12
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	xorl	%r9d, %r9d
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rax, %r8
	movl	$32, %esi
	movq	%rax, %rbp
	movl	$64, 12(%rsp)
# WAS leaq	kRSASignPlaintext.66(%rip), %rdi
	leaq	.LkRSASignPlaintext.66_local_target(%rip), %rdi
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18672
	movq	%rbp, %rdi
	movl	12(%rsp), %r14d
	leaq	80(%rsp), %rbp
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	%rbx, %r9
	leaq	8(%rsp), %r8
	movq	%rbp, %rcx
	movl	%eax, %edi
	movq	%r14, %rdx
	movq	%r12, %rsi
# WAS call	rsa_sign_no_self_test
	call	.Lrsa_sign_no_self_test_local_target
	testl	%eax, %eax
	je	.L18672
# WAS leaq	kRSASignSignature.65(%rip), %r14
	leaq	.LkRSASignSignature.65_local_target(%rip), %r14
	movl	$256, %edx
	movq	%rbp, %rdi
	movq	%r14, %rsi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	jne	.L18718
.L18674:

# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	xorl	%r9d, %r9d
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rax, %r8
	movl	$32, %esi
	movq	%rax, %rbp
	movl	$64, 12(%rsp)
# WAS leaq	kRSAVerifyPlaintext.64(%rip), %rdi
	leaq	.LkRSAVerifyPlaintext.64_local_target(%rip), %rdi
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	jne	.L18719
.L18677:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$23, %edx
	movl	$1, %esi
	xorl	%ebp, %ebp
	leaq	.LC360(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L18671
	.p2align 4,,10
	.p2align 3
.L18668:

	movq	%rbx, %rdi
	xorl	%ebp, %ebp
	xorl	%ebx, %ebx
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
	movl	$28, %edx
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$1, %esi
	leaq	.LC357(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
.L18671:

	movq	%rbx, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
	movq	344(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18720
	addq	$352, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18718:

	.cfi_restore_state
	leaq	.LC358(%rip), %rcx
	movl	$256, %edx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	jne	.L18674
	.p2align 4,,10
	.p2align 3
.L18672:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$25, %edx
	movl	$1, %esi
	xorl	%ebp, %ebp
	leaq	.LC359(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L18671
	.p2align 4,,10
	.p2align 3
.L18719:

	movq	%rbp, %rdi
	movl	12(%rsp), %r13d
	movl	$1, %ebp
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	%rbx, %r9
	movl	$256, %r8d
	movq	%r12, %rsi
	movl	%eax, %edi
# WAS leaq	kRSAVerifySignature.63(%rip), %rcx
	leaq	.LkRSAVerifySignature.63_local_target(%rip), %rcx
	movq	%r13, %rdx
# WAS call	rsa_verify_no_self_test
	call	.Lrsa_verify_no_self_test_local_target
	testl	%eax, %eax
	jne	.L18671
	jmp	.L18677
.L18720:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2779:

	.size	boringssl_self_test_rsa, .-boringssl_self_test_rsa
# WAS .section	.text.unlikely.run_self_test_rsa,"ax",@progbits
.text
.LCOLDB361:

# WAS .section	.text.run_self_test_rsa,"ax",@progbits
.text
.LHOTB361:

	.p2align 4
	.type	run_self_test_rsa, @function
.Lrun_self_test_rsa_local_target:
run_self_test_rsa:
.LFB2784:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_rsa
	call	.Lboringssl_self_test_rsa_local_target
	testl	%eax, %eax
	je	.L18723
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.run_self_test_rsa
.text
	.cfi_startproc
	.type	run_self_test_rsa.cold, @function
.Lrun_self_test_rsa.cold_local_target:
run_self_test_rsa.cold:
.LFSB2784:

.L18723:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2784:

# WAS .section	.text.run_self_test_rsa
.text
	.size	run_self_test_rsa, .-run_self_test_rsa
# WAS .section	.text.unlikely.run_self_test_rsa
.text
	.size	run_self_test_rsa.cold, .-run_self_test_rsa.cold
.LCOLDE361:

# WAS .section	.text.run_self_test_rsa
.text
.LHOTE361:

# WAS .section	.rodata.boringssl_self_test_ecc.str1.1,"aMS",@progbits,1
.text
.LC362:

	.string	"ECDSA KeyGen failed\n"
.LC363:

	.string	"ECDSA-sign signature"
.LC364:

	.string	"ECDSA-sign KAT failed.\n"
.LC365:

	.string	"ECDSA-verify KAT failed.\n"
.LC366:

	.string	"Z-computation KAT failed.\n"
.LC367:

	.string	"Z Computation Result"
# WAS .section	.text.boringssl_self_test_ecc,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_ecc, @function
.Lboringssl_self_test_ecc_local_target:
boringssl_self_test_ecc:
.LFB2780:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$216, %rsp
	.cfi_def_cfa_offset 272
	movq	%fs:40, %rax
	movq	%rax, 200(%rsp)
	xorl	%eax, %eax
# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	xorl	%edx, %edx
	movl	$32, %esi
# WAS leaq	kQx.47(%rip), %rdi
	leaq	.LkQx.47_local_target(%rip), %rdi
	movq	%rax, %rbx
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	xorl	%edx, %edx
	movl	$32, %esi
# WAS leaq	kQy.46(%rip), %rdi
	leaq	.LkQy.46_local_target(%rip), %rdi
	movq	%rax, %rbp
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	xorl	%edx, %edx
	movl	$32, %esi
# WAS leaq	kD.45(%rip), %rdi
	leaq	.LkD.45_local_target(%rip), %rdi
	movq	%rax, %r12
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	movq	%rax, %r13
	testq	%rbx, %rbx
	je	.L18726
	testq	%rbp, %rbp
	je	.L18726
	testq	%r12, %r12
	je	.L18726
	testq	%rax, %rax
	je	.L18726
# WAS call	EC_group_p256@PLT
	call	.LEC_group_p256_local_target
	movq	%rbx, %rdi
	movq	%rax, %rsi
# WAS call	EC_KEY_set_group@PLT
	call	.LEC_KEY_set_group_local_target
	testl	%eax, %eax
	je	.L18726
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EC_KEY_set_public_key_affine_coordinates@PLT
	call	.LEC_KEY_set_public_key_affine_coordinates_local_target
	testl	%eax, %eax
	je	.L18726
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	EC_KEY_set_private_key@PLT
	call	.LEC_KEY_set_private_key_local_target
	testl	%eax, %eax
	je	.L18726
	movq	%rbp, %rdi
	leaq	128(%rsp), %r14
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
	leaq	28(%rsp), %r12
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 48(%rsp)
	movaps	%xmm0, 32(%rsp)
	movb	$42, 63(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	xorl	%r9d, %r9d
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rax, %r8
	movl	$32, %esi
# WAS leaq	kECDSASignPlaintext.54(%rip), %rdi
	leaq	.LkECDSASignPlaintext.54_local_target(%rip), %rdi
	movl	$64, 28(%rsp)
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18730
	movl	28(%rsp), %esi
	leaq	32(%rsp), %rcx
	movq	%rbx, %rdx
	movq	%r14, %rdi
	movl	$32, %r8d
# WAS call	ecdsa_sign_with_nonce_for_known_answer_test
	call	.Lecdsa_sign_with_nonce_for_known_answer_test_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L18730
	leaq	64(%rsp), %r13
	movq	(%rax), %rdx
	movl	$32, %esi
	movq	%r13, %rdi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L18732
	movq	8(%rbp), %rdx
	leaq	96(%rsp), %rdi
	movl	$32, %esi
# WAS call	BN_bn2bin_padded@PLT
	call	.LBN_bn2bin_padded_local_target
	testl	%eax, %eax
	je	.L18732
	movabsq	$3197036151710253159, %rax
	xorq	64(%rsp), %rax
	movabsq	$8408637802914275696, %rdx
	xorq	72(%rsp), %rdx
	orq	%rdx, %rax
	je	.L18790
.L18734:

	leaq	.LC363(%rip), %rcx
	movl	$64, %edx
	movq	%r13, %rsi
# WAS leaq	kECDSASignSig.53(%rip), %rdi
	leaq	.LkECDSASignSig.53_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	jne	.L18736
.L18732:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$23, %edx
	movl	$1, %esi
	leaq	.LC364(%rip), %rdi
	movq	(%rax), %rcx
.L18789:

# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	xorl	%r15d, %r15d
	xorl	%r13d, %r13d
	xorl	%r12d, %r12d
	xorl	%r14d, %r14d
	jmp	.L18729
	.p2align 4,,10
	.p2align 3
.L18726:

	movq	%rbx, %rdi
	xorl	%r15d, %r15d
	xorl	%ebx, %ebx
	xorl	%r14d, %r14d
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
	movq	%rbp, %rdi
	xorl	%ebp, %ebp
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r12, %rdi
	xorl	%r12d, %r12d
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
	xorl	%r13d, %r13d
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movl	$20, %edx
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$1, %esi
	leaq	.LC362(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
.L18729:

	movq	%rbx, %rdi
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
	movq	%r12, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	%r13, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	%r15, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbp, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
	movq	200(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18791
	addq	$216, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r14d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18790:

	.cfi_restore_state
	movabsq	$4575378527841136094, %rax
	xorq	80(%rsp), %rax
	movabsq	$933836713549379240, %rdx
	xorq	88(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L18734
	movabsq	$-4239391714561129926, %rax
	xorq	96(%rsp), %rax
	movabsq	$-4025593907881703514, %rdx
	xorq	104(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L18734
	movabsq	$-2096084461180298942, %rax
	xorq	112(%rsp), %rax
	movabsq	$-9161209055317403809, %rdx
	xorq	120(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L18734
	.p2align 4,,10
	.p2align 3
.L18736:

	movq	%rbp, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
# WAS call	ECDSA_SIG_new@PLT
	call	.LECDSA_SIG_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L18739
	movq	(%rax), %rdx
	movl	$32, %esi
# WAS leaq	kECDSAVerifySig.52(%rip), %rdi
	leaq	.LkECDSAVerifySig.52_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L18739
	movq	8(%rbp), %rdx
	movl	$32, %esi
# WAS leaq	32+kECDSAVerifySig.52(%rip), %rdi
	leaq	.LkECDSAVerifySig.52_local_target+32(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L18739
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	xorl	%r9d, %r9d
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rax, %r8
	movl	$32, %esi
# WAS leaq	kECDSAVerifyPlaintext.51(%rip), %rdi
	leaq	.LkECDSAVerifyPlaintext.51_local_target(%rip), %rdi
	movl	$64, 28(%rsp)
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18738
	movl	28(%rsp), %esi
	movq	%rbx, %rcx
	movq	%rbp, %rdx
	movq	%r14, %rdi
# WAS call	ecdsa_do_verify_no_self_test
	call	.Lecdsa_do_verify_no_self_test_local_target
	testl	%eax, %eax
	je	.L18738
# WAS call	EC_group_p256@PLT
	call	.LEC_group_p256_local_target
	movq	%rax, %r15
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%r15, %rdi
	movq	%rax, %r12
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%rax, %r13
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	testq	%r12, %r12
	movq	%rax, %r15
	sete	%al
	testq	%r13, %r13
	sete	%dl
	orb	%dl, %al
	jne	.L18745
	testq	%r15, %r15
	je	.L18745
	movq	8(%rsp), %rdi
	xorl	%r8d, %r8d
	movl	$65, %ecx
	movq	%r12, %rsi
# WAS leaq	kP256Point.50(%rip), %rdx
	leaq	.LkP256Point.50_local_target(%rip), %rdx
# WAS call	EC_POINT_oct2point@PLT
	call	.LEC_POINT_oct2point_local_target
	testl	%eax, %eax
	je	.L18745
	movq	%r15, %rdx
	movl	$32, %esi
# WAS leaq	kP256Scalar.49(%rip), %rdi
	leaq	.LkP256Scalar.49_local_target(%rip), %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L18745
	movq	8(%rsp), %rdi
	xorl	%r9d, %r9d
	xorl	%edx, %edx
	movq	%r15, %r8
	movq	%r12, %rcx
	movq	%r13, %rsi
# WAS call	ec_point_mul_no_self_test
	call	.Lec_point_mul_no_self_test_local_target
	testl	%eax, %eax
	je	.L18745
	movq	8(%rsp), %rdi
	xorl	%r9d, %r9d
	movq	%r14, %rcx
	movl	$4, %edx
	movl	$65, %r8d
	movq	%r13, %rsi
# WAS call	EC_POINT_point2oct@PLT
	call	.LEC_POINT_point2oct_local_target
	testq	%rax, %rax
	je	.L18745
	leaq	.LC367(%rip), %rcx
	movl	$65, %edx
	movq	%r14, %rsi
# WAS leaq	kP256PointResult.48(%rip), %rdi
	leaq	.LkP256PointResult.48_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L18745
	movl	$1, %r14d
	jmp	.L18729
	.p2align 4,,10
	.p2align 3
.L18745:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$26, %edx
	movl	$1, %esi
	xorl	%r14d, %r14d
	leaq	.LC366(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L18729
	.p2align 4,,10
	.p2align 3
.L18739:

	movq	%rbp, %rdi
	xorl	%ebp, %ebp
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
.L18738:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$25, %edx
	movl	$1, %esi
	leaq	.LC365(%rip), %rdi
	movq	(%rax), %rcx
	jmp	.L18789
	.p2align 4,,10
	.p2align 3
.L18730:

	xorl	%ebp, %ebp
	jmp	.L18732
.L18791:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2780:

	.size	boringssl_self_test_ecc, .-boringssl_self_test_ecc
# WAS .section	.text.unlikely.run_self_test_ecc,"ax",@progbits
.text
.LCOLDB368:

# WAS .section	.text.run_self_test_ecc,"ax",@progbits
.text
.LHOTB368:

	.p2align 4
	.type	run_self_test_ecc, @function
.Lrun_self_test_ecc_local_target:
run_self_test_ecc:
.LFB2786:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_ecc
	call	.Lboringssl_self_test_ecc_local_target
	testl	%eax, %eax
	je	.L18794
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.run_self_test_ecc
.text
	.cfi_startproc
	.type	run_self_test_ecc.cold, @function
.Lrun_self_test_ecc.cold_local_target:
run_self_test_ecc.cold:
.LFSB2786:

.L18794:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2786:

# WAS .section	.text.run_self_test_ecc
.text
	.size	run_self_test_ecc, .-run_self_test_ecc
# WAS .section	.text.unlikely.run_self_test_ecc
.text
	.size	run_self_test_ecc.cold, .-run_self_test_ecc.cold
.LCOLDE368:

# WAS .section	.text.run_self_test_ecc
.text
.LHOTE368:

# WAS .section	.text.EVP_DigestSignInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestSignInit
	.type	EVP_DigestSignInit, @function
.LEVP_DigestSignInit_local_target:
EVP_DigestSignInit:
.LFB2114:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	cmpq	$0, 24(%rdi)
	movq	%rdi, %rbx
	je	.L18797
.L18800:

# WAS call	EVP_MD_pctx_ops_once_bss_get@PLT
	call	EVP_MD_pctx_ops_once_bss_get
# WAS leaq	EVP_MD_pctx_ops_init(%rip), %rsi
	leaq	.LEVP_MD_pctx_ops_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_MD_pctx_ops_storage_bss_get@PLT
	call	EVP_MD_pctx_ops_storage_bss_get
	cmpl	$855, 4(%rbp)
	movq	%rax, 32(%rbx)
	jne	.L18828
	movq	24(%rbx), %rax
	movl	$8, 32(%rax)
# WAS leaq	hmac_update(%rip), %rax
	leaq	.Lhmac_update_local_target(%rip), %rax
	orq	$2048, 40(%rbx)
	movq	%rax, 16(%rbx)
.L18802:

	testq	%r12, %r12
	je	.L18804
	movq	24(%rbx), %rdi
	movq	%r12, %rsi
# WAS call	EVP_PKEY_CTX_set_signature_md@PLT
	call	.LEVP_PKEY_CTX_set_signature_md_local_target
	testl	%eax, %eax
	je	.L18801
	movq	24(%rbx), %rax
	movq	(%rax), %rax
	cmpq	$0, 48(%rax)
	je	.L18829
.L18805:

	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	je	.L18801
.L18811:

	testq	%r13, %r13
	je	.L18809
	movq	24(%rbx), %rax
	movq	%rax, 0(%r13)
.L18809:

	movl	$1, %eax
.L18796:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18828:

	.cfi_restore_state
	movq	24(%rbx), %rdi
# WAS call	EVP_PKEY_sign_init@PLT
	call	.LEVP_PKEY_sign_init_local_target
	testl	%eax, %eax
	jne	.L18802
.L18801:

	xorl	%eax, %eax
	jmp	.L18796
	.p2align 4,,10
	.p2align 3
.L18797:

	movq	%rcx, %rsi
	movq	%r8, %rdi
# WAS call	EVP_PKEY_CTX_new@PLT
	call	.LEVP_PKEY_CTX_new_local_target
	movq	%rax, 24(%rbx)
	testq	%rax, %rax
	jne	.L18800
	xorl	%eax, %eax
	jmp	.L18796
	.p2align 4,,10
	.p2align 3
.L18804:

	movq	24(%rbx), %rax
	movq	(%rax), %rax
	cmpq	$0, 48(%rax)
	je	.L18807
.L18810:

	movl	$144, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L18796
	.p2align 4,,10
	.p2align 3
.L18807:

	cmpq	$2048, 40(%rbx)
	jne	.L18811
	jmp	.L18810
	.p2align 4,,10
	.p2align 3
.L18829:

	cmpq	$2048, 40(%rbx)
	jne	.L18811
	jmp	.L18805
	.cfi_endproc
.LFE2114:

	.size	EVP_DigestSignInit, .-EVP_DigestSignInit
# WAS .section	.text.sskdf_variant_digest_compute,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_digest_compute, @function
.Lsskdf_variant_digest_compute_local_target:
sskdf_variant_digest_compute:
.LFB2390:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rdx
	movq	%rdx, 24(%rsp)
	xorl	%edx, %edx
	movq	96(%rsp), %rcx
	testq	%rdi, %rdi
	je	.L18833
	movq	(%rdi), %r12
	movq	%rcx, 8(%rsp)
	testq	%r12, %r12
	je	.L18833
	testq	%rsi, %rsi
	movq	%rsi, %rbp
	sete	%al
	testq	%rbx, %rbx
	sete	%dl
	orb	%dl, %al
	jne	.L18833
	movq	%r8, %r15
	testq	%r8, %r8
	je	.L18833
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L18833
	cmpq	$0, (%r12)
	je	.L18833
	movq	%r9, %r14
# WAS call	EVP_MD_CTX_reset@PLT
	call	.LEVP_MD_CTX_reset_local_target
	testl	%eax, %eax
	jne	.L18860
	.p2align 4,,10
	.p2align 3
.L18833:

	xorl	%eax, %eax
.L18830:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L18861
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18860:

	.cfi_restore_state
	movq	(%r12), %rsi
	movq	8(%r12), %rdi
	xorl	%edx, %edx
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	je	.L18833
	movq	8(%r12), %rdi
	movl	$4, %edx
	movq	%rbx, %rsi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18833
	movq	8(%r12), %rdi
	movq	%r14, %rdx
	movq	%r15, %rsi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18833
	movq	8(%r12), %rdi
	movq	104(%rsp), %rdx
	movq	8(%rsp), %rsi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18833
	movq	8(%r12), %rdi
	leaq	20(%rsp), %rdx
	movq	%rbp, %rsi
# WAS call	EVP_DigestFinal@PLT
	call	.LEVP_DigestFinal_local_target
	testl	%eax, %eax
	je	.L18833
	movl	20(%rsp), %eax
	cmpq	%r13, %rax
	sete	%al
	movzbl	%al, %eax
	jmp	.L18830
.L18861:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2390:

	.size	sskdf_variant_digest_compute, .-sskdf_variant_digest_compute
# WAS .section	.text.EVP_DigestVerifyInit,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestVerifyInit
	.type	EVP_DigestVerifyInit, @function
.LEVP_DigestVerifyInit_local_target:
EVP_DigestVerifyInit:
.LFB2115:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	cmpq	$0, 24(%rdi)
	je	.L18863
.L18866:

# WAS call	EVP_MD_pctx_ops_once_bss_get@PLT
	call	EVP_MD_pctx_ops_once_bss_get
# WAS leaq	EVP_MD_pctx_ops_init(%rip), %rsi
	leaq	.LEVP_MD_pctx_ops_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	EVP_MD_pctx_ops_storage_bss_get@PLT
	call	EVP_MD_pctx_ops_storage_bss_get
	movq	24(%rbx), %rdi
	movq	%rax, 32(%rbx)
# WAS call	EVP_PKEY_verify_init@PLT
	call	.LEVP_PKEY_verify_init_local_target
	testl	%eax, %eax
	je	.L18867
	movq	24(%rbx), %rdi
	testq	%rbp, %rbp
	je	.L18868
	movq	%rbp, %rsi
# WAS call	EVP_PKEY_CTX_set_signature_md@PLT
	call	.LEVP_PKEY_CTX_set_signature_md_local_target
	testl	%eax, %eax
	je	.L18867
	movq	24(%rbx), %rax
	movq	(%rax), %rax
	cmpq	$0, 72(%rax)
	jne	.L18869
	cmpq	$2048, 40(%rbx)
	jne	.L18875
.L18869:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	jne	.L18875
.L18867:

	xorl	%eax, %eax
	jmp	.L18862
	.p2align 4,,10
	.p2align 3
.L18868:

	movq	(%rdi), %rax
	cmpq	$0, 72(%rax)
	jne	.L18874
	cmpq	$2048, 40(%rbx)
	je	.L18874
.L18875:

	testq	%r13, %r13
	je	.L18873
	movq	24(%rbx), %rax
	movq	%rax, 0(%r13)
.L18873:

	movl	$1, %eax
.L18862:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18863:

	.cfi_restore_state
	movq	%rcx, %rsi
	movq	%r8, %rdi
# WAS call	EVP_PKEY_CTX_new@PLT
	call	.LEVP_PKEY_CTX_new_local_target
	movq	%rax, 24(%rbx)
	testq	%rax, %rax
	jne	.L18866
	xorl	%eax, %eax
	jmp	.L18862
	.p2align 4,,10
	.p2align 3
.L18874:

	movl	$144, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$119, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L18862
	.cfi_endproc
.LFE2115:

	.size	EVP_DigestVerifyInit, .-EVP_DigestVerifyInit
# WAS .section	.text.HMAC_Init,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_Init
	.type	HMAC_Init, @function
.LHMAC_Init_local_target:
HMAC_Init:
.LFB2384:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	%edx, %ebx
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	testq	%rsi, %rsi
	je	.L18893
	testq	%rcx, %rcx
	jne	.L18901
.L18893:

	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	movslq	%ebx, %rdx
	xorl	%r8d, %r8d
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	HMAC_Init_ex@PLT
	jmp	.LHMAC_Init_ex_local_target
	.p2align 4,,10
	.p2align 3
.L18901:

	.cfi_restore_state
	movq	%rcx, 24(%rsp)
	movq	%rsi, 16(%rsp)
	movq	%rdi, 8(%rsp)
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	24(%rsp), %rcx
	movslq	%ebx, %rdx
	xorl	%r8d, %r8d
	movq	16(%rsp), %rsi
	movq	8(%rsp), %rdi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	HMAC_Init_ex@PLT
	jmp	.LHMAC_Init_ex_local_target
	.cfi_endproc
.LFE2384:

	.size	HMAC_Init, .-HMAC_Init
# WAS .section	.text.DH_compute_key_hashed,"ax",@progbits
.text
	.p2align 4
	.globl	DH_compute_key_hashed
	.type	DH_compute_key_hashed, @function
.LDH_compute_key_hashed_local_target:
DH_compute_key_hashed:
.LFB1475:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	movq	%r9, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%rsi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movq	$-1, (%rdx)
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rax, %r14
	subq	$1, %rax
	cmpq	%r15, %rax
	jnb	.L18908
	movq	%r14, %rax
	shrq	$32, %rax
	je	.L18913
.L18908:

	xorl	%ebx, %ebx
.L18902:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18914
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18913:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%r12, %rdi
# WAS call	DH_size@PLT
	call	.LDH_size_local_target
	movl	%eax, 20(%rsp)
	cltq
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movl	%r14d, 36(%rsp)
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L18906
	movq	%r12, %rdx
	movq	%r13, %rsi
	movq	%rax, %rdi
# WAS call	DH_compute_key_padded@PLT
	call	.LDH_compute_key_padded_local_target
	cmpl	%eax, 20(%rsp)
	je	.L18915
.L18906:

	xorl	%ebx, %ebx
.L18905:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%r15, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L18902
	.p2align 4,,10
	.p2align 3
.L18915:

	movq	8(%rsp), %rdx
	movq	24(%rsp), %rsi
	xorl	%r9d, %r9d
	movq	%rbx, %r8
	leaq	36(%rsp), %rcx
	movq	%r15, %rdi
# WAS call	EVP_Digest@PLT
	call	.LEVP_Digest_local_target
	testl	%eax, %eax
	je	.L18906
	movl	36(%rsp), %eax
	cmpq	%r14, %rax
	jne	.L18906
	movq	%rax, 0(%rbp)
	movl	$1, %ebx
	jmp	.L18905
.L18914:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1475:

	.size	DH_compute_key_hashed, .-DH_compute_key_hashed
# WAS .section	.text.HMAC_Init_from_precomputed_key,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_Init_from_precomputed_key
	.type	HMAC_Init_from_precomputed_key, @function
.LHMAC_Init_from_precomputed_key_local_target:
HMAC_Init_from_precomputed_key:
.LFB2383:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movzbl	664(%rdi), %eax
	leal	-3(%rax), %edx
	cmpb	$1, %dl
	jbe	.L18957
	cmpb	$1, %al
	je	.L18918
	testq	%rcx, %rcx
	je	.L18933
	testb	%al, %al
	jne	.L18958
.L18934:

# WAS call	AWSLC_hmac_in_place_methods_once_bss_get@PLT
	call	AWSLC_hmac_in_place_methods_once_bss_get
# WAS leaq	AWSLC_hmac_in_place_methods_init(%rip), %rsi
	leaq	.LAWSLC_hmac_in_place_methods_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	AWSLC_hmac_in_place_methods_storage_bss_get@PLT
	call	AWSLC_hmac_in_place_methods_storage_bss_get
	cmpq	(%rax), %rbx
	je	.L18922
	cmpq	56(%rax), %rbx
	je	.L18923
	cmpq	112(%rax), %rbx
	je	.L18924
	cmpq	168(%rax), %rbx
	je	.L18925
	cmpq	224(%rax), %rbx
	je	.L18926
	cmpq	280(%rax), %rbx
	je	.L18927
	cmpq	336(%rax), %rbx
	je	.L18928
	cmpq	392(%rax), %rbx
	je	.L18929
	movq	$0, 8(%rbp)
.L18936:

	xorl	%eax, %eax
	jmp	.L18916
	.p2align 4,,10
	.p2align 3
.L18957:

	movb	$1, 664(%rdi)
.L18918:

	testq	%r12, %r12
	je	.L18959
	testq	%rbx, %rbx
	je	.L18960
	cmpq	0(%rbp), %rbx
	jne	.L18934
	movq	8(%rbp), %r15
	movq	(%r15), %rdi
	movq	8(%r15), %r14
# WAS call	EVP_MD_block_size@PLT
	call	.LEVP_MD_block_size_local_target
	movq	%rax, %rbx
	leaq	(%r14,%r14), %rax
	cmpq	%rax, %r13
	jne	.L18936
.L18938:

# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	salq	$3, %rbx
	leaq	232(%rbp), %r13
	movq	%r12, %rsi
	movq	%rbx, %rdx
	movq	%r13, %rdi
	call	*40(%r15)
	testl	%eax, %eax
	je	.L18941
	leaq	(%r12,%r14), %rsi
	leaq	448(%rbp), %rdi
	movq	%rbx, %rdx
	call	*40(%r15)
	testl	%eax, %eax
	je	.L18941
	movdqu	232(%rbp), %xmm0
	movups	%xmm0, 16(%rbp)
	movdqu	16(%r13), %xmm1
	movups	%xmm1, 32(%rbp)
	movdqu	32(%r13), %xmm2
	movups	%xmm2, 48(%rbp)
	movdqu	48(%r13), %xmm3
	movups	%xmm3, 64(%rbp)
	movdqu	64(%r13), %xmm4
	movups	%xmm4, 80(%rbp)
	movdqu	80(%r13), %xmm5
	movups	%xmm5, 96(%rbp)
	movdqu	96(%r13), %xmm6
	movups	%xmm6, 112(%rbp)
	movdqu	112(%r13), %xmm7
	movups	%xmm7, 128(%rbp)
	movdqu	128(%r13), %xmm0
	movups	%xmm0, 144(%rbp)
	movdqu	144(%r13), %xmm1
	movups	%xmm1, 160(%rbp)
	movdqu	160(%r13), %xmm2
	movups	%xmm2, 176(%rbp)
	movdqu	176(%r13), %xmm3
	movups	%xmm3, 192(%rbp)
	movdqu	192(%r13), %xmm4
	movups	%xmm4, 208(%rbp)
	movq	208(%r13), %rdx
	movb	$1, 664(%rbp)
	movq	%rdx, 224(%rbp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L18921:

	movl	$1, %eax
.L18916:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L18958:

	.cfi_restore_state
	cmpq	(%rdi), %rcx
	jne	.L18934
.L18933:

	cmpb	$2, %al
	jne	.L18936
	movq	8(%rbp), %r15
	jmp	.L18937
	.p2align 4,,10
	.p2align 3
.L18959:

	testq	%rbx, %rbx
	je	.L18921
	cmpq	0(%rbp), %rbx
	jne	.L18934
	jmp	.L18921
	.p2align 4,,10
	.p2align 3
.L18960:

	movq	8(%rbp), %r15
	movq	(%r15), %rdi
	movq	8(%r15), %r14
# WAS call	EVP_MD_block_size@PLT
	call	.LEVP_MD_block_size_local_target
	movq	%rax, %rbx
	leaq	(%r14,%r14), %rax
	cmpq	%r13, %rax
	je	.L18938
	xorl	%eax, %eax
	jmp	.L18916
	.p2align 4,,10
	.p2align 3
.L18941:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	xorl	%eax, %eax
	jmp	.L18916
.L18924:

	leaq	112(%rax), %r15
	movq	%r15, %rax
	.p2align 4,,10
	.p2align 3
.L18935:

	movq	%rax, 8(%rbp)
	movq	%rbx, 0(%rbp)
.L18937:

	movq	(%r15), %rdi
	movq	8(%r15), %r14
# WAS call	EVP_MD_block_size@PLT
	call	.LEVP_MD_block_size_local_target
	movq	%rax, %rbx
	leaq	(%r14,%r14), %rax
	cmpq	%r13, %rax
	jne	.L18936
	testq	%r12, %r12
	jne	.L18938
	movl	$598, %r8d
	leaq	.LC305(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$28, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L18916
.L18925:

	leaq	168(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18926:

	leaq	224(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18927:

	leaq	280(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18928:

	leaq	336(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18929:

	leaq	392(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18923:

	leaq	56(%rax), %r15
	movq	%r15, %rax
	jmp	.L18935
.L18922:

	movq	%rax, %r15
	jmp	.L18935
	.cfi_endproc
.LFE2383:

	.size	HMAC_Init_from_precomputed_key, .-HMAC_Init_from_precomputed_key
# WAS .section	.text.PKCS1_MGF1,"ax",@progbits
.text
	.p2align 4
	.globl	PKCS1_MGF1
	.type	PKCS1_MGF1, @function
.LPKCS1_MGF1_local_target:
PKCS1_MGF1:
.LFB2667:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$184, %rsp
	.cfi_def_cfa_offset 240
	movq	%rdx, 8(%rsp)
	leaq	32(%rsp), %rbx
	movq	%rcx, 16(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	%r15, %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	testq	%rbp, %rbp
	je	.L18963
	movq	%rax, %r12
	leaq	92(%rsp), %rax
	xorl	%r14d, %r14d
	movq	%rax, 24(%rsp)
	.p2align 4,,10
	.p2align 3
.L18962:

	movl	%r14d, %eax
	xorl	%edx, %edx
	movq	%r15, %rsi
	movq	%rbx, %rdi
	bswap	%eax
	movl	%eax, 92(%rsp)
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	je	.L18968
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18968
	movq	24(%rsp), %rsi
	movl	$4, %edx
	movq	%rbx, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L18968
	cmpq	%r12, %rbp
	jb	.L18965
	xorl	%edx, %edx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	testl	%eax, %eax
	je	.L18968
	addq	%r12, %r13
	addl	$1, %r14d
	subq	%r12, %rbp
	jne	.L18962
	.p2align 4,,10
	.p2align 3
.L18963:

	movl	$1, %ebp
.L18969:

	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L18986
	addq	$184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18965:

	.cfi_restore_state
	leaq	96(%rsp), %r12
	xorl	%edx, %edx
	movq	%rbx, %rdi
	movq	%r12, %rsi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	testl	%eax, %eax
	je	.L18968
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movq	%r13, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L18963
	.p2align 4,,10
	.p2align 3
.L18968:

	xorl	%ebp, %ebp
	jmp	.L18969
.L18986:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2667:

	.size	PKCS1_MGF1, .-PKCS1_MGF1
# WAS .section	.text.RSA_verify_PKCS1_PSS_mgf1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_verify_PKCS1_PSS_mgf1
	.type	RSA_verify_PKCS1_PSS_mgf1, @function
.LRSA_verify_PKCS1_PSS_mgf1_local_target:
RSA_verify_PKCS1_PSS_mgf1:
.LFB2668:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movslq	%r9d, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$200, %rsp
	.cfi_def_cfa_offset 256
	movq	%rsi, 24(%rsp)
	leaq	64(%rsp), %r15
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	movq	%r15, %rdi
	cmove	%r12, %rbx
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rax, 16(%rsp)
	cmpl	$-1, %ebp
	je	.L19063
	cmpl	$-2, %ebp
	je	.L18990
	jl	.L19064
.L18990:

	movq	8(%r13), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	%r13, %rdi
	subl	$1, %eax
	andl	$7, %eax
	movl	%eax, 8(%rsp)
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movzbl	8(%rsp), %ecx
	movzbl	(%r14), %esi
	movl	$255, %edx
	movl	%eax, %eax
	sall	%cl, %edx
	andl	%edx, %esi
	movl	%esi, %r13d
	jne	.L19065
	movl	8(%rsp), %edi
	testl	%edi, %edi
	je	.L19066
	movq	16(%rsp), %rcx
	leaq	2(%rcx), %rdx
	cmpq	%rdx, %rax
	jb	.L18995
.L19068:

	testl	%ebp, %ebp
	js	.L18996
	movslq	%ebp, %rcx
	addq	%rcx, %rdx
	cmpq	%rdx, %rax
	jb	.L18995
.L18996:

	cmpb	$-68, -1(%r14,%rax)
	je	.L18997
	movl	$258, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$127, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L18991:

	xorl	%r9d, %r9d
	xorl	%r13d, %r13d
.L18993:

	movq	%r9, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r15, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19067
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r13d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19066:

	.cfi_restore_state
	movq	16(%rsp), %rcx
	subq	$1, %rax
	addq	$1, %r14
	leaq	2(%rcx), %rdx
	cmpq	%rdx, %rax
	jnb	.L19068
.L18995:

	movl	$254, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$113, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18991
	.p2align 4,,10
	.p2align 3
.L19063:

	movslq	16(%rsp), %rbp
	jmp	.L18990
	.p2align 4,,10
	.p2align 3
.L18997:

	movq	16(%rsp), %rsi
	subq	%rsi, %rax
	leaq	-1(%rax), %r11
	movq	%rax, 32(%rsp)
	movq	%r11, %rdi
	movq	%r11, 40(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L18991
	movq	40(%rsp), %r11
	movq	16(%rsp), %rcx
	movq	%rbx, %r8
	movq	%rax, 40(%rsp)
	leaq	(%r14,%r11), %rdi
	movq	%r11, %rsi
	movq	%r11, 48(%rsp)
	movq	%rdi, 56(%rsp)
	movq	%rdi, %rdx
	movq	%rax, %rdi
# WAS call	PKCS1_MGF1@PLT
	call	.LPKCS1_MGF1_local_target
	movq	40(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	movq	48(%rsp), %r11
	movzbl	(%r9), %edx
	testq	%r11, %r11
	je	.L18999
	movq	32(%rsp), %rax
	leaq	-2(%rax), %rcx
	cmpq	$6, %rcx
	jbe	.L19019
	movq	%r9, %rdx
	xorl	%eax, %eax
	subq	%r14, %rdx
	subq	$1, %rdx
	cmpq	$14, %rdx
	ja	.L19069
	.p2align 4,,10
	.p2align 3
.L19006:

	movzbl	(%r14,%rax), %edx
	xorb	%dl, (%r9,%rax)
	addq	$1, %rax
	cmpq	%r11, %rax
	jne	.L19006
	movl	8(%rsp), %eax
	movzbl	(%r9), %edx
	testl	%eax, %eax
	jne	.L19012
.L19009:

	testb	%dl, %dl
	jne	.L19022
	cmpq	$2, 32(%rsp)
	je	.L19014
.L19013:

	movq	32(%rsp), %rcx
	xorl	%eax, %eax
	subq	$2, %rcx
	jmp	.L19011
	.p2align 4,,10
	.p2align 3
.L19070:

	cmpq	%rcx, %rax
	jnb	.L19014
.L19011:

	addq	$1, %rax
	movzbl	(%r9,%rax), %edx
	testb	%dl, %dl
	je	.L19070
.L19010:

	cmpb	$1, %dl
	jne	.L19014
	leaq	1(%rax), %rbx
	testl	%ebp, %ebp
	js	.L19015
	movq	%r11, %rax
	subq	%rbx, %rax
	cmpq	%rbp, %rax
	jne	.L19071
.L19015:

	xorl	%edx, %edx
	movq	%r12, %rsi
	movq	%r15, %rdi
	movq	%r9, 8(%rsp)
	movq	%r11, 32(%rsp)
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	movl	$8, %edx
# WAS leaq	kPSSZeroes(%rip), %rsi
	leaq	.LkPSSZeroes_local_target(%rip), %rsi
	movq	%r15, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	movq	16(%rsp), %r14
	movq	24(%rsp), %rsi
	movq	%r15, %rdi
	movq	%r14, %rdx
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	movq	32(%rsp), %rdx
	leaq	(%r9,%rbx), %rsi
	movq	%r15, %rdi
	subq	%rbx, %rdx
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	leaq	112(%rsp), %rbx
	xorl	%edx, %edx
	movq	%r15, %rdi
	movq	%rbx, %rsi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	movq	8(%rsp), %r9
	testl	%eax, %eax
	je	.L18993
	testq	%r14, %r14
	je	.L19024
	movq	56(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rbx, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	movq	8(%rsp), %r9
	testl	%eax, %eax
	jne	.L19072
.L19024:

	movl	$1, %r13d
	jmp	.L18993
	.p2align 4,,10
	.p2align 3
.L19064:

	movl	$237, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$138, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L18991
	.p2align 4,,10
	.p2align 3
.L18999:

	movl	8(%rsp), %esi
	testl	%esi, %esi
	je	.L19008
	.p2align 4,,10
	.p2align 3
.L19012:

	movl	8(%rsp), %eax
	movl	$8, %ecx
	movl	$255, %edx
	subl	%eax, %ecx
	sarl	%cl, %edx
	andb	(%r9), %dl
	movb	%dl, (%r9)
	jmp	.L19009
	.p2align 4,,10
	.p2align 3
.L19065:

	movl	$244, %r8d
	movl	$122, %edx
	xorl	%esi, %esi
	xorl	%r13d, %r13d
	leaq	.LC348(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%r9d, %r9d
	jmp	.L18993
	.p2align 4,,10
	.p2align 3
.L19071:

	movl	$293, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$138, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movq	%r9, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r9
	jmp	.L18993
	.p2align 4,,10
	.p2align 3
.L19069:

	cmpq	$14, %rcx
	jbe	.L19001
	movq	%r11, %rdx
	andq	$-16, %rdx
	.p2align 4,,10
	.p2align 3
.L19002:

	movdqu	(%r9,%rax), %xmm0
	movdqu	(%r14,%rax), %xmm2
	pxor	%xmm2, %xmm0
	movups	%xmm0, (%r9,%rax)
	addq	$16, %rax
	cmpq	%rdx, %rax
	jne	.L19002
	cmpq	%rdx, %r11
	je	.L19003
	movq	32(%rsp), %rax
	subq	%rdx, %rax
	leaq	-1(%rax), %rcx
	subq	$2, %rax
	cmpq	$6, %rax
	jbe	.L19004
.L19016:

	leaq	(%r9,%rdx), %rax
	movq	(%r14,%rdx), %xmm0
	movq	(%rax), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rax)
	movq	%rcx, %rax
	andq	$-8, %rax
	addq	%rax, %rdx
	andl	$7, %ecx
	je	.L19003
.L19004:

	movzbl	(%r14,%rdx), %eax
	xorb	%al, (%r9,%rdx)
	leaq	1(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	1(%r14,%rdx), %ecx
	xorb	%cl, (%r9,%rax)
	leaq	2(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	2(%r14,%rdx), %ecx
	xorb	%cl, (%r9,%rax)
	leaq	3(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	3(%r14,%rdx), %ecx
	xorb	%cl, (%r9,%rax)
	leaq	4(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	4(%r14,%rdx), %ecx
	xorb	%cl, (%r9,%rax)
	leaq	5(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	5(%r14,%rdx), %ecx
	xorb	%cl, (%r9,%rax)
	leaq	6(%rdx), %rax
	cmpq	%r11, %rax
	jnb	.L19003
	movzbl	6(%r14,%rdx), %edx
	xorb	%dl, (%r9,%rax)
.L19003:

	movl	8(%rsp), %ecx
	movzbl	(%r9), %edx
	testl	%ecx, %ecx
	jne	.L19012
.L19008:

	testb	%dl, %dl
	je	.L19013
.L19022:

	xorl	%eax, %eax
	jmp	.L19010
	.p2align 4,,10
	.p2align 3
.L19014:

	movl	$287, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$139, %edx
	xorl	%esi, %esi
	movl	$4, %edi
	movq	%r9, 8(%rsp)
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r9
	jmp	.L18993
	.p2align 4,,10
	.p2align 3
.L19019:

	xorl	%eax, %eax
	jmp	.L19006
.L19001:

	movq	%r11, %rcx
	xorl	%edx, %edx
	jmp	.L19016
.L19067:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L19072:

	movl	$305, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	8(%rsp), %r9
	jmp	.L18993
	.cfi_endproc
.LFE2668:

	.size	RSA_verify_PKCS1_PSS_mgf1, .-RSA_verify_PKCS1_PSS_mgf1
# WAS .section	.text.RSA_verify_pss_mgf1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_verify_pss_mgf1
	.type	RSA_verify_pss_mgf1, @function
.LRSA_verify_pss_mgf1_local_target:
RSA_verify_pss_mgf1:
.LFB2726:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%r9d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%rcx, %rdi
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%rsi, 8(%rsp)
	movq	96(%rsp), %r15
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpq	%r12, %rax
	je	.L19074
	movl	$1012, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19075:

	xorl	%ebx, %ebx
.L19073:

	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19086
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19074:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %edi
	movq	%rdi, 16(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L19075
	leaq	16(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%rax, %rdx
	movq	%r15, %r8
	pushq	$3
	.cfi_def_cfa_offset 112
	movq	120(%rsp), %r9
	movq	%rbx, %rdi
	movq	32(%rsp), %rcx
# WAS call	RSA_verify_raw@PLT
	call	.LRSA_verify_raw_local_target
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	jne	.L19087
.L19078:

	xorl	%ebx, %ebx
.L19080:

	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L19073
	.p2align 4,,10
	.p2align 3
.L19087:

	movq	%rbx, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %eax
	cmpq	16(%rsp), %rax
	je	.L19079
	movl	$1028, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19078
	.p2align 4,,10
	.p2align 3
.L19079:

	movq	8(%rsp), %rsi
	movq	%rbx, %rdi
	movl	%r14d, %r9d
	movq	%r12, %r8
	movq	%r13, %rcx
	movq	%rbp, %rdx
# WAS call	RSA_verify_PKCS1_PSS_mgf1@PLT
	call	.LRSA_verify_PKCS1_PSS_mgf1_local_target
	movl	%eax, %ebx
	jmp	.L19080
.L19086:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2726:

	.size	RSA_verify_pss_mgf1, .-RSA_verify_pss_mgf1
# WAS .section	.text.pkey_rsa_verify,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_verify, @function
.Lpkey_rsa_verify_local_target:
pkey_rsa_verify:
.LFB2288:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	40(%rdi), %rbp
	movq	16(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	24(%rbp), %rcx
	movq	8(%rdi), %r10
	testq	%rcx, %rcx
	je	.L19089
	movl	16(%rbp), %eax
	cmpl	$1, %eax
	je	.L19090
	cmpl	$6, %eax
	jne	.L19092
	movl	40(%rbp), %r9d
	movq	32(%rbp), %r8
	pushq	%rdx
	.cfi_def_cfa_offset 104
	movq	%r10, %rdi
	pushq	%rsi
	.cfi_def_cfa_offset 112
	movq	%r14, %rdx
	movq	%r15, %rsi
# WAS call	RSA_verify_pss_mgf1@PLT
	call	.LRSA_verify_pss_mgf1_local_target
	popq	%rsi
	.cfi_def_cfa_offset 104
	popq	%rdi
	.cfi_def_cfa_offset 96
.L19088:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19102
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19090:

	.cfi_restore_state
	movq	%rcx, %rdi
	movq	%r10, (%rsp)
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	(%rsp), %r10
	movl	%eax, %edi
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19102
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%r14, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 48
	movq	%r15, %rsi
	popq	%rbp
	.cfi_def_cfa_offset 40
	movq	%r10, %r9
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
# WAS jmp	RSA_verify@PLT
	jmp	.LRSA_verify_local_target
	.p2align 4,,10
	.p2align 3
.L19089:

	.cfi_restore_state
	movq	%r10, (%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movq	48(%rbp), %rdx
	movq	(%rsp), %r10
	movslq	%eax, %rcx
	testq	%rdx, %rdx
	je	.L19103
.L19095:

	movl	16(%rbp), %eax
	leaq	16(%rsp), %rsi
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%r13, %r9
	movq	%r12, %r8
	movq	%r10, %rdi
	pushq	%rax
	.cfi_def_cfa_offset 112
# WAS call	RSA_verify_raw@PLT
	call	.LRSA_verify_raw_local_target
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	je	.L19092
	cmpq	%r14, 16(%rsp)
	je	.L19104
	.p2align 4,,10
	.p2align 3
.L19092:

	xorl	%eax, %eax
	jmp	.L19088
	.p2align 4,,10
	.p2align 3
.L19103:

	movq	16(%rbx), %rdi
	movq	%r10, 8(%rsp)
	movl	%ecx, (%rsp)
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	movslq	%eax, %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movslq	(%rsp), %rcx
	movq	8(%rsp), %r10
	testq	%rax, %rax
	movq	%rax, 48(%rbp)
	movq	%rax, %rdx
	jne	.L19095
	xorl	%eax, %eax
	jmp	.L19088
	.p2align 4,,10
	.p2align 3
.L19104:

	movq	48(%rbp), %rsi
	movq	%r14, %rdx
	movq	%r15, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	sete	%al
	movzbl	%al, %eax
	jmp	.L19088
.L19102:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2288:

	.size	pkey_rsa_verify, .-pkey_rsa_verify
# WAS .section	.text.RSA_padding_add_PKCS1_PSS_mgf1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_padding_add_PKCS1_PSS_mgf1
	.type	RSA_padding_add_PKCS1_PSS_mgf1, @function
.LRSA_padding_add_PKCS1_PSS_mgf1_local_target:
RSA_padding_add_PKCS1_PSS_mgf1:
.LFB2669:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r8, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdx, 16(%rsp)
	movl	%r9d, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	movq	%r13, %rdi
	cmove	%r13, %rbx
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	8(%r12), %rdi
	movq	%rax, %r14
# WAS call	BN_is_zero@PLT
	call	.LBN_is_zero_local_target
	testl	%eax, %eax
	jne	.L19160
	movq	8(%r12), %rdi
	movl	%eax, %ebp
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	movq	%r12, %rdi
	subl	$1, %eax
	andl	$7, %eax
	movl	%eax, 12(%rsp)
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %r9d
	movl	12(%rsp), %eax
	testl	%eax, %eax
	je	.L19161
	leaq	2(%r14), %rax
	cmpq	%rax, %r9
	jb	.L19162
.L19110:

	movl	(%rsp), %eax
	cmpl	$-1, %eax
	je	.L19138
	cmpl	$-2, %eax
	je	.L19163
	movslq	%eax, %r11
	testl	%eax, %eax
	js	.L19164
.L19111:

	movq	%r9, %rax
	subq	%r14, %rax
	movq	%rax, 40(%rsp)
	subq	$2, %rax
	cmpq	%r11, %rax
	jb	.L19165
.L19113:

	testq	%r11, %r11
	jne	.L19166
	xorl	%r12d, %r12d
.L19116:

	leaq	48(%rsp), %rax
	movq	%r11, 32(%rsp)
	movq	%rax, %rdi
	movq	%r9, 24(%rsp)
	movq	%rax, (%rsp)
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	(%rsp), %rdi
	xorl	%edx, %edx
	movq	%r13, %rsi
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	testl	%eax, %eax
	jne	.L19167
.L19117:

	movq	(%rsp), %rdi
.L19159:

# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	jmp	.L19108
	.p2align 4,,10
	.p2align 3
.L19161:

	subq	$1, %r9
	leaq	2(%r14), %rax
	movb	$0, (%r15)
	addq	$1, %r15
	cmpq	%rax, %r9
	jnb	.L19110
.L19162:

	movl	$350, %r8d
	movl	$114, %edx
	xorl	%esi, %esi
	xorl	%r12d, %r12d
	leaq	.LC348(%rip), %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19108
	.p2align 4,,10
	.p2align 3
.L19160:

	movl	$337, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19115:

	xorl	%r12d, %r12d
	xorl	%ebp, %ebp
.L19108:

	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19168
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19166:

	.cfi_restore_state
	movq	%r11, %rdi
	movq	%r9, 24(%rsp)
	movq	%r11, (%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L19115
	movq	(%rsp), %rsi
	movq	%rax, %rdi
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	(%rsp), %r11
	movq	24(%rsp), %r9
	testl	%eax, %eax
	jne	.L19116
	xorl	%ebp, %ebp
	jmp	.L19108
	.p2align 4,,10
	.p2align 3
.L19138:

	movq	%r14, %r11
	jmp	.L19111
	.p2align 4,,10
	.p2align 3
.L19163:

	movq	%r9, %rax
	subq	%r14, %rax
	leaq	-2(%rax), %r11
	movq	%r9, %rax
	subq	%r14, %rax
	movq	%rax, 40(%rsp)
	jmp	.L19113
	.p2align 4,,10
	.p2align 3
.L19165:

	movl	$371, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19115
	.p2align 4,,10
	.p2align 3
.L19167:

	movq	(%rsp), %rdi
	movl	$8, %edx
# WAS leaq	kPSSZeroes(%rip), %rsi
	leaq	.LkPSSZeroes_local_target(%rip), %rsi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L19117
	movq	16(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%r14, %rdx
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	32(%rsp), %r11
	testl	%eax, %eax
	je	.L19117
	movq	(%rsp), %rdi
	movq	%r11, %rdx
	movq	%r12, %rsi
	movq	%r11, 16(%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	16(%rsp), %r11
	testl	%eax, %eax
	je	.L19117
	movq	40(%rsp), %rax
	movq	(%rsp), %rdi
	xorl	%edx, %edx
	movq	%r11, 32(%rsp)
	leaq	-1(%rax), %r13
	leaq	(%r15,%r13), %rax
	movq	%rax, %rsi
	movq	%rax, 16(%rsp)
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	movq	(%rsp), %rdi
	testl	%eax, %eax
	je	.L19159
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
	movq	16(%rsp), %rdx
	movq	%rbx, %r8
	movq	%r14, %rcx
	movq	%r13, %rsi
	movq	%r15, %rdi
# WAS call	PKCS1_MGF1@PLT
	call	.LPKCS1_MGF1_local_target
	movq	24(%rsp), %r9
	movq	32(%rsp), %r11
	testl	%eax, %eax
	je	.L19108
	movq	%r9, %rax
	movq	%r15, %rdx
	subq	%r14, %rax
	subq	%r11, %rdx
	leaq	-2(%rdx,%rax), %rcx
	xorb	$1, (%rcx)
	testq	%r11, %r11
	je	.L19126
	leaq	-1(%r11), %r8
	cmpq	$6, %r8
	jbe	.L19141
	movq	40(%rsp), %rdx
	xorl	%eax, %eax
	subq	%r11, %rdx
	subq	$1, %rdx
	leaq	(%r15,%rdx), %rdi
	leaq	-1(%rdi), %rsi
	subq	%r12, %rsi
	cmpq	$14, %rsi
	ja	.L19169
	.p2align 4,,10
	.p2align 3
.L19133:

	movzbl	(%r12,%rax), %edx
	xorb	%dl, 1(%rcx,%rax)
	addq	$1, %rax
	cmpq	%rax, %r11
	jne	.L19133
.L19126:

	movl	12(%rsp), %eax
	testl	%eax, %eax
	je	.L19135
	movl	$8, %ecx
	subl	%eax, %ecx
	movl	$255, %eax
	sarl	%cl, %eax
	andb	%al, (%r15)
.L19135:

	movb	$-68, -1(%r15,%r9)
	movl	$1, %ebp
	jmp	.L19108
	.p2align 4,,10
	.p2align 3
.L19164:

	movl	$364, %r8d
	leaq	.LC348(%rip), %rcx
	movl	$138, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19115
	.p2align 4,,10
	.p2align 3
.L19169:

	addq	$1, %rcx
	cmpq	$14, %r8
	jbe	.L19143
	movq	%r11, %rsi
	andq	$-16, %rsi
	.p2align 4,,10
	.p2align 3
.L19129:

	movdqu	(%rdi,%rax), %xmm0
	movdqu	(%r12,%rax), %xmm2
	pxor	%xmm2, %xmm0
	movups	%xmm0, (%rdi,%rax)
	addq	$16, %rax
	cmpq	%rsi, %rax
	jne	.L19129
	addq	%rsi, %rcx
	cmpq	%rsi, %r11
	je	.L19126
	movq	%r11, %rax
	subq	%rsi, %rax
	leaq	-1(%rax), %rdi
	cmpq	$6, %rdi
	jbe	.L19131
.L19128:

	addq	%rsi, %rdx
	movq	(%r12,%rsi), %xmm0
	addq	%r15, %rdx
	movq	(%rdx), %xmm1
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rdx)
	movq	%rax, %rdx
	andq	$-8, %rdx
	addq	%rdx, %rcx
	addq	%rdx, %rsi
	testb	$7, %al
	je	.L19126
.L19131:

	movzbl	(%r12,%rsi), %eax
	xorb	%al, (%rcx)
	leaq	1(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	1(%r12,%rsi), %eax
	xorb	%al, 1(%rcx)
	leaq	2(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	2(%r12,%rsi), %eax
	xorb	%al, 2(%rcx)
	leaq	3(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	3(%r12,%rsi), %eax
	xorb	%al, 3(%rcx)
	leaq	4(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	4(%r12,%rsi), %eax
	xorb	%al, 4(%rcx)
	leaq	5(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	5(%r12,%rsi), %eax
	xorb	%al, 5(%rcx)
	leaq	6(%rsi), %rax
	cmpq	%r11, %rax
	jnb	.L19126
	movzbl	6(%r12,%rsi), %eax
	xorb	%al, 6(%rcx)
	jmp	.L19126
	.p2align 4,,10
	.p2align 3
.L19141:

	xorl	%eax, %eax
	jmp	.L19133
.L19143:

	movq	%r11, %rax
	xorl	%esi, %esi
	jmp	.L19128
.L19168:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2669:

	.size	RSA_padding_add_PKCS1_PSS_mgf1, .-RSA_padding_add_PKCS1_PSS_mgf1
# WAS .section	.text.RSA_sign_pss_mgf1,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_sign_pss_mgf1
	.type	RSA_sign_pss_mgf1, @function
.LRSA_sign_pss_mgf1_local_target:
RSA_sign_pss_mgf1:
.LFB2721:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	80(%rsp), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpq	%rbx, %rax
	je	.L19171
	movl	$898, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19172:

	xorl	%r12d, %r12d
.L19170:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19171:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	RSA_size@PLT
	call	.LRSA_size_local_target
	movl	%eax, %eax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L19172
	movl	96(%rsp), %r9d
	movq	88(%rsp), %r8
	movq	%r12, %rdx
	movq	%rax, %rsi
	movq	80(%rsp), %rcx
	movq	%rbp, %rdi
# WAS call	RSA_padding_add_PKCS1_PSS_mgf1@PLT
	call	.LRSA_padding_add_PKCS1_PSS_mgf1_local_target
	movl	%eax, %r12d
	testl	%eax, %eax
	jne	.L19180
.L19175:

	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L19170
	.p2align 4,,10
	.p2align 3
.L19180:

	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	%r15, %rcx
	movq	%r14, %rdx
	movq	%rbx, %r8
	pushq	$3
	.cfi_def_cfa_offset 96
	movq	24(%rsp), %r9
	movq	%r13, %rsi
	movq	%rbp, %rdi
	xorl	%r12d, %r12d
# WAS call	RSA_sign_raw@PLT
	call	.LRSA_sign_raw_local_target
	popq	%rdx
	.cfi_def_cfa_offset 88
	popq	%rcx
	.cfi_def_cfa_offset 80
	testl	%eax, %eax
	setne	%r12b
	jmp	.L19175
	.cfi_endproc
.LFE2721:

	.size	RSA_sign_pss_mgf1, .-RSA_sign_pss_mgf1
# WAS .section	.text.pkey_rsa_sign,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_sign, @function
.Lpkey_rsa_sign_local_target:
pkey_rsa_sign:
.LFB2287:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	40(%rdi), %r13
	movq	16(%rdi), %rdi
	movq	%rcx, 8(%rsp)
	movq	8(%rdi), %r15
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_PKEY_size@PLT
	call	.LEVP_PKEY_size_local_target
	cltq
	testq	%rbx, %rbx
	je	.L19195
	movq	0(%rbp), %rcx
	cmpq	%rax, %rcx
	jb	.L19196
	movq	24(%r13), %rdi
	movl	16(%r13), %r12d
	testq	%rdi, %rdi
	je	.L19185
	cmpl	$1, %r12d
	je	.L19186
	cmpl	$6, %r12d
	jne	.L19189
	movl	40(%r13), %eax
	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%r14, %r9
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	pushq	%rax
	.cfi_def_cfa_offset 112
	pushq	32(%r13)
	.cfi_def_cfa_offset 120
	pushq	%rdi
	.cfi_def_cfa_offset 128
	movq	%r15, %rdi
	movq	40(%rsp), %r8
# WAS call	RSA_sign_pss_mgf1@PLT
	call	.LRSA_sign_pss_mgf1_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 96
	movl	%eax, %r12d
	.p2align 4,,10
	.p2align 3
.L19181:

	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19197
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19189:

	.cfi_restore_state
	xorl	%r12d, %r12d
	jmp	.L19181
	.p2align 4,,10
	.p2align 3
.L19186:

# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	movq	8(%rsp), %rsi
	movq	%r15, %r9
	movq	%rbx, %rcx
	movl	%eax, %edi
	leaq	20(%rsp), %r8
	movq	%r14, %rdx
# WAS call	RSA_sign@PLT
	call	.LRSA_sign_local_target
	testl	%eax, %eax
	je	.L19189
	movl	20(%rsp), %eax
	movq	%rax, 0(%rbp)
	jmp	.L19181
	.p2align 4,,10
	.p2align 3
.L19195:

	movq	%rax, 0(%rbp)
	movl	$1, %r12d
	jmp	.L19181
	.p2align 4,,10
	.p2align 3
.L19196:

	movl	$280, %r8d
	movl	$100, %edx
	xorl	%esi, %esi
	xorl	%r12d, %r12d
	leaq	.LC258(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19181
	.p2align 4,,10
	.p2align 3
.L19185:

	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%rbx, %rdx
	movq	%r14, %r9
	movq	%rbp, %rsi
	pushq	%r12
	.cfi_def_cfa_offset 112
	movq	24(%rsp), %r8
	movq	%r15, %rdi
# WAS call	RSA_sign_raw@PLT
	call	.LRSA_sign_raw_local_target
	movl	%eax, %r12d
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
	jmp	.L19181
.L19197:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2287:

	.size	pkey_rsa_sign, .-pkey_rsa_sign
# WAS .section	.text.aead_aes_gcm_seal_scatter_randnonce,"ax",@progbits
.text
	.p2align 4
	.type	aead_aes_gcm_seal_scatter_randnonce, @function
.Laead_aes_gcm_seal_scatter_randnonce_local_target:
aead_aes_gcm_seal_scatter_randnonce:
.LFB1254:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	136(%rsp), %r15
	cmpq	$0, 128(%rsp)
	movq	152(%rsp), %rdx
	movq	168(%rsp), %rcx
	jne	.L19209
	movq	%r8, %rbx
	cmpq	$11, %r8
	jbe	.L19210
	movq	%rcx, 24(%rsp)
	movq	%rdi, %r12
	movq	%rsi, %r13
	movq	%rdx, 16(%rsp)
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	44(%rsp), %r9
	movl	$12, %esi
	movq	%r9, %rdi
	movq	%r9, 8(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	leaq	8(%r12), %rdi
	leaq	-12(%rbx), %r8
	movq	%r13, %rsi
	movzbl	577(%r12), %eax
	subl	$12, %eax
	cltq
	pushq	%rax
	.cfi_def_cfa_offset 136
	pushq	184(%rsp)
	.cfi_def_cfa_offset 144
	movq	40(%rsp), %rcx
	pushq	%rcx
	.cfi_def_cfa_offset 152
	movq	%r14, %rcx
	pushq	184(%rsp)
	.cfi_def_cfa_offset 160
	movq	48(%rsp), %rdx
	pushq	%rdx
	.cfi_def_cfa_offset 168
	movq	%rbp, %rdx
	pushq	184(%rsp)
	.cfi_def_cfa_offset 176
	pushq	%r15
	.cfi_def_cfa_offset 184
	pushq	$12
	.cfi_def_cfa_offset 192
	movq	72(%rsp), %r9
# WAS call	aead_aes_gcm_seal_scatter_impl
	call	.Laead_aes_gcm_seal_scatter_impl_local_target
	addq	$64, %rsp
	.cfi_def_cfa_offset 128
	testl	%eax, %eax
	jne	.L19211
.L19200:

	xorl	%eax, %eax
.L19198:

	movq	56(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19212
	addq	$72, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19211:

	.cfi_restore_state
	movq	(%r14), %rax
	movq	44(%rsp), %rdx
	movq	%rdx, 0(%rbp,%rax)
	movl	52(%rsp), %edx
	movl	%edx, 8(%rbp,%rax)
	movq	(%r12), %rdi
	addq	$12, (%r14)
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	je	.L19213
.L19203:

	movl	$1, %eax
	jmp	.L19198
	.p2align 4,,10
	.p2align 3
.L19210:

	movl	$1353, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19200
	.p2align 4,,10
	.p2align 3
.L19209:

	movl	$1347, %r8d
	leaq	.LC27(%rip), %rcx
	movl	$111, %edx
	xorl	%esi, %esi
	movl	$30, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19200
	.p2align 4,,10
	.p2align 3
.L19213:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L19203
.L19212:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1254:

	.size	aead_aes_gcm_seal_scatter_randnonce, .-aead_aes_gcm_seal_scatter_randnonce
# WAS .section	.text.CMAC_Init,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_Init
	.type	CMAC_Init, @function
.LCMAC_Init_local_target:
CMAC_Init:
.LFB1330:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	EVP_CIPHER_block_size@PLT
	call	.LEVP_CIPHER_block_size_local_target
	movl	%eax, %r12d
	leal	-8(%r12), %eax
	andl	$-9, %eax
	je	.L19215
.L19217:

	xorl	%ebx, %ebx
.L19216:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19231
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19215:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	EVP_CIPHER_key_length@PLT
	call	.LEVP_CIPHER_key_length_local_target
	movl	%eax, %eax
	cmpq	%r13, %rax
	jne	.L19217
	xorl	%edx, %edx
# WAS leaq	kZeroIV(%rip), %r8
	leaq	.LkZeroIV_local_target(%rip), %r8
	movq	%r14, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_EncryptInit_ex@PLT
	call	.LEVP_EncryptInit_ex_local_target
	testl	%eax, %eax
	je	.L19217
# WAS leaq	kZeroIV(%rip), %rbp
	leaq	.LkZeroIV_local_target(%rip), %rbp
	leaq	16(%rsp), %rsi
	movq	%r12, %rcx
	movq	%rbx, %rdi
	movq	%rbp, %rdx
# WAS call	EVP_Cipher@PLT
	call	.LEVP_Cipher_local_target
	testl	%eax, %eax
	je	.L19217
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	%rbp, %r8
	movq	%rbx, %rdi
# WAS call	EVP_EncryptInit_ex@PLT
	call	.LEVP_EncryptInit_ex_local_target
	testl	%eax, %eax
	je	.L19217
	movzbl	16(%rsp), %eax
	cmpq	$16, %r12
	je	.L19232
	movzbl	17(%rsp), %ecx
	leal	(%rax,%rax), %esi
	sarb	$7, %al
	movl	%eax, %r10d
	movl	%ecx, %edx
	addl	%ecx, %ecx
	andl	$27, %r10d
	shrb	$7, %dl
	orl	%esi, %edx
	movzbl	18(%rsp), %esi
	movl	%esi, %edi
	addl	%esi, %esi
	shrb	$7, %dil
	orl	%ecx, %edi
	movzbl	19(%rsp), %ecx
	movl	%ecx, %r8d
	addl	%ecx, %ecx
	shrb	$7, %r8b
	orl	%esi, %r8d
	movzbl	20(%rsp), %esi
	movl	%esi, %r9d
	addl	%esi, %esi
	shrb	$7, %r9b
	orl	%ecx, %r9d
	movzbl	21(%rsp), %ecx
	movl	%ecx, %r11d
	addl	%ecx, %ecx
	shrb	$7, %r11b
	orl	%esi, %r11d
	movzbl	22(%rsp), %esi
	movl	%esi, %r12d
	addl	%esi, %esi
	shrb	$7, %r12b
	orl	%ecx, %r12d
	movzbl	23(%rsp), %ecx
	movl	%ecx, %ebp
	addl	%ecx, %ecx
	xorl	%ecx, %r10d
	shrb	$7, %bpl
	orl	%esi, %ebp
	movzbl	%r10b, %ecx
	movl	%r8d, %esi
	movzbl	%bpl, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	movzbl	%r12b, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	movzbl	%r11b, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	movzbl	%r9b, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	movzbl	%r8b, %eax
	salq	$8, %rcx
	shrb	$7, %sil
	addl	%r8d, %r8d
	orq	%rax, %rcx
	movzbl	%dil, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	movzbl	%dl, %eax
	salq	$8, %rcx
	orq	%rax, %rcx
	leal	(%rdx,%rdx), %eax
	movq	%rcx, 152(%rbx)
	movl	%edi, %ecx
	addl	%edi, %edi
	orl	%edi, %esi
	movl	%r9d, %edi
	addl	%r9d, %r9d
	shrb	$7, %cl
	shrb	$7, %dil
	orl	%eax, %ecx
	movl	%r10d, %eax
	addl	%r10d, %r10d
	orl	%r8d, %edi
	movl	%r11d, %r8d
	addl	%r11d, %r11d
	shrb	$7, %al
	shrb	$7, %r8b
	movzbl	%dil, %edi
	movzbl	%sil, %esi
	movzbl	%cl, %ecx
	orl	%r9d, %r8d
	movl	%r12d, %r9d
	addl	%r12d, %r12d
	shrb	$7, %r9b
	movzbl	%r8b, %r8d
	orl	%r11d, %r9d
	movl	%ebp, %r11d
	addl	%ebp, %ebp
	orl	%eax, %ebp
	movl	%edx, %eax
	shrb	$7, %r11b
	movzbl	%r9b, %r9d
	sarb	$7, %al
	movzbl	%bpl, %edx
	orl	%r12d, %r11d
	andl	$27, %eax
	movzbl	%r11b, %r11d
	xorl	%r10d, %eax
	movzbl	%al, %eax
	salq	$8, %rax
	orq	%rdx, %rax
	salq	$8, %rax
	orq	%r11, %rax
	salq	$8, %rax
	orq	%r9, %rax
	salq	$8, %rax
	orq	%r8, %rax
	salq	$8, %rax
	orq	%rdi, %rax
	salq	$8, %rax
	orq	%rsi, %rax
	salq	$8, %rax
	orq	%rcx, %rax
	movq	%rax, 168(%rbx)
.L19219:

	movl	$0, 200(%rbx)
	movl	$1, %ebx
	jmp	.L19216
.L19232:

	movzbl	17(%rsp), %edi
	movzbl	18(%rsp), %esi
	leal	(%rax,%rax), %ecx
	movl	%edi, %edx
	addl	%edi, %edi
	shrb	$7, %dl
	orl	%ecx, %edx
	movl	%esi, %ecx
	addl	%esi, %esi
	shrb	$7, %cl
	movb	%dl, 152(%rbx)
	orl	%edi, %ecx
	movzbl	19(%rsp), %edi
	movb	%cl, 153(%rbx)
	movl	%edi, %r13d
	addl	%edi, %edi
	shrb	$7, %r13b
	orl	%esi, %r13d
	movzbl	20(%rsp), %esi
	movb	%r13b, 154(%rbx)
	movl	%esi, %r12d
	addl	%esi, %esi
	shrb	$7, %r12b
	orl	%edi, %r12d
	movzbl	21(%rsp), %edi
	movb	%r12b, 155(%rbx)
	movl	%edi, %ebp
	addl	%edi, %edi
	shrb	$7, %bpl
	orl	%esi, %ebp
	movzbl	22(%rsp), %esi
	movb	%bpl, 156(%rbx)
	movl	%esi, %r11d
	addl	%esi, %esi
	shrb	$7, %r11b
	orl	%edi, %r11d
	movzbl	23(%rsp), %edi
	movb	%r11b, 157(%rbx)
	movl	%edi, %r10d
	addl	%edi, %edi
	shrb	$7, %r10b
	orl	%esi, %r10d
	movzbl	24(%rsp), %esi
	movb	%r10b, 158(%rbx)
	movl	%esi, %r9d
	addl	%esi, %esi
	shrb	$7, %r9b
	orl	%edi, %r9d
	movzbl	25(%rsp), %edi
	movb	%r9b, 159(%rbx)
	movl	%edi, %r8d
	addl	%edi, %edi
	shrb	$7, %r8b
	orl	%esi, %r8d
	movzbl	26(%rsp), %esi
	movb	%r8b, 160(%rbx)
	movl	%esi, %r14d
	addl	%esi, %esi
	shrb	$7, %r14b
	orl	%edi, %r14d
	movzbl	27(%rsp), %edi
	movb	%r14b, 13(%rsp)
	movl	%edi, %r15d
	movb	%r14b, 161(%rbx)
	shrb	$7, %r15b
	orl	%esi, %r15d
	movzbl	28(%rsp), %esi
	movb	%r15b, 14(%rsp)
	movl	%esi, %r14d
	movb	%r15b, 162(%rbx)
	shrb	$7, %r14b
	addl	%edi, %edi
	addl	%esi, %esi
	sarb	$7, %al
	orl	%edi, %r14d
	movzbl	29(%rsp), %edi
	andl	$-121, %eax
	movb	%r14b, 15(%rsp)
	movb	%r14b, 163(%rbx)
	movzbl	30(%rsp), %r14d
	shrb	$7, %dil
	orl	%esi, %edi
	movl	%r14d, %esi
	movl	%edi, %r15d
	movb	%dil, 164(%rbx)
	addl	%r14d, %r14d
	shrb	$7, %sil
	movl	%esi, %edi
	movzbl	29(%rsp), %esi
	addl	%esi, %esi
	orl	%esi, %edi
	movb	%dil, 165(%rbx)
	movzbl	31(%rsp), %esi
	shrb	$7, %sil
	orl	%r14d, %esi
	movzbl	31(%rsp), %r14d
	movb	%sil, 166(%rbx)
	addl	%r14d, %r14d
	xorl	%r14d, %eax
	leal	(%rdx,%rdx), %r14d
	movb	%al, 12(%rsp)
	movb	%al, 167(%rbx)
	movl	%ecx, %eax
	addl	%ecx, %ecx
	shrb	$7, %al
	orl	%eax, %r14d
	movl	%r13d, %eax
	addl	%r13d, %r13d
	shrb	$7, %al
	movb	%r14b, 168(%rbx)
	movl	%eax, %r14d
	orl	%r14d, %ecx
	movb	%cl, 169(%rbx)
	movl	%r12d, %ecx
	addl	%r12d, %r12d
	shrb	$7, %cl
	orl	%r13d, %ecx
	movb	%cl, 170(%rbx)
	movl	%ebp, %ecx
	addl	%ebp, %ebp
	shrb	$7, %cl
	orl	%r12d, %ecx
	movb	%cl, 171(%rbx)
	movl	%r11d, %ecx
	addl	%r11d, %r11d
	shrb	$7, %cl
	orl	%ebp, %ecx
	movb	%cl, 172(%rbx)
	movl	%r10d, %ecx
	shrb	$7, %cl
	orl	%r11d, %ecx
	addl	%r10d, %r10d
	sarb	$7, %dl
	movb	%cl, 173(%rbx)
	movl	%r9d, %ecx
	addl	%r9d, %r9d
	andl	$-121, %edx
	shrb	$7, %cl
	orl	%r10d, %ecx
	movzbl	13(%rsp), %r10d
	movb	%cl, 174(%rbx)
	movl	%r8d, %ecx
	addl	%r8d, %r8d
	shrb	$7, %cl
	orl	%r9d, %ecx
	movzbl	14(%rsp), %r9d
	movb	%cl, 175(%rbx)
	movl	%r10d, %ecx
	shrb	$7, %cl
	orl	%r8d, %ecx
	movl	%r9d, %r8d
	movb	%cl, 176(%rbx)
	leal	(%r10,%r10), %ecx
	movzbl	15(%rsp), %r10d
	shrb	$7, %r8b
	orl	%r8d, %ecx
	movl	%r10d, %r8d
	movb	%cl, 177(%rbx)
	leal	(%r9,%r9), %ecx
	shrb	$7, %r8b
	orl	%r8d, %ecx
	movl	%r15d, %r8d
	shrb	$7, %r8b
	movb	%cl, 178(%rbx)
	leal	(%r10,%r10), %ecx
	orl	%r8d, %ecx
	movl	%edi, %r8d
	addl	%edi, %edi
	movb	%cl, 179(%rbx)
	shrb	$7, %r8b
	leal	(%r15,%r15), %ecx
	orl	%r8d, %ecx
	movb	%cl, 180(%rbx)
	movl	%esi, %ecx
	addl	%esi, %esi
	shrb	$7, %cl
	orl	%edi, %ecx
	movzbl	12(%rsp), %edi
	movb	%cl, 181(%rbx)
	movl	%edi, %eax
	shrb	$7, %al
	movl	%eax, %ecx
	movl	%edi, %eax
	addl	%eax, %eax
	orl	%esi, %ecx
	xorl	%eax, %edx
	movb	%cl, 182(%rbx)
	movb	%dl, 183(%rbx)
	jmp	.L19219
.L19231:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1330:

	.size	CMAC_Init, .-CMAC_Init
# WAS .section	.text.CMAC_Update,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_Update
	.type	CMAC_Update, @function
.LCMAC_Update_local_target:
CMAC_Update:
.LFB1332:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	EVP_CIPHER_CTX_block_size@PLT
	call	.LEVP_CIPHER_CTX_block_size_local_target
	movl	%eax, %ebx
	movl	200(%rbp), %eax
	testl	%eax, %eax
	jne	.L19234
	leaq	16(%rsp), %r14
	cmpq	%r13, %rbx
	jb	.L19242
	testq	%r13, %r13
	jne	.L19243
.L19244:

	movl	%r13d, 200(%rbp)
.L19238:

	movl	$1, %ebx
	jmp	.L19240
	.p2align 4,,10
	.p2align 3
.L19264:

	subq	%rbx, %r13
	addq	%rbx, %r15
	cmpq	%r13, %rbx
	jnb	.L19243
.L19242:

	movq	%rbx, %rcx
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%rbp, %rdi
# WAS call	EVP_Cipher@PLT
	call	.LEVP_Cipher_local_target
	testl	%eax, %eax
	jne	.L19264
.L19241:

	xorl	%ebx, %ebx
.L19240:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19265
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19234:

	.cfi_restore_state
	movl	%eax, %edi
	movq	%rbx, %r12
	leaq	184(%rbp), %r8
	subq	%rdi, %r12
	cmpq	%r13, %r12
	cmova	%r13, %r12
	testq	%r12, %r12
	jne	.L19266
	addl	%r12d, %eax
	movl	%eax, 200(%rbp)
	subq	%r12, %r13
	je	.L19238
.L19267:

	leaq	16(%rsp), %r14
	movq	%r8, %rdx
	movq	%rbx, %rcx
	movq	%rbp, %rdi
	movq	%r14, %rsi
	movq	%r8, 8(%rsp)
# WAS call	EVP_Cipher@PLT
	call	.LEVP_Cipher_local_target
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L19241
	addq	%r12, %r15
	cmpq	%r13, %rbx
	jb	.L19242
	movq	%r13, %rdx
	movq	%r15, %rsi
	movq	%r8, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L19244
	.p2align 4,,10
	.p2align 3
.L19266:

	addq	%r8, %rdi
	movq	%r12, %rdx
	movq	%r15, %rsi
	movq	%r8, 8(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movl	200(%rbp), %eax
	movq	8(%rsp), %r8
	addl	%r12d, %eax
	movl	%eax, 200(%rbp)
	subq	%r12, %r13
	je	.L19238
	jmp	.L19267
	.p2align 4,,10
	.p2align 3
.L19243:

	leaq	184(%rbp), %r8
	movq	%r13, %rdx
	movq	%r15, %rsi
	movq	%r8, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	jmp	.L19244
.L19265:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1332:

	.size	CMAC_Update, .-CMAC_Update
# WAS .section	.text.CMAC_Final,"ax",@progbits
.text
	.p2align 4
	.globl	CMAC_Final
	.type	CMAC_Final, @function
.LCMAC_Final_local_target:
CMAC_Final:
.LFB1333:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbx, %rdi
# WAS call	EVP_CIPHER_CTX_block_size@PLT
	call	.LEVP_CIPHER_CTX_block_size_local_target
	movl	%eax, %r13d
	movq	%r13, (%r14)
	testq	%rbp, %rbp
	je	.L19354
	movl	200(%rbx), %eax
	movq	%r13, %r12
	cmpl	%eax, %r13d
	je	.L19355
	movl	%eax, %edx
	movq	%r13, %rcx
	addl	$1, %eax
	movb	$-128, 184(%rbx,%rdx)
	subq	%rax, %rcx
	jne	.L19356
.L19273:

	leaq	168(%rbx), %rax
.L19272:

	testl	%r12d, %r12d
	je	.L19274
	leal	-1(%r12), %ecx
	cmpl	$6, %ecx
	jbe	.L19275
	leaq	-185(%rbp), %rdx
	subq	%rbx, %rdx
	cmpq	$14, %rdx
	jbe	.L19276
	leaq	-1(%rbp), %rdx
	subq	%rax, %rdx
	cmpq	$14, %rdx
	jbe	.L19276
	cmpl	$14, %ecx
	jbe	.L19286
	movdqu	184(%rbx), %xmm0
	movdqu	(%rax), %xmm2
	movl	%r12d, %edx
	andl	$-16, %edx
	pxor	%xmm2, %xmm0
	movups	%xmm0, 0(%rbp)
	testb	$15, %r12b
	je	.L19274
	movl	%r12d, %esi
	subl	%edx, %esi
	leal	-1(%rsi), %ecx
	cmpl	$6, %ecx
	jbe	.L19279
.L19277:

	movl	%edx, %ecx
	movq	184(%rbx,%rcx), %xmm1
	movq	(%rax,%rcx), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, 0(%rbp,%rcx)
	movl	%esi, %ecx
	andl	$-8, %ecx
	addl	%ecx, %edx
	andl	$7, %esi
	je	.L19274
.L19279:

	movl	%edx, %ecx
	movzbl	(%rax,%rcx), %esi
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	leal	1(%rdx), %ecx
	cmpl	%r12d, %ecx
	jnb	.L19274
	movzbl	(%rax,%rcx), %esi
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	leal	2(%rdx), %ecx
	cmpl	%r12d, %ecx
	jnb	.L19274
	movzbl	(%rax,%rcx), %esi
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	leal	3(%rdx), %ecx
	cmpl	%r12d, %ecx
	jnb	.L19274
	movzbl	(%rax,%rcx), %esi
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	leal	4(%rdx), %ecx
	cmpl	%r12d, %ecx
	jnb	.L19274
	movzbl	(%rax,%rcx), %esi
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	leal	5(%rdx), %ecx
	cmpl	%r12d, %ecx
	jnb	.L19274
	movzbl	(%rax,%rcx), %esi
	addl	$6, %edx
	xorb	184(%rbx,%rcx), %sil
	movb	%sil, 0(%rbp,%rcx)
	cmpl	%r12d, %edx
	jnb	.L19274
	movzbl	(%rax,%rdx), %eax
	xorb	184(%rbx,%rdx), %al
	movb	%al, 0(%rbp,%rdx)
	.p2align 4,,10
	.p2align 3
.L19274:

	movq	%rbp, %rdx
	movq	%rbp, %rsi
	movq	%r13, %rcx
	movq	%rbx, %rdi
# WAS call	EVP_Cipher@PLT
	call	.LEVP_Cipher_local_target
	movl	%eax, %ebp
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testl	%ebp, %ebp
	je	.L19268
.L19270:

	movl	24(%rbx), %eax
	subl	$16, %eax
	andl	$-17, %eax
	je	.L19357
.L19268:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19356:

	.cfi_restore_state
	leaq	185(%rbx,%rdx), %rdi
	xorl	%esi, %esi
	movq	%rcx, %rdx
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L19273
	.p2align 4,,10
	.p2align 3
.L19276:

	movzbl	(%rax), %edx
	xorb	184(%rbx), %dl
	movb	%dl, 0(%rbp)
	movzbl	1(%rax), %edx
	xorb	185(%rbx), %dl
	movb	%dl, 1(%rbp)
.L19285:

	movzbl	186(%rbx), %edx
	xorb	2(%rax), %dl
	movb	%dl, 2(%rbp)
	cmpl	$3, %r12d
	je	.L19274
	movzbl	187(%rbx), %edx
	xorb	3(%rax), %dl
	movb	%dl, 3(%rbp)
	cmpl	$4, %r12d
	je	.L19274
	movzbl	188(%rbx), %edx
	xorb	4(%rax), %dl
	movb	%dl, 4(%rbp)
	cmpl	$5, %r12d
	je	.L19274
	movzbl	189(%rbx), %edx
	xorb	5(%rax), %dl
	movb	%dl, 5(%rbp)
	cmpl	$6, %r12d
	je	.L19274
	movzbl	190(%rbx), %edx
	xorb	6(%rax), %dl
	movb	%dl, 6(%rbp)
	cmpl	$7, %r12d
	je	.L19274
	movzbl	191(%rbx), %edx
	xorb	7(%rax), %dl
	movb	%dl, 7(%rbp)
	cmpl	$8, %r12d
	je	.L19274
	movzbl	192(%rbx), %edx
	xorb	8(%rax), %dl
	movb	%dl, 8(%rbp)
	cmpl	$9, %r12d
	je	.L19274
	movzbl	193(%rbx), %edx
	xorb	9(%rax), %dl
	movb	%dl, 9(%rbp)
	cmpl	$10, %r12d
	je	.L19274
	movzbl	194(%rbx), %edx
	xorb	10(%rax), %dl
	movb	%dl, 10(%rbp)
	cmpl	$11, %r12d
	je	.L19274
	movzbl	195(%rbx), %edx
	xorb	11(%rax), %dl
	movb	%dl, 11(%rbp)
	cmpl	$12, %r12d
	je	.L19274
	movzbl	196(%rbx), %edx
	xorb	12(%rax), %dl
	movb	%dl, 12(%rbp)
	cmpl	$13, %r12d
	je	.L19274
	movzbl	197(%rbx), %edx
	xorb	13(%rax), %dl
	movb	%dl, 13(%rbp)
	cmpl	$14, %r12d
	je	.L19274
	movzbl	198(%rbx), %edx
	xorb	14(%rax), %dl
	movb	%dl, 14(%rbp)
	cmpl	$15, %r12d
	je	.L19274
	movzbl	15(%rax), %eax
	xorb	199(%rbx), %al
	movb	%al, 15(%rbp)
	jmp	.L19274
	.p2align 4,,10
	.p2align 3
.L19355:

	leaq	152(%rbx), %rax
	jmp	.L19272
	.p2align 4,,10
	.p2align 3
.L19357:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19354:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	$1, %ebp
	jmp	.L19270
	.p2align 4,,10
	.p2align 3
.L19275:

	movzbl	184(%rbx), %edx
	xorb	(%rax), %dl
	movb	%dl, 0(%rbp)
	cmpl	$1, %r12d
	je	.L19274
	movzbl	185(%rbx), %edx
	xorb	1(%rax), %dl
	movb	%dl, 1(%rbp)
	cmpl	$2, %r12d
	jne	.L19285
	jmp	.L19274
	.p2align 4,,10
	.p2align 3
.L19286:

	movl	%r12d, %esi
	xorl	%edx, %edx
	jmp	.L19277
	.cfi_endproc
.LFE1333:

	.size	CMAC_Final, .-CMAC_Final
# WAS .section	.text.AES_CMAC,"ax",@progbits
.text
	.p2align 4
	.globl	AES_CMAC
	.type	AES_CMAC, @function
.LAES_CMAC_local_target:
AES_CMAC:
.LFB1324:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$264, %rsp
	.cfi_def_cfa_offset 320
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	xorl	%eax, %eax
	cmpq	$16, %rdx
	je	.L19359
	cmpq	$32, %rdx
	jne	.L19378
# WAS call	EVP_aes_256_cbc@PLT
	call	.LEVP_aes_256_cbc_local_target
	movq	%rax, %rcx
.L19362:

	leaq	32(%rsp), %r15
	movq	%rcx, 8(%rsp)
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%r15, %rdi
# WAS call	EVP_CIPHER_CTX_init@PLT
	call	.LEVP_CIPHER_CTX_init_local_target
	movq	8(%rsp), %rcx
	xorl	%r8d, %r8d
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	CMAC_Init@PLT
	call	.LCMAC_Init_local_target
	testl	%eax, %eax
	je	.L19363
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	CMAC_Update@PLT
	call	.LCMAC_Update_local_target
	testl	%eax, %eax
	jne	.L19379
.L19363:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%ebx, %ebx
.L19365:

	movq	%r15, %rdi
# WAS call	EVP_CIPHER_CTX_cleanup@PLT
	call	.LEVP_CIPHER_CTX_cleanup_local_target
	leaq	184(%rsp), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	200(%rsp), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	216(%rsp), %rdi
	movl	$16, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L19358:

	movq	248(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19380
	addq	$264, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19378:

	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L19358
	.p2align 4,,10
	.p2align 3
.L19359:

# WAS call	EVP_aes_128_cbc@PLT
	call	.LEVP_aes_128_cbc_local_target
	movq	%rax, %rcx
	jmp	.L19362
	.p2align 4,,10
	.p2align 3
.L19379:

	leaq	24(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	CMAC_Final@PLT
	call	.LCMAC_Final_local_target
	testl	%eax, %eax
	je	.L19363
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	56(%rsp), %eax
	subl	$16, %eax
	andl	$-17, %eax
	je	.L19364
.L19366:

	movl	$1, %ebx
	jmp	.L19365
	.p2align 4,,10
	.p2align 3
.L19364:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L19366
.L19380:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1324:

	.size	AES_CMAC, .-AES_CMAC
# WAS .section	.text.EVP_DigestVerifyFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestVerifyFinal
	.type	EVP_DigestVerifyFinal, @function
.LEVP_DigestVerifyFinal_local_target:
EVP_DigestVerifyFinal:
.LFB2119:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$144, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	movq	24(%rdi), %rax
	movq	(%rax), %rax
	cmpq	$0, 72(%rax)
	je	.L19382
	cmpq	$2048, 40(%rdi)
	movq	%rdi, %rbx
	je	.L19382
	leaq	16(%rsp), %rbp
	movq	%rsi, %r12
	movq	%rdx, %r13
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	EVP_MD_CTX_copy_ex@PLT
	call	.LEVP_MD_CTX_copy_ex_local_target
	testl	%eax, %eax
	jne	.L19395
.L19383:

	movq	%rbp, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L19381:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19396
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19382:

	.cfi_restore_state
	movl	$240, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L19381
	.p2align 4,,10
	.p2align 3
.L19395:

	leaq	64(%rsp), %r14
	leaq	12(%rsp), %rdx
	movq	%rbp, %rdi
	movq	%r14, %rsi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	testl	%eax, %eax
	je	.L19383
	movq	24(%rbx), %rdi
	movl	12(%rsp), %r8d
	movq	%r14, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
# WAS call	EVP_PKEY_verify@PLT
	call	.LEVP_PKEY_verify_local_target
	testl	%eax, %eax
	je	.L19383
	movq	%rbp, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS leaq	is_md_fips_approved_for_verifying(%rip), %rdx
	leaq	.Lis_md_fips_approved_for_verifying_local_target(%rip), %rdx
	movl	$1, %esi
	movq	%rbx, %rdi
# WAS call	evp_md_ctx_verify_service_indicator
	call	.Levp_md_ctx_verify_service_indicator_local_target
	movl	$1, %eax
	jmp	.L19381
.L19396:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2119:

	.size	EVP_DigestVerifyFinal, .-EVP_DigestVerifyFinal
# WAS .section	.text.EVP_DigestVerify,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestVerify
	.type	EVP_DigestVerify, @function
.LEVP_DigestVerify_local_target:
EVP_DigestVerify:
.LFB2121:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%r8, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	24(%rbx), %rdi
	movq	(%rdi), %rax
	cmpq	$0, 72(%rax)
	je	.L19398
	cmpq	$2048, 40(%rbx)
	je	.L19398
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestVerifyUpdate@PLT
	call	.LEVP_DigestVerifyUpdate_local_target
	testl	%eax, %eax
	je	.L19401
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestVerifyFinal@PLT
	call	.LEVP_DigestVerifyFinal_local_target
	testl	%eax, %eax
	jne	.L19409
.L19401:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%ebp, %ebp
.L19411:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19398:

	.cfi_restore_state
	movq	80(%rax), %rax
	testq	%rax, %rax
	je	.L19410
	movq	%rbp, %rcx
	movq	%r12, %r8
	movq	%r14, %rdx
	movq	%r13, %rsi
	call	*%rax
	movl	%eax, %ebp
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testl	%ebp, %ebp
	jle	.L19397
.L19402:

# WAS leaq	is_md_fips_approved_for_verifying(%rip), %rdx
	leaq	.Lis_md_fips_approved_for_verifying_local_target(%rip), %rdx
	movl	$1, %esi
	movq	%rbx, %rdi
# WAS call	evp_md_ctx_verify_service_indicator
	call	.Levp_md_ctx_verify_service_indicator_local_target
.L19397:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19410:

	.cfi_restore_state
	movl	$318, %r8d
	movl	$125, %edx
	xorl	%esi, %esi
	xorl	%ebp, %ebp
	leaq	.LC276(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19411
	.p2align 4,,10
	.p2align 3
.L19409:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	$1, %ebp
	jmp	.L19402
	.cfi_endproc
.LFE2121:

	.size	EVP_DigestVerify, .-EVP_DigestVerify
# WAS .section	.text.HMAC_Final,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_Final
	.type	HMAC_Final, @function
.LHMAC_Final_local_target:
HMAC_Final:
.LFB2376:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	testq	%rsi, %rsi
	je	.L19414
	movzbl	664(%rdi), %eax
	movq	8(%rdi), %r13
	movq	%rdi, %rbp
	subl	$1, %eax
	cmpb	$1, %al
	jbe	.L19444
.L19414:

	xorl	%eax, %eax
.L19412:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19445
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19444:

	.cfi_restore_state
	movq	%rsi, %r14
	leaq	16(%rbp), %rbx
	leaq	16(%rsp), %r15
	movq	%rdx, %r12
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	0(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movq	%rax, (%rsp)
	call	*32(%r13)
	testl	%eax, %eax
	je	.L19418
	movdqu	448(%rbp), %xmm0
	movslq	(%rsp), %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
	movdqu	464(%rbp), %xmm1
	movups	%xmm0, 16(%rbp)
	movups	%xmm1, 16(%rbx)
	movdqu	480(%rbp), %xmm2
	movups	%xmm2, 32(%rbx)
	movdqu	496(%rbp), %xmm3
	movups	%xmm3, 48(%rbx)
	movdqu	512(%rbp), %xmm4
	movups	%xmm4, 64(%rbx)
	movdqu	528(%rbp), %xmm5
	movups	%xmm5, 80(%rbx)
	movdqu	544(%rbp), %xmm6
	movups	%xmm6, 96(%rbx)
	movdqu	560(%rbp), %xmm7
	movups	%xmm7, 112(%rbx)
	movdqu	576(%rbp), %xmm0
	movups	%xmm0, 128(%rbx)
	movdqu	592(%rbp), %xmm1
	movups	%xmm1, 144(%rbx)
	movdqu	608(%rbp), %xmm2
	movups	%xmm2, 160(%rbx)
	movdqu	624(%rbp), %xmm3
	movups	%xmm3, 176(%rbx)
	movdqu	640(%rbp), %xmm4
	movups	%xmm4, 192(%rbx)
	movq	656(%rbp), %rax
	movq	%rax, 208(%rbx)
	movq	8(%rbp), %rax
	call	*24(%rax)
	testl	%eax, %eax
	je	.L19418
	movq	%rbx, %rsi
	movq	%r14, %rdi
	call	*32(%r13)
	movdqu	232(%rbp), %xmm5
	movdqu	248(%rbp), %xmm6
	movl	%eax, %r13d
	movups	%xmm5, 16(%rbp)
	movups	%xmm6, 16(%rbx)
	movdqu	264(%rbp), %xmm7
	movups	%xmm7, 32(%rbx)
	movdqu	280(%rbp), %xmm5
	movups	%xmm5, 48(%rbx)
	movdqu	296(%rbp), %xmm6
	movups	%xmm6, 64(%rbx)
	movdqu	312(%rbp), %xmm7
	movups	%xmm7, 80(%rbx)
	movdqu	328(%rbp), %xmm0
	movups	%xmm0, 96(%rbx)
	movdqu	344(%rbp), %xmm1
	movups	%xmm1, 112(%rbx)
	movdqu	360(%rbp), %xmm2
	movups	%xmm2, 128(%rbx)
	movdqu	376(%rbp), %xmm3
	movups	%xmm3, 144(%rbx)
	movdqu	392(%rbp), %xmm4
	movups	%xmm4, 160(%rbx)
	movdqu	408(%rbp), %xmm5
	movups	%xmm5, 176(%rbx)
	movdqu	424(%rbp), %xmm6
	movups	%xmm6, 192(%rbx)
	movq	440(%rbp), %rax
	movq	%rax, 208(%rbx)
	movb	$3, 664(%rbp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testl	%r13d, %r13d
	jne	.L19446
.L19417:

	testq	%r12, %r12
	je	.L19414
	movl	$0, (%r12)
	jmp	.L19414
	.p2align 4,,10
	.p2align 3
.L19446:

	movq	8(%rsp), %rax
	movl	(%rax), %eax
	cmpl	$962, %eax
	je	.L19419
	jg	.L19420
	cmpl	$64, %eax
	je	.L19419
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L19421
.L19419:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L19421:

	testq	%r12, %r12
	je	.L19422
	movl	(%rsp), %eax
	movl	%eax, (%r12)
.L19422:

	movl	$1, %eax
	jmp	.L19412
	.p2align 4,,10
	.p2align 3
.L19418:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19417
	.p2align 4,,10
	.p2align 3
.L19420:

	cmpl	$978, %eax
	jne	.L19421
	jmp	.L19419
.L19445:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2376:

	.size	HMAC_Final, .-HMAC_Final
# WAS .section	.text.sskdf_variant_hmac_compute,"ax",@progbits
.text
	.p2align 4
	.type	sskdf_variant_hmac_compute, @function
.Lsskdf_variant_hmac_compute_local_target:
sskdf_variant_hmac_compute:
.LFB2397:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rdx
	movq	%rdx, 24(%rsp)
	xorl	%edx, %edx
	movq	96(%rsp), %r9
	testq	%rdi, %rdi
	je	.L19450
	movq	(%rdi), %r15
	movq	%r9, 8(%rsp)
	testq	%r15, %r15
	je	.L19450
	testq	%rsi, %rsi
	movq	%rsi, %rbp
	movq	%rcx, %rbx
	sete	%al
	testq	%rcx, %rcx
	sete	%dl
	orb	%dl, %al
	jne	.L19450
	movq	%r8, %r12
	testq	%r8, %r8
	je	.L19450
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L19450
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	jne	.L19474
	.p2align 4,,10
	.p2align 3
.L19450:

	xorl	%eax, %eax
.L19447:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19475
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19474:

	.cfi_restore_state
	movq	(%r15), %rdi
	movl	$4, %edx
	movq	%rbx, %rsi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19450
	movq	(%r15), %rdi
	movq	%r13, %rdx
	movq	%r12, %rsi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19450
	movq	(%r15), %rdi
	movq	104(%rsp), %rdx
	movq	8(%rsp), %rsi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19450
	movq	(%r15), %rdi
	leaq	20(%rsp), %rdx
	movq	%rbp, %rsi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19450
	movl	20(%rsp), %eax
	cmpq	%r14, %rax
	sete	%al
	movzbl	%al, %eax
	jmp	.L19447
.L19475:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2397:

	.size	sskdf_variant_hmac_compute, .-sskdf_variant_hmac_compute
# WAS .section	.text.tls1_P_hash,"ax",@progbits
.text
	.p2align 4
	.type	tls1_P_hash, @function
.Ltls1_P_hash_local_target:
tls1_P_hash:
.LFB2911:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	movq	%rdx, %rdi
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$2248, %rsp
	.cfi_def_cfa_offset 2304
	movq	2312(%rsp), %rax
	movq	%rsi, 48(%rsp)
	leaq	80(%rsp), %rbx
	leaq	752(%rsp), %r15
	movq	%r9, 16(%rsp)
	leaq	1424(%rsp), %rbp
	movq	%rax, 24(%rsp)
	movq	2328(%rsp), %rax
	movq	%rax, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 2232(%rsp)
	xorl	%eax, %eax
	movq	%rdx, 8(%rsp)
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbx, %rdi
	movq	%rax, 40(%rsp)
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	%r15, %rdi
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	movq	8(%rsp), %rcx
	xorl	%r8d, %r8d
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%rbp, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	leaq	2096(%rsp), %rcx
	testl	%eax, %eax
	jne	.L19559
.L19478:

	xorl	%r12d, %r12d
.L19492:

	movq	%rcx, %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movq	%r15, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movq	2232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19560
	addq	$2248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19559:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_CTX_copy_ex@PLT
	call	.LHMAC_CTX_copy_ex_local_target
	leaq	2096(%rsp), %rcx
	testl	%eax, %eax
	je	.L19478
	movq	2304(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%rbx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	movq	8(%rsp), %rcx
	testl	%eax, %eax
	je	.L19478
	movq	2320(%rsp), %rdx
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	movq	8(%rsp), %rcx
	testl	%eax, %eax
	je	.L19478
	movq	2336(%rsp), %rdx
	movq	32(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	movq	8(%rsp), %rcx
	testl	%eax, %eax
	je	.L19478
	leaq	72(%rsp), %rax
	movq	%rcx, %rsi
	movq	%rbx, %rdi
	movq	%rcx, 56(%rsp)
	movq	%rax, %rdx
	movq	%rax, 8(%rsp)
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	movq	56(%rsp), %rcx
	testl	%eax, %eax
	je	.L19478
	leaq	76(%rsp), %rax
	movq	48(%rsp), %r13
	movq	%rcx, %r14
	movq	%rax, 56(%rsp)
	jmp	.L19491
	.p2align 4,,10
	.p2align 3
.L19561:

	movdqu	(%r12), %xmm0
	movq	%rax, %rdx
	pxor	2160(%rsp), %xmm0
	shrq	$4, %rdx
	movups	%xmm0, (%r12)
	cmpq	$1, %rdx
	je	.L19486
	movdqu	16(%r12), %xmm0
	pxor	2176(%rsp), %xmm0
	movups	%xmm0, 16(%r12)
	cmpq	$2, %rdx
	je	.L19486
	movdqu	32(%r12), %xmm0
	pxor	2192(%rsp), %xmm0
	movups	%xmm0, 32(%r12)
	cmpq	$3, %rdx
	je	.L19486
	movdqu	48(%r12), %xmm0
	pxor	2208(%rsp), %xmm0
	movups	%xmm0, 48(%r12)
.L19486:

	movq	%rax, %rdx
	andq	$-16, %rdx
	testb	$15, %al
	je	.L19484
.L19485:

	movq	%rax, %rsi
	subq	%rdx, %rsi
	leaq	-1(%rsi), %rdi
	cmpq	$6, %rdi
	jbe	.L19488
	movq	2160(%rsp,%rdx), %xmm1
	leaq	(%r12,%rdx), %rdi
	movq	(%rdi), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rdi)
	movq	%rsi, %rdi
	andq	$-8, %rdi
	addq	%rdi, %rdx
	andl	$7, %esi
	je	.L19484
.L19488:

	movzbl	2160(%rsp,%rdx), %esi
	xorb	%sil, (%r12,%rdx)
	leaq	1(%rdx), %rsi
	cmpq	%rax, %rsi
	jnb	.L19484
	movzbl	2161(%rsp,%rdx), %edi
	xorb	%dil, (%r12,%rsi)
	leaq	2(%rdx), %rsi
	cmpq	%rax, %rsi
	jnb	.L19484
	movzbl	2162(%rsp,%rdx), %edi
	xorb	%dil, (%r12,%rsi)
	leaq	3(%rdx), %rsi
	cmpq	%rax, %rsi
	jnb	.L19484
	movzbl	2163(%rsp,%rdx), %edi
	xorb	%dil, (%r12,%rsi)
	leaq	4(%rdx), %rsi
	cmpq	%rax, %rsi
	jnb	.L19484
	movzbl	2164(%rsp,%rdx), %edi
	xorb	%dil, (%r12,%rsi)
	leaq	5(%rdx), %rsi
	cmpq	%rax, %rsi
	jnb	.L19484
	movzbl	2165(%rsp,%rdx), %edi
	addq	$6, %rdx
	xorb	%dil, (%r12,%rsi)
	cmpq	%rax, %rdx
	jnb	.L19484
	movzbl	2160(%rsp,%rdx), %esi
	xorb	%sil, (%r12,%rdx)
.L19484:

	addq	%rax, %r12
	subq	%rax, %r13
	je	.L19490
	movq	8(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19557
.L19491:

	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_CTX_copy_ex@PLT
	call	.LHMAC_CTX_copy_ex_local_target
	testl	%eax, %eax
	je	.L19557
	movl	72(%rsp), %edx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19557
	cmpq	%r13, 40(%rsp)
	jnb	.L19483
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_CTX_copy_ex@PLT
	call	.LHMAC_CTX_copy_ex_local_target
	testl	%eax, %eax
	je	.L19557
.L19483:

	movq	2304(%rsp), %rdx
	movq	16(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19557
	movq	2320(%rsp), %rdx
	movq	24(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19557
	movq	2336(%rsp), %rdx
	movq	32(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19557
	movq	56(%rsp), %rdx
	leaq	2160(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19557
	movl	76(%rsp), %eax
	cmpq	%r13, %rax
	cmova	%r13, %rax
	testq	%rax, %rax
	je	.L19484
	leaq	-1(%rax), %rdx
	cmpq	$14, %rdx
	ja	.L19561
	xorl	%edx, %edx
	jmp	.L19485
	.p2align 4,,10
	.p2align 3
.L19557:

	movq	%r14, %rcx
	jmp	.L19478
.L19490:

	movq	%r14, %rcx
	movl	$1, %r12d
	jmp	.L19492
.L19560:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2911:

	.size	tls1_P_hash, .-tls1_P_hash
# WAS .section	.text.EVP_DigestSignFinal,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestSignFinal
	.type	EVP_DigestSignFinal, @function
.LEVP_DigestSignFinal_local_target:
EVP_DigestSignFinal:
.LFB2118:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	movq	24(%rdi), %rax
	movq	(%rax), %rax
	cmpq	$0, 48(%rax)
	je	.L19587
	testq	%rsi, %rsi
	jne	.L19579
	cmpq	$2048, 40(%rdi)
	je	.L19577
	movq	(%rdi), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rax, %r8
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19586
	movq	24(%rbx), %rdi
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movq	%r12, %rdx
	xorl	%ecx, %ecx
	popq	%rbx
	.cfi_def_cfa_offset 40
	xorl	%esi, %esi
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	EVP_PKEY_sign@PLT
	jmp	.LEVP_PKEY_sign_local_target
	.p2align 4,,10
	.p2align 3
.L19579:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	16(%rsp), %r13
	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	%rbx, %rsi
	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_copy_ex@PLT
	call	.LEVP_MD_CTX_copy_ex_local_target
	testl	%eax, %eax
	jne	.L19567
.L19585:

	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L19562:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19586
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19587:

	.cfi_restore_state
	cmpq	$2048, 40(%rdi)
	je	.L19564
	movl	$194, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L19562
	.p2align 4,,10
	.p2align 3
.L19567:

	cmpq	$2048, 40(%rbx)
	je	.L19588
.L19569:

	leaq	64(%rsp), %r14
	leaq	12(%rsp), %rdx
	movq	%r13, %rdi
	movq	%r14, %rsi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	testl	%eax, %eax
	je	.L19585
	movq	24(%rbx), %rdi
	movl	12(%rsp), %r8d
	movq	%r14, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	EVP_PKEY_sign@PLT
	call	.LEVP_PKEY_sign_local_target
	testl	%eax, %eax
	je	.L19585
	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L19576:

# WAS leaq	is_md_fips_approved_for_signing(%rip), %rdx
	leaq	.Lis_md_fips_approved_for_signing_local_target(%rip), %rdx
	xorl	%esi, %esi
	movq	%rbx, %rdi
# WAS call	evp_md_ctx_verify_service_indicator
	call	.Levp_md_ctx_verify_service_indicator_local_target
	movl	$1, %eax
	jmp	.L19562
	.p2align 4,,10
	.p2align 3
.L19564:

	testq	%rsi, %rsi
	jne	.L19579
.L19577:

	movq	%rbx, %rdi
# WAS call	EVP_MD_CTX_size@PLT
	call	.LEVP_MD_CTX_size_local_target
	movq	%rax, (%r12)
	movl	$1, %eax
	jmp	.L19562
	.p2align 4,,10
	.p2align 3
.L19588:

	cmpq	$0, 24(%rbx)
	je	.L19569
	movq	(%r12), %r14
	movq	%r13, %rdi
# WAS call	EVP_MD_CTX_size@PLT
	call	.LEVP_MD_CTX_size_local_target
	cmpq	%rax, %r14
	jb	.L19589
	movq	40(%rsp), %rax
	leaq	12(%rsp), %rdx
	movq	%rbp, %rsi
	movq	40(%rax), %rdi
	addq	$8, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19585
	movl	12(%rsp), %eax
	movq	%r13, %rdi
	movq	%rax, (%r12)
# WAS call	EVP_MD_CTX_cleanup@PLT
	call	.LEVP_MD_CTX_cleanup_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19576
.L19589:

	movl	$94, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19585
.L19586:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2118:

	.size	EVP_DigestSignFinal, .-EVP_DigestSignFinal
# WAS .section	.text.EVP_DigestSign,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestSign
	.type	EVP_DigestSign, @function
.LEVP_DigestSign_local_target:
EVP_DigestSign:
.LFB2120:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	24(%rbx), %rdi
	movq	(%rdi), %rax
	cmpq	$0, 48(%rax)
	jne	.L19591
	cmpq	$2048, 40(%rbx)
	je	.L19591
	movq	56(%rax), %rax
	testq	%rax, %rax
	je	.L19609
	movq	%r12, %rcx
	movq	%r13, %r8
	movq	%r14, %rdx
	movq	%rbp, %rsi
	call	*%rax
	movl	%eax, %r12d
.L19596:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testl	%r12d, %r12d
	jle	.L19590
	testq	%rbp, %rbp
	je	.L19590
# WAS leaq	is_md_fips_approved_for_signing(%rip), %rdx
	leaq	.Lis_md_fips_approved_for_signing_local_target(%rip), %rdx
	xorl	%esi, %esi
	movq	%rbx, %rdi
# WAS call	evp_md_ctx_verify_service_indicator
	call	.Levp_md_ctx_verify_service_indicator_local_target
.L19590:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%r12d, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19591:

	.cfi_restore_state
	testq	%rbp, %rbp
	je	.L19594
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestSignUpdate@PLT
	call	.LEVP_DigestSignUpdate_local_target
	testl	%eax, %eax
	jne	.L19594
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L19597:

	xorl	%r12d, %r12d
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	movl	%r12d, %eax
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19594:

	.cfi_restore_state
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EVP_DigestSignFinal@PLT
	call	.LEVP_DigestSignFinal_local_target
	movl	%eax, %r12d
	jmp	.L19596
	.p2align 4,,10
	.p2align 3
.L19609:

	movl	$285, %r8d
	leaq	.LC276(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19597
	.cfi_endproc
.LFE2120:

	.size	EVP_DigestSign, .-EVP_DigestSign
# WAS .section	.text.RSA_check_fips,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_check_fips
	.type	RSA_check_fips, @function
.LRSA_check_fips_local_target:
RSA_check_fips:
.LFB2742:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$136, %rsp
	.cfi_def_cfa_offset 192
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	cmpq	$0, 8(%rdi)
	je	.L19611
	cmpq	$0, 16(%rdi)
	movq	24(%rdi), %rax
	movq	%rdi, %r12
	je	.L19611
	movq	32(%rdi), %rdx
	testq	%rax, %rax
	je	.L19673
	testq	%rdx, %rdx
	je	.L19674
	cmpq	$0, 40(%r12)
	je	.L19611
	cmpq	$0, 48(%r12)
	je	.L19675
.L19614:

	cmpq	$0, 48(%r12)
	je	.L19611
	cmpq	$0, 56(%r12)
	je	.L19611
	cmpq	$0, 64(%r12)
	jne	.L19643
	.p2align 4,,10
	.p2align 3
.L19611:

	movl	$1509, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19616:

	xorl	%eax, %eax
.L19610:

	movq	120(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19676
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19673:

	.cfi_restore_state
	testq	%rdx, %rdx
	jne	.L19611
	cmpq	$0, 40(%rdi)
	jne	.L19611
	cmpq	$0, 48(%rdi)
	jne	.L19611
	cmpq	$0, 56(%rdi)
	jne	.L19611
	cmpq	$0, 64(%rdi)
	jne	.L19611
	xorl	%r13d, %r13d
	jmp	.L19613
	.p2align 4,,10
	.p2align 3
.L19675:

	cmpq	$0, 56(%r12)
	je	.L19677
.L19615:

	cmpq	$0, 40(%r12)
	jne	.L19614
	jmp	.L19611
	.p2align 4,,10
	.p2align 3
.L19674:

	cmpq	$0, 40(%r12)
	jne	.L19611
	cmpq	$0, 48(%r12)
	jne	.L19611
	cmpq	$0, 56(%r12)
	jne	.L19611
	cmpq	$0, 64(%r12)
	jne	.L19611
	movl	$1, %r13d
	jmp	.L19613
	.p2align 4,,10
	.p2align 3
.L19643:

	movl	$3, %r13d
.L19613:

	movq	%r12, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	je	.L19616
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L19616
	leaq	32(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	BN_init@PLT
	call	.LBN_init_local_target
	movq	16(%r12), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$16, %eax
	jbe	.L19622
	movq	16(%r12), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$256, %eax
	ja	.L19622
	movq	8(%r12), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L19622
	movq	16(%r12), %rdi
# WAS call	BN_is_odd@PLT
	call	.LBN_is_odd_local_target
	testl	%eax, %eax
	je	.L19622
# WAS call	g_small_factors_once_bss_get@PLT
	call	g_small_factors_once_bss_get
# WAS leaq	g_small_factors_init(%rip), %rsi
	leaq	.Lg_small_factors_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	g_small_factors_storage_bss_get@PLT
	call	g_small_factors_storage_bss_get
	movq	8(%r12), %rsi
	movq	%rbx, %rcx
	movq	%rbp, %rdi
	movq	%rax, %rdx
# WAS call	BN_gcd@PLT
	call	.LBN_gcd_local_target
	testl	%eax, %eax
	je	.L19622
	movq	%rbp, %rdi
# WAS call	BN_is_one@PLT
	call	.LBN_is_one_local_target
	testl	%eax, %eax
	je	.L19622
	movq	8(%r12), %rsi
	xorl	%r8d, %r8d
	xorl	%edx, %edx
	leaq	20(%rsp), %rdi
	movq	%rbx, %rcx
# WAS call	BN_enhanced_miller_rabin_primality_test@PLT
	call	.LBN_enhanced_miller_rabin_primality_test_local_target
	testl	%eax, %eax
	je	.L19622
	cmpl	$2, 20(%rsp)
	jne	.L19622
	testl	%r13d, %r13d
	je	.L19635
	xorl	%eax, %eax
	movb	$0, 119(%rsp)
	movq	%rax, 24(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	movq	%rax, (%rsp)
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L19627
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	EVP_PKEY_set1_RSA@PLT
	call	.LEVP_PKEY_set1_RSA_local_target
	testl	%eax, %eax
	je	.L19627
	leaq	64(%rsp), %r12
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
	movq	(%rsp), %rdx
	xorl	%ecx, %ecx
	xorl	%esi, %esi
	movq	%r14, %r8
	movq	%r12, %rdi
# WAS call	EVP_DigestSignInit@PLT
	call	.LEVP_DigestSignInit_local_target
	testl	%eax, %eax
	je	.L19629
	leaq	24(%rsp), %rax
	leaq	119(%rsp), %r15
	xorl	%esi, %esi
	movq	%r12, %rdi
	movl	$1, %r8d
	movq	%r15, %rcx
	movq	%rax, %rdx
	movq	%rax, 8(%rsp)
# WAS call	EVP_DigestSign@PLT
	call	.LEVP_DigestSign_local_target
	testl	%eax, %eax
	je	.L19629
	movq	24(%rsp), %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L19632
	movq	8(%rsp), %rdx
	movq	%r15, %rcx
	movq	%rax, %rsi
	movq	%r12, %rdi
	movl	$1, %r8d
# WAS call	EVP_DigestSign@PLT
	call	.LEVP_DigestSign_local_target
	testl	%eax, %eax
	je	.L19632
	movq	(%rsp), %rdx
	xorl	%ecx, %ecx
	xorl	%esi, %esi
	movq	%r14, %r8
	movq	%r12, %rdi
# WAS call	EVP_DigestVerifyInit@PLT
	call	.LEVP_DigestVerifyInit_local_target
	testl	%eax, %eax
	jne	.L19633
	leaq	.LC120(%rip), %r15
.L19634:

	movq	%r14, %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	movq	%r13, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L19636:

	movl	$1572, %r8d
	movq	%r15, %rcx
	movl	$146, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19621:

	xorl	%eax, %eax
.L19624:

	movq	%rbp, %rdi
	movl	%eax, (%rsp)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%rbx, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	xorl	%edi, %edi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movl	(%rsp), %eax
	jmp	.L19610
	.p2align 4,,10
	.p2align 3
.L19677:

	cmpq	$0, 64(%r12)
	jne	.L19615
	movl	$2, %r13d
	jmp	.L19613
	.p2align 4,,10
	.p2align 3
.L19622:

	movl	$1546, %r8d
	leaq	.LC120(%rip), %rcx
	movl	$146, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19621
.L19635:

	movl	$1, %eax
	jmp	.L19624
.L19676:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L19633:

	movq	24(%rsp), %rdx
	movq	%r15, %rcx
	movq	%r13, %rsi
	movq	%r12, %rdi
	movl	$1, %r8d
# WAS call	EVP_DigestVerify@PLT
	call	.LEVP_DigestVerify_local_target
	movq	%r14, %rdi
	movl	%eax, %r15d
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	movq	%r13, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	testl	%r15d, %r15d
	jne	.L19635
	leaq	.LC120(%rip), %r15
	jmp	.L19636
.L19627:

	leaq	.LC120(%rip), %r15
	movl	$1435, %r8d
	movl	$68, %edx
	xorl	%esi, %esi
	movq	%r15, %rcx
	movl	$4, %edi
	leaq	64(%rsp), %r12
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19626:

	xorl	%r13d, %r13d
	jmp	.L19634
.L19629:

	leaq	.LC120(%rip), %r15
	movl	$1443, %r8d
	movl	$68, %edx
	xorl	%esi, %esi
	movq	%r15, %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19626
.L19632:

	leaq	.LC120(%rip), %r15
	movl	$1450, %r8d
	movl	$68, %edx
	xorl	%esi, %esi
	movq	%r15, %rcx
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19634
	.cfi_endproc
.LFE2742:

	.size	RSA_check_fips, .-RSA_check_fips
# WAS .section	.text.RSA_generate_key_ex_maybe_fips,"ax",@progbits
.text
	.p2align 4
	.type	RSA_generate_key_ex_maybe_fips, @function
.LRSA_generate_key_ex_maybe_fips_local_target:
RSA_generate_key_ex_maybe_fips:
.LFB2760:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movl	%esi, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	andl	$-128, %r15d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	$4, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%r8d, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdx, 8(%rsp)
	movq	%rcx, 56(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_rsa_bss_get@PLT
	call	g_self_test_once_rsa_bss_get
# WAS leaq	run_self_test_rsa(%rip), %rsi
	leaq	.Lrun_self_test_rsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movl	%r15d, %eax
	movq	%rbx, 16(%rsp)
	sarl	%eax
	movl	%ebp, 28(%rsp)
	movl	%eax, 72(%rsp)
.L19715:

# WAS call	ERR_clear_error@PLT
	call	.Lbcm_redirector_ERR_clear_error
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	movq	%rax, %r14
	testq	%rax, %rax
	je	.L19679
	cmpl	$255, %r15d
	jle	.L19822
	movq	8(%rsp), %rdi
# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	$32, %eax
	ja	.L19823
# WAS call	BN_CTX_new@PLT
	call	.LBN_CTX_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L19683
	movq	%rax, %rdi
# WAS call	BN_CTX_start@PLT
	call	.LBN_CTX_start_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, %rbx
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, %rbp
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 32(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 40(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	movq	%r13, %rdi
	movq	%rax, 48(%rsp)
# WAS call	BN_CTX_get@PLT
	call	.LBN_CTX_get_local_target
	testq	%rbx, %rbx
	je	.L19706
	testq	%rbp, %rbp
	je	.L19706
	cmpq	$0, 32(%rsp)
	je	.L19706
	cmpq	$0, 40(%rsp)
	je	.L19706
	movq	48(%rsp), %rdi
	testq	%rdi, %rdi
	je	.L19706
	testq	%rax, %rax
	movq	%rax, 64(%rsp)
	je	.L19706
	movl	72(%rsp), %eax
	leal	-100(%rax), %esi
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	je	.L19706
	movl	72(%rsp), %esi
	movq	64(%rsp), %rdi
# WAS call	BN_set_bit@PLT
	call	.LBN_set_bit_local_target
	testl	%eax, %eax
	je	.L19706
	cmpq	$0, 8(%r14)
	movq	64(%rsp), %rcx
	je	.L19685
.L19688:

	cmpq	$0, 24(%r14)
	je	.L19824
.L19687:

	cmpq	$0, 16(%r14)
	je	.L19825
.L19690:

	cmpq	$0, 32(%r14)
	je	.L19826
.L19692:

	cmpq	$0, 40(%r14)
	je	.L19827
.L19694:

	cmpq	$0, 48(%r14)
	je	.L19828
.L19696:

	cmpq	$0, 56(%r14)
	je	.L19829
.L19698:

	movq	16(%r14), %rdi
	movq	8(%rsp), %rsi
	movq	%rcx, 64(%rsp)
# WAS call	BN_copy@PLT
	call	.LBN_copy_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	je	.L19706
	movq	40(%rsp), %rdi
	movl	$32, %edx
	movq	%rcx, 64(%rsp)
# WAS leaq	kBoringSSLRSASqrtTwo(%rip), %rsi
	leaq	.LkBoringSSLRSASqrtTwo_local_target(%rip), %rsi
# WAS call	bn_set_words
	call	.Lbn_set_words_local_target
	testl	%eax, %eax
	je	.L19706
	cmpl	$4095, %r15d
	movq	64(%rsp), %rcx
	jle	.L19830
	cmpl	$4097, %r15d
	jg	.L19831
.L19702:

	leaq	100(%rsp), %rax
	movl	%r15d, 64(%rsp)
	movl	72(%rsp), %r15d
	movl	%r12d, 76(%rsp)
	movq	56(%rsp), %r12
	movq	%rax, 80(%rsp)
	movq	%rcx, 88(%rsp)
	jmp	.L19701
.L19833:

	xorl	%edx, %edx
	movl	$3, %esi
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L19819
	movq	32(%r14), %rcx
	movq	16(%r14), %rdx
	movl	%r15d, %esi
	movq	40(%r14), %rdi
	pushq	%r12
	.cfi_def_cfa_offset 184
	pushq	%r13
	.cfi_def_cfa_offset 192
	movq	64(%rsp), %r9
	movq	56(%rsp), %r8
# WAS call	generate_prime
	call	.Lgenerate_prime_local_target
	popq	%rdx
	.cfi_def_cfa_offset 184
	popq	%rcx
	.cfi_def_cfa_offset 176
	testl	%eax, %eax
	je	.L19819
	movl	$1, %edx
	movl	$3, %esi
	movq	%r12, %rdi
# WAS call	BN_GENCB_call@PLT
	call	.LBN_GENCB_call_local_target
	testl	%eax, %eax
	je	.L19819
	movq	40(%r14), %rsi
	movq	32(%r14), %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jns	.L19704
	movdqu	32(%r14), %xmm0
	shufpd	$1, %xmm0, %xmm0
	movups	%xmm0, 32(%r14)
.L19704:

# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	32(%r14), %rsi
	movq	%rbp, %rdi
	movq	%rax, %rdx
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	je	.L19819
# WAS call	BN_value_one@PLT
	call	.LBN_value_one_local_target
	movq	40(%r14), %rsi
	movq	32(%rsp), %rdi
	movq	%rax, %rdx
# WAS call	bn_usub_consttime
	call	.Lbn_usub_consttime_local_target
	testl	%eax, %eax
	je	.L19819
	movq	32(%rsp), %rdx
	movq	%r13, %rcx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	bn_lcm_consttime@PLT
	call	.Lbn_lcm_consttime_local_target
	testl	%eax, %eax
	je	.L19819
	movq	16(%r14), %rdx
	movq	24(%r14), %rdi
	movq	%r13, %r8
	movq	%rbx, %rcx
	movq	80(%rsp), %rsi
# WAS call	bn_mod_inverse_consttime@PLT
	call	.Lbn_mod_inverse_consttime_local_target
	testl	%eax, %eax
	je	.L19819
	movq	24(%r14), %rdi
	movq	88(%rsp), %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jg	.L19832
.L19701:

	movq	32(%r14), %rdi
	movq	16(%r14), %rdx
	pushq	%r12
	.cfi_def_cfa_offset 184
	movl	%r15d, %esi
	pushq	%r13
	.cfi_def_cfa_offset 192
	movq	64(%rsp), %r9
	xorl	%ecx, %ecx
	movq	56(%rsp), %r8
# WAS call	generate_prime
	call	.Lgenerate_prime_local_target
	popq	%rsi
	.cfi_def_cfa_offset 184
	popq	%rdi
	.cfi_def_cfa_offset 176
	testl	%eax, %eax
	jne	.L19833
.L19819:

	movl	64(%rsp), %r15d
	movl	76(%rsp), %r12d
	.p2align 4,,10
	.p2align 3
.L19706:

	movl	$1159, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$3, %edx
.L19821:

	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movq	%r13, %rdi
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
.L19681:

# WAS call	ERR_peek_error@PLT
	call	.Lbcm_redirector_ERR_peek_error
	movq	%r14, %rdi
	movl	%eax, %r13d
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
	subl	$1, %r12d
	je	.L19679
	movl	%r13d, %eax
	shrl	$24, %eax
	cmpl	$4, %eax
	jne	.L19679
	andl	$4095, %r13d
	cmpl	$141, %r13d
	je	.L19715
	.p2align 4,,10
	.p2align 3
.L19679:

	xorl	%r14d, %r14d
.L19716:

	movq	%r14, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.p2align 4,,10
	.p2align 3
.L19822:

	movl	$1010, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19681
	.p2align 4,,10
	.p2align 3
.L19823:

	movl	$1021, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$101, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19681
	.p2align 4,,10
	.p2align 3
.L19683:

	movl	$1159, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$3, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19681
.L19824:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 24(%r14)
	je	.L19706
	jmp	.L19687
	.p2align 4,,10
	.p2align 3
.L19685:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 8(%r14)
	je	.L19706
	jmp	.L19688
	.p2align 4,,10
	.p2align 3
.L19825:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 16(%r14)
	je	.L19706
	jmp	.L19690
	.p2align 4,,10
	.p2align 3
.L19826:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 32(%r14)
	je	.L19706
	jmp	.L19692
	.p2align 4,,10
	.p2align 3
.L19829:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 56(%r14)
	je	.L19706
	jmp	.L19698
	.p2align 4,,10
	.p2align 3
.L19827:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 40(%r14)
	je	.L19706
	jmp	.L19694
	.p2align 4,,10
	.p2align 3
.L19828:

	movq	%rcx, 64(%rsp)
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	64(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, 48(%r14)
	je	.L19706
	jmp	.L19696
	.p2align 4,,10
	.p2align 3
.L19830:

	movl	72(%rsp), %eax
	movq	40(%rsp), %rsi
	movl	$2048, %edx
	subl	%eax, %edx
	movq	%rsi, %rdi
# WAS call	BN_rshift@PLT
	call	.LBN_rshift_local_target
	movq	64(%rsp), %rcx
	testl	%eax, %eax
	jne	.L19702
	jmp	.L19706
.L19831:

	movq	40(%rsp), %rdi
	movl	$1, %esi
	movq	%rcx, 64(%rsp)
# WAS call	BN_add_word@PLT
	call	.LBN_add_word_local_target
	testl	%eax, %eax
	je	.L19706
	movl	72(%rsp), %eax
	movq	40(%rsp), %rsi
	leal	-2048(%rax), %edx
	movq	%rsi, %rdi
# WAS call	BN_lshift@PLT
	call	.LBN_lshift_local_target
	movq	64(%rsp), %rcx
	testl	%eax, %eax
	jne	.L19702
	jmp	.L19706
.L19832:

	movq	40(%r14), %rdx
	movq	32(%r14), %rsi
	movq	%r13, %rcx
	movq	8(%r14), %rdi
	movl	64(%rsp), %r15d
	movl	76(%rsp), %r12d
# WAS call	bn_mul_consttime
	call	.Lbn_mul_consttime_local_target
	testl	%eax, %eax
	je	.L19706
	movl	72(%rsp), %ebx
	movq	24(%r14), %rdx
	xorl	%edi, %edi
	movq	%r13, %r9
	movq	48(%r14), %rsi
	movq	%rbp, %rcx
	movl	%ebx, %r8d
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L19706
	movq	24(%r14), %rdx
	movq	56(%r14), %rsi
	xorl	%edi, %edi
	movq	%r13, %r9
	movq	32(%rsp), %rcx
	movl	%ebx, %r8d
# WAS call	bn_div_consttime@PLT
	call	.Lbn_div_consttime_local_target
	testl	%eax, %eax
	je	.L19706
	movq	8(%r14), %rdi
	movslq	8(%rdi), %rdx
	movq	%rdx, %rax
	leaq	-8(,%rdx,8), %rdx
	jmp	.L19707
.L19835:

	movq	(%rdi), %rcx
	movq	(%rcx,%rdx), %rcx
	subq	$8, %rdx
	testq	%rcx, %rcx
	jne	.L19834
	subl	$1, %eax
.L19707:

	testl	%eax, %eax
	jg	.L19835
	movl	%eax, 8(%rdi)
	jne	.L19711
	xorl	%eax, %eax
	movl	%eax, 16(%rdi)
.L19711:

# WAS call	BN_num_bits@PLT
	call	.LBN_num_bits_local_target
	cmpl	%r15d, %eax
	je	.L19712
	movl	$1137, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$68, %edx
	jmp	.L19821
.L19834:

	movl	%eax, 8(%rdi)
	jmp	.L19711
.L19712:

	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	freeze_private_key
	call	.Lfreeze_private_key_local_target
	testl	%eax, %eax
	je	.L19706
	movq	%r14, %rdi
# WAS call	RSA_check_key@PLT
	call	.LRSA_check_key_local_target
	testl	%eax, %eax
	je	.L19836
	movl	28(%rsp), %ebp
	movq	%r13, %rdi
	movq	16(%rsp), %rbx
# WAS call	BN_CTX_end@PLT
	call	.LBN_CTX_end_local_target
	movq	%r13, %rdi
# WAS call	BN_CTX_free@PLT
	call	.LBN_CTX_free_local_target
	testl	%ebp, %ebp
	je	.L19717
	movq	%r14, %rdi
# WAS call	RSA_check_fips@PLT
	call	.LRSA_check_fips_local_target
	testl	%eax, %eax
	je	.L19716
.L19717:

	movq	%rbx, %rdi
# WAS call	rsa_invalidate_key
	call	.Lrsa_invalidate_key_local_target
	movq	8(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	8(%r14), %rax
	movq	%rax, 8(%rbx)
	movq	$0, 8(%r14)
	movq	16(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	16(%r14), %rax
	movq	%rax, 16(%rbx)
	movq	$0, 16(%r14)
	movq	24(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	24(%r14), %rax
	movq	%rax, 24(%rbx)
	movq	$0, 24(%r14)
	movq	32(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	32(%r14), %rax
	movq	%rax, 32(%rbx)
	movq	$0, 32(%r14)
	movq	40(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	40(%r14), %rax
	movq	%rax, 40(%rbx)
	movq	$0, 40(%r14)
	movq	48(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	48(%r14), %rax
	movq	%rax, 48(%rbx)
	movq	$0, 48(%r14)
	movq	56(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	56(%r14), %rax
	movq	%rax, 56(%rbx)
	movq	$0, 56(%r14)
	movq	64(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	64(%r14), %rax
	movq	152(%rbx), %rdi
	movq	%rax, 64(%rbx)
	movq	$0, 64(%r14)
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	152(%r14), %rax
	movq	%rax, 152(%rbx)
	movq	$0, 152(%r14)
	movq	160(%rbx), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	160(%r14), %rax
	movq	%rax, 160(%rbx)
	movq	$0, 160(%r14)
	movq	168(%rbx), %rdi
# WAS call	BN_MONT_CTX_free@PLT
	call	.LBN_MONT_CTX_free_local_target
	movq	168(%r14), %rax
	movq	176(%rbx), %rdi
	movq	%rax, 168(%rbx)
	movq	$0, 168(%r14)
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	176(%r14), %rax
	movq	%rax, 176(%rbx)
	movq	$0, 176(%r14)
	movq	184(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	184(%r14), %rax
	movq	%rax, 184(%rbx)
	movq	$0, 184(%r14)
	movq	192(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	192(%r14), %rax
	movq	%rax, 192(%rbx)
	movq	$0, 192(%r14)
	movq	200(%rbx), %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	200(%r14), %rax
	movq	%r14, %rdi
	movq	%rax, 200(%rbx)
	movzbl	240(%r14), %edx
	movq	$0, 200(%r14)
	movzbl	240(%rbx), %eax
	andl	$1, %edx
	andl	$-2, %eax
	orl	%edx, %eax
	movb	%al, 240(%rbx)
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19837
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L19837:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L19836:

	movl	$1151, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$124, %edx
	jmp	.L19821
	.cfi_endproc
.LFE2760:

	.size	RSA_generate_key_ex_maybe_fips, .-RSA_generate_key_ex_maybe_fips
# WAS .section	.text.RSA_generate_key_ex,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_generate_key_ex
	.type	RSA_generate_key_ex, @function
.LRSA_generate_key_ex_local_target:
RSA_generate_key_ex:
.LFB2761:

	.cfi_startproc
	endbr64
	xorl	%r8d, %r8d
# WAS jmp	RSA_generate_key_ex_maybe_fips
	jmp	.LRSA_generate_key_ex_maybe_fips_local_target
	.cfi_endproc
.LFE2761:

	.size	RSA_generate_key_ex, .-RSA_generate_key_ex
# WAS .section	.text.RSA_generate_key_fips,"ax",@progbits
.text
	.p2align 4
	.globl	RSA_generate_key_fips
	.type	RSA_generate_key_fips, @function
.LRSA_generate_key_fips_local_target:
RSA_generate_key_fips:
.LFB2762:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	cmpl	$2047, %esi
	jle	.L19840
	movl	%esi, %ebx
	testb	$127, %sil
	je	.L19841
.L19840:

	movl	$1265, %r8d
	leaq	.LC181(%rip), %rcx
	movl	$104, %edx
	xorl	%esi, %esi
	movl	$4, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19845:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19841:

	.cfi_restore_state
	movq	%rdi, %rbp
	movq	%rdx, %r12
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L19843
	movl	$65537, %esi
	movq	%rax, %rdi
# WAS call	BN_set_word@PLT
	call	.LBN_set_word_local_target
	testl	%eax, %eax
	jne	.L19844
.L19848:

	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L19845
	.p2align 4,,10
	.p2align 3
.L19844:

	movl	$1, %r8d
	movq	%r12, %rcx
	movq	%r13, %rdx
	movl	%ebx, %esi
	movq	%rbp, %rdi
# WAS call	RSA_generate_key_ex_maybe_fips
	call	.LRSA_generate_key_ex_maybe_fips_local_target
	testl	%eax, %eax
	je	.L19848
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19843:

	.cfi_restore_state
	xorl	%edi, %edi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L19845
	.cfi_endproc
.LFE2762:

	.size	RSA_generate_key_fips, .-RSA_generate_key_fips
# WAS .section	.text.EC_KEY_check_fips,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_check_fips
	.type	EC_KEY_check_fips, @function
.LEC_KEY_check_fips_local_target:
EC_KEY_check_fips:
.LFB1854:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$168, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbx, %rdi
# WAS call	EC_KEY_is_opaque@PLT
	call	.LEC_KEY_is_opaque_local_target
	testl	%eax, %eax
	jne	.L19889
	movq	%rbx, %rdi
# WAS call	EC_KEY_check_key@PLT
	call	.LEC_KEY_check_key_local_target
	testl	%eax, %eax
	je	.L19884
	movq	8(%rbx), %r15
	movq	(%r15), %rbp
	leaq	152(%r15), %rsi
	movslq	328(%rbp), %rdx
	leaq	160(%rbp), %rdi
	salq	$3, %rdx
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	je	.L19890
.L19854:

	cmpq	$0, 16(%rbx)
	je	.L19862
	pxor	%xmm0, %xmm0
	leaq	32(%rsp), %r12
	movaps	%xmm0, 80(%rsp)
# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%r12, %rdi
	movq	%rax, %rbp
# WAS call	EVP_MD_CTX_init@PLT
	call	.LEVP_MD_CTX_init_local_target
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	xorl	%edi, %edi
	movq	%rax, %r13
	testq	%rbp, %rbp
	je	.L19888
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_set1_EC_KEY@PLT
	call	.LEVP_PKEY_set1_EC_KEY_local_target
	testl	%eax, %eax
	je	.L19865
	xorl	%ecx, %ecx
	xorl	%esi, %esi
	movq	%rbp, %r8
	movq	%r13, %rdx
	movq	%r12, %rdi
# WAS call	EVP_DigestSignInit@PLT
	call	.LEVP_DigestSignInit_local_target
	testl	%eax, %eax
	jne	.L19866
.L19865:

	movq	%rbp, %rdi
.L19888:

# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	xorl	%edi, %edi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L19864:

	movl	$411, %r8d
	.p2align 4,,10
	.p2align 3
.L19885:

	leaq	.LC268(%rip), %rcx
	movl	$132, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19884:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L19849:

	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19891
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L19869:

	.cfi_restore_state
	movq	%r12, %rdi
	movq	%rbp, %r8
	xorl	%ecx, %ecx
	movq	%r13, %rdx
	xorl	%esi, %esi
# WAS call	EVP_DigestVerifyInit@PLT
	call	.LEVP_DigestVerifyInit_local_target
	movq	%rbp, %rdi
	testl	%eax, %eax
	je	.L19871
	movq	%r14, %rcx
	movq	8(%rsp), %r14
	movq	%r12, %rdi
	movq	24(%rsp), %rdx
	movl	$16, %r8d
	movq	%r14, %rsi
# WAS call	EVP_DigestVerify@PLT
	call	.LEVP_DigestVerify_local_target
	movq	%rbp, %rdi
	testl	%eax, %eax
	je	.L19871
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	movq	%r14, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	.p2align 4,,10
	.p2align 3
.L19862:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	(%rbx), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L19872
	jg	.L19873
	cmpl	$415, %eax
	jne	.L19874
.L19872:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L19874
	.p2align 4,,10
	.p2align 3
.L19889:

	movl	$370, %r8d
	jmp	.L19885
	.p2align 4,,10
	.p2align 3
.L19873:

	subl	$715, %eax
	cmpl	$1, %eax
	jbe	.L19872
.L19874:

	movl	$1, %eax
	jmp	.L19849
	.p2align 4,,10
	.p2align 3
.L19890:

# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movq	%rax, %r12
# WAS call	BN_new@PLT
	call	.LBN_new_local_target
	movl	$390, %r8d
	movl	$66, %edx
	leaq	.LC268(%rip), %rcx
	movq	%rax, %r13
	movq	0(%rbp), %rax
	movq	104(%rax), %rax
	testq	%rax, %rax
	je	.L19887
	leaq	32(%rsp), %rsi
	leaq	80(%rsp), %r14
	movq	%rbp, %rdi
	movq	%rsi, %rdx
	movq	%rsi, 8(%rsp)
	leaq	8(%r15), %rcx
	movq	%r14, %rsi
	call	*%rax
	movq	32(%rsp), %rsi
	movq	%r12, %rdx
	movq	%r14, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	jne	.L19892
.L19886:

	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L19884
	.p2align 4,,10
	.p2align 3
.L19892:

	movq	0(%rbp), %rax
	movq	8(%rsp), %rdx
	movq	%r14, %rsi
	movq	%rbp, %rdi
	leaq	80(%r15), %rcx
	call	*104(%rax)
	movq	32(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
# WAS call	BN_bin2bn@PLT
	call	.LBN_bin2bn_local_target
	testq	%rax, %rax
	je	.L19886
	movq	%r12, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	jne	.L19860
	movq	%r13, %rdi
# WAS call	BN_is_negative@PLT
	call	.LBN_is_negative_local_target
	testl	%eax, %eax
	je	.L19893
.L19860:

	movl	$399, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$101, %edx
	.p2align 4,,10
	.p2align 3
.L19887:

	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19886
	.p2align 4,,10
	.p2align 3
.L19866:

	leaq	80(%rsp), %r14
	leaq	24(%rsp), %r15
	xorl	%esi, %esi
	movq	%r12, %rdi
	movl	$16, %r8d
	movq	%r14, %rcx
	movq	%r15, %rdx
# WAS call	EVP_DigestSign@PLT
	call	.LEVP_DigestSign_local_target
	testl	%eax, %eax
	je	.L19865
	movq	24(%rsp), %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, 8(%rsp)
	testq	%rax, %rax
	je	.L19865
	movq	%r15, %rdx
	movq	8(%rsp), %r15
	movq	%r14, %rcx
	movq	%r12, %rdi
	movl	$16, %r8d
	movq	%r15, %rsi
# WAS call	EVP_DigestSign@PLT
	call	.LEVP_DigestSign_local_target
	testl	%eax, %eax
	jne	.L19869
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	movq	%r15, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L19864
.L19871:

# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	%r12, %rdi
# WAS call	EVP_MD_CTX_cleanse@PLT
	call	.LEVP_MD_CTX_cleanse_local_target
	movq	8(%rsp), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	jmp	.L19864
.L19893:

	addq	$320, %rbp
	movq	%r12, %rdi
	movq	%rbp, %rsi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jns	.L19860
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	BN_cmp@PLT
	call	.LBN_cmp_local_target
	testl	%eax, %eax
	jns	.L19860
	movq	%r12, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	movq	%r13, %rdi
# WAS call	BN_free@PLT
	call	.LBN_free_local_target
	jmp	.L19854
.L19891:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1854:

	.size	EC_KEY_check_fips, .-EC_KEY_check_fips
# WAS .section	.rodata.ECDH_compute_shared_secret.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC369:

	.string	"/aws-lc/crypto/fipsmodule/ecdh/ecdh.c"
# WAS .section	.text.ECDH_compute_shared_secret,"ax",@progbits
.text
	.p2align 4
	.globl	ECDH_compute_shared_secret
	.hidden	ECDH_compute_shared_secret
	.type	ECDH_compute_shared_secret, @function
.LECDH_compute_shared_secret_local_target:
ECDH_compute_shared_secret:
.LFB1734:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$328, %rsp
	.cfi_def_cfa_offset 384
	movq	%rdi, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 312(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	16(%rbx), %r15
	testq	%r15, %r15
	je	.L19921
	movq	%rbx, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	0(%rbp), %rsi
	xorl	%edx, %edx
	movq	%rax, %rdi
	movq	%rax, %r12
# WAS call	EC_GROUP_cmp@PLT
	call	.LEC_GROUP_cmp_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	.L19922
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L19899
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	EC_KEY_set_group@PLT
	call	.LEC_KEY_set_group_local_target
	testl	%eax, %eax
	je	.L19902
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	EC_KEY_set_public_key@PLT
	call	.LEC_KEY_set_public_key_local_target
	testl	%eax, %eax
	jne	.L19923
.L19902:

	movl	$113, %r8d
	leaq	.LC369(%rip), %rcx
	movl	$132, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	leaq	96(%rsp), %rdi
	movl	$216, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L19908:

	movq	%r13, %rdi
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
.L19894:

	movq	312(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L19924
	addq	$328, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19922:

	.cfi_restore_state
	movl	$92, %r8d
	movl	$106, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC369(%rip), %rcx
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19894
	.p2align 4,,10
	.p2align 3
.L19899:

	leaq	96(%rsp), %rdi
	movl	$216, %esi
	xorl	%ebx, %ebx
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19894
	.p2align 4,,10
	.p2align 3
.L19923:

	movq	%r13, %rdi
# WAS call	EC_KEY_check_fips@PLT
	call	.LEC_KEY_check_fips_local_target
	testl	%eax, %eax
	je	.L19902
	movq	(%r12), %rax
	leaq	8(%rbp), %rdx
	leaq	96(%rsp), %rbp
	movq	%r12, %rdi
	movq	%rbp, %rsi
	leaq	24(%r15), %rcx
	call	*32(%rax)
	movq	%rbp, %rsi
	movq	%r12, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	testl	%eax, %eax
	je	.L19903
	movq	(%r14), %rax
	leaq	320(%r12), %rdi
	movq	%rax, 8(%rsp)
# WAS call	BN_num_bytes@PLT
	call	.LBN_num_bytes_local_target
	movl	%eax, %r15d
	cmpq	%r15, 8(%rsp)
	jb	.L19925
	movq	(%r12), %rax
	leaq	16(%rsp), %rdx
	xorl	%ecx, %ecx
	movq	%rbp, %rsi
	movq	%rdx, 8(%rsp)
	movq	%r12, %rdi
	call	*(%rax)
	testl	%eax, %eax
	je	.L19906
	movq	(%r12), %rax
	movq	8(%rsp), %rcx
	movq	%r14, %rdx
	movq	%r12, %rdi
	movq	(%rsp), %rsi
	movl	$1, %ebx
	call	*104(%rax)
	movq	%r15, (%r14)
	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19908
	.p2align 4,,10
	.p2align 3
.L19921:

	movl	$86, %r8d
	movl	$101, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC369(%rip), %rcx
	movl	$27, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19894
	.p2align 4,,10
	.p2align 3
.L19903:

	movl	$896, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19906:

	movl	$121, %r8d
	leaq	.LC369(%rip), %rcx
	movl	$102, %edx
	xorl	%esi, %esi
	movl	$27, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L19908
.L19925:

	movl	$1048, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L19906
.L19924:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1734:

	.size	ECDH_compute_shared_secret, .-ECDH_compute_shared_secret
# WAS .section	.text.pkey_ec_derive,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_derive, @function
.Lpkey_ec_derive_local_target:
pkey_ec_derive:
.LFB2220:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$104, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	16(%rdi), %rax
	movq	$66, 8(%rsp)
	testq	%rax, %rax
	je	.L19927
	movq	%rdx, %rbx
	movq	24(%rdi), %rdx
	testq	%rdx, %rdx
	je	.L19927
	movq	8(%rax), %r12
	movq	%rsi, %rbp
	testq	%rsi, %rsi
	je	.L19952
	movq	8(%rdx), %rdi
	leaq	16(%rsp), %r13
# WAS call	EC_KEY_get0_public_key@PLT
	call	.LEC_KEY_get0_public_key_local_target
	leaq	8(%rsp), %rsi
	movq	%r12, %rcx
	movq	%r13, %rdi
	movq	%rax, %rdx
# WAS call	ECDH_compute_shared_secret
	call	.LECDH_compute_shared_secret_local_target
	testl	%eax, %eax
	je	.L19929
	movq	(%rbx), %rdx
	movq	8(%rsp), %rax
	cmpq	%rdx, %rax
	jb	.L19953
.L19934:

	testq	%rdx, %rdx
	je	.L19935
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
.L19935:

	movq	%r12, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L19936
	jg	.L19937
	cmpl	$415, %eax
	jne	.L19931
.L19936:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L19931
	.p2align 4,,10
	.p2align 3
.L19927:

	movl	$149, %r8d
	leaq	.LC260(%rip), %rcx
	movl	$117, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L19929:

	xorl	%eax, %eax
.L19926:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19954
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19953:

	.cfi_restore_state
	movq	%rax, (%rbx)
	movq	%rax, %rdx
	jmp	.L19934
	.p2align 4,,10
	.p2align 3
.L19937:

	subl	$715, %eax
	cmpl	$1, %eax
	jbe	.L19936
	.p2align 4,,10
	.p2align 3
.L19931:

	movl	$1, %eax
	jmp	.L19926
	.p2align 4,,10
	.p2align 3
.L19952:

	movq	%r12, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rdi
# WAS call	EC_GROUP_get_degree@PLT
	call	.LEC_GROUP_get_degree_local_target
	addl	$7, %eax
	shrl	$3, %eax
	movq	%rax, (%rbx)
	jmp	.L19931
.L19954:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2220:

	.size	pkey_ec_derive, .-pkey_ec_derive
# WAS .section	.text.HMAC_with_precompute,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_with_precompute
	.type	HMAC_with_precompute, @function
.LHMAC_with_precompute_local_target:
HMAC_with_precompute:
.LFB2367:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$856, %rsp
	.cfi_def_cfa_offset 912
	movq	912(%rsp), %rax
	movq	%rcx, (%rsp)
	leaq	32(%rsp), %rbp
	movl	$84, %ecx
	movq	%rbp, %rdi
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 840(%rsp)
	xorl	%eax, %eax
	rep stosq
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%r15, %rsi
	xorl	%r8d, %r8d
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rdi
	movq	$128, 24(%rsp)
	leaq	704(%rsp), %r15
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	jne	.L19978
.L19956:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	$128, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%r12, %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbx, %rdi
	movq	%rax, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	xorl	%eax, %eax
.L19955:

	movq	840(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L19979
	addq	$856, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L19978:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	HMAC_set_precomputed_key_export@PLT
	call	.LHMAC_set_precomputed_key_export_local_target
	testl	%eax, %eax
	je	.L19956
	leaq	24(%rsp), %rdx
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	HMAC_get_precomputed_key@PLT
	call	.LHMAC_get_precomputed_key_local_target
	testl	%eax, %eax
	je	.L19956
	movq	24(%rsp), %rdx
	movq	%r12, %rcx
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	HMAC_Init_from_precomputed_key@PLT
	call	.LHMAC_Init_from_precomputed_key_local_target
	testl	%eax, %eax
	je	.L19956
	movq	(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rbp, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19956
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19956
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%rbp, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	$128, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%rbx, %rax
	jmp	.L19955
.L19979:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2367:

	.size	HMAC_with_precompute, .-HMAC_with_precompute
# WAS .section	.text.HMAC,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC
	.type	HMAC, @function
.LHMAC_local_target:
HMAC:
.LFB2366:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$712, %rsp
	.cfi_def_cfa_offset 768
	movq	%rsi, 8(%rsp)
	movq	768(%rsp), %r15
	movq	%rdx, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 696(%rsp)
	xorl	%eax, %eax
	testq	%r9, %r9
	je	.L19981
	leaq	16(%rsp), %r12
	movq	%rdi, %rbp
	movq	%rcx, %r13
	movl	$84, %ecx
	movq	%r12, %rdi
	movq	%r8, %r14
	movq	%r9, %rbx
	rep stosq
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	(%rsp), %rdx
	xorl	%r8d, %r8d
	movq	%rbp, %rcx
	movq	8(%rsp), %rsi
	movq	%r12, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	jne	.L20010
.L19982:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%r12, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movq	%rbp, %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rbx, %rdi
	movq	%rax, %rsi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L19981:

	xorl	%eax, %eax
.L19980:

	movq	696(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20011
	addq	$712, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20010:

	.cfi_restore_state
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L19982
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L19982
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%r12, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	0(%rbp), %eax
	cmpl	$962, %eax
	je	.L19983
	jg	.L19984
	cmpl	$64, %eax
	je	.L19983
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L19985
.L19983:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L19985:

	movq	%rbx, %rax
	jmp	.L19980
	.p2align 4,,10
	.p2align 3
.L19984:

	cmpl	$978, %eax
	jne	.L19985
	jmp	.L19983
.L20011:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2366:

	.size	HMAC, .-HMAC
# WAS .section	.rodata.boringssl_self_test_hmac_sha256.str1.1,"aMS",@progbits,1
.text
.LC370:

	.string	"HMAC-SHA-256 KAT"
# WAS .section	.text.boringssl_self_test_hmac_sha256,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_self_test_hmac_sha256
	.hidden	boringssl_self_test_hmac_sha256
	.type	boringssl_self_test_hmac_sha256, @function
.Lboringssl_self_test_hmac_sha256_local_target:
boringssl_self_test_hmac_sha256:
.LFB2796:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$96, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %rbx
	movl	$0, 12(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	subq	$8, %rsp
	.cfi_def_cfa_offset 120
	movl	$16, %edx
	movq	%rbx, %r9
	movq	%rax, %rdi
	leaq	20(%rsp), %rax
# WAS leaq	kInput.36(%rip), %rsi
	leaq	.LkInput.36_local_target(%rip), %rsi
	movl	$16, %r8d
	pushq	%rax
	.cfi_def_cfa_offset 128
	movq	%rsi, %rcx
# WAS call	HMAC@PLT
	call	.LHMAC_local_target
	popq	%rax
	.cfi_def_cfa_offset 120
	xorl	%eax, %eax
	popq	%rdx
	.cfi_def_cfa_offset 112
	cmpl	$32, 12(%rsp)
	je	.L20020
.L20012:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20021
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20020:

	.cfi_restore_state
	movabsq	$-4035810249975046346, %rax
	xorq	16(%rsp), %rax
	movabsq	$1378228399904215918, %rdx
	xorq	24(%rsp), %rdx
	orq	%rdx, %rax
	je	.L20022
.L20014:

	leaq	.LC370(%rip), %rcx
	movl	$32, %edx
	movq	%rbx, %rsi
# WAS leaq	kPlaintextHMACSHA256.35(%rip), %rdi
	leaq	.LkPlaintextHMACSHA256.35_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L20012
	.p2align 4,,10
	.p2align 3
.L20022:

	movabsq	$-7744862824647830614, %rax
	xorq	32(%rsp), %rax
	movabsq	$1056637583226324502, %rdx
	xorq	40(%rsp), %rdx
	orq	%rdx, %rax
	movl	$1, %eax
	jne	.L20014
	jmp	.L20012
.L20021:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2796:

	.size	boringssl_self_test_hmac_sha256, .-boringssl_self_test_hmac_sha256
# WAS .section	.rodata.HKDF_extract.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC371:

	.string	"/aws-lc/crypto/fipsmodule/hkdf/hkdf.c"
# WAS .section	.text.HKDF_extract,"ax",@progbits
.text
	.p2align 4
	.globl	HKDF_extract
	.type	HKDF_extract, @function
.LHKDF_extract_local_target:
HKDF_extract:
.LFB2320:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	movl	$3, %edi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rcx
	testq	%rax, %rax
	je	.L20037
.L20024:

	movq	(%rcx), %rax
	addq	$1, %rax
	jc	.L20027
	movq	%rax, (%rcx)
.L20025:

	subq	$8, %rsp
	.cfi_def_cfa_offset 104
	movq	%r12, %rcx
	movq	%r14, %r9
	movq	%r13, %r8
	leaq	28(%rsp), %rax
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	pushq	%rax
	.cfi_def_cfa_offset 112
	movq	112(%rsp), %rdx
# WAS call	HMAC@PLT
	call	.LHMAC_local_target
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
	testq	%rax, %rax
	je	.L20038
	movl	20(%rsp), %eax
	movl	$1, %ebx
	movq	%rax, (%r15)
.L20030:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20039
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20037:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, 8(%rsp)
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L20025
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	movq	8(%rsp), %rcx
	testl	%eax, %eax
	jne	.L20024
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$14, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20025
	.p2align 4,,10
	.p2align 3
.L20038:

	movl	$73, %r8d
	movl	$28, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC371(%rip), %rcx
	movl	$31, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20030
.L20039:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L20027:

# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2320:

	.size	HKDF_extract, .-HKDF_extract
# WAS .section	.text.HKDF_expand,"ax",@progbits
.text
	.p2align 4
	.globl	HKDF_expand
	.type	HKDF_expand, @function
.LHKDF_expand_local_target:
HKDF_expand:
.LFB2321:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$824, %rsp
	.cfi_def_cfa_offset 880
	movq	%rdi, 32(%rsp)
	movq	%rdx, %rdi
	movq	%r9, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 808(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	xorl	%ecx, %ecx
	movq	%rax, %r11
	movq	%rax, %r15
	addq	%r13, %r11
	setc	%cl
	subq	$1, %r11
	xorl	%edx, %edx
	movq	%r11, %rax
	divq	%r15
	testq	%rcx, %rcx
	jne	.L20069
	cmpq	$255, %rax
	ja	.L20069
	leaq	64(%rsp), %rbx
	movq	%r11, 8(%rsp)
	movq	%rbx, %rdi
	movq	%rax, 16(%rsp)
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	xorl	%r8d, %r8d
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	movq	8(%rsp), %r11
	movq	16(%rsp), %r10
	testl	%eax, %eax
	je	.L20046
	cmpq	%r15, %r11
	jb	.L20127
	leaq	63(%rsp), %rax
	movb	$1, 63(%rsp)
	xorl	%ebp, %ebp
	xorl	%r14d, %r14d
	movq	%rax, 8(%rsp)
	movq	%r12, 40(%rsp)
	movq	%r13, 16(%rsp)
	movq	%r10, %r13
	.p2align 4,,10
	.p2align 3
.L20050:

	movq	880(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20111
	movq	8(%rsp), %rsi
	movl	$1, %edx
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20111
	leaq	736(%rsp), %r12
	xorl	%edx, %edx
	movq	%rbx, %rdi
	movq	%r12, %rsi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L20111
	movq	16(%rsp), %rax
	subq	%r14, %rax
	cmpq	%r15, %rax
	cmova	%r15, %rax
	movq	%rax, %rdx
	testq	%rax, %rax
	je	.L20051
	movq	32(%rsp), %rax
	movq	%r12, %rsi
	movq	%rdx, 24(%rsp)
	addq	$1, %rbp
	leaq	(%rax,%r14), %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	24(%rsp), %rdx
	addq	%rdx, %r14
	cmpq	%r13, %rbp
	jnb	.L20112
.L20052:

	leal	1(%rbp), %eax
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	%rbx, %rdi
	movb	%al, 63(%rsp)
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20111
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	jne	.L20050
	.p2align 4,,10
	.p2align 3
.L20111:

	movq	40(%rsp), %r12
.L20046:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%r12), %eax
	cmpl	$962, %eax
	je	.L20114
	jg	.L20064
	cmpl	$64, %eax
	je	.L20114
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20115
.L20114:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L20115:

	movq	%rbx, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	$144, %r8d
	leaq	.LC371(%rip), %rcx
	xorl	%esi, %esi
	movl	$28, %edx
	movl	$31, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20061:

	xorl	%eax, %eax
.L20040:

	movq	808(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20128
	addq	$824, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20069:

	.cfi_restore_state
	movl	$100, %r8d
	leaq	.LC371(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$31, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20061
	.p2align 4,,10
	.p2align 3
.L20051:

	addq	$1, %rbp
	cmpq	%r13, %rbp
	jb	.L20052
.L20112:

.L20053:

	movq	40(%rsp), %r12
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%r12), %eax
	cmpl	$978, %eax
	je	.L20057
.L20126:

	jg	.L20116
	cmpl	$962, %eax
	je	.L20057
	jg	.L20116
	cmpl	$64, %eax
	je	.L20057
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20116
.L20057:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20116:

	movq	%rbx, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	$1, %eax
	jmp	.L20040
	.p2align 4,,10
	.p2align 3
.L20064:

	cmpl	$978, %eax
	jne	.L20115
	jmp	.L20114
.L20127:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%r12), %eax
	cmpl	$978, %eax
	jne	.L20126
	jmp	.L20057
.L20128:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2321:

	.size	HKDF_expand, .-HKDF_expand
# WAS .section	.text.HKDF,"ax",@progbits
.text
	.p2align 4
	.globl	HKDF
	.type	HKDF, @function
.LHKDF_local_target:
HKDF:
.LFB2319:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%r9, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdi, 8(%rsp)
	movq	184(%rsp), %r15
	leaq	32(%rsp), %r14
	movq	%r8, (%rsp)
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	24(%rsp), %rsi
	movq	%r12, %rcx
	movq	%r14, %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 184
	movq	%rbx, %r9
	movq	%rbp, %rdx
	pushq	184(%rsp)
	.cfi_def_cfa_offset 192
	movq	16(%rsp), %r8
# WAS call	HKDF_extract@PLT
	call	.LHKDF_extract_local_target
	popq	%rsi
	.cfi_def_cfa_offset 184
	popq	%rdi
	.cfi_def_cfa_offset 176
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L20130
	subq	$8, %rsp
	.cfi_def_cfa_offset 184
	movq	%r14, %rcx
	movq	%rbp, %rdx
	movq	%r15, %r9
	pushq	200(%rsp)
	.cfi_def_cfa_offset 192
	movq	40(%rsp), %r8
	movq	%r13, %rsi
	xorl	%r12d, %r12d
	movq	24(%rsp), %rdi
# WAS call	HKDF_expand@PLT
	call	.LHKDF_expand_local_target
	popq	%rdx
	.cfi_def_cfa_offset 184
	popq	%rcx
	.cfi_def_cfa_offset 176
	testl	%eax, %eax
	setne	%r12b
.L20130:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testq	%rbx, %rbx
	setne	%cl
	cmpq	$0, 176(%rsp)
	sete	%dl
	testb	%dl, %cl
	jne	.L20129
	cmpq	$0, 192(%rsp)
	je	.L20129
	movl	0(%rbp), %edx
	cmpl	$962, %edx
	je	.L20132
	jg	.L20133
	cmpl	$64, %edx
	je	.L20132
	subl	$672, %edx
	cmpl	$3, %edx
	ja	.L20129
.L20132:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20129:

	movq	104(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20146
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%r12d, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20133:

	.cfi_restore_state
	cmpl	$978, %edx
	jne	.L20129
	jmp	.L20132
.L20146:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2319:

	.size	HKDF, .-HKDF
# WAS .section	.text.pkey_hkdf_derive,"ax",@progbits
.text
	.p2align 4
	.type	pkey_hkdf_derive, @function
.Lpkey_hkdf_derive_local_target:
pkey_hkdf_derive:
.LFB2240:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	40(%rdi), %rbx
	movq	8(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L20160
	movq	%rsi, %r12
	movq	%rdx, %rbp
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	testq	%rax, %rax
	je	.L20161
	cmpq	$0, 24(%rbx)
	je	.L20162
	movl	(%rbx), %eax
	testq	%r12, %r12
	je	.L20163
	cmpl	$1, %eax
	je	.L20155
	cmpl	$2, %eax
	je	.L20156
	testl	%eax, %eax
	jne	.L20157
	leaq	48(%rbx), %r14
	movq	%r14, %rdi
# WAS call	CBB_len@PLT
	call	.Lbcm_redirector_CBB_len
	movq	%r14, %rdi
	movq	%rax, %r13
# WAS call	CBB_data@PLT
	call	.Lbcm_redirector_CBB_data
	subq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	32(%rbx), %r9
	movq	%r12, %rdi
	movq	24(%rbx), %r8
	movq	16(%rbx), %rcx
	movq	8(%rbx), %rdx
	movq	0(%rbp), %rsi
	pushq	%r13
	.cfi_def_cfa_offset 64
	pushq	%rax
	.cfi_def_cfa_offset 72
	pushq	40(%rbx)
	.cfi_def_cfa_offset 80
# WAS call	HKDF@PLT
	call	.LHKDF_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 48
.L20147:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20157:

	.cfi_restore_state
	movl	$138, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
.L20165:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20163:

	.cfi_restore_state
	cmpl	$1, %eax
	je	.L20164
.L20154:

	movl	$1, %eax
	jmp	.L20147
	.p2align 4,,10
	.p2align 3
.L20160:

	movl	$100, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$118, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L20165
	.p2align 4,,10
	.p2align 3
.L20161:

	movl	$104, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$114, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L20165
	.p2align 4,,10
	.p2align 3
.L20162:

	movl	$108, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$120, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L20165
	.p2align 4,,10
	.p2align 3
.L20156:

	leaq	48(%rbx), %r14
	movq	%r14, %rdi
# WAS call	CBB_len@PLT
	call	.Lbcm_redirector_CBB_len
	movq	%r14, %rdi
	movq	%rax, %r13
# WAS call	CBB_data@PLT
	call	.Lbcm_redirector_CBB_data
	subq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	16(%rbx), %rcx
	movq	%r12, %rdi
	movq	8(%rbx), %rdx
	movq	24(%rbx), %r8
	movq	%rax, %r9
	movq	0(%rbp), %rsi
	pushq	%r13
	.cfi_def_cfa_offset 64
# WAS call	HKDF_expand@PLT
	call	.LHKDF_expand_local_target
	popq	%rdx
	.cfi_def_cfa_offset 56
	popq	%rcx
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20155:

	.cfi_restore_state
	movq	8(%rbx), %rdi
	movq	0(%rbp), %r13
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpq	%rax, %r13
	jb	.L20166
	subq	$8, %rsp
	.cfi_def_cfa_offset 56
	movq	32(%rbx), %r9
	movq	24(%rbx), %r8
	movq	%rbp, %rsi
	movq	16(%rbx), %rcx
	movq	8(%rbx), %rdx
	pushq	40(%rbx)
	.cfi_def_cfa_offset 64
	movq	%r12, %rdi
# WAS call	HKDF_extract@PLT
	call	.LHKDF_extract_local_target
	popq	%rsi
	.cfi_def_cfa_offset 56
	popq	%rdi
	.cfi_def_cfa_offset 48
	jmp	.L20147
	.p2align 4,,10
	.p2align 3
.L20166:

	movl	$128, %r8d
	leaq	.LC256(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L20165
	.p2align 4,,10
	.p2align 3
.L20164:

	movq	8(%rbx), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%rax, 0(%rbp)
	jmp	.L20154
	.cfi_endproc
.LFE2240:

	.size	pkey_hkdf_derive, .-pkey_hkdf_derive
# WAS .section	.text.PKCS5_PBKDF2_HMAC,"ax",@progbits
.text
	.p2align 4
	.globl	PKCS5_PBKDF2_HMAC
	.type	PKCS5_PBKDF2_HMAC, @function
.LPKCS5_PBKDF2_HMAC_local_target:
PKCS5_PBKDF2_HMAC:
.LFB2585:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%r9, %rdi
	subq	$856, %rsp
	.cfi_def_cfa_offset 912
	movq	%rdx, 40(%rsp)
	leaq	80(%rsp), %r15
	movq	920(%rsp), %r14
	movq	%rcx, 32(%rsp)
	movl	%r8d, 48(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 840(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	movq	%r15, %rdi
	movq	%rax, (%rsp)
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	xorl	%r8d, %r8d
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20184
	cmpq	$0, 912(%rsp)
	je	.L20182
	leaq	764(%rsp), %rax
	movl	$1, 52(%rsp)
	movq	%rax, 56(%rsp)
	movq	%r12, 64(%rsp)
	movq	%rbp, 72(%rsp)
.L20183:

	movq	(%rsp), %rax
	cmpq	912(%rsp), %rax
	movq	%r15, %rdi
	movq	%rax, %rbx
	movl	52(%rsp), %eax
	cmova	912(%rsp), %rbx
	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	bswap	%eax
	movl	%eax, 764(%rsp)
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20184
	movq	32(%rsp), %rdx
	movq	40(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20184
	movq	56(%rsp), %rsi
	movl	$4, %edx
	movq	%r15, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20184
	leaq	768(%rsp), %r12
	xorl	%edx, %edx
	movq	%r15, %rdi
	movq	%r12, %rsi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L20184
	testq	%rbx, %rbx
	jne	.L20171
	cmpl	$1, 48(%rsp)
	jbe	.L20263
.L20172:

	leaq	-1(%rbx), %rax
	movq	%rbx, %r13
	movl	$1, %ebp
	movq	%rax, 8(%rsp)
	movq	%rbx, %rax
	shrq	$4, %r13
	andq	$-16, %rax
	movq	%rax, 24(%rsp)
	movq	%rbx, %rax
	andl	$15, %eax
	movq	%rax, 16(%rsp)
	jmp	.L20181
	.p2align 4,,10
	.p2align 3
.L20264:

	movdqu	(%r14), %xmm0
	pxor	768(%rsp), %xmm0
	movups	%xmm0, (%r14)
	cmpq	$1, %r13
	je	.L20177
	movdqu	16(%r14), %xmm0
	pxor	784(%rsp), %xmm0
	movups	%xmm0, 16(%r14)
	cmpq	$2, %r13
	je	.L20177
	movdqu	32(%r14), %xmm0
	pxor	800(%rsp), %xmm0
	movups	%xmm0, 32(%r14)
	cmpq	$3, %r13
	je	.L20177
	movdqu	48(%r14), %xmm0
	pxor	816(%rsp), %xmm0
	movups	%xmm0, 48(%r14)
.L20177:

	cmpq	$0, 16(%rsp)
	je	.L20175
	movq	24(%rsp), %rax
.L20176:

	movq	%rbx, %rdx
	subq	%rax, %rdx
	leaq	-1(%rdx), %rcx
	cmpq	$6, %rcx
	jbe	.L20179
	movq	768(%rsp,%rax), %xmm1
	leaq	(%r14,%rax), %rcx
	movq	(%rcx), %xmm0
	pxor	%xmm1, %xmm0
	movq	%xmm0, (%rcx)
	movq	%rdx, %rcx
	andq	$-8, %rcx
	addq	%rcx, %rax
	andl	$7, %edx
	je	.L20175
.L20179:

	movzbl	768(%rsp,%rax), %edx
	xorb	%dl, (%r14,%rax)
	leaq	1(%rax), %rdx
	cmpq	%rbx, %rdx
	jnb	.L20175
	movzbl	769(%rsp,%rax), %ecx
	xorb	%cl, (%r14,%rdx)
	leaq	2(%rax), %rdx
	cmpq	%rbx, %rdx
	jnb	.L20175
	movzbl	770(%rsp,%rax), %ecx
	xorb	%cl, (%r14,%rdx)
	leaq	3(%rax), %rdx
	cmpq	%rbx, %rdx
	jnb	.L20175
	movzbl	771(%rsp,%rax), %ecx
	xorb	%cl, (%r14,%rdx)
	leaq	4(%rax), %rdx
	cmpq	%rbx, %rdx
	jnb	.L20175
	movzbl	772(%rsp,%rax), %ecx
	xorb	%cl, (%r14,%rdx)
	leaq	5(%rax), %rdx
	cmpq	%rbx, %rdx
	jnb	.L20175
	movzbl	773(%rsp,%rax), %ecx
	addq	$6, %rax
	xorb	%cl, (%r14,%rdx)
	cmpq	%rbx, %rax
	jnb	.L20175
	movzbl	768(%rsp,%rax), %edx
	xorb	%dl, (%r14,%rax)
.L20175:

	addl	$1, %ebp
	cmpl	%ebp, 48(%rsp)
	je	.L20174
.L20181:

	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	%r15, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20184
	movq	(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20184
	xorl	%edx, %edx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L20184
	testq	%rbx, %rbx
	je	.L20175
	cmpq	$14, 8(%rsp)
	ja	.L20264
	xorl	%eax, %eax
	jmp	.L20176
	.p2align 4,,10
	.p2align 3
.L20184:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%r15, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	xorl	%eax, %eax
.L20167:

	movq	840(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20265
	addq	$856, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L20171:

	.cfi_restore_state
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	cmpl	$1, 48(%rsp)
	ja	.L20172
.L20174:

	addl	$1, 52(%rsp)
	addq	%rbx, %r14
	subq	%rbx, 912(%rsp)
	jne	.L20183
	movq	64(%rsp), %r12
	movq	72(%rsp), %rbp
.L20182:

	movl	48(%rsp), %eax
	testl	%eax, %eax
	je	.L20184
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%r15, %rdi
# WAS call	HMAC_CTX_cleanup@PLT
	call	.LHMAC_CTX_cleanup_local_target
	movl	0(%rbp), %eax
	cmpl	$962, %eax
	je	.L20187
	jg	.L20188
	cmpl	$64, %eax
	je	.L20187
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20189
.L20187:

	cmpq	$15, 32(%rsp)
	seta	%dl
	cmpl	$999, 48(%rsp)
	seta	%al
	testb	%al, %dl
	je	.L20189
	cmpq	$13, %r12
	ja	.L20266
.L20189:

	movl	$1, %eax
	jmp	.L20167
.L20188:

	cmpl	$978, %eax
	jne	.L20189
	jmp	.L20187
.L20266:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20189
.L20263:

	addl	$1, 52(%rsp)
	jmp	.L20183
.L20265:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2585:

	.size	PKCS5_PBKDF2_HMAC, .-PKCS5_PBKDF2_HMAC
# WAS .section	.text.PKCS5_PBKDF2_HMAC_SHA1,"ax",@progbits
.text
	.p2align 4
	.globl	PKCS5_PBKDF2_HMAC_SHA1
	.type	PKCS5_PBKDF2_HMAC_SHA1, @function
.LPKCS5_PBKDF2_HMAC_SHA1_local_target:
PKCS5_PBKDF2_HMAC_SHA1:
.LFB2586:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%r8d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
# WAS call	EVP_sha1@PLT
	call	.LEVP_sha1_local_target
	pushq	64(%rsp)
	.cfi_def_cfa_offset 72
	movl	%r14d, %r8d
	movq	%r13, %rcx
	pushq	%r15
	.cfi_def_cfa_offset 80
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, %r9
# WAS call	PKCS5_PBKDF2_HMAC@PLT
	call	.LPKCS5_PBKDF2_HMAC_local_target
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2586:

	.size	PKCS5_PBKDF2_HMAC_SHA1, .-PKCS5_PBKDF2_HMAC_SHA1
# WAS .section	.text.SSKDF_digest,"ax",@progbits
.text
	.p2align 4
	.globl	SSKDF_digest
	.type	SSKDF_digest, @function
.LSSKDF_digest_local_target:
SSKDF_digest:
.LFB2402:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	%rdi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	$0, 16(%rsp)
	testq	%rbx, %rbx
	je	.L20270
	movl	$16, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L20270
# WAS call	EVP_MD_CTX_new@PLT
	call	.LEVP_MD_CTX_new_local_target
	testq	%rax, %rax
	je	.L20271
	movq	%rbx, 0(%rbp)
	movq	%rax, 8(%rbp)
	movq	%rbp, 16(%rsp)
# WAS call	sskdf_variant_digest_once_bss_get@PLT
	call	sskdf_variant_digest_once_bss_get
# WAS leaq	sskdf_variant_digest_init(%rip), %rsi
	leaq	.Lsskdf_variant_digest_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	sskdf_variant_digest_storage_bss_get@PLT
	call	sskdf_variant_digest_storage_bss_get
	testq	%rax, %rax
	je	.L20272
	leaq	16(%rsp), %rsi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 104
	movq	%r12, %rcx
	movq	%r14, %r9
	pushq	%r15
	.cfi_def_cfa_offset 112
	movq	%r13, %r8
	movq	%rax, %rdi
	movq	24(%rsp), %rdx
# WAS call	SSKDF.part.0
	call	.LSSKDF.part.0_local_target
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	je	.L20272
	movq	16(%rsp), %rbp
	testq	%rbp, %rbp
	je	.L20306
	movq	8(%rbp), %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 16(%rsp)
.L20306:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%rbx), %eax
	cmpl	$978, %eax
	jg	.L20281
	cmpl	$961, %eax
	jg	.L20282
	cmpl	$64, %eax
	je	.L20283
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20281
.L20283:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L20281:

	movl	$1, %eax
	jmp	.L20269
	.p2align 4,,10
	.p2align 3
.L20270:

	xorl	%ebp, %ebp
.L20271:

	xorl	%edi, %edi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L20305:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L20277:

	xorl	%eax, %eax
.L20269:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20307
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20272:

	.cfi_restore_state
	movq	16(%rsp), %rbx
	testq	%rbx, %rbx
	je	.L20305
	movq	8(%rbx), %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 16(%rsp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L20277
	.p2align 4,,10
	.p2align 3
.L20282:

	subl	$962, %eax
	movl	$65657, %edx
	btq	%rax, %rdx
	jnc	.L20281
	jmp	.L20283
.L20307:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2402:

	.size	SSKDF_digest, .-SSKDF_digest
# WAS .section	.text.SSKDF_hmac,"ax",@progbits
.text
	.p2align 4
	.globl	SSKDF_hmac
	.type	SSKDF_hmac, @function
.LSSKDF_hmac_local_target:
SSKDF_hmac:
.LFB2403:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r9, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movq	104(%rsp), %rax
	movq	%rdi, (%rsp)
	movq	%rax, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	$0, 16(%rsp)
	testq	%rbx, %rbx
	je	.L20309
	movl	$8, %edi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L20309
# WAS call	HMAC_CTX_new@PLT
	call	.LHMAC_CTX_new_local_target
	movq	%rax, %rdi
	testq	%rax, %rax
	je	.L20310
	movq	8(%rsp), %rsi
	movq	112(%rsp), %rdx
	xorl	%r8d, %r8d
	movq	%rbx, %rcx
	movq	%rax, 8(%rsp)
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	movq	8(%rsp), %rdi
	testl	%eax, %eax
	je	.L20310
	movq	%rdi, 0(%rbp)
	movq	%rbp, 16(%rsp)
# WAS call	sskdf_variant_hmac_once_bss_get@PLT
	call	sskdf_variant_hmac_once_bss_get
# WAS leaq	sskdf_variant_hmac_init(%rip), %rsi
	leaq	.Lsskdf_variant_hmac_init_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
# WAS call	sskdf_variant_hmac_storage_bss_get@PLT
	call	sskdf_variant_hmac_storage_bss_get
	testq	%rax, %rax
	je	.L20311
	leaq	16(%rsp), %rsi
	pushq	96(%rsp)
	.cfi_def_cfa_offset 104
	movq	%r12, %rcx
	movq	%r14, %r9
	pushq	%r15
	.cfi_def_cfa_offset 112
	movq	%r13, %r8
	movq	%rax, %rdi
	movq	16(%rsp), %rdx
# WAS call	SSKDF.part.0
	call	.LSSKDF.part.0_local_target
	popq	%rdx
	.cfi_def_cfa_offset 104
	popq	%rcx
	.cfi_def_cfa_offset 96
	testl	%eax, %eax
	je	.L20311
	movq	16(%rsp), %rbp
	testq	%rbp, %rbp
	je	.L20348
	movq	0(%rbp), %rdi
# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 16(%rsp)
.L20348:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%rbx), %eax
	cmpl	$962, %eax
	je	.L20320
	jg	.L20321
	cmpl	$64, %eax
	je	.L20320
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20322
.L20320:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L20322:

	movl	$1, %eax
	jmp	.L20308
	.p2align 4,,10
	.p2align 3
.L20309:

	xorl	%edi, %edi
	xorl	%ebp, %ebp
.L20310:

# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
	movq	%rbp, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L20347:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L20316:

	xorl	%eax, %eax
.L20308:

	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20349
	addq	$40, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20311:

	.cfi_restore_state
	movq	16(%rsp), %rbx
	testq	%rbx, %rbx
	je	.L20347
	movq	(%rbx), %rdi
# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
	movq	%rbx, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	$0, 16(%rsp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L20316
	.p2align 4,,10
	.p2align 3
.L20321:

	cmpl	$978, %eax
	jne	.L20322
	jmp	.L20320
.L20349:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2403:

	.size	SSKDF_hmac, .-SSKDF_hmac
# WAS .section	.text.KBKDF_ctr_hmac,"ax",@progbits
.text
	.p2align 4
	.globl	KBKDF_ctr_hmac
	.type	KBKDF_ctr_hmac, @function
.LKBKDF_ctr_hmac_local_target:
KBKDF_ctr_hmac:
.LFB2386:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$168, %rsp
	.cfi_def_cfa_offset 224
	movq	%r9, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 152(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbp, %rbp
	je	.L20381
	testq	%rbx, %rbx
	je	.L20351
	testq	%r12, %r12
	je	.L20352
	testq	%r13, %r13
	je	.L20352
# WAS call	HMAC_CTX_new@PLT
	call	.LHMAC_CTX_new_local_target
	movq	%rax, %r15
	testq	%rax, %rax
	je	.L20352
	xorl	%r8d, %r8d
	movq	%r14, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rax, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20355
	movq	%r15, %rdi
# WAS call	HMAC_size@PLT
	call	.LHMAC_size_local_target
	movq	%rax, %rcx
	leaq	-1(%rax), %rax
	cmpq	$63, %rax
	ja	.L20355
	movq	%rcx, %rax
	addq	%rbx, %rax
	jc	.L20355
	leaq	-1(%rbx), %rax
	xorl	%r12d, %r12d
	addq	%rcx, %rax
	setc	%r12b
	xorl	%edx, %edx
	divq	%rcx
	movq	%rax, %r8
	shrq	$32, %rax
	jne	.L20355
	testq	%r12, %r12
	jne	.L20413
	leaq	80(%rsp), %rsi
	movl	$1, %edx
	leaq	76(%rsp), %rdi
	movq	%rbp, 32(%rsp)
	movq	%r14, 48(%rsp)
	movl	$16777216, %eax
	movl	%edx, %ebp
	movq	%rsi, %r14
	movq	%r13, 56(%rsp)
	movq	%rcx, %r13
	movq	%rsi, 40(%rsp)
	movq	%rdi, 16(%rsp)
	movq	%r8, 24(%rsp)
	jmp	.L20373
	.p2align 4,,10
	.p2align 3
.L20418:

	testb	$4, %al
	jne	.L20415
	testl	%eax, %eax
	je	.L20363
	movzbl	(%r14), %ecx
	movb	%cl, (%rdx)
	testb	$2, %al
	jne	.L20416
	.p2align 4,,10
	.p2align 3
.L20363:

	addq	%rax, %r12
	cmpq	%r12, %rbx
	je	.L20417
.L20370:

	movq	24(%rsp), %rcx
	movl	%ebp, %eax
	addl	$1, %ebp
	cmpq	%rcx, %rax
	jnb	.L20411
	movl	%ebp, %eax
	bswap	%eax
.L20373:

	xorl	%r8d, %r8d
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	%r15, %rdi
	movl	%eax, 76(%rsp)
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L20362
	movq	16(%rsp), %rsi
	movl	$4, %edx
	movq	%r15, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20362
	movq	224(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	testl	%eax, %eax
	je	.L20362
	leaq	72(%rsp), %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L20362
	movl	72(%rsp), %eax
	cmpq	%r13, %rax
	jne	.L20362
	movq	%rbx, %rax
	subq	%r12, %rax
	cmpq	%r13, %rax
	cmova	%r13, %rax
	testq	%rax, %rax
	je	.L20363
	movq	32(%rsp), %rsi
	leaq	(%rsi,%r12), %rdx
	cmpl	$8, %eax
	jb	.L20418
	movq	(%r14), %rcx
	leaq	8(%rdx), %rdi
	movq	%r14, %r9
	andq	$-8, %rdi
	movq	%rcx, (%rdx)
	movl	%eax, %ecx
	movq	-8(%r14,%rcx), %rsi
	movq	%rsi, -8(%rdx,%rcx)
	subq	%rdi, %rdx
	subq	%rdx, %r9
	addl	%eax, %edx
	andl	$-8, %edx
	cmpl	$8, %edx
	jb	.L20363
	andl	$-8, %edx
	xorl	%ecx, %ecx
.L20368:

	movl	%ecx, %esi
	addl	$8, %ecx
	movq	(%r9,%rsi), %r8
	movq	%r8, (%rdi,%rsi)
	cmpl	%edx, %ecx
	jb	.L20368
	jmp	.L20363
	.p2align 4,,10
	.p2align 3
.L20351:

	testq	%rbp, %rbp
	je	.L20381
	testq	%rbx, %rbx
	je	.L20381
	.p2align 4,,10
	.p2align 3
.L20352:

	xorl	%r15d, %r15d
.L20355:

	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%r15, %rdi
# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L20375:

	xorl	%eax, %eax
.L20350:

	movq	152(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L20419
	addq	$168, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20381:

	.cfi_restore_state
	xorl	%edi, %edi
# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L20375
.L20411:

	movq	48(%rsp), %r14
	movq	56(%rsp), %r13
.L20413:

.L20372:

	movq	%r15, %rdi
# WAS call	HMAC_CTX_free@PLT
	call	.LHMAC_CTX_free_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	(%r14), %eax
	cmpl	$962, %eax
	je	.L20377
	jg	.L20378
	cmpl	$64, %eax
	je	.L20377
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20379
.L20377:

	cmpq	$13, %r13
	ja	.L20420
.L20379:

	movl	$1, %eax
	jmp	.L20350
	.p2align 4,,10
	.p2align 3
.L20378:

	cmpl	$978, %eax
	jne	.L20379
	jmp	.L20377
	.p2align 4,,10
	.p2align 3
.L20420:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20379
	.p2align 4,,10
	.p2align 3
.L20417:

	movl	$64, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L20370
	.p2align 4,,10
	.p2align 3
.L20362:

	movq	40(%rsp), %rdi
	movl	$64, %esi
	movq	32(%rsp), %rbp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L20355
.L20415:

	movl	(%r14), %ecx
	movl	%ecx, (%rdx)
	movl	%eax, %ecx
	movl	-4(%r14,%rcx), %esi
	movl	%esi, -4(%rdx,%rcx)
	jmp	.L20363
.L20416:

	movl	%eax, %ecx
	movzwl	-2(%r14,%rcx), %esi
	movw	%si, -2(%rdx,%rcx)
	jmp	.L20363
.L20419:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2386:

	.size	KBKDF_ctr_hmac, .-KBKDF_ctr_hmac
# WAS .section	.text.EVP_PKEY_encapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_encapsulate
	.type	EVP_PKEY_encapsulate, @function
.LEVP_PKEY_encapsulate_local_target:
EVP_PKEY_encapsulate:
.LFB2207:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	je	.L20422
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L20422
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L20422
	movq	%r14, %r8
	movq	%r12, %rcx
	movq	%r13, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L20443
.L20427:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testq	%rbp, %rbp
	je	.L20428
	testq	%r12, %r12
	je	.L20428
	movq	16(%rbx), %rax
	cmpl	$970, 4(%rax)
	je	.L20429
.L20428:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20422:

	.cfi_restore_state
	movl	$604, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20443:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20429:

	.cfi_restore_state
	movq	8(%rax), %rax
	movq	(%rax), %rax
	movl	(%rax), %eax
	subl	$988, %eax
	cmpl	$2, %eax
	ja	.L20428
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20428
	.cfi_endproc
.LFE2207:

	.size	EVP_PKEY_encapsulate, .-EVP_PKEY_encapsulate
# WAS .section	.text.EVP_PKEY_decapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_decapsulate
	.type	EVP_PKEY_decapsulate, @function
.LEVP_PKEY_decapsulate_local_target:
EVP_PKEY_decapsulate:
.LFB2208:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%r8, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	je	.L20445
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L20445
	movq	168(%rax), %rax
	testq	%rax, %rax
	je	.L20445
	movq	%r14, %r8
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	*%rax
	testl	%eax, %eax
	je	.L20449
.L20450:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testq	%rbp, %rbp
	je	.L20451
	movq	16(%rbx), %rax
	cmpl	$970, 4(%rax)
	je	.L20452
.L20451:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20449:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L20463:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20445:

	.cfi_restore_state
	movl	$631, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
	jmp	.L20463
	.p2align 4,,10
	.p2align 3
.L20452:

	movq	8(%rax), %rax
	movq	(%rax), %rax
	movl	(%rax), %eax
	subl	$988, %eax
	cmpl	$2, %eax
	ja	.L20451
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20451
	.cfi_endproc
.LFE2208:

	.size	EVP_PKEY_decapsulate, .-EVP_PKEY_decapsulate
# WAS .section	.text.EVP_PKEY_kem_check_key,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_kem_check_key
	.type	EVP_PKEY_kem_check_key, @function
.LEVP_PKEY_kem_check_key_local_target:
EVP_PKEY_kem_check_key:
.LFB2276:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L20465
	movq	8(%rdi), %rax
	testq	%rax, %rax
	je	.L20465
	cmpq	$0, 8(%rax)
	je	.L20465
	cmpq	$0, 16(%rax)
	je	.L20465
	xorl	%esi, %esi
# WAS call	EVP_PKEY_CTX_new@PLT
	call	.LEVP_PKEY_CTX_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L20504
	leaq	24(%rsp), %rax
	leaq	32(%rsp), %r13
	xorl	%ecx, %ecx
	xorl	%esi, %esi
	movq	%r13, %r8
	movq	%rax, %rdx
	movq	%rbp, %rdi
	movq	%rax, 8(%rsp)
# WAS call	EVP_PKEY_encapsulate@PLT
	call	.LEVP_PKEY_encapsulate_local_target
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L20505
	movq	24(%rsp), %rdi
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	32(%rsp), %rdi
	movq	%rax, %r15
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	movq	32(%rsp), %rdi
	movq	%rax, %r12
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%r15, %r15
	movq	%rax, %r14
	sete	%al
	testq	%r12, %r12
	sete	%dl
	orb	%dl, %al
	jne	.L20485
	testq	%r14, %r14
	je	.L20485
	movq	8(%rsp), %rdx
	movq	%r13, %r8
	movq	%r14, %rcx
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_encapsulate@PLT
	call	.LEVP_PKEY_encapsulate_local_target
	testl	%eax, %eax
	je	.L20475
	movq	24(%rsp), %r8
	movq	%r15, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_decapsulate@PLT
	call	.LEVP_PKEY_decapsulate_local_target
	testl	%eax, %eax
	je	.L20475
	movq	32(%rsp), %rcx
	movl	$1, %ebx
	testq	%rcx, %rcx
	je	.L20471
	leaq	-1(%rcx), %rax
	cmpq	$14, %rax
	jbe	.L20484
	movq	%rcx, %rdx
	xorl	%eax, %eax
	pxor	%xmm1, %xmm1
	andq	$-16, %rdx
	.p2align 4,,10
	.p2align 3
.L20479:

	movdqu	(%r14,%rax), %xmm0
	movdqu	(%r12,%rax), %xmm3
	addq	$16, %rax
	pxor	%xmm3, %xmm0
	por	%xmm0, %xmm1
	cmpq	%rax, %rdx
	jne	.L20479
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm0
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$4, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$2, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$1, %xmm2
	por	%xmm2, %xmm0
	movd	%xmm0, %eax
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm1
	por	%xmm0, %xmm1
	cmpq	%rcx, %rdx
	je	.L20480
.L20478:

	movq	%rcx, %rsi
	subq	%rdx, %rsi
	leaq	-1(%rsi), %rdi
	cmpq	$6, %rdi
	jbe	.L20481
	movq	(%r12,%rdx), %xmm0
	movq	(%r14,%rdx), %xmm2
	pxor	%xmm2, %xmm0
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
	movq	%rdi, %rax
	movq	%rdi, %r8
	shrq	$16, %r8
	orb	%ah, %al
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$24, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$32, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$40, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$56, %rdi
	shrq	$48, %r8
	orl	%r8d, %eax
	orl	%edi, %eax
	movq	%rsi, %rdi
	andq	$-8, %rdi
	addq	%rdi, %rdx
	andl	$7, %esi
	je	.L20480
.L20481:

	movzbl	(%r12,%rdx), %esi
	xorb	(%r14,%rdx), %sil
	orl	%esi, %eax
	leaq	1(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	1(%r14,%rdx), %esi
	xorb	1(%r12,%rdx), %sil
	orl	%esi, %eax
	leaq	2(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	2(%r12,%rdx), %esi
	xorb	2(%r14,%rdx), %sil
	orl	%esi, %eax
	leaq	3(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	3(%r12,%rdx), %esi
	xorb	3(%r14,%rdx), %sil
	orl	%esi, %eax
	leaq	4(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	4(%r12,%rdx), %esi
	xorb	4(%r14,%rdx), %sil
	orl	%esi, %eax
	leaq	5(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	5(%r12,%rdx), %esi
	xorb	5(%r14,%rdx), %sil
	orl	%esi, %eax
	leaq	6(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L20480
	movzbl	6(%r14,%rdx), %ecx
	xorb	6(%r12,%rdx), %cl
	movl	%ecx, %edx
	orl	%edx, %eax
.L20480:

	movzbl	%al, %eax
	movq	%rax, %rbx
	subq	$1, %rax
	notq	%rbx
	andq	%rax, %rbx
	sarq	$63, %rbx
	andl	$1, %ebx
	movzbl	%bl, %ebx
	jmp	.L20471
	.p2align 4,,10
	.p2align 3
.L20465:

	movl	$489, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20467:

	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L20464:

	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20506
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20485:

	.cfi_restore_state
	movl	$512, %r8d
.L20503:

	leaq	.LC5(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20471:

	movq	%r15, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r14, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, %rdi
# WAS call	EVP_PKEY_CTX_free@PLT
	call	.LEVP_PKEY_CTX_free_local_target
	jmp	.L20464
	.p2align 4,,10
	.p2align 3
.L20505:

	movl	$505, %r8d
	movl	$68, %edx
	xorl	%esi, %esi
	xorl	%r14d, %r14d
	leaq	.LC5(%rip), %rcx
	movl	$6, %edi
	xorl	%r12d, %r12d
	xorl	%r15d, %r15d
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20471
	.p2align 4,,10
	.p2align 3
.L20504:

	movl	$495, %r8d
	leaq	.LC5(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20467
	.p2align 4,,10
	.p2align 3
.L20475:

	movl	$519, %r8d
	jmp	.L20503
.L20484:

	pxor	%xmm1, %xmm1
	xorl	%edx, %edx
	xorl	%eax, %eax
	jmp	.L20478
.L20506:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2276:

	.size	EVP_PKEY_kem_check_key, .-EVP_PKEY_kem_check_key
# WAS .section	.text.pkey_rsa_keygen,"ax",@progbits
.text
	.p2align 4
	.type	pkey_rsa_keygen, @function
.Lpkey_rsa_keygen_local_target:
pkey_rsa_keygen:
.LFB2295:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	40(%rdi), %r13
# WAS call	RSA_new@PLT
	call	.LRSA_new_local_target
	testq	%rax, %rax
	je	.L20508
	movq	%rax, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	0(%r13), %esi
	xorl	%edx, %edx
	movq	%rbx, %rdi
# WAS call	RSA_generate_key_fips@PLT
	call	.LRSA_generate_key_fips_local_target
	testl	%eax, %eax
	je	.L20512
	movq	0(%rbp), %rax
	cmpl	$912, (%rax)
	je	.L20524
.L20511:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	0(%rbp), %rax
	cmpl	$912, (%rax)
	je	.L20525
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_assign_RSA@PLT
	call	.LEVP_PKEY_assign_RSA_local_target
.L20514:

	testl	%eax, %eax
	je	.L20510
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20524:

	.cfi_restore_state
	movq	40(%rbp), %rax
	leaq	72(%rbx), %rcx
	movl	40(%rax), %edx
	movq	32(%rax), %rsi
	movq	24(%rax), %rdi
# WAS call	RSASSA_PSS_PARAMS_create@PLT
	call	.Lbcm_redirector_RSASSA_PSS_PARAMS_create
	testl	%eax, %eax
	jne	.L20511
.L20512:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L20510:

	movq	%rbx, %rdi
# WAS call	RSA_free@PLT
	call	.LRSA_free_local_target
.L20508:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20525:

	.cfi_restore_state
	movq	%rbx, %rdx
	movl	$912, %esi
	movq	%r12, %rdi
# WAS call	EVP_PKEY_assign@PLT
	call	.LEVP_PKEY_assign_local_target
	jmp	.L20514
	.cfi_endproc
.LFE2295:

	.size	pkey_rsa_keygen, .-pkey_rsa_keygen
# WAS .section	.text.bn_rand_range_words.constprop.0,"ax",@progbits
.text
	.p2align 4
	.type	bn_rand_range_words.constprop.0, @function
.Lbn_rand_range_words.constprop.0_local_target:
bn_rand_range_words.constprop.0:
.LFB3340:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	%rsi, 16(%rsp)
	movq	%rcx, 32(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	64(%rsp), %rsi
	movq	%rbx, %r8
	movq	%r15, %rcx
	leaq	56(%rsp), %rdi
	movl	$1, %edx
# WAS call	bn_range_to_mask
	call	.Lbn_range_to_mask_local_target
	testl	%eax, %eax
	je	.L20527
	movq	56(%rsp), %r13
	subq	%r13, %rbx
	leaq	0(,%r13,8), %rax
	salq	$3, %rbx
	movq	%rax, 8(%rsp)
	jne	.L20559
.L20528:

	leaq	-1(%r13), %rax
	movl	$100, %ebx
	movq	%rax, %r8
	movq	%rax, 24(%rsp)
	orq	$1, %rax
	movq	%rax, 40(%rsp)
	shrq	%r8
	movq	8(%rsp), %rax
	salq	$4, %r8
	leaq	(%r8,%r14), %r15
	leaq	-8(%rax), %rbp
	.p2align 4,,10
	.p2align 3
.L20537:

	subl	$1, %ebx
	je	.L20560
	movq	8(%rsp), %rax
	testq	%rax, %rax
	je	.L20531
	movq	32(%rsp), %rdx
	movq	%rax, %rsi
	movq	%r14, %rdi
# WAS call	RAND_bytes_with_additional_data.part.0
	call	.LRAND_bytes_with_additional_data.part.0_local_target
.L20531:

	movq	64(%rsp), %rax
	xorl	%r12d, %r12d
	andq	%rax, (%r14,%rbp)
	testq	%r13, %r13
	je	.L20532
	cmpq	$1, %r13
	je	.L20540
	cmpq	$2, %r13
	je	.L20541
	movq	%r14, %rax
	pxor	%xmm0, %xmm0
	.p2align 4,,10
	.p2align 3
.L20535:

	movdqu	8(%rax), %xmm2
	addq	$16, %rax
	por	%xmm2, %xmm0
	cmpq	%rax, %r15
	jne	.L20535
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movq	%xmm0, %rax
	testb	$1, 24(%rsp)
	je	.L20536
	movq	40(%rsp), %rdx
.L20534:

	orq	(%r14,%rdx,8), %rax
.L20536:

	movq	%rax, %rdx
	subq	$1, %rax
	notq	%rdx
	andq	%rax, %rdx
.L20533:

	movq	(%r14), %rax
	leaq	-1(%rax), %r10
	movq	%rax, %rsi
	xorq	%rax, %r10
	xorq	$1, %rsi
	orq	%rsi, %r10
	xorq	%rax, %r10
	andq	%rdx, %r10
	sarq	$63, %r10
	movl	%r10d, %r12d
	notl	%r12d
.L20532:

	movq	16(%rsp), %rdx
	movq	%r13, %rcx
	movq	%r13, %rsi
	movq	%r14, %rdi
# WAS call	bn_cmp_words_consttime
	call	.Lbn_cmp_words_consttime_local_target
	shrl	$31, %eax
	andl	%r12d, %eax
	testl	%eax, %eax
	je	.L20537
	movl	$1, %ebx
.L20530:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20561
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20540:

	.cfi_restore_state
	movq	$-1, %rdx
	jmp	.L20533
.L20541:

	xorl	%eax, %eax
	movl	$1, %edx
	jmp	.L20534
.L20559:

	leaq	(%r14,%rax), %rdi
	movq	%rbx, %rdx
	xorl	%esi, %esi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	jmp	.L20528
.L20560:

	movl	$277, %r8d
	leaq	.LC70(%rip), %rcx
	movl	$115, %edx
	xorl	%esi, %esi
	movl	$3, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20527:

	xorl	%ebx, %ebx
	jmp	.L20530
.L20561:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3340:

	.size	bn_rand_range_words.constprop.0, .-bn_rand_range_words.constprop.0
# WAS .section	.text.EC_KEY_generate_key,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_generate_key
	.type	EC_KEY_generate_key, @function
.LEC_KEY_generate_key_local_target:
EC_KEY_generate_key:
.LFB1857:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	testq	%rdi, %rdi
	je	.L20563
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
	testq	%rdi, %rdi
	je	.L20563
# WAS call	EC_GROUP_order_bits@PLT
	call	.LEC_GROUP_order_bits_local_target
	cmpl	$159, %eax
	jle	.L20580
	movl	$96, %edi
	movq	(%rbx), %rbp
# WAS call	OPENSSL_zalloc@PLT
	call	.Lbcm_redirector_OPENSSL_zalloc
	movq	%rax, %r12
	testq	%rax, %rax
	je	.L20581
	movd	264(%rbp), %xmm0
	leaq	24(%rax), %r13
	movq	(%rbx), %rdi
	movl	$2, 20(%rax)
	movq	%r13, (%rax)
	pshufd	$0xe0, %xmm0, %xmm0
	movq	%xmm0, 8(%rax)
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%rax, %rbp
	testq	%rax, %rax
	je	.L20569
	movq	(%rbx), %rax
# WAS leaq	kDefaultAdditionalData.72(%rip), %rcx
	leaq	.LkDefaultAdditionalData.72_local_target(%rip), %rcx
	movq	%r13, %rdi
	movslq	264(%rax), %rdx
	movq	256(%rax), %rsi
# WAS call	bn_rand_range_words.constprop.0
	call	.Lbn_rand_range_words.constprop.0_local_target
	testl	%eax, %eax
	jne	.L20582
.L20569:

	movq	%rbp, %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	%r12, %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
.L20565:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20580:

	.cfi_restore_state
	movl	$485, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$112, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20565
	.p2align 4,,10
	.p2align 3
.L20563:

	movl	$479, %r8d
	leaq	.LC268(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20565
	.p2align 4,,10
	.p2align 3
.L20582:

	movq	(%rbx), %r14
	leaq	8(%rbp), %r15
	movq	%r13, %rdx
	movq	%r15, %rsi
	movq	(%r14), %rax
	movq	%r14, %rdi
	call	*40(%rax)
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	ec_GFp_simple_is_on_curve
	call	.Lec_GFp_simple_is_on_curve_local_target
	testl	%eax, %eax
	je	.L20571
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%r12, 16(%rbx)
	movq	8(%rbx), %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	%rbp, 8(%rbx)
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20581:

	.cfi_restore_state
	movq	(%rbx), %rdi
# WAS call	EC_POINT_new@PLT
	call	.LEC_POINT_new_local_target
	movq	%rax, %rbp
	jmp	.L20569
	.p2align 4,,10
	.p2align 3
.L20571:

	movl	$919, %r8d
	leaq	.LC259(%rip), %rcx
	movl	$68, %edx
	xorl	%esi, %esi
	movl	$15, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20569
	.cfi_endproc
.LFE1857:

	.size	EC_KEY_generate_key, .-EC_KEY_generate_key
# WAS .section	.text.unlikely.EC_KEY_generate_key_fips,"ax",@progbits
.text
.LCOLDB372:

# WAS .section	.text.EC_KEY_generate_key_fips,"ax",@progbits
.text
.LHOTB372:

	.p2align 4
	.globl	EC_KEY_generate_key_fips
	.type	EC_KEY_generate_key_fips, @function
.LEC_KEY_generate_key_fips_local_target:
EC_KEY_generate_key_fips:
.LFB1858:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbx, %rdi
# WAS call	EC_KEY_generate_key@PLT
	call	.LEC_KEY_generate_key_local_target
	testl	%eax, %eax
	je	.L20585
	movq	%rbx, %rdi
# WAS call	EC_KEY_check_fips@PLT
	call	.LEC_KEY_check_fips_local_target
	testl	%eax, %eax
	je	.L20585
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	(%rbx), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L20586
	jle	.L20599
	subl	$715, %eax
	cmpl	$1, %eax
	jbe	.L20586
.L20588:

	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20599:

	.cfi_restore_state
	cmpl	$415, %eax
	jne	.L20588
.L20586:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.EC_KEY_generate_key_fips
.text
	.cfi_startproc
	.type	EC_KEY_generate_key_fips.cold, @function
.LEC_KEY_generate_key_fips.cold_local_target:
EC_KEY_generate_key_fips.cold:
.LFSB1858:

.L20585:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	8(%rbx), %rdi
# WAS call	EC_POINT_free@PLT
	call	.LEC_POINT_free_local_target
	movq	16(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	pxor	%xmm0, %xmm0
	movups	%xmm0, 8(%rbx)
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1858:

# WAS .section	.text.EC_KEY_generate_key_fips
.text
	.size	EC_KEY_generate_key_fips, .-EC_KEY_generate_key_fips
# WAS .section	.text.unlikely.EC_KEY_generate_key_fips
.text
	.size	EC_KEY_generate_key_fips.cold, .-EC_KEY_generate_key_fips.cold
.LCOLDE372:

# WAS .section	.text.EC_KEY_generate_key_fips
.text
.LHOTE372:

# WAS .section	.text.pkey_ec_keygen,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_keygen, @function
.Lpkey_ec_keygen_local_target:
pkey_ec_keygen:
.LFB2223:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	40(%rdi), %rax
	movq	8(%rax), %rbp
	testq	%rbp, %rbp
	je	.L20614
.L20601:

# WAS call	EC_KEY_new@PLT
	call	.LEC_KEY_new_local_target
	movq	%rax, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	je	.L20606
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	EC_KEY_set_group@PLT
	call	.LEC_KEY_set_group_local_target
	testl	%eax, %eax
	jne	.L20615
.L20606:

	movq	%rbx, %rdi
	xorl	%ebx, %ebx
# WAS call	EC_KEY_free@PLT
	call	.LEC_KEY_free_local_target
.L20605:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L20600:

	movl	%ebx, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20615:

	.cfi_restore_state
	movq	%rbx, %rdi
# WAS call	EC_KEY_generate_key_fips@PLT
	call	.LEC_KEY_generate_key_fips_local_target
	testl	%eax, %eax
	je	.L20606
	movq	%rbx, %rsi
	movq	%r12, %rdi
	movl	$1, %ebx
# WAS call	EVP_PKEY_assign_EC_KEY@PLT
	call	.LEVP_PKEY_assign_EC_KEY_local_target
	jmp	.L20605
	.p2align 4,,10
	.p2align 3
.L20614:

	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.L20616
	movq	8(%rax), %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rbp
	jmp	.L20601
	.p2align 4,,10
	.p2align 3
.L20616:

	movl	$268, %r8d
	movl	$124, %edx
	xorl	%esi, %esi
	xorl	%ebx, %ebx
	leaq	.LC260(%rip), %rcx
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	jmp	.L20600
	.cfi_endproc
.LFE2223:

	.size	pkey_ec_keygen, .-pkey_ec_keygen
# WAS .section	.text.ec_random_nonzero_scalar,"ax",@progbits
.text
	.p2align 4
	.globl	ec_random_nonzero_scalar
	.hidden	ec_random_nonzero_scalar
	.type	ec_random_nonzero_scalar, @function
.Lec_random_nonzero_scalar_local_target:
ec_random_nonzero_scalar:
.LFB2065:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdx, %rcx
	movq	%rsi, %rdi
	movslq	264(%rax), %rdx
	movq	256(%rax), %rsi
# WAS jmp	bn_rand_range_words.constprop.0
	jmp	.Lbn_rand_range_words.constprop.0_local_target
	.cfi_endproc
.LFE2065:

	.size	ec_random_nonzero_scalar, .-ec_random_nonzero_scalar
# WAS .section	.text.AEAD_GCM_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	AEAD_GCM_verify_service_indicator
	.hidden	AEAD_GCM_verify_service_indicator
	.type	AEAD_GCM_verify_service_indicator, @function
.LAEAD_GCM_verify_service_indicator_local_target:
AEAD_GCM_verify_service_indicator:
.LFB2811:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	(%rdi), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	subq	$16, %rax
	testq	$-17, %rax
	je	.L20621
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20621:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2811:

	.size	AEAD_GCM_verify_service_indicator, .-AEAD_GCM_verify_service_indicator
# WAS .section	.text.AEAD_CCM_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	AEAD_CCM_verify_service_indicator
	.hidden	AEAD_CCM_verify_service_indicator
	.type	AEAD_CCM_verify_service_indicator, @function
.LAEAD_CCM_verify_service_indicator_local_target:
AEAD_CCM_verify_service_indicator:
.LFB2812:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	(%rdi), %rdi
# WAS call	EVP_AEAD_key_length@PLT
	call	.LEVP_AEAD_key_length_local_target
	cmpq	$16, %rax
	je	.L20625
.L20622:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20625:

	.cfi_restore_state
	cmpb	$4, 577(%rbx)
	jne	.L20622
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2812:

	.size	AEAD_CCM_verify_service_indicator, .-AEAD_CCM_verify_service_indicator
# WAS .section	.text.AES_CMAC_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	AES_CMAC_verify_service_indicator
	.hidden	AES_CMAC_verify_service_indicator
	.type	AES_CMAC_verify_service_indicator, @function
.LAES_CMAC_verify_service_indicator_local_target:
AES_CMAC_verify_service_indicator:
.LFB2813:

	.cfi_startproc
	endbr64
	movl	24(%rdi), %eax
	subl	$16, %eax
	andl	$-17, %eax
	je	.L20638
	ret
	.p2align 4,,10
	.p2align 3
.L20638:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20639
.L20629:

	cmpq	$0, (%rbx)
	jne	.L20626
	addq	$1, 8(%rbx)
.L20626:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20639:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20626
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20629
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2813:

	.size	AES_CMAC_verify_service_indicator, .-AES_CMAC_verify_service_indicator
# WAS .section	.text.EC_KEY_keygen_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EC_KEY_keygen_verify_service_indicator
	.hidden	EC_KEY_keygen_verify_service_indicator
	.type	EC_KEY_keygen_verify_service_indicator, @function
.LEC_KEY_keygen_verify_service_indicator_local_target:
EC_KEY_keygen_verify_service_indicator:
.LFB2819:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	(%rdi), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L20641
	jg	.L20642
	cmpl	$415, %eax
	je	.L20641
.L20640:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20642:

	.cfi_restore_state
	subl	$715, %eax
	cmpl	$1, %eax
	ja	.L20640
.L20641:

	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20654
.L20644:

	cmpq	$0, (%rbx)
	jne	.L20640
	addq	$1, 8(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20654:

	.cfi_restore_state
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20640
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20644
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2819:

	.size	EC_KEY_keygen_verify_service_indicator, .-EC_KEY_keygen_verify_service_indicator
# WAS .section	.text.ECDH_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	ECDH_verify_service_indicator
	.hidden	ECDH_verify_service_indicator
	.type	ECDH_verify_service_indicator, @function
.LECDH_verify_service_indicator_local_target:
ECDH_verify_service_indicator:
.LFB2820:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L20656
	jle	.L20666
	subl	$715, %eax
	cmpl	$1, %eax
	jbe	.L20656
.L20655:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20666:

	.cfi_restore_state
	cmpl	$415, %eax
	jne	.L20655
.L20656:

	addq	$8, %rsp
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2820:

	.size	ECDH_verify_service_indicator, .-ECDH_verify_service_indicator
# WAS .section	.text.EVP_PKEY_keygen_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_keygen_verify_service_indicator
	.hidden	EVP_PKEY_keygen_verify_service_indicator
	.type	EVP_PKEY_keygen_verify_service_indicator, @function
.LEVP_PKEY_keygen_verify_service_indicator_local_target:
EVP_PKEY_keygen_verify_service_indicator:
.LFB2821:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movl	4(%rdi), %eax
	cmpl	$6, %eax
	je	.L20678
	cmpl	$912, %eax
	je	.L20678
	cmpl	$408, %eax
	je	.L20690
	cmpl	$970, %eax
	je	.L20691
	cmpl	$949, %eax
	je	.L20674
.L20667:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20678:

	.cfi_restore_state
	movq	8(%rdi), %rdi
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	cmpl	$2047, %eax
	jbe	.L20667
	testb	$127, %al
	jne	.L20667
.L20674:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20691:

	.cfi_restore_state
	movq	8(%rdi), %rax
	movq	(%rax), %rax
	movl	(%rax), %eax
	subl	$988, %eax
	cmpl	$2, %eax
	jbe	.L20674
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20690:

	.cfi_restore_state
	movq	8(%rdi), %rax
	movq	(%rax), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L20674
	jg	.L20675
	cmpl	$415, %eax
	jne	.L20667
	jmp	.L20674
	.p2align 4,,10
	.p2align 3
.L20675:

	subl	$715, %eax
	cmpl	$1, %eax
	ja	.L20667
	jmp	.L20674
	.cfi_endproc
.LFE2821:

	.size	EVP_PKEY_keygen_verify_service_indicator, .-EVP_PKEY_keygen_verify_service_indicator
# WAS .section	.text.EVP_PKEY_keygen,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_keygen
	.type	EVP_PKEY_keygen, @function
.LEVP_PKEY_keygen_local_target:
EVP_PKEY_keygen:
.LFB2203:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	je	.L20693
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L20693
	movq	32(%rax), %rdx
	testq	%rdx, %rdx
	je	.L20693
	cmpl	$4, 32(%rbx)
	jne	.L20710
	testq	%rbp, %rbp
	je	.L20709
	movq	0(%rbp), %rsi
	testq	%rsi, %rsi
	je	.L20711
.L20699:

	movq	%rbx, %rdi
	call	*%rdx
	testl	%eax, %eax
	je	.L20701
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	0(%rbp), %rdi
# WAS call	EVP_PKEY_keygen_verify_service_indicator
	call	.LEVP_PKEY_keygen_verify_service_indicator_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20693:

	.cfi_restore_state
	movl	$501, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$125, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L20709:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L20712:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20710:

	.cfi_restore_state
	movl	$505, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$126, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
	jmp	.L20712
	.p2align 4,,10
	.p2align 3
.L20701:

	movq	0(%rbp), %rdi
# WAS call	EVP_PKEY_free@PLT
	call	.LEVP_PKEY_free_local_target
	movq	$0, 0(%rbp)
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
	jmp	.L20712
	.p2align 4,,10
	.p2align 3
.L20711:

# WAS call	EVP_PKEY_new@PLT
	call	.LEVP_PKEY_new_local_target
	movq	%rax, 0(%rbp)
	movq	%rax, %rsi
	testq	%rax, %rax
	je	.L20700
	movq	(%rbx), %rax
	movq	32(%rax), %rdx
	jmp	.L20699
.L20700:

	movl	$516, %r8d
	leaq	.LC277(%rip), %rcx
	movl	$6, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
	jmp	.L20712
	.cfi_endproc
.LFE2203:

	.size	EVP_PKEY_keygen, .-EVP_PKEY_keygen
# WAS .section	.text.EVP_Cipher_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_Cipher_verify_service_indicator
	.hidden	EVP_Cipher_verify_service_indicator
	.type	EVP_Cipher_verify_service_indicator, @function
.LEVP_Cipher_verify_service_indicator_local_target:
EVP_Cipher_verify_service_indicator:
.LFB2822:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	EVP_CIPHER_CTX_nid@PLT
	call	.LEVP_CIPHER_CTX_nid_local_target
	cmpl	$427, %eax
	jg	.L20714
	cmpl	$417, %eax
	jg	.L20721
.L20713:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20721:

	.cfi_restore_state
	subl	$418, %eax
	movl	$819, %edx
	btq	%rax, %rdx
	jnc	.L20713
.L20716:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20714:

	.cfi_restore_state
	cmpl	$906, %eax
	jle	.L20722
	cmpl	$914, %eax
	je	.L20716
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20722:

	.cfi_restore_state
	cmpl	$903, %eax
	jg	.L20716
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2822:

	.size	EVP_Cipher_verify_service_indicator, .-EVP_Cipher_verify_service_indicator
# WAS .section	.text.EVP_DigestVerify_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestVerify_verify_service_indicator
	.hidden	EVP_DigestVerify_verify_service_indicator
	.type	EVP_DigestVerify_verify_service_indicator, @function
.LEVP_DigestVerify_verify_service_indicator_local_target:
EVP_DigestVerify_verify_service_indicator:
.LFB2823:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	testq	%rax, %rax
	je	.L20786
	movq	24(%rbx), %r13
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get0_pkey@PLT
	call	.LEVP_PKEY_CTX_get0_pkey_local_target
	movq	%rax, %rdi
	movq	%rax, %r12
# WAS call	EVP_PKEY_id@PLT
	call	.LEVP_PKEY_id_local_target
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	EVP_MD_CTX_type@PLT
	call	.LEVP_MD_CTX_type_local_target
	movl	%eax, %r14d
	cmpl	$6, %ebp
	je	.L20751
	cmpl	$912, %ebp
	je	.L20751
	cmpl	$408, %ebp
	je	.L20787
.L20726:

	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20784
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	ERR_clear_error@PLT
	jmp	.Lbcm_redirector_ERR_clear_error
	.p2align 4,,10
	.p2align 3
.L20786:

	.cfi_restore_state
	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	cmpl	$949, 4(%rax)
	jne	.L20726
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20784
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20751:

	.cfi_restore_state
	leaq	8(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_signature_md@PLT
	call	.LEVP_PKEY_CTX_get_signature_md_local_target
	testl	%eax, %eax
	je	.L20726
	movq	8(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %r14d
	jne	.L20726
	movq	%rsp, %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_padding@PLT
	call	.LEVP_PKEY_CTX_get_rsa_padding_local_target
	testl	%eax, %eax
	je	.L20726
	cmpl	$6, (%rsp)
	je	.L20788
.L20731:

	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	movq	8(%rax), %rdi
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	cmpl	$978, %r14d
	jg	.L20726
	cmpl	$961, %r14d
	jg	.L20739
	cmpl	$64, %r14d
	je	.L20740
	subl	$672, %r14d
	cmpl	$3, %r14d
	ja	.L20726
.L20740:

	movl	%eax, %edx
	cmpl	$1024, %eax
	je	.L20747
	cmpq	$2047, %rdx
	jbe	.L20726
	testb	$1, %al
	jne	.L20726
	jmp	.L20747
	.p2align 4,,10
	.p2align 3
.L20787:

	movq	8(%r12), %rax
	movq	(%rax), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$978, %r14d
	jg	.L20726
	cmpl	$961, %r14d
	jg	.L20745
	cmpl	$64, %r14d
	je	.L20746
	subl	$672, %r14d
	cmpl	$3, %r14d
	ja	.L20726
.L20746:

	cmpl	$713, %eax
	je	.L20747
	jg	.L20748
	cmpl	$415, %eax
	jne	.L20726
.L20747:

	movq	%r13, %rdi
# WAS call	custom_meth_invoked
	call	.Lcustom_meth_invoked_local_target
	testl	%eax, %eax
	jne	.L20726
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20726
	.p2align 4,,10
	.p2align 3
.L20745:

	subl	$962, %r14d
	movl	$65657, %edx
	btq	%r14, %rdx
	jnc	.L20726
	jmp	.L20746
	.p2align 4,,10
	.p2align 3
.L20748:

	subl	$715, %eax
	cmpl	$1, %eax
	ja	.L20726
	jmp	.L20747
.L20788:

	leaq	4(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_pss_saltlen@PLT
	call	.LEVP_PKEY_CTX_get_rsa_pss_saltlen_local_target
	testl	%eax, %eax
	je	.L20726
	leaq	16(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_mgf1_md@PLT
	call	.LEVP_PKEY_CTX_get_rsa_mgf1_md_local_target
	testl	%eax, %eax
	je	.L20726
	cmpl	$-1, 4(%rsp)
	je	.L20737
	movq	8(%rsp), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpl	%eax, 4(%rsp)
	jne	.L20726
.L20737:

	movq	16(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %r14d
	jne	.L20726
	jmp	.L20731
.L20739:

	subl	$962, %r14d
	movl	$65657, %edx
	btq	%r14, %rdx
	jnc	.L20726
	jmp	.L20740
.L20784:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2823:

	.size	EVP_DigestVerify_verify_service_indicator, .-EVP_DigestVerify_verify_service_indicator
# WAS .section	.text.EVP_DigestSign_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_DigestSign_verify_service_indicator
	.hidden	EVP_DigestSign_verify_service_indicator
	.type	EVP_DigestSign_verify_service_indicator, @function
.LEVP_DigestSign_verify_service_indicator_local_target:
EVP_DigestSign_verify_service_indicator:
.LFB2824:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
# WAS call	EVP_MD_CTX_md@PLT
	call	.LEVP_MD_CTX_md_local_target
	testq	%rax, %rax
	je	.L20840
	movq	24(%rbx), %r13
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get0_pkey@PLT
	call	.LEVP_PKEY_CTX_get0_pkey_local_target
	movq	%rax, %rdi
	movq	%rax, %r12
# WAS call	EVP_PKEY_id@PLT
	call	.LEVP_PKEY_id_local_target
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	EVP_MD_CTX_type@PLT
	call	.LEVP_MD_CTX_type_local_target
	movl	%eax, %r14d
	cmpl	$6, %ebp
	je	.L20818
	cmpl	$912, %ebp
	je	.L20818
	cmpl	$408, %ebp
	je	.L20841
.L20792:

	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20838
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	ERR_clear_error@PLT
	jmp	.Lbcm_redirector_ERR_clear_error
	.p2align 4,,10
	.p2align 3
.L20840:

	.cfi_restore_state
	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	cmpl	$949, 4(%rax)
	jne	.L20792
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L20838
	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20818:

	.cfi_restore_state
	leaq	8(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_signature_md@PLT
	call	.LEVP_PKEY_CTX_get_signature_md_local_target
	testl	%eax, %eax
	je	.L20792
	movq	8(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %r14d
	jne	.L20792
	movq	%rsp, %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_padding@PLT
	call	.LEVP_PKEY_CTX_get_rsa_padding_local_target
	testl	%eax, %eax
	je	.L20792
	cmpl	$6, (%rsp)
	je	.L20842
.L20797:

	movq	24(%rbx), %rax
	movq	16(%rax), %rax
	movq	8(%rax), %rdi
# WAS call	RSA_bits@PLT
	call	.LRSA_bits_local_target
	cmpl	$675, %r14d
	jle	.L20843
	subl	$962, %r14d
	cmpl	$16, %r14d
	ja	.L20792
	movl	$65657, %edx
	btq	%r14, %rdx
	jnc	.L20792
.L20805:

	cmpl	$2047, %eax
	jbe	.L20792
	testb	$1, %al
	jne	.L20792
	jmp	.L20814
	.p2align 4,,10
	.p2align 3
.L20841:

	movq	8(%r12), %rax
	movq	(%rax), %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$675, %r14d
	jle	.L20844
	subl	$962, %r14d
	cmpl	$16, %r14d
	ja	.L20792
	movl	$65657, %edx
	btq	%r14, %rdx
	jnc	.L20792
.L20812:

	cmpl	$713, %eax
	je	.L20814
	jg	.L20815
	cmpl	$415, %eax
	jne	.L20792
.L20814:

	movq	%r13, %rdi
# WAS call	custom_meth_invoked
	call	.Lcustom_meth_invoked_local_target
	testl	%eax, %eax
	jne	.L20792
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L20792
	.p2align 4,,10
	.p2align 3
.L20844:

	cmpl	$671, %r14d
	jle	.L20792
	jmp	.L20812
	.p2align 4,,10
	.p2align 3
.L20815:

	subl	$715, %eax
	cmpl	$1, %eax
	ja	.L20792
	jmp	.L20814
.L20842:

	leaq	4(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_pss_saltlen@PLT
	call	.LEVP_PKEY_CTX_get_rsa_pss_saltlen_local_target
	testl	%eax, %eax
	je	.L20792
	leaq	16(%rsp), %rsi
	movq	%r13, %rdi
# WAS call	EVP_PKEY_CTX_get_rsa_mgf1_md@PLT
	call	.LEVP_PKEY_CTX_get_rsa_mgf1_md_local_target
	testl	%eax, %eax
	je	.L20792
	cmpl	$-1, 4(%rsp)
	je	.L20803
	movq	8(%rsp), %rdi
# WAS call	EVP_MD_size@PLT
	call	.LEVP_MD_size_local_target
	cmpl	%eax, 4(%rsp)
	jne	.L20792
.L20803:

	movq	16(%rsp), %rdi
# WAS call	EVP_MD_type@PLT
	call	.LEVP_MD_type_local_target
	cmpl	%eax, %r14d
	jne	.L20792
	jmp	.L20797
.L20843:

	cmpl	$671, %r14d
	jle	.L20792
	jmp	.L20805
.L20838:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2824:

	.size	EVP_DigestSign_verify_service_indicator, .-EVP_DigestSign_verify_service_indicator
# WAS .section	.text.HMAC_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	HMAC_verify_service_indicator
	.hidden	HMAC_verify_service_indicator
	.type	HMAC_verify_service_indicator, @function
.LHMAC_verify_service_indicator_local_target:
HMAC_verify_service_indicator:
.LFB2825:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20846
	jg	.L20847
	cmpl	$64, %eax
	je	.L20846
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20861
.L20846:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20862
.L20849:

	cmpq	$0, (%rbx)
	jne	.L20845
	addq	$1, 8(%rbx)
.L20845:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20847:

	.cfi_restore 3
	cmpl	$978, %eax
	je	.L20846
	ret
	.p2align 4,,10
	.p2align 3
.L20861:

	ret
	.p2align 4,,10
	.p2align 3
.L20862:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20845
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20849
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2825:

	.size	HMAC_verify_service_indicator, .-HMAC_verify_service_indicator
# WAS .section	.text.HKDF_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	HKDF_verify_service_indicator
	.hidden	HKDF_verify_service_indicator
	.type	HKDF_verify_service_indicator, @function
.LHKDF_verify_service_indicator_local_target:
HKDF_verify_service_indicator:
.LFB2826:

	.cfi_startproc
	endbr64
	movq	%rdx, %rax
	testq	%rsi, %rsi
	setne	%dl
	testq	%rax, %rax
	sete	%al
	testb	%al, %dl
	jne	.L20863
	testq	%rcx, %rcx
	je	.L20863
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20865
	jg	.L20866
	cmpl	$64, %eax
	je	.L20865
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20873
.L20865:

# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20866:

	cmpl	$978, %eax
	je	.L20865
.L20863:

	ret
	.p2align 4,,10
	.p2align 3
.L20873:

	ret
	.cfi_endproc
.LFE2826:

	.size	HKDF_verify_service_indicator, .-HKDF_verify_service_indicator
# WAS .section	.text.HKDFExpand_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	HKDFExpand_verify_service_indicator
	.hidden	HKDFExpand_verify_service_indicator
	.type	HKDFExpand_verify_service_indicator, @function
.LHKDFExpand_verify_service_indicator_local_target:
HKDFExpand_verify_service_indicator:
.LFB3125:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20875
	jg	.L20876
	cmpl	$64, %eax
	je	.L20875
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20890
.L20875:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20891
.L20878:

	cmpq	$0, (%rbx)
	jne	.L20874
	addq	$1, 8(%rbx)
.L20874:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20876:

	.cfi_restore 3
	cmpl	$978, %eax
	je	.L20875
	ret
	.p2align 4,,10
	.p2align 3
.L20890:

	ret
	.p2align 4,,10
	.p2align 3
.L20891:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20874
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20878
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE3125:

	.size	HKDFExpand_verify_service_indicator, .-HKDFExpand_verify_service_indicator
# WAS .section	.text.PBKDF2_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	PBKDF2_verify_service_indicator
	.hidden	PBKDF2_verify_service_indicator
	.type	PBKDF2_verify_service_indicator, @function
.LPBKDF2_verify_service_indicator_local_target:
PBKDF2_verify_service_indicator:
.LFB2828:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20893
	jg	.L20894
	cmpl	$64, %eax
	je	.L20893
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20909
.L20893:

	cmpq	$15, %rdx
	seta	%dl
	cmpl	$999, %ecx
	seta	%al
	testb	%al, %dl
	je	.L20892
	cmpq	$13, %rsi
	ja	.L20910
.L20892:

	ret
	.p2align 4,,10
	.p2align 3
.L20894:

	cmpl	$978, %eax
	je	.L20893
	ret
	.p2align 4,,10
	.p2align 3
.L20909:

	ret
	.p2align 4,,10
	.p2align 3
.L20910:

# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2828:

	.size	PBKDF2_verify_service_indicator, .-PBKDF2_verify_service_indicator
# WAS .section	.text.SSHKDF_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	SSHKDF_verify_service_indicator
	.hidden	SSHKDF_verify_service_indicator
	.type	SSHKDF_verify_service_indicator, @function
.LSSHKDF_verify_service_indicator_local_target:
SSHKDF_verify_service_indicator:
.LFB2829:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$64, %eax
	je	.L20912
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20921
.L20912:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20923
.L20914:

	cmpq	$0, (%rbx)
	jne	.L20911
	addq	$1, 8(%rbx)
.L20911:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20921:

	.cfi_restore 3
	ret
	.p2align 4,,10
	.p2align 3
.L20923:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20911
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20914
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2829:

	.size	SSHKDF_verify_service_indicator, .-SSHKDF_verify_service_indicator
# WAS .section	.rodata.TLSKDF_verify_service_indicator.str1.1,"aMS",@progbits,1
.text
.LC373:

	.string	"extended master secret"
# WAS .section	.text.TLSKDF_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	TLSKDF_verify_service_indicator
	.hidden	TLSKDF_verify_service_indicator
	.type	TLSKDF_verify_service_indicator, @function
.LTLSKDF_verify_service_indicator_local_target:
TLSKDF_verify_service_indicator:
.LFB2830:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$114, %eax
	je	.L20929
	subl	$672, %eax
	cmpl	$2, %eax
	ja	.L20924
	cmpq	$21, %rdx
	ja	.L20937
.L20924:

	ret
	.p2align 4,,10
	.p2align 3
.L20937:

	movabsq	$7234298801751881829, %rax
	xorq	(%rsi), %rax
	movabsq	$2338042707385085216, %rdx
	xorq	8(%rsi), %rdx
	orq	%rdx, %rax
	jne	.L20924
	movabsq	$8387235652276789362, %rax
	cmpq	%rax, 14(%rsi)
	jne	.L20924
.L20929:

# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2830:

	.size	TLSKDF_verify_service_indicator, .-TLSKDF_verify_service_indicator
# WAS .section	.text.SSKDF_digest_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	SSKDF_digest_verify_service_indicator
	.hidden	SSKDF_digest_verify_service_indicator
	.type	SSKDF_digest_verify_service_indicator, @function
.LSSKDF_digest_verify_service_indicator_local_target:
SSKDF_digest_verify_service_indicator:
.LFB2831:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$978, %eax
	jg	.L20952
	cmpl	$961, %eax
	jg	.L20940
	cmpl	$64, %eax
	je	.L20941
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20954
.L20941:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20955
.L20942:

	cmpq	$0, (%rbx)
	jne	.L20938
	addq	$1, 8(%rbx)
.L20938:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20940:

	.cfi_restore 3
	subl	$962, %eax
	movl	$65657, %edx
	btq	%rax, %rdx
	jc	.L20941
.L20952:

	ret
	.p2align 4,,10
	.p2align 3
.L20954:

	ret
	.p2align 4,,10
	.p2align 3
.L20955:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20938
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20942
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE2831:

	.size	SSKDF_digest_verify_service_indicator, .-SSKDF_digest_verify_service_indicator
# WAS .section	.text.SSKDF_hmac_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	SSKDF_hmac_verify_service_indicator
	.hidden	SSKDF_hmac_verify_service_indicator
	.type	SSKDF_hmac_verify_service_indicator, @function
.LSSKDF_hmac_verify_service_indicator_local_target:
SSKDF_hmac_verify_service_indicator:
.LFB3127:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20957
	jg	.L20958
	cmpl	$64, %eax
	je	.L20957
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20972
.L20957:

	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$3, %edi
# WAS call	CRYPTO_get_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_get_thread_local
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20973
.L20960:

	cmpq	$0, (%rbx)
	jne	.L20956
	addq	$1, 8(%rbx)
.L20956:

	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20958:

	.cfi_restore 3
	cmpl	$978, %eax
	je	.L20957
	ret
	.p2align 4,,10
	.p2align 3
.L20972:

	ret
	.p2align 4,,10
	.p2align 3
.L20973:

	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %edi
# WAS call	malloc@PLT
	call	.Lbcm_redirector_malloc
	movq	%rax, %rsi
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.L20956
	pxor	%xmm0, %xmm0
# WAS movq	free@GOTPCREL(%rip), %rdx
	leaq -128(%rsp), %rsp
	pushf
	leaq free_GOTPCREL_external(%rip), %rdx
	addq (%rdx), %rdx
	movq (%rdx), %rdx
	popf
	leaq	128(%rsp), %rsp
	movl	$3, %edi
	movups	%xmm0, (%rax)
# WAS call	CRYPTO_set_thread_local@PLT
	call	.Lbcm_redirector_CRYPTO_set_thread_local
	testl	%eax, %eax
	jne	.L20960
	movl	$58, %r8d
	leaq	.LC118(%rip), %rcx
	xorl	%esi, %esi
	popq	%rbx
	.cfi_restore 3
	.cfi_def_cfa_offset 8
	movl	$68, %edx
	movl	$14, %edi
# WAS jmp	ERR_put_error@PLT
	jmp	.Lbcm_redirector_ERR_put_error
	.cfi_endproc
.LFE3127:

	.size	SSKDF_hmac_verify_service_indicator, .-SSKDF_hmac_verify_service_indicator
# WAS .section	.text.KBKDF_ctr_hmac_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	KBKDF_ctr_hmac_verify_service_indicator
	.hidden	KBKDF_ctr_hmac_verify_service_indicator
	.type	KBKDF_ctr_hmac_verify_service_indicator, @function
.LKBKDF_ctr_hmac_verify_service_indicator_local_target:
KBKDF_ctr_hmac_verify_service_indicator:
.LFB2833:

	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	cmpl	$962, %eax
	je	.L20975
	jg	.L20976
	cmpl	$64, %eax
	je	.L20975
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L20985
.L20975:

	cmpq	$13, %rsi
	ja	.L20986
	ret
	.p2align 4,,10
	.p2align 3
.L20976:

	cmpl	$978, %eax
	je	.L20975
	ret
	.p2align 4,,10
	.p2align 3
.L20986:

# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.p2align 4,,10
	.p2align 3
.L20985:

	ret
	.cfi_endproc
.LFE2833:

	.size	KBKDF_ctr_hmac_verify_service_indicator, .-KBKDF_ctr_hmac_verify_service_indicator
# WAS .section	.text.EVP_PKEY_encapsulate_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_encapsulate_verify_service_indicator
	.hidden	EVP_PKEY_encapsulate_verify_service_indicator
	.type	EVP_PKEY_encapsulate_verify_service_indicator, @function
.LEVP_PKEY_encapsulate_verify_service_indicator_local_target:
EVP_PKEY_encapsulate_verify_service_indicator:
.LFB2834:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	cmpl	$970, 4(%rax)
	je	.L20989
.L20987:

	ret
	.p2align 4,,10
	.p2align 3
.L20989:

	movq	8(%rax), %rax
	movq	(%rax), %rax
	movl	(%rax), %eax
	subl	$988, %eax
	cmpl	$2, %eax
	ja	.L20987
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE2834:

	.size	EVP_PKEY_encapsulate_verify_service_indicator, .-EVP_PKEY_encapsulate_verify_service_indicator
# WAS .section	.text.EVP_PKEY_decapsulate_verify_service_indicator,"ax",@progbits
.text
	.p2align 4
	.globl	EVP_PKEY_decapsulate_verify_service_indicator
	.hidden	EVP_PKEY_decapsulate_verify_service_indicator
	.type	EVP_PKEY_decapsulate_verify_service_indicator, @function
.LEVP_PKEY_decapsulate_verify_service_indicator_local_target:
EVP_PKEY_decapsulate_verify_service_indicator:
.LFB3129:

	.cfi_startproc
	endbr64
	movq	16(%rdi), %rax
	cmpl	$970, 4(%rax)
	je	.L20992
.L20990:

	ret
	.p2align 4,,10
	.p2align 3
.L20992:

	movq	8(%rax), %rax
	movq	(%rax), %rax
	movl	(%rax), %eax
	subl	$988, %eax
	cmpl	$2, %eax
	ja	.L20990
# WAS jmp	FIPS_service_indicator_update_state
	jmp	.LFIPS_service_indicator_update_state_local_target
	.cfi_endproc
.LFE3129:

	.size	EVP_PKEY_decapsulate_verify_service_indicator, .-EVP_PKEY_decapsulate_verify_service_indicator
# WAS .section	.text.SHA3_Absorb,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Absorb
	.type	SHA3_Absorb, @function
.LSHA3_Absorb_local_target:
SHA3_Absorb:
.LFB2841:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	shrq	$3, %rbp
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	cmpq	%rcx, %rdx
	jb	.L21003
	movq	%rcx, %r14
	leaq	-1(%rbp), %rax
	movq	%rcx, %r12
	movq	%rdi, %rbx
	shrq	$4, %r14
	movq	%rax, 24(%rsp)
	andq	$-16, %r12
	movq	%rsi, %r15
	leaq	(%r14,%r14), %rax
	leaq	(%rdi,%r12), %r13
	movq	%rdx, %r14
	movq	%rax, 40(%rsp)
	leaq	0(,%rbp,8), %rax
	movq	%rax, 16(%rsp)
	leaq	-1(%rdi), %rax
	movq	%rax, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L20995:

	testq	%rbp, %rbp
	je	.L21002
	cmpq	$1, 24(%rsp)
	jbe	.L21004
	movq	32(%rsp), %rdx
	xorl	%eax, %eax
	subq	%r15, %rdx
	cmpq	$14, %rdx
	ja	.L20997
	.p2align 4,,10
	.p2align 3
.L20999:

	movq	(%r15,%rax,8), %rdx
	xorq	%rdx, (%rbx,%rax,8)
	addq	$1, %rax
	cmpq	%rbp, %rax
	jne	.L20999
	.p2align 4,,10
	.p2align 3
.L21000:

	movq	16(%rsp), %rax
	addq	%rax, %r15
.L21002:

	movq	%rbx, %rdi
	movq	%rcx, 8(%rsp)
# WAS call	KeccakF1600
	call	.LKeccakF1600_local_target
	movq	8(%rsp), %rcx
	subq	%rcx, %r14
	cmpq	%rcx, %r14
	jnb	.L20995
.L20993:

	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movq	%r14, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L20997:

	.cfi_restore_state
	movdqu	(%rbx,%rax), %xmm0
	movdqu	(%r15,%rax), %xmm1
	pxor	%xmm1, %xmm0
	movups	%xmm0, (%rbx,%rax)
	addq	$16, %rax
	cmpq	%rax, %r12
	jne	.L20997
	movq	40(%rsp), %rsi
	leaq	(%r15,%r12), %rax
	cmpq	%rsi, %rbp
	je	.L21000
	movq	(%rax), %rax
	xorq	%rax, 0(%r13)
	jmp	.L21000
	.p2align 4,,10
	.p2align 3
.L21004:

	xorl	%eax, %eax
	jmp	.L20999
.L21003:

	movq	%rdx, %r14
	jmp	.L20993
	.cfi_endproc
.LFE2841:

	.size	SHA3_Absorb, .-SHA3_Absorb
# WAS .section	.text.SHA3_Squeeze,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Squeeze
	.type	SHA3_Squeeze, @function
.LSHA3_Squeeze_local_target:
SHA3_Squeeze:
.LFB2842:

	.cfi_startproc
	endbr64
	shrq	$3, %rcx
	testq	%rdx, %rdx
	je	.L21049
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	testl	%r8d, %r8d
	jne	.L21052
.L21011:

	testq	%r12, %r12
	je	.L21012
.L21019:

	movq	0(%rbp), %rdx
	cmpq	$7, %rbx
	jbe	.L21013
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L21014:

	addq	$1, %rax
	movq	%rdx, 0(%r13)
	subq	$8, %rbx
	addq	$8, %r13
	cmpq	%r12, %rax
	jnb	.L21020
	testq	%rbx, %rbx
	je	.L21009
	movq	0(%rbp,%rax,8), %rdx
	cmpq	$7, %rbx
	ja	.L21014
.L21013:

	movq	%rdx, %rax
	movb	%dl, 0(%r13)
	shrq	$8, %rax
	cmpq	$1, %rbx
	je	.L21009
	movb	%al, 1(%r13)
	movq	%rdx, %rax
	shrq	$16, %rax
	cmpq	$2, %rbx
	je	.L21009
	movb	%al, 2(%r13)
	movq	%rdx, %rax
	shrq	$24, %rax
	cmpq	$3, %rbx
	je	.L21009
	movb	%al, 3(%r13)
	movq	%rdx, %rax
	shrq	$32, %rax
	cmpq	$4, %rbx
	je	.L21009
	movb	%al, 4(%r13)
	movq	%rdx, %rax
	shrq	$40, %rax
	cmpq	$5, %rbx
	je	.L21009
	movb	%al, 5(%r13)
	shrq	$48, %rdx
	cmpq	$7, %rbx
	jne	.L21009
	movb	%dl, 6(%r13)
.L21009:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21020:

	.cfi_restore_state
	testq	%rbx, %rbx
	je	.L21009
	movq	%rbp, %rdi
# WAS call	KeccakF1600
	call	.LKeccakF1600_local_target
	jmp	.L21019
.L21012:

	movq	%rbp, %rdi
# WAS call	KeccakF1600
	call	.LKeccakF1600_local_target
	movq	%rbp, %rdi
# WAS call	KeccakF1600
	call	.LKeccakF1600_local_target
	jmp	.L21012
	.p2align 4,,10
	.p2align 3
.L21049:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	ret
.L21052:

	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	.cfi_offset 6, -32
	.cfi_offset 12, -24
	.cfi_offset 13, -16
# WAS call	KeccakF1600
	call	.LKeccakF1600_local_target
	jmp	.L21011
	.cfi_endproc
.LFE2842:

	.size	SHA3_Squeeze, .-SHA3_Squeeze
# WAS .section	.text.SHA1_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_Init
	.type	SHA1_Init, @function
.LSHA1_Init_local_target:
SHA1_Init:
.LFB2843:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movl	$-1009589776, 16(%rdi)
	movl	$1, %eax
	movups	%xmm0, 68(%rdi)
	movups	%xmm0, 20(%rdi)
	movups	%xmm0, 36(%rdi)
	movups	%xmm0, 52(%rdi)
	movups	%xmm0, 80(%rdi)
	movdqa	.LC306(%rip), %xmm0
	movups	%xmm0, (%rdi)
	ret
	.cfi_endproc
.LFE2843:

	.size	SHA1_Init, .-SHA1_Init
# WAS .section	.text.sha1_init,"ax",@progbits
.text
	.p2align 4
	.type	sha1_init, @function
.Lsha1_init_local_target:
sha1_init:
.LFB1650:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA1_Init@PLT
	jmp	.LSHA1_Init_local_target
	.cfi_endproc
.LFE1650:

	.size	sha1_init, .-sha1_init
# WAS .section	.text.md5_sha1_init,"ax",@progbits
.text
	.p2align 4
	.type	md5_sha1_init, @function
.Lmd5_sha1_init_local_target:
md5_sha1_init:
.LFB1728:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	8(%rdi), %rbx
	movq	%rbx, %rdi
# WAS call	MD5_Init@PLT
	call	.LMD5_Init_local_target
	testl	%eax, %eax
	jne	.L21058
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21058:

	.cfi_restore_state
	leaq	92(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
# WAS jmp	SHA1_Init@PLT
	jmp	.LSHA1_Init_local_target
	.cfi_endproc
.LFE1728:

	.size	md5_sha1_init, .-md5_sha1_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA1_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA1_Init, @function
.LAWS_LC_TRAMPOLINE_SHA1_Init_local_target:
AWS_LC_TRAMPOLINE_SHA1_Init:
.LFB2327:

	.cfi_startproc
	endbr64
# WAS jmp	SHA1_Init@PLT
	jmp	.LSHA1_Init_local_target
	.cfi_endproc
.LFE2327:

	.size	AWS_LC_TRAMPOLINE_SHA1_Init, .-AWS_LC_TRAMPOLINE_SHA1_Init
# WAS .section	.text.SHA1_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_Init_from_state
	.type	SHA1_Init_from_state, @function
.LSHA1_Init_from_state_local_target:
SHA1_Init_from_state:
.LFB2844:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$511, %r9d
	je	.L21063
	ret
	.p2align 4,,10
	.p2align 3
.L21063:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 80(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$96, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	(%rsi), %eax
	bswap	%eax
	movl	%eax, (%r8)
	movl	4(%rsi), %eax
	bswap	%eax
	movl	%eax, 4(%r8)
	movl	8(%rsi), %eax
	bswap	%eax
	movl	%eax, 8(%r8)
	movl	12(%rsi), %eax
	bswap	%eax
	movl	%eax, 12(%r8)
	movl	16(%rsi), %eax
	movq	%rdx, 20(%r8)
	bswap	%eax
	movl	%eax, 16(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2844:

	.size	SHA1_Init_from_state, .-SHA1_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA1_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA1_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA1_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA1_Init_from_state:
.LFB2330:

	.cfi_startproc
	endbr64
# WAS jmp	SHA1_Init_from_state@PLT
	jmp	.LSHA1_Init_from_state_local_target
	.cfi_endproc
.LFE2330:

	.size	AWS_LC_TRAMPOLINE_SHA1_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA1_Init_from_state
# WAS .section	.text.SHA1_Transform,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_Transform
	.type	SHA1_Transform, @function
.LSHA1_Transform_local_target:
SHA1_Transform:
.LFB2846:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	4(%rax), %ecx
	movl	8(%rax), %edx
	movl	%ecx, %esi
	andl	$512, %esi
	testl	$536870912, %edx
	je	.L21066
	testl	%esi, %esi
	je	.L21067
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_hw@PLT
	jmp	.Lsha1_block_data_order_hw_local_target
	.p2align 4,,10
	.p2align 3
.L21066:

	.cfi_restore_state
	movl	%edx, %edi
	notl	%edi
	andl	$288, %edi
	je	.L21085
.L21068:

	andl	$268435456, %ecx
	je	.L21069
	testl	%esi, %esi
	je	.L21067
	movl	(%rax), %eax
	testl	$1073741824, %eax
	jne	.L21070
.L21071:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_ssse3@PLT
	jmp	.Lsha1_block_data_order_ssse3_local_target
	.p2align 4,,10
	.p2align 3
.L21069:

	.cfi_restore_state
	testl	%esi, %esi
	jne	.L21071
.L21067:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_nohw@PLT
	jmp	.Lsha1_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L21085:

	.cfi_restore_state
	andl	$8, %edx
	je	.L21068
	testl	%esi, %esi
	je	.L21067
.L21070:

	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha1_block_data_order_avx@PLT
	jmp	.Lsha1_block_data_order_avx_local_target
	.cfi_endproc
.LFE2846:

	.size	SHA1_Transform, .-SHA1_Transform
# WAS .section	.text.SHA1_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_Update
	.type	SHA1_Update, @function
.LSHA1_Update_local_target:
SHA1_Update:
.LFB2847:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L21133
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leal	0(,%rdx,8), %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%edx, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	28(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	movq	%rbx, %rcx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movl	24(%rdi), %edx
	addl	20(%rdi), %eax
	movl	%eax, 20(%rdi)
	adcl	$0, %edx
	shrq	$29, %rcx
	addl	%ecx, %edx
	movl	%edx, 24(%rdi)
	movl	92(%rdi), %edx
	testq	%rdx, %rdx
	je	.L21092
	leaq	(%rbx,%rdx), %rax
	leaq	0(%r13,%rdx), %rdi
	orq	%rbx, %rax
	cmpq	$63, %rax
	jbe	.L21093
	movl	$64, %eax
	leaq	-64(%rdx,%rbx), %rbx
	subq	%rdx, %rax
	movq	%rbx, %r14
	leaq	(%rsi,%rax), %r15
	shrq	$6, %r14
	testq	%rax, %rax
	je	.L21094
	cmpq	$8, %rax
	jnb	.L21095
	testb	$4, %al
	jne	.L21137
	testq	%rax, %rax
	je	.L21096
	movzbl	(%rsi), %edx
	movb	%dl, (%rdi)
	testb	$2, %al
	je	.L21096
	movzwl	-2(%rsi,%rax), %edx
	movw	%dx, -2(%rdi,%rax)
	.p2align 4,,10
	.p2align 3
.L21096:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	sha1_block_data_order
	call	.Lsha1_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 92(%rbp)
	movups	%xmm0, 28(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L21101
	jmp	.L21111
	.p2align 4,,10
	.p2align 3
.L21092:

	cmpq	$63, %rbx
	jbe	.L21103
	movq	%rbx, %r14
	shrq	$6, %r14
.L21102:

	movq	%r14, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	sha1_block_data_order
	call	.Lsha1_block_data_order_local_target
	movq	%rbx, %rax
	andl	$63, %ebx
	andq	$-64, %rax
	leaq	(%r12,%rax), %r15
.L21101:

	testq	%rbx, %rbx
	jne	.L21136
.L21118:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21136:

	.cfi_restore_state
	movl	%ebx, %r14d
	movq	%r15, %r12
.L21103:

	movl	%r14d, 92(%rbp)
	movl	%ebx, %eax
	cmpl	$8, %ebx
	jb	.L21138
	movq	(%r12), %rax
	leaq	8(%r13), %rsi
	andq	$-8, %rsi
	movq	%rax, 28(%rbp)
	movl	%ebx, %eax
	movq	-8(%r12,%rax), %rdx
	movq	%rdx, -8(%r13,%rax)
	movq	%r13, %rax
	subq	%rsi, %rax
	subq	%rax, %r12
	addl	%ebx, %eax
	andl	$-8, %eax
	cmpl	$8, %eax
	jb	.L21118
	andl	$-8, %eax
	xorl	%edx, %edx
.L21109:

	movl	%edx, %ecx
	addl	$8, %edx
	movq	(%r12,%rcx), %rdi
	movq	%rdi, (%rsi,%rcx)
	cmpl	%eax, %edx
	jb	.L21109
	jmp	.L21118
	.p2align 4,,10
	.p2align 3
.L21133:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L21138:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	andl	$4, %ebx
	jne	.L21139
	testl	%eax, %eax
	je	.L21118
	movzbl	(%r12), %edx
	movb	%dl, 28(%rbp)
	testb	$2, %al
	je	.L21118
	movzwl	-2(%r12,%rax), %edx
	movw	%dx, -2(%r13,%rax)
	jmp	.L21118
	.p2align 4,,10
	.p2align 3
.L21094:

	movl	$1, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	sha1_block_data_order
	call	.Lsha1_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 92(%rbp)
	movups	%xmm0, 28(%rbp)
	movups	%xmm0, 16(%r13)
	movups	%xmm0, 32(%r13)
	movups	%xmm0, 48(%r13)
	cmpq	$63, %rbx
	jbe	.L21136
.L21111:

	movq	%r15, %r12
	jmp	.L21102
	.p2align 4,,10
	.p2align 3
.L21095:

	movq	(%rsi), %rdx
	leaq	8(%rdi), %rcx
	andq	$-8, %rcx
	movq	%rdx, (%rdi)
	movq	-8(%rsi,%rax), %rdx
	movq	%rdx, -8(%rdi,%rax)
	subq	%rcx, %rdi
	addq	%rdi, %rax
	subq	%rdi, %r12
	andq	$-8, %rax
	cmpq	$8, %rax
	jb	.L21096
	andq	$-8, %rax
	xorl	%edx, %edx
.L21099:

	movq	(%r12,%rdx), %rsi
	movq	%rsi, (%rcx,%rdx)
	addq	$8, %rdx
	cmpq	%rax, %rdx
	jb	.L21099
	jmp	.L21096
	.p2align 4,,10
	.p2align 3
.L21093:

	movq	%rbx, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addl	%ebx, 92(%rbp)
	jmp	.L21118
	.p2align 4,,10
	.p2align 3
.L21139:

	movl	(%r12), %edx
	movl	%edx, 28(%rbp)
	movl	-4(%r12,%rax), %edx
	movl	%edx, -4(%r13,%rax)
	jmp	.L21118
.L21137:

	movl	(%rsi), %edx
	movl	%edx, (%rdi)
	movl	-4(%rsi,%rax), %edx
	movl	%edx, -4(%rdi,%rax)
	jmp	.L21096
	.cfi_endproc
.LFE2847:

	.size	SHA1_Update, .-SHA1_Update
# WAS .section	.text.sha1_update,"ax",@progbits
.text
	.p2align 4
	.type	sha1_update, @function
.Lsha1_update_local_target:
sha1_update:
.LFB1651:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA1_Update@PLT
	jmp	.LSHA1_Update_local_target
	.cfi_endproc
.LFE1651:

	.size	sha1_update, .-sha1_update
# WAS .section	.text.md5_sha1_update,"ax",@progbits
.text
	.p2align 4
	.type	md5_sha1_update, @function
.Lmd5_sha1_update_local_target:
md5_sha1_update:
.LFB1729:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rdi), %r12
	movq	%rsi, %rbx
	movq	%r12, %rdi
# WAS call	MD5_Update@PLT
	call	.LMD5_Update_local_target
	testl	%eax, %eax
	jne	.L21144
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21144:

	.cfi_restore_state
	leaq	92(%r12), %rdi
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	SHA1_Update@PLT
	jmp	.LSHA1_Update_local_target
	.cfi_endproc
.LFE1729:

	.size	md5_sha1_update, .-md5_sha1_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA1_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA1_Update, @function
.LAWS_LC_TRAMPOLINE_SHA1_Update_local_target:
AWS_LC_TRAMPOLINE_SHA1_Update:
.LFB2328:

	.cfi_startproc
	endbr64
# WAS jmp	SHA1_Update@PLT
	jmp	.LSHA1_Update_local_target
	.cfi_endproc
.LFE2328:

	.size	AWS_LC_TRAMPOLINE_SHA1_Update, .-AWS_LC_TRAMPOLINE_SHA1_Update
# WAS .section	.text.SHA1_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_Final
	.type	SHA1_Final, @function
.LSHA1_Final_local_target:
SHA1_Final:
.LFB2848:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	28(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	92(%rsi), %eax
	movq	%rsi, %rbx
	movl	20(%rsi), %r13d
	movl	24(%rsi), %r14d
	movb	$-128, 28(%rsi,%rax)
	addq	$1, %rax
	cmpq	$56, %rax
	jbe	.L21147
	movl	$64, %edx
	subq	%rax, %rdx
	jne	.L21179
.L21148:

	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	sha1_block_data_order
	call	.Lsha1_block_data_order_local_target
	movq	%r12, %rax
	movl	$56, %edx
.L21151:

	movl	%edx, %ecx
	xorl	%edi, %edi
	cmpl	$8, %edx
	jnb	.L21153
	andl	$4, %edx
	jne	.L21180
	testl	%ecx, %ecx
	jne	.L21181
.L21152:

	bswap	%r14d
	bswap	%r13d
	movl	%r14d, 84(%rbx)
	movq	%r12, %rsi
	movl	%r13d, 88(%rbx)
	movq	%rbx, %rdi
	movl	$1, %edx
# WAS call	sha1_block_data_order
	call	.Lsha1_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 92(%rbx)
	movups	%xmm0, 28(%rbx)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	movl	(%rbx), %eax
	bswap	%eax
	movl	%eax, 0(%rbp)
	movl	4(%rbx), %eax
	bswap	%eax
	movl	%eax, 4(%rbp)
	movl	8(%rbx), %eax
	bswap	%eax
	movl	%eax, 8(%rbp)
	movl	12(%rbx), %eax
	bswap	%eax
	movl	%eax, 12(%rbp)
	movl	16(%rbx), %eax
	bswap	%eax
	movl	%eax, 16(%rbp)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21153:

	.cfi_restore_state
	leaq	8(%rax), %rsi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rsi
	subq	%rsi, %rax
	leal	(%rdx,%rax), %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L21152
	andl	$-8, %ecx
	xorl	%eax, %eax
.L21157:

	movl	%eax, %edx
	addl	$8, %eax
	movq	%rdi, (%rsi,%rdx)
	cmpl	%ecx, %eax
	jb	.L21157
	jmp	.L21152
	.p2align 4,,10
	.p2align 3
.L21179:

	addq	%r12, %rax
	xorl	%ecx, %ecx
	testb	$1, %dl
	je	.L21149
	movl	$1, %ecx
	movb	$0, (%rax)
	cmpq	%rdx, %rcx
	jnb	.L21148
.L21149:

	movb	$0, (%rax,%rcx)
	movb	$0, 1(%rax,%rcx)
	addq	$2, %rcx
	cmpq	%rdx, %rcx
	jb	.L21149
	jmp	.L21148
	.p2align 4,,10
	.p2align 3
.L21147:

	movl	$56, %edx
	subq	%rax, %rdx
	je	.L21152
	addq	%r12, %rax
	jmp	.L21151
	.p2align 4,,10
	.p2align 3
.L21181:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L21152
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L21152
	.p2align 4,,10
	.p2align 3
.L21180:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L21152
	.cfi_endproc
.LFE2848:

	.size	SHA1_Final, .-SHA1_Final
# WAS .section	.text.sha1_final,"ax",@progbits
.text
	.p2align 4
	.type	sha1_final, @function
.Lsha1_final_local_target:
sha1_final:
.LFB1652:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA1_Final@PLT
	jmp	.LSHA1_Final_local_target
	.cfi_endproc
.LFE1652:

	.size	sha1_final, .-sha1_final
# WAS .section	.text.md5_sha1_final,"ax",@progbits
.text
	.p2align 4
	.type	md5_sha1_final, @function
.Lmd5_sha1_final_local_target:
md5_sha1_final:
.LFB1730:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
	movq	8(%rdi), %rbp
	movq	%rbx, %rdi
	movq	%rbp, %rsi
# WAS call	MD5_Final@PLT
	call	.LMD5_Final_local_target
	testl	%eax, %eax
	jne	.L21186
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21186:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	leaq	92(%rbp), %rsi
	leaq	16(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	SHA1_Final@PLT
	jmp	.LSHA1_Final_local_target
	.cfi_endproc
.LFE1730:

	.size	md5_sha1_final, .-md5_sha1_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA1_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA1_Final, @function
.LAWS_LC_TRAMPOLINE_SHA1_Final_local_target:
AWS_LC_TRAMPOLINE_SHA1_Final:
.LFB2329:

	.cfi_startproc
	endbr64
# WAS jmp	SHA1_Final@PLT
	jmp	.LSHA1_Final_local_target
	.cfi_endproc
.LFE2329:

	.size	AWS_LC_TRAMPOLINE_SHA1_Final, .-AWS_LC_TRAMPOLINE_SHA1_Final
# WAS .section	.text.SHA1,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1
	.type	SHA1, @function
.LSHA1_local_target:
SHA1:
.LFB2845:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA1_Init@PLT
	call	.LSHA1_Init_local_target
	testl	%eax, %eax
	je	.L21189
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA1_Update@PLT
	call	.LSHA1_Update_local_target
	testl	%eax, %eax
	jne	.L21202
.L21189:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L21190:

	movl	$96, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21203
	addq	$120, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21202:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA1_Final@PLT
	call	.LSHA1_Final_local_target
	testl	%eax, %eax
	je	.L21189
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L21190
.L21203:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2845:

	.size	SHA1, .-SHA1
# WAS .section	.text.SHA1_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA1_get_state
	.type	SHA1_get_state, @function
.LSHA1_get_state_local_target:
SHA1_get_state:
.LFB2849:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	xorl	%esi, %esi
	testw	$511, 20(%rdi)
	jne	.L21204
	movl	(%rdi), %esi
	bswap	%esi
	movl	%esi, (%rcx)
	movl	4(%rdi), %esi
	bswap	%esi
	movl	%esi, 4(%rcx)
	movl	8(%rdi), %esi
	bswap	%esi
	movl	%esi, 8(%rcx)
	movl	12(%rdi), %esi
	bswap	%esi
	movl	%esi, 12(%rcx)
	movl	16(%rdi), %esi
	bswap	%esi
	movl	%esi, 16(%rcx)
	movq	20(%rdi), %rax
	movl	$1, %esi
	movq	%rax, (%rdx)
.L21204:

	movl	%esi, %eax
	ret
	.cfi_endproc
.LFE2849:

	.size	SHA1_get_state, .-SHA1_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA1_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA1_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA1_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA1_get_state:
.LFB2331:

	.cfi_startproc
	endbr64
# WAS jmp	SHA1_get_state@PLT
	jmp	.LSHA1_get_state_local_target
	.cfi_endproc
.LFE2331:

	.size	AWS_LC_TRAMPOLINE_SHA1_get_state, .-AWS_LC_TRAMPOLINE_SHA1_get_state
# WAS .section	.text.SHA224_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224_Init
	.type	SHA224_Init, @function
.LSHA224_Init_local_target:
SHA224_Init:
.LFB2851:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movl	$1, %eax
	movups	%xmm0, 96(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 64(%rdi)
	movups	%xmm0, 80(%rdi)
	movdqa	.LC374(%rip), %xmm0
	movl	$28, 108(%rdi)
	movups	%xmm0, (%rdi)
	movdqa	.LC375(%rip), %xmm0
	movups	%xmm0, 16(%rdi)
	ret
	.cfi_endproc
.LFE2851:

	.size	SHA224_Init, .-SHA224_Init
# WAS .section	.text.sha224_init,"ax",@progbits
.text
	.p2align 4
	.type	sha224_init, @function
.Lsha224_init_local_target:
sha224_init:
.LFB1656:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA224_Init@PLT
	jmp	.LSHA224_Init_local_target
	.cfi_endproc
.LFE1656:

	.size	sha224_init, .-sha224_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA224_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA224_Init, @function
.LAWS_LC_TRAMPOLINE_SHA224_Init_local_target:
AWS_LC_TRAMPOLINE_SHA224_Init:
.LFB2332:

	.cfi_startproc
	endbr64
# WAS jmp	SHA224_Init@PLT
	jmp	.LSHA224_Init_local_target
	.cfi_endproc
.LFE2332:

	.size	AWS_LC_TRAMPOLINE_SHA224_Init, .-AWS_LC_TRAMPOLINE_SHA224_Init
# WAS .section	.text.SHA256_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_Init
	.type	SHA256_Init, @function
.LSHA256_Init_local_target:
SHA256_Init:
.LFB2852:

	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	movl	$1, %eax
	movups	%xmm0, 96(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 64(%rdi)
	movups	%xmm0, 80(%rdi)
	movdqa	.LC376(%rip), %xmm0
	movl	$32, 108(%rdi)
	movups	%xmm0, (%rdi)
	movdqa	.LC377(%rip), %xmm0
	movups	%xmm0, 16(%rdi)
	ret
	.cfi_endproc
.LFE2852:

	.size	SHA256_Init, .-SHA256_Init
# WAS .section	.text.sha256_init,"ax",@progbits
.text
	.p2align 4
	.type	sha256_init, @function
.Lsha256_init_local_target:
sha256_init:
.LFB1662:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA256_Init@PLT
	jmp	.LSHA256_Init_local_target
	.cfi_endproc
.LFE1662:

	.size	sha256_init, .-sha256_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA256_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA256_Init, @function
.LAWS_LC_TRAMPOLINE_SHA256_Init_local_target:
AWS_LC_TRAMPOLINE_SHA256_Init:
.LFB2337:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_Init@PLT
	jmp	.LSHA256_Init_local_target
	.cfi_endproc
.LFE2337:

	.size	AWS_LC_TRAMPOLINE_SHA256_Init, .-AWS_LC_TRAMPOLINE_SHA256_Init
# WAS .section	.text.SHA224_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224_Init_from_state
	.type	SHA224_Init_from_state, @function
.LSHA224_Init_from_state_local_target:
SHA224_Init_from_state:
.LFB2854:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$511, %r9d
	je	.L21217
	ret
	.p2align 4,,10
	.p2align 3
.L21217:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 96(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$112, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$28, 108(%r8)
	movl	(%rsi), %eax
	bswap	%eax
	movl	%eax, (%r8)
	movl	4(%rsi), %eax
	bswap	%eax
	movl	%eax, 4(%r8)
	movl	8(%rsi), %eax
	bswap	%eax
	movl	%eax, 8(%r8)
	movl	12(%rsi), %eax
	bswap	%eax
	movl	%eax, 12(%r8)
	movl	16(%rsi), %eax
	bswap	%eax
	movl	%eax, 16(%r8)
	movl	20(%rsi), %eax
	bswap	%eax
	movl	%eax, 20(%r8)
	movl	24(%rsi), %eax
	bswap	%eax
	movl	%eax, 24(%r8)
	movl	28(%rsi), %eax
	movq	%rdx, 32(%r8)
	bswap	%eax
	movl	%eax, 28(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2854:

	.size	SHA224_Init_from_state, .-SHA224_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA224_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA224_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA224_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA224_Init_from_state:
.LFB2335:

	.cfi_startproc
	endbr64
# WAS jmp	SHA224_Init_from_state@PLT
	jmp	.LSHA224_Init_from_state_local_target
	.cfi_endproc
.LFE2335:

	.size	AWS_LC_TRAMPOLINE_SHA224_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA224_Init_from_state
# WAS .section	.text.SHA256_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_Init_from_state
	.type	SHA256_Init_from_state, @function
.LSHA256_Init_from_state_local_target:
SHA256_Init_from_state:
.LFB2855:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$511, %r9d
	je	.L21222
	ret
	.p2align 4,,10
	.p2align 3
.L21222:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 96(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$112, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$32, 108(%r8)
	movl	(%rsi), %eax
	bswap	%eax
	movl	%eax, (%r8)
	movl	4(%rsi), %eax
	bswap	%eax
	movl	%eax, 4(%r8)
	movl	8(%rsi), %eax
	bswap	%eax
	movl	%eax, 8(%r8)
	movl	12(%rsi), %eax
	bswap	%eax
	movl	%eax, 12(%r8)
	movl	16(%rsi), %eax
	bswap	%eax
	movl	%eax, 16(%r8)
	movl	20(%rsi), %eax
	bswap	%eax
	movl	%eax, 20(%r8)
	movl	24(%rsi), %eax
	bswap	%eax
	movl	%eax, 24(%r8)
	movl	28(%rsi), %eax
	movq	%rdx, 32(%r8)
	bswap	%eax
	movl	%eax, 28(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2855:

	.size	SHA256_Init_from_state, .-SHA256_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA256_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA256_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA256_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA256_Init_from_state:
.LFB2340:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_Init_from_state@PLT
	jmp	.LSHA256_Init_from_state_local_target
	.cfi_endproc
.LFE2340:

	.size	AWS_LC_TRAMPOLINE_SHA256_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA256_Init_from_state
# WAS .section	.text.SHA256_Transform,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_Transform
	.type	SHA256_Transform, @function
.LSHA256_Transform_local_target:
SHA256_Transform:
.LFB2858:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$32, 11(%rax)
	jne	.L21235
	movl	4(%rax), %edx
	movl	%edx, %ecx
	notl	%edx
	andl	$512, %ecx
	andl	$268435968, %edx
	je	.L21226
.L21229:

	testl	%ecx, %ecx
	jne	.L21236
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_nohw@PLT
	jmp	.Lsha256_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L21236:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_ssse3@PLT
	jmp	.Lsha256_block_data_order_ssse3_local_target
	.p2align 4,,10
	.p2align 3
.L21235:

	.cfi_restore_state
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_hw@PLT
	jmp	.Lsha256_block_data_order_hw_local_target
	.p2align 4,,10
	.p2align 3
.L21226:

	.cfi_restore_state
	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L21229
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	movl	$1, %edx
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_avx@PLT
	jmp	.Lsha256_block_data_order_avx_local_target
	.cfi_endproc
.LFE2858:

	.size	SHA256_Transform, .-SHA256_Transform
# WAS .section	.text.SHA224_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224_Update
	.type	SHA224_Update, @function
.LSHA224_Update_local_target:
SHA224_Update:
.LFB2860:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_Update@PLT
	jmp	.LSHA256_Update_local_target
	.cfi_endproc
.LFE2860:

	.size	SHA224_Update, .-SHA224_Update
# WAS .section	.text.sha224_update,"ax",@progbits
.text
	.p2align 4
	.type	sha224_update, @function
.Lsha224_update_local_target:
sha224_update:
.LFB1657:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA224_Update@PLT
	jmp	.LSHA224_Update_local_target
	.cfi_endproc
.LFE1657:

	.size	sha224_update, .-sha224_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA224_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA224_Update, @function
.LAWS_LC_TRAMPOLINE_SHA224_Update_local_target:
AWS_LC_TRAMPOLINE_SHA224_Update:
.LFB2333:

	.cfi_startproc
	endbr64
# WAS jmp	SHA224_Update@PLT
	jmp	.LSHA224_Update_local_target
	.cfi_endproc
.LFE2333:

	.size	AWS_LC_TRAMPOLINE_SHA224_Update, .-AWS_LC_TRAMPOLINE_SHA224_Update
# WAS .section	.text.SHA256_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_Final
	.type	SHA256_Final, @function
.LSHA256_Final_local_target:
SHA256_Final:
.LFB2862:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	40(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	104(%rsi), %eax
	movq	%rsi, %rbx
	movl	32(%rsi), %r13d
	movl	36(%rsi), %r14d
	movb	$-128, 40(%rsi,%rax)
	addq	$1, %rax
	cmpq	$56, %rax
	jbe	.L21241
	movl	$64, %edx
	subq	%rax, %rdx
	jne	.L21275
.L21242:

	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	movq	%r12, %rax
	movl	$56, %edx
.L21245:

	movl	%edx, %ecx
	xorl	%edi, %edi
	cmpl	$8, %edx
	jnb	.L21247
	andl	$4, %edx
	jne	.L21276
	testl	%ecx, %ecx
	jne	.L21277
	.p2align 4,,10
	.p2align 3
.L21246:

	bswap	%r14d
	bswap	%r13d
	movl	%r14d, 96(%rbx)
	movq	%r12, %rsi
	movl	%r13d, 100(%rbx)
	movl	$1, %edx
	movq	%rbx, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 104(%rbx)
	xorl	%eax, %eax
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	cmpl	$32, 108(%rbx)
	jne	.L21240
	movl	(%rbx), %eax
	bswap	%eax
	movl	%eax, 0(%rbp)
	movl	4(%rbx), %eax
	bswap	%eax
	movl	%eax, 4(%rbp)
	movl	8(%rbx), %eax
	bswap	%eax
	movl	%eax, 8(%rbp)
	movl	12(%rbx), %eax
	bswap	%eax
	movl	%eax, 12(%rbp)
	movl	16(%rbx), %eax
	bswap	%eax
	movl	%eax, 16(%rbp)
	movl	20(%rbx), %eax
	bswap	%eax
	movl	%eax, 20(%rbp)
	movl	24(%rbx), %eax
	bswap	%eax
	movl	%eax, 24(%rbp)
	movl	28(%rbx), %eax
	bswap	%eax
	movl	%eax, 28(%rbp)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
.L21240:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21241:

	.cfi_restore_state
	movl	$56, %edx
	subq	%rax, %rdx
	je	.L21246
	addq	%r12, %rax
	jmp	.L21245
	.p2align 4,,10
	.p2align 3
.L21247:

	leaq	8(%rax), %rsi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rsi
	subq	%rsi, %rax
	leal	(%rdx,%rax), %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L21246
	andl	$-8, %ecx
	xorl	%eax, %eax
.L21251:

	movl	%eax, %edx
	addl	$8, %eax
	movq	%rdi, (%rsi,%rdx)
	cmpl	%ecx, %eax
	jb	.L21251
	jmp	.L21246
	.p2align 4,,10
	.p2align 3
.L21275:

	addq	%r12, %rax
	xorl	%ecx, %ecx
	testb	$1, %dl
	je	.L21243
	movl	$1, %ecx
	movb	$0, (%rax)
	cmpq	%rdx, %rcx
	jnb	.L21242
.L21243:

	movb	$0, (%rax,%rcx)
	movb	$0, 1(%rax,%rcx)
	addq	$2, %rcx
	cmpq	%rdx, %rcx
	jb	.L21243
	jmp	.L21242
	.p2align 4,,10
	.p2align 3
.L21277:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L21246
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L21246
.L21276:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L21246
	.cfi_endproc
.LFE2862:

	.size	SHA256_Final, .-SHA256_Final
# WAS .section	.text.sha256_final,"ax",@progbits
.text
	.p2align 4
	.type	sha256_final, @function
.Lsha256_final_local_target:
sha256_final:
.LFB1664:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA256_Final@PLT
	jmp	.LSHA256_Final_local_target
	.cfi_endproc
.LFE1664:

	.size	sha256_final, .-sha256_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA256_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA256_Final, @function
.LAWS_LC_TRAMPOLINE_SHA256_Final_local_target:
AWS_LC_TRAMPOLINE_SHA256_Final:
.LFB2339:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_Final@PLT
	jmp	.LSHA256_Final_local_target
	.cfi_endproc
.LFE2339:

	.size	AWS_LC_TRAMPOLINE_SHA256_Final, .-AWS_LC_TRAMPOLINE_SHA256_Final
# WAS .section	.text.SHA256,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256
	.type	SHA256, @function
.LSHA256_local_target:
SHA256:
.LFB2857:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA256_Init@PLT
	call	.LSHA256_Init_local_target
	testl	%eax, %eax
	je	.L21281
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA256_Update@PLT
	call	.LSHA256_Update_local_target
	testl	%eax, %eax
	jne	.L21294
.L21281:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L21282:

	movl	$112, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21295
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21294:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA256_Final@PLT
	call	.LSHA256_Final_local_target
	testl	%eax, %eax
	je	.L21281
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L21282
.L21295:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2857:

	.size	SHA256, .-SHA256
# WAS .section	.rodata.boringssl_self_test_sha256.str1.1,"aMS",@progbits,1
.text
.LC378:

	.string	"SHA-256 KAT"
# WAS .section	.text.boringssl_self_test_sha256,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_self_test_sha256
	.hidden	boringssl_self_test_sha256
	.type	boringssl_self_test_sha256, @function
.Lboringssl_self_test_sha256_local_target:
boringssl_self_test_sha256:
.LFB2794:

	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movl	$16, %esi
# WAS leaq	kInput.38(%rip), %rdi
	leaq	.LkInput.38_local_target(%rip), %rdi
	subq	$48, %rsp
	.cfi_def_cfa_offset 64
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rbx, %rdx
# WAS call	SHA256@PLT
	call	.LSHA256_local_target
	movabsq	$-8682126846930328449, %rax
	xorq	(%rsp), %rax
	movabsq	$2836737556126980313, %rdx
	xorq	8(%rsp), %rdx
	orq	%rdx, %rax
	je	.L21303
.L21297:

	leaq	.LC378(%rip), %rcx
	movl	$32, %edx
	movq	%rbx, %rsi
# WAS leaq	kPlaintextSHA256.37(%rip), %rdi
	leaq	.LkPlaintextSHA256.37_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
.L21296:

	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21304
	addq	$48, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21303:

	.cfi_restore_state
	movabsq	$-4122841158423229346, %rax
	xorq	16(%rsp), %rax
	movabsq	$8450720301424236640, %rdx
	xorq	24(%rsp), %rdx
	orq	%rdx, %rax
	movl	$1, %eax
	jne	.L21297
	jmp	.L21296
.L21304:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2794:

	.size	boringssl_self_test_sha256, .-boringssl_self_test_sha256
# WAS .section	.text.SHA224_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224_Final
	.type	SHA224_Final, @function
.LSHA224_Final_local_target:
SHA224_Final:
.LFB2863:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	40(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movl	104(%rsi), %eax
	movq	%rsi, %rbx
	movl	32(%rsi), %r13d
	movl	36(%rsi), %r14d
	movb	$-128, 40(%rsi,%rax)
	addq	$1, %rax
	cmpq	$56, %rax
	jbe	.L21306
	movl	$64, %edx
	subq	%rax, %rdx
	jne	.L21340
.L21307:

	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	movq	%r12, %rax
	movl	$56, %edx
.L21310:

	movl	%edx, %ecx
	xorl	%edi, %edi
	cmpl	$8, %edx
	jnb	.L21312
	andl	$4, %edx
	jne	.L21341
	testl	%ecx, %ecx
	jne	.L21342
	.p2align 4,,10
	.p2align 3
.L21311:

	bswap	%r14d
	bswap	%r13d
	movl	%r14d, 96(%rbx)
	movq	%r12, %rsi
	movl	%r13d, 100(%rbx)
	movl	$1, %edx
	movq	%rbx, %rdi
# WAS call	sha256_block_data_order
	call	.Lsha256_block_data_order_local_target
	pxor	%xmm0, %xmm0
	movl	$0, 104(%rbx)
	xorl	%eax, %eax
	movups	%xmm0, 40(%rbx)
	movups	%xmm0, 16(%r12)
	movups	%xmm0, 32(%r12)
	movups	%xmm0, 48(%r12)
	cmpl	$28, 108(%rbx)
	jne	.L21305
	movl	(%rbx), %eax
	bswap	%eax
	movl	%eax, 0(%rbp)
	movl	4(%rbx), %eax
	bswap	%eax
	movl	%eax, 4(%rbp)
	movl	8(%rbx), %eax
	bswap	%eax
	movl	%eax, 8(%rbp)
	movl	12(%rbx), %eax
	bswap	%eax
	movl	%eax, 12(%rbp)
	movl	16(%rbx), %eax
	bswap	%eax
	movl	%eax, 16(%rbp)
	movl	20(%rbx), %eax
	bswap	%eax
	movl	%eax, 20(%rbp)
	movl	24(%rbx), %eax
	bswap	%eax
	movl	%eax, 24(%rbp)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
.L21305:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21306:

	.cfi_restore_state
	movl	$56, %edx
	subq	%rax, %rdx
	je	.L21311
	addq	%r12, %rax
	jmp	.L21310
	.p2align 4,,10
	.p2align 3
.L21312:

	leaq	8(%rax), %rsi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rsi
	subq	%rsi, %rax
	leal	(%rdx,%rax), %ecx
	andl	$-8, %ecx
	cmpl	$8, %ecx
	jb	.L21311
	andl	$-8, %ecx
	xorl	%eax, %eax
.L21316:

	movl	%eax, %edx
	addl	$8, %eax
	movq	%rdi, (%rsi,%rdx)
	cmpl	%ecx, %eax
	jb	.L21316
	jmp	.L21311
	.p2align 4,,10
	.p2align 3
.L21340:

	addq	%r12, %rax
	xorl	%ecx, %ecx
	testb	$1, %dl
	je	.L21308
	movl	$1, %ecx
	movb	$0, (%rax)
	cmpq	%rdx, %rcx
	jnb	.L21307
.L21308:

	movb	$0, (%rax,%rcx)
	movb	$0, 1(%rax,%rcx)
	addq	$2, %rcx
	cmpq	%rdx, %rcx
	jb	.L21308
	jmp	.L21307
	.p2align 4,,10
	.p2align 3
.L21342:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L21311
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L21311
.L21341:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L21311
	.cfi_endproc
.LFE2863:

	.size	SHA224_Final, .-SHA224_Final
# WAS .section	.text.sha224_final,"ax",@progbits
.text
	.p2align 4
	.type	sha224_final, @function
.Lsha224_final_local_target:
sha224_final:
.LFB1658:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA224_Final@PLT
	jmp	.LSHA224_Final_local_target
	.cfi_endproc
.LFE1658:

	.size	sha224_final, .-sha224_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA224_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA224_Final, @function
.LAWS_LC_TRAMPOLINE_SHA224_Final_local_target:
AWS_LC_TRAMPOLINE_SHA224_Final:
.LFB2334:

	.cfi_startproc
	endbr64
# WAS jmp	SHA224_Final@PLT
	jmp	.LSHA224_Final_local_target
	.cfi_endproc
.LFE2334:

	.size	AWS_LC_TRAMPOLINE_SHA224_Final, .-AWS_LC_TRAMPOLINE_SHA224_Final
# WAS .section	.text.SHA224,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224
	.type	SHA224, @function
.LSHA224_local_target:
SHA224:
.LFB2856:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$136, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA224_Init@PLT
	call	.LSHA224_Init_local_target
	testl	%eax, %eax
	je	.L21346
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA224_Update@PLT
	call	.LSHA224_Update_local_target
	testl	%eax, %eax
	jne	.L21359
.L21346:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L21347:

	movl	$112, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	120(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21360
	addq	$136, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21359:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA224_Final@PLT
	call	.LSHA224_Final_local_target
	testl	%eax, %eax
	je	.L21346
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L21347
.L21360:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2856:

	.size	SHA224, .-SHA224
# WAS .section	.text.SHA224_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA224_get_state
	.type	SHA224_get_state, @function
.LSHA224_get_state_local_target:
SHA224_get_state:
.LFB2865:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	xorl	%esi, %esi
	testw	$511, 32(%rdi)
	jne	.L21361
	movl	(%rdi), %esi
	bswap	%esi
	movl	%esi, (%rcx)
	movl	4(%rdi), %esi
	bswap	%esi
	movl	%esi, 4(%rcx)
	movl	8(%rdi), %esi
	bswap	%esi
	movl	%esi, 8(%rcx)
	movl	12(%rdi), %esi
	bswap	%esi
	movl	%esi, 12(%rcx)
	movl	16(%rdi), %esi
	bswap	%esi
	movl	%esi, 16(%rcx)
	movl	20(%rdi), %esi
	bswap	%esi
	movl	%esi, 20(%rcx)
	movl	24(%rdi), %esi
	bswap	%esi
	movl	%esi, 24(%rcx)
	movl	28(%rdi), %esi
	bswap	%esi
	movl	%esi, 28(%rcx)
	movq	32(%rdi), %rax
	movl	$1, %esi
	movq	%rax, (%rdx)
.L21361:

	movl	%esi, %eax
	ret
	.cfi_endproc
.LFE2865:

	.size	SHA224_get_state, .-SHA224_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA224_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA224_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA224_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA224_get_state:
.LFB2336:

	.cfi_startproc
	endbr64
# WAS jmp	SHA224_get_state@PLT
	jmp	.LSHA224_get_state_local_target
	.cfi_endproc
.LFE2336:

	.size	AWS_LC_TRAMPOLINE_SHA224_get_state, .-AWS_LC_TRAMPOLINE_SHA224_get_state
# WAS .section	.text.SHA256_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_get_state
	.type	SHA256_get_state, @function
.LSHA256_get_state_local_target:
SHA256_get_state:
.LFB3149:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	xorl	%esi, %esi
	testw	$511, 32(%rdi)
	jne	.L21365
	movl	(%rdi), %esi
	bswap	%esi
	movl	%esi, (%rcx)
	movl	4(%rdi), %esi
	bswap	%esi
	movl	%esi, 4(%rcx)
	movl	8(%rdi), %esi
	bswap	%esi
	movl	%esi, 8(%rcx)
	movl	12(%rdi), %esi
	bswap	%esi
	movl	%esi, 12(%rcx)
	movl	16(%rdi), %esi
	bswap	%esi
	movl	%esi, 16(%rcx)
	movl	20(%rdi), %esi
	bswap	%esi
	movl	%esi, 20(%rcx)
	movl	24(%rdi), %esi
	bswap	%esi
	movl	%esi, 24(%rcx)
	movl	28(%rdi), %esi
	bswap	%esi
	movl	%esi, 28(%rcx)
	movq	32(%rdi), %rax
	movl	$1, %esi
	movq	%rax, (%rdx)
.L21365:

	movl	%esi, %eax
	ret
	.cfi_endproc
.LFE3149:

	.size	SHA256_get_state, .-SHA256_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA256_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA256_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA256_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA256_get_state:
.LFB2341:

	.cfi_startproc
	endbr64
# WAS jmp	SHA256_get_state@PLT
	jmp	.LSHA256_get_state_local_target
	.cfi_endproc
.LFE2341:

	.size	AWS_LC_TRAMPOLINE_SHA256_get_state, .-AWS_LC_TRAMPOLINE_SHA256_get_state
# WAS .section	.text.SHA256_TransformBlocks,"ax",@progbits
.text
	.p2align 4
	.globl	SHA256_TransformBlocks
	.type	SHA256_TransformBlocks, @function
.LSHA256_TransformBlocks_local_target:
SHA256_TransformBlocks:
.LFB2868:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	testb	$32, 11(%rax)
	jne	.L21380
	movl	4(%rax), %edx
	movl	%edx, %ecx
	notl	%edx
	andl	$512, %ecx
	andl	$268435968, %edx
	je	.L21371
.L21374:

	testl	%ecx, %ecx
	jne	.L21381
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_nohw@PLT
	jmp	.Lsha256_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L21381:

	.cfi_restore_state
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_ssse3@PLT
	jmp	.Lsha256_block_data_order_ssse3_local_target
	.p2align 4,,10
	.p2align 3
.L21380:

	.cfi_restore_state
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_hw@PLT
	jmp	.Lsha256_block_data_order_hw_local_target
	.p2align 4,,10
	.p2align 3
.L21371:

	.cfi_restore_state
	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L21374
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	sha256_block_data_order_avx@PLT
	jmp	.Lsha256_block_data_order_avx_local_target
	.cfi_endproc
.LFE2868:

	.size	SHA256_TransformBlocks, .-SHA256_TransformBlocks
# WAS .section	.text.SHA3_Reset,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Reset
	.type	SHA3_Reset, @function
.LSHA3_Reset_local_target:
SHA3_Reset:
.LFB2877:

	.cfi_startproc
	endbr64
	movq	$0, (%rdi)
	movq	%rdi, %rdx
	leaq	8(%rdi), %rdi
	xorl	%eax, %eax
	movq	$0, 184(%rdi)
	movq	%rdx, %rcx
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$200, %ecx
	shrl	$3, %ecx
	rep stosq
	movb	$0, 393(%rdx)
	movq	$0, 216(%rdx)
	ret
	.cfi_endproc
.LFE2877:

	.size	SHA3_Reset, .-SHA3_Reset
# WAS .section	.text.SHA3_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Init
	.type	SHA3_Init, @function
.LSHA3_Init_local_target:
SHA3_Init:
.LFB2878:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	cmpb	$6, %sil
	je	.L21390
	cmpb	$31, %sil
	jne	.L21388
	movq	200(%rdi), %r12
	movb	$0, 393(%rdi)
	cmpq	$168, %r12
	jbe	.L21391
.L21388:

	addq	$32, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	xorl	%eax, %eax
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21390:

	.cfi_restore_state
	movl	$800, %r12d
	movb	$0, 393(%rdi)
	subq	%rdx, %r12
	addq	%r12, %r12
	shrq	$3, %r12
	cmpq	$168, %r12
	ja	.L21388
.L21391:

	movq	%rdx, 24(%rsp)
	movl	%esi, 20(%rsp)
	movq	%rdi, 8(%rsp)
# WAS call	SHA3_Reset@PLT
	call	.LSHA3_Reset_local_target
	movq	24(%rsp), %rdx
	movq	8(%rsp), %rdi
	movl	$1, %eax
	movl	20(%rsp), %esi
	shrq	$3, %rdx
	movq	%r12, 200(%rdi)
	movq	%rdx, 208(%rdi)
	movb	%sil, 392(%rdi)
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2878:

	.size	SHA3_Init, .-SHA3_Init
# WAS .section	.text.sha3_224_init,"ax",@progbits
.text
	.p2align 4
	.type	sha3_224_init, @function
.Lsha3_224_init_local_target:
sha3_224_init:
.LFB1692:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$224, %edx
	movl	$6, %esi
# WAS jmp	SHA3_Init@PLT
	jmp	.LSHA3_Init_local_target
	.cfi_endproc
.LFE1692:

	.size	sha3_224_init, .-sha3_224_init
# WAS .section	.text.sha3_256_init,"ax",@progbits
.text
	.p2align 4
	.type	sha3_256_init, @function
.Lsha3_256_init_local_target:
sha3_256_init:
.LFB1698:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$256, %edx
	movl	$6, %esi
# WAS jmp	SHA3_Init@PLT
	jmp	.LSHA3_Init_local_target
	.cfi_endproc
.LFE1698:

	.size	sha3_256_init, .-sha3_256_init
# WAS .section	.text.sha3_384_init,"ax",@progbits
.text
	.p2align 4
	.type	sha3_384_init, @function
.Lsha3_384_init_local_target:
sha3_384_init:
.LFB1704:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$384, %edx
	movl	$6, %esi
# WAS jmp	SHA3_Init@PLT
	jmp	.LSHA3_Init_local_target
	.cfi_endproc
.LFE1704:

	.size	sha3_384_init, .-sha3_384_init
# WAS .section	.text.sha3_512_init,"ax",@progbits
.text
	.p2align 4
	.type	sha3_512_init, @function
.Lsha3_512_init_local_target:
sha3_512_init:
.LFB1710:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$512, %edx
	movl	$6, %esi
# WAS jmp	SHA3_Init@PLT
	jmp	.LSHA3_Init_local_target
	.cfi_endproc
.LFE1710:

	.size	sha3_512_init, .-sha3_512_init
# WAS .section	.text.SHAKE_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHAKE_Init
	.type	SHAKE_Init, @function
.LSHAKE_Init_local_target:
SHAKE_Init:
.LFB2875:

	.cfi_startproc
	endbr64
	movq	%rsi, 200(%rdi)
	xorl	%edx, %edx
	movl	$31, %esi
# WAS jmp	SHA3_Init@PLT
	jmp	.LSHA3_Init_local_target
	.cfi_endproc
.LFE2875:

	.size	SHAKE_Init, .-SHAKE_Init
# WAS .section	.text.shake128_init,"ax",@progbits
.text
	.p2align 4
	.type	shake128_init, @function
.Lshake128_init_local_target:
shake128_init:
.LFB1716:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$168, %esi
# WAS jmp	SHAKE_Init@PLT
	jmp	.LSHAKE_Init_local_target
	.cfi_endproc
.LFE1716:

	.size	shake128_init, .-shake128_init
# WAS .section	.text.shake256_init,"ax",@progbits
.text
	.p2align 4
	.type	shake256_init, @function
.Lshake256_init_local_target:
shake256_init:
.LFB1722:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
	movl	$136, %esi
# WAS jmp	SHAKE_Init@PLT
	jmp	.LSHAKE_Init_local_target
	.cfi_endproc
.LFE1722:

	.size	shake256_init, .-shake256_init
# WAS .section	.text.SHA3_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Update
	.type	SHA3_Update, @function
.LSHA3_Update_local_target:
SHA3_Update:
.LFB2879:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	200(%rdi), %r13
	testq	%rdx, %rdx
	je	.L21401
	movq	216(%rdi), %r12
	movq	%rdi, %rbx
	movq	%rsi, %r14
	movq	%rdx, %rbp
	testq	%r12, %r12
	je	.L21415
	movq	%r13, %r15
	subq	%r12, %r15
	cmpq	%r15, %rdx
	jb	.L21416
	leaq	224(%rdi), %r8
	movq	%r15, %rdx
	leaq	(%r8,%r12), %rdi
	movq	%r8, 8(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r13, %rcx
	movq	%rbx, %rdi
# WAS call	SHA3_Absorb@PLT
	call	.LSHA3_Absorb_local_target
	movq	%rax, %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	jne	.L21399
	leaq	0(%rbp,%r12), %rax
	addq	%r15, %r14
	movq	$0, 216(%rbx)
	subq	%r13, %rax
	movq	%rax, %rbp
	cmpq	%r13, %rax
	jnb	.L21403
.L21407:

	testq	%rax, %rax
	jne	.L21417
.L21401:

	movl	$1, %eax
.L21399:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21415:

	.cfi_restore_state
	cmpq	%r13, %rdx
	jnb	.L21403
.L21404:

	leaq	224(%rbx), %rdi
	movq	%rbp, %rdx
	movq	%r14, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%rbp, 216(%rbx)
	movl	$1, %eax
	jmp	.L21399
	.p2align 4,,10
	.p2align 3
.L21403:

	movq	%r13, %rcx
	movq	%rbp, %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Absorb@PLT
	call	.LSHA3_Absorb_local_target
	jmp	.L21407
	.p2align 4,,10
	.p2align 3
.L21416:

	leaq	224(%rdi,%r12), %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addq	%rbp, 216(%rbx)
	jmp	.L21401
	.p2align 4,,10
	.p2align 3
.L21417:

	subq	%rax, %rbp
	addq	%rbp, %r14
	movq	%rax, %rbp
	jmp	.L21404
	.cfi_endproc
.LFE2879:

	.size	SHA3_Update, .-SHA3_Update
# WAS .section	.text.sha3_224_update,"ax",@progbits
.text
	.p2align 4
	.type	sha3_224_update, @function
.Lsha3_224_update_local_target:
sha3_224_update:
.LFB1693:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE1693:

	.size	sha3_224_update, .-sha3_224_update
# WAS .section	.text.ml_kem_kyber_shake128_absorb_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_kyber_shake128_absorb_ref
	.hidden	ml_kem_kyber_shake128_absorb_ref
	.type	ml_kem_kyber_shake128_absorb_ref, @function
.Lml_kem_kyber_shake128_absorb_ref_local_target:
ml_kem_kyber_shake128_absorb_ref:
.LFB2523:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movdqu	(%rsi), %xmm0
	movdqu	16(%rsi), %xmm1
	movl	$168, %esi
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	movb	%dl, 32(%rsp)
	movb	%cl, 33(%rsp)
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movl	$34, %edx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21422
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L21422:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2523:

	.size	ml_kem_kyber_shake128_absorb_ref, .-ml_kem_kyber_shake128_absorb_ref
# WAS .section	.text.shake256_update,"ax",@progbits
.text
	.p2align 4
	.type	shake256_update, @function
.Lshake256_update_local_target:
shake256_update:
.LFB3165:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE3165:

	.size	shake256_update, .-shake256_update
# WAS .section	.text.sha3_384_update,"ax",@progbits
.text
	.p2align 4
	.type	sha3_384_update, @function
.Lsha3_384_update_local_target:
sha3_384_update:
.LFB3159:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE3159:

	.size	sha3_384_update, .-sha3_384_update
# WAS .section	.text.sha3_256_update,"ax",@progbits
.text
	.p2align 4
	.type	sha3_256_update, @function
.Lsha3_256_update_local_target:
sha3_256_update:
.LFB3157:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE3157:

	.size	sha3_256_update, .-sha3_256_update
# WAS .section	.text.sha3_512_update,"ax",@progbits
.text
	.p2align 4
	.type	sha3_512_update, @function
.Lsha3_512_update_local_target:
sha3_512_update:
.LFB3161:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE3161:

	.size	sha3_512_update, .-sha3_512_update
# WAS .section	.text.shake128_update,"ax",@progbits
.text
	.p2align 4
	.type	shake128_update, @function
.Lshake128_update_local_target:
shake128_update:
.LFB3163:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA3_Update@PLT
	jmp	.LSHA3_Update_local_target
	.cfi_endproc
.LFE3163:

	.size	shake128_update, .-shake128_update
# WAS .section	.text.SHA3_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_Final
	.type	SHA3_Final, @function
.LSHA3_Final_local_target:
SHA3_Final:
.LFB2880:

	.cfi_startproc
	endbr64
	movq	208(%rsi), %rdx
	testq	%rdx, %rdx
	je	.L21437
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movzbl	393(%rsi), %r8d
	movq	%rsi, %rbx
	movq	200(%rsi), %rbp
	movq	216(%rsi), %r13
	testb	%r8b, %r8b
	jne	.L21430
	leaq	224(%rsi), %r14
	movq	%rbp, %rdx
	xorl	%esi, %esi
	subq	%r13, %rdx
	leaq	(%r14,%r13), %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
	movq	%rbp, %rdx
	movq	%rbp, %rcx
	movq	%r14, %rsi
	movzbl	392(%rbx), %eax
	movq	%rbx, %rdi
	movb	%al, 224(%rbx,%r13)
	orb	$-128, 223(%rbx,%rbp)
# WAS call	SHA3_Absorb@PLT
	call	.LSHA3_Absorb_local_target
	movq	%rax, %rdx
	xorl	%eax, %eax
	testq	%rdx, %rdx
	jne	.L21428
	movzbl	393(%rbx), %r8d
	movq	208(%rbx), %rdx
.L21430:

	movq	%rbp, %rcx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Squeeze@PLT
	call	.LSHA3_Squeeze_local_target
	movb	$1, 393(%rbx)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movl	$1, %eax
.L21428:

	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21437:

	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2880:

	.size	SHA3_Final, .-SHA3_Final
# WAS .section	.text.sha3_224_final,"ax",@progbits
.text
	.p2align 4
	.type	sha3_224_final, @function
.Lsha3_224_final_local_target:
sha3_224_final:
.LFB1694:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA3_Final@PLT
	jmp	.LSHA3_Final_local_target
	.cfi_endproc
.LFE1694:

	.size	sha3_224_final, .-sha3_224_final
# WAS .section	.text.SHA3_224,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_224
	.type	SHA3_224, @function
.LSHA3_224_local_target:
SHA3_224:
.LFB2869:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$224, %edx
	movl	$6, %esi
	movq	%rbx, %rdi
# WAS call	SHA3_Init@PLT
	call	.LSHA3_Init_local_target
	testl	%eax, %eax
	jne	.L21456
.L21443:

	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21442:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21457
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21456:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21443
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Final@PLT
	call	.LSHA3_Final_local_target
	testl	%eax, %eax
	je	.L21443
	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbp, %rax
	jmp	.L21442
.L21457:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2869:

	.size	SHA3_224, .-SHA3_224
# WAS .section	.text.SHA3_256,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_256
	.type	SHA3_256, @function
.LSHA3_256_local_target:
SHA3_256:
.LFB2870:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$256, %edx
	movl	$6, %esi
	movq	%rbx, %rdi
# WAS call	SHA3_Init@PLT
	call	.LSHA3_Init_local_target
	testl	%eax, %eax
	jne	.L21472
.L21459:

	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21458:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21473
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21472:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21459
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Final@PLT
	call	.LSHA3_Final_local_target
	testl	%eax, %eax
	je	.L21459
	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbp, %rax
	jmp	.L21458
.L21473:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2870:

	.size	SHA3_256, .-SHA3_256
# WAS .section	.text.SHA3_384,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_384
	.type	SHA3_384, @function
.LSHA3_384_local_target:
SHA3_384:
.LFB2871:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$384, %edx
	movl	$6, %esi
	movq	%rbx, %rdi
# WAS call	SHA3_Init@PLT
	call	.LSHA3_Init_local_target
	testl	%eax, %eax
	jne	.L21488
.L21475:

	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21474:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21489
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21488:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21475
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Final@PLT
	call	.LSHA3_Final_local_target
	testl	%eax, %eax
	je	.L21475
	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbp, %rax
	jmp	.L21474
.L21489:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2871:

	.size	SHA3_384, .-SHA3_384
# WAS .section	.text.SHA3_512,"ax",@progbits
.text
	.p2align 4
	.globl	SHA3_512
	.type	SHA3_512, @function
.LSHA3_512_local_target:
SHA3_512:
.LFB2872:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$424, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$512, %edx
	movl	$6, %esi
	movq	%rbx, %rdi
# WAS call	SHA3_Init@PLT
	call	.LSHA3_Init_local_target
	testl	%eax, %eax
	jne	.L21504
.L21491:

	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21490:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21505
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21504:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21491
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Final@PLT
	call	.LSHA3_Final_local_target
	testl	%eax, %eax
	je	.L21491
	movl	$400, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbp, %rax
	jmp	.L21490
.L21505:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2872:

	.size	SHA3_512, .-SHA3_512
# WAS .section	.text.SHAKE_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHAKE_Final
	.type	SHAKE_Final, @function
.LSHAKE_Final_local_target:
SHAKE_Final:
.LFB2876:

	.cfi_startproc
	endbr64
	movq	%rdx, 208(%rsi)
# WAS jmp	SHA3_Final@PLT
	jmp	.LSHA3_Final_local_target
	.cfi_endproc
.LFE2876:

	.size	SHAKE_Final, .-SHAKE_Final
# WAS .section	.text.shake128_final,"ax",@progbits
.text
	.p2align 4
	.type	shake128_final, @function
.Lshake128_final_local_target:
shake128_final:
.LFB1718:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHAKE_Final@PLT
	jmp	.LSHAKE_Final_local_target
	.cfi_endproc
.LFE1718:

	.size	shake128_final, .-shake128_final
# WAS .section	.text.ml_kem_kyber_shake128_squeeze_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_kyber_shake128_squeeze_ref
	.hidden	ml_kem_kyber_shake128_squeeze_ref
	.type	ml_kem_kyber_shake128_squeeze_ref, @function
.Lml_kem_kyber_shake128_squeeze_ref_local_target:
ml_kem_kyber_shake128_squeeze_ref:
.LFB2524:

	.cfi_startproc
	endbr64
	imull	$168, %edx, %edx
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	%rax, %rsi
	movslq	%edx, %rdx
# WAS jmp	SHAKE_Final@PLT
	jmp	.LSHAKE_Final_local_target
	.cfi_endproc
.LFE2524:

	.size	ml_kem_kyber_shake128_squeeze_ref, .-ml_kem_kyber_shake128_squeeze_ref
# WAS .section	.text.ml_kem_gen_matrix_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_gen_matrix_ref
	.hidden	ml_kem_gen_matrix_ref
	.type	ml_kem_gen_matrix_ref, @function
.Lml_kem_gen_matrix_ref_local_target:
ml_kem_gen_matrix_ref:
.LFB2474:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$1064, %rsp
	.cfi_def_cfa_offset 1120
	movq	%rsi, 48(%rsp)
	movq	%rdx, 64(%rsp)
	movl	%ecx, 56(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 1048(%rsp)
	xorl	%eax, %eax
	cmpq	$0, (%rdi)
	je	.L21560
	movq	%rdi, %r9
	leaq	480(%rsp), %rdi
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	movq	%rdi, 72(%rsp)
	leaq	528(%rsp), %rbx
	leaq	80(%rsp), %r13
	movl	$3, %r14d
	leaq	1032(%rsp), %r11
	subl	%ebx, %r14d
	movq	%r11, %r12
.L21510:

	salq	$11, %rcx
	movl	$0, 12(%rsp)
	xorl	%ebp, %ebp
	movq	%rcx, 40(%rsp)
	movl	%eax, 60(%rsp)
	movq	%r9, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L21518:

	movl	56(%rsp), %eax
	movq	64(%rsp), %rdi
	testl	%eax, %eax
	je	.L21511
	movq	72(%rsp), %r15
	movdqu	16(%rdi), %xmm2
	movzbl	60(%rsp), %eax
	movdqu	(%rdi), %xmm0
	movaps	%xmm2, 16(%r15)
	movaps	%xmm0, (%r15)
	movb	%al, 512(%rsp)
	movzbl	12(%rsp), %eax
	movaps	%xmm2, 16(%rsp)
.L21559:

	movl	$168, %esi
	movq	%r13, %rdi
	movb	%al, 513(%rsp)
	salq	$9, %rbp
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movq	%r15, %rsi
	movl	$34, %edx
	movq	%r13, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movl	$504, %edx
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movq	40(%rsp), %rax
	movq	%rbx, %rcx
	xorl	%r15d, %r15d
	leaq	0(%rbp,%rax), %r10
	movq	48(%rsp), %rax
	leaq	(%rax,%r10), %rbp
	jmp	.L21516
	.p2align 4,,10
	.p2align 3
.L21562:

	leal	1(%r15), %esi
	movw	%dx, 0(%rbp,%r15,2)
	cmpl	$255, %esi
	ja	.L21532
	cmpw	$3328, %ax
	ja	.L21532
.L21528:

	leal	1(%rsi), %r15d
	movw	%ax, 0(%rbp,%rsi,2)
	cmpl	$256, %r15d
	je	.L21515
.L21529:

	addq	$3, %rcx
	cmpq	%r12, %rcx
	je	.L21561
.L21516:

	movzbl	1(%rcx), %eax
	movzbl	(%rcx), %edx
	movl	%eax, %esi
	shrb	$4, %al
	sall	$8, %esi
	movzbl	%al, %eax
	orl	%esi, %edx
	movzbl	2(%rcx), %esi
	andw	$4095, %dx
	sall	$4, %esi
	orl	%esi, %eax
	cmpw	$3328, %dx
	jle	.L21562
	cmpw	$3328, %ax
	ja	.L21529
	movl	%r15d, %esi
	jmp	.L21528
	.p2align 4,,10
	.p2align 3
.L21532:

	movl	%esi, %r15d
	cmpl	$256, %r15d
	jne	.L21529
	.p2align 4,,10
	.p2align 3
.L21515:

	movq	32(%rsp), %rdi
	addl	$1, 12(%rsp)
	movl	12(%rsp), %ebp
	movq	(%rdi), %rdx
	cmpq	%rdx, %rbp
	jb	.L21518
	movl	60(%rsp), %eax
	movq	%rdi, %r9
	leal	1(%rax), %ecx
	movq	%rcx, %rax
	cmpq	%rdx, %rcx
	jb	.L21510
.L21527:

	movl	$506, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	1048(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21563
	addq	$1064, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21511:

	.cfi_restore_state
	movq	72(%rsp), %r15
	movdqu	16(%rdi), %xmm6
	movzbl	12(%rsp), %eax
	movdqu	(%rdi), %xmm4
	movaps	%xmm6, 16(%r15)
	movaps	%xmm4, (%r15)
	movaps	%xmm6, 16(%rsp)
	movb	%al, 512(%rsp)
	movzbl	60(%rsp), %eax
	jmp	.L21559
.L21561:

	movq	%r12, 16(%rsp)
	movl	$504, %r8d
	.p2align 4,,10
	.p2align 3
.L21517:

	movl	$2863311531, %eax
	movl	%r8d, %ecx
	movl	%r8d, %r12d
	imulq	%rax, %rcx
	shrq	$33, %rcx
	leal	(%rcx,%rcx,2), %eax
	subl	%eax, %r12d
	je	.L21523
	subl	%r12d, %r8d
	movl	%r8d, %eax
	movzbl	528(%rsp,%rax), %eax
	movb	%al, 528(%rsp)
	cmpl	$2, %r12d
	jne	.L21523
	leal	1(%r8), %eax
	movzbl	528(%rsp,%rax), %eax
	movb	%al, 529(%rsp)
.L21523:

	movl	%r12d, %edi
	movq	%r13, %rsi
	movl	$168, %edx
	addq	%rbx, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movl	$256, %r9d
	movl	%r15d, %eax
	xorl	%edi, %edi
	leal	168(%r12), %r8d
	subl	%r15d, %r9d
	leaq	0(%rbp,%rax,2), %r10
	movq	%rbx, %rsi
	jmp	.L21521
	.p2align 4,,10
	.p2align 3
.L21564:

	cmpw	$3328, %ax
	ja	.L21525
	movl	%edi, %edx
	addl	$1, %edi
	movw	%ax, (%r10,%rdx,2)
.L21525:

	cmpl	%r9d, %edi
	jnb	.L21526
	addq	$3, %rsi
	leal	(%r14,%rsi), %eax
	cmpl	%eax, %r8d
	jb	.L21526
.L21521:

	movzbl	1(%rsi), %eax
	movzbl	(%rsi), %edx
	movl	%eax, %ecx
	shrb	$4, %al
	sall	$8, %ecx
	movzbl	%al, %eax
	orl	%ecx, %edx
	movzbl	2(%rsi), %ecx
	andw	$4095, %dx
	sall	$4, %ecx
	orl	%ecx, %eax
	cmpw	$3328, %dx
	jg	.L21524
	movl	%edi, %ecx
	addl	$1, %edi
	movw	%dx, (%r10,%rcx,2)
.L21524:

	cmpl	%r9d, %edi
	jb	.L21564
.L21526:

	addl	%edi, %r15d
	cmpl	$255, %r15d
	jbe	.L21517
	movq	16(%rsp), %r12
	jmp	.L21515
.L21560:

	leaq	528(%rsp), %rbx
	jmp	.L21527
.L21563:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2474:

	.size	ml_kem_gen_matrix_ref, .-ml_kem_gen_matrix_ref
# WAS .section	.text.ml_kem_kyber_shake256_rkprf_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_kyber_shake256_rkprf_ref
	.hidden	ml_kem_kyber_shake256_rkprf_ref
	.type	ml_kem_kyber_shake256_rkprf_ref, @function
.Lml_kem_kyber_shake256_rkprf_ref_local_target:
ml_kem_kyber_shake256_rkprf_ref:
.LFB2526:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	movl	$136, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$416, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rbx, %rdi
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movl	$32, %edx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movq	80(%r13), %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movl	$32, %edx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movq	408(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21568
	addq	$416, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21568:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2526:

	.size	ml_kem_kyber_shake256_rkprf_ref, .-ml_kem_kyber_shake256_rkprf_ref
# WAS .section	.text.SHAKE128,"ax",@progbits
.text
	.p2align 4
	.globl	SHAKE128
	.type	SHAKE128, @function
.LSHAKE128_local_target:
SHAKE128:
.LFB2873:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	subq	$416, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$168, %esi
	movq	%rbp, %rdi
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	testl	%eax, %eax
	jne	.L21583
.L21570:

	movl	$400, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21569:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21584
	addq	$416, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21583:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21570
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	testl	%eax, %eax
	je	.L21570
	movl	$400, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbx, %rax
	jmp	.L21569
.L21584:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2873:

	.size	SHAKE128, .-SHAKE128
# WAS .section	.text.SHAKE256,"ax",@progbits
.text
	.p2align 4
	.globl	SHAKE256
	.type	SHAKE256, @function
.LSHAKE256_local_target:
SHAKE256:
.LFB2874:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdx, %rbx
	subq	$416, %rsp
	.cfi_def_cfa_offset 464
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movl	$136, %esi
	movq	%rbp, %rdi
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	testl	%eax, %eax
	jne	.L21599
.L21586:

	movl	$400, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	xorl	%eax, %eax
.L21585:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21600
	addq	$416, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21599:

	.cfi_restore_state
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	testl	%eax, %eax
	je	.L21586
	movq	%r14, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	testl	%eax, %eax
	je	.L21586
	movl	$400, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbx, %rax
	jmp	.L21585
.L21600:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2874:

	.size	SHAKE256, .-SHAKE256
# WAS .section	.text.ml_kem_kyber_shake256_prf_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_kyber_shake256_prf_ref
	.hidden	ml_kem_kyber_shake256_prf_ref
	.type	ml_kem_kyber_shake256_prf_ref, @function
.Lml_kem_kyber_shake256_prf_ref_local_target:
ml_kem_kyber_shake256_prf_ref:
.LFB2525:

	.cfi_startproc
	endbr64
	subq	$56, %rsp
	.cfi_def_cfa_offset 64
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movq	%rdi, %rdx
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	movq	%rsp, %rax
	movb	%cl, 32(%rsp)
	movq	%rsi, %rcx
	movl	$33, %esi
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
	movq	%rax, %rdi
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21604
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L21604:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2525:

	.size	ml_kem_kyber_shake256_prf_ref, .-ml_kem_kyber_shake256_prf_ref
# WAS .section	.text.ml_kem_poly_getnoise_eta2_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_getnoise_eta2_ref
	.hidden	ml_kem_poly_getnoise_eta2_ref
	.type	ml_kem_poly_getnoise_eta2_ref, @function
.Lml_kem_poly_getnoise_eta2_ref_local_target:
ml_kem_poly_getnoise_eta2_ref:
.LFB2504:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$128, %ecx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$200, %rsp
	.cfi_def_cfa_offset 224
	movdqu	(%rsi), %xmm0
	movdqu	16(%rsi), %xmm1
	movl	$33, %esi
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
	leaq	48(%rsp), %rbp
	movb	%dl, 32(%rsp)
	movq	%rsp, %rdi
	movq	%rbp, %rdx
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	cbd2
	call	.Lcbd2_local_target
	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21608
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L21608:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2504:

	.size	ml_kem_poly_getnoise_eta2_ref, .-ml_kem_poly_getnoise_eta2_ref
# WAS .section	.text.ml_kem_poly_getnoise_eta1_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_poly_getnoise_eta1_ref
	.hidden	ml_kem_poly_getnoise_eta1_ref
	.type	ml_kem_poly_getnoise_eta1_ref, @function
.Lml_kem_poly_getnoise_eta1_ref_local_target:
ml_kem_poly_getnoise_eta1_ref:
.LFB2503:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	movl	$33, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$256, %rsp
	.cfi_def_cfa_offset 288
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movq	%fs:40, %rax
	movq	%rax, 248(%rsp)
	xorl	%eax, %eax
	leaq	48(%rsp), %r12
	movb	%cl, 32(%rsp)
	movq	%rsp, %rdi
	movq	%r12, %rdx
	movl	$192, %ecx
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	ml_kem_poly_cbd_eta1_ref
	call	.Lml_kem_poly_cbd_eta1_ref_local_target
	movq	248(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21612
	addq	$256, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L21612:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2503:

	.size	ml_kem_poly_getnoise_eta1_ref, .-ml_kem_poly_getnoise_eta1_ref
# WAS .section	.text.ml_kem_indcpa_keypair_derand_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_indcpa_keypair_derand_ref
	.hidden	ml_kem_indcpa_keypair_derand_ref
	.type	ml_kem_indcpa_keypair_derand_ref, @function
.Lml_kem_indcpa_keypair_derand_ref_local_target:
ml_kem_indcpa_keypair_derand_ref:
.LFB2475:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 12344
	orq	$0, (%rsp)
	subq	$3400, %rsp
	.cfi_def_cfa_offset 15744
	movq	%rcx, %rax
	movq	%rdi, 64(%rsp)
	movq	%rdi, %rbx
	leaq	14992(%rsp), %rcx
	movq	%rsi, 80(%rsp)
	movdqu	(%rax), %xmm6
	movl	$33, %esi
	movq	%rdx, 96(%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 15672(%rsp)
	xorl	%edx, %edx
	movaps	%xmm6, 14992(%rsp)
	movdqu	16(%rax), %xmm6
	movq	(%rdi), %rax
	movq	%rcx, %rdi
	movq	%rcx, 104(%rsp)
	movb	%al, 15024(%rsp)
	leaq	15088(%rsp), %rax
	movq	%rax, %rdx
	movq	%rax, 88(%rsp)
	movaps	%xmm6, 15008(%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	cmpq	$0, (%rbx)
	je	.L21763
	leaq	15040(%rsp), %r11
	leaq	4752(%rsp), %rbx
	movl	$3, %r13d
	movq	88(%rsp), %r9
	leaq	6800(%rsp), %rax
	movq	%rbx, 40(%rsp)
	leaq	15152(%rsp), %r12
	xorl	%edx, %edx
	movq	%rax, 56(%rsp)
	leaq	15656(%rsp), %rcx
	xorl	%r15d, %r15d
	subl	%r12d, %r13d
	movq	%r11, 48(%rsp)
	movq	%rcx, %r14
.L21614:

	salq	$11, %rdx
	movb	%r15b, 32(%rsp)
	xorl	%r11d, %r11d
	xorl	%ebp, %ebp
	movq	%rdx, 24(%rsp)
	movl	%r15d, 72(%rsp)
	.p2align 4,,10
	.p2align 3
.L21622:

	movdqa	(%r9), %xmm6
	movq	48(%rsp), %r15
	movl	$168, %esi
	movq	%rbx, %rdi
	movzbl	32(%rsp), %eax
	movq	%r9, 8(%rsp)
	salq	$9, %rbp
	movaps	%xmm6, (%r15)
	movdqa	16(%r9), %xmm6
	movl	%r11d, (%rsp)
	movaps	%xmm6, 16(%r15)
	movb	%r11b, 15072(%rsp)
	movb	%al, 15073(%rsp)
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movq	%r15, %rsi
	movl	$34, %edx
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movl	$504, %edx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movq	24(%rsp), %rax
	movq	%r12, %rcx
	xorl	%r15d, %r15d
	movl	(%rsp), %r11d
	movq	8(%rsp), %r9
	leaq	0(%rbp,%rax), %r10
	movq	56(%rsp), %rax
	leaq	(%rax,%r10), %rbp
	jmp	.L21620
	.p2align 4,,10
	.p2align 3
.L21765:

	leal	1(%r15), %esi
	movw	%dx, 0(%rbp,%r15,2)
	cmpl	$255, %esi
	ja	.L21676
	cmpw	$3328, %ax
	ja	.L21676
.L21671:

	leal	1(%rsi), %r15d
	movw	%ax, 0(%rbp,%rsi,2)
	cmpl	$256, %r15d
	je	.L21619
.L21672:

	addq	$3, %rcx
	cmpq	%r14, %rcx
	je	.L21764
.L21620:

	movzbl	1(%rcx), %eax
	movzbl	(%rcx), %edx
	movl	%eax, %esi
	shrb	$4, %al
	sall	$8, %esi
	movzbl	%al, %eax
	orl	%esi, %edx
	movzbl	2(%rcx), %esi
	andw	$4095, %dx
	sall	$4, %esi
	orl	%esi, %eax
	cmpw	$3328, %dx
	jle	.L21765
	cmpw	$3328, %ax
	ja	.L21672
	movl	%r15d, %esi
	jmp	.L21671
	.p2align 4,,10
	.p2align 3
.L21676:

	movl	%esi, %r15d
	cmpl	$256, %r15d
	jne	.L21672
	.p2align 4,,10
	.p2align 3
.L21619:

	movq	64(%rsp), %rax
	leal	1(%r11), %ebp
	movq	%rbp, %r11
	movq	(%rax), %rcx
	cmpq	%rcx, %rbp
	jb	.L21622
	movl	72(%rsp), %r15d
	leal	1(%r15), %edx
	movq	%rdx, %r15
	cmpq	%rcx, %rdx
	jb	.L21614
.L21631:

	movl	$506, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	64(%rsp), %rax
	cmpq	$0, (%rax)
	je	.L21762
	leaq	15040(%rsp), %r11
	xorl	%r13d, %r13d
	leaq	15120(%rsp), %r14
	xorl	%ebp, %ebp
	movq	%r11, %r15
.L21615:

	movdqa	(%r14), %xmm6
	movl	$192, %ecx
	movq	%r12, %rdx
	movq	%r15, %rdi
	movl	$33, %esi
	movl	%r13d, %ebx
	movaps	%xmm6, (%r15)
	movdqa	16(%r14), %xmm6
	movaps	%xmm6, 16(%r15)
	movb	%r13b, 15072(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	40(%rsp), %rax
	movq	%rbp, %rsi
	movq	%r12, %rdx
	movq	64(%rsp), %r11
	salq	$9, %rsi
	leal	1(%r13), %ebp
	addq	%rax, %rsi
	movq	%rbp, %r13
	movq	%r11, %rdi
# WAS call	ml_kem_poly_cbd_eta1_ref
	call	.Lml_kem_poly_cbd_eta1_ref_local_target
	movq	(%r11), %rax
	cmpq	%rax, %rbp
	jb	.L21615
	testq	%rax, %rax
	je	.L21762
	leaq	656(%rsp), %rax
	addl	$1, %ebx
	xorl	%r13d, %r13d
	xorl	%ebp, %ebp
	movq	%rax, 48(%rsp)
.L21632:

	movdqa	(%r14), %xmm6
	leal	(%rbx,%r13), %eax
	movq	%r12, %rdx
	movq	%r15, %rdi
	movdqa	16(%r14), %xmm4
	movl	$192, %ecx
	movl	$33, %esi
	movaps	%xmm6, (%r15)
	movaps	%xmm4, 16(%r15)
	movb	%al, 15072(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	64(%rsp), %r11
	movq	%rbp, %rsi
	movq	%r12, %rdx
	movq	48(%rsp), %rax
	salq	$9, %rsi
	leal	1(%r13), %ebp
	movq	%r11, %rdi
	movq	%rbp, %r13
	addq	%rax, %rsi
# WAS call	ml_kem_poly_cbd_eta1_ref
	call	.Lml_kem_poly_cbd_eta1_ref_local_target
	movq	(%r11), %r9
	cmpq	%r9, %rbp
	jb	.L21632
	leaq	2704(%rsp), %r13
	testq	%r9, %r9
	je	.L21616
	xorl	%ebp, %ebp
	movq	40(%rsp), %r8
	movq	%r9, %rcx
	movdqa	.LC307(%rip), %xmm3
	movq	%rbp, (%rsp)
	movdqa	.LC308(%rip), %xmm2
	salq	$8, %rcx
	movdqa	.LC309(%rip), %xmm4
	movdqa	.LC310(%rip), %xmm5
	movq	%r8, %rdx
	movq	%r8, %r13
	movdqa	.LC311(%rip), %xmm6
.L21643:

	movl	$7, %eax
	movq	%r9, 112(%rsp)
	movl	$-758, %r14d
	movl	$1, %ebp
	movq	%rdx, 120(%rsp)
	movl	$128, %r12d
	movq	%rcx, 128(%rsp)
	movl	%eax, 72(%rsp)
	.p2align 4,,10
	.p2align 3
.L21633:

	movq	(%rsp), %rax
	movl	%r12d, %ecx
	xorl	%esi, %esi
	leal	-1(%r12), %r11d
	leal	1(%r12), %r15d
	addq	%rcx, %rax
	movl	%r12d, %ecx
	movq	%rax, 8(%rsp)
	movl	%r12d, %eax
	shrl	$3, %ecx
	andl	$-8, %eax
	salq	$4, %rcx
	movl	%eax, 24(%rsp)
	movl	%r12d, %eax
	andl	$7, %eax
	movq	%rcx, 16(%rsp)
	movl	%eax, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L21642:

	leal	1(%rsi), %eax
	leal	(%r12,%rsi), %edi
	addl	$1, %ebp
	movswl	%r14w, %r8d
	cmpl	%eax, %edi
	movl	%esi, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L21634
	testb	%r10b, %r10b
	je	.L21634
	movq	8(%rsp), %rbx
	leaq	8(%rax,%rbx), %r9
	movq	(%rsp), %rbx
	addq	%r9, %r9
	leaq	(%rbx,%rax), %rdx
	leaq	-16(%r9), %rcx
	addq	%rdx, %rdx
	leaq	16(%rdx), %rbx
	cmpq	%rbx, %rcx
	jge	.L21683
	cmpq	%r9, %rdx
	jge	.L21683
.L21634:

	movl	%edi, %edx
	subq	%rax, %rdx
	leaq	0(%r13,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L21638:

	movswl	(%rcx,%rax,2), %r9d
	imull	%r8d, %r9d
	imulw	$-3327, %r9w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r9d, %edx
	movzwl	0(%r13,%rax,2), %r9d
	sarl	$16, %edx
	subl	%edx, %r9d
	movw	%r9w, (%rcx,%rax,2)
	addw	%dx, 0(%r13,%rax,2)
	addq	$1, %rax
	cmpl	%edi, %eax
	jb	.L21638
.L21639:

	addl	%r15d, %esi
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %esi
	cmpl	$255, %esi
	ja	.L21766
	movl	%ebp, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rdi
	movzwl	(%rdi,%rax,2), %r14d
	jmp	.L21642
.L21764:

	movl	%r11d, (%rsp)
	movl	$504, %r8d
	movq	%r9, 16(%rsp)
	movq	%r14, 8(%rsp)
	movl	%r15d, %r14d
	.p2align 4,,10
	.p2align 3
.L21621:

	movl	$2863311531, %eax
	movl	%r8d, %ecx
	movl	%r8d, %r15d
	imulq	%rax, %rcx
	shrq	$33, %rcx
	leal	(%rcx,%rcx,2), %eax
	subl	%eax, %r15d
	je	.L21627
	subl	%r15d, %r8d
	movl	%r8d, %eax
	movzbl	15152(%rsp,%rax), %eax
	movb	%al, 15152(%rsp)
	cmpl	$2, %r15d
	jne	.L21627
	leal	1(%r8), %eax
	movzbl	15152(%rsp,%rax), %eax
	movb	%al, 15153(%rsp)
.L21627:

	movl	%r15d, %edi
	movq	%rbx, %rsi
	movl	$168, %edx
	addq	%r12, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movl	$256, %edi
	movl	%r14d, %eax
	movq	%r12, %rcx
	leal	168(%r15), %r8d
	subl	%r14d, %edi
	leaq	0(%rbp,%rax,2), %r10
	xorl	%esi, %esi
	jmp	.L21625
	.p2align 4,,10
	.p2align 3
.L21767:

	cmpw	$3328, %ax
	ja	.L21629
	movl	%esi, %edx
	addl	$1, %esi
	movw	%ax, (%r10,%rdx,2)
.L21629:

	cmpl	%edi, %esi
	jnb	.L21630
	addq	$3, %rcx
	leal	0(%r13,%rcx), %eax
	cmpl	%eax, %r8d
	jb	.L21630
.L21625:

	movzbl	1(%rcx), %eax
	movzbl	(%rcx), %edx
	movl	%eax, %r9d
	shrb	$4, %al
	sall	$8, %r9d
	movzbl	%al, %eax
	orl	%r9d, %edx
	movzbl	2(%rcx), %r9d
	andw	$4095, %dx
	sall	$4, %r9d
	orl	%r9d, %eax
	cmpw	$3328, %dx
	jg	.L21628
	movl	%esi, %r9d
	addl	$1, %esi
	movw	%dx, (%r10,%r9,2)
.L21628:

	cmpl	%edi, %esi
	jb	.L21767
.L21630:

	addl	%esi, %r14d
	cmpl	$255, %r14d
	jbe	.L21621
	movl	(%rsp), %r11d
	movq	8(%rsp), %r14
	movq	16(%rsp), %r9
	jmp	.L21619
	.p2align 4,,10
	.p2align 3
.L21683:

	movq	40(%rsp), %rax
	movd	%r14d, %xmm8
	punpcklwd	%xmm8, %xmm8
	addq	%rax, %rdx
	addq	%rax, %rcx
	movq	16(%rsp), %rax
	pshufd	$0, %xmm8, %xmm8
	addq	%rdx, %rax
	.p2align 4,,10
	.p2align 3
.L21636:

	movdqu	(%rcx), %xmm9
	movdqu	(%rcx), %xmm0
	addq	$16, %rdx
	addq	$16, %rcx
	pmullw	%xmm8, %xmm9
	pmulhw	%xmm8, %xmm0
	movdqa	%xmm9, %xmm10
	punpckhwd	%xmm0, %xmm9
	punpcklwd	%xmm0, %xmm10
	movdqa	%xmm10, %xmm0
	movdqa	%xmm10, %xmm1
	punpcklwd	%xmm9, %xmm0
	punpckhwd	%xmm9, %xmm1
	movdqa	%xmm0, %xmm7
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm7
	punpcklwd	%xmm7, %xmm0
	pmullw	%xmm3, %xmm0
	movdqa	%xmm0, %xmm7
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm2, %xmm1
	pmullw	%xmm2, %xmm7
	movdqa	%xmm7, %xmm0
	punpckhwd	%xmm1, %xmm7
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm7, %xmm1
	paddd	%xmm10, %xmm0
	paddd	%xmm9, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm7
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm7
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm7, %xmm1
	punpcklwd	%xmm7, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rax, %rdx
	jne	.L21636
	movl	24(%rsp), %eax
	movl	32(%rsp), %ecx
	leal	(%rax,%rsi), %edx
	testl	%ecx, %ecx
	je	.L21639
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rax,2), %r9
	movl	%edx, %eax
	movswl	(%r9), %ebx
	leaq	0(%r13,%rax,2), %rcx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21639
	leal	(%r12,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21639
	leal	(%r12,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21639
	leal	(%r12,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21639
	leal	(%r12,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21639
	leal	(%r12,%rax), %ecx
	addl	$6, %edx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	cmpl	%edi, %edx
	jnb	.L21639
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rdx,2), %rdx
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%rcx), %edi
	imull	%r8d, %edi
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	movzwl	(%rdx), %edi
	sarl	$16, %eax
	subl	%eax, %edi
	movw	%di, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L21639
	.p2align 4,,10
	.p2align 3
.L21766:

	shrl	%r12d
	subl	$1, 72(%rsp)
	je	.L21677
	movl	%ebp, %ecx
# WAS leaq	ml_kem_zetas_ref(%rip), %rax
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rax
	movzwl	(%rax,%rcx,2), %r14d
	jmp	.L21633
.L21677:

	movq	112(%rsp), %r9
	movq	120(%rsp), %rdx
	movq	%r13, %rax
	leaq	512(%r13), %rsi
	movq	128(%rsp), %rcx
	.p2align 4,,10
	.p2align 3
.L21641:

	movdqa	(%rax), %xmm7
	addq	$16, %rax
	movdqa	%xmm7, %xmm1
	movdqa	%xmm7, %xmm8
	pmullw	%xmm4, %xmm1
	pmulhw	%xmm4, %xmm8
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	paddd	%xmm5, %xmm1
	paddd	%xmm5, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm8
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm7
	movaps	%xmm7, -16(%rax)
	cmpq	%rsi, %rax
	jne	.L21641
	addq	$256, (%rsp)
	movq	(%rsp), %rdi
	cmpq	%rcx, %rdi
	je	.L21768
	movq	%rax, %r13
	jmp	.L21643
.L21771:

	leaq	3216(%rsp), %rbp
	movq	%rdx, 8(%rsp)
	leaq	2704(%rsp), %r13
	movdqa	.LC336(%rip), %xmm1
	movq	%rbp, 16(%rsp)
	movq	%r13, %r12
	xorl	%ecx, %ecx
	movq	%r9, %rbx
	movq	%rdi, 24(%rsp)
	movq	%r13, (%rsp)
	movq	%r13, 32(%rsp)
	movq	%rbp, %r13
.L21661:

	movq	%rcx, %rsi
	movq	56(%rsp), %rax
	movq	40(%rsp), %rdx
	movq	%r12, %rdi
	salq	$11, %rsi
	movq	%rcx, 72(%rsp)
	addq	%rax, %rsi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	cmpq	$1, %rbx
	movq	72(%rsp), %rcx
	je	.L21659
	movl	$1, %ebp
	movq	%rcx, 72(%rsp)
	leaq	144(%rsp), %r15
	leaq	0(,%rcx,4), %r14
	movq	%r13, 112(%rsp)
	movl	%ebp, %r13d
	movq	%r15, %rbp
	movq	%r12, %r15
	movq	40(%rsp), %r12
	movl	$1, %eax
.L21658:

	movq	56(%rsp), %rdi
	movq	%rax, %rdx
	addq	%r14, %rax
	salq	$9, %rax
	salq	$9, %rdx
	leaq	(%rdi,%rax), %rsi
	addq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L21657:

	movdqa	0(%rbp,%rax), %xmm0
	paddw	(%r15,%rax), %xmm0
	movaps	%xmm0, (%r15,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L21657
	leal	1(%r13), %eax
	movq	%rax, %r13
	cmpq	%rbx, %rax
	jb	.L21658
	movq	72(%rsp), %rcx
	movq	112(%rsp), %r13
	movq	%r15, %r12
.L21659:

	movq	%r12, %rax
	.p2align 4,,10
	.p2align 3
.L21656:

	movdqa	(%rax), %xmm8
	addq	$16, %rax
	movdqa	%xmm8, %xmm7
	movdqa	%xmm8, %xmm9
	pmullw	%xmm4, %xmm7
	pmulhw	%xmm4, %xmm9
	movdqa	%xmm7, %xmm0
	punpckhwd	%xmm9, %xmm7
	punpcklwd	%xmm9, %xmm0
	paddd	%xmm5, %xmm7
	paddd	%xmm5, %xmm0
	psrad	$26, %xmm7
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm9
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm9
	movdqa	%xmm0, %xmm7
	punpckhwd	%xmm9, %xmm7
	punpcklwd	%xmm9, %xmm0
	punpcklwd	%xmm7, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm8
	movaps	%xmm8, -16(%rax)
	cmpq	%r13, %rax
	jne	.L21656
	movq	%r12, %rax
	.p2align 4,,10
	.p2align 3
.L21660:

	movdqa	(%rax), %xmm9
	movdqa	%xmm1, %xmm0
	pmulhw	(%rax), %xmm0
	addq	$16, %rax
	pmullw	%xmm1, %xmm9
	movdqa	%xmm9, %xmm10
	punpckhwd	%xmm0, %xmm9
	punpcklwd	%xmm0, %xmm10
	movdqa	%xmm10, %xmm0
	movdqa	%xmm10, %xmm7
	punpcklwd	%xmm9, %xmm0
	punpckhwd	%xmm9, %xmm7
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm8, %xmm0
	pmullw	%xmm3, %xmm0
	movdqa	%xmm0, %xmm8
	movdqa	%xmm0, %xmm7
	pmulhw	%xmm2, %xmm7
	pmullw	%xmm2, %xmm8
	movdqa	%xmm8, %xmm0
	punpckhwd	%xmm7, %xmm8
	punpcklwd	%xmm7, %xmm0
	movdqa	%xmm8, %xmm7
	paddd	%xmm10, %xmm0
	paddd	%xmm9, %xmm7
	psrad	$16, %xmm7
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm7, %xmm0
	punpckhwd	%xmm7, %xmm8
	movdqa	%xmm0, %xmm7
	punpckhwd	%xmm8, %xmm7
	punpcklwd	%xmm8, %xmm0
	punpcklwd	%xmm7, %xmm0
	movaps	%xmm0, -16(%rax)
	cmpq	%r13, %rax
	jne	.L21660
	addq	$1, %rcx
	addq	$512, %r12
	leaq	512(%rax), %r13
	cmpq	%rbx, %rcx
	jb	.L21661
	movq	32(%rsp), %r13
	movq	%rbx, %r9
	movq	(%rsp), %rdi
	xorl	%esi, %esi
	movq	8(%rsp), %rdx
	movq	16(%rsp), %rbp
	movq	24(%rsp), %rbx
	movq	%r13, %rcx
.L21662:

	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L21663:

	movdqa	(%rbx,%rax), %xmm0
	paddw	(%rcx,%rax), %xmm0
	movaps	%xmm0, (%rcx,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L21663
	addq	$1, %rsi
	addq	$512, %rcx
	addq	$512, %rbx
	cmpq	%r9, %rsi
	jb	.L21662
	movq	%r13, %rsi
	xorl	%ecx, %ecx
.L21664:

	movq	%rsi, %rax
	.p2align 4,,10
	.p2align 3
.L21665:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm4, %xmm1
	pmulhw	%xmm4, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm5, %xmm1
	paddd	%xmm5, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rbp, %rax
	jne	.L21665
	addq	$1, %rcx
	addq	$512, %rsi
	leaq	512(%rax), %rbp
	cmpq	%r9, %rcx
	jb	.L21664
	movq	96(%rsp), %r10
	xorl	%r11d, %r11d
	addq	$384, %r10
.L21667:

	leaq	-384(%r10), %rsi
	movq	%rdx, %r8
	.p2align 4,,10
	.p2align 3
.L21668:

	movzwl	(%r8), %eax
	movzwl	2(%r8), %r9d
	addq	$3, %rsi
	addq	$4, %r8
	movl	%eax, %ecx
	sarw	$15, %cx
	andw	$3329, %cx
	addl	%eax, %ecx
	movl	%r9d, %eax
	sarw	$15, %ax
	movb	%cl, -3(%rsi)
	andw	$3329, %ax
	addl	%r9d, %eax
	movl	%eax, %ebx
	shrw	$4, %ax
	sall	$4, %ebx
	movb	%al, -1(%rsi)
	orb	%ch, %bl
	movb	%bl, -2(%rsi)
	cmpq	%r10, %rsi
	jne	.L21668
	movq	64(%rsp), %rax
	addq	$1, %r11
	addq	$512, %rdx
	leaq	384(%rsi), %r10
	movq	(%rax), %rax
	cmpq	%rax, %r11
	jb	.L21667
	testq	%rax, %rax
	je	.L21616
	movq	80(%rsp), %rax
	xorl	%r10d, %r10d
	leaq	384(%rax), %r8
.L21670:

	leaq	-384(%r8), %rcx
	movq	%rdi, %rsi
	.p2align 4,,10
	.p2align 3
.L21669:

	movzwl	(%rsi), %eax
	movzwl	2(%rsi), %r9d
	addq	$3, %rcx
	addq	$4, %rsi
	movl	%eax, %edx
	sarw	$15, %dx
	andw	$3329, %dx
	addl	%eax, %edx
	movl	%r9d, %eax
	sarw	$15, %ax
	movb	%dl, -3(%rcx)
	andw	$3329, %ax
	addl	%r9d, %eax
	movl	%eax, %ebx
	shrw	$4, %ax
	sall	$4, %ebx
	movb	%al, -1(%rcx)
	orb	%dh, %bl
	movb	%bl, -2(%rcx)
	cmpq	%r8, %rcx
	jne	.L21669
	movq	64(%rsp), %rax
	addq	$1, %r10
	addq	$512, %rdi
	addq	$384, %r8
	cmpq	(%rax), %r10
	jb	.L21670
.L21616:

	movq	64(%rsp), %rdi
	movq	80(%rsp), %rax
	movl	$64, %esi
	movdqa	15088(%rsp), %xmm5
	movdqa	15104(%rsp), %xmm6
	addq	24(%rdi), %rax
	movq	88(%rsp), %rdi
	movups	%xmm5, (%rax)
	movups	%xmm6, 16(%rax)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	104(%rsp), %rdi
	movl	$33, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	56(%rsp), %rdi
	movl	$8192, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	48(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$2048, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	40(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	15672(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21769
	addq	$15688, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21768:

	.cfi_restore_state
	movq	48(%rsp), %r8
	xorl	%ebp, %ebp
	movq	%rbp, %r14
	movq	%r8, %rdi
	movq	%r8, %r13
.L21654:

	movl	$7, %eax
	movq	%r9, 112(%rsp)
	movl	$-758, %ebx
	movl	$1, %ebp
	movq	%rdx, 120(%rsp)
	movl	$128, %r12d
	movq	%rdi, 128(%rsp)
	movq	%rcx, 136(%rsp)
	movl	%eax, 72(%rsp)
	.p2align 4,,10
	.p2align 3
.L21644:

	leal	1(%r12), %eax
	movl	%r12d, %ecx
	leal	-1(%r12), %r11d
	xorl	%esi, %esi
	movl	%eax, (%rsp)
	leaq	(%rcx,%r14), %rax
	movl	%r12d, %ecx
	movq	%rax, 8(%rsp)
	movl	%r12d, %eax
	shrl	$3, %ecx
	andl	$-8, %eax
	salq	$4, %rcx
	movl	%eax, 24(%rsp)
	movl	%r12d, %eax
	andl	$7, %eax
	movq	%rcx, 16(%rsp)
	movl	%eax, 32(%rsp)
	.p2align 4,,10
	.p2align 3
.L21653:

	leal	1(%rsi), %eax
	leal	(%r12,%rsi), %edi
	addl	$1, %ebp
	movswl	%bx, %r8d
	cmpl	%eax, %edi
	movl	%esi, %eax
	setnb	%r10b
	cmpl	$6, %r11d
	jbe	.L21645
	testb	%r10b, %r10b
	je	.L21645
	movq	8(%rsp), %rcx
	leaq	(%r14,%rax), %rdx
	addq	%rdx, %rdx
	leaq	8(%rax,%rcx), %r9
	leaq	16(%rdx), %r15
	addq	%r9, %r9
	leaq	-16(%r9), %rcx
	cmpq	%r15, %rcx
	jge	.L21684
	cmpq	%r9, %rdx
	jge	.L21684
.L21645:

	movl	%edi, %edx
	subq	%rax, %rdx
	leaq	0(%r13,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L21649:

	movswl	(%rcx,%rax,2), %r9d
	imull	%r8d, %r9d
	imulw	$-3327, %r9w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r9d, %edx
	movzwl	0(%r13,%rax,2), %r9d
	sarl	$16, %edx
	subl	%edx, %r9d
	movw	%r9w, (%rcx,%rax,2)
	addw	%dx, 0(%r13,%rax,2)
	addq	$1, %rax
	cmpl	%edi, %eax
	jb	.L21649
.L21650:

	movl	(%rsp), %eax
	addl	%eax, %esi
	xorl	%eax, %eax
	testb	%r10b, %r10b
	cmovne	%r11d, %eax
	addl	%eax, %esi
	cmpl	$255, %esi
	ja	.L21770
	movl	%ebp, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rdi
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rdi
	movzwl	(%rdi,%rax,2), %ebx
	jmp	.L21653
	.p2align 4,,10
	.p2align 3
.L21684:

	movq	48(%rsp), %rax
	movd	%ebx, %xmm8
	punpcklwd	%xmm8, %xmm8
	addq	%rax, %rdx
	addq	%rax, %rcx
	movq	16(%rsp), %rax
	pshufd	$0, %xmm8, %xmm8
	addq	%rdx, %rax
	.p2align 4,,10
	.p2align 3
.L21647:

	movdqu	(%rcx), %xmm9
	movdqu	(%rcx), %xmm0
	addq	$16, %rdx
	addq	$16, %rcx
	pmullw	%xmm8, %xmm9
	pmulhw	%xmm8, %xmm0
	movdqa	%xmm9, %xmm10
	punpckhwd	%xmm0, %xmm9
	punpcklwd	%xmm0, %xmm10
	movdqa	%xmm10, %xmm0
	movdqa	%xmm10, %xmm1
	punpcklwd	%xmm9, %xmm0
	punpckhwd	%xmm9, %xmm1
	movdqa	%xmm0, %xmm7
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm7
	punpcklwd	%xmm7, %xmm0
	pmullw	%xmm3, %xmm0
	movdqa	%xmm0, %xmm7
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm2, %xmm1
	pmullw	%xmm2, %xmm7
	movdqa	%xmm7, %xmm0
	punpckhwd	%xmm1, %xmm7
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm7, %xmm1
	paddd	%xmm10, %xmm0
	paddd	%xmm9, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm7
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm7
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm7, %xmm1
	punpcklwd	%xmm7, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rax, %rdx
	jne	.L21647
	movl	24(%rsp), %eax
	leal	(%rax,%rsi), %edx
	movl	32(%rsp), %eax
	testl	%eax, %eax
	je	.L21650
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rax,2), %r9
	movl	%edx, %eax
	movswl	(%r9), %ebx
	leaq	0(%r13,%rax,2), %rcx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21650
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21650
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21650
	leal	(%rax,%r12), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21650
	leal	(%r12,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%edi, %eax
	jnb	.L21650
	leal	(%r12,%rax), %ecx
	addl	$6, %edx
	leaq	0(%r13,%rcx,2), %r9
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r9), %ebx
	imull	%r8d, %ebx
	imulw	$-3327, %bx, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebx, %eax
	movzwl	(%rcx), %ebx
	sarl	$16, %eax
	subl	%eax, %ebx
	movw	%bx, (%r9)
	addw	%ax, (%rcx)
	cmpl	%edi, %edx
	jnb	.L21650
	leal	(%r12,%rdx), %eax
	leaq	0(%r13,%rdx,2), %rdx
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%rcx), %edi
	imull	%r8d, %edi
	imulw	$-3327, %di, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%edi, %eax
	movzwl	(%rdx), %edi
	sarl	$16, %eax
	subl	%eax, %edi
	movw	%di, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L21650
	.p2align 4,,10
	.p2align 3
.L21770:

	shrl	%r12d
	subl	$1, 72(%rsp)
	je	.L21679
	movl	%ebp, %ecx
# WAS leaq	ml_kem_zetas_ref(%rip), %rax
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rax
	movzwl	(%rax,%rcx,2), %ebx
	jmp	.L21644
.L21679:

	movq	112(%rsp), %r9
	movq	120(%rsp), %rdx
	movq	%r13, %rax
	leaq	512(%r13), %rsi
	movq	128(%rsp), %rdi
	movq	136(%rsp), %rcx
	.p2align 4,,10
	.p2align 3
.L21652:

	movdqa	(%rax), %xmm7
	addq	$16, %rax
	movdqa	%xmm7, %xmm1
	movdqa	%xmm7, %xmm8
	pmullw	%xmm4, %xmm1
	pmulhw	%xmm4, %xmm8
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	paddd	%xmm5, %xmm1
	paddd	%xmm5, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm8
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm8
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm8, %xmm1
	punpcklwd	%xmm8, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm6, %xmm0
	psubw	%xmm0, %xmm7
	movaps	%xmm7, -16(%rax)
	cmpq	%rsi, %rax
	jne	.L21652
	addq	$256, %r14
	cmpq	%rcx, %r14
	je	.L21771
	movq	%rax, %r13
	jmp	.L21654
.L21763:

	leaq	4752(%rsp), %rax
	leaq	15152(%rsp), %r12
	movq	%rax, 40(%rsp)
	leaq	6800(%rsp), %rax
	movq	%rax, 56(%rsp)
	jmp	.L21631
.L21762:

	leaq	656(%rsp), %rax
	leaq	2704(%rsp), %r13
	movq	%rax, 48(%rsp)
	jmp	.L21616
.L21769:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2475:

	.size	ml_kem_indcpa_keypair_derand_ref, .-ml_kem_indcpa_keypair_derand_ref
# WAS .section	.text.ml_kem_indcpa_enc_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_indcpa_enc_ref
	.hidden	ml_kem_indcpa_enc_ref
	.type	ml_kem_indcpa_enc_ref, @function
.Lml_kem_indcpa_enc_ref_local_target:
ml_kem_indcpa_enc_ref:
.LFB2476:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	-16384(%rsp), %r11
	.cfi_def_cfa 11, 16440
.LPSRL0:

	subq	$4096, %rsp
	orq	$0, (%rsp)
	cmpq	%r11, %rsp
	jne	.LPSRL0
	.cfi_def_cfa_register 7
	subq	$2808, %rsp
	.cfi_def_cfa_offset 19248
	movq	%rdi, 48(%rsp)
	movq	%rdi, %rbx
	movq	%rdx, %r11
	movq	%rcx, %rdi
	movq	%rsi, 104(%rsp)
	movq	%r8, %r15
	movq	%fs:40, %rax
	movq	%rax, 19176(%rsp)
	movq	(%rbx), %rax
	testq	%rax, %rax
	je	.L21919
	leaq	4240(%rsp), %rsi
	movq	%rax, %r10
	movq	%rcx, %rbx
	movq	%rsi, 88(%rsp)
	salq	$9, %r10
	movq	%rsi, %r8
	leaq	384(%rcx), %r9
	addq	%rsi, %r10
.L21776:

	movq	%r8, %rbp
	movq	%rbx, %rcx
	.p2align 4,,10
	.p2align 3
.L21775:

	movzbl	1(%rcx), %edx
	movzbl	(%rcx), %esi
	addq	$3, %rcx
	addq	$4, %rbp
	movl	%edx, %r12d
	shrb	$4, %dl
	sall	$8, %r12d
	movzbl	%dl, %edx
	orl	%r12d, %esi
	andw	$4095, %si
	movw	%si, -4(%rbp)
	movzbl	-1(%rcx), %esi
	sall	$4, %esi
	orl	%esi, %edx
	movw	%dx, -2(%rbp)
	cmpq	%rcx, %r9
	jne	.L21775
	addq	$512, %r8
	addq	$384, %rbx
	addq	$384, %r9
	cmpq	%r8, %r10
	jne	.L21776
.L21777:

	movq	48(%rsp), %rbx
	leaq	656(%rsp), %rbp
	leaq	1168(%rsp), %r14
	movq	%rbp, 72(%rsp)
	movq	24(%rbx), %rdx
	movq	%rbp, 96(%rsp)
	movdqu	(%rdi,%rdx), %xmm5
	movaps	%xmm5, 18576(%rsp)
	movdqu	16(%rdi,%rdx), %xmm5
	movaps	%xmm5, 18592(%rsp)
.L21774:

	movzbl	(%r11), %edx
	movl	%edx, %r12d
	movl	%edx, %ebx
	movl	%edx, %edi
	movl	%edx, %r9d
	movl	%edx, %esi
	movl	%edx, %r8d
	movl	%edx, %ecx
	sarl	%ebx
	sarl	$2, %edi
	sarl	$3, %r9d
	movq	%r12, %r10
	andl	$1, %ebx
	sarl	$4, %esi
	sarl	$5, %r8d
	andl	$1, %r10d
	andl	$1, %edi
	sarl	$6, %ecx
	shrb	$7, %dl
	andl	$1, %r9d
	andl	$1, %esi
	andl	$1, %r8d
	andl	$1, %ecx
	salq	$63, %rdx
	negq	%r10
	negq	%rbx
	negq	%rdi
	negq	%r9
	negq	%rsi
	negq	%r8
	negq	%rcx
	sarq	$63, %rdx
	andl	$1665, %r10d
	andl	$1665, %ebx
	andl	$1665, %edi
	andl	$1665, %esi
	andl	$1665, %ecx
	andl	$1665, %edx
	movd	%edi, %xmm3
	movd	%esi, %xmm1
	addq	$16, %rbp
	andl	$1665, %r9d
	movd	%r10d, %xmm0
	movd	%ecx, %xmm2
	addq	$1, %r11
	pinsrw	$1, %ebx, %xmm0
	pinsrw	$1, %r9d, %xmm3
	pinsrw	$1, %edx, %xmm2
	andl	$1665, %r8d
	pinsrw	$1, %r8d, %xmm1
	punpckldq	%xmm3, %xmm0
	punpckldq	%xmm2, %xmm1
	punpcklqdq	%xmm1, %xmm0
	movaps	%xmm0, -16(%rbp)
	cmpq	%r14, %rbp
	jne	.L21774
	testq	%rax, %rax
	je	.L21920
	leaq	8336(%rsp), %rbx
	movq	%r15, 40(%rsp)
	leaq	10384(%rsp), %rdi
	movl	$3, %r13d
	movq	%rbx, 80(%rsp)
	xorl	%ebp, %ebp
	xorl	%eax, %eax
	leaq	18656(%rsp), %r12
	movq	%rdi, 64(%rsp)
	leaq	19160(%rsp), %r11
	subl	%r12d, %r13d
	leaq	18608(%rsp), %r9
	movq	%r14, 56(%rsp)
	movq	%r11, %r14
.L21778:

	movb	%al, 36(%rsp)
	salq	$11, %rbp
	xorl	%ecx, %ecx
	movl	%eax, 112(%rsp)
	movq	%r9, 8(%rsp)
	movq	%rbp, 24(%rsp)
	xorl	%ebp, %ebp
	.p2align 4,,10
	.p2align 3
.L21787:

	movzbl	36(%rsp), %eax
	movl	$168, %esi
	movq	%rbx, %rdi
	movl	%ecx, (%rsp)
	movdqa	18576(%rsp), %xmm5
	movb	%cl, 18641(%rsp)
	salq	$9, %rbp
	xorl	%r15d, %r15d
	movb	%al, 18640(%rsp)
	movaps	%xmm5, 18608(%rsp)
	movdqa	18592(%rsp), %xmm5
	movaps	%xmm5, 18624(%rsp)
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movq	8(%rsp), %rsi
	movl	$34, %edx
	movq	%rbx, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movq	%rbx, %rsi
	movl	$504, %edx
	movq	%r12, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movq	24(%rsp), %rax
	movl	(%rsp), %ecx
	movq	%r12, %rsi
	leaq	0(%rbp,%rax), %r10
	movq	64(%rsp), %rax
	leaq	(%rax,%r10), %rbp
	jmp	.L21785
	.p2align 4,,10
	.p2align 3
.L21922:

	leal	1(%r15), %edi
	movw	%dx, 0(%rbp,%r15,2)
	cmpl	$255, %edi
	ja	.L21839
	cmpw	$3328, %ax
	ja	.L21839
.L21834:

	leal	1(%rdi), %r15d
	movw	%ax, 0(%rbp,%rdi,2)
	cmpl	$256, %r15d
	je	.L21784
.L21835:

	addq	$3, %rsi
	cmpq	%rsi, %r14
	je	.L21921
.L21785:

	movzbl	1(%rsi), %eax
	movzbl	(%rsi), %edx
	movl	%eax, %edi
	shrb	$4, %al
	sall	$8, %edi
	movzbl	%al, %eax
	orl	%edi, %edx
	movzbl	2(%rsi), %edi
	andw	$4095, %dx
	sall	$4, %edi
	orl	%edi, %eax
	cmpw	$3328, %dx
	jle	.L21922
	cmpw	$3328, %ax
	ja	.L21835
	movl	%r15d, %edi
	jmp	.L21834
	.p2align 4,,10
	.p2align 3
.L21839:

	movl	%edi, %r15d
	cmpl	$256, %r15d
	jne	.L21835
	.p2align 4,,10
	.p2align 3
.L21784:

	movq	48(%rsp), %rax
	leal	1(%rcx), %ebp
	movq	%rbp, %rcx
	movq	(%rax), %rsi
	cmpq	%rsi, %rbp
	jb	.L21787
	movl	112(%rsp), %eax
	movq	8(%rsp), %r9
	leal	1(%rax), %ebp
	movq	%rbp, %rax
	cmpq	%rsi, %rbp
	jb	.L21778
	movq	40(%rsp), %r15
	movq	56(%rsp), %r14
	jmp	.L21796
	.p2align 4,,10
	.p2align 3
.L21921:

	movl	%ecx, (%rsp)
	movl	$504, %r8d
	movq	%r14, 16(%rsp)
	movl	%r15d, %r14d
	.p2align 4,,10
	.p2align 3
.L21786:

	movl	$2863311531, %eax
	movl	%r8d, %ecx
	movl	%r8d, %r15d
	imulq	%rax, %rcx
	shrq	$33, %rcx
	leal	(%rcx,%rcx,2), %eax
	subl	%eax, %r15d
	je	.L21792
	subl	%r15d, %r8d
	movl	%r8d, %eax
	movzbl	18656(%rsp,%rax), %eax
	movb	%al, 18656(%rsp)
	cmpl	$2, %r15d
	jne	.L21792
	leal	1(%r8), %eax
	movzbl	18656(%rsp,%rax), %eax
	movb	%al, 18657(%rsp)
.L21792:

	movl	%r15d, %edi
	movq	%rbx, %rsi
	movl	$168, %edx
	addq	%r12, %rdi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	movl	$256, %edi
	movl	%r14d, %eax
	movq	%r12, %rcx
	leal	168(%r15), %r8d
	subl	%r14d, %edi
	leaq	0(%rbp,%rax,2), %r10
	xorl	%esi, %esi
	jmp	.L21790
	.p2align 4,,10
	.p2align 3
.L21923:

	cmpw	$3328, %ax
	ja	.L21794
	movl	%esi, %edx
	addl	$1, %esi
	movw	%ax, (%r10,%rdx,2)
.L21794:

	cmpl	%edi, %esi
	jnb	.L21795
	addq	$3, %rcx
	leal	0(%r13,%rcx), %eax
	cmpl	%eax, %r8d
	jb	.L21795
.L21790:

	movzbl	1(%rcx), %eax
	movzbl	(%rcx), %edx
	movl	%eax, %r9d
	shrb	$4, %al
	sall	$8, %r9d
	movzbl	%al, %eax
	orl	%r9d, %edx
	movzbl	2(%rcx), %r9d
	andw	$4095, %dx
	sall	$4, %r9d
	orl	%r9d, %eax
	cmpw	$3328, %dx
	jg	.L21793
	movl	%esi, %r9d
	addl	$1, %esi
	movw	%dx, (%r10,%r9,2)
.L21793:

	cmpl	%edi, %esi
	jb	.L21923
.L21795:

	addl	%esi, %r14d
	cmpl	$255, %r14d
	jbe	.L21786
	movl	(%rsp), %ecx
	movq	16(%rsp), %r14
	jmp	.L21784
.L21919:

	leaq	4240(%rsp), %rbx
	movq	%rbx, 88(%rsp)
	jmp	.L21777
.L21920:

	leaq	8336(%rsp), %rax
	leaq	18656(%rsp), %r12
	movq	%rax, 80(%rsp)
	leaq	10384(%rsp), %rax
	leaq	18608(%rsp), %r9
	movq	%rax, 64(%rsp)
.L21796:

	movl	$506, %esi
	movq	%r12, %rdi
	movq	%r9, (%rsp)
	xorl	%r13d, %r13d
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	2192(%rsp), %rax
	xorl	%ebp, %ebp
	movq	(%rsp), %r9
	movq	%rax, 16(%rsp)
	movq	48(%rsp), %rax
	cmpq	$0, (%rax)
	je	.L21918
	movq	%r9, %rbx
.L21779:

	movdqu	(%r15), %xmm5
	movl	$192, %ecx
	movq	%r12, %rdx
	movq	%rbx, %rdi
	movl	$33, %esi
	movb	%r13b, (%rsp)
	movaps	%xmm5, (%rbx)
	movdqu	16(%r15), %xmm5
	movaps	%xmm5, 16(%rbx)
	movb	%r13b, 18640(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	16(%rsp), %rax
	movq	%rbp, %rsi
	movq	%r12, %rdx
	movq	48(%rsp), %r11
	salq	$9, %rsi
	leal	1(%r13), %ebp
	addq	%rax, %rsi
	movq	%rbp, %r13
	movq	%r11, %rdi
# WAS call	ml_kem_poly_cbd_eta1_ref
	call	.Lml_kem_poly_cbd_eta1_ref_local_target
	movq	(%r11), %rax
	cmpq	%rax, %rbp
	jb	.L21779
	movzbl	(%rsp), %ebp
	movq	%rbx, %r9
	addl	$1, %ebp
	testq	%rax, %rax
	je	.L21918
	xorl	%r10d, %r10d
	movq	%r14, (%rsp)
	movq	%r15, %r8
	xorl	%r13d, %r13d
	leaq	6288(%rsp), %rbx
	movq	%r9, %r15
	movl	%r10d, %r14d
.L21797:

	movdqu	(%r8), %xmm5
	movl	%ebp, %eax
	movl	$128, %ecx
	movq	%r12, %rdx
	movl	$33, %esi
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
	addl	$1, %ebp
	movaps	%xmm5, (%r15)
	movdqu	16(%r8), %xmm5
	movaps	%xmm5, 16(%r15)
	movb	%al, 18640(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	%r13, %rdi
	movq	%r12, %rsi
	leal	1(%r14), %r13d
	salq	$9, %rdi
	movq	%r13, %r14
	addq	%rbx, %rdi
# WAS call	cbd2
	call	.Lcbd2_local_target
	movq	48(%rsp), %rax
	movq	8(%rsp), %r8
	cmpq	(%rax), %r13
	jb	.L21797
	movq	(%rsp), %r14
	movq	%r15, %r9
	movq	%r8, %r15
.L21780:

	movdqu	(%r15), %xmm5
	movq	%r12, %rdx
	movl	$128, %ecx
	movq	%r9, %rdi
	movl	$33, %esi
	movb	%bpl, 18640(%rsp)
	movaps	%xmm5, 18608(%rsp)
	movdqu	16(%r15), %xmm5
	movaps	%xmm5, 18624(%rsp)
# WAS call	SHAKE256@PLT
	call	.LSHAKE256_local_target
	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	cbd2
	call	.Lcbd2_local_target
	movq	48(%rsp), %rax
	movq	(%rax), %r12
	testq	%r12, %r12
	je	.L21798
	movq	16(%rsp), %r15
	movq	%r12, %rdx
	movq	%r12, %rdi
	movq	%r14, %r8
	movq	$0, (%rsp)
	salq	$8, %rdx
	movdqa	.LC309(%rip), %xmm12
	movdqa	.LC310(%rip), %xmm11
	movdqa	.LC307(%rip), %xmm5
	movq	%r15, %r13
	movdqa	.LC311(%rip), %xmm13
	movdqa	.LC308(%rip), %xmm4
.L21809:

	movq	%rdi, 112(%rsp)
	movl	$7, %eax
	movl	$-758, %ebp
	movl	$1, %r12d
	movq	%rdx, 120(%rsp)
	movl	$128, %esi
	movq	%r8, 128(%rsp)
	movq	%rbx, 136(%rsp)
.L21799:

	movq	(%rsp), %rdx
	movl	%esi, %ecx
	movl	%eax, 56(%rsp)
	xorl	%edi, %edi
	leal	-1(%rsi), %ebx
	leal	1(%rsi), %r15d
	addq	%rdx, %rcx
	movq	%rcx, 8(%rsp)
	movl	%esi, %ecx
	shrl	$3, %ecx
	salq	$4, %rcx
	movq	%rcx, 24(%rsp)
	movl	%esi, %ecx
	andl	$-8, %ecx
	movl	%ecx, 36(%rsp)
	movl	%esi, %ecx
	andl	$7, %ecx
	movl	%ecx, 40(%rsp)
	.p2align 4,,10
	.p2align 3
.L21808:

	leal	1(%rdi), %eax
	leal	(%rsi,%rdi), %r8d
	addl	$1, %r12d
	movswl	%bp, %r9d
	cmpl	%eax, %r8d
	movl	%edi, %eax
	setnb	%r11b
	cmpl	$6, %ebx
	jbe	.L21800
	testb	%r11b, %r11b
	je	.L21800
	movq	8(%rsp), %rcx
	leaq	8(%rax,%rcx), %r10
	movq	(%rsp), %rcx
	addq	%r10, %r10
	leaq	(%rcx,%rax), %rdx
	leaq	-16(%r10), %rcx
	addq	%rdx, %rdx
	leaq	16(%rdx), %r14
	cmpq	%r14, %rcx
	jge	.L21845
	cmpq	%r10, %rdx
	jge	.L21845
.L21800:

	movl	%r8d, %edx
	subq	%rax, %rdx
	leaq	0(%r13,%rdx,2), %rcx
	.p2align 4,,10
	.p2align 3
.L21804:

	movswl	(%rcx,%rax,2), %r10d
	imull	%r9d, %r10d
	imulw	$-3327, %r10w, %dx
	movswl	%dx, %edx
	imull	$-3329, %edx, %edx
	addl	%r10d, %edx
	movzwl	0(%r13,%rax,2), %r10d
	sarl	$16, %edx
	subl	%edx, %r10d
	movw	%r10w, (%rcx,%rax,2)
	addw	%dx, 0(%r13,%rax,2)
	addq	$1, %rax
	cmpl	%r8d, %eax
	jb	.L21804
.L21805:

	addl	%r15d, %edi
	xorl	%eax, %eax
	testb	%r11b, %r11b
	cmovne	%ebx, %eax
	addl	%eax, %edi
	cmpl	$255, %edi
	ja	.L21924
	movl	%r12d, %eax
# WAS leaq	ml_kem_zetas_ref(%rip), %rcx
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rcx
	movzwl	(%rcx,%rax,2), %ebp
	jmp	.L21808
	.p2align 4,,10
	.p2align 3
.L21845:

	movq	16(%rsp), %rax
	movd	%ebp, %xmm3
	punpcklwd	%xmm3, %xmm3
	addq	%rax, %rdx
	addq	%rax, %rcx
	movq	24(%rsp), %rax
	pshufd	$0, %xmm3, %xmm3
	addq	%rdx, %rax
	.p2align 4,,10
	.p2align 3
.L21802:

	movdqu	(%rcx), %xmm6
	movdqu	(%rcx), %xmm0
	addq	$16, %rdx
	addq	$16, %rcx
	pmullw	%xmm3, %xmm6
	pmulhw	%xmm3, %xmm0
	movdqa	%xmm6, %xmm7
	punpckhwd	%xmm0, %xmm6
	punpcklwd	%xmm0, %xmm7
	movdqa	%xmm7, %xmm0
	movdqa	%xmm7, %xmm1
	punpcklwd	%xmm6, %xmm0
	punpckhwd	%xmm6, %xmm1
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm2, %xmm0
	pmullw	%xmm5, %xmm0
	movdqa	%xmm0, %xmm2
	movdqa	%xmm0, %xmm1
	pmulhw	%xmm4, %xmm1
	pmullw	%xmm4, %xmm2
	movdqa	%xmm2, %xmm0
	punpckhwd	%xmm1, %xmm2
	punpcklwd	%xmm1, %xmm0
	movdqa	%xmm2, %xmm1
	paddd	%xmm7, %xmm0
	paddd	%xmm6, %xmm1
	psrad	$16, %xmm1
	psrad	$16, %xmm0
	movdqa	%xmm0, %xmm2
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm2
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm2, %xmm1
	punpcklwd	%xmm2, %xmm0
	punpcklwd	%xmm1, %xmm0
	movdqu	-16(%rdx), %xmm1
	psubw	%xmm0, %xmm1
	movups	%xmm1, -16(%rcx)
	movdqu	-16(%rdx), %xmm7
	paddw	%xmm7, %xmm0
	movups	%xmm0, -16(%rdx)
	cmpq	%rax, %rdx
	jne	.L21802
	movl	36(%rsp), %eax
	leal	(%rax,%rdi), %edx
	movl	40(%rsp), %eax
	testl	%eax, %eax
	je	.L21805
	leal	(%rsi,%rdx), %eax
	leaq	0(%r13,%rax,2), %r10
	movl	%edx, %eax
	movswl	(%r10), %ebp
	leaq	0(%r13,%rax,2), %rcx
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	leal	1(%rdx), %eax
	cmpl	%r8d, %eax
	jnb	.L21805
	leal	(%rax,%rsi), %ecx
	leaq	0(%r13,%rcx,2), %r10
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r10), %ebp
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	leal	2(%rdx), %eax
	cmpl	%r8d, %eax
	jnb	.L21805
	leal	(%rsi,%rax), %ecx
	leaq	0(%r13,%rcx,2), %r10
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r10), %ebp
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	leal	3(%rdx), %eax
	cmpl	%r8d, %eax
	jnb	.L21805
	leal	(%rax,%rsi), %ecx
	leaq	0(%r13,%rcx,2), %r10
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r10), %ebp
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	leal	4(%rdx), %eax
	cmpl	%r8d, %eax
	jnb	.L21805
	leal	(%rax,%rsi), %ecx
	leaq	0(%r13,%rcx,2), %r10
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r10), %ebp
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	leal	5(%rdx), %eax
	cmpl	%r8d, %eax
	jnb	.L21805
	leal	(%rsi,%rax), %ecx
	addl	$6, %edx
	leaq	0(%r13,%rcx,2), %r10
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%r10), %ebp
	imull	%r9d, %ebp
	imulw	$-3327, %bp, %ax
	cwtl
	imull	$-3329, %eax, %eax
	addl	%ebp, %eax
	movzwl	(%rcx), %ebp
	sarl	$16, %eax
	subl	%eax, %ebp
	movw	%bp, (%r10)
	addw	%ax, (%rcx)
	cmpl	%r8d, %edx
	jnb	.L21805
	leal	(%rsi,%rdx), %eax
	leaq	0(%r13,%rdx,2), %rdx
	leaq	0(%r13,%rax,2), %rcx
	movswl	(%rcx), %eax
	imull	%r9d, %eax
	imulw	$-3327, %ax, %r8w
	movswl	%r8w, %r8d
	imull	$-3329, %r8d, %r8d
	addl	%r8d, %eax
	movzwl	(%rdx), %r8d
	sarl	$16, %eax
	subl	%eax, %r8d
	movw	%r8w, (%rcx)
	addw	%ax, (%rdx)
	jmp	.L21805
.L21924:

	movl	56(%rsp), %eax
	shrl	%esi
	subl	$1, %eax
	je	.L21840
	movl	%r12d, %ecx
# WAS leaq	ml_kem_zetas_ref(%rip), %rbx
	leaq	.Lml_kem_zetas_ref_local_target(%rip), %rbx
	movzwl	(%rbx,%rcx,2), %ebp
	jmp	.L21799
.L21840:

	movq	112(%rsp), %rdi
	movq	120(%rsp), %rdx
	movq	%r13, %rax
	leaq	512(%r13), %rcx
	movq	128(%rsp), %r8
	movq	136(%rsp), %rbx
	.p2align 4,,10
	.p2align 3
.L21807:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, %rcx
	jne	.L21807
	addq	$256, (%rsp)
	movq	(%rsp), %rax
	cmpq	%rdx, %rax
	je	.L21925
	movq	%rcx, %r13
	jmp	.L21809
.L21925:

	movq	%r8, %r14
	movq	%rbx, 8(%rsp)
	movq	80(%rsp), %r15
	movq	%rdi, %r12
	movq	%r14, (%rsp)
	movq	64(%rsp), %r13
	xorl	%r8d, %r8d
.L21817:

	movq	%r8, %rsi
	movq	16(%rsp), %rdx
	movq	%r15, %rdi
	movq	%r8, 24(%rsp)
	salq	$11, %rsi
	addq	%r13, %rsi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	cmpq	$1, %r12
	movq	24(%rsp), %r8
	je	.L21816
	movq	%r8, 24(%rsp)
	leaq	1680(%rsp), %r14
	movl	$1, %ebp
	leaq	0(,%r8,4), %rbx
	movq	%r14, %rdi
	movl	$1, %eax
	movl	%ebp, %r14d
	movq	%rdi, %rbp
.L21815:

	movq	16(%rsp), %rdi
	movq	%rax, %rdx
	addq	%rbx, %rax
	salq	$9, %rax
	salq	$9, %rdx
	addq	%rdi, %rdx
	leaq	0(%r13,%rax), %rsi
	movq	%rbp, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	xorl	%eax, %eax
	.p2align 4,,10
	.p2align 3
.L21814:

	movdqa	0(%rbp,%rax), %xmm0
	paddw	(%r15,%rax), %xmm0
	movaps	%xmm0, (%r15,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L21814
	leal	1(%r14), %eax
	movq	%rax, %r14
	cmpq	%r12, %rax
	jb	.L21815
	movq	24(%rsp), %r8
.L21816:

	movq	%r15, %rcx
	leaq	512(%r15), %rax
	.p2align 4,,10
	.p2align 3
.L21813:

	movdqa	(%rcx), %xmm2
	addq	$16, %rcx
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rcx)
	cmpq	%rax, %rcx
	jne	.L21813
	addq	$1, %r8
	cmpq	%r8, %r12
	je	.L21926
	movq	%rcx, %r15
	jmp	.L21817
.L21926:

	movq	16(%rsp), %rdx
	leaq	144(%rsp), %rbp
	movq	88(%rsp), %rsi
	leaq	1680(%rsp), %r13
	movq	%rbp, %rdi
	movq	(%rsp), %r14
	movq	8(%rsp), %rbx
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movl	$1, %ecx
	movl	$1, %eax
	cmpq	$1, %r12
	je	.L21811
	movq	%rbx, %rdi
	movq	72(%rsp), %r15
	movl	%ecx, %ebx
	movq	%rdi, %rcx
.L21818:

	movq	16(%rsp), %rdi
	salq	$9, %rax
	movq	%rcx, (%rsp)
	leaq	(%rdi,%rax), %rdx
	movq	88(%rsp), %rdi
	leaq	(%rdi,%rax), %rsi
	movq	%r13, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movq	(%rsp), %rcx
	movq	%rbp, %rax
	movq	%r13, %rdx
	.p2align 4,,10
	.p2align 3
.L21819:

	movdqa	(%rdx), %xmm0
	paddw	(%rax), %xmm0
	addq	$16, %rax
	addq	$16, %rdx
	movaps	%xmm0, -16(%rax)
	cmpq	%rax, %r15
	jne	.L21819
	leal	1(%rbx), %eax
	movq	%rax, %rbx
	cmpq	%r12, %rax
	jb	.L21818
	movq	%rcx, %rbx
.L21811:

	movq	%rbp, %r13
	movq	%rbp, %rax
.L21821:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, 72(%rsp)
	jne	.L21821
	testq	%r12, %r12
	je	.L21822
	xorl	%edx, %edx
	xorl	%eax, %eax
	movl	%edx, %r15d
.L21823:

	movq	80(%rsp), %rdi
	salq	$9, %rax
	addq	%rax, %rdi
# WAS call	ml_kem_invntt_ref
	call	.Lml_kem_invntt_ref_local_target
	leal	1(%r15), %eax
	movq	%rax, %r15
	cmpq	%r12, %rax
	jb	.L21823
	movq	%rbp, %rdi
# WAS call	ml_kem_invntt_ref
	call	.Lml_kem_invntt_ref_local_target
	movq	80(%rsp), %rax
	movq	%r12, %rdi
	movq	%rbx, %rsi
	salq	$9, %rdi
	movq	%rax, %rdx
	addq	%rax, %rdi
.L21826:

	xorl	%eax, %eax
.L21827:

	movdqa	(%rsi,%rax), %xmm0
	paddw	(%rdx,%rax), %xmm0
	movaps	%xmm0, (%rdx,%rax)
	addq	$16, %rax
	cmpq	$512, %rax
	jne	.L21827
	addq	$512, %rdx
	addq	$512, %rsi
	cmpq	%rdx, %rdi
	jne	.L21826
.L21825:

	movq	%r14, %rdx
	movq	%rbp, %rax
.L21828:

	movdqa	(%rdx), %xmm0
	paddw	(%rax), %xmm0
	addq	$16, %rdx
	addq	$16, %rax
	movaps	%xmm0, -16(%rax)
	cmpq	%rax, 72(%rsp)
	jne	.L21828
	movq	96(%rsp), %rdx
	movq	72(%rsp), %rcx
	movq	%rbp, %rax
.L21829:

	movdqa	(%rdx), %xmm0
	paddw	(%rax), %xmm0
	addq	$16, %rax
	addq	$16, %rdx
	movaps	%xmm0, -16(%rax)
	cmpq	%rcx, %rax
	jne	.L21829
	testq	%r12, %r12
	je	.L21915
	movq	80(%rsp), %rax
	movq	%r12, %rdx
	leaq	8848(%rsp), %rsi
	salq	$9, %rdx
	movq	%rax, %rdi
	addq	%rax, %rdx
.L21831:

	movq	%rdi, %rax
.L21832:

	movdqa	(%rax), %xmm2
	addq	$16, %rax
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%rax)
	cmpq	%rax, %rsi
	jne	.L21832
	addq	$512, %rdi
	addq	$512, %rsi
	cmpq	%rdi, %rdx
	jne	.L21831
.L21915:

	movq	72(%rsp), %rax
.L21833:

	movdqa	0(%r13), %xmm2
	addq	$16, %r13
	movdqa	%xmm2, %xmm1
	movdqa	%xmm2, %xmm3
	pmullw	%xmm12, %xmm1
	pmulhw	%xmm12, %xmm3
	movdqa	%xmm1, %xmm0
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	paddd	%xmm11, %xmm1
	paddd	%xmm11, %xmm0
	psrad	$26, %xmm1
	psrad	$26, %xmm0
	movdqa	%xmm0, %xmm3
	punpcklwd	%xmm1, %xmm0
	punpckhwd	%xmm1, %xmm3
	movdqa	%xmm0, %xmm1
	punpckhwd	%xmm3, %xmm1
	punpcklwd	%xmm3, %xmm0
	punpcklwd	%xmm1, %xmm0
	pmullw	%xmm13, %xmm0
	psubw	%xmm0, %xmm2
	movaps	%xmm2, -16(%r13)
	cmpq	%rax, %r13
	jne	.L21833
	movq	48(%rsp), %r15
	movq	104(%rsp), %r12
	movq	80(%rsp), %rdx
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	ml_kem_polyvec_compress_ref
	call	.Lml_kem_polyvec_compress_ref_local_target
	movq	32(%r15), %rsi
	movq	%rbp, %rdx
	movq	%r15, %rdi
	addq	%r12, %rsi
# WAS call	ml_kem_poly_compress_ref
	call	.Lml_kem_poly_compress_ref_local_target
	leaq	18576(%rsp), %rdi
	movl	$32, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	16(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	88(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$2048, %esi
	movq	%rbx, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	64(%rsp), %rdi
	movl	$8192, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	80(%rsp), %rdi
	movl	$2048, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$512, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$512, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$512, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	19176(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21927
	addq	$19192, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21822:

	.cfi_restore_state
	movq	%rbp, %rdi
# WAS call	ml_kem_invntt_ref
	call	.Lml_kem_invntt_ref_local_target
	jmp	.L21825
.L21798:

	movq	16(%rsp), %rdx
	movq	88(%rsp), %rsi
	leaq	144(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	ml_kem_poly_basemul_montgomery_ref
	call	.Lml_kem_poly_basemul_montgomery_ref_local_target
	movdqa	.LC309(%rip), %xmm12
	movdqa	.LC310(%rip), %xmm11
	movdqa	.LC311(%rip), %xmm13
	jmp	.L21811
.L21918:

	leaq	6288(%rsp), %rbx
	jmp	.L21780
.L21927:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2476:

	.size	ml_kem_indcpa_enc_ref, .-ml_kem_indcpa_enc_ref
# WAS .section	.text.ml_kem_enc_derand_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_enc_derand_ref
	.hidden	ml_kem_enc_derand_ref
	.type	ml_kem_enc_derand_ref, @function
.Lml_kem_enc_derand_ref_local_target:
ml_kem_enc_derand_ref:
.LFB2486:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movdqu	(%r8), %xmm0
	movq	64(%rdi), %rsi
	movq	%rcx, %rdi
	movdqu	16(%r8), %xmm1
	movq	%rsp, %r14
	leaq	32(%rsp), %rdx
	leaq	64(%rsp), %r15
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r15, %rdx
	movl	$64, %esi
	movq	%r14, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	leaq	96(%rsp), %r8
	movq	%r12, %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movdqa	64(%rsp), %xmm2
	movl	$64, %esi
	movq	%r14, %rdi
	movdqa	80(%rsp), %xmm3
	movups	%xmm2, (%rbx)
	movups	%xmm3, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21931
	addq	$152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21931:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2486:

	.size	ml_kem_enc_derand_ref, .-ml_kem_enc_derand_ref
# WAS .section	.text.ml_kem_512_encapsulate_deterministic_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_encapsulate_deterministic_no_self_test
	.hidden	ml_kem_512_encapsulate_deterministic_no_self_test
	.type	ml_kem_512_encapsulate_deterministic_no_self_test, @function
.Lml_kem_512_encapsulate_deterministic_no_self_test_local_target:
ml_kem_512_encapsulate_deterministic_no_self_test:
.LFB2533:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rbp, %rdi
	movq	%rsi, %rbx
	movl	$800, %esi
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movdqu	(%rcx), %xmm1
	movdqa	.LC313(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	movdqu	16(%rcx), %xmm2
	leaq	96(%rsp), %r12
	leaq	128(%rsp), %rdx
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	leaq	160(%rsp), %r14
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movq	$768, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r14, %rdx
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
	leaq	192(%rsp), %r8
	movq	%r13, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r12, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21935
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21935:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2533:

	.size	ml_kem_512_encapsulate_deterministic_no_self_test, .-ml_kem_512_encapsulate_deterministic_no_self_test
# WAS .section	.text.ml_kem_768_encapsulate_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_encapsulate_deterministic
	.hidden	ml_kem_768_encapsulate_deterministic
	.type	ml_kem_768_encapsulate_deterministic, @function
.Lml_kem_768_encapsulate_deterministic_local_target:
ml_kem_768_encapsulate_deterministic:
.LFB2539:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$1184, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movq	$1088, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21939
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21939:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2539:

	.size	ml_kem_768_encapsulate_deterministic, .-ml_kem_768_encapsulate_deterministic
# WAS .section	.text.ml_kem_1024_encapsulate_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_encapsulate_deterministic
	.hidden	ml_kem_1024_encapsulate_deterministic
	.type	ml_kem_1024_encapsulate_deterministic, @function
.Lml_kem_1024_encapsulate_deterministic_local_target:
ml_kem_1024_encapsulate_deterministic:
.LFB2544:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$1568, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movq	$1568, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21943
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21943:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2544:

	.size	ml_kem_1024_encapsulate_deterministic, .-ml_kem_1024_encapsulate_deterministic
# WAS .section	.text.ml_kem_512_encapsulate_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_encapsulate_deterministic
	.hidden	ml_kem_512_encapsulate_deterministic
	.type	ml_kem_512_encapsulate_deterministic, @function
.Lml_kem_512_encapsulate_deterministic_local_target:
ml_kem_512_encapsulate_deterministic:
.LFB2532:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$800, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movq	$768, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21947
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21947:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2532:

	.size	ml_kem_512_encapsulate_deterministic, .-ml_kem_512_encapsulate_deterministic
# WAS .section	.text.ml_kem_512_encaps_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_512_encaps_deterministic, @function
.Lml_kem_512_encaps_deterministic_local_target:
ml_kem_512_encaps_deterministic:
.LFB2422:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$800, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movq	$768, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21951
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21951:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2422:

	.size	ml_kem_512_encaps_deterministic, .-ml_kem_512_encaps_deterministic
# WAS .section	.text.ml_kem_768_encaps_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_768_encaps_deterministic, @function
.Lml_kem_768_encaps_deterministic_local_target:
ml_kem_768_encaps_deterministic:
.LFB2414:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$1184, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movq	$1088, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21955
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21955:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2414:

	.size	ml_kem_768_encaps_deterministic, .-ml_kem_768_encaps_deterministic
# WAS .section	.text.ml_kem_1024_encaps_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_1024_encaps_deterministic, @function
.Lml_kem_1024_encaps_deterministic_local_target:
ml_kem_1024_encaps_deterministic:
.LFB2406:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$240, %rsp
	.cfi_def_cfa_offset 288
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %r13
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movq	%rbp, %rdi
	movdqu	(%r12), %xmm1
	movdqu	16(%r12), %xmm2
	movl	$1568, %esi
	leaq	128(%rsp), %rdx
	leaq	160(%rsp), %r12
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm2, 112(%rsp)
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movq	$1568, 80(%rsp)
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r12, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r13, %rdx
	leaq	192(%rsp), %r8
	movq	%r14, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	160(%rsp), %xmm3
	movdqa	176(%rsp), %xmm4
	movups	%xmm3, (%rbx)
	movups	%xmm4, 16(%rbx)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21959
	addq	$240, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L21959:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2406:

	.size	ml_kem_1024_encaps_deterministic, .-ml_kem_1024_encaps_deterministic
# WAS .section	.text.ml_kem_enc_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_enc_ref
	.hidden	ml_kem_enc_ref
	.type	ml_kem_enc_ref, @function
.Lml_kem_enc_ref_local_target:
ml_kem_enc_ref:
.LFB2487:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	movq	%rcx, %rsi
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$1, %ebx
	subq	$200, %rsp
	.cfi_def_cfa_offset 256
	movq	(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 184(%rsp)
	xorl	%eax, %eax
# WAS call	encapsulation_key_modulus_check.isra.0
	call	.Lencapsulation_key_modulus_check.isra.0_local_target
	testl	%eax, %eax
	jne	.L21960
	leaq	16(%rsp), %r9
	movl	$32, %esi
	movl	%eax, %ebx
	movq	%r9, %rdi
	movq	%r9, 8(%rsp)
	leaq	48(%rsp), %r15
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	16(%rsp), %xmm0
	movdqa	32(%rsp), %xmm1
	movq	%r12, %rdi
	movq	64(%rbp), %rsi
	leaq	80(%rsp), %rdx
	movaps	%xmm0, 48(%rsp)
	movaps	%xmm1, 64(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	leaq	112(%rsp), %r10
	movl	$64, %esi
	movq	%r15, %rdi
	movq	%r10, %rdx
	movq	%r10, (%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%r12, %rcx
	movq	%r15, %rdx
	movq	%r14, %rsi
	leaq	144(%rsp), %r8
	movq	%rbp, %rdi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movdqa	112(%rsp), %xmm2
	movl	$64, %esi
	movq	%r15, %rdi
	movdqa	128(%rsp), %xmm3
	movups	%xmm2, 0(%r13)
	movups	%xmm3, 16(%r13)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	8(%rsp), %rdi
	movl	$32, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L21960:

	movq	184(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21965
	addq	$200, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21965:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2487:

	.size	ml_kem_enc_ref, .-ml_kem_enc_ref
# WAS .section	.text.ml_kem_512_encapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_encapsulate
	.hidden	ml_kem_512_encapsulate
	.type	ml_kem_512_encapsulate, @function
.Lml_kem_512_encapsulate_local_target:
ml_kem_512_encapsulate:
.LFB2534:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$1, %ebx
	subq	$296, %rsp
	.cfi_def_cfa_offset 352
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movq	%rbp, %rdi
	movq	$768, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 80(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.0.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.0.isra.0_local_target
	testl	%eax, %eax
	jne	.L21966
	leaq	112(%rsp), %r15
	movl	$32, %esi
	movl	%eax, %ebx
	movq	%r15, %rdi
	leaq	144(%rsp), %r14
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	112(%rsp), %xmm1
	movl	$800, %esi
	movq	%rbp, %rdi
	movdqa	128(%rsp), %xmm2
	leaq	176(%rsp), %rdx
	movaps	%xmm1, 144(%rsp)
	movaps	%xmm2, 160(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	leaq	208(%rsp), %r9
	movl	$64, %esi
	movq	%r14, %rdi
	movq	%r9, %rdx
	movq	%r9, 8(%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	leaq	16(%rsp), %rdi
	leaq	240(%rsp), %r8
	movq	%r13, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r14, %rdi
	movdqa	208(%rsp), %xmm3
	movdqa	224(%rsp), %xmm4
	movups	%xmm3, (%r12)
	movups	%xmm4, 16(%r12)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	8(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L21966:

	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21971
	addq	$296, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21971:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2534:

	.size	ml_kem_512_encapsulate, .-ml_kem_512_encapsulate
# WAS .section	.text.ml_kem_1024_encapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_encapsulate
	.hidden	ml_kem_1024_encapsulate
	.type	ml_kem_1024_encapsulate, @function
.Lml_kem_1024_encapsulate_local_target:
ml_kem_1024_encapsulate:
.LFB2545:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$1, %ebx
	subq	$296, %rsp
	.cfi_def_cfa_offset 352
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movq	%rbp, %rdi
	movq	$1568, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 80(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.2.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.2.isra.0_local_target
	testl	%eax, %eax
	jne	.L21972
	leaq	112(%rsp), %r15
	movl	$32, %esi
	movl	%eax, %ebx
	movq	%r15, %rdi
	leaq	144(%rsp), %r14
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	112(%rsp), %xmm1
	movl	$1568, %esi
	movq	%rbp, %rdi
	movdqa	128(%rsp), %xmm2
	leaq	176(%rsp), %rdx
	movaps	%xmm1, 144(%rsp)
	movaps	%xmm2, 160(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	leaq	208(%rsp), %r9
	movl	$64, %esi
	movq	%r14, %rdi
	movq	%r9, %rdx
	movq	%r9, 8(%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	leaq	16(%rsp), %rdi
	leaq	240(%rsp), %r8
	movq	%r13, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r14, %rdi
	movdqa	208(%rsp), %xmm3
	movdqa	224(%rsp), %xmm4
	movups	%xmm3, (%r12)
	movups	%xmm4, 16(%r12)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	8(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L21972:

	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21977
	addq	$296, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21977:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2545:

	.size	ml_kem_1024_encapsulate, .-ml_kem_1024_encapsulate
# WAS .section	.text.ml_kem_768_encapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_encapsulate
	.hidden	ml_kem_768_encapsulate
	.type	ml_kem_768_encapsulate, @function
.Lml_kem_768_encapsulate_local_target:
ml_kem_768_encapsulate:
.LFB2540:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	$1, %ebx
	subq	$296, %rsp
	.cfi_def_cfa_offset 352
	movq	%fs:40, %rax
	movq	%rax, 280(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movq	%rbp, %rdi
	movq	$1088, 96(%rsp)
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 80(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.1.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.1.isra.0_local_target
	testl	%eax, %eax
	jne	.L21978
	leaq	112(%rsp), %r15
	movl	$32, %esi
	movl	%eax, %ebx
	movq	%r15, %rdi
	leaq	144(%rsp), %r14
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	112(%rsp), %xmm1
	movl	$1184, %esi
	movq	%rbp, %rdi
	movdqa	128(%rsp), %xmm2
	leaq	176(%rsp), %rdx
	movaps	%xmm1, 144(%rsp)
	movaps	%xmm2, 160(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	leaq	208(%rsp), %r9
	movl	$64, %esi
	movq	%r14, %rdi
	movq	%r9, %rdx
	movq	%r9, 8(%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbp, %rcx
	movq	%r14, %rdx
	leaq	16(%rsp), %rdi
	leaq	240(%rsp), %r8
	movq	%r13, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r14, %rdi
	movdqa	208(%rsp), %xmm3
	movdqa	224(%rsp), %xmm4
	movups	%xmm3, (%r12)
	movups	%xmm4, 16(%r12)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	8(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
.L21978:

	movq	280(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L21983
	addq	$296, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21983:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2540:

	.size	ml_kem_768_encapsulate, .-ml_kem_768_encapsulate
# WAS .section	.text.ml_kem_768_encaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_768_encaps, @function
.Lml_kem_768_encaps_local_target:
ml_kem_768_encaps:
.LFB2415:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movq	%rbx, %rdi
	movq	$1088, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.1.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.1.isra.0_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L21984
	leaq	96(%rsp), %r14
	movl	$32, %esi
	leaq	128(%rsp), %r13
	movq	%r14, %rdi
	leaq	192(%rsp), %r15
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm2
	movq	%rbx, %rdi
	leaq	160(%rsp), %rdx
	movl	$1184, %esi
	movaps	%xmm1, 128(%rsp)
	movaps	%xmm2, 144(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r15, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%rsp, %rdi
	leaq	224(%rsp), %r8
	movq	%r12, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	192(%rsp), %xmm3
	movdqa	208(%rsp), %xmm4
	movups	%xmm3, 0(%rbp)
	movups	%xmm4, 16(%rbp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$1, %eax
.L21984:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21990
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21990:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2415:

	.size	ml_kem_768_encaps, .-ml_kem_768_encaps
# WAS .section	.text.ml_kem_512_encaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_512_encaps, @function
.Lml_kem_512_encaps_local_target:
ml_kem_512_encaps:
.LFB2423:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movq	%rbx, %rdi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.0.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.0.isra.0_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L21991
	leaq	96(%rsp), %r14
	movl	$32, %esi
	leaq	128(%rsp), %r13
	movq	%r14, %rdi
	leaq	192(%rsp), %r15
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm2
	movq	%rbx, %rdi
	leaq	160(%rsp), %rdx
	movl	$800, %esi
	movaps	%xmm1, 128(%rsp)
	movaps	%xmm2, 144(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r15, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%rsp, %rdi
	leaq	224(%rsp), %r8
	movq	%r12, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	192(%rsp), %xmm3
	movdqa	208(%rsp), %xmm4
	movups	%xmm3, 0(%rbp)
	movups	%xmm4, 16(%rbp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$1, %eax
.L21991:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L21997
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L21997:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2423:

	.size	ml_kem_512_encaps, .-ml_kem_512_encaps
# WAS .section	.text.ml_kem_1024_encaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_1024_encaps, @function
.Lml_kem_1024_encaps_local_target:
ml_kem_1024_encaps:
.LFB2407:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$280, %rsp
	.cfi_def_cfa_offset 336
	movq	%fs:40, %rax
	movq	%rax, 264(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movq	%rbx, %rdi
	movq	$1568, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	encapsulation_key_modulus_check.constprop.2.isra.0
	call	.Lencapsulation_key_modulus_check.constprop.2.isra.0_local_target
	movl	%eax, %edx
	xorl	%eax, %eax
	testl	%edx, %edx
	jne	.L21998
	leaq	96(%rsp), %r14
	movl	$32, %esi
	leaq	128(%rsp), %r13
	movq	%r14, %rdi
	leaq	192(%rsp), %r15
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movdqa	96(%rsp), %xmm1
	movdqa	112(%rsp), %xmm2
	movq	%rbx, %rdi
	leaq	160(%rsp), %rdx
	movl	$1568, %esi
	movaps	%xmm1, 128(%rsp)
	movaps	%xmm2, 144(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r15, %rdx
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%rsp, %rdi
	leaq	224(%rsp), %r8
	movq	%r12, %rsi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%r13, %rdi
	movdqa	192(%rsp), %xmm3
	movdqa	208(%rsp), %xmm4
	movups	%xmm3, 0(%rbp)
	movups	%xmm4, 16(%rbp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$32, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$1, %eax
.L21998:

	movq	264(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22004
	addq	$280, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L22004:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2407:

	.size	ml_kem_1024_encaps, .-ml_kem_1024_encaps
# WAS .section	.text.shake256_finalXOF,"ax",@progbits
.text
	.p2align 4
	.type	shake256_finalXOF, @function
.Lshake256_finalXOF_local_target:
shake256_finalXOF:
.LFB3173:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHAKE_Final@PLT
	jmp	.LSHAKE_Final_local_target
	.cfi_endproc
.LFE3173:

	.size	shake256_finalXOF, .-shake256_finalXOF
# WAS .section	.text.ml_kem_dec_ref.part.0,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_dec_ref.part.0, @function
.Lml_kem_dec_ref.part.0_local_target:
ml_kem_dec_ref.part.0:
.LFB3081:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$2184, %rsp
	.cfi_def_cfa_offset 2240
	movq	%rsi, (%rsp)
	leaq	432(%rsp), %rbx
	leaq	496(%rsp), %r13
	movq	%rbx, %rsi
	leaq	560(%rsp), %r15
	movq	%fs:40, %rax
	movq	%rax, 2168(%rsp)
	movq	%rcx, %rax
	movq	%rbx, 16(%rsp)
	addq	48(%rdi), %rax
	movq	%rax, 8(%rsp)
# WAS call	ml_kem_indcpa_dec_ref
	call	.Lml_kem_indcpa_dec_ref_local_target
	movq	72(%r12), %rax
	movq	%r13, %rdx
	movq	%rbx, %rdi
	movl	$64, %esi
	leaq	-64(%r14,%rax), %rax
	movdqu	(%rax), %xmm3
	movdqu	16(%rax), %xmm4
	movaps	%xmm3, 464(%rsp)
	movaps	%xmm4, 480(%rsp)
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	8(%rsp), %rcx
	movq	%rbx, %rdx
	movq	%r15, %rsi
	leaq	528(%rsp), %r8
	movq	%r12, %rdi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movq	80(%r12), %rcx
	testq	%rcx, %rcx
	je	.L22015
	leaq	-1(%rcx), %rax
	cmpq	$14, %rax
	jbe	.L22016
	movq	%rcx, %rdx
	xorl	%eax, %eax
	pxor	%xmm1, %xmm1
	andq	$-16, %rdx
	.p2align 4,,10
	.p2align 3
.L22009:

	movdqu	0(%rbp,%rax), %xmm0
	pxor	(%r15,%rax), %xmm0
	addq	$16, %rax
	por	%xmm0, %xmm1
	cmpq	%rax, %rdx
	jne	.L22009
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm0
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$4, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$2, %xmm2
	por	%xmm2, %xmm0
	movdqa	%xmm0, %xmm2
	psrldq	$1, %xmm2
	por	%xmm2, %xmm0
	movd	%xmm0, %eax
	movdqa	%xmm1, %xmm0
	psrldq	$8, %xmm1
	por	%xmm0, %xmm1
	cmpq	%rdx, %rcx
	je	.L22010
.L22008:

	movq	%rcx, %rsi
	subq	%rdx, %rsi
	leaq	-1(%rsi), %rdi
	cmpq	$6, %rdi
	jbe	.L22011
	movq	0(%rbp,%rdx), %xmm0
	movq	560(%rsp,%rdx), %xmm2
	pxor	%xmm2, %xmm0
	por	%xmm1, %xmm0
	movq	%xmm0, %rdi
	movq	%rdi, %rax
	movq	%rdi, %r8
	shrq	$16, %r8
	orb	%ah, %al
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$24, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$32, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$40, %r8
	orl	%r8d, %eax
	movq	%rdi, %r8
	shrq	$56, %rdi
	shrq	$48, %r8
	orl	%r8d, %eax
	orl	%edi, %eax
	movq	%rsi, %rdi
	andq	$-8, %rdi
	addq	%rdi, %rdx
	andl	$7, %esi
	je	.L22010
.L22011:

	movzbl	0(%rbp,%rdx), %esi
	xorb	560(%rsp,%rdx), %sil
	orl	%esi, %eax
	leaq	1(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L22010
	movzbl	561(%rsp,%rdx), %esi
	xorb	1(%rbp,%rdx), %sil
	orl	%esi, %eax
	leaq	2(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L22010
	movzbl	562(%rsp,%rdx), %esi
	leaq	3(%rdx), %rdi
	xorb	2(%rbp,%rdx), %sil
	orl	%esi, %eax
	cmpq	%rcx, %rdi
	jnb	.L22010
	movzbl	3(%rbp,%rdx), %esi
	leaq	4(%rdx), %rdi
	xorb	563(%rsp,%rdx), %sil
	orl	%esi, %eax
	cmpq	%rcx, %rdi
	jnb	.L22010
	movzbl	4(%rbp,%rdx), %esi
	leaq	5(%rdx), %rdi
	xorb	564(%rsp,%rdx), %sil
	orl	%esi, %eax
	cmpq	%rcx, %rdi
	jnb	.L22010
	movzbl	5(%rbp,%rdx), %esi
	xorb	565(%rsp,%rdx), %sil
	orl	%esi, %eax
	leaq	6(%rdx), %rsi
	cmpq	%rcx, %rsi
	jnb	.L22010
	movzbl	566(%rsp,%rdx), %ecx
	xorb	6(%rbp,%rdx), %cl
	movl	%ecx, %edx
	orl	%edx, %eax
.L22010:

	movzbl	%al, %eax
	negq	%rax
	sarq	$63, %rax
	movzbl	%al, %ecx
	movq	%rcx, %rax
	notq	%rax
	movq	%rax, 24(%rsp)
.L22007:

	movq	72(%r12), %rax
	movl	$136, %esi
	movq	%rcx, 8(%rsp)
	leaq	-32(%r14,%rax), %rax
	leaq	32(%rsp), %r14
	movq	%rax, %rbx
	movq	%r14, %rdi
# WAS call	SHAKE_Init@PLT
	call	.LSHAKE_Init_local_target
	movl	$32, %edx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movq	80(%r12), %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	SHA3_Update@PLT
	call	.LSHA3_Update_local_target
	movq	(%rsp), %rdi
	movl	$32, %edx
	movq	%r14, %rsi
# WAS call	SHAKE_Final@PLT
	call	.LSHAKE_Final_local_target
	xorl	%eax, %eax
	movq	8(%rsp), %rcx
	movq	24(%rsp), %r12
	.p2align 4,,10
	.p2align 3
.L22013:

	movq	(%rsp), %rbx
	movzbl	0(%r13,%rax), %esi
	movzbl	(%rbx,%rax), %edx
	andq	%r12, %rsi
	andq	%rcx, %rdx
	orq	%rsi, %rdx
	movb	%dl, (%rbx,%rax)
	addq	$1, %rax
	cmpq	$32, %rax
	jne	.L22013
	movq	16(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%r13, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$1600, %esi
	movq	%r15, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	2168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22023
	addq	$2184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22015:

	.cfi_restore_state
	movq	$-1, 24(%rsp)
	jmp	.L22007
.L22016:

	pxor	%xmm1, %xmm1
	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	.L22008
.L22023:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3081:

	.size	ml_kem_dec_ref.part.0, .-ml_kem_dec_ref.part.0
# WAS .section	.text.ml_kem_dec_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_dec_ref
	.hidden	ml_kem_dec_ref
	.type	ml_kem_dec_ref, @function
.Lml_kem_dec_ref_local_target:
ml_kem_dec_ref:
.LFB2488:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pxor	%xmm0, %xmm0
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	movq	40(%rdi), %rsi
	movq	48(%rdi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rdx
	movaps	%xmm0, (%rsp)
	addq	%rcx, %rdi
	movaps	%xmm0, 16(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	40(%rbx), %rax
	addq	%rbp, %rax
	addq	48(%rbx), %rax
	movdqu	(%rax), %xmm0
	movdqu	16(%rax), %xmm1
	pxor	(%rsp), %xmm0
	pxor	16(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	testb	%al, %al
	je	.L22030
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22029
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22030:

	.cfi_restore_state
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22029
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbp, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	ml_kem_dec_ref.part.0
	jmp	.Lml_kem_dec_ref.part.0_local_target
.L22029:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2488:

	.size	ml_kem_dec_ref, .-ml_kem_dec_ref
# WAS .section	.text.ml_kem_512_decapsulate_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_decapsulate_no_self_test
	.hidden	ml_kem_512_decapsulate_no_self_test
	.type	ml_kem_512_decapsulate_no_self_test, @function
.Lml_kem_512_decapsulate_no_self_test_local_target:
ml_kem_512_decapsulate_no_self_test:
.LFB2536:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	movl	$800, %esi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	leaq	768(%rbx), %rdi
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movdqa	.LC313(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rdx
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	1568(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	movl	$1, %eax
	movdqu	1584(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22031
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
.L22031:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22037
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22037:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2536:

	.size	ml_kem_512_decapsulate_no_self_test, .-ml_kem_512_decapsulate_no_self_test
# WAS .section	.text.ml_kem_512_decapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_decapsulate
	.hidden	ml_kem_512_decapsulate
	.type	ml_kem_512_decapsulate, @function
.Lml_kem_512_decapsulate_local_target:
ml_kem_512_decapsulate:
.LFB2535:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$800, %esi
	movdqa	.LC313(%rip), %xmm0
	movq	$768, 80(%rsp)
	leaq	768(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	1568(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	movl	$1, %eax
	movdqu	1584(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22038
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
.L22038:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22044
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22044:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2535:

	.size	ml_kem_512_decapsulate, .-ml_kem_512_decapsulate
# WAS .section	.text.ml_kem_768_decapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_decapsulate
	.hidden	ml_kem_768_decapsulate
	.type	ml_kem_768_decapsulate, @function
.Lml_kem_768_decapsulate_local_target:
ml_kem_768_decapsulate:
.LFB2541:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$1184, %esi
	movdqa	.LC317(%rip), %xmm0
	movq	$1088, 80(%rsp)
	leaq	1152(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	2336(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	movl	$1, %eax
	movdqu	2352(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22045
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
.L22045:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22051
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22051:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2541:

	.size	ml_kem_768_decapsulate, .-ml_kem_768_decapsulate
# WAS .section	.text.ml_kem_1024_decapsulate,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_decapsulate
	.hidden	ml_kem_1024_decapsulate
	.type	ml_kem_1024_decapsulate, @function
.Lml_kem_1024_decapsulate_local_target:
ml_kem_1024_decapsulate:
.LFB2546:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$1568, %esi
	movdqa	.LC321(%rip), %xmm0
	movq	$1568, 80(%rsp)
	leaq	1536(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	3104(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	movl	$1, %eax
	movdqu	3120(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22052
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
.L22052:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22058
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22058:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2546:

	.size	ml_kem_1024_decapsulate, .-ml_kem_1024_decapsulate
# WAS .section	.text.ml_kem_768_decaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_768_decaps, @function
.Lml_kem_768_decaps_local_target:
ml_kem_768_decaps:
.LFB2416:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$1184, %esi
	movdqa	.LC317(%rip), %xmm0
	movq	$1088, 80(%rsp)
	leaq	1152(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	2336(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	xorl	%eax, %eax
	movdqu	2352(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22059
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
	xorl	$1, %eax
.L22059:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22065
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22065:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2416:

	.size	ml_kem_768_decaps, .-ml_kem_768_decaps
# WAS .section	.text.ml_kem_512_decaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_512_decaps, @function
.Lml_kem_512_decaps_local_target:
ml_kem_512_decaps:
.LFB2424:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$800, %esi
	movdqa	.LC313(%rip), %xmm0
	movq	$768, 80(%rsp)
	leaq	768(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	1568(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	xorl	%eax, %eax
	movdqu	1584(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22066
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
	xorl	$1, %eax
.L22066:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22072
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22072:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2424:

	.size	ml_kem_512_decaps, .-ml_kem_512_decaps
# WAS .section	.text.ml_kem_1024_decaps,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_1024_decaps, @function
.Lml_kem_1024_decaps_local_target:
ml_kem_1024_decaps:
.LFB2408:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
	subq	$144, %rsp
	.cfi_def_cfa_offset 176
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	leaq	96(%rsp), %rdx
	movl	$1568, %esi
	movdqa	.LC321(%rip), %xmm0
	movq	$1568, 80(%rsp)
	leaq	1536(%rbx), %rdi
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movdqu	3104(%rbx), %xmm0
	pxor	96(%rsp), %xmm0
	xorl	%eax, %eax
	movdqu	3120(%rbx), %xmm1
	pxor	112(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %edx
	testb	%dl, %dl
	jne	.L22073
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
	xorl	$1, %eax
.L22073:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22079
	addq	$144, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22079:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2408:

	.size	ml_kem_1024_decaps, .-ml_kem_1024_decaps
# WAS .section	.text.keygen_pct,"ax",@progbits
.text
	.p2align 4
	.type	keygen_pct, @function
.Lkeygen_pct_local_target:
keygen_pct:
.LFB2478:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$3848, %rsp
	.cfi_def_cfa_offset 3904
	movq	(%rdi), %r11
	movq	%rdx, (%rsp)
	leaq	2256(%rsp), %r14
	movq	%fs:40, %rax
	movq	%rax, 3832(%rsp)
	xorl	%eax, %eax
	testq	%r11, %r11
	je	.L22085
	leaq	16(%rsp), %r14
	movq	%rsi, %r12
	leaq	2640(%rsp), %r13
	xorl	%r15d, %r15d
.L22083:

	movq	%r14, %rdi
	movq	%r12, %rsi
# WAS call	byte_decode_12
	call	.Lbyte_decode_12_local_target
	leaq	-384(%r13), %rdx
	movq	%r14, %rdi
	.p2align 4,,10
	.p2align 3
.L22082:

	movzwl	(%rdi), %eax
	movzwl	2(%rdi), %ecx
	addq	$3, %rdx
	addq	$4, %rdi
	movl	%ecx, %r8d
	movb	%al, -3(%rdx)
	sarw	$8, %ax
	sall	$4, %r8d
	andl	$15, %eax
	sarw	$4, %cx
	orl	%r8d, %eax
	movb	%cl, -1(%rdx)
	movb	%al, -2(%rdx)
	cmpq	%r13, %rdx
	jne	.L22082
	addq	$1, %r15
	addq	$512, %r14
	addq	$384, %r12
	leaq	384(%rdx), %r13
	cmpq	%r15, %r11
	jne	.L22083
	leaq	(%r11,%r11,2), %rdx
	xorl	%eax, %eax
	pxor	%xmm0, %xmm0
	salq	$7, %rdx
	leaq	2256(%rsp), %r14
.L22086:

	movdqu	(%rbx,%rax), %xmm1
	pxor	(%r14,%rax), %xmm1
	addq	$16, %rax
	por	%xmm1, %xmm0
	cmpq	%rax, %rdx
	jne	.L22086
	movdqa	%xmm0, %xmm1
	leaq	2192(%rsp), %r13
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	testb	%al, %al
	je	.L22085
.L22087:

	movq	(%rsp), %rbx
	movq	48(%rbp), %rdi
	pxor	%xmm0, %xmm0
	movq	%r13, %rdx
	movq	40(%rbp), %rsi
	movaps	%xmm0, 2192(%rsp)
	addq	%rbx, %rdi
	movaps	%xmm0, 2208(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	40(%rbp), %rax
	addq	%rbx, %rax
	addq	48(%rbp), %rax
	movdqu	(%rax), %xmm0
	movdqu	16(%rax), %xmm1
	pxor	2192(%rsp), %xmm0
	pxor	2208(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	testb	%al, %al
	jne	.L22088
	movq	%rbx, %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	ml_kem_dec_ref.part.0
	call	.Lml_kem_dec_ref.part.0_local_target
.L22088:

	movdqa	2064(%rsp), %xmm0
	movdqa	2208(%rsp), %xmm1
	pxor	2192(%rsp), %xmm0
	pxor	2080(%rsp), %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$2, %xmm1
	por	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$1, %xmm1
	por	%xmm1, %xmm0
	movd	%xmm0, %eax
	movzbl	%al, %eax
	negq	%rax
	shrq	$63, %rax
	movq	3832(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22098
	addq	$3848, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L22085:

	.cfi_restore_state
	leaq	2096(%rsp), %r9
	movl	$32, %esi
	leaq	2128(%rsp), %r15
	movq	%r9, %rdi
	movq	%r9, 8(%rsp)
	leaq	2192(%rsp), %r13
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	64(%rbp), %rsi
	leaq	2160(%rsp), %rdx
	movq	%rbx, %rdi
	movdqa	2096(%rsp), %xmm2
	movdqa	2112(%rsp), %xmm3
	movaps	%xmm2, 2128(%rsp)
	movaps	%xmm3, 2144(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%r13, %rdx
	movq	%r15, %rdi
	movl	$64, %esi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%rbx, %rcx
	movq	%r15, %rdx
	movq	%r14, %rsi
	leaq	2224(%rsp), %r8
	movq	%rbp, %rdi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movq	%r15, %rdi
	movl	$64, %esi
	movdqa	2192(%rsp), %xmm4
	movdqa	2208(%rsp), %xmm5
	movaps	%xmm4, 2064(%rsp)
	movaps	%xmm5, 2080(%rsp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%r13, %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	8(%rsp), %rdi
	movl	$32, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L22087
.L22098:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2478:

	.size	keygen_pct, .-keygen_pct
# WAS .section	.text.unlikely.ml_kem_keypair_derand_ref,"ax",@progbits
.text
.LCOLDB379:

# WAS .section	.text.ml_kem_keypair_derand_ref,"ax",@progbits
.text
.LHOTB379:

	.p2align 4
	.globl	ml_kem_keypair_derand_ref
	.hidden	ml_kem_keypair_derand_ref
	.type	ml_kem_keypair_derand_ref, @function
.Lml_kem_keypair_derand_ref_local_target:
ml_kem_keypair_derand_ref:
.LFB2479:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	ml_kem_indcpa_keypair_derand_ref
	call	.Lml_kem_indcpa_keypair_derand_ref_local_target
	movq	48(%rbx), %rdi
	movq	64(%rbx), %rdx
	movq	%r12, %rsi
	addq	%rbp, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	72(%rbx), %rax
	movq	64(%rbx), %rsi
	movq	%r12, %rdi
	leaq	-64(%rbp,%rax), %rdx
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	72(%rbx), %rax
	movq	%rbp, %rdx
	movq	%r12, %rsi
	movdqu	32(%r13), %xmm0
	movq	%rbx, %rdi
	leaq	-32(%rbp,%rax), %rax
	movups	%xmm0, (%rax)
	movdqu	48(%r13), %xmm1
	movups	%xmm1, 16(%rax)
# WAS call	keygen_pct
	call	.Lkeygen_pct_local_target
	testl	%eax, %eax
	jne	.L22101
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.ml_kem_keypair_derand_ref
.text
	.cfi_startproc
	.type	ml_kem_keypair_derand_ref.cold, @function
.Lml_kem_keypair_derand_ref.cold_local_target:
ml_kem_keypair_derand_ref.cold:
.LFSB2479:

.L22101:

	.cfi_def_cfa_offset 48
	.cfi_offset 3, -40
	.cfi_offset 6, -32
	.cfi_offset 12, -24
	.cfi_offset 13, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2479:

# WAS .section	.text.ml_kem_keypair_derand_ref
.text
	.size	ml_kem_keypair_derand_ref, .-ml_kem_keypair_derand_ref
# WAS .section	.text.unlikely.ml_kem_keypair_derand_ref
.text
	.size	ml_kem_keypair_derand_ref.cold, .-ml_kem_keypair_derand_ref.cold
.LCOLDE379:

# WAS .section	.text.ml_kem_keypair_derand_ref
.text
.LHOTE379:

# WAS .section	.text.ml_kem_keypair_ref,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_keypair_ref
	.hidden	ml_kem_keypair_ref
	.type	ml_kem_keypair_ref, @function
.Lml_kem_keypair_ref_local_target:
ml_kem_keypair_ref:
.LFB2480:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	movl	$64, %esi
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$88, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbx
	movq	%rbx, %rdi
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbp, %rdi
	movq	%r12, %rsi
	movq	%rbx, %rcx
	movq	%r13, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22106
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L22106:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2480:

	.size	ml_kem_keypair_ref, .-ml_kem_keypair_ref
# WAS .section	.text.ml_kem_512_keypair_deterministic_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_keypair_deterministic_no_self_test
	.hidden	ml_kem_512_keypair_deterministic_no_self_test
	.type	ml_kem_512_keypair_deterministic_no_self_test, @function
.Lml_kem_512_keypair_deterministic_no_self_test_local_target:
ml_kem_512_keypair_deterministic_no_self_test:
.LFB2530:

	.cfi_startproc
	endbr64
	subq	$104, %rsp
	.cfi_def_cfa_offset 112
	movdqa	.LC313(%rip), %xmm0
	movq	%rdx, %rcx
	movq	%rsi, %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rdi, %rsi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movq	%rax, %rdi
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22110
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L22110:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2530:

	.size	ml_kem_512_keypair_deterministic_no_self_test, .-ml_kem_512_keypair_deterministic_no_self_test
# WAS .section	.text.ml_kem_768_keypair_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_keypair_deterministic
	.hidden	ml_kem_768_keypair_deterministic
	.type	ml_kem_768_keypair_deterministic, @function
.Lml_kem_768_keypair_deterministic_local_target:
ml_kem_768_keypair_deterministic:
.LFB2537:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbp, %rdx
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movdqa	.LC317(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$1088, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22114
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22114:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2537:

	.size	ml_kem_768_keypair_deterministic, .-ml_kem_768_keypair_deterministic
# WAS .section	.text.ml_kem_1024_keypair_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_keypair_deterministic
	.hidden	ml_kem_1024_keypair_deterministic
	.type	ml_kem_1024_keypair_deterministic, @function
.Lml_kem_1024_keypair_deterministic_local_target:
ml_kem_1024_keypair_deterministic:
.LFB2542:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbp, %rdx
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movdqa	.LC321(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$1568, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22118
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22118:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2542:

	.size	ml_kem_1024_keypair_deterministic, .-ml_kem_1024_keypair_deterministic
# WAS .section	.text.ml_kem_512_keypair,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_keypair
	.hidden	ml_kem_512_keypair
	.type	ml_kem_512_keypair, @function
.Lml_kem_512_keypair_local_target:
ml_kem_512_keypair:
.LFB2531:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbx
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movl	$64, %esi
	movq	%rbx, %rdi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbp, %rsi
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22122
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22122:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2531:

	.size	ml_kem_512_keypair, .-ml_kem_512_keypair
# WAS .section	.text.ml_kem_768_keypair,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_768_keypair
	.hidden	ml_kem_768_keypair
	.type	ml_kem_768_keypair, @function
.Lml_kem_768_keypair_local_target:
ml_kem_768_keypair:
.LFB2538:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbx
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movl	$64, %esi
	movq	%rbx, %rdi
	movq	$1088, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbp, %rsi
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22126
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22126:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2538:

	.size	ml_kem_768_keypair, .-ml_kem_768_keypair
# WAS .section	.text.ml_kem_1024_keypair,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_1024_keypair
	.hidden	ml_kem_1024_keypair
	.type	ml_kem_1024_keypair, @function
.Lml_kem_1024_keypair_local_target:
ml_kem_1024_keypair:
.LFB2543:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbx
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movl	$64, %esi
	movq	%rbx, %rdi
	movq	$1568, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbp, %rsi
	movq	%rsp, %rdi
	movq	%rbx, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbx, %rdi
	movl	%eax, %ebp
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22130
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22130:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2543:

	.size	ml_kem_1024_keypair, .-ml_kem_1024_keypair
# WAS .section	.text.ml_kem_1024_keygen_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_1024_keygen_deterministic, @function
.Lml_kem_1024_keygen_deterministic_local_target:
ml_kem_1024_keygen_deterministic:
.LFB2404:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movdqa	.LC321(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$1568, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	testl	%eax, %eax
	sete	%al
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22134
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22134:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2404:

	.size	ml_kem_1024_keygen_deterministic, .-ml_kem_1024_keygen_deterministic
# WAS .section	.text.ml_kem_768_keygen_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_768_keygen_deterministic, @function
.Lml_kem_768_keygen_deterministic_local_target:
ml_kem_768_keygen_deterministic:
.LFB2412:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movdqa	.LC317(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$1088, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	testl	%eax, %eax
	sete	%al
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22138
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22138:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2412:

	.size	ml_kem_768_keygen_deterministic, .-ml_kem_768_keygen_deterministic
# WAS .section	.text.ml_kem_512_keypair_deterministic,"ax",@progbits
.text
	.p2align 4
	.globl	ml_kem_512_keypair_deterministic
	.hidden	ml_kem_512_keypair_deterministic
	.type	ml_kem_512_keypair_deterministic, @function
.Lml_kem_512_keypair_deterministic_local_target:
ml_kem_512_keypair_deterministic:
.LFB2529:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rbp, %rdx
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movdqa	.LC313(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22142
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22142:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2529:

	.size	ml_kem_512_keypair_deterministic, .-ml_kem_512_keypair_deterministic
# WAS .section	.text.ml_kem_512_keygen_deterministic,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_512_keygen_deterministic, @function
.Lml_kem_512_keygen_deterministic_local_target:
ml_kem_512_keygen_deterministic:
.LFB2420:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%rsp, %rdi
	movq	%r12, %rcx
	movq	%rbp, %rdx
	movdqa	.LC313(%rip), %xmm0
	movq	%rbx, %rsi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	testl	%eax, %eax
	sete	%al
	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22146
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22146:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2420:

	.size	ml_kem_512_keygen_deterministic, .-ml_kem_512_keygen_deterministic
# WAS .section	.text.ml_kem_512_keygen,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_512_keygen, @function
.Lml_kem_512_keygen_local_target:
ml_kem_512_keygen:
.LFB2421:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbp
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC313(%rip), %xmm0
	movl	$64, %esi
	movq	%rbp, %rdi
	movq	$768, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC314(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC315(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC316(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC60(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbx, %rsi
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	testl	%ebx, %ebx
	sete	%al
	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22150
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22150:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2421:

	.size	ml_kem_512_keygen, .-ml_kem_512_keygen
# WAS .section	.text.ml_kem_1024_keygen,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_1024_keygen, @function
.Lml_kem_1024_keygen_local_target:
ml_kem_1024_keygen:
.LFB2405:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbp
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC321(%rip), %xmm0
	movl	$64, %esi
	movq	%rbp, %rdi
	movq	$1568, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC322(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC323(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC324(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC67(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbx, %rsi
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	testl	%ebx, %ebx
	sete	%al
	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22154
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22154:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2405:

	.size	ml_kem_1024_keygen, .-ml_kem_1024_keygen
# WAS .section	.text.ml_kem_768_keygen,"ax",@progbits
.text
	.p2align 4
	.type	ml_kem_768_keygen, @function
.Lml_kem_768_keygen_local_target:
ml_kem_768_keygen:
.LFB2413:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$176, %rsp
	.cfi_def_cfa_offset 208
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	96(%rsp), %rbp
# WAS call	g_self_test_once_ml_kem_bss_get@PLT
	call	g_self_test_once_ml_kem_bss_get
# WAS leaq	run_self_test_ml_kem(%rip), %rsi
	leaq	.Lrun_self_test_ml_kem_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movdqa	.LC317(%rip), %xmm0
	movl	$64, %esi
	movq	%rbp, %rdi
	movq	$1088, 80(%rsp)
	movaps	%xmm0, (%rsp)
	movdqa	.LC318(%rip), %xmm0
	movaps	%xmm0, 16(%rsp)
	movdqa	.LC319(%rip), %xmm0
	movaps	%xmm0, 32(%rsp)
	movdqa	.LC320(%rip), %xmm0
	movaps	%xmm0, 48(%rsp)
	movdqa	.LC64(%rip), %xmm0
	movaps	%xmm0, 64(%rsp)
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%rbx, %rsi
	movq	%rsp, %rdi
	movq	%rbp, %rcx
	movq	%r12, %rdx
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	movl	$64, %esi
	movq	%rbp, %rdi
	movl	%eax, %ebx
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	testl	%ebx, %ebx
	sete	%al
	movq	168(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22158
	addq	$176, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movzbl	%al, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22158:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2413:

	.size	ml_kem_768_keygen, .-ml_kem_768_keygen
# WAS .section	.rodata.boringssl_self_test_ml_kem.str1.1,"aMS",@progbits,1
.text
.LC382:

	.string	"ML-KEM keyGen decaps"
.LC385:

	.string	"ML-KEM encapsulate ciphertext"
.LC386:

	.string	"ML-KEM keyGen encaps"
# WAS .section	.rodata.boringssl_self_test_ml_kem.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC387:

	.string	"ML-KEM encapsulate shared secret"
	.align 8
.LC391:

	.string	"ML-KEM decapsulate non-rejection"
	.align 8
.LC392:

	.string	"ML-KEM decapsulate implicit rejection"
# WAS .section	.rodata
.text
	.align 8
.LC380:

	.string	"\351\340\"\niEV\274\nKZ\255\3402\262\252\207|\r\250\026\3572\250Mw\273\377FV\346\200\205Nia\244\027\b+\324oP#\304|\352\t\273\242\024]AQ\210\3418\003\273^\177\301\2359\201\236Y\312\177\3348\005\035\226\224\001\324\304\021\332\300\nG\253WR}\252\211z7u\223Q\264\261\030[\024\226\327\232\2432)\276\243\300\350\333\317\035zds\t(w\\t\311F\030\033\270\216\n8\241e\353\275\307\206\013\001LY\211Lr\021\274#\323\220w\346)D\323\304\214CKs{\032d\265\371\241dj\030\245\031ZT`?\374(\013\365\352\033\363\330\313A\022\252\202\372\270\236&3fU\227\276\323\r\346\310\211z\226\023\352\214\021se$\247\bbfR?\272\270\207FT\224\353\374\226\373\344Fgu\274\rp~bK\263\336p\016\252\311\263|+\301+R\252-\373s\267"
	.string	"k\331V\300\2712LG)^NLL\304{\251\265\250\231iK8\246J)\022\006\204\277d\306H!\033\030\320\027\3164\204\234J\t+$\274\270\226\r\207\004\"\353\331T\274rd\272\225\247'\243\031&\363\034\0228\035\r\005\036\036\004\031\013\224\223\"D(E\363\252o\261y@D*\234\032\030;#\227\334\300w\f\262\264\240z\257\n\365&6w\212\311\224\235-\264/=\003k\310B\262\363\260\261\035'\216\240%\314\026\254\213i\206\251\261\2133Vy\r\274\202\035\n\307\265\352\351e\374\361K\016 +"
	.string	"\354]p|E\257R\276-\227q\274\305;1\362RZ\265?\225\243\260\002B\301\034IN%TC\213\nOh\031@\031\030\033\275\261\224\221\003\007\274\031\257\256U=\326fVC2\300x`O\275\213\304\375\311/\222\001\200\232\264\225\301\2655S\013\255.\263WS\371\031V\265\213\373\366-\0363\310a\3678F3LJ*\305Wi\204\357\021c\245\004T\243\344\316\203\210\230\362%\206\201\211\275\256Z\003\357\330"
	.string	"\035*\237U|\266\315\223\244o\273\023y\330\026E\270S\313\230\264{\250zf\374\274\n\332vPk\215\315e\220Bd\016\366\026\202\017\362\013&C3\2317\035\304\305\002\2074\234\242v>0s\206\\[\311\252\241C{\206\262\013%\266\360\210\275jL\224\203\204-|e%|\304*\327\307\262oX\310\355\031\233\204\213\214o@\215Hv7u\030\210\251ZD\234\253G\267\242\254\346\250,}F\221\005&AJ\261I\261\023C\260\3522\331i\245\b\250\034\370\226\260\201\b\177MR\242\251\340w\207\212C\345\227\035t\206:{\362"
	.ascii	"7\262\227G\003\024\016\250\026\n[\247\"'\301[\354]\361q\024\001"
	.ascii	"\230\211m1s*$\037[\223\217\3623\313\242\334\202\336\221\306\264"
	.ascii	"\223x+ac\274\022\202\337\205^\346\246\246Yu\263<\266\242}%\213"
	.ascii	"\323\027\320L\357\216\265W\272\002\324\224q\222<\326\016\231"
	.ascii	"\027\226k\351\017"
	.align 8
.LC381:

	.string	"\210\301,\352\246\313\221\365\211\254\270m\221<z`\367\315\253\343\267\265\220\t\035"
	.string	"\204\342\232\004\233ChA\362G;\003\026Z\351\306\251\202mle\r\004\263\210\357\365\224P[~Tp\2250Th%\240p\246%\260\345\372\206nj\257@\302ABF$\ts\307Y\212\256|6>C\003\253\267\241\0211\264d\251C\231m\347Y,\240I\"\352\212Ms\264C\352\004\214\006\254\304\345Z\217%K\366\322q\375\202q\031\354[U\200I\213\374\300\236\260&o\214+E\230\212\351\214\036T\002\267"
	.ascii	"4c\362\003YG\001Y\300P\237\251q\0254C\316%\200\300\262D?\212"
	.ascii	"\302\260\201\004\001\3470R\326&\277X\306t\356H\210\f@\215\037"
	.ascii	"1:\224\261f\177\211v(\305Z\203\342\2064\242\007\020\322]\250"
	.ascii	"\213*\311\f\017]k\016\326\340\200\375,$\273\021\201k\\`yWx\035"
	.ascii	"\262(yfq\177\372P\n\003\002X9\026A\025\272^\247\267\0274E\210"
	.ascii	"\026\236\212\205\251\350<Ql\253^\346\346;|sl\351\006(\335\354"
	.ascii	"\251\232k\305GX\206\201\274\"#\363\237\274Dd\264\034c\331$\257"
	.ascii	"\353\241\t\211`\275C\301/"
	.string	"\320\b\017I\f\214P\364\2042\"0<h!\255{f=\210D\2416\212\031T\236\\\374\203\321J\204\221 \\D\365I+\366\t\266\234Rl\225\252^P\216\317qKyU\266\037l\2534\013\006 \0042\316;\036\315\n\007Z\2032\004he\225\232%i\212\b\035\363S&\2214\212%\201\326\006\240\340\262\317.\213<\232\374YN\222n\260\327\307\002\300\303\345\265N\342\310l\242\f\304v\252\254\243 \2172\242\001\220V,'3\202\002\007\036\021f_\023Bs\275\252\313\311R\271\224\272\224bg\022&QKDa\023\347\253~\333\234T\303\021\304\332\224\020M&*\200(\0169 \036uQ\221v9\203\3049\251Z\352\257\247g\302\313YH)\3461>8i\202\326b\032\314K\260\231\032`y\n+\f_19\252\335pE\367\330I\252 \233\366\013\301^\330&gAKp\267\032~\030N\026B\200\257"
	.string	"\277\225\251\255=\344\035\317\031b6\020\317\263\006\207\245\240\202\242E\210p\3533\326I\263\374\3431~\003b\356au\373\201\034\177\343d|\242\020 g:\355\322;\360G\f\330s\\\345:x\b&h\344\232Q2\3213j\bC`\030\177\317\371\"|\334\r\177 [*\362\310\215\306\274\232\004\264\037B\237\251\243\206\365\213\217!l\277g\024\246\031Y|\252Z\233\366h\004\215q5\020Z\224%\313F\376\200z@dY\260g\267\026\365\244w0\227K x&qo\343\367G\375t\315\214\002W \261"
	.string	"?'\262\336\246\225\362!\227\034\325\257\201\241\247\225"
	.ascii	"\037\022\\("
	.string	"\\\025\r\334\231Y\351\340\"\niEV\274\nKZ\255\3402\262\252\207|\r\250\026\3572\250Mw\273\377FV\346\200\205Nia\244\027\b+\324oP#\304|\352\t\273\242\024]AQ\210\3418\003\273^\177\301\2359\201\236Y\312\177\3348\005\035\226\224\001\324\304\021\332\300\nG\253WR}\252\211z7u\223Q\264\261\030[\024\226\327\232\2432)\276\243\300\350\333\317\035zds\t(w\\t\311F\030\033\270\216\n8\241e\353\275\307\206\013\001LY\211Lr\021\274#\323\220w\346)D\323\304\214CKs{\032d\265\371\241dj\030\245\031ZT`?\374(\013\365\352\033\363\330\313A\022\252\202\372\270\236&3fU\227\276\323\r\346\310\211z\226\023\352\214\021se$\247\bbfR?\272\270\207FT\224\353\374\226\373\344Fgu\274\rp~bK\263\336p\016\252\311\263|+\301+R\252-\373s\267"
	.string	"k\331V\300\2712LG)^NLL\304{\251\265\250\231iK8\246J)\022\006\204\277d\306H!\033\030\320\027\3164\204\234J\t+$\274\270\226\r\207\004\"\353\331T\274rd\272\225\247'\243\031&\363\034\0228\035\r\005\036\036\004\031\013\224\223\"D(E\363\252o\261y@D*\234\032\030;#\227\334\300w\f\262\264\240z\257\n\365&6w\212\311\224\235-\264/=\003k\310B\262\363\260\261\035'\216\240%\314\026\254\213i\206\251\261\2133Vy\r\274\202\035\n\307\265\352\351e\374\361K\016 +"
	.string	"\354]p|E\257R\276-\227q\274\305;1\362RZ\265?\225\243\260\002B\301\034IN%TC\213\nOh\031@\031\030\033\275\261\224\221\003\007\274\031\257\256U=\326fVC2\300x`O\275\213\304\375\311/\222\001\200\232\264\225\301\2655S\013\255.\263WS\371\031V\265\213\373\366-\0363\310a\3678F3LJ*\305Wi\204\357\021c\245\004T\243\344\316\203\210\230\362%\206\201\211\275\256Z\003\357\330"
	.string	"\035*\237U|\266\315\223\244o\273\023y\330\026E\270S\313\230\264{\250zf\374\274\n\332vPk\215\315e\220Bd\016\366\026\202\017\362\013&C3\2317\035\304\305\002\2074\234\242v>0s\206\\[\311\252\241C{\206\262\013%\266\360\210\275jL\224\203\204-|e%|\304*\327\307\262oX\310\355\031\233\204\213\214o@\215Hv7u\030\210\251ZD\234\253G\267\242\254\346\250,}F\221\005&AJ\261I\261\023C\260\3522\331i\245\b\250\034\370\226\260\201\b\177MR\242\251\340w\207\212C\345\227\035t\206:{\362"
	.ascii	"7\262\227G\003\024\016\250\026\n[\247\"'\301[\354]\361q\024\001"
	.ascii	"\230\211m1s*$\037[\223\217\3623\313\242\334\202\336\221\306\264"
	.ascii	"\223x+ac\274\022\202\337\205^\346\246\246Yu\263<\266\242}%\213"
	.ascii	"\323\027\320L\357\216\265W\272\002\324\224q\222<\326\016\231"
	.ascii	"\027\226k\351\017V\322\325?\243\274&)t\n\273\321g \251\247\006"
	.ascii	"\232d\336z&2\210\027\327J|/U\242F\033\007K\377\200DD^\021f\013"
	.ascii	"\033k&\337$+\217\300+\236\215\3658\333\027\2469\327\304a2"
	.align 8
.LC383:

	.ascii	"W\303\272L\327\201\330i\013L9\r\232X\263]i\245-R\315\031\001"
	.ascii	"*%\341X\242\301\233uG\n\003\232\005\305\2303\305\322\250(\013"
	.ascii	"3\336\225\266\f\033\265\3063\257q\023\217\260d(\0247\022\267"
	.ascii	"\2403\353\252<\rj\204\022\021 LgVK\305\026\363Cs\263\004p\241"
	.ascii	"\245\003;\205*"
	.string	",:\200\255\374\217\214\027b\373\006)\016Uu\235Fmg\322~\375;\270\366\\\177\032\320\021\271\232\306\226\340\272x\364V\301\221\0030C\r\246\314\221\206\313!\236G\250\316\373\302\276X\005R\303\n\361\350sLW/H\220\301\354\024\"[*\306A\346\302<\224\224)\2042?\305J\371)\232r\351-\005h7\304PTZ\210IA{@\243#hb\264\007\320\232p\"\334TGU\025[#\257\0170m\254\20374x\003A,\315W\333K\353\371xp\325\270a\333\254lJ\215\177\333\311&\222?\256\241q\276\027#T\365L\021\266\214\237\366\300\376\005\206\223$a\026\213\251\001\210\310l\272\316\200I\202\341\210\022\026@\021f\306ZUd%\253!EQlv\231\003\035\365k\024x\033\242DW)G\366?|\3515b\261\t\001x\004\001\342D\027G\227\317\346\253]Z\312\375\007Hm\02360c\036>"
	.string	"\237\332#\304'\365\264\302\005d1G\300\357\027\314JgL\226\221w\265\n7$%\255\276eJt\312\250\207\370|\335\344\222\354P'\005`\233\2361\212\346\273\\\344\251\242\202\361$Dw\233\272\3402\r\022\227\331\313\273\207a"
	.string	"\003\007\211\311\005!_8i\003\251N\346\214\274\227s\020\313\240+y7\\J\212^\354UiR\212\020\002\300\212\220\233\312\005\3612:4\256\362\b\037fv\223\233\202n\267t\213\200\324Z\036\241Zo\263\031c\366\030\031\2260\242\3230\032\361\023\336\364(\277\020u\030\3740U\362M(\243\214\264TCH\026\013\3060\035\323\347`\202\003\234\022\262\222Q\351\003\306\214{\330A\244S\\]\327\311Z\254\372\200f\367;\250\311\254\244\323\003\251\361\267o\3006\222\251\277\021\025\270Q\206bHf\034\372\3659\3019\236]\340;\206\260,\271\233-\247\320\007\3165C\324\273\224\373\034\311\236@\315\350qvu)\024M\243)yGUVE3>\360X7p\230\262\241Q\325\021\017\316\t!}Z"
	.ascii	"U\242\b\363\265\203\342\307\023gr$\033\205\265\2736}\264<\007"
	.ascii	"\345H\t\267\243\f\202\331\257ty\2537\330I\327x\2219\326\274\372"
	.ascii	"\3701Fw_o\032c-\027\221\017\nI\366tr\301\21249\314\003|\244-"
	.ascii	"~\270a\t\343\304{\331N\307\274\231\325\270*\217LM\035rG\310G"
	.ascii	"\231\251\005\215\001\204/\355iW\316\264\215\322\002\221\"\252"
	.ascii	"\217\3648\204\020\341\263\273\242v\302\252TN\371\221\227?\025"
	.ascii	"\347\305\233\211J\253'\365\316\255\335\350%3?D\003\233\002\347"
	.ascii	"\275\354!\374\r\217\233:\""
	.align 8
.LC384:

	.string	"C\032O\033-,l"
	.string	"\361i\013\276H%A\357=V7t\332\377\203 \177\226\336~^JY\325\3316\331D:\324\"\346Ey>z`\251\260\247l\326r\322\fi\270*Uc\337R\331o\232l\337\305o\275O\330\325\250\257\353*\t\331.\310T\tG\224\264\355-\263\201\360LhC\226\b\252\231\002\244\321h\236.\261\345\360zJ\034p\222b\327\302\377/\201\366\356\252\262\250jA\272!\016\261\277\216u\376\274\315\032\025\264\327\247\266\002W\310\235"
	.string	"\275\201\323\237\313\215\034\343'\201\002Y]\326R\367\373}U\204\207O3'\261t\004;5\016\275MA\376\b\275\016\205MA\313\260'\304\201\332d\334aQ\270\215\354\354\317\002-\332\302\342'6\301G\340w2\224#\034\005\211\226qT\305&\260\267\315\325\225h\356\377WI\244\f\261"
	.ascii	"\306\fd\200\211vU\331n\237d\326\026\204\300\263\025\006Fs,\031"
	.ascii	"@\237\345eT"
	.string	"\n1\211G\003\317\001y\312\350[\310\301\245s&I\203nH\346v@[\225\221\266[\242_\233H\233\236Wr\252\036\325\240\001C\313\237TI\375\0014W\243\3018t\313X\307[R\311\266\251\256I\\\313PJ\211\313_\024V\225\271!c/\270[\003\026\263\rJ\321\177\357\bb\326\261\346\312ja\034\212jr4\2646,\\\240\255\237v\227hw\230\317bM\311\363_\2737n\t\2251VS*\2203p\235\367U\264l\306\330=\343\241\021\341\232v\263a\340\357\024\311\035\270\331\034lm\236>F\364\"\221\375l\277\\\375\022'\026\373\006ui\216`*\263\236\351\216\r\201E\356\272\252\223t\365\263\273\r\364\320\375\203\244\016\r%\003\2149\351\276\340\034\367\234\206\363\baX\3201\325\305\350k\307\347\353\026\346\"P_(\210!8\204\300\265%\"\211\261\037\316[\376\353\373\357\n2\316\257\234\024\306%"
	.ascii	"\220\002\204c\333o\215\031hOT\021\b\376\223M\210\347\357\\\316"
	.ascii	"\235\256\2732p\013\223\227i\032hB\230\311\277\033|\"\321\274"
	.ascii	"\354?\312\317\273\027\362\355+\230\270^j\217\342H)\226\265\340"
	.ascii	"\231\351\320!\034\271A&\024\336\207\334\030\3226\023\355\177"
	.ascii	"l)\3147\267'\021m\331\001\302\201y8\302\237\315\002`\2113j\335"
	.ascii	"\300\236\312\220\336\232%\2467O\356\206\274\335\006\256=\252"
	.ascii	"\360\261\274[;'\220\324\331\367Y\276\370\254t6\022\242\273\366"
	.ascii	"\344]\350\262.\372a\"f%\324\303\2374k\204L^\276\3055Xf\300\013"
	.ascii	"rl\301d\f\2627\303J \247\306\003\322Q\364nk;\017\247\0332v\203"
	.ascii	"^>\235\245\271H^x\226\024\257I\361\351PM\262R\2061\373\341\315"
	.ascii	"}\276\350Qd\344\300\231\242zE\203\351$}\007\217\2100\264ht\301"
	.ascii	"\260\020\277<\331\016\260wIa\3629\272"
	.align 8
.LC388:

	.ascii	"s\233\213\037jWf1\013\006\031\004\002\024"
	.string	"8\273\326\032\024\360\205\375\340)\2653\206\3547a\252\347x(\373\031\336\334P\335\301\303-:DJ\025K\3703\250%q1ZVU\375;\006e\034 \367\2607\215x$rh\f\373\271\035\007\3221\020\330\261X\343\250\363)]\222\227dm\345\201L\350*\350t\246ELa\366[\013\355yw\316\001\307i\231\316\206um\242j/Z\t<\005ps\026\331*\302\262^r\302\026\016`L\220\3039\330\320?\250EM@\307\007\2013\005\346\nH\211,mH\373\030\031\370\240\222\030bI\345\002\035\203\213\254\350\031\241\307\307,[E\317\203\230\305*K\355\323\245\236\244^H\367n\303\340xhqC\023r\263o\247\265c\227\313\225\351 \n\231\013q\273N\020\272>|\b\304\246((\265I\314\344\365\b\177\322\244\353xd\375\334_\222\250h\325\273p\253QQ\f\260C\301E\267N\260_r\345\226K\307\005"
	.string	"\260\310\223\340\036\241\253w\304s\177#j\250\335\034a\362\327\256\\\223\020$(\022\252\003J\252\323\274\337\"MB\363G\t\300_\0228\262\030\3543\335\200L\26312\363d|\275H\246\365\365Jhf\262KQ\203\353f\221\320\240\204k4o\207y\207\362kv\276\263\005P{4\362\341\314\225\313\201\205\273^5`go0'R\303\202N\220\275\204\b\033(\211\037\315\3321?\0067eYNA\340\205*eU\037\362P\263\030\212*a\274_vP;9\026\360da\312\001\037\341\321\221S\342d)\2607:E9\3372GGv\276\313\354\246\b\351poe\255\222B+\273(\266\271\311l\240+a=\\\006\356\343\037\2372\"3"
	.string	"\262\"\343\225\\\260Z\033\253\254`*\263\036\030t\025J\203\324\274T\334\334\224\326\320Z\337\274oFa=\205\201E\355\353c\371 DU\033\271\350\273c\007\020\033\357[\302h[\313\0045<\224\204>\311\224(i\211\231\371\225\2003j\220>\263\b\b\343\001\241\210y\260\233\213 Yh\346$\177:\024\271"
	.string	"\223]\200\212|\370!\205\025\363\270\301;T\007)\252t\033BF\013A\027\340UV\031F\nZHLR\025\017;\033`"
	.ascii	"\225\322%\237EVz>\003N\0249\257^\323\274Aa\223RwS\005)$&\030"
	.ascii	"I\023\302S\331TF\374E3\376\022y\365Z\004\233\314p\255P\206\255"
	.ascii	"r\307@\325=X[K\223 B\242\204;i\\!\237\261<\243\300\317bV\312"
	.ascii	"\202\345\212\230\373y\210\006\221'\034\032\30508\225<\016\306"
	.ascii	"\007\222\006\305\f]$\315\376\200#C\221\272\027b\031}\361,\315"
	.ascii	"\001\004{t;\234\253-\310\253\270a\031\017\374\222\306\242k\206"
	.ascii	"P\366\240\r\364@M\262T$hj4U\306E\220Q\0324:\214sLU\213Bt\264"
	.ascii	"9w\022\023\355[\306(X_u\013g\323\300B\226\334K\332VD\354\325"
	.ascii	"\204\356\207\013F\247\004\345\321\237\2417nf\210\ts\253V\245"
	.ascii	"\026\r\213\231\302\264\272N\027|%\262J\233\337\200\272\033H\302"
	.ascii	"|\210\275,\253\275\230\2004\363\\\247\222T\236MW\233 \245\007"
	.ascii	"EGC\021\227\243b{]|us\372\223\006R\372\231\232\022\211\025\314"
	.ascii	"\001sz\bp\243\002\241Q8\263\205H\265\232e\323\227\266\240\374"
	.ascii	"\266a#\255\223G\310\234\365\276\220\251\254\317JaoB6\232\203"
	.ascii	"\231\317\304n\234\306\241\001\3745?\362'\306\362b\267\225\242"
	.ascii	"\025pIz\233\255-|\277.\207z\336\202\3107\352h\274BC\215\367\236"
	.ascii	"\305\2261\213W\230\0345\226\207\025\247Y\364S\203\\\274'\327"
	.ascii	"YL\270e\335Q\025!r\260\2416\276*J\225\355\n\200'\341_\31275\023"
	.ascii	"\351\212*2\310\342$b\377\264FCT\036\214E\203^g\201\321\231\216"
	.ascii	"\227\251N\364\230\317A\240\200 \260\237\234\2546\254B(\211EX"
	.ascii	"\363)a\rR\210 \212\233D\366\024\330&D\n\207\271 \340|Tp\301\001"
	.ascii	"$Z\327x[0\244\305L\323\240\354\b\214\366\262}C\020Lc\360Vuh&"
	.ascii	"8\373\257\026\250\252\270\221\004X\265\301\341\333`\263\242\006"
	.ascii	"\267\362\177PD\013\302&\tXE8\263Sp\t\001\230\213DV\332\326\f"
	.ascii	"\230\372T\302\272\253\322\2738y\267/\274\325\003\025:h\245(>"
	.ascii	"\027`\211n\031\317\333\274\264>\206E\210\232*\341\034\017\234"
	.ascii	"t\2528\265\250\023\022\n?\365\b\367S\310"
	.string	"(\366Fe\361\036\246\034T\302\250\260\252\270\303\33054\257\t8\334\230Y\215\360\025\3107\306\237\265S\rp\001\365;B\234\n\276B0`\207\3458\334'\310\3264\200\226\327\317\031A.>2\263\322S\310#8\031\203\340\210\301\340\241\237\021Q\0073\252\007\366\026\002\332\215\275 jb\266\251\341\220\255\215\331\301\221Rm&\327'\375\025\225FTq\322\360U\261At\347\002\034\204\nb\027\"\254\013v\303\360\344\036$\234\212\241\006\234RU8\215\273\310\251\326\275\313;\212,\031\b\365@tTQpm\b\276\300\220-\276\312.\351\211\f*$\035\336G\303bf\026\264<}9\366?\230\234bw\303\017p\371{\255\t\211\313d\254\276\264\244\003\322\244\266W\0063\211\206\311\240y\261\213}C\361\031\245\024\252Y\006l\3349\021\314<\304\213\354VE\222{%c\246Q7\265\002V\260\363\332%\325\344\020\222"
	.ascii	"\235\f{\3059\213\267\317\025<\313\205N\257\262\024@\223s\233"
	.ascii	"z|\315\003\310\313\250\262\302\211.W\371\234\275\003#O\t\227"
	.ascii	"R\327\261\005\354E\301\241S\2730\r\267u;>\263\013vYV\3507\273"
	.ascii	"\252\214Q\253\330\276T\353d\253R)a\033K\214\356\324\327z\343"
	.ascii	"\263\2235\244\244zh\2528PBP\202\230t\320\354\306\337\364\230"
	.ascii	"m\032\345\214\376Sz\375.\002\262\304K\240\210\347\363\333\322"
	.ascii	"\037\235\034\0027\027\205tnfrc\265\rH\304\205Z\342I\253L\200"
	.ascii	"\311\264\223\322+\371Y\315n\205\375(\300\315\237\256\316\327"
	.ascii	"\017\247\220"
	.align 8
.LC389:

	.string	"\257J"
	.ascii	"h\303sD\327\341\006\251\3159w\234\370\307g\325\270\034\263D4"
	.ascii	"@\332\336\024\302\304\203'\2724(E\334\214X\213\322]\233U\342"
	.ascii	"\1773\023B\342F\275\325m\030:\301\340x\204 W?7\342)\324I\013"
	.ascii	"\364\027\263\376\332B \327v\245"
	.string	")\331o|\335\372\036\316\204\201QV\223T\213\267o_\267\332\246]\373\023\277\204\335\034\244\340\357~I\340\321\350\243\221\216<\351\247\204\263}\302\244\322\322\323\021\367\006\345\005\241\331>U#i\345\020\240\322\3124z\354\370\204b\342\375\340\246\311\376\264\225\006\244\374\353\337\230w\253\321\214\250\037\352d\021_\261y\3435\340\006\220[r*X\210\367=p\355w&\340r/U$\016\342\302\005\323\342\262\3057\245-\360+\266\223\364\327!\001\0275\316\021\270\007Cv\026\377!=q\303\2472HL[\303\332\355\352\364\373\340/\305\341\271\260\314\202\366\246\345\034\013\312Omf\376\031\202\317\334H\004\373\310\247g\274D.\2054\366:\363\260\320W\274l\225\013^\n\007\256\237\003\205Q\n\347\214\021\242\241\036\273\204\234\023\341w\331\202\333|\324}U\370\bl\024\345\301\303\346\310 IA\274\243y\026\376 \025\302\231\r"
	.ascii	"\275\230d\034\346\025\004S\206\201)9\320\274\267Bw\374\267\030"
	.ascii	"4\355)~\332\207\333\035\371\024\227\205H\225\366\315\215\224"
	.ascii	"\317\313A\355\301\276\025\035\371\024s\343~\272Tn\025bzm\275"
	.ascii	"X=\233\240\3554\356Q\032\b1\353\2415h)u\2429\364\225\343\t\204"
	.ascii	"+\253\356\366\364\016{\264\326\315E\t^?\221\371\266\033\2065"
	.ascii	"\234\335\005\327\233\267/^\252.\271\205N!\240\031LF\215\237\347"
	.ascii	"\350\237<\016t\365p"
	.string	"\370\213[P\025\324\273L\213\313\236\246C\355\316W\272r\021L\365\206\315o\270\244\352[\005\004G\340k\267\023\211\036\023F\315\"v\362\270c\226\344\317BA'o\354\316\354y\3478\334\264t^-\315}h\230\206%)\362L8y\353\356B\330yg\222\333z|\206\322\212\261\217&\271\233l\374\202\363\237\347\300\345psm3\241w\013\350 \003fnOi\261\030k=U\203\212\205\033\207\276\266\347\"\001\376?\212%\364\206~\306>\350\376\253\005\377\366\b9\017\244\215\030`i\200\234\246B\240\347D\217:\320\302\331\021\263<\027\\f\242\352\337\272y\342\274\024\f\003\277\226`\354(\264\035\007\034\017\373\307<\342X_=\345\341\230\360%\347\257\324\275\022g\341\365N\0064\226\376\363\351f\305\267\032V[\371\274\374p4!k[\366!\242\302\027\233R\351\311\222\207\033\326a\2079m\306\237#\224\253 \304\027"
	.ascii	",\203\016pZ\b\254 \\a8\004\257\025\254,eU;i\325\320\022\315\220"
	.ascii	"\345\n@\375\333\216\332\2503\023\260\b\233]i\227\031?!"
	.align 8
.LC390:

	.ascii	"\030\032\371\271\361c\243\004\235\227\330\031K\\&5_\311\371\334"
	.ascii	"\277\022\005v\253\344Mq\240\331\221\006\325W]\264\321\021"
	.string	"\211\300\353\275;0\236+\177\270k\262Q\376\275\f\265\0334r\211R\336\223\255\361R\271\2629'y\004\223\223t\315c\211\311\236\322m\311\267\327\244\202\202\351\034\217Qu\312\324\313\fI\373[\035[2\372\211\004\324\204I\341\n\030\243\231`%\261N\307\023|\020I\350o\240\321%\262\265\341\246\321\350\372\215m\301\333g%<\272D\262\246\265\361\245\350\177\005)\032\003\333\322upp,\267\fF\343\342\322`\230@e\311i\030\204\330\206b2h\213wC\362\177F\222\311>\224\341\005g\366\"l\357\350 0\375\n\203Tz\214\n\037\367\312\201&\bv\005h\354i(\340\3460\327\3517\251f\231\024~4\276\004\273\267\353\265U\007\353Qa\320\351\333\023\276\"\025\267!\345GA\307S\345\nP\266\234\025\227\f\261,\222\304\005\245\b\256\243\316\027\263\250N%6\024\372g\213\006\363\016\031|\377\037A$8\350"
	.string	"Fp\330\210\336\r\362\301\023\234\302\223\356:\271/\251\216\335J\276k\346\312}\315r\347'0\255\234\257\300\223YMWB\335\365\025Kc\0274)\334^\3603\231\311\3219Q\b\310\224\262CY\320\261\377D\237\270\336\260\313XE\307\024u\305\311\242L{w^\007\231!I\344\345|y\027\300\032\355@)x\240\360\247\265\220\312\317\277!\246\317Y\n}\r\n\327\244U\230+\343/\224\354\265B\234$\026.\023\r\222\023\004\212ec9\017c\376\217\373\032\257-Q\337\356Gv\006\243\205\371\241j"
	.string	"\230\006\177\367\211\020*\254\325\231\356\230y\357M\267\353\300\361\314\036}\345\322[ge\025\231J"
	.string	"\226\221\364\342\2571\037\367=+\352\313\333+(r\322~\340/pP\350\021\230\364\177\347^\n\240B\201\360\236]]\031\213\b\276\305a2\216\313\215\2242N\246\341\255\237\255z\217\277OK\033\221\314\025\013\017l\206@\257.\021+n\353\276\216\2403\201 \t?X\273\350\256\256}\367(\217\357\035\350\2532Z\222\264,\n\250\355:b\355\232\206\351F\377\335\334\207\257\200\025\264\356d\337_\364\216\224\021TZ"
	.ascii	"x\317\026\321I\373\363\0318\256\261\020\222rzE,\250K\253\267"
	.ascii	"\003\2119\250\333?\241\004H\027\354\003\203/l\nv\342\266\026"
	.ascii	"\273@\262\347b\021\271\037\371i\334\340\255\006\237\267)G\036"
	.ascii	"\225\272\3165\216\033\277\362\275\253\327B\230W\333\253r!EG\257"
	.ascii	"\032\274\333\b\211n\347\177\023\362\327[\027\027Do\312}\363."
	.ascii	"\376\034-\t\334\375[\372\377\321\236\336~P+cd\253\343.\204I\231"
	.ascii	"\264G|\231\212\237\263\311\272\273\350<n\306\023t\f+\004u\354"
	.ascii	"\2672\336Qd8h\353\267"
# WAS .section	.text.boringssl_self_test_ml_kem,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_ml_kem, @function
.Lboringssl_self_test_ml_kem_local_target:
boringssl_self_test_ml_kem:
.LFB2782:

	.cfi_startproc
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4144
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8240
	orq	$0, (%rsp)
	subq	$2512, %rsp
	.cfi_def_cfa_offset 10752
	leaq	.LC380(%rip), %rsi
	movdqa	.LC400(%rip), %xmm0
	movdqa	.LC313(%rip), %xmm1
	movdqa	.LC314(%rip), %xmm2
	movdqa	.LC315(%rip), %xmm3
	movdqa	.LC316(%rip), %xmm4
	movdqa	.LC60(%rip), %xmm5
	movq	%fs:40, %rax
	movq	%rax, 10696(%rsp)
	xorl	%eax, %eax
	movl	$100, %eax
	leaq	3392(%rsp), %rbp
	movaps	%xmm0, 256(%rsp)
	movq	%rax, %rcx
	movq	%rbp, %rdi
	movdqa	.LC401(%rip), %xmm0
	leaq	5792(%rsp), %rbx
	rep movsq
	leaq	.LC381(%rip), %rsi
	movq	%rbx, %rdi
	movq	%rsp, %r14
	movaps	%xmm0, 272(%rsp)
	movdqa	.LC402(%rip), %xmm0
	leaq	7424(%rsp), %r12
	leaq	4192(%rsp), %r13
	movq	%r12, %rdx
	movaps	%xmm1, (%rsp)
	movaps	%xmm0, 288(%rsp)
	movdqa	.LC403(%rip), %xmm0
	movq	$768, 80(%rsp)
	movaps	%xmm0, 304(%rsp)
	movq	%rcx, %rax
	movl	$204, %ecx
	movaps	%xmm2, 16(%rsp)
	rep movsq
	leaq	7424(%rsp), %rdi
	movl	$204, %ecx
	movq	%r13, %rsi
	rep stosq
	movl	$100, %ecx
	movaps	%xmm3, 32(%rsp)
	leaq	4192(%rsp), %rdi
	rep stosq
	leaq	256(%rsp), %rcx
	movq	%r14, %rdi
	movaps	%xmm4, 48(%rsp)
	movaps	%xmm5, 64(%rsp)
# WAS call	ml_kem_keypair_derand_ref
	call	.Lml_kem_keypair_derand_ref_local_target
	testl	%eax, %eax
	je	.L22160
.L22165:

	xorl	%eax, %eax
.L22159:

	movq	10696(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22186
	addq	$10704, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22160:

	.cfi_restore_state
	movl	$1632, %edx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	jne	.L22162
.L22166:

	movl	$800, %edx
	movq	%rbp, %rsi
	movq	%r13, %rdi
# WAS call	memcmp@PLT
	call	.Lbcm_redirector_memcmp
	testl	%eax, %eax
	jne	.L22187
.L22164:

	movdqa	.LC406(%rip), %xmm0
	leaq	4992(%rsp), %rdi
	leaq	.LC383(%rip), %rsi
	movl	$100, %ecx
	rep movsq
	movdqa	.LC313(%rip), %xmm6
	movdqa	.LC314(%rip), %xmm7
	leaq	4992(%rsp), %r13
	movaps	%xmm0, 128(%rsp)
	movdqa	.LC407(%rip), %xmm0
	leaq	320(%rsp), %rdi
	leaq	.LC384(%rip), %rsi
	movaps	%xmm6, (%rsp)
	movdqa	.LC315(%rip), %xmm6
	leaq	2624(%rsp), %rbx
	leaq	2656(%rsp), %rdx
	movaps	%xmm0, 144(%rsp)
	pxor	%xmm0, %xmm0
	leaq	9056(%rsp), %rbp
	leaq	1088(%rsp), %r12
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm0, 176(%rsp)
	movdqa	.LC404(%rip), %xmm0
	movq	%rcx, %rax
	movaps	%xmm7, 16(%rsp)
	movl	$96, %ecx
	movdqa	.LC316(%rip), %xmm7
	rep movsq
	movaps	%xmm6, 32(%rsp)
	leaq	1088(%rsp), %rdi
	movdqa	.LC60(%rip), %xmm6
	movl	$96, %ecx
	movl	$800, %esi
	movaps	%xmm7, 48(%rsp)
	rep stosq
	movq	%r13, %rdi
	movaps	%xmm0, 2624(%rsp)
	movdqa	.LC405(%rip), %xmm0
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm0, 2640(%rsp)
	movq	$768, 80(%rsp)
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	movq	%rbp, %rdx
	movl	$64, %esi
	movq	%rbx, %rdi
# WAS call	SHA3_512@PLT
	call	.LSHA3_512_local_target
	movq	%r13, %rcx
	movq	%rbx, %rdx
	movq	%r12, %rsi
	leaq	9088(%rsp), %r8
	movq	%r14, %rdi
# WAS call	ml_kem_indcpa_enc_ref
	call	.Lml_kem_indcpa_enc_ref_local_target
	movl	$64, %esi
	movq	%rbx, %rdi
	movdqa	9056(%rsp), %xmm7
	movdqa	9072(%rsp), %xmm6
	movaps	%xmm7, 160(%rsp)
	movaps	%xmm6, 176(%rsp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$64, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	leaq	320(%rsp), %rdi
	movl	$768, %edx
	movq	%r12, %rsi
	leaq	.LC385(%rip), %rcx
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L22165
	leaq	160(%rsp), %r12
	leaq	128(%rsp), %rdi
	movl	$32, %edx
	leaq	.LC387(%rip), %rcx
	movq	%r12, %rsi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L22165
	movdqa	.LC408(%rip), %xmm0
	leaq	.LC388(%rip), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	movl	$204, %ecx
	rep movsq
	movaps	%xmm0, 192(%rsp)
	leaq	1856(%rsp), %rdi
	movdqa	.LC409(%rip), %xmm0
	leaq	.LC389(%rip), %rsi
	movl	$96, %ecx
	rep movsq
	leaq	.LC390(%rip), %rsi
	movl	$96, %ecx
	movq	%rbx, %rdi
	rep movsq
	movaps	%xmm0, 208(%rsp)
	movdqa	.LC410(%rip), %xmm0
	movq	%r12, %rdi
	leaq	1856(%rsp), %rsi
	movaps	%xmm0, 224(%rsp)
	movdqa	.LC411(%rip), %xmm0
	movaps	%xmm0, 240(%rsp)
# WAS call	ml_kem_512_decapsulate_no_self_test
	call	.Lml_kem_512_decapsulate_no_self_test_local_target
	testl	%eax, %eax
	jne	.L22165
	leaq	192(%rsp), %rdi
	leaq	.LC391(%rip), %rcx
	movl	$32, %edx
	movq	%r12, %rsi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L22165
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
# WAS call	ml_kem_512_decapsulate_no_self_test
	call	.Lml_kem_512_decapsulate_no_self_test_local_target
	testl	%eax, %eax
	jne	.L22165
.L22161:

	leaq	224(%rsp), %rdi
	leaq	.LC392(%rip), %rcx
	movl	$32, %edx
	movq	%r12, %rsi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L22159
	.p2align 4,,10
	.p2align 3
.L22162:

	leaq	.LC382(%rip), %rcx
	movl	$1632, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	je	.L22165
	jmp	.L22166
	.p2align 4,,10
	.p2align 3
.L22187:

	leaq	.LC386(%rip), %rcx
	movl	$800, %edx
	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	je	.L22165
	jmp	.L22164
.L22186:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2782:

	.size	boringssl_self_test_ml_kem, .-boringssl_self_test_ml_kem
# WAS .section	.text.unlikely.run_self_test_ml_kem,"ax",@progbits
.text
.LCOLDB412:

# WAS .section	.text.run_self_test_ml_kem,"ax",@progbits
.text
.LHOTB412:

	.p2align 4
	.type	run_self_test_ml_kem, @function
.Lrun_self_test_ml_kem_local_target:
run_self_test_ml_kem:
.LFB2790:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_ml_kem
	call	.Lboringssl_self_test_ml_kem_local_target
	testl	%eax, %eax
	je	.L22190
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.run_self_test_ml_kem
.text
	.cfi_startproc
	.type	run_self_test_ml_kem.cold, @function
.Lrun_self_test_ml_kem.cold_local_target:
run_self_test_ml_kem.cold:
.LFSB2790:

.L22190:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2790:

# WAS .section	.text.run_self_test_ml_kem
.text
	.size	run_self_test_ml_kem, .-run_self_test_ml_kem
# WAS .section	.text.unlikely.run_self_test_ml_kem
.text
	.size	run_self_test_ml_kem.cold, .-run_self_test_ml_kem.cold
.LCOLDE412:

# WAS .section	.text.run_self_test_ml_kem
.text
.LHOTE412:

# WAS .section	.text.sha3_256_final,"ax",@progbits
.text
	.p2align 4
	.type	sha3_256_final, @function
.Lsha3_256_final_local_target:
sha3_256_final:
.LFB3167:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA3_Final@PLT
	jmp	.LSHA3_Final_local_target
	.cfi_endproc
.LFE3167:

	.size	sha3_256_final, .-sha3_256_final
# WAS .section	.text.sha3_384_final,"ax",@progbits
.text
	.p2align 4
	.type	sha3_384_final, @function
.Lsha3_384_final_local_target:
sha3_384_final:
.LFB3169:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA3_Final@PLT
	jmp	.LSHA3_Final_local_target
	.cfi_endproc
.LFE3169:

	.size	sha3_384_final, .-sha3_384_final
# WAS .section	.text.sha3_512_final,"ax",@progbits
.text
	.p2align 4
	.type	sha3_512_final, @function
.Lsha3_512_final_local_target:
sha3_512_final:
.LFB3171:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA3_Final@PLT
	jmp	.LSHA3_Final_local_target
	.cfi_endproc
.LFE3171:

	.size	sha3_512_final, .-sha3_512_final
# WAS .section	.text.SHA384_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384_Init
	.type	SHA384_Init, @function
.LSHA384_Init_local_target:
SHA384_Init:
.LFB2881:

	.cfi_startproc
	endbr64
	movdqa	.LC413(%rip), %xmm0
	movq	.LC417(%rip), %rax
	movups	%xmm0, (%rdi)
	movdqa	.LC414(%rip), %xmm0
	movq	%rax, 208(%rdi)
	movl	$1, %eax
	movups	%xmm0, 16(%rdi)
	movdqa	.LC415(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC416(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2881:

	.size	SHA384_Init, .-SHA384_Init
# WAS .section	.text.sha384_init,"ax",@progbits
.text
	.p2align 4
	.type	sha384_init, @function
.Lsha384_init_local_target:
sha384_init:
.LFB1668:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA384_Init@PLT
	jmp	.LSHA384_Init_local_target
	.cfi_endproc
.LFE1668:

	.size	sha384_init, .-sha384_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA384_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA384_Init, @function
.LAWS_LC_TRAMPOLINE_SHA384_Init_local_target:
AWS_LC_TRAMPOLINE_SHA384_Init:
.LFB2342:

	.cfi_startproc
	endbr64
# WAS jmp	SHA384_Init@PLT
	jmp	.LSHA384_Init_local_target
	.cfi_endproc
.LFE2342:

	.size	AWS_LC_TRAMPOLINE_SHA384_Init, .-AWS_LC_TRAMPOLINE_SHA384_Init
# WAS .section	.text.SHA512_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_Init
	.type	SHA512_Init, @function
.LSHA512_Init_local_target:
SHA512_Init:
.LFB2882:

	.cfi_startproc
	endbr64
	movdqa	.LC418(%rip), %xmm0
	movq	.LC422(%rip), %rax
	movups	%xmm0, (%rdi)
	movdqa	.LC419(%rip), %xmm0
	movq	%rax, 208(%rdi)
	movl	$1, %eax
	movups	%xmm0, 16(%rdi)
	movdqa	.LC420(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC421(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2882:

	.size	SHA512_Init, .-SHA512_Init
# WAS .section	.text.sha512_init,"ax",@progbits
.text
	.p2align 4
	.type	sha512_init, @function
.Lsha512_init_local_target:
sha512_init:
.LFB1674:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_Init@PLT
	jmp	.LSHA512_Init_local_target
	.cfi_endproc
.LFE1674:

	.size	sha512_init, .-sha512_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_Init, @function
.LAWS_LC_TRAMPOLINE_SHA512_Init_local_target:
AWS_LC_TRAMPOLINE_SHA512_Init:
.LFB2347:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Init@PLT
	jmp	.LSHA512_Init_local_target
	.cfi_endproc
.LFE2347:

	.size	AWS_LC_TRAMPOLINE_SHA512_Init, .-AWS_LC_TRAMPOLINE_SHA512_Init
# WAS .section	.text.SHA512_224_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224_Init
	.type	SHA512_224_Init, @function
.LSHA512_224_Init_local_target:
SHA512_224_Init:
.LFB2883:

	.cfi_startproc
	endbr64
	movdqa	.LC423(%rip), %xmm0
	movq	.LC427(%rip), %rax
	movups	%xmm0, (%rdi)
	movdqa	.LC424(%rip), %xmm0
	movq	%rax, 208(%rdi)
	movl	$1, %eax
	movups	%xmm0, 16(%rdi)
	movdqa	.LC425(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC426(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2883:

	.size	SHA512_224_Init, .-SHA512_224_Init
# WAS .section	.text.sha512_224_init,"ax",@progbits
.text
	.p2align 4
	.type	sha512_224_init, @function
.Lsha512_224_init_local_target:
sha512_224_init:
.LFB1680:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_224_Init@PLT
	jmp	.LSHA512_224_Init_local_target
	.cfi_endproc
.LFE1680:

	.size	sha512_224_init, .-sha512_224_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_224_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_224_Init, @function
.LAWS_LC_TRAMPOLINE_SHA512_224_Init_local_target:
AWS_LC_TRAMPOLINE_SHA512_224_Init:
.LFB2352:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_224_Init@PLT
	jmp	.LSHA512_224_Init_local_target
	.cfi_endproc
.LFE2352:

	.size	AWS_LC_TRAMPOLINE_SHA512_224_Init, .-AWS_LC_TRAMPOLINE_SHA512_224_Init
# WAS .section	.text.SHA512_256_Init,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256_Init
	.type	SHA512_256_Init, @function
.LSHA512_256_Init_local_target:
SHA512_256_Init:
.LFB2884:

	.cfi_startproc
	endbr64
	movdqa	.LC428(%rip), %xmm0
	movq	.LC432(%rip), %rax
	movups	%xmm0, (%rdi)
	movdqa	.LC429(%rip), %xmm0
	movq	%rax, 208(%rdi)
	movl	$1, %eax
	movups	%xmm0, 16(%rdi)
	movdqa	.LC430(%rip), %xmm0
	movups	%xmm0, 32(%rdi)
	movdqa	.LC431(%rip), %xmm0
	movups	%xmm0, 48(%rdi)
	pxor	%xmm0, %xmm0
	movups	%xmm0, 64(%rdi)
	ret
	.cfi_endproc
.LFE2884:

	.size	SHA512_256_Init, .-SHA512_256_Init
# WAS .section	.text.sha512_256_init,"ax",@progbits
.text
	.p2align 4
	.type	sha512_256_init, @function
.Lsha512_256_init_local_target:
sha512_256_init:
.LFB1686:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_256_Init@PLT
	jmp	.LSHA512_256_Init_local_target
	.cfi_endproc
.LFE1686:

	.size	sha512_256_init, .-sha512_256_init
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_256_Init,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_256_Init, @function
.LAWS_LC_TRAMPOLINE_SHA512_256_Init_local_target:
AWS_LC_TRAMPOLINE_SHA512_256_Init:
.LFB2357:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_256_Init@PLT
	jmp	.LSHA512_256_Init_local_target
	.cfi_endproc
.LFE2357:

	.size	AWS_LC_TRAMPOLINE_SHA512_256_Init, .-AWS_LC_TRAMPOLINE_SHA512_256_Init
# WAS .section	.text.SHA384_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384_Init_from_state
	.type	SHA384_Init_from_state, @function
.LSHA384_Init_from_state_local_target:
SHA384_Init_from_state:
.LFB2886:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$1023, %r9d
	je	.L22210
	ret
	.p2align 4,,10
	.p2align 3
.L22210:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 200(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$216, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$48, 212(%r8)
	movq	(%rsi), %rax
	bswap	%rax
	movq	%rax, (%r8)
	movq	8(%rsi), %rax
	bswap	%rax
	movq	%rax, 8(%r8)
	movq	16(%rsi), %rax
	bswap	%rax
	movq	%rax, 16(%r8)
	movq	24(%rsi), %rax
	bswap	%rax
	movq	%rax, 24(%r8)
	movq	32(%rsi), %rax
	bswap	%rax
	movq	%rax, 32(%r8)
	movq	40(%rsi), %rax
	bswap	%rax
	movq	%rax, 40(%r8)
	movq	48(%rsi), %rax
	bswap	%rax
	movq	%rax, 48(%r8)
	movq	56(%rsi), %rax
	movq	%rdx, 64(%r8)
	bswap	%rax
	movq	%rax, 56(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2886:

	.size	SHA384_Init_from_state, .-SHA384_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA384_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA384_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA384_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA384_Init_from_state:
.LFB2345:

	.cfi_startproc
	endbr64
# WAS jmp	SHA384_Init_from_state@PLT
	jmp	.LSHA384_Init_from_state_local_target
	.cfi_endproc
.LFE2345:

	.size	AWS_LC_TRAMPOLINE_SHA384_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA384_Init_from_state
# WAS .section	.text.SHA512_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_Init_from_state
	.type	SHA512_Init_from_state, @function
.LSHA512_Init_from_state_local_target:
SHA512_Init_from_state:
.LFB2887:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$1023, %r9d
	je	.L22215
	ret
	.p2align 4,,10
	.p2align 3
.L22215:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 200(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$216, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$64, 212(%r8)
	movq	(%rsi), %rax
	bswap	%rax
	movq	%rax, (%r8)
	movq	8(%rsi), %rax
	bswap	%rax
	movq	%rax, 8(%r8)
	movq	16(%rsi), %rax
	bswap	%rax
	movq	%rax, 16(%r8)
	movq	24(%rsi), %rax
	bswap	%rax
	movq	%rax, 24(%r8)
	movq	32(%rsi), %rax
	bswap	%rax
	movq	%rax, 32(%r8)
	movq	40(%rsi), %rax
	bswap	%rax
	movq	%rax, 40(%r8)
	movq	48(%rsi), %rax
	bswap	%rax
	movq	%rax, 48(%r8)
	movq	56(%rsi), %rax
	movq	%rdx, 64(%r8)
	bswap	%rax
	movq	%rax, 56(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2887:

	.size	SHA512_Init_from_state, .-SHA512_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_Init_from_state:
.LFB2350:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Init_from_state@PLT
	jmp	.LSHA512_Init_from_state_local_target
	.cfi_endproc
.LFE2350:

	.size	AWS_LC_TRAMPOLINE_SHA512_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA512_Init_from_state
# WAS .section	.text.SHA512_224_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224_Init_from_state
	.type	SHA512_224_Init_from_state, @function
.LSHA512_224_Init_from_state_local_target:
SHA512_224_Init_from_state:
.LFB2888:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$1023, %r9d
	je	.L22220
	ret
	.p2align 4,,10
	.p2align 3
.L22220:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 200(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$216, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$28, 212(%r8)
	movq	(%rsi), %rax
	bswap	%rax
	movq	%rax, (%r8)
	movq	8(%rsi), %rax
	bswap	%rax
	movq	%rax, 8(%r8)
	movq	16(%rsi), %rax
	bswap	%rax
	movq	%rax, 16(%r8)
	movq	24(%rsi), %rax
	bswap	%rax
	movq	%rax, 24(%r8)
	movq	32(%rsi), %rax
	bswap	%rax
	movq	%rax, 32(%r8)
	movq	40(%rsi), %rax
	bswap	%rax
	movq	%rax, 40(%r8)
	movq	48(%rsi), %rax
	bswap	%rax
	movq	%rax, 48(%r8)
	movq	56(%rsi), %rax
	movq	%rdx, 64(%r8)
	bswap	%rax
	movq	%rax, 56(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2888:

	.size	SHA512_224_Init_from_state, .-SHA512_224_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_224_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state:
.LFB2355:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_224_Init_from_state@PLT
	jmp	.LSHA512_224_Init_from_state_local_target
	.cfi_endproc
.LFE2355:

	.size	AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA512_224_Init_from_state
# WAS .section	.text.SHA512_256_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256_Init_from_state
	.type	SHA512_256_Init_from_state, @function
.LSHA512_256_Init_from_state_local_target:
SHA512_256_Init_from_state:
.LFB2889:

	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movq	%rdi, %r8
	xorl	%eax, %eax
	andl	$1023, %r9d
	je	.L22225
	ret
	.p2align 4,,10
	.p2align 3
.L22225:

	movq	$0, (%rdi)
	leaq	8(%rdi), %rdi
	movq	%r8, %rcx
	movq	%r9, %rax
	movq	$0, 200(%rdi)
	andq	$-8, %rdi
	subq	%rdi, %rcx
	addl	$216, %ecx
	shrl	$3, %ecx
	rep stosq
	movl	$32, 212(%r8)
	movq	(%rsi), %rax
	bswap	%rax
	movq	%rax, (%r8)
	movq	8(%rsi), %rax
	bswap	%rax
	movq	%rax, 8(%r8)
	movq	16(%rsi), %rax
	bswap	%rax
	movq	%rax, 16(%r8)
	movq	24(%rsi), %rax
	bswap	%rax
	movq	%rax, 24(%r8)
	movq	32(%rsi), %rax
	bswap	%rax
	movq	%rax, 32(%r8)
	movq	40(%rsi), %rax
	bswap	%rax
	movq	%rax, 40(%r8)
	movq	48(%rsi), %rax
	bswap	%rax
	movq	%rax, 48(%r8)
	movq	56(%rsi), %rax
	movq	%rdx, 64(%r8)
	bswap	%rax
	movq	%rax, 56(%r8)
	movl	$1, %eax
	ret
	.cfi_endproc
.LFE2889:

	.size	SHA512_256_Init_from_state, .-SHA512_256_Init_from_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_256_Init_from_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state:
.LFB2360:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_256_Init_from_state@PLT
	jmp	.LSHA512_256_Init_from_state_local_target
	.cfi_endproc
.LFE2360:

	.size	AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state, .-AWS_LC_TRAMPOLINE_SHA512_256_Init_from_state
# WAS .section	.text.SHA384_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384_Final
	.type	SHA384_Final, @function
.LSHA384_Final_local_target:
SHA384_Final:
.LFB2894:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	80(%rsi), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	208(%rsi), %eax
	movq	%rsi, %rbx
	movb	$-128, 80(%rsi,%rax)
	addq	$1, %rax
	cmpq	$112, %rax
	jbe	.L22228
	movl	$128, %edx
	subq	%rax, %rdx
	jne	.L22281
.L22229:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22236
.L22238:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22237:

	movq	%rbp, %rax
	movl	$112, %edx
.L22239:

	movl	%edx, %ecx
	cmpl	$8, %edx
	jnb	.L22241
	andl	$4, %edx
	jne	.L22282
	testl	%ecx, %ecx
	jne	.L22283
	.p2align 4,,10
	.p2align 3
.L22240:

	movq	72(%rbx), %rax
	bswap	%rax
	movq	%rax, 192(%rbx)
	movq	64(%rbx), %rax
	bswap	%rax
	movq	%rax, 200(%rbx)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22284
.L22245:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
	testq	%r12, %r12
	je	.L22248
.L22286:

	movq	(%rbx), %rax
	bswap	%rax
	movq	%rax, (%r12)
	movq	8(%rbx), %rax
	bswap	%rax
	movq	%rax, 8(%r12)
	movq	16(%rbx), %rax
	bswap	%rax
	movq	%rax, 16(%r12)
	movq	24(%rbx), %rax
	bswap	%rax
	movq	%rax, 24(%r12)
	movq	32(%rbx), %rax
	bswap	%rax
	movq	%rax, 32(%r12)
	movq	40(%rbx), %rax
	bswap	%rax
	movq	%rax, 40(%r12)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22228:

	.cfi_restore_state
	movl	$112, %edx
	subq	%rax, %rdx
	je	.L22240
	addq	%rbp, %rax
	jmp	.L22239
	.p2align 4,,10
	.p2align 3
.L22281:

	addq	%rbp, %rax
	xorl	%edi, %edi
	cmpq	$8, %rdx
	jb	.L22285
	leaq	8(%rax), %rcx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rdx)
	andq	$-8, %rcx
	subq	%rcx, %rax
	addq	%rax, %rdx
	andq	$-8, %rdx
	cmpq	$8, %rdx
	jb	.L22229
	leaq	-1(%rdx), %rax
	movq	%rdx, %r8
	movq	$0, (%rcx)
	shrq	$3, %rax
	andq	$-8, %r8
	andl	$1, %eax
	movq	%rax, %rsi
	movl	$8, %eax
	cmpq	%rdx, %rax
	jnb	.L22229
	testq	%rsi, %rsi
	je	.L22234
	movl	$16, %eax
	movq	$0, 8(%rcx)
	cmpq	%r8, %rax
	jnb	.L22229
.L22234:

	movq	%rdi, (%rcx,%rax)
	movq	%rdi, 8(%rcx,%rax)
	addq	$16, %rax
	cmpq	%r8, %rax
	jb	.L22234
	jmp	.L22229
	.p2align 4,,10
	.p2align 3
.L22284:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22245
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	testq	%r12, %r12
	jne	.L22286
.L22248:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22241:

	.cfi_restore_state
	leaq	8(%rax), %rdi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rdi
	subq	%rdi, %rax
	leal	(%rdx,%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	jmp	.L22240
	.p2align 4,,10
	.p2align 3
.L22236:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22238
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22237
	.p2align 4,,10
	.p2align 3
.L22285:

	testb	$4, %dl
	jne	.L22287
	testq	%rdx, %rdx
	je	.L22229
	movb	$0, (%rax)
	testb	$2, %dl
	je	.L22229
	xorl	%ecx, %ecx
	movw	%cx, -2(%rax,%rdx)
	jmp	.L22229
	.p2align 4,,10
	.p2align 3
.L22283:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L22240
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L22240
.L22282:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L22240
.L22287:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rdx)
	jmp	.L22229
	.cfi_endproc
.LFE2894:

	.size	SHA384_Final, .-SHA384_Final
# WAS .section	.text.sha384_final,"ax",@progbits
.text
	.p2align 4
	.type	sha384_final, @function
.Lsha384_final_local_target:
sha384_final:
.LFB1670:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA384_Final@PLT
	jmp	.LSHA384_Final_local_target
	.cfi_endproc
.LFE1670:

	.size	sha384_final, .-sha384_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA384_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA384_Final, @function
.LAWS_LC_TRAMPOLINE_SHA384_Final_local_target:
AWS_LC_TRAMPOLINE_SHA384_Final:
.LFB2344:

	.cfi_startproc
	endbr64
# WAS jmp	SHA384_Final@PLT
	jmp	.LSHA384_Final_local_target
	.cfi_endproc
.LFE2344:

	.size	AWS_LC_TRAMPOLINE_SHA384_Final, .-AWS_LC_TRAMPOLINE_SHA384_Final
# WAS .section	.text.SHA512_224_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224_Final
	.type	SHA512_224_Final, @function
.LSHA512_224_Final_local_target:
SHA512_224_Final:
.LFB2897:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	80(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	208(%rsi), %eax
	movq	%rsi, %rbx
	movb	$-128, 80(%rsi,%rax)
	addq	$1, %rax
	cmpq	$112, %rax
	jbe	.L22291
	movl	$128, %edx
	subq	%rax, %rdx
	jne	.L22344
.L22292:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22299
.L22301:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22300:

	movq	%r12, %rax
	movl	$112, %edx
.L22302:

	movl	%edx, %ecx
	cmpl	$8, %edx
	jnb	.L22304
	andl	$4, %edx
	jne	.L22345
	testl	%ecx, %ecx
	jne	.L22346
	.p2align 4,,10
	.p2align 3
.L22303:

	movq	72(%rbx), %rax
	bswap	%rax
	movq	%rax, 192(%rbx)
	movq	64(%rbx), %rax
	bswap	%rax
	movq	%rax, 200(%rbx)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22347
.L22308:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
	testq	%rbp, %rbp
	je	.L22311
.L22349:

	movq	(%rbx), %rax
	bswap	%rax
	movq	%rax, 0(%rbp)
	movq	8(%rbx), %rax
	bswap	%rax
	movq	%rax, 8(%rbp)
	movq	16(%rbx), %rax
	bswap	%rax
	movq	%rax, 16(%rbp)
	movq	24(%rbx), %rax
	bswap	%rax
	movl	%eax, 24(%rbp)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22291:

	.cfi_restore_state
	movl	$112, %edx
	subq	%rax, %rdx
	je	.L22303
	addq	%r12, %rax
	jmp	.L22302
	.p2align 4,,10
	.p2align 3
.L22344:

	addq	%r12, %rax
	xorl	%edi, %edi
	cmpq	$8, %rdx
	jb	.L22348
	leaq	8(%rax), %rcx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rdx)
	andq	$-8, %rcx
	subq	%rcx, %rax
	addq	%rax, %rdx
	andq	$-8, %rdx
	cmpq	$8, %rdx
	jb	.L22292
	leaq	-1(%rdx), %rax
	movq	%rdx, %r8
	movq	$0, (%rcx)
	shrq	$3, %rax
	andq	$-8, %r8
	andl	$1, %eax
	movq	%rax, %rsi
	movl	$8, %eax
	cmpq	%rdx, %rax
	jnb	.L22292
	testq	%rsi, %rsi
	je	.L22297
	movl	$16, %eax
	movq	$0, 8(%rcx)
	cmpq	%r8, %rax
	jnb	.L22292
.L22297:

	movq	%rdi, (%rcx,%rax)
	movq	%rdi, 8(%rcx,%rax)
	addq	$16, %rax
	cmpq	%r8, %rax
	jb	.L22297
	jmp	.L22292
	.p2align 4,,10
	.p2align 3
.L22347:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22308
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	testq	%rbp, %rbp
	jne	.L22349
.L22311:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22304:

	.cfi_restore_state
	leaq	8(%rax), %rdi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rdi
	subq	%rdi, %rax
	leal	(%rdx,%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	jmp	.L22303
	.p2align 4,,10
	.p2align 3
.L22299:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22301
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22300
	.p2align 4,,10
	.p2align 3
.L22348:

	testb	$4, %dl
	jne	.L22350
	testq	%rdx, %rdx
	je	.L22292
	movb	$0, (%rax)
	testb	$2, %dl
	je	.L22292
	xorl	%ecx, %ecx
	movw	%cx, -2(%rax,%rdx)
	jmp	.L22292
	.p2align 4,,10
	.p2align 3
.L22346:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L22303
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L22303
.L22345:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L22303
.L22350:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rdx)
	jmp	.L22292
	.cfi_endproc
.LFE2897:

	.size	SHA512_224_Final, .-SHA512_224_Final
# WAS .section	.text.sha512_224_final,"ax",@progbits
.text
	.p2align 4
	.type	sha512_224_final, @function
.Lsha512_224_final_local_target:
sha512_224_final:
.LFB1682:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA512_224_Final@PLT
	jmp	.LSHA512_224_Final_local_target
	.cfi_endproc
.LFE1682:

	.size	sha512_224_final, .-sha512_224_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_224_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_224_Final, @function
.LAWS_LC_TRAMPOLINE_SHA512_224_Final_local_target:
AWS_LC_TRAMPOLINE_SHA512_224_Final:
.LFB2354:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_224_Final@PLT
	jmp	.LSHA512_224_Final_local_target
	.cfi_endproc
.LFE2354:

	.size	AWS_LC_TRAMPOLINE_SHA512_224_Final, .-AWS_LC_TRAMPOLINE_SHA512_224_Final
# WAS .section	.text.SHA512_256_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256_Final
	.type	SHA512_256_Final, @function
.LSHA512_256_Final_local_target:
SHA512_256_Final:
.LFB2899:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	80(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movl	208(%rsi), %eax
	movq	%rsi, %rbx
	movb	$-128, 80(%rsi,%rax)
	addq	$1, %rax
	cmpq	$112, %rax
	jbe	.L22354
	movl	$128, %edx
	subq	%rax, %rdx
	jne	.L22407
.L22355:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22362
.L22364:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22363:

	movq	%r12, %rax
	movl	$112, %edx
.L22365:

	movl	%edx, %ecx
	cmpl	$8, %edx
	jnb	.L22367
	andl	$4, %edx
	jne	.L22408
	testl	%ecx, %ecx
	jne	.L22409
	.p2align 4,,10
	.p2align 3
.L22366:

	movq	72(%rbx), %rax
	bswap	%rax
	movq	%rax, 192(%rbx)
	movq	64(%rbx), %rax
	bswap	%rax
	movq	%rax, 200(%rbx)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22410
.L22371:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
	testq	%rbp, %rbp
	je	.L22374
.L22412:

	movq	(%rbx), %rax
	bswap	%rax
	movq	%rax, 0(%rbp)
	movq	8(%rbx), %rax
	bswap	%rax
	movq	%rax, 8(%rbp)
	movq	16(%rbx), %rax
	bswap	%rax
	movq	%rax, 16(%rbp)
	movq	24(%rbx), %rax
	bswap	%rax
	movq	%rax, 24(%rbp)
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movl	$1, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22354:

	.cfi_restore_state
	movl	$112, %edx
	subq	%rax, %rdx
	je	.L22366
	addq	%r12, %rax
	jmp	.L22365
	.p2align 4,,10
	.p2align 3
.L22407:

	addq	%r12, %rax
	xorl	%edi, %edi
	cmpq	$8, %rdx
	jb	.L22411
	leaq	8(%rax), %rcx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rdx)
	andq	$-8, %rcx
	subq	%rcx, %rax
	addq	%rax, %rdx
	andq	$-8, %rdx
	cmpq	$8, %rdx
	jb	.L22355
	leaq	-1(%rdx), %rax
	movq	%rdx, %r8
	movq	$0, (%rcx)
	shrq	$3, %rax
	andq	$-8, %r8
	andl	$1, %eax
	movq	%rax, %rsi
	movl	$8, %eax
	cmpq	%rdx, %rax
	jnb	.L22355
	testq	%rsi, %rsi
	je	.L22360
	movl	$16, %eax
	movq	$0, 8(%rcx)
	cmpq	%r8, %rax
	jnb	.L22355
.L22360:

	movq	%rdi, (%rcx,%rax)
	movq	%rdi, 8(%rcx,%rax)
	addq	$16, %rax
	cmpq	%r8, %rax
	jb	.L22360
	jmp	.L22355
	.p2align 4,,10
	.p2align 3
.L22410:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22371
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	testq	%rbp, %rbp
	jne	.L22412
.L22374:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xorl	%eax, %eax
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22367:

	.cfi_restore_state
	leaq	8(%rax), %rdi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rdi
	subq	%rdi, %rax
	leal	(%rdx,%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	jmp	.L22366
	.p2align 4,,10
	.p2align 3
.L22362:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22364
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22363
	.p2align 4,,10
	.p2align 3
.L22411:

	testb	$4, %dl
	jne	.L22413
	testq	%rdx, %rdx
	je	.L22355
	movb	$0, (%rax)
	testb	$2, %dl
	je	.L22355
	xorl	%ecx, %ecx
	movw	%cx, -2(%rax,%rdx)
	jmp	.L22355
	.p2align 4,,10
	.p2align 3
.L22409:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L22366
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L22366
.L22408:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L22366
.L22413:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rdx)
	jmp	.L22355
	.cfi_endproc
.LFE2899:

	.size	SHA512_256_Final, .-SHA512_256_Final
# WAS .section	.text.sha512_256_final,"ax",@progbits
.text
	.p2align 4
	.type	sha512_256_final, @function
.Lsha512_256_final_local_target:
sha512_256_final:
.LFB1688:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA512_256_Final@PLT
	jmp	.LSHA512_256_Final_local_target
	.cfi_endproc
.LFE1688:

	.size	sha512_256_final, .-sha512_256_final
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_256_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_256_Final, @function
.LAWS_LC_TRAMPOLINE_SHA512_256_Final_local_target:
AWS_LC_TRAMPOLINE_SHA512_256_Final:
.LFB2359:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_256_Final@PLT
	jmp	.LSHA512_256_Final_local_target
	.cfi_endproc
.LFE2359:

	.size	AWS_LC_TRAMPOLINE_SHA512_256_Final, .-AWS_LC_TRAMPOLINE_SHA512_256_Final
# WAS .section	.text.SHA512_Transform,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_Transform
	.type	SHA512_Transform, @function
.LSHA512_Transform_local_target:
SHA512_Transform:
.LFB2900:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 32
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22417
.L22418:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha512_block_data_order_nohw@PLT
	jmp	.Lsha512_block_data_order_nohw_local_target
	.p2align 4,,10
	.p2align 3
.L22417:

	.cfi_restore_state
	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22418
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
# WAS jmp	sha512_block_data_order_avx@PLT
	jmp	.Lsha512_block_data_order_avx_local_target
	.cfi_endproc
.LFE2900:

	.size	SHA512_Transform, .-SHA512_Transform
# WAS .section	.text.SHA512_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_Update
	.type	SHA512_Update, @function
.LSHA512_Update_local_target:
SHA512_Update:
.LFB2901:

	.cfi_startproc
	endbr64
	testq	%rdx, %rdx
	je	.L22476
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	0(,%rdx,8), %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	leaq	80(%rdi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
	movq	72(%rdi), %rcx
	addq	64(%rdi), %rax
	movq	%rax, 64(%rdi)
	movl	208(%rdi), %eax
	adcq	$0, %rcx
	shrq	$61, %rdx
	addq	%rcx, %rdx
	movq	%rdx, 72(%rdi)
	testl	%eax, %eax
	je	.L22479
	movl	%eax, %edx
	movl	$128, %eax
	subq	%rdx, %rax
	leaq	(%r12,%rdx), %rcx
	cmpq	%rax, %rbp
	jb	.L22480
	testq	%rax, %rax
	jne	.L22481
.L22433:

	movl	$0, 208(%rbx)
	leaq	-128(%rdx,%rbp), %r14
	addq	%rax, %r13
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movl	$1, %edx
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movq	%rax, %r15
	movl	4(%rax), %eax
	notl	%eax
	testl	$268435968, %eax
	je	.L22438
.L22440:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22439:

	cmpq	$127, %r14
	ja	.L22482
.L22441:

	testq	%r14, %r14
	jne	.L22483
.L22425:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22479:

	.cfi_restore_state
	cmpq	$127, %rbp
	ja	.L22484
.L22430:

	movl	%ebp, %ecx
	cmpl	$8, %ebp
	jb	.L22485
	movq	0(%r13), %rax
	leaq	8(%r12), %rdi
	movq	%r13, %rsi
	andq	$-8, %rdi
	movq	%rax, 80(%rbx)
	movl	%ebp, %eax
	movq	-8(%r13,%rax), %rdx
	movq	%rdx, -8(%r12,%rax)
	subq	%rdi, %r12
	leal	0(%rbp,%r12), %ecx
	subq	%r12, %rsi
	shrl	$3, %ecx
	rep movsq
.L22446:

	movl	%ebp, 208(%rbx)
	jmp	.L22425
	.p2align 4,,10
	.p2align 3
.L22476:

	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	.cfi_restore 14
	.cfi_restore 15
	movl	$1, %eax
	ret
	.p2align 4,,10
	.p2align 3
.L22481:

	.cfi_def_cfa_offset 64
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	cmpq	$8, %rax
	jnb	.L22434
	testb	$4, %al
	jne	.L22486
	testq	%rax, %rax
	je	.L22433
	movzbl	(%rsi), %esi
	movb	%sil, (%rcx)
	testb	$2, %al
	je	.L22433
	movzwl	-2(%r13,%rax), %esi
	movw	%si, -2(%rcx,%rax)
	jmp	.L22433
	.p2align 4,,10
	.p2align 3
.L22485:

	testb	$4, %bpl
	jne	.L22487
	testl	%ecx, %ecx
	je	.L22446
	movzbl	0(%r13), %eax
	movb	%al, 80(%rbx)
	testb	$2, %cl
	je	.L22446
	movzwl	-2(%r13,%rcx), %eax
	movw	%ax, -2(%r12,%rcx)
	jmp	.L22446
	.p2align 4,,10
	.p2align 3
.L22482:

	movq	%r14, %rbp
.L22431:

	movl	4(%r15), %eax
	movq	%rbp, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	shrq	$7, %rdx
	notl	%eax
	testl	$268435968, %eax
	je	.L22488
.L22442:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22443:

	movq	%rbp, %r14
	andq	$-128, %rbp
	andl	$127, %r14d
	addq	%rbp, %r13
	jmp	.L22441
	.p2align 4,,10
	.p2align 3
.L22438:

	testl	$1073741824, (%r15)
	je	.L22440
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22439
	.p2align 4,,10
	.p2align 3
.L22484:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rax, %r15
	jmp	.L22431
	.p2align 4,,10
	.p2align 3
.L22480:

	movq	%rbp, %rdx
	movq	%rcx, %rdi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	addl	%ebp, 208(%rbx)
	jmp	.L22425
	.p2align 4,,10
	.p2align 3
.L22434:

	movq	(%rsi), %rsi
	leaq	8(%rcx), %rdi
	andq	$-8, %rdi
	movq	%rsi, (%rcx)
	movq	-8(%r13,%rax), %rsi
	movq	%rsi, -8(%rcx,%rax)
	subq	%rdi, %rcx
	movq	%r13, %rsi
	subq	%rcx, %rsi
	addq	%rax, %rcx
	shrq	$3, %rcx
	rep movsq
	jmp	.L22433
	.p2align 4,,10
	.p2align 3
.L22488:

	movl	(%r15), %eax
	testl	$1073741824, %eax
	je	.L22442
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22443
	.p2align 4,,10
	.p2align 3
.L22483:

	movq	%r14, %rbp
	jmp	.L22430
.L22487:

	movl	0(%r13), %eax
	movl	%eax, 80(%rbx)
	movl	-4(%r13,%rcx), %eax
	movl	%eax, -4(%r12,%rcx)
	jmp	.L22446
.L22486:

	movl	(%rsi), %esi
	movl	%esi, (%rcx)
	movl	-4(%r13,%rax), %esi
	movl	%esi, -4(%rcx,%rax)
	jmp	.L22433
	.cfi_endproc
.LFE2901:

	.size	SHA512_Update, .-SHA512_Update
# WAS .section	.text.sha512_update,"ax",@progbits
.text
	.p2align 4
	.type	sha512_update, @function
.Lsha512_update_local_target:
sha512_update:
.LFB1675:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_Update@PLT
	jmp	.LSHA512_Update_local_target
	.cfi_endproc
.LFE1675:

	.size	sha512_update, .-sha512_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_Update, @function
.LAWS_LC_TRAMPOLINE_SHA512_Update_local_target:
AWS_LC_TRAMPOLINE_SHA512_Update:
.LFB2348:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Update@PLT
	jmp	.LSHA512_Update_local_target
	.cfi_endproc
.LFE2348:

	.size	AWS_LC_TRAMPOLINE_SHA512_Update, .-AWS_LC_TRAMPOLINE_SHA512_Update
# WAS .section	.text.SHA384_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384_Update
	.type	SHA384_Update, @function
.LSHA384_Update_local_target:
SHA384_Update:
.LFB2895:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Update@PLT
	jmp	.LSHA512_Update_local_target
	.cfi_endproc
.LFE2895:

	.size	SHA384_Update, .-SHA384_Update
# WAS .section	.text.sha384_update,"ax",@progbits
.text
	.p2align 4
	.type	sha384_update, @function
.Lsha384_update_local_target:
sha384_update:
.LFB1669:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA384_Update@PLT
	jmp	.LSHA384_Update_local_target
	.cfi_endproc
.LFE1669:

	.size	sha384_update, .-sha384_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA384_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA384_Update, @function
.LAWS_LC_TRAMPOLINE_SHA384_Update_local_target:
AWS_LC_TRAMPOLINE_SHA384_Update:
.LFB2343:

	.cfi_startproc
	endbr64
# WAS jmp	SHA384_Update@PLT
	jmp	.LSHA384_Update_local_target
	.cfi_endproc
.LFE2343:

	.size	AWS_LC_TRAMPOLINE_SHA384_Update, .-AWS_LC_TRAMPOLINE_SHA384_Update
# WAS .section	.text.SHA384,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384
	.type	SHA384, @function
.LSHA384_local_target:
SHA384:
.LFB2890:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$232, %rsp
	.cfi_def_cfa_offset 272
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA384_Init@PLT
	call	.LSHA384_Init_local_target
	testl	%eax, %eax
	je	.L22495
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA384_Update@PLT
	call	.LSHA384_Update_local_target
	testl	%eax, %eax
	jne	.L22508
.L22495:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22496:

	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22509
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22508:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA384_Final@PLT
	call	.LSHA384_Final_local_target
	testl	%eax, %eax
	je	.L22495
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22496
.L22509:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2890:

	.size	SHA384, .-SHA384
# WAS .section	.text.SHA512_224_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224_Update
	.type	SHA512_224_Update, @function
.LSHA512_224_Update_local_target:
SHA512_224_Update:
.LFB3099:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Update@PLT
	jmp	.LSHA512_Update_local_target
	.cfi_endproc
.LFE3099:

	.size	SHA512_224_Update, .-SHA512_224_Update
# WAS .section	.text.sha512_224_update,"ax",@progbits
.text
	.p2align 4
	.type	sha512_224_update, @function
.Lsha512_224_update_local_target:
sha512_224_update:
.LFB1681:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_224_Update@PLT
	jmp	.LSHA512_224_Update_local_target
	.cfi_endproc
.LFE1681:

	.size	sha512_224_update, .-sha512_224_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_224_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_224_Update, @function
.LAWS_LC_TRAMPOLINE_SHA512_224_Update_local_target:
AWS_LC_TRAMPOLINE_SHA512_224_Update:
.LFB2353:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_224_Update@PLT
	jmp	.LSHA512_224_Update_local_target
	.cfi_endproc
.LFE2353:

	.size	AWS_LC_TRAMPOLINE_SHA512_224_Update, .-AWS_LC_TRAMPOLINE_SHA512_224_Update
# WAS .section	.text.SHA512_224,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224
	.type	SHA512_224, @function
.LSHA512_224_local_target:
SHA512_224:
.LFB2892:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$232, %rsp
	.cfi_def_cfa_offset 272
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA512_224_Init@PLT
	call	.LSHA512_224_Init_local_target
	testl	%eax, %eax
	je	.L22514
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_224_Update@PLT
	call	.LSHA512_224_Update_local_target
	testl	%eax, %eax
	jne	.L22527
.L22514:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22515:

	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22528
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22527:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_224_Final@PLT
	call	.LSHA512_224_Final_local_target
	testl	%eax, %eax
	je	.L22514
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22515
.L22528:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2892:

	.size	SHA512_224, .-SHA512_224
# WAS .section	.text.SHA512_256_Update,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256_Update
	.type	SHA512_256_Update, @function
.LSHA512_256_Update_local_target:
SHA512_256_Update:
.LFB3101:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Update@PLT
	jmp	.LSHA512_Update_local_target
	.cfi_endproc
.LFE3101:

	.size	SHA512_256_Update, .-SHA512_256_Update
# WAS .section	.text.sha512_256_update,"ax",@progbits
.text
	.p2align 4
	.type	sha512_256_update, @function
.Lsha512_256_update_local_target:
sha512_256_update:
.LFB1687:

	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdi
# WAS jmp	SHA512_256_Update@PLT
	jmp	.LSHA512_256_Update_local_target
	.cfi_endproc
.LFE1687:

	.size	sha512_256_update, .-sha512_256_update
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_256_Update,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_256_Update, @function
.LAWS_LC_TRAMPOLINE_SHA512_256_Update_local_target:
AWS_LC_TRAMPOLINE_SHA512_256_Update:
.LFB2358:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_256_Update@PLT
	jmp	.LSHA512_256_Update_local_target
	.cfi_endproc
.LFE2358:

	.size	AWS_LC_TRAMPOLINE_SHA512_256_Update, .-AWS_LC_TRAMPOLINE_SHA512_256_Update
# WAS .section	.text.SHA512_256,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256
	.type	SHA512_256, @function
.LSHA512_256_local_target:
SHA512_256:
.LFB2893:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$232, %rsp
	.cfi_def_cfa_offset 272
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA512_256_Init@PLT
	call	.LSHA512_256_Init_local_target
	testl	%eax, %eax
	je	.L22533
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_256_Update@PLT
	call	.LSHA512_256_Update_local_target
	testl	%eax, %eax
	jne	.L22546
.L22533:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22534:

	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22547
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22546:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_256_Final@PLT
	call	.LSHA512_256_Final_local_target
	testl	%eax, %eax
	je	.L22533
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22534
.L22547:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2893:

	.size	SHA512_256, .-SHA512_256
# WAS .section	.text.SHA512_Final,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_Final
	.type	SHA512_Final, @function
.LSHA512_Final_local_target:
SHA512_Final:
.LFB2902:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	80(%rsi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movl	208(%rsi), %eax
	movl	212(%rsi), %r13d
	movb	$-128, 80(%rsi,%rax)
	addq	$1, %rax
	cmpq	$112, %rax
	jbe	.L22549
	movl	$128, %edx
	subq	%rax, %rdx
	jne	.L22625
.L22550:

# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22557
.L22559:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
.L22558:

	movq	%r12, %rax
	movl	$112, %edx
.L22560:

	movl	%edx, %ecx
	cmpl	$8, %edx
	jnb	.L22562
	andl	$4, %edx
	jne	.L22626
	testl	%ecx, %ecx
	jne	.L22627
	.p2align 4,,10
	.p2align 3
.L22561:

	movq	72(%rbx), %rax
	bswap	%rax
	movq	%rax, 192(%rbx)
	movq	64(%rbx), %rax
	bswap	%rax
	movq	%rax, 200(%rbx)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movl	4(%rax), %edx
	notl	%edx
	andl	$268435968, %edx
	movl	$1, %edx
	je	.L22628
.L22566:

# WAS call	sha512_block_data_order_nohw@PLT
	call	.Lsha512_block_data_order_nohw_local_target
	testq	%rbp, %rbp
	je	.L22574
.L22630:

	movq	%r13, %rax
	shrq	$3, %rax
	je	.L22570
	movq	(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 0(%rbp)
	cmpq	$1, %rax
	je	.L22570
	movq	8(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 8(%rbp)
	cmpq	$2, %rax
	je	.L22570
	movq	16(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 16(%rbp)
	cmpq	$3, %rax
	je	.L22572
	movq	24(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 24(%rbp)
	cmpq	$4, %rax
	je	.L22570
	movq	32(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 32(%rbp)
	cmpq	$5, %rax
	je	.L22570
	movq	40(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 40(%rbp)
	cmpq	$6, %rax
	je	.L22570
	movq	48(%rbx), %rdx
	bswap	%rdx
	movq	%rdx, 48(%rbp)
	cmpq	$7, %rax
	je	.L22570
	movq	56(%rbx), %rax
	bswap	%rax
	movq	%rax, 56(%rbp)
.L22570:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22549:

	.cfi_restore_state
	movl	$112, %edx
	subq	%rax, %rdx
	je	.L22561
	addq	%r12, %rax
	jmp	.L22560
	.p2align 4,,10
	.p2align 3
.L22625:

	addq	%r12, %rax
	xorl	%edi, %edi
	cmpq	$8, %rdx
	jb	.L22629
	leaq	8(%rax), %rcx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rdx)
	andq	$-8, %rcx
	subq	%rcx, %rax
	addq	%rax, %rdx
	andq	$-8, %rdx
	cmpq	$8, %rdx
	jb	.L22550
	leaq	-1(%rdx), %rax
	movq	%rdx, %r8
	movq	$0, (%rcx)
	shrq	$3, %rax
	andq	$-8, %r8
	andl	$1, %eax
	movq	%rax, %rsi
	movl	$8, %eax
	cmpq	%rdx, %rax
	jnb	.L22550
	testq	%rsi, %rsi
	je	.L22555
	movl	$16, %eax
	movq	$0, 8(%rcx)
	cmpq	%r8, %rax
	jnb	.L22550
.L22555:

	movq	%rdi, (%rcx,%rax)
	movq	%rdi, 8(%rcx,%rax)
	addq	$16, %rax
	cmpq	%r8, %rax
	jb	.L22555
	jmp	.L22550
	.p2align 4,,10
	.p2align 3
.L22628:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22566
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	testq	%rbp, %rbp
	jne	.L22630
.L22574:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22562:

	.cfi_restore_state
	leaq	8(%rax), %rdi
	movl	%edx, %ecx
	movq	$0, (%rax)
	movq	$0, -8(%rax,%rcx)
	andq	$-8, %rdi
	subq	%rdi, %rax
	leal	(%rdx,%rax), %ecx
	xorl	%eax, %eax
	shrl	$3, %ecx
	rep stosq
	jmp	.L22561
.L22572:

	cmpq	$28, %r13
	jne	.L22570
	movq	24(%rbx), %rax
	bswap	%rax
	movl	%eax, 24(%rbp)
	jmp	.L22570
	.p2align 4,,10
	.p2align 3
.L22557:

	movl	(%rax), %eax
	testl	$1073741824, %eax
	je	.L22559
# WAS call	sha512_block_data_order_avx@PLT
	call	.Lsha512_block_data_order_avx_local_target
	jmp	.L22558
	.p2align 4,,10
	.p2align 3
.L22629:

	testb	$4, %dl
	jne	.L22631
	testq	%rdx, %rdx
	je	.L22550
	movb	$0, (%rax)
	testb	$2, %dl
	je	.L22550
	xorl	%ecx, %ecx
	movw	%cx, -2(%rax,%rdx)
	jmp	.L22550
	.p2align 4,,10
	.p2align 3
.L22627:

	movb	$0, (%rax)
	testb	$2, %cl
	je	.L22561
	xorl	%edx, %edx
	movw	%dx, -2(%rax,%rcx)
	jmp	.L22561
.L22626:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rcx)
	jmp	.L22561
.L22631:

	movl	$0, (%rax)
	movl	$0, -4(%rax,%rdx)
	jmp	.L22550
	.cfi_endproc
.LFE2902:

	.size	SHA512_Final, .-SHA512_Final
# WAS .section	.text.ed25519_sha512,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_sha512
	.hidden	ed25519_sha512
	.type	ed25519_sha512, @function
.Led25519_sha512_local_target:
ed25519_sha512:
.LFB1335:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$248, %rsp
	.cfi_def_cfa_offset 304
	movq	%rdx, 8(%rsp)
	leaq	16(%rsp), %rbx
	movq	%rbx, %rdi
	movq	%fs:40, %rax
	movq	%rax, 232(%rsp)
	xorl	%eax, %eax
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movq	8(%rsp), %rdx
	movq	%r15, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	cmpq	$0, 304(%rsp)
	jne	.L22639
.L22633:

	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22640
	addq	$248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22639:

	.cfi_restore_state
	movq	304(%rsp), %rdx
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	jmp	.L22633
.L22640:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1335:

	.size	ed25519_sha512, .-ed25519_sha512
# WAS .section	.text.sha512_final,"ax",@progbits
.text
	.p2align 4
	.type	sha512_final, @function
.Lsha512_final_local_target:
sha512_final:
.LFB1676:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %rdi
	movq	8(%rax), %rsi
# WAS jmp	SHA512_Final@PLT
	jmp	.LSHA512_Final_local_target
	.cfi_endproc
.LFE1676:

	.size	sha512_final, .-sha512_final
# WAS .section	.text.ECDSA_do_sign.part.0,"ax",@progbits
.text
	.p2align 4
	.type	ECDSA_do_sign.part.0, @function
.LECDSA_do_sign.part.0_local_target:
ECDSA_do_sign.part.0:
.LFB3087:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	movq	%rdx, %rdi
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$424, %rsp
	.cfi_def_cfa_offset 480
	movq	%fs:40, %rax
	movq	%rax, 408(%rsp)
	xorl	%eax, %eax
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	testq	%rax, %rax
	je	.L22643
	cmpq	$0, 16(%rbp)
	je	.L22643
	movq	%rax, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbx, %rdi
# WAS call	EC_GROUP_get0_order@PLT
	call	.LEC_GROUP_get0_order_local_target
	movq	%rax, %r12
	movq	16(%rbp), %rax
	leaq	112(%rsp), %rbp
	movq	%rbp, %rdi
	leaq	24(%rax), %r15
	movq	%r15, (%rsp)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movslq	8(%r12), %rdx
	movq	%r15, %rsi
	movq	%rbp, %rdi
	leaq	336(%rsp), %r15
	leaq	32(%rsp), %r12
	salq	$3, %rdx
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%r14, %rdx
	movq	%rbp, %rdi
	movq	%r13, %rsi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%rbp, %rsi
	movq	%r15, %rdi
	movl	$33, %ebp
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	leaq	28(%rsp), %rax
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L22652:

	movslq	264(%rbx), %rdx
	movq	256(%rbx), %rsi
	movq	%r15, %rcx
	movq	%r12, %rdi
# WAS call	bn_rand_range_words.constprop.0
	call	.Lbn_rand_range_words.constprop.0_local_target
	testl	%eax, %eax
	je	.L22658
	movq	(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%r14, %r9
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbx, %rdi
# WAS call	ecdsa_sign_impl
	call	.Lecdsa_sign_impl_local_target
	testq	%rax, %rax
	jne	.L22648
	movl	28(%rsp), %edx
	testl	%edx, %edx
	je	.L22648
	subl	$1, %ebp
	jne	.L22652
	movl	$72, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$368, %r8d
	leaq	.LC273(%rip), %rcx
	xorl	%esi, %esi
	movl	$106, %edx
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L22647:

	xorl	%eax, %eax
.L22642:

	movq	408(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22659
	addq	$424, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22648:

	.cfi_restore_state
	movl	$72, %esi
	movq	%r12, %rdi
	movq	%rax, (%rsp)
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	(%rsp), %rax
	jmp	.L22642
	.p2align 4,,10
	.p2align 3
.L22658:

	movl	$72, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	jmp	.L22647
	.p2align 4,,10
	.p2align 3
.L22643:

	movl	$319, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$67, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L22642
.L22659:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE3087:

	.size	ECDSA_do_sign.part.0, .-ECDSA_do_sign.part.0
# WAS .section	.text.ECDSA_do_sign,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_do_sign
	.type	ECDSA_do_sign, @function
.LECDSA_do_sign_local_target:
ECDSA_do_sign:
.LFB1748:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdx, %rbx
# WAS call	g_self_test_once_ecc_bss_get@PLT
	call	g_self_test_once_ecc_bss_get
# WAS leaq	run_self_test_ecc(%rip), %rsi
	leaq	.Lrun_self_test_ecc_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	40(%rbx), %rax
	testq	%rax, %rax
	je	.L22661
	movq	24(%rax), %rax
	testq	%rax, %rax
	je	.L22661
	movq	%rbx, %r8
	movl	%ebp, %esi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%r12, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 16
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	*%rax
	.p2align 4,,10
	.p2align 3
.L22661:

	.cfi_restore_state
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 24
	movq	%r12, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
# WAS jmp	ECDSA_do_sign.part.0
	jmp	.LECDSA_do_sign.part.0_local_target
	.cfi_endproc
.LFE1748:

	.size	ECDSA_do_sign, .-ECDSA_do_sign
# WAS .section	.text.ECDSA_sign,"ax",@progbits
.text
	.p2align 4
	.globl	ECDSA_sign
	.type	ECDSA_sign, @function
.LECDSA_sign_local_target:
ECDSA_sign:
.LFB1749:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	%edi, %eax
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%r8, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%r9, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rdx
	movq	%rdx, 72(%rsp)
	movq	40(%r9), %rdx
	testq	%rdx, %rdx
	je	.L22670
	movq	16(%rdx), %r10
	testq	%r10, %r10
	je	.L22670
	pushq	%r9
	.cfi_def_cfa_offset 136
	movl	%esi, %edx
	xorl	%r9d, %r9d
	movq	%rdi, %rsi
	pushq	$0
	.cfi_def_cfa_offset 144
	movl	%eax, %edi
	call	*%r10
	movl	%eax, %ebx
	popq	%rax
	.cfi_def_cfa_offset 136
	popq	%rdx
	.cfi_def_cfa_offset 128
.L22669:

	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22690
	addq	$88, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22670:

	.cfi_restore_state
	movq	%rbx, %rdx
# WAS call	ECDSA_do_sign@PLT
	call	.LECDSA_do_sign_local_target
	movq	%rax, %r13
	testq	%rax, %rax
	je	.L22672
	movq	%rbx, %rdi
	leaq	16(%rsp), %rbx
# WAS call	ECDSA_size@PLT
	call	.Lbcm_redirector_ECDSA_size
	movq	%r12, %rsi
	movq	%rbx, %rdi
	movq	%rax, %rdx
# WAS call	CBB_init_fixed@PLT
	call	.Lbcm_redirector_CBB_init_fixed
	movq	%r13, %rsi
	movq	%rbx, %rdi
# WAS call	ECDSA_SIG_marshal@PLT
	call	.Lbcm_redirector_ECDSA_SIG_marshal
	testl	%eax, %eax
	je	.L22675
	xorl	%esi, %esi
	leaq	8(%rsp), %rdx
	movq	%rbx, %rdi
# WAS call	CBB_finish@PLT
	call	.Lbcm_redirector_CBB_finish
	testl	%eax, %eax
	je	.L22675
	movl	8(%rsp), %eax
	movl	$1, %ebx
	jmp	.L22674
	.p2align 4,,10
	.p2align 3
.L22675:

	movl	$397, %r8d
	leaq	.LC273(%rip), %rcx
	movl	$105, %edx
	xorl	%esi, %esi
	movl	$26, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L22672:

	xorl	%eax, %eax
	xorl	%ebx, %ebx
.L22674:

	movl	%eax, 0(%rbp)
	movq	%r13, %rdi
# WAS call	ECDSA_SIG_free@PLT
	call	.LECDSA_SIG_free_local_target
	jmp	.L22669
.L22690:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1749:

	.size	ECDSA_sign, .-ECDSA_sign
# WAS .section	.text.pkey_ec_sign,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ec_sign, @function
.Lpkey_ec_sign_local_target:
pkey_ec_sign:
.LFB2218:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	movq	16(%rdi), %rax
	movq	8(%rax), %r14
	testq	%rsi, %rsi
	je	.L22700
	movq	(%rdx), %r15
	movq	%r14, %rdi
	movq	%rsi, %rbx
	movq	%rcx, %r12
	movq	%r8, %r13
# WAS call	ECDSA_size@PLT
	call	.Lbcm_redirector_ECDSA_size
	cmpq	%rax, %r15
	jb	.L22701
	xorl	%edi, %edi
	movq	%r14, %r9
	leaq	4(%rsp), %r8
	movq	%rbx, %rcx
	movq	%r13, %rdx
	movq	%r12, %rsi
# WAS call	ECDSA_sign@PLT
	call	.LECDSA_sign_local_target
	testl	%eax, %eax
	je	.L22695
	movl	4(%rsp), %eax
	movq	%rax, 0(%rbp)
.L22693:

	movl	$1, %eax
.L22691:

	movq	8(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22702
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22701:

	.cfi_restore_state
	movl	$125, %r8d
	leaq	.LC260(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L22695:

	xorl	%eax, %eax
	jmp	.L22691
	.p2align 4,,10
	.p2align 3
.L22700:

	movq	%r14, %rdi
# WAS call	ECDSA_size@PLT
	call	.Lbcm_redirector_ECDSA_size
	movq	%rax, 0(%rbp)
	jmp	.L22693
.L22702:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2218:

	.size	pkey_ec_sign, .-pkey_ec_sign
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_Final,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_Final, @function
.LAWS_LC_TRAMPOLINE_SHA512_Final_local_target:
AWS_LC_TRAMPOLINE_SHA512_Final:
.LFB2349:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_Final@PLT
	jmp	.LSHA512_Final_local_target
	.cfi_endproc
.LFE2349:

	.size	AWS_LC_TRAMPOLINE_SHA512_Final, .-AWS_LC_TRAMPOLINE_SHA512_Final
# WAS .section	.text.SHA512,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512
	.type	SHA512, @function
.LSHA512_local_target:
SHA512:
.LFB2891:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdx, %rbx
	subq	$232, %rsp
	.cfi_def_cfa_offset 272
	movq	%fs:40, %rax
	movq	%rax, 216(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	movq	%rbp, %rdi
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	testl	%eax, %eax
	je	.L22705
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	testl	%eax, %eax
	jne	.L22718
.L22705:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22706:

	movl	$216, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	216(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22719
	addq	$232, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22718:

	.cfi_restore_state
	movq	%rbp, %rsi
	movq	%rbx, %rdi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	testl	%eax, %eax
	je	.L22705
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22706
.L22719:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2891:

	.size	SHA512, .-SHA512
# WAS .section	.text.ED25519_keypair_from_seed,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_keypair_from_seed
	.type	ED25519_keypair_from_seed, @function
.LED25519_keypair_from_seed_local_target:
ED25519_keypair_from_seed:
.LFB1336:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rsi, %rbx
	subq	$184, %rsp
	.cfi_def_cfa_offset 224
	movq	%fs:40, %rax
	movq	%rax, 168(%rsp)
	xorl	%eax, %eax
	leaq	32(%rsp), %r13
# WAS call	g_self_test_once_eddsa_bss_get@PLT
	call	g_self_test_once_eddsa_bss_get
# WAS leaq	run_self_test_eddsa(%rip), %rsi
	leaq	.Lrun_self_test_eddsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movl	$32, %esi
	movq	%r12, %rdi
	leaq	96(%rsp), %rdx
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
	movzbl	127(%rsp), %eax
	andb	$-8, 96(%rsp)
	pxor	%xmm0, %xmm0
	movdqa	96(%rsp), %xmm1
	movaps	%xmm0, 32(%rsp)
	andl	$127, %eax
	movaps	%xmm0, 48(%rsp)
	orl	$64, %eax
	movaps	%xmm0, 64(%rsp)
	movb	%al, 127(%rsp)
	movdqa	112(%rsp), %xmm2
	movaps	%xmm0, 80(%rsp)
	movaps	%xmm1, (%rsp)
	movaps	%xmm2, 16(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rsp, %rsi
	movq	%r13, %rdi
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L22725
# WAS call	edwards25519_scalarmulbase_alt@PLT
	call	.Ledwards25519_scalarmulbase_alt_local_target
.L22722:

	movq	%r13, %rsi
	movq	%rbp, %rdi
# WAS call	edwards25519_encode@PLT
	call	.Ledwards25519_encode_local_target
	movdqu	(%r12), %xmm3
	movups	%xmm3, (%rbx)
	movdqu	16(%r12), %xmm4
	movups	%xmm4, 16(%rbx)
	movdqu	0(%rbp), %xmm5
	movups	%xmm5, 32(%rbx)
	movdqu	16(%rbp), %xmm6
	movups	%xmm6, 48(%rbx)
	movq	168(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22726
	addq	$184, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22725:

	.cfi_restore_state
# WAS call	edwards25519_scalarmulbase@PLT
	call	.Ledwards25519_scalarmulbase_local_target
	jmp	.L22722
.L22726:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1336:

	.size	ED25519_keypair_from_seed, .-ED25519_keypair_from_seed
# WAS .section	.text.ECDH_compute_key_fips,"ax",@progbits
.text
	.p2align 4
	.globl	ECDH_compute_key_fips
	.type	ECDH_compute_key_fips, @function
.LECDH_compute_key_fips_local_target:
ECDH_compute_key_fips:
.LFB1735:

	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rcx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$96, %rsp
	.cfi_def_cfa_offset 144
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	leaq	16(%rsp), %r14
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	leaq	8(%rsp), %rsi
	movq	%rbp, %rcx
	movq	%r12, %rdx
	movq	$66, 8(%rsp)
	movq	%r14, %rdi
# WAS call	ECDH_compute_shared_secret
	call	.LECDH_compute_shared_secret_local_target
	testl	%eax, %eax
	je	.L22749
	cmpq	$48, %rbx
	je	.L22730
	ja	.L22731
	cmpq	$28, %rbx
	je	.L22732
	cmpq	$32, %rbx
	jne	.L22734
	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
# WAS call	SHA256@PLT
	call	.LSHA256_local_target
	jmp	.L22736
	.p2align 4,,10
	.p2align 3
.L22731:

	cmpq	$64, %rbx
	jne	.L22734
	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
.L22736:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movq	%rbp, %rdi
# WAS call	EC_KEY_get0_group@PLT
	call	.LEC_KEY_get0_group_local_target
	movq	%rax, %rdi
# WAS call	EC_GROUP_get_curve_name@PLT
	call	.LEC_GROUP_get_curve_name_local_target
	cmpl	$713, %eax
	je	.L22738
	jg	.L22739
	cmpl	$415, %eax
	je	.L22738
.L22740:

	movl	$1, %eax
	jmp	.L22727
	.p2align 4,,10
	.p2align 3
.L22749:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22737:

	xorl	%eax, %eax
.L22727:

	movq	88(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22750
	addq	$96, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22734:

	.cfi_restore_state
	movl	$163, %r8d
	leaq	.LC369(%rip), %rcx
	movl	$103, %edx
	xorl	%esi, %esi
	movl	$27, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L22737
	.p2align 4,,10
	.p2align 3
.L22739:

	subl	$715, %eax
	cmpl	$1, %eax
	ja	.L22740
.L22738:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22740
	.p2align 4,,10
	.p2align 3
.L22732:

	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
# WAS call	SHA224@PLT
	call	.LSHA224_local_target
	jmp	.L22736
	.p2align 4,,10
	.p2align 3
.L22730:

	movq	8(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
# WAS call	SHA384@PLT
	call	.LSHA384_local_target
	jmp	.L22736
.L22750:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1735:

	.size	ECDH_compute_key_fips, .-ECDH_compute_key_fips
# WAS .section	.text.ed25519_sign_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_sign_nohw
	.hidden	ed25519_sign_nohw
	.type	ed25519_sign_nohw, @function
.Led25519_sign_nohw_local_target:
ed25519_sign_nohw:
.LFB1430:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rsi, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$792, %rsp
	.cfi_def_cfa_offset 848
	movq	%rdx, 168(%rsp)
	movq	%rcx, 160(%rsp)
	movq	%r8, 184(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rdi, 176(%rsp)
	movq	%rsi, %rdi
	movq	%rsi, 8(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 776(%rsp)
	xorl	%eax, %eax
# WAS call	x25519_sc_reduce
	call	.Lx25519_sc_reduce_local_target
	movq	%r15, %rsi
	leaq	320(%rsp), %rdi
# WAS call	x25519_ge_scalarmult_base
	call	.Lx25519_ge_scalarmult_base_local_target
	movq	432(%rsp), %rax
	movdqa	400(%rsp), %xmm0
	leaq	272(%rsp), %rdi
	movdqa	416(%rsp), %xmm1
	movq	%rax, 512(%rsp)
	leaq	480(%rsp), %rax
	movq	%rax, %rsi
	movaps	%xmm0, 480(%rsp)
	movaps	%xmm1, 496(%rsp)
	movq	%rax, 32(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	movq	304(%rsp), %rdx
	movq	288(%rsp), %r14
	movq	280(%rsp), %rsi
	movq	352(%rsp), %r8
	leaq	(%rdx,%rdx,8), %rax
	movq	344(%rsp), %rdi
	movq	272(%rsp), %r15
	leaq	(%rdx,%rax,2), %rcx
	movq	296(%rsp), %rdx
	movq	336(%rsp), %r9
	movq	328(%rsp), %rbp
	leaq	(%rdx,%rdx,8), %rax
	leaq	(%rdx,%rax,2), %r10
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %rax
	movq	%r10, %rbx
	movq	%rax, %r11
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %rax
	movq	%r11, 16(%rsp)
	movq	%rax, 80(%rsp)
	mulq	%r8
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	320(%rsp)
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, %r10
	movq	%r13, %r11
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%r15
	movq	%r10, 48(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%rsi, %rax
	mulq	320(%rsp)
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	%r9, %rax
	movq	%rdx, %r11
	mulq	%r15
	movq	%r10, 64(%rsp)
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	320(%rsp)
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%r12, %rax
	movq	%r11, %r12
	movq	%r10, %r11
	adcq	%r13, %rdx
	shrdq	$51, %r12, %r11
	movq	%r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%r15
	movq	%r10, 96(%rsp)
	movq	%r11, 104(%rsp)
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	296(%rsp), %rax
	adcq	%rdx, %r13
	mulq	320(%rsp)
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r12
	xorl	%r11d, %r11d
	addq	%r12, %rax
	adcq	%r11, %rdx
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r15
	movq	%r12, 112(%rsp)
	movq	%r13, 120(%rsp)
	movq	%rax, %r10
	movq	%rdi, %rax
	movq	%rdx, %r11
	mulq	%rsi
	addq	%rax, %r10
	movq	%r9, %rax
	adcq	%rdx, %r11
	mulq	%r14
	movq	%r10, %r8
	movq	%r11, %r9
	addq	%rax, %r8
	movq	%rbp, %rax
	movabsq	$2251799813685247, %rbp
	adcq	%rdx, %r9
	mulq	296(%rsp)
	addq	%rax, %r8
	movq	320(%rsp), %rax
	adcq	%rdx, %r9
	mulq	304(%rsp)
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	movq	48(%rsp), %r13
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 128(%rsp)
	andq	%rbp, %r13
	shrdq	$51, %rdx, %rax
	movq	%rdx, 136(%rsp)
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	addq	%r13, %rdx
	movq	64(%rsp), %r13
	movq	%rdx, 144(%rsp)
	shrq	$51, %rdx
	andq	%rbp, %r13
	addq	%rdx, %r13
	movq	%r13, 152(%rsp)
	movq	392(%rsp), %r10
	movq	80(%rsp), %rax
	movq	384(%rsp), %rdi
	movq	376(%rsp), %r11
	mulq	%r10
	movq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%r15, %rax
	adcq	%rdx, %r9
	mulq	360(%rsp)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%r11
	movq	%r8, %r12
	movq	%r9, %r13
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	368(%rsp)
	addq	%rax, %r12
	movq	%r15, %rax
	adcq	%rdx, %r13
	mulq	368(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	360(%rsp)
	addq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%r12, 16(%rsp)
	adcq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	%r11, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%r8, %rax
	movq	%r12, %r8
	adcq	%r9, %rdx
	shrdq	$51, %r13, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%r15
	movq	%r12, 48(%rsp)
	movq	%r13, 56(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	368(%rsp)
	addq	%rax, %r8
	movq	%r14, %rax
	adcq	%rdx, %r9
	mulq	360(%rsp)
	addq	%rax, %r8
	movq	%rbx, %rax
	adcq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%rcx
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r15
	movq	%r8, 64(%rsp)
	movq	%r9, 72(%rsp)
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	368(%rsp)
	addq	%rax, %r12
	movq	360(%rsp), %rax
	adcq	%rdx, %r13
	mulq	296(%rsp)
	addq	%rax, %r12
	movq	%rcx, %rax
	movq	%r8, %rcx
	adcq	%rdx, %r13
	mulq	%r10
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %r9, %rcx
	xorl	%r9d, %r9d
	movq	%rcx, %r8
	movq	%rdx, %rcx
	movq	%rax, %rdx
	movq	%r10, %rax
	addq	%r8, %rdx
	adcq	%r9, %rcx
	movq	%rdx, %r12
	mulq	%r15
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%rdx, %r9
	mulq	%rsi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r11, %rax
	addq	%r8, %rsi
	adcq	%r9, %rdi
	mulq	%r14
	addq	%rax, %rsi
	movq	368(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	296(%rsp)
	addq	%rax, %rsi
	movq	360(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	304(%rsp)
	movq	%rax, %r14
	movq	%rdx, %r15
	movq	%r12, %rdx
	addq	%rsi, %r14
	adcq	%rdi, %r15
	shrdq	$51, %rcx, %rdx
	movq	64(%rsp), %rdi
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%r14, %rax
	adcq	%r15, %rdx
	movq	16(%rsp), %r15
	andq	%rbp, %rdi
	movq	%rax, 80(%rsp)
	movq	%rdx, %rcx
	movq	%rdx, 88(%rsp)
	movq	%rax, %rdx
	shrdq	$51, %rcx, %rdx
	andq	%rbp, %r15
	movq	%rdx, %rsi
	leaq	(%rdx,%rdx,8), %rdx
	leaq	(%rsi,%rdx,2), %r10
	movabsq	$-2251799813685229, %rdx
	addq	%r15, %r10
	movq	48(%rsp), %r15
	andq	%rbp, %r15
	movq	%r15, %rcx
	movq	%r10, %r15
	andq	%rbp, %r10
	shrq	$51, %r15
	addq	%rdx, %r10
	addq	%r15, %rcx
	movq	%rcx, %r15
	shrq	$51, %rcx
	andq	%rbp, %r15
	movq	%r15, %rsi
	movq	%r10, %r15
	sarq	$51, %r15
	movq	%r15, %rdx
	movq	%r12, %r15
	negl	%edx
	andq	%rbp, %r15
	movzbl	%dl, %edx
	movq	%r15, %r8
	subq	%rdx, %rsi
	leaq	(%rdi,%rcx), %rdx
	subq	%rbp, %rsi
	movq	%rsi, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rdx
	subq	%rbp, %rdx
	movq	%rdx, %rcx
	sarq	$51, %rcx
	negl	%ecx
	movzbl	%cl, %ecx
	subq	%rcx, %r8
	movq	80(%rsp), %rcx
	subq	%rbp, %r8
	movq	%r8, %rdi
	andq	%rbp, %rcx
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rcx
	subq	%rbp, %rcx
	movq	%rcx, %r15
	sarq	$51, %r15
	movq	%r15, %r9
	movabsq	$2251799813685229, %r15
	movq	%r9, %rdi
	andq	%rbp, %r10
	andq	%rbp, %r9
	andq	%rbp, %rsi
	andq	%r15, %rdi
	leaq	(%rsi,%r9), %rax
	andq	%rbp, %rdx
	andq	%rbp, %r8
	addq	%rdi, %r10
	addq	%r9, %rdx
	addq	%r9, %r8
	andq	%rbp, %rcx
	movq	%r10, %rdi
	shrq	$51, %r10
	addq	%r9, %rcx
	addq	%r10, %rax
	andq	%rbp, %rdi
	movq	%rax, %rsi
	salq	$3, %rax
	movq	%rdi, %r9
	movq	%rdi, %r13
	shrq	$51, %rsi
	movq	%rdi, %rbx
	movq	%rdi, %r11
	addq	%rsi, %rdx
	movq	%rdx, %rsi
	salq	$6, %rdx
	shrq	$51, %rsi
	addq	%rsi, %r8
	movabsq	$18014398509481976, %rsi
	andq	%rsi, %rax
	movq	%rdi, %rsi
	movq	%r8, %r10
	shrq	$51, %r8
	shrq	$48, %rsi
	andq	%rbp, %r10
	addq	%rcx, %r8
	movabsq	$36028797018963952, %rcx
	leaq	(%rax,%rsi), %r14
	salq	$4, %r8
	movabsq	$144115188075855808, %rsi
	andq	%rsi, %rdx
	movq	%rax, %rsi
	andq	%r8, %rcx
	movzbl	%r14b, %r14d
	shrq	$48, %rsi
	addq	%rsi, %rdx
	movq	%rdx, %rsi
	shrq	$56, %rsi
	leaq	(%rsi,%r10,2), %rsi
	movq	%rdx, %r10
	movq	%rsi, %r8
	shrq	$48, %r8
	addq	%r8, %rcx
	shrq	$32, %r9
	movq	%rax, %r8
	shrq	$24, %r8
	movq	%r9, %r12
	movq	%rax, %r9
	shrq	$40, %r13
	shrq	$16, %r9
	movzbl	%r13b, %r13d
	movzbl	%r12b, %r12d
	shrq	$24, %rbx
	movq	%r9, 16(%rsp)
	shrq	$16, %r11
	movq	%rax, %r9
	shrq	$16, %r10
	movq	%r8, 48(%rsp)
	movq	%rax, %r8
	movzbl	%r11b, %r11d
	shrq	$40, %r9
	andl	$65280, %eax
	movzbl	%r9b, %r9d
	shrq	$32, %r8
	orq	%r14, %rax
	movzbl	%r8b, %r8d
	salq	$8, %rax
	orq	%r13, %rax
	salq	$8, %rax
	orq	%r12, %rax
	movzbl	%bl, %r12d
	movzbl	%dh, %ebx
	salq	$8, %rax
	orq	%r12, %rax
	movzbl	%r10b, %r12d
	salq	$8, %rax
	movq	%rax, %r13
	movq	%rdi, %rax
	movzbl	%dil, %edi
	orq	%r11, %r13
	movzbl	%ah, %eax
	salq	$8, %r13
	movq	%rax, %r11
	movq	%r13, %rax
	orq	%r11, %rax
	movq	%r10, %r11
	andl	$65280, %r11d
	salq	$8, %rax
	movq	%r11, %r10
	movzbl	%dl, %r11d
	movq	%rax, %r14
	orq	%r12, %r10
	salq	$8, %r10
	orq	%rbx, %r10
	salq	$8, %r10
	orq	%r11, %r10
	salq	$8, %r10
	orq	%r9, %r10
	movq	%rsi, %r9
	salq	$8, %r10
	orq	%r8, %r10
	movzbl	48(%rsp), %r8d
	orq	%rdi, %r14
	shrq	$16, %r9
	salq	$8, %r10
	movzbl	%r9b, %r9d
	movq	176(%rsp), %r11
	orq	%r8, %r10
	movzbl	16(%rsp), %r8d
	movq	%r14, 16(%rsp)
	movq	%rsi, %r14
	shrq	$24, %r14
	salq	$8, %r10
	movq	%r14, %rax
	movq	%r10, %rdi
	movzbl	%r14b, %r10d
	movq	32(%rsp), %r14
	andl	$65280, %eax
	orq	%r8, %rdi
	movq	%rdx, %r8
	orq	%r10, %rax
	movq	%rdi, 24(%rsp)
	movq	%rdx, %rdi
	shrq	$48, %rdx
	salq	$8, %rax
	movzbl	%dl, %edx
	shrq	$40, %r8
	movdqa	16(%rsp), %xmm2
	orq	%rax, %r9
	movq	%rsi, %rax
	movzbl	%r8b, %r8d
	shrq	$32, %rdi
	movzbl	%ah, %eax
	movzbl	%dil, %edi
	movups	%xmm2, (%r11)
	movq	%rax, %r10
	movq	%r9, %rax
	salq	$8, %rax
	orq	%r10, %rax
	movzbl	%sil, %r10d
	shrq	$40, %rsi
	salq	$8, %rax
	movzbl	%sil, %esi
	orq	%r10, %rax
	movq	152(%rsp), %r10
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	%ch, %edx
	salq	$8, %rax
	orq	%r8, %rax
	movq	%r10, %r8
	salq	$8, %rax
	orq	%rdi, %rax
	movq	%rcx, %rdi
	shrq	$16, %rdi
	movq	%rax, 16(%r11)
	movzbl	%dil, %eax
	movq	%rcx, %rdi
	sall	$8, %eax
	orl	%edx, %eax
	movzbl	%cl, %edx
	sall	$8, %eax
	orl	%edx, %eax
	movq	144(%rsp), %rdx
	sall	$8, %eax
	orl	%esi, %eax
	andq	%rbp, %rdx
	shrq	$51, %r8
	andq	%rbp, %r10
	movl	%eax, 24(%r11)
	movq	128(%rsp), %rax
	subq	%r15, %rdx
	shrq	$24, %rdi
	movb	%dil, 28(%r11)
	movq	%rcx, %rdi
	andq	%rbp, %rax
	shrq	$32, %rdi
	movq	%rax, %rsi
	movq	96(%rsp), %rax
	movb	%dil, 29(%r11)
	movq	%rcx, %rdi
	shrq	$40, %rdi
	andq	%rbp, %rax
	movb	%dil, 30(%r11)
	movq	112(%rsp), %rdi
	addq	%r8, %rax
	movq	%r10, %r8
	movq	%rdx, %r10
	andq	%rbp, %rdx
	sarq	$51, %r10
	andq	%rbp, %rdi
	movq	%r10, %r9
	negl	%r9d
	movzbl	%r9b, %r9d
	subq	%r9, %r8
	subq	%rbp, %r8
	movq	%r8, %r9
	sarq	$51, %r9
	negl	%r9d
	movzbl	%r9b, %r9d
	subq	%r9, %rax
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	%r14, %rdi
	subq	%rbp, %r8
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rax
	subq	%rbp, %rax
	sarq	$51, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %rsi
	subq	%rbp, %rsi
	sarq	$51, %rsi
	andq	%r15, %rsi
	movq	%r11, %r15
	addq	%rsi, %rdx
	shrq	$48, %rcx
	sall	$7, %edx
	xorl	%edx, %ecx
	movb	%cl, 31(%r11)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movl	$32, %edx
	movq	%r15, %rsi
	movq	%r14, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	160(%rsp), %rsi
	movl	$32, %edx
	movq	%r14, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	cmpq	$0, 40(%rsp)
	movq	168(%rsp), %rbx
	jne	.L22758
.L22752:

	movq	32(%rsp), %rsi
	leaq	704(%rsp), %rbp
	movq	%rbp, %rdi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	%rbp, %rdi
# WAS call	x25519_sc_reduce
	call	.Lx25519_sc_reduce_local_target
	movzbl	705(%rsp), %edi
	movzbl	706(%rsp), %eax
	movzbl	710(%rsp), %esi
	movzbl	704(%rsp), %edx
	salq	$16, %rax
	salq	$8, %rdi
	movl	706(%rsp), %r12d
	movl	711(%rsp), %r11d
	orq	%rax, %rdi
	movzbl	711(%rsp), %eax
	salq	$8, %rsi
	shrq	$5, %r12
	orq	%rdx, %rdi
	movzbl	719(%rsp), %edx
	shrq	$7, %r11
	salq	$16, %rax
	andl	$2097151, %edi
	andl	$2097151, %r12d
	andl	$2097151, %r11d
	orq	%rax, %rsi
	movzbl	709(%rsp), %eax
	salq	$16, %rdx
	orq	%rax, %rsi
	movl	714(%rsp), %eax
	shrq	$2, %rsi
	shrq	$4, %rax
	andl	$2097151, %esi
	andl	$2097151, %eax
	movq	%rax, 40(%rsp)
	movzbl	718(%rsp), %eax
	salq	$8, %rax
	orq	%rdx, %rax
	movzbl	717(%rsp), %edx
	orq	%rdx, %rax
	movzbl	724(%rsp), %edx
	shrq	%rax
	andl	$2097151, %eax
	salq	$16, %rdx
	movq	%rax, 48(%rsp)
	movl	719(%rsp), %eax
	shrq	$6, %rax
	movq	%rax, %rcx
	movzbl	723(%rsp), %eax
	andl	$2097151, %ecx
	salq	$8, %rax
	movq	%rcx, 112(%rsp)
	movzbl	727(%rsp), %ecx
	orq	%rdx, %rax
	movzbl	722(%rsp), %edx
	orq	%rdx, %rax
	movq	%rax, %rdx
	movzbl	726(%rsp), %eax
	shrq	$3, %rdx
	movq	%rdx, 128(%rsp)
	salq	$8, %rax
	movzbl	725(%rsp), %edx
	salq	$16, %rcx
	orq	%rcx, %rax
	movzbl	(%rbx), %ecx
	orq	%rdx, %rax
	movzbl	732(%rsp), %edx
	movq	%rax, %r15
	movl	727(%rsp), %eax
	salq	$16, %rdx
	andl	$2097151, %r15d
	shrq	$5, %rax
	movq	%r15, 144(%rsp)
	movq	%rax, %r14
	movzbl	731(%rsp), %eax
	andl	$2097151, %r14d
	salq	$8, %rax
	movq	%r14, 152(%rsp)
	orq	%rdx, %rax
	movzbl	730(%rsp), %edx
	orq	%rdx, %rax
	shrq	$2, %rax
	movq	%rax, %r10
	movl	732(%rsp), %eax
	andl	$2097151, %r10d
	movq	%r10, 168(%rsp)
	movq	%rax, %r14
	movzbl	1(%rbx), %eax
	movzbl	2(%rbx), %edx
	movl	2(%rbx), %ebp
	shrq	$7, %r14
	salq	$8, %rax
	movl	7(%rbx), %r10d
	movl	10(%rbx), %r9d
	salq	$16, %rdx
	shrq	$5, %rbp
	movzbl	19(%rbx), %r13d
	movzbl	21(%rbx), %r15d
	orq	%rdx, %rax
	movzbl	15(%rbx), %edx
	shrq	$7, %r10
	andl	$2097151, %ebp
	orq	%rcx, %rax
	movzbl	7(%rbx), %ecx
	shrq	$4, %r9
	andl	$2097151, %r10d
	movq	%rax, %r8
	movzbl	6(%rbx), %eax
	andl	$2097151, %r9d
	salq	$16, %rcx
	andl	$2097151, %r8d
	movq	%r9, 16(%rsp)
	salq	$8, %rax
	orq	%rax, %rcx
	movzbl	5(%rbx), %eax
	orq	%rax, %rcx
	movzbl	14(%rbx), %eax
	shrq	$2, %rcx
	andl	$2097151, %ecx
	salq	$8, %rax
	salq	$16, %rdx
	salq	$8, %r13
	orq	%rax, %rdx
	movzbl	13(%rbx), %eax
	orq	%rax, %rdx
	movl	15(%rbx), %eax
	shrq	%rdx
	shrq	$6, %rax
	andl	$2097151, %edx
	andl	$2097151, %eax
	movq	%rax, 64(%rsp)
	movzbl	20(%rbx), %eax
	salq	$16, %rax
	orq	%r13, %rax
	movzbl	18(%rbx), %r13d
	orq	%r13, %rax
	movzbl	23(%rbx), %r13d
	movq	%rax, %r9
	movzbl	22(%rbx), %eax
	salq	$16, %r13
	shrq	$3, %r9
	salq	$8, %rax
	orq	%r13, %rax
	movzbl	27(%rbx), %r13d
	orq	%r15, %rax
	movq	%rax, %r15
	movl	23(%rbx), %eax
	salq	$8, %r13
	andl	$2097151, %r15d
	shrq	$5, %rax
	movq	%r15, 80(%rsp)
	andl	$2097151, %eax
	movq	%rax, 96(%rsp)
	movzbl	28(%rbx), %eax
	salq	$16, %rax
	orq	%r13, %rax
	movzbl	26(%rbx), %r13d
	movl	28(%rbx), %ebx
	shrq	$7, %rbx
	orq	%r13, %rax
	movq	%rbx, %r15
	movq	8(%rsp), %rbx
	shrq	$2, %rax
	andl	$2097151, %eax
	movzbl	(%rbx), %r13d
	movq	%rax, 32(%rsp)
	movq	%rbx, %rax
	movq	%r13, 8(%rsp)
	movzbl	21(%rbx), %r13d
	movq	%r13, 160(%rsp)
	movzbl	2(%rax), %r13d
	movzbl	1(%rbx), %ebx
	salq	$16, %r13
	salq	$8, %rbx
	orq	%r13, %rbx
	movq	8(%rsp), %r13
	movq	%rax, 8(%rsp)
	orq	%r13, %rbx
	movq	%rdi, %r13
	imulq	%r8, %r13
	andl	$2097151, %ebx
	addq	%r13, %rbx
	movq	%rdi, %r13
	movq	%rbx, 184(%rsp)
	movl	2(%rax), %ebx
	imulq	%rbp, %r13
	shrq	$5, %rbx
	andl	$2097151, %ebx
	addq	%r13, %rbx
	movq	%r12, %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movzbl	6(%rax), %r13d
	movq	%rbx, 192(%rsp)
	movzbl	7(%rax), %ebx
	salq	$8, %r13
	salq	$16, %rbx
	orq	%r13, %rbx
	movzbl	5(%rax), %r13d
	orq	%r13, %rbx
	movq	%rdi, %r13
	imulq	%rcx, %r13
	shrq	$2, %rbx
	andl	$2097151, %ebx
	addq	%rbx, %r13
	movq	%r12, %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	%rsi, %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	%rdi, %r13
	movq	%rbx, 200(%rsp)
	movl	7(%rax), %ebx
	imulq	%r10, %r13
	shrq	$7, %rbx
	andl	$2097151, %ebx
	addq	%r13, %rbx
	movq	%r12, %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	%rsi, %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	%r11, %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	%rdi, %r13
	movq	%rbx, 208(%rsp)
	movl	10(%rax), %ebx
	movq	16(%rsp), %rax
	shrq	$4, %rbx
	imulq	%rax, %r13
	andl	$2097151, %ebx
	movq	8(%rsp), %rax
	addq	%rbx, %r13
	movq	%r12, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	%rsi, %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	%r11, %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	40(%rsp), %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movzbl	14(%rax), %r13d
	movq	%rbx, 216(%rsp)
	movzbl	15(%rax), %ebx
	salq	$8, %r13
	salq	$16, %rbx
	orq	%r13, %rbx
	movzbl	13(%rax), %r13d
	movq	16(%rsp), %rax
	orq	%r13, %rbx
	movq	%rdi, %r13
	imulq	%rdx, %r13
	shrq	%rbx
	andl	$2097151, %ebx
	addq	%r13, %rbx
	movq	%r12, %r13
	imulq	%rax, %r13
	addq	%rbx, %r13
	movq	%rsi, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	%r11, %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	40(%rsp), %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	48(%rsp), %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	64(%rsp), %r13
	movq	%rbx, 224(%rsp)
	movq	8(%rsp), %rbx
	imulq	%rdi, %r13
	movl	15(%rbx), %ebx
	shrq	$6, %rbx
	andl	$2097151, %ebx
	addq	%rbx, %r13
	movq	%r12, %rbx
	imulq	%rdx, %rbx
	addq	%r13, %rbx
	movq	%rsi, %r13
	imulq	%rax, %r13
	addq	%rbx, %r13
	movq	%r11, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	40(%rsp), %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	48(%rsp), %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	112(%rsp), %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	%rbx, 232(%rsp)
	movq	8(%rsp), %rax
	movzbl	19(%rax), %r13d
	movzbl	20(%rax), %ebx
	salq	$8, %r13
	salq	$16, %rbx
	orq	%r13, %rbx
	movzbl	18(%rax), %r13d
	movq	16(%rsp), %rax
	orq	%r13, %rbx
	movq	%r9, %r13
	imulq	%rdi, %r13
	shrq	$3, %rbx
	addq	%r13, %rbx
	movq	64(%rsp), %r13
	imulq	%r12, %r13
	addq	%rbx, %r13
	movq	%rsi, %rbx
	imulq	%rdx, %rbx
	addq	%r13, %rbx
	movq	%r11, %r13
	imulq	%rax, %r13
	movq	40(%rsp), %rax
	addq	%rbx, %r13
	movq	%rax, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	48(%rsp), %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	112(%rsp), %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	128(%rsp), %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	8(%rsp), %r13
	movq	%rbx, 240(%rsp)
	movzbl	22(%r13), %ebx
	movzbl	23(%r13), %r13d
	salq	$8, %rbx
	salq	$16, %r13
	orq	%r13, %rbx
	movq	160(%rsp), %r13
	orq	%r13, %rbx
	movq	80(%rsp), %r13
	andl	$2097151, %ebx
	imulq	%rdi, %r13
	addq	%rbx, %r13
	movq	%r9, %rbx
	imulq	%r12, %rbx
	addq	%r13, %rbx
	movq	64(%rsp), %r13
	imulq	%rsi, %r13
	addq	%rbx, %r13
	movq	%r11, %rbx
	imulq	%rdx, %rbx
	addq	%r13, %rbx
	movq	%rax, %r13
	movq	16(%rsp), %rax
	imulq	%rax, %r13
	movq	48(%rsp), %rax
	addq	%rbx, %r13
	movq	%rax, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	112(%rsp), %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	128(%rsp), %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	144(%rsp), %r13
	imulq	%r8, %r13
	addq	%r13, %rbx
	movq	96(%rsp), %r13
	movq	%rbx, 248(%rsp)
	movq	8(%rsp), %rbx
	imulq	%rdi, %r13
	movl	23(%rbx), %ebx
	shrq	$5, %rbx
	andl	$2097151, %ebx
	addq	%r13, %rbx
	movq	80(%rsp), %r13
	imulq	%r12, %r13
	addq	%rbx, %r13
	movq	%r9, %rbx
	imulq	%rsi, %rbx
	addq	%r13, %rbx
	movq	64(%rsp), %r13
	imulq	%r11, %r13
	addq	%rbx, %r13
	movq	40(%rsp), %rbx
	imulq	%rdx, %rbx
	addq	%r13, %rbx
	movq	%rax, %r13
	movq	16(%rsp), %rax
	imulq	%rax, %r13
	movq	112(%rsp), %rax
	addq	%rbx, %r13
	movq	%rax, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	128(%rsp), %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	144(%rsp), %rbx
	movq	%r9, 160(%rsp)
	imulq	%r11, %r9
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	152(%rsp), %r13
	imulq	%r8, %r13
	addq	%rbx, %r13
	movq	8(%rsp), %rbx
	movq	%r13, 256(%rsp)
	movzbl	27(%rbx), %r13d
	movzbl	28(%rbx), %ebx
	salq	$8, %r13
	salq	$16, %rbx
	orq	%r13, %rbx
	movq	8(%rsp), %r13
	movzbl	26(%r13), %r13d
	orq	%r13, %rbx
	movq	%rdi, %r13
	shrq	$2, %rbx
	andl	$2097151, %ebx
	movq	%rbx, 112(%rsp)
	movq	32(%rsp), %rbx
	imulq	%rbx, %r13
	movq	112(%rsp), %rbx
	movq	%rax, 112(%rsp)
	addq	%rbx, %r13
	movq	96(%rsp), %rbx
	imulq	%r12, %rbx
	addq	%r13, %rbx
	movq	80(%rsp), %r13
	imulq	%rsi, %r13
	addq	%rbx, %r13
	movq	%r9, %rbx
	movq	64(%rsp), %r9
	addq	%r13, %rbx
	movq	40(%rsp), %r13
	imulq	%r9, %r13
	addq	%rbx, %r13
	movq	48(%rsp), %rbx
	imulq	%rdx, %rbx
	addq	%r13, %rbx
	movq	%rax, %r13
	movq	16(%rsp), %rax
	imulq	%rax, %r13
	movq	128(%rsp), %rax
	addq	%rbx, %r13
	imulq	%r15, %rdi
	movq	%rax, %rbx
	imulq	%r10, %rbx
	addq	%r13, %rbx
	movq	144(%rsp), %r13
	imulq	%rcx, %r13
	addq	%rbx, %r13
	movq	152(%rsp), %rbx
	imulq	%rbp, %rbx
	addq	%r13, %rbx
	movq	168(%rsp), %r13
	imulq	%r8, %r13
	imulq	%r14, %r8
	leaq	(%rbx,%r13), %r9
	movq	8(%rsp), %rbx
	movq	40(%rsp), %r13
	movq	%r9, 264(%rsp)
	movq	%r12, %r9
	movl	28(%rbx), %ebx
	shrq	$7, %rbx
	addq	%rbx, %rdi
	movq	32(%rsp), %rbx
	imulq	%rbx, %r9
	movq	%r9, %rbx
	movq	80(%rsp), %r9
	addq	%rdi, %rbx
	movq	96(%rsp), %rdi
	imulq	%r11, %r9
	imulq	%rsi, %rdi
	addq	%rbx, %rdi
	movq	%r9, %rbx
	movq	160(%rsp), %r9
	addq	%rdi, %rbx
	movq	%r13, %rdi
	imulq	%r9, %rdi
	addq	%rbx, %rdi
	movq	48(%rsp), %rbx
	movq	64(%rsp), %r9
	imulq	%r9, %rbx
	movq	112(%rsp), %r9
	addq	%rdi, %rbx
	movq	%r9, %rdi
	imulq	%rdx, %rdi
	addq	%rbx, %rdi
	movq	%rax, %rbx
	movq	16(%rsp), %rax
	imulq	%rax, %rbx
	movq	144(%rsp), %rax
	addq	%rdi, %rbx
	movq	%rax, %rdi
	imulq	%r10, %rdi
	addq	%rbx, %rdi
	movq	152(%rsp), %rbx
	imulq	%rcx, %rbx
	addq	%rdi, %rbx
	movq	168(%rsp), %rdi
	imulq	%rbp, %rdi
	addq	%rbx, %rdi
	movq	48(%rsp), %rbx
	addq	%rdi, %r8
	movq	32(%rsp), %rdi
	imulq	%r15, %r12
	movq	%r8, 8(%rsp)
	movq	%rsi, %r8
	imulq	%r14, %rbp
	imulq	%rdi, %r8
	imulq	%r15, %rsi
	movq	%r8, %rdi
	movq	96(%rsp), %r8
	addq	%r12, %rdi
	movq	80(%rsp), %r12
	imulq	%r11, %r8
	addq	%rdi, %r8
	movq	%r13, %rdi
	imulq	%r12, %rdi
	movq	160(%rsp), %r12
	addq	%r8, %rdi
	movq	%rbx, %r8
	imulq	%r12, %r8
	movq	%r9, %r12
	addq	%rdi, %r8
	movq	%r9, %rdi
	movq	64(%rsp), %r9
	imulq	%r9, %rdi
	movq	128(%rsp), %r9
	addq	%r8, %rdi
	movq	%r9, %r8
	imulq	%rdx, %r8
	addq	%rdi, %r8
	movq	%rax, %rdi
	movq	16(%rsp), %rax
	imulq	%rax, %rdi
	movq	152(%rsp), %rax
	addq	%r8, %rdi
	movq	%rax, %r8
	imulq	%r10, %r8
	addq	%rdi, %r8
	movq	168(%rsp), %rdi
	imulq	%rcx, %rdi
	addq	%r8, %rdi
	movq	%r9, %r8
	addq	%rdi, %rbp
	movq	32(%rsp), %rdi
	movq	%rbp, 40(%rsp)
	movq	%r11, %rbp
	imulq	%rdi, %rbp
	movq	%rbp, %rdi
	movq	96(%rsp), %rbp
	addq	%rsi, %rdi
	movq	%r13, %rsi
	imulq	%rbp, %rsi
	movq	80(%rsp), %rbp
	addq	%rdi, %rsi
	movq	%rbx, %rdi
	imulq	%rbp, %rdi
	movq	160(%rsp), %rbp
	addq	%rsi, %rdi
	movq	%r12, %rsi
	imulq	%rbp, %rsi
	movq	144(%rsp), %rbp
	addq	%rdi, %rsi
	movq	%r9, %rdi
	movq	64(%rsp), %r9
	imulq	%r9, %rdi
	addq	%rsi, %rdi
	imulq	%r14, %rcx
	movq	%rbp, %rsi
	imulq	%rdx, %rsi
	imulq	%r15, %r11
	addq	%rdi, %rsi
	movq	%rax, %rdi
	movq	16(%rsp), %rax
	imulq	%rax, %rdi
	movq	168(%rsp), %rax
	addq	%rsi, %rdi
	movq	%rax, %rsi
	imulq	%r10, %rsi
	imulq	%r14, %r10
	addq	%rdi, %rsi
	movq	152(%rsp), %rdi
	addq	%rsi, %rcx
	movq	32(%rsp), %rsi
	movq	%rcx, 48(%rsp)
	movq	%r13, %rcx
	imulq	%r15, %r13
	imulq	%rsi, %rcx
	movq	%rbx, %rsi
	addq	%r11, %rcx
	movq	96(%rsp), %r11
	imulq	%r11, %rsi
	movq	80(%rsp), %r11
	addq	%rcx, %rsi
	movq	%r12, %rcx
	imulq	%r11, %rcx
	movq	160(%rsp), %r11
	addq	%rsi, %rcx
	movq	%r8, %rsi
	imulq	%r11, %rsi
	movq	%rax, %r11
	addq	%rcx, %rsi
	movq	%rbp, %rcx
	imulq	%r9, %rcx
	addq	%rsi, %rcx
	movq	%rdi, %rsi
	imulq	%rdx, %rsi
	addq	%rcx, %rsi
	movq	%rax, %rcx
	movq	16(%rsp), %rax
	imulq	%rax, %rcx
	movq	32(%rsp), %rax
	addq	%rsi, %rcx
	movq	%rbx, %rsi
	addq	%r10, %rcx
	movq	96(%rsp), %r10
	imulq	%rax, %rsi
	movq	80(%rsp), %rax
	movq	%rcx, 64(%rsp)
	movq	%r12, %rcx
	imulq	%r10, %rcx
	addq	%r13, %rsi
	movq	160(%rsp), %r13
	addq	%rsi, %rcx
	movq	%r8, %rsi
	imulq	%rax, %rsi
	addq	%rcx, %rsi
	imulq	%r15, %rbx
	movq	%rbp, %rcx
	imulq	%r13, %rcx
	movq	%r9, %r13
	addq	%rsi, %rcx
	movq	%rdi, %rsi
	imulq	%r9, %rsi
	movq	16(%rsp), %r9
	imulq	%r14, %r9
	addq	%rcx, %rsi
	movq	%r11, %rcx
	imulq	%rdx, %rcx
	imulq	%r14, %rdx
	addq	%rsi, %rcx
	movq	%r12, %rsi
	addq	%r9, %rcx
	movq	32(%rsp), %r9
	imulq	%r15, %r12
	movq	%rcx, 16(%rsp)
	movq	%rbx, %rcx
	movq	32(%rsp), %rbx
	imulq	%rbx, %rsi
	movq	160(%rsp), %rbx
	addq	%rsi, %rcx
	movq	%r8, %rsi
	imulq	%r10, %rsi
	addq	%rcx, %rsi
	movq	%rbp, %rcx
	imulq	%rax, %rcx
	addq	%rsi, %rcx
	movq	%rdi, %rsi
	imulq	%rbx, %rsi
	addq	%rcx, %rsi
	movq	%r11, %rcx
	imulq	%r13, %rcx
	imulq	%r14, %r13
	addq	%rsi, %rcx
	movq	%r8, %rsi
	addq	%rdx, %rcx
	imulq	%r9, %rsi
	movq	%rbp, %rdx
	imulq	%r10, %rdx
	addq	%r12, %rsi
	movq	%rax, %r12
	addq	%rsi, %rdx
	movq	%rdi, %rsi
	imulq	%rax, %rsi
	movq	32(%rsp), %rax
	addq	%rdx, %rsi
	movq	%r11, %rdx
	imulq	%rbx, %rdx
	addq	%rsi, %rdx
	imulq	%r15, %r8
	movq	%rbp, %rsi
	imulq	%rax, %rsi
	leaq	(%rdx,%r13), %r9
	movq	%rdi, %rdx
	imulq	%r10, %rdx
	movq	%r9, 80(%rsp)
	movq	%r11, %r9
	imulq	%r12, %r9
	imulq	%r14, %rbx
	addq	%r8, %rsi
	movq	%r11, %r8
	addq	%rsi, %rdx
	imulq	%rax, %r8
	movq	%rdi, %rsi
	addq	%rdx, %r9
	imulq	%r15, %rdi
	movq	%r11, %rdx
	addq	%rbx, %r9
	imulq	%r15, %r11
	movq	%r10, %rbx
	imulq	%rax, %rsi
	imulq	%r14, %rax
	addq	%rdi, %r8
	movq	184(%rsp), %rdi
	imulq	%r15, %rbp
	imulq	%r14, %rbx
	imulq	%r10, %rdx
	addq	%r11, %rax
	movq	232(%rsp), %r11
	imulq	%r14, %r12
	addq	%rbp, %rsi
	movq	%rax, 32(%rsp)
	leaq	1048576(%rdi), %rax
	addq	%rbx, %r8
	movq	200(%rsp), %rbx
	imulq	%r15, %r14
	movq	%rax, %r13
	addq	%rsi, %rdx
	andq	$-2097152, %rax
	sarq	$21, %r13
	movq	216(%rsp), %r15
	subq	%rax, %rdi
	leaq	(%rdx,%r12), %r12
	leaq	1048576(%rbx), %rax
	movq	192(%rsp), %rdx
	movq	%r12, 96(%rsp)
	movq	%rax, %r12
	andq	$-2097152, %rax
	movq	248(%rsp), %rsi
	addq	%rdx, %r13
	subq	%rax, %rbx
	sarq	$21, %r12
	movq	%rdi, 112(%rsp)
	movq	208(%rsp), %rdx
	leaq	1048576(%r15), %rax
	movq	%rbx, 128(%rsp)
	movq	%rax, %rbp
	addq	%rdx, %r12
	sarq	$21, %rbp
	andq	$-2097152, %rax
	movq	224(%rsp), %rdx
	subq	%rax, %r15
	leaq	1048576(%r11), %rax
	movq	%rax, %rdi
	andq	$-2097152, %rax
	movq	%r15, 144(%rsp)
	addq	%rdx, %rbp
	subq	%rax, %r11
	movq	%rsi, %rax
	sarq	$21, %rdi
	movq	8(%rsp), %rdx
	addq	$1048576, %rax
	movq	%r11, 152(%rsp)
	movq	%rdi, %rbx
	movq	240(%rsp), %rdi
	movq	%rax, %r11
	andq	$-2097152, %rax
	subq	%rax, %rsi
	addq	%rdi, %rbx
	movq	256(%rsp), %rdi
	sarq	$21, %r11
	movq	%rsi, %r15
	movq	264(%rsp), %rsi
	addq	%rdi, %r11
	movq	%rsi, %rax
	addq	$1048576, %rax
	movq	%rax, %rdi
	andq	$-2097152, %rax
	subq	%rax, %rsi
	sarq	$21, %rdi
	movq	%rsi, 160(%rsp)
	movq	40(%rsp), %rsi
	addq	%rdx, %rdi
	movq	48(%rsp), %r10
	movq	%rsi, %rax
	addq	$1048576, %rax
	movq	%rax, %rdx
	andq	$-2097152, %rax
	sarq	$21, %rdx
	subq	%rax, %rsi
	addq	%r10, %rdx
	movq	%rsi, 48(%rsp)
	movq	16(%rsp), %r10
	movq	%rdx, 40(%rsp)
	movq	64(%rsp), %rdx
	movq	%rdx, %rax
	addq	$1048576, %rax
	movq	%rax, %rsi
	andq	$-2097152, %rax
	sarq	$21, %rsi
	addq	%r10, %rsi
	movq	%rdx, %r10
	movq	80(%rsp), %rdx
	subq	%rax, %r10
	leaq	1048576(%rcx), %rax
	movq	%r10, 16(%rsp)
	movq	%rax, %r10
	andq	$-2097152, %rax
	subq	%rax, %rcx
	leaq	1048576(%r9), %rax
	sarq	$21, %r10
	movq	%rcx, 64(%rsp)
	movq	%rax, %rcx
	addq	%rdx, %r10
	movq	96(%rsp), %rdx
	sarq	$21, %rcx
	andq	$-2097152, %rax
	subq	%rax, %r9
	addq	%rdx, %rcx
	movq	32(%rsp), %rdx
	movq	%r9, 80(%rsp)
	leaq	1048576(%r8), %r9
	movq	%r9, %rax
	andq	$-2097152, %r9
	subq	%r9, %r8
	leaq	1048576(%r14), %r9
	sarq	$21, %rax
	movq	%r8, 32(%rsp)
	movq	%r9, %r8
	andq	$-2097152, %r9
	addq	%rdx, %rax
	subq	%r9, %r14
	leaq	1048576(%r13), %r9
	movq	%rax, 8(%rsp)
	sarq	$21, %r8
	movq	%r9, %rax
	andq	$-2097152, %r9
	movq	128(%rsp), %rdx
	movq	%r14, 96(%rsp)
	subq	%r9, %r13
	leaq	1048576(%r12), %r9
	sarq	$21, %rax
	movq	40(%rsp), %r14
	movq	%r13, 168(%rsp)
	movq	%r9, %r13
	leaq	(%rax,%rdx), %rax
	andq	$-2097152, %r9
	subq	%r9, %r12
	leaq	1048576(%rbp), %r9
	movq	144(%rsp), %rdx
	sarq	$21, %r13
	movq	%r12, 184(%rsp)
	movq	%r9, %r12
	andq	$-2097152, %r9
	subq	%r9, %rbp
	addq	%rdx, %r13
	leaq	1048576(%rbx), %r9
	movq	152(%rsp), %rdx
	movq	%rbp, 192(%rsp)
	movq	%r9, %rbp
	sarq	$21, %r12
	andq	$-2097152, %r9
	subq	%r9, %rbx
	leaq	1048576(%r11), %r9
	addq	%rdx, %r12
	sarq	$21, %rbp
	movq	160(%rsp), %rdx
	movq	%rbx, 200(%rsp)
	movq	%r9, %rbx
	andq	$-2097152, %r9
	subq	%r9, %r11
	sarq	$21, %rbx
	leaq	1048576(%rdi), %r9
	addq	%rbp, %r15
	addq	%rdx, %rbx
	movq	%r13, 144(%rsp)
	movq	48(%rsp), %rdx
	movq	%r9, %r13
	sarq	$21, %r13
	movq	%r12, 152(%rsp)
	addq	%rdx, %r13
	andq	$-2097152, %r9
	movq	16(%rsp), %rdx
	movq	%r11, 160(%rsp)
	subq	%r9, %rdi
	leaq	1048576(%r14), %r9
	movq	%rax, 128(%rsp)
	movq	%r9, %r12
	andq	$-2097152, %r9
	sarq	$21, %r12
	addq	%rdx, %r12
	movq	%r14, %rdx
	movq	64(%rsp), %r14
	subq	%r9, %rdx
	leaq	1048576(%rsi), %r9
	movq	%r9, %rbp
	andq	$-2097152, %r9
	subq	%r9, %rsi
	sarq	$21, %rbp
	leaq	1048576(%r10), %r9
	addq	%r14, %rbp
	movq	%r9, %r11
	movq	80(%rsp), %r14
	andq	$-2097152, %r9
	subq	%r9, %r10
	sarq	$21, %r11
	leaq	1048576(%rcx), %r9
	movq	%r10, 16(%rsp)
	addq	%r14, %r11
	movq	8(%rsp), %rax
	movq	%r9, %r10
	movq	32(%rsp), %r14
	sarq	$21, %r10
	andq	$-2097152, %r9
	subq	%r9, %rcx
	addq	%r14, %r10
	leaq	1048576(%rax), %r14
	movq	96(%rsp), %rax
	movq	%r14, %r9
	andq	$-2097152, %r14
	sarq	$21, %r9
	addq	%rax, %r9
	movq	8(%rsp), %rax
	subq	%r14, %rax
	imulq	$666643, %r8, %r14
	addq	%r14, %rdi
	imulq	$470296, %r8, %r14
	addq	%r14, %r13
	imulq	$654183, %r8, %r14
	addq	%rdx, %r14
	imulq	$-997805, %r8, %rdx
	addq	%rdx, %r12
	imulq	$136657, %r8, %rdx
	addq	%rsi, %rdx
	imulq	$-683901, %r8, %r8
	imulq	$666643, %r9, %rsi
	addq	%rbp, %r8
	imulq	$-997805, %r9, %rbp
	addq	%rbx, %rsi
	imulq	$470296, %r9, %rbx
	addq	%r14, %rbp
	movq	200(%rsp), %r14
	addq	%rbx, %rdi
	imulq	$654183, %r9, %rbx
	addq	%r13, %rbx
	imulq	$136657, %r9, %r13
	imulq	$-683901, %r9, %r9
	addq	%r13, %r12
	imulq	$666643, %rax, %r13
	addq	%rdx, %r9
	movq	160(%rsp), %rdx
	addq	%rdx, %r13
	imulq	$470296, %rax, %rdx
	addq	%rdx, %rsi
	imulq	$654183, %rax, %rdx
	addq	%rdx, %rdi
	imulq	$-997805, %rax, %rdx
	addq	%rdx, %rbx
	imulq	$136657, %rax, %rdx
	imulq	$-683901, %rax, %rax
	addq	%rbp, %rdx
	imulq	$666643, %r10, %rbp
	addq	%r12, %rax
	imulq	$470296, %r10, %r12
	addq	%r15, %rbp
	addq	%r13, %r12
	imulq	$654183, %r10, %r13
	addq	%r13, %rsi
	imulq	$-997805, %r10, %r13
	addq	%r13, %rdi
	imulq	$136657, %r10, %r13
	imulq	$-683901, %r10, %r10
	addq	%r13, %rbx
	imulq	$470296, %rcx, %r13
	addq	%r10, %rdx
	imulq	$666643, %rcx, %r10
	addq	%rbp, %r13
	imulq	$654183, %rcx, %rbp
	addq	%r14, %r10
	imulq	$666643, %r11, %r14
	addq	%rbp, %r12
	imulq	$-997805, %rcx, %rbp
	addq	%rbp, %rsi
	imulq	$136657, %rcx, %rbp
	imulq	$-683901, %rcx, %rcx
	addq	%rbp, %rdi
	imulq	$654183, %r11, %rbp
	addq	%rbx, %rcx
	movq	152(%rsp), %rbx
	addq	%rbx, %r14
	imulq	$470296, %r11, %rbx
	addq	%r13, %rbp
	addq	%rbx, %r10
	imulq	$-997805, %r11, %rbx
	addq	%rbx, %r12
	imulq	$136657, %r11, %rbx
	imulq	$-683901, %r11, %r11
	addq	%rbx, %rsi
	addq	%rdi, %r11
	leaq	1048576(%r14), %rdi
	movq	%rdi, %rbx
	sarq	$21, %rbx
	addq	%r10, %rbx
	andq	$-2097152, %rdi
	subq	%rdi, %r14
	leaq	1048576(%rbp), %rdi
	movq	%rdi, %r13
	andq	$-2097152, %rdi
	movq	%r14, 8(%rsp)
	movq	16(%rsp), %r14
	subq	%rdi, %rbp
	leaq	1048576(%rsi), %rdi
	sarq	$21, %r13
	movq	%rdi, %r10
	andq	$-2097152, %rdi
	addq	%r12, %r13
	sarq	$21, %r10
	addq	%r11, %r10
	movq	%rsi, %r11
	subq	%rdi, %r11
	leaq	1048576(%rcx), %rdi
	movq	%rdi, %rsi
	andq	$-2097152, %rdi
	subq	%rdi, %rcx
	sarq	$21, %rsi
	leaq	1048576(%rax), %rdi
	addq	%rdx, %rsi
	movq	%rdi, %rdx
	andq	$-2097152, %rdi
	sarq	$21, %rdx
	subq	%rdi, %rax
	addq	%r9, %rdx
	leaq	1048576(%r8), %r9
	movq	%r9, %rdi
	andq	$-2097152, %r9
	subq	%r9, %r8
	leaq	1048576(%rbx), %r9
	sarq	$21, %rdi
	movq	%r9, %r15
	andq	$-2097152, %r9
	addq	%r14, %rdi
	subq	%r9, %rbx
	sarq	$21, %r15
	movq	%rbx, %r9
	leaq	1048576(%r13), %rbx
	addq	%rbp, %r15
	movq	%rbx, %rbp
	andq	$-2097152, %rbx
	sarq	$21, %rbp
	subq	%rbx, %r13
	addq	%r11, %rbp
	leaq	1048576(%r10), %r11
	movq	%r11, %rbx
	sarq	$21, %rbx
	addq	%rbx, %rcx
	andq	$-2097152, %r11
	subq	%r11, %r10
	leaq	1048576(%rsi), %r11
	movq	%r11, %rbx
	andq	$-2097152, %r11
	sarq	$21, %rbx
	imulq	$666643, %rdi, %r12
	subq	%r11, %rsi
	movq	%rbx, %r14
	imulq	$470296, %rdi, %rbx
	addq	%rax, %r14
	leaq	1048576(%rdx), %rax
	movq	%rax, %r11
	andq	$-2097152, %rax
	subq	%rax, %rdx
	movq	192(%rsp), %rax
	sarq	$21, %r11
	addq	%r8, %r11
	imulq	$136657, %rdi, %r8
	addq	%rax, %r12
	movq	8(%rsp), %rax
	addq	%rax, %rbx
	imulq	$654183, %rdi, %rax
	addq	%r13, %r8
	movq	144(%rsp), %r13
	addq	%r9, %rax
	imulq	$-997805, %rdi, %r9
	imulq	$-683901, %rdi, %rdi
	addq	%r15, %r9
	movq	168(%rsp), %r15
	addq	%rbp, %rdi
	imulq	$666643, %r11, %rbp
	addq	%r13, %rbp
	imulq	$470296, %r11, %r13
	addq	%r12, %r13
	imulq	$654183, %r11, %r12
	addq	%rbx, %r12
	imulq	$-997805, %r11, %rbx
	addq	%rax, %rbx
	imulq	$136657, %r11, %rax
	addq	%r9, %rax
	imulq	$-683901, %r11, %r11
	movq	184(%rsp), %r9
	addq	%r8, %r11
	imulq	$666643, %rdx, %r8
	addq	%r9, %r8
	imulq	$470296, %rdx, %r9
	addq	%rbp, %r9
	imulq	$654183, %rdx, %rbp
	addq	%r13, %rbp
	imulq	$-997805, %rdx, %r13
	addq	%r12, %r13
	imulq	$136657, %rdx, %r12
	imulq	$-683901, %rdx, %rdx
	addq	%rbx, %r12
	imulq	$666643, %r14, %rbx
	addq	%rax, %rdx
	movq	128(%rsp), %rax
	addq	%rax, %rbx
	imulq	$470296, %r14, %rax
	addq	%r8, %rax
	imulq	$654183, %r14, %r8
	addq	%r9, %r8
	imulq	$-997805, %r14, %r9
	addq	%rbp, %r9
	imulq	$136657, %r14, %rbp
	imulq	$-683901, %r14, %r14
	addq	%r13, %rbp
	imulq	$666643, %rsi, %r13
	addq	%r12, %r14
	addq	%r15, %r13
	imulq	$470296, %rsi, %r15
	addq	%rbx, %r15
	imulq	$654183, %rsi, %rbx
	addq	%rax, %rbx
	imulq	$-997805, %rsi, %rax
	imulq	$470296, %rcx, %r12
	addq	%r8, %rax
	imulq	$136657, %rsi, %r8
	addq	%r13, %r12
	imulq	$654183, %rcx, %r13
	addq	%r9, %r8
	imulq	$-683901, %rsi, %r9
	movq	112(%rsp), %rsi
	addq	%r15, %r13
	addq	%rbp, %r9
	imulq	$666643, %rcx, %rbp
	addq	%rsi, %rbp
	imulq	$-997805, %rcx, %rsi
	addq	%rbx, %rsi
	imulq	$136657, %rcx, %rbx
	imulq	$-683901, %rcx, %rcx
	addq	%rax, %rbx
	leaq	(%rcx,%r8), %rax
	leaq	1048576(%rbp), %rcx
	movq	%rcx, %r8
	andq	$-2097152, %rcx
	subq	%rcx, %rbp
	sarq	$21, %r8
	leaq	1048576(%r13), %rcx
	addq	%r12, %r8
	movq	%rcx, %r12
	andq	$-2097152, %rcx
	sarq	$21, %r12
	subq	%rcx, %r13
	addq	%rsi, %r12
	leaq	1048576(%rbx), %rsi
	movq	%rsi, %rcx
	andq	$-2097152, %rsi
	subq	%rsi, %rbx
	sarq	$21, %rcx
	leaq	1048576(%r9), %rsi
	addq	%rax, %rcx
	movq	%rsi, %rax
	andq	$-2097152, %rsi
	sarq	$21, %rax
	addq	%r14, %rax
	subq	%rsi, %r9
	leaq	1048576(%rdx), %rsi
	movq	%rsi, %r14
	andq	$-2097152, %rsi
	subq	%rsi, %rdx
	sarq	$21, %r14
	leaq	1048576(%rdi), %rsi
	addq	%r11, %r14
	movq	%rsi, %r11
	andq	$-2097152, %rsi
	subq	%rsi, %rdi
	sarq	$21, %r11
	leaq	1048576(%r8), %rsi
	addq	%r10, %r11
	movq	%rsi, %r10
	andq	$-2097152, %rsi
	subq	%rsi, %r8
	sarq	$21, %r10
	leaq	1048576(%r12), %rsi
	addq	%r13, %r10
	movq	%rsi, %r13
	andq	$-2097152, %rsi
	sarq	$21, %r13
	subq	%rsi, %r12
	addq	%rbx, %r13
	leaq	1048576(%rcx), %rbx
	movq	%rbx, %rsi
	andq	$-2097152, %rbx
	sarq	$21, %rsi
	subq	%rbx, %rcx
	addq	%r9, %rsi
	leaq	1048576(%rax), %r9
	movq	%r9, %rbx
	andq	$-2097152, %r9
	sarq	$21, %rbx
	subq	%r9, %rax
	addq	%rdx, %rbx
	leaq	1048576(%r14), %rdx
	movq	%rdx, %r15
	andq	$-2097152, %rdx
	subq	%rdx, %r14
	sarq	$21, %r15
	leaq	1048576(%r11), %rdx
	addq	%rdi, %r15
	movq	%rdx, %rdi
	andq	$-2097152, %rdx
	sarq	$21, %rdi
	subq	%rdx, %r11
	imulq	$666643, %rdi, %r9
	imulq	$654183, %rdi, %rdx
	addq	%rbp, %r9
	imulq	$470296, %rdi, %rbp
	addq	%rdx, %r10
	imulq	$136657, %rdi, %rdx
	addq	%r8, %rbp
	imulq	$-997805, %rdi, %r8
	addq	%r13, %rdx
	imulq	$-683901, %rdi, %rdi
	movq	%r9, %r13
	andl	$2097151, %r9d
	sarq	$21, %r13
	addq	%rbp, %r13
	addq	%r12, %r8
	movq	%r13, %r12
	addq	%rcx, %rdi
	andl	$2097151, %r13d
	sarq	$21, %r12
	addq	%r10, %r12
	movq	%r12, %rbp
	andl	$2097151, %r12d
	sarq	$21, %rbp
	addq	%r8, %rbp
	movq	%rbp, %r10
	andl	$2097151, %ebp
	sarq	$21, %r10
	addq	%rdx, %r10
	movq	%r10, %r8
	andl	$2097151, %r10d
	sarq	$21, %r8
	addq	%rdi, %r8
	movq	%r8, %rdx
	andl	$2097151, %r8d
	sarq	$21, %rdx
	addq	%rdx, %rsi
	movq	%rsi, %rcx
	sarq	$21, %rcx
	addq	%rax, %rcx
	andl	$2097151, %esi
	movq	%rcx, %rdx
	andl	$2097151, %ecx
	sarq	$21, %rdx
	addq	%rbx, %rdx
	movq	%rdx, %rax
	andl	$2097151, %edx
	sarq	$21, %rax
	addq	%r14, %rax
	movq	%rax, %rbx
	andl	$2097151, %eax
	sarq	$21, %rbx
	addq	%r15, %rbx
	movq	%rbx, %r15
	andl	$2097151, %ebx
	sarq	$21, %r15
	addq	%r11, %r15
	movq	%r15, %rdi
	andl	$2097151, %r15d
	sarq	$21, %rdi
	imulq	$666643, %rdi, %r11
	addq	%r9, %r11
	imulq	$470296, %rdi, %r9
	addq	%r13, %r9
	imulq	$654183, %rdi, %r13
	addq	%r12, %r13
	imulq	$-997805, %rdi, %r12
	addq	%rbp, %r12
	imulq	$136657, %rdi, %rbp
	imulq	$-683901, %rdi, %rdi
	addq	%r10, %rbp
	movq	%r11, %r10
	andl	$2097151, %r11d
	sarq	$21, %r10
	addq	%r8, %rdi
	addq	%r9, %r10
	movq	%r10, %r9
	movq	%r10, %r14
	sarq	$21, %r9
	addq	%r13, %r9
	andl	$2097151, %r14d
	sall	$5, %r10d
	movq	%r9, %r8
	sarq	$21, %r8
	addq	%r12, %r8
	movq	%r9, %r12
	andl	$2097151, %r12d
	movq	%r12, 8(%rsp)
	movq	%r8, %r12
	sarq	$21, %r12
	leaq	(%r12,%rbp), %r13
	movq	%r8, %rbp
	andl	$2097151, %ebp
	movq	%r13, 16(%rsp)
	movq	%rbp, 32(%rsp)
	movq	%r13, %rbp
	andl	$2097151, %r13d
	sarq	$21, %rbp
	addq	%rdi, %rbp
	movq	%rbp, %rdi
	movq	%rbp, 40(%rsp)
	sarq	$21, %rdi
	addq	%rsi, %rdi
	movq	%rbp, %rsi
	andl	$2097151, %esi
	movq	%rdi, %r12
	movq	%rsi, 48(%rsp)
	movq	%rdi, %rsi
	andl	$2097151, %r12d
	sarq	$21, %rsi
	addq	%rcx, %rsi
	movq	%rsi, %rcx
	sarq	$21, %rcx
	addq	%rdx, %rcx
	movq	%rsi, %rdx
	andl	$2097151, %edx
	movq	%rdx, 64(%rsp)
	movq	%rcx, %rdx
	andl	$2097151, %ecx
	sarq	$21, %rdx
	movq	%rcx, 80(%rsp)
	movq	176(%rsp), %rcx
	addq	%rax, %rdx
	movq	%rdx, %rax
	movw	%r11w, 32(%rcx)
	sarq	$16, %r11
	sarq	$21, %rax
	orl	%r11d, %r10d
	movq	8(%rsp), %r11
	addq	%rbx, %rax
	movq	%rdx, %rbx
	movb	%r10b, 34(%rcx)
	movq	%r14, %r10
	andl	$2097151, %ebx
	sarq	$3, %r10
	movq	%rbx, %rbp
	movq	%rax, %rbx
	movb	%r10b, 35(%rcx)
	movq	%r14, %r10
	sarq	$21, %rbx
	sarq	$11, %r10
	addq	%r15, %rbx
	movq	%rax, %r15
	movb	%r10b, 36(%rcx)
	andl	$2097151, %r15d
	sarq	$19, %r14
	sall	$2, %r9d
	sall	$7, %r8d
	sall	$6, %edi
	orl	%r14d, %r9d
	movq	%rcx, %r14
	sall	$3, %esi
	movb	%r9b, 37(%rcx)
	movq	%r11, %r9
	sarq	$14, %r11
	sarq	$6, %r9
	orl	%r11d, %r8d
	sall	$5, %edx
	movb	%r9b, 38(%rcx)
	movb	%r8b, 39(%rcx)
	movq	32(%rsp), %r10
	movzbl	16(%rsp), %r9d
	movq	%r10, %r8
	sarq	%r8
	sall	$4, %r9d
	movb	%r8b, 40(%rcx)
	movq	%r10, %r8
	sarq	$17, %r10
	sarq	$9, %r8
	orl	%r10d, %r9d
	movzbl	40(%rsp), %r10d
	movb	%r8b, 41(%rcx)
	movq	%r13, %r8
	sarq	$4, %r8
	movb	%r9b, 42(%rcx)
	movb	%r8b, 43(%rcx)
	movq	%r13, %r8
	sarq	$20, %r13
	sarq	$12, %r8
	movb	%r8b, 44(%rcx)
	leal	(%r10,%r10), %r8d
	orl	%r8d, %r13d
	movb	%r13b, 45(%rcx)
	movq	48(%rsp), %rcx
	movq	%rcx, %r8
	sarq	$15, %rcx
	orl	%ecx, %edi
	movq	64(%rsp), %rcx
	sarq	$7, %r8
	movb	%dil, 47(%r14)
	movq	%r12, %rdi
	sarq	$2, %rdi
	movb	%r8b, 46(%r14)
	movb	%dil, 48(%r14)
	movq	%r12, %rdi
	sarq	$18, %r12
	orl	%r12d, %esi
	sarq	$10, %rdi
	movb	%sil, 50(%r14)
	movq	%rcx, %rsi
	sarq	$13, %rcx
	movb	%cl, 52(%r14)
	movq	80(%rsp), %rcx
	sarq	$5, %rsi
	movb	%dil, 49(%r14)
	movw	%cx, 53(%r14)
	sarq	$16, %rcx
	orl	%ecx, %edx
	movb	%sil, 51(%r14)
	movb	%dl, 55(%r14)
	movq	%rbp, %rdx
	sarq	$3, %rdx
	movb	%dl, 56(%r14)
	movq	%rbp, %rdx
	sarq	$11, %rdx
	sarq	$19, %rbp
	sall	$2, %eax
	movb	%dl, 57(%r14)
	orl	%ebp, %eax
	movb	%al, 58(%r14)
	movq	%r15, %rax
	sarq	$14, %r15
	sarq	$6, %rax
	movb	%al, 59(%r14)
	movl	%ebx, %eax
	sall	$7, %eax
	orl	%r15d, %eax
	movb	%al, 60(%r14)
	movq	%rbx, %rax
	sarq	%rax
	movb	%al, 61(%r14)
	movq	%rbx, %rax
	sarq	$17, %rbx
	sarq	$9, %rax
	movb	%bl, 63(%r14)
	movb	%al, 62(%r14)
	movq	776(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22759
	addq	$792, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22758:

	.cfi_restore_state
	movq	40(%rsp), %rdx
	movq	184(%rsp), %rsi
	movq	32(%rsp), %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	jmp	.L22752
.L22759:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1430:

	.size	ed25519_sign_nohw, .-ed25519_sign_nohw
# WAS .section	.text.ed25519_sign_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_sign_s2n_bignum
	.hidden	ed25519_sign_s2n_bignum
	.type	ed25519_sign_s2n_bignum, @function
.Led25519_sign_s2n_bignum_local_target:
ed25519_sign_s2n_bignum:
.LFB1449:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pxor	%xmm0, %xmm0
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$584, %rsp
	.cfi_def_cfa_offset 640
	movdqu	(%rsi), %xmm1
	movq	%r8, 8(%rsp)
	leaq	144(%rsp), %r12
	leaq	80(%rsp), %rbp
	movq	%r12, %rdi
	movq	%fs:40, %rcx
	movq	%rcx, 568(%rsp)
	xorl	%ecx, %ecx
	movaps	%xmm0, 496(%rsp)
	movaps	%xmm0, 512(%rsp)
	movaps	%xmm0, 528(%rsp)
	movaps	%xmm0, 544(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 80(%rsp)
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
	movaps	%xmm0, 128(%rsp)
	movaps	%xmm0, 16(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 208(%rsp)
	movaps	%xmm0, 224(%rsp)
	movaps	%xmm0, 240(%rsp)
	movaps	%xmm0, 256(%rsp)
	movaps	%xmm1, 144(%rsp)
	movdqu	16(%rsi), %xmm2
	movdqu	(%rdx), %xmm5
	movdqu	32(%rsi), %xmm3
	movdqu	48(%rsi), %xmm4
	movl	$8, %esi
	movdqu	16(%rdx), %xmm6
	movq	%r12, %rdx
	movaps	%xmm5, 48(%rsp)
	movaps	%xmm2, 160(%rsp)
	movaps	%xmm3, 176(%rsp)
	movaps	%xmm4, 192(%rsp)
	movaps	%xmm6, 64(%rsp)
# WAS call	bignum_mod_n25519@PLT
	call	.Lbignum_mod_n25519_local_target
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movq	%rax, %r13
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L22771
# WAS call	edwards25519_scalarmulbase_alt@PLT
	call	.Ledwards25519_scalarmulbase_alt_local_target
.L22762:

	movq	%rbp, %rsi
	movq	%rbx, %rdi
	leaq	272(%rsp), %rbp
# WAS call	edwards25519_encode@PLT
	call	.Ledwards25519_encode_local_target
	movq	%rbp, %rdi
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movl	$32, %edx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movl	$32, %edx
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	testq	%r14, %r14
	jne	.L22772
.L22763:

	movq	%rbp, %rsi
	leaq	496(%rsp), %rdi
	leaq	208(%rsp), %rbp
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	%rbp, %rdx
	movl	$8, %esi
	movq	%rbp, %rdi
	movdqa	496(%rsp), %xmm7
	movdqa	512(%rsp), %xmm1
	movdqa	528(%rsp), %xmm2
	movdqa	544(%rsp), %xmm3
	movaps	%xmm7, 208(%rsp)
	movaps	%xmm1, 224(%rsp)
	movaps	%xmm2, 240(%rsp)
	movaps	%xmm3, 256(%rsp)
# WAS call	bignum_mod_n25519@PLT
	call	.Lbignum_mod_n25519_local_target
	movl	8(%r13), %eax
	movq	%r12, %rcx
	movq	%rbp, %rsi
	leaq	48(%rsp), %rdx
	leaq	16(%rsp), %rdi
	notl	%eax
	testl	$524544, %eax
	je	.L22773
# WAS call	bignum_madd_n25519_alt@PLT
	call	.Lbignum_madd_n25519_alt_local_target
.L22765:

	movdqa	16(%rsp), %xmm4
	movdqa	32(%rsp), %xmm5
	movups	%xmm4, 32(%rbx)
	movups	%xmm5, 48(%rbx)
	movq	568(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22774
	addq	$584, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22772:

	.cfi_restore_state
	movq	8(%rsp), %rsi
	movq	%r14, %rdx
	movq	%rbp, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	jmp	.L22763
	.p2align 4,,10
	.p2align 3
.L22771:

# WAS call	edwards25519_scalarmulbase@PLT
	call	.Ledwards25519_scalarmulbase_local_target
	jmp	.L22762
	.p2align 4,,10
	.p2align 3
.L22773:

# WAS call	bignum_madd_n25519@PLT
	call	.Lbignum_madd_n25519_local_target
	jmp	.L22765
.L22774:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1449:

	.size	ed25519_sign_s2n_bignum, .-ed25519_sign_s2n_bignum
# WAS .section	.text.ED25519_sign_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_sign_no_self_test
	.hidden	ED25519_sign_no_self_test
	.type	ED25519_sign_no_self_test, @function
.LED25519_sign_no_self_test_local_target:
ED25519_sign_no_self_test:
.LFB1340:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	movl	$32, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rcx, %rbx
	subq	$392, %rsp
	.cfi_def_cfa_offset 448
	movq	%rdi, 8(%rsp)
	movq	%rcx, %rdi
	leaq	240(%rsp), %r14
	leaq	16(%rsp), %r15
	movq	%r14, %rdx
	leaq	304(%rsp), %r13
	movq	%fs:40, %rax
	movq	%rax, 376(%rsp)
	xorl	%eax, %eax
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
	movzbl	271(%rsp), %eax
	movq	%r15, %rdi
	andb	$-8, 240(%rsp)
	andl	$63, %eax
	orl	$64, %eax
	movb	%al, 271(%rsp)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	leaq	272(%rsp), %rsi
	movl	$32, %edx
	movq	%r15, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%r15, %rsi
	movq	%r13, %rdi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	8(%rsp), %rdi
	movq	%r12, %r9
	movq	%rbp, %r8
	leaq	32(%rbx), %rcx
	movq	%r14, %rdx
	movq	%r13, %rsi
# WAS call	ed25519_sign_s2n_bignum
	call	.Led25519_sign_s2n_bignum_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	376(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22778
	addq	$392, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L22778:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1340:

	.size	ED25519_sign_no_self_test, .-ED25519_sign_no_self_test
# WAS .section	.text.ED25519_sign,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_sign
	.type	ED25519_sign, @function
.LED25519_sign_local_target:
ED25519_sign:
.LFB1339:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	g_self_test_once_eddsa_bss_get@PLT
	call	g_self_test_once_eddsa_bss_get
# WAS leaq	run_self_test_eddsa(%rip), %rsi
	leaq	.Lrun_self_test_eddsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	ED25519_sign_no_self_test
	jmp	.LED25519_sign_no_self_test_local_target
	.cfi_endproc
.LFE1339:

	.size	ED25519_sign, .-ED25519_sign
# WAS .section	.rodata.pkey_ed25519_sign_message.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC433:

	.string	"/aws-lc/crypto/fipsmodule/evp/p_ed25519.c"
# WAS .section	.text.pkey_ed25519_sign_message,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ed25519_sign_message, @function
.Lpkey_ed25519_sign_message_local_target:
pkey_ed25519_sign_message:
.LFB2232:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rdi
	movq	%rcx, %rsi
	movq	16(%rax), %rax
	movq	8(%rax), %rcx
	cmpb	$0, 64(%rcx)
	je	.L22792
	movq	%rdx, %rbx
	testq	%rdi, %rdi
	je	.L22787
	cmpq	$63, (%rdx)
	jbe	.L22793
	movq	%r8, %rdx
# WAS call	ED25519_sign@PLT
	call	.LED25519_sign_local_target
	testl	%eax, %eax
	je	.L22783
.L22787:

	movq	$64, (%rbx)
	movl	$1, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22793:

	.cfi_restore_state
	movl	$59, %r8d
	leaq	.LC433(%rip), %rcx
	movl	$100, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
.L22783:

	xorl	%eax, %eax
.L22794:

	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22792:

	.cfi_restore_state
	movl	$49, %r8d
	leaq	.LC433(%rip), %rcx
	movl	$130, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	jmp	.L22794
	.cfi_endproc
.LFE2232:

	.size	pkey_ed25519_sign_message, .-pkey_ed25519_sign_message
# WAS .section	.text.ed25519_verify_nohw,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_verify_nohw
	.hidden	ed25519_verify_nohw
	.type	ed25519_verify_nohw, @function
.Led25519_verify_nohw_local_target:
ed25519_verify_nohw:
.LFB1431:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%r8, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%r9, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$3016, %rsp
	.cfi_def_cfa_offset 3072
	movq	%rdi, 352(%rsp)
	leaq	496(%rsp), %r13
	movq	%r13, %rdi
	movq	%fs:40, %rax
	movq	%rax, 3000(%rsp)
	xorl	%eax, %eax
# WAS call	x25519_ge_frombytes_vartime
	call	.Lx25519_ge_frombytes_vartime_local_target
	testl	%eax, %eax
	jne	.L22821
.L22795:

	movq	3000(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22822
	addq	$3016, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22821:

	.cfi_restore_state
	leaq	1136(%rsp), %rax
	movq	%rax, %rdi
	movq	%rax, 312(%rsp)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movq	%r14, %rsi
	movq	312(%rsp), %r14
	movl	$32, %edx
	movq	%r14, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movl	$32, %edx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	testq	%rbp, %rbp
	jne	.L22823
.L22797:

	movq	312(%rsp), %r15
	leaq	2416(%rsp), %rbx
	leaq	656(%rsp), %r14
	movq	%rbx, %rdi
	leaq	1296(%rsp), %rbp
	movq	%r15, %rsi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	%rbx, %rdi
# WAS call	x25519_sc_reduce
	call	.Lx25519_sc_reduce_local_target
	movabsq	$4503599627370458, %rsi
	movabsq	$4503599627370494, %rax
	movq	%rsi, %rcx
	movq	%rax, %r11
	movq	%rax, %r9
	movq	%rax, %r8
	subq	496(%rsp), %rcx
	subq	504(%rsp), %r11
	movq	%rax, %rdi
	movq	%rcx, %rdx
	subq	512(%rsp), %r9
	subq	520(%rsp), %r8
	shrq	$51, %rdx
	subq	528(%rsp), %rdi
	subq	616(%rsp), %rsi
	addq	%rdx, %r11
	movq	%r11, %rdx
	shrq	$51, %rdx
	addq	%rdx, %r9
	movq	%r9, %rdx
	shrq	$51, %rdx
	addq	%rdx, %r8
	movq	%r8, %rdx
	shrq	$51, %rdx
	addq	%rdx, %rdi
	movq	%rdi, %rdx
	shrq	$51, %rdx
	leaq	(%rdx,%rdx,8), %r10
	leaq	(%rdx,%r10,2), %r10
	movabsq	$2251799813685247, %rdx
	andq	%rdx, %rcx
	andq	%rdx, %r11
	andq	%rdx, %r9
	andq	%rdx, %r8
	addq	%rcx, %r10
	andq	%rdx, %rdi
	movq	%r8, 520(%rsp)
	movq	%rax, %r8
	movq	%r10, %rcx
	andq	%rdx, %r10
	movq	%rdi, 528(%rsp)
	movq	%rax, %rdi
	shrq	$51, %rcx
	movq	%r10, 496(%rsp)
	addq	%r11, %rcx
	movq	%rcx, %r10
	shrq	$51, %rcx
	addq	%r9, %rcx
	movq	%rax, %r9
	subq	624(%rsp), %r9
	andq	%rdx, %r10
	movq	%rcx, 512(%rsp)
	movq	%rsi, %rcx
	shrq	$51, %rcx
	movq	%r10, 504(%rsp)
	addq	%rcx, %r9
	subq	632(%rsp), %r8
	andq	%rdx, %rsi
	subq	640(%rsp), %rdi
	movq	%r9, %rcx
	subq	648(%rsp), %rax
	andq	%rdx, %r9
	shrq	$51, %rcx
	addq	%rcx, %r8
	movq	%r8, %rcx
	andq	%rdx, %r8
	shrq	$51, %rcx
	addq	%rcx, %rdi
	movq	%rdi, %rcx
	andq	%rdx, %rdi
	shrq	$51, %rcx
	movq	%rdi, 640(%rsp)
	addq	%rcx, %rax
	movq	%rax, %rcx
	andq	%rdx, %rax
	shrq	$51, %rcx
	movq	%rax, 648(%rsp)
	leaq	2480(%rsp), %rax
	leaq	(%rcx,%rcx,8), %r10
	movq	%rax, %rdi
	movq	%rax, 304(%rsp)
	leaq	(%rcx,%r10,2), %rcx
	addq	%rcx, %rsi
	movq	%rsi, %rcx
	andq	%rdx, %rsi
	shrq	$51, %rcx
	movq	%rsi, 616(%rsp)
	addq	%r9, %rcx
	movq	%rcx, %rsi
	shrq	$51, %rcx
	andq	%rdx, %rsi
	addq	%r8, %rcx
	movq	%rsi, 624(%rsp)
	movq	%rbx, %rsi
	leaq	976(%rsp), %rbx
	movq	%rcx, 632(%rsp)
# WAS call	slide
	call	.Lslide_local_target
	leaq	2736(%rsp), %rax
	movq	%r12, %rsi
	movq	%rax, %rdi
	movq	%rax, %r12
	movq	%rax, 320(%rsp)
# WAS call	slide
	call	.Lslide_local_target
	movq	%r15, %rdi
	movq	%r13, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	528(%rsp), %rax
	movq	%rbx, %rsi
	movdqa	496(%rsp), %xmm1
	movdqa	512(%rsp), %xmm2
	movq	%r14, %rdi
	movdqu	536(%rsp), %xmm3
	movq	%r14, 288(%rsp)
	movq	%rax, 1008(%rsp)
	movq	568(%rsp), %rax
	movdqu	552(%rsp), %xmm4
	movaps	%xmm1, 976(%rsp)
	movdqa	576(%rsp), %xmm5
	movdqa	592(%rsp), %xmm6
	movq	%rax, 1048(%rsp)
	movq	608(%rsp), %rax
	movaps	%xmm2, 992(%rsp)
	movups	%xmm3, 1016(%rsp)
	movq	%rax, 1088(%rsp)
	movups	%xmm4, 1032(%rsp)
	movaps	%xmm5, 1056(%rsp)
	movaps	%xmm6, 1072(%rsp)
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	%r14, %rsi
	movq	%rbx, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	816(%rsp), %r15
	movq	%r14, %rsi
	movq	%r15, %rdi
	movq	%r15, 296(%rsp)
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	1456(%rsp), %rbp
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	1616(%rsp), %rbp
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	1776(%rsp), %rbp
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	1936(%rsp), %rbp
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbp, %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	leaq	2096(%rsp), %rbp
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%r15, %rsi
	movq	%rbp, %rdi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	leaq	2256(%rsp), %rdi
	movq	%r15, %rsi
# WAS call	x25519_ge_p3_to_cached
	call	.Lx25519_ge_p3_to_cached_local_target
	pxor	%xmm0, %xmm0
	movl	$255, %eax
	movq	%r12, %rcx
	movq	304(%rsp), %rdx
	movaps	%xmm0, 368(%rsp)
	movq	$0, 400(%rsp)
	movq	$1, 408(%rsp)
	movq	$1, 448(%rsp)
	movaps	%xmm0, 384(%rsp)
	movaps	%xmm0, 416(%rsp)
	movaps	%xmm0, 432(%rsp)
	movups	%xmm0, 456(%rsp)
	movups	%xmm0, 472(%rsp)
	jmp	.L22799
	.p2align 4,,10
	.p2align 3
.L22825:

	cmpb	$0, (%rcx,%rax)
	jne	.L22798
	subq	$1, %rax
	jb	.L22824
.L22799:

	cmpb	$0, (%rdx,%rax)
	je	.L22825
.L22798:

	cltq
	movq	%rbx, 360(%rsp)
	movabsq	$2251799813685247, %r15
	movq	%rax, 224(%rsp)
	leaq	368(%rsp), %rax
	movq	%rax, 344(%rsp)
	jmp	.L22806
	.p2align 4,,10
	.p2align 3
.L22801:

	jne	.L22826
.L22802:

	movq	320(%rsp), %rax
	movq	224(%rsp), %rbx
	movsbl	(%rax,%rbx), %ebx
	testb	%bl, %bl
	jg	.L22827
	jne	.L22805
.L22820:

	movq	768(%rsp), %rax
	movq	784(%rsp), %r10
	movq	744(%rsp), %r14
	movq	688(%rsp), %r11
	movq	%rax, 32(%rsp)
	movq	808(%rsp), %rax
	movq	680(%rsp), %rbp
	movq	%rax, 240(%rsp)
	movq	800(%rsp), %rax
	movq	%rax, 80(%rsp)
	movq	792(%rsp), %rax
	movq	%rax, 16(%rsp)
	movq	760(%rsp), %rax
	movq	%rax, (%rsp)
	movq	752(%rsp), %rax
	movq	%rax, 64(%rsp)
	movq	776(%rsp), %rax
	movq	%rax, 96(%rsp)
	movq	736(%rsp), %rax
	movq	%rax, 48(%rsp)
	movq	728(%rsp), %rax
	movq	%rax, 200(%rsp)
	movq	720(%rsp), %rax
	movq	%rax, 208(%rsp)
	movq	712(%rsp), %rax
	movq	%rax, 112(%rsp)
	movq	704(%rsp), %rax
	movq	%rax, 216(%rsp)
	movq	696(%rsp), %rax
	movq	%rax, 128(%rsp)
	movq	672(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	664(%rsp), %rax
	movq	%rax, 160(%rsp)
	movq	656(%rsp), %rax
	movq	%rax, 176(%rsp)
.L22804:

	movq	240(%rsp), %rbx
	movq	80(%rsp), %rdi
	movq	96(%rsp), %r13
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rbx
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rcx
	movq	16(%rsp), %rdi
	movq	%rbx, %r12
	movq	%rcx, 232(%rsp)
	leaq	(%rdi,%rdi,8), %rax
	movq	%r12, 192(%rsp)
	leaq	(%rdi,%rax,2), %r9
	leaq	(%r10,%r10,8), %rax
	leaq	(%r10,%rax,2), %rax
	movq	%r9, 248(%rsp)
	movq	%rax, 280(%rsp)
	mulq	%r11
	movq	%rax, %rsi
	movq	%r9, %rax
	movq	%rdx, %rdi
	mulq	%rbp
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	176(%rsp)
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	144(%rsp)
	addq	%rax, %rsi
	movq	%rbx, %rax
	movq	160(%rsp), %rbx
	adcq	%rdx, %rdi
	mulq	%rbx
	addq	%rax, %rsi
	movq	%rbx, %rax
	adcq	%rdx, %rdi
	mulq	%r13
	movq	%rsi, %r8
	movq	%rdi, %r9
	movq	%r8, 256(%rsp)
	movq	%r9, 264(%rsp)
	movq	%rax, %rsi
	movq	176(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	248(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	mulq	%rbp
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	addq	%rsi, %rcx
	movq	144(%rsp), %rsi
	adcq	%rdi, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rsi, %rax
	adcq	%rdx, %rbx
	mulq	%r13
	movq	%rax, %rsi
	movq	160(%rsp), %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	16(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	176(%rsp)
	addq	%rax, %rsi
	movq	232(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	%r11
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r12, %rax
	addq	%rsi, %r8
	adcq	%rdi, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%rbp
	movq	%rax, %r12
	movq	144(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	160(%rsp), %rax
	adcq	%rdx, %r13
	mulq	16(%rsp)
	addq	%rax, %r12
	movq	80(%rsp), %rax
	adcq	%rdx, %r13
	mulq	176(%rsp)
	movq	%rax, %rsi
	movq	192(%rsp), %rax
	movq	%rdx, %rdi
	addq	%r12, %rsi
	adcq	%r13, %rdi
	mulq	%r11
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r11, %rax
	adcq	%rdx, %rdi
	movq	%rsi, %rdx
	andq	%r15, %rdx
	movq	%rdx, 272(%rsp)
	mulq	96(%rsp)
	movq	%rax, %r12
	movq	%rbp, %rax
	movq	%rdx, %r13
	mulq	%r10
	addq	%rax, %r12
	movq	144(%rsp), %rax
	adcq	%rdx, %r13
	mulq	16(%rsp)
	addq	%rax, %r12
	movq	160(%rsp), %rax
	adcq	%rdx, %r13
	mulq	80(%rsp)
	addq	%rax, %r12
	movq	176(%rsp), %rax
	movq	(%rsp), %rbx
	adcq	%rdx, %r13
	mulq	240(%rsp)
	movq	64(%rsp), %r11
	movq	48(%rsp), %rbp
	movq	128(%rsp), %r9
	addq	%r12, %rax
	adcq	%r13, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %r12
	andq	%r15, %rcx
	andq	%r15, %r8
	shrdq	$51, %rdx, %rax
	andq	%r15, %r12
	leaq	(%rax,%rax,8), %rdx
	movq	%r12, 176(%rsp)
	leaq	(%rax,%rdx,2), %rax
	movq	256(%rsp), %rdx
	movq	%r12, 400(%rsp)
	andq	%r15, %rdx
	addq	%rdx, %rax
	movq	272(%rsp), %rdx
	movq	%rax, %rsi
	shrq	$51, %rax
	addq	%rax, %rcx
	andq	%r15, %rsi
	movq	%rdx, 392(%rsp)
	movq	%rcx, %rax
	shrq	$51, %rcx
	movq	%rsi, 256(%rsp)
	addq	%rcx, %r8
	andq	%r15, %rax
	movq	%rsi, 368(%rsp)
	movq	200(%rsp), %rcx
	movq	%r8, 336(%rsp)
	movq	%r8, 384(%rsp)
	movq	32(%rsp), %r8
	movq	%rax, 328(%rsp)
	movq	%rax, 376(%rsp)
	leaq	(%r8,%r8,8), %rax
	leaq	(%r8,%rax,2), %rsi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %rdi
	leaq	(%r11,%r11,8), %rax
	movq	216(%rsp), %rbx
	leaq	(%r11,%rax,2), %r8
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %r12
	movq	%r12, %rax
	mulq	%rcx
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r8
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	%r9
	addq	%rax, %r12
	movq	112(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rbx, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, 144(%rsp)
	movq	%r13, 152(%rsp)
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	movq	%rax, %r8
	movq	208(%rsp), %rax
	movq	%rdx, %r9
	addq	%r12, %r8
	movq	112(%rsp), %r12
	adcq	%r13, %r9
	mulq	%rdi
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r12, %rax
	addq	%r8, %rcx
	adcq	%r9, %rbx
	mulq	%rsi
	addq	%rax, %rcx
	movq	144(%rsp), %rax
	adcq	%rdx, %rbx
	movq	152(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%rbp
	movq	%rax, %r12
	movq	216(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	128(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	movq	200(%rsp), %rdi
	adcq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %r8
	movq	%rdx, %r9
	addq	%r12, %r8
	movq	208(%rsp), %r12
	adcq	%r13, %r9
	movq	%r12, %rax
	mulq	%rsi
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%r12, %rax
	adcq	%rdx, %r9
	mulq	%rbp
	movq	%rax, %r12
	movq	112(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	216(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	(%rsp), %rax
	adcq	%rdx, %r13
	mulq	128(%rsp)
	addq	%rax, %r12
	movq	%rsi, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%r8, %rax
	addq	%r12, %rsi
	adcq	%r13, %rdi
	shrdq	$51, %r9, %rax
	xorl	%edx, %edx
	movq	96(%rsp), %r9
	addq	%rax, %rsi
	movq	200(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %rdx
	andq	%r15, %rdx
	movq	%rdx, 160(%rsp)
	mulq	%rbp
	movq	%rax, %r12
	movq	208(%rsp), %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	112(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%r11
	addq	%rax, %r12
	movq	216(%rsp), %rax
	adcq	%rdx, %r13
	mulq	(%rsp)
	addq	%rax, %r12
	movq	128(%rsp), %rax
	adcq	%rdx, %r13
	mulq	32(%rsp)
	addq	%r12, %rax
	movq	48(%rsp), %r12
	adcq	%r13, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%edi, %edi
	movq	(%rsp), %r13
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	andq	%r15, %rcx
	andq	%r15, %r8
	shrdq	$51, %rdx, %rax
	andq	%r15, %rsi
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, 128(%rsp)
	leaq	(%rax,%rdx,2), %rax
	movq	144(%rsp), %rdx
	movq	%rsi, 440(%rsp)
	andq	%r15, %rdx
	addq	%rdx, %rax
	movq	160(%rsp), %rdx
	movq	%rax, %rdi
	shrq	$51, %rax
	addq	%rax, %rcx
	movq	%rdx, 432(%rsp)
	andq	%r15, %rdi
	movq	%rcx, %rax
	shrq	$51, %rcx
	movq	%rdi, 144(%rsp)
	andq	%r15, %rax
	leaq	(%r8,%rcx), %r11
	movq	64(%rsp), %r8
	movq	%rdi, 408(%rsp)
	movq	%rax, 416(%rsp)
	movq	%rax, %rbp
	movq	280(%rsp), %rax
	mulq	32(%rsp)
	movq	%r11, 424(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%r13, %rax
	mulq	248(%rsp)
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	mulq	%r9
	addq	%rax, %rcx
	movq	%r8, %rax
	adcq	%rdx, %rbx
	mulq	232(%rsp)
	movq	%rcx, %rsi
	movq	%rbx, %rdi
	addq	%rax, %rsi
	movq	192(%rsp), %rax
	adcq	%rdx, %rdi
	movq	%rsi, %rcx
	mulq	%r14
	movq	%rdi, %rbx
	addq	%rax, %rcx
	movq	%r9, %rax
	adcq	%rdx, %rbx
	mulq	%r14
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	248(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	32(%rsp)
	addq	%rax, %rsi
	movq	%r13, %rax
	adcq	%rdx, %rdi
	mulq	232(%rsp)
	movq	%rcx, 112(%rsp)
	movq	%rbx, 120(%rsp)
	movq	%rax, %r12
	movq	%rdx, %r13
	movq	%r8, %rax
	addq	%rsi, %r12
	adcq	%rdi, %r13
	mulq	192(%rsp)
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%r9
	movq	%rax, %rsi
	movq	%r14, %rax
	movq	%rdx, %rdi
	mulq	%r10
	addq	%rax, %rsi
	movq	48(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	16(%rsp)
	addq	%rax, %rsi
	movq	232(%rsp), %rax
	adcq	%rdx, %rdi
	mulq	32(%rsp)
	movq	%rax, %rcx
	movq	%rdx, %rbx
	addq	%rsi, %rcx
	adcq	%rdi, %rbx
	movq	(%rsp), %rdi
	movq	%rdi, %rax
	mulq	192(%rsp)
	addq	%rax, %rcx
	movq	%r12, %rax
	adcq	%rdx, %rbx
	shrdq	$51, %r13, %rax
	xorl	%edx, %edx
	addq	%rax, %rcx
	movq	%rdi, %rax
	adcq	%rdx, %rbx
	mulq	%r9
	movq	%rax, %r8
	movq	64(%rsp), %rax
	movq	%rdx, %r9
	mulq	%r10
	addq	%rax, %r8
	movq	16(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	mulq	80(%rsp)
	movq	%rax, %rsi
	movq	192(%rsp), %rax
	movq	%rdx, %rdi
	addq	%r8, %rsi
	movq	32(%rsp), %r8
	adcq	%r9, %rdi
	mulq	%r8
	addq	%rax, %rsi
	movq	%rcx, %rax
	adcq	%rdx, %rdi
	shrdq	$51, %rbx, %rax
	xorl	%edx, %edx
	addq	%rax, %rsi
	movq	%r8, %rax
	adcq	%rdx, %rdi
	mulq	96(%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %r8
	movq	(%rsp), %rax
	movq	%rdx, %r9
	movq	%rsi, (%rsp)
	mulq	%r10
	addq	%rax, %r8
	movq	64(%rsp), %rax
	adcq	%rdx, %r9
	mulq	16(%rsp)
	addq	%rax, %r8
	movq	80(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	mulq	240(%rsp)
	addq	%r8, %rax
	adcq	%r9, %rdx
	shrdq	$51, %rdi, %rsi
	xorl	%r9d, %r9d
	addq	%rsi, %rax
	movq	(%rsp), %rsi
	adcq	%r9, %rdx
	movq	%rax, %r8
	andq	%r15, %r12
	andq	%r15, %rcx
	shrdq	$51, %rdx, %r8
	movq	%rdx, 24(%rsp)
	andq	%r15, %rsi
	leaq	(%r8,%r8,8), %rdx
	movq	%rax, 16(%rsp)
	leaq	(%r8,%rdx,2), %rdi
	movq	112(%rsp), %rdx
	andq	%r15, %rdx
	addq	%rdx, %rdi
	movq	%rdi, %rdx
	andq	%r15, %rdi
	shrq	$51, %rdx
	movq	%rdi, 448(%rsp)
	addq	%r12, %rdx
	movq	%rdx, %rdi
	shrq	$51, %rdx
	andq	%r15, %rdi
	addq	%rdx, %rcx
	movq	%rdi, 456(%rsp)
	movq	%rcx, 464(%rsp)
	movq	%rsi, 472(%rsp)
	movq	16(%rsp), %rax
	subq	$1, 224(%rsp)
	andq	%r15, %rax
	movq	%rax, 480(%rsp)
	movq	224(%rsp), %rax
	cmpl	$-1, %eax
	je	.L22828
.L22806:

	movq	288(%rsp), %r14
	movq	344(%rsp), %rsi
	movq	%r14, %rdi
# WAS call	ge_p2_dbl
	call	.Lge_p2_dbl_local_target
	movq	304(%rsp), %rax
	movq	224(%rsp), %rbx
	movsbl	(%rax,%rbx), %ebx
	testb	%bl, %bl
	jle	.L22801
	movq	296(%rsp), %rbp
	sarb	%bl
	movq	%r14, %rsi
	movsbq	%bl, %rbx
	movq	%rbp, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	leaq	(%rbx,%rbx,4), %rdx
	movq	%rbp, %rsi
	movq	%r14, %rdi
	movq	312(%rsp), %rax
	salq	$5, %rdx
	addq	%rax, %rdx
# WAS call	x25519_ge_add
	call	.Lx25519_ge_add_local_target
	jmp	.L22802
	.p2align 4,,10
	.p2align 3
.L22827:

	movq	288(%rsp), %rbp
	movq	296(%rsp), %r14
	sarb	%bl
	movsbq	%bl, %rbx
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movq	%rbx, %rax
	movq	%r14, %rsi
	movq	%rbp, %rdi
	salq	$4, %rax
	subq	%rbx, %rax
# WAS leaq	k25519Bi(%rip), %rbx
	leaq	.Lk25519Bi_local_target(%rip), %rbx
	leaq	(%rbx,%rax,8), %rdx
# WAS call	ge_madd
	call	.Lge_madd_local_target
	jmp	.L22820
	.p2align 4,,10
	.p2align 3
.L22826:

	movq	288(%rsp), %rbp
	movq	296(%rsp), %r14
	movq	%rbp, %rsi
	movq	%r14, %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movl	%ebx, %eax
	movq	%r14, %rsi
	movq	%rbp, %rdi
	shrl	$31, %eax
	addl	%ebx, %eax
	sarl	%eax
	negl	%eax
	cltq
	leaq	(%rax,%rax,4), %rdx
	movq	312(%rsp), %rax
	salq	$5, %rdx
	addq	%rax, %rdx
# WAS call	x25519_ge_sub
	call	.Lx25519_ge_sub_local_target
	jmp	.L22802
	.p2align 4,,10
	.p2align 3
.L22805:

	movq	288(%rsp), %rsi
	movq	296(%rsp), %rdi
# WAS call	x25519_ge_p1p1_to_p3
	call	.Lx25519_ge_p1p1_to_p3_local_target
	movl	%ebx, %eax
	movq	832(%rsp), %r8
	movq	872(%rsp), %r12
	shrl	$31, %eax
	movq	816(%rsp), %r11
	movq	856(%rsp), %rcx
	addl	%ebx, %eax
	leaq	(%r12,%r8), %r13
	movq	824(%rsp), %r9
	movq	848(%rsp), %rsi
	sarl	%eax
	movq	%r13, 64(%rsp)
	movq	864(%rsp), %rbx
	movabsq	$4503599627370458, %r13
	negl	%eax
	cltq
	leaq	(%rbx,%r9), %rdi
	movq	%rax, %rdx
	movq	%rdi, (%rsp)
	movq	840(%rsp), %rdi
	salq	$4, %rdx
	subq	%rax, %rdx
# WAS leaq	k25519Bi(%rip), %rax
	leaq	.Lk25519Bi_local_target(%rip), %rax
	leaq	(%rax,%rdx,8), %r10
	leaq	(%rcx,%r11), %rax
	addq	%r13, %rcx
	movq	880(%rsp), %rdx
	subq	%r11, %rcx
	movq	%rax, 48(%rsp)
	movq	888(%rsp), %rax
	movq	%rcx, 80(%rsp)
	leaq	(%rdx,%rdi), %r14
	movq	48(%rsp), %r11
	movabsq	$4503599627370494, %rcx
	leaq	(%rax,%rsi), %rbp
	addq	%rcx, %rax
	addq	%rcx, %rdx
	addq	%rcx, %rbx
	subq	%rsi, %rax
	movq	72(%r10), %rsi
	subq	%rdi, %rdx
	subq	%r9, %rbx
	movq	%rax, 112(%rsp)
	addq	%rcx, %r12
	leaq	(%rsi,%rsi,8), %rax
	movq	%rbx, 16(%rsp)
	movq	56(%r10), %rbx
	subq	%r8, %r12
	leaq	(%rsi,%rax,2), %rdi
	movq	64(%r10), %rsi
	movq	%rdx, 32(%rsp)
	movq	%r12, 96(%rsp)
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %rcx
	movq	48(%r10), %rsi
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r9
	movq	%r9, %rax
	movq	(%rsp), %r9
	mulq	%rbp
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%r14
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	40(%r10)
	addq	%rax, %r12
	movq	64(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	40(%r10)
	movq	%r12, 128(%rsp)
	movq	%r13, 136(%rsp)
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rcx, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%r14
	movq	64(%rsp), %r13
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	128(%rsp), %r8
	adcq	%r9, %rdx
	movq	136(%rsp), %r9
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r11
	movq	%r13, %rax
	movq	%rdx, %r12
	mulq	40(%r10)
	movq	%r11, 160(%rsp)
	movq	%r12, 168(%rsp)
	movq	%rax, %r8
	movq	(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	%rcx, %rax
	movq	64(%rsp), %rcx
	adcq	%rdx, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	mulq	%r14
	addq	%r8, %rax
	movq	%r11, %r8
	movq	48(%rsp), %r11
	adcq	%r9, %rdx
	shrdq	$51, %r12, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 144(%rsp)
	movq	%r14, %rax
	movq	%rdx, 152(%rsp)
	mulq	40(%r10)
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	64(%r10)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rdi, %rax
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rbp
	addq	%rax, %r8
	movq	144(%rsp), %rax
	adcq	%rdx, %r9
	movq	152(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rbp, %rax
	movq	128(%rsp), %rbp
	adcq	%rdx, %r9
	mulq	40(%r10)
	movq	%r8, %rdi
	andq	%r15, %rdi
	movq	%rdi, 208(%rsp)
	movq	%rax, %r12
	movq	%r14, %rax
	movq	%rdx, %r13
	movq	24(%r10), %r14
	mulq	%rsi
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r12, %rcx
	movq	%r13, %rbx
	addq	%rax, %rcx
	movq	(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	64(%r10)
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	72(%r10)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r8, %rbx
	movq	160(%rsp), %r8
	shrdq	$51, %r9, %rbx
	xorl	%r9d, %r9d
	addq	%rbx, %rax
	movq	16(%r10), %rbx
	adcq	%r9, %rdx
	movq	%rax, %rsi
	andq	%r15, %rbp
	andq	%r15, %r8
	shrdq	$51, %rdx, %rax
	andq	%r15, %rsi
	leaq	(%rax,%rax,8), %rdx
	movq	%rsi, 216(%rsp)
	movq	144(%rsp), %rsi
	leaq	(%rax,%rdx,2), %rdx
	movq	%r8, %rax
	addq	%rbp, %rdx
	andq	%r15, %rsi
	movq	%rdx, %rbp
	shrq	$51, %rdx
	addq	%rdx, %rax
	andq	%r15, %rbp
	movq	%rax, %r8
	shrq	$51, %rax
	movq	%rbp, 176(%rsp)
	movq	(%r10), %rbp
	addq	%rsi, %rax
	movq	32(%r10), %rsi
	andq	%r15, %r8
	movq	%rax, 192(%rsp)
	leaq	(%rsi,%rsi,8), %rax
	movq	%r8, 160(%rsp)
	leaq	(%rsi,%rax,2), %rdi
	movq	8(%r10), %rsi
	leaq	(%r14,%r14,8), %rax
	leaq	(%r14,%rax,2), %rcx
	leaq	(%rbx,%rbx,8), %rax
	leaq	(%rbx,%rax,2), %r8
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r9
	movq	%r9, %rax
	mulq	112(%rsp)
	movq	%rax, %r12
	movq	32(%rsp), %rax
	movq	%rdx, %r13
	movq	80(%rsp), %r11
	movq	16(%rsp), %r9
	mulq	%r8
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	96(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rdi
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	movq	%r12, (%rsp)
	movq	%r13, 8(%rsp)
	movq	%rax, %r12
	movq	%r11, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	112(%rsp)
	movq	%rax, %r8
	movq	32(%rsp), %rax
	movq	%rdx, %r9
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rcx
	movq	96(%rsp), %r13
	addq	%rax, %r8
	movq	%r13, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	(%rsp), %r8
	adcq	%r9, %rdx
	movq	8(%rsp), %r9
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, %r11
	movq	%r13, %rax
	movq	%rdx, %r12
	mulq	%rbp
	movq	%r11, 128(%rsp)
	movq	%r12, 136(%rsp)
	movq	%rax, %r8
	movq	16(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	80(%rsp), %rax
	adcq	%rdx, %r9
	mulq	%rbx
	addq	%rax, %r8
	movq	%rcx, %rax
	movq	32(%rsp), %rcx
	adcq	%rdx, %r9
	mulq	112(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	addq	%r8, %rax
	movq	%r11, %r8
	movq	80(%rsp), %r11
	adcq	%r9, %rdx
	shrdq	$51, %r12, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	adcq	%r9, %rdx
	movq	%rax, 48(%rsp)
	movq	%rcx, %rax
	movq	96(%rsp), %rcx
	movq	%rdx, 56(%rsp)
	mulq	%rbp
	movq	%rax, %r12
	movq	%rcx, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	16(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rbx
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%r14
	movq	%rax, %r8
	movq	%rdi, %rax
	movq	112(%rsp), %rdi
	movq	%rdx, %r9
	addq	%r12, %r8
	adcq	%r13, %r9
	mulq	%rdi
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	movq	56(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rdi, %rax
	adcq	%rdx, %r9
	movq	%r8, %rdx
	andq	%r15, %rdx
	movq	%rdx, 112(%rsp)
	mulq	%rbp
	movq	%rax, %r12
	movq	32(%rsp), %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%rcx, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r12, %rcx
	movq	%r13, %rbx
	addq	%rax, %rcx
	movq	16(%rsp), %rax
	adcq	%rdx, %rbx
	mulq	%r14
	addq	%rax, %rcx
	movq	%r11, %rax
	adcq	%rdx, %rbx
	mulq	32(%r10)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	movq	%r8, %rbx
	shrdq	$51, %r9, %rbx
	xorl	%r9d, %r9d
	addq	%rbx, %rax
	adcq	%r9, %rdx
	movq	%rax, %r9
	andq	%r15, %r9
	shrdq	$51, %rdx, %rax
	movq	%r9, 200(%rsp)
	movq	(%rsp), %r9
	leaq	(%rax,%rax,8), %rdx
	leaq	(%rax,%rdx,2), %rdx
	andq	%r15, %r9
	addq	%r9, %rdx
	movq	%rdx, %rcx
	shrq	$51, %rdx
	andq	%r15, %rcx
	movq	%rcx, 64(%rsp)
	movq	128(%rsp), %r11
	movq	960(%rsp), %rbp
	movq	944(%rsp), %rdi
	andq	%r15, %r11
	movq	112(%r10), %rbx
	movq	104(%r10), %rsi
	movq	%r11, %rax
	movq	96(%r10), %rcx
	movq	80(%r10), %r14
	addq	%rdx, %rax
	movq	48(%rsp), %rdx
	movq	%rax, %r11
	shrq	$51, %rax
	andq	%r15, %r11
	andq	%r15, %rdx
	movq	%r11, 80(%rsp)
	movq	968(%rsp), %r11
	leaq	(%rdx,%rax), %r9
	movq	%r9, 48(%rsp)
	leaq	(%r11,%r11,8), %rax
	leaq	(%r11,%rax,2), %r11
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %r8
	movq	952(%rsp), %rbp
	movq	%r11, (%rsp)
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %r9
	leaq	(%rdi,%rdi,8), %rax
	movq	88(%r10), %rbp
	leaq	(%rdi,%rax,2), %r10
	movq	%r10, %rax
	mulq	%rbx
	movq	%rax, %r12
	movq	%r9, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	%r8, %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%r11, %rax
	adcq	%rdx, %r13
	mulq	%rbp
	addq	%rax, %r12
	movq	%r14, %rax
	adcq	%rdx, %r13
	mulq	936(%rsp)
	addq	%rax, %r12
	movq	%r9, %rax
	adcq	%rdx, %r13
	mulq	%rbx
	movq	%r12, %r10
	movq	%r13, %r11
	movq	%rax, %r12
	movq	%r8, %rax
	movq	%rdx, %r13
	mulq	%rsi
	addq	%rax, %r12
	movq	(%rsp), %rax
	adcq	%rdx, %r13
	mulq	%rcx
	addq	%rax, %r12
	movq	%rbp, %rax
	adcq	%rdx, %r13
	mulq	936(%rsp)
	addq	%rax, %r12
	movq	%rdi, %rax
	adcq	%rdx, %r13
	mulq	%r14
	addq	%r12, %rax
	movq	%r10, %r12
	adcq	%r13, %rdx
	shrdq	$51, %r11, %r10
	xorl	%r11d, %r11d
	addq	%r10, %rax
	adcq	%r11, %rdx
	movq	%rax, 16(%rsp)
	movq	%r8, %rax
	movq	%rdx, 24(%rsp)
	mulq	%rbx
	movq	%rax, %r8
	movq	(%rsp), %rax
	movq	%rdx, %r9
	mulq	%rsi
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	936(%rsp)
	movq	%r8, %r10
	movq	16(%rsp), %r8
	movq	%r9, %r11
	movq	24(%rsp), %r9
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	%rdi
	addq	%rax, %r10
	movq	%r14, %rax
	adcq	%rdx, %r11
	mulq	952(%rsp)
	addq	%r10, %rax
	adcq	%r11, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	%rax, 32(%rsp)
	movq	(%rsp), %rax
	adcq	%r9, %rdx
	movq	%rdx, 40(%rsp)
	mulq	%rbx
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%rsi, %rax
	mulq	936(%rsp)
	addq	%rax, %r8
	movq	%rcx, %rax
	adcq	%rdx, %r9
	mulq	%rdi
	movq	%r8, %r10
	movq	%r9, %r11
	addq	%rax, %r10
	movq	%rbp, %rax
	adcq	%rdx, %r11
	mulq	952(%rsp)
	movq	%rax, %r8
	movq	%rdx, %r9
	movq	%r14, %rax
	addq	%r10, %r8
	adcq	%r11, %r9
	mulq	960(%rsp)
	addq	%rax, %r8
	movq	32(%rsp), %rax
	adcq	%rdx, %r9
	movq	40(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r8
	movq	%rbx, %rax
	movq	%r8, %r10
	adcq	%rdx, %r9
	andq	%r15, %r10
	movq	%r10, (%rsp)
	mulq	936(%rsp)
	movq	%rax, %r10
	movq	%rsi, %rax
	movq	%rdx, %r11
	mulq	%rdi
	movq	%rax, %rsi
	movq	%rdx, %rdi
	movq	%rcx, %rax
	addq	%r10, %rsi
	movq	160(%rsp), %r10
	adcq	%r11, %rdi
	mulq	952(%rsp)
	movq	%r12, %r11
	movabsq	$4503599627370458, %r12
	movq	%rax, %rcx
	movq	%rdx, %rbx
	movq	%rbp, %rax
	movq	32(%rsp), %rbp
	addq	%rsi, %rcx
	movq	48(%rsp), %rsi
	adcq	%rdi, %rbx
	mulq	960(%rsp)
	movq	208(%rsp), %rdi
	addq	%rax, %rcx
	movq	%r14, %rax
	movabsq	$4503599627370494, %r14
	adcq	%rdx, %rbx
	mulq	968(%rsp)
	addq	%rcx, %rax
	adcq	%rbx, %rdx
	shrdq	$51, %r9, %r8
	xorl	%r9d, %r9d
	addq	%r8, %rax
	movq	112(%rsp), %r8
	adcq	%r9, %rdx
	movq	%rax, %r9
	andq	%r15, %r11
	andq	%r15, %rbp
	shrdq	$51, %rdx, %rax
	andq	%r15, %r9
	leaq	(%rax,%rax,8), %rdx
	movq	%r9, 96(%rsp)
	leaq	(%rax,%rdx,2), %rdx
	addq	%r11, %rdx
	movq	16(%rsp), %r11
	movq	%rdx, %r13
	shrq	$51, %rdx
	andq	%r15, %r11
	andq	%r15, %r13
	movq	%r11, %rax
	addq	%rdx, %rax
	movq	176(%rsp), %rdx
	movq	%rax, %r11
	shrq	$51, %rax
	leaq	0(%rbp,%rax), %rbx
	andq	%r15, %r11
	leaq	(%rdx,%r12), %rax
	movq	896(%rsp), %rbp
	movq	%r11, 16(%rsp)
	movq	64(%rsp), %r11
	leaq	(%rbp,%rbp), %r9
	movq	%rax, %rbp
	leaq	(%r10,%r14), %rax
	subq	%r11, %rbp
	movq	%rax, %rcx
	movq	%rbp, 176(%rsp)
	movq	80(%rsp), %rbp
	subq	%rbp, %rcx
	movq	%rcx, 160(%rsp)
	movq	192(%rsp), %rcx
	leaq	(%rcx,%r14), %rax
	movq	%rax, %rcx
	leaq	(%rdi,%r14), %rax
	addq	%r8, %rdi
	subq	%rsi, %rcx
	movq	%rax, %rbp
	movq	200(%rsp), %rsi
	movq	%rcx, 144(%rsp)
	movq	216(%rsp), %rcx
	subq	%r8, %rbp
	movq	%rbp, 680(%rsp)
	leaq	(%rcx,%r14), %rax
	addq	%rsi, %rcx
	movq	%rax, %r11
	movq	176(%rsp), %rax
	subq	%rsi, %r11
	movq	%rax, 656(%rsp)
	movq	160(%rsp), %rax
	movq	%r11, 688(%rsp)
	movq	%rax, 664(%rsp)
	movq	144(%rsp), %rax
	movq	%rax, 672(%rsp)
	movq	64(%rsp), %rax
	addq	%rax, %rdx
	movq	%rdx, 128(%rsp)
	movq	80(%rsp), %rax
	movq	48(%rsp), %rdx
	movq	%rcx, 200(%rsp)
	addq	%rax, %r10
	movq	192(%rsp), %rax
	movq	%rcx, 728(%rsp)
	movq	920(%rsp), %rcx
	movq	%rdi, 208(%rsp)
	addq	%rdx, %rax
	movq	128(%rsp), %rdx
	movq	%rdi, 720(%rsp)
	movq	%rax, 112(%rsp)
	movq	112(%rsp), %rax
	movq	%rdx, 696(%rsp)
	movq	904(%rsp), %rdx
	movq	%rax, 712(%rsp)
	movq	%r9, %rax
	shrq	$51, %rax
	movq	%r10, 216(%rsp)
	leaq	(%rax,%rdx,2), %rsi
	movq	912(%rsp), %rdx
	movq	%r10, 704(%rsp)
	movq	%rsi, %rax
	andq	%r15, %rsi
	shrq	$51, %rax
	leaq	(%rax,%rdx,2), %rdx
	movq	%rdx, %rax
	shrq	$51, %rax
	leaq	(%rax,%rcx,2), %r8
	movq	928(%rsp), %rcx
	movq	%r8, %rax
	shrq	$51, %rax
	leaq	(%rax,%rcx,2), %rdi
	movq	%rdi, %rax
	shrq	$51, %rax
	leaq	(%rax,%rax,8), %rcx
	leaq	(%rax,%rcx,2), %rcx
	movq	%r9, %rax
	andq	%r15, %rax
	addq	%rax, %rcx
	movq	%rcx, %rax
	shrq	$51, %rax
	addq	%rsi, %rax
	andq	%r15, %rcx
	andq	%r15, %rdx
	movq	%rdi, %rsi
	movq	%rcx, %r9
	movq	%rax, %rcx
	shrq	$51, %rax
	movq	%r14, %rdi
	addq	%rdx, %rax
	andq	%r15, %rcx
	leaq	(%r9,%r12), %rdx
	andq	%r15, %rsi
	movq	%rcx, %r10
	subq	%r13, %rdx
	movq	%r8, %rcx
	movq	(%rsp), %r8
	movq	%rdx, 48(%rsp)
	leaq	(%r10,%r14), %rdx
	andq	%r15, %rcx
	movq	16(%rsp), %r12
	movq	%rdx, %r14
	leaq	(%rax,%rdi), %rdx
	addq	%rbx, %rax
	subq	%rbx, %rdx
	subq	%r12, %r14
	leaq	(%rcx,%r8), %rbx
	addq	%r12, %r10
	movq	%rdx, 64(%rsp)
	leaq	(%rcx,%rdi), %rdx
	subq	%r8, %rdx
	movq	%r14, 744(%rsp)
	movq	%rdx, (%rsp)
	leaq	(%rsi,%rdi), %rdx
	movq	96(%rsp), %rdi
	subq	%rdi, %rdx
	addq	%rsi, %rdi
	movq	%rdx, 32(%rsp)
	movq	48(%rsp), %rdx
	movq	%rdx, 736(%rsp)
	movq	64(%rsp), %rdx
	movq	%rdx, 752(%rsp)
	movq	(%rsp), %rdx
	movq	%rdx, 760(%rsp)
	movq	32(%rsp), %rdx
	movq	%rax, 16(%rsp)
	movq	%rdx, 768(%rsp)
	leaq	(%r9,%r13), %rdx
	movq	%rdx, 96(%rsp)
	movq	%rbx, 80(%rsp)
	movq	%rdi, 240(%rsp)
	movq	%rdx, 776(%rsp)
	movq	%r10, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%rbx, 800(%rsp)
	movq	%rdi, 808(%rsp)
	jmp	.L22804
	.p2align 4,,10
	.p2align 3
.L22828:

	movq	128(%rsp), %rax
	movq	%r11, 48(%rsp)
	xorl	%r15d, %r15d
	movq	%rbp, 64(%rsp)
	movq	360(%rsp), %rbx
	movq	%rax, (%rsp)
	movq	160(%rsp), %rax
	movq	$0, 8(%rsp)
	movq	144(%rsp), %r14
	movq	%rax, 32(%rsp)
	movq	176(%rsp), %rax
	movq	$0, 40(%rsp)
	movq	%rax, 16(%rsp)
	movq	272(%rsp), %rax
	movq	$0, 56(%rsp)
	movq	%rax, 80(%rsp)
	movq	336(%rsp), %rax
	movq	$0, 72(%rsp)
	movq	%rax, 96(%rsp)
	movq	328(%rsp), %rax
	movq	$0, 24(%rsp)
	movq	%rax, 112(%rsp)
	movq	256(%rsp), %rax
	movq	$0, 88(%rsp)
	movq	$0, 104(%rsp)
	movq	$0, 120(%rsp)
	movq	%rax, 128(%rsp)
	movq	$0, 136(%rsp)
.L22800:

	movq	480(%rsp), %rax
	movq	312(%rsp), %rsi
	movq	%rbx, %rdi
	movdqa	448(%rsp), %xmm7
	movdqa	464(%rsp), %xmm1
	movq	%rax, 1168(%rsp)
	movaps	%xmm7, 1136(%rsp)
	movaps	%xmm1, 1152(%rsp)
# WAS call	fe_loose_invert
	call	.Lfe_loose_invert_local_target
	movq	1008(%rsp), %rax
	movq	1000(%rsp), %rbp
	movq	1008(%rsp), %rbx
	movq	992(%rsp), %rdi
	leaq	(%rax,%rax,8), %rax
	movq	24(%rsp), %rcx
	movq	80(%rsp), %r10
	movq	984(%rsp), %rsi
	leaq	(%rbx,%rax,2), %r8
	leaq	0(%rbp,%rbp,8), %rax
	leaq	0(%rbp,%rax,2), %r9
	leaq	(%rdi,%rdi,8), %rax
	leaq	(%rdi,%rax,2), %rbx
	leaq	(%rsi,%rsi,8), %rax
	leaq	(%rsi,%rax,2), %r13
	movq	%r13, %rax
	mulq	16(%rsp)
	movq	%r13, 192(%rsp)
	imulq	%r13, %rcx
	movq	%rdx, %r13
	movq	%rax, %r12
	movq	%r10, %rax
	movq	96(%rsp), %r10
	addq	%rcx, %r13
	movq	88(%rsp), %rcx
	mulq	%rbx
	imulq	%rbx, %rcx
	addq	%rcx, %rdx
	movq	104(%rsp), %rcx
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r9
	movq	112(%rsp), %r10
	imulq	%r9, %rcx
	addq	%rcx, %rdx
	movq	120(%rsp), %rcx
	addq	%rax, %r12
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	%r8
	movq	128(%rsp), %r10
	imulq	%r8, %rcx
	addq	%rcx, %rdx
	addq	%rax, %r12
	movq	136(%rsp), %rcx
	movq	%r10, %rax
	adcq	%rdx, %r13
	mulq	976(%rsp)
	movq	%r12, %r11
	imulq	976(%rsp), %rcx
	movq	%r13, %r12
	movq	136(%rsp), %r13
	addq	%rcx, %rdx
	addq	%rax, %r11
	movq	24(%rsp), %rcx
	movq	%r11, 144(%rsp)
	movq	16(%rsp), %r11
	adcq	%rdx, %r12
	imulq	%rbx, %rcx
	movq	%r12, 152(%rsp)
	movq	80(%rsp), %r12
	movq	%r11, %rax
	mulq	%rbx
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	%r12, %rax
	movq	96(%rsp), %r12
	addq	%rcx, %r11
	movq	88(%rsp), %rcx
	mulq	%r9
	imulq	%r9, %rcx
	addq	%rcx, %rdx
	movq	104(%rsp), %rcx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%r8
	movq	112(%rsp), %r12
	imulq	%r8, %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	120(%rsp), %rcx
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	976(%rsp)
	movq	128(%rsp), %r12
	imulq	976(%rsp), %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	%r13, %rcx
	movq	%r12, %rax
	adcq	%rdx, %r11
	imulq	%rsi, %rcx
	mulq	%rsi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	144(%rsp), %rax
	movq	24(%rsp), %rcx
	adcq	%rdx, %r11
	movq	152(%rsp), %rdx
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r10, 128(%rsp)
	movq	16(%rsp), %r10
	adcq	%rdx, %r11
	imulq	%r9, %rcx
	movq	%r11, 136(%rsp)
	movq	%r10, %rax
	mulq	%r9
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	80(%rsp), %rax
	addq	%rcx, %r11
	movq	88(%rsp), %rcx
	mulq	%r8
	imulq	%r8, %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	104(%rsp), %rcx
	movq	96(%rsp), %rax
	adcq	%rdx, %r11
	mulq	976(%rsp)
	imulq	976(%rsp), %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	120(%rsp), %rcx
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%rsi, %rcx
	mulq	%rsi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	%r13, %rcx
	movq	%r12, %rax
	adcq	%rdx, %r11
	imulq	%rdi, %rcx
	mulq	%rdi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	136(%rsp), %rcx
	adcq	%rdx, %r11
	movq	128(%rsp), %rdx
	shrdq	$51, %rcx, %rdx
	movq	24(%rsp), %rcx
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	movq	%r10, 160(%rsp)
	movq	16(%rsp), %r10
	adcq	%rdx, %r11
	imulq	%r8, %rcx
	movq	%r11, 168(%rsp)
	movq	%r10, %rax
	mulq	%r8
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	80(%rsp), %rax
	addq	%rcx, %r11
	mulq	976(%rsp)
	movq	88(%rsp), %rcx
	imulq	976(%rsp), %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	104(%rsp), %rcx
	movq	96(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%rsi, %rcx
	mulq	%rsi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	120(%rsp), %rcx
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%rdi, %rcx
	mulq	%rdi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	%r13, %rcx
	movq	%r12, %rax
	adcq	%rdx, %r11
	imulq	%rbp, %rcx
	mulq	%rbp
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	168(%rsp), %rcx
	adcq	%rdx, %r11
	movq	160(%rsp), %rdx
	shrdq	$51, %rcx, %rdx
	movq	%rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r10
	adcq	%rdx, %r11
	movq	%r10, 176(%rsp)
	movq	%r11, 184(%rsp)
	movq	16(%rsp), %r10
	movq	24(%rsp), %rcx
	imulq	976(%rsp), %rcx
	movq	%r10, %rax
	mulq	976(%rsp)
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	80(%rsp), %rax
	addq	%rcx, %r11
	movq	88(%rsp), %rcx
	mulq	%rsi
	imulq	%rsi, %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	104(%rsp), %rcx
	movq	96(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%rdi, %rcx
	mulq	%rdi
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	120(%rsp), %rcx
	movq	112(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%rbp, %rcx
	mulq	%rbp
	addq	%rcx, %rdx
	movq	1008(%rsp), %rcx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	1008(%rsp)
	imulq	%r13, %rcx
	addq	%rcx, %rdx
	addq	%rax, %r10
	movq	176(%rsp), %rax
	movabsq	$2251799813685247, %rcx
	adcq	%rdx, %r11
	movq	184(%rsp), %rdx
	movq	%r10, %r12
	movq	%r11, %r13
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r12
	movq	144(%rsp), %rax
	adcq	%rdx, %r13
	movq	%r12, 96(%rsp)
	shrdq	$51, %r13, %r12
	andq	%rcx, %rax
	movq	%r13, 104(%rsp)
	movq	192(%rsp), %r13
	leaq	(%r12,%r12,8), %rdx
	leaq	(%r12,%rdx,2), %rdx
	leaq	(%rdx,%rax), %r11
	movq	128(%rsp), %rax
	movq	%r11, %rdx
	movq	%r11, 112(%rsp)
	andq	%rcx, %rax
	shrq	$51, %rdx
	leaq	(%rax,%rdx), %r10
	movq	8(%rsp), %rax
	movq	%r10, 128(%rsp)
	imulq	%r13, %rax
	movq	%rax, %r12
	movq	%r13, %rax
	movq	40(%rsp), %r13
	mulq	(%rsp)
	imulq	%rbx, %r13
	movq	%rax, %r10
	movq	32(%rsp), %rax
	movq	%rdx, %r11
	addq	%r12, %r11
	mulq	%rbx
	addq	%r13, %rdx
	addq	%rax, %r10
	movq	56(%rsp), %r13
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	imulq	%r9, %r13
	movq	%r11, %r12
	movq	%r10, %r11
	mulq	%r9
	addq	%r13, %rdx
	addq	%rax, %r11
	movq	72(%rsp), %rax
	adcq	%rdx, %r12
	imulq	%r8, %rax
	movq	%r12, %r13
	movq	%r11, %r12
	movq	%rax, %r11
	movq	64(%rsp), %rax
	mulq	%r8
	addq	%r11, %rdx
	movq	%r12, %r11
	movq	%r13, %r12
	movq	976(%rsp), %r13
	addq	%rax, %r11
	movq	%r14, %rax
	adcq	%rdx, %r12
	imulq	%r15, %r13
	movq	%r11, %r10
	mulq	976(%rsp)
	movq	%r10, %r11
	addq	%r13, %rdx
	addq	%rax, %r11
	movq	%rbx, %rax
	adcq	%rdx, %r12
	movq	%r11, 16(%rsp)
	movq	%r12, 24(%rsp)
	mulq	(%rsp)
	movq	8(%rsp), %r13
	movq	32(%rsp), %r12
	imulq	%rbx, %r13
	movq	40(%rsp), %rbx
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	mulq	%r9
	movq	48(%rsp), %r12
	imulq	%r9, %rbx
	addq	%r13, %r11
	addq	%rbx, %rdx
	movq	56(%rsp), %rbx
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%r8
	imulq	%r8, %rbx
	movq	%r11, %r12
	movq	%r10, %r11
	addq	%rbx, %rdx
	addq	%rax, %r11
	movq	72(%rsp), %rbx
	movq	64(%rsp), %rax
	adcq	%rdx, %r12
	mulq	976(%rsp)
	imulq	976(%rsp), %rbx
	movq	%r12, %r13
	movq	%r13, %r12
	addq	%rbx, %rdx
	addq	%rax, %r11
	movq	%r15, %rbx
	movq	%rsi, %rax
	adcq	%rdx, %r12
	imulq	%rsi, %rbx
	movq	%r11, %r10
	mulq	%r14
	movq	%r12, %r11
	addq	%rbx, %rdx
	addq	%rax, %r10
	movq	16(%rsp), %rax
	movq	8(%rsp), %rbx
	adcq	%rdx, %r11
	movq	24(%rsp), %rdx
	movq	%r11, %r12
	movq	%r10, %r11
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r11
	movq	%r9, %rax
	adcq	%rdx, %r12
	mulq	(%rsp)
	movq	%r11, 80(%rsp)
	movq	%r12, 88(%rsp)
	movq	32(%rsp), %r12
	imulq	%r9, %rbx
	movq	40(%rsp), %r9
	movq	%rax, %r10
	movq	%r12, %rax
	movq	%rdx, %r11
	movq	48(%rsp), %r12
	imulq	%r8, %r9
	addq	%rbx, %r11
	movq	8(%rsp), %rbx
	mulq	%r8
	addq	%r9, %rdx
	addq	%rax, %r10
	movq	56(%rsp), %r9
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	976(%rsp)
	movq	64(%rsp), %r12
	imulq	976(%rsp), %r9
	addq	%r9, %rdx
	movq	72(%rsp), %r9
	addq	%rax, %r10
	movq	%r12, %rax
	adcq	%rdx, %r11
	mulq	%rsi
	imulq	%rsi, %r9
	addq	%r9, %rdx
	addq	%rax, %r10
	movq	%r15, %r9
	movq	%rdi, %rax
	adcq	%rdx, %r11
	imulq	%rdi, %r9
	mulq	%r14
	addq	%r9, %rdx
	addq	%rax, %r10
	movq	80(%rsp), %rax
	adcq	%rdx, %r11
	movq	88(%rsp), %rdx
	movq	%r10, %r9
	movq	%r11, %r10
	shrdq	$51, %rdx, %rax
	xorl	%edx, %edx
	addq	%rax, %r9
	movq	%r8, %rax
	adcq	%rdx, %r10
	mulq	(%rsp)
	movq	%r9, %r12
	imulq	%r8, %rbx
	movq	%r10, %r13
	movq	%r12, %r10
	movq	%rdx, %r9
	movq	%rax, %r8
	movq	32(%rsp), %rax
	addq	%rbx, %r9
	mulq	976(%rsp)
	movq	40(%rsp), %rbx
	imulq	976(%rsp), %rbx
	addq	%rbx, %rdx
	movq	56(%rsp), %rbx
	addq	%rax, %r8
	movq	48(%rsp), %rax
	adcq	%rdx, %r9
	imulq	%rsi, %rbx
	mulq	%rsi
	addq	%rbx, %rdx
	addq	%rax, %r8
	movq	64(%rsp), %rax
	movq	%r15, %rbx
	adcq	%rdx, %r9
	movq	%r9, %r11
	movq	72(%rsp), %r9
	mulq	%rdi
	imulq	%rdi, %r9
	addq	%r9, %rdx
	addq	%rax, %r8
	movq	%r11, %r9
	movq	%rbp, %rax
	adcq	%rdx, %r9
	imulq	%rbp, %rbx
	mulq	%r14
	addq	%rbx, %rdx
	addq	%rax, %r8
	movq	8(%rsp), %rbx
	adcq	%rdx, %r9
	shrdq	$51, %r13, %r10
	xorl	%edx, %edx
	addq	%r10, %r8
	movq	(%rsp), %r10
	adcq	%rdx, %r9
	imulq	976(%rsp), %rbx
	movq	%r10, %rax
	mulq	976(%rsp)
	movq	%rdx, %r11
	movq	%rax, %r10
	movq	32(%rsp), %rax
	addq	%rbx, %r11
	movq	40(%rsp), %rbx
	mulq	%rsi
	imulq	%rsi, %rbx
	addq	%rbx, %rdx
	addq	%rax, %r10
	movq	56(%rsp), %rbx
	movq	48(%rsp), %rax
	adcq	%rdx, %r11
	movq	%r10, %rsi
	imulq	%rdi, %rbx
	mulq	%rdi
	movq	%r11, %rdi
	addq	%rbx, %rdx
	addq	%rax, %rsi
	movq	72(%rsp), %rbx
	movq	64(%rsp), %rax
	adcq	%rdx, %rdi
	imulq	%rbp, %rbx
	mulq	%rbp
	addq	%rbx, %rdx
	movq	1008(%rsp), %rbx
	addq	%rax, %rsi
	movq	%r14, %rax
	adcq	%rdx, %rdi
	mulq	1008(%rsp)
	movq	%r8, %r14
	imulq	%r15, %rbx
	addq	%rbx, %rdx
	addq	%rax, %rsi
	movq	80(%rsp), %rbx
	adcq	%rdx, %rdi
	shrdq	$51, %r9, %r14
	xorl	%edx, %edx
	movabsq	$2251799813685229, %r9
	movq	%r14, %rax
	addq	%rsi, %rax
	adcq	%rdi, %rdx
	movq	%rax, %rsi
	andq	%rcx, %rbx
	andq	%rcx, %r12
	shrdq	$51, %rdx, %rsi
	movq	%rbx, %r14
	andq	%rcx, %r8
	movq	%rax, %rbx
	leaq	(%rsi,%rsi,8), %rdx
	andq	%rcx, %rbx
	leaq	(%rsi,%rdx,2), %rdx
	movq	16(%rsp), %rsi
	movq	%rbx, %r10
	andq	%rcx, %rsi
	addq	%rsi, %rdx
	movq	%rdx, %rsi
	andq	%rcx, %rdx
	shrq	$51, %rsi
	addq	%rsi, %r14
	movabsq	$-2251799813685229, %rsi
	addq	%rsi, %rdx
	movq	%r14, %rsi
	shrq	$51, %r14
	movq	%rdx, %rdi
	andq	%rcx, %rsi
	addq	%r14, %r12
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %rsi
	subq	%rcx, %rsi
	movq	%rsi, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %r12
	subq	%rcx, %r12
	movq	%r12, %rdi
	sarq	$51, %rdi
	negl	%edi
	movzbl	%dil, %edi
	subq	%rdi, %r8
	subq	%rcx, %r8
	movq	%r8, %rax
	sarq	$51, %rax
	negl	%eax
	movzbl	%al, %eax
	subq	%rax, %r10
	subq	%rcx, %r10
	movq	%r10, %rbx
	sarq	$51, %rbx
	movq	%rbx, %r11
	movq	%r11, %rax
	andq	%rcx, %rdx
	andq	%rcx, %r11
	andq	%rcx, %rsi
	andq	%r9, %rax
	andq	%rcx, %r12
	andq	%rcx, %r8
	andq	%rcx, %r10
	addq	%rax, %rdx
	movq	%rdx, %rdi
	shrq	$51, %rdx
	addq	%r11, %rdx
	andq	%rcx, %rdi
	addq	%rsi, %rdx
	movq	%rdi, %r14
	movq	%rdi, %r13
	movq	%rdx, %rbx
	salq	$3, %rdx
	shrq	$51, %rbx
	addq	%r11, %rbx
	addq	%r12, %rbx
	movq	%rbx, %rax
	salq	$6, %rbx
	shrq	$51, %rax
	addq	%r11, %rax
	addq	%rax, %r8
	movabsq	$18014398509481976, %rax
	andq	%rax, %rdx
	movq	%rdi, %rax
	shrq	$48, %rax
	addq	%rdx, %rax
	movabsq	$144115188075855808, %rdx
	movq	%rax, %rsi
	andq	%rdx, %rbx
	movq	%rax, %rbp
	shrq	$48, %rsi
	addq	%rsi, %rbx
	movq	%r8, %rsi
	shrq	$51, %r8
	leaq	(%r8,%r11), %rdx
	movq	%rbx, %r15
	andq	%rcx, %rsi
	movabsq	$36028797018963952, %r8
	shrq	$56, %r15
	addq	%r10, %rdx
	leaq	(%r15,%rsi,2), %rsi
	salq	$4, %rdx
	movq	%rdi, %r15
	andq	%r8, %rdx
	movq	%rsi, %r8
	shrq	$16, %r15
	shrq	$48, %r8
	movq	%r15, %r12
	shrq	$32, %rbp
	movq	%rdi, %r15
	shrq	$40, %r15
	addq	%r8, %rdx
	movq	%rax, %r8
	movq	%rbp, %r10
	shrq	$16, %r8
	movq	%rax, %rbp
	movzbl	%r15b, %r15d
	shrq	$32, %r14
	movq	%r8, (%rsp)
	movq	%rax, %r8
	movzwl	%ax, %eax
	movzbl	%r14b, %r14d
	salq	$8, %rax
	shrq	$24, %r13
	movzbl	%r10b, %r10d
	shrq	$40, %rbp
	orq	%r15, %rax
	movzbl	%r13b, %r13d
	shrq	$24, %r8
	salq	$8, %rax
	movq	%rbp, %r11
	movq	%rbx, %rbp
	movzbl	%r8b, %r8d
	orq	%r14, %rax
	shrq	$16, %rbp
	movzbl	%r11b, %r11d
	salq	$8, %rax
	orq	%r13, %rax
	movzbl	%r12b, %r13d
	salq	$8, %rax
	movq	%rax, %r12
	movq	%rdi, %rax
	movzbl	%dil, %edi
	orq	%r13, %r12
	movzbl	%ah, %eax
	salq	$8, %r12
	orq	%rax, %r12
	movq	%rbp, %rax
	movzbl	%bpl, %ebp
	andl	$65280, %eax
	salq	$8, %r12
	orq	%rbp, %rax
	movzbl	%bh, %ebp
	movq	%r12, %r15
	salq	$8, %rax
	orq	%rbp, %rax
	movzbl	%bl, %ebp
	salq	$8, %rax
	orq	%rbp, %rax
	movq	%rsi, %rbp
	salq	$8, %rax
	orq	%r11, %rax
	salq	$8, %rax
	orq	%r10, %rax
	shrq	$16, %rbp
	orq	%rdi, %r15
	movq	%rbx, %rdi
	salq	$8, %rax
	movq	%rbp, %r10
	movq	%rsi, %rbp
	shrq	$32, %rdi
	orq	%r8, %rax
	movzbl	(%rsp), %r8d
	shrq	$24, %rbp
	movzbl	%r10b, %r10d
	salq	$8, %rax
	movzbl	%bpl, %r11d
	movq	%r15, (%rsp)
	movq	352(%rsp), %r15
	orq	%r8, %rax
	movq	%rbx, %r8
	shrq	$48, %rbx
	movq	%rax, 8(%rsp)
	movq	%rbp, %rax
	shrq	$40, %r8
	movdqa	(%rsp), %xmm2
	andl	$65280, %eax
	orq	%r11, %rax
	movups	%xmm2, (%r15)
	salq	$8, %rax
	orq	%r10, %rax
	movzbl	%sil, %r10d
	movq	%rax, %rbp
	movq	%rsi, %rax
	shrq	$40, %rsi
	movzbl	%ah, %eax
	movzbl	%sil, %esi
	movq	%rax, %r11
	movq	%rbp, %rax
	salq	$8, %rax
	orq	%r11, %rax
	movq	112(%rsp), %r11
	salq	$8, %rax
	orq	%r10, %rax
	movzbl	%bl, %r10d
	movq	%rax, %rbx
	movzbl	%r8b, %eax
	salq	$8, %rbx
	orq	%r10, %rbx
	salq	$8, %rbx
	movq	%rbx, %r8
	orq	%rax, %r8
	movzbl	%dil, %eax
	movq	%r8, %rdi
	salq	$8, %rdi
	orq	%rax, %rdi
	movq	%rdx, %rax
	shrq	$16, %rax
	movq	%rdi, 16(%r15)
	movzbl	%dh, %edi
	movzbl	%al, %eax
	sall	$8, %eax
	orl	%edi, %eax
	movzbl	%dl, %edi
	sall	$8, %eax
	orl	%edi, %eax
	sall	$8, %eax
	orl	%esi, %eax
	andq	%rcx, %r11
	movl	%eax, 24(%r15)
	movq	%rdx, %rax
	shrq	$24, %rax
	movb	%al, 28(%r15)
	movq	%rdx, %rax
	shrq	$32, %rax
	movb	%al, 29(%r15)
	movq	%rdx, %rax
	shrq	$40, %rax
	movb	%al, 30(%r15)
	movq	96(%rsp), %rdi
	movq	%r11, %rax
	movq	160(%rsp), %rsi
	movq	128(%rsp), %r14
	subq	%r9, %rax
	movq	%rax, %r11
	movq	176(%rsp), %r8
	andq	%rcx, %rdi
	andq	%rcx, %rax
	andq	%rcx, %rsi
	sarq	$51, %r11
	movq	%rsi, %r10
	movq	%r14, %rsi
	negl	%r11d
	andq	%rcx, %r8
	shrq	$51, %rsi
	movzbl	%r11b, %r11d
	addq	%rsi, %r10
	movq	%r14, %rsi
	andq	%rcx, %rsi
	subq	%r11, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %r10
	movq	%r10, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	negl	%esi
	movzbl	%sil, %esi
	subq	%rsi, %r8
	subq	%rcx, %r8
	sarq	$51, %r8
	negl	%r8d
	movzbl	%r8b, %r8d
	subq	%r8, %rdi
	movq	%rdi, %rsi
	subq	%rcx, %rsi
	sarq	$51, %rsi
	andq	%r9, %rsi
	addq	%rsi, %rax
	shrq	$48, %rdx
	sall	$7, %eax
	xorl	%eax, %edx
	movl	$1, %eax
	movb	%dl, 31(%r15)
	jmp	.L22795
	.p2align 4,,10
	.p2align 3
.L22823:

	movq	312(%rsp), %rdi
	movq	%rbp, %rdx
	movq	%r15, %rsi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	jmp	.L22797
.L22824:

	movq	$0, 128(%rsp)
	movl	$1, %r14d
	xorl	%r15d, %r15d
	movq	$0, 136(%rsp)
	movq	$0, 112(%rsp)
	movq	$0, 120(%rsp)
	movq	$0, 96(%rsp)
	movq	$0, 104(%rsp)
	movq	$0, 80(%rsp)
	movq	$0, 88(%rsp)
	movq	$0, 16(%rsp)
	movq	$0, 24(%rsp)
	movq	$0, 64(%rsp)
	movq	$0, 72(%rsp)
	movq	$0, 48(%rsp)
	movq	$0, 56(%rsp)
	movq	$0, 32(%rsp)
	movq	$0, 40(%rsp)
	movq	$0, (%rsp)
	movq	$0, 8(%rsp)
	jmp	.L22800
.L22822:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1431:

	.size	ed25519_verify_nohw, .-ed25519_verify_nohw
# WAS .section	.text.ed25519_verify_s2n_bignum,"ax",@progbits
.text
	.p2align 4
	.globl	ed25519_verify_s2n_bignum
	.hidden	ed25519_verify_s2n_bignum
	.type	ed25519_verify_s2n_bignum, @function
.Led25519_verify_s2n_bignum_local_target:
ed25519_verify_s2n_bignum:
.LFB1450:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pxor	%xmm0, %xmm0
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r9, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rcx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$568, %rsp
	.cfi_def_cfa_offset 624
	movq	%rdi, 8(%rsp)
	leaq	192(%rsp), %r14
	movq	%rdx, 16(%rsp)
	movq	%r8, 24(%rsp)
	movq	%fs:40, %rax
	movq	%rax, 552(%rsp)
	xorl	%eax, %eax
	movaps	%xmm0, 480(%rsp)
	movaps	%xmm0, 496(%rsp)
	movaps	%xmm0, 512(%rsp)
	movaps	%xmm0, 528(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm0, 64(%rsp)
	movaps	%xmm0, 80(%rsp)
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
	movaps	%xmm0, 128(%rsp)
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm0, 176(%rsp)
	movaps	%xmm0, 32(%rsp)
	movaps	%xmm0, 48(%rsp)
	movaps	%xmm0, 192(%rsp)
	movaps	%xmm0, 208(%rsp)
	movaps	%xmm0, 224(%rsp)
	movaps	%xmm0, 240(%rsp)
# WAS call	OPENSSL_ia32cap_get@PLT
	call	.LOPENSSL_ia32cap_get_local_target
	movq	%rbp, %rsi
	movq	%r14, %rdi
	movq	%rax, %rbx
	movl	8(%rax), %eax
	notl	%eax
	testl	$524544, %eax
	je	.L22842
# WAS call	edwards25519_decode_alt@PLT
	call	.Ledwards25519_decode_alt_local_target
.L22831:

	xorl	%edx, %edx
	testq	%rax, %rax
	je	.L22843
.L22829:

	movq	552(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22844
	addq	$568, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%edx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22843:

	.cfi_restore_state
	leaq	256(%rsp), %r15
	movq	%r15, %rdi
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movq	16(%rsp), %rsi
	movl	$32, %edx
	movq	%r15, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movl	$32, %edx
	movq	%rbp, %rsi
	movq	%r15, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	testq	%r13, %r13
	jne	.L22845
.L22833:

	leaq	480(%rsp), %rdi
	movq	%r15, %rsi
	leaq	64(%rsp), %rbp
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	%rbp, %rdx
	movl	$8, %esi
	movq	%rbp, %rdi
	movdqa	480(%rsp), %xmm1
	movdqa	496(%rsp), %xmm2
	movdqa	512(%rsp), %xmm3
	movdqa	528(%rsp), %xmm4
	movaps	%xmm1, 64(%rsp)
	movaps	%xmm2, 80(%rsp)
	movaps	%xmm3, 96(%rsp)
	movaps	%xmm4, 112(%rsp)
# WAS call	bignum_mod_n25519@PLT
	call	.Lbignum_mod_n25519_local_target
	movq	%r14, %rsi
	movq	%r14, %rdi
# WAS call	bignum_neg_p25519@PLT
	call	.Lbignum_neg_p25519_local_target
	movl	8(%rbx), %eax
	leaq	32(%rsp), %rcx
	movq	%r14, %rdx
	movdqu	(%r12), %xmm5
	movdqu	16(%r12), %xmm6
	leaq	128(%rsp), %rbx
	movq	%rbp, %rsi
	notl	%eax
	movq	%rbx, %rdi
	movaps	%xmm5, 32(%rsp)
	movaps	%xmm6, 48(%rsp)
	testl	$524544, %eax
	je	.L22846
# WAS call	edwards25519_scalarmuldouble_alt@PLT
	call	.Ledwards25519_scalarmuldouble_alt_local_target
.L22835:

	movq	8(%rsp), %rdi
	movq	%rbx, %rsi
# WAS call	edwards25519_encode@PLT
	call	.Ledwards25519_encode_local_target
	movl	$1, %edx
	jmp	.L22829
	.p2align 4,,10
	.p2align 3
.L22842:

# WAS call	edwards25519_decode@PLT
	call	.Ledwards25519_decode_local_target
	jmp	.L22831
	.p2align 4,,10
	.p2align 3
.L22845:

	movq	24(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r15, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	jmp	.L22833
	.p2align 4,,10
	.p2align 3
.L22846:

# WAS call	edwards25519_scalarmuldouble@PLT
	call	.Ledwards25519_scalarmuldouble_local_target
	jmp	.L22835
.L22844:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1450:

	.size	ed25519_verify_s2n_bignum, .-ed25519_verify_s2n_bignum
# WAS .section	.text.ED25519_verify_no_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_verify_no_self_test
	.hidden	ED25519_verify_no_self_test
	.type	ED25519_verify_no_self_test, @function
.LED25519_verify_no_self_test_local_target:
ED25519_verify_no_self_test:
.LFB1342:

	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	subq	$112, %rsp
	.cfi_def_cfa_offset 144
	movdqu	(%rdx), %xmm0
	movdqu	16(%rdx), %xmm1
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	movdqu	32(%rdx), %xmm2
	movdqu	48(%rdx), %xmm3
	cmpb	$31, 63(%rdx)
	movaps	%xmm0, (%rsp)
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm3, 48(%rsp)
	ja	.L22850
	movabsq	$1152921504606846976, %rax
	movq	56(%rsp), %rdx
	cmpq	%rdx, %rax
	jb	.L22850
	movq	%rsi, %r9
	movq	%rcx, %rsi
	cmpq	%rax, %rdx
	jne	.L22851
	cmpq	$0, 48(%rsp)
	jne	.L22850
	movabsq	$1503914060200516822, %rax
	movq	40(%rsp), %rdx
	cmpq	%rdx, %rax
	jb	.L22850
	cmpq	%rax, %rdx
	jne	.L22851
	movabsq	$6346243789798364140, %rax
	cmpq	32(%rsp), %rax
	jb	.L22850
.L22851:

	movq	%rsp, %r12
	leaq	64(%rsp), %rbp
	leaq	32(%rsp), %rcx
	movq	%rdi, %r8
	movq	%r12, %rdx
	movq	%rbp, %rdi
# WAS call	ed25519_verify_s2n_bignum
	call	.Led25519_verify_s2n_bignum_local_target
	movl	%eax, %ebx
	cmpl	$1, %eax
	je	.L22854
	.p2align 4,,10
	.p2align 3
.L22850:

	xorl	%ebx, %ebx
.L22847:

	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22855
	addq	$112, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
.L22854:

	.cfi_restore_state
	movl	$32, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
# WAS call	CRYPTO_memcmp@PLT
	call	.Lbcm_redirector_CRYPTO_memcmp
	testl	%eax, %eax
	jne	.L22850
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22847
.L22855:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE1342:

	.size	ED25519_verify_no_self_test, .-ED25519_verify_no_self_test
# WAS .section	.text.ED25519_verify,"ax",@progbits
.text
	.p2align 4
	.globl	ED25519_verify
	.type	ED25519_verify, @function
.LED25519_verify_local_target:
ED25519_verify:
.LFB1341:

	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rcx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
# WAS call	g_self_test_once_eddsa_bss_get@PLT
	call	g_self_test_once_eddsa_bss_get
# WAS leaq	run_self_test_eddsa(%rip), %rsi
	leaq	.Lrun_self_test_eddsa_local_target(%rip), %rsi
	movq	%rax, %rdi
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movq	%r13, %rcx
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
# WAS jmp	ED25519_verify_no_self_test
	jmp	.LED25519_verify_no_self_test_local_target
	.cfi_endproc
.LFE1341:

	.size	ED25519_verify, .-ED25519_verify
# WAS .section	.text.pkey_ed25519_verify_message,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ed25519_verify_message, @function
.Lpkey_ed25519_verify_message_local_target:
pkey_ed25519_verify_message:
.LFB2233:

	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	movq	%rcx, %rdi
	movq	16(%rax), %rax
	movq	8(%rax), %rcx
	cmpq	$64, %rdx
	jne	.L22861
	addq	$32, %rcx
	movq	%rsi, %rdx
	movq	%r8, %rsi
# WAS call	ED25519_verify@PLT
	call	.LED25519_verify_local_target
	testl	%eax, %eax
	je	.L22861
	movl	$1, %eax
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22861:

	.cfi_restore_state
	movl	$77, %r8d
	leaq	.LC433(%rip), %rcx
	movl	$131, %edx
	xorl	%esi, %esi
	movl	$6, %edi
# WAS call	ERR_put_error@PLT
	call	.Lbcm_redirector_ERR_put_error
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2233:

	.size	pkey_ed25519_verify_message, .-pkey_ed25519_verify_message
# WAS .section	.text.unlikely.ED25519_keypair,"ax",@progbits
.text
.LCOLDB434:

# WAS .section	.text.ED25519_keypair,"ax",@progbits
.text
.LHOTB434:

	.p2align 4
	.globl	ED25519_keypair
	.type	ED25519_keypair, @function
.LED25519_keypair_local_target:
ED25519_keypair:
.LFB1338:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$488, %rsp
	.cfi_def_cfa_offset 544
	movq	%fs:40, %rax
	movq	%rax, 472(%rsp)
	xorl	%eax, %eax
	leaq	240(%rsp), %r12
	leaq	336(%rsp), %r14
# WAS call	g_self_test_once_eddsa_bss_get@PLT
	call	g_self_test_once_eddsa_bss_get
# WAS leaq	run_self_test_eddsa(%rip), %rsi
	leaq	.Lrun_self_test_eddsa_local_target(%rip), %rsi
	leaq	224(%rsp), %r13
	movq	%rax, %rdi
	leaq	400(%rsp), %r15
# WAS call	CRYPTO_once@PLT
	call	.Lbcm_redirector_CRYPTO_once
	movq	%r12, %rdi
	movl	$32, %esi
# WAS call	RAND_bytes@PLT
	call	.LRAND_bytes_local_target
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
# WAS call	ED25519_keypair_from_seed@PLT
	call	.LED25519_keypair_from_seed_local_target
	movq	%r12, %rdi
	movl	$32, %esi
	movq	%rsp, %r12
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movq	%r14, %rdx
	movl	$32, %esi
	movq	%rbx, %rdi
	movq	$16, 224(%rsp)
	movq	$0, 232(%rsp)
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
	movzbl	367(%rsp), %eax
	movq	%r12, %rdi
	andb	$-8, 336(%rsp)
	andl	$63, %eax
	orl	$64, %eax
	movb	%al, 367(%rsp)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	leaq	368(%rsp), %rsi
	movl	$32, %edx
	movq	%r12, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movl	$16, %edx
	movq	%r13, %rsi
	movq	%r12, %rdi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%r12, %rsi
	movq	%r15, %rdi
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	leaq	32(%rbx), %rcx
	movq	%r14, %rdx
	movq	%r15, %rsi
	leaq	272(%rsp), %rbx
	movl	$16, %r9d
	movq	%r13, %r8
	movq	%rbx, %rdi
# WAS call	ed25519_sign_s2n_bignum
	call	.Led25519_sign_s2n_bignum_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	%rbp, %rcx
	movq	%rbx, %rdx
	movl	$16, %esi
	movq	%r13, %rdi
# WAS call	ED25519_verify_no_self_test
	call	.LED25519_verify_no_self_test_local_target
	cmpl	$1, %eax
	jne	.L22869
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	472(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L22871
	addq	$488, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L22871:

	.cfi_restore_state
# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.ED25519_keypair
.text
	.cfi_startproc
	.type	ED25519_keypair.cold, @function
.LED25519_keypair.cold_local_target:
ED25519_keypair.cold:
.LFSB1338:

.L22869:

	.cfi_def_cfa_offset 544
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE1338:

# WAS .section	.text.ED25519_keypair
.text
	.size	ED25519_keypair, .-ED25519_keypair
# WAS .section	.text.unlikely.ED25519_keypair
.text
	.size	ED25519_keypair.cold, .-ED25519_keypair.cold
.LCOLDE434:

# WAS .section	.text.ED25519_keypair
.text
.LHOTE434:

# WAS .section	.text.pkey_ed25519_keygen,"ax",@progbits
.text
	.p2align 4
	.type	pkey_ed25519_keygen, @function
.Lpkey_ed25519_keygen_local_target:
pkey_ed25519_keygen:
.LFB2231:

	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movl	$65, %edi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
# WAS call	OPENSSL_malloc@PLT
	call	.Lbcm_redirector_OPENSSL_malloc
	testq	%rax, %rax
	je	.L22876
	movq	%rax, %rbp
	movq	16(%rbx), %rax
	testq	%rax, %rax
	je	.L22874
	movq	160(%rax), %rax
	testq	%rax, %rax
	je	.L22874
	movq	%rbx, %rdi
	call	*%rax
	movq	$0, 8(%rbx)
.L22874:

# WAS movq	ed25519_asn1_meth@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq ed25519_asn1_meth_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movq	%rsp, %rdi
	movq	%rbp, %rsi
	movq	%rax, 16(%rbx)
	movl	(%rax), %eax
	movl	%eax, 4(%rbx)
# WAS call	ED25519_keypair@PLT
	call	.LED25519_keypair_local_target
	movb	$1, 64(%rbp)
	movq	8(%rbx), %rdi
# WAS call	OPENSSL_free@PLT
	call	.Lbcm_redirector_OPENSSL_free
	movq	%rbp, 8(%rbx)
	movl	$1, %eax
.L22872:

	movq	40(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22884
	addq	$56, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22876:

	.cfi_restore_state
	xorl	%eax, %eax
	jmp	.L22872
.L22884:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2231:

	.size	pkey_ed25519_keygen, .-pkey_ed25519_keygen
# WAS .section	.rodata.boringssl_self_test_eddsa.str1.1,"aMS",@progbits,1
.text
.LC435:

	.string	"ED25519 sign"
.LC436:

	.string	"ED25519 sign failed.\n"
.LC437:

	.string	"ED25519 verify failed.\n"
# WAS .section	.text.boringssl_self_test_eddsa,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_eddsa, @function
.Lboringssl_self_test_eddsa_local_target:
boringssl_self_test_eddsa:
.LFB2783:

	.cfi_startproc
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movl	$32, %esi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$760, %rsp
	.cfi_def_cfa_offset 800
	movdqa	.LC442(%rip), %xmm4
	movdqa	.LC438(%rip), %xmm3
	movq	%fs:40, %rax
	movq	%rax, 744(%rsp)
	xorl	%eax, %eax
	movdqa	.LC439(%rip), %xmm2
	movdqa	.LC440(%rip), %xmm1
	leaq	480(%rsp), %r13
	movaps	%xmm4, 288(%rsp)
	movdqa	.LC443(%rip), %xmm4
	movq	%r13, %rdx
	movdqa	.LC441(%rip), %xmm0
	movaps	%xmm3, 224(%rsp)
	leaq	352(%rsp), %rdi
	movq	%rsp, %rbx
	leaq	608(%rsp), %rbp
	movaps	%xmm4, 304(%rsp)
	movdqa	.LC444(%rip), %xmm4
	leaq	544(%rsp), %r12
	movaps	%xmm2, 240(%rsp)
	movaps	%xmm4, 320(%rsp)
	movdqa	.LC445(%rip), %xmm4
	movaps	%xmm1, 256(%rsp)
	movaps	%xmm4, 336(%rsp)
	movdqa	.LC446(%rip), %xmm4
	movaps	%xmm0, 272(%rsp)
	movaps	%xmm4, 608(%rsp)
	movdqa	.LC447(%rip), %xmm4
	movaps	%xmm4, 624(%rsp)
	movdqa	.LC448(%rip), %xmm4
	movaps	%xmm0, 400(%rsp)
	pxor	%xmm0, %xmm0
	movaps	%xmm4, 640(%rsp)
	movdqa	.LC449(%rip), %xmm4
	movaps	%xmm3, 352(%rsp)
	movaps	%xmm4, 656(%rsp)
	movdqa	.LC450(%rip), %xmm4
	movaps	%xmm2, 368(%rsp)
	movaps	%xmm4, 672(%rsp)
	movdqa	.LC451(%rip), %xmm4
	movaps	%xmm1, 384(%rsp)
	movaps	%xmm4, 688(%rsp)
	movdqa	.LC452(%rip), %xmm4
	movaps	%xmm0, 416(%rsp)
	movaps	%xmm4, 704(%rsp)
	movdqa	.LC453(%rip), %xmm4
	movaps	%xmm0, 432(%rsp)
	movaps	%xmm4, 720(%rsp)
	movaps	%xmm0, 448(%rsp)
	movaps	%xmm0, 464(%rsp)
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
	movzbl	511(%rsp), %eax
	movq	%rbx, %rdi
	andb	$-8, 480(%rsp)
	andl	$63, %eax
	orl	$64, %eax
	movb	%al, 511(%rsp)
# WAS call	SHA512_Init@PLT
	call	.LSHA512_Init_local_target
	movq	%rbx, %rdi
	movl	$32, %edx
	leaq	512(%rsp), %rsi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movl	$128, %edx
	movq	%rbx, %rdi
	movq	%rbp, %rsi
# WAS call	SHA512_Update@PLT
	call	.LSHA512_Update_local_target
	movq	%rbx, %rsi
	movq	%r12, %rdi
	leaq	416(%rsp), %rbx
# WAS call	SHA512_Final@PLT
	call	.LSHA512_Final_local_target
	movq	%r13, %rdx
	movq	%rbp, %r8
	movq	%r12, %rsi
	leaq	384(%rsp), %rcx
	movl	$128, %r9d
	movq	%rbx, %rdi
# WAS call	ed25519_sign_s2n_bignum
	call	.Led25519_sign_s2n_bignum_local_target
# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	movq	416(%rsp), %rax
	movq	424(%rsp), %rdx
	xorq	288(%rsp), %rax
	xorq	296(%rsp), %rdx
	orq	%rdx, %rax
	je	.L22895
.L22886:

	leaq	288(%rsp), %rdi
	leaq	.LC435(%rip), %rcx
	movl	$64, %edx
	movq	%rbx, %rsi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	jne	.L22888
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$21, %edx
	movl	$1, %esi
	leaq	.LC436(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	xorl	%eax, %eax
	jmp	.L22885
	.p2align 4,,10
	.p2align 3
.L22895:

	movq	432(%rsp), %rax
	movq	440(%rsp), %rdx
	xorq	304(%rsp), %rax
	xorq	312(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L22886
	movq	448(%rsp), %rax
	movq	456(%rsp), %rdx
	xorq	320(%rsp), %rax
	xorq	328(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L22886
	movq	464(%rsp), %rax
	movq	472(%rsp), %rdx
	xorq	336(%rsp), %rax
	xorq	344(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L22886
	.p2align 4,,10
	.p2align 3
.L22888:

.L22890:

	movq	%rbx, %rdx
	leaq	256(%rsp), %rcx
	movl	$128, %esi
	movq	%rbp, %rdi
# WAS call	ED25519_verify_no_self_test
	call	.LED25519_verify_no_self_test_local_target
	movl	%eax, %edx
	movl	$1, %eax
	testl	%edx, %edx
	je	.L22896
.L22885:

	movq	744(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22897
	addq	$760, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22896:

	.cfi_restore_state
# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$23, %edx
	movl	$1, %esi
	leaq	.LC437(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	xorl	%eax, %eax
	jmp	.L22885
.L22897:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
.LFE2783:

	.size	boringssl_self_test_eddsa, .-boringssl_self_test_eddsa
# WAS .section	.text.unlikely.run_self_test_eddsa,"ax",@progbits
.text
.LCOLDB454:

# WAS .section	.text.run_self_test_eddsa,"ax",@progbits
.text
.LHOTB454:

	.p2align 4
	.type	run_self_test_eddsa, @function
.Lrun_self_test_eddsa_local_target:
run_self_test_eddsa:
.LFB2792:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_eddsa
	call	.Lboringssl_self_test_eddsa_local_target
	testl	%eax, %eax
	je	.L22900
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.run_self_test_eddsa
.text
	.cfi_startproc
	.type	run_self_test_eddsa.cold, @function
.Lrun_self_test_eddsa.cold_local_target:
run_self_test_eddsa.cold:
.LFSB2792:

.L22900:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2792:

# WAS .section	.text.run_self_test_eddsa
.text
	.size	run_self_test_eddsa, .-run_self_test_eddsa
# WAS .section	.text.unlikely.run_self_test_eddsa
.text
	.size	run_self_test_eddsa.cold, .-run_self_test_eddsa.cold
.LCOLDE454:

# WAS .section	.text.run_self_test_eddsa
.text
.LHOTE454:

# WAS .section	.text.SHA384_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA384_get_state
	.type	SHA384_get_state, @function
.LSHA384_get_state_local_target:
SHA384_get_state:
.LFB2905:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	xorl	%edx, %edx
	testw	$1023, 64(%rdi)
	jne	.L22902
	cmpq	$0, 72(%rdi)
	jne	.L22902
	movq	(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, (%rcx)
	movq	8(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 8(%rcx)
	movq	16(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 16(%rcx)
	movq	24(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 24(%rcx)
	movq	32(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 32(%rcx)
	movq	40(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 40(%rcx)
	movq	48(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 48(%rcx)
	movq	56(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 56(%rcx)
	movq	64(%rdi), %rax
	movl	$1, %edx
	movq	%rax, (%rsi)
.L22902:

	movl	%edx, %eax
	ret
	.cfi_endproc
.LFE2905:

	.size	SHA384_get_state, .-SHA384_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA384_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA384_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA384_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA384_get_state:
.LFB2346:

	.cfi_startproc
	endbr64
# WAS jmp	SHA384_get_state@PLT
	jmp	.LSHA384_get_state_local_target
	.cfi_endproc
.LFE2346:

	.size	AWS_LC_TRAMPOLINE_SHA384_get_state, .-AWS_LC_TRAMPOLINE_SHA384_get_state
# WAS .section	.text.SHA512_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_get_state
	.type	SHA512_get_state, @function
.LSHA512_get_state_local_target:
SHA512_get_state:
.LFB3151:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	xorl	%edx, %edx
	testw	$1023, 64(%rdi)
	jne	.L22907
	cmpq	$0, 72(%rdi)
	jne	.L22907
	movq	(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, (%rcx)
	movq	8(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 8(%rcx)
	movq	16(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 16(%rcx)
	movq	24(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 24(%rcx)
	movq	32(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 32(%rcx)
	movq	40(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 40(%rcx)
	movq	48(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 48(%rcx)
	movq	56(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 56(%rcx)
	movq	64(%rdi), %rax
	movl	$1, %edx
	movq	%rax, (%rsi)
.L22907:

	movl	%edx, %eax
	ret
	.cfi_endproc
.LFE3151:

	.size	SHA512_get_state, .-SHA512_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_get_state:
.LFB2351:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_get_state@PLT
	jmp	.LSHA512_get_state_local_target
	.cfi_endproc
.LFE2351:

	.size	AWS_LC_TRAMPOLINE_SHA512_get_state, .-AWS_LC_TRAMPOLINE_SHA512_get_state
# WAS .section	.text.SHA512_224_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_224_get_state
	.type	SHA512_224_get_state, @function
.LSHA512_224_get_state_local_target:
SHA512_224_get_state:
.LFB3153:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	xorl	%edx, %edx
	testw	$1023, 64(%rdi)
	jne	.L22912
	cmpq	$0, 72(%rdi)
	jne	.L22912
	movq	(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, (%rcx)
	movq	8(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 8(%rcx)
	movq	16(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 16(%rcx)
	movq	24(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 24(%rcx)
	movq	32(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 32(%rcx)
	movq	40(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 40(%rcx)
	movq	48(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 48(%rcx)
	movq	56(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 56(%rcx)
	movq	64(%rdi), %rax
	movl	$1, %edx
	movq	%rax, (%rsi)
.L22912:

	movl	%edx, %eax
	ret
	.cfi_endproc
.LFE3153:

	.size	SHA512_224_get_state, .-SHA512_224_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_224_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_224_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_224_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_224_get_state:
.LFB2356:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_224_get_state@PLT
	jmp	.LSHA512_224_get_state_local_target
	.cfi_endproc
.LFE2356:

	.size	AWS_LC_TRAMPOLINE_SHA512_224_get_state, .-AWS_LC_TRAMPOLINE_SHA512_224_get_state
# WAS .section	.text.SHA512_256_get_state,"ax",@progbits
.text
	.p2align 4
	.globl	SHA512_256_get_state
	.type	SHA512_256_get_state, @function
.LSHA512_256_get_state_local_target:
SHA512_256_get_state:
.LFB3155:

	.cfi_startproc
	endbr64
	movq	%rsi, %rcx
	movq	%rdx, %rsi
	xorl	%edx, %edx
	testw	$1023, 64(%rdi)
	jne	.L22917
	cmpq	$0, 72(%rdi)
	jne	.L22917
	movq	(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, (%rcx)
	movq	8(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 8(%rcx)
	movq	16(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 16(%rcx)
	movq	24(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 24(%rcx)
	movq	32(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 32(%rcx)
	movq	40(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 40(%rcx)
	movq	48(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 48(%rcx)
	movq	56(%rdi), %rdx
	bswap	%rdx
	movq	%rdx, 56(%rcx)
	movq	64(%rdi), %rax
	movl	$1, %edx
	movq	%rax, (%rsi)
.L22917:

	movl	%edx, %eax
	ret
	.cfi_endproc
.LFE3155:

	.size	SHA512_256_get_state, .-SHA512_256_get_state
# WAS .section	.text.AWS_LC_TRAMPOLINE_SHA512_256_get_state,"ax",@progbits
.text
	.p2align 4
	.type	AWS_LC_TRAMPOLINE_SHA512_256_get_state, @function
.LAWS_LC_TRAMPOLINE_SHA512_256_get_state_local_target:
AWS_LC_TRAMPOLINE_SHA512_256_get_state:
.LFB2361:

	.cfi_startproc
	endbr64
# WAS jmp	SHA512_256_get_state@PLT
	jmp	.LSHA512_256_get_state_local_target
	.cfi_endproc
.LFE2361:

	.size	AWS_LC_TRAMPOLINE_SHA512_256_get_state, .-AWS_LC_TRAMPOLINE_SHA512_256_get_state
# WAS .section	.text.SSHKDF,"ax",@progbits
.text
	.p2align 4
	.globl	SSHKDF
	.type	SSHKDF, @function
.LSSHKDF_local_target:
SSHKDF:
.LFB2910:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$152, %rsp
	.cfi_def_cfa_offset 208
	movl	216(%rsp), %eax
	movq	224(%rsp), %r14
	movb	%al, 44(%rsp)
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	movl	$0, 60(%rsp)
	testq	%rdi, %rdi
	je	.L22924
	movq	%rsi, %rbp
	testq	%rsi, %rsi
	je	.L22924
	testq	%r12, %r12
	je	.L22924
	testq	%rcx, %rcx
	movq	%rcx, (%rsp)
	je	.L22924
	testq	%r8, %r8
	movq	%r8, 8(%rsp)
	je	.L22924
	movq	%r9, %r13
	testq	%r9, %r9
	je	.L22924
	cmpq	$0, 208(%rsp)
	je	.L22924
	subl	$65, %eax
	cmpb	$5, %al
	jbe	.L22966
	.p2align 4,,10
	.p2align 3
.L22924:

	xorl	%eax, %eax
.L22922:

	movq	136(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L22967
	addq	$152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22966:

	.cfi_restore_state
	movq	%rdi, %rbx
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
# WAS call	EVP_MD_CTX_new@PLT
	call	.LEVP_MD_CTX_new_local_target
	movq	8(%rsp), %r8
	movq	(%rsp), %rcx
	testq	%rax, %rax
	movq	%rax, %r15
	je	.L22968
	xorl	%edx, %edx
	movq	%rbx, %rsi
	movq	%rax, %rdi
	movq	%r8, 8(%rsp)
	movq	%rcx, (%rsp)
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %r8
	testl	%eax, %eax
	jne	.L22928
.L22965:

	movq	%r15, %rdi
.L22963:

# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	leaq	64(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L22924
	.p2align 4,,10
	.p2align 3
.L22928:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
	movq	%rcx, (%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L22965
	movq	%r8, %rdx
	movq	%rcx, %rsi
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
	movq	%rcx, (%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L22965
	leaq	44(%rsp), %rsi
	movl	$1, %edx
	movq	%r15, %rdi
	movq	%rcx, (%rsp)
	movq	%r8, 8(%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L22965
	movq	208(%rsp), %rdx
	movq	%r13, %rsi
	movq	%r15, %rdi
	movq	%r8, 8(%rsp)
	movq	%rcx, (%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	movq	(%rsp), %rcx
	movq	8(%rsp), %r8
	testl	%eax, %eax
	je	.L22965
	leaq	64(%rsp), %rax
	leaq	60(%rsp), %rdx
	movq	%r15, %rdi
	movq	%r8, 16(%rsp)
	movq	%rax, %rsi
	movq	%rcx, 8(%rsp)
	movq	%rdx, 32(%rsp)
	movq	%rax, (%rsp)
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	movq	8(%rsp), %rcx
	movq	16(%rsp), %r8
	testl	%eax, %eax
	je	.L22938
	movl	60(%rsp), %r13d
	cmpq	%r13, 232(%rsp)
	jb	.L22969
	movq	(%rsp), %rsi
	movq	%r13, %rdx
	movq	%r14, %rdi
	movq	%r8, 16(%rsp)
	movq	%rcx, 8(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	8(%rsp), %rcx
	movq	16(%rsp), %r8
	cmpq	232(%rsp), %r13
	jb	.L22940
	jmp	.L22961
	.p2align 4,,10
	.p2align 3
.L22937:

	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%r15, %rdi
	movq	%r8, 16(%rsp)
	movq	%rcx, 8(%rsp)
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L22938
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L22938
	movq	%r13, %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
# WAS call	EVP_DigestUpdate@PLT
	call	.LEVP_DigestUpdate_local_target
	testl	%eax, %eax
	je	.L22938
	movq	32(%rsp), %rdx
	movq	(%rsp), %rsi
	movq	%r15, %rdi
# WAS call	EVP_DigestFinal_ex@PLT
	call	.LEVP_DigestFinal_ex_local_target
	testl	%eax, %eax
	je	.L22938
	movl	60(%rsp), %edx
	movq	8(%rsp), %rcx
	leaq	(%r14,%r13), %rdi
	movq	16(%rsp), %r8
	leaq	(%rdx,%r13), %r11
	cmpq	%r11, 232(%rsp)
	jb	.L22970
	movq	(%rsp), %rsi
	movq	%r8, 24(%rsp)
	movq	%rcx, 16(%rsp)
	movq	%r11, 8(%rsp)
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	8(%rsp), %r11
	movq	16(%rsp), %rcx
	cmpq	232(%rsp), %r11
	movq	24(%rsp), %r8
	jnb	.L22961
	movq	%r11, %r13
.L22940:

	xorl	%edx, %edx
	movq	%rbx, %rsi
	movq	%r15, %rdi
	movq	%r8, 16(%rsp)
	movq	%rcx, 8(%rsp)
# WAS call	EVP_DigestInit_ex@PLT
	call	.LEVP_DigestInit_ex_local_target
	movq	8(%rsp), %rcx
	movq	16(%rsp), %r8
	testl	%eax, %eax
	jne	.L22937
.L22938:

	movq	%r15, %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movq	(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L22924
	.p2align 4,,10
	.p2align 3
.L22968:

	xorl	%edi, %edi
	jmp	.L22963
.L22969:

	movq	(%rsp), %rbp
	movq	232(%rsp), %rdx
	movq	%r14, %rdi
	movq	%rbp, %rsi
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%r15, %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movl	$64, %esi
	movq	%rbp, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
.L22935:

	movl	(%rbx), %eax
	cmpl	$64, %eax
	je	.L22942
	subl	$672, %eax
	cmpl	$3, %eax
	ja	.L22943
.L22942:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
.L22943:

	movl	$1, %eax
	jmp	.L22922
.L22967:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L22961:

	movq	%r15, %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movq	(%rsp), %rdi
	movl	$64, %esi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L22935
.L22970:

	movq	(%rsp), %r14
	movq	232(%rsp), %rdx
	movq	%r14, %rsi
	subq	%r13, %rdx
# WAS call	memcpy@PLT
	call	.Lbcm_redirector_memcpy
	movq	%r15, %rdi
# WAS call	EVP_MD_CTX_free@PLT
	call	.LEVP_MD_CTX_free_local_target
	movl	$64, %esi
	movq	%r14, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	jmp	.L22935
	.cfi_endproc
.LFE2910:

	.size	SSHKDF, .-SSHKDF
# WAS .section	.text.CRYPTO_tls1_prf,"ax",@progbits
.text
	.p2align 4
	.globl	CRYPTO_tls1_prf
	.type	CRYPTO_tls1_prf, @function
.LCRYPTO_tls1_prf_local_target:
CRYPTO_tls1_prf:
.LFB2912:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rcx, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%r9, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%r8, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
# WAS call	FIPS_service_indicator_lock_state
	call	.LFIPS_service_indicator_lock_state_local_target
	testq	%rbx, %rbx
	je	.L22994
	movq	%rbx, %rdx
	xorl	%esi, %esi
	movq	%r12, %rdi
# WAS call	memset@PLT
	call	.Lbcm_redirector_memset
# WAS call	EVP_md5_sha1@PLT
	call	.LEVP_md5_sha1_local_target
	movq	%rbp, %rdx
	cmpq	%rax, %rbp
	je	.L22995
.L22974:

	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	%rbx, %rsi
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	120(%rsp)
	.cfi_def_cfa_offset 96
	movq	%r15, %rcx
	movq	%r12, %rdi
	pushq	120(%rsp)
	.cfi_def_cfa_offset 104
	pushq	120(%rsp)
	.cfi_def_cfa_offset 112
	pushq	120(%rsp)
	.cfi_def_cfa_offset 120
	pushq	120(%rsp)
	.cfi_def_cfa_offset 128
# WAS call	tls1_P_hash
	call	.Ltls1_P_hash_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 80
	movl	%eax, %ebx
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	testl	%ebx, %ebx
	je	.L22977
.L22973:

	movl	0(%rbp), %eax
	cmpl	$114, %eax
	je	.L22993
	subl	$672, %eax
	cmpl	$2, %eax
	ja	.L22971
	cmpq	$21, 80(%rsp)
	ja	.L22996
.L22971:

	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebx, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22994:

	.cfi_restore_state
# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	movl	$1, %ebx
	jmp	.L22973
	.p2align 4,,10
	.p2align 3
.L22997:

# WAS call	FIPS_service_indicator_unlock_state
	call	.LFIPS_service_indicator_unlock_state_local_target
	.p2align 4,,10
	.p2align 3
.L22977:

	xorl	%ebx, %ebx
	jmp	.L22971
	.p2align 4,,10
	.p2align 3
.L22995:

	movq	%r13, %r10
	shrq	%r10
	movq	%r10, 8(%rsp)
	subq	%r10, %r13
# WAS call	EVP_md5@PLT
	call	.LEVP_md5_local_target
	subq	$8, %rsp
	.cfi_def_cfa_offset 88
	movq	%r14, %r9
	movq	%r13, %r8
	pushq	120(%rsp)
	.cfi_def_cfa_offset 96
	movq	%rax, %rdx
	movq	%r15, %rcx
	movq	%rbx, %rsi
	pushq	120(%rsp)
	.cfi_def_cfa_offset 104
	movq	%r12, %rdi
	pushq	120(%rsp)
	.cfi_def_cfa_offset 112
	pushq	120(%rsp)
	.cfi_def_cfa_offset 120
	pushq	120(%rsp)
	.cfi_def_cfa_offset 128
# WAS call	tls1_P_hash
	call	.Ltls1_P_hash_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rsp), %r10
	testl	%eax, %eax
	je	.L22997
	addq	%r10, %r15
# WAS call	EVP_sha1@PLT
	call	.LEVP_sha1_local_target
	movq	%rax, %rdx
	jmp	.L22974
	.p2align 4,,10
	.p2align 3
.L22996:

	movabsq	$7234298801751881829, %rax
	xorq	(%r14), %rax
	movabsq	$2338042707385085216, %rdx
	xorq	8(%r14), %rdx
	orq	%rdx, %rax
	jne	.L22971
	movabsq	$8387235652276789362, %rax
	cmpq	%rax, 14(%r14)
	jne	.L22971
	.p2align 4,,10
	.p2align 3
.L22993:

# WAS call	FIPS_service_indicator_update_state
	call	.LFIPS_service_indicator_update_state_local_target
	jmp	.L22971
	.cfi_endproc
.LFE2912:

	.size	CRYPTO_tls1_prf, .-CRYPTO_tls1_prf
# WAS .section	.rodata.boringssl_self_test_fast.str1.1,"aMS",@progbits,1
.text
.LC455:

	.string	"AES_set_encrypt_key failed.\n"
.LC456:

	.string	"AES-CBC-encrypt KAT"
.LC457:

	.string	"AES_set_decrypt_key failed.\n"
.LC458:

	.string	"AES-CBC-decrypt KAT"
# WAS .section	.rodata.boringssl_self_test_fast.str1.8,"aMS",@progbits,1
.text
	.align 8
.LC459:

	.string	"EVP_AEAD_CTX_init for AES-128-GCM failed.\n"
	.align 8
.LC460:

	.string	"EVP_AEAD_CTX_seal for AES-128-GCM failed.\n"
# WAS .section	.rodata.boringssl_self_test_fast.str1.1
.text
.LC461:

	.string	"AES-GCM-encrypt KAT"
# WAS .section	.rodata.boringssl_self_test_fast.str1.8
.text
	.align 8
.LC462:

	.string	"AES-GCM-decrypt KAT failed because EVP_AEAD_CTX_open failed.\n"
# WAS .section	.rodata.boringssl_self_test_fast.str1.1
.text
.LC463:

	.string	"AES-GCM-decrypt KAT"
.LC464:

	.string	"SHA-1 KAT"
.LC465:

	.string	"SHA-512 KAT"
.LC466:

	.string	"SHA3-256 KAT"
.LC468:

	.string	"HKDF-SHA-256 KAT"
.LC469:

	.string	"CTR-DRBG failed.\n"
.LC470:

	.string	"DRBG Generate KAT"
.LC471:

	.string	"DRBG-reseed KAT"
.LC472:

	.string	"DRBG Clear KAT"
.LC473:

	.string	"TLS KDF failed.\n"
.LC474:

	.string	"TLS-KDF KAT"
.LC475:

	.string	"PBKDF2 failed.\n"
.LC476:

	.string	"PBKDF2 KAT"
.LC477:

	.string	"SSKDF_digest failed.\n"
.LC478:

	.string	"SSKDF_digest KAT"
# WAS .section	.rodata.boringssl_self_test_fast.str1.8
.text
	.align 8
.LC480:

	.string	"KBKDF counter HMAC-SHA-256 failed.\n"
# WAS .section	.rodata.boringssl_self_test_fast.str1.1
.text
.LC481:

	.string	"KBKDF-CTR-HMAC-SHA-256 KAT"
# WAS .section	.rodata
.text
	.align 8
.LC467:

	.string	"<\262_%\372\254\325z\220COd\3206/*--\n\220\317\032ZL]\260-V\354\304\305\2774"
	.ascii	"r\b\325\270\207\030Xe"
# WAS .section	.rodata.boringssl_self_test_fast.str1.8
.text
	.align 8
.LC479:

	.string	"\0012+\226\263\n\315\031yyDNF\216\034\\hY\277\033\034\371Q\267\347%0>#~F\270d\241E\372\262^Q{\b\370h=\003\025\273)\021\330\n\016\212\272\027\363\264\023\372\254"
# WAS .section	.text.boringssl_self_test_fast,"ax",@progbits
.text
	.p2align 4
	.type	boringssl_self_test_fast, @function
.Lboringssl_self_test_fast_local_target:
boringssl_self_test_fast:
.LFB2799:

	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
# WAS leaq	kAESKey.33(%rip), %r13
	leaq	.LkAESKey.33_local_target(%rip), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$2248, %rsp
	.cfi_def_cfa_offset 2304
	movq	%fs:40, %rax
	movq	%rax, 2232(%rsp)
	xorl	%eax, %eax
	leaq	880(%rsp), %rbx
	leaq	48(%rsp), %r12
	movq	%rbx, %rdi
# WAS call	EVP_AEAD_CTX_zero@PLT
	call	.LEVP_AEAD_CTX_zero_local_target
	pxor	%xmm0, %xmm0
	movq	%r12, %rdx
	movq	%r13, %rdi
	movl	$128, %esi
	movaps	%xmm0, 1472(%rsp)
# WAS call	AES_set_encrypt_key@PLT
	call	.LAES_set_encrypt_key_local_target
	testl	%eax, %eax
	jne	.L23084
	leaq	1472(%rsp), %r14
	movl	$32, %edx
	movl	$1, %r9d
	movq	%r12, %rcx
	leaq	1712(%rsp), %rbp
	movq	%r14, %r8
# WAS leaq	kAESCBCEncPlaintext.32(%rip), %rdi
	leaq	.LkAESCBCEncPlaintext.32_local_target(%rip), %rdi
	movq	%rbp, %rsi
# WAS call	AES_cbc_encrypt@PLT
	call	.LAES_cbc_encrypt_local_target
	movabsq	$-11800009225714090, %rax
	xorq	1712(%rsp), %rax
	movabsq	$-4789923285099769246, %rdx
	xorq	1720(%rsp), %rdx
	orq	%rdx, %rax
	je	.L23085
.L23001:

	leaq	.LC456(%rip), %rcx
	movl	$32, %edx
	movq	%rbp, %rsi
# WAS leaq	kAESCBCEncCiphertext.31(%rip), %rdi
	leaq	.LkAESCBCEncCiphertext.31_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	jne	.L23006
.L23000:

	xorl	%ebp, %ebp
.L23007:

	movq	%rbx, %rdi
# WAS call	EVP_AEAD_CTX_cleanup@PLT
	call	.LEVP_AEAD_CTX_cleanup_local_target
	movq	2232(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L23086
	addq	$2248, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	movl	%ebp, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L23085:

	.cfi_restore_state
	movabsq	$4202090068509613872, %rax
	movabsq	$-2877533802722337083, %rdx
	xorq	1728(%rsp), %rax
	xorq	1736(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L23001
.L23006:

	pxor	%xmm0, %xmm0
	movq	%r12, %rdx
	movl	$128, %esi
	movq	%r13, %rdi
	movaps	%xmm0, 1472(%rsp)
# WAS call	AES_set_decrypt_key@PLT
	call	.LAES_set_decrypt_key_local_target
	testl	%eax, %eax
	jne	.L23087
	xorl	%r9d, %r9d
	movl	$32, %edx
	movq	%r14, %r8
	movq	%r12, %rcx
	movq	%rbp, %rsi
# WAS leaq	kAESCBCDecCiphertext.30(%rip), %rdi
	leaq	.LkAESCBCDecCiphertext.30_local_target(%rip), %rdi
# WAS call	AES_cbc_encrypt@PLT
	call	.LAES_cbc_encrypt_local_target
	movabsq	$-3644404497450490031, %rax
	xorq	1712(%rsp), %rax
	movabsq	$-4420750480223698104, %rdx
	xorq	1720(%rsp), %rdx
	orq	%rdx, %rax
	je	.L23088
.L23008:

	leaq	.LC458(%rip), %rcx
	movl	$32, %edx
	movq	%rbp, %rsi
# WAS leaq	kAESCBCDecPlaintext.29(%rip), %rdi
	leaq	.LkAESCBCDecPlaintext.29_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	je	.L23000
.L23014:

	pxor	%xmm0, %xmm0
	leaq	1520(%rsp), %r12
	movq	$0, 1536(%rsp)
	movaps	%xmm0, 1520(%rsp)
# WAS call	EVP_aead_aes_128_gcm@PLT
	call	.LEVP_aead_aes_128_gcm_local_target
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movl	$16, %ecx
	movq	%rax, %rsi
	movq	%r13, %rdx
	movq	%rbx, %rdi
# WAS call	EVP_AEAD_CTX_init@PLT
	call	.LEVP_AEAD_CTX_init_local_target
	testl	%eax, %eax
	je	.L23089
# WAS call	EVP_aead_aes_128_gcm@PLT
	call	.LEVP_aead_aes_128_gcm_local_target
	leaq	40(%rsp), %r13
	movq	%rax, %rdi
# WAS call	EVP_AEAD_nonce_length@PLT
	call	.LEVP_AEAD_nonce_length_local_target
	pushq	$0
	.cfi_def_cfa_offset 2312
	movq	%r12, %r8
	movl	$256, %ecx
	movq	%rax, %r9
# WAS leaq	kAESGCMEncPlaintext.28(%rip), %rax
	leaq	.LkAESGCMEncPlaintext.28_local_target(%rip), %rax
	pushq	$0
	.cfi_def_cfa_offset 2320
	movq	%r13, %rdx
	pushq	$32
	.cfi_def_cfa_offset 2328
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	pushq	%rax
	.cfi_def_cfa_offset 2336
# WAS call	EVP_AEAD_CTX_seal@PLT
	call	.LEVP_AEAD_CTX_seal_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23016
	leaq	.LC461(%rip), %rcx
	movl	$48, %edx
	movq	%rbp, %rsi
# WAS leaq	kAESGCMCiphertext.27(%rip), %rdi
	leaq	.LkAESGCMCiphertext.27_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23016
# WAS call	EVP_aead_aes_128_gcm@PLT
	call	.LEVP_aead_aes_128_gcm_local_target
	movq	%rax, %rdi
# WAS call	EVP_AEAD_nonce_length@PLT
	call	.LEVP_AEAD_nonce_length_local_target
	pushq	$0
	.cfi_def_cfa_offset 2312
	movq	%r12, %r8
	movl	$256, %ecx
	movq	%rax, %r9
# WAS leaq	kAESGCMDecCiphertext.26(%rip), %rax
	leaq	.LkAESGCMDecCiphertext.26_local_target(%rip), %rax
	pushq	$0
	.cfi_def_cfa_offset 2320
	movq	%r13, %rdx
	pushq	$48
	.cfi_def_cfa_offset 2328
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	pushq	%rax
	.cfi_def_cfa_offset 2336
# WAS call	EVP_AEAD_CTX_open@PLT
	call	.LEVP_AEAD_CTX_open_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23018
	leaq	.LC463(%rip), %rcx
	movl	$32, %edx
	movq	%rbp, %rsi
# WAS leaq	kAESGCMDecPlaintext.25(%rip), %rdi
	leaq	.LkAESGCMDecPlaintext.25_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23018
	movq	%rbp, %rdx
	movl	$16, %esi
# WAS leaq	kSHA1Input.24(%rip), %rdi
	leaq	.LkSHA1Input.24_local_target(%rip), %rdi
# WAS call	SHA1@PLT
	call	.LSHA1_local_target
	leaq	.LC464(%rip), %rcx
	movq	%rbp, %rsi
	movl	$20, %edx
# WAS leaq	kSHA1Digest.23(%rip), %rdi
	leaq	.LkSHA1Digest.23_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23000
	leaq	1968(%rsp), %r12
	movl	$16, %esi
# WAS leaq	kInput.4(%rip), %rdi
	leaq	.LkInput.4_local_target(%rip), %rdi
	movq	%r12, %rdx
# WAS call	SHA512@PLT
	call	.LSHA512_local_target
	leaq	.LC465(%rip), %rcx
	movq	%r12, %rsi
	movl	$64, %edx
# WAS leaq	kPlaintextSHA512.3(%rip), %rdi
	leaq	.LkPlaintextSHA512.3_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23000
	movq	%r12, %rdx
	movl	$16, %esi
# WAS leaq	kInput.2(%rip), %rdi
	leaq	.LkInput.2_local_target(%rip), %rdi
# WAS call	SHA3_256@PLT
	call	.LSHA3_256_local_target
	leaq	.LC466(%rip), %rcx
	movq	%r12, %rsi
	movl	$32, %edx
# WAS leaq	kPlaintextSHA3_256.1(%rip), %rdi
	leaq	.LkPlaintextSHA3_256.1_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23000
	leaq	1648(%rsp), %rdi
	leaq	.LC467(%rip), %rsi
	movl	$42, %ecx
	movdqa	.LC482(%rip), %xmm0
	rep movsb
	movabsq	$795741901218843403, %rax
	movw	$-1544, 1560(%rsp)
	movaps	%xmm0, 1616(%rsp)
	movq	%rax, 1630(%rsp)
	movabsq	$506097522914230528, %rax
	movq	%rax, 1584(%rsp)
	movabsq	$867798387104613893, %rax
	movq	%rax, 1589(%rsp)
	movabsq	$-579005069656919568, %rax
	movq	%rax, 1552(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	leaq	1584(%rsp), %r9
	movl	$42, %esi
	movq	%r12, %rdi
	movq	%rax, %rdx
	leaq	1616(%rsp), %rax
	movq	%r9, 8(%rsp)
	movl	$22, %r8d
	movq	%rax, 24(%rsp)
	movq	%rax, %rcx
	pushq	%r13
	.cfi_def_cfa_offset 2312
	pushq	$10
	.cfi_def_cfa_offset 2320
	leaq	1568(%rsp), %r14
	pushq	%r14
	.cfi_def_cfa_offset 2328
	pushq	$13
	.cfi_def_cfa_offset 2336
# WAS call	HKDF@PLT
	call	.LHKDF_local_target
	addq	$32, %rsp
	.cfi_def_cfa_offset 2304
	movl	$42, %edx
	movq	%r12, %rsi
	leaq	1648(%rsp), %rax
	leaq	.LC468(%rip), %rcx
	movq	%rax, %rdi
	movq	%rax, 16(%rsp)
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23000
	leaq	304(%rsp), %r13
# WAS leaq	kDRBGNonce.20(%rip), %r8
	leaq	.LkDRBGNonce.20_local_target(%rip), %r8
	movl	$18, %ecx
# WAS leaq	kDRBGPersonalization.21(%rip), %rdx
	leaq	.LkDRBGPersonalization.21_local_target(%rip), %rdx
# WAS leaq	kDRBGEntropy.22(%rip), %rsi
	leaq	.LkDRBGEntropy.22_local_target(%rip), %rsi
	movq	%r13, %rdi
# WAS call	CTR_DRBG_init_df@PLT
	call	.LCTR_DRBG_init_df_local_target
	testl	%eax, %eax
	je	.L23020
# WAS leaq	kDRBGAD.19(%rip), %r15
	leaq	.LkDRBGAD.19_local_target(%rip), %r15
	movl	$16, %r8d
	movq	%rbp, %rsi
	movq	%r13, %rdi
	movq	%r15, %rcx
	movl	$64, %edx
# WAS call	CTR_DRBG_generate_df@PLT
	call	.LCTR_DRBG_generate_df_local_target
	testl	%eax, %eax
	je	.L23020
	leaq	.LC470(%rip), %rcx
	movl	$64, %edx
	movq	%rbp, %rsi
# WAS leaq	kDRBGOutput.18(%rip), %rdi
	leaq	.LkDRBGOutput.18_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23020
	movl	$16, %ecx
	movq	%r15, %rdx
# WAS leaq	kDRBGEntropy2.17(%rip), %rsi
	leaq	.LkDRBGEntropy2.17_local_target(%rip), %rsi
	movq	%r13, %rdi
# WAS call	CTR_DRBG_reseed_df@PLT
	call	.LCTR_DRBG_reseed_df_local_target
	testl	%eax, %eax
	je	.L23020
	movl	$16, %r8d
	movq	%r15, %rcx
	movq	%rbp, %rsi
	movq	%r13, %rdi
	movl	$64, %edx
# WAS call	CTR_DRBG_generate_df@PLT
	call	.LCTR_DRBG_generate_df_local_target
	testl	%eax, %eax
	je	.L23020
	leaq	.LC471(%rip), %rcx
	movl	$64, %edx
	movq	%rbp, %rsi
# WAS leaq	kDRBGReseedOutput.16(%rip), %rdi
	leaq	.LkDRBGReseedOutput.16_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23020
	movq	%r13, %rdi
# WAS call	CTR_DRBG_clear@PLT
	call	.LCTR_DRBG_clear_local_target
	xorl	%eax, %eax
	movl	$36, %ecx
	movq	%r13, %rsi
	leaq	592(%rsp), %r8
	movl	$288, %edx
	movq	%r8, %rdi
	rep stosq
	leaq	.LC472(%rip), %rcx
	movq	%r8, %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23000
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	movl	$32, %r8d
	movl	$32, %edx
# WAS leaq	kTLSLabel.14(%rip), %r9
	leaq	.LkTLSLabel.14_local_target(%rip), %r9
	movq	%rax, %rdi
# WAS leaq	kTLSSeed2.12(%rip), %rax
	leaq	.LkTLSSeed2.12_local_target(%rip), %rax
	pushq	%r11
	.cfi_def_cfa_offset 2312
# WAS leaq	kTLSSecret.15(%rip), %rcx
	leaq	.LkTLSSecret.15_local_target(%rip), %rcx
	pushq	$16
	.cfi_def_cfa_offset 2320
	pushq	%rax
	.cfi_def_cfa_offset 2328
# WAS leaq	kTLSSeed1.13(%rip), %rax
	leaq	.LkTLSSeed1.13_local_target(%rip), %rax
	pushq	$16
	.cfi_def_cfa_offset 2336
	pushq	%rax
	.cfi_def_cfa_offset 2344
	pushq	$15
	.cfi_def_cfa_offset 2352
	movq	56(%rsp), %rsi
# WAS call	CRYPTO_tls1_prf@PLT
	call	.LCRYPTO_tls1_prf_local_target
	addq	$48, %rsp
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23022
	movq	8(%rsp), %rsi
	leaq	.LC474(%rip), %rcx
	movl	$32, %edx
# WAS leaq	kTLSOutput.11(%rip), %rdi
	leaq	.LkTLSOutput.11_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23022
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	pushq	%r14
	.cfi_def_cfa_offset 2312
	movl	$2, %r8d
	movl	$36, %ecx
	pushq	$25
	.cfi_def_cfa_offset 2320
	movq	%rax, %r9
# WAS leaq	kPBKDF2Salt.9(%rip), %rdx
	leaq	.LkPBKDF2Salt.9_local_target(%rip), %rdx
	movl	$24, %esi
# WAS leaq	kPBKDF2Password.10(%rip), %rdi
	leaq	.LkPBKDF2Password.10_local_target(%rip), %rdi
# WAS call	PKCS5_PBKDF2_HMAC@PLT
	call	.LPKCS5_PBKDF2_HMAC_local_target
	popq	%r9
	.cfi_def_cfa_offset 2312
	popq	%r10
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23024
	leaq	.LC476(%rip), %rcx
	movl	$25, %edx
	movq	%r14, %rsi
# WAS leaq	kPBKDF2DerivedKey.8(%rip), %rdi
	leaq	.LkPBKDF2DerivedKey.8_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23024
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	movl	$51, %r8d
	movq	%r12, %rdi
# WAS leaq	kSSKDFDigestInfo.6(%rip), %r9
	leaq	.LkSSKDFDigestInfo.6_local_target(%rip), %r9
	pushq	%rsi
	.cfi_def_cfa_offset 2312
	movq	%rax, %rdx
# WAS leaq	kSSKDFDigestSharedSecret.7(%rip), %rcx
	leaq	.LkSSKDFDigestSharedSecret.7_local_target(%rip), %rcx
	movl	$256, %esi
	pushq	$32
	.cfi_def_cfa_offset 2320
# WAS call	SSKDF_digest@PLT
	call	.LSSKDF_digest_local_target
	popq	%rdi
	.cfi_def_cfa_offset 2312
	popq	%r8
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23026
	leaq	.LC478(%rip), %rcx
	movl	$256, %edx
	movq	%r12, %rsi
# WAS leaq	kSSKDFDigestDerivedKey.5(%rip), %rdi
	leaq	.LkSSKDFDigestDerivedKey.5_local_target(%rip), %rdi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23026
	movq	16(%rsp), %rdi
	movdqa	.LC483(%rip), %xmm0
	leaq	.LC479(%rip), %rsi
	movl	$15, %ecx
	rep movsl
	leaq	1504(%rsp), %rbp
	movaps	%xmm0, 1616(%rsp)
	movdqa	.LC484(%rip), %xmm0
	movaps	%xmm0, 1632(%rsp)
	movdqa	.LC485(%rip), %xmm0
	movaps	%xmm0, 1488(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	movl	$32, %r8d
	movl	$16, %esi
	movq	%rbp, %rdi
	movq	%rax, %rdx
	pushq	%rax
	.cfi_def_cfa_offset 2312
	pushq	$60
	.cfi_def_cfa_offset 2320
	movq	40(%rsp), %rcx
	leaq	1664(%rsp), %r9
# WAS call	KBKDF_ctr_hmac@PLT
	call	.LKBKDF_ctr_hmac_local_target
	popq	%rdx
	.cfi_def_cfa_offset 2312
	popq	%rcx
	.cfi_def_cfa_offset 2304
	testl	%eax, %eax
	je	.L23028
	leaq	1488(%rsp), %rdi
	leaq	.LC481(%rip), %rcx
	movl	$16, %edx
	movq	%rbp, %rsi
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23028
	movl	$1, %ebp
	jmp	.L23007
	.p2align 4,,10
	.p2align 3
.L23084:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$28, %edx
	movl	$1, %esi
	leaq	.LC455(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
	.p2align 4,,10
	.p2align 3
.L23087:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$28, %edx
	movl	$1, %esi
	leaq	.LC457(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
	.p2align 4,,10
	.p2align 3
.L23088:

	movabsq	$2716240911860348182, %rax
	movabsq	$-5397160568969714065, %rdx
	xorq	1728(%rsp), %rax
	xorq	1736(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L23008
	jmp	.L23014
	.p2align 4,,10
	.p2align 3
.L23016:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$42, %edx
	movl	$1, %esi
	leaq	.LC460(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
	.p2align 4,,10
	.p2align 3
.L23089:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$42, %edx
	movl	$1, %esi
	leaq	.LC459(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
	.p2align 4,,10
	.p2align 3
.L23018:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$61, %edx
	movl	$1, %esi
	leaq	.LC462(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
.L23086:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
.L23020:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$17, %edx
	movl	$1, %esi
	leaq	.LC469(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
.L23028:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$35, %edx
	movl	$1, %esi
	leaq	.LC480(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
.L23026:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$21, %edx
	movl	$1, %esi
	leaq	.LC477(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
.L23024:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$15, %edx
	movl	$1, %esi
	leaq	.LC475(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
.L23022:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$16, %edx
	movl	$1, %esi
	leaq	.LC473(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23000
	.cfi_endproc
.LFE2799:

	.size	boringssl_self_test_fast, .-boringssl_self_test_fast
# WAS .section	.text.boringssl_self_test_startup,"ax",@progbits
.text
	.p2align 4
	.globl	boringssl_self_test_startup
	.hidden	boringssl_self_test_startup
	.type	boringssl_self_test_startup, @function
.Lboringssl_self_test_startup_local_target:
boringssl_self_test_startup:
.LFB2801:

	.cfi_startproc
	endbr64
# WAS jmp	boringssl_self_test_fast
	jmp	.Lboringssl_self_test_fast_local_target
	.cfi_endproc
.LFE2801:

	.size	boringssl_self_test_startup, .-boringssl_self_test_startup
# WAS .section	.text.BORINGSSL_self_test,"ax",@progbits
.text
	.p2align 4
	.globl	BORINGSSL_self_test
	.type	BORINGSSL_self_test, @function
.LBORINGSSL_self_test_local_target:
BORINGSSL_self_test:
.LFB2800:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	boringssl_self_test_fast
	call	.Lboringssl_self_test_fast_local_target
	testl	%eax, %eax
	jne	.L23092
.L23094:

	xorl	%eax, %eax
.L23091:

	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L23092:

	.cfi_restore_state
# WAS call	boringssl_self_test_rsa
	call	.Lboringssl_self_test_rsa_local_target
	testl	%eax, %eax
	je	.L23094
# WAS call	boringssl_self_test_ecc
	call	.Lboringssl_self_test_ecc_local_target
	testl	%eax, %eax
	je	.L23094
# WAS call	boringssl_self_test_ffdh
	call	.Lboringssl_self_test_ffdh_local_target
	testl	%eax, %eax
	je	.L23094
# WAS call	boringssl_self_test_ml_kem
	call	.Lboringssl_self_test_ml_kem_local_target
	testl	%eax, %eax
	je	.L23094
# WAS call	boringssl_self_test_eddsa
	call	.Lboringssl_self_test_eddsa_local_target
	testl	%eax, %eax
	setne	%al
	movzbl	%al, %eax
	jmp	.L23091
	.cfi_endproc
.LFE2800:

	.size	BORINGSSL_self_test, .-BORINGSSL_self_test
# WAS .section	.rodata.BORINGSSL_integrity_test.str1.1,"aMS",@progbits,1
.text
.LC488:

	.string	"AES_encrypt"
.LC489:

	.string	"RSA_sign"
.LC490:

	.string	"RAND_bytes"
.LC491:

	.string	"EC_GROUP_cmp"
.LC492:

	.string	"SHA256_Update"
.LC493:

	.string	"ECDSA_do_verify"
.LC494:

	.string	"EVP_AEAD_CTX_seal"
.LC495:

	.string	"OPENSSL_cleanse"
.LC496:

	.string	"CRYPTO_chacha_20"
.LC497:

	.string	"OPENSSL_ia32cap_P"
.LC498:

	.string	"kPrimes"
.LC499:

	.string	"kP256Field"
.LC500:

	.string	"kPKCS1SigPrefixes"
.LC501:

	.string	"HMAC_Init_ex failed.\n"
.LC502:

	.string	"HMAC failed.\n"
.LC503:

	.string	"FIPS integrity test"
# WAS .section	.text.unlikely.BORINGSSL_integrity_test,"ax",@progbits
.text
.LCOLDB504:

# WAS .section	.text.BORINGSSL_integrity_test,"ax",@progbits
.text
.LHOTB504:

	.p2align 4
	.globl	BORINGSSL_integrity_test
	.type	BORINGSSL_integrity_test, @function
.LBORINGSSL_integrity_test_local_target:
BORINGSSL_integrity_test:
.LFB2918:

	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$776, %rsp
	.cfi_def_cfa_offset 832
# WAS movq	BORINGSSL_bcm_text_start@GOTPCREL(%rip), %rbx
	leaq	BORINGSSL_bcm_text_start(%rip), %rbx
# WAS movq	AES_encrypt@GOTPCREL(%rip), %rdi
	leaq	.LAES_encrypt_local_target(%rip), %rdi
	movq	%fs:40, %rax
	movq	%rax, 760(%rsp)
	xorl	%eax, %eax
# WAS movq	BORINGSSL_bcm_text_end@GOTPCREL(%rip), %rbp
	leaq	BORINGSSL_bcm_text_end(%rip), %rbp
	cmpq	%rbx, %rdi
	jb	.L23148
	cmpq	%rbp, %rdi
	jnb	.L23148
# WAS movq	RSA_sign@GOTPCREL(%rip), %rdi
	leaq	.LRSA_sign_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23149
	cmpq	%rbp, %rdi
	jnb	.L23149
# WAS movq	RAND_bytes@GOTPCREL(%rip), %rdi
	leaq	.LRAND_bytes_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23150
	cmpq	%rbp, %rdi
	jnb	.L23150
# WAS movq	EC_GROUP_cmp@GOTPCREL(%rip), %rdi
	leaq	.LEC_GROUP_cmp_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23151
	cmpq	%rbp, %rdi
	jnb	.L23151
# WAS movq	SHA256_Update@GOTPCREL(%rip), %rdi
	leaq	.LSHA256_Update_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23152
	cmpq	%rbp, %rdi
	jnb	.L23152
# WAS movq	ECDSA_do_verify@GOTPCREL(%rip), %rdi
	leaq	.LECDSA_do_verify_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23153
	cmpq	%rbp, %rdi
	jnb	.L23153
# WAS movq	EVP_AEAD_CTX_seal@GOTPCREL(%rip), %rdi
	leaq	.LEVP_AEAD_CTX_seal_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23154
	cmpq	%rbp, %rdi
	jnb	.L23154
# WAS movq	OPENSSL_cleanse@GOTPCREL(%rip), %rdi
	leaq -128(%rsp), %rsp
	pushf
	leaq OPENSSL_cleanse_GOTPCREL_external(%rip), %rdi
	addq (%rdi), %rdi
	movq (%rdi), %rdi
	popf
	leaq	128(%rsp), %rsp
	cmpq	%rdi, %rbx
	jnb	.L23123
	cmpq	%rdi, %rbp
	jnb	.L23198
.L23123:

# WAS movq	CRYPTO_chacha_20@GOTPCREL(%rip), %rdi
	leaq -128(%rsp), %rsp
	pushf
	leaq CRYPTO_chacha_20_GOTPCREL_external(%rip), %rdi
	addq (%rdi), %rdi
	movq (%rdi), %rdi
	popf
	leaq	128(%rsp), %rsp
	cmpq	%rdi, %rbx
	jnb	.L23124
	cmpq	%rdi, %rbp
	jnb	.L23199
.L23124:

# WAS movq	OPENSSL_ia32cap_P@GOTPCREL(%rip), %rdi
	jmp	LOPENSSL_ia32cap_P_rdi1
LOPENSSL_ia32cap_P_rdi1_return:
	cmpq	%rdi, %rbx
	jnb	.L23125
	cmpq	%rdi, %rbp
	jnb	.L23200
.L23125:

# WAS leaq	kPrimes(%rip), %rdi
	leaq	.LkPrimes_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23155
	cmpq	%rbp, %rdi
	jnb	.L23155
# WAS leaq	kP256Field(%rip), %rdi
	leaq	.LkP256Field_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23156
	cmpq	%rbp, %rdi
	jnb	.L23156
# WAS leaq	kPKCS1SigPrefixes(%rip), %rdi
	leaq	.LkPKCS1SigPrefixes_local_target(%rip), %rdi
	cmpq	%rbx, %rdi
	jb	.L23157
	cmpq	%rbp, %rdi
	jnb	.L23157
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	leaq	688(%rsp), %r12
	movl	$16, %esi
# WAS leaq	kInput.38(%rip), %rdi
	leaq	.LkInput.38_local_target(%rip), %rdi
	movq	%r12, %rdx
	movq	%rax, %r15
# WAS call	SHA256@PLT
	call	.LSHA256_local_target
	movabsq	$-8682126846930328449, %rax
	xorq	688(%rsp), %rax
	movabsq	$2836737556126980313, %rdx
	xorq	696(%rsp), %rdx
	orq	%rdx, %rax
	je	.L23202
.L23132:

	leaq	.LC378(%rip), %rcx
	movl	$32, %edx
	movq	%r12, %rsi
# WAS leaq	kPlaintextSHA256.37(%rip), %rdi
	leaq	.LkPlaintextSHA256.37_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	jne	.L23135
.L23136:

	xorl	%eax, %eax
.L23108:

	movq	760(%rsp), %rdx
	subq	%fs:40, %rdx
	jne	.L23203
	addq	$776, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L23202:

	.cfi_restore_state
	movabsq	$-4122841158423229346, %rax
	movabsq	$8450720301424236640, %rdx
	xorq	704(%rsp), %rax
	xorq	712(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L23132
.L23135:

	movl	$0, 12(%rsp)
# WAS call	EVP_sha256@PLT
	call	.LEVP_sha256_local_target
	subq	$8, %rsp
	.cfi_def_cfa_offset 840
	movl	$16, %edx
	movq	%r12, %r9
	leaq	20(%rsp), %r13
# WAS leaq	kInput.36(%rip), %rsi
	leaq	.LkInput.36_local_target(%rip), %rsi
	movq	%rax, %rdi
	movl	$16, %r8d
	pushq	%r13
	.cfi_def_cfa_offset 848
	movq	%rsi, %rcx
# WAS call	HMAC@PLT
	call	.LHMAC_local_target
	popq	%rax
	.cfi_def_cfa_offset 840
	popq	%rdx
	.cfi_def_cfa_offset 832
	cmpl	$32, 12(%rsp)
	jne	.L23136
	movabsq	$-4035810249975046346, %rax
	movabsq	$1378228399904215918, %rdx
	xorq	688(%rsp), %rax
	xorq	696(%rsp), %rdx
	orq	%rdx, %rax
	je	.L23204
.L23138:

	leaq	.LC370(%rip), %rcx
	movl	$32, %edx
	movq	%r12, %rsi
# WAS leaq	kPlaintextHMACSHA256.35(%rip), %rdi
	leaq	.LkPlaintextHMACSHA256.35_local_target(%rip), %rdi
# WAS call	check_test.part.0
	call	.Lcheck_test.part.0_local_target
	testl	%eax, %eax
	je	.L23136
.L23140:

	leaq	16(%rsp), %r14
	movq	%r14, %rdi
# WAS call	HMAC_CTX_init@PLT
	call	.LHMAC_CTX_init_local_target
	xorl	%r8d, %r8d
	movq	%r15, %rcx
	movl	$64, %edx
# WAS leaq	kHMACKey.0(%rip), %rsi
	leaq	.LkHMACKey.0_local_target(%rip), %rsi
	movq	%r14, %rdi
# WAS call	HMAC_Init_ex@PLT
	call	.LHMAC_Init_ex_local_target
	testl	%eax, %eax
	je	.L23205
	movq	%rbp, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	subq	%rbx, %rdx
# WAS call	HMAC_Update@PLT
	call	.LHMAC_Update_local_target
	movq	%r13, %rdx
	movq	%r12, %rsi
	movq	%r14, %rdi
# WAS call	HMAC_Final@PLT
	call	.LHMAC_Final_local_target
	testl	%eax, %eax
	je	.L23144
	cmpl	$32, 12(%rsp)
	je	.L23145
.L23144:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$13, %edx
	movl	$1, %esi
	leaq	.LC502(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23136
	.p2align 4,,10
	.p2align 3
.L23205:

# WAS movq	stderr@GOTPCREL(%rip), %rax
	leaq -128(%rsp), %rsp
	pushf
	leaq stderr_GOTPCREL_external(%rip), %rax
	addq (%rax), %rax
	movq (%rax), %rax
	popf
	leaq	128(%rsp), %rsp
	movl	$21, %edx
	movl	$1, %esi
	leaq	.LC501(%rip), %rdi
	movq	(%rax), %rcx
# WAS call	fwrite@PLT
	call	.Lbcm_redirector_fwrite
	jmp	.L23136
	.p2align 4,,10
	.p2align 3
.L23145:

	movq	%r14, %rdi
# WAS call	HMAC_CTX_cleanse@PLT
	call	.LHMAC_CTX_cleanse_local_target
# WAS movq	BORINGSSL_bcm_text_hash@GOTPCREL(%rip), %rdi
	leaq	BORINGSSL_bcm_text_hash(%rip), %rdi
	movl	$32, %edx
	movq	%r12, %rsi
	leaq	.LC503(%rip), %rcx
# WAS call	check_test
	call	.Lcheck_test_local_target
	testl	%eax, %eax
	je	.L23136
	movl	$32, %esi
	movq	%r12, %rdi
# WAS call	OPENSSL_cleanse@PLT
	call	.Lbcm_redirector_OPENSSL_cleanse
	movl	$1, %eax
	jmp	.L23108
	.p2align 4,,10
	.p2align 3
.L23204:

	movabsq	$-7744862824647830614, %rax
	movabsq	$1056637583226324502, %rdx
	xorq	704(%rsp), %rax
	xorq	712(%rsp), %rdx
	orq	%rdx, %rax
	jne	.L23138
	jmp	.L23140
.L23203:

# WAS call	__stack_chk_fail@PLT
	call	.Lbcm_redirector___stack_chk_fail
	.cfi_endproc
# WAS .section	.text.unlikely.BORINGSSL_integrity_test
.text
	.cfi_startproc
	.type	BORINGSSL_integrity_test.cold, @function
.LBORINGSSL_integrity_test.cold_local_target:
BORINGSSL_integrity_test.cold:
.LFSB2918:

.L23200:

	.cfi_def_cfa_offset 832
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	leaq	.LC497(%rip), %rsi
# WAS call	assert_not_within.part.0.constprop.0
	call	.Lassert_not_within.part.0.constprop.0_local_target
.L23199:

	leaq	.LC496(%rip), %rsi
# WAS call	assert_not_within.part.0.constprop.0
	call	.Lassert_not_within.part.0.constprop.0_local_target
.L23198:

	leaq	.LC495(%rip), %rsi
# WAS call	assert_not_within.part.0.constprop.0
	call	.Lassert_not_within.part.0.constprop.0_local_target
.L23154:

	leaq	.LC494(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23156:

	leaq	.LC499(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23155:

	leaq	.LC498(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23149:

	leaq	.LC489(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23148:

	leaq	.LC488(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23153:

	leaq	.LC493(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23152:

	leaq	.LC492(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23151:

	leaq	.LC491(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23150:

	leaq	.LC490(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
.L23157:

	leaq	.LC500(%rip), %rsi
# WAS call	assert_within.part.0.constprop.0
	call	.Lassert_within.part.0.constprop.0_local_target
	.cfi_endproc
.LFE2918:

# WAS .section	.text.BORINGSSL_integrity_test
.text
	.size	BORINGSSL_integrity_test, .-BORINGSSL_integrity_test
# WAS .section	.text.unlikely.BORINGSSL_integrity_test
.text
	.size	BORINGSSL_integrity_test.cold, .-BORINGSSL_integrity_test.cold
.LCOLDE504:

# WAS .section	.text.BORINGSSL_integrity_test
.text
.LHOTE504:

# WAS .section	.text.unlikely.BORINGSSL_bcm_power_on_self_test,"ax",@progbits
.text
.LCOLDB505:

# WAS .section	.text.startup.BORINGSSL_bcm_power_on_self_test,"ax",@progbits
.text
.LHOTB505:

	.p2align 4
	.type	BORINGSSL_bcm_power_on_self_test, @function
.LBORINGSSL_bcm_power_on_self_test_local_target:
BORINGSSL_bcm_power_on_self_test:
.LFB2917:

	.cfi_startproc
	endbr64
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
# WAS call	OPENSSL_cpuid_setup
	call	.LOPENSSL_cpuid_setup_local_target
# WAS call	BORINGSSL_integrity_test@PLT
	call	.LBORINGSSL_integrity_test_local_target
	testl	%eax, %eax
	je	.L23208
# WAS call	boringssl_self_test_fast
	call	.Lboringssl_self_test_fast_local_target
	testl	%eax, %eax
	je	.L23208
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
# WAS .section	.text.unlikely.BORINGSSL_bcm_power_on_self_test
.text
	.cfi_startproc
	.type	BORINGSSL_bcm_power_on_self_test.cold, @function
.LBORINGSSL_bcm_power_on_self_test.cold_local_target:
BORINGSSL_bcm_power_on_self_test.cold:
.LFSB2917:

.L23208:

	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2917:

# WAS .section	.text.startup.BORINGSSL_bcm_power_on_self_test
.text
	.size	BORINGSSL_bcm_power_on_self_test, .-BORINGSSL_bcm_power_on_self_test
# WAS .section	.text.unlikely.BORINGSSL_bcm_power_on_self_test
.text
	.size	BORINGSSL_bcm_power_on_self_test.cold, .-BORINGSSL_bcm_power_on_self_test.cold
.LCOLDE505:

# WAS .section	.text.startup.BORINGSSL_bcm_power_on_self_test
.text
.LHOTE505:

	.section	.init_array,"aw"
	.align 8
	.quad	BORINGSSL_bcm_power_on_self_test
# WAS .section	.text.unlikely.BORINGSSL_FIPS_abort,"ax",@progbits
.text
	.globl	BORINGSSL_FIPS_abort
	.hidden	BORINGSSL_FIPS_abort
	.type	BORINGSSL_FIPS_abort, @function
.LBORINGSSL_FIPS_abort_local_target:
BORINGSSL_FIPS_abort:
.LFB2919:

	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	pushq	%rax
	.cfi_def_cfa_offset 16
# WAS call	abort@PLT
	call	.Lbcm_redirector_abort
	.cfi_endproc
.LFE2919:

	.size	BORINGSSL_FIPS_abort, .-BORINGSSL_FIPS_abort
# WAS .section	.rodata.kHMACKey.0,"a"
.text
	.align 32
	.type	kHMACKey.0, @object
	.size	kHMACKey.0, 64
.LkHMACKey.0_local_target:
kHMACKey.0:
	.zero	64
# WAS .section	.rodata.kPlaintextSHA3_256.1,"a"
.text
	.align 32
	.type	kPlaintextSHA3_256.1, @object
	.size	kPlaintextSHA3_256.1, 32
.LkPlaintextSHA3_256.1_local_target:
kPlaintextSHA3_256.1:
	.ascii	"\270}\236G\"\355\323\221\207)\336\331\246\320:\370%i\230\356"
	.ascii	"\b\212\032\346b\357K\312\377\024*\226"
# WAS .section	.rodata.kInput.2,"a"
.text
	.align 16
	.type	kInput.2, @object
	.size	kInput.2, 16
.LkInput.2_local_target:
kInput.2:
	.ascii	"\330<r\036\345\033\006\fZAC\212\202!\340@"
# WAS .section	.rodata.kPlaintextSHA512.3,"a"
.text
	.align 32
	.type	kPlaintextSHA512.3, @object
	.size	kPlaintextSHA512.3, 64
.LkPlaintextSHA512.3_local_target:
kPlaintextSHA512.3:
	.ascii	")<\2245N\230\203\345\302x6z\345\030\220\2775A\001d\031\215&\353"
	.ascii	"\341\370/\004\216\372\213+\306\262\235]FvZ\310\265%\243\352R"
	.ascii	"\204Gmm\364\311q\363=\211L; \214[u\350\370|"
# WAS .section	.rodata.kInput.4,"a"
.text
	.align 16
	.type	kInput.4, @object
	.size	kInput.4, 16
.LkInput.4_local_target:
kInput.4:
	.ascii	"!%\022\370\322\255\203\"x\034lMi\251\332\241"
# WAS .section	.rodata.kSSKDFDigestDerivedKey.5,"a"
.text
	.align 32
	.type	kSSKDFDigestDerivedKey.5, @object
	.size	kSSKDFDigestDerivedKey.5, 256
.LkSSKDFDigestDerivedKey.5_local_target:
kSSKDFDigestDerivedKey.5:
	.ascii	"Z.&dM\026\",\3266\241\375\265{\372\241\177\224D\221'a+\315{\341"
	.ascii	"\2739\314\030\363(\223\323\306H\301cr\373n\234c\336T3\261\314"
	.ascii	"\336\265\033\265\361Sh\310\250I\241\345\244\357\306f\3753\356"
	.ascii	"\271\366r\213\004y\367fh\317\257\301:\2216pt\336\362\265\016"
	.ascii	"\235\232\221\212\022\002\020\202Ae\325\226\255O\224\243#n\367"
	.ascii	"\317XC(*\nW\244\203\201\237c\340\317\262\b\035\257\234\3175\306"
	.ascii	"j\003\347\240-8\221\364P\"\341\310\235\210\212\250\b~\b\364["
	.ascii	"\253\274R\006+\030\346\373p\301-\313)\241\224\322:\2745\034\373"
	.ascii	"<\364\361a\314wZ>q\033\261P-i\001\366\223\024\007\251\256\206"
	.ascii	"\204v\371\230\321\312L\312)j\237\024u-\024\364t'\346f(\237\200"
	.ascii	"\211*=\024\250O\343C\375x\320\332\333\336\030\031\254\251\025"
	.ascii	"\367\300\300$7k@\3134\272\342\322n\237ER\266\261\242o\245"
# WAS .section	.rodata.kSSKDFDigestInfo.6,"a"
.text
	.align 32
	.type	kSSKDFDigestInfo.6, @object
	.size	kSSKDFDigestInfo.6, 32
.LkSSKDFDigestInfo.6_local_target:
kSSKDFDigestInfo.6:
	.ascii	"\257\205\316>\243\0035\n*\2411\270y\352\225N\036\341\346\205"
	.ascii	"\322\277\235\267\225B\002\342\365\3540\226"
# WAS .section	.rodata.kSSKDFDigestSharedSecret.7,"a"
.text
	.align 32
	.type	kSSKDFDigestSharedSecret.7, @object
	.size	kSSKDFDigestSharedSecret.7, 51
.LkSSKDFDigestSharedSecret.7_local_target:
kSSKDFDigestSharedSecret.7:
	.string	"9\241\342\263\211\236\207\357\354\366'\022\202\330\370"
	.ascii	"\217%&\206\3355\277\303\232\017qG\215\244\214i\025e\316\3441"
	.ascii	"%M\325\f\253tb\306\317\031\233\351\277\\"
# WAS .section	.rodata.kPBKDF2DerivedKey.8,"a"
.text
	.align 16
	.type	kPBKDF2DerivedKey.8, @object
	.size	kPBKDF2DerivedKey.8, 25
.LkPBKDF2DerivedKey.8_local_target:
kPBKDF2DerivedKey.8:
	.ascii	"\023\334\212|\023\323r\311\003\202\202--\304\222\362\355RF\177"
	.ascii	"\267\202\216\250d"
# WAS .section	.rodata.kPBKDF2Salt.9,"a"
.text
	.align 32
	.type	kPBKDF2Salt.9, @object
	.size	kPBKDF2Salt.9, 36
.LkPBKDF2Salt.9_local_target:
kPBKDF2Salt.9:
	.ascii	"saltSALTsaltSALTsaltSALTsaltSALTsalt"
# WAS .section	.rodata.kPBKDF2Password.10,"a"
.text
	.align 16
	.type	kPBKDF2Password.10, @object
	.size	kPBKDF2Password.10, 24
.LkPBKDF2Password.10_local_target:
kPBKDF2Password.10:
	.ascii	"passwordPASSWORDpassword"
# WAS .section	.rodata.kTLSOutput.11,"a"
.text
	.align 32
	.type	kTLSOutput.11, @object
	.size	kTLSOutput.11, 32
.LkTLSOutput.11_local_target:
kTLSOutput.11:
	.ascii	"\342\035\326\302h\307W\003,,\353\273\270\251}\351\356\346\311"
	.ascii	"G\203\n\275\021`]\325,G\266\005\210"
# WAS .section	.rodata.kTLSSeed2.12,"a"
.text
	.align 16
	.type	kTLSSeed2.12, @object
	.size	kTLSSeed2.12, 16
.LkTLSSeed2.12_local_target:
kTLSSeed2.12:
	.ascii	"}$\032\235<Y\277<1\036+!A\2152\201"
# WAS .section	.rodata.kTLSSeed1.13,"a"
.text
	.align 16
	.type	kTLSSeed1.13, @object
	.size	kTLSSeed1.13, 16
.LkTLSSeed1.13_local_target:
kTLSSeed1.13:
	.ascii	"\217\r\350\266\220\217\261\322mQ\364y\030cQe"
# WAS .section	.rodata.kTLSLabel.14,"a"
.text
	.align 8
	.type	kTLSLabel.14, @object
	.size	kTLSLabel.14, 15
.LkTLSLabel.14_local_target:
kTLSLabel.14:
	.string	"FIPS self test"
# WAS .section	.rodata.kTLSSecret.15,"a"
.text
	.align 32
	.type	kTLSSecret.15, @object
	.size	kTLSSecret.15, 32
.LkTLSSecret.15_local_target:
kTLSSecret.15:
	.ascii	"\253\303e{\tLv(\240\262\202\231o\347Zu\364\230O\331MN\314/\317"
	.ascii	"S\242\304i\243\3671"
# WAS .section	.rodata.kDRBGReseedOutput.16,"a"
.text
	.align 32
	.type	kDRBGReseedOutput.16, @object
	.size	kDRBGReseedOutput.16, 64
.LkDRBGReseedOutput.16_local_target:
kDRBGReseedOutput.16:
	.ascii	"\223H2{N4\323n\271E\312\201\215\260\277M\370\242\265\350H\273"
	.ascii	"\034\340\363\305\331\247D\232\226m+e\022P#\254a=d\251\266)_\365"
	.ascii	"\313\037\233\326\343\222//u\332\205\201\276\304+\371\2122"
# WAS .section	.rodata.kDRBGEntropy2.17,"a"
.text
	.align 32
	.type	kDRBGEntropy2.17, @object
	.size	kDRBGEntropy2.17, 48
.LkDRBGEntropy2.17_local_target:
kDRBGEntropy2.17:
	.ascii	"\307\026\034\243l#\t\267\026\351\205\233\271lmI\275\3105!\003"
	.ascii	"\241\214\322N\364.\311~\364k\364F\353\032Ev\301\206\3515\030"
	.ascii	"\003v:y\022\376"
# WAS .section	.rodata.kDRBGOutput.18,"a"
.text
	.align 32
	.type	kDRBGOutput.18, @object
	.size	kDRBGOutput.18, 64
.LkDRBGOutput.18_local_target:
kDRBGOutput.18:
	.ascii	"\306\023\220\245\206\322<:V\366\224\020\220}\277W3\330\264\264"
	.ascii	"\0257\310\025\317\fO<\201(]\302\232=G\246W\352N(\312\355\341"
	.ascii	"`\237\007\0132\313\177\366\030n\376\351\207\222\003\252A\211"
	.ascii	"\252\305\275"
# WAS .section	.rodata.kDRBGAD.19,"a"
.text
	.align 16
	.type	kDRBGAD.19, @object
	.size	kDRBGAD.19, 16
.LkDRBGAD.19_local_target:
kDRBGAD.19:
	.ascii	"BCM DRBG KAT AD "
# WAS .section	.rodata.kDRBGNonce.20,"a"
.text
	.align 16
	.type	kDRBGNonce.20, @object
	.size	kDRBGNonce.20, 16
.LkDRBGNonce.20_local_target:
kDRBGNonce.20:
	.ascii	"DRBG Nonce      "
# WAS .section	.rodata.kDRBGPersonalization.21,"a"
.text
	.align 16
	.type	kDRBGPersonalization.21, @object
	.size	kDRBGPersonalization.21, 18
.LkDRBGPersonalization.21_local_target:
kDRBGPersonalization.21:
	.ascii	"BCMPersonalization"
# WAS .section	.rodata.kDRBGEntropy.22,"a"
.text
	.align 32
	.type	kDRBGEntropy.22, @object
	.size	kDRBGEntropy.22, 48
.LkDRBGEntropy.22_local_target:
kDRBGEntropy.22:
	.ascii	"\304\332\007@\325\005\361\356(\013\225\345\214I1\254m\350F\240"
	.ascii	"\025/\273J?\027L\364xzO\032@\302\265\013\253\341J\256S\013\345"
	.ascii	"\210m\221\n'"
# WAS .section	.rodata.kSHA1Digest.23,"a"
.text
	.align 16
	.type	kSHA1Digest.23, @object
	.size	kSHA1Digest.23, 20
.LkSHA1Digest.23_local_target:
kSHA1Digest.23:
	.ascii	"\224\031U\223\nX)8\353\365\t\021m\032\375\017\036\021\343\313"
# WAS .section	.rodata.kSHA1Input.24,"a"
.text
	.align 16
	.type	kSHA1Input.24, @object
	.size	kSHA1Input.24, 16
.LkSHA1Input.24_local_target:
kSHA1Input.24:
	.ascii	"\023/\331\272\325\301\202bc\272\373\266\231\367\007\245"
# WAS .section	.rodata.kAESGCMDecPlaintext.25,"a"
.text
	.align 32
	.type	kAESGCMDecPlaintext.25, @object
	.size	kAESGCMDecPlaintext.25, 32
.LkAESGCMDecPlaintext.25_local_target:
kAESGCMDecPlaintext.25:
	.ascii	"=D\220\233\221\347^\323\302\262\320\251\231\027jE\005^\231\203"
	.ascii	"V\001\300\202@\201\322HE\362\314\303"
# WAS .section	.rodata.kAESGCMDecCiphertext.26,"a"
.text
	.align 32
	.type	kAESGCMDecCiphertext.26, @object
	.size	kAESGCMDecCiphertext.26, 48
.LkAESGCMDecCiphertext.26_local_target:
kAESGCMDecCiphertext.26:
	.ascii	"5\363\005\217\207W`\377\t\323\022\017p\304\274\236\327\250hr"
	.ascii	"\3414R !v\3677\032\340O\252\341\3359\031 \365\3219S\330\226x"
	.ascii	"Y\224\202<"
# WAS .section	.rodata.kAESGCMCiphertext.27,"a"
.text
	.align 32
	.type	kAESGCMCiphertext.27, @object
	.size	kAESGCMCiphertext.27, 48
.LkAESGCMCiphertext.27_local_target:
kAESGCMCiphertext.27:
	.ascii	"\207{\325\215\226>K\346d\224@/a\233~VR}\244Z\371\246\342\333"
	.ascii	"\034c.\227\223\017\373\355\265\236\034 \262\260X\332H\007-\275"
	.ascii	"\226\r4\306"
# WAS .section	.rodata.kAESGCMEncPlaintext.28,"a"
.text
	.align 32
	.type	kAESGCMEncPlaintext.28, @object
	.size	kAESGCMEncPlaintext.28, 32
.LkAESGCMEncPlaintext.28_local_target:
kAESGCMEncPlaintext.28:
	.ascii	"\217\314@\231\200\216u\312\257\365\202\211\210H\250\215\200\213"
	.ascii	"U\253N\223py}\224\013\350\314\035x\204"
# WAS .section	.rodata.kAESCBCDecPlaintext.29,"a"
.text
	.align 32
	.type	kAESCBCDecPlaintext.29, @object
	.size	kAESCBCDecPlaintext.29, 32
.LkAESCBCDecPlaintext.29_local_target:
kAESCBCDecPlaintext.29:
	.ascii	"Q\247\240\037kyl\315H\003\241A\334V\246\302\026\265\321\323\267"
	.ascii	"\006\262%o\246\320\322\016o\031\265"
# WAS .section	.rodata.kAESCBCDecCiphertext.30,"a"
.text
	.align 32
	.type	kAESCBCDecCiphertext.30, @object
	.size	kAESCBCDecCiphertext.30, 32
.LkAESCBCDecCiphertext.30_local_target:
kAESCBCDecCiphertext.30:
	.ascii	"4z\245\240$\262\202W\263e\020\276X=OG\255\267\273\356\334`\005"
	.ascii	"\273\275\r\n\237\006\273{\020"
# WAS .section	.rodata.kAESCBCEncCiphertext.31,"a"
.text
	.align 32
	.type	kAESCBCEncCiphertext.31, @object
	.size	kAESCBCEncCiphertext.31, 32
.LkAESCBCEncCiphertext.31_local_target:
kAESCBCEncCiphertext.31:
	.ascii	"VF\301A\364\023\326\377b\222Az&\306\206\2750_\266W\247\322P:"
	.ascii	"\305^\216\223@\362\020\330"
# WAS .section	.rodata.kAESCBCEncPlaintext.32,"a"
.text
	.align 32
	.type	kAESCBCEncPlaintext.32, @object
	.size	kAESCBCEncPlaintext.32, 32
.LkAESCBCEncPlaintext.32_local_target:
kAESCBCEncPlaintext.32:
	.ascii	"\007\206\t\246\305\254%Di\232\337h/\243w\371\276\212\266\256"
	.ascii	"\365c\350\305j6\270OU\177\255\323"
# WAS .section	.rodata.kAESKey.33,"a"
.text
	.align 16
	.type	kAESKey.33, @object
	.size	kAESKey.33, 16
.LkAESKey.33_local_target:
kAESKey.33:
	.ascii	"BoringCrypto Key"
# WAS .section	.rodata.kPlaintextHMACSHA256.35,"a"
.text
	.align 32
	.type	kPlaintextHMACSHA256.35, @object
	.size	kPlaintextHMACSHA256.35, 32
.LkPlaintextHMACSHA256.35_local_target:
kPlaintextHMACSHA256.35:
	.ascii	"6_[\325\365\353\375\307nS\245sms \023\252\323\274\206K\270\204"
	.ascii	"\224\026F\210\234H\356\251\016"
# WAS .section	.rodata.kInput.36,"a"
.text
	.align 16
	.type	kInput.36, @object
	.size	kInput.36, 16
.LkInput.36_local_target:
kInput.36:
	.ascii	"\332\331\022\223\337\317*|\216\315\023\3765?\247["
# WAS .section	.rodata.kPlaintextSHA256.37,"a"
.text
	.align 32
	.type	kPlaintextSHA256.37, @object
	.size	kPlaintextSHA256.37, 32
.LkPlaintextSHA256.37_local_target:
kPlaintextSHA256.37:
	.ascii	"\177\344\325\361\241\343\202\207\331X\365\021\307\035^'^\314"
	.ascii	"\322f\317\271\310\306`\330\222\036W\375Fu"
# WAS .section	.rodata.kInput.38,"a"
.text
	.align 16
	.type	kInput.38, @object
	.size	kInput.38, 16
.LkInput.38_local_target:
kInput.38:
	.ascii	"\377;\205}\247#j+\252\0179kQR\"\027"
# WAS .section	.rodata.kDH_g.39,"a"
.text
	.align 32
	.type	kDH_g.39, @object
	.size	kDH_g.39, 256
.LkDH_g.39_local_target:
kDH_g.39:
	.string	"1\3560\262\027o*\321g\t\337\0018\013\201\366z]\356\006\320\355 \016\200\332\340\227}\332\002\377\206\362\237j0 \344?q\032i\004\026`\246\256\004\2603\345\275\333z9\257p\367\\U\3731V\347\344\356\241\025\207\362\335Xeu\t\301M\351\364\204\266\213f\370\336\360\020\017\215m\303}\202e>4\231\266b\351q\224^jU\017\236\307\177S\263\\;&\203\301\274P\310\254\274\320@\371<A(\240\353\357\263X\344W\252\370]\227\037)\325i\314-\323\317\371r\217\256\343A\223?4>6\214\334\3247U\213\201\252\377\247\013\257\263v\343\022\264$\317\373BC.\267H\001\317$\003\204t\nz\242\252?8\300w\242\263`0"
	.ascii	"w\334\020Z\330\301\202\336\267Hy\245\f\320lR\336]\360JX;\216"
	.ascii	"\336\361\300Bc\036M\317&D\236P\230\003\274[\374\357\007=\256"
	.ascii	"\367\332\235v\212\215\250\264\351y"
# WAS .section	.rodata.kDH_q.40,"a"
.text
	.align 16
	.type	kDH_q.40, @object
	.size	kDH_q.40, 28
.LkDH_q.40_local_target:
kDH_q.40:
	.ascii	"\314\2344\221\216\213\240\206#\242v\202\353\321\230_\253'VDf"
	.ascii	"pP\3115\334\024\307"
# WAS .section	.rodata.kDH_p.41,"a"
.text
	.align 32
	.type	kDH_p.41, @object
	.size	kDH_p.41, 256
.LkDH_p.41_local_target:
kDH_p.41:
	.ascii	"\331\3047\301\243\343\\\270\276\310\n\203\243\323\004?\321L@"
	.ascii	"\275<<)&\345\026\336\336\327\337\346hO\205\242Fe\301\257\250"
	.ascii	"a\231\370\303\331\323\251\311\025\251\023\\\013\254\366|\274"
	.ascii	"\3515l\254\361(\242C\357\375*Y\330]\211~(\220F\365D\250\007\216"
	.ascii	"p\357'6x$:\"\324\026\250\264\352l\023l\331\230\302Y\376\333\231"
	.ascii	"\371\353\007}C\335^\2779Y\264\270d\210\376\333l\212C\254g\023"
	.ascii	"\251xy\247\377N\306\032>\023>\350\025W\253)\347\206^\214\263"
	.ascii	"$\260<j<}L\311\265M1\265\n(\273}\002u\022\246\312\235\037(E\271"
	.ascii	"\257cf\273I?(f\214\265\035\201\b\275\036kC1N\210H%\350\304\327"
	.ascii	"\203_\243e\032\307-;\353\260\262\251\203\226\252|#\025\016.n"
	.ascii	"F]\0334\300p\375\250\215\202\227\020\324>E\026>TBJ*v\\o0D\035"
	.ascii	"\370\307\007\342\270\331\254ts\t"
# WAS .section	.rodata.kFFDHE2048PrivateKeyData.42,"a"
.text
	.align 32
	.type	kFFDHE2048PrivateKeyData.42, @object
	.size	kFFDHE2048PrivateKeyData.42, 32
.LkFFDHE2048PrivateKeyData.42_local_target:
kFFDHE2048PrivateKeyData.42:
	.quad	1764253731295743905
	.quad	726538838433395640
	.quad	391840100316802743
	.quad	6729187114
# WAS .section	.rodata.kDHOutput.43,"a"
.text
	.align 32
	.type	kDHOutput.43, @object
	.size	kDHOutput.43, 256
.LkDHOutput.43_local_target:
kDHOutput.43:
	.string	"*\346\323\246\023X\216\316S\252\366]\232\256\002\022\365\200=\006\tv\254W7\236\2538b%\005\035\363\2519`\366\256\220\355\036\255n\351\343\272'\366\333T\337\342\275\273\177\361\201\254\032\372\333\207\007\230v\220!\362\256\332\r\204\227d\013\277\270\215\020F\342\325\312\033\273\3457\262;5\323\033e\352\256\362\003\342\266\336\"\267\206Iy\376\327\026\367\334\234Y\365\267p\300SBo\261\322N"
	.string	"%K-Z\233\320\351'C\314"
	.string	"f\352\224z\013\271\211\f^\224\270:x\234M\204\3462,8|\367C\234\330\270\034\316$\221 gzT\037~\206\177\241\301\003N,&q\262\0060\263l\025\314\254%\3457?$\217*\211^=C\224\3116\256@"
	.ascii	"j\r\260n\213.pW\341\210S\326\006\200*NZ\360\036\252\313\253\006"
	.ascii	"\016'\017\331\210\331\001\343\007\353\337\303\022\343@\210{_"
	.ascii	"Yxn& \303\337\310\344^\270"
# WAS .section	.rodata.kFFDHE2048PublicValueData.44,"a"
.text
	.align 32
	.type	kFFDHE2048PublicValueData.44, @object
	.size	kFFDHE2048PublicValueData.44, 256
.LkFFDHE2048PublicValueData.44_local_target:
kFFDHE2048PublicValueData.44:
	.quad	1764253731295743905
	.quad	726538838433395640
	.quad	391840100316802743
	.quad	1778768481963425578
	.quad	-1585921919009101142
	.quad	-671058646392070804
	.quad	-491017039198863440
	.quad	8119131041491545565
	.quad	6204469515455117309
	.quad	6870188692343810334
	.quad	-2024534297652687990
	.quad	-5672137664715097906
	.quad	-528750655147641628
	.quad	8398439782312032168
	.quad	7094727165944911271
	.quad	-2511705501884419939
	.quad	-8815347854301914388
	.quad	4967688203125687384
	.quad	-7239172306429580895
	.quad	-5903371444006127746
	.quad	-1844348381487582834
	.quad	2771087981316718024
	.quad	-5577804743324386008
	.quad	7643447978145613072
	.quad	6660009024245134939
	.quad	-1674611947911772982
	.quad	485802453591134119
	.quad	7651991817471973227
	.quad	-4978816578340115008
	.quad	-6522210901054915710
	.quad	-360480579653258153
	.quad	3831388565288519054
# WAS .section	.rodata.kD.45,"a"
.text
	.align 32
	.type	kD.45, @object
	.size	kD.45, 32
.LkD.45_local_target:
kD.45:
	.ascii	"\306\301\252\332\025\260va\370\024,l\257\017\333$\032\377.\376"
	.ascii	"F\300\223\213t\362\274\3050R\260w"
# WAS .section	.rodata.kQy.46,"a"
.text
	.align 32
	.type	kQy.46, @object
	.size	kQy.46, 32
.LkQy.46_local_target:
kQy.46:
	.ascii	"\340\342\257\243\371\266\253\344\306\230\357d\225\361\276I\243"
	.ascii	"\031lPV\254\263v?\344P~\354Yn\210"
# WAS .section	.rodata.kQx.47,"a"
.text
	.align 32
	.type	kQx.47, @object
	.size	kQx.47, 32
.LkQx.47_local_target:
kQx.47:
	.ascii	"\310\025a\354\362\345N\336\376f\027\333\034z4\247\007D\335\262"
	.ascii	"a\362i\270=\254\374\322\255\345\246\201"
# WAS .section	.rodata.kP256PointResult.48,"a"
.text
	.align 32
	.type	kP256PointResult.48, @object
	.size	kP256PointResult.48, 65
.LkP256PointResult.48_local_target:
kP256PointResult.48:
	.string	"\004\361c"
	.ascii	"\210\305\325\351\005R\254\266\354hv\270s\177\017r4\346\27302"
	.ascii	"\"7\266*\200\350\236no6\002\347!\3221\333\224c\267\330\031\016"
	.ascii	"\302\300\247/\025I\032\242|A\217\257\234@\257.J\f"
# WAS .section	.rodata.kP256Scalar.49,"a"
.text
	.align 32
	.type	kP256Scalar.49, @object
	.size	kP256Scalar.49, 32
.LkP256Scalar.49_local_target:
kP256Scalar.49:
	.ascii	"\347`D\221&\232\373[\020-n\245,\265\237\353p\256\336l\343\277"
	.ascii	"\263\340\020T\205\253\330a\327{"
# WAS .section	.rodata.kP256Point.50,"a"
.text
	.align 32
	.type	kP256Point.50, @object
	.size	kP256Point.50, 65
.LkP256Point.50_local_target:
kP256Point.50:
	.ascii	"\004N\301\224\214\\\36475\r\243\371U\371\213&#\\C\340\203Q+\r"
	.ascii	"KV$\303\344\245\250\342\351\225\362\304\271\267H}*\256\305\300"
	.ascii	"\n\314\033\320\354\270\334\276\f\276Ry\223|\013\222+\177\027"
	.ascii	"\245\200"
# WAS .section	.rodata.kECDSAVerifyPlaintext.51,"a"
.text
	.align 32
	.type	kECDSAVerifyPlaintext.51, @object
	.size	kECDSAVerifyPlaintext.51, 32
.LkECDSAVerifyPlaintext.51_local_target:
kECDSAVerifyPlaintext.51:
	.ascii	"x|P\\`\311\344\023l\344H\272\223\377q\372\234\030\364\027\tO"
	.ascii	"\337Z\342u\300\314\322g\227\255"
# WAS .section	.rodata.kECDSAVerifySig.52,"a"
.text
	.align 32
	.type	kECDSAVerifySig.52, @object
	.size	kECDSAVerifySig.52, 64
.LkECDSAVerifySig.52_local_target:
kECDSAVerifySig.52:
	.ascii	"g\200\305\374p'^,pa\240\347\207{\261t\336\255\353\230\207\002"
	.ascii	"\177?\2506T\025\213\247\365\f<w\321\266\340\236t{\305\253U\001"
	.ascii	"\327^a\215\216['.\025\237\363A<\267\032\201@\215V\005"
# WAS .section	.rodata.kECDSASignSig.53,"a"
.text
	.align 32
	.type	kECDSASignSig.53, @object
	.size	kECDSASignSig.53, 64
.LkECDSASignSig.53_local_target:
kECDSASignSig.53:
	.string	"g\200\305\374p'^,pa\240\347\207{\261t\336\255\353\230\207\002\177?\2506T\025\213\247\365\f:\202\331e\262\247*\305\246\007\274V\2537\"\310B\331!\300I6\351\342_\327\266"
	.ascii	"\347\330\334\200"
# WAS .section	.rodata.kECDSASignPlaintext.54,"a"
.text
	.align 32
	.type	kECDSASignPlaintext.54, @object
	.size	kECDSASignPlaintext.54, 32
.LkECDSASignPlaintext.54_local_target:
kECDSASignPlaintext.54:
	.ascii	"\0365\223\013\350`\320\224,\247\273\326\366\336\330\177\025~"
	.ascii	"M\342O\201\355K\207\\\016\001\216\211\250\037"
# WAS .section	.rodata.kQInverseModP.55,"a"
.text
	.align 32
	.type	kQInverseModP.55, @object
	.size	kQInverseModP.55, 128
.LkQInverseModP.55_local_target:
kQInverseModP.55:
	.string	"\320\336\031\332\036\242\330\217\034\222s\260\311\220\307\365\354\305\211\001\005x\021-t4D\255\325\367\244\376\237%M\013\222\343\270}\323\375\245\312\225`\243\371UB\024\262EQ\237s\210C\212\321e\236\321\367\202**\215pV\343\357\311\016*,\025\257\177\227\201f\363\265"
	.ascii	"\251&\314\036\302\230\335\3237\006y\263`Xy\231?\243\025\0371"
	.ascii	"\343\021\210L5W\372y\327\330r\356s\225\211)\307\005'h\220\025"
# WAS .section	.rodata.kDModQMinusOne.56,"a"
.text
	.align 32
	.type	kDModQMinusOne.56, @object
	.size	kDModQMinusOne.56, 128
.LkDModQMinusOne.56_local_target:
kDModQMinusOne.56:
	.string	"de\275}\032\226&\241\376\363\224\r]\354\205\342\370\263L\313\371\205\213\022\234\240225\222Z\224G\033p\322\220\004I\001\330\305\344\304C\267\3516\272\274s\250\373\257\206\301\330=\313\254\361\313`}'!\336d\177\350\250e\314@`\377\240+\374\017\200\035y\312X\212\326\017\355x\232\002"
	.ascii	"\004\302SA\350\032\320\375q[C\254\031J\266\022\243\313\341\307"
	.ascii	"}\\\230tNctk\221z);\222\262\205"
# WAS .section	.rodata.kDModPMinusOne.57,"a"
.text
	.align 32
	.type	kDModPMinusOne.57, @object
	.size	kDModPMinusOne.57, 128
.LkDModPMinusOne.57_local_target:
kDModPMinusOne.57:
	.ascii	"\365P\217\210}\335\265\264*\213\327M#\376\257\351\026\"\322A"
	.ascii	"\355\210\362p\313M\353\301q\227\304\013>Z-\226\253\372\375\022"
	.ascii	"\213\323>N\005o\004\353Y<\016\241s\276\235\231/\005\371T\215"
	.ascii	"\230\036\r\304\f\3030#\377\345\320+\325N+\240\256\2702\204E\213"
	.ascii	"<m\360\0206\236j\304g\312\251\374\006\226\320\274\332\321UU\215"
	.ascii	"w!\364\20297\221\325\227Vx\310<\313^\366\334XH\263|\224)9"
# WAS .section	.rodata.kQ.58,"a"
.text
	.align 32
	.type	kQ.58, @object
	.size	kQ.58, 128
.LkQ.58_local_target:
kQ.58:
	.string	"\332\346\322\273D\377O\337W\301\021\243Q\272\027\211L\001\300\f\2274P\3172\036\300\275{5\265j&\314\352L\216\207Jg\213\323\345O:`HY\004\2239\327|\373\031\0324\325\350\257\347\",\r\302\221i\266\351*\351\034Ln\217@\365\250>\202ii\276\237}\\\177\222x\027\243mA-r\355?q\372\227\264c\344O\331F\003\373"
	.ascii	"\3530p\271Q\331\n\322\370P\324\373C\204\370\254X\303{"
# WAS .section	.rodata.kP.59,"a"
.text
	.align 32
	.type	kP.59, @object
	.size	kP.59, 128
.LkP.59_local_target:
kP.59:
	.ascii	"\367\006\243\230\212R\370ch'Oh\1774\354\216]\3700\222\263bL\353"
	.ascii	"\333\031k\t\305\243\360\273\377\017\302\324\233\311TO\271\371"
	.ascii	"\341L\360\343L\220\332z\001\302\237\304\310\216\261\036\223u"
	.ascii	"u\306\023%\303\356;\314\270rlI\260\t\373\253D\353M@\360ak\345"
	.ascii	"\346\376>\nw&9v=L>\233[\300\257\242Xv\260\351\332\177\016x\311"
	.ascii	"vI\\\372\263\260\025KA\307'\244u(\\0iP)"
# WAS .section	.rodata.kD.60,"a"
.text
	.align 32
	.type	kD.60, @object
	.size	kD.60, 256
.LkD.60_local_target:
kD.60:
	.ascii	"/,\036\322=,\261\233!\002\316\270\225_O\331!8\0216\260\2326\253"
	.ascii	"\227Gu\367.\375u\037X\026\234\366\024\351\216\243i\235\235\206"
	.ascii	"\376\\\033;\021\365Udw\304\374S\252\214x\237u\253 :\241w7\"\002"
	.ascii	"\216T\212g\034^\340>\331D7\321)\356Vl0\232\223M\331\333\305\003"
	.ascii	"\032u\314\017\302a\265lb\237\306\250\307\212`\027\021bL\357t"
	.ascii	"1\227\255\211-\3501\035\213X\202\343\003\032k\337?>\244'\031"
	.ascii	"\357Fz\220\337\247\347\311f\253A\035ex\034\030@\\\326\207\265"
	.ascii	"\352)D\263\365\263\322O\316\210xI'N\0130\205\373s\375\2132\025"
	.ascii	"\356\037\311\016\211\271C/\351`\215\332\256+0\231\356\210\201"
	.ascii	" {J\303\030\362\224\002y\224\252e\331\033E*\254n0HW\352\276y"
	.ascii	"}\374g\252G\300\367R\375\013cN=.\3146\240\333\222\013\251\033"
	.ascii	"\353\302\325\b\323\205\207\370]\032\366\301"
# WAS .section	.rodata.kE.61,"a"
.text
	.type	kE.61, @object
	.size	kE.61, 3
.LkE.61_local_target:
kE.61:
	.string	"\001"
	.ascii	"\001"
# WAS .section	.rodata.kN.62,"a"
.text
	.align 32
	.type	kN.62, @object
	.size	kN.62, 256
.LkN.62_local_target:
kN.62:
	.ascii	"\323:b\237\007w\260\030\363\377\376\314\311\242\302:\246\035"
	.ascii	"\330\360&[8\220\027H\025\316!\315\326b\231\342\327\332@\200<"
	.ascii	"\255\030\267&\3510\212#?h\232\23414\221\231\006\0216\262\236"
	.ascii	":\320\274\271\223N\270r\241\237\266\214\325\027\037~\252u\273"
	.ascii	"\337\241pH\304\354\232Q\355A\311t\300>\036\205/\2764\307e4\213"
	.ascii	"MUK\341ET\ru~\211M\f\3663\345\374\373V\033\3629\235\340\377U"
	.ascii	"\317\002\005\271t\322\221\374\207\341\273\227*\344\335 \3008"
	.ascii	"G\300v?\241\233\\ \377\377\307I;L\257\231\246>\202\\X'\316\001"
	.ascii	"\003\303\0265 \351\360\025zA\325\037R\352\337\255L\273\r\313"
	.ascii	"\004\221\260\225\250\316%\375\322bGw\356\023\361Hr\236\331-\346"
	.ascii	"_\244\306\236Z\262\306\242\367\n\026\027\256k\0340|c\b\203\347"
	.ascii	"C\354T^,\b\013^F\247\020\223CSN\343\026sU\316\362\224\300\276"
	.ascii	"\263"
# WAS .section	.rodata.kRSAVerifySignature.63,"a"
.text
	.align 32
	.type	kRSAVerifySignature.63, @object
	.size	kRSAVerifySignature.63, 256
.LkRSAVerifySignature.63_local_target:
kRSAVerifySignature.63:
	.string	"\305\357\003\r"
	.ascii	"\241>:p[#\341\343\336?,\216\204\262\350-\033\354\024\021o\202"
	.ascii	"E\345\266\372K \177\022\257\347,\2156gZ\313}g\017j\\Y\016Dql"
	.ascii	"=\363\021\004\276\250\237a\276\315l\301\210\201H\001\323\b\316"
	.ascii	"\354*\204>\307\362^\274\335\345\210\335\211\2002i(\261\bC\304"
	.ascii	"\263\031\0038\260\240|Z\224\245?m\204\336yG\363\333=\237s\006"
	.ascii	"\020\277F<)\037\331\001\253\212T\344}\273\031m\212\365>\361_"
	.ascii	"\320kz\320\335\266\\\203\310\376\350\320\247\b3G3\313\347\260"
	.ascii	"3\"i]\232@jhxg\263\202\224\330cH\005\324\313hssU\327vHM\363\315"
	.ascii	"\213\217\353Q\375\224`\202\030\330\216\262\362\320@d1*\320A."
	.ascii	"z\226\324\232\235q\327f\006\253z[\331\233\303\0347Y<\203\177"
	.ascii	"\025\272\206\001\222j\037i\031\321\021\013U\220n\030\342\236"
	.ascii	"*\224\004Z\351!\213\306\310\332t"
# WAS .section	.rodata.kRSAVerifyPlaintext.64,"a"
.text
	.align 32
	.type	kRSAVerifyPlaintext.64, @object
	.size	kRSAVerifyPlaintext.64, 32
.LkRSAVerifyPlaintext.64_local_target:
kRSAVerifyPlaintext.64:
	.ascii	"\te/\330\355\235\302m\274\277\362\247\245\355\3417\023x!6\317"
	.ascii	"\215\"=\253\223\264\022\250\265\025S"
# WAS .section	.rodata.kRSASignSignature.65,"a"
.text
	.align 32
	.type	kRSASignSignature.65, @object
	.size	kRSASignSignature.65, 256
.LkRSASignSignature.65_local_target:
kRSASignSignature.65:
	.string	"\267\356%\021f\324\375\207\020\217|\205\232\0355B+\0020\252\212\201\367P\262d\300\025\346\275]\341\003\213\364\323[J\214\361\177?\315\037\340\220x:\336\357\322i\347\345Y\272\311\336St\204\2523\006)G\326\017"
	.ascii	"\312\342\336\253l\206\235\262\306O\266\216\336\276\034&F/\273"
	.ascii	"\005\301+y\260\202N\311\003\263\032'\320\310R.\"\004pP\035\317"
	.ascii	"\326mz\240\210\220:Ider\210Q\346\333\216\214\276\034P\307\032"
	.ascii	"\300\213D=\204F\260\242{7\310\003\360\001.v\301\013{\n^b\331"
	.ascii	"\223K\206\257\250D ?\312\347k\215'V\366\003\301\325^\252d4\244"
	.ascii	"\366\362\013\206\301\324\244\251nX\214\n\t\312\255K\326k;\376"
	.ascii	"\376\373\t<v\3333-b(D\304\325C\344\206.\250\240&\250\214\351"
	.ascii	"@|\370Y\204\007\275\220\340\307\313v\213A\017\272\355\311\277"
	.ascii	"\024w\305\333\026\321\3333\274 \320\354\004\277\370\343"
# WAS .section	.rodata.kRSASignPlaintext.66,"a"
.text
	.align 32
	.type	kRSASignPlaintext.66, @object
	.size	kRSASignPlaintext.66, 32
.LkRSASignPlaintext.66_local_target:
kRSASignPlaintext.66:
	.ascii	"\322\265nS0or\ry)\330p\213\364o\034\"0\003\005X+\021[\355\312"
	.ascii	"\307\"\330\252Z\262"
# WAS .section	.rodata.kZeroAdditionalData.67,"a"
.text
	.align 32
	.type	kZeroAdditionalData.67, @object
	.size	kZeroAdditionalData.67, 32
.LkZeroAdditionalData.67_local_target:
kZeroAdditionalData.67:
	.zero	32
# WAS .section	.rodata.staticBccKey.68,"a"
.text
	.align 32
	.type	staticBccKey.68, @object
	.size	staticBccKey.68, 32
.LstaticBccKey.68_local_target:
staticBccKey.68:
	.string	""
	.ascii	"\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020\021\022"
	.ascii	"\023\024\025\026\027\030\031\032\033\034\035\036\037"
# WAS .section	.rodata.kDummyHash.69,"a"
.text
	.align 32
	.type	kDummyHash.69, @object
	.size	kDummyHash.69, 64
.LkDummyHash.69_local_target:
kDummyHash.69:
	.zero	64
# WAS .section	.rodata.kChain.70,"a"
.text
	.align 32
	.type	kChain.70, @object
	.size	kChain.70, 54
.LkChain.70_local_target:
kChain.70:
	.byte	32
	.byte	13
	.byte	6
	.byte	9
	.byte	5
	.byte	4
	.byte	4
	.byte	2
	.byte	5
	.byte	6
	.byte	5
	.byte	7
	.byte	4
	.byte	3
	.byte	3
	.byte	3
	.byte	3
	.byte	3
	.byte	5
	.byte	4
	.byte	9
	.byte	9
	.byte	6
	.byte	6
	.byte	2
	.byte	0
	.byte	5
	.byte	0
	.byte	6
	.byte	6
	.byte	5
	.byte	4
	.byte	4
	.byte	4
	.byte	5
	.byte	4
	.byte	5
	.byte	3
	.byte	3
	.byte	2
	.byte	10
	.byte	9
	.byte	2
	.byte	2
	.byte	5
	.byte	2
	.byte	5
	.byte	2
	.byte	3
	.byte	0
	.byte	7
	.byte	7
	.byte	6
	.byte	6
# WAS .section	.rodata.ONE.71,"a"
.text
	.align 32
	.type	ONE.71, @object
	.size	ONE.71, 32
.LONE.71_local_target:
ONE.71:
	.quad	1
	.zero	24
# WAS .section	.rodata.kDefaultAdditionalData.72,"a"
.text
	.align 32
	.type	kDefaultAdditionalData.72, @object
	.size	kDefaultAdditionalData.72, 32
.LkDefaultAdditionalData.72_local_target:
kDefaultAdditionalData.72:
	.zero	32
# WAS .section	.rodata.kFFDHE8192Data.78,"a"
.text
	.align 32
	.type	kFFDHE8192Data.78, @object
	.size	kFFDHE8192Data.78, 1024
.LkFFDHE8192Data.78_local_target:
kFFDHE8192Data.78:
	.quad	-1
	.quad	-2986858831440100788
	.quad	80548660690024588
	.quad	586282718295515470
	.quad	-7507186900325088195
	.quad	-6432268481967194355
	.quad	3419392070836455166
	.quad	-361767791013812098
	.quad	-2390571736096208336
	.quad	-5294722439476894098
	.quad	2232814412099112936
	.quad	-8937361255791877033
	.quad	-6773923507673243087
	.quad	-3046683410453380960
	.quad	7081935486676801017
	.quad	-7356098831349374597
	.quad	5884631440922131708
	.quad	2027040310557074732
	.quad	5884138941236396014
	.quad	-4940279984342823308
	.quad	6061781930687770658
	.quad	6419332338827493969
	.quad	2902218915885309788
	.quad	6075438118221480578
	.quad	2970273736180041188
	.quad	-3806650968878360830
	.quad	6150561893457274469
	.quad	-8739743864582338519
	.quad	832255251805049071
	.quad	7529995942180801630
	.quad	-166000078885970621
	.quad	2180404339746647652
	.quad	3939805579563812920
	.quad	-6625302352730232150
	.quad	-6621040161784800556
	.quad	7108533055852208577
	.quad	4601916370586377833
	.quad	6573973399036199126
	.quad	-1396933849091986684
	.quad	-8300365191966690301
	.quad	-1972767720800022249
	.quad	5791004794559935370
	.quad	7073233279085881414
	.quad	-2942254133011841186
	.quad	-447816675200511092
	.quad	786119307181849790
	.quad	-5501364918141512062
	.quad	-1248974689378231306
	.quad	-7726376929174292078
	.quad	8520333631555812289
	.quad	6376596631365081524
	.quad	9201592412721390531
	.quad	774269491107570286
	.quad	-6913323867221716509
	.quad	-5164166220879806248
	.quad	-6546982649772545776
	.quad	4071614682773697655
	.quad	-7268989850881752033
	.quad	-3626235149989974927
	.quad	-5508311142273901510
	.quad	-7963528091525907124
	.quad	4302156120378975432
	.quad	2574445190659260070
	.quad	5649621886436583994
	.quad	863957437529681018
	.quad	-4140496364669904638
	.quad	5599566781648831201
	.quad	-8157789849713597333
	.quad	757328000475299279
	.quad	3048601227207969484
	.quad	1881863892854898748
	.quad	660227746614184826
	.quad	7910424283248918584
	.quad	-6266934757955653436
	.quad	-1339224948780144590
	.quad	8157646781924258186
	.quad	-8649906742950245254
	.quad	8602947438095056900
	.quad	-6017548786423861992
	.quad	8732736846784124854
	.quad	7957670064433263867
	.quad	2730339346335801073
	.quad	4331091674292133244
	.quad	773722398180761071
	.quad	2143601559496575054
	.quad	-6069407987786716454
	.quad	-1698653358766278131
	.quad	6678418971015640734
	.quad	7274124968545569791
	.quad	-793402836563571245
	.quad	-5471015293666756284
	.quad	-5837207135417298320
	.quad	6452726957150230812
	.quad	8852138594068330478
	.quad	7040375030171486471
	.quad	-4885010457282477512
	.quad	-2434939712866548901
	.quad	-8616720652128235556
	.quad	-4110860504540188678
	.quad	-4211163054503197774
	.quad	4302622904190902277
	.quad	-4323953603796554381
	.quad	-8192309187197107837
	.quad	-7966024840978791425
	.quad	-4597044040449118367
	.quad	-7060803219010100500
	.quad	794788340683140464
	.quad	-5884254285051282663
	.quad	2111980021835451892
	.quad	-5086012348022918040
	.quad	-3384268977381776389
	.quad	-4896906469902582943
	.quad	3507400651677792634
	.quad	2157603145917523765
	.quad	-2114851401515407246
	.quad	-7471739577835287689
	.quad	-5379809933286454987
	.quad	-8835106627185206541
	.quad	2608698124264697552
	.quad	-3179788908133259935
	.quad	-684069943791820422
	.quad	9020678594649421272
	.quad	-3705444559692808455
	.quad	-6205619158396947461
	.quad	-2830013720935188843
	.quad	-5774645926098551567
	.quad	-5910881771259737446
	.quad	-1
# WAS .section	.rodata.kFFDHE4096Data.79,"a"
.text
	.align 32
	.type	kFFDHE4096Data.79, @object
	.size	kFFDHE4096Data.79, 512
.LkFFDHE4096Data.79_local_target:
kFFDHE4096Data.79:
	.quad	-1
	.quad	-4140496364664168598
	.quad	5599566781648831201
	.quad	-8157789849713597333
	.quad	757328000475299279
	.quad	3048601227207969484
	.quad	1881863892854898748
	.quad	660227746614184826
	.quad	7910424283248918584
	.quad	-6266934757955653436
	.quad	-1339224948780144590
	.quad	8157646781924258186
	.quad	-8649906742950245254
	.quad	8602947438095056900
	.quad	-6017548786423861992
	.quad	8732736846784124854
	.quad	7957670064433263867
	.quad	2730339346335801073
	.quad	4331091674292133244
	.quad	773722398180761071
	.quad	2143601559496575054
	.quad	-6069407987786716454
	.quad	-1698653358766278131
	.quad	6678418971015640734
	.quad	7274124968545569791
	.quad	-793402836563571245
	.quad	-5471015293666756284
	.quad	-5837207135417298320
	.quad	6452726957150230812
	.quad	8852138594068330478
	.quad	7040375030171486471
	.quad	-4885010457282477512
	.quad	-2434939712866548901
	.quad	-8616720652128235556
	.quad	-4110860504540188678
	.quad	-4211163054503197774
	.quad	4302622904190902277
	.quad	-4323953603796554381
	.quad	-8192309187197107837
	.quad	-7966024840978791425
	.quad	-4597044040449118367
	.quad	-7060803219010100500
	.quad	794788340683140464
	.quad	-5884254285051282663
	.quad	2111980021835451892
	.quad	-5086012348022918040
	.quad	-3384268977381776389
	.quad	-4896906469902582943
	.quad	3507400651677792634
	.quad	2157603145917523765
	.quad	-2114851401515407246
	.quad	-7471739577835287689
	.quad	-5379809933286454987
	.quad	-8835106627185206541
	.quad	2608698124264697552
	.quad	-3179788908133259935
	.quad	-684069943791820422
	.quad	9020678594649421272
	.quad	-3705444559692808455
	.quad	-6205619158396947461
	.quad	-2830013720935188843
	.quad	-5774645926098551567
	.quad	-5910881771259737446
	.quad	-1
# WAS .section	.rodata.kFFDHE3072Data.80,"a"
.text
	.align 32
	.type	kFFDHE3072Data.80, @object
	.size	kFFDHE3072Data.80, 384
.LkFFDHE3072Data.80_local_target:
kFFDHE3072Data.80:
	.quad	-1
	.quad	2730339346338426423
	.quad	4331091674292133244
	.quad	773722398180761071
	.quad	2143601559496575054
	.quad	-6069407987786716454
	.quad	-1698653358766278131
	.quad	6678418971015640734
	.quad	7274124968545569791
	.quad	-793402836563571245
	.quad	-5471015293666756284
	.quad	-5837207135417298320
	.quad	6452726957150230812
	.quad	8852138594068330478
	.quad	7040375030171486471
	.quad	-4885010457282477512
	.quad	-2434939712866548901
	.quad	-8616720652128235556
	.quad	-4110860504540188678
	.quad	-4211163054503197774
	.quad	4302622904190902277
	.quad	-4323953603796554381
	.quad	-8192309187197107837
	.quad	-7966024840978791425
	.quad	-4597044040449118367
	.quad	-7060803219010100500
	.quad	794788340683140464
	.quad	-5884254285051282663
	.quad	2111980021835451892
	.quad	-5086012348022918040
	.quad	-3384268977381776389
	.quad	-4896906469902582943
	.quad	3507400651677792634
	.quad	2157603145917523765
	.quad	-2114851401515407246
	.quad	-7471739577835287689
	.quad	-5379809933286454987
	.quad	-8835106627185206541
	.quad	2608698124264697552
	.quad	-3179788908133259935
	.quad	-684069943791820422
	.quad	9020678594649421272
	.quad	-3705444559692808455
	.quad	-6205619158396947461
	.quad	-2830013720935188843
	.quad	-5774645926098551567
	.quad	-5910881771259737446
	.quad	-1
# WAS .section	.rodata.kFFDHE2048Data.81,"a"
.text
	.align 32
	.type	kFFDHE2048Data.81, @object
	.size	kFFDHE2048Data.81, 256
.LkFFDHE2048Data.81_local_target:
kFFDHE2048Data.81:
	.quad	-1
	.quad	-8616720652127675241
	.quad	-4110860504540188678
	.quad	-4211163054503197774
	.quad	4302622904190902277
	.quad	-4323953603796554381
	.quad	-8192309187197107837
	.quad	-7966024840978791425
	.quad	-4597044040449118367
	.quad	-7060803219010100500
	.quad	794788340683140464
	.quad	-5884254285051282663
	.quad	2111980021835451892
	.quad	-5086012348022918040
	.quad	-3384268977381776389
	.quad	-4896906469902582943
	.quad	3507400651677792634
	.quad	2157603145917523765
	.quad	-2114851401515407246
	.quad	-7471739577835287689
	.quad	-5379809933286454987
	.quad	-8835106627185206541
	.quad	2608698124264697552
	.quad	-3179788908133259935
	.quad	-684069943791820422
	.quad	9020678594649421272
	.quad	-3705444559692808455
	.quad	-6205619158396947461
	.quad	-2830013720935188843
	.quad	-5774645926098551567
	.quad	-5910881771259737446
	.quad	-1
# WAS .section	.rodata.zero.82,"a"
.text
	.align 32
	.type	zero.82, @object
	.size	zero.82, 32
.Lzero.82_local_target:
zero.82:
	.zero	32
# WAS .section	.rodata.kZeros.83,"a"
.text
	.align 32
	.type	kZeros.83, @object
	.size	kZeros.83, 32
.LkZeros.83_local_target:
kZeros.83:
	.zero	32
# WAS .section	.rodata.kDefaultAdditionalData.85,"a"
.text
	.align 32
	.type	kDefaultAdditionalData.85, @object
	.size	kDefaultAdditionalData.85, 32
.LkDefaultAdditionalData.85_local_target:
kDefaultAdditionalData.85:
	.zero	32
# WAS .section	.rodata.tab.86,"a"
.text
	.align 32
	.type	tab.86, @object
	.size	tab.86, 32
.Ltab.86_local_target:
tab.86:
	.long	0
	.long	1
	.long	0
	.long	-1
	.long	0
	.long	-1
	.long	0
	.long	1
# WAS .section	.rodata.kOneLimbs.87,"a"
.text
	.align 8
	.type	kOneLimbs.87, @object
	.size	kOneLimbs.87, 8
.LkOneLimbs.87_local_target:
kOneLimbs.87:
	.quad	1
# WAS .section	.rodata.iotas,"a"
.text
	.align 32
	.type	iotas, @object
	.size	iotas, 192
.Liotas_local_target:
iotas:
	.quad	1
	.quad	32898
	.quad	-9223372036854742902
	.quad	-9223372034707259392
	.quad	32907
	.quad	2147483649
	.quad	-9223372034707259263
	.quad	-9223372036854743031
	.quad	138
	.quad	136
	.quad	2147516425
	.quad	2147483658
	.quad	2147516555
	.quad	-9223372036854775669
	.quad	-9223372036854742903
	.quad	-9223372036854743037
	.quad	-9223372036854743038
	.quad	-9223372036854775680
	.quad	32778
	.quad	-9223372034707292150
	.quad	-9223372034707259263
	.quad	-9223372036854742912
	.quad	2147483649
	.quad	-9223372034707259384
	.section	.bss.g_self_test_once_eddsa,"aw",@nobits
	.align 4
	.type	g_self_test_once_eddsa, @object
	.size	g_self_test_once_eddsa, 4
g_self_test_once_eddsa:
.Lg_self_test_once_eddsa_local_target:

	.zero	4
	.section	.bss.g_self_test_once_ml_kem,"aw",@nobits
	.align 4
	.type	g_self_test_once_ml_kem, @object
	.size	g_self_test_once_ml_kem, 4
g_self_test_once_ml_kem:
.Lg_self_test_once_ml_kem_local_target:

	.zero	4
	.section	.bss.g_self_test_once_ffdh,"aw",@nobits
	.align 4
	.type	g_self_test_once_ffdh, @object
	.size	g_self_test_once_ffdh, 4
g_self_test_once_ffdh:
.Lg_self_test_once_ffdh_local_target:

	.zero	4
	.section	.bss.g_self_test_once_ecc,"aw",@nobits
	.align 4
	.type	g_self_test_once_ecc, @object
	.size	g_self_test_once_ecc, 4
g_self_test_once_ecc:
.Lg_self_test_once_ecc_local_target:

	.zero	4
	.section	.bss.g_self_test_once_rsa,"aw",@nobits
	.align 4
	.type	g_self_test_once_rsa, @object
	.size	g_self_test_once_rsa, 4
g_self_test_once_rsa:
.Lg_self_test_once_rsa_local_target:

	.zero	4
	.section	.bss.RSA_get_default_method_once,"aw",@nobits
	.align 4
	.type	RSA_get_default_method_once, @object
	.size	RSA_get_default_method_once, 4
RSA_get_default_method_once:
.LRSA_get_default_method_once_local_target:

	.zero	4
	.section	.bss.RSA_get_default_method_storage,"aw",@nobits
	.align 32
	.type	RSA_get_default_method_storage, @object
	.size	RSA_get_default_method_storage, 88
RSA_get_default_method_storage:
.LRSA_get_default_method_storage_local_target:

	.zero	88
	.hidden	kBoringSSLRSASqrtTwoLen
	.globl	kBoringSSLRSASqrtTwoLen
# WAS .section	.rodata.kBoringSSLRSASqrtTwoLen,"a"
.text
	.align 8
	.type	kBoringSSLRSASqrtTwoLen, @object
	.size	kBoringSSLRSASqrtTwoLen, 8
.LkBoringSSLRSASqrtTwoLen_local_target:
kBoringSSLRSASqrtTwoLen:
	.quad	32
	.hidden	kBoringSSLRSASqrtTwo
	.globl	kBoringSSLRSASqrtTwo
# WAS .section	.rodata.kBoringSSLRSASqrtTwo,"a"
.text
	.align 32
	.type	kBoringSSLRSASqrtTwo, @object
	.size	kBoringSSLRSASqrtTwo, 256
.LkBoringSSLRSASqrtTwo_local_target:
kBoringSSLRSASqrtTwo:
	.quad	5583443903680603105
	.quad	6903894515619111739
	.quad	-4447735234400260061
	.quad	-455762681664690171
	.quad	-144652781285673088
	.quad	-3292330930849662846
	.quad	1766407411984626610
	.quad	-4468487966343832525
	.quad	-2404814165548301886
	.quad	-675049287945415929
	.quad	3686863284026875583
	.quad	73425395062551855
	.quad	-5129824158112139577
	.quad	4784189208739231313
	.quad	-805123793574347252
	.quad	-9135188219959374083
	.quad	-1538928659962738102
	.quad	-779384352672950226
	.quad	-3807121394736314291
	.quad	-4119200863783228964
	.quad	5047053531031031347
	.quad	-3841081675836013174
	.quad	5982359616459912059
	.quad	-3305590968015708338
	.quad	8648185851495982952
	.quad	1113700130682075978
	.quad	-6290967448065418439
	.quad	5403337707126039235
	.quad	-1362430672824461035
	.quad	2121020303797364812
	.quad	6448461645324402335
	.quad	-5402926248376769404
	.section	.bss.g_small_factors_once,"aw",@nobits
	.align 4
	.type	g_small_factors_once, @object
	.size	g_small_factors_once, 4
g_small_factors_once:
.Lg_small_factors_once_local_target:

	.zero	4
	.section	.bss.g_small_factors_storage,"aw",@nobits
	.align 16
	.type	g_small_factors_storage, @object
	.size	g_small_factors_storage, 24
g_small_factors_storage:
.Lg_small_factors_storage_local_target:

	.zero	24
# WAS .section	.rodata.kSmallFactorsLimbs,"a"
.text
	.align 32
	.type	kSmallFactorsLimbs, @object
	.size	kSmallFactorsLimbs, 136
.LkSmallFactorsLimbs_local_target:
kSmallFactorsLimbs:
	.quad	-4309782995084712991
	.quad	8148734346248676703
	.quad	-7646510132918400926
	.quad	4517730358157349163
	.quad	7734177320850080899
	.quad	757968232112212081
	.quad	8633734662503670026
	.quad	-2640354292540616525
	.quad	5389355995458437739
	.quad	-1479623847028275053
	.quad	-2619631085558135356
	.quad	-2856941152863598706
	.quad	3364315195482710596
	.quad	-4925511846872794390
	.quad	3957848698924598975
	.quad	6856453772018472743
	.quad	6065
# WAS .section	.rodata.kPKCS1SigPrefixes,"a"
.text
	.align 32
	.type	kPKCS1SigPrefixes, @object
	.size	kPKCS1SigPrefixes, 364
.LkPKCS1SigPrefixes_local_target:
kPKCS1SigPrefixes:
	.long	4
	.byte	16
	.byte	18
	.string	"0 0\f\006\b*\206H\206\367\r\002\005\005"
	.string	"\004\020"
	.zero	3
	.long	64
	.byte	20
	.byte	15
	.string	"0!0\t\006\005+\016\003\002\032\005"
	.string	"\004\024"
	.zero	3
	.zero	3
	.long	675
	.byte	28
	.byte	19
	.string	"0-0\r\006\t`\206H\001e\003\004\002\004\005"
	.ascii	"\004\034"
	.zero	3
	.long	672
	.byte	32
	.byte	19
	.string	"010\r\006\t`\206H\001e\003\004\002\001\005"
	.ascii	"\004 "
	.zero	3
	.long	673
	.byte	48
	.byte	19
	.string	"0A0\r\006\t`\206H\001e\003\004\002\002\005"
	.ascii	"\0040"
	.zero	3
	.long	674
	.byte	64
	.byte	19
	.string	"0Q0\r\006\t`\206H\001e\003\004\002\003\005"
	.ascii	"\004@"
	.zero	3
	.long	978
	.byte	28
	.byte	19
	.string	"0-0\r\006\t`\206H\001e\003\004\002\005\005"
	.ascii	"\004\034"
	.zero	3
	.long	962
	.byte	32
	.byte	19
	.string	"010\r\006\t`\206H\001e\003\004\002\006\005"
	.ascii	"\004 "
	.zero	3
	.long	965
	.byte	28
	.byte	19
	.string	"0-0\r\006\t`\206H\001e\003\004\002\007\005"
	.ascii	"\004\034"
	.zero	3
	.long	966
	.byte	32
	.byte	19
	.string	"010\r\006\t`\206H\001e\003\004\002\b\005"
	.ascii	"\004 "
	.zero	3
	.long	967
	.byte	48
	.byte	19
	.string	"0A0\r\006\t`\206H\001e\003\004\002\t\005"
	.ascii	"\0040"
	.zero	3
	.long	968
	.byte	64
	.byte	19
	.string	"0Q0\r\006\t`\206H\001e\003\004\002\n\005"
	.ascii	"\004@"
	.zero	3
	.long	0
	.byte	0
	.byte	0
	.string	""
	.string	""
	.zero	17
	.zero	3
	.section	.bss.g_rsa_ex_data_class,"aw",@nobits
	.align 32
	.type	g_rsa_ex_data_class, @object
	.size	g_rsa_ex_data_class, 72
g_rsa_ex_data_class:
.Lg_rsa_ex_data_class_local_target:

	.zero	72
# WAS .section	.rodata.kPSSZeroes,"a"
.text
	.align 8
	.type	kPSSZeroes, @object
	.size	kPSSZeroes, 8
.LkPSSZeroes_local_target:
kPSSZeroes:
	.zero	8
	.section	.bss.wait_for_entropy_once,"aw",@nobits
	.align 4
	.type	wait_for_entropy_once, @object
	.size	wait_for_entropy_once, 4
wait_for_entropy_once:
.Lwait_for_entropy_once_local_target:

	.zero	4
	.section	.bss.rand_once,"aw",@nobits
	.align 4
	.type	rand_once, @object
	.size	rand_once, 4
rand_once:
.Lrand_once_local_target:

	.zero	4
	.section	.bss.extra_getrandom_flags_for_seed,"aw",@nobits
	.align 4
	.type	extra_getrandom_flags_for_seed, @object
	.size	extra_getrandom_flags_for_seed, 4
extra_getrandom_flags_for_seed:
.Lextra_getrandom_flags_for_seed_local_target:

	.zero	4
	.section	.bss.getrandom_ready,"aw",@nobits
	.align 4
	.type	getrandom_ready, @object
	.size	getrandom_ready, 4
getrandom_ready:
.Lgetrandom_ready_local_target:

	.zero	4
	.section	.bss.urandom_fd,"aw",@nobits
	.align 4
	.type	urandom_fd, @object
	.size	urandom_fd, 4
urandom_fd:
.Lurandom_fd_local_target:

	.zero	4
	.section	.bss.snapsafety_state,"aw",@nobits
	.align 4
	.type	snapsafety_state, @object
	.size	snapsafety_state, 4
snapsafety_state:
.Lsnapsafety_state_local_target:

	.zero	4
	.section	.bss.sgc_addr,"aw",@nobits
	.align 8
	.type	sgc_addr, @object
	.size	sgc_addr, 8
sgc_addr:
.Lsgc_addr_local_target:

	.zero	8
	.section	.bss.aws_snapsafe_init,"aw",@nobits
	.align 4
	.type	aws_snapsafe_init, @object
	.size	aws_snapsafe_init, 4
aws_snapsafe_init:
.Laws_snapsafe_init_local_target:

	.zero	4
	.section	.bss.state_clear_all_lock,"aw",@nobits
	.align 32
	.type	state_clear_all_lock, @object
	.size	state_clear_all_lock, 56
state_clear_all_lock:
.Lstate_clear_all_lock_local_target:

	.zero	56
	.section	.bss.thread_states_list_lock,"aw",@nobits
	.align 32
	.type	thread_states_list_lock, @object
	.size	thread_states_list_lock, 56
thread_states_list_lock:
.Lthread_states_list_lock_local_target:

	.zero	56
	.section	.bss.thread_states_list,"aw",@nobits
	.align 8
	.type	thread_states_list, @object
	.size	thread_states_list, 8
thread_states_list:
.Lthread_states_list_local_target:

	.zero	8
	.section	.bss.g_ignore_madv_wipeonfork,"aw",@nobits
	.align 4
	.type	g_ignore_madv_wipeonfork, @object
	.size	g_ignore_madv_wipeonfork, 4
g_ignore_madv_wipeonfork:
.Lg_ignore_madv_wipeonfork_local_target:

	.zero	4
	.section	.bss.g_fork_generation,"aw",@nobits
	.align 8
	.type	g_fork_generation, @object
	.size	g_fork_generation, 8
g_fork_generation:
.Lg_fork_generation_local_target:

	.zero	8
	.section	.bss.g_fork_detect_addr,"aw",@nobits
	.align 8
	.type	g_fork_detect_addr, @object
	.size	g_fork_detect_addr, 8
g_fork_detect_addr:
.Lg_fork_detect_addr_local_target:

	.zero	8
	.section	.bss.g_fork_detect_lock,"aw",@nobits
	.align 32
	.type	g_fork_detect_lock, @object
	.size	g_fork_detect_lock, 56
g_fork_detect_lock:
.Lg_fork_detect_lock_local_target:

	.zero	56
	.section	.bss.g_fork_detect_once,"aw",@nobits
	.align 4
	.type	g_fork_detect_once, @object
	.size	g_fork_detect_once, 4
g_fork_detect_once:
.Lg_fork_detect_once_local_target:

	.zero	4
	.section	.bss.generation_nonce_lock,"aw",@nobits
	.align 32
	.type	generation_nonce_lock, @object
	.size	generation_nonce_lock, 56
generation_nonce_lock:
.Lgeneration_nonce_lock_local_target:

	.zero	56
	.section	.bss.bcc_init_once,"aw",@nobits
	.align 4
	.type	bcc_init_once, @object
	.size	bcc_init_once, 4
bcc_init_once:
.Lbcc_init_once_local_target:

	.zero	4
	.section	.bss.generation_nonce,"aw",@nobits
	.align 16
	.type	generation_nonce, @object
	.size	generation_nonce, 16
generation_nonce:
.Lgeneration_nonce_local_target:

	.zero	16
	.section	.bss.bcc_key,"aw",@nobits
	.align 32
	.type	bcc_key, @object
	.size	bcc_key, 244
bcc_key:
.Lbcc_key_local_target:

	.zero	244
	.hidden	ml_kem_zetas_ref
	.globl	ml_kem_zetas_ref
# WAS .section	.rodata.ml_kem_zetas_ref,"a"
.text
	.align 32
	.type	ml_kem_zetas_ref, @object
	.size	ml_kem_zetas_ref, 256
.Lml_kem_zetas_ref_local_target:
ml_kem_zetas_ref:
	.value	-1044
	.value	-758
	.value	-359
	.value	-1517
	.value	1493
	.value	1422
	.value	287
	.value	202
	.value	-171
	.value	622
	.value	1577
	.value	182
	.value	962
	.value	-1202
	.value	-1474
	.value	1468
	.value	573
	.value	-1325
	.value	264
	.value	383
	.value	-829
	.value	1458
	.value	-1602
	.value	-130
	.value	-681
	.value	1017
	.value	732
	.value	608
	.value	-1542
	.value	411
	.value	-205
	.value	-1571
	.value	1223
	.value	652
	.value	-552
	.value	1015
	.value	-1293
	.value	1491
	.value	-282
	.value	-1544
	.value	516
	.value	-8
	.value	-320
	.value	-666
	.value	-1618
	.value	-1162
	.value	126
	.value	1469
	.value	-853
	.value	-90
	.value	-271
	.value	830
	.value	107
	.value	-1421
	.value	-247
	.value	-951
	.value	-398
	.value	961
	.value	-1508
	.value	-725
	.value	448
	.value	-1065
	.value	677
	.value	-1275
	.value	-1103
	.value	430
	.value	555
	.value	843
	.value	-1251
	.value	871
	.value	1550
	.value	105
	.value	422
	.value	587
	.value	177
	.value	-235
	.value	-291
	.value	-460
	.value	1574
	.value	1653
	.value	-246
	.value	778
	.value	1159
	.value	-147
	.value	-777
	.value	1483
	.value	-602
	.value	1119
	.value	-1590
	.value	644
	.value	-872
	.value	349
	.value	418
	.value	329
	.value	-156
	.value	-75
	.value	817
	.value	1097
	.value	603
	.value	610
	.value	1322
	.value	-1285
	.value	-1465
	.value	384
	.value	-1215
	.value	-136
	.value	1218
	.value	-1335
	.value	-874
	.value	220
	.value	-1187
	.value	-1659
	.value	-1185
	.value	-1530
	.value	-1278
	.value	794
	.value	-1510
	.value	-854
	.value	-870
	.value	478
	.value	-108
	.value	-308
	.value	996
	.value	991
	.value	958
	.value	-1460
	.value	1522
	.value	1628
	.section	.bss.KEM_ml_kem_1024_once,"aw",@nobits
	.align 4
	.type	KEM_ml_kem_1024_once, @object
	.size	KEM_ml_kem_1024_once, 4
KEM_ml_kem_1024_once:
.LKEM_ml_kem_1024_once_local_target:

	.zero	4
	.section	.bss.KEM_ml_kem_1024_storage,"aw",@nobits
	.align 32
	.type	KEM_ml_kem_1024_storage, @object
	.size	KEM_ml_kem_1024_storage, 88
KEM_ml_kem_1024_storage:
.LKEM_ml_kem_1024_storage_local_target:

	.zero	88
	.section	.bss.KEM_ml_kem_768_once,"aw",@nobits
	.align 4
	.type	KEM_ml_kem_768_once, @object
	.size	KEM_ml_kem_768_once, 4
KEM_ml_kem_768_once:
.LKEM_ml_kem_768_once_local_target:

	.zero	4
	.section	.bss.KEM_ml_kem_768_storage,"aw",@nobits
	.align 32
	.type	KEM_ml_kem_768_storage, @object
	.size	KEM_ml_kem_768_storage, 88
KEM_ml_kem_768_storage:
.LKEM_ml_kem_768_storage_local_target:

	.zero	88
	.section	.bss.KEM_ml_kem_512_once,"aw",@nobits
	.align 4
	.type	KEM_ml_kem_512_once, @object
	.size	KEM_ml_kem_512_once, 4
KEM_ml_kem_512_once:
.LKEM_ml_kem_512_once_local_target:

	.zero	4
	.section	.bss.KEM_ml_kem_512_storage,"aw",@nobits
	.align 32
	.type	KEM_ml_kem_512_storage, @object
	.size	KEM_ml_kem_512_storage, 88
KEM_ml_kem_512_storage:
.LKEM_ml_kem_512_storage_local_target:

	.zero	88
	.section	.bss.kem_ml_kem_512_method_once,"aw",@nobits
	.align 4
	.type	kem_ml_kem_512_method_once, @object
	.size	kem_ml_kem_512_method_once, 4
kem_ml_kem_512_method_once:
.Lkem_ml_kem_512_method_once_local_target:

	.zero	4
	.section	.bss.kem_ml_kem_512_method_storage,"aw",@nobits
	.align 32
	.type	kem_ml_kem_512_method_storage, @object
	.size	kem_ml_kem_512_method_storage, 40
kem_ml_kem_512_method_storage:
.Lkem_ml_kem_512_method_storage_local_target:

	.zero	40
	.section	.bss.kem_ml_kem_768_method_once,"aw",@nobits
	.align 4
	.type	kem_ml_kem_768_method_once, @object
	.size	kem_ml_kem_768_method_once, 4
kem_ml_kem_768_method_once:
.Lkem_ml_kem_768_method_once_local_target:

	.zero	4
	.section	.bss.kem_ml_kem_768_method_storage,"aw",@nobits
	.align 32
	.type	kem_ml_kem_768_method_storage, @object
	.size	kem_ml_kem_768_method_storage, 40
kem_ml_kem_768_method_storage:
.Lkem_ml_kem_768_method_storage_local_target:

	.zero	40
	.section	.bss.kem_ml_kem_1024_method_once,"aw",@nobits
	.align 4
	.type	kem_ml_kem_1024_method_once, @object
	.size	kem_ml_kem_1024_method_once, 4
kem_ml_kem_1024_method_once:
.Lkem_ml_kem_1024_method_once_local_target:

	.zero	4
	.section	.bss.kem_ml_kem_1024_method_storage,"aw",@nobits
	.align 32
	.type	kem_ml_kem_1024_method_storage, @object
	.size	kem_ml_kem_1024_method_storage, 40
kem_ml_kem_1024_method_storage:
.Lkem_ml_kem_1024_method_storage_local_target:

	.zero	40
# WAS .section	.rodata.kOIDMLKEM1024,"a"
.text
	.align 8
	.type	kOIDMLKEM1024, @object
	.size	kOIDMLKEM1024, 9
.LkOIDMLKEM1024_local_target:
kOIDMLKEM1024:
	.ascii	"`\206H\001e\003\004\004\003"
# WAS .section	.rodata.kOIDMLKEM768,"a"
.text
	.align 8
	.type	kOIDMLKEM768, @object
	.size	kOIDMLKEM768, 9
.LkOIDMLKEM768_local_target:
kOIDMLKEM768:
	.ascii	"`\206H\001e\003\004\004\002"
# WAS .section	.rodata.kOIDMLKEM512,"a"
.text
	.align 8
	.type	kOIDMLKEM512, @object
	.size	kOIDMLKEM512, 9
.LkOIDMLKEM512_local_target:
kOIDMLKEM512:
	.ascii	"`\206H\001e\003\004\004\001"
	.section	.bss.sskdf_variant_hmac_once,"aw",@nobits
	.align 4
	.type	sskdf_variant_hmac_once, @object
	.size	sskdf_variant_hmac_once, 4
sskdf_variant_hmac_once:
.Lsskdf_variant_hmac_once_local_target:

	.zero	4
	.section	.bss.sskdf_variant_hmac_storage,"aw",@nobits
	.align 16
	.type	sskdf_variant_hmac_storage, @object
	.size	sskdf_variant_hmac_storage, 16
sskdf_variant_hmac_storage:
.Lsskdf_variant_hmac_storage_local_target:

	.zero	16
	.section	.bss.sskdf_variant_digest_once,"aw",@nobits
	.align 4
	.type	sskdf_variant_digest_once, @object
	.size	sskdf_variant_digest_once, 4
sskdf_variant_digest_once:
.Lsskdf_variant_digest_once_local_target:

	.zero	4
	.section	.bss.sskdf_variant_digest_storage,"aw",@nobits
	.align 16
	.type	sskdf_variant_digest_storage, @object
	.size	sskdf_variant_digest_storage, 16
sskdf_variant_digest_storage:
.Lsskdf_variant_digest_storage_local_target:

	.zero	16
	.section	.bss.AWSLC_hmac_in_place_methods_once,"aw",@nobits
	.align 4
	.type	AWSLC_hmac_in_place_methods_once, @object
	.size	AWSLC_hmac_in_place_methods_once, 4
AWSLC_hmac_in_place_methods_once:
.LAWSLC_hmac_in_place_methods_once_local_target:

	.zero	4
	.section	.bss.AWSLC_hmac_in_place_methods_storage,"aw",@nobits
	.align 32
	.type	AWSLC_hmac_in_place_methods_storage, @object
	.size	AWSLC_hmac_in_place_methods_storage, 448
AWSLC_hmac_in_place_methods_storage:
.LAWSLC_hmac_in_place_methods_storage_local_target:

	.zero	448
	.section	.bss.EVP_PKEY_rsa_pss_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_rsa_pss_pkey_meth_once, @object
	.size	EVP_PKEY_rsa_pss_pkey_meth_once, 4
EVP_PKEY_rsa_pss_pkey_meth_once:
.LEVP_PKEY_rsa_pss_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_rsa_pss_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_rsa_pss_pkey_meth_storage, @object
	.size	EVP_PKEY_rsa_pss_pkey_meth_storage, 176
EVP_PKEY_rsa_pss_pkey_meth_storage:
.LEVP_PKEY_rsa_pss_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_rsa_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_rsa_pkey_meth_once, @object
	.size	EVP_PKEY_rsa_pkey_meth_once, 4
EVP_PKEY_rsa_pkey_meth_once:
.LEVP_PKEY_rsa_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_rsa_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_rsa_pkey_meth_storage, @object
	.size	EVP_PKEY_rsa_pkey_meth_storage, 176
EVP_PKEY_rsa_pkey_meth_storage:
.LEVP_PKEY_rsa_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_kem_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_kem_pkey_meth_once, @object
	.size	EVP_PKEY_kem_pkey_meth_once, 4
EVP_PKEY_kem_pkey_meth_once:
.LEVP_PKEY_kem_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_kem_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_kem_pkey_meth_storage, @object
	.size	EVP_PKEY_kem_pkey_meth_storage, 176
EVP_PKEY_kem_pkey_meth_storage:
.LEVP_PKEY_kem_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_hmac_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_hmac_pkey_meth_once, @object
	.size	EVP_PKEY_hmac_pkey_meth_once, 4
EVP_PKEY_hmac_pkey_meth_once:
.LEVP_PKEY_hmac_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_hmac_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_hmac_pkey_meth_storage, @object
	.size	EVP_PKEY_hmac_pkey_meth_storage, 176
EVP_PKEY_hmac_pkey_meth_storage:
.LEVP_PKEY_hmac_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_hkdf_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_hkdf_pkey_meth_once, @object
	.size	EVP_PKEY_hkdf_pkey_meth_once, 4
EVP_PKEY_hkdf_pkey_meth_once:
.LEVP_PKEY_hkdf_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_hkdf_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_hkdf_pkey_meth_storage, @object
	.size	EVP_PKEY_hkdf_pkey_meth_storage, 176
EVP_PKEY_hkdf_pkey_meth_storage:
.LEVP_PKEY_hkdf_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_ed25519_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_ed25519_pkey_meth_once, @object
	.size	EVP_PKEY_ed25519_pkey_meth_once, 4
EVP_PKEY_ed25519_pkey_meth_once:
.LEVP_PKEY_ed25519_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_ed25519_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_ed25519_pkey_meth_storage, @object
	.size	EVP_PKEY_ed25519_pkey_meth_storage, 176
EVP_PKEY_ed25519_pkey_meth_storage:
.LEVP_PKEY_ed25519_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.EVP_PKEY_ec_pkey_meth_once,"aw",@nobits
	.align 4
	.type	EVP_PKEY_ec_pkey_meth_once, @object
	.size	EVP_PKEY_ec_pkey_meth_once, 4
EVP_PKEY_ec_pkey_meth_once:
.LEVP_PKEY_ec_pkey_meth_once_local_target:

	.zero	4
	.section	.bss.EVP_PKEY_ec_pkey_meth_storage,"aw",@nobits
	.align 32
	.type	EVP_PKEY_ec_pkey_meth_storage, @object
	.size	EVP_PKEY_ec_pkey_meth_storage, 176
EVP_PKEY_ec_pkey_meth_storage:
.LEVP_PKEY_ec_pkey_meth_storage_local_target:

	.zero	176
	.section	.bss.AWSLC_fips_evp_pkey_methods_once,"aw",@nobits
	.align 4
	.type	AWSLC_fips_evp_pkey_methods_once, @object
	.size	AWSLC_fips_evp_pkey_methods_once, 4
AWSLC_fips_evp_pkey_methods_once:
.LAWSLC_fips_evp_pkey_methods_once_local_target:

	.zero	4
	.section	.bss.AWSLC_fips_evp_pkey_methods_storage,"aw",@nobits
	.align 32
	.type	AWSLC_fips_evp_pkey_methods_storage, @object
	.size	AWSLC_fips_evp_pkey_methods_storage, 56
AWSLC_fips_evp_pkey_methods_storage:
.LAWSLC_fips_evp_pkey_methods_storage_local_target:

	.zero	56
	.section	.bss.EVP_MD_pctx_ops_once,"aw",@nobits
	.align 4
	.type	EVP_MD_pctx_ops_once, @object
	.size	EVP_MD_pctx_ops_once, 4
EVP_MD_pctx_ops_once:
.LEVP_MD_pctx_ops_once_local_target:

	.zero	4
	.section	.bss.EVP_MD_pctx_ops_storage,"aw",@nobits
	.align 16
	.type	EVP_MD_pctx_ops_storage, @object
	.size	EVP_MD_pctx_ops_storage, 16
EVP_MD_pctx_ops_storage:
.LEVP_MD_pctx_ops_storage_local_target:

	.zero	16
	.section	.bss.EC_GFp_nistp521_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_nistp521_method_once, @object
	.size	EC_GFp_nistp521_method_once, 4
EC_GFp_nistp521_method_once:
.LEC_GFp_nistp521_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_nistp521_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_nistp521_method_storage, @object
	.size	EC_GFp_nistp521_method_storage, 160
EC_GFp_nistp521_method_storage:
.LEC_GFp_nistp521_method_storage_local_target:

	.zero	160
# WAS .section	.rodata.p521_g_pre_comp,"a"
.text
	.align 32
	.type	p521_g_pre_comp, @object
	.size	p521_g_pre_comp, 62208
.Lp521_g_pre_comp_local_target:
p521_g_pre_comp:
	.quad	-468798559011619482
	.quad	3695401138005885595
	.quad	-135740037768697634
	.quad	-6824256941130819288
	.quad	-565008924583051846
	.quad	-7177469824220547807
	.quad	-7043969127616760766
	.quad	-8823107236856010291
	.quad	198
	.quad	-8593267801767975344
	.quad	3836064706166178368
	.quad	-4228676635086485663
	.quad	-7498930326476675520
	.quad	1706790690937005612
	.quad	-7424953328857299864
	.quad	6668247425720589273
	.quad	4118940400423256068
	.quad	280
	.quad	-6516254361206149763
	.quad	-5857898309360621051
	.quad	2136602978467963419
	.quad	-5963022873554046459
	.quad	-1896725653857071663
	.quad	-5392376266395641159
	.quad	-2801966412378827655
	.quad	4410471283987913053
	.quad	423
	.quad	6870395858673123557
	.quad	-1079234723917230014
	.quad	3268151880391575308
	.quad	3327549687598511536
	.quad	-3244655379147796756
	.quad	-1056798177302346985
	.quad	-7521144664322730766
	.quad	-7276768622177755687
	.quad	318
	.quad	-3050255713469255560
	.quad	3015126857140082488
	.quad	8147854703766436259
	.quad	4052127428597781539
	.quad	-3529737195068347164
	.quad	8816199781501046052
	.quad	4448487233024864447
	.quad	3167091743520993991
	.quad	101
	.quad	1674428566410924235
	.quad	-3319145067941922824
	.quad	3536803593333374841
	.quad	-4942533701374512268
	.quad	-1308269537007472505
	.quad	2078691116138233937
	.quad	-8490566154375327087
	.quad	-1806194287839160596
	.quad	347
	.quad	130232239540071636
	.quad	8040402326827196826
	.quad	-3916197424994731068
	.quad	-8345015032210876200
	.quad	-1145934370355196835
	.quad	6855288873963500072
	.quad	-1245702856828831220
	.quad	-3039409003630206138
	.quad	86
	.quad	6659570169488418075
	.quad	-7028305741687620485
	.quad	-7700131418679141793
	.quad	7768976073843056171
	.quad	8204390333565099605
	.quad	-5348725151894277923
	.quad	-3325853923786980232
	.quad	3250329663614132496
	.quad	61
	.quad	2253315462140781063
	.quad	5715273250289559654
	.quad	-881202634384854641
	.quad	8370469019005016629
	.quad	3191558198956308069
	.quad	-1354365110431824231
	.quad	-6704242371454380920
	.quad	6019592352138663974
	.quad	344
	.quad	4224634314835176014
	.quad	8317069792742215476
	.quad	1149947116454402173
	.quad	966555887337974916
	.quad	-4024606018576366482
	.quad	3497227994355526582
	.quad	816652890577736590
	.quad	3342106993869321119
	.quad	42
	.quad	-1386862197693686886
	.quad	97955832985659650
	.quad	-3343048697962753915
	.quad	-874888879115347429
	.quad	4895180063334012498
	.quad	-1342697291083447147
	.quad	8005774334423668175
	.quad	8467913377084997460
	.quad	138
	.quad	6379154889138292744
	.quad	-2545517972823106723
	.quad	4076376795537560374
	.quad	2002035914297222315
	.quad	-1355981696256067541
	.quad	4241641403240481939
	.quad	-7130138880890654167
	.quad	-346707027073881724
	.quad	150
	.quad	1767527120746827175
	.quad	5470812521406984184
	.quad	3841752896298847977
	.quad	3658146691988363626
	.quad	5687433620866434657
	.quad	-7784693173003697608
	.quad	-2916541268183710182
	.quad	4510629375423983004
	.quad	126
	.quad	2961681882534277577
	.quad	7032910332890180087
	.quad	2801200713433070531
	.quad	-4486327020300765633
	.quad	-7171305458066644694
	.quad	-3542914294388350522
	.quad	1880577039898860040
	.quad	-1272008039332844119
	.quad	264
	.quad	-1607816713419039915
	.quad	-7237963446027840835
	.quad	8680051787194970909
	.quad	-5107981206758092802
	.quad	-2983716998014136815
	.quad	-5117272042025383854
	.quad	4707827062945361935
	.quad	7699073698340562416
	.quad	107
	.quad	6211647513117021285
	.quad	5115403958758325721
	.quad	2398415442274601362
	.quad	9119897859129805440
	.quad	5431922146257952469
	.quad	-2376609047616811846
	.quad	8999965718936928099
	.quad	7555394297914793322
	.quad	436
	.quad	8572627902415309536
	.quad	-521568549369437168
	.quad	-2355811846989989873
	.quad	8505727284768801415
	.quad	-2997949353380476840
	.quad	-7354767252725255244
	.quad	-6865609657585266582
	.quad	998515433475594771
	.quad	432
	.quad	3871349090032174663
	.quad	-1832870950929476107
	.quad	-3245277292772068320
	.quad	-442946716193453072
	.quad	-8257160615519243715
	.quad	-5217047103312162647
	.quad	-4534609271133974266
	.quad	7511755129161610971
	.quad	133
	.quad	8718699653276017051
	.quad	-85776069850055196
	.quad	-7912167597925886195
	.quad	-415685118889924249
	.quad	-4313542097311759
	.quad	5023622479325647998
	.quad	-4541518747581439886
	.quad	-8228951153835232121
	.quad	153
	.quad	-6266448366692137611
	.quad	-746233462268363196
	.quad	-5698116098865380489
	.quad	8335483686735285497
	.quad	-3724214231411362009
	.quad	7481194686552198986
	.quad	-4353814707403283363
	.quad	-3037108235742876324
	.quad	311
	.quad	4823137044824377837
	.quad	4011741912139853101
	.quad	-2789559204763412645
	.quad	5054585443880968969
	.quad	1824589473892433833
	.quad	2777517606936075928
	.quad	4379844131974626064
	.quad	-3768737618793344261
	.quad	417
	.quad	-1870185455635771915
	.quad	8978786875239877473
	.quad	-4705071702052966715
	.quad	-2345220558506413419
	.quad	1732242565202159607
	.quad	-1712493372748775828
	.quad	3175840914941726306
	.quad	2350172361210936648
	.quad	282
	.quad	-6789556951380438180
	.quad	568000749711022086
	.quad	-1593156160764226590
	.quad	2265174258545438895
	.quad	5263902353301259536
	.quad	-1262633272477764990
	.quad	-2658059548843803762
	.quad	803713805133910902
	.quad	430
	.quad	-2876178023883681792
	.quad	2394582740097972310
	.quad	4334629410679148738
	.quad	1190132697240435956
	.quad	-5462474405311226866
	.quad	9040307716946417714
	.quad	7539735578626508572
	.quad	-3928684383287560186
	.quad	242
	.quad	4579074919076244704
	.quad	-2009152227127771215
	.quad	6262394003502202663
	.quad	-6262160099004453299
	.quad	2051157136516946250
	.quad	32387379087083441
	.quad	-6676458187138270766
	.quad	-1707869915255793612
	.quad	340
	.quad	4838481062198215216
	.quad	-1234502705856222355
	.quad	-3323033057172557067
	.quad	-2385970789037129312
	.quad	-690132077960075610
	.quad	1560818238087143623
	.quad	-2149860826302509761
	.quad	1143044690859280186
	.quad	205
	.quad	3852340204715300491
	.quad	-5614475512808454808
	.quad	5851648083117676092
	.quad	-9173249434994486141
	.quad	3743425359315830093
	.quad	-8702833145779616212
	.quad	7108040219971970159
	.quad	3980864870499858087
	.quad	352
	.quad	-871817293673220288
	.quad	5062044265816108211
	.quad	1421014276587083566
	.quad	2232176962157067348
	.quad	5356740996499186177
	.quad	-6930595873750334533
	.quad	-1908818149335718918
	.quad	6444739033297838533
	.quad	241
	.quad	3186621511303308764
	.quad	-919431870341485162
	.quad	4612719071954205598
	.quad	6677074658781393553
	.quad	2936051804584321328
	.quad	-435633989154085396
	.quad	-5493833007605610401
	.quad	-4159963995741607811
	.quad	372
	.quad	1764210131716410416
	.quad	466565098336141245
	.quad	5819340307513028671
	.quad	-4751823632242517749
	.quad	-5345950090082306889
	.quad	158733812759806460
	.quad	408923059965638530
	.quad	-889528028839698840
	.quad	282
	.quad	2474676183999612931
	.quad	995214035825870866
	.quad	-282387931974505694
	.quad	-3002419183363697623
	.quad	8241772296522920556
	.quad	-5371571052805446047
	.quad	29933988096277373
	.quad	-1616215078203529707
	.quad	216
	.quad	-3871275132131922663
	.quad	-6189114134222327414
	.quad	1412589371911881315
	.quad	-618246376302491760
	.quad	788049862620981808
	.quad	-8407087790175500282
	.quad	-2375154873050451732
	.quad	-5754556589643777657
	.quad	295
	.quad	5696493188436467777
	.quad	5571191922712797877
	.quad	104156783041497044
	.quad	-2038537158187169412
	.quad	-304642222627827035
	.quad	2877836959059500429
	.quad	-5911185116937373499
	.quad	-7656240363021373792
	.quad	260
	.quad	-446557192012862798
	.quad	-6387466105142156515
	.quad	535928669693065929
	.quad	-2550755621161506443
	.quad	4970375859033950611
	.quad	2737003625603548369
	.quad	5071919129595050778
	.quad	-4454342439564610470
	.quad	463
	.quad	-7887572485867771531
	.quad	4624816938469288038
	.quad	5983272226888490698
	.quad	-3876065682819666381
	.quad	-8832500598427145352
	.quad	-3749697256140346589
	.quad	7452412375193592886
	.quad	-6948691478722363612
	.quad	62
	.quad	-5038299769691654663
	.quad	3961602089357013657
	.quad	4920162688011397729
	.quad	8975704310136202266
	.quad	-6559803577581414585
	.quad	-4089817757184787496
	.quad	-2731315954402516500
	.quad	297264506913139407
	.quad	427
	.quad	884054660017660198
	.quad	-8989519961957507390
	.quad	-3479212849575833056
	.quad	8660591992591801626
	.quad	5110021195263050392
	.quad	5639569893767378085
	.quad	8090624371072895627
	.quad	1951229995981025609
	.quad	470
	.quad	-1395945647953688275
	.quad	-5334428627041345346
	.quad	-2719919129808283992
	.quad	2927497396711857423
	.quad	-7446718913282689204
	.quad	-3254133001477637239
	.quad	1576186618759492925
	.quad	-2616780823401998202
	.quad	397
	.quad	-2937473713370133477
	.quad	-4260914977499021112
	.quad	4819518771730241781
	.quad	3034509538410676823
	.quad	-6724651136707503059
	.quad	7743108537595816999
	.quad	2803504859849050294
	.quad	4214438596408194169
	.quad	229
	.quad	2633516363295001052
	.quad	-699137881118213087
	.quad	-6184198320384045383
	.quad	-3770293578490704124
	.quad	-4305706797787449472
	.quad	3507709323595261452
	.quad	-5738539796661389884
	.quad	8148004746270670032
	.quad	380
	.quad	-4091692995250790117
	.quad	-6282085910243777683
	.quad	8834394474050340914
	.quad	-6980527398280438984
	.quad	-5970710549984604956
	.quad	8834777023842391135
	.quad	-6920606483175290690
	.quad	-2758530132492721872
	.quad	338
	.quad	1835413502021324824
	.quad	-728565431672216426
	.quad	-3262803438693247037
	.quad	5338234597475120621
	.quad	-1743853396506143969
	.quad	8847021703526536473
	.quad	65213450345241385
	.quad	-599191616634060842
	.quad	111
	.quad	-1737242432489792403
	.quad	2217808702364843705
	.quad	-7225262201618771308
	.quad	-7967003903616066875
	.quad	1798378873390004396
	.quad	-1569790217672754217
	.quad	9170361805941477350
	.quad	-3831761258025733305
	.quad	70
	.quad	3549075960764918849
	.quad	-7425367874876568983
	.quad	3089127646995261005
	.quad	-1656369911527364040
	.quad	7428693318920667177
	.quad	1867504603194217053
	.quad	-5467657705022794308
	.quad	3147510451211840346
	.quad	140
	.quad	5698450711870758917
	.quad	-4895041366825867926
	.quad	-6521155913428471465
	.quad	6669350563372634023
	.quad	7675690846234353869
	.quad	-9168975081059308075
	.quad	-1077399959021297245
	.quad	4805136747010172916
	.quad	115
	.quad	-1188474290557096754
	.quad	3438652746734241291
	.quad	1706710095808621121
	.quad	3483053495237745727
	.quad	3829998283577355971
	.quad	3894746545622424611
	.quad	5192549665580333823
	.quad	-2164885619614650594
	.quad	500
	.quad	8831419898259858314
	.quad	-2517671903856019351
	.quad	8610871806223028795
	.quad	-9194569627275626756
	.quad	-6206941993388500932
	.quad	5353363207686059687
	.quad	-1630405800614292614
	.quad	-218768442452744641
	.quad	80
	.quad	7128609601719396846
	.quad	8450231663254229208
	.quad	1178542083366326519
	.quad	681942175263915914
	.quad	3624973182965036505
	.quad	-1397847296470388589
	.quad	-7334070433409617676
	.quad	-7956497632971347039
	.quad	429
	.quad	-4874848271084702014
	.quad	-2598046469396506080
	.quad	7537510158010207153
	.quad	4719501841955963844
	.quad	7809603331012617199
	.quad	-2685499101491605396
	.quad	-6673272608597790412
	.quad	4009802961283925044
	.quad	286
	.quad	2737953057203602133
	.quad	-7323798071673532517
	.quad	2217702298509869429
	.quad	-1516551829162929975
	.quad	8451074419875141884
	.quad	-2782581527204589126
	.quad	1827357555305005225
	.quad	-8594231168221465954
	.quad	287
	.quad	-4787773869969855402
	.quad	2533292535135112644
	.quad	2599183653382259620
	.quad	-1304941793934199355
	.quad	108379552612530831
	.quad	5216816814825803542
	.quad	7103839056756362768
	.quad	7060966928908986886
	.quad	397
	.quad	2529156833816146611
	.quad	-7498002557088051377
	.quad	-8304170541099726176
	.quad	-5301649596859066036
	.quad	2902781296431814237
	.quad	4010750414131250163
	.quad	-1708040210733463249
	.quad	-3741555378314206751
	.quad	438
	.quad	-8468753523298524681
	.quad	-3192781721045535918
	.quad	-6142524281662474897
	.quad	9067188144255128179
	.quad	7559572218824279992
	.quad	-3980152290066260742
	.quad	-1565678729780483795
	.quad	5799423205386620307
	.quad	70
	.quad	-2077409667411314529
	.quad	-8073162024103624687
	.quad	6746307679591820047
	.quad	3989572964490366144
	.quad	-2348002704975033720
	.quad	7969888159833475456
	.quad	-8386246618576773728
	.quad	2761123979807253670
	.quad	27
	.quad	-6835237914187763187
	.quad	4493076180507364229
	.quad	-6282562910149756092
	.quad	-1565359973532456408
	.quad	-2254049094671785193
	.quad	6869074915580038736
	.quad	7887490054480663116
	.quad	-7538702926281599851
	.quad	454
	.quad	-4208238071745777080
	.quad	2386329903687104438
	.quad	5223463884598227748
	.quad	2065660588872576863
	.quad	-6132051392912794464
	.quad	-6391324541857446699
	.quad	-3232894482630479476
	.quad	6238552637740108565
	.quad	215
	.quad	5012869310167620303
	.quad	5749939862204937789
	.quad	3214441601915725926
	.quad	2276093992769074182
	.quad	887169908391885794
	.quad	-2206840981517233008
	.quad	4749288202064368524
	.quad	-8692100745703345877
	.quad	166
	.quad	-4882056616574412576
	.quad	-1374295084904465685
	.quad	-5464161002120309585
	.quad	7326355803511919386
	.quad	-7147044646580966238
	.quad	2186073819847646864
	.quad	6534277541564258524
	.quad	2652300784269905940
	.quad	339
	.quad	-8842977911707173530
	.quad	-1375807969241073002
	.quad	-866722593555659898
	.quad	-7064655445184486465
	.quad	8470885603178716715
	.quad	501276816664163837
	.quad	7900951183931910564
	.quad	-4719792534739268134
	.quad	8
	.quad	-1442408541951433233
	.quad	-5014472162213783066
	.quad	6984502330146205474
	.quad	43523022285646005
	.quad	-3001634121516052309
	.quad	6919501939124406380
	.quad	1248163162211119428
	.quad	1729133123546287025
	.quad	224
	.quad	-1485191636720566986
	.quad	-6661115862452374516
	.quad	-4454656770450501384
	.quad	-5310897465401924609
	.quad	-289799164327107106
	.quad	9003845492293259636
	.quad	8487504887923237443
	.quad	-672467716702732742
	.quad	281
	.quad	8344439518647894315
	.quad	-7306907110109290032
	.quad	3939831542210064585
	.quad	844003379806088299
	.quad	-5153169508008864754
	.quad	3788999169020395420
	.quad	-2436876630643309749
	.quad	-8850256223868403462
	.quad	259
	.quad	-1701330776299663948
	.quad	-3766242438115521744
	.quad	4905701978542394080
	.quad	8789847798647307672
	.quad	9031221472544221221
	.quad	-3594306031701626836
	.quad	3150472771751977650
	.quad	2735325333472203202
	.quad	137
	.quad	5694136035948717606
	.quad	1650149627321568155
	.quad	2063906615894209337
	.quad	-7890513561698659542
	.quad	4231039439544652238
	.quad	2164098875001004469
	.quad	5308401005022486671
	.quad	-788835666671211990
	.quad	248
	.quad	1622215667077805351
	.quad	1553699136759099288
	.quad	-3671613855034822746
	.quad	4998210389412425019
	.quad	3442870900329385329
	.quad	7337573294183921801
	.quad	2420484676801396069
	.quad	-6197092266210811951
	.quad	240
	.quad	-6726916279252727603
	.quad	3284583524094484661
	.quad	2807851918121211958
	.quad	-6287209133426361531
	.quad	-5827129068116338972
	.quad	-7964473964464877930
	.quad	5184720183148815201
	.quad	-1048984833490252622
	.quad	438
	.quad	1092361181131016179
	.quad	-3724369018900553295
	.quad	-1616661389364794417
	.quad	6955002767974591424
	.quad	4750827092493157425
	.quad	5875320104604430836
	.quad	-6114470988923184843
	.quad	-5499940013555112594
	.quad	370
	.quad	6222206546855547123
	.quad	8825662399131754535
	.quad	32980940585880369
	.quad	-7448702684037482887
	.quad	8691067831356438652
	.quad	-1973911491591820100
	.quad	5390913036197786827
	.quad	-3913113898962571610
	.quad	4
	.quad	834341836254170522
	.quad	-5724124746455083077
	.quad	4612644055091256223
	.quad	3565804756545820957
	.quad	-4002861055047386287
	.quad	-3084745890755163289
	.quad	6401725570651186889
	.quad	-1862596203546969308
	.quad	277
	.quad	779565464634536460
	.quad	7607148110290924850
	.quad	-7409317763481214811
	.quad	-5364683751318930043
	.quad	5647225682746646389
	.quad	1438833952450756710
	.quad	3326352197416985715
	.quad	-2347147179037732834
	.quad	402
	.quad	4578717441924681716
	.quad	-7190985519262208319
	.quad	-8953477311759415793
	.quad	1670602585510228371
	.quad	2160527198806012846
	.quad	-1725521506609305842
	.quad	4023400529073306398
	.quad	7857354579665922722
	.quad	196
	.quad	3117697358252028844
	.quad	2505605317104218419
	.quad	468375834738397107
	.quad	1824998304488696482
	.quad	2551936846213922670
	.quad	8580707978856437246
	.quad	-4834604964125474164
	.quad	802793930067922794
	.quad	186
	.quad	7813585374540916063
	.quad	2374794787910569122
	.quad	-8469846075444360075
	.quad	-1906381682112957507
	.quad	-1709537304977941824
	.quad	-1875934948002942902
	.quad	-6375815558372614140
	.quad	4536690291613267081
	.quad	60
	.quad	-4934177266268897004
	.quad	4391986430744875332
	.quad	382022084742322083
	.quad	8614480938960471535
	.quad	4890706170280287892
	.quad	-8609280453098776812
	.quad	-7353273101964118853
	.quad	6908055255192370943
	.quad	279
	.quad	-3512442972009528335
	.quad	-1338381444066602084
	.quad	-2099400271259863915
	.quad	5339876437105106006
	.quad	-253023216155709431
	.quad	3442560463402396755
	.quad	-1102731985130919868
	.quad	560990666310933635
	.quad	318
	.quad	-6422635601207199264
	.quad	5356784920444404701
	.quad	610278059560326033
	.quad	5055442421222005755
	.quad	-2843179141556012107
	.quad	-3064617740588557518
	.quad	5328673989679101466
	.quad	-3863610885575275953
	.quad	12
	.quad	-1106177028867867467
	.quad	-7624550844283378636
	.quad	7278575883135781542
	.quad	5809991699252431598
	.quad	1538504987964876698
	.quad	7039224876724131105
	.quad	-2327634548655928876
	.quad	1208485693030598829
	.quad	383
	.quad	-3700653755484396235
	.quad	-3369551943107819519
	.quad	6679079333412295959
	.quad	-1630712371808280009
	.quad	-6996320357308902720
	.quad	-2198344913484803032
	.quad	-7207824239422775144
	.quad	3494356997068992652
	.quad	2
	.quad	-781816697224140593
	.quad	-7316991911938456545
	.quad	-1677357661029309592
	.quad	-4677687396149932802
	.quad	-2692641386976457112
	.quad	-2267431797221430881
	.quad	-7638707168208431939
	.quad	1499521196356454162
	.quad	373
	.quad	-4258786157668224681
	.quad	5864562785259759666
	.quad	7894602860414764583
	.quad	-267764764287660557
	.quad	-3527042392563011742
	.quad	-7889655619474630756
	.quad	3361571898792905253
	.quad	-5388067871765821205
	.quad	395
	.quad	5364082188982223031
	.quad	-1196413438458225794
	.quad	-3776985663968628500
	.quad	977591441112142210
	.quad	-5443052520128408477
	.quad	490248771531254362
	.quad	6683383693754875355
	.quad	-610400378750752150
	.quad	423
	.quad	-8220384920164600602
	.quad	-2385875028991323714
	.quad	3977949284235187665
	.quad	-2266141442472774821
	.quad	-5800804273951960936
	.quad	4223048591091524414
	.quad	-6822093494359149248
	.quad	-8474031403087468618
	.quad	396
	.quad	-8331899816394441598
	.quad	-2628862394346383133
	.quad	-6017303272174405058
	.quad	-7796443750972947921
	.quad	-8642071517396520496
	.quad	7815871159570227658
	.quad	5189306004568854538
	.quad	8359468564885389750
	.quad	178
	.quad	-714707190543086507
	.quad	-7231501073308256099
	.quad	-8939294128766558024
	.quad	-1698771993011756666
	.quad	7167401647857901182
	.quad	8651119077837955362
	.quad	2048763195581761306
	.quad	-4126419881624971505
	.quad	240
	.quad	-1820729293956016389
	.quad	2418163787572394183
	.quad	-8706253000619588052
	.quad	8383583947905260361
	.quad	5371809206972284258
	.quad	5705199124833367550
	.quad	-2483994727078053790
	.quad	9089742348212048284
	.quad	270
	.quad	-4558413791603944813
	.quad	4642519302143631607
	.quad	6840510741008349363
	.quad	-7526338046848551164
	.quad	5605871200087067208
	.quad	1161370201318886570
	.quad	-1546378360945867048
	.quad	-8675769928596755170
	.quad	402
	.quad	-2643553843139477849
	.quad	-7741053210305737985
	.quad	2701539506949200756
	.quad	-8741546228484854453
	.quad	1411553163065538063
	.quad	-8656801471533640912
	.quad	-9014625282756919678
	.quad	4801170958183739871
	.quad	284
	.quad	1222858842897745930
	.quad	1201896288086292927
	.quad	-5244875476365730754
	.quad	-2697035508549787187
	.quad	6877230733747373362
	.quad	-3789716432104490735
	.quad	-5700513492590682486
	.quad	-9210175943651301366
	.quad	139
	.quad	8145284657597693564
	.quad	-2878168102226410646
	.quad	7867781624768329172
	.quad	-2536734810945849528
	.quad	-4034932663790062714
	.quad	3278272490581604372
	.quad	1967166675512108784
	.quad	2867046421137673347
	.quad	2
	.quad	-4315412159590914383
	.quad	4065438005041396349
	.quad	-1166496502385849809
	.quad	-1738121182991551671
	.quad	-8648696981684594166
	.quad	1945592481593633450
	.quad	-8223200235024570789
	.quad	8597656372506431826
	.quad	149
	.quad	923899937318889875
	.quad	-8943966276944878767
	.quad	8802105752145437819
	.quad	9081107807294975193
	.quad	8869813362597167598
	.quad	-939766176869136692
	.quad	-1502594195791316988
	.quad	86573293898890806
	.quad	31
	.quad	7804516078319266771
	.quad	5307258266049570586
	.quad	-8550350602026299776
	.quad	4630558396897001056
	.quad	8198812603262423283
	.quad	1618955386092725957
	.quad	-6058394952398063252
	.quad	4568810366347185030
	.quad	448
	.quad	-318621310773731376
	.quad	6619756116678869161
	.quad	8330373614068174143
	.quad	4228688908177954449
	.quad	5196403616727268657
	.quad	-7264460071188723255
	.quad	-2343597031365202706
	.quad	-7275027001674045047
	.quad	94
	.quad	6794681596572230054
	.quad	8146881326787937153
	.quad	-4355920263855988007
	.quad	-8198872892107280406
	.quad	7760299660816785700
	.quad	6601366015965106305
	.quad	7296431802270795295
	.quad	4835292869126412904
	.quad	67
	.quad	1893827242548404180
	.quad	-7101942601178752644
	.quad	-4664679439366096756
	.quad	8099081177635868666
	.quad	-8791554345618410
	.quad	-5183052450306371177
	.quad	2819788807848918906
	.quad	1382020225702197334
	.quad	308
	.quad	399870227879179986
	.quad	-1691344450762821373
	.quad	-4391350623996749892
	.quad	4415666268965512862
	.quad	931014307342917431
	.quad	6013669623305405895
	.quad	-7708236113426567825
	.quad	-8981894638234889899
	.quad	401
	.quad	-4674569591290226667
	.quad	-430529498280727044
	.quad	-8325090316646672464
	.quad	560940006524878490
	.quad	1449568218348628356
	.quad	-1124480677737615053
	.quad	-5920150009232074556
	.quad	-6416460260421126536
	.quad	474
	.quad	-3621142958431501749
	.quad	-508117805313766644
	.quad	-2781314813734473082
	.quad	-1966314949186478561
	.quad	-6020511278154415042
	.quad	1228652887236064438
	.quad	29271330303364923
	.quad	6821517143134300198
	.quad	104
	.quad	-4479111187780195502
	.quad	-5426265160016359331
	.quad	-6889102469180561474
	.quad	-8953258086381507174
	.quad	-6720791723500849136
	.quad	4217888116055623219
	.quad	-3016921142819563881
	.quad	8171993143869867459
	.quad	382
	.quad	6597499629011005674
	.quad	-7645910376106886074
	.quad	-2161285003693505355
	.quad	3559084797794233794
	.quad	3519304276184089699
	.quad	8971850584489486893
	.quad	2498281705442005294
	.quad	-1507100176712059300
	.quad	326
	.quad	-295379685939044003
	.quad	944689888220416319
	.quad	-631268655297785270
	.quad	-4506647875125870809
	.quad	-7731832251021926316
	.quad	1769751001745588354
	.quad	2893840320810731047
	.quad	-5831361943704798746
	.quad	298
	.quad	-3641848069698211897
	.quad	3569051605962526738
	.quad	5104214897200053326
	.quad	-939173563467695584
	.quad	7360338166163536520
	.quad	-6762870827876080283
	.quad	-1729357958422494264
	.quad	8294059889055740170
	.quad	47
	.quad	-1639324627726948634
	.quad	4718332123302942933
	.quad	-6517906722755072978
	.quad	2021939733371089041
	.quad	-794368296302068305
	.quad	-919612121141482994
	.quad	-3755710560032227337
	.quad	4510471802463621365
	.quad	439
	.quad	6447781591633495885
	.quad	-1689011993418641771
	.quad	6686788452703331869
	.quad	-2126226635941884992
	.quad	8784713060480178995
	.quad	5684142753155103346
	.quad	-8068872959359215034
	.quad	1374041034187077256
	.quad	441
	.quad	145531808095051158
	.quad	-4662573248788870077
	.quad	-5275127046115302926
	.quad	-265380191903673299
	.quad	8430343173998476913
	.quad	-2045140502071414339
	.quad	6840833087356782312
	.quad	3081909172902704870
	.quad	341
	.quad	-6062364646423792920
	.quad	2514837671611273495
	.quad	7998840571919003908
	.quad	3748134631570317473
	.quad	3366562706210214964
	.quad	-1167507677766432119
	.quad	383750954514012893
	.quad	-256730449293801359
	.quad	368
	.quad	-5476859885254014255
	.quad	15926342699357350
	.quad	2142875547285418383
	.quad	-7059584373667703277
	.quad	-6934267110660655706
	.quad	-3871395865371188833
	.quad	-1749980572018050709
	.quad	-8316470174241288362
	.quad	52
	.quad	9104858966092287502
	.quad	5321415924153166613
	.quad	7856155940704652911
	.quad	6160986324614889997
	.quad	6144007610130029915
	.quad	-4556396810823730974
	.quad	6688172635030182098
	.quad	485414851441599222
	.quad	500
	.quad	-4291903099965154915
	.quad	8885032733672694778
	.quad	-1058607854724122545
	.quad	-2723314791524734949
	.quad	-9202986214509913219
	.quad	3548737752304160258
	.quad	1707080599306567422
	.quad	-473040921548118804
	.quad	294
	.quad	-5804943831147951374
	.quad	1578320190120079368
	.quad	5455767612823518773
	.quad	-5427970468655087412
	.quad	-6428782798469278755
	.quad	-5138217606040755702
	.quad	3763697216831124835
	.quad	-5641844592990659560
	.quad	118
	.quad	-2384984945738237141
	.quad	-3990819150268097157
	.quad	6363050436923636143
	.quad	4335402369050014151
	.quad	4578287594443649483
	.quad	-980351072387336246
	.quad	5378018283097522915
	.quad	-6044981359233159665
	.quad	317
	.quad	2069189004111720761
	.quad	2945088924561034328
	.quad	4801323547597509290
	.quad	-8923183209766792576
	.quad	-5053122394404261400
	.quad	6675787701136825142
	.quad	1591109224400563481
	.quad	5526962302752346011
	.quad	389
	.quad	8513111432044911363
	.quad	-7444578996585321017
	.quad	906275588477786684
	.quad	1479491574481917833
	.quad	8795217038646408849
	.quad	7605068192435551245
	.quad	-2933643254083236320
	.quad	-4794929246391824637
	.quad	448
	.quad	-3237066647493738512
	.quad	-6223230254083188919
	.quad	4141440026273436922
	.quad	7452303151920952191
	.quad	-8199228464525410833
	.quad	-978671255008276536
	.quad	-1700042795200572690
	.quad	-6594805311868507635
	.quad	354
	.quad	-5249869658289388479
	.quad	1573181163685902448
	.quad	7952685363315282553
	.quad	207939646360978742
	.quad	-5017135140511418890
	.quad	-6372113648774919574
	.quad	780448784245876640
	.quad	-4315952411373156042
	.quad	456
	.quad	-5637343979540293050
	.quad	1065336488699207007
	.quad	6306164555925720849
	.quad	-5168214303525747244
	.quad	-1393134615674359817
	.quad	3539568069478764164
	.quad	6493182901799686795
	.quad	2092451721941845092
	.quad	143
	.quad	3434775381936295880
	.quad	6222053659460830817
	.quad	-2293464860718512056
	.quad	-7227733710878613132
	.quad	4955002275830022435
	.quad	-6566479781443769366
	.quad	929657287823526228
	.quad	-7788930478608928908
	.quad	376
	.quad	-9191990840589646320
	.quad	-8489325702591399370
	.quad	-7703633157719867647
	.quad	-4452392383739716934
	.quad	-5786715989224998093
	.quad	8489865844805733430
	.quad	-1597744107016181832
	.quad	911639067274308021
	.quad	506
	.quad	-6569246236141167313
	.quad	5467185141647755992
	.quad	8352123413729174539
	.quad	8998196776502227441
	.quad	7893137652095479137
	.quad	-3369351381373329781
	.quad	-5722081152504549834
	.quad	-5328252475139744768
	.quad	316
	.quad	5789601097822438908
	.quad	-5083111535753577050
	.quad	6291703908682772987
	.quad	-5102801744870557427
	.quad	7105147902556248935
	.quad	-8196712711073990360
	.quad	-2603139397107609625
	.quad	-7073220246177046940
	.quad	10
	.quad	-4490123349866491270
	.quad	6707024086869589116
	.quad	7016581996614219159
	.quad	4902935574418450809
	.quad	-7310020414003855084
	.quad	2976183649247342316
	.quad	3644992625445080786
	.quad	-4206997595335927776
	.quad	211
	.quad	7379618825559518626
	.quad	-7517175332149471076
	.quad	4620706843863445485
	.quad	-6641317386788414332
	.quad	-469407940898182521
	.quad	8785957315062546767
	.quad	5790393851311650371
	.quad	-1364255197257964858
	.quad	276
	.quad	-8024464242214417879
	.quad	5599745623917040907
	.quad	-2017980575818008650
	.quad	-5949970739556619173
	.quad	-1793344971314683243
	.quad	488343294170002557
	.quad	6842900724235836475
	.quad	-8181298975193028693
	.quad	264
	.quad	3259074633322132302
	.quad	4780917110690698989
	.quad	-4343937591900384077
	.quad	3884275622698478797
	.quad	-7544939129547848504
	.quad	-398782086544178164
	.quad	4865084617125068509
	.quad	-6606367565695858729
	.quad	492
	.quad	-8531720000190975724
	.quad	-5527343862156948411
	.quad	8864375230460649003
	.quad	7144356964230544067
	.quad	-3046443663604073569
	.quad	-6407514954402278385
	.quad	6542387571754984256
	.quad	-7522309141701662046
	.quad	439
	.quad	6942349133365489316
	.quad	-4541390202813728448
	.quad	-856268296406525283
	.quad	4936704679635849705
	.quad	304782555274669308
	.quad	-8113115048293816743
	.quad	-8045281956778537438
	.quad	799429223509424825
	.quad	256
	.quad	7096271262990574087
	.quad	-4635684226867267189
	.quad	8917557262517747447
	.quad	-6007783985610745879
	.quad	-2045035076278572395
	.quad	6802716986511321589
	.quad	-3809447225399839419
	.quad	5709932124012159202
	.quad	25
	.quad	-4859480135648581000
	.quad	975515743593054837
	.quad	-5767373071703857052
	.quad	-5563166649221787573
	.quad	6065921655155140081
	.quad	56547820479727758
	.quad	8084301599972932501
	.quad	-7926121130772457174
	.quad	156
	.quad	7064740004539566693
	.quad	-6601151257591033151
	.quad	2451690455801794799
	.quad	4701438550720546762
	.quad	-814818616139780342
	.quad	1503470437889304015
	.quad	934613624553500867
	.quad	4770807244637167404
	.quad	305
	.quad	8018450088371980318
	.quad	2762554976318415683
	.quad	-1464080116513314587
	.quad	-3552836289360296074
	.quad	572793872811430706
	.quad	6423916973277876507
	.quad	-1695149323219903937
	.quad	6161020102323417941
	.quad	136
	.quad	8769634399491974400
	.quad	-7379864451600882563
	.quad	2142184127911698155
	.quad	5765905128566212129
	.quad	-4394056493523773248
	.quad	-3106133369250282962
	.quad	-6463841141228236485
	.quad	7020909453711614816
	.quad	0
	.quad	-5545704081399769626
	.quad	-612333805508513931
	.quad	-3896956829914135206
	.quad	971743441083440969
	.quad	2411223563796872724
	.quad	8960410015427844167
	.quad	3909054662229727437
	.quad	2934378342076252375
	.quad	156
	.quad	-1139764105986104813
	.quad	3078823857276711401
	.quad	8916527304978397680
	.quad	-3042313289362591912
	.quad	6182877731519166485
	.quad	-607896126821981131
	.quad	3912960305382396904
	.quad	199233021320781697
	.quad	52
	.quad	6433727984822351668
	.quad	601948337641744785
	.quad	3266466967632693894
	.quad	-7579693621180335682
	.quad	5384860674061516630
	.quad	-348536339626099961
	.quad	7986567920747446171
	.quad	-5624535927655641031
	.quad	202
	.quad	-8445003240631238730
	.quad	5336925690358075433
	.quad	-5740161426567386726
	.quad	-330631776276922497
	.quad	3135599408201891656
	.quad	-993520487998200251
	.quad	7669760253586979011
	.quad	7860561180473068070
	.quad	52
	.quad	3836442494890643395
	.quad	-202658059675786524
	.quad	6880415446730352204
	.quad	7603592404771722549
	.quad	-2320078673636270916
	.quad	6711041823321650757
	.quad	3217568896459130538
	.quad	-6949112007161375402
	.quad	380
	.quad	-8477726369337912785
	.quad	-1267629167539969748
	.quad	360119365357970862
	.quad	7437474115755734703
	.quad	-5441544253328367359
	.quad	4217180528000136030
	.quad	-223895938164347856
	.quad	-6814949937657558877
	.quad	319
	.quad	-8861849362403428837
	.quad	-8610094441942435798
	.quad	-4091314058951524418
	.quad	4355824069461700126
	.quad	-4047975673613173320
	.quad	4625491594813425959
	.quad	2190030165019124338
	.quad	7508612232216323672
	.quad	493
	.quad	-8793297455027120846
	.quad	8719442013517722636
	.quad	-15983284847340138
	.quad	-702794938102794167
	.quad	-5829522003264920829
	.quad	509786936858930429
	.quad	-4284169747054206939
	.quad	9191899821159178138
	.quad	111
	.quad	-2119183499719724848
	.quad	7607711181677637964
	.quad	6059245158052190680
	.quad	-2779573899476569039
	.quad	-4719588529929330774
	.quad	3957878153371594441
	.quad	-7460304701658552100
	.quad	-7218413207289942098
	.quad	140
	.quad	2726476105418995326
	.quad	-5139663702066245135
	.quad	-1294149548706862204
	.quad	-5175366268807961564
	.quad	-4862400812940614438
	.quad	-757550772665551561
	.quad	-457832754689137578
	.quad	2887148769252213075
	.quad	24
	.quad	3134181911174529097
	.quad	-8619065337327222451
	.quad	992938113146610413
	.quad	-4367010609258962686
	.quad	-6639685395239485287
	.quad	-1195083930255330557
	.quad	8307011030825122959
	.quad	3157406801251235106
	.quad	401
	.quad	-6973960447158167221
	.quad	1030627738985745145
	.quad	2337969777335540557
	.quad	7223906120640373845
	.quad	602241347399583504
	.quad	5090213433311568766
	.quad	6767245545206136144
	.quad	-9071815311540769853
	.quad	153
	.quad	5532173699459259023
	.quad	-6154818848585642704
	.quad	143550755428287953
	.quad	-8642017433719455420
	.quad	3699020369437508792
	.quad	6391852906145668707
	.quad	6441605142449152670
	.quad	-2165170054340439655
	.quad	130
	.quad	-306417195376444944
	.quad	8820934501458127898
	.quad	-6520209066504904125
	.quad	8397548659451035250
	.quad	5271399071198372477
	.quad	-8114723844573289316
	.quad	-3468343772502666996
	.quad	-6779821222361758791
	.quad	140
	.quad	-4701685245401824879
	.quad	-3567580438455889160
	.quad	-4923810418912913072
	.quad	2333100943875721593
	.quad	1355770790877810726
	.quad	-1553722452555247225
	.quad	-2251760421402631010
	.quad	-15029209388895559
	.quad	207
	.quad	-5650741269485438988
	.quad	-7830518488632452754
	.quad	750097088749629331
	.quad	-3267080184575944015
	.quad	-8880975912872373656
	.quad	7241403943699820233
	.quad	7648100384635986048
	.quad	-8298728654594608316
	.quad	51
	.quad	4779895310481897676
	.quad	-4167257512160084782
	.quad	-6736230138293811728
	.quad	-7579187711352344237
	.quad	-5613229348572754982
	.quad	2195685003122835392
	.quad	-3146445383709184386
	.quad	1186714738002587961
	.quad	329
	.quad	5411187547053749371
	.quad	-6606043420445020359
	.quad	-3369768567587181427
	.quad	1370669893686738283
	.quad	-7824796269924147180
	.quad	8057596342427220174
	.quad	-5908312570245073559
	.quad	-7289933914187877987
	.quad	350
	.quad	3555802988770562822
	.quad	-3876831307912391579
	.quad	2136896659379723074
	.quad	-2143198096308084378
	.quad	-7709036162749012038
	.quad	2678415533968094811
	.quad	-1349373878027631931
	.quad	18883501052120030
	.quad	217
	.quad	9061027389904906414
	.quad	-8950103970099477406
	.quad	2299132753714952993
	.quad	723220238067980750
	.quad	-1164754495745800655
	.quad	-4336797518777726969
	.quad	5201800969157131974
	.quad	-6989505508971668102
	.quad	423
	.quad	2446793924889041776
	.quad	-5827868359394794324
	.quad	-5329635409294265995
	.quad	-1539500606042100400
	.quad	3505325883697559694
	.quad	-1686206998820040565
	.quad	8378962051683949376
	.quad	-2717621849055280872
	.quad	121
	.quad	47203488861623842
	.quad	844180538961206776
	.quad	3903572906927908254
	.quad	384793925212867602
	.quad	6179980147759415288
	.quad	-5594543717455413660
	.quad	4257974267133283999
	.quad	-2612060516957286691
	.quad	153
	.quad	-8874201747252327012
	.quad	7210459254343886567
	.quad	283247541079290930
	.quad	4876450699757534171
	.quad	2342880502557286939
	.quad	3764364029579435063
	.quad	-2461612913236321600
	.quad	-5276282540075742573
	.quad	34
	.quad	1586048841786733405
	.quad	-7021217890861528272
	.quad	7344461099341877951
	.quad	-902635835771228740
	.quad	-7524796164466859167
	.quad	-3200506032444111603
	.quad	-7103834300154662305
	.quad	7473961990259175012
	.quad	409
	.quad	-3398349851589092360
	.quad	7692637406151062374
	.quad	-4745113972025802823
	.quad	4905087742201385503
	.quad	-3298208565422852403
	.quad	-1919548414210884864
	.quad	6052286603043336176
	.quad	-8752626230212687107
	.quad	454
	.quad	-6957152311659805876
	.quad	3072020491240445202
	.quad	2481603954326111187
	.quad	8659099488610369898
	.quad	4622707798398890722
	.quad	-6789534921250413303
	.quad	4301478204402733207
	.quad	2959874226211719861
	.quad	498
	.quad	-8336657675775080379
	.quad	6277311851341289960
	.quad	4909942470284511356
	.quad	-8035913534270437588
	.quad	5689053012652407177
	.quad	5096682714875745917
	.quad	-8330794883893846660
	.quad	6954877578048267669
	.quad	228
	.quad	-5459766944245060755
	.quad	3905011532288093417
	.quad	-3495704541395463538
	.quad	-6970538387731848353
	.quad	7068899502874018856
	.quad	-1661766119571895537
	.quad	2672261632525218118
	.quad	-329817395864078717
	.quad	205
	.quad	-5085882824373574875
	.quad	5170265251537758509
	.quad	-5234333082415556606
	.quad	-7547878038443840553
	.quad	-7361502798728944737
	.quad	3573398492181307973
	.quad	-145279615629706701
	.quad	7711672810689693672
	.quad	349
	.quad	468242006585590661
	.quad	8681953925750134676
	.quad	-6743643160156983447
	.quad	-6608594351338088297
	.quad	2946436396406543532
	.quad	-8309370689686606368
	.quad	-5965340750844394817
	.quad	-83109817737506423
	.quad	104
	.quad	-8889959143387294720
	.quad	-8712066205567765340
	.quad	42012351810175614
	.quad	1851912285233521410
	.quad	-4737211336382197086
	.quad	-8397767986154874087
	.quad	-3350366357091622627
	.quad	-449729391773710847
	.quad	466
	.quad	1412282213931865927
	.quad	2676449053876886097
	.quad	-6622937188229715008
	.quad	6926838350691595417
	.quad	-4647231542165546434
	.quad	-879001993367819030
	.quad	119028009489671389
	.quad	7949554463865310122
	.quad	369
	.quad	2132013295282388978
	.quad	2990620814389828567
	.quad	2351571312162581414
	.quad	-6793645294773638704
	.quad	6940803593864367414
	.quad	-5405923274129863918
	.quad	-797646786856393284
	.quad	8786318885656096990
	.quad	45
	.quad	-7456093834431077287
	.quad	1009429395584729543
	.quad	5083803368007069966
	.quad	-8344763645662277277
	.quad	-1566829907833340080
	.quad	3010124178101981197
	.quad	8721002532653008596
	.quad	1794164613772787409
	.quad	141
	.quad	3995435755923434855
	.quad	6462289916635655141
	.quad	-2378721486398484822
	.quad	6975912808344600847
	.quad	-7188615672361680147
	.quad	5423934171487712317
	.quad	5511097557095043875
	.quad	7173994941555085554
	.quad	185
	.quad	-3895942490278431102
	.quad	-1031917068926781398
	.quad	8392981871930560590
	.quad	3290008016692069071
	.quad	-4107060271025626437
	.quad	-5798179387679449914
	.quad	-681123881166708515
	.quad	7989688496075824208
	.quad	251
	.quad	-811436683778909855
	.quad	5649744634658184224
	.quad	-8355065314333474589
	.quad	-679183472895323756
	.quad	3214897728739133721
	.quad	-3229670159813795184
	.quad	-4538909536133275546
	.quad	-198432237342370899
	.quad	84
	.quad	2301514454382563663
	.quad	1810413081946207357
	.quad	-7500977916181695960
	.quad	-568334418416315230
	.quad	-6170168750113625822
	.quad	652443022336598623
	.quad	-7286905422760103464
	.quad	-5117849876809314312
	.quad	363
	.quad	8717994109792610344
	.quad	-8892726119249614996
	.quad	-5624836392281665718
	.quad	-1909260655595146720
	.quad	-8269891816411552582
	.quad	-8569962936507225932
	.quad	1818503901593247078
	.quad	-7456690008709646337
	.quad	243
	.quad	6700282191933041649
	.quad	-2563005292967384713
	.quad	4169375711361047463
	.quad	-324037835635898611
	.quad	4124677390298114815
	.quad	-3148688505278304131
	.quad	-4817185105862962121
	.quad	-7333946903905942638
	.quad	483
	.quad	775773825560151943
	.quad	-6072705658528440137
	.quad	2507727526135090452
	.quad	1546539825306172173
	.quad	1076429998525239001
	.quad	-7121081364014229556
	.quad	4148311452085157754
	.quad	4331117750291310580
	.quad	51
	.quad	-8816471054095536801
	.quad	6537409496148127682
	.quad	8928919921957991380
	.quad	-5304029709953671775
	.quad	967340759357272843
	.quad	-7634031349003150853
	.quad	-5265802806120548547
	.quad	-4720233467085732173
	.quad	436
	.quad	2363046658148668435
	.quad	2290296591017146451
	.quad	-4112168257401362483
	.quad	8263475960779824273
	.quad	1389831194666181344
	.quad	-6517422715651928972
	.quad	-4745709794253844333
	.quad	4689533311312361633
	.quad	451
	.quad	-2531043119889573355
	.quad	-8520417634729052317
	.quad	-1229416685154053539
	.quad	1906507034807335378
	.quad	6379370054929460767
	.quad	4597385941420160010
	.quad	2183602164878536770
	.quad	2964486999244844974
	.quad	103
	.quad	-7832052149933381632
	.quad	-8235971786865996034
	.quad	-2917889632368619512
	.quad	-7740960549210813367
	.quad	3246210963126409288
	.quad	-4723160761576162504
	.quad	-4759120687536236888
	.quad	43482083476321983
	.quad	150
	.quad	-5357970699968335849
	.quad	-8845085229007115499
	.quad	-4585465035487810127
	.quad	7300959914842991991
	.quad	8470563922544460110
	.quad	5102830435121816588
	.quad	5323137216212711351
	.quad	5265581966328146415
	.quad	274
	.quad	-3258482184535983779
	.quad	-1223283324965280634
	.quad	-2261968235111120187
	.quad	8180512305427942066
	.quad	-5130875240831242462
	.quad	-5328676072529864432
	.quad	-8872845228925059213
	.quad	-2846544355812036611
	.quad	349
	.quad	2378330579642335894
	.quad	2872984202443149106
	.quad	-3540742711377502101
	.quad	6179727050805030469
	.quad	8537274587987440852
	.quad	-6678852129691072347
	.quad	4604100749928818188
	.quad	-2395248152350540713
	.quad	166
	.quad	7811359418812907291
	.quad	2671673943877773122
	.quad	-7438367187247701149
	.quad	-6904809141893113451
	.quad	-5086949104459841730
	.quad	2747457778145649225
	.quad	-8717181272272526147
	.quad	-6857852788801011755
	.quad	52
	.quad	8133823408456633377
	.quad	2415956170650537452
	.quad	-3251830561311488287
	.quad	-1371864492380081979
	.quad	9204103211543186450
	.quad	5038828464731159984
	.quad	-5611559859993116574
	.quad	822961574602321062
	.quad	372
	.quad	2344691228040920719
	.quad	-6438314216023328060
	.quad	3381131795587903101
	.quad	-8616700620560519063
	.quad	-1820695602984248546
	.quad	-3303820212459453094
	.quad	4520949366785588218
	.quad	-4035934189541863976
	.quad	509
	.quad	-6591953344668919812
	.quad	1195645874187831307
	.quad	-8461197444188225124
	.quad	-225047895967086874
	.quad	4531302357410111591
	.quad	7123509602406225728
	.quad	-5081273745445980889
	.quad	-4076140184050878601
	.quad	118
	.quad	4045076281771102718
	.quad	-4860351377064277001
	.quad	5618377867249233205
	.quad	3705499715465588022
	.quad	-8135866209318347136
	.quad	1495779613443200840
	.quad	-5806791241510938763
	.quad	-5794323289846810243
	.quad	177
	.quad	-6227839423202809276
	.quad	4666930590990080036
	.quad	1755739751991214978
	.quad	9135480624267333669
	.quad	-7493764543991748783
	.quad	2927246686571539837
	.quad	5036147061594403184
	.quad	2649985731120397501
	.quad	140
	.quad	-1494285374463773087
	.quad	-6636742992873273343
	.quad	-5722021821615140862
	.quad	-3122391206741912760
	.quad	924158244372349465
	.quad	-3862905455958066578
	.quad	-1043627259383472285
	.quad	-5012069886795900173
	.quad	339
	.quad	6786214804720726278
	.quad	-2408688498994985007
	.quad	312527441873120103
	.quad	7218405087538410223
	.quad	4922913863336340812
	.quad	-2315117132799044245
	.quad	-6418550037821485174
	.quad	-6919133309216574697
	.quad	275
	.quad	-6372223863883677273
	.quad	4041625507529338690
	.quad	5165944221160690746
	.quad	2545305554529127366
	.quad	-3404178202750897558
	.quad	-7296149642760104569
	.quad	-5529576181183700415
	.quad	5599927384793704427
	.quad	372
	.quad	-7950401970327630428
	.quad	-4415295392179517176
	.quad	8308963798891874603
	.quad	-6977594961415304327
	.quad	7895171164766650567
	.quad	-5289361487079780862
	.quad	4535989565688155708
	.quad	7760523653194800489
	.quad	510
	.quad	174122051717316087
	.quad	-5372354051246702118
	.quad	-4095235852479470317
	.quad	-749767712128779518
	.quad	-3290990189196268402
	.quad	3695404768718825195
	.quad	-7510495365451300094
	.quad	8725698888887085134
	.quad	266
	.quad	-3042745220253498595
	.quad	3782736724005943941
	.quad	-9077874628533920673
	.quad	3219407163341845036
	.quad	-1818908499623830466
	.quad	-2224551185708794529
	.quad	-5500692140377200071
	.quad	-5291843631797646499
	.quad	399
	.quad	-1191385511184988683
	.quad	6706844359624368123
	.quad	2297013040947155818
	.quad	3302217146167214507
	.quad	-2875959800309800735
	.quad	-3271266621219645660
	.quad	-4343436757609365977
	.quad	-2368093713007437671
	.quad	280
	.quad	-7008433926542895045
	.quad	-8606151618650365896
	.quad	2688631840588987799
	.quad	-3638164085651678028
	.quad	458226939647741408
	.quad	6464852267868903655
	.quad	-5987973935183930327
	.quad	-8873893139469428978
	.quad	263
	.quad	-2546987847967201373
	.quad	2320202438022248083
	.quad	1063347396377802786
	.quad	3141016018647077610
	.quad	-5098546199336823664
	.quad	5824028249770702727
	.quad	1085390421107426422
	.quad	370273099183560365
	.quad	506
	.quad	9101712472720494434
	.quad	3462832930971105661
	.quad	1037136556768248213
	.quad	7788425375908903143
	.quad	5553797564428287928
	.quad	-8955899155441074319
	.quad	-1645121152817782062
	.quad	-772377888854267365
	.quad	475
	.quad	6959352120499130219
	.quad	-4497229303458093595
	.quad	2657338425519774089
	.quad	6567634472185018236
	.quad	-4357081647802276800
	.quad	-8903186756698909580
	.quad	1054563164617475321
	.quad	-6011576756968895470
	.quad	337
	.quad	6967368351258175275
	.quad	5895063975625262385
	.quad	7110800005270703934
	.quad	-3553683565254007465
	.quad	7592924722365400473
	.quad	-997506338473165056
	.quad	-8345747153882915294
	.quad	1787375165260265231
	.quad	136
	.quad	8757804450889871247
	.quad	2521032002067224363
	.quad	-797424793602737037
	.quad	-2906441896786157699
	.quad	-7489136867089774003
	.quad	5179272274380945453
	.quad	-1203329288823149874
	.quad	-639509844243583031
	.quad	457
	.quad	-3187165990436385698
	.quad	-7624889802923111516
	.quad	5365386629094904512
	.quad	5498089933731866229
	.quad	4814278165496408383
	.quad	-4900091469724253417
	.quad	4550841009295010866
	.quad	-3876143150155889224
	.quad	128
	.quad	6292072708224184112
	.quad	-5171652729984061820
	.quad	6839893435794244975
	.quad	-7661324060310299114
	.quad	-3194605030440001262
	.quad	3473898160859848650
	.quad	6583123446582387753
	.quad	-2371006815404337376
	.quad	37
	.quad	7275825011676139248
	.quad	-3928722301464947304
	.quad	8990335707212847546
	.quad	6806722558256288684
	.quad	-4027237889680008462
	.quad	-4590487121555429007
	.quad	-6368433986881212233
	.quad	2355062712829071315
	.quad	393
	.quad	7461903822792296742
	.quad	-686436858093378837
	.quad	-7773025715065592258
	.quad	-9204220451386150789
	.quad	6878217169880724198
	.quad	-4139190951863771663
	.quad	4019677032844516422
	.quad	3659954414916529556
	.quad	8
	.quad	-5651525185963482998
	.quad	3035192679170483094
	.quad	-8482492013051833869
	.quad	2376621962949788063
	.quad	-1313271864484828715
	.quad	-6396352780964034183
	.quad	-2251831152474853214
	.quad	-4739177750078745662
	.quad	8
	.quad	5966564882756307197
	.quad	7909506045371688425
	.quad	-412714166342363571
	.quad	-2502198281307643955
	.quad	2171787767116387084
	.quad	-5495769832737403268
	.quad	-824471131406869921
	.quad	2631127245427846212
	.quad	72
	.quad	6975568643321270526
	.quad	3572987600629684996
	.quad	1024203182178373798
	.quad	7138940466534549863
	.quad	-7402386189771260007
	.quad	-8152950652068050256
	.quad	5785748449344579586
	.quad	6700560039195115206
	.quad	200
	.quad	-3036217460329160512
	.quad	-1738118624662371120
	.quad	-4197473341662729778
	.quad	-6845210127119359646
	.quad	-5208496848727555591
	.quad	5258249266099672489
	.quad	-8322055993624239005
	.quad	-1849870695423654679
	.quad	491
	.quad	-3127543830445862546
	.quad	5855494060919261078
	.quad	-6493873242006158967
	.quad	5814182901406904376
	.quad	2958260790398109943
	.quad	3897768897662507596
	.quad	4531763155763506124
	.quad	8647463972082064144
	.quad	373
	.quad	52951491646153580
	.quad	4531099106701655609
	.quad	4773196952396583065
	.quad	-7701241679967642363
	.quad	2343633642683774425
	.quad	2091370585755735168
	.quad	4123890955500943332
	.quad	4428476528788408657
	.quad	483
	.quad	2127119208849719196
	.quad	746465448338897023
	.quad	498988697306995392
	.quad	-3950945521104293574
	.quad	5619588475023442651
	.quad	-1242517734129106482
	.quad	4927883352793675024
	.quad	8353407532131015012
	.quad	158
	.quad	6843178152492261953
	.quad	4706284923873862787
	.quad	-5895263666705297566
	.quad	5296084592418170350
	.quad	4262072713507950569
	.quad	-2352036450265980794
	.quad	-383889635586752282
	.quad	5863418203615830252
	.quad	44
	.quad	-3876175781453665907
	.quad	-7012098920521918791
	.quad	8669095848788264102
	.quad	3116812668854712950
	.quad	-3767267968958310791
	.quad	1771942667837980596
	.quad	-5146337060884847706
	.quad	8918870437656575468
	.quad	121
	.quad	-87313062635067962
	.quad	-7929570331802047902
	.quad	-5378527268531649947
	.quad	-872982561023792613
	.quad	1821041314201525845
	.quad	-7484117059767822999
	.quad	886333052888255817
	.quad	6848295951553568516
	.quad	163
	.quad	3072999005239181053
	.quad	2105498129627263640
	.quad	-1964007752491404282
	.quad	-4550360107438812526
	.quad	4773187541004932779
	.quad	-6528780688570160813
	.quad	-6579824808327397073
	.quad	1129869192098835717
	.quad	470
	.quad	-5284707572888644340
	.quad	6959982393124052995
	.quad	4683980207329514818
	.quad	-8706508068904143386
	.quad	-982648667099711174
	.quad	8753580871705111462
	.quad	-6781665309276045680
	.quad	7755263065588121546
	.quad	82
	.quad	-5702155327166945857
	.quad	1597648443625760907
	.quad	7130621071245069077
	.quad	-6679802582519346774
	.quad	-6376771784759600956
	.quad	-1727787020005607292
	.quad	2556509234897352257
	.quad	-2305425885823504198
	.quad	499
	.quad	-8710478255552206529
	.quad	-6099266241323641230
	.quad	5598282561815398805
	.quad	6162861853620167539
	.quad	5024489428066110434
	.quad	-3884618964440535947
	.quad	8335911605359472055
	.quad	-1731853145575974579
	.quad	464
	.quad	5520723392869534565
	.quad	-4297602631701942208
	.quad	-5876382768918897609
	.quad	-6177640754144330612
	.quad	8989384532908701948
	.quad	-9019534101958638087
	.quad	4814962725080395105
	.quad	1389070428044894548
	.quad	315
	.quad	4989689047599595952
	.quad	-907245897424497536
	.quad	-1880518848452956464
	.quad	-3254728673933599569
	.quad	-5493918003043234154
	.quad	2773370488122089206
	.quad	8242455194838168128
	.quad	3865501625644458011
	.quad	235
	.quad	8831192367079256205
	.quad	-5008556149339756315
	.quad	8519310818022060764
	.quad	-5706684930581158692
	.quad	191611023552394521
	.quad	6861704741626027821
	.quad	-6898714285101746070
	.quad	-9181073701424706796
	.quad	175
	.quad	4398159955387892968
	.quad	2668063499308776936
	.quad	-550229999945081954
	.quad	588040277499671185
	.quad	-7973895949629738021
	.quad	1830779410376690532
	.quad	2579465506651069711
	.quad	4400555576032896597
	.quad	302
	.quad	-2790985941487103613
	.quad	1815136978385295206
	.quad	5431209895887733696
	.quad	4583735169941179285
	.quad	-982330657900243213
	.quad	-8833383950008242472
	.quad	-3661830983314487347
	.quad	-5245091921483367051
	.quad	144
	.quad	-4801467613164059131
	.quad	-9101159159903098286
	.quad	3883536091174452820
	.quad	-6908125873785001392
	.quad	-5318346833994269341
	.quad	8436350031740558514
	.quad	3368244991752452878
	.quad	5390300910546490044
	.quad	189
	.quad	3779074202686439337
	.quad	-7988394085869584197
	.quad	-9034276648820191875
	.quad	7169193259358051056
	.quad	-2113652235175249330
	.quad	2163781344017637491
	.quad	6052345140795966066
	.quad	538694946634854683
	.quad	118
	.quad	4950484519575873081
	.quad	5810894482716358835
	.quad	-5403999659270496326
	.quad	8054820175914290247
	.quad	3728694493095335285
	.quad	2066193332293210463
	.quad	4567201419808836692
	.quad	-1408200484046847472
	.quad	199
	.quad	9199993558421538512
	.quad	-2819154755667700651
	.quad	8310946089679111542
	.quad	7423144213286301981
	.quad	-2108667742647332657
	.quad	-8790966142294383745
	.quad	8205486374194960029
	.quad	2993616583362001663
	.quad	415
	.quad	6799892523427496952
	.quad	-3212133596072199532
	.quad	5775296290915052181
	.quad	8276865489945605859
	.quad	-8809124878438589161
	.quad	-2946208341062523737
	.quad	1112340374888766877
	.quad	6748827152473748879
	.quad	395
	.quad	-7360827300989072179
	.quad	3162200415919295634
	.quad	-5267380563018798472
	.quad	-8051574362422294172
	.quad	5543252490525755301
	.quad	6580500649359218292
	.quad	-6089076532160052181
	.quad	-3650966856073118821
	.quad	410
	.quad	8612480998028338626
	.quad	-7168891776519064404
	.quad	-5923625625681644987
	.quad	-6619674863294932202
	.quad	7706853672985956775
	.quad	3902511144485805419
	.quad	-5239306617763212764
	.quad	1575992865566930343
	.quad	444
	.quad	621421456591583740
	.quad	-5524181664773038342
	.quad	4657841577786869864
	.quad	-8012387670043295875
	.quad	-5495763164464198837
	.quad	-8348286506224080125
	.quad	-5138307075550604308
	.quad	4237460158275075263
	.quad	471
	.quad	3726363031880103968
	.quad	4895393812994283922
	.quad	4275715522628081237
	.quad	1531663818245904547
	.quad	635150163525240238
	.quad	6566065532361542794
	.quad	8384691500918910576
	.quad	8842740839880800652
	.quad	383
	.quad	5321345546773928684
	.quad	6369590644868958611
	.quad	-8756273504465050607
	.quad	6954596424036436933
	.quad	307913345778649421
	.quad	4718542699697711654
	.quad	4840072586970328440
	.quad	4797040450774271632
	.quad	271
	.quad	3478297869085845615
	.quad	1221429267477275840
	.quad	-6088778907666255902
	.quad	7712997816414719345
	.quad	-4979894358569644380
	.quad	2602627176394428288
	.quad	3814525399218013176
	.quad	3611067878882181486
	.quad	449
	.quad	-3310038411125672620
	.quad	-6715909501506946434
	.quad	-4667974965037336946
	.quad	-3812001936395203867
	.quad	8035192361692426302
	.quad	654355588198628723
	.quad	-4778843291466157410
	.quad	7937712226878483248
	.quad	231
	.quad	-798456616733637021
	.quad	505042240695673422
	.quad	2226402080089570108
	.quad	-2568196055019714448
	.quad	8412416024852690091
	.quad	-5808673220335274213
	.quad	3049498664424486138
	.quad	-2743948652050503084
	.quad	378
	.quad	-8731278126784962875
	.quad	-1876455798014789820
	.quad	-1871617662500498039
	.quad	6891879264593295650
	.quad	-501707240120700695
	.quad	3493987693897194569
	.quad	-4607005556486765566
	.quad	3402166651025436981
	.quad	360
	.quad	2215202383214483442
	.quad	9187181148862655086
	.quad	-5839821094083706347
	.quad	4575641129244028776
	.quad	2438380186047526203
	.quad	2218807577596234987
	.quad	418291679560628770
	.quad	8837263499693451747
	.quad	313
	.quad	-74231845975766460
	.quad	-6829824812678396050
	.quad	7356458684208633673
	.quad	1450307708050572344
	.quad	-966417339319705102
	.quad	-5327377917917665138
	.quad	6385486683778227493
	.quad	4834739883129510394
	.quad	471
	.quad	-870806430633262989
	.quad	-8117883320683984761
	.quad	-5462430283562994825
	.quad	-9071848285082719897
	.quad	-5320139528683628440
	.quad	-254760694952624498
	.quad	-8436643125802941379
	.quad	-6067558039229825686
	.quad	15
	.quad	-8274393072842194395
	.quad	7999667687475727702
	.quad	5759750972977543790
	.quad	-2399948290481951708
	.quad	-3953880844226529339
	.quad	-6318030820432322626
	.quad	-8460161328613531677
	.quad	5635646956658291077
	.quad	15
	.quad	-3727891546533343217
	.quad	-265028132006704204
	.quad	4996545266358088141
	.quad	-965017388446210484
	.quad	1707677142491438015
	.quad	1437359910351047340
	.quad	4218460765821110852
	.quad	-1022653620494796579
	.quad	13
	.quad	5409823367176090210
	.quad	7913127315162901766
	.quad	-4386698705939464446
	.quad	-3991682211577048815
	.quad	6594503246040152394
	.quad	1119805032606615835
	.quad	3918388905883210212
	.quad	-4017776460791704228
	.quad	215
	.quad	-8336300177919345342
	.quad	-8558368271762273428
	.quad	2870043389598318682
	.quad	2487665006324998428
	.quad	-5378553773059593281
	.quad	-1391318658733320888
	.quad	-7601502846880069683
	.quad	6738618142782181835
	.quad	8
	.quad	-5465875827821841039
	.quad	2677916640429715603
	.quad	-1012768146179206166
	.quad	-1080675330997964780
	.quad	-1108815494967617441
	.quad	7341481202723151033
	.quad	-270739690120459920
	.quad	-8498417744461636089
	.quad	261
	.quad	7793277457561891947
	.quad	4064050706522846008
	.quad	-3278244508212504148
	.quad	6076596283346251946
	.quad	2863076564694910595
	.quad	1776538060871437124
	.quad	2488129809501438254
	.quad	1074956254820718440
	.quad	356
	.quad	-6074950795147884465
	.quad	4686286863663370475
	.quad	-8440407959462008047
	.quad	8916067405871826088
	.quad	-8029163789720370553
	.quad	-2664198575969638963
	.quad	1786325368153028280
	.quad	-2120705297946293451
	.quad	26
	.quad	-3699397077102436351
	.quad	8397564767263358844
	.quad	-7000647143276795143
	.quad	8385078732319711748
	.quad	-591748773171142070
	.quad	-8066440333017285283
	.quad	-1355127158560479177
	.quad	4488138059778698988
	.quad	450
	.quad	-6907812897280334792
	.quad	2541236311362840530
	.quad	-2630937283566579356
	.quad	-3874887910409528413
	.quad	-540942911895194120
	.quad	6169527278538529632
	.quad	5157860312543071291
	.quad	7192967782969681448
	.quad	195
	.quad	1476766719850785490
	.quad	4676196638009765348
	.quad	4679342931391046601
	.quad	5214604494876136532
	.quad	-2062467474726279994
	.quad	-6050038796325034610
	.quad	-2882172107373442121
	.quad	-5383558997663799748
	.quad	220
	.quad	2158066800253751125
	.quad	4899564189954178272
	.quad	7828563235583503766
	.quad	-4168698914223576368
	.quad	-2464641671024831546
	.quad	5134201774447508210
	.quad	-6781011238065476125
	.quad	2860229356258786545
	.quad	270
	.quad	6600475855057037765
	.quad	1549414405507984876
	.quad	2428227493319280512
	.quad	-4152294685548189158
	.quad	6831225381699432185
	.quad	-2753640639411020493
	.quad	-4899111541224695392
	.quad	1227284746907980694
	.quad	414
	.quad	-7663786548943842449
	.quad	-6918320281968616888
	.quad	-1998113348521145989
	.quad	8915800300844292550
	.quad	-7072207731861803550
	.quad	-7005617813608427867
	.quad	6582173843534345640
	.quad	3757971848677883437
	.quad	66
	.quad	-4966026306795731804
	.quad	1849581908425989084
	.quad	2768224675661924911
	.quad	8802165133401421118
	.quad	4635051338217496720
	.quad	-1552482693164232991
	.quad	-205084725449847389
	.quad	-516515367159533568
	.quad	194
	.quad	6175188243693324089
	.quad	9164108282423833145
	.quad	-2889568220856213882
	.quad	5491453054921791895
	.quad	-7239692830630075905
	.quad	6859989593291799931
	.quad	-6854878876713049518
	.quad	1824607720194921960
	.quad	332
	.quad	4786789529836021152
	.quad	-7799648520437640791
	.quad	-7783028814042896449
	.quad	1621873824227349703
	.quad	-1546959242871552415
	.quad	-8401678999421992188
	.quad	180256119608203995
	.quad	7959468151228749559
	.quad	152
	.quad	6251779683931567304
	.quad	-4563003175954652856
	.quad	-4719800117357557618
	.quad	4771389423137895815
	.quad	6554372227612556771
	.quad	5434343884029006377
	.quad	8969715884018084621
	.quad	1494235576966955387
	.quad	54
	.quad	-7867727506573937797
	.quad	-3037545210619438176
	.quad	-7123959210655022981
	.quad	4323823036239216172
	.quad	5994995886242672820
	.quad	4755061711033569526
	.quad	-4185614195462525765
	.quad	-8556106043031206561
	.quad	205
	.quad	1244241435193813893
	.quad	5493380886911565677
	.quad	6796290696794971055
	.quad	-4544124096215273163
	.quad	6721697930695389609
	.quad	5871084716907167151
	.quad	6822115931123883630
	.quad	6926672760705248433
	.quad	370
	.quad	5405227987890981122
	.quad	-5560988635006068637
	.quad	-798302388331475372
	.quad	-6019191027980388521
	.quad	5766942490877597432
	.quad	-3732260097898880183
	.quad	6874090248065675140
	.quad	5380780490705355215
	.quad	441
	.quad	-90791359244650020
	.quad	6456001054741772785
	.quad	7461712802599365366
	.quad	5340391542138303487
	.quad	2592490077392043297
	.quad	-8909057591816892412
	.quad	6963913097034087466
	.quad	7064219900497803840
	.quad	272
	.quad	-2508269005330569689
	.quad	4687358178200989998
	.quad	-2917939721366721939
	.quad	-7158382790130437696
	.quad	7530521856750077670
	.quad	2357055399838286914
	.quad	716364616063900001
	.quad	7264192282487807841
	.quad	120
	.quad	2499240904692077137
	.quad	448371370139388070
	.quad	-9160328762709141300
	.quad	-8197833873585748507
	.quad	4337132694257740244
	.quad	-4376492358671218596
	.quad	-2808991649491214831
	.quad	-2561868371846445754
	.quad	315
	.quad	466443851198045327
	.quad	-3793009390455999537
	.quad	-73892134073230901
	.quad	603027740207097489
	.quad	631598014333605336
	.quad	-1942630214630528764
	.quad	-4744119234482835786
	.quad	-3074692217652388195
	.quad	221
	.quad	8683438422133801084
	.quad	-7708456959576340004
	.quad	810760650233569571
	.quad	-4972558123384908298
	.quad	3411865667229032610
	.quad	3473426889715030301
	.quad	8440221838799059512
	.quad	-7571083512379370063
	.quad	426
	.quad	5886963904610824854
	.quad	-6676167048040009168
	.quad	-9023909843164827847
	.quad	-7291970005082601037
	.quad	1504335862727102558
	.quad	5461620815167865295
	.quad	3288458133101923586
	.quad	-1639139153701324575
	.quad	114
	.quad	-281365335999659727
	.quad	3983946784684353063
	.quad	8082681041172752578
	.quad	-4790389812831965774
	.quad	515140386922925687
	.quad	1668996196770252538
	.quad	5499425013548931688
	.quad	8798738047278951340
	.quad	261
	.quad	4626214582863043854
	.quad	-8228095974870156429
	.quad	-1736814139311329458
	.quad	8042188880555400594
	.quad	-4571016767404350837
	.quad	-1783281060282259472
	.quad	-2591893349069779024
	.quad	-1946797320190232025
	.quad	302
	.quad	-8255032273017108667
	.quad	-1561953441890438768
	.quad	7859799847549988212
	.quad	4647269094783367504
	.quad	4843847123629920088
	.quad	-145435108028515793
	.quad	227898339497665991
	.quad	-7699278523765779080
	.quad	454
	.quad	6376370313856270602
	.quad	-5763355759187302663
	.quad	-3279163656848130009
	.quad	-1467252375416881743
	.quad	6069370876817412960
	.quad	-4997543444466640786
	.quad	185820785266755265
	.quad	-6260971773310894594
	.quad	306
	.quad	2214694604140575085
	.quad	1438252141185610429
	.quad	-5094539713557295444
	.quad	5830143910949040645
	.quad	1972423554099227196
	.quad	3259344611596088541
	.quad	-1298215592114748154
	.quad	-173767791651696681
	.quad	434
	.quad	-2908792460588914442
	.quad	-2491058372870259652
	.quad	4713864727609438380
	.quad	1359591977416521369
	.quad	-3797123331661450388
	.quad	4722732545463642526
	.quad	7994658604211198002
	.quad	3421047400364605304
	.quad	182
	.quad	-5509764190857519865
	.quad	2697937341468480216
	.quad	4360910506399439536
	.quad	1683891065049980749
	.quad	-8136433014463177389
	.quad	2077928931753310729
	.quad	879635469814161984
	.quad	1019556679862446046
	.quad	196
	.quad	2026738445211106080
	.quad	-6818490331715116106
	.quad	7270195961741778813
	.quad	-5996266386679319493
	.quad	8227576310120251971
	.quad	-400002004917162589
	.quad	8256924065578643669
	.quad	-7831112360809491030
	.quad	402
	.quad	6894032703203094946
	.quad	-4157684993057504583
	.quad	3525803622666556480
	.quad	2235849737196655721
	.quad	-2255890687712242928
	.quad	-9007359594592504804
	.quad	1491498980704731057
	.quad	-3899495035611631262
	.quad	229
	.quad	-3649712371631300374
	.quad	2343145113440773317
	.quad	-7568674659687182431
	.quad	-5930349372351089586
	.quad	2456255051525685955
	.quad	2831551136478195161
	.quad	2385016692465490309
	.quad	1990916519734698714
	.quad	483
	.quad	-4568065114905673237
	.quad	6226165729600181635
	.quad	4321505605716462106
	.quad	-8086279745150912023
	.quad	-470626978657999838
	.quad	5239845281139782141
	.quad	-8725911976901321020
	.quad	-2001916530902847156
	.quad	179
	.quad	7193794332528839971
	.quad	3432423599874931927
	.quad	-8806791409557079907
	.quad	4881412967513790551
	.quad	3742940837745639565
	.quad	-5536667149895047694
	.quad	2357768045546827987
	.quad	6063427678999126649
	.quad	192
	.quad	-7866510081611126708
	.quad	6503008062334770794
	.quad	1411335852612250012
	.quad	4285301432585507491
	.quad	5403686000315627595
	.quad	-991972183344510402
	.quad	2693991585618562728
	.quad	-7278568527221700718
	.quad	145
	.quad	5709892015449522925
	.quad	1391022823641215935
	.quad	8540981683079316157
	.quad	-9111423261851570999
	.quad	3743049592708534258
	.quad	5710813043703945625
	.quad	3870337958853409311
	.quad	8751351151368404196
	.quad	213
	.quad	-3338366670014408881
	.quad	3817607510059571143
	.quad	-6307396853750861567
	.quad	3078607438771528497
	.quad	2209245997322535109
	.quad	-5922842123915765320
	.quad	-3065260124563779576
	.quad	-9179156492933112040
	.quad	301
	.quad	8403317923527875818
	.quad	-8485713157982784786
	.quad	-3024831648392420455
	.quad	-5502252789681233706
	.quad	-61567506303114677
	.quad	3473703046171209486
	.quad	6312503297976768291
	.quad	-3335560616753104969
	.quad	224
	.quad	-4488424190293032036
	.quad	-1377177704008283823
	.quad	4534741607219162303
	.quad	75988152939830512
	.quad	-2263579158039665531
	.quad	-2367691746430984645
	.quad	1275360857117392499
	.quad	3642355459145883034
	.quad	484
	.quad	-1474188234197924620
	.quad	9111823487554780396
	.quad	3481607221588262113
	.quad	-3531092048491941468
	.quad	-1267036409569089751
	.quad	1298648122078365133
	.quad	2828851243431239210
	.quad	4156605008457434821
	.quad	445
	.quad	-7933429367106784921
	.quad	1395721724144203801
	.quad	-3560995748194879364
	.quad	2726165881890549600
	.quad	5623750664159629550
	.quad	-8475837705749485052
	.quad	3048064575332274174
	.quad	-278267648251217022
	.quad	182
	.quad	7787983710248956802
	.quad	-796635473997431935
	.quad	-7271353657486616683
	.quad	-8504709669433989061
	.quad	-2693154248979400493
	.quad	2005487627335266509
	.quad	-8160163049852206702
	.quad	6472966000335503166
	.quad	206
	.quad	-7072102338728969188
	.quad	2191528448165664853
	.quad	-6223331948497898773
	.quad	-2033091044907135694
	.quad	-5855184566309649162
	.quad	-1342762818404808111
	.quad	2950304107486160782
	.quad	-4558091416454252875
	.quad	506
	.quad	6130453835821193400
	.quad	-8177157357475749038
	.quad	-5937625676287820029
	.quad	-5581974008890854148
	.quad	3714321345095600613
	.quad	-4086429721118125020
	.quad	-6932937466426208095
	.quad	5676830419973303089
	.quad	392
	.quad	-7795926145922918022
	.quad	6519824638579121140
	.quad	7314839973345860004
	.quad	-6768780089877689477
	.quad	1990265861497979666
	.quad	9088485714795490161
	.quad	-3732046418582419581
	.quad	-4824413615534174716
	.quad	165
	.quad	6574404491602889854
	.quad	4623285130029072969
	.quad	-597548269593790441
	.quad	6452829471211464757
	.quad	-8518348641005046534
	.quad	-194571826469008523
	.quad	7327201796456840846
	.quad	-8423862813981668838
	.quad	162
	.quad	-4594770936039511826
	.quad	-4930136208202720782
	.quad	-7137986160374862621
	.quad	251213426770370175
	.quad	-1626359325019014564
	.quad	8005780080746771959
	.quad	5165626299553180761
	.quad	3186028450906122795
	.quad	225
	.quad	-2529371334725339061
	.quad	-4270706373646078814
	.quad	-5307459730144808526
	.quad	-5275326179442054018
	.quad	-2409747261352636424
	.quad	-6399927434338868451
	.quad	-843703895568921653
	.quad	1170322074049676593
	.quad	458
	.quad	-7446840703281118319
	.quad	-6564187008780304079
	.quad	-8442022238226376412
	.quad	6269036564245438183
	.quad	5988334440344620712
	.quad	7087549300606631008
	.quad	-7272263099782463644
	.quad	-6220160548962694504
	.quad	280
	.quad	957865782268311180
	.quad	3570716184666071332
	.quad	2249391092399035004
	.quad	1487755117830044493
	.quad	-3968144604031956626
	.quad	5516971234544570295
	.quad	-1710442309537675311
	.quad	8478693308438665807
	.quad	59
	.quad	2771856461721594430
	.quad	2037684135035639952
	.quad	-8851557934471066910
	.quad	-3900755763849165901
	.quad	-2071965375679735489
	.quad	-6652348154223654725
	.quad	-8496704202178635618
	.quad	1533994126218376267
	.quad	232
	.quad	-417857751206032537
	.quad	-5723346704040369858
	.quad	-7411113360339336178
	.quad	-7550180864919798614
	.quad	-3474239539767981031
	.quad	-3123770990482614749
	.quad	-6155319136176976865
	.quad	7032967308526162239
	.quad	179
	.quad	-6451759543382284227
	.quad	5695936713140387517
	.quad	6037076532549539814
	.quad	6777356216408234422
	.quad	-5692373046455384
	.quad	-6283384022412801283
	.quad	-3965084382518892603
	.quad	7682779541591921851
	.quad	460
	.quad	-6147405151681816241
	.quad	6856675521275506590
	.quad	-618603519786673985
	.quad	-2449791833193571079
	.quad	3090913734798498407
	.quad	-6143087285583188591
	.quad	2799401992516090776
	.quad	7711303920402501358
	.quad	375
	.quad	-5660431383174698390
	.quad	-7374550854360866855
	.quad	-1929513472558867139
	.quad	-3516756582112054391
	.quad	-8272131987131381602
	.quad	4386432200743911053
	.quad	-6599592484960484880
	.quad	-1056499368966833254
	.quad	63
	.quad	-3055317302884522610
	.quad	5281439132994855291
	.quad	-6149306722127299992
	.quad	6587896092430941424
	.quad	-1760009665303498539
	.quad	-1301548265357907361
	.quad	2086538221312769801
	.quad	4687693516942345633
	.quad	254
	.quad	-3140425785335046828
	.quad	-831992846357536822
	.quad	-419119973697116825
	.quad	-6007299233026870912
	.quad	6886395761589316078
	.quad	3898386747932143096
	.quad	-6574199097505453909
	.quad	-3923972046444479694
	.quad	434
	.quad	6086552821301250038
	.quad	553717946525429792
	.quad	-6102282349288230323
	.quad	965620823945082127
	.quad	-7611917851355463820
	.quad	4479693976770552757
	.quad	4825801712233527114
	.quad	-8298604165583761532
	.quad	185
	.quad	6306136400344437741
	.quad	-3144334642246702379
	.quad	3834950444631964027
	.quad	-8935465910636876591
	.quad	459068803454466896
	.quad	3161549032585506336
	.quad	-4184946106693548860
	.quad	1792769061822820868
	.quad	355
	.quad	8762680243129393154
	.quad	6560701128531791956
	.quad	8103128056611863247
	.quad	-6342631652607603163
	.quad	-4399414125359797300
	.quad	-3807491431767979078
	.quad	-2321630448400034639
	.quad	1345526990472077526
	.quad	23
	.quad	-4871201733749589373
	.quad	1536651830419538644
	.quad	3919902465085035997
	.quad	5060478036682193366
	.quad	1108371192904013262
	.quad	-1568528708426157048
	.quad	-5867058057172003871
	.quad	-7299255934299911581
	.quad	164
	.quad	-5709641290203004433
	.quad	-6995427352809617455
	.quad	-6356297023088320219
	.quad	-2711273151517802907
	.quad	907212380644253987
	.quad	3539169547516801573
	.quad	6288356490903283721
	.quad	1019412429321158793
	.quad	501
	.quad	-4145607422889943114
	.quad	-1073789474627826962
	.quad	-6857926456185001272
	.quad	-5099411401650343934
	.quad	8202097820748544320
	.quad	-901896578050727044
	.quad	-194209186991624422
	.quad	-9048384516455643144
	.quad	239
	.quad	-517114935483255438
	.quad	2184755284630341760
	.quad	8936717019054175914
	.quad	-8669440709182732231
	.quad	580953382186275702
	.quad	9055551932232732242
	.quad	6107747022832005585
	.quad	-1078856519574602181
	.quad	406
	.quad	2535394447629766719
	.quad	2606900487251895219
	.quad	-5277910557150089389
	.quad	8267411877564361339
	.quad	-4878629923522137736
	.quad	-9183739437992527746
	.quad	7194787301195073548
	.quad	-7754419470231232233
	.quad	407
	.quad	-1809447825368963968
	.quad	-4877215686228851849
	.quad	891264510737162501
	.quad	5289298756750850592
	.quad	4271911850867778170
	.quad	-3916160796551323964
	.quad	4924107368965138217
	.quad	-8091299804315898295
	.quad	209
	.quad	-6333817549934626240
	.quad	1992313805226927579
	.quad	-2698658339118907958
	.quad	7931811431405181802
	.quad	1380505795799777717
	.quad	-4241237988893888303
	.quad	6916036664031972680
	.quad	-5110328980796668146
	.quad	169
	.quad	986719403491998871
	.quad	874155772002511173
	.quad	9188386454987124747
	.quad	-8266178220748299442
	.quad	5834307506500416860
	.quad	5313501175588700622
	.quad	8568397777409913514
	.quad	5636932073702880752
	.quad	418
	.quad	4519390787710501023
	.quad	5904545987270702566
	.quad	1596090849444140079
	.quad	6158124188046347002
	.quad	-2283391790623581290
	.quad	4421978344430320233
	.quad	-7489066696599633787
	.quad	3266235625172216857
	.quad	48
	.quad	-5885478723551773693
	.quad	6797327166435904171
	.quad	5755337336861808121
	.quad	-4056432073934558795
	.quad	1302212429691083479
	.quad	5671090636981900291
	.quad	1927460478582093374
	.quad	-1572737149484687381
	.quad	116
	.quad	-5054270816791727398
	.quad	-3570225756992501388
	.quad	-921580579525476762
	.quad	6946818424851317003
	.quad	-8165895802259891441
	.quad	8071340908202871676
	.quad	8352996754229525243
	.quad	6466209109038527849
	.quad	207
	.quad	-2896315305335600749
	.quad	5102053968529423911
	.quad	4471011375864271835
	.quad	8979207992496669236
	.quad	-6687296622720709057
	.quad	-8054952617583197917
	.quad	5801678169156922629
	.quad	6190555607715562550
	.quad	153
	.quad	-7514675823032343078
	.quad	-8963209798315170022
	.quad	8909702847263912608
	.quad	8034739019270645274
	.quad	8432671485116908978
	.quad	3527131815440045297
	.quad	-18862336126620969
	.quad	846450874982801289
	.quad	477
	.quad	-5289209076286111504
	.quad	-84255863206959558
	.quad	-7272505268641255156
	.quad	6950105087099490841
	.quad	-6127910998940312111
	.quad	-857013027810843505
	.quad	844416215277384
	.quad	7639849352118584760
	.quad	60
	.quad	1760806524804016332
	.quad	5656442647167861327
	.quad	442685514901056407
	.quad	-4398045692698733422
	.quad	-2249048330195933197
	.quad	-7917845093621098543
	.quad	-2674876935085251720
	.quad	-5210100591050565340
	.quad	311
	.quad	4082490713544188048
	.quad	9046904292222888831
	.quad	6785478071887616338
	.quad	8469859019758180947
	.quad	2871116256724385676
	.quad	3146848404732539856
	.quad	6820854812233691752
	.quad	-7213548105979801285
	.quad	197
	.quad	-8523775351458059220
	.quad	-977166294217557600
	.quad	-8484762198743824678
	.quad	-2353076938820443174
	.quad	4563100953710399765
	.quad	-1978118424400389849
	.quad	-5945079570747985736
	.quad	-8234699944033291008
	.quad	31
	.quad	-4554869027102240904
	.quad	5024540440614058474
	.quad	-8646932384652653632
	.quad	-2889308822230981728
	.quad	949558373845000555
	.quad	5462023533904090064
	.quad	3273928154232413162
	.quad	6540788050102158973
	.quad	479
	.quad	-215503005780745433
	.quad	8691540207825410310
	.quad	-1584048928060240748
	.quad	-2133582354842813354
	.quad	-7919070981708615168
	.quad	2969000058162621829
	.quad	7093229696084667322
	.quad	-8367632036970782486
	.quad	48
	.quad	8842024517513481581
	.quad	-2965799247536414868
	.quad	-4343908694228360418
	.quad	-8667193409286735147
	.quad	1108064572434101285
	.quad	-4402694609222399615
	.quad	8149477565991747
	.quad	3598274515423157055
	.quad	206
	.quad	2510972042373886529
	.quad	-3791937335167106741
	.quad	-4799911215726200747
	.quad	3509067965873330612
	.quad	1842284509041728802
	.quad	6967193124302803772
	.quad	-857220231598204063
	.quad	4552449356756864798
	.quad	436
	.quad	-1104233257801918738
	.quad	1301871403839365733
	.quad	-6805902562372943265
	.quad	2853678767340331271
	.quad	-4852845407702632998
	.quad	3233565724300634350
	.quad	7891335137500776978
	.quad	-4466637022368175884
	.quad	248
	.quad	-3048702046238194374
	.quad	-474144616602152024
	.quad	-5324299352225062359
	.quad	-5513196078077791039
	.quad	8798046550023033164
	.quad	-8467903936542275179
	.quad	-2382511259913549390
	.quad	4107820191546528021
	.quad	298
	.quad	7388310154974013809
	.quad	-6781082127953020794
	.quad	1871026311468822357
	.quad	8949190648400303355
	.quad	1376881925398219536
	.quad	2627752196809192677
	.quad	-4873827183331572661
	.quad	-5128917137224875375
	.quad	216
	.quad	34902626199643006
	.quad	-8459077675551612164
	.quad	-3075998174520220475
	.quad	-8008156606371690429
	.quad	4795891959989976261
	.quad	3999225772473313488
	.quad	-7184364476929091731
	.quad	-6514734732608641050
	.quad	506
	.quad	-4942144076218817503
	.quad	-960660492669286504
	.quad	2224626663748626825
	.quad	-3256167972975610386
	.quad	4791123410150482964
	.quad	1347083438633651403
	.quad	307440215982943557
	.quad	-5498660333005020235
	.quad	91
	.quad	3648665995137858385
	.quad	-1091848612012200487
	.quad	6570148100041728160
	.quad	-5907188164785061592
	.quad	1753518618252124996
	.quad	-6433414697932417524
	.quad	-1714106752422530701
	.quad	4619222954740591629
	.quad	60
	.quad	-1918960642431147570
	.quad	-940361805479218338
	.quad	-62245964965319608
	.quad	3900349513730176193
	.quad	-2015923726417584297
	.quad	8790912393383524507
	.quad	4095693808880333252
	.quad	-3597025827852940814
	.quad	60
	.quad	4206128964844051476
	.quad	4942795325148614321
	.quad	3633257360927458645
	.quad	-6392005827177629138
	.quad	4951851398971080969
	.quad	-1861659821446793611
	.quad	4314739057665723383
	.quad	-6816950764324893663
	.quad	130
	.quad	-1830174876821717266
	.quad	5414378410540797785
	.quad	-2999473586712981162
	.quad	-2338845564981870983
	.quad	-351613453992993566
	.quad	8513964296532782369
	.quad	4107580341842147267
	.quad	5219583794565624355
	.quad	231
	.quad	7554254565712474388
	.quad	-516236744634715700
	.quad	-1856741741262320773
	.quad	3135276345276236449
	.quad	2357986522000221741
	.quad	-1706494593691143935
	.quad	462893453933780314
	.quad	6718596655942793726
	.quad	473
	.quad	3347980224214897801
	.quad	-1717949045047779392
	.quad	-1693283323707131219
	.quad	5721770769563210027
	.quad	4432952241513173540
	.quad	5064803323094359625
	.quad	-9029354300690726014
	.quad	130764959947820033
	.quad	379
	.quad	4625053843965883352
	.quad	-9029499088990740056
	.quad	5107106958092413567
	.quad	1970938251038307683
	.quad	5163541270756322312
	.quad	9076531848995165566
	.quad	-78541952039830265
	.quad	-2798044066273543540
	.quad	300
	.quad	-6654033340124350584
	.quad	-7178646895138406711
	.quad	-1355895081063509827
	.quad	-1441988770693908850
	.quad	1061895209145375650
	.quad	3958146250732357223
	.quad	-1446846480194878320
	.quad	-8777621807433479747
	.quad	45
	.quad	6533745958075523179
	.quad	-8572046437911024708
	.quad	-3838770471956923552
	.quad	5971102388614703728
	.quad	-5410607926150529576
	.quad	4878372274525122149
	.quad	3007696723361086888
	.quad	-3465129471240894105
	.quad	439
	.quad	-7186430491586979405
	.quad	-1833619973348879000
	.quad	-1286094374206741694
	.quad	-9057330086776649446
	.quad	-7238670605339012073
	.quad	5551319071208267110
	.quad	3699670483779507948
	.quad	-2624277970721162046
	.quad	154
	.quad	-3193625895457897792
	.quad	3529997524875171640
	.quad	6080938602657061807
	.quad	2910833411076319695
	.quad	-3435150979495915332
	.quad	3210337773662538692
	.quad	8935360382469873150
	.quad	-5873645705756748655
	.quad	297
	.quad	-5828369869147246506
	.quad	-4401397409903233138
	.quad	-6929806081592288183
	.quad	-6853267767916518985
	.quad	6279447091759131997
	.quad	5200962452954070135
	.quad	762853864862641894
	.quad	578079607962036272
	.quad	152
	.quad	-2507978596473042257
	.quad	3816587145044257400
	.quad	3952613082571030457
	.quad	-8959015742372483914
	.quad	-3947143341152159839
	.quad	5496863613797702019
	.quad	1552760432592369031
	.quad	-90167294241590967
	.quad	133
	.quad	-8418217324451680872
	.quad	6212507624394683403
	.quad	-5826571296680064269
	.quad	146771047966575283
	.quad	-132925051972073625
	.quad	6266537577798033106
	.quad	90368715693836229
	.quad	3458754271196833263
	.quad	260
	.quad	4399473124839348799
	.quad	-2212191969129433986
	.quad	-790804006055321134
	.quad	8752413721453199073
	.quad	-5063137518967670127
	.quad	-1663819900925776769
	.quad	788687402491792038
	.quad	1330781174573475503
	.quad	286
	.quad	1762969970106293573
	.quad	7328848315879064419
	.quad	-8130307391551654910
	.quad	5430062125406549300
	.quad	4737240696986233643
	.quad	-5444603653601659990
	.quad	-1463335802160722091
	.quad	-2542449900361115537
	.quad	343
	.quad	-1539732894610726154
	.quad	-6903932020440551068
	.quad	-9205442514761010939
	.quad	5496870513951427097
	.quad	5801436491954879958
	.quad	7360540423654218930
	.quad	2104000339658462758
	.quad	-3335822224340041106
	.quad	117
	.quad	-2431263507580022181
	.quad	8108930405231278270
	.quad	2539656674853429022
	.quad	-9158183796928782784
	.quad	2220342568923455784
	.quad	4219195162914911235
	.quad	-1839384314752146342
	.quad	7182437990680020728
	.quad	370
	.quad	7063852900096316956
	.quad	4592384789074350110
	.quad	7954004557148022464
	.quad	2248668199901332604
	.quad	1627501923371531166
	.quad	-7132016552654170619
	.quad	-5485777799550598135
	.quad	-7010464241918626138
	.quad	445
	.quad	1654338541086583985
	.quad	-6646660162528711980
	.quad	-5198889847450175313
	.quad	1335253931086339857
	.quad	3420346043096385749
	.quad	5439505206023502725
	.quad	-2081106968844796688
	.quad	2096056088064746610
	.quad	140
	.quad	5516810805083976623
	.quad	1679532185706487135
	.quad	7425895550145402309
	.quad	-2998285119693681146
	.quad	-4675304477658993020
	.quad	-2306079609243235819
	.quad	7638350696274736998
	.quad	7488154289700939404
	.quad	258
	.quad	-4892954704352952963
	.quad	4727218843015848067
	.quad	8955427465760297954
	.quad	6628345192006512845
	.quad	1352649162563367304
	.quad	-725217550387637060
	.quad	-154956283797135301
	.quad	-1320891407213593619
	.quad	22
	.quad	-8848594734778163200
	.quad	3066629604172299923
	.quad	-6596988807205738999
	.quad	-9149126618003000034
	.quad	4359238349392979909
	.quad	1272048256667703991
	.quad	-2517829093372518454
	.quad	-6952149480613794128
	.quad	12
	.quad	-1855377097402676844
	.quad	-1414524751991870913
	.quad	7133542344495361664
	.quad	3372679246603461938
	.quad	-1296536580927588627
	.quad	-1063727400301027658
	.quad	-3234871652809232781
	.quad	2322754071470649347
	.quad	56
	.quad	3949027841498984954
	.quad	-751024520794651731
	.quad	8533247952401763864
	.quad	726513536122140659
	.quad	-7907151113808033244
	.quad	-6145030277841944764
	.quad	-7036855135574286319
	.quad	-2850902008483339045
	.quad	388
	.quad	2733771671106585961
	.quad	734459632341574341
	.quad	7322899348022295442
	.quad	-5601741450354010616
	.quad	-4507737556097604501
	.quad	-5022298011829857206
	.quad	5254625020234840687
	.quad	6914895679872121571
	.quad	493
	.quad	-8417454614520898224
	.quad	6891813160252987002
	.quad	-3744766184782688753
	.quad	4216661144420904149
	.quad	-1015365736321932738
	.quad	-824745922185328627
	.quad	-3732793300340848421
	.quad	3634631442132007997
	.quad	454
	.quad	2380316747041666739
	.quad	-9037057395585714679
	.quad	1811218608954098164
	.quad	-6242353167016648471
	.quad	-3359713480376748217
	.quad	-8517875133954213426
	.quad	-4342689552472052371
	.quad	-2401756270931720418
	.quad	444
	.quad	7454671804883752642
	.quad	-6056805637042733879
	.quad	322343668100551599
	.quad	-6665105873859698056
	.quad	5878856114161309372
	.quad	-8322946424033033604
	.quad	5694676188398314341
	.quad	5657342789790257742
	.quad	216
	.quad	-2714302429024013157
	.quad	-7605332634259541006
	.quad	-3268048504637838778
	.quad	-6107758763991101
	.quad	6126345039524271443
	.quad	-5824423563652309117
	.quad	-6390878686472163637
	.quad	-3486055751193856779
	.quad	120
	.quad	1661839675229814447
	.quad	8992382183835091456
	.quad	6367271522560843971
	.quad	-8262997069050572915
	.quad	-7104675934378002550
	.quad	8568005314656644436
	.quad	-6993484235349426233
	.quad	7472961756157289418
	.quad	290
	.quad	7106111743870922463
	.quad	2557538647612776580
	.quad	-2174954721395828198
	.quad	8542581932089860480
	.quad	-91239833566164269
	.quad	-8022208447411703076
	.quad	6784170119382923371
	.quad	-3770722373113282657
	.quad	400
	.quad	5316086411252976451
	.quad	-5800315218045506538
	.quad	1580756501005471549
	.quad	-6129216767292900929
	.quad	-3705936253758603371
	.quad	2869773549375281452
	.quad	-8432819322068338166
	.quad	-1550296978087062648
	.quad	351
	.quad	-2478333950440208438
	.quad	-7864279634720949034
	.quad	-705780085022272335
	.quad	-6830521819477802163
	.quad	-6407466791628462590
	.quad	2361293046209911978
	.quad	1720069975116427668
	.quad	-1069490257454213388
	.quad	440
	.quad	-3141149488096063381
	.quad	-7820369659609647969
	.quad	8829390011568195881
	.quad	-973840603276610540
	.quad	1058178042478693763
	.quad	-6560853220851764276
	.quad	-7998085502957149273
	.quad	1758372985989385475
	.quad	286
	.quad	407908834216774245
	.quad	-4737652604906417212
	.quad	3217967282757229487
	.quad	-6318292102702312767
	.quad	-6980386332200903266
	.quad	1191101066908278701
	.quad	-3455333876008983517
	.quad	2628891662123103944
	.quad	220
	.quad	-5915771089642829261
	.quad	2935083676021643625
	.quad	7991962202444405308
	.quad	-3677001461071915718
	.quad	-8030950985177305799
	.quad	1307839035439808514
	.quad	-2969735327944505467
	.quad	-428305546566080626
	.quad	97
	.quad	-4059998610201654379
	.quad	2656285769703352271
	.quad	1785329363520327022
	.quad	3711424394150210027
	.quad	-296511021075264299
	.quad	8540914569817743779
	.quad	-4633536129694090821
	.quad	8741118868864080558
	.quad	34
	.quad	-8791012316637231897
	.quad	2748058223992591024
	.quad	-9108904986514453755
	.quad	1721512820945884534
	.quad	-5580204254363014546
	.quad	-3425375749412394649
	.quad	5966985794382345546
	.quad	-722238200344698771
	.quad	477
	.quad	7712826176924762213
	.quad	-2926267494378798465
	.quad	2880300307816504720
	.quad	-6381111132488219147
	.quad	-816152299427254913
	.quad	7037046238361793475
	.quad	-6231827470305424988
	.quad	6979508084492753157
	.quad	255
	.quad	3609712396421766842
	.quad	524560456140451356
	.quad	-3119252393116652017
	.quad	-4446578707652267412
	.quad	5358070696321245478
	.quad	-2281227216895715607
	.quad	9128353325532673367
	.quad	166709808239568043
	.quad	493
	.quad	-5273317046357443752
	.quad	332552964973857013
	.quad	8134494880862406346
	.quad	5069936327828412164
	.quad	-5915904307571625843
	.quad	3893293504958878816
	.quad	-6022735001681773963
	.quad	-3435041338306757850
	.quad	224
	.quad	-5651872406361918572
	.quad	-7361875285150165967
	.quad	4520661049764072506
	.quad	-4981792491886367771
	.quad	1294196148842078704
	.quad	-3434054022147202942
	.quad	-3132160891045001088
	.quad	-5942347148145951850
	.quad	369
	.quad	-4546256512958541433
	.quad	-3164156006321158281
	.quad	5121680241080054248
	.quad	-2555283447782218739
	.quad	-6558586377497273133
	.quad	-7510867839918012205
	.quad	117321624456595681
	.quad	6423980003421900240
	.quad	422
	.quad	9102745154319604630
	.quad	-7330088602140741316
	.quad	3601383238317175201
	.quad	-2518361029250833604
	.quad	-4346426167764446388
	.quad	4512517099676412283
	.quad	3518606911853027507
	.quad	4174301936089026981
	.quad	505
	.quad	-7179346829739563744
	.quad	-7508771030238920363
	.quad	7660625765347019804
	.quad	3581861406747674069
	.quad	-6873383119844482594
	.quad	-2900688930910790585
	.quad	-3884811844291733709
	.quad	7991997123396421588
	.quad	60
	.quad	-8415268503554476571
	.quad	6230324075278130051
	.quad	-7713607778781463524
	.quad	-5566986779394425075
	.quad	6639176326593732132
	.quad	-7719125198631857215
	.quad	3604496103951642920
	.quad	7673315938723736670
	.quad	431
	.quad	-3118656648596569193
	.quad	-2321170225487917840
	.quad	1781694393936596784
	.quad	-7919592666515025158
	.quad	607023140458030416
	.quad	3090177852753919143
	.quad	7004894606125555929
	.quad	5275275665132404205
	.quad	327
	.quad	1920948936286590123
	.quad	2000359088456486709
	.quad	6622805769893569294
	.quad	1539955609602394300
	.quad	3884729680263839394
	.quad	6160798416764211009
	.quad	-1135782086151845287
	.quad	-4361395258303383072
	.quad	217
	.quad	3110706601602216755
	.quad	1324091753018457470
	.quad	-9027151238065830279
	.quad	-772166642339913189
	.quad	2750416433134146798
	.quad	-2560905711458463032
	.quad	-272078677815857315
	.quad	6044914875568551662
	.quad	305
	.quad	-2247977361874087851
	.quad	-3284008847922361357
	.quad	7731250805305267844
	.quad	-6256966505416596086
	.quad	-4654247297395188995
	.quad	2977227595382392066
	.quad	-2201586604401720546
	.quad	6182764675928231620
	.quad	333
	.quad	-1161051295798839729
	.quad	4368830957352394456
	.quad	-8054023372459361041
	.quad	6088126645672484789
	.quad	-5564855874067453639
	.quad	-5071470232247595007
	.quad	1806121652313926350
	.quad	2746138558645121701
	.quad	195
	.quad	1322248172932774828
	.quad	1916916489515983294
	.quad	-4989463830503036971
	.quad	742278288362973822
	.quad	-6333652989585555755
	.quad	4180829120713519482
	.quad	-6517943610868704513
	.quad	-3444307107663753796
	.quad	339
	.quad	4386486837820444729
	.quad	6006332768356466543
	.quad	1514560547258770922
	.quad	4007645737144795682
	.quad	-1824218913101053005
	.quad	6132706424358470507
	.quad	-7801420239219240816
	.quad	6090855326402060910
	.quad	2
	.quad	-5127045225006497688
	.quad	-463164781379809494
	.quad	4829071155552575846
	.quad	3234836143221887621
	.quad	-6931053579587133095
	.quad	-53392067710572491
	.quad	-4557663328205296748
	.quad	-874772348626728075
	.quad	352
	.quad	-2461944897501659370
	.quad	8377719326277474998
	.quad	1808842649572483877
	.quad	8291514989057951819
	.quad	2813978197297698824
	.quad	8495225676828602674
	.quad	2661698054197857943
	.quad	2138382130341486743
	.quad	166
	.quad	1117809692263673466
	.quad	6633924910728340929
	.quad	-8202505273160428356
	.quad	2845984847784694417
	.quad	-1348220170735125128
	.quad	-6885557078324284915
	.quad	-2048097262422321620
	.quad	-3205515730650549907
	.quad	65
	.quad	340040857315819183
	.quad	9042959468825301403
	.quad	-6101017637100618607
	.quad	1680046609538655203
	.quad	1600907188288963361
	.quad	8291648531230027427
	.quad	2274776296662959187
	.quad	4843819133197172520
	.quad	332
	.quad	3923151087658453131
	.quad	-1914832336148202326
	.quad	-8345852222278890954
	.quad	-3413845760612801785
	.quad	8858460610287778399
	.quad	-6189260653795732509
	.quad	-6445830337985974622
	.quad	2032171306642250417
	.quad	373
	.quad	-1717642461862217909
	.quad	-7805610392442832301
	.quad	4001785466721981187
	.quad	-6863955540547286440
	.quad	7998970383809473532
	.quad	7357974553155163940
	.quad	-2177917802247954098
	.quad	7889766914544427508
	.quad	357
	.quad	-5170172613415712588
	.quad	-4292070082655162024
	.quad	-5915316277375077516
	.quad	6280525500560118270
	.quad	-6647801897269512751
	.quad	-907773480189744271
	.quad	7926482680959170201
	.quad	4162895386051973217
	.quad	3
	.quad	5503181817065654847
	.quad	3525758596592110503
	.quad	-1948678261553121957
	.quad	-7674418495835060606
	.quad	8926624500733790168
	.quad	1336414089522329562
	.quad	1220664320024695321
	.quad	-116004749861243608
	.quad	165
	.quad	7273505152129980199
	.quad	-1477200345288528058
	.quad	-3795735842049087755
	.quad	1278984070237138934
	.quad	1466271023345526051
	.quad	8451500206400240390
	.quad	2875644778225680908
	.quad	6856452049393270571
	.quad	206
	.quad	5774876375809748802
	.quad	-4191491150063246719
	.quad	-4428850632802244342
	.quad	6419563815889821351
	.quad	-3935067003987154285
	.quad	5718935496447388159
	.quad	-5629578557625183734
	.quad	-496118757518014599
	.quad	270
	.quad	2756396792132655689
	.quad	7723726790076204674
	.quad	-2018822664324027532
	.quad	596025126730328682
	.quad	-7770091935512578328
	.quad	5543007480902995389
	.quad	5257028703286813907
	.quad	-8483010133146744204
	.quad	511
	.quad	2446739305904270483
	.quad	-3018497779345662367
	.quad	-2429871001006628255
	.quad	-4995031681066908219
	.quad	1635588086825140733
	.quad	-2976914632589007198
	.quad	2274240078780790941
	.quad	3425331231429510816
	.quad	255
	.quad	-6194533885912095527
	.quad	-2325241027215977301
	.quad	-2542117189948498241
	.quad	8825743721234381924
	.quad	5946470303453920285
	.quad	8949804112773721211
	.quad	6574342962194656824
	.quad	5341413647409826403
	.quad	46
	.quad	-3231009053713805395
	.quad	6768515997912577056
	.quad	-8430865474594634618
	.quad	-161867467652199358
	.quad	6215679682137194970
	.quad	7900405762422745846
	.quad	7860969914267319896
	.quad	-6903103294210128615
	.quad	106
	.quad	5104309479721495566
	.quad	3559240807755945489
	.quad	7340843466982359232
	.quad	8496773767808690341
	.quad	5874061790507725481
	.quad	-8333417148102443742
	.quad	-7587666447079684488
	.quad	951610108920560155
	.quad	13
	.quad	-4585724000104401875
	.quad	-5518458775150956893
	.quad	101350450636684075
	.quad	-114378063807867
	.quad	-259964881677567056
	.quad	6252136793144910299
	.quad	-7944762850170563181
	.quad	-1373412115816281383
	.quad	43
	.quad	3732622683340126453
	.quad	-1981044569299170395
	.quad	-8235045928569087121
	.quad	6706380544269427642
	.quad	-1596638798696181125
	.quad	7043224928395811976
	.quad	6643310442637045364
	.quad	3098294098111801412
	.quad	97
	.quad	-6966076351935729228
	.quad	9184671183754099888
	.quad	2122776358118602566
	.quad	1748186492355261234
	.quad	-2997978856086875080
	.quad	4249939360723860017
	.quad	8277438903808027797
	.quad	-6201369402630266982
	.quad	114
	.quad	2172065951450302983
	.quad	-1140240772058034909
	.quad	-8325317780762848966
	.quad	-9063381117950420357
	.quad	-8212461300898156739
	.quad	-6283359103668567108
	.quad	-5281183294953558800
	.quad	-6217282381927057975
	.quad	491
	.quad	8772836964682776238
	.quad	-3339953711207154023
	.quad	-5913454791964092424
	.quad	5267007423176906691
	.quad	-2391020727694762380
	.quad	-7798689897095948580
	.quad	1697052216902036390
	.quad	5212485027086311166
	.quad	409
	.quad	-60809497618317133
	.quad	4131609411537628875
	.quad	-1898407416120852408
	.quad	8499115847423828214
	.quad	-5142423222451154033
	.quad	5543739832749499962
	.quad	185655866395047048
	.quad	5995544052922515930
	.quad	123
	.quad	5991821255097082563
	.quad	9127160493357000201
	.quad	3534262767486946466
	.quad	3496259704260829476
	.quad	-4491281279635288062
	.quad	3957543513569145775
	.quad	5334860512500209587
	.quad	8294426661765869284
	.quad	435
	.quad	6828883559501541807
	.quad	4296448389991043099
	.quad	4520410033573795696
	.quad	7695377933509749815
	.quad	-4628295913407207124
	.quad	-6886794859713854680
	.quad	4310401540625374906
	.quad	-2605527007203237768
	.quad	133
	.quad	3418993091704584878
	.quad	-4333318771183466503
	.quad	1135572900513462822
	.quad	-1041713668761869237
	.quad	6464852608908849974
	.quad	8011024661712548688
	.quad	-7988150815129806979
	.quad	-5331455813601539707
	.quad	66
	.quad	7867753616004259494
	.quad	6295764124903719428
	.quad	-7840573425000248322
	.quad	-7367815098098691251
	.quad	3507107420756835324
	.quad	-4342266785705405774
	.quad	-2435056266455934220
	.quad	-5856718307645854514
	.quad	338
	.quad	-4476687025045186842
	.quad	-5387759554604294017
	.quad	3930502768326681068
	.quad	2047099571026414230
	.quad	9115182833151600238
	.quad	-954437787099919324
	.quad	792699970092781895
	.quad	1227158318033972994
	.quad	76
	.quad	5353194886323920433
	.quad	-2621055663601024683
	.quad	-6463689837815758725
	.quad	-1982739994223164646
	.quad	-5849332469351144974
	.quad	-342255203397009400
	.quad	1043502962386135084
	.quad	2956874489342747483
	.quad	314
	.quad	-325334466739998116
	.quad	9052461849320368347
	.quad	5697963397787922870
	.quad	3106174547652682783
	.quad	-4188756912815508256
	.quad	-9216568465664455025
	.quad	-3052119017679324362
	.quad	-2536110493342407836
	.quad	252
	.quad	6489821298987095830
	.quad	-3799727591753719465
	.quad	6532882192562210231
	.quad	-1267469437027338483
	.quad	4199907331093772562
	.quad	-8507757988917552534
	.quad	9141300620516489936
	.quad	-4466080478687335414
	.quad	357
	.quad	-5488491237273795570
	.quad	1632996848727068858
	.quad	8997890499775801180
	.quad	1283308347438129810
	.quad	7377816539413046924
	.quad	152801169000102113
	.quad	-1584409046760534349
	.quad	2262958007224329541
	.quad	38
	.quad	7824548370002733139
	.quad	-6803260875480016465
	.quad	226088153232247310
	.quad	3271879371375835110
	.quad	-7223088950490889137
	.quad	-5542670704362340206
	.quad	2227035502814740964
	.quad	3338722843542720550
	.quad	244
	.quad	3774950082003341966
	.quad	1087884385178279424
	.quad	-3490794624292712843
	.quad	8886739581951981265
	.quad	-7273539470973637517
	.quad	-7096147406181320599
	.quad	-2001893728342171929
	.quad	4877111571380992278
	.quad	489
	.quad	897832772856013573
	.quad	5127512446635015056
	.quad	8369659301128958466
	.quad	3021536425038720896
	.quad	-1349449936651869361
	.quad	-5121153635183211304
	.quad	8162867760322625564
	.quad	-1189038917453317837
	.quad	481
	.quad	3714436775099909097
	.quad	2939759411402187754
	.quad	8818088780471737562
	.quad	-5269968518881515352
	.quad	-4871331416778140002
	.quad	5777022019568413421
	.quad	7691237754295003899
	.quad	129275510480467212
	.quad	344
	.quad	7897919825803301965
	.quad	-5971340935312542113
	.quad	5153084323299078306
	.quad	6947806502529080045
	.quad	-5646645840614258382
	.quad	-7492121255229759673
	.quad	-4401206421799094528
	.quad	1162727855279698044
	.quad	265
	.quad	-5579179820563282451
	.quad	-8526338897087666015
	.quad	7150663978577853460
	.quad	-7764914231809146358
	.quad	-3321109528846695820
	.quad	-7623320329526171930
	.quad	2641079649608387038
	.quad	1873815650877839053
	.quad	12
	.quad	-2828731244904837482
	.quad	8269285375548552765
	.quad	-6357598132247372816
	.quad	-7066372685482553269
	.quad	-6269449735965633658
	.quad	6949320378737036529
	.quad	6719047630630850683
	.quad	-6440844037352421173
	.quad	0
	.quad	-3324244274030518934
	.quad	6206860588309875760
	.quad	3728454093268795639
	.quad	-1462369341671413474
	.quad	-1160615051863602598
	.quad	-671813967365214541
	.quad	7487701129309390038
	.quad	-2504234836856763894
	.quad	190
	.quad	-1768526134903410685
	.quad	-1378516132534139463
	.quad	252713369980150029
	.quad	-7396519007513690377
	.quad	4531074778563656416
	.quad	6058548642297904791
	.quad	-2887010308464331944
	.quad	-1922139028172814389
	.quad	18
	.quad	1594452212617744854
	.quad	8163677035136781306
	.quad	2740136750942589229
	.quad	-8396074107477104776
	.quad	3567758085271311683
	.quad	1482422165077113086
	.quad	2753929737010612691
	.quad	4177924175938485930
	.quad	156
	.quad	-1766532629476362879
	.quad	-5713697829093811222
	.quad	3570891768924644351
	.quad	-207851478649498115
	.quad	-8237406947670033872
	.quad	-3838709831329312767
	.quad	-5854250586450393667
	.quad	-385509242660859494
	.quad	502
	.quad	-1232993474491681751
	.quad	758692625425106839
	.quad	-3794144178623975511
	.quad	5727653884941166450
	.quad	4646060119019670675
	.quad	8674752823442095708
	.quad	7786843233296618327
	.quad	297572117925949021
	.quad	427
	.quad	3075575261492009163
	.quad	-961998080687599985
	.quad	-2884552929206053518
	.quad	-8570874136502024849
	.quad	-5054463574486596899
	.quad	7849246048051464047
	.quad	-368899452380638514
	.quad	3060715580029916291
	.quad	224
	.quad	-4457822263767882204
	.quad	-1351022863921783078
	.quad	1294659762739070245
	.quad	3757140353191163997
	.quad	1395342368433449322
	.quad	-4287497426801004109
	.quad	-2067767810076691198
	.quad	-1043965067430479238
	.quad	278
	.quad	-416648040565987936
	.quad	-6274187352224702772
	.quad	-4249556572695641633
	.quad	-1573320868344848242
	.quad	-2416219171432190290
	.quad	-8837598043533914255
	.quad	1931856798369719415
	.quad	1528364304532739266
	.quad	329
	.quad	-4037719045915096965
	.quad	-8587752674847316323
	.quad	-2884219609155876928
	.quad	-8258142838141513132
	.quad	1759418538464338123
	.quad	-559659297506097251
	.quad	2987815835380908978
	.quad	-4054218217327933942
	.quad	266
	.quad	-8759514705448783051
	.quad	-335457164228105134
	.quad	6275161212253143708
	.quad	-7820932263904421591
	.quad	-4481972415725906251
	.quad	-2806443111363824001
	.quad	1566378388071128136
	.quad	1244268111455238526
	.quad	383
	.quad	1026317131746809056
	.quad	-6191228384264985197
	.quad	5903191133612059931
	.quad	2576227682220364925
	.quad	-2792695650458647322
	.quad	-9169311868160452616
	.quad	2064061662947538446
	.quad	3012802262746806139
	.quad	406
	.quad	-2828535254413265081
	.quad	2794885577423351045
	.quad	8780077362043374965
	.quad	-5463381224378253381
	.quad	-533545057302820745
	.quad	-5441071062664880499
	.quad	4177454076316864931
	.quad	-882490537282589851
	.quad	201
	.quad	-7610564434404527847
	.quad	8043505817698550736
	.quad	-4010210791473072222
	.quad	-2873981578640041851
	.quad	-985819963039975451
	.quad	-92259674340407439
	.quad	-8845919879661269017
	.quad	-7708656508559823962
	.quad	0
	.quad	-5641088771777940575
	.quad	3491933253290781832
	.quad	-1810534026716062872
	.quad	9164531053685928989
	.quad	3158669496344642711
	.quad	-6176233164604020129
	.quad	-5663432781257535689
	.quad	-4534866692419913014
	.quad	422
	.quad	2283207820030538745
	.quad	3343457018265414156
	.quad	3451594614147728730
	.quad	-3734652461167222445
	.quad	-9064627023283871904
	.quad	4625173044431965179
	.quad	7496931440139944514
	.quad	7593998937742438601
	.quad	316
	.quad	-2816043764233966537
	.quad	4786006853839258238
	.quad	-6500267404867943893
	.quad	6115435975567767933
	.quad	-2744661674915131210
	.quad	5988942951024140959
	.quad	325009621654357231
	.quad	2379352164764574862
	.quad	266
	.quad	387633886796202050
	.quad	-5562515020098906060
	.quad	-2487898161930686517
	.quad	-9077825694282282619
	.quad	7704492306372047501
	.quad	-2314433665426067618
	.quad	7738596501032489187
	.quad	4291560124582828557
	.quad	2
	.quad	8553289751654621564
	.quad	8496245421987793920
	.quad	-5771094097726191116
	.quad	-2397869324295844725
	.quad	6477152067968580283
	.quad	1194199592890667230
	.quad	586671785120988540
	.quad	937270092279014407
	.quad	25
	.quad	8334457113428810644
	.quad	-7585186542265086862
	.quad	-4833020135770430995
	.quad	3654398870455259115
	.quad	1486751928897377793
	.quad	3815054367376689782
	.quad	5227402477707626424
	.quad	5648839152241201662
	.quad	429
	.quad	-8111932672288449712
	.quad	6211991414981314682
	.quad	-1853556553500493672
	.quad	8042451560405646078
	.quad	711984996630554373
	.quad	2213904554335321496
	.quad	-1906907199823396492
	.quad	-917148269398780170
	.quad	395
	.quad	-1826745530623154913
	.quad	-1584131906033108948
	.quad	4615331198135406791
	.quad	-1019331235646335630
	.quad	555660429989204524
	.quad	-4134446243148990236
	.quad	2726545702645085298
	.quad	-5631339616978766876
	.quad	480
	.quad	-2880503952282474518
	.quad	-8915750121700751495
	.quad	-5267482667951397314
	.quad	5259961822443958155
	.quad	-606765501105264272
	.quad	-2071589054209154965
	.quad	-5980758737245533091
	.quad	7541819519212003544
	.quad	191
	.quad	-9060995990626266558
	.quad	-1685518783019958219
	.quad	8510971166966239002
	.quad	1233881730444201815
	.quad	5134656286336487747
	.quad	1102005435669185335
	.quad	-6756148079358880690
	.quad	-8881548914136525222
	.quad	445
	.quad	5725040061234659529
	.quad	2771868385613755644
	.quad	-715301614698966414
	.quad	-894077670464767610
	.quad	1826199076546761053
	.quad	-1171674838660234669
	.quad	-4378097101376815959
	.quad	-7622226876685663475
	.quad	351
	.quad	-6677378209690887713
	.quad	3030113167082816716
	.quad	-5180307133053567064
	.quad	3905985526125614371
	.quad	1295153713729507108
	.quad	-8718372478711261617
	.quad	3868727102321624102
	.quad	-420994335632363663
	.quad	322
	.quad	-3761374784143229186
	.quad	-2361283709591632048
	.quad	5636814400322359963
	.quad	-960766256266262151
	.quad	8156534893579441611
	.quad	-7836363298747323909
	.quad	7137248507468958175
	.quad	-4804949915874719090
	.quad	201
	.quad	4353584614619837992
	.quad	-60881449466422480
	.quad	-2004732391164656035
	.quad	8203258501071089275
	.quad	5549765834503588035
	.quad	6994377788506680923
	.quad	3186345788170120390
	.quad	-9171632450032671022
	.quad	23
	.quad	6303404480020185017
	.quad	3938759769755923527
	.quad	-223556885526096188
	.quad	5254282417284749899
	.quad	891620225281284611
	.quad	-6081345223461631628
	.quad	538193811789074405
	.quad	-1762013567616215956
	.quad	346
	.quad	5964167106316810598
	.quad	8857423413512783643
	.quad	7029162704801605792
	.quad	8844267739951905233
	.quad	-8913731811635072017
	.quad	7075703235835014474
	.quad	-1830498753001449618
	.quad	4157399281977656820
	.quad	26
	.quad	5509040205845547878
	.quad	-3988379923176344065
	.quad	3642116526580554440
	.quad	-164845811812213815
	.quad	8080711142543473823
	.quad	945521554283201526
	.quad	49077046448535403
	.quad	-5676966067829361171
	.quad	345
	.quad	8824568793341501311
	.quad	-6372350790863312287
	.quad	-2677102255292485243
	.quad	4312509080895411918
	.quad	-541391920150488921
	.quad	4151354158289601921
	.quad	8057670067766318016
	.quad	7019576221605858105
	.quad	385
	.quad	4181326551537403653
	.quad	-8772925204179438193
	.quad	-8627369147042991804
	.quad	-7950335169163772090
	.quad	-9034795906987027598
	.quad	-1047141750918022667
	.quad	4633863182895360458
	.quad	7898012586653779935
	.quad	345
	.quad	9219772917372372371
	.quad	-7710335944011789913
	.quad	6592978763935992769
	.quad	-812123468620691728
	.quad	8116721656817554995
	.quad	804230635292647867
	.quad	-5559194228459038345
	.quad	-2126222718056041190
	.quad	476
	.quad	-8395926294997475486
	.quad	-9200093400332935266
	.quad	1051693981762980395
	.quad	-4504053916151062614
	.quad	-7227992415654256152
	.quad	-4219230347707690086
	.quad	-4385675240611551417
	.quad	-8608597153551698179
	.quad	217
	.quad	3590486321217447520
	.quad	-2515109187599869130
	.quad	-8529625089713262077
	.quad	5805050432128895089
	.quad	3367915692308798543
	.quad	6540573824891937784
	.quad	8175233108927269969
	.quad	226014827131194137
	.quad	87
	.quad	7525979939048716437
	.quad	-5101011304810928336
	.quad	-135411790486167132
	.quad	-167891490670810824
	.quad	-1469582387264675399
	.quad	-7603712577272589203
	.quad	3450322720062911691
	.quad	-7894080625642477189
	.quad	202
	.quad	3785601970097922838
	.quad	1251535520902453839
	.quad	7891867737224525311
	.quad	8387064820175291319
	.quad	7960201616171336459
	.quad	4638893191941224473
	.quad	-8999473498373689130
	.quad	-9096673706953130101
	.quad	4
	.quad	2570575505976750626
	.quad	80896920520407862
	.quad	-8948204273956445820
	.quad	-8680675223927144734
	.quad	8670002499409079266
	.quad	-6832965384941670705
	.quad	-3480235239278478440
	.quad	-2046403760140020925
	.quad	223
	.quad	8355871187894748970
	.quad	-3430883670751408638
	.quad	7277151192193349475
	.quad	-3248259070973881293
	.quad	-3188816434890994939
	.quad	-4557461764806468335
	.quad	-155316579842461738
	.quad	4817654453844755272
	.quad	484
	.quad	209913425383831201
	.quad	-3476746057168764124
	.quad	2925973880900265504
	.quad	-1434243675229301729
	.quad	-6010814813935474094
	.quad	-2845234691078400071
	.quad	1266887676485815588
	.quad	4402572883155416554
	.quad	507
	.quad	-5674917596080830371
	.quad	7935545768472337617
	.quad	-3503877314855635714
	.quad	6368748830897052753
	.quad	1154536454910656915
	.quad	8886990899781387256
	.quad	5830701833211988410
	.quad	-3632021814296391785
	.quad	266
	.quad	-3984817636326336195
	.quad	-2503556807799266241
	.quad	884926854786119622
	.quad	1204486145332851349
	.quad	4745851184406464704
	.quad	-1426090494570377672
	.quad	-8567656663114058240
	.quad	-8257267215937024866
	.quad	265
	.quad	4933820495581087452
	.quad	3494326891681851834
	.quad	-1582219817612269714
	.quad	-5640866623951580779
	.quad	-7606510150643185089
	.quad	1679592141261525606
	.quad	-4406813437076287259
	.quad	-1832393280349973600
	.quad	271
	.quad	4655578489650643968
	.quad	3860681066979316619
	.quad	7857476607154796817
	.quad	2506495835855676561
	.quad	-1809774211567130014
	.quad	1495724375489175849
	.quad	5022444899224997872
	.quad	3945289955431436761
	.quad	508
	.quad	2669383495899004818
	.quad	-330972075949939970
	.quad	2094093395769585479
	.quad	7170013752565399466
	.quad	-508612978072437540
	.quad	7845385744783712456
	.quad	4389506369225291384
	.quad	4954221607440752235
	.quad	300
	.quad	-5322122651682324881
	.quad	6843079272559651678
	.quad	5384691704438811075
	.quad	1026202864709356265
	.quad	3281997928392587638
	.quad	-6935270023811289969
	.quad	8925518699477945644
	.quad	33863330534391980
	.quad	355
	.quad	6123338229998595002
	.quad	1512093232301234013
	.quad	-1029904987110696050
	.quad	-1239288076542499033
	.quad	7839021738288883149
	.quad	-8646673099718559025
	.quad	5975761670119540836
	.quad	6748076164901937789
	.quad	86
	.quad	-2352173496950280059
	.quad	3417351699204380619
	.quad	72568258171085571
	.quad	726959037666704286
	.quad	-3621645394708740734
	.quad	-3928663526198867458
	.quad	-6046528560236046041
	.quad	-7763317059099843225
	.quad	115
	.quad	-6894550263362327019
	.quad	-212132816576619512
	.quad	-6755171371454899567
	.quad	-1680554280372755533
	.quad	-7740371987270782378
	.quad	3161479789220561108
	.quad	-7990843222402197422
	.quad	459937472459253331
	.quad	371
	.quad	5062540235616826045
	.quad	-5429039740326996357
	.quad	5719760620948050762
	.quad	-2822179779909162529
	.quad	7613394945436259280
	.quad	3809127087921285846
	.quad	-5442163143121825528
	.quad	2230565132802033035
	.quad	390
	.quad	-8141966947373800827
	.quad	-8127274611818668240
	.quad	277210701640582898
	.quad	3380151034697874377
	.quad	-876605868092929376
	.quad	-7887263368481259538
	.quad	-5327838373896225421
	.quad	5695493192686739869
	.quad	426
	.quad	2687639545688973100
	.quad	-2212643603080912834
	.quad	3314563652866791703
	.quad	-3613154957749913428
	.quad	7413543213948866825
	.quad	-3843404872108693157
	.quad	6220081320655982326
	.quad	-6334586699972118572
	.quad	17
	.quad	-3118902152288800563
	.quad	1515769347541268050
	.quad	7265398394423679340
	.quad	7183315387391316729
	.quad	-988600121437833646
	.quad	-168730974577712228
	.quad	715026715547219447
	.quad	-1015211563014732378
	.quad	405
	.quad	-1345676843706501483
	.quad	-7676540072675785786
	.quad	2257414062165459192
	.quad	6501569126853579838
	.quad	-929502462067689695
	.quad	-5272623256056178904
	.quad	7682751518047385047
	.quad	-6292703492832070350
	.quad	128
	.quad	2950085209383475920
	.quad	-8460383097229159809
	.quad	5757829583322047650
	.quad	-2403257905788130790
	.quad	-9112313157877236654
	.quad	1048964332822890486
	.quad	-1447876093341551473
	.quad	-2486508409552304648
	.quad	324
	.quad	8648225256074183036
	.quad	3378613929052319356
	.quad	-4884264442402440443
	.quad	5126789568319749399
	.quad	-152744631511486397
	.quad	5137407935625130291
	.quad	2850738644582461840
	.quad	4960892313170221468
	.quad	144
	.quad	9004564845212040008
	.quad	1848106877618508526
	.quad	8000840288340205131
	.quad	298978284181786599
	.quad	2917699064750917472
	.quad	-2463712514669531533
	.quad	-1947621459484025719
	.quad	-1254243834340282769
	.quad	280
	.quad	-8758664815443772703
	.quad	-3565375632138246510
	.quad	5822878722964031958
	.quad	1060414712616946619
	.quad	-8556021087519361080
	.quad	575214800028525925
	.quad	-4330323570478724177
	.quad	-7786954936407672658
	.quad	135
	.quad	9087301538571837933
	.quad	671548994330408114
	.quad	-1612956211766300367
	.quad	4222289346561648187
	.quad	-1242130249117956228
	.quad	-5149885203938923952
	.quad	-3284099879510039571
	.quad	6979229434489613142
	.quad	28
	.quad	-4934210872103935677
	.quad	8793129426132567792
	.quad	8232628155172773635
	.quad	6710722522293298587
	.quad	1849476303966213688
	.quad	-8223309480990439262
	.quad	-2710833175767005380
	.quad	-5712639028465907675
	.quad	441
	.quad	-2823450361815003697
	.quad	5630889145810881515
	.quad	4306288808556575572
	.quad	-6851799135460483266
	.quad	8883446575878269089
	.quad	5954308816416185011
	.quad	8920338447782315643
	.quad	7745966190711073076
	.quad	482
	.quad	-3622959891604168231
	.quad	9219541606645815458
	.quad	6844572970853899434
	.quad	6464259838609445628
	.quad	-101470029945509036
	.quad	3165131891854401138
	.quad	6727062616535542555
	.quad	-727986194374599226
	.quad	15
	.quad	7991452003808238028
	.quad	-2774579168260055731
	.quad	-8621936574204850571
	.quad	-5124619006146236239
	.quad	7285249937673567739
	.quad	-4468955312587424236
	.quad	-8689522553650436594
	.quad	-2203108928862969187
	.quad	263
	.quad	-3916474884919092782
	.quad	2476428376752106892
	.quad	1751086878892050435
	.quad	2882981643616107132
	.quad	6479335707178189406
	.quad	8186956370610254410
	.quad	-7483917163910822911
	.quad	6310619255966619020
	.quad	16
	.quad	-3366149685100075185
	.quad	610831002793795935
	.quad	-8674023289276647714
	.quad	-6955602553046826649
	.quad	-726243077481837674
	.quad	9017594563189580347
	.quad	-3656033289478888216
	.quad	4087554013655591259
	.quad	258
	.quad	5232728393810036176
	.quad	3782196105290399081
	.quad	-4726030626635276396
	.quad	-3015505429554889152
	.quad	-7150712812375634989
	.quad	-6193841516924717355
	.quad	-3395166729627154692
	.quad	7407822360805771371
	.quad	354
	.quad	-7265244756571084708
	.quad	-6654663581038934016
	.quad	2631669236947597049
	.quad	-1926832045142976620
	.quad	-4121383929232161643
	.quad	5367111204806885931
	.quad	7249393051107744173
	.quad	-9152646709561985030
	.quad	8
	.quad	2317902651107930172
	.quad	-7332052203494219760
	.quad	3055604673524710599
	.quad	-3544246420713283355
	.quad	4466504314933652972
	.quad	-7349970571851209549
	.quad	2757270233412973173
	.quad	4448664670851516300
	.quad	176
	.quad	-6940483022495569203
	.quad	4746386972634694081
	.quad	8943934249199103500
	.quad	-5109111771137080246
	.quad	1878482462645727638
	.quad	3114179803769499472
	.quad	6147636117814808473
	.quad	3002375749364391157
	.quad	406
	.quad	-4618301897543813673
	.quad	6845738658390434984
	.quad	3567997387336686073
	.quad	1367914160714371004
	.quad	865458918024147206
	.quad	6346059333168691982
	.quad	-2889426649608142388
	.quad	-5434786564944263962
	.quad	41
	.quad	5987646269726300838
	.quad	-611210262539109343
	.quad	6400666726259486748
	.quad	-2207271019233399617
	.quad	-7916117778636227771
	.quad	414499624065410177
	.quad	4043374065587553613
	.quad	-2479067559839100154
	.quad	381
	.quad	6206310751156663243
	.quad	4903293939365015923
	.quad	5253779687145453130
	.quad	-4753353714598410905
	.quad	1359267791686699298
	.quad	-7404835073294254240
	.quad	-2740203603639846642
	.quad	-6146862603106307030
	.quad	53
	.quad	3227426726288061720
	.quad	3431209423125791235
	.quad	2330677971003744203
	.quad	-8616028043714913587
	.quad	2157572355874613758
	.quad	6306390098221100958
	.quad	-5386198908698979493
	.quad	5451048008048270743
	.quad	413
	.quad	-4230112581401642820
	.quad	-8660906498247794136
	.quad	-7682482400856015453
	.quad	-880679544035812034
	.quad	-767925120340926707
	.quad	846303354986354888
	.quad	1814108453962240440
	.quad	-6162156286524172577
	.quad	295
	.quad	1134230490753383418
	.quad	-7310969405275588300
	.quad	-1458093785702049950
	.quad	6625315090269313114
	.quad	991948147130187608
	.quad	3236060914193728530
	.quad	-4219448193322015416
	.quad	-7667942763614151457
	.quad	353
	.quad	-4551628153638961535
	.quad	-1334466446998304698
	.quad	-454858439047935781
	.quad	-8713003327042609746
	.quad	4038049774989944117
	.quad	8481674118552847196
	.quad	8688383714261733665
	.quad	5391111030667696536
	.quad	74
	.quad	-3559476759988175173
	.quad	5173820262100671574
	.quad	3059275815064218731
	.quad	-6144022359276369732
	.quad	-1312053480393655993
	.quad	1506708415441088745
	.quad	-5361719125570301863
	.quad	-499782913807996760
	.quad	317
	.quad	8608509499058537698
	.quad	-4415741745074153438
	.quad	7122032028395694928
	.quad	6866083737417623554
	.quad	-1595326534327654178
	.quad	2516004509850999390
	.quad	6934697628194167629
	.quad	-4214836890069863483
	.quad	430
	.quad	-9051463128096192772
	.quad	-2928063248345851457
	.quad	-81182454090227168
	.quad	-2517083422838226471
	.quad	2442566906604816187
	.quad	-806867241185164509
	.quad	-8053233297848618042
	.quad	8503285643183168526
	.quad	256
	.quad	8684044765573735986
	.quad	5712775176694515743
	.quad	3467519589885526726
	.quad	8466095195665811210
	.quad	7437181903649380110
	.quad	5505697799821137523
	.quad	4022114555708807029
	.quad	-1857053411084733457
	.quad	90
	.quad	4761421028514956469
	.quad	8652865817834635419
	.quad	-2349475998759394375
	.quad	-4635757345844688009
	.quad	-2912066056265744744
	.quad	-8524847424955850886
	.quad	7472537757709177012
	.quad	764805652704051059
	.quad	101
	.quad	1492362378611302453
	.quad	-5262482604271152462
	.quad	143184757540907635
	.quad	-6142812103659419188
	.quad	4814133170955718372
	.quad	-7839846406029142410
	.quad	-6166093356451484359
	.quad	7962589585112352431
	.quad	146
	.quad	-5861728154355146860
	.quad	-3300386406445062315
	.quad	2596448441033703517
	.quad	-136044356801901447
	.quad	-6615521329222588161
	.quad	-7758754683612321373
	.quad	930026166138241281
	.quad	-7513388494037849200
	.quad	11
	.quad	8697628740314267745
	.quad	1428198589208298902
	.quad	5300948358239560812
	.quad	-4855172194372609413
	.quad	7776923960124484789
	.quad	2671597950797762908
	.quad	-3916869184923410612
	.quad	1342941895944900146
	.quad	251
	.quad	6688624815794023334
	.quad	-8588839792075392428
	.quad	1655856792615292544
	.quad	-4345297926628930996
	.quad	-4116577340106709929
	.quad	1033394685855399601
	.quad	-1608538381901558751
	.quad	7292235074804414514
	.quad	498
	.quad	-1736017411410762095
	.quad	-1589905203769174952
	.quad	-7968874392654097473
	.quad	-2164989887587330890
	.quad	3657577925935221021
	.quad	6571033378611098425
	.quad	6627529736895246399
	.quad	-6865060885587067468
	.quad	390
	.quad	2558390261193659904
	.quad	-3486053766413766507
	.quad	-435187761130800691
	.quad	-4236785833450061031
	.quad	986710539831784932
	.quad	1904483277339548863
	.quad	-2135381646588041704
	.quad	5690427580646083891
	.quad	260
	.quad	-4971763520790315681
	.quad	-1668338681481589714
	.quad	-7383391412440126178
	.quad	-1589577326256273673
	.quad	-7657615689519297125
	.quad	6804037967406392304
	.quad	-2577211815294425601
	.quad	3193643273028483995
	.quad	329
	.quad	-1907002786540202061
	.quad	7571713680741297262
	.quad	3519395848966763040
	.quad	-3044261110732480907
	.quad	-5587678737349769350
	.quad	5789960755374001047
	.quad	-8620562435544938963
	.quad	-7816359103978684683
	.quad	406
	.quad	-3140328832790271787
	.quad	4794281778103713116
	.quad	-1915062240277022997
	.quad	-8487846512367960280
	.quad	5411261729396646565
	.quad	-9140368785032720417
	.quad	5006373155731282607
	.quad	2388872585642405019
	.quad	10
	.quad	-1403766448824346767
	.quad	-5564148661091462837
	.quad	-8405013607565633532
	.quad	-4695021905526495230
	.quad	748869048939216116
	.quad	-3480509607245573652
	.quad	2610632943451165963
	.quad	-2879793310509135350
	.quad	473
	.quad	547968661522344296
	.quad	-7772818000463800262
	.quad	5630466379579229554
	.quad	2646556517237011401
	.quad	-4214553853145685574
	.quad	-4167681790969126686
	.quad	-6790018214841910246
	.quad	254648173436513824
	.quad	46
	.quad	-2507065350373309099
	.quad	-8068840470705090421
	.quad	3475917802102318716
	.quad	-5291219186419554524
	.quad	6383771348968053157
	.quad	7715408730514927258
	.quad	3251369654956613289
	.quad	-2398488895048694513
	.quad	101
	.quad	6865699946467238871
	.quad	-8964303094686962606
	.quad	150001146087613616
	.quad	2768746871451442283
	.quad	-7679221599114526804
	.quad	-8174838103234778971
	.quad	8315424766518997633
	.quad	1376484730219418221
	.quad	138
	.quad	-6320747560141564882
	.quad	2268281938654757767
	.quad	1597302635947982638
	.quad	-3286385412810338024
	.quad	-5531828679601876947
	.quad	7180181828439837417
	.quad	-1134029990901115993
	.quad	-487487189947670186
	.quad	348
	.quad	-1884755796134496186
	.quad	2217902516870032966
	.quad	7831932432066253575
	.quad	8553932536194644609
	.quad	1356565156259402251
	.quad	2495433360613251970
	.quad	-8350852344480389264
	.quad	-723222299693017222
	.quad	449
	.quad	2020105529467156149
	.quad	-3189639384188765711
	.quad	-2846538351863226917
	.quad	-2861896853647376845
	.quad	4585126152738708617
	.quad	-2290198583764840656
	.quad	-1885943373626963992
	.quad	7099608554233918049
	.quad	341
	.quad	2031394737217771525
	.quad	-812192701866240288
	.quad	7873577815335999447
	.quad	-8702112273703755572
	.quad	7797015762097458586
	.quad	-6836572354393058694
	.quad	-679560189242015956
	.quad	908977855628351505
	.quad	156
	.quad	-6903115233100452221
	.quad	-8048397243927292029
	.quad	-7921535160596834716
	.quad	8537977904571401474
	.quad	3995231727519400704
	.quad	4435198786570559589
	.quad	2164817817008944694
	.quad	6637566257903431483
	.quad	411
	.quad	-7617427728115873935
	.quad	-1175124872662499168
	.quad	-6324390632231464406
	.quad	-4390431816520685054
	.quad	5160867436563628535
	.quad	3447254556769003874
	.quad	7735532855057850780
	.quad	3074764671403134120
	.quad	34
	.quad	-8054791068174328588
	.quad	-7176645161061186512
	.quad	4804116614631601428
	.quad	-5640839264090760120
	.quad	-8760327231799629304
	.quad	1423578003798866995
	.quad	7271851174124139864
	.quad	-4465499888193067957
	.quad	240
	.quad	2223108543814151271
	.quad	3049163918615006141
	.quad	7560810547118724114
	.quad	-4491721099740014434
	.quad	-2371039495862422903
	.quad	-5051216738386292289
	.quad	-7985239656236972216
	.quad	8991376149148298932
	.quad	144
	.quad	-1857195614410779698
	.quad	8507107775474168248
	.quad	-9037467554278815025
	.quad	2517720908180359670
	.quad	7830884868827460519
	.quad	-3989016495102429379
	.quad	-4272147917423300451
	.quad	1629393798758691399
	.quad	226
	.quad	2776595527641534606
	.quad	-1556648068523769598
	.quad	5758656124340361855
	.quad	3541467326198990968
	.quad	1753454936006962099
	.quad	2113044631082633933
	.quad	8127889857133339786
	.quad	2147108711901165474
	.quad	418
	.quad	-8373969138317406384
	.quad	-9088799935613820726
	.quad	8707408772922436753
	.quad	8785455159524078579
	.quad	-3682901191240382050
	.quad	-8897673953492861765
	.quad	4177912428255222439
	.quad	-709704061692540240
	.quad	110
	.quad	2679185350055411042
	.quad	6062291532054559293
	.quad	8808581554294663431
	.quad	-8267625080261433871
	.quad	-1889097704860713307
	.quad	-1938317456925453184
	.quad	-696197491618355038
	.quad	1755731824690698059
	.quad	355
	.quad	-756411306666718842
	.quad	7495656421746888995
	.quad	-7932501513106149585
	.quad	1876416912826252532
	.quad	-6898385447458851004
	.quad	-4577309285513371487
	.quad	8011395898803519880
	.quad	-4115733680424186360
	.quad	43
	.quad	1709292214616141354
	.quad	-7199773616751517210
	.quad	-3799019443034537432
	.quad	6866377943354357058
	.quad	-2682291078031336885
	.quad	5472061201749078241
	.quad	-6277708068534075850
	.quad	2419724486907265300
	.quad	125
	.quad	-8597884120197542167
	.quad	-6643500155809784028
	.quad	9200002629496993276
	.quad	-1806788043912208953
	.quad	2711951498087939235
	.quad	754716784762694337
	.quad	5518789186622641296
	.quad	-59849900017479172
	.quad	17
	.quad	7823553966153951969
	.quad	-2916543505519892462
	.quad	-2453107172993904242
	.quad	8094859119633094301
	.quad	-6290285712047445720
	.quad	1865384082728120442
	.quad	5437845737823267366
	.quad	2686439692252127792
	.quad	52
	.quad	-2033672134266852937
	.quad	-107166313596242919
	.quad	-2397049681301316431
	.quad	3765417964822254502
	.quad	-4141732524448621665
	.quad	5818388038311089912
	.quad	-3932037543498049068
	.quad	-3370239851506381735
	.quad	274
	.quad	4067536081292985651
	.quad	-6540822780368167023
	.quad	-8916837228834511317
	.quad	-7622475787769549889
	.quad	-3932602461523501463
	.quad	9131878690072668412
	.quad	5109886153009894830
	.quad	-8671866238208635011
	.quad	368
	.quad	-4808211415201290082
	.quad	-8195773366506046032
	.quad	4080040092268139587
	.quad	7002818698020863763
	.quad	-4155764861358783409
	.quad	-2209405315353806661
	.quad	8666992123101021763
	.quad	-1033974735295025551
	.quad	124
	.quad	3902269967397445229
	.quad	-2661912965816101746
	.quad	-6267049044423117583
	.quad	-4156632563170285486
	.quad	48406936358894913
	.quad	5543029563824125374
	.quad	-2313429414324155402
	.quad	-2344118047217461331
	.quad	422
	.quad	4973271923869274777
	.quad	-8867923416446980702
	.quad	2289399057628412628
	.quad	-7786061571306420331
	.quad	279180555851914139
	.quad	1775381510979305724
	.quad	2223717763306374215
	.quad	-2187037981967981482
	.quad	116
	.quad	-2006037405703416439
	.quad	5721917798408144785
	.quad	8106091056034557308
	.quad	-6279140633858930425
	.quad	8009695856249386081
	.quad	1328788125717294607
	.quad	-8627629375545524090
	.quad	-4070984898745278496
	.quad	237
	.quad	-395137354619283532
	.quad	564641032137344163
	.quad	6662197643767317274
	.quad	3172176501728643139
	.quad	-8817224975924745913
	.quad	-2642649689917178214
	.quad	6512934019338600957
	.quad	8533761015894849827
	.quad	26
	.quad	8829115510216087659
	.quad	3082780329381730433
	.quad	-2845948756969185273
	.quad	5982208811844513116
	.quad	-8770231127437053129
	.quad	-1858531910546475715
	.quad	6283868789777453812
	.quad	-7643623555162308361
	.quad	336
	.quad	3188548002159043839
	.quad	-2503204285528931668
	.quad	2114488325772739775
	.quad	-5996435219835137050
	.quad	-4669306230154594224
	.quad	-6245229081539921894
	.quad	-3506927639086668999
	.quad	-8550171881564267436
	.quad	254
	.quad	-3227334034928907316
	.quad	1308570276748373836
	.quad	-4086622913269743513
	.quad	-8755209369548123647
	.quad	-4917671325345136422
	.quad	-425990632962502372
	.quad	2729632755754998737
	.quad	532766014755925601
	.quad	91
	.quad	672288295779540585
	.quad	1102090951724141276
	.quad	-1098023973109494830
	.quad	-3320781203385654570
	.quad	-766973289346250397
	.quad	206970226996530354
	.quad	5963596019285718145
	.quad	-8457326284407506620
	.quad	491
	.quad	2179850438691045010
	.quad	581823983974428131
	.quad	7192472570780706510
	.quad	-622683157660620523
	.quad	91965050210646023
	.quad	-1151092346551080119
	.quad	-1580188435515137674
	.quad	-3766180286689365310
	.quad	326
	.quad	-2241933550032872990
	.quad	-6767062008754129417
	.quad	-6845688639471334384
	.quad	-6731993041631810130
	.quad	-4255622710710624061
	.quad	789087724199727018
	.quad	6654618696273446711
	.quad	6145334141074001014
	.quad	256
	.quad	8623841904347960744
	.quad	7143060690739935037
	.quad	-7501037739939830087
	.quad	3510768097512944353
	.quad	5983837832013686701
	.quad	7229497308090069324
	.quad	-7893216149896900553
	.quad	-5292429597716834595
	.quad	109
	.quad	-3754817047779011694
	.quad	-6280285748562591350
	.quad	512693430549560157
	.quad	-848038453376407778
	.quad	599568497649035489
	.quad	5303448774281237588
	.quad	7493125139303277060
	.quad	8491697042817573062
	.quad	42
	.quad	-3351874006981660739
	.quad	-9059095345417653987
	.quad	-7548407705400085266
	.quad	2813179510983341553
	.quad	-2154133144763148009
	.quad	-6318988134886249349
	.quad	1499403126112531919
	.quad	-68011899274363554
	.quad	17
	.quad	8873117513873273206
	.quad	-4871192311398546122
	.quad	-5944166247808639462
	.quad	5801203106827710226
	.quad	5472631210696508831
	.quad	6467833289949889837
	.quad	-4604284597687873943
	.quad	4974076268314710465
	.quad	388
	.quad	-8149422163374315564
	.quad	-3616627362203985436
	.quad	-1105624390581318904
	.quad	4344163868671139437
	.quad	8347650835447322698
	.quad	5750300801786061628
	.quad	818562809243748892
	.quad	1979895669677593297
	.quad	278
	.quad	-3252538531216220432
	.quad	-3051474845356622998
	.quad	6804276681500498121
	.quad	2603578975790118582
	.quad	8816107368472307876
	.quad	3603733479294506947
	.quad	-2771365820692532649
	.quad	3601630198067936221
	.quad	459
	.quad	-7862357336167979466
	.quad	8953135294974764946
	.quad	1972970011742587708
	.quad	3242855345745859083
	.quad	-1402065765798429043
	.quad	3487706995693376884
	.quad	-4007959256129758994
	.quad	1968281083142782313
	.quad	339
	.quad	7619304073853429661
	.quad	2289661101095632242
	.quad	-1984191244815588259
	.quad	-3686614154541261046
	.quad	-4565339954102746563
	.quad	-7886620295902090732
	.quad	-2503297847742818500
	.quad	-6597834922746755798
	.quad	466
	.quad	7628375288295776898
	.quad	-1710121850433652923
	.quad	8590844607796460030
	.quad	-4013028692362749252
	.quad	16426257591471501
	.quad	5352817490631488788
	.quad	7651218636071709302
	.quad	-770624837188715113
	.quad	440
	.quad	-4199828082296561082
	.quad	-7147069431919530710
	.quad	-6464103025498302110
	.quad	1393926867404921215
	.quad	-5918694735800719421
	.quad	6059909181551285611
	.quad	8002517964636757198
	.quad	6665681631289652215
	.quad	35
	.quad	5558871029522185613
	.quad	2949654247264145462
	.quad	-7318005829851536360
	.quad	-7583866636011613016
	.quad	-6883799703919883105
	.quad	-7875972897543193404
	.quad	5687906224845410656
	.quad	4967339799156286284
	.quad	356
	.quad	7853725951487276724
	.quad	-7013227426159376313
	.quad	-4062364468339304426
	.quad	8434492195726140408
	.quad	-4094924526063900418
	.quad	1188345315906797796
	.quad	2632334233621813241
	.quad	-8356601251087825750
	.quad	176
	.quad	-4717916066506114028
	.quad	1540634485123785835
	.quad	4393244321009299011
	.quad	-516956079803621074
	.quad	3683990539985030477
	.quad	-5846142214549358562
	.quad	-1279641524803155433
	.quad	3278714150305632989
	.quad	498
	.quad	-9031980851451731879
	.quad	-4168294899738636009
	.quad	4851102628812628218
	.quad	-2263326848716812089
	.quad	-1340479908370828267
	.quad	-2939276449515867445
	.quad	3867152981174510696
	.quad	5137158587225991410
	.quad	75
	.quad	8734153440120374331
	.quad	-5307496848408976263
	.quad	-7624534954869877929
	.quad	-5020067567363237908
	.quad	5983992210018362768
	.quad	-1367316587665099163
	.quad	8903485350785476249
	.quad	4410160173393824045
	.quad	210
	.quad	-1743764253553875066
	.quad	-664780502013719053
	.quad	-2639907050808646011
	.quad	-4124781220971227427
	.quad	-3744024847740177104
	.quad	-594976529678437791
	.quad	-2224649361703657971
	.quad	-3798470585207854352
	.quad	108
	.quad	3429449053024018163
	.quad	-2665765786867989061
	.quad	-2713906425831485691
	.quad	7098295531866912348
	.quad	-2209245332301366986
	.quad	7835954089726420618
	.quad	-7483001643707303187
	.quad	-4956061711166836618
	.quad	349
	.quad	-1478279046595473117
	.quad	7156995315080135350
	.quad	-1636274912495680119
	.quad	-815987259507364898
	.quad	6259201183383482286
	.quad	1733424590480922552
	.quad	-3360613324539591702
	.quad	-780841382596283282
	.quad	261
	.quad	7028210201242904261
	.quad	-7134221842534884523
	.quad	-4632475589245849360
	.quad	-3057162499152649956
	.quad	7176224978288934649
	.quad	6547572854279048391
	.quad	-5156372679630915461
	.quad	-1374495256546358023
	.quad	345
	.quad	7973498666667805704
	.quad	3175525618707456936
	.quad	3878931466712370711
	.quad	4586052083803008872
	.quad	-2153742524155120231
	.quad	1781465755282175685
	.quad	-4086982428491762830
	.quad	1301239144225524240
	.quad	207
	.quad	-8148742593705005869
	.quad	9138757385884039110
	.quad	-7544219750838819181
	.quad	-3159388332715085567
	.quad	-1630663842981300033
	.quad	-2885522445728140487
	.quad	5996712230610261420
	.quad	-8727174641214896562
	.quad	245
	.quad	-2965987572383880220
	.quad	1494346064110063406
	.quad	4935302614649288407
	.quad	2565620688957875092
	.quad	1628998807670123084
	.quad	-8747677663297437236
	.quad	72076240711468923
	.quad	-1286910338363297333
	.quad	202
	.quad	160176717964173299
	.quad	-6505599838723528281
	.quad	-3325491216670772743
	.quad	9067531903451653434
	.quad	-1292242521487461285
	.quad	-8079547808600150318
	.quad	1684756974993134371
	.quad	-5077805312525127911
	.quad	63
	.quad	-4025977031109672192
	.quad	1639194846494028669
	.quad	-6184434373211468093
	.quad	-8488057322496217887
	.quad	7101564456446202744
	.quad	-4547483715485255503
	.quad	3039653086790609400
	.quad	-2844035950147230716
	.quad	265
	.quad	3684506503685043870
	.quad	7370761146996484316
	.quad	-6033995757633083424
	.quad	-8849584284308203345
	.quad	1912872672403859319
	.quad	-4539390818853227161
	.quad	-7494852824178438216
	.quad	3595428198289973920
	.quad	193
	.quad	7282312433805837322
	.quad	8429870400535126392
	.quad	5710608813751610751
	.quad	3188619397534328395
	.quad	7479870209947937152
	.quad	6596657377869167613
	.quad	-5771264758871482538
	.quad	7036531016767848911
	.quad	121
	.quad	-8266104584681943964
	.quad	-708980780492278397
	.quad	4650026575346408421
	.quad	-8143713358311458731
	.quad	416113501292307182
	.quad	-3728092231437899676
	.quad	-2882439866543311739
	.quad	1044583735474818292
	.quad	497
	.quad	-4716539797217581891
	.quad	5384820598417908776
	.quad	-5535197821808956585
	.quad	-4201526376851301787
	.quad	7436085822457373410
	.quad	8377086259790930922
	.quad	3064509005830504286
	.quad	3268438599790930318
	.quad	93
	.quad	-5533237731194040816
	.quad	-4841080907158964667
	.quad	-3191186730147453248
	.quad	-6450984870555615941
	.quad	-1545059316900836815
	.quad	-6648766860451654234
	.quad	8634615744432211222
	.quad	2954034342510287942
	.quad	250
	.quad	2146872733045140354
	.quad	5483185940594758006
	.quad	-5402650683739571008
	.quad	4669278409766403611
	.quad	-7436744000289535787
	.quad	-1521703836664744344
	.quad	-5130950498999153823
	.quad	4072339328773955471
	.quad	304
	.quad	6993562402464777814
	.quad	36147819904426058
	.quad	-7375876147771366834
	.quad	1383925412377076478
	.quad	9137491979251738810
	.quad	1235635942164105952
	.quad	7139236854278749437
	.quad	-624672741368120498
	.quad	494
	.quad	2070869581436371963
	.quad	-1513998545150435736
	.quad	-9192250231503120805
	.quad	-1947599609562588576
	.quad	3810310103372770886
	.quad	-8865578531582073460
	.quad	-2034875971283070089
	.quad	-5498238156284334658
	.quad	288
	.quad	-1274258656599054769
	.quad	6334268745773063843
	.quad	4265349062761152393
	.quad	7544255841076814436
	.quad	6088379729985864124
	.quad	-4753654421545359929
	.quad	3191955630774702977
	.quad	-8410897513844114179
	.quad	288
	.quad	303529189181982035
	.quad	-4403835113494866792
	.quad	-7391243547747506119
	.quad	6713048982167039991
	.quad	4346638910322344194
	.quad	7146867250436206059
	.quad	-4097697531604807203
	.quad	6742760066350998721
	.quad	186
	.quad	-7084604788877498988
	.quad	8849906732481163329
	.quad	-7090935446414866064
	.quad	8902233725184466478
	.quad	966206523341805120
	.quad	-438469935867995484
	.quad	-6179387213779011419
	.quad	1538776302893852254
	.quad	98
	.quad	6428559709778475735
	.quad	-3940910934074140986
	.quad	6923152981064424061
	.quad	7516505302127405187
	.quad	-6125137144829977903
	.quad	-8127725999374605297
	.quad	1467336707741230855
	.quad	-1478788709561475454
	.quad	77
	.quad	-1537529984799644460
	.quad	1573214004422070256
	.quad	4258166753034466985
	.quad	-8673972238123349004
	.quad	9134278391981134898
	.quad	-8479790796078967231
	.quad	-7860935817739181848
	.quad	6125833423350679456
	.quad	143
	.quad	-2453118416985587652
	.quad	904449004060888471
	.quad	2394975696742473474
	.quad	3782328492991057806
	.quad	-7570812895364386377
	.quad	-5723307543530144314
	.quad	7643414268354295444
	.quad	-1617435974069459897
	.quad	174
	.quad	-8416278099515639441
	.quad	7145556974322131454
	.quad	-8466235290113296269
	.quad	7971549230360349090
	.quad	1345608157758562275
	.quad	-1728926749398099921
	.quad	-7563724470059544558
	.quad	-1112593103871494470
	.quad	401
	.quad	-1019221414664952053
	.quad	-8961309823689192632
	.quad	-5489535898917474160
	.quad	-1566504645939561405
	.quad	7276508640647520823
	.quad	-6631131138216569584
	.quad	-6158109373226363899
	.quad	-6207295372824620982
	.quad	97
	.quad	5394846638046326377
	.quad	-6569185226808601879
	.quad	-8760179847255196829
	.quad	5197199717095127305
	.quad	-7185087552493674663
	.quad	-4737612378022898235
	.quad	-6791064198424424798
	.quad	5346837772952086455
	.quad	258
	.quad	-1904742833121351994
	.quad	-5430871264930042612
	.quad	-7930387967933036249
	.quad	-2741049470238317568
	.quad	-7223095442537491093
	.quad	-9062237232322926753
	.quad	1909922381824411588
	.quad	5113571611612830985
	.quad	80
	.quad	-3645398601314206048
	.quad	252723273353034162
	.quad	6469441914768236065
	.quad	-3151631962436769254
	.quad	-1298898560219740868
	.quad	-2269293829271308464
	.quad	7723580196909565154
	.quad	-4531248533267473908
	.quad	338
	.quad	1739541140911037001
	.quad	5469318127846170593
	.quad	-1536293461672002999
	.quad	6800235633639276611
	.quad	-4638738924535523529
	.quad	-4990946969101898481
	.quad	-9211584544757436429
	.quad	6628368250574028796
	.quad	338
	.quad	568952093062889957
	.quad	-2910971537036954038
	.quad	5035292801838645712
	.quad	6455353624050619046
	.quad	-1240353888057356439
	.quad	4943907497240029120
	.quad	-8755533432208507898
	.quad	-4636998304594123920
	.quad	453
	.quad	-2708262265865153561
	.quad	425032838162874715
	.quad	3021084541938468917
	.quad	-6447772999112417780
	.quad	-913890979007105771
	.quad	-2221286398599634040
	.quad	2617932050579853870
	.quad	1462661713376655975
	.quad	33
	.quad	80278757792577498
	.quad	-7048511287392133858
	.quad	2433237260860256072
	.quad	-6525479410274798763
	.quad	5232606272670892640
	.quad	-8167166006225252110
	.quad	2567518442949364100
	.quad	-8658298829021072584
	.quad	371
	.quad	5785615319758340461
	.quad	-8510104390114664135
	.quad	-1034443959561995008
	.quad	8556075708927723152
	.quad	4407487287411507873
	.quad	-7166215929291544303
	.quad	1540671792984069561
	.quad	184918119743027276
	.quad	173
	.quad	1814152693985471961
	.quad	5212693370897130979
	.quad	-5961417523527042934
	.quad	3767631303093180656
	.quad	-1098566611819423152
	.quad	739365089272155057
	.quad	8100951569039853253
	.quad	-2128486227309958432
	.quad	199
	.quad	-6430314522601369861
	.quad	-7291977013060197484
	.quad	1967307163926423136
	.quad	5086773780426599532
	.quad	9172426728427219070
	.quad	-8971831185917158551
	.quad	-4520402321610738047
	.quad	-5017935268120637216
	.quad	256
	.quad	-5153648178046186143
	.quad	-5020659912972070475
	.quad	1874287052385684259
	.quad	-9092898464359990006
	.quad	-8556841248157705302
	.quad	6510808096178498868
	.quad	-2982785086338443592
	.quad	2360977875037205569
	.quad	462
	.quad	-4929133694774774776
	.quad	5799848000791439094
	.quad	-5935145652373909491
	.quad	-4050890814108345322
	.quad	-6321999081212113428
	.quad	8244416359628693711
	.quad	6552907023782853720
	.quad	7788726401036189361
	.quad	175
	.quad	-6839540157560005786
	.quad	-3039091841230795954
	.quad	-8067235103010403300
	.quad	5108625604252781752
	.quad	-1089102205586032506
	.quad	-7711638731907359361
	.quad	3982757889754604033
	.quad	-6967158019453539560
	.quad	92
	.quad	235680522936945666
	.quad	-2103399471335985542
	.quad	5288244552695222865
	.quad	258948265825581210
	.quad	504967853882597329
	.quad	5226704477903009868
	.quad	3516004460761799999
	.quad	1900096765035838085
	.quad	100
	.quad	9210665481687010993
	.quad	3975845499406636091
	.quad	1231410396669400950
	.quad	-6887448319663165652
	.quad	2815096201688054079
	.quad	-9210937850114828155
	.quad	-277249319742091024
	.quad	-3539195566281665943
	.quad	411
	.quad	-6124410835407656570
	.quad	7997248713929921522
	.quad	7244779440663092901
	.quad	-7138117558324916550
	.quad	-3492642464153110681
	.quad	-2344966057759341738
	.quad	-1593105225589322075
	.quad	-632261958961828934
	.quad	209
	.quad	6916382346578683224
	.quad	-1745662441764447231
	.quad	-653289464719194967
	.quad	-2686676825356284619
	.quad	4337451997267092543
	.quad	-7938330274195280744
	.quad	-7511078674099565331
	.quad	1227599639833018307
	.quad	153
	.quad	5858521436216173265
	.quad	-138315033058961192
	.quad	-595659183350183296
	.quad	7376514044923231238
	.quad	4227857793853100381
	.quad	6392540695166006788
	.quad	-4199296260081499348
	.quad	2573530036319853093
	.quad	144
	.quad	-4221878804874218600
	.quad	2800618933137040751
	.quad	5610386247274489951
	.quad	-5957541157070181966
	.quad	-6202920696972807314
	.quad	-3204909953277588492
	.quad	-7363602574876412071
	.quad	949262063550666274
	.quad	240
	.quad	-2056067947335123094
	.quad	6442528323261086165
	.quad	-1238926438651808002
	.quad	-7384355017737878008
	.quad	-4366820507343313040
	.quad	-6164015150338657689
	.quad	3632851205064026976
	.quad	-2819164949034311287
	.quad	279
	.quad	-7866920341428637192
	.quad	7012822836943309957
	.quad	-3681709809587178277
	.quad	2565271499577846070
	.quad	4413146553089134478
	.quad	6849346520348249170
	.quad	-9178468930315749845
	.quad	-2654108859954646862
	.quad	382
	.quad	-2319144592761484223
	.quad	-8806360415422977076
	.quad	-8172624695575128632
	.quad	-3717709895675366776
	.quad	-5215306827686412574
	.quad	6932809912637552242
	.quad	6914286735035187006
	.quad	-4742851716049663865
	.quad	410
	.quad	-1572828252872128694
	.quad	5414914735313472075
	.quad	-6340621256307766152
	.quad	8451325466915758452
	.quad	7628012764166204842
	.quad	6199896335152532494
	.quad	-5912128541613832192
	.quad	-5866567614171348362
	.quad	423
	.quad	7480741939444858195
	.quad	-8942144497995427359
	.quad	-8338273584088485353
	.quad	-7048621266659313473
	.quad	-7637869899237901385
	.quad	3458420785338120286
	.quad	6715033978072470873
	.quad	1198160457460325640
	.quad	228
	.quad	-1823342402163188302
	.quad	2848877853057496855
	.quad	8852834160982614760
	.quad	4789544833499866581
	.quad	4362413246166512727
	.quad	-5079957968673148327
	.quad	6876604581613260135
	.quad	1536619605018629620
	.quad	323
	.quad	5301568112761530575
	.quad	-5583078733617665655
	.quad	-4607672573073491515
	.quad	-5113885072676149530
	.quad	-7475525809097205324
	.quad	2513032878674863254
	.quad	8071459723952543951
	.quad	-8527191006551908890
	.quad	162
	.quad	1786520925290588961
	.quad	1075065001719544349
	.quad	3231513323823187339
	.quad	348912090419285675
	.quad	5958469731855920215
	.quad	4178930152080448552
	.quad	-6581478711074174121
	.quad	-2492404115041626379
	.quad	381
	.quad	-7452354225987993567
	.quad	4320931658468239723
	.quad	-6844274445659542523
	.quad	-7584457701259030129
	.quad	-3521404043044954259
	.quad	8141303882072392963
	.quad	-4947661939830991443
	.quad	-8573453322536813257
	.quad	248
	.quad	-690805184833555425
	.quad	6161653063700631795
	.quad	5521524019628483194
	.quad	196141650832652786
	.quad	-5413214187195311597
	.quad	-6903780345082497179
	.quad	-2311622220265421592
	.quad	7319207505689810554
	.quad	349
	.quad	8128411284752492882
	.quad	-4996713375860575575
	.quad	-1912950445592529155
	.quad	6586717282181603020
	.quad	4542560535341447147
	.quad	-9062837971033000896
	.quad	3440937557822540087
	.quad	-5081370395339834213
	.quad	427
	.quad	4154092768925924054
	.quad	7385887090127923185
	.quad	-1355277624673221605
	.quad	-7296401946196843845
	.quad	1978822897586298771
	.quad	-8527521036260857552
	.quad	-7988215112562983174
	.quad	7145813512141258721
	.quad	397
	.quad	-1444446393831539974
	.quad	4239091427357932420
	.quad	-4548307164459773187
	.quad	-3684863684313333104
	.quad	-233068904645089765
	.quad	-3824305841084049792
	.quad	-1395960805344307357
	.quad	5715535973033297627
	.quad	149
	.quad	-1100587073396354349
	.quad	-5737452637196051218
	.quad	2064034387750674319
	.quad	9165618639527285974
	.quad	-7370430499163676855
	.quad	-296848555750591208
	.quad	-4117652842862908484
	.quad	-3992706880222513231
	.quad	313
	.quad	-7100253956930479350
	.quad	6478260977455613382
	.quad	-6848516649532203346
	.quad	3932390865020454100
	.quad	4603960062579888170
	.quad	-6980244437635386819
	.quad	2380808256643455209
	.quad	5109160322069496474
	.quad	188
	.quad	-3924617108554723171
	.quad	7481064027265795585
	.quad	-2711359475908827049
	.quad	5783774910047005024
	.quad	-6970188573886412431
	.quad	7736410559679401261
	.quad	-278088938309132379
	.quad	240406417676715828
	.quad	258
	.quad	8832842898998656335
	.quad	6765444279440213890
	.quad	1937751833942410868
	.quad	-5084419164441977740
	.quad	-6262166945850266667
	.quad	-449336949134443957
	.quad	-3956600179275050951
	.quad	-6525502823212499750
	.quad	117
	.quad	4339241024224025445
	.quad	4813970217321439689
	.quad	-7652499081330238503
	.quad	-4030026467070095750
	.quad	-9058529462078937212
	.quad	2186947135204102692
	.quad	-537588583502867868
	.quad	5772383996753077061
	.quad	187
	.quad	2863417514086198988
	.quad	-4774018270542673566
	.quad	-7737866968620060897
	.quad	9144004334840173465
	.quad	5412380808919634489
	.quad	-4754729085559086068
	.quad	7483045081902723420
	.quad	-7453157494898753985
	.quad	51
	.quad	-6517180518937341161
	.quad	-5826602855402865940
	.quad	8075548426975185024
	.quad	-683251972421090635
	.quad	1070817053011295796
	.quad	4861841255629674061
	.quad	4284243071486308540
	.quad	6495118299798261061
	.quad	283
	.quad	3500673226585353979
	.quad	-4363875685004963277
	.quad	-4088723963973816546
	.quad	6781684801363753942
	.quad	4108492074115488029
	.quad	432064550894249203
	.quad	-2422187846525600959
	.quad	-7601291206337451982
	.quad	345
	.quad	-4882099600578564606
	.quad	7640068066688243409
	.quad	-7752437742412380429
	.quad	8448019332504326769
	.quad	8970819967001102537
	.quad	8904752866929756386
	.quad	8233521302593665235
	.quad	131716895394947466
	.quad	57
	.quad	8524094526206903677
	.quad	9045482613089919507
	.quad	4017836765746454875
	.quad	9081934616720267230
	.quad	4575136451650436086
	.quad	1153588106241570647
	.quad	5862932157209883507
	.quad	390014254707963387
	.quad	94
	.quad	3053836478691684503
	.quad	8186041310761375937
	.quad	3887726324776824861
	.quad	6162957709156772976
	.quad	4497339919567153872
	.quad	-5937443446353352945
	.quad	-7958047150745988218
	.quad	4280052283204108546
	.quad	362
	.quad	-712197302797630985
	.quad	-2390602219618596903
	.quad	4638179444287844221
	.quad	-6573165737651731104
	.quad	3900062378380727956
	.quad	-952730487237580972
	.quad	8565055964025443839
	.quad	7799893002897548665
	.quad	76
	.quad	-8368332923456352830
	.quad	6720153803918059555
	.quad	-7959681318018463546
	.quad	-1701984296920509073
	.quad	-3146460565383344545
	.quad	7136220477143088085
	.quad	321399496010695401
	.quad	1452540184401568332
	.quad	58
	.quad	-8256140000079234051
	.quad	7451211600396723531
	.quad	7683359779212783946
	.quad	6716827202794383201
	.quad	1477456685870337948
	.quad	-5390703435184661904
	.quad	-6192513806289872163
	.quad	3737698675864998832
	.quad	473
	.quad	-6202027051150467933
	.quad	7665737942693963994
	.quad	561876308742142042
	.quad	6576152752974518522
	.quad	-8612426839397060908
	.quad	-7266396713558862978
	.quad	-2135138106595366982
	.quad	1277358448736931975
	.quad	308
	.quad	2172296012880662903
	.quad	-7396802387711114133
	.quad	2848971285795582462
	.quad	-370338236404238484
	.quad	5638214048471882801
	.quad	-3981525035747126788
	.quad	-522817597681657421
	.quad	2811825800502527740
	.quad	248
	.quad	7747067313081921663
	.quad	-1504583098574754955
	.quad	5316996883795093005
	.quad	-6966003271711396514
	.quad	-7650866567060617381
	.quad	178594552781761570
	.quad	-7678939839856339742
	.quad	2203698015789619275
	.quad	374
	.quad	-5906971705302581955
	.quad	-731706513481043302
	.quad	-1282886537776408628
	.quad	7537359544872451105
	.quad	-737088416392319304
	.quad	3577020949309240319
	.quad	-3827167008800927971
	.quad	6998359878693552357
	.quad	19
	.quad	5834683789723638022
	.quad	7931924498463894010
	.quad	4013793704921847901
	.quad	-3237767760025614021
	.quad	-982467463523411098
	.quad	-800208133888779075
	.quad	-461193183304201858
	.quad	5203729711052970186
	.quad	397
	.quad	8340859790113934403
	.quad	-5474142170587214846
	.quad	-3756189337689400622
	.quad	-2966918882822930499
	.quad	3850997061796471696
	.quad	-8066317019270960665
	.quad	-5401583382545311926
	.quad	3432992322601087560
	.quad	278
	.quad	5622081180364908943
	.quad	-9185475529203282046
	.quad	-3764903121493636994
	.quad	-2367573819554410282
	.quad	1384862110105467014
	.quad	1675773569611470800
	.quad	1968271794657885021
	.quad	3173181848099590274
	.quad	487
	.quad	-3662536892487759478
	.quad	3442436955325510072
	.quad	7151244249124397801
	.quad	6136826922852710966
	.quad	8737629625536350454
	.quad	7099514801200870995
	.quad	8416745291040938185
	.quad	-9182113193928783755
	.quad	200
	.quad	1760040447358198705
	.quad	-2698104971875861972
	.quad	7245565017474753286
	.quad	1569055648814297149
	.quad	-132880293035817353
	.quad	7745476995125354348
	.quad	1736635280507517204
	.quad	-7539867342752960487
	.quad	448
	.quad	3561312045425946427
	.quad	7154321122416108874
	.quad	1995438259180117267
	.quad	7829128670924298817
	.quad	2084974715833883295
	.quad	-7052913038843988065
	.quad	2283419226531737154
	.quad	5308511038176215096
	.quad	83
	.quad	-8563961751413369835
	.quad	1824811501984364833
	.quad	8541159113360487121
	.quad	3108017808901657925
	.quad	-6947826751132020978
	.quad	422669345829685963
	.quad	-5577380135028329283
	.quad	-6413657174033797280
	.quad	481
	.quad	-3257078268395244200
	.quad	2089891392532785278
	.quad	4854293370535861748
	.quad	-62893774219054959
	.quad	2328288774261716414
	.quad	9065429780237634828
	.quad	8635264594563568958
	.quad	220771421875888378
	.quad	330
	.quad	-738127691184057501
	.quad	1582329006810746581
	.quad	-6362339371838627406
	.quad	2193648594529147077
	.quad	-793077742494036047
	.quad	-4292019433808723333
	.quad	5032089788176339700
	.quad	5097169274826937477
	.quad	202
	.quad	8958082358317334827
	.quad	-5197148826482346666
	.quad	-2340621245565688173
	.quad	5587977073005901826
	.quad	-8006748927702914312
	.quad	-1829226070217625683
	.quad	7915815681173552773
	.quad	5328220593022842152
	.quad	217
	.quad	7562850957729952055
	.quad	-2836337131978269761
	.quad	1693674582214842818
	.quad	4920555822498654397
	.quad	-7428135517426057919
	.quad	8538178386565663816
	.quad	-2217770029730823714
	.quad	7323847207279504009
	.quad	301
	.quad	7240381341393747604
	.quad	4778117169330742032
	.quad	-6007200487925849341
	.quad	5122328681836260375
	.quad	8854293478144894974
	.quad	-7382022407475023672
	.quad	-7454317670896711897
	.quad	731563939353213503
	.quad	508
	.quad	-6486219273762142516
	.quad	7397646826096011987
	.quad	-7582025317476129555
	.quad	4117487268749780686
	.quad	198072262273048874
	.quad	-4104414835230188067
	.quad	-1010536233660677859
	.quad	-3117996508646152500
	.quad	366
	.quad	649694226947861735
	.quad	5517699444706244474
	.quad	5301495397221456374
	.quad	8939640505022466432
	.quad	6039896495393123128
	.quad	-1107717318336034787
	.quad	3170485085042612158
	.quad	-3875653558971908218
	.quad	162
	.quad	2904426979697699206
	.quad	3536098820735543509
	.quad	6901663917328732493
	.quad	-5550754530716055889
	.quad	5411000936159347328
	.quad	-6829192734891795898
	.quad	-7173414221918727821
	.quad	6689436030847071912
	.quad	421
	.quad	5904474207363432529
	.quad	1530601033334913916
	.quad	-5383514836079958266
	.quad	8175036115256826911
	.quad	938145157235001755
	.quad	-2421026329080376684
	.quad	-6374887748409137372
	.quad	8999516579076159923
	.quad	145
	.quad	928014885077839696
	.quad	-2824331881154983270
	.quad	-3426660304065921707
	.quad	2357451283339088530
	.quad	967987101501695832
	.quad	1138246694545239754
	.quad	1253563003913800421
	.quad	2568412392170423001
	.quad	428
	.quad	8645907634718488099
	.quad	3922929563833336375
	.quad	5666962995622318836
	.quad	866109366595870432
	.quad	7485616416057902495
	.quad	-6215791338728332689
	.quad	6369698199030717352
	.quad	-4115371712936983035
	.quad	257
	.quad	6089488843058221878
	.quad	-2592519406859957501
	.quad	-9150291484392710223
	.quad	8839561834679746222
	.quad	-2368440648415085457
	.quad	-2642878704103630302
	.quad	8892603773946916660
	.quad	-7396866985390170251
	.quad	39
	.quad	-8405654388027572249
	.quad	5840511385470713926
	.quad	-6416285731545687086
	.quad	7580862257835653218
	.quad	3058828430969485649
	.quad	-3513751804077051126
	.quad	-5140257984710448134
	.quad	-8393076625850315119
	.quad	348
	.quad	1633356239045105634
	.quad	-8297308556252964725
	.quad	-2066645158002045587
	.quad	-5102616131485106879
	.quad	2493005921017538170
	.quad	8526552306313444133
	.quad	-2573627655930573967
	.quad	-2770053739926714277
	.quad	263
	.quad	-2036420991230020143
	.quad	-5147374546630991002
	.quad	8962768684656520384
	.quad	-279372989647721374
	.quad	904680331334838009
	.quad	-8877605685916228447
	.quad	8136721717872683638
	.quad	-2549533915516912188
	.quad	506
	.quad	143431967375225339
	.quad	6895314917537798212
	.quad	2973542831709933214
	.quad	4086894327731051473
	.quad	-5530719968599204727
	.quad	-7700514442136436676
	.quad	1273250686645935870
	.quad	6019892987516036660
	.quad	170
	.quad	4046314996316433241
	.quad	7106730687467182459
	.quad	6339510208421488011
	.quad	268521987714913374
	.quad	-7060258530512574931
	.quad	-4427951558444299708
	.quad	-978374088424736757
	.quad	7874743492969756179
	.quad	209
	.quad	6288602590909239468
	.quad	3258803175737770758
	.quad	7234965135228080513
	.quad	6407967630900987682
	.quad	-9166130289217744697
	.quad	7903871613757205266
	.quad	8891843533233477370
	.quad	4763435271673501142
	.quad	410
	.quad	852916730568637747
	.quad	-934211471239208879
	.quad	1539648881147356421
	.quad	7416689619495643387
	.quad	6600070482011725653
	.quad	2154943773438527695
	.quad	4913583271245439252
	.quad	-5557399226067600345
	.quad	216
	.quad	-984118098851499713
	.quad	-7887173651922489343
	.quad	-5565237674462532286
	.quad	7063152340093835486
	.quad	1020494201902959902
	.quad	-8628659820083436916
	.quad	3624902712325657791
	.quad	-1547902461829984560
	.quad	65
	.quad	-5769227034303992482
	.quad	-4590330014308078342
	.quad	-625552020212582829
	.quad	-1895995994809706122
	.quad	2252290840856972004
	.quad	-3713469994051136107
	.quad	-3377317163177719034
	.quad	6815921595043771133
	.quad	363
	.quad	5702458615844167564
	.quad	-4821521233513813595
	.quad	-8320840101937620672
	.quad	-9117342321160132841
	.quad	8691483724610953007
	.quad	-6734973245754598075
	.quad	1399837517897348858
	.quad	4116504969195733915
	.quad	95
	.quad	3728126557880689269
	.quad	4269985663406275898
	.quad	-1811255221474132934
	.quad	-8238490597918085022
	.quad	5874592523966787388
	.quad	-1115762146520127962
	.quad	5835495350798730853
	.quad	-5101979701373883917
	.quad	204
	.quad	7499674358077823179
	.quad	6193680820075019867
	.quad	-2562413960747333265
	.quad	6512478146311606057
	.quad	-4637861784102403380
	.quad	-3545654752076797901
	.quad	-6407779520969481819
	.quad	-3748202797858013679
	.quad	48
	.quad	-5718409166372968744
	.quad	2589852441794585330
	.quad	-5171049015820168529
	.quad	-732303105828445614
	.quad	7071619170550204315
	.quad	1995825265957417973
	.quad	-524102022372472064
	.quad	601535546130473519
	.quad	13
	.quad	7578813598171191801
	.quad	4632776478094221145
	.quad	8596632092151351628
	.quad	-7816939625544186699
	.quad	6215114975786151401
	.quad	-4035568842361648612
	.quad	1753539205320582980
	.quad	2402257780149169271
	.quad	442
	.quad	-7774111118625237146
	.quad	-4752489439980795085
	.quad	-5807097701606277231
	.quad	3259878310429793447
	.quad	1582880634899774164
	.quad	-3165890238488765082
	.quad	6717417981597722760
	.quad	7906833779301787107
	.quad	430
	.quad	4741710587188110020
	.quad	-4466498367987868592
	.quad	614526777665054644
	.quad	-324945463769945028
	.quad	-4679575317728878374
	.quad	-3463151171636001260
	.quad	4514003724567428459
	.quad	-3422929323826658178
	.quad	489
	.quad	8925643576758692691
	.quad	-4280750783381293300
	.quad	3894630640187182604
	.quad	5600320521931426195
	.quad	2439267714938693058
	.quad	5650986071020405170
	.quad	-6110289234454142518
	.quad	5621127134494445682
	.quad	199
	.quad	-4584444430524509492
	.quad	2247724615881682487
	.quad	1247239632150667838
	.quad	4114061008364146729
	.quad	2435198640803765400
	.quad	-7527516941677023414
	.quad	8867018936731986458
	.quad	-4829462574316828516
	.quad	331
	.quad	1838200999098970913
	.quad	-663619892885184537
	.quad	7891866191326980837
	.quad	993720396886519632
	.quad	2692447547099605
	.quad	6596043495056588770
	.quad	4421987890056704961
	.quad	1388913208594728787
	.quad	6
	.quad	8331743988642694495
	.quad	-4013145299901523876
	.quad	-2965179313770572831
	.quad	3679498896309571484
	.quad	-5928709824482929760
	.quad	4316515493099108544
	.quad	5359883133470926503
	.quad	1770265417243345547
	.quad	418
	.quad	-7697691454513775624
	.quad	-551303227455304798
	.quad	-5230953213914923479
	.quad	-5419110238693068528
	.quad	3410305694074437440
	.quad	7876682872213135382
	.quad	2198937663760625304
	.quad	6237189894095888186
	.quad	321
	.quad	8333552910456112379
	.quad	5860266520387075677
	.quad	8981725849705158769
	.quad	-1314809268698594575
	.quad	-5114670657546783087
	.quad	4404123504460235133
	.quad	6059454367206428106
	.quad	-1311095376732400621
	.quad	107
	.quad	1879096083807418818
	.quad	-4309654446760951431
	.quad	6682238769198315462
	.quad	-3520308871610129660
	.quad	1501882208007728853
	.quad	6644951290938797837
	.quad	-273623559456224007
	.quad	3392591302746840343
	.quad	113
	.quad	-7812459959960732280
	.quad	-38455615332301855
	.quad	8899672470693659214
	.quad	1299945510781609036
	.quad	-373675582311508228
	.quad	2647336858236101743
	.quad	8960761138371979431
	.quad	-4044352973293562490
	.quad	211
	.quad	-2054289176809589023
	.quad	721299931583505267
	.quad	851270967384238953
	.quad	6106172576463009863
	.quad	4812881458423911951
	.quad	7312455047614349222
	.quad	-7495685651808967795
	.quad	-7847773804717173336
	.quad	157
	.quad	-5208908781567993180
	.quad	-370520483529823217
	.quad	1848186713078122454
	.quad	-2763997471450264836
	.quad	-3839110684646429945
	.quad	-2481609747014080344
	.quad	-6491168356157734926
	.quad	9068388547432769737
	.quad	394
	.quad	-5522365217812773523
	.quad	1092066842830173662
	.quad	-8837170050033184666
	.quad	-4058051133074065848
	.quad	-6945228417012649077
	.quad	-241608474758272107
	.quad	-7107419360058966134
	.quad	1389407894240872028
	.quad	420
	.quad	-7648708364137860854
	.quad	7581187832282172714
	.quad	6409842024100173408
	.quad	-7737527024166286544
	.quad	-7781528052584260531
	.quad	242440502011890815
	.quad	-2022927230928606090
	.quad	-4821918534897010271
	.quad	300
	.quad	-2702867596065937154
	.quad	-5421700200779684612
	.quad	375500779918424628
	.quad	-2267395267553840899
	.quad	-7358409198558492682
	.quad	3523423869023979362
	.quad	-1252274933507443971
	.quad	-4940500483697236585
	.quad	422
	.quad	1882598575447522978
	.quad	-2947648737546789387
	.quad	-1630574564911337091
	.quad	-895583287375802653
	.quad	4572902025158784872
	.quad	-3748908328894156906
	.quad	1043919177729337331
	.quad	7998772899300400745
	.quad	303
	.quad	-485998985914958417
	.quad	499401866128715079
	.quad	-5566299406978442496
	.quad	-779038637821862963
	.quad	-748115937908731609
	.quad	3429300631461184676
	.quad	-7938163362102322955
	.quad	-1892103825880623566
	.quad	61
	.quad	-5231596948394131239
	.quad	-7673720327003144994
	.quad	-956860796107804118
	.quad	9197261818784316012
	.quad	-7493940739712218770
	.quad	6127124253682585933
	.quad	8880489731311451598
	.quad	-9177600706079757441
	.quad	105
	.quad	926655332141009185
	.quad	-5669913200723081889
	.quad	1507847121927717567
	.quad	3681616214934618366
	.quad	3175836465492065681
	.quad	-1599098935717841041
	.quad	4471882795848603435
	.quad	2616806096211386472
	.quad	487
	.quad	-3613182385705338982
	.quad	7937247307157058366
	.quad	1232044348590721738
	.quad	8836789112519286791
	.quad	3828198111067542793
	.quad	-3525873992574385038
	.quad	-4603819441220397971
	.quad	-5910897165742215191
	.quad	84
	.quad	3176118136302220327
	.quad	-1929296723635556568
	.quad	-4740238158031173991
	.quad	-9214133784159617135
	.quad	-2686406152813846188
	.quad	4012233457881755419
	.quad	-5340176228749285207
	.quad	4796808889791187800
	.quad	233
	.quad	-1498704409975533864
	.quad	7563051420894548508
	.quad	-3685338868301943299
	.quad	7183371048008503646
	.quad	-3183909726843808476
	.quad	-5955422222014705359
	.quad	-7494054181345940932
	.quad	-1055287508285074716
	.quad	224
	.quad	8777571813092301666
	.quad	-871175374188399232
	.quad	1972194728405267865
	.quad	4778464561016821081
	.quad	-8825300248488492611
	.quad	-7677848917486225155
	.quad	6157946711003125813
	.quad	-9012467705032306838
	.quad	73
	.quad	-1727039464493836806
	.quad	-1905684300084374489
	.quad	3278883641905606479
	.quad	-275911751631921463
	.quad	-8008209070043066216
	.quad	-4864514625681878179
	.quad	-5009603339209074563
	.quad	2187881225823424658
	.quad	365
	.quad	8191987478960572384
	.quad	6830982859361211471
	.quad	686708590279578852
	.quad	-700566059099241085
	.quad	3384634781564303999
	.quad	-8953385072703135844
	.quad	1653579199832482520
	.quad	513662330012191143
	.quad	39
	.quad	4352430548612302058
	.quad	-6437638262099868861
	.quad	4119908378673454859
	.quad	3716704643379672646
	.quad	3008202477023824195
	.quad	-65053358112500514
	.quad	7446887926084104150
	.quad	-3257149397040962349
	.quad	315
	.quad	-2967322313001972999
	.quad	41100224751212260
	.quad	-7793291554266352167
	.quad	-8109221474240599283
	.quad	-5471885314442742882
	.quad	-5790497802365788795
	.quad	-2257807396867241105
	.quad	8423606210976140214
	.quad	198
	.quad	-8933778077053953604
	.quad	6085077388986339094
	.quad	-5446912001479384547
	.quad	-7468051752169548894
	.quad	5625520669382013106
	.quad	3412837263751128305
	.quad	2156650189299609928
	.quad	4803128077152579516
	.quad	272
	.quad	-8844098773589179625
	.quad	9184955800220263341
	.quad	-875162445927263018
	.quad	253653637947581231
	.quad	-467519593054772393
	.quad	-926280833860141826
	.quad	-1727781766423129914
	.quad	2833452487045997399
	.quad	120
	.quad	-8378587691517504604
	.quad	647163206683707224
	.quad	2139382896004647013
	.quad	5119880624566874356
	.quad	-2888756430159580325
	.quad	-8395458429801678179
	.quad	-270766642098469435
	.quad	470236238670773050
	.quad	429
	.quad	6181841232867577563
	.quad	7626936948921498668
	.quad	1995181669691892570
	.quad	-4878893401383470168
	.quad	-3707930330689219570
	.quad	-776793414416464773
	.quad	-1975723059048452524
	.quad	9180052448508830485
	.quad	308
	.quad	8553432093777668878
	.quad	2152345726359387686
	.quad	-5913532670656902820
	.quad	-8483621883005865787
	.quad	-5472253723372963518
	.quad	8820745547769524511
	.quad	-856196586635309979
	.quad	3892268006335098956
	.quad	416
	.quad	-6313195407808102832
	.quad	-3516456809512238556
	.quad	-2219078830468500913
	.quad	8875284235951728062
	.quad	-8063097395611727483
	.quad	5254840675291461881
	.quad	441412842974183483
	.quad	7267555066101753874
	.quad	181
	.quad	-6101205158322152912
	.quad	-889289347882435039
	.quad	493494976222271263
	.quad	-4585736781199114149
	.quad	4900723828173072817
	.quad	-4252702429742630962
	.quad	-8298623738691166174
	.quad	5958139359171628975
	.quad	403
	.quad	1653192282417340836
	.quad	-8750739943277345139
	.quad	-3409438708018223768
	.quad	5146677435665069282
	.quad	1732698148034390999
	.quad	-3693382830635250045
	.quad	5929268755703273295
	.quad	-1830031772961083723
	.quad	115
	.quad	6565425737208857567
	.quad	-1645913820111599995
	.quad	-8317957196980052014
	.quad	6007661121566141046
	.quad	3153825804094563889
	.quad	3936635858009541346
	.quad	6656834422006982229
	.quad	-1135697304420768757
	.quad	280
	.quad	5615683061028244716
	.quad	5565528062518676641
	.quad	-1511398193887025441
	.quad	5022504724252957806
	.quad	4235943247502125360
	.quad	-8284795218880096214
	.quad	2142501513097773212
	.quad	-3065089460065577785
	.quad	272
	.quad	-698271703306652334
	.quad	5715910018527544900
	.quad	4876985859876286588
	.quad	609094633493546120
	.quad	4177901503203308574
	.quad	-6985327629222242486
	.quad	6801458537540758225
	.quad	-2220695605656137083
	.quad	406
	.quad	-6099305680048131298
	.quad	-8545650980600622324
	.quad	-7877250990059205326
	.quad	-2432288401004096856
	.quad	-3949155814544729580
	.quad	6163404945543675515
	.quad	1856888863843420687
	.quad	-7563296758571805095
	.quad	394
	.quad	-6847364022543633935
	.quad	1309307156554285325
	.quad	-7424053343500460878
	.quad	7390410332931199531
	.quad	1342694813393945618
	.quad	6696150078917648527
	.quad	331916091780706230
	.quad	3353166740760659947
	.quad	127
	.quad	612521773097459922
	.quad	4252852746945987338
	.quad	5621109777039835329
	.quad	6495395220722780859
	.quad	-3959698083990874893
	.quad	4624715914100029819
	.quad	-2444372953337566153
	.quad	-8487529603236186057
	.quad	333
	.quad	-7838026057708520638
	.quad	5064861518261929040
	.quad	7507314328753802894
	.quad	-8487210891187047260
	.quad	-3845266493440131162
	.quad	-6604097434813191943
	.quad	-8213974979814484488
	.quad	6721423211436271403
	.quad	9
	.quad	3207327301908629708
	.quad	7586022524977551275
	.quad	5785201366551010576
	.quad	1985416068833705374
	.quad	2203682000793193064
	.quad	-772889689977283254
	.quad	-6827234282808584953
	.quad	6329083411522329802
	.quad	379
	.quad	-6072392921779106828
	.quad	-7694219194512116742
	.quad	2172289685306733009
	.quad	-2831106845297185534
	.quad	7713191141559457639
	.quad	6621652481865941871
	.quad	-7117557173673987307
	.quad	7060905207358555449
	.quad	46
	.quad	-4054407757026909620
	.quad	-6065534276284020959
	.quad	-3711634551181086574
	.quad	5457712668651493813
	.quad	-7477189107194728811
	.quad	6179470981481535342
	.quad	4528174593301559385
	.quad	-3777097257709826035
	.quad	361
	.quad	1169502944719048262
	.quad	-6260522974406337952
	.quad	847414106885124126
	.quad	-2710844646422789711
	.quad	-8878217533307544051
	.quad	-2964000824229785952
	.quad	-4630404021657098778
	.quad	-7929726360291688347
	.quad	425
	.quad	-2893880910320197251
	.quad	-25900803108709224
	.quad	-7926015171213717512
	.quad	-5915276684056379249
	.quad	2001564553479962637
	.quad	8128964567297008360
	.quad	8633792604223820188
	.quad	-7363975083842944864
	.quad	50
	.quad	-2507440732600958738
	.quad	981624145222252364
	.quad	8526545716834309312
	.quad	6256098736740063807
	.quad	4298245947826531416
	.quad	-8130914268785945271
	.quad	6598099024799010079
	.quad	1707041533031214344
	.quad	338
	.quad	7979542265001451624
	.quad	5124178692171850591
	.quad	-8016921221385145617
	.quad	-7041151565633360946
	.quad	4221119265490038012
	.quad	-4523468682255499263
	.quad	2478029612113586251
	.quad	5266490459177827819
	.quad	72
	.quad	3955927224808977184
	.quad	-527753008805746544
	.quad	-2877984240069664045
	.quad	-1445490984055777137
	.quad	-1174189861998430547
	.quad	-4790061542955986723
	.quad	2389086696472559197
	.quad	-3747914717433517147
	.quad	93
	.quad	-138822698090215892
	.quad	-5521657140632980282
	.quad	6723661189427047982
	.quad	-3854113763675561023
	.quad	8799055802764130581
	.quad	2544104629878510693
	.quad	-3029228816899956527
	.quad	-5671628995645132065
	.quad	238
	.quad	539193074781407014
	.quad	4185334743011884168
	.quad	3773317387383789273
	.quad	4232864898243234616
	.quad	8626254594257475206
	.quad	-3056795115012886161
	.quad	1683312956270436940
	.quad	-7921843024693269453
	.quad	260
	.quad	5142956862117858407
	.quad	-7541449070490599158
	.quad	9165764137076505351
	.quad	-4715939232454506152
	.quad	704111978509399444
	.quad	190045312786402548
	.quad	3120192366229801312
	.quad	-7524858283387504082
	.quad	190
	.quad	6190543882763855275
	.quad	289643613336408009
	.quad	4982430331669166665
	.quad	-2204758926695500322
	.quad	-7725958415326203902
	.quad	5264282235599431189
	.quad	-7992009719907899601
	.quad	-8398417392618708399
	.quad	320
	.quad	-4255750555696125625
	.quad	-8017697394902507455
	.quad	3513977529539227120
	.quad	-4662046289743846770
	.quad	814751120332600443
	.quad	5852997301464823920
	.quad	3108472893283209693
	.quad	-8217153847079751542
	.quad	376
	.quad	-7709082638209905526
	.quad	2925387670524464023
	.quad	7767304369586644608
	.quad	-3879043463466710374
	.quad	-1026385963321336696
	.quad	9001540827033042026
	.quad	5467767253381592473
	.quad	8401049391296102094
	.quad	83
	.quad	-8281578427529514196
	.quad	-6164664094476464337
	.quad	7206877027329616218
	.quad	2588550309100649609
	.quad	4601337195157491902
	.quad	-2208544408098968919
	.quad	-8679400778304255288
	.quad	8739979831300363644
	.quad	93
	.quad	5095680258952524462
	.quad	5894361245098801321
	.quad	-4549307926741655866
	.quad	581491761944028049
	.quad	-933485016820828849
	.quad	-353478392762988169
	.quad	1012100223049349528
	.quad	5912161506642940522
	.quad	198
	.quad	2536037575051110529
	.quad	8874749079558540242
	.quad	-6345844331980468618
	.quad	1699699888175340016
	.quad	-2806887793782633154
	.quad	-6652698142621335634
	.quad	-8901997241815618287
	.quad	6459953853682255301
	.quad	475
	.quad	3822374233184940428
	.quad	-5595688449468018919
	.quad	-2579562463735377769
	.quad	7481287331232486401
	.quad	4874006045904908341
	.quad	9059904397411279869
	.quad	9019177860085245360
	.quad	8233986711648920825
	.quad	442
	.quad	4340467188461093631
	.quad	2839480588089426055
	.quad	-5482078494637906135
	.quad	1026954845510238468
	.quad	4722776516801900701
	.quad	7567907356077252263
	.quad	-2687859867926680205
	.quad	6982800263762813239
	.quad	191
	.quad	2757826358213064988
	.quad	6199908394612923225
	.quad	2508658588223854044
	.quad	-316977623647890344
	.quad	5719893905029508209
	.quad	-6640216370823101586
	.quad	1920368370177282182
	.quad	-9024485990739582950
	.quad	319
	.quad	7780197092564342196
	.quad	-5657865272467962272
	.quad	7979061076259152638
	.quad	5155383380947879674
	.quad	5959260041297252560
	.quad	-4851484439079789236
	.quad	3826394452877144337
	.quad	7175770526608109666
	.quad	54
	.quad	-6016490032494127904
	.quad	-1578346844851334977
	.quad	3556057848208629879
	.quad	-8007623396467388893
	.quad	-4344701925427662480
	.quad	9001874166366568121
	.quad	-5365813593519846742
	.quad	2964795923307307197
	.quad	209
	.quad	-5863685927654685324
	.quad	-6053133037584405097
	.quad	2757540881879521527
	.quad	-1888039364188863713
	.quad	6259091577092782916
	.quad	-5122358732630984471
	.quad	-7614365760457458695
	.quad	-6746144408567307191
	.quad	496
	.quad	-3272235373162357514
	.quad	3406955210621624640
	.quad	-2653379794712911529
	.quad	-4708062374801479809
	.quad	5124348542729866160
	.quad	5987513200730290406
	.quad	-3345830831985306144
	.quad	-3595295485181433537
	.quad	38
	.quad	6893750141946771738
	.quad	3132575742349679909
	.quad	-2660832288536871809
	.quad	663961304151980341
	.quad	21667374247695731
	.quad	4506081987513661246
	.quad	7031884576990748768
	.quad	-1295720867444011946
	.quad	460
	.quad	-2079937734425291485
	.quad	-1178540457937162327
	.quad	1311789184307008770
	.quad	-7778720061491090090
	.quad	8216405473165454231
	.quad	-5734446024150778734
	.quad	-4815452558763861429
	.quad	-7141061116113065268
	.quad	219
	.quad	-1962657426755571936
	.quad	-2226284428679560192
	.quad	-6171761430425542169
	.quad	1031494263909794683
	.quad	-8363720819710843922
	.quad	-8778849506788909464
	.quad	8400411596634632861
	.quad	167091983383626887
	.quad	62
	.quad	-9195151191626467271
	.quad	-9173898385792753807
	.quad	-1882062324960587375
	.quad	-2769474056477953667
	.quad	-1239630053955230618
	.quad	-3503938695336979374
	.quad	-4213503033652871786
	.quad	3449696087422207585
	.quad	510
	.quad	-8007526213915815717
	.quad	295021576022638507
	.quad	6798354887101630429
	.quad	2341578032492248819
	.quad	-5540948705857853271
	.quad	4912332147305065431
	.quad	-4408265914181362306
	.quad	8316054919669275356
	.quad	88
	.quad	7696705668318597132
	.quad	-9068002945745778397
	.quad	3331571357409060313
	.quad	6878921599731245264
	.quad	-8926765776198543718
	.quad	-169533636551320563
	.quad	7326126266752568773
	.quad	-7013353686434417058
	.quad	70
	.quad	3663997508658241734
	.quad	-6713520478768090639
	.quad	-1305312265999977463
	.quad	-5940196549919874945
	.quad	3197594683741994398
	.quad	5905659321787855344
	.quad	-5252541596566848328
	.quad	8146952324928685757
	.quad	460
	.quad	-5152991529403912166
	.quad	8708307432575029563
	.quad	3597463394265625655
	.quad	-3783376224906805718
	.quad	3210228155875128399
	.quad	-2861198333095979274
	.quad	6223150886230417025
	.quad	7263703245448813856
	.quad	352
	.quad	3676235627252474823
	.quad	7981434665893313797
	.quad	7200875866564546158
	.quad	-4082117146262558777
	.quad	-2623658812618328664
	.quad	-3868565512272976326
	.quad	6485529959005315217
	.quad	1877470294984893781
	.quad	173
	.quad	559801552231577739
	.quad	3248957990303808443
	.quad	-3616854031883447097
	.quad	-2828928526890527005
	.quad	-8152086297740607672
	.quad	8139959577541864815
	.quad	5082898685334023554
	.quad	-7514386902593089774
	.quad	233
	.quad	-7641623296302525133
	.quad	-9100136798952700356
	.quad	8753891417183492771
	.quad	8719113224159241240
	.quad	3124176977467136836
	.quad	2879713894668979684
	.quad	7164408304229517040
	.quad	4640115092495502848
	.quad	161
	.quad	3082715858186997745
	.quad	323922354551395270
	.quad	-5896451427148363840
	.quad	1842957827495517615
	.quad	5377533835482503435
	.quad	4755654178661903965
	.quad	-3866410917080586008
	.quad	6015235277457871154
	.quad	487
	.quad	8599143176958835226
	.quad	6075700665945509837
	.quad	-4241702482123925894
	.quad	2349158952088490876
	.quad	7320974707741380487
	.quad	-8701288368560112295
	.quad	1107007727350609396
	.quad	7058235335913494947
	.quad	198
	.quad	8950687838986062279
	.quad	-4946747592184701091
	.quad	8591667358596425112
	.quad	3511000708303132906
	.quad	-6556480205542502588
	.quad	1788388675639097893
	.quad	-9160552310919330093
	.quad	9193375611632291795
	.quad	145
	.quad	8040330557580249588
	.quad	-8299430735841982914
	.quad	-3358239652986859561
	.quad	-7667563051623805664
	.quad	-3742217607996000133
	.quad	6947272035433792686
	.quad	7136730464418154689
	.quad	-1169004500561816547
	.quad	240
	.quad	2006376766377014496
	.quad	-4595471535225698471
	.quad	-182451564159337438
	.quad	6770028280740964024
	.quad	-1158771178848594964
	.quad	154713640274562550
	.quad	-6638593115546413014
	.quad	-2129901683241330999
	.quad	374
	.quad	-7776493942543764327
	.quad	1406596797399220867
	.quad	-6932327809767710147
	.quad	-3068724759349529092
	.quad	-4376304834505947226
	.quad	-8730963543606135129
	.quad	-5366237139991869885
	.quad	-3853660506195868730
	.quad	17
	.quad	878613101421107203
	.quad	5744650862636488125
	.quad	8690392892317077545
	.quad	2310826530697632350
	.quad	-1421509719507528857
	.quad	5219014473906550218
	.quad	-185266520257920870
	.quad	-1500186679850809419
	.quad	386
	.quad	4615652000685117003
	.quad	-491466206479522478
	.quad	-8150719104423192287
	.quad	-4998726886723982773
	.quad	-1461405222366720655
	.quad	-2114892709031461566
	.quad	5281265442467837235
	.quad	-6499401875094061319
	.quad	3
	.quad	6896230768301530075
	.quad	-6933573786616011649
	.quad	6547772703990627269
	.quad	8355663717196143188
	.quad	-5348747777139418454
	.quad	5309188501592075018
	.quad	3401297477720794303
	.quad	8914507674631487792
	.quad	382
	.quad	1278156058366089695
	.quad	5986599289521512448
	.quad	2156159108567684780
	.quad	6944199851797348802
	.quad	7524118366007150312
	.quad	6274821574238793857
	.quad	-8604256470442258061
	.quad	-5387668778342325791
	.quad	204
	.quad	3307517559538747658
	.quad	99115153047816195
	.quad	7556053693747344954
	.quad	-7943626146749566832
	.quad	3477303998310631435
	.quad	617331307401220729
	.quad	3697298733410224319
	.quad	-104572505111195821
	.quad	173
	.quad	4906529805231141452
	.quad	239255944705283682
	.quad	8369180690166884025
	.quad	-4177891935120468826
	.quad	-8788462467579798913
	.quad	-7296734782287497451
	.quad	-7300727415298590967
	.quad	7236825890165937025
	.quad	435
	.quad	-6094360377024616512
	.quad	-1164818340660822126
	.quad	-150909270055437595
	.quad	5859307058967294335
	.quad	4496751056966088385
	.quad	93522279538243886
	.quad	-2473951673905131442
	.quad	-5760106135333382994
	.quad	244
	.quad	1330449866805169763
	.quad	3514575529125542979
	.quad	2448748914723511956
	.quad	-3302159286709619259
	.quad	6537169164192242614
	.quad	-5392844377083225601
	.quad	4594765267406837430
	.quad	-8347272322356799806
	.quad	72
	.quad	-2409939464828903648
	.quad	-3852598999091832170
	.quad	6541967054752883303
	.quad	887310553281146323
	.quad	-6470886190699849141
	.quad	2052575016757124890
	.quad	-5091000270216392168
	.quad	-4856370844122755455
	.quad	252
	.quad	5675667394988191487
	.quad	2735744529755013641
	.quad	7009327855630696586
	.quad	-7940356403890507968
	.quad	6289250295676887498
	.quad	3263272116955546435
	.quad	-7189556371659238620
	.quad	-5488539789843859709
	.quad	101
	.quad	3984897762182525008
	.quad	-3314348791750341054
	.quad	5459459044992266229
	.quad	-2605413236080539749
	.quad	-387098869915307488
	.quad	-1196906225983432688
	.quad	-1954953699278717682
	.quad	-7671391449959347968
	.quad	187
	.quad	6215252459027269298
	.quad	-1503325321813683042
	.quad	-9001367493714170121
	.quad	7536052578111170665
	.quad	-7433383326317920590
	.quad	-564063206758473981
	.quad	4274927116065360378
	.quad	-4045997969529157599
	.quad	86
	.quad	-1131756911666467355
	.quad	6846389779487286791
	.quad	4620273154180017181
	.quad	7749299169758311812
	.quad	6648094229826383212
	.quad	-4299924573087635942
	.quad	-1557245569398211765
	.quad	-3478842166768601126
	.quad	278
	.quad	-6109574794750310471
	.quad	5295652930265871788
	.quad	-4456295662919659692
	.quad	-7153006701619970397
	.quad	-4432338253138443509
	.quad	-2155866461532868290
	.quad	-8982968705839757283
	.quad	-8975991502959360882
	.quad	410
	.quad	590530937580100748
	.quad	1150179848668282802
	.quad	4841288107106698603
	.quad	-4304263688996499572
	.quad	-274074504153018991
	.quad	-7594885075859834489
	.quad	-3714412997226696686
	.quad	5493305617221306373
	.quad	176
	.quad	-6850587239779487945
	.quad	4118380987616352936
	.quad	-7698695618094050663
	.quad	4762622367719046745
	.quad	3611617472277956014
	.quad	5076067329697969460
	.quad	-5413916253209568310
	.quad	-3687453769947758965
	.quad	227
	.quad	6117737569096100773
	.quad	6453944292840307207
	.quad	-8928018893034974063
	.quad	-8946933216663498838
	.quad	-9022966562136239070
	.quad	4287446183454994644
	.quad	6158649152168062186
	.quad	1554868384858725117
	.quad	224
	.quad	-8052949131451006779
	.quad	495001047243211677
	.quad	733404332960113614
	.quad	-257657893670652450
	.quad	5716730448362597327
	.quad	-6952692825162906871
	.quad	-6138724023107289169
	.quad	2239636327093304503
	.quad	289
	.quad	1550672758400882590
	.quad	-4591393514819942837
	.quad	-2153468027329556529
	.quad	1315222451480023976
	.quad	-8433835781765606788
	.quad	-2612490121357209271
	.quad	1648863338361317896
	.quad	-2319999669831870844
	.quad	418
	.quad	-709450188326931681
	.quad	-2531433345711382924
	.quad	8154088679831598818
	.quad	8408424021366224436
	.quad	-8998701200782087492
	.quad	7337386517624542540
	.quad	-4365658673719782169
	.quad	6772683280093534633
	.quad	469
	.quad	7107233533696597079
	.quad	-1531422435252228811
	.quad	8150810965784640999
	.quad	1598586018827354035
	.quad	994564337447671543
	.quad	7934704246399178457
	.quad	5992093974724323063
	.quad	7212827937706266831
	.quad	400
	.quad	-2650540757383371603
	.quad	7751973620689811739
	.quad	3249153437969482046
	.quad	-7251882893995835934
	.quad	4323123429214878245
	.quad	7156650431201168317
	.quad	-7748321961626662740
	.quad	-9044201102691378846
	.quad	146
	.quad	7968647119719046040
	.quad	4567695372292029430
	.quad	-4122259466525930592
	.quad	-6951041282046239548
	.quad	4192090138073406158
	.quad	-6183312858111427737
	.quad	-3625181272340704577
	.quad	5348941357905252308
	.quad	326
	.quad	5063214839065368238
	.quad	-7775367070716477342
	.quad	-7745954292112763547
	.quad	-6255912915410211124
	.quad	7281430948124726046
	.quad	5689687365900525910
	.quad	345211787445618420
	.quad	8441305548092465196
	.quad	306
	.quad	-6532914706739598265
	.quad	1667016793405728649
	.quad	-652445223020925276
	.quad	1870652292570815353
	.quad	4794298083399363203
	.quad	1187965194384713239
	.quad	-6323841521684190662
	.quad	-8220732692354181262
	.quad	306
	.quad	-621516472695216313
	.quad	1188153519680916347
	.quad	7641257200417886262
	.quad	5130624780143410678
	.quad	6563911256255997906
	.quad	-2208187005820407287
	.quad	-9221893275922234586
	.quad	1428637980470710757
	.quad	78
	.quad	2932900981155845629
	.quad	-8405300347338438209
	.quad	-1012317502557833180
	.quad	-3172765085835289910
	.quad	8860377357891636817
	.quad	-5714286402857080055
	.quad	4337486763391655338
	.quad	5223510168059237370
	.quad	59
	.quad	1232710764839115726
	.quad	1368315482710111993
	.quad	8318229661134045346
	.quad	-786794928637219561
	.quad	4677537868890416004
	.quad	-3797959352850480000
	.quad	4205862339662094767
	.quad	8982075066250024855
	.quad	95
	.quad	8973408668295788784
	.quad	-3889816094554642759
	.quad	-4860616950269888520
	.quad	-6284705997761284201
	.quad	9077732662594635859
	.quad	7271249774912762221
	.quad	1675612703137861759
	.quad	1466114526370306383
	.quad	373
	.quad	-4529031134675536037
	.quad	2675614179923168127
	.quad	2135839919931852723
	.quad	-5324770754604757155
	.quad	-7972228382041508909
	.quad	966130163111009741
	.quad	-1472305479624985943
	.quad	-2900058962194947858
	.quad	104
	.quad	4816707357061384813
	.quad	2096923046752442585
	.quad	-7540140467318560041
	.quad	-6860395606279676689
	.quad	-1726870614187609764
	.quad	-6108407007909724490
	.quad	-1252532173403994823
	.quad	-876034479486589732
	.quad	10
	.quad	7674368028782904862
	.quad	3498047262536537513
	.quad	-3699928599038730143
	.quad	-3757102065125786495
	.quad	-6038957548648132974
	.quad	-859061278926585843
	.quad	8767036324701316099
	.quad	-792406789160778392
	.quad	411
	.quad	-7190920644983787823
	.quad	-4959630562309872585
	.quad	-6796467871244791028
	.quad	4178975462303382822
	.quad	-2334271128911162905
	.quad	-6619135354814782914
	.quad	-523491899805079453
	.quad	4793806007488458333
	.quad	492
	.quad	-2310092093289094433
	.quad	8258255011198420557
	.quad	8871623785462153498
	.quad	8151462929848370813
	.quad	7034555698683584227
	.quad	-6360688148429981069
	.quad	9117189065588431766
	.quad	-8737546742630046433
	.quad	461
	.quad	-5074117872224113751
	.quad	418978887457712096
	.quad	68654048044053575
	.quad	-3177815245328069512
	.quad	2591560879466120719
	.quad	-7754336434465855802
	.quad	-4446607435585276217
	.quad	1644493982317184505
	.quad	448
	.quad	-8451502562155844831
	.quad	-9212129769084855880
	.quad	-2195391189120392926
	.quad	7243508614584627307
	.quad	5435533927976334515
	.quad	4976023644737606820
	.quad	-2442254758714027358
	.quad	-6569384096779264118
	.quad	39
	.quad	7380006147198768761
	.quad	-4615351869428362972
	.quad	6224183368800418242
	.quad	7431097857816685332
	.quad	212832317888138734
	.quad	8496670044334454799
	.quad	-2264470911645735886
	.quad	2204831235046694198
	.quad	128
	.quad	-4549904731302353290
	.quad	-6766176759150494333
	.quad	-8456712988628891525
	.quad	-5934585180114853935
	.quad	1297195903632927626
	.quad	8018294084197487573
	.quad	-6449447742525823149
	.quad	-6400158693741175911
	.quad	504
	.quad	3991735279294782555
	.quad	-5994614125539228470
	.quad	6752065294817834038
	.quad	-7060823486285476662
	.quad	-3967451764640842208
	.quad	-282267968893452750
	.quad	-1125611420475537266
	.quad	3861378411718558872
	.quad	95
	.quad	5062750562887562263
	.quad	459008197932813206
	.quad	2753132590714449009
	.quad	-5069686542782956519
	.quad	-6568082834195340113
	.quad	-5180148577874779441
	.quad	-5173155435956692551
	.quad	1271329679432636403
	.quad	403
	.quad	-5280843332795050528
	.quad	-6907097844732110795
	.quad	-4049216413188756843
	.quad	8039629292230462744
	.quad	5678967081961884978
	.quad	1776816880069933230
	.quad	-6175236451107520786
	.quad	378183042708161762
	.quad	386
	.quad	4102728892102739615
	.quad	3479304821031376866
	.quad	7173004731911696440
	.quad	2747794362200491740
	.quad	-2213133749535736433
	.quad	-3354559996181255720
	.quad	773713267208615090
	.quad	6102524350818583084
	.quad	40
	.quad	3344062273574053814
	.quad	-8983107603620734583
	.quad	3278658918911997362
	.quad	-9178979287507894504
	.quad	-3189760130134391637
	.quad	-171332881900938700
	.quad	4925904231502511394
	.quad	8092280524348485578
	.quad	49
	.quad	-7818256428666357697
	.quad	-8357308821894846095
	.quad	3453710489762520071
	.quad	6542953111841918210
	.quad	4213699802600391510
	.quad	5942903815901635091
	.quad	449905287261838963
	.quad	-6634047691230134880
	.quad	317
	.quad	7617831817988542242
	.quad	668152199033384499
	.quad	3800859655244395039
	.quad	-5611089480995940908
	.quad	1709285583971071181
	.quad	-2698612472314357057
	.quad	-5937643844187718741
	.quad	4817144215802302860
	.quad	35
	.quad	1453729792123116559
	.quad	-7395519957454273491
	.quad	-4256687839533299744
	.quad	3604130528906519117
	.quad	-8219450959330553158
	.quad	2697520895325524767
	.quad	-4635482478166426859
	.quad	7104388750551980932
	.quad	74
	.quad	9175104138214192601
	.quad	-6331706863455453611
	.quad	-3539360819589294195
	.quad	-5707130794414818355
	.quad	4032330954285995986
	.quad	295000046049250308
	.quad	9057501268307548915
	.quad	276609556901465062
	.quad	342
	.quad	5975480270334473864
	.quad	-1402143839364645026
	.quad	-1733979545721493844
	.quad	-6836103072375495689
	.quad	4551267671591826265
	.quad	-545532580804779795
	.quad	576905317569207119
	.quad	-4171185957369853511
	.quad	245
	.quad	-9152143325647341937
	.quad	6233768056427741514
	.quad	3591983505367936894
	.quad	-2874688164572416576
	.quad	7865222357653567383
	.quad	8394712924810197386
	.quad	4315546956204343788
	.quad	-5787834500413682731
	.quad	436
	.quad	-9195635360696972325
	.quad	7933087197477475110
	.quad	471901837478212601
	.quad	-4792706973948795278
	.quad	1327661208663711034
	.quad	8624837510014615512
	.quad	-63838887036649524
	.quad	-5975028189063139782
	.quad	115
	.quad	1008484324671533695
	.quad	-8987748855947691939
	.quad	-3938649921745033230
	.quad	3342169014140421175
	.quad	6693191202960620543
	.quad	-6472887207725536907
	.quad	72662274660860642
	.quad	-4614065101928997333
	.quad	78
	.quad	6148934830867539434
	.quad	80344042095837963
	.quad	4611397041383960477
	.quad	-5427237983835241976
	.quad	-8325240275668998342
	.quad	-4201312342656588997
	.quad	-8522025015083385363
	.quad	-7011208562189527648
	.quad	303
	.quad	4787510671891822624
	.quad	-2214260163791824043
	.quad	-253040825353704906
	.quad	-8731155601293876834
	.quad	-3850297660966261621
	.quad	-3323879666836939447
	.quad	-8913044158409579920
	.quad	-425107428303126052
	.quad	251
	.quad	-4978958132328890001
	.quad	8889435317113337671
	.quad	8826683414171723402
	.quad	1792083252665361993
	.quad	-5781321968436331121
	.quad	2667299856913114901
	.quad	5573961001787626201
	.quad	-7732871894722425777
	.quad	441
	.quad	-8207128420769075393
	.quad	-5254222754890020061
	.quad	-1168235333423264713
	.quad	-7907340911114778064
	.quad	-1707780634800758016
	.quad	-1829858991146321552
	.quad	-236562713791632938
	.quad	-4606050842302878384
	.quad	382
	.quad	-54141704520780602
	.quad	5109595216940904089
	.quad	-4905631533500481786
	.quad	7745453973087509810
	.quad	8483521572274430986
	.quad	1098333241977651591
	.quad	4906796137619031738
	.quad	6153078978758352367
	.quad	375
	.quad	-1082393502046707152
	.quad	-2515954870958845681
	.quad	4685332274831657572
	.quad	3416499388552838353
	.quad	375546167125626742
	.quad	-5494758856484041814
	.quad	3455246030854800656
	.quad	6230652643152727583
	.quad	432
	.quad	-2149358528937580706
	.quad	6827895760495585585
	.quad	-3795457097888455136
	.quad	5321980698666984741
	.quad	9159842956633984813
	.quad	6545107690438489636
	.quad	-6781520954174201734
	.quad	-1960310968112559377
	.quad	462
	.quad	-3662309205386439070
	.quad	604899471624295842
	.quad	-3352756064896133255
	.quad	-6636718730426511826
	.quad	-6464718179901688300
	.quad	-4487811928885734210
	.quad	9051182548775348849
	.quad	-1083084131916347781
	.quad	27
	.quad	2297391708302854101
	.quad	6663048710771265308
	.quad	8780999900951908379
	.quad	3194324303974835278
	.quad	6470803788718044673
	.quad	3370985490748566422
	.quad	-4473253596240261596
	.quad	-5222506100736604887
	.quad	213
	.quad	3245264315890515311
	.quad	7635334966148042976
	.quad	-5300773995551544574
	.quad	-5102958175121319547
	.quad	-2357449589066109472
	.quad	8286282973530378103
	.quad	2576387681206471769
	.quad	8118165424292606336
	.quad	162
	.quad	4412816859907605038
	.quad	-8889056948770968383
	.quad	7367078724876131150
	.quad	-2346670150282865174
	.quad	5678671791244175862
	.quad	4874579557146497269
	.quad	9140268098308458994
	.quad	-1702936884230842512
	.quad	58
	.quad	-3153525234886204059
	.quad	-2258415810501211087
	.quad	-143997707777763633
	.quad	-3653527603055109636
	.quad	-4039918378183401584
	.quad	7037371948316799834
	.quad	6195003796162386952
	.quad	5625795194317061698
	.quad	324
	.quad	-9161716472209002165
	.quad	-2988123803661736505
	.quad	8626283190165642152
	.quad	-1874328340831697881
	.quad	1246408476928469308
	.quad	-5814225992840940750
	.quad	-2534894335544184487
	.quad	-4606246873933095142
	.quad	147
	.quad	8876131273753796231
	.quad	-5954906399149473409
	.quad	-2573335866363172703
	.quad	-950382269304188200
	.quad	-7918403089244543203
	.quad	-6726463690699437602
	.quad	1824335010482585204
	.quad	-4802556416929172721
	.quad	185
	.quad	7527177529095437155
	.quad	-6534022384858250802
	.quad	-3937877050174281945
	.quad	-6929662055098522959
	.quad	8067449024469364066
	.quad	-5480918142379712162
	.quad	3433768586449654947
	.quad	8758541247249337011
	.quad	125
	.quad	-97452795323323398
	.quad	-8867430317713524017
	.quad	-1197301010603094186
	.quad	-148072239772757850
	.quad	1421153328554452655
	.quad	-2715125589216771101
	.quad	2074738423169427036
	.quad	-6418037484066746912
	.quad	459
	.quad	8517271439476612649
	.quad	-711490494805578921
	.quad	-3331772535189266704
	.quad	-7504570540346914670
	.quad	-1331304875696613785
	.quad	1675780497019185642
	.quad	5448700801216001392
	.quad	-8043480937658838570
	.quad	447
	.quad	363554603067245188
	.quad	5025827015714007688
	.quad	-1272655653333046444
	.quad	-5193064149123220082
	.quad	-2548137367002201550
	.quad	-6774762888745570545
	.quad	5419152505346939115
	.quad	7868128229092014300
	.quad	138
	.quad	-4737470285500553449
	.quad	-6074937241735801151
	.quad	5075255333924739430
	.quad	4578192659411100720
	.quad	-6247929849681438466
	.quad	-7113333619715412310
	.quad	448303934008629118
	.quad	-8450205501494158207
	.quad	398
	.quad	6542660566860753599
	.quad	1242881208274057543
	.quad	8130153934531874653
	.quad	1337144161441882056
	.quad	-8404115243316163839
	.quad	-8384468263038021838
	.quad	-1718659514189225120
	.quad	-8367122775840694959
	.quad	352
	.quad	6635996703015870243
	.quad	7612590695928260879
	.quad	-4506545665365933315
	.quad	6925517689532450668
	.quad	7336540426961078824
	.quad	-2237984994703482256
	.quad	5399657730631911889
	.quad	1346242079752019571
	.quad	197
	.quad	-2228033410757797774
	.quad	-8932302841443022225
	.quad	-3808528978128183865
	.quad	4327880073391859819
	.quad	6410208930193595968
	.quad	-3220521714241835888
	.quad	1685762125410946876
	.quad	-2145989667678779464
	.quad	501
	.quad	-7393928660772392463
	.quad	2298201647605445065
	.quad	5408930890047981865
	.quad	-6882174905978521895
	.quad	-8105091955322404424
	.quad	-3554941151167587336
	.quad	-9002412529187290261
	.quad	3526311181383467565
	.quad	86
	.quad	-7780493420960740972
	.quad	8380488703640937765
	.quad	-7140808909040979888
	.quad	-8944759498558469133
	.quad	-3190742720827453681
	.quad	4021103544967974505
	.quad	2745974506582660901
	.quad	1223112749856843318
	.quad	145
	.quad	7569225143138777089
	.quad	1576540260242316711
	.quad	5170885929931785216
	.quad	-8208294089810104459
	.quad	312369691783561195
	.quad	3560419795849951198
	.quad	-7895826607050314438
	.quad	5598129769710165775
	.quad	221
	.quad	3938072865761935666
	.quad	2194383030208451132
	.quad	8124895915118084557
	.quad	3053677137195687569
	.quad	7840387241922833289
	.quad	6042710639576322993
	.quad	-3042408611582894636
	.quad	-3574260018038425297
	.quad	350
	.quad	-7770791143458284428
	.quad	3266215676235963908
	.quad	4169455180310473965
	.quad	-8095235012895566050
	.quad	-6652944528978018869
	.quad	8852851648995020809
	.quad	-7943949543290874310
	.quad	3368817924623064459
	.quad	437
	.quad	-6999247539251755493
	.quad	-1543124620596482288
	.quad	2779350117868138863
	.quad	-1817809322951685206
	.quad	-1478546498709599927
	.quad	2525260758278491386
	.quad	-68403585686555116
	.quad	6540834382770311298
	.quad	65
	.quad	-3915378098229406306
	.quad	-3579432090980953478
	.quad	686352965940962236
	.quad	3280201949751249512
	.quad	609458458051384495
	.quad	-6053811965535563857
	.quad	8332497608594501851
	.quad	-6313825995223136168
	.quad	295
	.quad	4059709005506260983
	.quad	-2218336157666586876
	.quad	-7225387958619700877
	.quad	2270550032797455510
	.quad	2262823070574861793
	.quad	-8768460503776536219
	.quad	4041471275823282876
	.quad	6728249599297203056
	.quad	384
	.quad	-1674585009320224026
	.quad	3717267075947844753
	.quad	253364948932452318
	.quad	361606844090969247
	.quad	4976028658146754401
	.quad	-1894084219081069876
	.quad	5267520439126407891
	.quad	-1025756978123275274
	.quad	223
	.quad	1335804826940049539
	.quad	-2063291917619531013
	.quad	-5872065732805999689
	.quad	-1546925004547521024
	.quad	7134329605728850255
	.quad	-3697850138652199951
	.quad	-631602122599564580
	.quad	4379100056954614756
	.quad	166
	.quad	9082014735035399730
	.quad	-822395545870909365
	.quad	7345534059587077689
	.quad	1296968098179801953
	.quad	6769640556505787200
	.quad	-4952331842885084189
	.quad	-30416719991137746
	.quad	1819184788205960405
	.quad	65
	.quad	7026347087022234135
	.quad	3252040096596993150
	.quad	-8877828919940191227
	.quad	-232803257874360560
	.quad	-6116234360164779120
	.quad	-4953014094226318006
	.quad	-2161729269054751673
	.quad	-6351480083265209802
	.quad	45
	.quad	8239871088764877470
	.quad	-3665234442380242535
	.quad	-3494829080410456999
	.quad	7090347841165637170
	.quad	1397774267167317130
	.quad	-4491161590336077945
	.quad	3558304127638225416
	.quad	1942078470596823785
	.quad	152
	.quad	-7853948181389671888
	.quad	7617166425825096564
	.quad	1138506089239511152
	.quad	-5556344636744319891
	.quad	2958633234815837203
	.quad	-5215864078478056946
	.quad	-8836402715992354452
	.quad	4972711355446455217
	.quad	81
	.quad	8937937665358269358
	.quad	-8537627776071097987
	.quad	-8506962063609231760
	.quad	1551615996424250444
	.quad	3836605065762538992
	.quad	-1661238510785719725
	.quad	-1508725757437418631
	.quad	2403447009021562092
	.quad	87
	.quad	-8549461418190228996
	.quad	4608510717507262879
	.quad	4254559976024185050
	.quad	4570742994431026979
	.quad	-794746714099696144
	.quad	-7449007878758387902
	.quad	7911406096441568193
	.quad	3960175895112199100
	.quad	255
	.quad	-4100512788701304297
	.quad	5176726775514107780
	.quad	-1923377256274253686
	.quad	5654844266721859510
	.quad	5142153210654191791
	.quad	6777174745190710332
	.quad	-1286681547640176376
	.quad	-9151492374043698213
	.quad	43
	.quad	-7559689694514748913
	.quad	3828910215587835556
	.quad	-8341175785260036979
	.quad	-874193786929268118
	.quad	6261178410683733233
	.quad	4367520926561746382
	.quad	7554271959000394200
	.quad	5197226343933928234
	.quad	295
	.quad	-1494005497453871797
	.quad	3819359462674156982
	.quad	1871706581604169172
	.quad	6755293666527071302
	.quad	8299195343379261729
	.quad	-3639998626945191656
	.quad	7818623426410629659
	.quad	5995610155098083574
	.quad	83
	.quad	9125220297837911023
	.quad	-4364514563526576219
	.quad	1393696064351262868
	.quad	9171066447678581345
	.quad	-5761976935631682286
	.quad	6188644691853697907
	.quad	4254609183248443327
	.quad	-7964625608449271457
	.quad	448
	.quad	-1229223618332953308
	.quad	934284538696542733
	.quad	-5885331115323791364
	.quad	2955538548772176989
	.quad	-1374736796329082161
	.quad	296019163354045409
	.quad	6179453701768886132
	.quad	8438781615766963627
	.quad	354
	.quad	624073320179418636
	.quad	8290409498039399608
	.quad	-218393120855486715
	.quad	7722749795325873141
	.quad	-2893624753321447132
	.quad	6280896949369882210
	.quad	-2160272564732700280
	.quad	-6447567941236101044
	.quad	387
	.quad	1459323793946297732
	.quad	-8132145005493387149
	.quad	2216805766998142780
	.quad	-947750332695286643
	.quad	-8224681407545921371
	.quad	8599039970584001881
	.quad	2794630747555074956
	.quad	2691311127788786548
	.quad	316
	.quad	5934741779990973094
	.quad	-331747897739955760
	.quad	-5491580572662204533
	.quad	8154800517504952656
	.quad	2537415640567917212
	.quad	-3909089450342923828
	.quad	4254594113163772196
	.quad	-4508425116062506114
	.quad	49
	.quad	1644260114222719921
	.quad	-5857048880005413986
	.quad	-36970682285390983
	.quad	1828108802629193420
	.quad	3930500821597986760
	.quad	2893414076023167589
	.quad	1938528762473760130
	.quad	6978943767896220412
	.quad	167
	.quad	2934096635909688861
	.quad	-6805218520732621520
	.quad	4577951226719421803
	.quad	2711325867067215921
	.quad	-1282611569228106617
	.quad	-4327341490103395268
	.quad	7877701311411276039
	.quad	1258253078171406887
	.quad	428
	.quad	1403682820874100290
	.quad	-4899731943367750541
	.quad	-8484026638486294468
	.quad	-7317927242956666544
	.quad	1786781037395229036
	.quad	109322677270165273
	.quad	3203111649717246750
	.quad	-4804599941029876684
	.quad	34
	.quad	3565080731068187006
	.quad	5903192564287109971
	.quad	-8451584563802346060
	.quad	-9140002661548505916
	.quad	3760763832636728245
	.quad	4510845800084396550
	.quad	22357185795291741
	.quad	-2210821588131257178
	.quad	186
	.quad	3840304713847349915
	.quad	-7808698307076641553
	.quad	6042562043818638354
	.quad	4424678976158097489
	.quad	-4658757982967602053
	.quad	-8720521422616271481
	.quad	7885393936662731766
	.quad	-1479509734416313050
	.quad	499
	.quad	-4835153937091421964
	.quad	6841064139140671337
	.quad	2430944788434138913
	.quad	-4737931713563435363
	.quad	-8931847764142302628
	.quad	-7077796218257591821
	.quad	-1421322826808003357
	.quad	4413096112977460919
	.quad	371
	.quad	7626568119387057876
	.quad	-4402159608574433149
	.quad	4264893210150567689
	.quad	-855796136802204447
	.quad	-8880847391147330572
	.quad	4308942733031835057
	.quad	-966196052885135747
	.quad	-1862048405843949113
	.quad	333
	.quad	-5337241623999815821
	.quad	-1188446478578782374
	.quad	-1690555683693255899
	.quad	-6650198508772495610
	.quad	-7073211102445433997
	.quad	8713680992740264385
	.quad	-147030744232906607
	.quad	-4399987178194838296
	.quad	403
	.quad	-5118346393430716271
	.quad	4042252474479072925
	.quad	-6484653787130782205
	.quad	1957047093360587159
	.quad	5487445726899313342
	.quad	-5727567997281939910
	.quad	8961573338118498112
	.quad	1982229347490684961
	.quad	38
	.quad	-4729260949045987856
	.quad	4774063210545897829
	.quad	-826647945949138553
	.quad	3958852020327293602
	.quad	6415742651239461192
	.quad	-4879899960291193871
	.quad	4994109575516947359
	.quad	2597793665230595555
	.quad	432
	.quad	-148403626067228554
	.quad	-4512923027742308141
	.quad	1659239412369742550
	.quad	-4607818107630366190
	.quad	-7171403346049204348
	.quad	-3150192981013520597
	.quad	508368281151826574
	.quad	-7643219044761635359
	.quad	3
	.quad	746794777525482667
	.quad	-6038156729387762949
	.quad	1450901053328825143
	.quad	-1552183149151646614
	.quad	-2413164868949129015
	.quad	2519614335831708320
	.quad	5132990251717814868
	.quad	-4540185080351438468
	.quad	244
	.quad	7759529233369118640
	.quad	405835360340963992
	.quad	-3640913013433906513
	.quad	-5885071520468054518
	.quad	6858889953253429928
	.quad	-7060533701588210880
	.quad	-5449469457234176613
	.quad	-2370921406957654030
	.quad	470
	.quad	2510988005966412975
	.quad	-1820028762282738444
	.quad	4835214145353460201
	.quad	-8377390575951503837
	.quad	-3765509450301718656
	.quad	28149009592240214
	.quad	-4482863658052898451
	.quad	-6656912117645076689
	.quad	243
	.quad	2249728462744311426
	.quad	-7642470915598554554
	.quad	-8707683186962000115
	.quad	5805082127071243339
	.quad	-2018466699274728435
	.quad	1084758741775311494
	.quad	8272937681127573982
	.quad	-3275100813587763089
	.quad	14
	.quad	-7265682813782593058
	.quad	3111174624256919940
	.quad	-8103865696400314133
	.quad	2187012948177039769
	.quad	6697005403709030029
	.quad	5062785785624254769
	.quad	-8598488552368902560
	.quad	1262080216687544738
	.quad	348
	.quad	1858647708614474365
	.quad	-7286917322872278345
	.quad	553499324908995261
	.quad	4507367768782170406
	.quad	5166343808407410381
	.quad	2609659930310988318
	.quad	-6804360091885800036
	.quad	4654347998181245779
	.quad	466
	.quad	5944207362242322922
	.quad	-641851128783675138
	.quad	-52256060830599447
	.quad	-6770345974271327192
	.quad	-5732105008605738846
	.quad	7583364284548954069
	.quad	3929239506707591567
	.quad	5150412752713590884
	.quad	112
	.quad	-6494648858532213390
	.quad	517072125999959402
	.quad	-4460236973717171756
	.quad	-6544424393162384049
	.quad	-3767885173411113820
	.quad	4867825132174896822
	.quad	-3882327106511942952
	.quad	8598225318748066011
	.quad	467
	.section	.bss.p521_methods_once,"aw",@nobits
	.align 4
	.type	p521_methods_once, @object
	.size	p521_methods_once, 4
p521_methods_once:
.Lp521_methods_once_local_target:

	.zero	4
	.section	.bss.p521_methods_storage,"aw",@nobits
	.align 32
	.type	p521_methods_storage, @object
	.size	p521_methods_storage, 80
p521_methods_storage:
.Lp521_methods_storage_local_target:

	.zero	80
# WAS .section	.rodata.p521_felem_one,"a"
.text
	.align 32
	.type	p521_felem_one, @object
	.size	p521_felem_one, 72
.Lp521_felem_one_local_target:
p521_felem_one:
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.section	.bss.EC_GFp_nistp384_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_nistp384_method_once, @object
	.size	EC_GFp_nistp384_method_once, 4
EC_GFp_nistp384_method_once:
.LEC_GFp_nistp384_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_nistp384_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_nistp384_method_storage, @object
	.size	EC_GFp_nistp384_method_storage, 160
EC_GFp_nistp384_method_storage:
.LEC_GFp_nistp384_method_storage_local_target:

	.zero	160
# WAS .section	.rodata.p384_g_pre_comp,"a"
.text
	.align 32
	.type	p384_g_pre_comp, @object
	.size	p384_g_pre_comp, 30720
.Lp384_g_pre_comp_local_target:
p384_g_pre_comp:
	.quad	4454189113653900584
	.quad	2369870743683386936
	.quad	-8674993926805172882
	.quad	7229551204834152191
	.quad	-9137813387582972373
	.quad	5564951339003155731
	.quad	2523209505731486974
	.quad	-6791524172683761236
	.quad	-8381788974133039024
	.quad	-4124362564652695591
	.quad	-2485984631113275328
	.quad	3132442392059561449
	.quad	424706049021067379
	.quad	-4229256083340822628
	.quad	7719227939353578736
	.quad	4199843265846733886
	.quad	-2058287772305021840
	.quad	-3277496377277299796
	.quad	9090595157644861783
	.quad	-7865666871765179539
	.quad	1379900013445280838
	.quad	7494321123029536948
	.quad	-658817809702014151
	.quad	5067787616258265775
	.quad	-4946818560972164897
	.quad	-4501980270944635802
	.quad	9159954083757191227
	.quad	6979221481184822758
	.quad	-4145922413669325626
	.quad	-2181107052391723013
	.quad	3128114568639019553
	.quad	2504404013570803046
	.quad	-9172113693796508775
	.quad	5414311569178493969
	.quad	-1817883871356771475
	.quad	5598477736550720675
	.quad	-2372348269290773973
	.quad	5541188270073279665
	.quad	8295310521928755861
	.quad	6864072771162821613
	.quad	-534842757077606571
	.quad	-7841717474280537509
	.quad	690935445353571870
	.quad	1392537891789610105
	.quad	7325904616956299332
	.quad	1149398686564874112
	.quad	-756847117817149690
	.quad	-2807406443829093570
	.quad	3412919337711024431
	.quad	-2063344443031296775
	.quad	2740801234954712157
	.quad	-2579122495814631617
	.quad	2797972073741634922
	.quad	6677462884297174122
	.quad	-972442775371988816
	.quad	3996912168590289455
	.quad	2877907669270439874
	.quad	-6418565374976274216
	.quad	9048903683242829652
	.quad	-1769805577729804858
	.quad	-4075604720217256835
	.quad	4986055967754386106
	.quad	994283350302316111
	.quad	124059366184412674
	.quad	-515494456303673991
	.quad	-7198465258759273417
	.quad	8524946062048541221
	.quad	6940016701900868483
	.quad	4388778906010249088
	.quad	3316636379456104494
	.quad	4720367297793042554
	.quad	-7303097384895776488
	.quad	-7243218122297262597
	.quad	-5593988856439072107
	.quad	-8468299717150255954
	.quad	-2643046007570317994
	.quad	-3286094571001159785
	.quad	-5396342726764381036
	.quad	-805136796580216531
	.quad	-2816844222810103614
	.quad	8690304923168739299
	.quad	-5188520407136498336
	.quad	-9079893344757674301
	.quad	5050696512039385569
	.quad	4929990821929415849
	.quad	3130583257788034008
	.quad	-8949512735882708172
	.quad	6435653863924772981
	.quad	1134942105434085779
	.quad	-332472047063858581
	.quad	2524774042677381563
	.quad	7016780555346498950
	.quad	5414403864902656268
	.quad	-2460046874265455504
	.quad	-8704336297599412329
	.quad	6514675658717406998
	.quad	-8573761668045456176
	.quad	4513990341085492286
	.quad	-1802496297101057779
	.quad	8927105868467535612
	.quad	-6959987402191387298
	.quad	5930983899805372016
	.quad	4597165650640826453
	.quad	5630545169061888218
	.quad	5318304290914955651
	.quad	-541155960969473974
	.quad	2732380891614701434
	.quad	-6037189171520379703
	.quad	-9033396997336839160
	.quad	2505352002220378386
	.quad	-3886434700846518946
	.quad	2560598311412716430
	.quad	-5497096772090592594
	.quad	-428089058303879418
	.quad	5095698036443324880
	.quad	-6285005015965094228
	.quad	-7966670410962766269
	.quad	4565094881982099651
	.quad	1572280150775871090
	.quad	-6785663344371599516
	.quad	587260503473180207
	.quad	-8583627145347097055
	.quad	3463983484835985245
	.quad	3339889039248375401
	.quad	1952890346525484343
	.quad	-6118485173555162443
	.quad	-9217705931305099801
	.quad	-6164290315286905878
	.quad	2751342346893562008
	.quad	-5452714426058158759
	.quad	2768255108350892055
	.quad	2414579491139734714
	.quad	-3335787105759303621
	.quad	-7417760590093119754
	.quad	-5056454804505884136
	.quad	2050748250624169859
	.quad	7053985204822881008
	.quad	-9186663286674230748
	.quad	9206266298476178349
	.quad	850234683644856339
	.quad	8852002306487996094
	.quad	-1147422499417215874
	.quad	2895009955560495297
	.quad	-7062546855134943911
	.quad	2203230156033506179
	.quad	-4960699621137188042
	.quad	6327825563528337226
	.quad	-7217832483301442018
	.quad	4037946904727027748
	.quad	-4423539595946527951
	.quad	-7402513511851340027
	.quad	-8949571313881980015
	.quad	99799395878609868
	.quad	-2980550494527798460
	.quad	-2720708274299352722
	.quad	2298800924622588380
	.quad	-6898244889587390748
	.quad	-3523764809571489507
	.quad	-8210834629483849991
	.quad	8226074127363937488
	.quad	3422328144209271038
	.quad	-1672392309163009300
	.quad	4803882670057122296
	.quad	6388030570515069172
	.quad	-2920111576103379990
	.quad	9017987689555188357
	.quad	7486796318875925727
	.quad	1693927455512022743
	.quad	116366563262731376
	.quad	2703403764173521878
	.quad	-3585967094203058617
	.quad	4450169173590403855
	.quad	2334474067184133860
	.quad	-3985673678263358945
	.quad	1896724218060332755
	.quad	2971274357496102370
	.quad	-6118266370973478477
	.quad	-8183690285981301253
	.quad	-651475544859729869
	.quad	2101522968243335532
	.quad	-6657295303524677980
	.quad	-5266980802595250458
	.quad	3373058960866103270
	.quad	-3157166510116353691
	.quad	1944237428482671237
	.quad	7784406002563220945
	.quad	-2686341617719197222
	.quad	-4896985529443398904
	.quad	4623679127313653981
	.quad	-2892078080512591332
	.quad	6574425793751870660
	.quad	5141490598499885469
	.quad	3584219355111975656
	.quad	-2075493568329363009
	.quad	1783498323461654093
	.quad	994193781588257676
	.quad	-9102659925617419702
	.quad	-3196229432975396613
	.quad	5059260913356645611
	.quad	-2581357883266881168
	.quad	-897986421970266906
	.quad	8085895309926420946
	.quad	4682964998668660167
	.quad	5020215203959826643
	.quad	2576612335437377594
	.quad	1899682712651141430
	.quad	-6559443802917102595
	.quad	-6642271080639793410
	.quad	-7615744953990238336
	.quad	1741753179884488861
	.quad	-2160044950978451743
	.quad	3643516247376722163
	.quad	3682273255591068565
	.quad	6392728837720629214
	.quad	-6545395367534391695
	.quad	-2303259022313555408
	.quad	6152665130156855097
	.quad	-8741274570504983908
	.quad	-4494819528642438260
	.quad	2434138635056070528
	.quad	-1855513284936259298
	.quad	4426260001178290949
	.quad	6390121195308333473
	.quad	8700572060668754242
	.quad	4812036275221797020
	.quad	-4490024000461252178
	.quad	1902555843966298265
	.quad	5202141163826482301
	.quad	8525645166886970196
	.quad	3134143460247871741
	.quad	-3330628906148798683
	.quad	3078800960701409856
	.quad	-5387239997847019066
	.quad	9108153517754978547
	.quad	8250610785324912755
	.quad	-9083071747753361489
	.quad	1495074847941437905
	.quad	-8042700564982719566
	.quad	3904454763323616406
	.quad	-5632952501110450687
	.quad	8324780214689809449
	.quad	-5522473311718824232
	.quad	-2778990088592190918
	.quad	2943366707006427041
	.quad	-7714704795624446182
	.quad	187369508428043393
	.quad	-5201984218253372636
	.quad	-4798530390898561342
	.quad	2660837912365849198
	.quad	-6469973305347046958
	.quad	-8752809385733590377
	.quad	-4948835590922074842
	.quad	3341517100128815958
	.quad	2243420303688401610
	.quad	7153321666640309374
	.quad	-7921200526256970800
	.quad	-2670404449215209670
	.quad	7695076598671462598
	.quad	-714207933026003980
	.quad	3592810100391824473
	.quad	8413963613597435501
	.quad	6287395742336969309
	.quad	-980919920256691501
	.quad	6235174426722257030
	.quad	535242441654234443
	.quad	-1410651139825748649
	.quad	-6845984782584550897
	.quad	8050420965161709260
	.quad	-1018217621290362957
	.quad	-1987952792232214037
	.quad	6849931777343444339
	.quad	8512792140518036559
	.quad	7343733992893241199
	.quad	600235943839786928
	.quad	-5605756481185758460
	.quad	-8723574768744490995
	.quad	5533765953345363299
	.quad	3666831701473191637
	.quad	-4018620585641925938
	.quad	-8237960388804683290
	.quad	4235254303243099550
	.quad	1152270923153823119
	.quad	7789988973198825144
	.quad	6281293996379084253
	.quad	-7068611928045848510
	.quad	3044105183226657672
	.quad	-3140557245554902093
	.quad	-3328133307344617273
	.quad	-8092685054457110843
	.quad	-5153772378063339454
	.quad	2938839704773574383
	.quad	4125570236808717834
	.quad	5669106252778853373
	.quad	3315859442103050592
	.quad	-8677726985546273790
	.quad	-1093039130303403164
	.quad	-2916726516693614187
	.quad	2570061040841410282
	.quad	3528536243202752202
	.quad	7645559157925089531
	.quad	-2705279177413701206
	.quad	-3988621212203154852
	.quad	9149023635400697847
	.quad	189497397795976740
	.quad	1269623536431422107
	.quad	-4560080238300188135
	.quad	-7269283523045052624
	.quad	-6815545926669300783
	.quad	6620708790156971843
	.quad	6619145612569816220
	.quad	-6918659534756711799
	.quad	-2187023720701928215
	.quad	387760203031051471
	.quad	5905036833764243534
	.quad	-6786752808824721424
	.quad	-3970406235077422935
	.quad	3420516677938347710
	.quad	6697911120101872460
	.quad	-1919182631447157074
	.quad	-3907402505769429741
	.quad	-8946428356378129387
	.quad	5598885307507095779
	.quad	8418908984659862589
	.quad	9132133759741315110
	.quad	-2157567364510164323
	.quad	5293958900843271201
	.quad	-6757685135751154950
	.quad	-3841891806703275707
	.quad	5908992856960772771
	.quad	3669850223888192384
	.quad	8422727739484256266
	.quad	4197087639900121361
	.quad	6259121101097839344
	.quad	4407093608701107550
	.quad	-2970659997973269534
	.quad	2594634674955799899
	.quad	-6074269074300455290
	.quad	-5876876345916162463
	.quad	3194845931884970139
	.quad	-6489165695064197479
	.quad	8579526205398295962
	.quad	5595880088236201888
	.quad	-7457961175777036947
	.quad	-5076479352898374536
	.quad	-5610172929743224474
	.quad	6084632841430091668
	.quad	-2934152173407176317
	.quad	-5109538382150488658
	.quad	7839639747603678240
	.quad	-7708932974574552622
	.quad	4281816399715318084
	.quad	-6192096244329433191
	.quad	-6070468962650720713
	.quad	6288612068705977908
	.quad	422331069956190144
	.quad	-3651643537985763199
	.quad	286716657116035792
	.quad	-2818478033023213255
	.quad	6395579371561963696
	.quad	-8028166773057998323
	.quad	8862011856458318609
	.quad	-9034216307318944093
	.quad	-4613566628118947739
	.quad	-7267413337270778097
	.quad	2504121181101050013
	.quad	4359150541961395643
	.quad	-2627943737093063013
	.quad	2359951353428294817
	.quad	6733317881819571009
	.quad	-7466098440936078024
	.quad	6149411492203422945
	.quad	627386088708777830
	.quad	-5559263870294680999
	.quad	-7890892490333428701
	.quad	-7032585367697760548
	.quad	-417095866366773553
	.quad	544477333904520000
	.quad	-7832703334312163172
	.quad	-4594789611096574829
	.quad	7141078690285427326
	.quad	-8179447613576350479
	.quad	-3073595946527459675
	.quad	7867905940196885693
	.quad	6364799477914529111
	.quad	-5727529332695938326
	.quad	5114617959251923035
	.quad	-7694828626926969853
	.quad	2484828566956964312
	.quad	-4102940422763502400
	.quad	-3645444717687346161
	.quad	3016813884715770290
	.quad	-555394405815993892
	.quad	-2669068010926362805
	.quad	1712819799097224132
	.quad	-6278130099315596618
	.quad	-4459753487804425328
	.quad	5275622406326687551
	.quad	6112584237967786501
	.quad	265405289314185926
	.quad	1412958831727264346
	.quad	7651126186628822932
	.quad	5834995389479500713
	.quad	-5323951558002294631
	.quad	2550947875326289463
	.quad	7066444771311187962
	.quad	4421293422025492021
	.quad	-7678972282081588750
	.quad	-4220015435452800432
	.quad	2625594970679028763
	.quad	2169078556432423136
	.quad	-5425646908115884426
	.quad	-7655637846701840902
	.quad	2690189788129576822
	.quad	5484825642511489488
	.quad	-2173186215725429663
	.quad	-6301653628196963847
	.quad	-2345004144845170978
	.quad	2643908061410998004
	.quad	-5717636822681919177
	.quad	7695556167491532786
	.quad	-4788443060147788927
	.quad	2849842635737133681
	.quad	-8652238564378700919
	.quad	4574981021203185846
	.quad	8209746334820554465
	.quad	5056236831081348743
	.quad	-1822537990475789297
	.quad	2806783205419280334
	.quad	4722899220782250386
	.quad	6951333432373876775
	.quad	-1859747800371942301
	.quad	4087561966128175843
	.quad	-1696030536853859279
	.quad	-6287860980377164756
	.quad	869753891367085490
	.quad	-2841440101216209922
	.quad	-6133533951768292869
	.quad	-4530052664218748000
	.quad	-7001883424991924104
	.quad	2835105424184438282
	.quad	-7533611314609774766
	.quad	1412948777401255586
	.quad	769776732776506316
	.quad	1165176872145242057
	.quad	2495713660630230645
	.quad	1185980555358051965
	.quad	-4040102132042682545
	.quad	-5028549047134236284
	.quad	5357639127530659925
	.quad	1493186117020140399
	.quad	-2618622884725192387
	.quad	8349485267934650396
	.quad	7613912943850760152
	.quad	-415872106168694470
	.quad	8018837622665199635
	.quad	-3311117720749526937
	.quad	5676915880842387064
	.quad	-8390897310988594585
	.quad	-6640045945668899793
	.quad	5264306477430907541
	.quad	8384892015115220698
	.quad	78358395066300931
	.quad	1150314427301408206
	.quad	5063901896663115767
	.quad	638613414256407118
	.quad	8689364962315350092
	.quad	-1855838403155839454
	.quad	-318578482525211359
	.quad	-4965963617231403487
	.quad	-1355627683167645021
	.quad	5942938816814828424
	.quad	476503073112423896
	.quad	-488307649999827093
	.quad	-5548084935510503063
	.quad	2131038254379659612
	.quad	-5921102048109149084
	.quad	3081067260990044234
	.quad	2822022238840761302
	.quad	7062264661943515613
	.quad	5905091641833394361
	.quad	1715401897406410269
	.quad	-7471891775106821457
	.quad	3703563608449514097
	.quad	8218560600940087964
	.quad	3932477062309991942
	.quad	-4724722833957590613
	.quad	-2928461125223078976
	.quad	-8385885928953937728
	.quad	3491713830782930801
	.quad	1990256255090915857
	.quad	-2368852300895639390
	.quad	5028288760842513767
	.quad	-1415391735922470408
	.quad	1265047399731737298
	.quad	3228497796602255157
	.quad	-3919052578593820913
	.quad	7617843212350776568
	.quad	1653281870572126851
	.quad	6050084733225339043
	.quad	3498372151803836894
	.quad	-2196108619255010982
	.quad	5588942553333331402
	.quad	-3320051470704804525
	.quad	1432041173021654659
	.quad	-2472584196416529802
	.quad	-2186823297490619374
	.quad	1530631610203598477
	.quad	8290063397523437529
	.quad	-5901960568418028137
	.quad	-8864912537900271094
	.quad	3935112089091311024
	.quad	-6640175565023697120
	.quad	2251671994939353094
	.quad	5216925341992407539
	.quad	3604326333824857875
	.quad	-1679379260755064812
	.quad	3676740981122198023
	.quad	-4108603625405015651
	.quad	3684815724812372485
	.quad	8844733710560284198
	.quad	-2410186830531080582
	.quad	-3958973760593292345
	.quad	163947197512819977
	.quad	-3391469814366600635
	.quad	607416147061957532
	.quad	7561878368271596374
	.quad	2586415942496206166
	.quad	7612427232847740362
	.quad	7814509168268889699
	.quad	521362907925849086
	.quad	-4760613074032498374
	.quad	-4862323540407692424
	.quad	-1524721361711376940
	.quad	-3980298548505399457
	.quad	671810849799493508
	.quad	-8511839431089090773
	.quad	3687865299552447568
	.quad	4526955705362276952
	.quad	-5846627197139516860
	.quad	4874972572540642127
	.quad	-8082127746033114715
	.quad	6864695771571338088
	.quad	8114023141610969197
	.quad	-8144103711492295864
	.quad	3830148142063411870
	.quad	8620012615531146380
	.quad	6347112486487139037
	.quad	-9007421994295637159
	.quad	8206695932298363124
	.quad	-4006976444966645727
	.quad	-1763876012506291569
	.quad	-5565960452348007369
	.quad	7151349311170311387
	.quad	-1011798813612628718
	.quad	8502455696946500062
	.quad	-4030764423319709204
	.quad	-5977490651551053560
	.quad	5628455868667527967
	.quad	5060499359661118618
	.quad	6544897099825091224
	.quad	6679830428735730001
	.quad	3799662388952787862
	.quad	-2546439157510366544
	.quad	-6972445456125126133
	.quad	8492477332874908465
	.quad	7477786734250678431
	.quad	2858586519391294832
	.quad	-5991353738194562628
	.quad	-1965361396584064305
	.quad	4336324256224591212
	.quad	129721516405379397
	.quad	-7059952074440212150
	.quad	7465619916910372920
	.quad	177852930230933901
	.quad	-1188772097300009516
	.quad	-3998877525240904581
	.quad	-6021948258475454878
	.quad	-6516889787904032658
	.quad	1614907582435615152
	.quad	3243608722624509713
	.quad	-6828655022709896373
	.quad	-1995753035947845426
	.quad	-3654916807969170922
	.quad	-2193448437792481807
	.quad	-5479083029653882328
	.quad	8950779205008902591
	.quad	8504639429942410457
	.quad	-1279665707780490730
	.quad	-3765706968268132526
	.quad	-7292331167155812677
	.quad	-1888320922534055260
	.quad	6285030627926492227
	.quad	-8155911788461594381
	.quad	-1923993911904250801
	.quad	4436228920200714418
	.quad	2409858423294994518
	.quad	617155725363325676
	.quad	-4435219420406498612
	.quad	5177797359236803245
	.quad	8290899194960599185
	.quad	-6917998093694669605
	.quad	6182430424023761381
	.quad	3475082923360625607
	.quad	3076073459063455076
	.quad	-8068301711736773665
	.quad	1928653322025847242
	.quad	-7170884914508848899
	.quad	-713781149044121597
	.quad	-6756250260337222
	.quad	7064944630179873720
	.quad	3304719418024411692
	.quad	2153772832250412099
	.quad	-8356630014961059415
	.quad	7363290374561050715
	.quad	7843838338279350344
	.quad	7920870311130336096
	.quad	-8275830055838184516
	.quad	-8581182603543013979
	.quad	-9112487301181867976
	.quad	8581897812539458667
	.quad	8599471352803027994
	.quad	8796183458658268985
	.quad	-5787542342118850994
	.quad	4970311472744086260
	.quad	-6764853429379873735
	.quad	2335615570183618708
	.quad	-5746049246171696634
	.quad	6177201878022338797
	.quad	-7701539793186666556
	.quad	5447698501831385650
	.quad	-4502195718576328284
	.quad	-5018789802053807244
	.quad	1758846050835724655
	.quad	4081176162908411954
	.quad	143138826110337136
	.quad	1333853703322284874
	.quad	8550811044062711868
	.quad	-4713532253986888752
	.quad	-735612974816917439
	.quad	1540706468250987542
	.quad	3800475869236690840
	.quad	-1575724502673970907
	.quad	6156757348293294843
	.quad	-1517622245146968374
	.quad	-56111088597755375
	.quad	-6827956228720019061
	.quad	-8305371862253018790
	.quad	-7924583237612972052
	.quad	8680747440971223366
	.quad	9209090258749385791
	.quad	982535240747476893
	.quad	4968038987235564059
	.quad	-2043592649989990091
	.quad	-6497902816968541328
	.quad	-5896631454083522193
	.quad	-6342633074834926814
	.quad	7496321954500925035
	.quad	-1131122823974431061
	.quad	-2600228571436006816
	.quad	-6161550575703647422
	.quad	-2816622645900246509
	.quad	1264840490697624404
	.quad	701327106091044566
	.quad	4687859862481244801
	.quad	4265389202393581678
	.quad	5961642557976590205
	.quad	6203324135029419236
	.quad	7455513180678088141
	.quad	6200001572379546985
	.quad	-4744865229017872509
	.quad	177549874223488145
	.quad	685737752624899694
	.quad	-6868402128745513742
	.quad	-7930969206652647136
	.quad	-4039760455357071100
	.quad	731230199137568627
	.quad	-7090742060787371563
	.quad	4757147896865907300
	.quad	8177431779869337494
	.quad	2280152425061992232
	.quad	-6753769356875114054
	.quad	-2034654558794106571
	.quad	593734355630515061
	.quad	832421232393970030
	.quad	2139629561277015508
	.quad	-4915202085913511579
	.quad	1821978100548840124
	.quad	3181534635864552585
	.quad	6975564448758784015
	.quad	3619045971550170723
	.quad	4764153599914901337
	.quad	6411845789962165749
	.quad	774382214490681799
	.quad	3911170017449315606
	.quad	-8672136659356664953
	.quad	4503715692209610263
	.quad	-2313557649545212732
	.quad	4792088046372475023
	.quad	1267081597446059428
	.quad	-7444737304228060113
	.quad	-7284956905217024850
	.quad	-993258511952987520
	.quad	4618352899959185331
	.quad	-3322513596901299125
	.quad	-8703438852228324420
	.quad	7532695555005557929
	.quad	8205757256485374922
	.quad	2449164074866340170
	.quad	-1265924770005197396
	.quad	841841747925963469
	.quad	6859831726160500877
	.quad	-8015754922180230094
	.quad	-5142634397164588867
	.quad	771734882430758979
	.quad	-902813806856115136
	.quad	-9054737082288774891
	.quad	-1256558354320978963
	.quad	6529005019306618136
	.quad	8945709108907648246
	.quad	5110677278320573745
	.quad	-418059761047511656
	.quad	7417340370170351718
	.quad	-5007489045727676949
	.quad	3945862694740935954
	.quad	906656652083919511
	.quad	5178544302893811274
	.quad	637689244979510070
	.quad	5104912995011785356
	.quad	8029591322684210617
	.quad	-6012192753606169147
	.quad	-1662569776041537936
	.quad	-3458938383288866444
	.quad	-46097946404346431
	.quad	1207666506614151517
	.quad	-3786296418210978845
	.quad	-2925686714218079837
	.quad	-1096050160982957815
	.quad	-4348577596976243552
	.quad	-9004054607200149595
	.quad	-5867824534696327963
	.quad	3509252819225853121
	.quad	-3778472505487933650
	.quad	852436144287933301
	.quad	-6316116798033847036
	.quad	-8387570523450766785
	.quad	-1315809118161821705
	.quad	3761323972818915704
	.quad	1145534442190821109
	.quad	407099303744067964
	.quad	7986091263881393951
	.quad	7649821771919266542
	.quad	4486546493556884403
	.quad	4050527832832944417
	.quad	4566342312502632151
	.quad	695016778593076799
	.quad	2197726358840665875
	.quad	-1956325215015462925
	.quad	-4086013985600476128
	.quad	674945777065002510
	.quad	-2608596192178675968
	.quad	5545825510106658015
	.quad	8270117591435510128
	.quad	5699234766264766073
	.quad	1783229327076917434
	.quad	-3507784960969494216
	.quad	6452231512054008589
	.quad	-8936568456876062711
	.quad	5050176600530683984
	.quad	2463818565041698203
	.quad	8022820688029070207
	.quad	4888356879458026368
	.quad	-6816953168544027338
	.quad	-1891029867113653286
	.quad	-4818857591851694928
	.quad	-2111034002515644629
	.quad	6321854959216334024
	.quad	-5333417409653309691
	.quad	-6892392609631062576
	.quad	794805091959363175
	.quad	-5901555315255535897
	.quad	3449274165036362414
	.quad	4918853138124055081
	.quad	1547983020534099669
	.quad	8313761980678241388
	.quad	-6210195071862486010
	.quad	8919544181940646346
	.quad	7959615711717924349
	.quad	1998441664630865730
	.quad	-2784492530956329220
	.quad	878616613737147225
	.quad	-7525185863861168165
	.quad	-3803156113092269113
	.quad	-3638418326575277183
	.quad	8057826914079617564
	.quad	5525954727355605916
	.quad	5290214223388727378
	.quad	1085748056393626543
	.quad	-6194491045159440502
	.quad	5922977969674250041
	.quad	2448526450681685329
	.quad	2926522479362225384
	.quad	-5412404639649138094
	.quad	-4160955455003811376
	.quad	-4222127628856583496
	.quad	2744232347627720169
	.quad	-5063091482635352632
	.quad	-7407745513442245745
	.quad	-4986936873081910215
	.quad	4723235801697844775
	.quad	6052210961441690931
	.quad	8015232138170246714
	.quad	-6367491112160079202
	.quad	-5253924556245281556
	.quad	-3862354493457574066
	.quad	-613507412336401135
	.quad	3761490117360962633
	.quad	6832719395023449163
	.quad	2033508612951663629
	.quad	3511592613860178255
	.quad	981472589675863291
	.quad	-5820661781978448855
	.quad	966591436305020179
	.quad	-4713361963998598314
	.quad	1434291421752039220
	.quad	-475529684957459241
	.quad	7561304859414785821
	.quad	-1152209879471457097
	.quad	6834714320288858574
	.quad	4772589731323745937
	.quad	-855206845523455338
	.quad	7733169684400774683
	.quad	7943142157971243776
	.quad	2600580496982037708
	.quad	-6206055635530445374
	.quad	1682995002150080423
	.quad	8105112813163255258
	.quad	-3766875058358802854
	.quad	-7831389890816817907
	.quad	1101044368915518409
	.quad	5335546289827620815
	.quad	-6656901643043701599
	.quad	6421202279499314143
	.quad	-6873147818799089550
	.quad	4537895385523862063
	.quad	4377931158374724860
	.quad	-5894712546098464753
	.quad	-2942425521137925964
	.quad	3707368681645487345
	.quad	-3444958321094637914
	.quad	-6740961172930939907
	.quad	-6497690470224870135
	.quad	-250821368875385675
	.quad	-5753292114086753636
	.quad	-5156178945433962762
	.quad	7361758586005248557
	.quad	-2371650105874235218
	.quad	7087112768596951545
	.quad	-6902922020256046668
	.quad	5902482308820286139
	.quad	7353185101342606440
	.quad	4571190498315407690
	.quad	7730145317036018296
	.quad	3643250411451134315
	.quad	-7965702579674230442
	.quad	-6045747774363556345
	.quad	5124525605280090473
	.quad	4038284338216963459
	.quad	8368811762517146972
	.quad	-8428191349369815915
	.quad	-5230674996644008145
	.quad	4152113719761003222
	.quad	-4941677769018677359
	.quad	-8120066839685001026
	.quad	376480174029105982
	.quad	-4942918358345681883
	.quad	3662734173715032415
	.quad	145699498664655649
	.quad	3463323626767135751
	.quad	-3517507351898187365
	.quad	7353738224546701386
	.quad	-4375591621652589771
	.quad	7253807869601522809
	.quad	-6875107775599066109
	.quad	7731718974536120013
	.quad	8278123399181570575
	.quad	-7787776345060359199
	.quad	3249575849550854930
	.quad	2535127917546183172
	.quad	-71535178966107896
	.quad	-6980210468338213573
	.quad	4096828393842021557
	.quad	3194332845999152277
	.quad	8163868551289699555
	.quad	-4844109511063071362
	.quad	-4459639909709938816
	.quad	-5031277399245173694
	.quad	-401712416703808276
	.quad	-7025697728438408490
	.quad	-5848062656902811378
	.quad	-5392016487677410219
	.quad	-6523255799319574901
	.quad	-6624834027075458040
	.quad	6041468747854753858
	.quad	1951020658298748587
	.quad	2221674541666146011
	.quad	8600294172583887475
	.quad	-5018115376774647924
	.quad	-493480253845633643
	.quad	-6827636739336576520
	.quad	-1528417979659863212
	.quad	8124683094254895938
	.quad	-4508613140651596720
	.quad	-3397159510805842710
	.quad	-1058846044063928161
	.quad	4604343216349480828
	.quad	-7013973680993103260
	.quad	-1639479970066889916
	.quad	-6971427643986467420
	.quad	1055771128971263943
	.quad	6160824414210333465
	.quad	2743778428160761341
	.quad	8823998319000938836
	.quad	2372043952567781371
	.quad	7260396421561165162
	.quad	-1698811239113499297
	.quad	1552874968917830177
	.quad	178454393953348337
	.quad	2305330822987721637
	.quad	-2928950698982609595
	.quad	-2190077349268822356
	.quad	6849065891973470492
	.quad	7230654518337299078
	.quad	-6108205873137531437
	.quad	-7400384024372250984
	.quad	502310443601178688
	.quad	8275887834755680194
	.quad	8935579192905984640
	.quad	-423176528331348829
	.quad	-3546335514090971999
	.quad	6661791151961656416
	.quad	-73895372156820065
	.quad	-1343196613762767187
	.quad	-8682014278852509093
	.quad	1418954515121410904
	.quad	9117653791909512897
	.quad	-4275223764514470391
	.quad	4067150611495555592
	.quad	855489975777668641
	.quad	7752844226171455819
	.quad	-6293211183734873794
	.quad	2348356463571786577
	.quad	6319421678195011372
	.quad	8481101459309084778
	.quad	-8610853897489910620
	.quad	-2214208489213901029
	.quad	6296281894815013552
	.quad	8690270464077639846
	.quad	8374880983678761422
	.quad	1608629076143162975
	.quad	-364235397322294702
	.quad	-6891504563143987193
	.quad	102493428844323960
	.quad	-7181303598204481554
	.quad	6954957201906837447
	.quad	-6867915803672701370
	.quad	5363571767815413948
	.quad	-7759055454771480311
	.quad	-886174210292107448
	.quad	1763490681657096693
	.quad	-8161595820009048838
	.quad	228169834671249043
	.quad	3817223026964299801
	.quad	-5505605408903186607
	.quad	78537568941164918
	.quad	4499564597238696841
	.quad	-9186926884348861317
	.quad	3875404300171494106
	.quad	-415350099703842226
	.quad	-4216523438626479533
	.quad	8633088687256087821
	.quad	-9007068202170066680
	.quad	-7854669388713248170
	.quad	5207584782270069594
	.quad	-1867563870576053057
	.quad	-765934387484663450
	.quad	2880007448785334434
	.quad	-775038962049650335
	.quad	5357941687184787676
	.quad	6416428659886206805
	.quad	2539295694241036705
	.quad	-2953187167362434553
	.quad	-3262384452559106690
	.quad	-2823221984412333403
	.quad	-7024631250594317173
	.quad	-7685112047108847243
	.quad	-7787365633181620121
	.quad	-6168653996508226726
	.quad	-1582682900715853833
	.quad	5587071207462858732
	.quad	-3910621652998808948
	.quad	-4587685553983129437
	.quad	-7801076880777338773
	.quad	-2776638810991482913
	.quad	-3016609845160764650
	.quad	1251089591865195285
	.quad	2149683357007094264
	.quad	1836398382617121265
	.quad	-2384453924624062855
	.quad	6054271246698272853
	.quad	-3902683244142920909
	.quad	8136820029398201235
	.quad	953136503654279040
	.quad	84568208454785546
	.quad	-4140782194163151045
	.quad	1732011551860061479
	.quad	-7047118243580781290
	.quad	-8046230315471553774
	.quad	3165162339732221581
	.quad	-9030076074571913645
	.quad	-1354399043775246998
	.quad	-9073261020449944348
	.quad	3543313042332813439
	.quad	-1372038830472839823
	.quad	7450654168557338084
	.quad	-1613693166231564509
	.quad	-2375960311290341231
	.quad	540551482092433485
	.quad	896422619371514104
	.quad	138542949191418634
	.quad	-181441669290176245
	.quad	-1654498672014303341
	.quad	-6093353186364025051
	.quad	-7781746529753102445
	.quad	454517167775805631
	.quad	-2590482391049813816
	.quad	4154393874169146738
	.quad	-6177871763005463381
	.quad	-7183976818605470649
	.quad	1686376439172079011
	.quad	-6434374132853927374
	.quad	6114883187951156869
	.quad	778196593644747678
	.quad	2384399524034132671
	.quad	-3387228442999364602
	.quad	962670163839534853
	.quad	8108389445709454545
	.quad	-7561399063777806888
	.quad	1709075883125195127
	.quad	-5806851477195872247
	.quad	7994345234505196064
	.quad	3957358292438775986
	.quad	-3269242620074091163
	.quad	5749874344089288877
	.quad	-4466114193117595931
	.quad	-7156536378452984945
	.quad	6266738518930986595
	.quad	-650166378231363103
	.quad	-6667766141318191021
	.quad	-7531270774902702728
	.quad	-681547678893906928
	.quad	120195666511692825
	.quad	-4266923707620657586
	.quad	8179189007592324708
	.quad	-427964717869712656
	.quad	8772515042421239578
	.quad	-9002403518204600207
	.quad	8529698258797051877
	.quad	8041684097592304570
	.quad	-3249107419840671233
	.quad	5615229443115607978
	.quad	4273941738342635845
	.quad	6173436759657382199
	.quad	-1586815804482750672
	.quad	3177031363886784886
	.quad	-6547819826907732867
	.quad	-7660242366559741261
	.quad	-6135481582811966358
	.quad	7100820865323796875
	.quad	1040127182688850636
	.quad	-7386905505032844579
	.quad	-8679617282621669178
	.quad	-6297513746420221384
	.quad	-5710009642549238145
	.quad	-8731569705686073596
	.quad	-5742006944773588414
	.quad	2407508564596915848
	.quad	1293039785275804948
	.quad	6467344963489047166
	.quad	-7663809577436505393
	.quad	1388836618021309354
	.quad	-5721310944524277840
	.quad	-3504999087005877014
	.quad	4986216769056390750
	.quad	1314022559148801943
	.quad	-8353792643068402399
	.quad	7940756615982828440
	.quad	-7075047374758615242
	.quad	-4131072742589648810
	.quad	-1013522244926658709
	.quad	-5920346427692965601
	.quad	8912636260454424624
	.quad	2810935458993959085
	.quad	2575055472647901753
	.quad	-8622108419450910060
	.quad	-4818189243695303041
	.quad	9006519842522713783
	.quad	-658063784024462962
	.quad	-5616032071862700687
	.quad	272251690697321558
	.quad	-1280084325036537036
	.quad	-7022142717501620086
	.quad	-1430459468711793697
	.quad	-4229948784601336093
	.quad	-7791067671516373548
	.quad	7410621738329698004
	.quad	-3271241962727950738
	.quad	9158403009835254703
	.quad	7244064461773561776
	.quad	7396138095488897574
	.quad	-7904329428093543821
	.quad	-8406745272110441098
	.quad	5460250863313483041
	.quad	-4599945506009937194
	.quad	7659962283233636057
	.quad	4242301514480820979
	.quad	-9098204205636323237
	.quad	3323215618059952339
	.quad	5940436752546780207
	.quad	-8730951445546667784
	.quad	2092985885729879632
	.quad	1886409941134152867
	.quad	-7733818889974501011
	.quad	-639095650916558609
	.quad	5953919367524829887
	.quad	-1379616442688395133
	.quad	9119935526371553716
	.quad	-3166162571296225700
	.quad	-8287549057948394954
	.quad	4449207665404741954
	.quad	511808265581546141
	.quad	8340918294419260915
	.quad	-1748986090783932767
	.quad	7173290064233923480
	.quad	-9054244598830311963
	.quad	3881490353507825172
	.quad	-464479263496520711
	.quad	4200733140595887492
	.quad	-1039510326858644487
	.quad	4334372906480311593
	.quad	6386066144616961953
	.quad	8996008227896480639
	.quad	2181967043849276412
	.quad	3096485884016777148
	.quad	-6069760071570406564
	.quad	5480443619638874966
	.quad	-8351535587258116924
	.quad	3492940022953765146
	.quad	-3146908821140925714
	.quad	6007593829256808804
	.quad	-8754122206425294742
	.quad	-5192105880650614184
	.quad	-6739466543344010982
	.quad	-1523401402074971491
	.quad	-7714079209757798569
	.quad	4029925504600209836
	.quad	-9216257149058972477
	.quad	-5737113638192533760
	.quad	-1693887159962036568
	.quad	-2355567561457495809
	.quad	5654615991864890349
	.quad	-2232831555606456001
	.quad	-1048050010020603008
	.quad	6470301373189861265
	.quad	-6397185640830603213
	.quad	-2715641789716240396
	.quad	1974808235304593120
	.quad	2100911419510810891
	.quad	-6737013105897759290
	.quad	-7375775221243810536
	.quad	-3279076603918046274
	.quad	6990446430502772064
	.quad	2979739266982579384
	.quad	-8716819542053066094
	.quad	-3908284892345841846
	.quad	8953107760739874488
	.quad	-3047478790107160319
	.quad	2640851218253403446
	.quad	397493120169971392
	.quad	7442054194398722761
	.quad	5899037616301380264
	.quad	3602141627092495462
	.quad	-5991656859551114211
	.quad	3316146807961356474
	.quad	1301937084617765443
	.quad	-8357670181173931472
	.quad	-4256679045525221895
	.quad	1808236899842351791
	.quad	4533062878686621914
	.quad	-8452881942582913788
	.quad	2297009856133766352
	.quad	5850038450443732235
	.quad	6375066279442420119
	.quad	-2628060200828979877
	.quad	723472722199022174
	.quad	-9113729021029756079
	.quad	-1727250234307520057
	.quad	-8422496806459686479
	.quad	5868800923297915890
	.quad	8041157937570474814
	.quad	7928686841256858707
	.quad	3370105934450681139
	.quad	-563621268424652799
	.quad	-5944194521542317426
	.quad	8232125533311903390
	.quad	839854118279680892
	.quad	-8960968340886717632
	.quad	-783353338886598867
	.quad	-9051979415826842786
	.quad	9000572432647298775
	.quad	6908017511163909222
	.quad	6513180860770299323
	.quad	1139498172110369417
	.quad	-3878269919451192875
	.quad	5050171222169492187
	.quad	-7772517399486838235
	.quad	6640126227278302401
	.quad	5685415511245921812
	.quad	-335436750992525856
	.quad	-1360708260077638042
	.quad	-2599387324764223940
	.quad	-3272267096587644537
	.quad	-589756104084724506
	.quad	-2279127904296401314
	.quad	1944283930257068430
	.quad	2453038170129818707
	.quad	1469204933482392249
	.quad	8940662681574827513
	.quad	-281784965782083493
	.quad	-400191435177441732
	.quad	-4291291025117547049
	.quad	5584625548584318353
	.quad	4723581324777545689
	.quad	-7262021396401333533
	.quad	3999406699031629777
	.quad	4988145712425592916
	.quad	-6242830144192256879
	.quad	-8662455600608154390
	.quad	128198380995960707
	.quad	-2684650648730387710
	.quad	5696813624482806110
	.quad	3537484846895050053
	.quad	5428420335182798347
	.quad	-175923540137306299
	.quad	578149908680414850
	.quad	-4542480231859458052
	.quad	5454223220005320354
	.quad	-6001826688759227118
	.quad	5092098178128877102
	.quad	332230495802900662
	.quad	-4959096410126171216
	.quad	-6645788222552830830
	.quad	8954274879718207258
	.quad	4142261588714653560
	.quad	5247109969167401265
	.quad	-3724133418499650135
	.quad	3203930012105947849
	.quad	5581312124990569339
	.quad	-8985853612190874950
	.quad	5107804488861946020
	.quad	-3179958420933329133
	.quad	2878513948957620947
	.quad	-8812288690042507125
	.quad	-6116811779206351565
	.quad	2826929296763940954
	.quad	1382718078185917110
	.quad	-4370446680681562175
	.quad	-1573594200840650032
	.quad	-659559005123681088
	.quad	713925259776267656
	.quad	7794517494894841335
	.quad	-3285638305378992113
	.quad	560090874355426070
	.quad	-3814118175296330307
	.quad	6319065877895413486
	.quad	3898016247083133590
	.quad	7117007395984804759
	.quad	-2425886287268848274
	.quad	2857555122505592484
	.quad	-2270677589021222752
	.quad	778017205821701420
	.quad	-8482250300658470788
	.quad	8190282576943767770
	.quad	7304323366315857735
	.quad	4656695998601162183
	.quad	-4203562399769827889
	.quad	-3683659153424585671
	.quad	29092699485058636
	.quad	8826798161777617887
	.quad	3885558139883503401
	.quad	-605826164496109972
	.quad	7177511108797743990
	.quad	-2946687798104582887
	.quad	-5132913988766178468
	.quad	929088225293108115
	.quad	5499848049617419029
	.quad	7927498494327976086
	.quad	7082620007344109844
	.quad	9047514735696530729
	.quad	-2800787229146268448
	.quad	-7558407716693042459
	.quad	-4509057633653737868
	.quad	174866938334857165
	.quad	-453951134319375901
	.quad	202760243287073286
	.quad	-4640604886305515968
	.quad	7901460328476919402
	.quad	264110218255643917
	.quad	1533739732316078675
	.quad	4716429338881459802
	.quad	-8818082547637908328
	.quad	-9160875409284434605
	.quad	5353294648680339051
	.quad	3728088191322560319
	.quad	5630494140207775763
	.quad	2055981250251109195
	.quad	288729514764836387
	.quad	-8178532779455214107
	.quad	1851506892942986169
	.quad	5347532706101033654
	.quad	-1319600476955929098
	.quad	-9182013359372281823
	.quad	-6084973124503321135
	.quad	-3318353886538897729
	.quad	7158613491950501743
	.quad	6903553770308898926
	.quad	6838349283079638161
	.quad	-3448473131067525533
	.quad	-2965588800879184408
	.quad	-8748576609340181305
	.quad	7596305707750428741
	.quad	-6103160313582622335
	.quad	3429913681403286587
	.quad	-8455672286158291176
	.quad	7175152304291764205
	.quad	-4914326346418032650
	.quad	-2825256839591273405
	.quad	-7012608583457755174
	.quad	-6272122259127149239
	.quad	-6526434227006668547
	.quad	2376809786088257319
	.quad	-4656525992196921941
	.quad	-6560673345380478478
	.quad	-4420710930158081124
	.quad	1787100914236464953
	.quad	304006454051884466
	.quad	2756779920933373985
	.quad	2791395962931366632
	.quad	1203894038483281930
	.quad	-2868294581481850516
	.quad	2119859552714176601
	.quad	5772832886191005383
	.quad	2752141942254219689
	.quad	-8393096760221027268
	.quad	5086479179724027856
	.quad	-1168753301755408552
	.quad	-2760916180938172350
	.quad	7735502714666745260
	.quad	9034852030753288603
	.quad	5480168288956527943
	.quad	-7404194255261209273
	.quad	5915412500172865058
	.quad	-5447492744692421848
	.quad	5808021534739634680
	.quad	-3341804846901191359
	.quad	-2212109744740507952
	.quad	3758395717098249756
	.quad	1015491288991804400
	.quad	5068251056783778816
	.quad	-2122185413217690316
	.quad	1738698513676655878
	.quad	5104558086478114328
	.quad	8971286270876655577
	.quad	-1975796237424745871
	.quad	9037729831080471007
	.quad	1965555872583588977
	.quad	-3013503791754336912
	.quad	-2671516654611348569
	.quad	-8781485928502822148
	.quad	6253192577851256595
	.quad	-4175803257538108586
	.quad	-1834154970675855908
	.quad	-2808864493701543787
	.quad	8491665721135698298
	.quad	1799890999791860692
	.quad	2389734471340627870
	.quad	6270039658247138318
	.quad	2463312350149470933
	.quad	2217609086834055191
	.quad	2540364179975154870
	.quad	-5161845450444189356
	.quad	-3107370343977290544
	.quad	4514279700129226946
	.quad	9114575154956391114
	.quad	2305724692490304627
	.quad	-7967402305578081112
	.quad	2190791104965238551
	.quad	2211152119507925575
	.quad	2517772887931981229
	.quad	4163883984830586116
	.quad	7101754214377757388
	.quad	1318955625560086134
	.quad	10530268190194110
	.quad	-3198077007772471078
	.quad	7939869955605316809
	.quad	-4133470738701166071
	.quad	-4683975530756007429
	.quad	2301048926250107017
	.quad	-4129377837756065859
	.quad	-6814031950479036335
	.quad	-2850827411320804039
	.quad	-2735314374557643235
	.quad	1305749118231488029
	.quad	-7723074807539876690
	.quad	5797826425608678920
	.quad	-1041525362407569223
	.quad	21871232298874801
	.quad	-3433181519572516579
	.quad	-8745245731074533594
	.quad	-5126870410275555324
	.quad	-5357097644994611301
	.quad	-7890606196826866195
	.quad	-6789793132525921606
	.quad	-6170424403778541625
	.quad	-8983302357185197677
	.quad	3370727689367607500
	.quad	-2428367601638358235
	.quad	3301478033055661161
	.quad	-5256732763018876226
	.quad	3229558123256164376
	.quad	1583255490085522802
	.quad	6756392096723699287
	.quad	-6557814492555802437
	.quad	1955111509981686857
	.quad	-3617376031151067133
	.quad	-1542509627661551828
	.quad	-6433246982347081560
	.quad	5878164236292656935
	.quad	103715144584689343
	.quad	8447043029646989194
	.quad	6745418684639906853
	.quad	-8754518032480004185
	.quad	-7713499546934297031
	.quad	-4908610608202850841
	.quad	4172292375214852459
	.quad	1461190815671750036
	.quad	5022781481865523082
	.quad	4732478340230632067
	.quad	-8975036468350077068
	.quad	2288037095846750790
	.quad	-8218676875251659602
	.quad	-8072967588151201418
	.quad	2570794311985957799
	.quad	-8564597589534466885
	.quad	-6489800881952163439
	.quad	1232563217517483597
	.quad	2100317149804098136
	.quad	4711301181298378454
	.quad	7997590917973019739
	.quad	7150473601766652651
	.quad	-7210832160092195071
	.quad	-5932319280965051960
	.quad	4859102676495985663
	.quad	-5108471750724331436
	.quad	-5806792932522014537
	.quad	4608973442624500697
	.quad	8044100114174596831
	.quad	4406982439668088071
	.quad	366189048450605115
	.quad	-5093124599314089862
	.quad	-6808174754657513828
	.quad	5187634643834062229
	.quad	5795954058673471188
	.quad	-6762864130085824325
	.quad	-3001125985708994004
	.quad	-2661666518120589809
	.quad	-56414595204409712
	.quad	-2358928836786704703
	.quad	-7500978358004253000
	.quad	-9089132494237604391
	.quad	9086976358438403145
	.quad	-6181555848248367091
	.quad	1370898019386903475
	.quad	-1340099934159335324
	.quad	-7117094745986742432
	.quad	6513578733027603260
	.quad	1912704063766868483
	.quad	-1023769415126627295
	.quad	7583704755219828471
	.quad	-340094884839306982
	.quad	-3466015093021751733
	.quad	-9024713904099008248
	.quad	-2079992221381264900
	.quad	4551088820994208270
	.quad	1405038788831222952
	.quad	5555376842136423502
	.quad	-4596976580940642566
	.quad	5752715817197085586
	.quad	7339496145029990325
	.quad	-8720836555563066492
	.quad	9140680452082445180
	.quad	1787075725390140219
	.quad	6814581878162263558
	.quad	2739945671430025355
	.quad	-1863969358794027443
	.quad	-5863408472379493552
	.quad	981619674382919113
	.quad	-3180985300436506344
	.quad	-2902088531173560463
	.quad	8833562004227934968
	.quad	8081171473959308260
	.quad	-6697116933862260623
	.quad	-7445817734556566423
	.quad	-3763253508268347870
	.quad	-7611205494219203685
	.quad	-3081771468285977677
	.quad	2234841949349667024
	.quad	-3561339614708058330
	.quad	2851058802643727760
	.quad	4900435672325479802
	.quad	8274960934802742685
	.quad	4087282869316743817
	.quad	-6971239893634025297
	.quad	-5906593937183368463
	.quad	2192098444646314334
	.quad	3969287051710917615
	.quad	5436397696692467608
	.quad	1272546058761547252
	.quad	-4868168825347168545
	.quad	7500958990496300674
	.quad	3099202960982751824
	.quad	6362531162831059087
	.quad	2019233083206809658
	.quad	2754115770602762476
	.quad	-1181350259736505261
	.quad	1460109499264827148
	.quad	8566701200794847730
	.quad	7001275408840316981
	.quad	8133565635966870191
	.quad	-92596546814946949
	.quad	-4962489019297158763
	.quad	2800700506464137914
	.quad	-7336377493395631514
	.quad	5646064147441879882
	.quad	2795616433118016579
	.quad	2129899893763421818
	.quad	4807666508003926776
	.quad	-1973931583688102335
	.quad	7681490117554722919
	.quad	3438671827454179974
	.quad	-4889459809234343550
	.quad	-5924603822778242388
	.quad	2650365165363684707
	.quad	-1180036955928870615
	.quad	-799889707526419140
	.quad	8242359948852550575
	.quad	4320679156333325465
	.quad	-3217267950384124452
	.quad	422299931396282295
	.quad	-5652879334025098331
	.quad	-4146820428469422675
	.quad	-8468338903644222520
	.quad	832960934203122298
	.quad	4591440636846949512
	.quad	6036488867281859201
	.quad	-1913394858370860060
	.quad	3133742230803728901
	.quad	2571899330106231363
	.quad	1631909183838142939
	.quad	8989734436763331330
	.quad	5978410296483257172
	.quad	2006955146568177692
	.quad	7522769147634649601
	.quad	-8225901141362631809
	.quad	-2848934572689303540
	.quad	-4841122563725862252
	.quad	-7664884955811215737
	.quad	-4907863804003604891
	.quad	8371044748813843478
	.quad	3462400909078782886
	.quad	890871523695605067
	.quad	-1946792166942177628
	.quad	-7785307890506924139
	.quad	-7780345435748820677
	.quad	-5975079606618712809
	.quad	1750972772377056241
	.quad	7518131157858325250
	.quad	66627260421700178
	.quad	981976094061062611
	.quad	-4358114354352950457
	.quad	-358864727473122633
	.quad	2519331146402108878
	.quad	-3757081498316889358
	.quad	-6250757193698660308
	.quad	68431921015150749
	.quad	3127083875017010141
	.quad	3161714979740429833
	.quad	-5607451037303550066
	.quad	7341433216159877049
	.quad	-11218076211763428
	.quad	2784122541135616216
	.quad	-8547125029566364167
	.quad	-8259678890361407328
	.quad	-3787147087825808155
	.quad	-3004373534754158654
	.quad	-551429818586022658
	.quad	5201907198851189607
	.quad	3321003244006213256
	.quad	-6088434503131545038
	.quad	-2097819654179116634
	.quad	-6537844911885775325
	.quad	2023775850404636364
	.quad	-8081945482441754624
	.quad	-1864914969818439739
	.quad	4554451792573593634
	.quad	725404179839321971
	.quad	-6677916803909223336
	.quad	3438461944423664753
	.quad	5207909560991353292
	.quad	4151502141621601136
	.quad	9129240992387993021
	.quad	-8156891690504159126
	.quad	4419823091950629536
	.quad	-3533783505631859117
	.quad	-2095537393074448179
	.quad	5388828643507908062
	.quad	6936251146182508471
	.quad	-5285852581435170937
	.quad	3108946251807369459
	.quad	-4373123250608659820
	.quad	-4085493297122718869
	.quad	-2769642183345025978
	.quad	2884473949199681877
	.quad	1490176440185595893
	.quad	-1103779213021549062
	.quad	-6359703123701042816
	.quad	-3892618470867962577
	.quad	1477059408975426561
	.quad	2192390481553548383
	.quad	-5428159717170056931
	.quad	-3573330067251595134
	.quad	-5055336201809888001
	.quad	-681952222869861635
	.quad	3520026057937905504
	.quad	9161585009817580072
	.quad	1458409730966867904
	.quad	2438573249154198152
	.quad	483010557209682005
	.quad	5784922612348740116
	.quad	-8217208014840183264
	.quad	7862636258861388133
	.quad	5015572522066668530
	.quad	-4451069372111485154
	.quad	-5188952834994315903
	.quad	2990143222324304248
	.quad	-6113568985518972466
	.quad	-4469529323626536626
	.quad	6081363002633014537
	.quad	-8174718262444335015
	.quad	-632186154809939780
	.quad	-3523214022806603651
	.quad	1292277734253039923
	.quad	-7041541752441480539
	.quad	6207366203260337042
	.quad	-7483116723148766791
	.quad	-5245857944867823546
	.quad	-7899105254816294294
	.quad	-3702081423492835469
	.quad	5199404369018883413
	.quad	563845528518577813
	.quad	-5935874615079489737
	.quad	3419842007873442968
	.quad	-460303533833363664
	.quad	8530952546963891678
	.quad	8163840635845263431
	.quad	8140335212258429049
	.quad	-6826188344584477248
	.quad	-7207349418485268312
	.quad	8907134836042446082
	.quad	-804082137362490689
	.quad	-1327533220560082222
	.quad	-6288183240471881294
	.quad	597670501786271752
	.quad	-5495634792746349436
	.quad	6468093325756369917
	.quad	4222123978597416647
	.quad	4683169281027251261
	.quad	1048440168770541160
	.quad	767633909343757921
	.quad	-736999553414305717
	.quad	7138086048778825377
	.quad	482635863174477802
	.quad	-5656016583449674368
	.quad	5044499051802465258
	.quad	-8470774442212747369
	.quad	6076349527991994246
	.quad	3565086214847051338
	.quad	-5717854613460667020
	.quad	-4043217472734987205
	.quad	-6838927661942153965
	.quad	708697430053692877
	.quad	-6137192441750866863
	.quad	8082559394304363717
	.quad	-1653757533137507305
	.quad	4681128183239941572
	.quad	-4572357912967205810
	.quad	9061353482394168257
	.quad	-8023751586419909177
	.quad	4169365336518069806
	.quad	-7474152239305089950
	.quad	-2135208128868447080
	.quad	3450384369424007299
	.quad	7335866379562648338
	.quad	2127898633292658137
	.quad	8283582206893030530
	.quad	-4162315523308162566
	.quad	-8007638823607167433
	.quad	-7563620473691262443
	.quad	-8957898921767501910
	.quad	-419480064629371343
	.quad	2475688335442217172
	.quad	-6951113484140996833
	.quad	2044610447313340819
	.quad	-2235169114877914925
	.quad	-363820813470866587
	.quad	-2740274711428567227
	.quad	-8271701599337593052
	.quad	1978937508224725826
	.quad	8517309419909857419
	.quad	-4329564092402541533
	.quad	-2329722530453605541
	.quad	-8870591397703783431
	.quad	-8439754651177953422
	.quad	-2259616419619885764
	.quad	-7503814874299095276
	.quad	-6040650137734587636
	.quad	-8657097083748653110
	.quad	1787070800558790010
	.quad	-3125348328174808537
	.quad	-7488977914544614744
	.quad	8270293817925324519
	.quad	6611548955360388519
	.quad	811894490473141865
	.quad	9131678980253850574
	.quad	4479975833350928208
	.quad	-8317728944256984910
	.quad	-3850640712250089611
	.quad	6870275426489406730
	.quad	-8706371452275578886
	.quad	-4074366196828130936
	.quad	5948925994235262952
	.quad	-3601913662637921520
	.quad	5061939034624460495
	.quad	-4732892709618593893
	.quad	-3274859851645296662
	.quad	8163932230030769123
	.quad	-8810727874100527857
	.quad	9161423603597683840
	.quad	6654511074475296823
	.quad	-653124528055727077
	.quad	4124609248372213291
	.quad	-7216347159724518317
	.quad	-1841973146547253989
	.quad	-3319592138328944958
	.quad	-622136191089546854
	.quad	-8072878833135836077
	.quad	-1791889582462337324
	.quad	590558285614616488
	.quad	-8062172951605244704
	.quad	5382287961959199743
	.quad	1207676815187815333
	.quad	-5434970688847326663
	.quad	532436966815548636
	.quad	3019650690602626765
	.quad	7314252074457497416
	.quad	1838949562628498144
	.quad	-7909273030316954136
	.quad	3070353104978729913
	.quad	-2822367428104580539
	.quad	8276623546443212404
	.quad	-8963840758324840856
	.quad	-2907847988455324182
	.quad	-2656600997137603109
	.quad	-5303170541561483869
	.quad	3184541945442546624
	.quad	4972549455963732427
	.quad	-52097278930718105
	.quad	9055568163078599201
	.quad	-7335741144643786178
	.quad	-1083033348700183430
	.quad	-3406846968330237814
	.quad	5989309147210387183
	.quad	-597444527261935016
	.quad	-5149814363987213039
	.quad	-5786970367513301581
	.quad	-8589598197455918905
	.quad	-6610663090744184190
	.quad	-4892249248090182866
	.quad	-1179817777238861330
	.quad	-415330082215502833
	.quad	-2363746973013455918
	.quad	7954101307530025972
	.quad	-641488890255786985
	.quad	3209670898909179942
	.quad	3098303062665745356
	.quad	-3840469587258453726
	.quad	5959844521554290710
	.quad	2464075942028132860
	.quad	4072466165408271129
	.quad	4803469398150112461
	.quad	-4765893909675494108
	.quad	-6590478141730617792
	.quad	-5206072578694538265
	.quad	-3074714587108615068
	.quad	-1744368614879373905
	.quad	1464920677648920471
	.quad	8045245885699706111
	.quad	-4511332289822772648
	.quad	-5129939729257935428
	.quad	4593642979619762560
	.quad	-1431921744623682786
	.quad	7638980104245900281
	.quad	-3321853526243871634
	.quad	-3801669857510494471
	.quad	3301628446061564096
	.quad	1114874638049469496
	.quad	-4452981115659219339
	.quad	2490237644490539283
	.quad	6361716987979783479
	.quad	-7502839297111231644
	.quad	2216820218406590896
	.quad	3927967472509834253
	.quad	-4001652945687843480
	.quad	-192956916053949718
	.quad	7136216109275422503
	.quad	-387478427461198488
	.quad	-2397529706119646893
	.quad	2110043985822345529
	.quad	521271435248075297
	.quad	-9211043279358455226
	.quad	-2303088379885777
	.quad	-1569396278624803601
	.quad	-7035941534390971285
	.quad	1651037079766941333
	.quad	4749170527297302559
	.quad	2699958618838165273
	.quad	4912380964289014105
	.quad	5969598105120002387
	.quad	-30872945697812201
	.quad	123568393331819339
	.quad	-3252866054022779330
	.quad	1955216450220869746
	.quad	4666091770775294843
	.quad	3690124655892889633
	.quad	8592026290323611487
	.quad	2133428601170668013
	.quad	5929281449023897807
	.quad	-8920285207393785589
	.quad	8591391815956259910
	.quad	6785719063805366971
	.quad	-199341467812399955
	.quad	8191646750366946776
	.quad	2226810914140460032
	.quad	3432913531067490926
	.quad	-72332468802487812
	.quad	8571014924760407984
	.quad	-6088887653896960524
	.quad	7249959161777484584
	.quad	-6059671820616027858
	.quad	-949974632593940824
	.quad	5045823089851173819
	.quad	-5723919264074196737
	.quad	5630661652820636042
	.quad	7726659487737852578
	.quad	5772545463499699373
	.quad	6957790289857745540
	.quad	6008292860718010078
	.quad	4197466301470899959
	.quad	274492078640609954
	.quad	6330758574482089689
	.quad	3016329124069298738
	.quad	-4779686045507226367
	.quad	6424656952035413047
	.quad	-7761768868768561558
	.quad	7956556721578125221
	.quad	-1691993059466909583
	.quad	1209359201641015377
	.quad	3841662242435267237
	.quad	-1744551843138738309
	.quad	-9141296713834246633
	.quad	-7572512452578233927
	.quad	5008658832434702879
	.quad	-72224576848366391
	.quad	-8686613025897114488
	.quad	3325712717697135708
	.quad	8970016091468348278
	.quad	2836625318111851422
	.quad	-8957361876956824337
	.quad	4672473293231378819
	.quad	3556942114566747163
	.quad	-8019758883887519966
	.quad	-8885696566947191840
	.quad	-1066291154919171615
	.quad	-2784232975114734544
	.quad	588953048985178218
	.quad	-6070405424700661383
	.quad	-2281201340239883622
	.quad	1195859658137669757
	.quad	-239282493144924285
	.quad	858903143650067419
	.quad	2033859486490525236
	.quad	6560439988460907757
	.quad	5477297489685795935
	.quad	8263272205317190744
	.quad	2155221279069076320
	.quad	-6578818949249284087
	.quad	8571196738200600952
	.quad	6380793266523402469
	.quad	-3301713256232302296
	.quad	-799416159050150512
	.quad	-5127170251646253108
	.quad	5205094261198279328
	.quad	9191043393335719432
	.quad	-3795988881868076762
	.quad	-2146577277950580805
	.quad	-7797706800121257562
	.quad	7104270209860104788
	.quad	7967261075606297822
	.quad	7279561497784730946
	.quad	-6749127785238019504
	.quad	1052366164901768766
	.quad	2912238129374155198
	.quad	-8744909302377099199
	.quad	5442175782826775844
	.quad	2299045115469613839
	.quad	-795333643817210028
	.quad	2994246517539724152
	.quad	-718350054462230225
	.quad	-3060157908244091968
	.quad	3241419904742758835
	.quad	8030267348237056794
	.quad	8435074151094093690
	.quad	524712275897055450
	.quad	6804195566995782773
	.quad	7679712373149113143
	.quad	7995287808064276131
	.quad	8927279975652841496
	.quad	-492246462116091950
	.quad	3664315036641118415
	.quad	-1937719997455866973
	.quad	-1163493503967692254
	.quad	-3464368687624045947
	.quad	7689080851173975344
	.quad	6539602342283003922
	.quad	-3823421454453541149
	.quad	2886392582253254823
	.quad	-7128390671077521993
	.quad	1048960849463114154
	.quad	6823726223520193527
	.quad	3746596285568179795
	.quad	4244746780559722754
	.quad	-4254610442104634098
	.quad	7971972442736154200
	.quad	-5596312984866581433
	.quad	-5521895179927273656
	.quad	6210043026683817121
	.quad	-2352807726949473962
	.quad	-5549981593405459829
	.quad	37796835925086671
	.quad	3297320202618582783
	.quad	-1453008381119940643
	.quad	-3254260079642782191
	.quad	4516676767104334066
	.quad	3298548929696008355
	.quad	-4296901255330046469
	.quad	7754159985358226567
	.quad	-371845524786621103
	.quad	6787600702315314002
	.quad	-1019235073027782891
	.quad	454039934719798915
	.quad	6687725764533626315
	.quad	650049015881932447
	.quad	8174481017589685550
	.quad	2550442130803597746
	.quad	4388182498378820973
	.quad	-6568827914131437376
	.quad	2491232568553766269
	.quad	3061633366263606868
	.quad	8930196601588700949
	.quad	8351158090909235917
	.quad	-803547208444747619
	.quad	-3310685061609497947
	.quad	-8011580636286936576
	.quad	-3777081245561594349
	.quad	1927075496220718405
	.quad	7869220388851879053
	.quad	-9203149742523850312
	.quad	4578820859414588545
	.quad	6726500389404417900
	.quad	-618683807484376431
	.quad	2805995484906762914
	.quad	8127865232957840490
	.quad	1119209698667346666
	.quad	1543121112626802223
	.quad	-6811078926011947388
	.quad	8700384215304758069
	.quad	-3335788041378844607
	.quad	2211066121662655761
	.quad	7752024149835360185
	.quad	2122834149710384155
	.quad	-7993264704892940756
	.quad	807493311802658635
	.quad	3143955624925683354
	.quad	-3945163237912402753
	.quad	-521642744620074376
	.quad	-9204804130825127604
	.quad	3832845258090256478
	.quad	-4083302463326105981
	.quad	4056455901220535935
	.quad	-1183657969508238057
	.quad	-6879476735630993828
	.quad	1407758508627588979
	.quad	-5161359781784770457
	.quad	2965311024583394702
	.quad	-1926153442229462587
	.quad	8348481090025592905
	.quad	-7633174798607139194
	.quad	-4297645635452844270
	.quad	4007368965731178915
	.quad	6599971320887245468
	.quad	1100742208346324197
	.quad	7860013936761041805
	.quad	383212378837137543
	.quad	2945348335828790056
	.quad	940798303692299469
	.quad	8433713051052293183
	.quad	-8349933671967762535
	.quad	-1980958934347413563
	.quad	-7746583195988975957
	.quad	4163953985710317358
	.quad	-723186670326428710
	.quad	-5701360053338273942
	.quad	8149682937505827084
	.quad	3937575018349455385
	.quad	-716671350552109781
	.quad	515644483159854644
	.quad	4836078226809287750
	.quad	-4389221397041998292
	.quad	-5199081543418289477
	.quad	2408236265768981328
	.quad	-6236136178128594923
	.quad	3593648397807726454
	.quad	4230707459931996948
	.quad	8838685769945267922
	.quad	3571279453420490132
	.quad	-5945038043768552956
	.quad	302552361799956471
	.quad	8458787239962768384
	.quad	-2843006716832590593
	.quad	1630752889677292515
	.quad	-3517421264527486981
	.quad	6172932360146560543
	.quad	-8305812227532469581
	.quad	261484448553449050
	.quad	5095017360127703315
	.quad	-178073429858530371
	.quad	-6589114052405972127
	.quad	6760239086233828747
	.quad	-433530587954520328
	.quad	153201992725032472
	.quad	-8281072337504201192
	.quad	1024951196978726300
	.quad	-5061746034849290277
	.quad	-6855547005338234781
	.quad	3438373830202430562
	.quad	-4347689172598406443
	.quad	-7753394867393822108
	.quad	5191855159313541778
	.quad	2553689179424125549
	.quad	1837209968091832046
	.quad	-246833365560138243
	.quad	-7196545137521217954
	.quad	-5521939447177784390
	.quad	-1875013915767502450
	.quad	5777400340088329487
	.quad	7499288922706119729
	.quad	2267549153952084155
	.quad	1788254728070307480
	.quad	9210881211798492878
	.quad	-320706574608836906
	.quad	5476647647516701076
	.quad	6668420348849562050
	.quad	8199914187139895603
	.quad	6250700025655104774
	.quad	-5784270036051804702
	.quad	4603251464979950640
	.quad	-4815242919053449832
	.quad	5964433121942098032
	.quad	752703566323004267
	.quad	8166896315554687814
	.quad	-7280415582204305063
	.quad	-7099247964027082323
	.quad	-1894386909365871497
	.quad	4552857008992046677
	.quad	7742982176237677764
	.quad	-5831966310948529907
	.quad	-823673238865640439
	.quad	7352134649339042116
	.quad	6424241685372912961
	.quad	-162193401202141014
	.quad	4854060557681920993
	.quad	-8188346524063473932
	.quad	3584018295573283683
	.quad	-778266521668606717
	.quad	-5254739857346219387
	.quad	-1828006473151756888
	.quad	2033973305346022392
	.quad	-5415407441384483309
	.quad	7832039322814057742
	.quad	-5917281703249177766
	.quad	-2708167073621079678
	.quad	277987228557519899
	.quad	2457326519366423538
	.quad	4962659838606449004
	.quad	6462045821947637749
	.quad	-4168628177412705982
	.quad	5493465508681078002
	.quad	-8496648732801560289
	.quad	-123261036884574260
	.quad	8826742511566055218
	.quad	-1157065954237527395
	.quad	-1913236823747306827
	.quad	-2848112188193170851
	.quad	-7168356469931717842
	.quad	-2910148393452730832
	.quad	-2660838363273165113
	.quad	906326985858832835
	.quad	-1011707934557874426
	.quad	6061369501778984272
	.quad	-7345910622644390392
	.quad	6687431061458662316
	.quad	-4508004361226848388
	.quad	9097524113006971645
	.quad	-7136635284010581135
	.quad	7263803389930912069
	.quad	7579732541402969223
	.quad	4427494314869998923
	.quad	-1002543013465414730
	.quad	-1524378601476951207
	.quad	4405012916660752532
	.quad	-6376057032257470642
	.quad	4641817200788130074
	.quad	-7035161503429573403
	.quad	-4175571246371478309
	.quad	983033021155616654
	.quad	8960364147838313835
	.quad	1083015732588609826
	.quad	1497200903677486726
	.quad	-8093285222727720355
	.quad	2374066392391409216
	.quad	-4026368568710561794
	.quad	2686838733391603031
	.quad	8314093359533890676
	.quad	7012591365105857634
	.quad	2874880375540929348
	.quad	3220174710965004795
	.quad	3059517961108662801
	.quad	782775158531417858
	.quad	5458085543118651718
	.quad	1041626186007335450
	.quad	1540954764582416518
	.quad	9157012689553456216
	.quad	6955405647089997424
	.quad	5200809672173570153
	.quad	-7025509027572005034
	.quad	-1975544790832689861
	.quad	-5236111635419327345
	.quad	7489191141275166803
	.quad	1018062459034819295
	.quad	-8056465399829454422
	.quad	8531679383922148028
	.quad	-8017213197030159594
	.quad	-2183636545845658196
	.quad	-1945580287423412065
	.quad	-5166609338522344743
	.quad	1020285771945898492
	.quad	-8560508807923252736
	.quad	6935262837758552669
	.quad	7238290685472994963
	.quad	-5808213556630067945
	.quad	1598710569731665524
	.quad	980245562699768920
	.quad	877454677177454227
	.quad	-4675108191494484996
	.quad	-2405990099060212790
	.quad	7896323269797579290
	.quad	788789760541962817
	.quad	1510803060770395652
	.quad	1869615403943907757
	.quad	2823608489566335587
	.quad	-1753883021858056315
	.quad	1216413654867857196
	.quad	493290746386632883
	.quad	3008269759289924647
	.quad	4388736775035187117
	.quad	9046204227502842328
	.quad	-3167015731278948571
	.quad	1638866830284861112
	.quad	1498088003397683857
	.quad	-3026676544510411602
	.quad	-3821148669195360896
	.quad	4126157223531668882
	.quad	7843836921310766854
	.quad	-8354140639912423162
	.quad	-7330728305600323792
	.quad	-8271770903253581892
	.quad	-8069425421636367622
	.quad	-7983108886920334931
	.quad	8879585849036041655
	.quad	6390854197586120152
	.quad	-5231137310968538962
	.quad	-4440759987929327801
	.quad	-9060187345180672369
	.quad	-6298774709037120633
	.quad	7895408678520072983
	.quad	4023563797928141058
	.quad	-1495666939414630098
	.quad	6977132011474720930
	.quad	8670766639038828267
	.quad	8311915729498450629
	.quad	-742611750740561662
	.quad	-2672070241034859035
	.quad	-8319613693378954366
	.quad	3353904927723496418
	.quad	5809022491342537054
	.quad	3455219781124867484
	.quad	-5653806539143748167
	.quad	9021798277715618514
	.quad	-7579322564903511035
	.quad	424625166159461353
	.quad	1055222915205650972
	.quad	4457684780386538920
	.quad	-612329477530598709
	.quad	-4625493010577609681
	.quad	-1910982408721924713
	.quad	-4590412770208010983
	.quad	-6143861594858975329
	.quad	8837330220225944026
	.quad	-8939798680833693568
	.quad	6008227075970616960
	.quad	-5774407545539373654
	.quad	-6084067269289090749
	.quad	-8364692851091541424
	.quad	5462019215322164029
	.quad	2143547026676818181
	.quad	3660970235846673114
	.quad	6641732502600166967
	.quad	2220970743740532903
	.quad	5290410062291207948
	.quad	-6941997447557797435
	.quad	-2123781538799318036
	.quad	5592737905605950029
	.quad	-4294347076314057447
	.quad	7016996017070727040
	.quad	2808971610986098311
	.quad	675663173412415165
	.quad	-2500011213516588787
	.quad	6717832506190404370
	.quad	-617603174915055322
	.quad	-7508622039376212826
	.quad	935591009843470203
	.quad	7828993458726730275
	.quad	986063276081651715
	.quad	2292470683601436793
	.quad	-1520080751452973239
	.quad	6162642803811340322
	.quad	-1422615381197177524
	.quad	2298185189270693403
	.quad	-4438549537648517987
	.quad	-2320013823670662855
	.quad	-7026881870865186631
	.quad	4251091287840820418
	.quad	3785485669466282111
	.quad	3727277204000864414
	.quad	-3105223004546984503
	.quad	-8673081336093478017
	.quad	7875680763318707103
	.quad	5237972435393773903
	.quad	-6664567820400613543
	.quad	-4659224844625279752
	.quad	2715664214674407248
	.quad	-9049694468649455172
	.quad	7711325797129840490
	.quad	4969821395171535676
	.quad	-820181447991153881
	.quad	-4592990509538188165
	.quad	-4626365350992129208
	.quad	3590234094500056381
	.quad	6866298275188000567
	.quad	-8550874508303012255
	.quad	-3519533375122332165
	.quad	-210377027587889853
	.quad	4730509858602802480
	.quad	-2109182128683415345
	.quad	-4336944215876263304
	.quad	-6858944649455617800
	.quad	-161442486979652969
	.quad	479206554903518820
	.quad	-3788078382974813622
	.quad	-1293837862919445806
	.quad	5958667172720220276
	.quad	-85018484590665515
	.quad	6185981515380453548
	.quad	3944672359066359091
	.quad	-4714592788053830443
	.quad	-4506917044121761973
	.quad	4302296200033682886
	.quad	-8205941884003713759
	.quad	-581601417781361818
	.quad	-1408845684657343934
	.quad	-585894677577915521
	.quad	4349951673886175152
	.quad	-2352366822745053072
	.quad	8476986837295463150
	.quad	-4765856288708526311
	.quad	-9110236974444484787
	.quad	5947089043768571535
	.quad	-1861141672770984916
	.quad	-5865477056909684357
	.quad	5245484406207830441
	.quad	-3187942914956509982
	.quad	-7673907284437020988
	.quad	-1358052526420452647
	.quad	6718631187086570471
	.quad	420298886229605471
	.quad	-4219954221750579535
	.quad	-1155100328936464519
	.quad	-6090378242038706276
	.quad	-4815921359303643825
	.quad	-2223629701844459950
	.quad	-2511802648294912207
	.quad	-1416149227112912981
	.quad	8894066301960174157
	.quad	3039346662401409366
	.quad	-6871712125856523385
	.quad	-4155256235963393634
	.quad	282111250317099825
	.quad	4887181073166372566
	.quad	-4399291305619527142
	.quad	2283232607704977993
	.quad	4156222868336602759
	.quad	2441521584735661714
	.quad	-4873514720192246090
	.quad	-8762738636724395176
	.quad	-1524258861486967230
	.quad	7161328094115041425
	.quad	-3678025779238809633
	.quad	1078847568267874018
	.quad	6322480815278149199
	.quad	-258199799521220029
	.quad	-1482938837486440717
	.quad	6569325721741554692
	.quad	3602100460502266263
	.quad	6206643867130260259
	.quad	3995469255074245935
	.quad	4504503583988431466
	.quad	-4979415506191176275
	.quad	-3561746640354535675
	.quad	156621939301515107
	.quad	2445891763674288403
	.quad	6687931105529654257
	.quad	8038932454300528136
	.quad	-749230221493396001
	.quad	-7749335770315632604
	.quad	1270195498851099805
	.quad	8775588255042571995
	.quad	1242116603145454630
	.quad	-8541013540469336366
	.quad	-7338029755326182346
	.quad	5701014331899997770
	.quad	4977516111362250117
	.quad	-8060613927129516926
	.quad	5907362069264702911
	.quad	5301877636154186197
	.quad	397392370575027293
	.quad	1263487057932284919
	.quad	-6735264311255693619
	.quad	-2404476982012945574
	.quad	-2793833215660440974
	.quad	-8249217106667594679
	.quad	-8557527752742384994
	.quad	3884647055080231264
	.quad	5773669046496472862
	.quad	2812493862679074918
	.quad	-1468982612473927075
	.quad	-8048651574488079496
	.quad	7904154498268122999
	.quad	-7096499118813809333
	.quad	5626942179061904633
	.quad	3150907291115725454
	.quad	-3745671373940079106
	.quad	-4973446138185758396
	.quad	3555603128299278048
	.quad	-4143155603289470262
	.quad	-2675945840213090218
	.quad	-3228736448625991779
	.quad	-7060446103412654042
	.quad	-5841995347396963504
	.quad	-4149645136946853414
	.quad	5954419577737450646
	.quad	8161287995963180975
	.quad	-4687430775635213144
	.quad	6873154089748208879
	.quad	4291778809819713955
	.quad	-4060283077224499714
	.quad	3945749099789689468
	.quad	-4691650854449048655
	.quad	-7276142550105647799
	.quad	3818818423992946959
	.quad	-8184918792796209200
	.quad	6253232190203117088
	.quad	5237482813604764141
	.quad	-2400533848425120833
	.quad	-8579857598862442769
	.quad	-320465565037794385
	.quad	3614486129478670461
	.quad	8541612601703286732
	.quad	58142292218118163
	.quad	-4125422360272916879
	.quad	-2958549420738185256
	.quad	-1928749529813162545
	.quad	7426831398269252779
	.quad	-8484744810457522009
	.quad	-9085968650413729510
	.quad	6054403112739476797
	.quad	841936894459973538
	.quad	-4448316950058247661
	.quad	-8338924135044558533
	.quad	7791552533130343449
	.quad	-3488178830747873249
	.quad	-2898383884080441489
	.quad	1260835483755988661
	.quad	8261298864194245777
	.quad	-1899768156532834770
	.quad	-8580201865415900654
	.quad	-946952942853572063
	.quad	-2219083334926885113
	.quad	2248093127300779889
	.quad	-7783235331337718139
	.quad	4165530157485886417
	.quad	-7366927499446621264
	.quad	938499244838707663
	.quad	2127465570964303949
	.quad	-8339237675302602189
	.quad	-7618846111860693468
	.quad	8401546400762904934
	.quad	-2061283031260951568
	.quad	8999415256181374205
	.quad	-3141154756032773229
	.quad	9883858298172338
	.quad	-672890432694663284
	.quad	2301892147931255164
	.quad	3507948116322727552
	.quad	6686014092251955385
	.quad	-2674794849321663058
	.quad	-8826050847394171844
	.quad	-3386898102150049986
	.quad	-5849812685009421178
	.quad	9127358999964040439
	.quad	2766462261585021638
	.quad	-1982123547000635311
	.quad	8900197400698842030
	.quad	-1621830272270713075
	.quad	6724517432745998562
	.quad	-8467840981698961353
	.quad	-5744805466665364884
	.quad	6430120239509755486
	.quad	5324699678831479480
	.quad	2648627608398974243
	.quad	8060075663020224633
	.quad	6868584378970194769
	.quad	-336059906547555873
	.quad	-6564263183633348627
	.quad	-5212876674919029336
	.quad	-6652195066890372148
	.quad	-3080903682681539271
	.quad	-8224232368996987968
	.quad	1443983809817335050
	.quad	5159436179287288748
	.quad	8718823893455992642
	.quad	-4587321591949712562
	.quad	-1625373541165729612
	.quad	-7134511110544184749
	.quad	-1646959817022635474
	.quad	-7383657606413111443
	.quad	5409640362054745615
	.quad	1744861157419261406
	.quad	9159074957446964246
	.quad	-3806637565772741416
	.quad	167838721727610261
	.quad	7541800216831159956
	.quad	-335420616350935919
	.quad	1375214001809563574
	.quad	-5653550205318210000
	.quad	-157744932033461416
	.quad	-4705738839260228738
	.quad	-7233121322773901900
	.quad	1522802528596667168
	.quad	-3177725000979526533
	.quad	-7726752660580174479
	.quad	-2925363270104953065
	.quad	4626158970998280523
	.quad	-667377866040372836
	.quad	-4380027106331713780
	.quad	5541345249351270224
	.quad	71760835438433145
	.quad	1781108686838293059
	.quad	-7431482963858093825
	.quad	-2317097895625020128
	.quad	-7777053061069506371
	.quad	-262519614430589392
	.quad	668895765928111620
	.quad	-99206956638199751
	.quad	4284546519240384782
	.quad	-196327745032855752
	.quad	6075393821764526355
	.quad	6803234443690359332
	.quad	2308015705795216965
	.quad	-4163976032307275967
	.quad	-3754509874693605853
	.quad	-7463918741837227925
	.quad	-2188907365036482701
	.quad	-9155806277805568599
	.quad	-5231587403751846618
	.quad	-4865678062427834327
	.quad	-7186601221349649760
	.quad	2910994799586619654
	.quad	8190175402543023708
	.quad	-8163997859317633265
	.quad	6197128196041568622
	.quad	-6342999268276836691
	.quad	2754925794608765953
	.quad	7213719752583096226
	.quad	-6297361250652259035
	.quad	6622803011412572659
	.quad	1043029140538289242
	.quad	2160363121257772533
	.quad	3447922898029507114
	.quad	-2395513919087881427
	.quad	-2373838760858163261
	.quad	-3415180189308002104
	.quad	-3740545685393753220
	.quad	7847298879472932181
	.quad	-4111814448826589134
	.quad	4207755459965567091
	.quad	2727607546440637589
	.quad	-7418475878296277622
	.quad	65681139350480862
	.quad	-8058220248711106207
	.quad	4993001240436128010
	.quad	-3824710250224111573
	.quad	1269131542761241152
	.quad	3340746980531933825
	.quad	7474601841448992000
	.quad	6720228020507007935
	.quad	7637406401737657019
	.quad	7627450969186809480
	.quad	-1932726078844712008
	.quad	4814188734303098279
	.quad	2484761716517021839
	.quad	8799093000399717716
	.quad	4586284023246783172
	.quad	2578135446952921534
	.quad	-1617677552999138750
	.quad	703408518185354273
	.quad	1484970151848468921
	.quad	4187259876483048418
	.quad	-2419825608144158739
	.quad	-5600943602736418734
	.quad	3563015620264375279
	.quad	-2203891355445690945
	.quad	-4735446203084714138
	.quad	-8119484021396082116
	.quad	1629742705583777473
	.quad	6196762249272368289
	.quad	123867284997535069
	.quad	3285396209696017001
	.quad	6037417730862817689
	.quad	-8323258704467778705
	.quad	2971611279055976792
	.quad	2236119451858053936
	.quad	7101044312868724520
	.quad	-8258903451508701521
	.quad	4522138496488077246
	.quad	-8270001961037019152
	.quad	47637071811384255
	.quad	3382407207666416097
	.quad	-9082165118767126055
	.quad	-286902236666190775
	.quad	-8836722633814986313
	.quad	-5626300317539933740
	.quad	-3256399750022311896
	.quad	-4459315449570965433
	.quad	-7001599082506436184
	.quad	-5668063280327019889
	.quad	-4936506395880864092
	.quad	3891156476965809499
	.quad	2355773115852255053
	.quad	3041617825898498091
	.quad	3518324113649998803
	.quad	7892448133380873480
	.quad	-3566159443334162372
	.quad	7287793863508836943
	.quad	3654518281697710722
	.quad	-2940741482614249167
	.quad	-8496367142691317080
	.quad	6145427101153622146
	.quad	-5543407332538820113
	.quad	8592116332537378343
	.quad	6463141779203091259
	.quad	1120518174525029172
	.quad	4605003911120079659
	.quad	-3450946822737750499
	.quad	6192289325300936667
	.quad	-3794822530393263615
	.quad	535572610751240641
	.quad	4170013002477749495
	.quad	-7126868125877706052
	.quad	-8058748698438705242
	.quad	-5972363179717995851
	.quad	8849322113683814088
	.quad	8815381188603321242
	.quad	1879190277904416106
	.quad	-3598211656494760776
	.quad	238286391210862007
	.quad	3096930390994973116
	.quad	6821637165572836610
	.quad	-1267024334537877244
	.quad	-1860568248277608927
	.quad	7824884491953080835
	.quad	-6296807949113108599
	.quad	-3022019680633835901
	.quad	6779791844002112330
	.quad	-8652535021696700613
	.quad	-7398211081784511163
	.quad	-1583521046861964823
	.quad	-8306698165837505701
	.quad	-8561768934762538297
	.quad	-4039981841683955127
	.quad	-3335617447132362269
	.quad	-448090910605585846
	.quad	314163073067480209
	.quad	-6461779540426906499
	.quad	635182432558599948
	.quad	-1730752496859787512
	.quad	-4265846088765187048
	.quad	6214964559762088000
	.quad	-415346182873561596
	.quad	-3995462361444274194
	.quad	1888484194435392707
	.quad	-7337054849240768122
	.quad	-3018289640532568070
	.quad	7666220032138572939
	.quad	1101359233353730155
	.quad	-8894732541384997821
	.quad	3228485343344054004
	.quad	6075537352273919612
	.quad	-3389835820586162154
	.quad	-239361637822325226
	.quad	1691552182196772512
	.quad	-3311138886595170866
	.quad	4379351494777423430
	.quad	2654688811945904263
	.quad	-6987837940647065425
	.quad	6483693687431814954
	.quad	6916622993222058548
	.quad	-8711776047903462010
	.quad	6601314640277659396
	.quad	-2829830172356216105
	.quad	-7018029797308850800
	.quad	-8762380166829831543
	.quad	2326880593732199571
	.quad	8761076367298171397
	.quad	896913682478838017
	.quad	-907998363693777114
	.quad	-2434801065289950238
	.quad	5975733755904344526
	.quad	-431459223805517842
	.quad	-5775230070657311345
	.quad	-706482548476131143
	.quad	8887483872226550753
	.quad	5187662544727433604
	.quad	6610818388649597184
	.quad	-5229529589784088205
	.quad	-7221385730402290575
	.quad	3979262110455362044
	.quad	-1423424591236042840
	.quad	-4906009664337517487
	.quad	-7573377528596330225
	.quad	6574497676007990697
	.quad	-1751654896934199518
	.quad	1800106753424785549
	.quad	-8037378597455827025
	.quad	2193141511878184296
	.quad	8475396127202322472
	.quad	3917381969650598296
	.quad	-2181495685238860807
	.quad	6186852221346093846
	.quad	-6600730334073104639
	.quad	5487357187469375202
	.quad	-4734993545576112953
	.quad	1849109594291933227
	.quad	-2497520048180050520
	.quad	-3225743420762508252
	.quad	2391723465441720967
	.quad	8483145192795413196
	.quad	3847913378476383052
	.quad	4337984637797992463
	.quad	7010629707438332975
	.quad	-6493562898800440577
	.quad	-6432063441544037830
	.quad	-6169874977588800475
	.quad	-5868910327211604427
	.quad	-6723220840253289934
	.quad	-4353092172392539485
	.quad	-6071001852875319857
	.quad	-5538602697857316805
	.quad	326532432663732788
	.quad	4070991663847076038
	.quad	1470607885232799605
	.quad	6211408722804468886
	.quad	-2730388569966523671
	.quad	5590361253785299677
	.quad	7812181315317979243
	.quad	-6618684210241020218
	.quad	-5668734287331495015
	.quad	7800732687373876279
	.quad	4224156601900994011
	.quad	-2389723966318469517
	.quad	1500626805655044948
	.quad	1474262357314620997
	.quad	-6962716436081775029
	.quad	8585564162226987518
	.quad	4361776374583212023
	.quad	-3950275651522301198
	.quad	-705198450254322306
	.quad	-5699653795824214731
	.quad	-122998891633881346
	.quad	2038556268554236114
	.quad	7015814683852162475
	.quad	2248939812176116415
	.quad	-6469721339648601903
	.quad	5628060629783977587
	.quad	103670064741031623
	.quad	8484869049261498542
	.quad	4939759321638626982
	.quad	-2014626182841001653
	.quad	7629267303968775517
	.quad	-1826781483988440194
	.quad	-982979294485449077
	.quad	-7761421775950048716
	.quad	8807902043402042351
	.quad	-984032222907135136
	.quad	-1996736928647087648
	.quad	4085694834533625610
	.quad	-8378633001793545221
	.quad	7262607959861442044
	.quad	-2444289014256757811
	.quad	-4251028659155904371
	.quad	-6750838538184354128
	.quad	-474111799257678670
	.quad	1579756808173779650
	.quad	-8578911783901412887
	.quad	7742524395848721653
	.quad	2581276165337478448
	.quad	-1441646250020999965
	.quad	2483152434836772151
	.quad	-4360968879691028671
	.quad	4930961175783917094
	.quad	-5242702549934019838
	.quad	2275772815584652967
	.quad	-6062688465191328732
	.quad	2022008050451844091
	.quad	-8999564435320898765
	.quad	-2892470381391246542
	.quad	7367078884903261363
	.quad	2005635852213416218
	.quad	4359400832511084690
	.quad	3242479636187765353
	.quad	8522321822588105739
	.quad	5444121869852313840
	.quad	-1302652987973204303
	.quad	1332016752082498987
	.quad	-7973123420737752836
	.quad	-8740891135109205216
	.quad	1012748418121104265
	.quad	8097235691208119990
	.quad	8535753483975829672
	.quad	5508995818084653929
	.quad	5097160903589838196
	.quad	8003954328383845392
	.quad	-7448479355359912737
	.quad	6960873440193054748
	.quad	7392486535294859595
	.quad	7439870108659959211
	.quad	-1956538684806265088
	.quad	-1575393538765379081
	.quad	-437550201409025302
	.quad	-5919821850377233977
	.quad	-5512772702983017147
	.quad	808885942611117086
	.quad	-2877260083170059333
	.quad	1298548647818125582
	.quad	7720191897645641279
	.quad	5580277845849319241
	.quad	-5709811567080568125
	.quad	8210050531829236527
	.quad	7843041369089434245
	.quad	3497253591997910304
	.quad	-5989197178505533190
	.quad	-5478061440595080261
	.quad	-5927397566218554157
	.quad	-4839245697916709222
	.quad	-3829412106202422241
	.quad	4536218381457446242
	.quad	5229741518747159652
	.quad	5978112827844326450
	.quad	-6928638856055188621
	.quad	5163849354362490507
	.quad	6310409183616124150
	.quad	-6031579490914095570
	.quad	7246084446123804093
	.quad	-2286127994975904207
	.quad	-4440786222172688289
	.quad	5125310463645706986
	.quad	5045102455773499264
	.quad	-7288142637614815782
	.quad	-8299236566449036304
	.quad	6402064489493311491
	.quad	1660226594959622763
	.quad	-8829462422207263209
	.quad	123709707827486961
	.quad	-6434280173665763392
	.quad	1103533337405097880
	.quad	5228432942649358014
	.quad	2453136746322947894
	.quad	5137899774605114492
	.quad	-83105105573447479
	.quad	-5295362768796228911
	.quad	2786553237306534028
	.quad	3019926144285303369
	.quad	-1342063089200998687
	.quad	-2869127984467334259
	.quad	-7410162868841809374
	.quad	-4733864763255547213
	.quad	5952489911977288466
	.quad	-5739529252243590962
	.quad	2180471857665190783
	.quad	2598862074267210871
	.quad	-3003260463721645620
	.quad	-8893739611489632787
	.quad	-4243660079781681190
	.quad	-4441864668298056342
	.quad	-2037935303062221843
	.quad	-9133597410589927964
	.quad	6861103883674550980
	.quad	5481535409253209446
	.quad	47198112271995590
	.quad	1926575935820439635
	.quad	-823494299421873340
	.quad	-6336489152749639690
	.quad	-4843476114402953423
	.quad	8693043305222262466
	.quad	8385036129731204785
	.quad	-1144994981608778386
	.quad	-1153624754419139562
	.quad	7997938435970033452
	.quad	-820058850261063260
	.quad	-5921709285394987276
	.quad	-3785075909486965359
	.quad	3322104272345643135
	.quad	1609592810955141849
	.quad	2549513802617457284
	.quad	-2657968399602994423
	.quad	2647031410423879993
	.quad	-6622509877405033595
	.quad	-1938731119078419567
	.quad	2851858215553102032
	.quad	9031676847819265350
	.quad	-1390475007378922083
	.quad	-1867962620567619028
	.quad	-6297416927457824519
	.quad	5603735625820741662
	.quad	6198349307184960758
	.quad	-3129327894295230866
	.quad	2899711161363462805
	.quad	-5145138083263368864
	.quad	-5041568034393521494
	.quad	-5752503167214197980
	.quad	6028874869507943666
	.quad	-1010732851947253170
	.quad	3799912876591532513
	.quad	3287947124836704136
	.quad	5920239729516121972
	.quad	4658851572162401105
	.quad	-2240066527749282889
	.quad	-6691995816721038880
	.quad	8283409025155305021
	.quad	8326153006408425638
	.quad	8192125950875031557
	.quad	-5954818563320784014
	.quad	-3128559601242604471
	.quad	-1271898672670315545
	.quad	4024628118229282985
	.quad	-2904884175007643037
	.quad	-3449592206132118939
	.quad	2742910007129941237
	.quad	-7164807374949773775
	.quad	4053513648766184443
	.quad	5835495230485007597
	.quad	-4095971680330825554
	.quad	8747233229858209651
	.quad	3317935002292804215
	.quad	1073070181947964939
	.quad	7460355407911594663
	.quad	-5051398841392827241
	.quad	-8100665297910427541
	.quad	-4648265638069756056
	.quad	1629058324627559163
	.quad	-3698980973277615936
	.quad	-3147670546807810700
	.quad	-8927094661427971980
	.quad	-2928717507537508300
	.quad	8230071711608174064
	.quad	-2945415844862973220
	.quad	-2908693008752952690
	.quad	8638696845481203911
	.quad	6545591773917305375
	.quad	5939294308617001483
	.quad	5916517198820221821
	.quad	2183353220433638210
	.quad	6608710467805325002
	.quad	6375674496051123629
	.quad	1235012355674231855
	.quad	2090134554838509585
	.quad	-6583328774927478905
	.quad	-423247978648763792
	.quad	8410498900143253177
	.quad	-7852634090471190923
	.quad	-896662870927753703
	.quad	2173651076708559007
	.quad	1186671825722566228
	.quad	-3213713522394773695
	.quad	-8557972870648593257
	.quad	-2977900233406671628
	.quad	3637674483014131572
	.quad	3117885916559390287
	.quad	-5429421209601784131
	.quad	-6879276932270666434
	.quad	4996993546175421383
	.quad	1767669170792783157
	.quad	6426400534208188423
	.quad	-365242303365764284
	.quad	6628088911946069490
	.quad	-2897593155853451664
	.quad	-4240000699090823486
	.quad	-4265395777040400095
	.quad	3902004066505738289
	.quad	-6067224637080221308
	.quad	5286320087209612802
	.quad	5744225285120778127
	.quad	7157543054483070410
	.quad	3219370752852607149
	.quad	1777476347049228724
	.quad	2016400384044604524
	.quad	-7830094981183483452
	.quad	4418359459850017659
	.quad	8107652499200243264
	.quad	3960095407566980493
	.quad	4458220327892585251
	.quad	-7502649176985091091
	.quad	-8710426612862440609
	.quad	-7281596165191725525
	.quad	4689798937777803566
	.quad	-3622223756827715610
	.quad	3425289415169064512
	.quad	7596586233186931173
	.quad	-8475990650662875751
	.quad	-5207207627304174114
	.quad	4210740771632383704
	.quad	7643867797256453007
	.quad	-1424654291284858671
	.quad	-4620554442414216731
	.quad	-5748743377463165909
	.quad	8941051002581546015
	.quad	-2096911100955244994
	.quad	6624531901564187197
	.quad	-395214996583565606
	.quad	-3671406052904273949
	.quad	-3016823835479499730
	.quad	-5191919586976030931
	.quad	4814050290037113076
	.quad	-4958042823873641721
	.quad	2501226621680150389
	.quad	6647137947193501610
	.quad	-2442818789620924193
	.quad	4322043618637914228
	.quad	-4364330627941750678
	.quad	6198686265814893546
	.quad	-8753099366399802460
	.quad	-4342279745916840896
	.quad	1433529794491240133
	.quad	-1665705670633011132
	.quad	1744462771858458626
	.quad	5075953125217560696
	.quad	3859366411624660249
	.quad	-6386869216376184428
	.quad	6359141567991478645
	.quad	-8728931092062552713
	.quad	3292216502790017509
	.quad	6816861054297247112
	.quad	-3573140227328218960
	.quad	-7754336898696070445
	.quad	-5496125242780924673
	.quad	-1789642406035095661
	.quad	-6885444862252086596
	.quad	-280743313788789885
	.quad	5289583529426479477
	.quad	7243547661453684945
	.quad	3632037736249548361
	.quad	6418512691074288925
	.quad	-8891616143748456750
	.quad	1572604960460980019
	.quad	3976841704257855465
	.quad	3637690838201869674
	.quad	2962473723363313107
	.quad	-9038204599333032463
	.quad	-899535329412072951
	.quad	3746914643459508101
	.quad	5929225185380081246
	.quad	1109851693469433555
	.quad	1783657146869494894
	.quad	-2873967714053201480
	.quad	6990473588196310515
	.quad	3103939398864461773
	.quad	-1407947683052489098
	.quad	-8033683614335772521
	.quad	-7854814270610472190
	.quad	-6633158425179633263
	.quad	7666868720737893293
	.quad	3603244263555958103
	.quad	8272405895596049936
	.quad	-4335452755292304673
	.quad	2589756165017263453
	.quad	1455156754294365624
	.quad	9088401318656549383
	.quad	2945539187382661773
	.quad	-3304127007589568658
	.quad	324589131393409899
	.quad	-6863728598305172998
	.quad	2976671160577423487
	.quad	2842536090875131126
	.quad	3787407358903515219
	.quad	-4463145222594697753
	.quad	529849755045537891
	.quad	1350161153312991881
	.quad	5942999622371373086
	.quad	-4859921070411605111
	.quad	-5875887966335795140
	.quad	-7401148201461399739
	.quad	-5037027270149483649
	.quad	7556599145425958335
	.quad	-6204552942702693931
	.quad	-4866811591344301504
	.quad	-65078064350979731
	.quad	8342214479854782437
	.quad	-5693019996715057315
	.quad	-3288628344501206498
	.quad	-7770994100242080408
	.quad	-4666792344311148956
	.quad	9124105394386876597
	.quad	-1745716838687891951
	.quad	-1434724310861282466
	.quad	-9111410473329547396
	.quad	4905542903515934494
	.quad	4679911467761810541
	.quad	-358751384182913737
	.quad	5223854540563296107
	.quad	6918357952454360661
	.quad	9207094772512963084
	.quad	-4019819161856393421
	.quad	5755518699259636294
	.quad	-9059460284248170639
	.quad	3503930759476121643
	.quad	9159964934165741367
	.quad	-3240387631887150117
	.quad	1480953354201474586
	.quad	-2303317038772681136
	.quad	-4079904743079178274
	.quad	1715144640521397840
	.quad	-8733561865718403394
	.quad	9099904704212771890
	.quad	-84661419918277339
	.quad	5942292809119944225
	.quad	-8677157940155266922
	.quad	-6926975783755894856
	.quad	-6702875358922236522
	.quad	6721165095180661980
	.quad	-8167476916463156279
	.quad	-3071185080333060629
	.quad	-3953876541159103486
	.quad	-6675823008550696723
	.quad	107067300718291927
	.quad	6216709271265794600
	.quad	6933524040251286410
	.quad	1452606278006972167
	.quad	6352326468906969436
	.quad	-3775848169014824094
	.quad	3137275022800628766
	.quad	-4165090003292529208
	.quad	-869248469507365305
	.quad	-1604916878269950454
	.quad	422964381244324663
	.quad	-3148476032625217465
	.quad	1531237843026640514
	.quad	-2605731001993229465
	.quad	-9035950196621550979
	.quad	5108136920376770765
	.quad	-4247749400905145383
	.quad	-5579667434077993047
	.quad	-669231103774783039
	.quad	4278122367966949505
	.quad	1107145346780540130
	.quad	-2724474546002324704
	.quad	966176458294482319
	.quad	6840468866856259700
	.quad	7758204996514135607
	.quad	-470486102649108840
	.quad	-4142349419949127120
	.quad	8378305391704268529
	.quad	-2945329267679385947
	.quad	-7073196561532624561
	.quad	7169306605754795400
	.quad	4819206690827867025
	.quad	938930549801608666
	.quad	-2896617444077146639
	.quad	-1448293222847444754
	.quad	-5123342123487482490
	.quad	7143389192525342566
	.quad	2753977793903748710
	.quad	-3693773934581395265
	.quad	-6885838497181952912
	.quad	7772265590772671469
	.quad	-3107466337398773837
	.quad	-6554575619570628812
	.quad	-630761035908680796
	.quad	-3296756326159601758
	.quad	-7297648588871681670
	.quad	3146330589620022603
	.quad	-4918469657832668091
	.quad	-5130784008895381039
	.quad	7301632290881103168
	.quad	-1460107452118797068
	.quad	1738753720170881943
	.quad	-3752485976080415581
	.quad	-7570459443543474701
	.quad	7534835057921318625
	.quad	9072962895614599226
	.quad	4564052066938050487
	.quad	6623018010872073486
	.quad	7101049536564297263
	.quad	-7504430622685078093
	.quad	1356374373971555867
	.quad	6810017956886968461
	.quad	-9069322340309808512
	.quad	892399154011433588
	.quad	-2425746813210061421
	.quad	-5507574428056141499
	.quad	-2047311714787825523
	.quad	3327541302934551371
	.quad	7306109008504437009
	.quad	2238554666799496284
	.quad	-5440621102423240410
	.quad	-2065937792975573303
	.quad	-9113479598417489410
	.quad	-3262156762391612861
	.quad	3015980964844699108
	.quad	6842046147395032215
	.quad	-2100139520776378253
	.quad	-1147633601004528484
	.quad	5199568796787595796
	.quad	-8695899966988252087
	.quad	8453566904737684462
	.quad	-1188900349053130145
	.quad	1512274226921838050
	.quad	-3969077650016989396
	.quad	7521140236043533702
	.quad	8802765242520475411
	.quad	6890889629730611227
	.quad	1910988114552502510
	.quad	4706367562436563011
	.quad	-1224665480474674328
	.quad	7433078495345783478
	.quad	-8783278307528546836
	.quad	7098654982438277345
	.quad	2489365152506250851
	.quad	-2303593514833955990
	.quad	-2385508668145571243
	.quad	2367771287748379339
	.quad	-2763215565828876255
	.quad	-3095423474866899822
	.quad	-6886147788109265729
	.quad	-428016424890602954
	.quad	-793306515531064066
	.quad	-2825087573919459720
	.quad	-7720428923391915534
	.quad	705480987702202729
	.quad	1197747153497032432
	.quad	-6988635878778426870
	.quad	4722506954514813927
	.quad	5911165491219555847
	.quad	-1452161690412738566
	.quad	7039615946399362763
	.quad	1021712874973650841
	.quad	-3037282944960450195
	.quad	3497688284803316095
	.quad	8079954595392599445
	.quad	-1077765309797561696
	.quad	8602412864873113947
	.quad	1652802749625243504
	.quad	960905943714224802
	.quad	-7971751069071771526
	.quad	1806314815700469902
	.quad	1802093998074846398
	.quad	-1999781014484891237
	.quad	-4718214586205314763
	.quad	1168815822144752543
	.quad	-8124133203889030869
	.quad	-4448565994989680549
	.quad	7650969953348277009
	.quad	443666212945897902
	.quad	-1611174645857380974
	.quad	-6043565767652677484
	.quad	8686505052412228785
	.quad	-1475866069088666498
	.quad	3592308836784209783
	.quad	4166162503017222335
	.quad	5705824537017536248
	.quad	-7263669089368299283
	.quad	-4959302455622653907
	.quad	-1346590136337615182
	.quad	-7362767539725008584
	.quad	8947894923178467402
	.quad	8694246028022853584
	.quad	9134447112691178546
	.quad	-3299352057447622004
	.quad	2592171191975946442
	.quad	7902428577086443761
	.quad	-352726002737912688
	.quad	-1321612772134408940
	.quad	-8043374455670045629
	.quad	7782580376688466610
	.quad	4703006815182908293
	.quad	5606766158256046999
	.quad	-8671188165953630254
	.quad	-140164727336856148
	.quad	-284566718566328878
	.quad	-1511585401273960766
	.quad	3414074563213825020
	.quad	-3470740612295854347
	.quad	-1850043211299779241
	.quad	1410879114739726020
	.quad	1257343276542464557
	.quad	-5851162445226223370
	.quad	-125263685168812078
	.quad	-2335408523669528150
	.quad	-75043184042731157
	.quad	5114856790954063486
	.quad	-5744411934252580782
	.quad	6682713213932946292
	.quad	7716189363132191471
	.quad	6386782149539319850
	.quad	-8647064226362625418
	.quad	-5677985153891209535
	.quad	-6297331333612204750
	.quad	-2483015070049103868
	.quad	9187947812534491537
	.quad	-3087878509320585297
	.quad	-993451358635862957
	.quad	6185316189136789449
	.quad	-5820843649306322370
	.quad	-4826579119341641088
	.quad	-8479767159056492651
	.quad	4659720763711269903
	.quad	6933780758465588457
	.quad	8151676732205446269
	.quad	8752412244536117943
	.quad	2214917853338768919
	.quad	-5501655702215326556
	.quad	4601901579622551791
	.quad	-2504160183785977145
	.quad	7281044701092345103
	.quad	-1415895337700585044
	.quad	140753466411001702
	.quad	2297914471247852879
	.quad	1028738292103309951
	.quad	-622985307063464598
	.quad	-2677380256523464423
	.quad	4910055743319677712
	.quad	-3026970258454093877
	.quad	-6206061294662074900
	.quad	-164492843053590986
	.quad	-1733199770160297236
	.quad	-5363130402030658910
	.quad	3210908138315425474
	.quad	-8608499474496659146
	.quad	-5937220388055863694
	.quad	-7869143402766019605
	.quad	-3340189887468308917
	.quad	-5815053600196762888
	.quad	9169152683892800174
	.quad	729650498691277361
	.quad	-6287066997742593816
	.quad	1876936289057209821
	.quad	253712351947999722
	.quad	194325639412533985
	.quad	-9202023026213134173
	.quad	1272816448120968979
	.quad	-9087301512611657695
	.quad	3623593162723332560
	.quad	8905232475783332533
	.quad	5169888391258441059
	.quad	8811080810485397684
	.quad	653572848361898632
	.quad	-2336107683371007653
	.quad	-4775622161008138250
	.quad	4560998650645223117
	.quad	-7484726180177914151
	.quad	-5676522008519576551
	.quad	-6838123882656233606
	.quad	3148547465913113704
	.quad	4334059326127053351
	.quad	3242751952971024244
	.quad	-2667124580440336935
	.quad	-2418084516686895091
	.quad	-8187750429559841449
	.quad	6956689905416847195
	.quad	1219361474591302664
	.quad	-3087943646144698540
	.quad	-34221564796419699
	.quad	-7126544295397881275
	.quad	-6598487407691005518
	.quad	-255515436813763547
	.quad	-3663013584249437294
	.quad	4160725772782306691
	.quad	8953543232152555006
	.quad	-490640144314844604
	.quad	-4371482866550976708
	.quad	-4091551583632673835
	.quad	6584504155659874365
	.quad	4807335230183920644
	.quad	6276856089694148323
	.quad	3736970395194372895
	.quad	4591926355227962969
	.quad	-4244538044453925447
	.quad	1957619222127244140
	.quad	1827717424483021739
	.quad	-8292724992901162542
	.quad	9078358340858485994
	.quad	5908619174698542071
	.quad	-1145189160130577597
	.quad	-3000886021214040779
	.quad	-8882018767321389740
	.quad	5409273226303308296
	.quad	-2467082256331877821
	.quad	1875936538071212407
	.quad	3717129232982957110
	.quad	-144554712592625586
	.quad	-5217443100097524258
	.quad	2903250741342627286
	.quad	-2252479552269703323
	.quad	1245972192800700583
	.quad	-1734782243621481236
	.quad	9025379672962152617
	.quad	-4777634646824169502
	.quad	609141368769982357
	.quad	3168689647387957976
	.quad	-6115908249842279081
	.quad	-2356066641869129527
	.quad	3266467700337659790
	.quad	-7193837431523447114
	.quad	-4784966924783849181
	.quad	6349695740304001915
	.quad	-5822137797520887645
	.quad	-477311407850250178
	.quad	-7651524161315652568
	.quad	1532451025020962865
	.quad	3097217776367412003
	.quad	5410280473736263871
	.quad	5024344068956400826
	.quad	8852731815731024501
	.quad	1857779039694830632
	.quad	-7713413691557812259
	.quad	-4341331419497696794
	.quad	8517730406118787921
	.quad	1128361485636644092
	.quad	2897178433269987791
	.quad	-8186835579938773329
	.quad	-2690411154337076693
	.quad	-4435740262293887403
	.quad	-8964645991200705854
	.quad	-6687621851367884763
	.quad	-5901770688364560701
	.quad	-271702470260905726
	.quad	-2917387103794373135
	.quad	-9142035220274459605
	.quad	-6157484633875837749
	.quad	-6279551825271139551
	.quad	-3780693831123061734
	.quad	-962852304487408230
	.quad	-6549957072885020032
	.quad	-7144217965518856372
	.quad	-6578350811006625298
	.quad	-8959914553142476773
	.quad	5724021277205113018
	.quad	9039997976799451431
	.quad	1678734858284584257
	.quad	251883535299730028
	.quad	-3502433566184580010
	.quad	1516370356913355252
	.quad	1378984713542702987
	.quad	2081912162968475769
	.quad	-6760405233626821284
	.quad	7617865307654584212
	.quad	1845387073148514836
	.quad	1588582790281344210
	.quad	8775969613043065204
	.quad	-2115987380742526521
	.quad	-5406925837290567127
	.quad	6327345120863293223
	.quad	9094170998521737172
	.quad	-9039571583784897447
	.quad	-7033748026385544801
	.quad	-802612973168836299
	.quad	7001106450740700981
	.quad	-4952460357017859163
	.quad	1935937340239553451
	.quad	-4384481935522212738
	.quad	-3620334162282537457
	.quad	3147169237468764230
	.quad	5040482455529903325
	.quad	-2485641226377275530
	.quad	-5370395339988042782
	.quad	-2736695248283723735
	.quad	4711284320020833684
	.quad	5495111936001513123
	.quad	3975264090403135121
	.quad	-169191735153730515
	.quad	4982873089438865894
	.quad	7565543376250635378
	.quad	4894026024316289281
	.quad	1064629363627018549
	.quad	2229266393711567405
	.quad	-5014907946153395494
	.quad	-6101577202893076367
	.quad	5683094813130145113
	.quad	-3986175257179882023
	.quad	-2238147927363535833
	.quad	2251060002020925256
	.quad	6312100574995421868
	.quad	-4303880990719002656
	.quad	4448219040529062825
	.quad	-1928635421967870453
	.quad	3867577730929059843
	.quad	-5590799166539575729
	.quad	-2063673430523447632
	.quad	3819970029429236068
	.quad	-6176395480344243263
	.quad	3228624969622433424
	.quad	-700616040520547100
	.quad	-2932277382264713053
	.quad	-1524726214437247526
	.quad	-7572815243155755273
	.quad	-6324960273804402872
	.quad	3210361347813891304
	.quad	-2845626242611150232
	.quad	-7072443126542582586
	.quad	-3951400778852120165
	.quad	-1559694709806897867
	.quad	2806824323484143617
	.quad	5891762208520246921
	.quad	-7926955440987017765
	.quad	-6039862541478086511
	.quad	-5970147728099384841
	.quad	2929326634009750346
	.quad	-7913528683640477455
	.quad	4240175145555423422
	.quad	927926585809726275
	.quad	5478507036975461437
	.quad	7372848586643865635
	.quad	9188187990850719132
	.quad	8456896957742765
	.quad	-4939651366002705883
	.quad	4249106212594536568
	.quad	-8735444723443209396
	.quad	-4815457897586471499
	.quad	4243238077447546989
	.quad	-8947292738919987429
	.quad	-8639018361390085195
	.quad	-1251470103362520125
	.quad	6512007407498606377
	.quad	825966736514514068
	.quad	7114432455006537628
	.quad	-7517132495396158307
	.quad	3516227960140039809
	.quad	-6014866267957596450
	.quad	4016269285378947058
	.quad	8308345904367589503
	.quad	479384259777781962
	.quad	6169315169310965043
	.quad	5050462902740654046
	.quad	4420119860349968507
	.quad	5900509286663583281
	.quad	6291948542666637974
	.quad	3502179279509591327
	.quad	-5032170162644946971
	.quad	8561174987712176835
	.quad	-3299540902229833533
	.quad	8916929729860280634
	.quad	465692852423696059
	.quad	3241796192189938737
	.quad	4780823618183778549
	.quad	-4385275566193725160
	.quad	7924000550603741539
	.quad	-1936307812902159074
	.quad	-1335070920859971355
	.quad	1234594638075874309
	.quad	-2028056139063446384
	.quad	3635175728906499987
	.quad	-582402436249310038
	.quad	49761007765188774
	.quad	5595562975249122128
	.quad	5917189370132161288
	.quad	8891586857791493795
	.quad	3878798492835598928
	.quad	4084572339619299095
	.quad	2898482255321158378
	.quad	-8134199211549856351
	.quad	-3088913893855380398
	.quad	-5821591398558517231
	.quad	-1441753306846462316
	.quad	421262662333995486
	.quad	6513964390207045081
	.quad	4463474609087393768
	.quad	-5463428818116435314
	.quad	-3526061781993272550
	.quad	-4104332056143729211
	.quad	8549294976726486969
	.quad	-8695431123558331174
	.quad	-1585749480410405199
	.quad	-6604731618623028800
	.quad	-4306701370604342937
	.quad	-9091356310261916166
	.quad	7734646388697833380
	.quad	5292098824223132047
	.quad	-5688577485476803915
	.quad	-8988362819756951837
	.quad	-2170681484910300536
	.quad	2988163970316952495
	.quad	-5782578916175454568
	.quad	8384513881373679797
	.quad	-6958381463268248347
	.quad	6400721516141003260
	.quad	2248762913174257956
	.quad	-907848676227537662
	.quad	5497804281682813950
	.quad	-8418222249976083925
	.quad	915716454612930931
	.quad	-7730788573662399695
	.quad	8479998003753038683
	.quad	7889044880216859125
	.quad	7974250169576641398
	.quad	-2889494761721406618
	.quad	-4597174197598704840
	.quad	5468052413791604650
	.quad	-9022110937849554269
	.quad	-4297407616969633046
	.quad	4027875287357709424
	.quad	7171193068369251913
	.quad	610609115685608588
	.quad	8545202916368216848
	.quad	-6892980413149576374
	.quad	-2510016878637165526
	.quad	716285475446758876
	.quad	-9081301817732566797
	.quad	3962387358183290741
	.quad	-9041414418956099748
	.quad	-5154100845607412062
	.quad	-6529053810531468947
	.quad	3006492613776616491
	.quad	-7820698604400263970
	.quad	5730711478370972100
	.quad	8979965702162381194
	.quad	2577656653680659896
	.quad	2200239720353131010
	.quad	-5585379959643150162
	.quad	-2474725551591586699
	.quad	5730977290397477659
	.quad	-7948534349400700935
	.quad	9000853288194144871
	.quad	5947914753205704920
	.quad	3690236673655977833
	.quad	8064768252842320655
	.quad	4147618004459536875
	.quad	1731373179122365244
	.quad	3136288348427266535
	.quad	-7361695735755523602
	.quad	-6935068937340279091
	.quad	3437710543269470080
	.quad	2338563152014679790
	.quad	-1425649020607875938
	.quad	6566309510381070359
	.quad	4679058327944936180
	.quad	-4429137461075024835
	.quad	973431598426505616
	.quad	489779568483576458
	.quad	-5166868013809079959
	.quad	3349200897219632654
	.quad	6654650541781396150
	.quad	-3254567837072800438
	.quad	2873659273158958279
	.quad	2224730291170134001
	.quad	259755726287482109
	.quad	-4636961608093412404
	.quad	1488378306860830367
	.quad	-6150140191655704167
	.quad	4731894779144965934
	.quad	2586832848374605322
	.quad	578198596614902105
	.quad	3349844787980918824
	.quad	5700721700487043153
	.quad	1581288787708942329
	.quad	-1141855532729011753
	.quad	3234495129650039747
	.quad	-6751891097649957094
	.quad	-6992217708235275133
	.quad	-1166688468125903342
	.quad	-6963702303521841564
	.quad	-3381883767534642829
	.quad	-9020803775666160860
	.quad	7831029453110477537
	.quad	6447508696227153408
	.quad	2759028665179735381
	.quad	794515856920409590
	.quad	-3577346405446630170
	.quad	-7858726655078474702
	.quad	-5813648232912384388
	.quad	6607496461698970477
	.quad	6359006165521880122
	.quad	-1783475368661895204
	.quad	-226981357523514663
	.quad	-5131668297820057769
	.quad	6546871415552527515
	.quad	6548020115141006009
	.quad	2051287398488083721
	.quad	-433526217850931402
	.quad	-934635192951469405
	.quad	-8789486266192441495
	.quad	-5097320684485851557
	.quad	-6998365570037681439
	.quad	-1839387365817898840
	.quad	-460604603262719733
	.quad	2256897346286898360
	.quad	7779521166731257394
	.quad	-3712482407445698086
	.quad	5057596744164756370
	.quad	-6338099537446362277
	.quad	-2817960341303801905
	.quad	9182850460131890127
	.quad	7755150145219327164
	.quad	-5934256928607756745
	.quad	-8662978818280914320
	.quad	-1215332161084133479
	.quad	3031503376230558613
	.quad	3001321323125863884
	.quad	3711029936425287900
	.quad	-81844965215919345
	.quad	-430359699861011503
	.quad	7565820187757705205
	.quad	-2261083101453480728
	.quad	2502822820839506307
	.quad	3880408517672548187
	.quad	4194119666426113160
	.quad	-2751851754219740462
	.quad	4832422690840974597
	.quad	900725859486443418
	.quad	-8180830571677688726
	.quad	1864821221915885738
	.quad	3700988259937570428
	.quad	-8417292671839306432
	.quad	-1265468182100106006
	.quad	1563464611048571891
	.quad	-9197687132224289665
	.quad	-2958380210602595025
	.quad	-1020711446780193153
	.quad	3624362630716884995
	.quad	-713716370245202001
	.quad	-5830906843327329451
	.quad	2899993379581625588
	.quad	-7805546401366098150
	.quad	6876651786059986401
	.quad	-2151898579556569111
	.quad	7182435875615992692
	.quad	3318017447157242087
	.quad	6087688366366383495
	.quad	328984259793137604
	.quad	-3542673953421847664
	.quad	565244652741101966
	.quad	4951466181341698004
	.quad	-6580425152130450200
	.quad	6194578547220221350
	.quad	-2815187031057429864
	.quad	-7900845932743731648
	.quad	6627628274763979245
	.quad	6430867977390741183
	.quad	-1805752566117065666
	.quad	-4531582601400958547
	.quad	9005635619537074355
	.quad	-1310556068120770659
	.quad	6349032855227933129
	.quad	-4656158420161916512
	.quad	6107878840283566203
	.quad	-1345065319586042176
	.quad	4589529453987745844
	.quad	8778990861876837520
	.quad	-2080547829456556928
	.quad	4702039290431163938
	.quad	6346085280841047686
	.quad	-3614249340304702363
	.quad	3847198683686499408
	.quad	-7468071795723182948
	.quad	2741257961511128860
	.quad	7322658657410129389
	.quad	3044764739964748422
	.quad	-1700700203440534398
	.quad	-3009184541101922345
	.quad	-7605914121455339366
	.quad	-3919716842284867339
	.quad	-3925438915112517719
	.quad	-7000778625433800768
	.quad	-2023651922424723814
	.quad	-8527473106708671575
	.quad	3231644366407837218
	.quad	8064855062487352349
	.quad	-5668891601985797251
	.quad	5756894561104367195
	.quad	2928261835664421736
	.quad	-2166533985389148287
	.quad	2003179857607865649
	.quad	7193293384777906104
	.quad	-2800900635405362261
	.quad	2698762423098892393
	.quad	8583768391356651142
	.quad	2092944708681269237
	.quad	-9001464422304197952
	.quad	-430310912909288416
	.quad	7689801612882571047
	.quad	-5808852336490694162
	.quad	-632675787487767783
	.quad	4278756320912434589
	.quad	-513409137469867994
	.quad	360833559927390117
	.quad	-4352063883202989734
	.quad	5249164347195596604
	.quad	-5333366506738577702
	.quad	-1721690238946312464
	.quad	960181883532014221
	.quad	5168124743353655707
	.quad	6981321264241173853
	.quad	7968597099993779397
	.quad	-148185436578193409
	.quad	4001411129276759170
	.quad	-3762015012143863023
	.quad	7962068779278943834
	.quad	5424191135470463919
	.quad	4950480525151230271
	.quad	-5741305889173583151
	.quad	2876770245634568925
	.quad	-5855065408052272529
	.quad	-2723794403342408522
	.quad	-5639187700871585107
	.quad	7917018959564486101
	.quad	-4778643391202982246
	.quad	3088979495473151159
	.quad	-3560460307390961088
	.quad	-2459911661558695911
	.quad	5401122859489278314
	.quad	8389191417565111993
	.quad	136111329409826851
	.quad	426913485429748732
	.quad	-7625835399394038284
	.quad	-1498923909273147902
	.quad	-1142032554179862286
	.quad	-6205319548189450325
	.quad	-5938435284296552959
	.quad	-4641021421394436857
	.quad	-2278145454649990189
	.quad	1592586892181617518
	.quad	-5138808366650716345
	.quad	-2003138369934491870
	.quad	-571482186789827058
	.quad	-5630213641358004495
	.quad	-1235095379610600528
	.quad	-3235276305932522575
	.quad	-5525251005290283829
	.quad	8872894582266646642
	.quad	-7360143217772708239
	.quad	5276455755454470334
	.quad	492340324127642412
	.quad	5460984997944096313
	.quad	-5211839200292848080
	.quad	4255695435328641744
	.quad	-3728875440677206806
	.quad	-7211003700202160146
	.quad	-841530945890797886
	.quad	-4472712683227466493
	.quad	-7765594067596003753
	.quad	-7471859979872929787
	.quad	2961934431789456875
	.quad	-83188445610611213
	.quad	-1394047995193263523
	.section	.bss.p384_methods_once,"aw",@nobits
	.align 4
	.type	p384_methods_once, @object
	.size	p384_methods_once, 4
p384_methods_once:
.Lp384_methods_once_local_target:

	.zero	4
	.section	.bss.p384_methods_storage,"aw",@nobits
	.align 32
	.type	p384_methods_storage, @object
	.size	p384_methods_storage, 80
p384_methods_storage:
.Lp384_methods_storage_local_target:

	.zero	80
# WAS .section	.rodata.p384_felem_one,"a"
.text
	.align 32
	.type	p384_felem_one, @object
	.size	p384_felem_one, 48
.Lp384_felem_one_local_target:
p384_felem_one:
	.quad	-4294967295
	.quad	4294967295
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.section	.bss.EC_GFp_nistz256_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_nistz256_method_once, @object
	.size	EC_GFp_nistz256_method_once, 4
EC_GFp_nistz256_method_once:
.LEC_GFp_nistz256_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_nistz256_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_nistz256_method_storage, @object
	.size	EC_GFp_nistz256_method_storage, 160
EC_GFp_nistz256_method_storage:
.LEC_GFp_nistz256_method_storage_local_target:

	.zero	160
# WAS .section	.rodata.ecp_nistz256_precomputed,"a"
.text
	.align 4096
	.type	ecp_nistz256_precomputed, @object
	.size	ecp_nistz256_precomputed, 151552
.Lecp_nistz256_precomputed_local_target:
ecp_nistz256_precomputed:
	.quad	8784043285714375740
	.quad	8483257759279461889
	.quad	8789745728267363600
	.quad	1770019616739251654
	.quad	-2453807210370345462
	.quad	-8409706061646666660
	.quad	-3249199208764148955
	.quad	-8830996915122840187
	.quad	-8863006190035151283
	.quad	-6166866318907440515
	.quad	8296198976379850969
	.quad	-667884163863463365
	.quad	3401986641240187301
	.quad	1525831644595056632
	.quad	1849003687033449918
	.quad	8702493044913179195
	.quad	-23574009011781337
	.quad	-5753357002088807941
	.quad	7398701556189346968
	.quad	2779682216903406718
	.quad	-5743114133209634837
	.quad	6358598532389273114
	.quad	8683512038509439374
	.quad	-3030805821043258361
	.quad	8408419572923862476
	.quad	5066733120953500019
	.quad	926242532005776114
	.quad	6301489109130024811
	.quad	3285079390283344806
	.quad	1685054835664548935
	.quad	7740622190510199342
	.quad	-8885236780847417245
	.quad	-4748048898908724747
	.quad	-8003911822661299331
	.quad	-7774139111501807092
	.quad	-3961032396731243576
	.quad	-1499527929896743152
	.quad	8342189264337602603
	.quad	3837253281927274344
	.quad	8331789856935110934
	.quad	4627808394696681034
	.quad	6174000022702321214
	.quad	-3095496753922202707
	.quad	1371147458593240691
	.quad	-7794778636921871285
	.quad	2998319090323362997
	.quad	-854324602394665199
	.quad	-6572562282591029409
	.quad	524165018444839759
	.quad	3157588572894920951
	.quad	-847051985329603832
	.quad	1421537803477597699
	.quad	2902517390503550285
	.quad	7440776657136679901
	.quad	-1183536458979786347
	.quad	-1518318813288593305
	.quad	2878166099891431311
	.quad	5056053391262430293
	.quad	-8101711662430749589
	.quad	-5232187577139387635
	.quad	-748262015433356937
	.quad	2441850938900527637
	.quad	1314061001345252336
	.quad	6263402014353842038
	.quad	8487436533858443496
	.quad	-6059945222448109503
	.quad	3224748875345095424
	.quad	-2280175455979642517
	.quad	2213369110503306004
	.quad	6246347469485852131
	.quad	3129440554298978074
	.quad	605269941184323483
	.quad	3177531230451277512
	.quad	-7423754583214685895
	.quad	8321856985295555401
	.quad	-3719470509835730289
	.quad	876865438755954294
	.quad	-4306978836819493368
	.quad	6880705719513638354
	.quad	8678887646434118325
	.quad	-1550040870705306620
	.quad	-7069517176679440416
	.quad	2302364246994590389
	.quad	4499255394192625779
	.quad	1906858144627445384
	.quad	2670515414718439880
	.quad	868537809054295101
	.quad	7535366755622172814
	.quad	339769604981749608
	.quad	-6062162901153326541
	.quad	2596838235904096350
	.quad	5684069910326796630
	.quad	913125548148611907
	.quad	1661497269948077623
	.quad	2892028918424825190
	.quad	9220412792897768138
	.quad	-3691784686143613175
	.quad	1023838193204581133
	.quad	-4846765730473011183
	.quad	8323909593307920217
	.quad	3852032956982813055
	.quad	7526785533690696419
	.quad	8993798556223495105
	.quad	-306095886232471657
	.quad	-6754656876898589110
	.quad	1328079167955601379
	.quad	1664008958165329504
	.quad	-383242255448488146
	.quad	2861243404839114859
	.quad	-4744165493653227582
	.quad	-1665178207430252581
	.quad	1524194541633674171
	.quad	8267721299596412251
	.quad	273633183929630283
	.quad	-1282553767069117584
	.quad	-2113861393989772791
	.quad	4663567915067622493
	.quad	-2925592271918982363
	.quad	7273215397645141911
	.quad	2324445691280731636
	.quad	-9184234486474802304
	.quad	6377906816499461739
	.quad	-3031151813827758775
	.quad	6113140067088447267
	.quad	-940940239820406885
	.quad	3922849788840338823
	.quad	6180172597177093790
	.quad	7272741317181956640
	.quad	-7563481337898967907
	.quad	-1047609496328071301
	.quad	-5696708878218154497
	.quad	-4493646803346237618
	.quad	2485196748577282439
	.quad	393430759246706702
	.quad	3408702096065201083
	.quad	-1453235349492546608
	.quad	6863012803048745338
	.quad	5403358912802668606
	.quad	-6416987718191011463
	.quad	7447472859343023066
	.quad	7395681837001497117
	.quad	5416243410959797052
	.quad	2749045697176435642
	.quad	7813683613416962381
	.quad	-96525324163638552
	.quad	7509253999860752750
	.quad	-5150954177342717524
	.quad	-120369962482678788
	.quad	3258048562491844971
	.quad	6342797029666289605
	.quad	-8834269595409512255
	.quad	-639249302575490693
	.quad	-8460133766185911759
	.quad	6419466267862117340
	.quad	324428332031706042
	.quad	-2102637081286411442
	.quad	-9011953261824704419
	.quad	-6713481556679210066
	.quad	-7970872988769100186
	.quad	6836751077061091536
	.quad	6209985515928007176
	.quad	8422208926220809341
	.quad	7866188125456775984
	.quad	-1375047090968239364
	.quad	-964380880417659463
	.quad	1949968206030126177
	.quad	8823961512355572132
	.quad	-4573733137107419229
	.quad	1136614876084383862
	.quad	-3918138118740301158
	.quad	7641208364604111421
	.quad	-160027419519788892
	.quad	-7735064596863426812
	.quad	7209187038097309348
	.quad	-7068091914754837067
	.quad	8736575389915992180
	.quad	-794755234606591896
	.quad	4019365809979531118
	.quad	-3422067614718345111
	.quad	-5824022399411568830
	.quad	243375780477240745
	.quad	-1874160879337365686
	.quad	5189991834753707889
	.quad	-8948537579671165329
	.quad	7870185149723322393
	.quad	7858065912377481781
	.quad	7050328012468471455
	.quad	-469743050571370219
	.quad	-6534204842749211705
	.quad	1290924823368819542
	.quad	8532615064753763585
	.quad	6439520053123840906
	.quad	-6583390000132946017
	.quad	8052916203396229040
	.quad	-2047562010392923217
	.quad	-7609039466635515346
	.quad	5444229620349428264
	.quad	-7580575142670747312
	.quad	1298875461760659950
	.quad	8904898233335519592
	.quad	7053953350607273992
	.quad	-1816878665603910344
	.quad	1929728580699289339
	.quad	-7400633922680063216
	.quad	-8876853383434829800
	.quad	6501378768832742664
	.quad	1512621765961532661
	.quad	-1362479415100024121
	.quad	300662505135603380
	.quad	-3212681890058243309
	.quad	5319536121171934679
	.quad	-6950561332563818646
	.quad	-7926133334520275344
	.quad	4310163027157056344
	.quad	3285324287508696251
	.quad	3261468597637865009
	.quad	5427469457023618335
	.quad	8296698312021944466
	.quad	-7563744168512498709
	.quad	-1621459233748100201
	.quad	2106903142647479713
	.quad	-6437902507056616856
	.quad	5361688498494289694
	.quad	-6218120476018322824
	.quad	6799789383171367218
	.quad	-1027218488913930112
	.quad	-7761267694961706526
	.quad	-2132743211651678904
	.quad	-7432234114391963495
	.quad	-8050425918805829469
	.quad	-8460459154430205537
	.quad	4005974039875805723
	.quad	-5466212500337282237
	.quad	-6655952695812201055
	.quad	-4182481976977556787
	.quad	-3447350804347421636
	.quad	-3040901514420548932
	.quad	-5299240197127431350
	.quad	-2997187094629407679
	.quad	5047767509783027570
	.quad	-2092137078487384183
	.quad	-2504854720020998170
	.quad	-8145489326487674867
	.quad	-7742315611962964044
	.quad	-2744382666581921127
	.quad	3283718562982354984
	.quad	-365655798630054916
	.quad	-897649464939165883
	.quad	-2826575221796658216
	.quad	-4684429380221804609
	.quad	-4869118691655220841
	.quad	4116976667540664996
	.quad	712200332640207605
	.quad	9098568002202933512
	.quad	8905476951567380032
	.quad	7075673514150314660
	.quad	-8713035544220252876
	.quad	-8804908372598394621
	.quad	-6050088371091961159
	.quad	3741480190354960652
	.quad	7693418285144916465
	.quad	6127658739224270319
	.quad	-501763989072571020
	.quad	-5662076948072930364
	.quad	-5284094465426703149
	.quad	-3843921484371098467
	.quad	6559057053198290324
	.quad	-3926332018799919516
	.quad	-181551311161460367
	.quad	-4926151706514329710
	.quad	-4074857561166801882
	.quad	-6820402515489753864
	.quad	-209834647892885771
	.quad	8371879876067489463
	.quad	832674676726740168
	.quad	-3862949909105482463
	.quad	7294144266831096489
	.quad	3547763435976020693
	.quad	2658437775650683639
	.quad	3146047337457285880
	.quad	4422069563091426231
	.quad	-4138297071955950209
	.quad	784975508178163566
	.quad	3848718874674085315
	.quad	-1879216290228494278
	.quad	-7832178858829021677
	.quad	4975000647277584582
	.quad	5191416795041211686
	.quad	19839336770832565
	.quad	-5316985840334303915
	.quad	-4218593368705869818
	.quad	2838291994141496555
	.quad	-6833292648007275594
	.quad	-1752504718290003888
	.quad	-702916799731579348
	.quad	6391559238203771048
	.quad	-8490195923851034386
	.quad	5846570716377991374
	.quad	8386825679339975483
	.quad	-5913006560944046740
	.quad	1063743672685127141
	.quad	-3698946945889860599
	.quad	-4779861997454282340
	.quad	-2763870413661355187
	.quad	-6208048771803528894
	.quad	8023979763478270790
	.quad	472635506060637796
	.quad	6364682229778581164
	.quad	-2100791635217141864
	.quad	3370002479881291894
	.quad	5167991601092262684
	.quad	867999444742251528
	.quad	-1956981036215787714
	.quad	-8998175511823392452
	.quad	-8572152961810926976
	.quad	5056833198516285991
	.quad	-2806972333181036648
	.quad	8414660946117205044
	.quad	-6114359271133723815
	.quad	235988261496582191
	.quad	7083423656358063761
	.quad	8061408927872919586
	.quad	-1240159964525354383
	.quad	-7489474842224139953
	.quad	-5282481970845293937
	.quad	-5262089826278139321
	.quad	-4145789573645477426
	.quad	-645141831972533637
	.quad	6895957502541409537
	.quad	-6821321884267272761
	.quad	-4403859301846143089
	.quad	7249821019559099971
	.quad	-3361824430849317510
	.quad	-7262733820226678610
	.quad	5404515315581195471
	.quad	-889232350230315715
	.quad	5760737229832617222
	.quad	-9167710684353891334
	.quad	-5198933460744119935
	.quad	1701381935918487956
	.quad	-5025541772577171860
	.quad	5585255542439077288
	.quad	-7020604688023772392
	.quad	5150252444293455264
	.quad	-1369802235485451908
	.quad	40977336779215099
	.quad	6849447572113839024
	.quad	6860149873728934545
	.quad	-4638594884254740262
	.quad	298157232242572159
	.quad	4141662930210731031
	.quad	-1485449485307108310
	.quad	2225946777030064575
	.quad	14236526291217944
	.quad	1954151984466984792
	.quad	-1634950475583180168
	.quad	-4087074289693777382
	.quad	-4240908252190395483
	.quad	8588072976140209281
	.quad	-2937811514371217739
	.quad	4644818363756744921
	.quad	8672863721618316986
	.quad	-6844612321294670368
	.quad	-3547001680700034596
	.quad	4804042046192512611
	.quad	4990865137502273323
	.quad	6325502215787610973
	.quad	233522219856689253
	.quad	2899320987984552087
	.quad	748248076284082438
	.quad	7719363191361958599
	.quad	5446709526800075773
	.quad	2452022860431087118
	.quad	-7236072868576048621
	.quad	324713620941149140
	.quad	-7223782124105630425
	.quad	7724870937269356050
	.quad	-6392466966156147808
	.quad	1881284905431205309
	.quad	-4017148185670368339
	.quad	4176419490283315185
	.quad	803567059653412279
	.quad	-6307865436564392477
	.quad	-8795591742596162366
	.quad	2419852753413516499
	.quad	-7031908028618487
	.quad	-50436032206315225
	.quad	-6062999549952664789
	.quad	-8972135655554348568
	.quad	2743955683532888922
	.quad	5582481749692223192
	.quad	-3200925193341502922
	.quad	1133150981086517018
	.quad	-6373724139724189064
	.quad	-1298195127676568982
	.quad	994935819162528679
	.quad	-4639129237647608048
	.quad	-1162356522797982570
	.quad	4879493429078538822
	.quad	-2894898028280116205
	.quad	5804273625770976457
	.quad	-2158419690788036801
	.quad	-2729766841860548396
	.quad	-3310499711479208893
	.quad	3966350377928105635
	.quad	7057511273345998693
	.quad	-7375240060940575646
	.quad	-2940318927182017491
	.quad	2779551576015264004
	.quad	3318805933609843136
	.quad	-8045062801138046793
	.quad	-8577247100484065982
	.quad	-686080784504428420
	.quad	2574139987463189858
	.quad	6640277599828231070
	.quad	9147640040783810445
	.quad	-7550964031538049651
	.quad	6889451643481507449
	.quad	-7985291236426076967
	.quad	-1424771849637186384
	.quad	-9217039666944101788
	.quad	4447356787194139634
	.quad	-5668416942144233065
	.quad	-314730422023597437
	.quad	-6898851010747117741
	.quad	5705587040101694559
	.quad	-4528246309449837204
	.quad	-4933112940138674095
	.quad	-4427195857546899330
	.quad	9142523043780912554
	.quad	4463761727424116401
	.quad	1897544038804198891
	.quad	2705462683166070403
	.quad	3597995392206068710
	.quad	1002911054197953729
	.quad	6696435147827785949
	.quad	-1534436896999461922
	.quad	-1263928715584756044
	.quad	-4409188513100785462
	.quad	2731434548143125492
	.quad	-8087267285593654764
	.quad	-4962980212924550294
	.quad	7675333903797715012
	.quad	-5026285145203560861
	.quad	-2320828961328008406
	.quad	135349360378650955
	.quad	5663940372916967084
	.quad	-8965973611677733880
	.quad	4523921795472607784
	.quad	2017307345833974569
	.quad	468958081613475640
	.quad	-4525387341836088116
	.quad	-5113288878774772135
	.quad	6289283535587080234
	.quad	-4203223827681150463
	.quad	-2718829721319016922
	.quad	-978406019796663568
	.quad	-7364854278622963025
	.quad	-2994924854226482207
	.quad	3485630390642475725
	.quad	3741677395690631707
	.quad	-400728839029581395
	.quad	1705551638357343038
	.quad	447907589400250177
	.quad	7625806751623195278
	.quad	2378135708298666961
	.quad	-3776505873819403210
	.quad	5488668705663308727
	.quad	-6880118092609722620
	.quad	8613975223290031082
	.quad	7372945650744588280
	.quad	-6889863561548694901
	.quad	-2585514611070833127
	.quad	3745907706000169415
	.quad	175517113046022588
	.quad	-3167071991434864363
	.quad	-5791288564384893494
	.quad	1352858486289858348
	.quad	-4320635681382486634
	.quad	324823264442771506
	.quad	3920360499686671564
	.quad	6437163537155510148
	.quad	8200481334981735690
	.quad	-7401027555265661446
	.quad	-2883719821429859479
	.quad	5133072787058210061
	.quad	-5303687408875422814
	.quad	944567901701790707
	.quad	-1930371377733947503
	.quad	7987099175363343783
	.quad	1691845755117609523
	.quad	989859785115022355
	.quad	-2027672826308009074
	.quad	7238100367543005214
	.quad	-2501750037511673362
	.quad	7737412854846644233
	.quad	-5128516743484334107
	.quad	260162047349722861
	.quad	-7655144982038000858
	.quad	532449726402680461
	.quad	8105358743178213050
	.quad	-6009850084730175081
	.quad	-7872436667563176480
	.quad	-8032334856780932240
	.quad	-2635284236426900608
	.quad	4038049993244767161
	.quad	9054218236388056577
	.quad	-7639367669772502841
	.quad	-7332874963119112657
	.quad	-8110301534217130110
	.quad	-9218687428108071944
	.quad	2983388754829658480
	.quad	7189376137127712298
	.quad	9147574701720272724
	.quad	3983921661449444789
	.quad	-5966953756261767657
	.quad	-5225723097029592211
	.quad	-5444875094155840257
	.quad	-528567754692316872
	.quad	-416350827179900536
	.quad	5218985848865375996
	.quad	5835476376320976237
	.quad	9096499658845542933
	.quad	8952489298840360492
	.quad	-1840848889285091957
	.quad	505731104315931813
	.quad	-662495200896940630
	.quad	4151555707609374291
	.quad	4038120750249579469
	.quad	8304001815287976437
	.quad	251700810512667658
	.quad	-1275870336435954698
	.quad	-5637101927865816879
	.quad	5765073376623244019
	.quad	7923401246629348462
	.quad	5401634486288115286
	.quad	4963953120977916566
	.quad	6585250545846301109
	.quad	4490972754776862709
	.quad	-7772244481409072496
	.quad	-951755755359730271
	.quad	1814042777264686189
	.quad	8938395423478059768
	.quad	9062966010283426056
	.quad	-5174359600319005207
	.quad	-3393950643852356674
	.quad	3597944793474963009
	.quad	5659515835454510338
	.quad	-433641671099870961
	.quad	-3349807351735078368
	.quad	9096406212198787674
	.quad	948405832772983882
	.quad	3879469818714011415
	.quad	-6952923615879834973
	.quad	-8354937045984724315
	.quad	5032134849078736052
	.quad	-430994869700275570
	.quad	-8778985790463328259
	.quad	4629693773460610802
	.quad	3807196436109718946
	.quad	-985610881648738481
	.quad	-1575998864773005931
	.quad	5903437034120721004
	.quad	-8763199220967331920
	.quad	7903581348090948266
	.quad	-4984792990434009894
	.quad	2454715926022970060
	.quad	-6665475801693126094
	.quad	5724217930909760221
	.quad	-3026522481797201201
	.quad	-8536279059970300814
	.quad	-5935060299918772125
	.quad	2841532862707547306
	.quad	-1832317602699905027
	.quad	407574220261191228
	.quad	-1024686903589327585
	.quad	-1936206404857101268
	.quad	-2796225539652222312
	.quad	475704671950317376
	.quad	782416820485820540
	.quad	-7476374373718651208
	.quad	-1845445926652178824
	.quad	1599283701215392453
	.quad	8464446359559369186
	.quad	3725101809714764432
	.quad	2995111022132376824
	.quad	-9107860344091530112
	.quad	8824923738291347476
	.quad	3745497072215538317
	.quad	3576446898425965872
	.quad	2350077748663612773
	.quad	-2653488917824008261
	.quad	-8291351991372118817
	.quad	-1720992883541567944
	.quad	-655673297358872336
	.quad	6653785531179322348
	.quad	-8358867816821715836
	.quad	8422365820961469204
	.quad	-4832332295457568136
	.quad	-6758808621472245656
	.quad	-5542405072642134031
	.quad	1972265247859388742
	.quad	8908590936681392405
	.quad	-8126024673205327458
	.quad	8298368064038407143
	.quad	2105745729886511647
	.quad	-1936992998951704521
	.quad	-3290454322037935051
	.quad	533287349958250211
	.quad	-4517348265831090014
	.quad	-8410574331444592192
	.quad	-44345258809071608
	.quad	8793706913568807269
	.quad	4438954128288889267
	.quad	-4449917023119904024
	.quad	6637236830429213437
	.quad	885617946245226760
	.quad	-575182501613642352
	.quad	-2033435546379006848
	.quad	2938750343525834336
	.quad	6332736376778563648
	.quad	-1674056377051315385
	.quad	-8686273377760152438
	.quad	-1026187249904318734
	.quad	-6039937589648817142
	.quad	4655292039647906135
	.quad	5745141229449178147
	.quad	-5523122464802244884
	.quad	1329768221522217568
	.quad	-2153127993968349725
	.quad	-2137140155630200231
	.quad	8282635243638078478
	.quad	4407657041250297528
	.quad	-4613783114362235639
	.quad	-3390197113741810677
	.quad	4350443362134191429
	.quad	8013419913016572733
	.quad	8888684099801298477
	.quad	-3045264820088805901
	.quad	-166796872040150769
	.quad	8312633277146158092
	.quad	5814808762505612175
	.quad	-5155689624498485589
	.quad	-519018048759808891
	.quad	-9168850528986106279
	.quad	-120641901991744940
	.quad	-4789854875165702658
	.quad	9191563927151937919
	.quad	-1671976867205074087
	.quad	-2662495318249332816
	.quad	890363416232172440
	.quad	6798249980336291014
	.quad	1295939576916968887
	.quad	-3945227497350490233
	.quad	5181286196215569291
	.quad	8884842683907072200
	.quad	-2073572619765185494
	.quad	-8177328996034615955
	.quad	3814331860020362748
	.quad	-5515062903492009610
	.quad	2891861679967692316
	.quad	4705632284626636252
	.quad	-3082832454548693043
	.quad	1520931274952630257
	.quad	-5540599537791811453
	.quad	4179201185048577793
	.quad	8949647323841299627
	.quad	2168773816567792706
	.quad	1715683170634778607
	.quad	-8545242170387465424
	.quad	7624633731287546358
	.quad	-7916620010077693607
	.quad	4868682522675620962
	.quad	828056626016277599
	.quad	-3003364218882505343
	.quad	6655605525098270799
	.quad	9034158421383693064
	.quad	2376396195821278398
	.quad	-7694597949995110351
	.quad	-1137517684323872084
	.quad	-4246787756362817132
	.quad	-5196532478389497195
	.quad	-248791594416460064
	.quad	-2285430665890594532
	.quad	-1011236780741364722
	.quad	6560268436714668609
	.quad	1299607057816966726
	.quad	8157462320016248727
	.quad	-5429552945646776064
	.quad	7848796809993195354
	.quad	2674869346381260683
	.quad	2470932707899222623
	.quad	2774920375639065711
	.quad	7647884970544094912
	.quad	2715212769132240092
	.quad	-2984927572703725169
	.quad	3603583288706717651
	.quad	-1059615747638004104
	.quad	-539139257086780063
	.quad	-593649691744514232
	.quad	-6172900221503740383
	.quad	-4606159597703153336
	.quad	2018654168596055410
	.quad	-6897496018573966972
	.quad	-855070234027582848
	.quad	3749648174556271862
	.quad	46804885265425809
	.quad	5658681519480656511
	.quad	393467073093029044
	.quad	1765562667631497042
	.quad	-6154510115097544935
	.quad	8405243955058828137
	.quad	4742377140579111706
	.quad	845465928037625085
	.quad	-6417790113052258792
	.quad	-2008099306676586361
	.quad	-1069655451476919322
	.quad	1631558517096568450
	.quad	-7083680059690884105
	.quad	6006029335296807862
	.quad	-2320213769869824463
	.quad	2296711860914239745
	.quad	1186518926278256594
	.quad	-2322830913344299281
	.quad	7983132406996336400
	.quad	-1265838272907573943
	.quad	-5355488394160927373
	.quad	7040517228102068921
	.quad	8877393780281438935
	.quad	-8597820902458477041
	.quad	1554975198005028643
	.quad	2251034043951525516
	.quad	-8750185385950678566
	.quad	3889942916226212472
	.quad	8326933892612496812
	.quad	7463785348361544799
	.quad	454974252425939223
	.quad	2865757390454997245
	.quad	949499273226122865
	.quad	-3298148402281817596
	.quad	-7438375209118923943
	.quad	-429622067673846611
	.quad	589226258585730908
	.quad	-6625045297030791036
	.quad	4205364996189816688
	.quad	5453611962777060261
	.quad	-1452904061766380563
	.quad	-6757582763203344605
	.quad	-1747570334665092710
	.quad	6254168288000491517
	.quad	-5804462855408588303
	.quad	-8417793420534499863
	.quad	-5156495186839026233
	.quad	-1528108097647426078
	.quad	2511533726060730674
	.quad	4016570527786756412
	.quad	-655784236324109809
	.quad	3834204932211133988
	.quad	-298245239169647389
	.quad	8243438608326161906
	.quad	7454214833719424418
	.quad	2128900810399984335
	.quad	8254953962723841408
	.quad	5341529923812819418
	.quad	-6960211157157412378
	.quad	4528331821405917357
	.quad	5048485034448492541
	.quad	4189495710753944825
	.quad	1716398314864158752
	.quad	-5569530813056499116
	.quad	253728503208940582
	.quad	-8647713180632093127
	.quad	-7154365155067894598
	.quad	5985873260296933334
	.quad	-6494258381382817403
	.quad	7381259026372205065
	.quad	-4250328001213000169
	.quad	3917548817518899363
	.quad	8758484593626777478
	.quad	-6430260594215169092
	.quad	436843859132243709
	.quad	-7375521407824453183
	.quad	1286150934711973713
	.quad	745122855666981878
	.quad	-1390576218605834139
	.quad	551748971548312107
	.quad	2077004624204852630
	.quad	1632264123048662252
	.quad	-8137894822816626195
	.quad	-302307429853479404
	.quad	3241351212018676716
	.quad	-3556547121816485135
	.quad	5056702697879200904
	.quad	5427916371629613249
	.quad	-8883669316573992471
	.quad	-9175104263692215799
	.quad	-1437187230139207297
	.quad	-8215658793352796386
	.quad	-7796754188714878062
	.quad	-3920993441672813775
	.quad	3471784844768350382
	.quad	2483911996516362288
	.quad	2090331252560860816
	.quad	879041759740258522
	.quad	-2913469577734019391
	.quad	-5905449219712391008
	.quad	-4127367211491308742
	.quad	2086019563015349463
	.quad	-4597122131791170287
	.quad	-6198787916474825794
	.quad	4424978758612996190
	.quad	-4343569433261172245
	.quad	3256110539705356003
	.quad	8432634593188202177
	.quad	-267889976120879117
	.quad	6617781850497263898
	.quad	-6562584646352350683
	.quad	-3406613736061328787
	.quad	1197620373689806147
	.quad	8487113049823606171
	.quad	-5712992832526739590
	.quad	5739303493324311613
	.quad	-4583869471048336169
	.quad	5616981922712326056
	.quad	3003387451673669065
	.quad	-557477458337111270
	.quad	-5812151430367557422
	.quad	1788307726790398578
	.quad	-9005722819308905545
	.quad	-4224736717623940222
	.quad	6843071320544048306
	.quad	-6171806456442448603
	.quad	4646191728236302010
	.quad	-976884487949755693
	.quad	4879099013424323977
	.quad	-1991626846368796038
	.quad	-2320951991035280863
	.quad	-8230820367026380455
	.quad	1057645753591355541
	.quad	764971297659018290
	.quad	-2015582024611283850
	.quad	1415847446343814363
	.quad	7915394811651072655
	.quad	8549279269894113204
	.quad	2547094078195752029
	.quad	-51199365699085311
	.quad	-7420275903124503469
	.quad	4233460477670925919
	.quad	-8485005879466009689
	.quad	-8159843247741771174
	.quad	-2946999565873376887
	.quad	-8091568150561595104
	.quad	-9202270055082461745
	.quad	2531673177181137563
	.quad	2039351760031983225
	.quad	-7936992929155392079
	.quad	-6669775740029589919
	.quad	-7561310994136863465
	.quad	-1329519632611744937
	.quad	-4367106535686246372
	.quad	3782844816488125980
	.quad	-3074194130807019837
	.quad	-9167392956395399864
	.quad	767692339425714343
	.quad	1457174519079831136
	.quad	-7063221981108551613
	.quad	1203892496275210867
	.quad	1972689736847380402
	.quad	-3192975644105441603
	.quad	4782061803206877172
	.quad	6910121728760219603
	.quad	-4902322163261370236
	.quad	-8920015225773605167
	.quad	-2761518134047488698
	.quad	3239253597239910602
	.quad	-1237806548362684707
	.quad	-2885105421753054766
	.quad	-828848571586043145
	.quad	-1904354313479207127
	.quad	-1156621197374773483
	.quad	-6414022981859416231
	.quad	6042220493337321107
	.quad	1468575323231643873
	.quad	-5654315078718114514
	.quad	-599059770203632807
	.quad	-9119532769344873690
	.quad	-3971121709120222588
	.quad	7966080900201102842
	.quad	-8876665638995236272
	.quad	-3189972075580881279
	.quad	2754377795765602626
	.quad	-1965958005093128605
	.quad	-3030368855326298688
	.quad	6688114639662393294
	.quad	5950930700557156076
	.quad	-8245187863977785849
	.quad	-4045482861498968286
	.quad	-2574231176896108276
	.quad	-3158854642780854871
	.quad	5469943633983028082
	.quad	963143249152254257
	.quad	-8360747012500108910
	.quad	8331853256228625093
	.quad	56798909267998632
	.quad	6773106042939591645
	.quad	7139074034397037701
	.quad	-6794484130638042711
	.quad	-1458322198658613033
	.quad	5965367039714018981
	.quad	8207271693889387344
	.quad	3851981034664777738
	.quad	-4571129579061898669
	.quad	5439019808323852202
	.quad	4644012660803853572
	.quad	-1245293126412007443
	.quad	8010672257992863665
	.quad	1784857107701497482
	.quad	8833501431180586003
	.quad	5582779155090690161
	.quad	-6804571134153808434
	.quad	6279956696851006927
	.quad	1267742143107771155
	.quad	7786019515064551645
	.quad	1563326430228201214
	.quad	-3673061364003749831
	.quad	2483675175143118663
	.quad	-4853027139373115371
	.quad	-8530202281423359190
	.quad	4024285724408552605
	.quad	-4039804656432703270
	.quad	9155004163757104069
	.quad	5221141237912211547
	.quad	-4051819463976628858
	.quad	-5706552227786629664
	.quad	8107612322213861714
	.quad	-6263765586451112410
	.quad	-7189752932905290047
	.quad	8390015362652703412
	.quad	5955511676109072031
	.quad	6918826819005548065
	.quad	-1732602167112532834
	.quad	7771401251882622195
	.quad	-1507835437651987351
	.quad	-4809876366885085216
	.quad	4764379364612586806
	.quad	-6997534526331247138
	.quad	-1981134454453750025
	.quad	-5767710998643858904
	.quad	1576714864531528574
	.quad	5001699435851185658
	.quad	4640973207676781162
	.quad	6499954613285666637
	.quad	-1850324983005377155
	.quad	-2787874300575923327
	.quad	-8969109156644457216
	.quad	-8183563303690396677
	.quad	-3930210261632628118
	.quad	-8760545982135723303
	.quad	-3956445011279499807
	.quad	3242994983505478663
	.quad	-6627103162976517127
	.quad	-8980350826250942648
	.quad	-3723136281735492083
	.quad	1051196028242719467
	.quad	1951968389671995851
	.quad	-6483302795092146591
	.quad	5164054938557361323
	.quad	-535905616798173617
	.quad	2319189552201670523
	.quad	142244520060255836
	.quad	6899620269553271715
	.quad	-1470123774328599995
	.quad	-5865213531190609273
	.quad	-4130818451825079783
	.quad	-8462289966845374871
	.quad	8974344196388363589
	.quad	-616389379990253975
	.quad	-5842096988959055940
	.quad	1930411678118179045
	.quad	-4729542673668464335
	.quad	6353474799033410671
	.quad	-2618259445169153664
	.quad	-8124226430626447980
	.quad	2239403542139663971
	.quad	6737932524928585664
	.quad	3901630215476940610
	.quad	5433547696316313800
	.quad	2740641137271768457
	.quad	-3476546932470021375
	.quad	-6443457850760981998
	.quad	1813420963401884098
	.quad	-5617693995322712970
	.quad	-1167454820987104616
	.quad	-3757296007690493026
	.quad	-3456018935707693969
	.quad	-6629336158994373915
	.quad	-4233459882561055814
	.quad	-8976430454628448786
	.quad	-2770339275258067119
	.quad	6502476605670364925
	.quad	2437401006673157050
	.quad	3876805878520063085
	.quad	-3978087606891582708
	.quad	-4781751201323615426
	.quad	-2467556567338387548
	.quad	96597475876112243
	.quad	-6256859971649713953
	.quad	8300084676698439907
	.quad	-2152428396228625856
	.quad	-7292738233927058324
	.quad	-351166067791043052
	.quad	3045916219286084768
	.quad	2709005759170349830
	.quad	2890039827224671557
	.quad	-1412306079102977241
	.quad	3722289961396743860
	.quad	-9223204486592912939
	.quad	879142711399260546
	.quad	2878829560233905572
	.quad	-5365221679721598843
	.quad	3067261963348061547
	.quad	-2438593293114839973
	.quad	5466468631453287640
	.quad	-1787596174738202034
	.quad	-517611696972069453
	.quad	5565926714491294456
	.quad	5252303555134107501
	.quad	8169975563698132305
	.quad	1829326230943509100
	.quad	-4665825411856277148
	.quad	-710078476838318989
	.quad	4246797342334307384
	.quad	8768788172344064509
	.quad	2761897497254272960
	.quad	1400167175024837359
	.quad	2591319596670212133
	.quad	1499652044223484974
	.quad	6820326453941021707
	.quad	-8745734573829644843
	.quad	6897435972338565418
	.quad	-714450307845835564
	.quad	853971165248416821
	.quad	2022886284923413326
	.quad	7522564752651732633
	.quad	1417954193520965954
	.quad	5046659528429172066
	.quad	-7019804847864840311
	.quad	-759537383093012298
	.quad	1081257522368061155
	.quad	-2301762044077449826
	.quad	2280210790959566458
	.quad	5000326950136078873
	.quad	-8005657227850379634
	.quad	5717080014740953823
	.quad	-1630490333241914465
	.quad	5185838557034755093
	.quad	8296339816955798913
	.quad	-1094039136174301166
	.quad	-6678539827064546592
	.quad	263391795317009517
	.quad	6622964609352808474
	.quad	-3883329785501174988
	.quad	-559354795012293158
	.quad	1552357122641071119
	.quad	-2721731197982053527
	.quad	7622633481063722008
	.quad	2241559275264867670
	.quad	4018985714167034871
	.quad	6507661741395512701
	.quad	-5010878300573927520
	.quad	-8882190811340663073
	.quad	2283482276790194513
	.quad	-8467704111210520784
	.quad	-6687330053276335185
	.quad	-3282332780603692438
	.quad	2834464820255498467
	.quad	-7730372105229145227
	.quad	2722055037405581557
	.quad	-9206086486947137840
	.quad	267811388229104916
	.quad	3897734650128449985
	.quad	3892478283047854402
	.quad	153850176068596076
	.quad	4448963435449755938
	.quad	-8535732666887114903
	.quad	6379744721342779297
	.quad	360324666931028426
	.quad	8002086405015565067
	.quad	-8175083545834674952
	.quad	8477089055984387997
	.quad	8721324910771237155
	.quad	6264591954990226136
	.quad	-2152510491721334094
	.quad	8353639935238024297
	.quad	8502954185771176043
	.quad	4611949488650813649
	.quad	5197183979237663383
	.quad	4534582336723842277
	.quad	-2162271740998683416
	.quad	-8531219173965693887
	.quad	5640611629197019343
	.quad	-9011528038586368823
	.quad	8058062952461498467
	.quad	-8857688579018285981
	.quad	9081125654840127867
	.quad	8340315146446911275
	.quad	-1948001084194067034
	.quad	-4950864496842329073
	.quad	3275734074045327024
	.quad	197495055687692299
	.quad	-8378198485292570022
	.quad	-48203699465534400
	.quad	-4784077219285030157
	.quad	-1418129579109299598
	.quad	-5074577890905450857
	.quad	8978661571842967509
	.quad	1689945315009228820
	.quad	-8449610438797399808
	.quad	4070075534875432478
	.quad	5780712439158341418
	.quad	-7488363205594583197
	.quad	6039156136938246252
	.quad	-7414554749520872767
	.quad	-1017122071619674193
	.quad	-702567880087275392
	.quad	4691134991271553409
	.quad	-5289273263591776032
	.quad	-8503396701777430274
	.quad	8533766187366583210
	.quad	2332845100796518449
	.quad	-6584452589507404558
	.quad	-6301546638038824691
	.quad	-4888850628451259736
	.quad	-7002142301192223500
	.quad	-2269410119497570001
	.quad	3359150139110558344
	.quad	6336270325456556757
	.quad	3878156618146093272
	.quad	5792346041622198705
	.quad	709399056099288518
	.quad	7423933054548878993
	.quad	3308553262569278211
	.quad	-2314538272552342527
	.quad	8252355438899079761
	.quad	-378452961124738726
	.quad	-8158163627054234737
	.quad	-1580053559510105811
	.quad	-2988080063171351745
	.quad	-1270818871463377726
	.quad	-6237965463347795618
	.quad	927739404697616036
	.quad	-8116560864285058477
	.quad	6680151776661242264
	.quad	-426966399240291732
	.quad	6040570169421912323
	.quad	-5588702347323740786
	.quad	5876200688858670012
	.quad	613145644676598511
	.quad	-5495925690350571568
	.quad	6654508315395331165
	.quad	-1392489842750229611
	.quad	4653923992005666270
	.quad	-7633039121830030039
	.quad	-4214782453524571594
	.quad	-3130956834628590300
	.quad	-5474541598294351944
	.quad	-4080157888493300126
	.quad	995355916217798530
	.quad	-6556834595651627341
	.quad	-1108689344572418258
	.quad	5629344255959666415
	.quad	-1869931881814997778
	.quad	31235641829957007
	.quad	6958213279692393766
	.quad	7928861313867968192
	.quad	7026785033367636302
	.quad	4422872630455196261
	.quad	-3631093818901634249
	.quad	-9020397916110826848
	.quad	-682441408545438320
	.quad	-8972716800738600155
	.quad	3048886202121388617
	.quad	7073604597785890399
	.quad	-8930737427404467941
	.quad	3510965745604920365
	.quad	8133373813580877990
	.quad	8971228871244571757
	.quad	8237645018692372515
	.quad	-1904683119330808678
	.quad	1277625042259434865
	.quad	6045477449914588494
	.quad	-8243934751474385775
	.quad	-132694391259737095
	.quad	-2219503703901658509
	.quad	-1230800960658952570
	.quad	8608358858975957095
	.quad	1793216384752616094
	.quad	3197847504305074270
	.quad	-1988688500420651303
	.quad	-8448633918103575248
	.quad	-6672685132803979672
	.quad	-1969822888307943930
	.quad	7324130144183329421
	.quad	4477501617306501891
	.quad	-6487721720726871133
	.quad	3435161836308820429
	.quad	7568509148278179027
	.quad	-8072573248814105222
	.quad	-1905426492061583314
	.quad	7221753201217091047
	.quad	554497992080233562
	.quad	-5703612277770296885
	.quad	6113032707000257613
	.quad	4448176364247161206
	.quad	738044254484725063
	.quad	3096942233684051465
	.quad	2833700849601377324
	.quad	-8534529655906964080
	.quad	2807031737690323712
	.quad	-8441851772451470877
	.quad	7813811568315607622
	.quad	6790871514139949986
	.quad	-4469137195080767004
	.quad	5136968465361524460
	.quad	-8713838912118004954
	.quad	1494340938947672899
	.quad	-8703376643515432829
	.quad	4465430313426670767
	.quad	-3253727689806404267
	.quad	7533589849447978296
	.quad	-3494303327635405720
	.quad	8993657450222675894
	.quad	-3508506555483152410
	.quad	6160395537516051321
	.quad	-487629768262133228
	.quad	1678185890455721924
	.quad	8791091553278869331
	.quad	-2840634942589193691
	.quad	6560240212110164339
	.quad	-7541392158745792173
	.quad	2801392933730991479
	.quad	-2944740172770304871
	.quad	-7106420462884895507
	.quad	-4756349246540124936
	.quad	2298413291804124677
	.quad	-6202971854602742497
	.quad	-8896416731116106356
	.quad	-92195238445114608
	.quad	-117117201913161329
	.quad	2313393681374517348
	.quad	5033052165418004948
	.quad	-3029621077604104158
	.quad	-2661712515557972980
	.quad	3344443623181507986
	.quad	8452711504823150983
	.quad	-8492503441587643513
	.quad	7060544774430201462
	.quad	-1706070785201108271
	.quad	1669636330039485214
	.quad	967684294890467615
	.quad	8061003016316340216
	.quad	2042511381430377667
	.quad	8711455710351157584
	.quad	-7498225972870741062
	.quad	-1955721337055705478
	.quad	-4801028859774875369
	.quad	3986530371049134713
	.quad	-2648150695834336296
	.quad	-1335153632648123941
	.quad	-421612779665805377
	.quad	6213807345218851473
	.quad	7829711087168631348
	.quad	-1350962610950490110
	.quad	-4461793307366769247
	.quad	7038608479806172868
	.quad	7073471193601880894
	.quad	9212126909381119712
	.quad	-2580892730217353509
	.quad	3874039137971369196
	.quad	-3080238831406979297
	.quad	-3356046699553032505
	.quad	-8835504345735164093
	.quad	9108879313098481076
	.quad	-6397652268430324332
	.quad	555307424930156782
	.quad	-2731585716896394829
	.quad	-6494265796772329586
	.quad	2049361208715030666
	.quad	-314534493470884784
	.quad	-6274742742416503699
	.quad	6915532976868001346
	.quad	507812258333014751
	.quad	-4912367876745932060
	.quad	-326456482511896279
	.quad	2747657139875560203
	.quad	-7521727423215757321
	.quad	-281098637147438040
	.quad	5582375886388602068
	.quad	-5095657086454429955
	.quad	7379055685383523091
	.quad	-6982825646233946062
	.quad	-311319331671572169
	.quad	-4135640872639624537
	.quad	-376971075293557115
	.quad	-7970236036313863360
	.quad	5905562397524931472
	.quad	-3298847629088271021
	.quad	3856601647293477321
	.quad	4204909177546012159
	.quad	-931059862836647162
	.quad	-5884909093828771856
	.quad	6477848309789627185
	.quad	6721956388703410895
	.quad	-7637669362543387824
	.quad	6193756323249612458
	.quad	1820496239813239119
	.quad	-4457271846305002183
	.quad	-5574252904750975035
	.quad	8548776548467490892
	.quad	-4699691865428124809
	.quad	-5297744561875950524
	.quad	2875930661261457138
	.quad	4332713434924239019
	.quad	1302513698829938199
	.quad	-8339804353431990412
	.quad	7384153168235500994
	.quad	3365224613560461618
	.quad	3227234659557145206
	.quad	8126498341284417126
	.quad	6078840709961163724
	.quad	4983461461491354583
	.quad	-35019225584994526
	.quad	329088060775647642
	.quad	-3236728447784721605
	.quad	-3980319060656634599
	.quad	1138154529590379706
	.quad	3226022509034031128
	.quad	5771385963704757771
	.quad	-585043908013073501
	.quad	-3470709672982777460
	.quad	-500784576047282264
	.quad	6322288130414861016
	.quad	3008853024335853994
	.quad	5599925939427067989
	.quad	3227095330016986708
	.quad	-4099180131608257165
	.quad	-1370305931228788231
	.quad	-2456390951097682029
	.quad	-7296158346540033801
	.quad	-1818999878117891139
	.quad	-8228477889784272896
	.quad	-8794319380780962041
	.quad	6436699995840597074
	.quad	-6794273087142521015
	.quad	3704931665285701501
	.quad	-5534159937772624021
	.quad	6164170738788014756
	.quad	682444133491919957
	.quad	1635998109480604349
	.quad	9154627961811528043
	.quad	1472134833179156975
	.quad	-7142419475692525666
	.quad	643016224476744213
	.quad	720340289940186431
	.quad	-2081944242764475282
	.quad	-1442863562958527246
	.quad	-3338648331292668700
	.quad	1780609553028841088
	.quad	-3038296065970745991
	.quad	3855259080280453396
	.quad	-6670309808231196890
	.quad	-6661858154598312096
	.quad	8108981861486003291
	.quad	-1892848034707400833
	.quad	5694423121092647200
	.quad	-2032180814616661923
	.quad	2119145930076204326
	.quad	5910683620016126076
	.quad	4688534390854734251
	.quad	6407587362292213530
	.quad	-916324636617748582
	.quad	-859742090345393963
	.quad	2877366672476902827
	.quad	-1522110208564090092
	.quad	-7286297034951930430
	.quad	2251299652489328201
	.quad	2607235823711899777
	.quad	6617002742165653949
	.quad	3926853446977631113
	.quad	-1333600779092274987
	.quad	3904189231294900060
	.quad	-1688600236242189021
	.quad	-5088585430215102602
	.quad	-8390749309435744878
	.quad	-8129898599797262908
	.quad	972630540949155066
	.quad	-174282442990004685
	.quad	3282319746817718580
	.quad	2464813574947498496
	.quad	-2437754658175022000
	.quad	3235058267792568155
	.quad	8030551941244615429
	.quad	-5595380488198996102
	.quad	-8659771051149079905
	.quad	4901414898060251968
	.quad	-5206305445221610446
	.quad	4707852389766057435
	.quad	6503805666511566831
	.quad	-1186743757927623055
	.quad	-6758943722108706546
	.quad	8458360725671308182
	.quad	8517100212524784614
	.quad	419108446037827572
	.quad	4196912933861143025
	.quad	3588487553629437720
	.quad	-900378618115059193
	.quad	2648717641704177042
	.quad	7131967847523807628
	.quad	4693762087595520276
	.quad	3696762451145031747
	.quad	-2743708421751340082
	.quad	-3546328282561959008
	.quad	-321089793175948096
	.quad	7482327462246695825
	.quad	8906268786467877193
	.quad	3939210341192172250
	.quad	-5293242474738883180
	.quad	2904477669670704453
	.quad	-877442369329750700
	.quad	7621733063756697234
	.quad	-4751578301438874113
	.quad	-2208611383665282107
	.quad	1178073204986944698
	.quad	-7761610141383074121
	.quad	-6736582068399143823
	.quad	-7427555143983841311
	.quad	-2201752127337385910
	.quad	3272168887117805467
	.quad	-3400996773737406783
	.quad	8155681972478369649
	.quad	-8265230498855561503
	.quad	210708840571894808
	.quad	2433150200504533729
	.quad	-7964902178771784182
	.quad	-8708007047155173864
	.quad	-5415672105127753444
	.quad	-495968009870540096
	.quad	9084160880813320762
	.quad	-7410937613908810281
	.quad	-5666812688354267664
	.quad	-129563340770668673
	.quad	5212136713598996373
	.quad	3226594699772859611
	.quad	8744516640034569198
	.quad	728426767710177167
	.quad	-9098058961383596459
	.quad	7190238600325481714
	.quad	106566657954117580
	.quad	-7747389984373403711
	.quad	-5982557065553601759
	.quad	2986093867915752977
	.quad	1895098487679055215
	.quad	493694646897426850
	.quad	-6635853349897711804
	.quad	-6138293204316261923
	.quad	-4177949136138314262
	.quad	9141189178824378983
	.quad	-6841536415805551098
	.quad	-1374973965160221468
	.quad	-7400783549252530360
	.quad	-4639033640854444404
	.quad	8427718050873363613
	.quad	-9020609201330477225
	.quad	5688840952183555556
	.quad	2176131307944773215
	.quad	2501585869539711570
	.quad	3497646613377390211
	.quad	-7095957127600920512
	.quad	6438421017057483079
	.quad	1004035072078869439
	.quad	-1148325445935295008
	.quad	6024684913522342962
	.quad	-1830389378030186657
	.quad	-6964932663253163075
	.quad	-8393691659403693463
	.quad	-4024597500644026005
	.quad	7994077066713258641
	.quad	-817176367882076186
	.quad	2075655471532584056
	.quad	-8986776255907874472
	.quad	234645062110982161
	.quad	-2707616623940131240
	.quad	-5259646702500672430
	.quad	-7400363975445340207
	.quad	473776362525962374
	.quad	4407758497706765227
	.quad	-1684547710282914706
	.quad	7316863360113205703
	.quad	7937998445095491508
	.quad	3946557199536080470
	.quad	-2426833674011906577
	.quad	-6923898123190171323
	.quad	2362453023191035102
	.quad	6547077716792082654
	.quad	-6914935214323146058
	.quad	-7469152585620076611
	.quad	-842336580044781966
	.quad	276602458005510532
	.quad	2872132813773490450
	.quad	-7261434050879390967
	.quad	989213437310279849
	.quad	-1399533716393944964
	.quad	71930207034182621
	.quad	2672027630496962446
	.quad	-1467857575605893629
	.quad	-8493000267602615978
	.quad	-6564684799716105018
	.quad	8701684940388530239
	.quad	5923833173332301833
	.quad	-4511897963512846371
	.quad	-6488146552438619379
	.quad	7875540569077989322
	.quad	2553161154591803128
	.quad	-4480122356972352202
	.quad	-3641471917711201005
	.quad	-3109240618322198353
	.quad	7375795754195828661
	.quad	-3522168617618279712
	.quad	-6365710073191440864
	.quad	2773740877021737013
	.quad	6429475399936543899
	.quad	6804412599792308979
	.quad	-2363883571395980434
	.quad	-8432905619626638884
	.quad	7176778953927883654
	.quad	8065751639278576331
	.quad	-705219022191188472
	.quad	1374267330336191942
	.quad	4677891169679898540
	.quad	-8806920462024120279
	.quad	5482431056894095950
	.quad	6629146695374718376
	.quad	3884574854221819712
	.quad	-5179953145612738358
	.quad	-225605728789171441
	.quad	-1685631331164530418
	.quad	-4025104082593962997
	.quad	-9027576509765868069
	.quad	6237248361283446238
	.quad	889754338720059891
	.quad	2289880386545166424
	.quad	4280148734121099084
	.quad	-7934270461939452326
	.quad	-6711706164633220597
	.quad	2922606398008539984
	.quad	2599799834378751770
	.quad	-8220041578661615192
	.quad	6109026252412854338
	.quad	-2874187250882382379
	.quad	-6453042286920801953
	.quad	3993197157612782947
	.quad	-3635861903653222497
	.quad	3476738916713041107
	.quad	1512933700383846542
	.quad	-625854322568239840
	.quad	9132720567660500233
	.quad	-847819179100578920
	.quad	-8742206165043849161
	.quad	-5176889342966876814
	.quad	-2318320974266480808
	.quad	3557230428644480193
	.quad	-8808790756293460632
	.quad	6295039911768726240
	.quad	7019479692290635445
	.quad	-6779127141852119170
	.quad	7159479331923350611
	.quad	-7872506712957973493
	.quad	5116798422805306054
	.quad	-3955021780914261398
	.quad	-7647587939399227932
	.quad	-5756817440698416772
	.quad	2658342468671191169
	.quad	-3152985670600178230
	.quad	-2198685600546187354
	.quad	7837268594975894598
	.quad	3733413917041538879
	.quad	-9038310739635545700
	.quad	-8639630774599467127
	.quad	673053561909802023
	.quad	-8210920401343079372
	.quad	9197803481286702511
	.quad	5670973022205283920
	.quad	-2751478625926973603
	.quad	-2940185355262310422
	.quad	-6104882634410562384
	.quad	-45785917409450771
	.quad	-4741932786741960466
	.quad	5802260047239067846
	.quad	3266013253411255445
	.quad	-8553786331390369662
	.quad	6646788865038439480
	.quad	-816844191973012402
	.quad	-4689595923643773132
	.quad	4553453745548164624
	.quad	-4408460842263406447
	.quad	2700995124074965417
	.quad	1958388029936974830
	.quad	-7891176695485819846
	.quad	-5718677854355606912
	.quad	6667754664732407683
	.quad	5782064139653861743
	.quad	-8296916426674539800
	.quad	7690209656225697396
	.quad	-2844218524356764320
	.quad	-483902944714616320
	.quad	4645133294868464650
	.quad	-4463588140334639126
	.quad	8765211027045899870
	.quad	-1918692350871850592
	.quad	-8599745870744886458
	.quad	7067850398372372456
	.quad	6122977757061782457
	.quad	-6456934658795539162
	.quad	-843081675911737733
	.quad	-620789592762718025
	.quad	-4093299845996009005
	.quad	-118610189035225397
	.quad	-7583827523872712793
	.quad	-4294569377559249116
	.quad	-155512896374609937
	.quad	8688226273046831245
	.quad	-8361408261247443789
	.quad	-4602812769430148846
	.quad	-808291774949936948
	.quad	2280779359981158087
	.quad	-6883122988212929287
	.quad	-8648900004531880269
	.quad	3522591932612955198
	.quad	1918546175804882779
	.quad	3657261180090904402
	.quad	4098019179199031389
	.quad	7541805794076325188
	.quad	5285730591516781510
	.quad	-534619639535430817
	.quad	-930497955773645105
	.quad	-1374406996564437091
	.quad	3381120562816901562
	.quad	5182566400632536622
	.quad	-410786593792366642
	.quad	-1948795249352878251
	.quad	1719954347130399097
	.quad	-2887750356623172483
	.quad	2377262273566527651
	.quad	5526667524461351877
	.quad	3238964616264780339
	.quad	4280798918872835087
	.quad	6053458788987550519
	.quad	3243549259991905443
	.quad	-456718597683285411
	.quad	3918149716414968130
	.quad	562225565996136148
	.quad	-6271457055806838462
	.quad	-2128773239446916626
	.quad	5431198806775607012
	.quad	-4132209374875153114
	.quad	-6777198019870946361
	.quad	-1558440057673736425
	.quad	8717882745715128544
	.quad	-3906936918532323087
	.quad	-5280575029225614818
	.quad	-3721139248088895947
	.quad	-5463912679024420764
	.quad	-6840618103988315990
	.quad	-2405688991702904796
	.quad	2590848757210164538
	.quad	3986500646648678285
	.quad	-2042264933234356551
	.quad	-1147381445602598279
	.quad	-8404922601010363979
	.quad	-1866818921430478421
	.quad	-3201634208134850093
	.quad	6692896142131317529
	.quad	-4066885047405795508
	.quad	7886182219491570108
	.quad	4288670538450128408
	.quad	3889885429009295197
	.quad	6909186168024439707
	.quad	-2828626300187059904
	.quad	5598022372264129037
	.quad	450856273817313514
	.quad	7896492801185253795
	.quad	-7896614133711401411
	.quad	3562328715804721475
	.quad	7493066472994076203
	.quad	-4934962000275236872
	.quad	5445508562477533217
	.quad	-5878386024472860781
	.quad	2085361124621496603
	.quad	-8230836575382866154
	.quad	692389340216290893
	.quad	-3732028672489583867
	.quad	-626756423730709006
	.quad	-5077969883501366264
	.quad	2081090134931053357
	.quad	5282851656515181386
	.quad	-8858654448404641000
	.quad	7144155340867528668
	.quad	349083781668718296
	.quad	-8220566597189577635
	.quad	-2006924494080908730
	.quad	-9222033428072500450
	.quad	-6007399964078849097
	.quad	991172806749387060
	.quad	-1070908528881954111
	.quad	-4378617123366797908
	.quad	8556424993870315526
	.quad	-3512957032274799853
	.quad	4346612815936890381
	.quad	3577924055521701141
	.quad	283182318410168864
	.quad	-3323557903531184352
	.quad	3054913246068400920
	.quad	8130663466272395280
	.quad	2852812622149318730
	.quad	6747630551931917110
	.quad	-144694299450394645
	.quad	3663865061939346221
	.quad	-6106652463004872805
	.quad	-4604733240240291115
	.quad	-457096740819401633
	.quad	4661004972156689904
	.quad	-5112749976738464263
	.quad	1761476528611964802
	.quad	-4025107485316535672
	.quad	-6549499451684076543
	.quad	-2439667352649991197
	.quad	-1199570600189761711
	.quad	8329825998826426913
	.quad	3674241106943754276
	.quad	-3047464853584509765
	.quad	39822188855810257
	.quad	4642034499816991876
	.quad	6720622983584278705
	.quad	3325330866407912239
	.quad	-4701514614475603372
	.quad	4924119901823087207
	.quad	814381486914269869
	.quad	-1553488166505720937
	.quad	3075221225641931711
	.quad	-859955679543691633
	.quad	8141238991298342019
	.quad	7164020040653356780
	.quad	2814836231632118300
	.quad	-4861737062113229965
	.quad	5202591979494038426
	.quad	1127910790667652519
	.quad	-6920822985423975658
	.quad	3301366207485898413
	.quad	6431832465792903590
	.quad	-7582412974419695317
	.quad	-3546632258836743842
	.quad	-3174431613802983374
	.quad	8820497210187056987
	.quad	524498784914215643
	.quad	-2390873395273665655
	.quad	-4215149002184367008
	.quad	-5841517654914596521
	.quad	4542810958695073715
	.quad	2530017936726400083
	.quad	6275692909152232270
	.quad	-2746683301739589719
	.quad	-6984762643884367580
	.quad	-9217638970589220024
	.quad	5609498136400838761
	.quad	-2028819099805040040
	.quad	2841718513636111409
	.quad	-8163307183287521623
	.quad	5721418525339456561
	.quad	262100143969712254
	.quad	-2218228324427043061
	.quad	1893473262805633411
	.quad	-4342045985549612457
	.quad	-5984712686227067439
	.quad	-6843701520775281568
	.quad	-993431795919766547
	.quad	1148609799196055657
	.quad	5931758962926317381
	.quad	5297597381576544508
	.quad	9136842287749269744
	.quad	3007653173299649609
	.quad	-6082066466659872525
	.quad	3656932227466449489
	.quad	-7229336343093126362
	.quad	-3633040098981010939
	.quad	1953389714852675021
	.quad	1070168998074167625
	.quad	-7708361491848286260
	.quad	-4399955371081782477
	.quad	-2377984051090946652
	.quad	1226657789883369006
	.quad	7559068775949242684
	.quad	-3681585616484901824
	.quad	-862534701735053079
	.quad	-3369788059339844974
	.quad	-7787428787012710564
	.quad	-8608669956845551180
	.quad	4049016647891685873
	.quad	3858558195980270774
	.quad	179515083922221097
	.quad	4677332872262684537
	.quad	-8021699049008763219
	.quad	-7195636488211789219
	.quad	-3354871428250871621
	.quad	6988737013147620317
	.quad	705076449100814650
	.quad	2603992078160021864
	.quad	7470878513258136239
	.quad	-1461770752145207940
	.quad	-2974141061900021625
	.quad	5115587993968972416
	.quad	-4811630108945302155
	.quad	-6109111790250874626
	.quad	507120587531633408
	.quad	7648376979094752940
	.quad	-8127605228051461954
	.quad	-7062266037715614971
	.quad	7920984140979215876
	.quad	-3606705394386628104
	.quad	-1871281633492425090
	.quad	-2772564482170761200
	.quad	6338874496440924404
	.quad	-1623847460277386834
	.quad	6008810896523207539
	.quad	3823599696669837843
	.quad	-3246613924045662788
	.quad	3122012844728380397
	.quad	-3127383889490076303
	.quad	3063353870460505957
	.quad	6853050571186030400
	.quad	858568660474504686
	.quad	-7111264607623421644
	.quad	-8162286194048875555
	.quad	-265696786340152022
	.quad	8839829517531304535
	.quad	7577391533839580352
	.quad	-1720160867513389723
	.quad	-4641749169062061842
	.quad	8352308849534880813
	.quad	-713942947578556251
	.quad	-2353720781733755056
	.quad	-1418231839566942203
	.quad	6293028118993952199
	.quad	4019599708379609715
	.quad	3557632583507755601
	.quad	-1709604058421109451
	.quad	7041678499288317736
	.quad	2579601424244698563
	.quad	2158589948515331306
	.quad	2648005379100999001
	.quad	-5300454929116336610
	.quad	-7567905005831502639
	.quad	-3711845416096741969
	.quad	-6904716329143649222
	.quad	5665820681737820763
	.quad	6287490914982650303
	.quad	5393721598276889594
	.quad	9217620787928196561
	.quad	6205564182732805506
	.quad	-4916622688417905931
	.quad	875486055053587560
	.quad	-5122872431792280288
	.quad	-2864854371657979680
	.quad	-8849357352391591540
	.quad	6991461012843676098
	.quad	2443477290113686747
	.quad	4138932541994604781
	.quad	8125118477345529600
	.quad	-6983757493488502880
	.quad	-3439690850221571902
	.quad	-2568979411711716185
	.quad	-2455584151085550710
	.quad	-3424314684291652570
	.quad	3339673784897465990
	.quad	-1901921633053781439
	.quad	-4184823834098400456
	.quad	-7524500364679226674
	.quad	220857679636300563
	.quad	-7992205288086333307
	.quad	-8226087767353984829
	.quad	7403417109337325794
	.quad	-3158668636386865118
	.quad	6447946509511352760
	.quad	4386091210886072959
	.quad	-6281659791890881603
	.quad	-6012200418692509154
	.quad	-7428687901101501269
	.quad	-2948593347998881232
	.quad	-5340680920685988557
	.quad	-5381599686145479616
	.quad	7737531088522269693
	.quad	-8667021650838071792
	.quad	3378024122118372321
	.quad	213044517701779930
	.quad	100540326522399381
	.quad	-3766911454069461367
	.quad	1644897459652300799
	.quad	6921750207896255199
	.quad	1988150806860561009
	.quad	-8101299669830517864
	.quad	-6134879407246665618
	.quad	949389675788910898
	.quad	-8482587089507684678
	.quad	5187842645752673199
	.quad	-3532311529322236108
	.quad	4944360914161982641
	.quad	4177329533692612281
	.quad	-22856255863144490
	.quad	-6510845939159046397
	.quad	9191754399457615042
	.quad	962223885189306707
	.quad	-1078764977999992407
	.quad	5023948422089710349
	.quad	-2755385885598733057
	.quad	-4651736875362286939
	.quad	-7654572150027956807
	.quad	-5270668088526962207
	.quad	9082583145451111989
	.quad	7022539343629277324
	.quad	-2856362332967195603
	.quad	-4541922261166598182
	.quad	-8968297785886294387
	.quad	1568601806275969809
	.quad	-7496186030562599404
	.quad	-1249788347933521313
	.quad	891811366001009268
	.quad	-1397265085775186496
	.quad	1674682477349271592
	.quad	-4646275874019903369
	.quad	-5727517061615947972
	.quad	4300146886180262738
	.quad	-93816919329882902
	.quad	4393821427634137274
	.quad	-3283713470410366935
	.quad	4163611520776721656
	.quad	-2828809525166273227
	.quad	134874607114693415
	.quad	4507006351472289016
	.quad	6229201563344097757
	.quad	-7689442899488667949
	.quad	8213961235279438399
	.quad	-3464620449046368562
	.quad	-4720993778823406314
	.quad	5046515842321963645
	.quad	-2022501772891926304
	.quad	8480458330460365674
	.quad	-749826471072899554
	.quad	6253746917758714431
	.quad	-6238578791729708746
	.quad	5097828989522765137
	.quad	4289237170204798095
	.quad	8248105051564141931
	.quad	-5604375402693600025
	.quad	-8450928497479249677
	.quad	-4448484938341322076
	.quad	8877172598169876239
	.quad	-28435331466332214
	.quad	79325232392524351
	.quad	-5073312904354431678
	.quad	2908143565605155204
	.quad	5898849412982841254
	.quad	7700657717334389963
	.quad	580001897654021873
	.quad	-5019193953706837021
	.quad	-8058103255666584083
	.quad	558952900199861228
	.quad	8715849356703793921
	.quad	5467152559317256227
	.quad	-5039720945370171525
	.quad	656806207084558176
	.quad	-7623515481199977726
	.quad	282802378108427873
	.quad	-5443424421045385440
	.quad	-6945131401808307022
	.quad	8595770155487539951
	.quad	-6006810180140626142
	.quad	6042378343653332366
	.quad	-6090216138090450439
	.quad	-778875993532904505
	.quad	4440463470099026714
	.quad	4864697796044433301
	.quad	1611285138191976663
	.quad	-1539225202861750016
	.quad	-7773146542076058386
	.quad	1767491272151378893
	.quad	-6336696974734079947
	.quad	7146252601617386836
	.quad	3004083531790985566
	.quad	3382624711745858042
	.quad	-666284456722075101
	.quad	-6130476192992571854
	.quad	-3218234421383207540
	.quad	3095390543417799131
	.quad	5764464695876944550
	.quad	5526603352958976124
	.quad	1106132093570704161
	.quad	1630079478157068543
	.quad	3170270900511316903
	.quad	-6749730670431947452
	.quad	6725516729533380482
	.quad	-43308748639057774
	.quad	5259332733025105474
	.quad	3591226581224776668
	.quad	-2616732100407284016
	.quad	-9215770825878338244
	.quad	-7732247368294003002
	.quad	1301145793917758606
	.quad	6026549284798112772
	.quad	1862484868081949000
	.quad	4394576391604573825
	.quad	3684407446728813879
	.quad	-3438102062189485807
	.quad	-8355058700374524827
	.quad	-5798828405166207249
	.quad	2334611795370529089
	.quad	5731471033856024509
	.quad	-1577654015994193862
	.quad	3112396784014244043
	.quad	7317766499460129439
	.quad	7345282262770184024
	.quad	-125211845370001496
	.quad	-5855791730698977936
	.quad	-7858881156862892343
	.quad	497511795539666214
	.quad	4709841685044068397
	.quad	-8510178881270140657
	.quad	-8377986670438229506
	.quad	5757985557938185832
	.quad	-5344377253584728143
	.quad	7350424066286527161
	.quad	-7432529405118945275
	.quad	1805255869285898834
	.quad	-6769776372833506990
	.quad	3486630203654875772
	.quad	8366336693945605431
	.quad	-572659185234903737
	.quad	8803709150655606891
	.quad	680993178667234696
	.quad	1603785777136148315
	.quad	9194523390605857831
	.quad	2335161171394626054
	.quad	-6156253737165708457
	.quad	-5982571469553265428
	.quad	-2604547495676521642
	.quad	9081285134201585379
	.quad	6123406461662038242
	.quad	5504260508195082396
	.quad	-8847584826325045189
	.quad	-5435184113738295371
	.quad	6331802547989957841
	.quad	2642320882309956905
	.quad	9140255367820630480
	.quad	6883541786494880896
	.quad	-8885921635448800845
	.quad	-9172881396417849922
	.quad	-5867803984846100527
	.quad	4698579870843180556
	.quad	-4812563671914980692
	.quad	-2683613330314267594
	.quad	7444441842547931942
	.quad	4944622454458561492
	.quad	-8857587582918065176
	.quad	-3684415585473826998
	.quad	6185067974942684922
	.quad	6452325785873503452
	.quad	-3199486780793739364
	.quad	3689324664200339196
	.quad	3264129576054154137
	.quad	-3469022443494801578
	.quad	-7725830695771657360
	.quad	-2532256992945735238
	.quad	8926126498606164569
	.quad	-5490350067949781900
	.quad	-1544594585209965603
	.quad	7841840983349613625
	.quad	-7859690822241025508
	.quad	696362153501209498
	.quad	-8661993193450453430
	.quad	1207696323194229080
	.quad	6366297849225708271
	.quad	1653728037493780302
	.quad	924103820671018926
	.quad	2050213326049184692
	.quad	5527413390519421127
	.quad	129805527414320490
	.quad	-6895854501330749314
	.quad	-2778751451277884639
	.quad	3759028419971240833
	.quad	201899490644698259
	.quad	-1658861924731733043
	.quad	3755266958958128460
	.quad	-1449217916007866325
	.quad	6920710029293447897
	.quad	-4369442422669480288
	.quad	-7566599081264384741
	.quad	5498621600689515064
	.quad	-6947858269671598645
	.quad	-5749670955388073077
	.quad	-4447735594972317153
	.quad	4324885099420360642
	.quad	-4425561577517252150
	.quad	-7683655081126177773
	.quad	-5548158916043308317
	.quad	-9079684212924540769
	.quad	-2659596182565823961
	.quad	2519720658767337732
	.quad	-6852934528027899674
	.quad	-6480660261755798400
	.quad	-5685632757234465339
	.quad	5681625861426437827
	.quad	-2526156482099192803
	.quad	390729441391219522
	.quad	-1666185607467721273
	.quad	1374488446906327562
	.quad	-7581612160009318988
	.quad	-8331667861994019148
	.quad	-262727293033984784
	.quad	8365356477197603014
	.quad	672096097598251136
	.quad	2393424067712509928
	.quad	-1566832565955355317
	.quad	6441307574161100589
	.quad	2818743579517374412
	.quad	7083174841445248189
	.quad	3410683030590349702
	.quad	-3749160046110019940
	.quad	8328975445543175696
	.quad	-6824341690187710028
	.quad	-175017097504781325
	.quad	4805501248621435402
	.quad	-4963621620027370857
	.quad	-9158600547054586002
	.quad	4688427612851085031
	.quad	3280806057528512375
	.quad	2249349779106893174
	.quad	6807440366000180651
	.quad	-2047291952483236369
	.quad	5098169947999459087
	.quad	3558234272787006753
	.quad	1792969085845015294
	.quad	5524357634740353242
	.quad	-9017499537713034671
	.quad	3937357214017147760
	.quad	-2941875464665065649
	.quad	6752328153557303622
	.quad	3778610801922734369
	.quad	-4615773388267570971
	.quad	8715733351182855585
	.quad	-4476184321970837120
	.quad	-7035967942331380790
	.quad	5487441016062951646
	.quad	-5284489770197626330
	.quad	1500183854026947752
	.quad	6344593292969383689
	.quad	-4478206907415866087
	.quad	3100593991852309751
	.quad	464141462036312207
	.quad	5107705843278430088
	.quad	1965835506583809167
	.quad	2317249352525369754
	.quad	-3415946592628018448
	.quad	-6209153497401267256
	.quad	-2786667081098110743
	.quad	-7105728254008815729
	.quad	8280257602754365719
	.quad	9212501234696283343
	.quad	-8773368871568373517
	.quad	7956373320734772967
	.quad	-7507206760789965992
	.quad	1623498699254524685
	.quad	-4017684875197439366
	.quad	-8109388642246151405
	.quad	-3733889505115168927
	.quad	-740136503940230944
	.quad	2736332650404864519
	.quad	-478395270437795829
	.quad	5919348002718416412
	.quad	-4197349482448447238
	.quad	3846565683758018400
	.quad	6804832486235116660
	.quad	-2395078047116071222
	.quad	7269769264852814622
	.quad	1383407609047786643
	.quad	6977992726279347717
	.quad	7408840996748999072
	.quad	-6932507103140955869
	.quad	-4832265656340813203
	.quad	-4339841913429072340
	.quad	2680079215817805604
	.quad	6983054925746629119
	.quad	8945191120182348801
	.quad	1576552382781604867
	.quad	-3801870939360770459
	.quad	-8585864123340994522
	.quad	-5504816642005325767
	.quad	-6487077334657049432
	.quad	-2275591704482957301
	.quad	-82449603052977556
	.quad	-3273884678774336032
	.quad	-6625977817348722438
	.quad	-5443149045965935863
	.quad	-8085639651299967005
	.quad	1433549891573588284
	.quad	4309304459435987299
	.quad	-8338332173485794890
	.quad	1930779113148310498
	.quad	-4138709970287857228
	.quad	-5571674442403253023
	.quad	5226572148356154500
	.quad	8469761025722039771
	.quad	-8451199960181179087
	.quad	1223902850139143857
	.quad	3784239240876671737
	.quad	3995862596636852419
	.quad	-7070519360949075495
	.quad	-8093276013918156831
	.quad	-6663547170362110777
	.quad	199020342461815684
	.quad	-5331061863117670188
	.quad	-5477350659795615171
	.quad	-5174778045009099996
	.quad	-1281600228848809421
	.quad	6485710192283074429
	.quad	7521577570681641021
	.quad	410124023045579310
	.quad	-4640209484526224440
	.quad	2731801491329207875
	.quad	-8487656130695282067
	.quad	-2241108628234894395
	.quad	-6377598157940615986
	.quad	-3540280564237869472
	.quad	-3279707985964092091
	.quad	-6124389485328830022
	.quad	7204115048206811790
	.quad	-7899602900002765962
	.quad	4264807483000359730
	.quad	-5585612134839706246
	.quad	-5328294694008528257
	.quad	-3024000538075703539
	.quad	2524633594681082540
	.quad	8322713278180488529
	.quad	-2705623532591705700
	.quad	-2524614826648074566
	.quad	64456102748557386
	.quad	-1450833991006005720
	.quad	-8846615841222818754
	.quad	2498775202317832456
	.quad	-6937773509639853699
	.quad	-8158304337299397159
	.quad	2897074034008148886
	.quad	-3742030700261337840
	.quad	-7581147707663817856
	.quad	381827771516815170
	.quad	-5362546551316153731
	.quad	-7510839902489366009
	.quad	-4643082534100224704
	.quad	3233094883493439444
	.quad	-5037001385389795693
	.quad	4298169788674760921
	.quad	-5599107402149484182
	.quad	6702365884489797170
	.quad	5650404576647289813
	.quad	7380374625644226212
	.quad	-414369813732010036
	.quad	5071259372249470803
	.quad	-7284281988194322865
	.quad	-8478405545421964481
	.quad	-6053716862780910465
	.quad	-6994932782034412929
	.quad	3524571196596636215
	.quad	8873539100803163757
	.quad	7649760047081914415
	.quad	-4458548812353045472
	.quad	-3514227753409606964
	.quad	7294042473323727221
	.quad	-3547961205937373233
	.quad	9130619004518281771
	.quad	1269721428245542435
	.quad	8897466505358682523
	.quad	-3803306870832150798
	.quad	-7730151395251273529
	.quad	-4934514848249539537
	.quad	-869990551564506502
	.quad	-8277474622942145940
	.quad	-597080577239860514
	.quad	4129988458653297417
	.quad	-8899120180629540821
	.quad	-8684210063007927888
	.quad	-3097630270898522592
	.quad	8305297169667044246
	.quad	-433725863555075418
	.quad	-32694064546215855
	.quad	2190126859433916996
	.quad	5444481274452218807
	.quad	-5030755426343883892
	.quad	9041271723819086899
	.quad	-3970163176352475771
	.quad	6396734860288390637
	.quad	-3384814304062996963
	.quad	4349482573110383529
	.quad	2604279854922185008
	.quad	-1588547097614414659
	.quad	7617579596938852506
	.quad	4750812679536301890
	.quad	6286761494445454483
	.quad	-5629124602403437820
	.quad	3085039869663802626
	.quad	-1276020433030053599
	.quad	-3658977147928768019
	.quad	6328857812219334327
	.quad	-3263012145261420968
	.quad	5356357501037846292
	.quad	-4304106323935174869
	.quad	1417181448928237713
	.quad	-3633705694203099256
	.quad	-1496174642823656908
	.quad	1980114967081543273
	.quad	1735566556048259308
	.quad	-8663052542711531419
	.quad	-5907980606874657347
	.quad	1385338113050483955
	.quad	-957743040118784243
	.quad	-5712279131871665091
	.quad	5762578105750980174
	.quad	1466528690684075875
	.quad	4231060025049573530
	.quad	-7228299224627847330
	.quad	2883795134190037649
	.quad	-6579333527351919038
	.quad	7532183406209785543
	.quad	-812628508821770587
	.quad	-319030116672173549
	.quad	4545713522454252807
	.quad	3193309082386480169
	.quad	642719412248695081
	.quad	5760092418006801470
	.quad	844477580328901779
	.quad	-2833829066087374149
	.quad	-2903391773537213281
	.quad	-6067867694784741607
	.quad	1960733840439431487
	.quad	7737217287958589142
	.quad	-2697096826862143759
	.quad	-7050296723818993695
	.quad	8942360321282300795
	.quad	7729285962646984743
	.quad	4916611092356357009
	.quad	-7625950530927146865
	.quad	1413471490007740618
	.quad	-5098349805951947697
	.quad	8619010039233615908
	.quad	-4926304821044590665
	.quad	3770430920651384098
	.quad	-172120855903647069
	.quad	-6901476456826291359
	.quad	4084783424859113779
	.quad	-4582775096051887749
	.quad	-8208908593060976918
	.quad	7395611844854084274
	.quad	7622335304179595031
	.quad	-4658243074391495140
	.quad	5330731818025950571
	.quad	2876795301998353998
	.quad	5534364786461435900
	.quad	7208131572377501442
	.quad	6517535795485464953
	.quad	-8026481722479126991
	.quad	2019790127623926053
	.quad	-5420437742492302707
	.quad	5800300225942481821
	.quad	-241675874011098062
	.quad	1574414347112332550
	.quad	4057130938402555626
	.quad	6071391196793714212
	.quad	-4830376758161325317
	.quad	3975272669756582083
	.quad	549674895463314722
	.quad	-3529285973979148574
	.quad	1063019146382139116
	.quad	7947513376270044742
	.quad	4874637993477078126
	.quad	-6224667886996224948
	.quad	8970964113236582327
	.quad	-5555558330800554350
	.quad	2889148203703402614
	.quad	663579373261619221
	.quad	7616112456816883701
	.quad	9002890885722034437
	.quad	-7693013265917620241
	.quad	3553894671829778441
	.quad	4368240432504457389
	.quad	-3914857736956891701
	.quad	-7886237248944967217
	.quad	-1518303343688134781
	.quad	5079515920039394259
	.quad	-917561403960337168
	.quad	-5001757019165301465
	.quad	-620475237892885388
	.quad	6734090701336616944
	.quad	-3276606040225379938
	.quad	-2157546860254905122
	.quad	7673700262458981681
	.quad	828146198492192228
	.quad	3588072222758376399
	.quad	8870576478710329117
	.quad	-2194206717256048484
	.quad	4871678109477873232
	.quad	2422250946117693764
	.quad	2140954442620660842
	.quad	-68381011878006920
	.quad	6267687063280538213
	.quad	6867478026315760625
	.quad	7047406583435424118
	.quad	-2291914770373624681
	.quad	-7891032589257172850
	.quad	-6805211849369341410
	.quad	71261001011952801
	.quad	2321745415903209397
	.quad	6595984444855093239
	.quad	-8105444415939278898
	.quad	-6916865384660180686
	.quad	-4065233378104393413
	.quad	6869272773579747365
	.quad	3119986907724304659
	.quad	-6449647676857172874
	.quad	4143999385595933881
	.quad	6378882787266004238
	.quad	-7353423759703773408
	.quad	-2566768018400547902
	.quad	5977052365717118472
	.quad	389013924149298971
	.quad	7714410398215849619
	.quad	-1087665321056306198
	.quad	-4244826508975463827
	.quad	4659121321401213243
	.quad	-8602514483636368160
	.quad	-2287745710355075711
	.quad	-90972241117223137
	.quad	-290021102936173707
	.quad	6755797121354642328
	.quad	-5728929343742603419
	.quad	-5872910195848700239
	.quad	-2778693076974611574
	.quad	5958364278149998144
	.quad	-729937860341059267
	.quad	8508567795363159938
	.quad	2585131277323473861
	.quad	-38974073797211105
	.quad	-4644870658479166432
	.quad	8080153703167941484
	.quad	-4303280178526853745
	.quad	5248006623352376562
	.quad	-9174761285586617341
	.quad	-7221582894687858996
	.quad	5076519449784098178
	.quad	-3000106121286176874
	.quad	-2455614480798366673
	.quad	8764659116460173730
	.quad	4009731525713015074
	.quad	-8382453526844601078
	.quad	1424248495857667482
	.quad	-4151028595566420818
	.quad	-8596174828318811512
	.quad	-2627597892773206428
	.quad	6722761475729311534
	.quad	-1567926247252372162
	.quad	-7250690997814111183
	.quad	8195075789131498960
	.quad	-6839296325413280025
	.quad	-131635481630782012
	.quad	-642409870761220212
	.quad	-8106749496331656902
	.quad	2320902391845350619
	.quad	-1381678638113126411
	.quad	5587894536583854705
	.quad	1957423612291295478
	.quad	-4211818387240579827
	.quad	-2382824397522093505
	.quad	-6616944813508075672
	.quad	2388868518767189674
	.quad	381125256886459269
	.quad	-7129939048727315131
	.quad	-6775388737597633905
	.quad	3564177948445768908
	.quad	5245093046097324328
	.quad	-2302604182299510577
	.quad	1201010948447708436
	.quad	-2747060108776322733
	.quad	-6985241410316237091
	.quad	707572013763325559
	.quad	4992063686801587697
	.quad	4587524226901541580
	.quad	-7861586182197338361
	.quad	-1592539889435432762
	.quad	-4795979994461967828
	.quad	1666017180076530330
	.quad	6004140644121048435
	.quad	-504645676820752396
	.quad	-2868310510477730465
	.quad	8973191488461660866
	.quad	-4223742199263861757
	.quad	-441721686518860341
	.quad	9029922344379627304
	.quad	-2956450262925302504
	.quad	-3494380333524042429
	.quad	5839484751854851734
	.quad	-6123593713427009413
	.quad	-1959635724253708601
	.quad	-3032768527815673588
	.quad	-651248405343201617
	.quad	58757208239772322
	.quad	-1855711610852880960
	.quad	533850935988668408
	.quad	2263232738784171066
	.quad	5572124915367282948
	.quad	-5862961219217873145
	.quad	-3431181866445143963
	.quad	1167486851113549964
	.quad	2987176661273439670
	.quad	8409905341618573364
	.quad	-643194552246463008
	.quad	-193077825886879514
	.quad	155845552265897352
	.quad	-7146683412832532434
	.quad	-8689612595226304909
	.quad	-2700499391075272311
	.quad	3268974524553520275
	.quad	-996752117548247236
	.quad	-1665172265389526813
	.quad	131403896769547280
	.quad	3599379441042401529
	.quad	8880942203395474334
	.quad	934094176163901016
	.quad	-1196394279904452331
	.quad	-6499416754384841964
	.quad	2336397867714683719
	.quad	8738748793413051706
	.quad	-3091764027958190584
	.quad	5738164193753068168
	.quad	-1468047202867251446
	.quad	8313866041725984294
	.quad	8214745711677244025
	.quad	7646146042347052259
	.quad	1073778278665127828
	.quad	301289653767944933
	.quad	-6964419292759383299
	.quad	-7820027871381546649
	.quad	7258024014655363102
	.quad	-5849095983250983738
	.quad	2617914106162603499
	.quad	-6122091429443075032
	.quad	-5618176685588051252
	.quad	2264959796189127526
	.quad	6222205589523394088
	.quad	8827682270015065013
	.quad	2619170858745203321
	.quad	-3611713956610153098
	.quad	5960028394532808010
	.quad	2233397097850889639
	.quad	-2127267210357111075
	.quad	-8162813357852911273
	.quad	-771689529177453169
	.quad	-7185611910724309532
	.quad	-4734027175727790216
	.quad	2681907143459288706
	.quad	6930256922080133347
	.quad	1445069157579547822
	.quad	4936455810324835023
	.quad	-2814471818801898289
	.quad	-3312154479275085094
	.quad	-3437980236767194119
	.quad	-4062486294311512050
	.quad	666844667454097332
	.quad	-8287219251754955046
	.quad	8246219081971151874
	.quad	-1518169205242165730
	.quad	166417019993787654
	.quad	5882811520342817815
	.quad	-4340439894365543551
	.quad	3747123724781081800
	.quad	197109533566874475
	.quad	-4143463477994762166
	.quad	-2989111047691244550
	.quad	-4785071413942834901
	.quad	6516947725569042308
	.quad	-8032797849978464613
	.quad	-390647981498400216
	.quad	3458410552657159609
	.quad	-8801616653185347304
	.quad	-7152789884001351610
	.quad	-173744343946681970
	.quad	-7673146562116966757
	.quad	-5893875485278476976
	.quad	-4945972306549124781
	.quad	8002499270056378440
	.quad	-4653904973710998442
	.quad	-5497372817866289497
	.quad	1713974340992291550
	.quad	-2296570943225893555
	.quad	8289896195564130399
	.quad	6232814840274890437
	.quad	5117813281308912497
	.quad	8273017370173385631
	.quad	3739499165040997338
	.quad	-6282286234158736792
	.quad	-5035710908102173419
	.quad	-8127605564787803661
	.quad	-3700759817281494615
	.quad	-9113036735672566425
	.quad	15365925315303462
	.quad	-6657615045649931872
	.quad	7873100217437235208
	.quad	5289763977161829145
	.quad	-715528873351227828
	.quad	8876377479309635703
	.quad	-7776171445472808300
	.quad	3110410016152884372
	.quad	-4611442516000736599
	.quad	-6735610088689221980
	.quad	-9047331120528915410
	.quad	1360042932539203511
	.quad	4294793946299823836
	.quad	5097659346800106855
	.quad	265950821974454804
	.quad	5047467530470542278
	.quad	-923699705192931815
	.quad	-8392307570336786440
	.quad	-8125558206422178185
	.quad	1212061937729015591
	.quad	-3135485654570917690
	.quad	-7210225535502466848
	.quad	840621797840030617
	.quad	2002807010126610582
	.quad	-8393446542987797253
	.quad	-8664171046119354099
	.quad	-1023529730476644570
	.quad	-1800247532595462879
	.quad	5463009741095162976
	.quad	1294192910208705227
	.quad	-7542050117302453394
	.quad	9013418755007070130
	.quad	-2936738473863230946
	.quad	995378633446250700
	.quad	-6212649048190633780
	.quad	6689106237771514188
	.quad	2809193993744369126
	.quad	548124799387888260
	.quad	-1463651175357068741
	.quad	-3880724743575954406
	.quad	1170630690777074250
	.quad	-7289235527183143813
	.quad	-7546590681103462409
	.quad	-7712247195738262608
	.quad	7138561024928108503
	.quad	2861096094570532713
	.quad	267350765778774337
	.quad	2853877351938464055
	.quad	3677119082593358544
	.quad	7685335121077514739
	.quad	6491980094762370981
	.quad	1384870316654548002
	.quad	-7877871728480555118
	.quad	241629538659623878
	.quad	-4512565194217164462
	.quad	2252251102976113670
	.quad	7879929444757191444
	.quad	-269152971028187954
	.quad	5327870035079555885
	.quad	5420040178470774168
	.quad	-8334850704068110807
	.quad	-2186002154583159291
	.quad	5839400175629113441
	.quad	5238299193248381245
	.quad	-1658867657686664301
	.quad	6051613843621920008
	.quad	9219569873668974552
	.quad	5916753090530931032
	.quad	-5056113859066127867
	.quad	3265335490455191268
	.quad	-4025912579709473002
	.quad	-7404199684454510047
	.quad	-1956202304636082148
	.quad	-7311070784264077947
	.quad	6954013843543107729
	.quad	6021360124089902293
	.quad	7693080900925236257
	.quad	-3716955659430251900
	.quad	1507475744849985303
	.quad	2597075068965622770
	.quad	-3478074959792284690
	.quad	597606442423659891
	.quad	44293923912414886
	.quad	3832651144752540816
	.quad	-1007884008096355806
	.quad	782112340603343331
	.quad	-6421545411499368124
	.quad	6107434681768286750
	.quad	-2973650644918731807
	.quad	7042836935695342666
	.quad	-983295544513198596
	.quad	-7137476297962320256
	.quad	2797109283316011419
	.quad	133787192773085550
	.quad	9050896199196733903
	.quad	6427608033444590004
	.quad	-4659047394172929759
	.quad	-8764657026789142428
	.quad	4519093754155995429
	.quad	-4882645681653884245
	.quad	-7934236991473492817
	.quad	5289934424008191746
	.quad	1753994695121805659
	.quad	644956456590542823
	.quad	3828087013336232938
	.quad	7443578378780487932
	.quad	8902939391925370382
	.quad	8791966182967953313
	.quad	-7089098637125049404
	.quad	7055531652610954860
	.quad	3477191607403300916
	.quad	-163499843964522549
	.quad	8462159792484018099
	.quad	3056576498976014760
	.quad	7259283167233712785
	.quad	-5916492108669647618
	.quad	-8214639139988926505
	.quad	-4255998075617394629
	.quad	-6793368694565433508
	.quad	-5239688475038877898
	.quad	-8278914914040869354
	.quad	-8035861609943369536
	.quad	-2364016747593609763
	.quad	306157175475916419
	.quad	-7421069877401189270
	.quad	7037367921072731027
	.quad	-2687382038298655705
	.quad	-2371145635748180085
	.quad	4651513528876405575
	.quad	7694151626503869614
	.quad	-3977881349071579332
	.quad	1838601521755586245
	.quad	4168957446435305706
	.quad	8694905613027663664
	.quad	-6640073931418792919
	.quad	733844136896123043
	.quad	6189360917669366959
	.quad	681441285865168762
	.quad	-3207201049326455384
	.quad	6065344171436408934
	.quad	2799439427491282476
	.quad	434049246425817918
	.quad	-3621191234726400182
	.quad	8639609968952840931
	.quad	-2898829489357159600
	.quad	2313507499500708287
	.quad	6902543375698033684
	.quad	-8459275187693202698
	.quad	9068175779860656258
	.quad	6899641689193116297
	.quad	8682135570170960067
	.quad	-1153938254622161276
	.quad	6763165145200278245
	.quad	-8143892750339323483
	.quad	7977914457408253562
	.quad	-4853747768552722114
	.quad	-5370751337477693603
	.quad	-6167526700932524756
	.quad	7449110402827616954
	.quad	5689206471789540768
	.quad	-5724675051758737947
	.quad	-2429612672463317953
	.quad	2240977975275954837
	.quad	4794705713606614946
	.quad	5734937900461809607
	.quad	118285984764445639
	.quad	-5738306822380231270
	.quad	-8563608930410877542
	.quad	4621768181642003667
	.quad	3608050511850863173
	.quad	-335749425135533563
	.quad	8286639750731432617
	.quad	5478744300676863361
	.quad	6584821651300105381
	.quad	-4529058426177829876
	.quad	2432096911145792817
	.quad	-713106589085392095
	.quad	3848601825403209903
	.quad	8192433211051054683
	.quad	-1058677651795400849
	.quad	-4110437764861986334
	.quad	7501625553608785022
	.quad	7844834653688041760
	.quad	8204160026809524443
	.quad	-7639223976841977460
	.quad	3774456649182227431
	.quad	-9195966800344761579
	.quad	741301317335281779
	.quad	1016552137843463015
	.quad	-2932982030503266134
	.quad	-8602036481298599401
	.quad	8167497709587672711
	.quad	-331280672206667417
	.quad	8471563375691441535
	.quad	-921339033483192451
	.quad	2460181803833371342
	.quad	3375780580907171205
	.quad	3024376384135966552
	.quad	-2477337518460116693
	.quad	4549762398350030841
	.quad	1921125162363517766
	.quad	-4541453405796156607
	.quad	6165689440517787933
	.quad	8458593234549256575
	.quad	-2163383745373620014
	.quad	-5473147424155890343
	.quad	-3000539094990734702
	.quad	-8314974376453122896
	.quad	-7509575412859997859
	.quad	-6272486673399625375
	.quad	4774490771219074715
	.quad	-4681867074972780276
	.quad	-4147692597162777578
	.quad	-7037192444615605723
	.quad	5943703624601868505
	.quad	-2911041167205085713
	.quad	2660162926884569751
	.quad	-6073635254317566156
	.quad	-4691932053657598916
	.quad	4302111858835206118
	.quad	-3752194887676347537
	.quad	-3201621261960491530
	.quad	5471366060803425265
	.quad	5927845172343647238
	.quad	-5124776643904356071
	.quad	1981489848211999240
	.quad	3657997933879283852
	.quad	1341488083977381854
	.quad	-7445743638725378941
	.quad	-5780303361581101313
	.quad	-8796831309106856330
	.quad	-8564291802970403842
	.quad	-4515751508005777958
	.quad	-4301113449049820562
	.quad	8932182922893590013
	.quad	-6326505049999310866
	.quad	-7830722679837191768
	.quad	-4075996409979821994
	.quad	2127920575549495889
	.quad	8861781778185702064
	.quad	-7945487120722798482
	.quad	8967441017586595593
	.quad	-6222379312550132772
	.quad	-6590438486530806096
	.quad	8176487286367052930
	.quad	4988165299911239066
	.quad	5356126171521244632
	.quad	996279894013475978
	.quad	6884497568284871897
	.quad	-3996614368743292147
	.quad	-1491835239615345499
	.quad	5156259258071555814
	.quad	-7220922928173150881
	.quad	-1146766293057866166
	.quad	-6167031111320553307
	.quad	7552494563001503282
	.quad	7388800608466198128
	.quad	-2742576402451808099
	.quad	-665465300615918643
	.quad	6688613358271814698
	.quad	-6185480975342852721
	.quad	2585757657252460656
	.quad	4954919660787206730
	.quad	656505007707154003
	.quad	7785517114888058237
	.quad	-8038106501917490198
	.quad	3590510954154331116
	.quad	-7656884581626464564
	.quad	119200672912327669
	.quad	-5779014255616638785
	.quad	-1382666464497924021
	.quad	-4009679207104293964
	.quad	-4060335172240930401
	.quad	-3511058807177186416
	.quad	-2096478088217729046
	.quad	5195856143474093260
	.quad	4623415440658404410
	.quad	2936315929072503688
	.quad	4317843773687322698
	.quad	-8620111338576736191
	.quad	-2665494169027726122
	.quad	3672601247948271294
	.quad	-1122390025832366470
	.quad	6962942883666174128
	.quad	8091122355383072080
	.quad	-3662599318820646880
	.quad	-47296389446481397
	.quad	-7152030393941208967
	.quad	1600242588657342501
	.quad	2841752419388937826
	.quad	-3335430340959272149
	.quad	8179471361906256467
	.quad	-7834820284956743750
	.quad	-7622746992925470323
	.quad	58033486787398116
	.quad	876150471625306219
	.quad	-4983696679456631088
	.quad	7819469397812022140
	.quad	-1653795921274501506
	.quad	6632644585329390476
	.quad	3042077502051118084
	.quad	2564300704497291857
	.quad	-2839709687748998037
	.quad	6934034624930683639
	.quad	-5128125478935121157
	.quad	7552865293216027192
	.quad	-4754103664713559431
	.quad	-7303430852772727602
	.quad	-1724744741368722229
	.quad	6993089466645938014
	.quad	-7048448257891995501
	.quad	-3853955056191822724
	.quad	526139752565920769
	.quad	-488368607689894510
	.quad	-7630938248140540895
	.quad	4152973486890711240
	.quad	2850621377081709174
	.quad	-5583259664828952824
	.quad	1749509641415861857
	.quad	8597876492914031095
	.quad	-504519883571153310
	.quad	1760222146515426983
	.quad	1030117883582412628
	.quad	6655464189981098460
	.quad	-4223843934132742579
	.quad	-5405572579742351597
	.quad	-539140921602631481
	.quad	-7630786640921266532
	.quad	-573914325853546486
	.quad	1502409286719700579
	.quad	-5524576023923000854
	.quad	-2607734760942921750
	.quad	2341229452969325696
	.quad	2395279107519375910
	.quad	-6031410568634793549
	.quad	-1458074880445675583
	.quad	-7964170432293000546
	.quad	368049292090348794
	.quad	-2337488148185656449
	.quad	4949934055388640387
	.quad	-6408264541202894826
	.quad	-7616879624015770580
	.quad	5698634187431491107
	.quad	383687939578819050
	.quad	-5606490450489882551
	.quad	6315541259361775875
	.quad	4480309899134808914
	.quad	-1700772292608316748
	.quad	-3271431762306946798
	.quad	6703933535351527005
	.quad	8355401100656399994
	.quad	-1483047611171517855
	.quad	-8315091642685013699
	.quad	4166156454906166144
	.quad	-5558503661519315020
	.quad	8396312458335953166
	.quad	445297814986468978
	.quad	-7934448243475530872
	.quad	7923367587468382756
	.quad	-1456759669750147597
	.quad	2793048503353797939
	.quad	-4115693587021264112
	.quad	3226129905285347003
	.quad	-7885164824946585751
	.quad	-8365204167839345752
	.quad	4522236527936300051
	.quad	-4041507301361393926
	.quad	6950094157338825845
	.quad	-5067286948689494003
	.quad	-7050023213947991356
	.quad	-4383376920136724657
	.quad	4476298515903789197
	.quad	-5738306199794052756
	.quad	8163633089770520638
	.quad	5464154961017359198
	.quad	6576577032745362348
	.quad	-6726281539599166923
	.quad	6836585763891021139
	.quad	-3530961248250096121
	.quad	3148084638253437584
	.quad	2973801179201877164
	.quad	-5402800007065876686
	.quad	6432708226771955694
	.quad	7524978005081948959
	.quad	6442046223716866789
	.quad	4082077252385606982
	.quad	-4819764253867893611
	.quad	4264573835620574342
	.quad	-3658426383125316488
	.quad	4710414518172449402
	.quad	1523135975298970496
	.quad	5853995047364899730
	.quad	-5713608538521408338
	.quad	558203006009964555
	.quad	-1773880996191508423
	.quad	1962418671340486314
	.quad	5757615584523548913
	.quad	-1010482133883391754
	.quad	-8853977699052161776
	.quad	3206081438027351157
	.quad	-2433041384397018115
	.quad	-2658215351107983804
	.quad	-132545622643427766
	.quad	-5210055381634556957
	.quad	3229858297074852748
	.quad	2968037605940641303
	.quad	-8651404034889606043
	.quad	-3818688902449402556
	.quad	5313434695788114411
	.quad	-9097962444291230072
	.quad	2079177033318537135
	.quad	2446434008701077051
	.quad	6515677826828239251
	.quad	-831689903969009316
	.quad	148470760067500612
	.quad	-8126806174518957736
	.quad	7185467485673911733
	.quad	-5405713681784562966
	.quad	-1326901379884703954
	.quad	-7457690900859841285
	.quad	-2398449364982738517
	.quad	6612710923681979611
	.quad	-2820906665872666971
	.quad	-3836372617887689062
	.quad	-3689817255728817765
	.quad	-6566892212281820336
	.quad	3193035991481401780
	.quad	-2161981033367755384
	.quad	3819971004718073312
	.quad	4995668726694666180
	.quad	-1038137364572046611
	.quad	4263600430695220256
	.quad	8941719936291239640
	.quad	6115030817534063286
	.quad	838024703679813150
	.quad	-8674672970386001438
	.quad	-4052053894602129995
	.quad	8621372196164819917
	.quad	-1818610842417643406
	.quad	1799093078902603172
	.quad	5489914471720498625
	.quad	478855596931312770
	.quad	-6187439979754807906
	.quad	3621249467249177064
	.quad	3057120784821428188
	.quad	1638491401344021850
	.quad	-308019089518624807
	.quad	4154767406604950048
	.quad	5209478936276366634
	.quad	-2977231924804788744
	.quad	3613429290324777670
	.quad	-5814931156264091865
	.quad	-8166565011324502575
	.quad	19656860716268566
	.quad	-6416550346658310243
	.quad	-4465552941264084144
	.quad	-241574427502646023
	.quad	-6284562879662967730
	.quad	-7516818574509477558
	.quad	-3154971315119199125
	.quad	8452344520852919320
	.quad	8199821440451878776
	.quad	-8570261610208142279
	.quad	-1115699056161404564
	.quad	-904017137128819068
	.quad	8299195336372136083
	.quad	-5554976352440549008
	.quad	-4384385301334738269
	.quad	4165127680073507756
	.quad	-2096071336330056185
	.quad	7595271959296927018
	.quad	-3159972449888160987
	.quad	980612661413312852
	.quad	5738158184597378995
	.quad	6972117550390447038
	.quad	6246497134979772260
	.quad	2935831443692029059
	.quad	-5609372544549054956
	.quad	-8218377429289096164
	.quad	-6362478667357274269
	.quad	-8180874397215729724
	.quad	3560143954870272139
	.quad	-4077968848100958927
	.quad	-5273222006518178703
	.quad	3592475039513249949
	.quad	-7203189355084620481
	.quad	-2486851915895486920
	.quad	1882528744932347842
	.quad	3354709518288681174
	.quad	-4298834897279568979
	.quad	-5476855648445456102
	.quad	-5937133326450948968
	.quad	-8009517454024919579
	.quad	7605683691113295811
	.quad	5697384515599291245
	.quad	-3550662852648236586
	.quad	4329502046122948975
	.quad	-2144789563268732124
	.quad	5191621061031169335
	.quad	-5502052248893485589
	.quad	8080452646904372453
	.quad	793075614214301908
	.quad	2662373477940179766
	.quad	8950125653339535995
	.quad	-2728944992628653312
	.quad	7088593450282143511
	.quad	-6723392542215146712
	.quad	38673945663198753
	.quad	5289769381065195334
	.quad	1742280067441486108
	.quad	6543255501112359319
	.quad	6063422531520498671
	.quad	-1218017818931307207
	.quad	7570754775709645369
	.quad	-224347581208028434
	.quad	-3542806098892859803
	.quad	1216646642383641441
	.quad	7602781158453005929
	.quad	3007861146695764376
	.quad	8267227185027440857
	.quad	3177625538211272080
	.quad	3144345182124760000
	.quad	9215753228267875296
	.quad	1342253891473772992
	.quad	8185239004636232247
	.quad	-3495555646628270632
	.quad	-7876958526460565428
	.quad	3109435167722572449
	.quad	-4785620855196194174
	.quad	4646373703143839998
	.quad	-8733915647632964934
	.quad	-7057229920734055348
	.quad	-8649917449928351118
	.quad	234067627740956181
	.quad	2188380882990542468
	.quad	-8532492743847956497
	.quad	-4830524198610198022
	.quad	-2310824948685731398
	.quad	-7714550276143463323
	.quad	7172996278550642736
	.quad	8531638916719074975
	.quad	-3697622382252546267
	.quad	-3877961497538736900
	.quad	-863895641586814110
	.quad	1079387064102681806
	.quad	-1168176198887876208
	.quad	3094302191119669899
	.quad	3730448048895347901
	.quad	3508894590334961422
	.quad	-4355083130790323510
	.quad	8414395549498864629
	.quad	370884714015114625
	.quad	-8587613822473448274
	.quad	-1326461979624581435
	.quad	-3233457492672531587
	.quad	2737545283554254673
	.quad	-6024095466665276042
	.quad	-7845620248226960010
	.quad	7332173975514924017
	.quad	6689389428877729175
	.quad	-3284089896439126296
	.quad	-1113071863693814851
	.quad	-7729128743572675350
	.quad	-3201663265762165461
	.quad	-8616412105665408683
	.quad	-2290231979365365995
	.quad	9151817936103586393
	.quad	3495709317444898385
	.quad	-7565078764762093393
	.quad	7087755261386867019
	.quad	-73915304804339449
	.quad	-5572969828219258173
	.quad	-5696382166938788361
	.quad	-758354176358663900
	.quad	-5117710324660572806
	.quad	4765695903433858377
	.quad	4452680451529163940
	.quad	5638854187414651620
	.quad	7897503022043776206
	.quad	-1259108535703982597
	.quad	-679990878212024630
	.quad	-5245214839153171331
	.quad	3638940913491383692
	.quad	-1913526685544570007
	.quad	4668956005988168087
	.quad	-4393047542004727634
	.quad	-6417737410465408782
	.quad	-6403434790262376015
	.quad	7840964186868745782
	.quad	5691369519440953069
	.quad	8500871974974230561
	.quad	6371833132372813539
	.quad	4002756625312698938
	.quad	7281624589760047276
	.quad	8813214993155334737
	.quad	7738842112797657395
	.quad	-5830679688469883305
	.quad	-6571034874076019863
	.quad	-5366080116306231557
	.quad	7305658810888170771
	.quad	-6444111919791878402
	.quad	-3733405501678138122
	.quad	-6817565411692774083
	.quad	-6777513663491909290
	.quad	6563025945717173284
	.quad	-2557113869043039958
	.quad	8934119620399766972
	.quad	4226481091885914732
	.quad	-2446034878705106319
	.quad	-3758875892780704683
	.quad	-2176830680951654709
	.quad	-152738235268226274
	.quad	-821074460158528490
	.quad	-7582437031507907147
	.quad	1539179629859629979
	.quad	3357767843775461146
	.quad	2101360073251832751
	.quad	-1212662642026873486
	.quad	-7599459902087301454
	.quad	2314478515498414576
	.quad	-916590691677683972
	.quad	-2235853311197931772
	.quad	-1513978348233317364
	.quad	-471858534250585904
	.quad	40892050255466590
	.quad	-4512716130900761026
	.quad	6621543269907021363
	.quad	-6649891752575377262
	.quad	-1772968300324938479
	.quad	3370296079966463186
	.quad	-1484229814277178483
	.quad	4639769064050336100
	.quad	-1481595485382823936
	.quad	2922022742538957808
	.quad	-1694364091340001320
	.quad	-5550693321216887537
	.quad	2708685629936199207
	.quad	-552685513876127429
	.quad	-3724213642432132512
	.quad	-6113015664047074789
	.quad	4162946257347548625
	.quad	7052045338975163666
	.quad	-2010868084333447693
	.quad	527141841571514699
	.quad	8480360258792897962
	.quad	4322786951393806781
	.quad	-1080514055710367562
	.quad	3121469063237497918
	.quad	-1542764698316747362
	.quad	8204447732627807538
	.quad	-7977736610802250588
	.quad	1938243801077680483
	.quad	-8290520321740782524
	.quad	-4156602296952279942
	.quad	2576841693080637380
	.quad	-493768007029187256
	.quad	4927209893946473523
	.quad	-6040297652760852646
	.quad	-342075626434872416
	.quad	-7125197991773761734
	.quad	-6683739312754826076
	.quad	7488613143173641394
	.quad	7566233859107262691
	.quad	-4380845021066012379
	.quad	-1290098608252465087
	.quad	-6509893315811865123
	.quad	-916750248314018867
	.quad	-1301499034310881380
	.quad	-849734494329967184
	.quad	3472628483897995694
	.quad	-4065941038892402357
	.quad	-7404609476278705061
	.quad	-8453981268569351069
	.quad	-8551600498031040374
	.quad	3228768306004664915
	.quad	-2293629393490010373
	.quad	-6410562431948225704
	.quad	491369524302296324
	.quad	6378343037075212083
	.quad	4634622317247307316
	.quad	3415247351446435530
	.quad	5939760313513758783
	.quad	-8905941829491054218
	.quad	2134082884335789009
	.quad	-2823110231521107903
	.quad	6824600547587227473
	.quad	2021901489047050575
	.quad	4365578779519871721
	.quad	8603845379677060773
	.quad	8929020214929242215
	.quad	-5436373120104302343
	.quad	8071113541575997356
	.quad	-7764829285115450042
	.quad	-5077221801045521787
	.quad	4241327321249984516
	.quad	-5636267066076686866
	.quad	-1566162439611690918
	.quad	3630333431846970294
	.quad	3439918565119627078
	.quad	6613942714960548236
	.quad	8647431674406387604
	.quad	-5094144718163746261
	.quad	-6125810649024591540
	.quad	8906954611339502145
	.quad	-1515035341162175349
	.quad	6446897311644431583
	.quad	-4697180816996021413
	.quad	-6924144303665737232
	.quad	-3991187857750208825
	.quad	9022955938835504923
	.quad	2814895014668543527
	.quad	3170998216439345204
	.quad	2095119776828786185
	.quad	-4410687503761935882
	.quad	-3920827483997856382
	.quad	-4599653742450708162
	.quad	8625321100541342779
	.quad	-5767385373830511952
	.quad	767145122089777618
	.quad	-2591016839242203141
	.quad	-8027854777751050454
	.quad	1618295378581074193
	.quad	-2482616420166776839
	.quad	-4847874826151195465
	.quad	-4468359561074315364
	.quad	-7530229927059442113
	.quad	1256133949407280544
	.quad	-95867801955124082
	.quad	-3322547784697055962
	.quad	1928394436538268162
	.quad	2043066856601038237
	.quad	-8963476061651067893
	.quad	5256547364241479331
	.quad	4039184641047522925
	.quad	8738648866901281761
	.quad	4688741093801776285
	.quad	-1377061432899026193
	.quad	7158141773766072053
	.quad	-6985810283070672370
	.quad	687134766504463570
	.quad	7796313120876518884
	.quad	-7296292342390416452
	.quad	-3461754104875583887
	.quad	2428180365886445884
	.quad	-1960445887591610730
	.quad	1760382028459815812
	.quad	8227905959749561385
	.quad	-7770914320009103534
	.quad	7081483525874380425
	.quad	-849554903746447712
	.quad	-3891368217331653365
	.quad	8156602817823633340
	.quad	3584830548372145591
	.quad	-5757963735588563764
	.quad	1355694211162129755
	.quad	5126665553245503586
	.quad	-698522985321605415
	.quad	2512272081107991751
	.quad	-5307488249319277203
	.quad	57896807618455496
	.quad	893985653252080733
	.quad	-2859403630791671683
	.quad	-3778685432653717809
	.quad	-8339742951160096808
	.quad	3175465493410480347
	.quad	2353371589433924889
	.quad	-4794059262174286016
	.quad	8494726433844453583
	.quad	-2446764521662338876
	.quad	-2013508280806697674
	.quad	-4805440173407154826
	.quad	418630713805776951
	.quad	-5355946980012185733
	.quad	6529658430803752768
	.quad	-7114148540797244019
	.quad	-4760505652699793433
	.quad	8048623726458299026
	.quad	2882513811674125287
	.quad	2468655604118556628
	.quad	-1215064650393739366
	.quad	4722112427992703588
	.quad	-7035045846183845973
	.quad	6223613411164166842
	.quad	-1557360053467103240
	.quad	6163106303997039610
	.quad	-7875043219398747109
	.quad	506346556161200988
	.quad	8289034742042618095
	.quad	6457760299243959401
	.quad	-8955109536574513547
	.quad	5138804881373099443
	.quad	-890512780781265550
	.quad	1701348509779609425
	.quad	-65075700264230928
	.quad	-4323112375064927673
	.quad	-7574349911043359623
	.quad	-719423936457602428
	.quad	2755252157096034641
	.quad	3944614182924380177
	.quad	-8904248944621970143
	.quad	6699683662731923419
	.quad	5017219913619823514
	.quad	-1401007579121411343
	.quad	3578045824537114332
	.quad	-3211834062253399905
	.quad	4392310298224006475
	.quad	7774141988473733019
	.quad	-8585034544449374705
	.quad	2204152254187945245
	.quad	-4474898251597863598
	.quad	380468493184769432
	.quad	-4075513998623466037
	.quad	-5840934765466916664
	.quad	-3734724236794946648
	.quad	9207535182444676615
	.quad	7744945849971153557
	.quad	1821948112844729187
	.quad	2638495411146344382
	.quad	-1714352462690672126
	.quad	3833087854000026503
	.quad	2008921615481205257
	.quad	-7794888596419957926
	.quad	-9068631293290517609
	.quad	-7136280212890016290
	.quad	-7992664708845428897
	.quad	6217727103302808051
	.quad	3608286521320722010
	.quad	-4428831727153102050
	.quad	6169315601718725743
	.quad	-8892577255197588265
	.quad	-5395780853146031486
	.quad	-2134864134004343977
	.quad	-5985446449127300228
	.quad	-8769012474443782394
	.quad	5160679975931966230
	.quad	3218707041599533629
	.quad	-1348660539325059593
	.quad	2330141721984719029
	.quad	-6350209207234645759
	.quad	-9167829956230294569
	.quad	3922100463139373716
	.quad	7359009470631951574
	.quad	2436968313210033176
	.quad	25761139783387805
	.quad	-2377348439542045968
	.quad	1571876064952066247
	.quad	-6953798694134825401
	.quad	3455174154331656239
	.quad	53467426608366675
	.quad	2556038731691866331
	.quad	2820415466863272178
	.quad	3087738006928978577
	.quad	-3376524589717121704
	.quad	3326048561346931368
	.quad	8748369615925341354
	.quad	-5916217526091693952
	.quad	2757872731250806148
	.quad	8799745667294657794
	.quad	-682994495444434847
	.quad	7506944160810941970
	.quad	6468129574866749200
	.quad	-8805739805452479748
	.quad	8245975647138927146
	.quad	-6949944982822026345
	.quad	1709462103065191917
	.quad	-45214396025658412
	.quad	-4475200661959850899
	.quad	-3339056905892767814
	.quad	7171906080161032790
	.quad	2549191081579169610
	.quad	1631748748525225172
	.quad	-7103510861012583747
	.quad	-6471945701169366365
	.quad	-631065833107816064
	.quad	3897689470958443582
	.quad	-4259191819410135432
	.quad	8565639145037295775
	.quad	1668396724473345743
	.quad	-4992067188805256756
	.quad	723511646623899791
	.quad	-3622191652675398759
	.quad	3741552387552673547
	.quad	6438330120309843556
	.quad	-5482821166908977014
	.quad	240980989760775462
	.quad	2147937155510076073
	.quad	5834511789002890754
	.quad	-2376641663749178068
	.quad	-8394594544100717305
	.quad	3513839394175217869
	.quad	2731711675049369215
	.quad	4403935341610336273
	.quad	7329288148876238832
	.quad	2893341365645469340
	.quad	-1195247463152403501
	.quad	-5389761155476329506
	.quad	-2125666486064324705
	.quad	-2573100845821887760
	.quad	7790198561388957118
	.quad	-8907223497402576041
	.quad	-3211850797596593292
	.quad	-5447046696641191194
	.quad	4001792501823047046
	.quad	4058611841515865881
	.quad	8270124677240215004
	.quad	-3368290862297488898
	.quad	-4705228652428365293
	.quad	4935785083543013782
	.quad	-3428029807784682228
	.quad	-2122812532378742226
	.quad	7519453144279957382
	.quad	6993254554012597411
	.quad	8067741479959053397
	.quad	9075768681671233260
	.quad	-5105569500910210536
	.quad	-8302709259525469116
	.quad	-3652424217588166026
	.quad	-8097086535082413259
	.quad	-2353913357751540555
	.quad	-8505493613718158406
	.quad	-8132738167067914573
	.quad	-5764897755213117818
	.quad	4491181496332778178
	.quad	-7799701380977997426
	.quad	-5280155255808181301
	.quad	3296539577666718289
	.quad	-2277183616762725673
	.quad	-354779830638025124
	.quad	4341876361632902705
	.quad	7532668331381251135
	.quad	-3100362312890561211
	.quad	-145410509621472469
	.quad	6565096728885044125
	.quad	2494845330727350075
	.quad	-2813589514184167075
	.quad	7461593943566649234
	.quad	-4135766245806512025
	.quad	1181158813535685769
	.quad	1996493145432142546
	.quad	7233693581981799122
	.quad	-8137067078413802427
	.quad	-7375841410170079483
	.quad	906953754074238396
	.quad	5024031267547709091
	.quad	8569261169124113434
	.quad	5452904955698206516
	.quad	6455583968217412999
	.quad	19648195772733923
	.quad	1940528866733322557
	.quad	7369347593873414721
	.quad	1649918716002241744
	.quad	-7149693442547920779
	.quad	7988648960504141411
	.quad	-2428378847339361077
	.quad	1275070075296525335
	.quad	8618971887080694349
	.quad	8647772781513048551
	.quad	-195237863588039101
	.quad	-3712544407359779825
	.quad	4159865781008764547
	.quad	4413963548436270853
	.quad	4489431649937855880
	.quad	2824856157476907519
	.quad	5111945927271461159
	.quad	-8621257252304396396
	.quad	7657332565522279292
	.quad	8798422177670065832
	.quad	1250388939918922012
	.quad	5145324733132743026
	.quad	3716299737175574168
	.quad	-4059541180971037241
	.quad	-8191062713814144127
	.quad	8563822744122397080
	.quad	-16326359789435603
	.quad	-7516138897684469786
	.quad	5850835312463207607
	.quad	-8843580669044944835
	.quad	-2822972269767411932
	.quad	4096748595672894276
	.quad	-5386126906887713876
	.quad	-7223804360968270270
	.quad	-1565179116297906
	.quad	929118050943456183
	.quad	445163760697913504
	.quad	7208246135487165437
	.quad	-4881389856331710467
	.quad	3835063466770003968
	.quad	8214155842021576753
	.quad	2078717035803259674
	.quad	-5944086253208563853
	.quad	6251805914672095769
	.quad	1063060143452094078
	.quad	-1799346903154636528
	.quad	-2991788337389632295
	.quad	-6937508969102202518
	.quad	8441647766544589978
	.quad	956121464218389431
	.quad	-7693950161675823467
	.quad	7004802666964716824
	.quad	395433501626287206
	.quad	-1772592165430152612
	.quad	2279551165611331131
	.quad	-414188332905906826
	.quad	3573953642384243989
	.quad	-8554263569703526516
	.quad	2397759375236735831
	.quad	3227890727136855788
	.quad	-7674466329429213545
	.quad	-8381524142617153886
	.quad	-1213037627072760275
	.quad	1372997838851103811
	.quad	-4016645331849555770
	.quad	3290287064497023581
	.quad	-5392610158188120920
	.quad	-2742533048545990467
	.quad	-3850064995292781350
	.quad	-8184566927475614783
	.quad	-6003738404457253300
	.quad	1541294166390346144
	.quad	2952804996209068760
	.quad	-3088263057436278736
	.quad	1321729586231860999
	.quad	-8938359485386549420
	.quad	4786531415304518048
	.quad	2690306308552249535
	.quad	-6237928558020180766
	.quad	5145548243685871201
	.quad	1536915039528215765
	.quad	709289946127949333
	.quad	7152734178531880864
	.quad	-5098215310565165630
	.quad	8174978337870000956
	.quad	261860806345683810
	.quad	4561309263594732686
	.quad	973813267913726588
	.quad	5812176512716041479
	.quad	-4084895676144480381
	.quad	9009461390894364897
	.quad	-5684113507649452852
	.quad	-8684098953562552888
	.quad	3635705124656800121
	.quad	3295681695622364165
	.quad	1764654124266477879
	.quad	-1836678521280262629
	.quad	-6263773878840039192
	.quad	1144643512390613083
	.quad	5981893063992017591
	.quad	-6666287793700993816
	.quad	6865399120670384939
	.quad	6192294124015342683
	.quad	-6058366108433272734
	.quad	754882660516751393
	.quad	-4970650003834978025
	.quad	1000347292494612314
	.quad	3531275996684891316
	.quad	-6681792561675676452
	.quad	-6207429174403435865
	.quad	-5745519638436464419
	.quad	152051042384837402
	.quad	47099568832954431
	.quad	766394328496626388
	.quad	666084094458729910
	.quad	8272548370610798443
	.quad	-4536309322134948767
	.quad	4252192981011400377
	.quad	-8856224722004840633
	.quad	4172183866405471444
	.quad	5567646223402949380
	.quad	6059725713353637560
	.quad	7169982539312028092
	.quad	2354260355218724624
	.quad	2822702976206523812
	.quad	-2629259841411883489
	.quad	8389777239766813455
	.quad	7962301702220496539
	.quad	8489354871723216960
	.quad	6637394823950686331
	.quad	5853452396705295777
	.quad	8777708254369249245
	.quad	-564439342977526428
	.quad	3127583543205765491
	.quad	-1172277648548731367
	.quad	-5576562603497258152
	.quad	5881181695848312122
	.quad	-3108582221279599984
	.quad	7245877162563127935
	.quad	-8818838320344975179
	.quad	-5670287651543270261
	.quad	2851899644189834214
	.quad	-1448569876789171622
	.quad	9001602524188761177
	.quad	8960294999163663712
	.quad	6580949973363012183
	.quad	7568306074815116797
	.quad	9164337073600720355
	.quad	2611024095679536906
	.quad	8962264074704861969
	.quad	-3673066744355075486
	.quad	2960704752906986213
	.quad	3703257448253384832
	.quad	-4629479939460542411
	.quad	-5411883007495565493
	.quad	-2547991725739716293
	.quad	-7860388652707538621
	.quad	172300167312977368
	.quad	-7258165750243428204
	.quad	1247058236060537262
	.quad	1474890503711840607
	.quad	-4890336672216530318
	.quad	-7654513152454232676
	.quad	-5132700172041243977
	.quad	4065523557166437008
	.quad	-333870816829510468
	.quad	2545620706652295126
	.quad	-7346631125294913160
	.quad	-7571581756452187873
	.quad	6784564454697109613
	.quad	-3171092907600801459
	.quad	-120436498672223113
	.quad	-7697827485174824692
	.quad	8727957757879243636
	.quad	-6655820928987876498
	.quad	6543965183749680505
	.quad	-40470071534566590
	.quad	17001240360214555
	.quad	2667709634460546173
	.quad	-411686071688466497
	.quad	-683405135068438408
	.quad	-2905817777870201492
	.quad	-1873257537957886395
	.quad	112993938039343744
	.quad	-1725362063678804162
	.quad	3020525467785808508
	.quad	-1146338196323026164
	.quad	-7316722089505118874
	.quad	-8109104199833709863
	.quad	8856251478592519749
	.quad	1868838992096069592
	.quad	3293445730930428912
	.quad	-878788819561729321
	.quad	801438624803185600
	.quad	4300786687774437980
	.quad	-3129889728006417307
	.quad	4299632702320526742
	.quad	8518210863373335957
	.quad	-2380765291907455847
	.quad	-5608009883712805771
	.quad	-6865393236525939157
	.quad	3459547619244188552
	.quad	7917362899436953932
	.quad	7686633626025788546
	.quad	8110394872630496906
	.quad	8482210436161892079
	.quad	-1563888910149665725
	.quad	1154081680627148904
	.quad	-5642519306948761222
	.quad	1850455828762691082
	.quad	-4255628722803191989
	.quad	4359146492342448234
	.quad	8380148522500203696
	.quad	7623771325137541282
	.quad	8983847957020718456
	.quad	-1556767945622217314
	.quad	-7150976935060643745
	.quad	8337167713524449186
	.quad	-2470495843070749630
	.quad	-4098794907333253690
	.quad	1827445351954251543
	.quad	-202289776610384934
	.quad	-7152281735291990112
	.quad	-7081779801859719509
	.quad	-1449466064556051855
	.quad	7364326452210752746
	.quad	-8332828970515227792
	.quad	-3691908302599881715
	.quad	-7249639088979120113
	.quad	8369979755635620240
	.quad	-8960592314015185231
	.quad	-5255061835833654014
	.quad	-7117583457125187693
	.quad	-165962604748010291
	.quad	-9208649314694662973
	.quad	8471285726110347558
	.quad	622543918992040498
	.quad	2628051317702385859
	.quad	5200745810095714015
	.quad	4026075561451461560
	.quad	-8461276219831220812
	.quad	4585492407890221400
	.quad	951141433520594186
	.quad	2354117178401665254
	.quad	-5505789199639773929
	.quad	-3273233889407360768
	.quad	5437987250564702568
	.quad	5422080933895800064
	.quad	5023747693567837853
	.quad	-2628708505734431796
	.quad	4276672615222729665
	.quad	-5020083260553599512
	.quad	5305194907506280465
	.quad	8272303140702756608
	.quad	1299934702432255626
	.quad	-936800857502360891
	.quad	-3471865256779210000
	.quad	-3160680612472833295
	.quad	-3244200890731454327
	.quad	-7156044991148820511
	.quad	-1633002120774314366
	.quad	-8334921555521804357
	.quad	-200544923491875754
	.quad	3128432456634034995
	.quad	7121687404740116363
	.quad	1978837378388394420
	.quad	5445924978805136914
	.quad	-5101362076940298602
	.quad	6278048669175242345
	.quad	-2456394387873681465
	.quad	-2088482111417364824
	.quad	8505261070637963021
	.quad	-9050019008610987170
	.quad	-3114790722659769461
	.quad	-2251947734501230411
	.quad	1877344811198967012
	.quad	-3168958406158994275
	.quad	-4232619684829222104
	.quad	-3809326600746034949
	.quad	2471985143502150890
	.quad	-1468214487659718415
	.quad	-4599402798282554931
	.quad	7451894726474559814
	.quad	-11578302818111477
	.quad	-3532574957593784964
	.quad	-6792565307511899850
	.quad	1987690733784495918
	.quad	-619903354756389455
	.quad	-3553255459805153338
	.quad	2851989053594437990
	.quad	-3768447086550577148
	.quad	-7162568793296733892
	.quad	6612088097480071337
	.quad	5022787019384405122
	.quad	8136874207800844370
	.quad	-5773785388946090607
	.quad	-1559429753739607527
	.quad	-2426476661175685060
	.quad	-3644468395695758532
	.quad	-4704583605336511005
	.quad	-2512764939888294147
	.quad	-8019785458746631724
	.quad	3277258244502637646
	.quad	-8500251440850631665
	.quad	-6496081957891315702
	.quad	5309238643040418213
	.quad	9060262758339719510
	.quad	-197919693671911438
	.quad	-6056469885759194213
	.quad	5770570003601029470
	.quad	-6935018444688795654
	.quad	6892047936186309655
	.quad	-5093493763659877463
	.quad	-8035728895654210128
	.quad	3357818581500096805
	.quad	-8657379281663705861
	.quad	-7651402638135814429
	.quad	7310026349917611868
	.quad	3187580973140311841
	.quad	2155734801688510295
	.quad	1192185256583763523
	.quad	6912629989383829972
	.quad	-4800071348890847034
	.quad	-5414125254811552298
	.quad	2768145810192822251
	.quad	-7704866307762364655
	.quad	1378315132329576940
	.quad	7760230889935967638
	.quad	-9000507919300973908
	.quad	7330523591892182729
	.quad	7004286823959074959
	.quad	-2940845475346616687
	.quad	-1621533218729947635
	.quad	4697782190623959274
	.quad	-9076240672252777374
	.quad	-5571903846001589213
	.quad	6119547445810629810
	.quad	-8682580064652057396
	.quad	5416853666956021065
	.quad	-1704668396441556643
	.quad	8105772486513569860
	.quad	-5871249181756721796
	.quad	-8699671335385516268
	.quad	1416870563912930701
	.quad	8772113608049087425
	.quad	4351676015308138050
	.quad	932851469939668605
	.quad	6800909208491672758
	.quad	2383027350104721949
	.quad	9085375194240117494
	.quad	7556807304476240885
	.quad	-7032565365766926538
	.quad	-539474710825317005
	.quad	-4284399098644563171
	.quad	3619647655011315771
	.quad	2455991503005687816
	.quad	-1153957129530889269
	.quad	6658626745779303545
	.quad	-3845420354391272304
	.quad	-8876014140618228659
	.quad	-3502428589400527859
	.quad	4845850854359910127
	.quad	2261403787832053489
	.quad	7704768526442268181
	.quad	1594417939071167990
	.quad	-8990731761282946202
	.quad	6927559124135294427
	.quad	-739984267371590775
	.quad	7437109198803212868
	.quad	-3395616514713067973
	.quad	-147957714184745779
	.quad	1985877768215344743
	.quad	-2498747054480681490
	.quad	4481562217779963391
	.quad	6830045481116471692
	.quad	-4867357082184101228
	.quad	-9031305001865025942
	.quad	5293233765991623746
	.quad	-3306521918175384068
	.quad	-7958786899840549360
	.quad	3917316372220061478
	.quad	2609208181799444115
	.quad	-4540650900838626046
	.quad	7949412961997271362
	.quad	2108650386314561170
	.quad	8533195390734609954
	.quad	3551302702314410936
	.quad	5965015271796253434
	.quad	-8503059348374029461
	.quad	4383932738091436407
	.quad	3352262936116669607
	.quad	-5921577664786658359
	.quad	-1567457662182523870
	.quad	7218179204340691355
	.quad	-1366870296484347482
	.quad	7699498684510298360
	.quad	-1904458446639816747
	.quad	200751785530104649
	.quad	6985944962584804095
	.quad	7365545959109847649
	.quad	-3581356318330227504
	.quad	4167319688751668987
	.quad	-6284260559862207642
	.quad	6412016868861665756
	.quad	-7012212447462034868
	.quad	-6265254151716534523
	.quad	-2424235373221722327
	.quad	6661615148618396526
	.quad	-8751591573214186022
	.quad	-8619784598039109307
	.quad	-6169714961008962127
	.quad	-4830744115624754062
	.quad	-5814444824943841207
	.quad	3980976448519837129
	.quad	-965115920412534750
	.quad	2016689401722023670
	.quad	-3506425471014703296
	.quad	-2905401161578635740
	.quad	-7493040606138430014
	.quad	-861751338794152828
	.quad	-4215515433152363415
	.quad	5305495020117957057
	.quad	7714482034903530936
	.quad	6719318437106831007
	.quad	-4358638838966919660
	.quad	1029400161599655372
	.quad	-818057386081422429
	.quad	-2412026423590021174
	.quad	2922565430933573144
	.quad	3912423587373664141
	.quad	8665200847907303488
	.quad	1326870645138725687
	.quad	-7748971892375254147
	.quad	-284801998902238618
	.quad	-8799630553806905433
	.quad	-3686090520388890552
	.quad	878036330390749911
	.quad	7149173999395309148
	.quad	732475115962378887
	.quad	-5700822758650342674
	.quad	-1107287363694175864
	.quad	2880190515488473559
	.quad	2406782940610202776
	.quad	1759667220535919913
	.quad	-3183949500706894349
	.quad	3387829899503486710
	.quad	7197683207709754712
	.quad	-2215790883649826907
	.quad	-1697116947197338671
	.quad	5937281524522669671
	.quad	-4860047317504530797
	.quad	3967594010007060085
	.quad	7454497000872182627
	.quad	1790976318157847551
	.quad	-6140790112346802214
	.quad	5188686128499594827
	.quad	-850989974676407970
	.quad	-5664379008471143565
	.quad	613875861964160014
	.quad	1039980316046001816
	.quad	7207503221801597145
	.quad	-7855063915387262791
	.quad	-7180343753133994162
	.quad	-7740468678068111299
	.quad	-9158349125824935408
	.quad	-8279210088702789198
	.quad	1456585988309878747
	.quad	-789978843496135838
	.quad	-4889884721568981634
	.quad	4213942448058151161
	.quad	-7232271214126923011
	.quad	-8990867681967745274
	.quad	-8365331529896618551
	.quad	-3421865339956809966
	.quad	3442858281986192333
	.quad	2501901876809100848
	.quad	-357661718355439485
	.quad	-8442372377776328499
	.quad	7059046595490535851
	.quad	-6847794209618998520
	.quad	-8890237841813568348
	.quad	2866431305337216259
	.quad	-4901615733749581106
	.quad	-7975826125784111805
	.quad	1787432812667363549
	.quad	-1887317565562950477
	.quad	7198134361134378731
	.quad	2748127762485687022
	.quad	-7599755603181779891
	.quad	3006688456660898038
	.quad	-4627964106630749985
	.quad	-3302689317461286999
	.quad	1662204402817415331
	.quad	3029965040941505537
	.quad	-4090960855389276510
	.quad	6056938352083354522
	.quad	447327932362286040
	.quad	-8873967494970660957
	.quad	88835208981298815
	.quad	5758674814230632433
	.quad	1567526783882804269
	.quad	7707332587499226499
	.quad	876779188384641856
	.quad	-3288263308979259012
	.quad	3354847573041789664
	.quad	-2089378612737125626
	.quad	-4996300443253027480
	.quad	599314660823320542
	.quad	2169470768195241439
	.quad	6635073491202979459
	.quad	-7422328567385934642
	.quad	-206296135225145229
	.quad	-1977779960725814659
	.quad	5285856075772316001
	.quad	2661159982987197022
	.quad	-7961056428575891880
	.quad	-6392705026999016824
	.quad	-6403126710231054013
	.quad	-7865709705310650116
	.quad	4342677382014956713
	.quad	6345875314617197172
	.quad	-5053590439574574366
	.quad	6777861939078578666
	.quad	7076257175157660597
	.quad	-5225013194394119152
	.quad	4499548735964119085
	.quad	7559253754663705944
	.quad	-8249935634979201448
	.quad	2391718471837563931
	.quad	914409564589897387
	.quad	6649744842278078706
	.quad	-4066400193479236365
	.quad	6834909096379668102
	.quad	-2470904136936915938
	.quad	7738230945027714388
	.quad	7971648870467745046
	.quad	8320128435052726628
	.quad	-7626718017284920155
	.quad	7058118462476293754
	.quad	-7281305556388261774
	.quad	8661037418831619311
	.quad	4401480924846865713
	.quad	-9091093704807425360
	.quad	-4094321529523787787
	.quad	-6178712479179806953
	.quad	-839246805132206833
	.quad	-5747789646939589402
	.quad	5091534986326281709
	.quad	8005812102849517353
	.quad	-1080247387145365899
	.quad	3658878980438307796
	.quad	8455810244524637026
	.quad	7649393961871195909
	.quad	8629386422022530934
	.quad	507133797409068858
	.quad	-8347788928728537851
	.quad	4095621933458866623
	.quad	313357785962326778
	.quad	-3566495017500153209
	.quad	-7841116619598547354
	.quad	7841561005378789988
	.quad	5015399193497762029
	.quad	5818383539901203899
	.quad	829322392873083372
	.quad	3459913121476606612
	.quad	4547714508342797986
	.quad	5801286056105229312
	.quad	-6855607913034237347
	.quad	-480898586482773056
	.quad	7022309609363885527
	.quad	5990586084398664157
	.quad	6288277991521986035
	.quad	-6215263456473265276
	.quad	8633990423689180869
	.quad	-4911553798419062926
	.quad	-5027520205545161717
	.quad	-824011476995885407
	.quad	-8374964853069151592
	.quad	-8995083608827248611
	.quad	-6685659308527399215
	.quad	-9219774900467475157
	.quad	5445719591917489914
	.quad	-9075610898855726050
	.quad	-64876837744968429
	.quad	-1183855849708329270
	.quad	1934253649802391267
	.quad	3574888052111089863
	.quad	-3176664527101838949
	.quad	8471883658965202468
	.quad	-8113537832140286874
	.quad	7414741159725097798
	.quad	7709713706668701850
	.quad	4461310100162632915
	.quad	-8347549769684866342
	.quad	4760203118683828795
	.quad	784143359277603248
	.quad	-2932154391848053216
	.quad	4131024411374659852
	.quad	3624433493936743696
	.quad	3251402229976672212
	.quad	4649659622203715244
	.quad	926933500763282104
	.quad	6444675794782453444
	.quad	3756269038539504739
	.quad	7020323719189662644
	.quad	9035687928909659722
	.quad	-7835163327454656710
	.quad	6310976205075048332
	.quad	-6670729626692405721
	.quad	-253200485282087909
	.quad	-5505040321077132506
	.quad	-5188397865757294454
	.quad	-3709437144113284002
	.quad	139896257833059475
	.quad	5049568122463438631
	.quad	-6186282753120485589
	.quad	46497756452454082
	.quad	-3260993967960727609
	.quad	3681406295924007900
	.quad	2833339165549332500
	.quad	-145981640830729693
	.quad	-5194938272211614304
	.quad	-647903178727776675
	.quad	-7787028656345186673
	.quad	-9205330647843532440
	.quad	9144746556705463526
	.quad	-428270880523775335
	.quad	7436336871105679313
	.quad	3718902224813103412
	.quad	8186181643677715434
	.quad	-1264165505734089274
	.quad	659724975715028710
	.quad	-9021045213049548760
	.quad	796351253238186633
	.quad	-122800639811310039
	.quad	-4946155735931421282
	.quad	-3303704273703526136
	.quad	5471884014140775766
	.quad	8599189774825271733
	.quad	-4383301358711341423
	.quad	-1316084174496673472
	.quad	2181888550891204616
	.quad	-4852655948722018062
	.quad	-2230642220272640850
	.quad	-5144611173888262301
	.quad	8876723129840557561
	.quad	2026846371223185778
	.quad	7753254296964005427
	.quad	-1839378209412682942
	.quad	1800351426181020953
	.quad	-5973220901665614732
	.quad	7237168574323016859
	.quad	-537933966204583479
	.quad	-2221035945871373495
	.quad	-7319648086732447968
	.quad	-9100452765392141365
	.quad	7381283458277047010
	.quad	-3278141258337704673
	.quad	9193719743691734294
	.quad	-6343120243085659954
	.quad	-2885363672306535706
	.quad	8042875911544209108
	.quad	3396235594648975915
	.quad	-873244551819009120
	.quad	-3346324067100171766
	.quad	-7708535163508220680
	.quad	-7378906860932382076
	.quad	9093763692491166797
	.quad	1319679215868525952
	.quad	-3118178622520121657
	.quad	3542209339458003134
	.quad	-2391312830661639312
	.quad	-3021284710334854179
	.quad	-6526998460476880669
	.quad	-7226144289124375575
	.quad	8740973789273917036
	.quad	-750611768093677152
	.quad	2937794293644500428
	.quad	6982332029748716823
	.quad	-4402830325170335160
	.quad	-1589942171049408809
	.quad	5498657685576047922
	.quad	-8765461526855750774
	.quad	-6052218757840146250
	.quad	250869802474248999
	.quad	1911232427976362028
	.quad	-6709704537583596287
	.quad	-1282532312749169090
	.quad	-7846401307638172714
	.quad	6586640283108264498
	.quad	-1062596221559288954
	.quad	5714469319068462202
	.quad	-459742389828850137
	.quad	6337691169560078565
	.quad	651865535100163003
	.quad	-6011747069549285342
	.quad	-2866327022888674570
	.quad	-2970174484287477083
	.quad	-6195199636333198656
	.quad	664461412471769720
	.quad	5999857285079620143
	.quad	-7568726780685315876
	.quad	8989717176698079236
	.quad	-8745616371433358467
	.quad	-7917423517428361838
	.quad	-7076057238191878084
	.quad	-8826529867500358370
	.quad	6094320048423779486
	.quad	7856504781045405611
	.quad	5604645120293628843
	.quad	1475687485539085841
	.quad	769990456626896612
	.quad	-381719877069927531
	.quad	4638132242759104625
	.quad	-1011926958020404663
	.quad	-7220074137225314531
	.quad	4294103218857985472
	.quad	-2120521107200802975
	.quad	-2755286192698169834
	.quad	-346593080034478349
	.quad	-2367564324750518980
	.quad	-8370737058716583009
	.quad	-4923454774376068202
	.quad	4881932263871937741
	.quad	7769924608400238162
	.quad	-8902695964482611314
	.quad	-9148904471884678531
	.quad	-5935562699971325067
	.quad	-436787848133874672
	.quad	-4582968941172769775
	.quad	-4564907589191332561
	.quad	6844479118644658974
	.quad	-10381951910252220
	.quad	-715436242729797364
	.quad	-1630129883862797889
	.quad	-2627422032583569463
	.quad	-7172823310095371241
	.quad	5873549961185442782
	.quad	929568673534793820
	.quad	-7317488664653337776
	.quad	2639358016250121574
	.quad	7222475912116652275
	.quad	1838271984777847441
	.quad	7998579818876392777
	.quad	8797645401616693326
	.quad	-1714636552411840688
	.quad	-7950145759401914326
	.quad	3682456535663631718
	.quad	751805568401216041
	.quad	1164203657818551599
	.quad	2873370576603003347
	.quad	3043460064507006082
	.quad	-351222687931433233
	.quad	3274844949419341609
	.quad	-8218347218327091895
	.quad	214377502899847974
	.quad	4264917013444292658
	.quad	-4962411746235699275
	.quad	3553257225702199163
	.quad	-6911920808873949360
	.quad	3143015712871302517
	.quad	-1930543030168650832
	.quad	1934917360602834801
	.quad	5041477084201047664
	.quad	-1703176636410879954
	.quad	1088552552058961567
	.quad	6827223985517945668
	.quad	1527281362497804745
	.quad	-4106397124781231954
	.quad	1633450178438491220
	.quad	1119141930490921352
	.quad	-2549240814301721996
	.quad	3045736560271458193
	.quad	-4882592945899293642
	.quad	-6909001418263418536
	.quad	8869884762765409424
	.quad	-6369098530471561832
	.quad	-4667554648428986242
	.quad	-8135726207185398554
	.quad	-8839489113983093205
	.quad	-1609587256522619754
	.quad	-2268600765002704223
	.quad	-7476022278607620077
	.quad	-7606367795104278524
	.quad	8298765077094727469
	.quad	-2926201035798584773
	.quad	-6962123691761789054
	.quad	863609134605291587
	.quad	-5890252620082114814
	.quad	1855527926892854021
	.quad	8210093972158392874
	.quad	8615513074453422386
	.quad	7444787774482383888
	.quad	-7486697116637890210
	.quad	-86818581214330702
	.quad	6482731699319968362
	.quad	-5205446171277177828
	.quad	-1361649220470517589
	.quad	4803388821400282524
	.quad	4054021282039499947
	.quad	3123239987023645384
	.quad	-8473795754726282517
	.quad	7116185560438594328
	.quad	-8222796682844135993
	.quad	-4332483654297333189
	.quad	-7891147004243182154
	.quad	3437074383786623962
	.quad	-552358926981631079
	.quad	-1327673698896894040
	.quad	-6864161175142408457
	.quad	3127488661841841544
	.quad	8668064687934459607
	.quad	-2026650482224933964
	.quad	-7046662241339810628
	.quad	3471757482992831133
	.quad	-8788001640324349586
	.quad	8522059543049091756
	.quad	5115980434648006059
	.quad	3872487263022798017
	.quad	-1718804197016822551
	.quad	1096519114155832430
	.quad	6956708903591980362
	.quad	8146003551705647142
	.quad	5893354808929504497
	.quad	-5634346649400991211
	.quad	2239794836892623784
	.quad	-5895218934612414842
	.quad	-2819933705860224350
	.quad	2753197410446381875
	.quad	1573135029708976237
	.quad	-2972493775608564410
	.quad	3730557237163891440
	.quad	5941385575445125879
	.quad	-4304070658964808544
	.quad	-3715583614701952821
	.quad	-5357241044420979249
	.quad	8197701417780496201
	.quad	8661844095137996439
	.quad	3591080998912177653
	.quad	8794621746730633483
	.quad	-6140332713857832357
	.quad	-1648073057952576459
	.quad	-8356815354412605914
	.quad	-3220683362571657741
	.quad	6162366771147236699
	.quad	-3370568191103822105
	.quad	-7781370567019302817
	.quad	8017524860108580960
	.quad	-3525735208479569535
	.quad	1303899921752410774
	.quad	657907740635117628
	.quad	3539463192142445577
	.quad	-4214472260448229536
	.quad	3473840296561207833
	.quad	-2297614038406449839
	.quad	2064317970821737088
	.quad	3812049208304706753
	.quad	3542852025554428359
	.quad	-2040185696415386459
	.quad	-7107660052942332262
	.quad	218657629206774639
	.quad	-4564843505067545115
	.quad	6993478452773218031
	.quad	-509288972104755659
	.quad	-8877804349265100577
	.quad	4661142639440709829
	.quad	2986873471254311248
	.quad	3033020965666111617
	.quad	6983477757986628116
	.quad	6003663015256835582
	.quad	-1308782330898070932
	.quad	-3038016681620927707
	.quad	-6832012524756659874
	.quad	-4198411679182602006
	.quad	-7595190304845390287
	.quad	6972524500217755008
	.quad	-854954930260929645
	.quad	5465574379108404114
	.quad	5772615368246097142
	.quad	1553752536253876549
	.quad	7880834582856451774
	.quad	3267484748814628448
	.quad	-3323229153329098718
	.quad	6602355472520084996
	.quad	5186491092066175845
	.quad	-7774942556130858587
	.quad	7365119679152796214
	.quad	-3672891442542335352
	.quad	6204675619576635784
	.quad	6454807966066589888
	.quad	-4738059104365055846
	.quad	-7979879641783451208
	.quad	121096667977448717
	.quad	-3851859764284982636
	.quad	-381201645731811109
	.quad	8551900914052776937
	.quad	-8820965003452673207
	.quad	-514556424491759049
	.quad	9185883647247754127
	.quad	-1360846068042338214
	.quad	-6639069827065854313
	.quad	5445676834177125333
	.quad	-4993822807632901193
	.quad	9206763404469005954
	.quad	-1156645077709834269
	.quad	-7270897091666087990
	.quad	2672793360734710597
	.quad	-1051673110615433905
	.quad	7608132718922490881
	.quad	6531178971071758016
	.quad	1302814667007331361
	.quad	4002629363862769670
	.quad	-3797251578411461679
	.quad	6868174210142585697
	.quad	-2990573420993502933
	.quad	-1061193516040796370
	.quad	-5555983810230299909
	.quad	4965986366172403701
	.quad	6797782846169786334
	.quad	7556183755118633441
	.quad	-4886804397760142456
	.quad	-2065692458151790763
	.quad	235363307818388702
	.quad	4035198086743745040
	.quad	-7478994741422739719
	.quad	-8391185540759429583
	.quad	-4169810110835767589
	.quad	-9015006984098385989
	.quad	-6678472972440877284
	.quad	4184327226420735382
	.quad	-1095716951474717200
	.quad	4597009523671966005
	.quad	8450923129628480322
	.quad	-6233401959825048842
	.quad	-3980408550600902265
	.quad	-2375672239911073403
	.quad	-4139618372772215349
	.quad	1182937067290315948
	.quad	5484692736221621894
	.quad	-2647619611860378958
	.quad	6567175539418869364
	.quad	-2727705911419890294
	.quad	7485088608941957024
	.quad	-6071995304734549231
	.quad	-913402285446369842
	.quad	-2322530643332172108
	.quad	6043260777523676302
	.quad	-2717425972426760016
	.quad	-8032644989469732426
	.quad	3388216701170075639
	.quad	-1937024569737563432
	.quad	-4368027097627770048
	.quad	6545203843538863648
	.quad	-2729914163474770224
	.quad	-5953520038002131437
	.quad	-2971113656199231290
	.quad	5343519587907016737
	.quad	585314113396774180
	.quad	-8142544360730427296
	.quad	-2634346175305339400
	.quad	-8637425416239732479
	.quad	8281652348712039721
	.quad	6607789533174841990
	.quad	-3379895346507321024
	.quad	-433793227019091465
	.quad	8078716713715292514
	.quad	-149096254463274204
	.quad	-4696845362053815794
	.quad	352339342742257682
	.quad	-6997857529517226854
	.quad	6209583128234178244
	.quad	-8113188139999162217
	.quad	7021434907977633986
	.quad	-7741729384801007907
	.quad	3786044660294578822
	.quad	-1508447809477981251
	.quad	-3090697987307548320
	.quad	-6061593189200366566
	.quad	7374797518609403722
	.quad	1476827743047948197
	.quad	5298553854505156957
	.quad	-1995832705558651306
	.quad	-6237240917691303315
	.quad	3162674984750939161
	.quad	-2867730460721463209
	.quad	1402168950308893247
	.quad	7503203175858777755
	.quad	9115120104210027882
	.quad	-2981196395744332097
	.quad	6105341300134394898
	.quad	-1464036851992499356
	.quad	-6311693470467977094
	.quad	-1015766981008428021
	.quad	8895629781706657182
	.quad	-7310869982467897803
	.quad	-2182286437878525404
	.quad	-4318267339527241583
	.quad	-2170747268382880380
	.quad	-2432128674318845563
	.quad	3789290043542512093
	.quad	8931226989233076214
	.quad	-8074666989452454923
	.quad	-6699967547494715865
	.quad	-256882991184348582
	.quad	-2665992563350202325
	.quad	2891410816097523189
	.quad	2674688656518238878
	.quad	8246180545544425080
	.quad	-569613555870159822
	.quad	-3989807195063316235
	.quad	-4290745791939206253
	.quad	-7864450041908154005
	.quad	-6061738802899800075
	.quad	7965804506910461638
	.quad	4892339545616862100
	.quad	2339895124975650041
	.quad	1252467443200537431
	.quad	5945822952475716157
	.quad	528825402302042379
	.quad	6970725606374217367
	.quad	335301745988672945
	.quad	-2482137298744162912
	.quad	-4635314728244758311
	.quad	3795191937032335042
	.quad	8044269155185841071
	.quad	-6920906098579534355
	.quad	8186205497751615763
	.quad	-6524690469147378745
	.quad	923703061922361934
	.quad	3810825709076048183
	.quad	-1800020352455762143
	.quad	-294624353576906682
	.quad	-6894166254141692327
	.quad	6398441814025643205
	.quad	-2439184199393212728
	.quad	3688308493559609536
	.quad	5123828159813683938
	.quad	6245436817220183971
	.quad	-5384509810434946291
	.quad	1313395302496832996
	.quad	4961840797708687855
	.quad	4990192311341859196
	.quad	5283131006216350959
	.quad	-7008964082936305022
	.quad	-4837630834326173464
	.quad	31268927496646090
	.quad	-6827971368544516408
	.quad	3078024460365036167
	.quad	-6307760766800588904
	.quad	4779157919015181380
	.quad	-6545045223448879614
	.quad	5733697799130763963
	.quad	962857090393715865
	.quad	-7907811621198222197
	.quad	3413281437172590207
	.quad	6635428480179771287
	.quad	4404718679994229138
	.quad	329074170931436370
	.quad	-700035866798649477
	.quad	7908792292118068471
	.quad	2703859967221946473
	.quad	6268006869726038724
	.quad	-9039749401495940450
	.quad	-6022646001975316897
	.quad	-6545993685932084207
	.quad	-7722261180036402132
	.quad	3191937460539390989
	.quad	179238781994802586
	.quad	9017860544212172426
	.quad	-2267556090629589757
	.quad	1380105261896053495
	.quad	6187003332254463653
	.quad	-8550150767617575898
	.quad	-1264794838641258120
	.quad	6820143159816507763
	.quad	-266110062714910421
	.quad	-7016196436987364492
	.quad	7090290543720433190
	.quad	-1869846865671974654
	.quad	6317978083754202417
	.quad	2547728564614000610
	.quad	6966452176536235697
	.quad	1178860440924014893
	.quad	4652378169433586070
	.quad	2069013165869224423
	.quad	-4473831640229126538
	.quad	2248203233787863058
	.quad	-5626863948212766552
	.quad	-5983943844125684447
	.quad	7969192387226362512
	.quad	-2996015747370547026
	.quad	-9201656360196017969
	.quad	-4776064177375232130
	.quad	-8091475521315803902
	.quad	8359914423683790297
	.quad	4689288209998189443
	.quad	-1552004079358642606
	.quad	5687041574512973505
	.quad	-6640534842580529244
	.quad	-7289843268297638832
	.quad	1737275748212365168
	.quad	-1453257381503751576
	.quad	-5907806007234399092
	.quad	-5279267905945212826
	.quad	-1073424707067010021
	.quad	6054831428930905282
	.quad	7118452124011953000
	.quad	3356943369947115510
	.quad	-8821208824686318231
	.quad	1547240720246312205
	.quad	8885057076390471784
	.quad	-6680878023091381926
	.quad	-4662460000476030380
	.quad	-7232405353634474121
	.quad	1760581621347797277
	.quad	-3127420979441301248
	.quad	-2695174434146172341
	.quad	9174762389399453601
	.quad	5359273060607997116
	.quad	7548480167962649047
	.quad	4093535200286790152
	.quad	-191740491756487314
	.quad	-1408814701512120906
	.quad	1579190023579727863
	.quad	8837744711830360764
	.quad	-8719136624628144631
	.quad	-6571339669077933269
	.quad	-8309246036973162321
	.quad	-8929656134743138616
	.quad	-1462539503722622415
	.quad	-6757157287694992177
	.quad	3640693116491518731
	.quad	-8756823790299484722
	.quad	-2376518990577468448
	.quad	-4941735099907085613
	.quad	750230942699692016
	.quad	-2923905391377663248
	.quad	112268476925002814
	.quad	-955138103583358632
	.quad	1526070044671830567
	.quad	6810164529924035677
	.quad	-6718224462398001362
	.quad	-2549998077947841311
	.quad	7408061354170119701
	.quad	-2117028868033206450
	.quad	4180593642968068000
	.quad	7741325407624384103
	.quad	-1677176127467596067
	.quad	-1346991547740176799
	.quad	-4405342212080941916
	.quad	-4563573488333386738
	.quad	1568639950869924595
	.quad	7305902646691031157
	.quad	-5910170290634247114
	.quad	-5956598979557578048
	.quad	-7540680709939289611
	.quad	1215871185184279444
	.quad	-8225833637153209726
	.quad	7499591148905301278
	.quad	-5418764806871271167
	.quad	-5308663869528639454
	.quad	4776145542624000903
	.quad	-3639219421875597360
	.quad	743288751022377974
	.quad	-9220579983581180901
	.quad	-777522386527947384
	.quad	1117842260351396541
	.quad	-748959621875700894
	.quad	-4064534766817560513
	.quad	-1495371340022283600
	.quad	188390802712613066
	.quad	-3168955506607043643
	.quad	-8989364697946377657
	.quad	-5389570495342627323
	.quad	-8991304088334531533
	.quad	-2777679665234886246
	.quad	-4843040197016552216
	.quad	583078803120171718
	.quad	123833709669322513
	.quad	7332583781810119624
	.quad	-6471843571419723967
	.quad	-8621704639558326950
	.quad	-4834310618568772486
	.quad	-7279649315872982648
	.quad	148858902984029622
	.quad	4325547061862811500
	.quad	8439987427904092212
	.quad	7668272263210933181
	.quad	-1186023681442903752
	.quad	8252095627746180036
	.quad	-2722263698313708035
	.quad	-6208848469681633162
	.quad	1285351446906011445
	.quad	7707859397203319444
	.quad	-4932202180200633551
	.quad	-8671703270829215446
	.quad	2183956155792599391
	.quad	-8344268111151961653
	.quad	-3544594083671669757
	.quad	7528893974593517583
	.quad	-175410943117542492
	.quad	-6633984326111960638
	.quad	3931581515688264350
	.quad	-3239100365250351198
	.quad	-7846510698034417362
	.quad	-5043750054209959375
	.quad	-6772337656473148095
	.quad	-960429039299617357
	.quad	-2054366917730210814
	.quad	-967687380593019325
	.quad	2846754097491803299
	.quad	7368734173241076742
	.quad	-6027442781960924977
	.quad	-7911953122677050467
	.quad	-1769818015442744391
	.quad	-4832151007421105953
	.quad	5547469267128540754
	.quad	5071513241190976074
	.quad	6206141439571986364
	.quad	5423693677948011564
	.quad	-3554529961903593429
	.quad	3487775115599868246
	.quad	-4730216484077625998
	.quad	500436009503774705
	.quad	6333056066209991280
	.quad	-330527283345996677
	.quad	1114900201189116434
	.quad	-5178534817876351678
	.quad	-1813597591444472351
	.quad	6044233937395578074
	.quad	1733872861371247406
	.quad	-4207545117143948858
	.quad	4036306057099495106
	.quad	1778912298053970082
	.quad	6174082695927204648
	.quad	7352545685468961087
	.quad	3667882791412265165
	.quad	6363139941186962957
	.quad	-3668084518261407389
	.quad	9001263667611164980
	.quad	-3158031106196617266
	.quad	6475537768830534259
	.quad	271925577512078878
	.quad	-8882846598389381728
	.quad	3828463449263891363
	.quad	4522408683909966848
	.quad	-8361699231805593346
	.quad	-3330880710241803325
	.quad	3921763467143122522
	.quad	3241611744432406503
	.quad	-2297578054139756914
	.quad	-8160445726428159752
	.quad	-2327301277541462376
	.quad	841131681486576132
	.quad	3885703664015156913
	.quad	1732534402004918444
	.quad	6087022428312672000
	.quad	-6668045433565692768
	.quad	6332233762327753306
	.quad	-5091716241507408948
	.quad	-5187433478290740879
	.quad	-1808519474871505220
	.quad	388655643128437049
	.quad	6131988039969669992
	.quad	-1687876607712417566
	.quad	793705445085763779
	.quad	-2221007530910924189
	.quad	5424398071362731037
	.quad	-4100045177685258249
	.quad	5702915071895513607
	.quad	-6632828810590818877
	.quad	-7329679354877652128
	.quad	-4964629094140812062
	.quad	2513700887280614220
	.quad	8264573861075928565
	.quad	-6386127590095700124
	.quad	-7261720956179809783
	.quad	-3160377909658486070
	.quad	5407795227432242447
	.quad	3261413161331398298
	.quad	7182873809282605970
	.quad	2155509494582452911
	.quad	-1448018365879672358
	.quad	-3468006672467424561
	.quad	-1105199574584011163
	.quad	-1173679463394591201
	.quad	8063903144530783648
	.quad	-7727891493742986095
	.quad	1661695606043238540
	.quad	6765201224686960463
	.quad	7378135048348893682
	.quad	6390361653475754940
	.quad	1093882175267357438
	.quad	3784079074949811167
	.quad	-1102871103887381847
	.quad	3359715652121662979
	.quad	-1638214286457565033
	.quad	5169730697018536870
	.quad	52766949850965558
	.quad	1399335819357099956
	.quad	-7129667150402009761
	.quad	-6104401846556174690
	.quad	6028600819621129846
	.quad	288987803934204947
	.quad	-2676339375519561817
	.quad	-6459052862830848878
	.quad	2437646499400311444
	.quad	7390825791772105924
	.quad	4012235486474481250
	.quad	-4969586458558598588
	.quad	1299130738857932623
	.quad	5432553126229503466
	.quad	-9046305706302977507
	.quad	-8290362734613604068
	.quad	-15564158348865437
	.quad	4242989971609050723
	.quad	-4790062802224669877
	.quad	6992982457365654509
	.quad	4787384858687509627
	.quad	9013954544204236046
	.quad	5827341370644679490
	.quad	471319000318238618
	.quad	-7347388360403192276
	.quad	5681031820656113630
	.quad	-2796727703118136162
	.quad	-2273357608351249610
	.quad	3456413432530671787
	.quad	4381531785478476342
	.quad	-1056477164600660654
	.quad	-7150042263255984275
	.quad	-4872512787370721991
	.quad	-6537756711246172565
	.quad	6397210681960107409
	.quad	3595488494166898877
	.quad	4386025411853921454
	.quad	-5654234343967418724
	.quad	-8311938879552098933
	.quad	-6802242652200328978
	.quad	-4533964824217114563
	.quad	8536362594883796691
	.quad	3719997838909117832
	.quad	4367389842191052704
	.quad	652174855686018778
	.quad	-2067350490495841547
	.quad	3776807992369949169
	.quad	-3724081848828003096
	.quad	2173333324347154169
	.quad	1663865739660757940
	.quad	1801517459136015669
	.quad	-1758640036143236830
	.quad	-8703957469860357598
	.quad	222583105829046865
	.quad	5589922729944072321
	.quad	2341633698501657421
	.quad	3173023106395389824
	.quad	1403521870654810721
	.quad	-6778590306268367710
	.quad	-5556209514412227841
	.quad	-5190993430504606228
	.quad	8838011266491753399
	.quad	8488733891344199335
	.quad	7468199299966346977
	.quad	-7801200351465644897
	.quad	-7894258812447014177
	.quad	2554384792898088294
	.quad	6866911455947201144
	.quad	-2025897447402198397
	.quad	-6346392033784491764
	.quad	3039209384531040462
	.quad	-4759967357409890336
	.quad	-1866028039869795905
	.quad	8749713996142610621
	.quad	5898656369696237826
	.quad	7222778239912122833
	.quad	3948942764605799730
	.quad	-2027854559410838876
	.quad	7247638147522270816
	.quad	-1104347418480940089
	.quad	5614677706312548237
	.quad	4766813200992774771
	.quad	6877392990537696541
	.quad	-3810237948306555957
	.quad	3021087253810335408
	.quad	-1873960033255701781
	.quad	5284673676460194886
	.quad	6563497568274248039
	.quad	-7783856310964402705
	.quad	7463321042819627344
	.quad	-6379463491613711671
	.quad	5939826718904450658
	.quad	-2168793118161073428
	.quad	7161137582821736176
	.quad	-5803078470982463298
	.quad	-7715599539971927601
	.quad	2910680978911424031
	.quad	7918141249197347124
	.quad	6503975315078451859
	.quad	-4073626700076762400
	.quad	-6751490374768420399
	.quad	5319723861424294209
	.quad	-7453451309454188560
	.quad	-6983161011646139185
	.quad	1167424113675387157
	.quad	-5276359729087197501
	.quad	-7388441576042957044
	.quad	2155538035743742221
	.quad	-5283642351252483587
	.quad	8995593227756543365
	.quad	-4388465132302202595
	.quad	-4110324567663861379
	.quad	9048181793341680584
	.quad	7282400002228128288
	.quad	9102919198797476889
	.quad	-7670689369869254098
	.quad	6943479251740252866
	.quad	4593800267096931668
	.quad	2121520628029395508
	.quad	1204986114272733055
	.quad	7457312996484324059
	.quad	-1427697522615372987
	.quad	3055711824867115856
	.quad	-7604873390115419172
	.quad	382072777978364200
	.quad	725450988418371589
	.quad	-5944969824754921505
	.quad	-8316580006450950129
	.quad	7823254091037946722
	.quad	-3978733858468094202
	.quad	-165934610685419445
	.quad	-3304539707030314194
	.quad	-5098555063308144866
	.quad	-4237734527756517907
	.quad	3565274663692391795
	.quad	-3996718019125995769
	.quad	-1062354843271935656
	.quad	-5387574105080831117
	.quad	-8823190628350716523
	.quad	-8305966255146378186
	.quad	7350746177584031810
	.quad	-4821634683945464966
	.quad	-893442618908202966
	.quad	1551317701416325901
	.quad	-6600815687441523331
	.quad	6878666550330750875
	.quad	4349637722871480689
	.quad	-8700669220522736600
	.quad	-9180965447193658327
	.quad	-3183289996665427006
	.quad	-8017015522786750506
	.quad	5970567988631314284
	.quad	-1833282992403733796
	.quad	1691202229319200240
	.quad	2793300844102465401
	.quad	3773692717601105038
	.quad	-1616593374748938447
	.quad	1100403873501588410
	.quad	2566109116800528026
	.quad	-2078616162883911162
	.quad	4200788711811758346
	.quad	3031283218941998843
	.quad	-5954694187671465507
	.quad	-7871740108080708397
	.quad	-1406254690775636267
	.quad	338840016952478523
	.quad	4141621178549029677
	.quad	1814430720389058822
	.quad	-6481731196058643841
	.quad	3291727268870419366
	.quad	-3709072103701056908
	.quad	-969913391871121239
	.quad	4633261569456310451
	.quad	-180535011796508232
	.quad	-764881924200621063
	.quad	-6817407086273110590
	.quad	3508926530509258375
	.quad	5406304316286111275
	.quad	9149291139050761697
	.quad	-5928425885749458208
	.quad	3044007844516712499
	.quad	-7398719378502607588
	.quad	-5404279289197810205
	.quad	-8569584689306883895
	.quad	-4001024868769885265
	.quad	1866199290196467180
	.quad	554488389245696218
	.quad	-2792549688618096840
	.quad	6131785419830586829
	.quad	-589893335885111999
	.quad	-844132876895079535
	.quad	-202245913465718744
	.quad	5819736122106091373
	.quad	-1604838907456277614
	.quad	3633471403887206490
	.quad	8711414391656256468
	.quad	8665674686930681107
	.quad	-1831628495863238387
	.quad	3979666900734496005
	.quad	-7386714476668467204
	.quad	2090118348485269294
	.quad	28385371559164722
	.quad	8892281432444546743
	.quad	2107325597163777733
	.quad	6899593410838769181
	.quad	394013676447360187
	.quad	-8619291433205721116
	.quad	-5950576548181417843
	.quad	-8401329327872509268
	.quad	7986240480904925097
	.quad	2657095388955950136
	.quad	-6807703139397549013
	.quad	2064686895546444447
	.quad	3886668839042910125
	.quad	7442610340082399263
	.quad	5704897988711518413
	.quad	7997292527457530002
	.quad	4037114895272128287
	.quad	6495415288521535088
	.quad	7460765410415220718
	.quad	6855370744337827244
	.quad	7353884258595366166
	.quad	1318233383617686321
	.quad	1198180786214062627
	.quad	8923385289424183887
	.quad	-5766059101032644785
	.quad	7728349163028919393
	.quad	6389341921032275887
	.quad	-4390395087959703437
	.quad	1711260451183152510
	.quad	6742618255080970257
	.quad	5880514083212504577
	.quad	8555614273811294289
	.quad	-1587124569803287266
	.quad	5434425888038507544
	.quad	-418253724590004572
	.quad	-4067200534784876505
	.quad	366692089797523812
	.quad	-259628535375715536
	.quad	771626661883267223
	.quad	-7471302789817448993
	.quad	440683147029365304
	.quad	8154654604827679295
	.quad	-331716844551143928
	.quad	5284038017565762295
	.quad	-8808849949108017329
	.quad	-1257725240472426832
	.quad	-1947292829435711653
	.quad	1498814641631592798
	.quad	-5299531578626641544
	.quad	5628914243538540648
	.quad	439989514095330941
	.quad	7620472329041817834
	.quad	4272251824771633288
	.quad	-1881766472202538497
	.quad	5441117136715882317
	.quad	5622571730905974389
	.quad	960381383357168877
	.quad	-1672034110012408341
	.quad	-550562996834559376
	.quad	1150415168189819777
	.quad	5498481130530161530
	.quad	6895900060791069290
	.quad	2079514944189747822
	.quad	3428689507902936354
	.quad	4669722990542640772
	.quad	-8429376046636011571
	.quad	-5053924754480910816
	.quad	1070815632453829996
	.quad	7274130058405640448
	.quad	4460835865761538026
	.quad	-3162858965753400724
	.quad	5815884817303156137
	.quad	-3100477977869287833
	.quad	-4317068619748892705
	.quad	1781465630073142581
	.quad	-6048033539814274146
	.quad	-749670010455709631
	.quad	-4620587460387973388
	.quad	8855030685964401164
	.quad	3749659313217692983
	.quad	987127652983079722
	.quad	6872208513691823695
	.quad	-8336165354410542902
	.quad	-1989362830525224500
	.quad	-7667671334830203617
	.quad	5965282398006505989
	.quad	-195166806215188348
	.quad	-9125420694600988194
	.quad	-7501514566345925025
	.quad	-635131131246462293
	.quad	-4827663822366644732
	.quad	-3408276679773031425
	.quad	6319289460691595821
	.quad	4484571872271670984
	.quad	7772390072206768178
	.quad	4362609382133530171
	.quad	4942609221317393580
	.quad	-4728767817676525133
	.quad	-5463358247637358408
	.quad	4065175787731562767
	.quad	2689930515321048104
	.quad	-6354595280870062812
	.quad	5575726413002358322
	.quad	-8940817576746694943
	.quad	-5027564576271684853
	.quad	-7261258806440741912
	.quad	-5510561644252217421
	.quad	-3471877302416809222
	.quad	-3191757084569852241
	.quad	6186851813341085688
	.quad	359054785334469042
	.quad	5180993474503746676
	.quad	6119049170407437179
	.quad	-5508336365670759095
	.quad	-8341323667884205233
	.quad	3416306788177016826
	.quad	330648587825212481
	.quad	125568991290568141
	.quad	-4589616727138632967
	.quad	4376080986981308805
	.quad	-8299816056675220921
	.quad	-5036532385477480278
	.quad	3423261222786559524
	.quad	235639871417987304
	.quad	-8368748581716563306
	.quad	-7338305878048386843
	.quad	-7014847986948340895
	.quad	6541598698211364047
	.quad	-535126705322527680
	.quad	-5849076164727311972
	.quad	-5729976399639245980
	.quad	8006216765771583709
	.quad	5369652970748222350
	.quad	-2841763043191162389
	.quad	-555840880371180817
	.quad	-5607012277707513147
	.quad	-7502614752519049805
	.quad	-4781982160818484580
	.quad	6702778619371582548
	.quad	4420260318777300782
	.quad	-1606118606853183081
	.quad	100359722897848522
	.quad	3655646325605824884
	.quad	3715211002392824759
	.quad	5930434126597036589
	.quad	-7205749450239973032
	.quad	839346533006694594
	.quad	-8431656743985469907
	.quad	6285097815938761787
	.quad	-1202137587754691526
	.quad	-6923494345827538635
	.quad	7178451948850151803
	.quad	2296928939457953402
	.quad	4550229771700894238
	.quad	-892009948813763367
	.quad	-2903256839726382667
	.quad	8031318544037065782
	.quad	-641482391437749785
	.quad	5923591488824508396
	.quad	-5284724912191235062
	.quad	-6344100006005890879
	.quad	-7679583895028159288
	.quad	-8141428087361082291
	.quad	5908185609994818450
	.quad	-3343020182174749568
	.quad	6979678219865875380
	.quad	2620486051425176780
	.quad	-6364960794508320259
	.quad	-5578924150164827869
	.quad	-596912202475182308
	.quad	6531281674937386635
	.quad	-2988681250130766012
	.quad	-8331262860866141930
	.quad	8056221514521289817
	.quad	-6043389725037430057
	.quad	-330415444264508309
	.quad	-1713128738283224612
	.quad	-3613179337574677639
	.quad	-2710584638392078675
	.quad	-886550106997666722
	.quad	4670172300306758374
	.quad	-8969030402726054781
	.quad	-4202788719676813636
	.quad	6459864769649694970
	.quad	1978133356785132130
	.quad	3102269790340730601
	.quad	-8372408260263797497
	.quad	1717753400564454703
	.quad	8309709078946604113
	.quad	4885206678505570138
	.quad	-5727670134985090147
	.quad	8081169606337815448
	.quad	769535107316050424
	.quad	4620709125409160470
	.quad	-2728409706558279763
	.quad	8565524283635102433
	.quad	5327618155537950863
	.quad	7757470772467979685
	.quad	-6799301314748786199
	.quad	-8667561317656317111
	.quad	-3069315746752472690
	.quad	-821362540478051555
	.quad	4141292605884491717
	.quad	-5367528420012489008
	.quad	3653460303768046343
	.quad	5493800706143953949
	.quad	7184930177323310797
	.quad	-1516243023398180439
	.quad	-2393226374719989360
	.quad	2069464650596796670
	.quad	-141013938980247623
	.quad	1090863611964008044
	.quad	-7850815256163446253
	.quad	-6703560567268431132
	.quad	8584767248013363683
	.quad	9187452830514379903
	.quad	-67917488873199497
	.quad	8017891963441629012
	.quad	-1801879543335708028
	.quad	-4213417523474591805
	.quad	4567414045912267481
	.quad	-3984511587680874390
	.quad	-3923164463289436512
	.quad	3517564179584907346
	.quad	1975720011292270548
	.quad	-2930482404638209108
	.quad	7352537785412762028
	.quad	-546244413652055367
	.quad	2795009855184295297
	.quad	320795336857288362
	.quad	1470899533912540581
	.quad	2485167685653246755
	.quad	3681401585398552569
	.quad	5962550080758314069
	.quad	-7692517689489273220
	.quad	-6403590982428580847
	.quad	-5435114532443961991
	.quad	3751835063272854581
	.quad	-5786186907205869547
	.quad	-5411093325738135794
	.quad	6938579711827578880
	.quad	-2178461904937837544
	.quad	4567473305742437221
	.quad	754548046014059669
	.quad	7773636946295303572
	.quad	8132380485366854656
	.quad	5054542590195827722
	.quad	6074347500754248128
	.quad	7638371387265668171
	.quad	-6390029754929667568
	.quad	-102567439385716405
	.quad	-7959149552581780112
	.quad	-3177886587420940142
	.quad	8104957703919463490
	.quad	6923252432094630910
	.quad	5195161289326896458
	.quad	2930387249030952807
	.quad	-2570878097328453773
	.quad	5267466126957202584
	.quad	-6183887933419238069
	.quad	-3139030909827268950
	.quad	-6788170638088493006
	.quad	7461850474778092319
	.quad	-334706950664648525
	.quad	7544931873499635204
	.quad	8760271968200932247
	.quad	-8543774809948438499
	.quad	-8244345800674066943
	.quad	-8056999956302880071
	.quad	-7375531601270617947
	.quad	5963491615826710839
	.quad	4643889679486481025
	.quad	3955857908381474930
	.quad	-6594065172709929764
	.quad	-4663726870306134519
	.quad	-4829998295778284128
	.quad	-5256819485295354698
	.quad	-3926816777899598740
	.quad	-9112643107766791115
	.quad	-3274195339466666330
	.quad	-5069227809641967112
	.quad	-8589106077191486274
	.quad	4863302205875901475
	.quad	1514449566679203265
	.quad	-2206237444243998663
	.quad	-6368486509279733186
	.quad	-4932053185026252757
	.quad	8880649829701221782
	.quad	6531863846733966025
	.quad	-26671339790332603
	.quad	3932370201800458133
	.quad	-2987063063780265890
	.quad	-5832857537718287374
	.quad	6069262077400887233
	.quad	4598036485583513980
	.quad	-3922458980682699194
	.quad	4496692187456392748
	.quad	-244611514301687709
	.quad	8595764680595693660
	.quad	5096458793245607400
	.quad	-6886022913527557555
	.quad	2193893215313177794
	.quad	-776845710517720254
	.quad	5324822175959416868
	.quad	4869852132020793901
	.quad	-3525531250594827269
	.quad	-4104184960356518267
	.quad	-5109916371926894307
	.quad	-7278397283830867164
	.quad	-8656263347807125564
	.quad	9171116079841529936
	.quad	-9177841341946330905
	.quad	-8894562438297484530
	.quad	-333657135792127672
	.quad	7903266019927794726
	.quad	-2544836203851346880
	.quad	-4550738184861053845
	.quad	-7415157739164771427
	.quad	-5973909899644779647
	.quad	1735733017263235585
	.quad	-7348522561312754372
	.quad	-4960822577116185535
	.quad	-1528123615819242267
	.quad	1743849091653570582
	.quad	-8753668619797227401
	.quad	-5532987092544624850
	.quad	-1173748521691621273
	.quad	2824862791914082257
	.quad	-5665949881634497476
	.quad	-1807771222976438392
	.quad	-7910746229858697842
	.quad	5157169224821685915
	.quad	-5249675951885769691
	.quad	-1403379720097676221
	.quad	8938775009682377810
	.quad	-4438579462029965326
	.quad	4417372365016540659
	.quad	-1166605420809848396
	.quad	6650972319709075180
	.quad	-7194522650910060178
	.quad	6825784270383052414
	.quad	-138181869953856425
	.quad	4237445205082731447
	.quad	8485872406483449772
	.quad	4450447533902734844
	.quad	-5297983304331039221
	.quad	8167896490880843755
	.quad	-2771799093562926551
	.quad	-1431917633652207033
	.quad	-1616432983612764807
	.quad	8162067873882062503
	.quad	683181971765133361
	.quad	-2630266117802720600
	.quad	3575273959648610106
	.quad	-6468660525982525757
	.quad	1433014600024602139
	.quad	2979686254361837676
	.quad	3295552760664794962
	.quad	-4529923367980880738
	.quad	501622997776492722
	.quad	1975876756589485282
	.quad	-6005488452958827747
	.quad	2988948403702641365
	.quad	-6502829631358656749
	.quad	-6196735916779085113
	.quad	4173594595801127414
	.quad	2228052374831343759
	.quad	772019318635457630
	.quad	-6728017359664445623
	.quad	2624508790343569765
	.quad	5794111482300008213
	.quad	-5627527506614460231
	.quad	285329842793152354
	.quad	-1189036209766454242
	.quad	-1534256700095092774
	.quad	-8944792040102054559
	.quad	-4228631483188906076
	.quad	-6355414763081601216
	.quad	-5702060476247668836
	.quad	-5334443914309451302
	.quad	5668292911282302013
	.quad	8062013358410407682
	.quad	5382568751008097636
	.quad	2167741696085470691
	.quad	1058523602806582528
	.quad	4627279685407195931
	.quad	3437010397172221495
	.quad	5026946744065050169
	.quad	6265036015218448278
	.quad	5619226805634754488
	.quad	-2238954959949147968
	.quad	8832942052922017451
	.quad	3259393204534552706
	.quad	-1576008193421214448
	.quad	-1333369645962582450
	.quad	3433629939032816829
	.quad	-5370573551434133215
	.quad	-8328327883916048485
	.quad	-2889698830287097920
	.quad	-1049951400729764872
	.quad	-5372100728971060328
	.quad	8505193022029238118
	.quad	-8514091975156961293
	.quad	267408114280737600
	.quad	-3643882827489218900
	.quad	-940715336381815347
	.quad	-2517660482034269245
	.quad	-7509063941464339429
	.quad	6488960277748490098
	.quad	-6770856526085882901
	.quad	-6928142336305381316
	.quad	3635406407249056834
	.quad	5087411674519752474
	.quad	5429932960364880368
	.quad	3545913451871075475
	.quad	-6806097690552138200
	.quad	-6506839742128139351
	.quad	3802748326240975038
	.quad	3196534592660400023
	.quad	6696000789471202018
	.quad	9024578417544723440
	.quad	-3297402922780033219
	.quad	-968439255715567161
	.quad	-4406960864855035446
	.quad	3957713314048848620
	.quad	7823944138567085037
	.quad	-3006937931651385198
	.quad	-8393398078377120762
	.quad	-2264346533529264801
	.quad	1298511679189962327
	.quad	5466526033332166045
	.quad	3793481937178849442
	.quad	-1758010307249420566
	.quad	-5669108747410367545
	.quad	7769405825716531061
	.quad	-6010764467194706891
	.quad	2767987141420672349
	.quad	6723940414217341603
	.quad	-2332562004128834239
	.quad	4541113259200434040
	.quad	-4676893142692059715
	.quad	-360248627358793620
	.quad	-428115540158744423
	.quad	4765572476384766551
	.quad	4458104544062526042
	.quad	-5266109874869654929
	.quad	5986789248617008568
	.quad	7925015110640101436
	.quad	9120421070697799482
	.quad	-7636739413138821163
	.quad	-4747556848185751224
	.quad	6576928864143719727
	.quad	6894874098611811710
	.quad	-6354690432456814601
	.quad	-8442508319699091381
	.quad	-2999621918174367777
	.quad	-4366840079147617970
	.quad	7779201152955577868
	.quad	7062503128325062984
	.quad	-2785362089458777176
	.quad	-3199242090196586473
	.quad	851981604220132626
	.quad	-3940581833843699351
	.quad	3264588221885320330
	.quad	8506371389960537559
	.quad	-415545523020142311
	.quad	-6936492220714048174
	.quad	1923472385053944821
	.quad	6189904387119195613
	.quad	345664413118550356
	.quad	6439003191582953600
	.quad	-102358313159976255
	.quad	-5967962427081770190
	.quad	-2456038625576582523
	.quad	7128507947466997067
	.quad	4706542218197735847
	.quad	-8726911745414705593
	.quad	4319549563334174316
	.quad	8854376847343558419
	.quad	6731385462979962135
	.quad	2165970705533708529
	.quad	6917776544372335907
	.quad	-4046239143770676869
	.quad	2204805896788269568
	.quad	7565443667270923989
	.quad	7593704288784813411
	.quad	-5619111608044365176
	.quad	-8373042293707740858
	.quad	-5362619797948525551
	.quad	8078121013112887473
	.quad	-2025093940905717869
	.quad	2872838158522158432
	.quad	5384563317343076121
	.quad	-2472191346148216051
	.quad	8045466128990734986
	.quad	-192380139382148707
	.quad	5320548958745018096
	.quad	8341561189829530680
	.quad	3327828110998403156
	.quad	-465397804532038393
	.quad	-4191939800683863542
	.quad	-7335596246005474382
	.quad	9093333670517437191
	.quad	7272552282364063165
	.quad	-4463320089058677491
	.quad	-5187561800092278093
	.quad	-3159615966515402537
	.quad	-7910731044449103578
	.quad	4757151146700839557
	.quad	1749115720243046842
	.quad	-4557505172421977863
	.quad	6767602168502072681
	.quad	-3056363844538554210
	.quad	-144251372760236213
	.quad	-1004177491813849777
	.quad	8232991982931575585
	.quad	6738098320921374270
	.quad	3248289667008060927
	.quad	56756200212584519
	.quad	8052676038364399409
	.quad	-6720801246567955550
	.quad	7402917336478075853
	.quad	3207236122766446207
	.quad	-4494781194406504341
	.quad	6924333120661417685
	.quad	-2768219751516086367
	.quad	-6628268491651119955
	.quad	9201273925922951233
	.quad	7587268797387514088
	.quad	4402481408866840263
	.quad	-7185928684614216731
	.quad	-4055299371944602906
	.quad	4224880318604689771
	.quad	2472148458660279030
	.quad	961218007313548745
	.quad	-4620387852829719925
	.quad	-7501299018754427650
	.quad	-495466789638330427
	.quad	-7468384999886484911
	.quad	-4528515142944770013
	.quad	4133008610049874258
	.quad	62907323291379189
	.quad	703178871689987407
	.quad	5677194100120671169
	.quad	5027078246812720332
	.quad	7185421231444263686
	.quad	4026390030341917660
	.quad	5824858154940352162
	.quad	8042133632625613586
	.quad	4067674575120402911
	.quad	-7191375153519394499
	.quad	107908172987169992
	.quad	4829961508767495527
	.quad	-3893500626881160424
	.quad	4040606115423248756
	.quad	2727011640628442410
	.quad	5035198146184744162
	.quad	1541357571929979813
	.quad	-583025722953399097
	.quad	-5204836890835436630
	.quad	4477325369345373420
	.quad	299141931133875776
	.quad	6787652129916359301
	.quad	2498016036564260464
	.quad	-5104424129816608068
	.quad	-7322456353972059411
	.quad	2456333599771808442
	.quad	5084719026388755304
	.quad	-6199811317766663685
	.quad	-7604530655570483769
	.quad	1827392608284960926
	.quad	6961756951208563550
	.quad	-3819777439326723545
	.quad	-5792935795809171811
	.quad	3359368990539585596
	.quad	1190255644328095727
	.quad	-7609789023093927433
	.quad	6228108794259714192
	.quad	3769609579318360527
	.quad	1481673673659326756
	.quad	301329772189110029
	.quad	3574710782304999603
	.quad	3037244905687722509
	.quad	-4003802312312322131
	.quad	-251125520768760107
	.quad	-5645396672787862458
	.quad	-5074688455696484487
	.quad	-3516792240978615035
	.quad	2563109394536979589
	.quad	3392102243539970867
	.quad	2978145866937578695
	.quad	-2637182322608089695
	.quad	7739110373965523311
	.quad	-7427590740713311536
	.quad	7346010155518751797
	.quad	-3593006552598338068
	.quad	2542883237207113209
	.quad	-7431607244875130112
	.quad	1998601666328316353
	.quad	1540417751495800469
	.quad	-3530701992221437345
	.quad	3303190861468284762
	.quad	-4212197801374059078
	.quad	5776190344932209905
	.quad	-2106755864249827421
	.quad	-8424229120407926847
	.quad	7878363685856556300
	.quad	3127365206552843780
	.quad	599034134015360884
	.quad	-7183426542934556524
	.quad	6667501365379084069
	.quad	-8602468060606238925
	.quad	7566306886180438990
	.quad	-4743975728094042253
	.quad	-5921712110538833648
	.quad	8463786212988210464
	.quad	8454830421421057736
	.quad	4100731209937375984
	.quad	-98529783813643403
	.quad	6778376865226169852
	.quad	-5501516179918621969
	.quad	1818657910008686277
	.quad	3629900123705314093
	.quad	2861658388952811590
	.quad	-2016188641188812854
	.quad	-7221422377348907907
	.quad	-6668770419356397518
	.quad	-5313628845880667223
	.quad	-768005916686701271
	.quad	1586660156856830642
	.quad	840647763693221003
	.quad	8645742354464326466
	.quad	-2687225497713843302
	.quad	-3115754008148195474
	.quad	-9161757070224975516
	.quad	8288779181349653551
	.quad	7330665756804287547
	.quad	-6822418883153031445
	.quad	7833223757897616823
	.quad	5852955879213892520
	.quad	8067725618510810414
	.quad	6229041032854057836
	.quad	8025364837156161898
	.quad	1290443646630661359
	.quad	-7455420417867547888
	.quad	-9099961233539496827
	.quad	8939059450584871902
	.quad	4772347025802041241
	.quad	-5811880441979532428
	.quad	2932609301894230860
	.quad	-7375848120853321477
	.quad	-4959429041343695046
	.quad	1846309926271047095
	.quad	9132775738296435572
	.quad	-845866359690039326
	.quad	-3485997944479382830
	.quad	8187379062828795656
	.quad	-3702377374885348943
	.quad	-1432080268966354513
	.quad	7704635785366672415
	.quad	-1284098144081083159
	.quad	-5504301546116856400
	.quad	-5155033150150918321
	.quad	5800071247768119960
	.quad	5746454359644505065
	.quad	-2628153455079582470
	.quad	-372597028815160603
	.quad	-3855868711322459138
	.quad	-6214070988474759984
	.quad	-6212120719378705048
	.quad	-7492797698439428482
	.quad	-1715054121958286650
	.quad	3552067877931717181
	.quad	590108493628737243
	.quad	497390871097272557
	.quad	-5660948265268155335
	.quad	5561451613221796230
	.quad	-4182920160492714771
	.quad	-7965014374708439262
	.quad	7818094022046194698
	.quad	7103746777738456715
	.quad	-3235633191777764201
	.quad	2469434965984622725
	.quad	5083863915346280702
	.quad	-2873325481355478674
	.quad	1523171992578158870
	.quad	-4932430767134970285
	.quad	797917903906251154
	.quad	3598736754916501501
	.quad	4827022662021197854
	.quad	8203180748141933720
	.quad	-8163492473076952575
	.quad	-2260063415368594808
	.quad	-3263350675622232474
	.quad	8714402370450665212
	.quad	-5228842057056380399
	.quad	1765183780171817879
	.quad	21661918241302553
	.quad	-6203049861110674124
	.quad	-4925721831684946167
	.quad	452406639500268062
	.quad	-5946019580449540495
	.quad	-2679716268267834105
	.quad	1696969507876994001
	.quad	-4680399990313029064
	.quad	3843491774288631026
	.quad	1174164282483810421
	.quad	6398024882371290634
	.quad	5459580537585379131
	.quad	5871096222069618377
	.quad	-8834868787184543915
	.quad	1940221124144536452
	.quad	-5065142736325241998
	.quad	2615519445325077791
	.quad	3052786058597600561
	.quad	3184928841952246826
	.quad	1703393419827917277
	.quad	-6804222173382411906
	.quad	-1712790326260241895
	.quad	-8540560719782500534
	.quad	-6847962119062034073
	.quad	-2751645140157481138
	.quad	-3470316954861929152
	.quad	7147358677856872160
	.quad	-1311219446355427665
	.quad	8338407198954935663
	.quad	-347276666095654124
	.quad	9025371359994313919
	.quad	-3719043259615770181
	.quad	8404890849140522245
	.quad	1333307048368925883
	.quad	6990702330705118614
	.quad	-419972204934310062
	.quad	6210348059475601012
	.quad	5642061924551107131
	.quad	-123987944144655835
	.quad	-6995725787921920118
	.quad	-6735994527197784027
	.quad	-5477324580051927080
	.quad	2338911230088800542
	.quad	-954129662387640866
	.quad	-3172448001205441114
	.quad	1258801445108685875
	.quad	-3268514433150318875
	.quad	-6381800831190821580
	.quad	952300678339304462
	.quad	1670153314573481955
	.quad	-1434429218673930018
	.quad	-2078123905737200734
	.quad	7667714207188340967
	.quad	-4258934502448435211
	.quad	8441777492223702223
	.quad	-6703727701373533202
	.quad	6125536020759642301
	.quad	-1883463902911503883
	.quad	-3917691552649439827
	.quad	-3193241744534907228
	.quad	1556763737841306861
	.quad	3041940064290508531
	.quad	-425862714246598280
	.quad	2860061925764022517
	.quad	2378678964075169095
	.quad	6432658554037190567
	.quad	-7489450775549203050
	.quad	7604719671594551827
	.quad	3886251962558864112
	.quad	544101485062565848
	.quad	-5212754657558667624
	.quad	3035547704692483898
	.quad	462291414338050452
	.quad	4209186193642705826
	.quad	929930084709639338
	.quad	5246348806539841852
	.quad	-2039158854860707846
	.quad	6076996892610687611
	.quad	-1899348137471111807
	.quad	-5164542695145314261
	.quad	-5220473341494678742
	.quad	-6127538798386728294
	.quad	-2635942018660228792
	.quad	-2004480625720650209
	.quad	-5647180247571504981
	.quad	-6851010272922390434
	.quad	7494679800711613056
	.quad	7781914900266335582
	.quad	-479664007894857005
	.quad	-3769681876110460002
	.quad	6667353926398988267
	.quad	5658765839564756939
	.quad	-2638926719397077695
	.quad	7476371642206655552
	.quad	1194561222317134506
	.quad	-4569553053911429532
	.quad	7668416504123381018
	.quad	6184650986853152973
	.quad	-1875281291043068278
	.quad	-4571500908245426556
	.quad	-8982851025049982499
	.quad	8321521407224484002
	.quad	2069901698417203249
	.quad	-7801136451647771548
	.quad	-6862857577818772034
	.quad	6879987349345299140
	.quad	5119348262235800038
	.quad	6546217876212430196
	.quad	5534845503308945424
	.quad	2003680599532879233
	.quad	2824480091030475274
	.quad	-737266066209036282
	.quad	-9149479440983870390
	.quad	5012897862037260792
	.quad	-5336820549646852012
	.quad	1656349427979181330
	.quad	-2117523807998078215
	.quad	-6602329707423526547
	.quad	-8862149250791283292
	.quad	2297585344913389180
	.quad	-4480784825921174012
	.quad	-7105365210101163816
	.quad	-8555790691019911237
	.quad	-8003220806874304764
	.quad	-8814887376898263553
	.quad	6944503116553031744
	.quad	-8415919950928585221
	.quad	4755741051463239008
	.quad	3281523731706161322
	.quad	-1651236682881045739
	.quad	-1589864103069020323
	.quad	-2617919963693933679
	.quad	-8286949572921125556
	.quad	1532164703826927117
	.quad	5910465295741723887
	.quad	2699238910420203023
	.quad	-5270612575766226857
	.quad	2961070701879546988
	.quad	1511208990650977146
	.quad	-5293292543411092672
	.quad	254163587562261430
	.quad	6668642257003911712
	.quad	9040693998431169077
	.quad	-6359667717731664262
	.quad	7467109284080190210
	.quad	6250730930065453924
	.quad	-4025016956137275714
	.quad	3656235200697352632
	.quad	1331382450323498319
	.quad	-8944909007367044554
	.quad	-8687084037275872774
	.quad	5596789796292416136
	.quad	-7940958253177658935
	.quad	3803057245175025164
	.quad	-4845297196386347958
	.quad	7939638174866660891
	.quad	-4304895832502565611
	.quad	-4663858161058608053
	.quad	6287188921995938212
	.quad	-6957126418960982715
	.quad	-7912267172767537598
	.quad	1249926427968597612
	.quad	3886895158141452735
	.quad	7777427387642437909
	.quad	7247425340808298211
	.quad	4558669812865441953
	.quad	5805142839548372140
	.quad	-5447043665934199013
	.quad	2664314004284450753
	.quad	7085329252118415126
	.quad	-974260709955280490
	.quad	-2895985000330732547
	.quad	7572177503239633527
	.quad	-2741126388926319308
	.quad	8586972133880335199
	.quad	1316218824852503145
	.quad	3949391041502749556
	.quad	7961262653593532768
	.quad	-6405723590295056138
	.quad	8832704909150680027
	.quad	-4558024282769669839
	.quad	7037057597399549748
	.quad	2731306215641370625
	.quad	6636244234467769744
	.quad	-162354061042109747
	.quad	722929822219329257
	.quad	3274166388651987221
	.quad	-5268952235948602136
	.quad	2568122970128111127
	.quad	3477167651270374316
	.quad	-7074876223616263317
	.quad	2879848563686798008
	.quad	3382884258857967585
	.quad	-7691463123381830336
	.quad	-8899628734795610502
	.quad	-3137643758991349132
	.quad	1631827869399650652
	.quad	190863964986363203
	.quad	-3729040527944088137
	.quad	4065583279544717744
	.quad	-2870744860574531208
	.quad	1319417044854511604
	.quad	-3733661602366810256
	.quad	-9047690622759924532
	.quad	8900637792268080986
	.quad	-4935329535120141223
	.quad	601556817111475086
	.quad	6702485361199631181
	.quad	-4576549225974409845
	.quad	6741325508226743930
	.quad	7049344031511230575
	.quad	-1979652908616093875
	.quad	7496631820076978415
	.quad	-6477351350282712907
	.quad	7685217352859944582
	.quad	-9203601642849990543
	.quad	-3808086213877339393
	.quad	-3122244832586615276
	.quad	-3968982320130609682
	.quad	-3746911233518096831
	.quad	5114873517253108658
	.quad	7427057898915535537
	.quad	-5909944042526702143
	.quad	-8584195055637051008
	.quad	-3986723914282824767
	.quad	-6729633730457525705
	.quad	-5289557474370463513
	.quad	3549617408156714421
	.quad	4934545272250614697
	.quad	-3617738216651199344
	.quad	7150217611114467398
	.quad	-6670794857226935177
	.quad	-8710089888784073530
	.quad	2941126957776086651
	.quad	-7115440563337746699
	.quad	3535865528819665754
	.quad	2488682969529955908
	.quad	922100556888217739
	.quad	-541785818131078761
	.quad	-5159564753529291608
	.quad	1874391894784478999
	.quad	368673831453168709
	.quad	-1466281294900829613
	.quad	6668595943656937106
	.quad	-8881762507760932418
	.quad	-3356001252901276600
	.quad	-8158270378678075000
	.quad	-5570283103844664662
	.quad	4692925517843901006
	.quad	-1056371902733962853
	.quad	-3754165299279594321
	.quad	1759864963511373267
	.quad	-6430190638537448553
	.quad	-5430862781705961265
	.quad	-2259174483635593246
	.quad	-4385810415209801569
	.quad	1235892162700113265
	.quad	1112853113436657166
	.quad	-8417944562818099487
	.quad	-8898669080966807951
	.quad	-5401774071315851351
	.quad	1255490150916139285
	.quad	2415682930910447786
	.quad	-3292651973615360557
	.quad	8103665941237580228
	.quad	3265383210728928809
	.quad	8341136973870067643
	.quad	-1165108341395387657
	.quad	-2013006768548108939
	.quad	9130496888060417111
	.quad	7070932927684908859
	.quad	-349780519671230778
	.quad	-4682737597809187028
	.quad	-6870345013870358918
	.quad	-8009394556435832657
	.quad	8467509005673381719
	.quad	-8023640999059962278
	.quad	-3856835449250052329
	.quad	6200818403625362463
	.quad	2129695226164849659
	.quad	-3283314458335442688
	.quad	2225893409909150746
	.quad	7870945454511315288
	.quad	-6921286955321140315
	.quad	-7927258841820575305
	.quad	-844764140532688370
	.quad	5257431126828903605
	.quad	-4991422145517971016
	.quad	-1754887794961141981
	.quad	-2182971269897386616
	.quad	499368140042072145
	.quad	-2726456492399035913
	.quad	-4521152151989327392
	.quad	2166934485862403024
	.quad	3010281756855055608
	.quad	8898009465920717074
	.quad	-9028280251768928682
	.quad	3166596280515383312
	.quad	-3916829719044518700
	.quad	-702959736248707048
	.quad	-2481771394982896874
	.quad	-1330404808772218689
	.quad	-1348317402356521815
	.quad	-6036322827726295522
	.quad	1167427969920326231
	.quad	4761531922786970041
	.quad	4817345857721084576
	.quad	7105766913403095130
	.quad	2690670708651419671
	.quad	-9001881786249146584
	.quad	-9149070556453776240
	.quad	5868176722765418764
	.quad	8429364877332796959
	.quad	7785756492654137899
	.quad	-3471394584901665338
	.quad	3272010964035218775
	.quad	8946396491617515063
	.quad	3774503492701710541
	.quad	2113917870331282160
	.quad	828893270910549748
	.quad	-2377114649894211513
	.quad	-1092180559393239058
	.quad	-3292074749717267900
	.quad	-7606169245317870794
	.quad	6114962583350433051
	.quad	7410280303775720868
	.quad	7775824051733197893
	.quad	8185651664029868180
	.quad	7343199417670698200
	.quad	-1860212044207345389
	.quad	1531724981369431299
	.quad	5596507566645246686
	.quad	1033673521199123313
	.quad	6075312368002387319
	.quad	6988496924054716781
	.quad	6391739185558415463
	.quad	5113489708754880915
	.quad	5151168029055706557
	.quad	-9216346271432471737
	.quad	-6836426366083438961
	.quad	-3534044991488462333
	.quad	2592256641629920077
	.quad	6173520526398057949
	.quad	4604669688530289732
	.quad	1867259042549585024
	.quad	-2266506573437167734
	.quad	3296394050993129267
	.quad	4326520583229998770
	.quad	6557569103657179065
	.quad	4126356691591689646
	.quad	8674328613473447843
	.quad	-1875316598361259556
	.quad	7736897018973921473
	.quad	-5613859445880645410
	.quad	4156115685030516430
	.quad	-5381481733508297087
	.quad	1259959382324059562
	.quad	3903778521291749897
	.quad	7651786527262658013
	.quad	-389667231532168783
	.quad	-5426324641408694587
	.quad	-4800341580132131206
	.quad	-1484475969245359272
	.quad	5358581430340252761
	.quad	-2003639699839250821
	.quad	-8347527244426931892
	.quad	-3556200439140719656
	.quad	3920654390251896725
	.quad	-8559491217465040261
	.quad	-8532034662330888215
	.quad	8143291668075459938
	.quad	-4935891254805454392
	.quad	5791160530185715579
	.quad	-6869950887157724569
	.quad	-2990935053774282769
	.quad	-5170112953548154866
	.quad	-1478169368726573863
	.quad	2376454925072971568
	.quad	-8969609855615126573
	.quad	-4662121081889022628
	.quad	2074505569780291922
	.quad	-4151941017140215727
	.quad	8759684036994631222
	.quad	-1897588661594177311
	.quad	75977962737081600
	.quad	8870825488941031605
	.quad	7403557657089993256
	.quad	5825394234709429518
	.quad	-6467997659917633207
	.quad	1876293130790608838
	.quad	-9030112450189859006
	.quad	-6099922215348217754
	.quad	6352722970730511156
	.quad	-8525801969394466628
	.quad	-7954370157001479435
	.quad	-7283420446761558825
	.quad	-1411461081652875844
	.quad	835685192553490421
	.quad	-5654284761139047633
	.quad	-7998821622632223976
	.quad	1515090998837129975
	.quad	-4947936491623833404
	.quad	1212623301098019779
	.quad	-6873225423547015530
	.quad	4823461685803772444
	.quad	7289704908733783271
	.quad	-5278862680961223777
	.quad	-1486789623752446305
	.quad	-7395149092244525478
	.quad	-2384271661483139758
	.quad	1976004115345602080
	.quad	3630495248560019222
	.quad	-5748552518513147478
	.quad	-8338820459479650461
	.quad	1597725222698864118
	.quad	3416019089997140849
	.quad	3011417601086561495
	.quad	6275242351124667286
	.quad	-4249186890628490855
	.quad	5633711018871057458
	.quad	-8723247662364520868
	.quad	-4536686317374020784
	.quad	7285051335492395815
	.quad	-1672138453430223369
	.quad	-8222909674840593809
	.quad	-2665011046140751877
	.quad	2607095622729296315
	.quad	-1947153776755370610
	.quad	7576646116121533069
	.quad	-1808430198370236087
	.quad	-4150549866057079920
	.quad	-5572332252098050548
	.quad	1998417862388106640
	.quad	-4564101638287232670
	.quad	5791129521978463837
	.quad	7512934139125398199
	.quad	6966283273373526248
	.quad	5475728301311080129
	.quad	-4904532230951170027
	.quad	7798993150530415596
	.quad	3288770257171840452
	.quad	-5073458004151221985
	.quad	-8662465027213206602
	.quad	-2721711413471022803
	.quad	-2407812150351072781
	.quad	6921788930154218900
	.quad	6093507035435214187
	.quad	-6251904545736749515
	.quad	8376199250979271449
	.quad	9055995864116790217
	.quad	8125030124567662718
	.quad	1070812422878398727
	.quad	3950906148308170707
	.quad	-8325227154070832544
	.quad	813471384549762068
	.quad	7610605259962047827
	.quad	-3829088172724327499
	.quad	-2357074995512934176
	.quad	-7852734312175740402
	.quad	3425971360520359121
	.quad	1245021768718221594
	.quad	-1756371181123437464
	.quad	-8513564307514507441
	.quad	-3304011353033275153
	.quad	-1011160929982856953
	.quad	6030257647680338377
	.quad	243683009289621849
	.quad	3064238900429394982
	.quad	7655019927497549159
	.quad	4484400084400458429
	.quad	-6795883728690900548
	.quad	-2243093497525853639
	.quad	-831999539937439279
	.quad	1119292890050870301
	.quad	4574885263986729787
	.quad	8108207498737924504
	.quad	-8738309634393495425
	.quad	-7769920703821183134
	.quad	1078311554675991883
	.quad	6876202174636220158
	.quad	-389241563043491466
	.quad	7821730895845187783
	.quad	8882321799602877790
	.quad	-2226119849373321360
	.quad	-2883943686688271033
	.quad	3043825293109091520
	.quad	697130162105054983
	.quad	5394549491776704087
	.quad	-3651395995648437650
	.quad	-4240663309508654396
	.quad	4623073019242398493
	.quad	5850602047109930316
	.quad	-4663212079948572407
	.quad	-3682397098011502975
	.quad	8951680172224205890
	.quad	7302725075484262769
	.quad	-5874159407852147867
	.quad	6499691362933905099
	.quad	-3970390959353366245
	.quad	7381716148644532401
	.quad	1573798302334388880
	.quad	8128390307766282880
	.quad	-3899289897460962012
	.quad	-6337376428965394240
	.quad	-408987085193123636
	.quad	814572839386760074
	.quad	913616818805172815
	.quad	-5472253209076310673
	.quad	5228203788953366069
	.quad	-6988322916803916266
	.quad	-3912018527805109096
	.quad	7717994192616957513
	.quad	-6241902326140984330
	.quad	3911093871228418198
	.quad	-7210007963289732399
	.quad	3283907124458179474
	.quad	-6704225542743670398
	.quad	-3412972390411098627
	.quad	5201173013910789542
	.quad	-4496436512219348405
	.quad	2109530041534182225
	.quad	-1480135711984229343
	.quad	-1396730586495990639
	.quad	6582524050666171954
	.quad	8348662591649610062
	.quad	-189675506492344731
	.quad	-6362186666599643452
	.quad	-312691359737644971
	.quad	-4923909522660079992
	.quad	-6650708276621078718
	.quad	4408384297249203940
	.quad	-5262708414046235787
	.quad	-8128149467327880244
	.quad	43784547091343099
	.quad	5864759723778872652
	.quad	273751009786971880
	.quad	-1013243765013638564
	.quad	-4351574774257663364
	.quad	-9062046491846371100
	.quad	3670310635026975567
	.quad	7512955195757960238
	.quad	1061441390592395566
	.quad	8687976820410979119
	.quad	5847434943730572861
	.quad	6139588162124989313
	.quad	-1806319030837328630
	.quad	2868461478718351559
	.quad	4582082172412426839
	.quad	-2447120615937359536
	.quad	3911979819012561187
	.quad	2157661418664981538
	.quad	1679437503202036379
	.quad	3357369754420384657
	.quad	-4219705378767538723
	.quad	-7597500415073169355
	.quad	-3747747800043878293
	.quad	-2973599390922249986
	.quad	-5560381046264038553
	.quad	4218522843946321369
	.quad	4305571301049736163
	.quad	7569433164869749160
	.quad	-9159847854694142910
	.quad	3061813620853218759
	.quad	-4610282980392353672
	.quad	-5552887080665643476
	.quad	-1077945739589339213
	.quad	3507360881370918016
	.quad	-559362225455493734
	.quad	5080557806347717197
	.quad	-7469406795646359948
	.quad	-4721513734847657682
	.quad	-5828141657958317600
	.quad	7913767807930932665
	.quad	7119689779124353718
	.quad	-4193161632795119207
	.quad	-2266664298480820293
	.quad	7952167928403988663
	.quad	-917661258132331825
	.quad	-3878076237822225215
	.quad	80331144542697157
	.quad	-2256004495351564247
	.quad	8688615216852085496
	.quad	-1778615054119281001
	.quad	7430615013050690552
	.quad	-1956602243387379405
	.quad	-8652802222042736188
	.quad	-5768100342783557958
	.quad	248986629347794843
	.quad	-4196331673102552775
	.quad	7671639316274744213
	.quad	198890803142183275
	.quad	-4347396588509933727
	.quad	-7956364526143525037
	.quad	2979540189595374423
	.quad	1947868558918413664
	.quad	-3639631746167567888
	.quad	2275659819146309375
	.quad	-3982554798329193222
	.quad	-6998391622007342723
	.quad	6508543885912264241
	.quad	-6678060822944048458
	.quad	-7494152118232749169
	.quad	-4630105106106715387
	.quad	-3024135372799982072
	.quad	2270147616630940233
	.quad	-7267476525939301888
	.quad	-7997781166423724312
	.quad	-1712040359268772959
	.quad	5221611440144584595
	.quad	-3929548825206982360
	.quad	-1190520731773447516
	.quad	-5186332400994310567
	.quad	-3040717441845451633
	.quad	-4709360519660892353
	.quad	-2991183771552809941
	.quad	1751310744149771156
	.quad	-5380364096712023742
	.quad	3353407191478085130
	.quad	1488844206746128853
	.quad	5630044290904406795
	.quad	-4241563877177202818
	.quad	-8425420821052820707
	.quad	4177092513333669169
	.quad	-2326000303389652332
	.quad	-6139648016154258350
	.quad	-2987512310045374852
	.quad	889710173957193674
	.quad	4419259815443372538
	.quad	-1190719849872088439
	.quad	6105822529166486288
	.quad	-3987040237309645769
	.quad	-4528588543877290614
	.quad	-5493135657211059838
	.quad	4285102780598248527
	.quad	-2592809006726121377
	.quad	2610351403194505517
	.quad	-3540774380694516339
	.quad	-6402767312217531626
	.quad	3883507340167876094
	.quad	-521855599416379727
	.quad	-8832294970140387078
	.quad	4845704270242367817
	.quad	-6438056373695409143
	.quad	1716754592634195833
	.quad	-6786870616240550326
	.quad	-5929439582468063531
	.quad	-1092409873282689583
	.quad	9210172215611836370
	.quad	-6102103333630937557
	.quad	3062009161663360858
	.quad	-4091183294439281729
	.quad	-2116794886665078338
	.quad	-8029226012595203563
	.quad	-1269765431435104295
	.quad	3712446946318727051
	.quad	4945584645347875343
	.quad	1452106171634255818
	.quad	3956111205277777094
	.quad	5189717012427541369
	.quad	3472340014029267422
	.quad	6668665876000385745
	.quad	4485832753674145894
	.quad	-6064405411977204803
	.quad	7541911698478926337
	.quad	-3296812065589645408
	.quad	4305127974721563681
	.quad	1791662546103098630
	.quad	4296877809427381060
	.quad	-1813908267119120170
	.quad	-8186964198420388872
	.quad	-667762386141901633
	.quad	5366247750742617824
	.quad	-8899433617201278787
	.quad	-4998358296224872014
	.quad	-3552030415562986805
	.quad	-6622011027639106755
	.quad	7837257984511059587
	.quad	2076868999727871781
	.quad	1141628358620336648
	.quad	124257162490673620
	.quad	-8303857112720218893
	.quad	4829332121328832468
	.quad	-8176454052966622553
	.quad	612254171545848165
	.quad	1561874225563706331
	.quad	2553790617248213172
	.quad	-472257549782882230
	.quad	-4688697811218358490
	.quad	-5651007223151431415
	.quad	-8812987620180981296
	.quad	4858530219988192818
	.quad	1065158159683874679
	.quad	8319243544184355877
	.quad	-4751620283209403698
	.quad	-3544252158981527466
	.quad	-549448476789343072
	.quad	-5301043684612154069
	.quad	-728605327777663903
	.quad	6375848648146503804
	.quad	7645293691857928487
	.quad	-6381022298466019924
	.quad	-6755623081723628814
	.quad	-1198128250408416451
	.quad	-6546358767502965415
	.quad	870508371369003535
	.quad	955231391199379621
	.quad	-7506056891667534092
	.quad	-3524421643466431173
	.quad	-3710039091774100031
	.quad	8314426549855759150
	.quad	2760381523184423167
	.quad	8810969141379078256
	.quad	-6553827411949536759
	.quad	1755979794900862517
	.quad	-5497803878891857700
	.quad	-4696720767541712423
	.quad	3290512268628289409
	.quad	4860152497408345679
	.quad	5084577535558638773
	.quad	-5089323632138164784
	.quad	5392821764697388290
	.quad	3370779232433904061
	.quad	6786323316239818664
	.quad	-4458255782181442070
	.quad	-1683686297782775517
	.quad	-4742465736876186718
	.quad	5190915261805236498
	.quad	4269775989329496414
	.quad	-8049712707207320867
	.quad	8706700860369451082
	.quad	-2996273211018921549
	.quad	6641334596693562709
	.quad	-3507511805465491600
	.quad	1558632112881568033
	.quad	6254576423833916269
	.quad	1084675610817383352
	.quad	-1342278491522853079
	.quad	4833516371994136844
	.quad	-3944228978940486773
	.quad	8787624326656394361
	.quad	5481906467936954687
	.quad	3659648958500977172
	.quad	-4876985418650040892
	.quad	423753508583671151
	.quad	7949692292969526623
	.quad	-5847288435664904682
	.quad	8139256366538476326
	.quad	6710672208682057506
	.quad	-4023990361149050951
	.quad	-8930019527585895747
	.quad	5039140619993193935
	.quad	-8183035980004754077
	.quad	-2337382681512560730
	.quad	-6575020493920961688
	.quad	7293511357133000537
	.quad	2724231537040554216
	.quad	1661435306796893902
	.quad	-2521037971035465940
	.quad	4925546377926235324
	.quad	5439519346074792827
	.quad	2176389624009388617
	.quad	2631244572392601375
	.quad	-3397502978494774675
	.quad	-2154548764245586185
	.quad	4379169091046493311
	.quad	2454237863606964835
	.quad	-2112783122749983627
	.quad	2940042391023597169
	.quad	1533882682168345723
	.quad	7912857897205842403
	.quad	1040257752809770187
	.quad	-5901370915799760286
	.quad	-392860810779238141
	.quad	8446994405822321388
	.quad	-2904131913378393879
	.quad	1459133231397356361
	.quad	3941901116603734935
	.quad	-2592505311854589185
	.quad	1683392471311308404
	.quad	-6350538221106233935
	.quad	6820059189056588614
	.quad	-3073986494830318012
	.quad	-218973037938083866
	.quad	7010478637127834081
	.quad	8928188893192923624
	.quad	-6102097332696228033
	.quad	-6006989736293780681
	.quad	9182843523163647971
	.quad	-2636304512307297112
	.quad	-7316217038517899945
	.quad	-2371672434440812433
	.quad	3443645865542916504
	.quad	-6696188246008930410
	.quad	422646248780349554
	.quad	-6907433711327511722
	.quad	4763473581670936626
	.quad	5701874618110019129
	.quad	-325193406802552057
	.quad	-5604997283553601766
	.quad	3364990888354259195
	.quad	6484882595457418431
	.quad	-7754618246587377424
	.quad	7751307036611133521
	.quad	-33981862574822066
	.quad	6083925447456975275
	.quad	-7828348757174217593
	.quad	-7707592538226203344
	.quad	-4050371693681990949
	.quad	-2977352889205759889
	.quad	710384459212154141
	.quad	-3939684149802881130
	.quad	-6267544305572635901
	.quad	-892748000042461441
	.quad	4049143900251484220
	.quad	2353138909633888308
	.quad	-995405046226983902
	.quad	-8227786797275819914
	.quad	-7760700333123229360
	.quad	6177056524706426891
	.quad	-6512745245545818089
	.quad	-6656931937292435343
	.quad	6130383594849327407
	.quad	575528180851818331
	.quad	-7622814136242621914
	.quad	9077762088158342327
	.quad	2827120064956390694
	.quad	3519357779065465924
	.quad	425844422333354085
	.quad	-28277236483298615
	.quad	3444077261507042594
	.quad	-1480540807355897300
	.quad	-4098283273054128872
	.quad	8934144111598161826
	.quad	1663631516174082120
	.quad	1304685782995802865
	.quad	-4615125056184470573
	.quad	5830785385755117435
	.quad	-6589836257360823345
	.quad	5162694272652473885
	.quad	6946824963379699734
	.quad	1352758106229122422
	.quad	-1175314537285653615
	.quad	8947984804471892629
	.quad	-793401307793597091
	.quad	4502150155652477244
	.quad	3759556917273655880
	.quad	2030723927088048271
	.quad	-7357035679515684303
	.quad	8971415199143921496
	.quad	-4836595726001166553
	.quad	-4729459372780629994
	.quad	-7918070651948854546
	.quad	4762888388951764915
	.quad	5513774634869819603
	.quad	-2439026716832985467
	.quad	-4294502520082107384
	.quad	-7333874815572220198
	.quad	9148441446913589019
	.quad	-1887628647333882653
	.quad	3506676205285369248
	.quad	6989174042485057886
	.quad	3746162978008756000
	.quad	-8635690926242402144
	.quad	-4644727287527848304
	.quad	4622485068872901661
	.quad	5920832453985658411
	.quad	5074745334849571995
	.quad	-6169534144548944229
	.quad	987982979393359775
	.quad	-4360669703220707503
	.quad	6845439848970919144
	.quad	-1660048818909926350
	.quad	-8458759086046502990
	.quad	-6561299971273586675
	.quad	-270448685274774117
	.quad	2120200909159614914
	.quad	-875102069686870530
	.quad	-2922855561396113412
	.quad	600012775512756733
	.quad	4027297325766027733
	.quad	2950407886710246875
	.quad	-9186285827675901301
	.quad	-2814998738230851781
	.quad	-7567346583304642115
	.quad	-626410890573500534
	.quad	8962262765017524829
	.quad	-1237208531745518339
	.quad	-7452273968508483974
	.quad	-2413391422244865427
	.quad	-2672316369476402446
	.quad	4596106024708523955
	.quad	8854068685612048031
	.quad	-4917617478521729526
	.quad	-6936815780218763307
	.quad	-6825893364275216926
	.quad	2068337952936280662
	.quad	6856444059219131741
	.quad	-1232817862890355157
	.quad	513413453513211652
	.quad	5520465604253824995
	.quad	-5475857485694627011
	.quad	-6150468405272100479
	.quad	-1638456822352596654
	.quad	-491496877135220326
	.quad	285928599571507431
	.quad	-6543756369412480635
	.quad	2841167725097799100
	.quad	-9165576662912703253
	.quad	-2002403597683409342
	.quad	3423202423051178709
	.quad	9101021305726472246
	.quad	1865569627339845981
	.quad	-4041233672646911938
	.quad	-1898495182556237240
	.quad	-312014440538833533
	.quad	7342289204282809135
	.quad	-4767939248037658819
	.quad	-7137149379038995696
	.quad	6482941613725556691
	.quad	8869273893561412239
	.quad	-8096931992399686419
	.quad	8913824872487209090
	.quad	3148808685596180274
	.quad	530908416884501807
	.quad	-8162640329633745637
	.quad	-4839854134803796894
	.quad	2418062398586758364
	.quad	4027740097060141621
	.quad	-7147276630045231289
	.quad	-7295304459168944908
	.quad	866223440636939151
	.quad	3440384894029167420
	.quad	3873155505711856537
	.quad	5954029035616033594
	.quad	-3064882390631191142
	.quad	2298603653884322501
	.quad	601221199968240092
	.quad	1285112712738261659
	.quad	-4564034313354243083
	.quad	-4883489639947113446
	.quad	-4999025739051116563
	.quad	-4953056114823313513
	.quad	-7413965775557872333
	.quad	5991348986251844787
	.quad	-7793784115704254287
	.quad	4727138097613835700
	.quad	-6781137892224891757
	.quad	-628257685220314566
	.quad	-1065287016765901495
	.quad	-6963030241938130888
	.quad	-4100407688444429067
	.quad	8626760324117733843
	.quad	-2042792327747392252
	.quad	5837394731212322914
	.quad	6847167719031297053
	.quad	2888142337636247281
	.quad	3409818743436360750
	.quad	1677113113408664401
	.quad	1222157560539217476
	.quad	-3562803142366088323
	.quad	-6127367176071008795
	.quad	-6079558826424712877
	.quad	5861252096374912155
	.quad	-8427945774406288799
	.quad	6422772579819453330
	.quad	2070123940915480886
	.quad	-6305442021188931314
	.quad	2294668553308381923
	.quad	-1281456824641692319
	.quad	-8549020061886478649
	.quad	-1036892199478267302
	.quad	-4558168755092042977
	.quad	-6353977983329893013
	.quad	8412268183255186961
	.quad	8046572777745318483
	.quad	-5966167386318842075
	.quad	-7197439526821915377
	.quad	6075047530003410694
	.quad	6121669232248820705
	.quad	-8137487530285090840
	.quad	101796817907499847
	.quad	2110451750984093184
	.quad	-7668408458197200373
	.quad	-5268305048280817022
	.quad	-2058705105120523545
	.quad	-2280994066966923440
	.quad	-543104676076308455
	.quad	-8886424985598814224
	.quad	7888974492854359310
	.quad	-2330420443366393120
	.quad	-8268914424086840586
	.quad	938191787235564236
	.quad	-4118040895360508988
	.quad	-8229486604756751118
	.quad	-8030819863034687376
	.quad	7171739159943819214
	.quad	6502538915112206091
	.quad	3300616451202954689
	.quad	-8869856103103825509
	.quad	2378363646789710539
	.quad	494954399989334038
	.quad	6915496914984330558
	.quad	757197055392642378
	.quad	9097171378505823650
	.quad	-6342455735380310128
	.quad	1905673690814481722
	.quad	-5435665396614485584
	.quad	-2198912765859634771
	.quad	8654394682758927217
	.quad	1180998443932568506
	.quad	3847327552938166714
	.quad	-788528528571850455
	.quad	-6471330703847722410
	.quad	-7766758388819952443
	.quad	-3518477710833432394
	.quad	-5734469613937664808
	.quad	-2698629309200099852
	.quad	1994630377849062253
	.quad	564390855806287868
	.quad	135493276425567450
	.quad	4305883520257541088
	.quad	4842008929542073044
	.quad	7035106970720249617
	.quad	-456994379660119825
	.quad	789684239382195704
	.quad	8522485471922280690
	.quad	7955435170423857484
	.quad	2579196427422354751
	.quad	-9033230108037468901
	.quad	-7219871049354941787
	.quad	-1795078575171485980
	.quad	4772079965696324995
	.quad	-2521703011115561078
	.quad	2818172089014580505
	.quad	-7142528999098004630
	.quad	-8316052250591205576
	.quad	-6650515263659643029
	.quad	-9183942684006075367
	.quad	6629344122525229781
	.quad	5927886078287268982
	.quad	-5731233143485462287
	.quad	8643588989758804239
	.quad	7254636959336495603
	.quad	-5777844206981329675
	.quad	-5430995809516186626
	.quad	-5072322643281283852
	.quad	684317839891516997
	.quad	-7400760158848384504
	.quad	-4340595878102717700
	.quad	4442596873181225087
	.quad	-2818768748420704810
	.quad	8173496855557146242
	.quad	6061080385918934423
	.quad	5233260187121969538
	.quad	-892650517234823122
	.quad	168886776600834133
	.quad	-912375467159111467
	.quad	-5708100687319336316
	.quad	5722251947053245137
	.quad	3827812383664820602
	.quad	5840835241484445182
	.quad	-6631126894954549146
	.quad	-4855560076026510372
	.quad	-6323951704950976354
	.quad	810814789452398299
	.quad	6387727669765211854
	.quad	3304731719391402237
	.quad	-3149898238786448456
	.quad	3685348582131767195
	.quad	-5810409016230604276
	.quad	-1475490306609998629
	.quad	6347750907684259828
	.quad	-1920892792113218325
	.quad	-8753737500543818330
	.quad	-5503730430001745848
	.quad	-2231705037657723307
	.quad	7753707135700009634
	.quad	5456043987786476025
	.quad	-661609530825475514
	.quad	-6101289266076808192
	.quad	-6900174422006790133
	.quad	8873100774001529421
	.quad	7001975923028025552
	.quad	8129283832066039281
	.quad	-298855848205126320
	.quad	3510907297028745651
	.quad	897602195837260824
	.quad	-7775652341786897121
	.quad	6866473722734363266
	.quad	-5222195803857284714
	.quad	-4874797005044920708
	.quad	-4067775395536870374
	.quad	8647509467155086796
	.quad	992831729186321156
	.quad	-8899437780610861158
	.quad	-550398691347328622
	.quad	2167374959533815311
	.quad	5029128091600127895
	.quad	1770543276160593316
	.quad	-1212619927666038674
	.quad	5338191548265818047
	.quad	-2770697470733857218
	.quad	1943153641089805200
	.quad	-6936471412639639772
	.quad	4468877914461218558
	.quad	-342787364306802284
	.quad	2250273439541882027
	.quad	2296852295002051931
	.quad	8380053048421470698
	.quad	4589972147332879191
	.quad	-8233297662008991349
	.quad	-7361924578435750898
	.quad	-5480236383977726364
	.quad	-3420306241280362478
	.quad	2506312683689776139
	.quad	7417463323869895004
	.quad	-8627188852470854226
	.quad	1250200244896601539
	.quad	1394555910521460172
	.quad	3300559047181918966
	.quad	1584262243384192418
	.quad	-9094312896064372298
	.quad	-8880802730828822858
	.quad	-6218788745433334832
	.quad	9161694705762660072
	.quad	5238910359802585155
	.quad	-529366702133133826
	.quad	2221512141494043286
	.quad	9203854585477888176
	.quad	-6275364946158040112
	.quad	-7779385604588565921
	.quad	3795093165005123272
	.quad	6129005969593025264
	.quad	8738204659003189419
	.quad	5273583671698415302
	.quad	7505554089763730328
	.quad	-1064166948792383149
	.quad	-3627356237941106730
	.quad	5431716497710112481
	.quad	6308222036373324232
	.quad	-1535262838527402044
	.quad	6971940820115764166
	.quad	2454255684525580436
	.quad	5757832545805155636
	.quad	-837663540656123989
	.quad	-4591082043107461724
	.quad	-8824245390257338319
	.quad	-6165157631644969670
	.quad	610529441714948581
	.quad	-3706386596690114990
	.quad	-1463553961983992753
	.quad	6491692429332285200
	.quad	4103270574517955061
	.quad	-3979630789708366399
	.quad	-268673317453643570
	.quad	-7342978641632411166
	.quad	-8159859273523637375
	.quad	2689754010733790101
	.quad	674544205052012695
	.quad	-7963832692316023280
	.quad	-5582106304872271103
	.quad	6901297244762848716
	.quad	5377237017641764505
	.quad	-4935961902294328913
	.quad	1827311031755705120
	.quad	7679372421803924367
	.quad	6196048862195110329
	.quad	3128131800075486611
	.quad	-1360480620445259070
	.quad	-332185430281029356
	.quad	-465098793833887472
	.quad	-9211810175565787468
	.quad	8647229381980761930
	.quad	-2606772558552265261
	.quad	-1154262849408105918
	.quad	-2331167524609116121
	.quad	-1002512938399423601
	.quad	-128406016535243436
	.quad	-1875707720879703144
	.quad	4885367003884113263
	.quad	-4872730451148917584
	.quad	-8455230152664548623
	.quad	6222268601158038454
	.quad	-1696305908989766085
	.quad	-6482768897008530272
	.quad	-8315546999601316618
	.quad	-259899151497011972
	.quad	1568618815734672826
	.quad	-9202295420416000521
	.quad	-2716631167787995170
	.quad	1297087121258373331
	.quad	-1833336093285409898
	.quad	-8387406148709096883
	.quad	783635166131685754
	.quad	-2519039398736890002
	.quad	-7628124553635217948
	.quad	1811649577346312357
	.quad	-6054527350304304167
	.quad	2446435311210547855
	.quad	3749883624724179901
	.quad	2130251935480551773
	.quad	4406697408025442033
	.quad	8816553319000416028
	.quad	-4294557148238537213
	.quad	3425578466298478883
	.quad	-2723167290326817193
	.quad	-3781883413727925636
	.quad	-5332071058286369163
	.quad	8718583169179217691
	.quad	6702238507829518484
	.quad	537404954741847978
	.quad	236538957008726648
	.quad	4736442696841774372
	.quad	666593636372148845
	.quad	6992329576222902304
	.quad	-9205056465651560123
	.quad	-5321250720692296108
	.quad	7031831946391348578
	.quad	-6749407902224175716
	.quad	-2754909539970063521
	.quad	-7534297049516093962
	.quad	8949338638903679026
	.quad	-8685239851195619631
	.quad	-7224096909063382627
	.quad	264080388208614706
	.quad	5439106812939426209
	.quad	-4956344545955163596
	.quad	-5857542856840711609
	.quad	2353840741970165055
	.quad	-7146740652537565617
	.quad	-4654882598452274520
	.quad	-5641868462546891091
	.quad	1802782510080313928
	.quad	-7245426831416575033
	.quad	-4745457484943392862
	.quad	-4729334240454871477
	.quad	-6848744578209666658
	.quad	5400047685687305415
	.quad	-1218490117989555226
	.quad	1048601628772453569
	.quad	-3651319243381852470
	.quad	3642398502502742050
	.quad	9142719000543149653
	.quad	-8506962861605960273
	.quad	-7042039935644729188
	.quad	-5823176475399836788
	.quad	4897308930841465733
	.quad	-8684871610201264519
	.quad	1718284172128560010
	.quad	8446170106433871259
	.quad	2252520880555031516
	.quad	2022281163958152702
	.quad	-4629300463934397492
	.quad	-447024127754046437
	.quad	6583595071270259918
	.quad	-1432977800621484377
	.quad	-5440708677886805950
	.quad	7412553570433593357
	.quad	5639566854508872160
	.quad	-6784907920151369174
	.quad	4903652984988431310
	.quad	966634802625022586
	.quad	-9075225064276589723
	.quad	3002880394847918857
	.quad	1732991674950603097
	.quad	-6230411837558753010
	.quad	-469416116367449727
	.quad	-6981204886696379522
	.quad	-5907535904246023196
	.quad	-357145333904977581
	.quad	-6277185730026620181
	.quad	1669237080437203304
	.quad	1682370275727930954
	.quad	-6016744982103752343
	.quad	2998550929176256539
	.quad	7289672033949550887
	.quad	3325593663161058453
	.quad	8854269966748595562
	.quad	-4403910752775463019
	.quad	5552931725644531210
	.quad	5290084536987910277
	.quad	3616482867715468239
	.quad	-5130216842629013346
	.quad	7041957697375833018
	.quad	2756098554694336585
	.quad	-7872651075399630129
	.quad	-6713511025162545864
	.quad	-7450188088234892868
	.quad	7050674784944665192
	.quad	3831554659645711928
	.quad	-2427921417722969089
	.quad	-1881356432675979241
	.quad	7382551727128315370
	.quad	7004248260752817494
	.quad	6823905619085965073
	.quad	3277429775787534612
	.quad	1682677861109750133
	.quad	-1657077331815558564
	.quad	6241697215024826485
	.quad	-8065142762747391052
	.quad	-2036401815343114394
	.quad	-6500582869100843542
	.quad	-5936261037824975268
	.quad	4637186219867596265
	.quad	-4763504584986353455
	.quad	1915212511875596506
	.quad	-1650235039473947346
	.quad	-6961273551666413934
	.quad	2728537455696782666
	.quad	1694050403254065761
	.quad	6087082850188683290
	.quad	-3393376535820902046
	.quad	-4750773610611914981
	.quad	-2374790883786749793
	.quad	358904442240909349
	.quad	-6476915401928632025
	.quad	-6902916654508610763
	.quad	-569602700042646604
	.quad	-7311345069363800931
	.quad	-641851585019305994
	.quad	5464031947894654467
	.quad	503176154400125888
	.quad	-4478491375626074135
	.quad	-795539597728797584
	.quad	-7878290090760667855
	.quad	8758787323702015717
	.quad	-3718212031026554572
	.quad	-3827365514223660194
	.quad	345725722641493521
	.quad	-8277732160056418310
	.quad	-4461652765305963988
	.quad	4252455643357163539
	.quad	-6208632718550198029
	.quad	2016404448603030628
	.quad	-7663666764958260955
	.quad	6175316210492421710
	.quad	20311237472537086
	.quad	1385221382575553427
	.quad	-5320657518908561120
	.quad	-2434777094999911719
	.quad	-4728175204909472253
	.quad	71089384707794221
	.quad	-6733353244782954302
	.quad	-7125318466106089875
	.quad	-3549392355818795224
	.quad	6764508936300736385
	.quad	-6327498570085814141
	.quad	-6813564660609472069
	.quad	-8334203450962235709
	.quad	5931368463918018818
	.quad	85795977403052528
	.quad	6197973024915217659
	.quad	5405416284493913559
	.quad	4678662652107321892
	.quad	-4084121178596603658
	.quad	-3362168863934649493
	.quad	986799660987434504
	.quad	6236668770492219686
	.quad	409429993640472371
	.quad	1864047382143255794
	.quad	-3744669063656753195
	.quad	-3767676033234284850
	.quad	-5317652575236059034
	.quad	-1054450756873332708
	.quad	-7572881051547482887
	.quad	6802528117970995803
	.quad	-5563496555613164613
	.quad	-3073102830513274843
	.quad	5169102584635644215
	.quad	9021195118696339615
	.quad	-8938791562843252999
	.quad	-435602778479962214
	.quad	-1428447194877825953
	.quad	2870328300432064463
	.quad	-4936396020519011284
	.quad	8970207798353895968
	.quad	7017047516593441153
	.quad	5774019469436256243
	.quad	-952230333754818205
	.quad	3288775264036408638
	.quad	-7819556410716885611
	.quad	2487813507171996956
	.quad	2750462490879670985
	.quad	5634372452780864139
	.quad	8522893139296800378
	.quad	4508353965974709698
	.quad	-8824634992195995599
	.quad	-2903412363726976983
	.quad	-7393177834071687860
	.quad	4022922154345313479
	.quad	-6326866321937842547
	.quad	3321564692517028691
	.quad	-8800752291492174341
	.quad	6124444515548113766
	.quad	4457346392559199742
	.quad	-6369820899223130491
	.quad	-2116049265862707524
	.quad	-796593604795951561
	.quad	-170430300731677942
	.quad	8470173855499872166
	.quad	-2531534003856792956
	.quad	-6078656827478006099
	.quad	3867174158581293223
	.quad	9082358201271846042
	.quad	-1783280670952374652
	.quad	-4705835213753684797
	.quad	7748969412274962298
	.quad	1020519568493754982
	.quad	-7978963053438881996
	.quad	-838972823082043117
	.quad	6620300538436640218
	.quad	3858527175523168333
	.quad	-4648614476375318793
	.quad	-5951421421772160608
	.quad	3926713306087152023
	.quad	910276569977357717
	.quad	2872810615152156462
	.quad	1942106118995935911
	.quad	8734004121981822024
	.quad	-4584625637276671918
	.quad	1912639548162720505
	.quad	-5386606134833626884
	.quad	-7804527162650041496
	.quad	6067717601858189468
	.quad	-8008339213781730308
	.quad	-8455340203350714145
	.quad	-718385487575083845
	.quad	-4969794104762721418
	.quad	7311235997042381570
	.quad	4429835371823736972
	.quad	-983527617726459642
	.quad	1119490156854665483
	.quad	-1673907516974423090
	.quad	8607715508817325509
	.quad	-8515726810324110705
	.quad	8799481055779587022
	.quad	-6706181363924293673
	.quad	1956849872282864970
	.quad	595288629437737005
	.quad	-1956406517710312069
	.quad	8990885971520264447
	.quad	-8086485567093301871
	.quad	6630482203535351500
	.quad	-1447346587766992727
	.quad	6788531264412870316
	.quad	7229988042452941955
	.quad	-8589826587432466114
	.quad	2349932829525749283
	.quad	-3697388462773913885
	.quad	-3694905510102742914
	.quad	-388389044514417633
	.quad	8461199524627795693
	.quad	4219910612621001507
	.quad	-5669780031390481522
	.quad	-2541674622097394287
	.quad	-1924968335334111438
	.quad	-4304386840770857767
	.quad	-7456596871596441386
	.quad	-8487677119293771386
	.quad	-5412122690667828982
	.quad	5025797339352139456
	.quad	-8124632209066185157
	.quad	2614961497496501105
	.quad	-6845173889194195201
	.quad	-7199065715840389460
	.quad	8415095559389686315
	.quad	-8820928020123085569
	.quad	-6638867930546216244
	.quad	-2756534939468153883
	.quad	8684637224468015605
	.quad	-2471775929516145596
	.quad	-1353531359568433699
	.quad	1408269102463587768
	.quad	-8616400412974548296
	.quad	-8607616247531435142
	.quad	-3176160002677742763
	.quad	-5015408301608812902
	.quad	453894140986472058
	.quad	2256460248523256942
	.quad	-7469754029158136212
	.quad	-4921900038569287582
	.quad	2377705491156186632
	.quad	9175466234166657063
	.quad	-8253993563259632144
	.quad	6582186637873363139
	.quad	-4713617789815703953
	.quad	-739406137623605759
	.quad	7284074204126861592
	.quad	7014592649390236779
	.quad	-8906231956947338852
	.quad	-3853003243837425681
	.quad	-5821947318047619583
	.quad	-1208355299400634833
	.quad	-6166457593819154606
	.quad	-1651020057219159471
	.quad	6498861108824484382
	.quad	4670555282769381189
	.quad	6606014320886832914
	.quad	-1367978180878934298
	.quad	546267528591230105
	.quad	-638094710627470894
	.quad	3219358059129920687
	.quad	9180845247506322192
	.quad	-1781234367490696841
	.quad	-1436564488458986974
	.quad	-8965000344845157501
	.quad	-346106516917043785
	.quad	6004504883489924420
	.quad	1392190011859988152
	.quad	645760203502280601
	.quad	-8963995377831446181
	.quad	-3571370971178914815
	.quad	5732777121501997364
	.quad	6084218283410143521
	.quad	7077023241058205639
	.quad	7324013548514845417
	.quad	871684538941692850
	.quad	8342168718411624348
	.quad	-6898809805934932876
	.quad	7558431463264090940
	.quad	5306754677858088671
	.quad	-6216062786728739433
	.quad	-4833671433553896406
	.quad	3921304177873632196
	.quad	8996043742536031586
	.quad	-4088208410857131898
	.quad	-6578622639098998855
	.quad	-7170759624450210942
	.quad	-3524105443827948658
	.quad	-1260317764360819139
	.quad	2094500549052461127
	.quad	1245672419927595636
	.quad	7529921141299797945
	.quad	3181089597449057707
	.quad	7749529014968942143
	.quad	5502094488639124650
	.quad	303737996856557131
	.quad	-4430169798945096531
	.quad	975048114667687821
	.quad	-446120782963372493
	.quad	-6836516505681706789
	.quad	-2528013769592327195
	.quad	-4224190952738624553
	.quad	5250387797065978007
	.quad	4072857772036819185
	.quad	1092938832534293932
	.quad	-8046753588298210196
	.quad	-5294229559423007702
	.quad	-7429064203552463799
	.quad	-2829379521708695781
	.quad	-1207698825089607431
	.quad	287014877704695080
	.quad	8631885023468339328
	.quad	-8497961545365521380
	.quad	5876482954731244362
	.quad	7617121952285701582
	.quad	8174096875938060165
	.quad	4603417210536670082
	.quad	-8190716941941880484
	.quad	-7169610163140616945
	.quad	4278895672933635880
	.quad	5062049475469993812
	.quad	2827897582327968966
	.quad	2992831031801695571
	.quad	-5202107545312815241
	.quad	-6937114411617193549
	.quad	-9060894847069971816
	.quad	6593209127406185875
	.quad	-5375157281645427059
	.quad	-5622230687886522637
	.quad	5010421558049879306
	.quad	2204733227905633011
	.quad	4131573681084444306
	.quad	1979176567233687320
	.quad	-497921389720861978
	.quad	7497370880814702501
	.quad	-550284107833378545
	.quad	-4059948148314994843
	.quad	8378591591707192114
	.quad	6766103918731794511
	.quad	8942537698106147750
	.quad	-3307839785309142987
	.quad	-7921479910366096904
	.quad	5420329005102916716
	.quad	7624773914963635157
	.quad	-342499747010937340
	.quad	-6862870760317619609
	.quad	-8130122878123475569
	.quad	-4880267212132005147
	.quad	-2177825737980972425
	.quad	-4883833760174728552
	.quad	8454236707620433029
	.quad	-8254430336041978565
	.quad	-214484599194525905
	.quad	6196538652828521245
	.quad	6326999652188467228
	.quad	7611130140249634596
	.quad	5729331023083628955
	.quad	-9060446757704125902
	.quad	8159695029923808741
	.quad	-4962355485909336479
	.quad	-938534748454916343
	.quad	-277858872652826577
	.quad	6752989886356298087
	.quad	-2629605422771983805
	.quad	-7105167558770632285
	.quad	4565811620179705894
	.quad	1249737272413472404
	.quad	-5590185784691304642
	.quad	3218670413717307345
	.quad	6963711577739096963
	.quad	-1335623454838075335
	.quad	-3103428935522815667
	.quad	-8686434018222099052
	.quad	-3584417296255324005
	.quad	4681332955168127552
	.quad	3518246816925454225
	.quad	-5829508131388420654
	.quad	-1563958707571900611
	.quad	4802452401356175403
	.quad	-6010743921047203315
	.quad	-5172362950663013176
	.quad	-8724513923877360034
	.quad	7621274909358193632
	.quad	3619625095597194913
	.quad	-408357818711906331
	.quad	-1183851384681296314
	.quad	-492754948249122802
	.quad	4571031913557658215
	.quad	-6228219852193988807
	.quad	-6430416720767287396
	.quad	-3855009373315606109
	.quad	4779194179940715953
	.quad	8272627736791672782
	.quad	7933540529220306753
	.quad	-3030446195105109690
	.quad	-9055089145272139372
	.quad	-2549612650450333136
	.quad	3770570683047483784
	.quad	-7279631464585040127
	.quad	5601567474657517445
	.quad	3783118250831436068
	.quad	4630982060147290182
	.quad	-708874468161535006
	.quad	7152826429676757761
	.quad	-1168344829868811457
	.quad	-539688531366287621
	.quad	4184642251619278679
	.quad	9078029288006503463
	.quad	8831642421147623601
	.quad	-1482707153269312996
	.quad	-4372733115838242743
	.quad	-7229754259647754455
	.quad	-4875227223265875283
	.quad	1620425890338708394
	.quad	-5604162777695704234
	.quad	7845624487558348664
	.quad	8747439372999364825
	.quad	849305823897878133
	.quad	2217292264321907974
	.quad	8173534404179332054
	.quad	3588643190593022889
	.quad	-6398932657116891536
	.quad	4440414116356099139
	.quad	6205554652376480136
	.quad	5785167748649417700
	.quad	7019155654808990587
	.quad	2999003963140902994
	.quad	2704227893103692078
	.quad	-6943893169025262577
	.quad	-2609278395285914414
	.quad	3889383218337880128
	.quad	-2547811963421484356
	.quad	1170154631063030072
	.quad	4986287477048950569
	.quad	-4318003554526058817
	.quad	4226998074325332718
	.quad	-613352639117401965
	.quad	-7507042113997826770
	.quad	3220332918439944669
	.quad	-857045141030463548
	.quad	-4115881995865681889
	.quad	4909681062064921225
	.quad	5324539111857569732
	.quad	480512488075497177
	.quad	-8875656467350739272
	.quad	-3876300510224019774
	.quad	8121746263843271081
	.quad	-8082908925767080271
	.quad	312023379108980148
	.quad	-1254921038947881054
	.quad	315776409136454719
	.quad	8322002171533871918
	.quad	659256727451485128
	.quad	6073539214057006838
	.quad	3860838300870649007
	.quad	-233126888746612831
	.quad	-203704367493727538
	.quad	-5306558339791120027
	.quad	-1987521408723065965
	.quad	6983293987604155799
	.quad	-1776302171852162835
	.quad	4888742259938168578
	.quad	-8399862833248368095
	.quad	-5149207914799643202
	.quad	728075911981981930
	.quad	2367233511175991707
	.quad	-336475170850012284
	.quad	8187910416116619278
	.quad	-4880534774274098428
	.quad	-2859843934386024814
	.quad	-9160722431335943047
	.quad	6003391320945130831
	.quad	2223391367373031207
	.quad	5501346517567663955
	.quad	-4633580763069550010
	.quad	-4349422076944321760
	.quad	-1379952678194371342
	.quad	-276625771814058957
	.quad	5999134638957620752
	.quad	-4250478866450722109
	.quad	5400793612736232063
	.quad	-2187405713971183043
	.quad	-7266891368968856310
	.quad	3486799782309774463
	.quad	3060529319750906379
	.quad	3540275797284687957
	.quad	-8768859886433480053
	.quad	1241073275629631485
	.quad	-5356335479284634273
	.quad	576624426123499993
	.quad	5402728061849018779
	.quad	-3177475287917858172
	.quad	-3769964899007628902
	.quad	-2383556562715437934
	.quad	3472292462066833663
	.quad	1726393501751981599
	.quad	-779136949313365482
	.quad	7076214653182989456
	.quad	8933476594541109963
	.quad	-7630276643231739623
	.quad	4313649919153689521
	.quad	8329131393852916922
	.quad	9055889308232938827
	.quad	2537223762240522681
	.quad	-1735142833958927278
	.quad	2991491410192766851
	.quad	-2500934676285388771
	.quad	174424339132480316
	.quad	4210744239678247633
	.quad	-3415963203754431237
	.quad	5485176043812882513
	.quad	-7719190483820386768
	.quad	5617457077214333092
	.quad	-2509250256995983154
	.quad	6287330459840726949
	.quad	5451240171054977850
	.quad	3524414944972920777
	.quad	8740440597273129486
	.quad	-1646676103444261148
	.quad	-481373230420368591
	.quad	-7489236736157056721
	.quad	-3412476890113207125
	.quad	5853451039209663334
	.quad	5056609951312326767
	.quad	-2099683094305651554
	.quad	1939792845950438155
	.quad	-4596784134675952478
	.quad	7867367611626606383
	.quad	-9214558887947350993
	.quad	-6838984298019752441
	.quad	-141268211155490404
	.quad	-4763284247288566875
	.quad	6563479481163652928
	.quad	-6043500659159179000
	.quad	3503919201874705381
	.quad	7999877125033412545
	.quad	6740965337967996335
	.quad	-3085467552949725765
	.quad	-4254387311310880194
	.quad	-3149631767603043152
	.quad	-4867315621907042993
	.quad	7047814060384107743
	.quad	6959527445237219799
	.quad	-1275965827939945315
	.quad	807762173031474321
	.quad	9151445233487017286
	.quad	-3343332583770105283
	.quad	7976669669591851659
	.quad	-3622420087129912975
	.quad	1535817133122800221
	.quad	-3393212797330344180
	.quad	-1249642042958333021
	.quad	-9131487017207502100
	.quad	4777675729157967969
	.quad	-2783160999532740655
	.quad	-4170755857838815345
	.quad	-6339452213176545247
	.quad	-4767355252430727459
	.quad	432510934923605986
	.quad	3592482452298003638
	.quad	2551305494020055674
	.quad	-5072675619390349391
	.quad	-1604584022632956014
	.quad	2986877725386160269
	.quad	-2627238060609441181
	.quad	4058665567355108167
	.quad	-4717865928507580514
	.quad	-4642689905512318423
	.quad	-4345419939752708063
	.quad	1116049186598269780
	.quad	-8071457427855345190
	.quad	-3720382032079631978
	.quad	5062214334487159594
	.quad	7266978615228704040
	.quad	-4453257993522131682
	.quad	-3564622421940890972
	.quad	7947881871819932407
	.quad	1364312030151957949
	.quad	-7773556768506992926
	.quad	-3407747018654143301
	.quad	-9178413193250235131
	.quad	4319340556575124142
	.quad	-5962499300961834952
	.quad	1274138474066302560
	.quad	-4660408738927120479
	.quad	-1223737109030719799
	.quad	8673298231507552017
	.quad	-2184591020293955722
	.quad	-1375964353297006298
	.quad	-4148226959389415630
	.quad	4160034971483971547
	.quad	-8359209807050706814
	.quad	-3970024694357212872
	.quad	-312809830453796968
	.quad	-4890398133947531941
	.quad	829676641363299681
	.quad	-6138557643803712941
	.quad	-5393413665940334925
	.quad	-3692463776623868828
	.quad	-7043637206492791693
	.quad	-3609146216617047432
	.quad	1408376404818262263
	.quad	6664803308972262537
	.quad	7414775915598852759
	.quad	444148745209208739
	.quad	-7639590950840129241
	.quad	-5599821482349055519
	.quad	-2928293142159721837
	.quad	3843880753372237176
	.quad	-6705184087310638186
	.quad	-1472361724934246022
	.quad	7085384294841794242
	.quad	-8168265390857973441
	.quad	-1448839089223652979
	.quad	-1428381226932113999
	.quad	-6542111262088553868
	.quad	-7604309712610114363
	.quad	-1045807100113347978
	.quad	-5309390815656543292
	.quad	-1582077924273864859
	.quad	-2819256025101139389
	.quad	3346630098068660692
	.quad	-8068215752579228581
	.quad	675131395234570986
	.quad	6499764861270829225
	.quad	-8810909109396688893
	.quad	-4839460736751876301
	.quad	3010081551070222211
	.quad	7802964619790661860
	.quad	7508798832478392344
	.quad	-3726433897416552731
	.quad	3961413877651972759
	.quad	6412407425648695956
	.quad	-6135288453768729380
	.quad	5863311371221941690
	.quad	-4076966675628085800
	.quad	3854955342493637624
	.quad	-1956597633190805181
	.quad	-4775814011682436288
	.quad	-8534446107370237593
	.quad	-1385324926387373981
	.quad	6220676237879734303
	.quad	-5723355405191842391
	.quad	-3479449148894020390
	.quad	7286002704046609276
	.quad	2105494380036834916
	.quad	8962081039896777899
	.quad	8233643425723824370
	.quad	-1219395724234698105
	.quad	1787849643686157595
	.quad	-9008958583092510183
	.quad	3874319623303283883
	.quad	5941179433706894383
	.quad	7758670711033486788
	.quad	-5346475214272290570
	.quad	2710827110109069731
	.quad	7642190126531371256
	.quad	7810260614827393010
	.quad	-8709477020224968963
	.quad	-7029075532882503358
	.quad	-5132122854532309597
	.quad	1745679933409654143
	.quad	6276773324950386693
	.quad	1770539858946453655
	.quad	-8256855624935519339
	.quad	8076296716075878748
	.quad	5152358999140028988
	.quad	3414319840794273018
	.quad	-4356245620023095206
	.quad	-6102571969632738464
	.quad	2365455792963674834
	.quad	2249234228455309648
	.quad	5237136544555745182
	.quad	8814246419234451463
	.quad	-5428930371102538269
	.quad	2241193992640629733
	.quad	-464517836719689106
	.quad	-8646215920469677982
	.quad	-1174853883031151952
	.quad	284117971978206043
	.quad	-3447100598004872808
	.quad	6264699496666119083
	.quad	8859934981351804429
	.quad	8300880062060532031
	.quad	3667839168820458685
	.quad	-1313740908799029419
	.quad	-4360472003583654762
	.quad	-6437504966403052590
	.quad	6592816798466831203
	.quad	-7075656932287843873
	.quad	-2169150165871943823
	.quad	-1997179157110319556
	.quad	-975702001551338067
	.quad	-6493361663011066161
	.quad	8381651800836461905
	.quad	275661552864412688
	.quad	5548629401959193001
	.quad	7174991431295718071
	.quad	7441251258233899268
	.quad	-4393911597224429204
	.quad	301250917807487282
	.quad	-649541645414025526
	.quad	8743817608749172620
	.quad	7804846024944300667
	.quad	507107926259802795
	.quad	5258061329638283805
	.quad	-3375673398421079018
	.quad	1848743106176521296
	.quad	-2151173245222931204
	.quad	7409462376590083349
	.quad	7828655274510399422
	.quad	8354801505584011854
	.quad	-628265744792483093
	.quad	-1121498082902740348
	.quad	750899848242404370
	.quad	6729023687199559366
	.quad	5406329621088392947
	.quad	9196565205678366888
	.quad	-1647760896469852863
	.quad	-6257252149276501036
	.quad	-8929124962773270007
	.quad	-876337759397374019
	.quad	-8572934380920293839
	.quad	7539953961664846819
	.quad	-3793904200416420648
	.quad	-7363829602075987288
	.quad	4588282548354659427
	.quad	7317148840331807496
	.quad	1344326657487996813
	.quad	1542409176821028318
	.quad	-2268520223551113829
	.quad	-3529885437661682037
	.quad	-4933999294435590020
	.quad	-4897538644285790046
	.quad	-8222807950381765162
	.quad	2321887803300626936
	.quad	-4838996545591585873
	.quad	-7990322443321151493
	.quad	3266519591187534953
	.quad	1053691207967834494
	.quad	7151443045753788549
	.quad	-322055437044723217
	.quad	-2199711223478140518
	.quad	3910938684903341309
	.quad	-3973472818414819265
	.quad	7838127175980904402
	.quad	151403139499985849
	.quad	-2000308836195405004
	.quad	9026431260479572348
	.quad	5449050100339545242
	.quad	1987994789324443681
	.quad	-1535819315720986134
	.quad	-3118641304412677720
	.quad	2836186828532582517
	.quad	3838503522726204640
	.quad	7607052238607180171
	.quad	6596449425121791268
	.quad	3975077085280694806
	.quad	-3994484565062854048
	.quad	8000712499123757040
	.quad	-801273956612739497
	.quad	-437378189289029053
	.quad	6274149715095124199
	.quad	-6495454615524073946
	.quad	-7346608381378957248
	.quad	-3841814721969319422
	.quad	-5412567121382223128
	.quad	-1765837324966987065
	.quad	7575103222557843864
	.quad	-623264766896369992
	.quad	-4002249890792066738
	.quad	-1475838018054664295
	.quad	-5641555892595771210
	.quad	6532470761888457716
	.quad	-68939637942838746
	.quad	-7638066644868822250
	.quad	-2606075025758170402
	.quad	4299436415412856345
	.quad	-7328725184833642755
	.quad	5792780035772538410
	.quad	-7982596847302862636
	.quad	-5495683750954526800
	.quad	1567174327186946359
	.quad	8963471156558858563
	.quad	8206223465827115720
	.quad	-6929156618601499549
	.quad	5472078318023872014
	.quad	8029841582801560058
	.quad	6329100339008421600
	.quad	2967116996684490052
	.quad	-841873660591434829
	.quad	85385569089329542
	.quad	-8461885458359211876
	.quad	327796972861800087
	.quad	-4290062694317876011
	.quad	8727651283882307749
	.quad	-8521496302985963189
	.quad	-8165218016565035011
	.quad	6946488664257064464
	.quad	-8671415170565797466
	.quad	58700362449753229
	.quad	7901817271072273406
	.quad	5074738678159003249
	.quad	-49504341803545831
	.quad	-2535641107721425728
	.quad	-9169089493505406268
	.quad	-1695761562100357002
	.quad	-5757730324807367717
	.quad	6406576629367815197
	.quad	5553947470753363470
	.quad	-6396128699101330272
	.quad	-7958318887302702253
	.quad	-1348695277470777685
	.quad	3474763622874365521
	.quad	-8934573523884821946
	.quad	2426138831053501645
	.quad	-722143656293285352
	.quad	2154599751475356049
	.quad	6272012936438950343
	.quad	-4116487510269458507
	.quad	-2410986064444453684
	.quad	-8388183185204786175
	.quad	4611464698955851057
	.quad	-5008488881165310859
	.quad	-8889594330297813307
	.quad	-1011065699679572579
	.quad	222829853729001687
	.quad	-7702812004945641122
	.quad	-7928727577440076309
	.quad	8415020060211946063
	.quad	-6167828137052337264
	.quad	-5474338232895789874
	.quad	-68282709327025240
	.quad	8999007319162154808
	.quad	-8520028153304732346
	.quad	-8962047663557884163
	.quad	3274501151943278967
	.quad	8894001360923971357
	.quad	-4176405812769809232
	.quad	-1309534642939103831
	.quad	-4359240551670969214
	.quad	-3349882004897218736
	.quad	9051518613603035355
	.quad	-1679384260039591532
	.quad	-2461527266990385028
	.quad	-6000801299073137251
	.quad	6012369491160208031
	.quad	2261781602906684413
	.quad	-4846690054570688431
	.quad	-9137860395552888635
	.quad	4582022702947861978
	.quad	8283491949961763304
	.quad	4786040329508169399
	.quad	7024415332825281033
	.quad	5845544470580224791
	.quad	-9139421476912023896
	.quad	1404558318000708507
	.quad	468976411417025146
	.quad	8102796887369495741
	.quad	7652998584927495731
	.quad	-4022085267069362893
	.quad	-327297045997212830
	.quad	1874700306906525099
	.quad	7337351570334852732
	.quad	7954195906114335343
	.quad	-1216517646447701546
	.quad	5181329498860909261
	.quad	107167242193237170
	.quad	4364856176182710332
	.quad	-3835572232266208702
	.quad	-7247185150646771953
	.quad	-7506472479019802287
	.quad	6889899385323432390
	.quad	309704603051568977
	.quad	242808440614432220
	.quad	5325146343889142381
	.quad	-5747322635944139632
	.quad	7129841951427147497
	.quad	337776254621418131
	.quad	3943836569358633719
	.quad	-5984478978262034504
	.quad	5119798059999736788
	.quad	466413051527764855
	.quad	3150087866489864092
	.quad	-2951031013201543164
	.quad	-109917300691631733
	.quad	-7251943107850474548
	.quad	-2667833174645936987
	.quad	-2973387082219279095
	.quad	-7445614215296658692
	.quad	-2773080262616642587
	.quad	-3495900655897959876
	.quad	-6503150993118670929
	.quad	2621912911160794904
	.quad	-6112076786969067758
	.quad	7556275317227596329
	.quad	8215576525197487315
	.quad	6719065424883826061
	.quad	-9148470547831576975
	.quad	-8136796987677578228
	.quad	-4866919580486529147
	.quad	-4261493865399397212
	.quad	-4240651514699512968
	.quad	-9211112421991572369
	.quad	1991044837436824042
	.quad	2439654355661531884
	.quad	2249916253365088157
	.quad	-7808948261099386348
	.quad	-6345902710944101462
	.quad	7961381513291189861
	.quad	-1286909633966446610
	.quad	7272269583807386125
	.quad	3261809189975010004
	.quad	-842787113624175915
	.quad	-8258350533647616351
	.quad	2190388876597022864
	.quad	3722226144618575796
	.quad	-6005032091260558865
	.quad	-7324394917478831593
	.quad	-7390226723926016786
	.quad	-4927204710729888797
	.quad	-2250387221795156254
	.quad	9082029088972784372
	.quad	-1217570420086317116
	.quad	1467416677562091178
	.quad	7421101356263998091
	.quad	-7456416258813831140
	.quad	-1858331302681923226
	.quad	2850177278998422188
	.quad	-6876930333381066745
	.quad	3922148781422941186
	.quad	3581659216490446242
	.quad	3646872304052351376
	.quad	-7558873456509500418
	.quad	-9190759292955163688
	.quad	-2730804397944505201
	.quad	-198917450297640495
	.quad	1383397289308840398
	.quad	-7242078868454175216
	.quad	1719018758343695434
	.quad	-5819214019414502041
	.quad	-6151085830578418063
	.quad	-8546013919363317817
	.quad	-7668246089557288762
	.quad	-8222520087508988402
	.quad	-5772266363132574687
	.quad	-155400202181770810
	.quad	-8113485505749247430
	.quad	-601917556128335831
	.quad	-7299905105777546081
	.quad	-8255463803090256266
	.quad	318479289567939533
	.quad	-3696238547897688440
	.quad	2157504583271104003
	.quad	-5947188409272578009
	.quad	-6307172025224829494
	.quad	-1595648432161577767
	.quad	-7354792846153723829
	.quad	6592194385018658570
	.quad	-2339717638498445154
	.quad	6479805185170378714
	.quad	-5731723476685830398
	.quad	2323990462884493174
	.quad	3148569722872692743
	.quad	2721739123056783749
	.quad	-1810619714491227065
	.quad	-1174364459858057382
	.quad	6765670834658822207
	.quad	8733281833879518943
	.quad	-3044124217796069215
	.quad	-7100749443464812210
	.quad	6883826018189181298
	.quad	-3274785622716362646
	.quad	-6300310265718256312
	.quad	786914705753297844
	.quad	-208833090758603520
	.quad	-5054795525139367880
	.quad	5013242123508171617
	.quad	6497797473756601510
	.quad	5421353055688279110
	.quad	1922040303231848756
	.quad	-6622272949202309311
	.quad	7581524692918261387
	.quad	-8787956716407205340
	.quad	7162415787287812947
	.quad	7213403860616464781
	.quad	3007622665190051637
	.quad	8773697355016509751
	.quad	7267372846896211188
	.quad	-2856932461946486157
	.quad	8175121141368087217
	.quad	-3367350242832899551
	.quad	-1679756194442007788
	.quad	-7863947667162736399
	.quad	-1614488064338174746
	.quad	-8404093602931486724
	.quad	-579580619773867836
	.quad	7123418345572641116
	.quad	-3310423921551850137
	.quad	-196251168189294646
	.quad	776673880672221575
	.quad	5112460794175202037
	.quad	4660903841964433822
	.quad	-1941389848963396350
	.quad	2003430778039402860
	.quad	6358169995674497036
	.quad	-878995333885739247
	.quad	-429910190235401879
	.quad	-903567362963670488
	.quad	-7374644474184662753
	.quad	7655765168171672282
	.quad	7848086048898477917
	.quad	-6097951352555764292
	.quad	8987518150507557458
	.quad	5310531353274781918
	.quad	2064459266164205689
	.quad	9156212454046282095
	.quad	-2746543975277133
	.quad	-5173410297517043522
	.quad	-5245869480950743564
	.quad	1019200344101237428
	.quad	-3382895559285149059
	.quad	-4537583775457091000
	.quad	-2896136931781342937
	.quad	-6581329190314361325
	.quad	-5446067384740794193
	.quad	506800587483871960
	.quad	6995521823374007959
	.quad	-4828264353400448634
	.quad	-1475838415308895111
	.quad	-4472420380630445548
	.quad	-8566998308587324669
	.quad	-6941369669351020491
	.quad	-4683205158224417121
	.quad	7732083773172804544
	.quad	-3042379294929511478
	.quad	5802511660662470740
	.quad	-1236754337084350532
	.quad	-8684930818395119222
	.quad	-4614130623555674014
	.quad	5528096123917534939
	.quad	3935578661028785427
	.quad	-4045725136407387359
	.quad	-7000067195490438770
	.quad	-4894239380613377661
	.quad	-3985823150035626349
	.quad	-5489354851876992214
	.quad	-1812759873924539169
	.quad	3856325470387182334
	.quad	111766112135428568
	.quad	3110969229124333077
	.quad	-2241626772876000570
	.quad	-8843819920098499883
	.quad	582499787439842858
	.quad	1782651072016504775
	.quad	-7412861565301139283
	.quad	-7341443789477360991
	.quad	3276372405089292929
	.quad	6399472468041061588
	.quad	-3127053293321236540
	.quad	4928530863063375966
	.quad	-6850521875369274198
	.quad	5431040776358057841
	.quad	7820272549333459641
	.quad	-2568223556741799449
	.quad	2539305973291704530
	.quad	-3311176900585890868
	.quad	2685369512392887139
	.quad	-2287886622426099981
	.quad	6104225573456377729
	.quad	-9008839132828203450
	.quad	-785126373826018932
	.quad	-49611334300419517
	.quad	7663665810702638583
	.quad	2135466363164406997
	.quad	-4332910489113345574
	.quad	-6446612544674402083
	.quad	-2403352601620529255
	.quad	158143972871729812
	.quad	114431288892988632
	.quad	1235443494480143285
	.quad	-4303545331710162967
	.quad	-1185483925479877813
	.quad	-7826697645056221092
	.quad	-1044969636813919974
	.quad	-5658538422296045023
	.quad	-8649665236290291435
	.quad	6227600596004099592
	.quad	4781901746347921666
	.quad	7742918728631047650
	.quad	-8628849648329412897
	.quad	3571629301807225481
	.quad	5391885759621509462
	.quad	-1209116608543037019
	.quad	-5727872984515597271
	.quad	2359332637431036808
	.quad	-913142985952516794
	.quad	4545864710518973026
	.quad	-6486696305799408072
	.quad	-8125630457631180861
	.quad	3630340441331266910
	.quad	6307221856964307870
	.quad	-1051807516857319868
	.quad	-8583955914609891059
	.quad	2084352122022334728
	.quad	-7956788748665715127
	.quad	-345595758185836603
	.quad	7392571066161294956
	.quad	3407076063107381669
	.quad	3233398943424094636
	.quad	8544529300434806174
	.quad	8751588275865913612
	.quad	-8738302823823091430
	.quad	1172091411480637642
	.quad	4270291274438465813
	.quad	7787203381779475633
	.quad	3508523855045835736
	.quad	-5313522845003392307
	.quad	5452424185619067445
	.quad	-6396310976123530335
	.quad	-3427977172864872399
	.quad	273234254926088220
	.quad	-3020360438162172085
	.quad	5213762666043737626
	.quad	2829185842069118470
	.quad	3230799283770935127
	.quad	4539607921020498947
	.quad	-8229891214256402391
	.quad	2451649375543736077
	.quad	-5782972894471454699
	.quad	-6922752375739183622
	.quad	3489659371242314997
	.quad	5255813057039372224
	.quad	8705987861143867217
	.quad	-5913353467116718320
	.quad	-8597445032809319943
	.quad	9088110148150693022
	.quad	7940182102736890887
	.quad	-193719963780342962
	.quad	7324503946394036778
	.quad	5701219577915292327
	.quad	2495588972641207888
	.quad	-7650879170303142665
	.quad	-9040550032273652550
	.quad	-9146069808663644355
	.quad	8784984207987054649
	.quad	-8545116677784339069
	.quad	-821071776906567492
	.quad	-225557428745580249
	.quad	1218527032716832188
	.quad	5846689453638283089
	.quad	-1937606758371069294
	.quad	8745973332047547451
	.quad	-8740239898512059930
	.quad	1055735824299335412
	.quad	-2940880220361444306
	.quad	-8449757866623855404
	.quad	-4908897608971795767
	.quad	-5621343315291458934
	.quad	3616316158385811893
	.quad	342502696922662335
	.quad	-2637650484044419839
	.quad	5832041859721750055
	.quad	-2442293305205174045
	.quad	6536902041652406541
	.quad	-97264915174966634
	.quad	7242551035576293802
	.quad	4055329590230118621
	.quad	-7787855380432550469
	.quad	1571105255538780652
	.quad	-3157767000139909157
	.quad	7244989996331541709
	.quad	8669712671671931995
	.quad	5472651497329557423
	.quad	-5644456864050428772
	.quad	-2240098698406309960
	.quad	6653262591880097154
	.quad	-2385159603607468436
	.quad	-4882990194335256950
	.quad	-1236439690907557841
	.quad	-1797056051574158072
	.quad	8596992275533417183
	.quad	280030342772428106
	.quad	-1091861467519856870
	.quad	-991298778249471332
	.quad	-370034690783532675
	.quad	-8550761545675002703
	.quad	-4765571649781376286
	.quad	1656433131309057012
	.quad	-6510986723271830502
	.quad	-8292896304093142438
	.quad	-1854830396007900552
	.quad	-7077593008625470732
	.quad	-8953081226584738438
	.quad	-4147617405530527713
	.quad	2451525064998641745
	.quad	-2391047399980848153
	.quad	7600736037142850105
	.quad	3339871688614476269
	.quad	2937156932445032796
	.quad	2071344655111136329
	.quad	509603454456841298
	.quad	-7517634339379877803
	.quad	4531629375826317764
	.quad	1802431569220697099
	.quad	7971315018970882891
	.quad	831440329504272059
	.quad	-1048680392358484980
	.quad	-3492075371450142620
	.quad	5717183520144440084
	.quad	5683898996859918421
	.quad	-8833055914418125872
	.quad	-3970694586202329387
	.quad	3689544236835488368
	.quad	4307546666223047416
	.quad	-4532245296282242555
	.quad	6812156124789414732
	.quad	1680174913762530491
	.quad	6756325174405757110
	.quad	2535144759174364990
	.quad	-7183350158706273187
	.quad	-3679148824033265213
	.quad	-1774846475886241641
	.quad	8846923580617118936
	.quad	-2026330166687175332
	.quad	2344779928765541883
	.quad	-4719088403857668336
	.quad	934227091954463432
	.quad	4722713881950047653
	.quad	-6634161065422081027
	.quad	5321392406277114518
	.quad	347488367118035707
	.quad	-4569457158541608300
	.quad	-8617126798146203725
	.quad	-6225883549684920987
	.quad	-6256022136951139127
	.quad	7308208895364574537
	.quad	1525158119497637419
	.quad	-5462235947662530272
	.quad	-4562271133845355579
	.quad	7382834581395586970
	.quad	-6808263463989031438
	.quad	3822030693056621440
	.quad	-1880917886703616671
	.quad	8411123762207988382
	.quad	1177726217844912325
	.quad	6981289090623415465
	.quad	8930069945493884157
	.quad	8223216504978132408
	.quad	796477795300774057
	.quad	3120155459209743472
	.quad	-3621140681253001146
	.quad	3711879425019804830
	.quad	-7405689600173327689
	.quad	6533202055887887500
	.quad	8435346764005128028
	.quad	-3535800321253979889
	.quad	-5539983483268884545
	.quad	6009159206340842586
	.quad	-3214457782997841514
	.quad	-5345189770579294629
	.quad	-8910856309634229433
	.quad	2364828287094520952
	.quad	-5980996447916774810
	.quad	2520175043973011525
	.quad	-1222150850968318048
	.quad	1891958595100476046
	.quad	-4278764393824120108
	.quad	6587293950576996181
	.quad	438078840840804918
	.quad	3740623254035318453
	.quad	2026091438664349886
	.quad	-7604270868651312926
	.quad	5471257179527938221
	.quad	7725900701946760330
	.quad	2830662433803069280
	.quad	-647021757836141636
	.quad	-7687659796094546316
	.quad	-4311199722917077063
	.quad	6171419888118563156
	.quad	-5951708222322309486
	.quad	2843310747449412555
	.quad	5668766087526340552
	.quad	-8328885374871155370
	.quad	5181027414039980750
	.quad	13247490124270426
	.quad	5630566354382744149
	.quad	-5427228397493222040
	.quad	5170054423571001981
	.quad	6980215251505169036
	.quad	-6299734796458867892
	.quad	5685374899516102781
	.quad	-7976190164462499237
	.quad	-4967120013469154427
	.quad	-9094452403862391607
	.quad	8941401423217216209
	.quad	-3957923995200252006
	.quad	-2261133222007132031
	.quad	-6451718752626731318
	.quad	8447817180287020945
	.quad	5861763576711981236
	.quad	-4168375921096611670
	.quad	-1180566965031965009
	.quad	54295173557875478
	.quad	6565771227548453510
	.quad	-7119660987124761017
	.quad	2516266639353612660
	.quad	-1996295265177401404
	.quad	4693041555468884719
	.quad	-8184275278461189307
	.quad	-7599494382657794375
	.quad	-5114414858987980460
	.quad	-5989115661425077541
	.quad	-1402086563226787546
	.quad	5218221397478351943
	.quad	6922630493693541156
	.quad	6207927102810766143
	.quad	5644846665334649748
	.quad	-2703657254998334047
	.quad	-2242919646405478917
	.quad	4977715471482820791
	.quad	-4423820895551670551
	.quad	3182554597681300579
	.quad	-5371793922743514506
	.quad	6110533261535194084
	.quad	3998073412536227214
	.quad	8355849361748630559
	.quad	1456702466548095173
	.quad	-2540079581944367099
	.quad	-2370869086743700229
	.quad	-9104731149095972289
	.quad	-1632463409902104325
	.quad	-6157044429203276420
	.quad	1978733588723623614
	.quad	-8006001794134240237
	.quad	7485781606074217879
	.quad	5752491977162146792
	.quad	-5800011931311399231
	.quad	2714368601139739886
	.quad	-4188674544930493431
	.quad	-8193636599017605552
	.quad	2573594277272371583
	.quad	3169200533952511826
	.quad	-5323697083322522153
	.quad	-8143281767005821481
	.quad	3315008874027436174
	.quad	-6019677065672219575
	.quad	-5256548465094996728
	.quad	-6516335453917211153
	.quad	-5565475509795811220
	.quad	-5464766454601472519
	.quad	-4238424512437081341
	.quad	-699813059947348124
	.quad	8384171916915303366
	.quad	3519534123535440835
	.quad	-5660132035339690168
	.quad	2243207765598818392
	.quad	-601480284376934587
	.quad	-8733514049321673797
	.quad	7572178085090963586
	.quad	-6437283216396795324
	.quad	-5841479250188555035
	.quad	-8510786163855633274
	.quad	4190419266886397743
	.quad	-2635788736797415179
	.quad	5617848152809212405
	.quad	-6806994779347404374
	.quad	7070960081749694791
	.quad	3368501274933785850
	.quad	-6625183002158635719
	.quad	8893010484537949967
	.quad	-8891737642505313206
	.quad	5829295567858079230
	.quad	-2930518106934218750
	.quad	6700154625941523096
	.quad	796110091507466427
	.quad	5388163944686450548
	.quad	3113104467109529928
	.quad	-5516185424073669530
	.quad	7536049463980825715
	.quad	-6594918438653906484
	.quad	2654888532632283214
	.quad	-3638312582528651519
	.quad	-1859113093314812345
	.quad	2213709651563559264
	.quad	6430236713219243173
	.quad	4056244136634119254
	.quad	4682058103020807312
	.quad	-7529089666357212938
	.quad	7541050583781860703
	.quad	-6913077865331478185
	.quad	-5372923332583506454
	.quad	94388985771946354
	.quad	-7742716488858288717
	.quad	3759201599591632648
	.quad	4490485533386118030
	.quad	8857949135582485968
	.quad	7763017021862913302
	.quad	-4053287466002699610
	.quad	5115370885214792862
	.quad	-1980317535246681207
	.quad	8472850612262338492
	.quad	4780464788983875822
	.quad	3930678094415481245
	.quad	-1563040657745224207
	.quad	-6164377308331252220
	.quad	-916580323186716280
	.quad	-8724131723291772789
	.quad	-5202221593093382125
	.quad	-4705779166320705614
	.quad	793235549667461791
	.quad	1998252773625399730
	.quad	-8748832582639675078
	.quad	3365596945186794622
	.quad	456176105619795114
	.quad	8016323574751732368
	.quad	-8980828284404666737
	.quad	6056087006581265892
	.quad	-6501162902024481547
	.quad	-7317215409988389320
	.quad	3335778163125807115
	.quad	6315652486045473530
	.quad	993686825413371484
	.quad	684046987750851335
	.quad	7510955443647801134
	.quad	-791017123372246612
	.quad	6899020544207946586
	.quad	7219811122077306280
	.quad	-209807313636947982
	.quad	-8249597718230669640
	.quad	3038797798653822704
	.quad	-2317142882131051598
	.quad	-7906873344971395690
	.quad	1746258200674842105
	.quad	204314838220659081
	.quad	5788117060093677717
	.quad	-2478978166073068226
	.quad	-3017945647789886295
	.quad	6506371904134856034
	.quad	-8905370389904407598
	.quad	3149037850125132851
	.quad	7111810601994573897
	.quad	-1714298380517303732
	.quad	4994069681898274622
	.quad	7223719243730104348
	.quad	5649174084086150712
	.quad	4744646257034970203
	.quad	3241459675739358470
	.quad	-7444317189393711703
	.quad	-2772530479432912965
	.quad	-1238937405839292236
	.quad	8041834398573138797
	.quad	2534907311000332750
	.quad	-6737932609794671676
	.quad	-7618045125382086594
	.quad	-6307637274600248044
	.quad	-2372165759281802222
	.quad	-2113466170521183180
	.quad	1359975444524564375
	.quad	-4173841167920292592
	.quad	7949354371626786594
	.quad	7613225982354048217
	.quad	-756827880925902879
	.quad	3493045513414028153
	.quad	2481402119320459594
	.quad	3868570100103226923
	.quad	-7210747939471414162
	.quad	6402455338768112215
	.quad	4955371374040414590
	.quad	-2844798885760686390
	.quad	4640203560336739679
	.quad	-8546178924246414613
	.quad	1093715346388527458
	.quad	-1277021643615560508
	.quad	-3534872949045003403
	.quad	8091096017016862097
	.quad	2911569128494944136
	.quad	-8253810017981982113
	.quad	1961411334789679604
	.quad	6622904937612499126
	.quad	-2778876698238468757
	.quad	4008804811671356749
	.quad	-1745678412815941791
	.quad	5111726022819508621
	.quad	-335946453887480548
	.quad	-8888872250771255174
	.quad	746151572327075224
	.quad	2655232704403764193
	.quad	5707512864999416259
	.quad	3315772882364049158
	.quad	1217667454897304512
	.quad	1912841540894703701
	.quad	-5883719051725362289
	.quad	-5619266983602543389
	.quad	4229959425805705621
	.quad	5156007691133954064
	.quad	8068959128189654475
	.quad	-2326509588100980252
	.quad	-474772873301724761
	.quad	-3840245643505113246
	.quad	-1672753947080934758
	.quad	-8859035952861524586
	.quad	-5194848414964559733
	.quad	-362870931507284395
	.quad	8241707078409323349
	.quad	5240943892375002838
	.quad	7329419846032881810
	.quad	-662738562859012065
	.quad	-4412671830003802775
	.quad	-7987549206953715592
	.quad	4038595353946903951
	.quad	4882107517916666537
	.quad	3999022563009325523
	.quad	-515090532916006389
	.quad	-5298831730136248664
	.quad	-9096709209954542815
	.quad	4049465780668519030
	.quad	3459065984999618946
	.quad	-2173104749688593336
	.quad	2624495233512926739
	.quad	6225222597926630895
	.quad	-9154400640824861475
	.quad	-4208281595485102792
	.quad	209722722709792967
	.quad	-7566273830208933207
	.quad	-4645352483516526176
	.quad	-4908388514841791786
	.quad	-3028849889089421078
	.quad	-414154557070970601
	.quad	3659401013921686357
	.quad	8368279174345114777
	.quad	-6291557441877559039
	.quad	6237960248134370288
	.quad	4736847838142500524
	.quad	-2050439679917528875
	.quad	510358226971662693
	.quad	2002127643935690257
	.quad	-3765318377759505354
	.quad	481902649451190280
	.quad	1717807040845239061
	.quad	3358903321435525144
	.quad	-6085491923432387857
	.quad	4794445025787964811
	.quad	-612705684134571910
	.quad	-4909262726359763582
	.quad	-1076870858767003674
	.quad	-1172818119339347455
	.quad	5573743644523770544
	.quad	-2846425423952770648
	.quad	-3487858897302809916
	.quad	-479789244239756350
	.quad	-5042821066631628336
	.quad	6532726499038103626
	.quad	-8985271775911173969
	.quad	-3971631049575383790
	.quad	-7901056839834750351
	.quad	9110104345291000694
	.quad	6632798305266402090
	.quad	5923009831069202461
	.quad	-6064181057910399259
	.quad	5560817670757210449
	.quad	8716806442430862180
	.quad	-7703279683910225278
	.quad	984226187147027211
	.quad	4235486587377981055
	.quad	-6441397063214559307
	.quad	-1883781076663564987
	.quad	1977585352264948582
	.quad	-2858088970376307337
	.quad	253344970359156714
	.quad	-5507380260418184841
	.quad	-5898519547333351642
	.quad	-3996161284825803252
	.quad	5869541533939881460
	.quad	-7448011060267998339
	.quad	-158596157925805219
	.quad	6590217818564446143
	.quad	7558194476612151684
	.quad	4655096885019935616
	.quad	-8605235743169087556
	.quad	-4161139913694191962
	.quad	2171523472991278205
	.quad	-2124176413752835102
	.quad	6965409828820673767
	.quad	-4146522469446143133
	.quad	503070043640835058
	.quad	3473822069207961120
	.quad	1934587810077006608
	.quad	9176253590375464189
	.quad	-773387143731122904
	.quad	1709841399677907203
	.quad	-5943184496094980229
	.quad	7334425312909989024
	.quad	-2894516672157643355
	.quad	-1379811719928654179
	.quad	-4806707482757972941
	.quad	2330272346917373031
	.quad	8725339411839152780
	.quad	-3100366065844816538
	.quad	-8542406670335776752
	.quad	-512888690715613663
	.quad	-9055495768776827800
	.quad	2250334275383247202
	.quad	5978804056136420670
	.quad	1528238852592364099
	.quad	6491566547950141733
	.quad	-5711487370475417212
	.quad	6855440831431177311
	.quad	-3158019466059140612
	.quad	-4160144843438359325
	.quad	-8207496576267090874
	.quad	-4602537570253006471
	.quad	-5923660310012126009
	.quad	2372672887754293690
	.quad	671803914037743612
	.quad	6985414424274188412
	.quad	5684325326950903996
	.quad	8534946605000556366
	.quad	-1457133139190391406
	.quad	3637188724261091127
	.quad	-6935213811350014653
	.quad	-390444898202887346
	.quad	8327916686116965309
	.quad	-8662637294781319899
	.quad	-6543844281262961396
	.quad	3091014653727643468
	.quad	-7820509827385088291
	.quad	-5647505411081471388
	.quad	-384767934942505113
	.quad	4432002024171598549
	.quad	8439860020828526478
	.quad	8674532462170555517
	.quad	-4557027306756527505
	.quad	1166696901054897271
	.quad	3599113965286446905
	.quad	3276801695553601157
	.quad	6631284861504552600
	.quad	757022358659145685
	.quad	-4534887121123365739
	.quad	5246862180583794254
	.quad	1098316327491849626
	.quad	3050920607858649414
	.quad	-7985518768127860403
	.quad	3242959942732305560
	.quad	6188704440253470574
	.quad	-4245950084135528751
	.quad	28753581258769567
	.quad	-4931836780920408969
	.quad	3294978904158561789
	.quad	-2620118039903502740
	.quad	6534407114447844047
	.quad	1299499321635001922
	.quad	-736714316911793097
	.quad	-2943418452054298076
	.quad	1753266557261125208
	.quad	-4611283657853971789
	.quad	-4421424058843967266
	.quad	8337994502215905303
	.quad	3387953509256348608
	.quad	-7168465629292174303
	.quad	-2170386951795380524
	.quad	4596467391896074694
	.quad	1117291222568805017
	.quad	7148845117809308441
	.quad	4044258438241699262
	.quad	-1853310950213482898
	.quad	-4454541763544417398
	.quad	2998204381658279116
	.quad	-7309361288800468350
	.quad	-6474162457097457147
	.quad	-6349627752283118469
	.quad	-792797279265856510
	.quad	-6568291103806321249
	.quad	7318169277382756360
	.quad	-8018845539030582466
	.quad	-431146644755990785
	.quad	539028545792670761
	.quad	-3699322455766841934
	.quad	813334744798592076
	.quad	2832639272114626993
	.quad	7828180830359735086
	.quad	2653674030891073945
	.quad	-8847892832668289744
	.quad	-6419897334752596399
	.quad	-8900092450314272926
	.quad	-673352405537749992
	.quad	6358861689076009654
	.quad	-8768629878479765179
	.quad	3727924170601950544
	.quad	-6975446352081541994
	.quad	-6154265998955091302
	.quad	8131838735488254874
	.quad	6586786156047371174
	.quad	-7214486978643518419
	.quad	-4476157231061658651
	.quad	3680317572634289692
	.quad	3416494470839852757
	.quad	8341497967750607131
	.quad	5522860734580749818
	.quad	6847292760525096386
	.quad	-9129349364837355057
	.quad	8522252330730808934
	.quad	-9153075931692288032
	.quad	-1312087324414386746
	.quad	5879480323258506465
	.quad	4788695233340705697
	.quad	-637466362852184806
	.quad	-3289010428614862746
	.quad	-4302874382246842536
	.quad	3162286338158090229
	.quad	4471613312912718060
	.quad	-4844958896214448288
	.quad	8083849806888905297
	.quad	9053545412554844461
	.quad	1876605639999952155
	.quad	6124537911475118673
	.quad	-1568852999142465928
	.quad	-1905024008630419272
	.quad	-552373764732432482
	.quad	-2402847363503246616
	.quad	-4593084687920572338
	.quad	1679780157144369450
	.quad	-1790329870407758870
	.quad	5786189610731186778
	.quad	-432898653118260325
	.quad	-1730680829310621356
	.quad	-308438724859653621
	.quad	-6947865516584150763
	.quad	-4321397737350186415
	.quad	-6455105265920747247
	.quad	-4511388309158639048
	.quad	-2237597006553821956
	.quad	-7360553787932532324
	.quad	-1719455209765955206
	.quad	-3478877370582281181
	.quad	-7037178910809646007
	.quad	4723725560709578913
	.quad	57327260553491850
	.quad	-1647196104142725529
	.quad	-3870428624583360751
	.quad	-8568611189964122021
	.quad	-2494338130124181277
	.quad	8873152377611229668
	.quad	6260821826956744083
	.quad	-6957360539900633354
	.quad	6585112195310961861
	.quad	7365821041919648819
	.quad	1936165695028211587
	.quad	-2281996438718135905
	.quad	-489423297057061224
	.quad	6083988358426434164
	.quad	-7628079558028560599
	.quad	-3880048529622694566
	.quad	-8984326373923305040
	.quad	-6627778599700627329
	.quad	3022689977829151646
	.quad	-3722966831749893387
	.quad	-1704928121944618180
	.quad	-5381714016537261770
	.quad	7278765836407486850
	.quad	383827150208081081
	.quad	7832055893191054601
	.quad	5249323286889945617
	.quad	1631661912887095912
	.quad	4431088469837785451
	.quad	2866263172993336891
	.quad	-4773768219107038700
	.quad	-4985600659684445505
	.quad	-3923328363479155709
	.quad	8904252024581704783
	.quad	-3119834038277417380
	.quad	-6947192751562521963
	.quad	-1405264410959870694
	.quad	618222534636971397
	.quad	6140213328062333551
	.quad	-1742718743932484579
	.quad	5839832043209342792
	.quad	9196354634862869885
	.quad	2735762290983671190
	.quad	5323501742548818139
	.quad	3199127466610501482
	.quad	6719610946615763192
	.quad	-956799394977698524
	.quad	-8568025251887560669
	.quad	3092481858655708583
	.quad	8215435534895527568
	.quad	-8430502548197523168
	.quad	5154973808760631020
	.quad	-4655197681694496003
	.quad	-2317159778311309389
	.quad	4032564124345275293
	.quad	240208626666701335
	.quad	-8181898695060654574
	.quad	-2838454947618199201
	.quad	-579879831791396787
	.quad	6207477318890336372
	.quad	491708931325462670
	.quad	7002400618323099260
	.quad	5070731744903202279
	.quad	-5606714336871807727
	.quad	5996688206037438856
	.quad	-8032074049005394359
	.quad	7999236926751069430
	.quad	7334150013828606960
	.quad	8653294913283550947
	.quad	-2532184882369172112
	.quad	-6938996290679010382
	.quad	-4763700683041379862
	.quad	-8521777764380765853
	.quad	5549516466627385909
	.quad	3724001483041449858
	.quad	2408778220985427590
	.quad	-7936036472686121511
	.quad	-5584223161190365120
	.quad	3650109816945633089
	.quad	-138485093810437465
	.quad	4589083581694533680
	.quad	9211278402611121385
	.quad	8270915802212314449
	.quad	1090605628910507594
	.quad	2009383020934958498
	.quad	-2249153001791771770
	.quad	5012372868660694231
	.quad	-6413091318275723949
	.quad	5960732801180177919
	.quad	6089487525155575261
	.quad	-46552028505489339
	.quad	-5692568937270591088
	.quad	6170965736016609163
	.quad	-8305369591662483670
	.quad	-8649104946574643096
	.quad	205523925897504387
	.quad	7743445178559570504
	.quad	8228137608231300860
	.quad	-7800937462747306550
	.quad	6028917047486194980
	.quad	1983278266887984430
	.quad	-1707638122401870234
	.quad	-6665550151362324169
	.quad	-1508868062497669979
	.quad	2982972111293427964
	.quad	1728244726890919596
	.quad	3327997232304084768
	.quad	4754833121145407334
	.quad	5871027825507908591
	.quad	-2674250161999927343
	.quad	7696828122125140583
	.quad	3722815096909577153
	.quad	7248274572749384338
	.quad	2407624921612367338
	.quad	-3665798581512067075
	.quad	-2082808889710461710
	.quad	-7248187309315540793
	.quad	-6335271824055726515
	.quad	5862944033912881884
	.quad	-7314013095043463266
	.quad	-6279563918161259728
	.quad	-1996905787014201829
	.quad	-4047067462979535271
	.quad	-1375660950036901279
	.quad	-4719015285878376237
	.quad	7507765123422748291
	.quad	2668991584524512513
	.quad	-8421523058287731198
	.quad	-5141028166681873766
	.quad	4981034298698950944
	.quad	-5889061110312077329
	.quad	-2270004941558921920
	.quad	-605329490068572044
	.quad	2469312684231368504
	.quad	4883057314704644529
	.quad	6606742732149784343
	.quad	-2376188932621987894
	.quad	8408294891669305261
	.quad	4298316003054547788
	.quad	1573237855902568238
	.quad	5357176885445018289
	.quad	5855732582172939202
	.quad	6065094516017105184
	.quad	3907991604217835016
	.quad	159700837395361288
	.quad	2321416747667583186
	.quad	8145248987085422772
	.quad	-3764722184752845765
	.quad	-556933505246877974
	.quad	7759084970810221604
	.quad	-6725617534729193991
	.quad	7216004194033429913
	.quad	-5680854188773603301
	.quad	6003399149613653734
	.quad	4571046290325663920
	.quad	-3423273611879066541
	.quad	-6983230637420623254
	.quad	-2311526551303177074
	.quad	-7866701285233881973
	.quad	1676202874740213670
	.quad	4686523712191286884
	.quad	3523038111765617846
	.quad	-8927565814998912078
	.quad	7008960141329318890
	.quad	5065500101952829443
	.quad	-3441533932916078288
	.quad	-4145888969580398325
	.quad	-6955216383630765454
	.quad	5674183453812271017
	.quad	5044682546652747711
	.quad	9153978680942338831
	.quad	400454762074409409
	.quad	-6095273224060935285
	.quad	-7887514752806302784
	.quad	-4697458182495429387
	.quad	-3266627044632354385
	.quad	3939233309314105972
	.quad	-8025891035605804484
	.quad	-1821982480090866725
	.quad	7431371083246406462
	.quad	-1225008013174761502
	.quad	-8653306188118462306
	.quad	-6607577554076240473
	.quad	-1957702919989695614
	.quad	4820713204385149226
	.quad	-4678742111566527986
	.quad	-5339030667231223220
	.quad	-2975498245677149156
	.quad	6733652296473831544
	.quad	7665657127090105428
	.quad	3685950643927895445
	.quad	8436072289398187839
	.quad	3672585210160747620
	.quad	3389335123747641211
	.quad	6372390933482332672
	.quad	200525276105438057
	.quad	5688811889137790142
	.quad	4888470744881038668
	.quad	6114372925011600760
	.quad	-5385674094137553653
	.quad	-6289753055742713790
	.quad	-6043734482571168033
	.quad	5761958709898299258
	.quad	1907771304051897263
	.quad	3007439379929412593
	.quad	-35889189797387654
	.quad	-9030585603064913248
	.quad	-355587659527195543
	.quad	-4561748948400148867
	.quad	79657370243570223
	.quad	-7663207751881702376
	.quad	3585007852935063903
	.quad	3943790132342348661
	.quad	-3380703519810063262
	.quad	-4038698656844057492
	.quad	2442199381796557002
	.quad	-7971417769933688663
	.quad	-4809298947755391659
	.quad	3778313603630758744
	.quad	-9199283703835278844
	.quad	-874506475826406529
	.quad	-7108393977348775014
	.quad	-1031158165823762613
	.quad	235463027233361848
	.quad	-1120925456842617948
	.quad	4651380134941546328
	.quad	-1745269492994054992
	.quad	-6581231692414022987
	.quad	-5052522697425317886
	.quad	-7292082566205258667
	.quad	-1960639720879860032
	.quad	-6590183465755182734
	.quad	7574789609701925021
	.quad	-6206660890467424498
	.quad	-8573786736332695341
	.quad	-6937814788509752387
	.quad	-6362283778807399165
	.quad	5537978390111837838
	.quad	5908783500254093892
	.quad	-1765460848452480599
	.quad	7592344352357412811
	.quad	-4206139057896620507
	.quad	1175156227898939493
	.quad	-781352645533774787
	.quad	-8838732236666335812
	.quad	232195819428629265
	.quad	-459272365812869742
	.quad	-5408499768383267535
	.quad	6130570860032709721
	.quad	-4748994750929494189
	.quad	-3196517260126255757
	.quad	-7232306174085919420
	.quad	-7219319906944457261
	.quad	-2372881024887089150
	.quad	690180963675816010
	.quad	5292863107663170161
	.quad	-7401784694842020239
	.quad	-4777157602145287326
	.quad	3130743979428185154
	.quad	2898872473979579676
	.quad	-594226659463004139
	.quad	4484431020970644975
	.quad	-6047633077961185675
	.quad	8259021120978314016
	.quad	-5197277301430211501
	.quad	-7244971371126686509
	.quad	6680428295197296613
	.quad	-3621679059522338618
	.quad	-6808244879774697172
	.quad	-4502260590090160080
	.quad	-4386419066087954417
	.quad	-152902202462034894
	.quad	8655983623449206977
	.quad	6414460380273523315
	.quad	3529728991707228165
	.quad	4882504237619768649
	.quad	-7001284044665700217
	.quad	3536567746891968520
	.quad	-5653787177553494943
	.quad	-925450734234522793
	.quad	5738513258925006248
	.quad	7070317930523546296
	.quad	-7271187072946731402
	.quad	-3090060351894110107
	.quad	3038847573301969409
	.quad	3712495274059632476
	.quad	2675978298930814174
	.quad	2188818909846335369
	.quad	8760888597189374118
	.quad	232499271932085566
	.quad	-3184146048809730089
	.quad	8140388397893884150
	.quad	-4911129762161761643
	.quad	7993691642736830963
	.quad	-8743404170805082685
	.quad	6903532388259237787
	.quad	6598718994389707957
	.quad	3524767540333384210
	.quad	-1216334785923073630
	.quad	398508689507908728
	.quad	-5490420949196301146
	.quad	3050411724956364887
	.quad	-4068577618610184510
	.quad	-2603822670247791850
	.quad	-4216092269556003513
	.quad	-9172600094600563823
	.quad	-7465687612022078690
	.quad	7492290157438907133
	.quad	789302692755785351
	.quad	6193173666549816999
	.quad	-8510562278668391619
	.quad	-1944165107016412270
	.quad	-6115358515574785287
	.quad	-2078341440135329077
	.quad	-897564369474553441
	.quad	-1714391016923390359
	.quad	7018642409136068141
	.quad	-4539104551385449026
	.quad	-8997148884612688361
	.quad	7824606962521903444
	.quad	-4114504038565309561
	.quad	-8214043397660832221
	.quad	3730150868058264921
	.quad	8516571101472743753
	.quad	-5343512136585890312
	.quad	6353629647940347698
	.quad	3202436334590923936
	.quad	-7925420542577055552
	.quad	-1359421879564036683
	.quad	2557934785422493682
	.quad	1054672647095378624
	.quad	-5249517380840829291
	.quad	1089249862965154915
	.quad	6479925079582112772
	.quad	-657258266290463411
	.quad	5872888733059585433
	.quad	1548731162115902017
	.quad	8866189214889340096
	.quad	7906819608694164944
	.quad	-7371678150966303082
	.quad	8770607849605195006
	.quad	7598947723110962091
	.quad	3880905381896902231
	.quad	-1744057364787254931
	.quad	-8631120751263750312
	.quad	3275100382267252573
	.quad	6882533095211022198
	.quad	-7446028405941753951
	.quad	-830935883330942669
	.quad	7418883369171949489
	.quad	-6995118282529082485
	.quad	-7950350980679701852
	.quad	7717733900691510418
	.quad	7144715762614425972
	.quad	9083242511961182505
	.quad	760960629663179936
	.quad	-2131022428577347441
	.quad	392296975567109690
	.quad	-3336942066649135343
	.quad	6172716471862133951
	.quad	-7771316051752586476
	.quad	5719399515177959211
	.quad	-5032175741308423141
	.quad	-3009509417239259735
	.quad	-3272346126137833531
	.quad	-3353609391599183791
	.quad	-2834699168744280779
	.quad	-5208995412132326822
	.quad	757725949773486839
	.quad	3492185545829691473
	.quad	6129902171008713490
	.quad	2814161082305596280
	.quad	3239442302310811849
	.quad	-6409547653858480018
	.quad	-5679389810705990723
	.quad	-9023042847030328651
	.quad	-2465767194146084931
	.quad	-2076571170924514612
	.quad	8843543841582241065
	.quad	-1628916571748959718
	.quad	1524531339915785994
	.quad	-6822163796823953459
	.quad	8162021865913611849
	.quad	1780261677617239123
	.quad	-1570992021401456368
	.quad	-5156129382192969822
	.quad	-5300434509027722085
	.quad	-292082080195899146
	.quad	-613917021476515834
	.quad	4255021603990185583
	.quad	-1299675610904981113
	.quad	413038056092618151
	.quad	5178874804057490245
	.quad	6267545065511948977
	.quad	-873689627995526684
	.quad	7120476833739422223
	.quad	5707115123830922617
	.quad	-7475635101014163775
	.quad	-392451598308186363
	.quad	-4339473278279440308
	.quad	-479506930905086665
	.quad	-8696226324208271782
	.quad	-5324162278773793411
	.quad	-26996810730327319
	.quad	-3890218664316914541
	.quad	2127629574011388632
	.quad	-5900265920998214214
	.quad	3213958910433616233
	.quad	1066524299473173792
	.quad	6276669942370566610
	.quad	-3629925110689030843
	.quad	7372806616674468946
	.quad	-6226465950211910586
	.quad	4953625488417522128
	.quad	669676442738119261
	.quad	-1039373229089337384
	.quad	-5139913785674234339
	.quad	4846917713031586036
	.quad	-6309504108038379757
	.quad	5169970941435911571
	.quad	5076290758770811351
	.quad	8396069667456280445
	.quad	-9003136652140631009
	.quad	2583030461169574647
	.quad	-8545839020409990309
	.quad	-2554325744006628709
	.quad	1184158607153919924
	.quad	-604621013219713636
	.quad	2681791639846598155
	.quad	-4051759362815003569
	.quad	-5492244989900416394
	.quad	7061545020838321895
	.quad	1562418596843793218
	.quad	7641836369639086793
	.quad	7562786178675561303
	.quad	-4712208313143345514
	.quad	2078735577791517793
	.quad	9118069127310361627
	.quad	-1083065244603946540
	.quad	3907856148144141388
	.quad	7535915338133892356
	.quad	4354053943074081189
	.quad	-8801789346064047630
	.quad	6816908226661921388
	.quad	-2578937463610515962
	.quad	-4572397926964855895
	.quad	-2431732501254299889
	.quad	-5940460999021845568
	.quad	4514024557783440877
	.quad	1407265755534692739
	.quad	8018400362256951819
	.quad	3863013872611126366
	.quad	-373929323067710616
	.quad	550997391860253470
	.quad	2654416582410062512
	.quad	-9214419686760736138
	.quad	-4582227492096645271
	.quad	-1314105148848551381
	.quad	-1571431434529906479
	.quad	-6910687047145721497
	.quad	1090137303802556590
	.quad	-2779555089935540718
	.quad	-1300411411817389477
	.quad	1997191098750076086
	.quad	5822005200121291596
	.quad	-7849600976357915558
	.quad	6122587582060928949
	.quad	4270415074784905571
	.quad	-7050167130256065893
	.quad	-7150841791932409198
	.quad	4336697789732072031
	.quad	-2391895410850729419
	.quad	-512294260294516059
	.quad	-3928363451276856950
	.quad	-4346161639557361568
	.quad	6262866632984449325
	.quad	-377583631894150842
	.quad	-8648401970700290924
	.quad	687104890149081183
	.quad	1938816743979859301
	.quad	-7104672092533637712
	.quad	4270322127259097184
	.quad	4964776270155503160
	.quad	-597410490848016849
	.quad	-2632264546376731924
	.quad	8083943565773123408
	.quad	3986890035154628803
	.quad	-3130083743644531875
	.quad	-6885803499180287836
	.quad	-5869892553618515738
	.quad	-7562799655484665524
	.quad	-8538414632184065411
	.quad	-7208059082747043807
	.quad	-5546117314899399954
	.quad	4077800412543228484
	.quad	7173833470188867493
	.quad	4604439809988262876
	.quad	8090706047559948234
	.quad	6117166546062912279
	.quad	-2698206858855064670
	.quad	-1727149437510550052
	.quad	563850925691991999
	.quad	7109145612337154341
	.quad	-7943898102981924761
	.quad	6527587047878193251
	.quad	7049690136888681718
	.quad	-1696041067294395414
	.quad	2559311261501721445
	.quad	1222802194566919230
	.quad	-427281135183990850
	.quad	322982839910423931
	.quad	2590270731903609206
	.quad	-4434347013905102609
	.quad	4254569016772908483
	.quad	8508420263334539908
	.quad	9175848619353159735
	.quad	-8669067988558982549
	.quad	51565612432741329
	.quad	-8213734325782781034
	.quad	4858065366607044068
	.quad	-608772644776540755
	.quad	-8430199282983384874
	.quad	-3186384772070810617
	.quad	5101999662344938158
	.quad	8809855615759524306
	.quad	-3077275310706532364
	.quad	4549989329927399868
	.quad	4866130696079291940
	.quad	2784467031729859937
	.quad	-5828845091687663748
	.quad	2721301974598150044
	.quad	1014232218549205942
	.quad	5446756626431953863
	.quad	7315134179045561903
	.quad	2592184418896595488
	.quad	1723751460114310463
	.quad	-7248231619247781805
	.quad	6203707848404803677
	.quad	2601731234271436477
	.quad	-260043098099018390
	.quad	4757569424831899615
	.quad	-5086870690571239407
	.quad	7339520839328992093
	.quad	3349084091338116256
	.quad	-1914033903292080002
	.quad	4425958052714174548
	.quad	-1612995537962747771
	.quad	-5781572054681099175
	.quad	-7171772099004417445
	.quad	6504206221872290467
	.quad	-525487769588014316
	.quad	-1872876422834909073
	.quad	-7526513808893149
	.quad	2917797231317530012
	.quad	2415475159165597656
	.quad	2027542924210178369
	.quad	-4904208515538592092
	.quad	-9017812481047423746
	.quad	-625323521574468088
	.quad	332847653840014838
	.quad	-6614237761283487180
	.quad	8314663852639826188
	.quad	5744960486691350299
	.quad	8069724388577179929
	.quad	7949740770152910898
	.quad	7431049632429535950
	.quad	-4542103821505832908
	.quad	-7699430939592529824
	.quad	-3779673376195167475
	.quad	2600977347774743546
	.quad	-2947757133585530537
	.quad	-3706098760434974605
	.quad	-1042933044777326808
	.quad	8060102076475954685
	.quad	3517334016249952489
	.quad	-7620426868404237870
	.quad	-8781977742816728871
	.quad	4145357045596983962
	.quad	123566849370572650
	.quad	6452080295201963409
	.quad	-2887802103156287798
	.quad	1191650177320171029
	.quad	-5142949159083514963
	.quad	-6310883154180418960
	.quad	3620217653879289461
	.quad	5443663950311568399
	.quad	9020744500355505374
	.quad	-6492788445307775388
	.quad	2101814526784564259
	.quad	-228145656798703091
	.quad	306945432061418036
	.quad	3150552227215797902
	.quad	-5518369726275597700
	.quad	-5147643030846978246
	.quad	-4743860755342143821
	.quad	4879985767563062391
	.quad	-855695582764661023
	.quad	5088664549487213106
	.quad	-5456094437601820765
	.quad	-5444519137817093586
	.quad	4380799638612122791
	.quad	7935443787987894924
	.quad	-8008674094769498490
	.quad	302419699431148366
	.quad	551508078777729872
	.quad	366155636877501719
	.quad	1657628676376133571
	.quad	-7048683672288852546
	.quad	-3070021025196913065
	.quad	-8571120687668185500
	.quad	-8467789369512662877
	.quad	-4678420828302751654
	.quad	3568095027938899541
	.quad	-7326003863516555520
	.quad	-2885426121378020715
	.quad	-7966984990430472967
	.quad	-1910739138185798982
	.quad	2928518661531554130
	.quad	736056663469575928
	.quad	6131440330717529370
	.quad	-7171594730316700046
	.quad	-8845713999229323269
	.quad	2397968519718544666
	.quad	7793046606567840651
	.quad	8971792946996316712
	.quad	-1864883559450040869
	.quad	9067804351225143661
	.quad	-6124318216647619195
	.quad	-7766547404457589159
	.quad	7226521395530060461
	.quad	-3712008308962764863
	.quad	1378251478826083755
	.quad	-4937193864240949492
	.quad	-3988585834612730270
	.quad	5681313138148713219
	.quad	9054039627425609375
	.quad	4235536482830620712
	.quad	1502753755874778370
	.quad	-8393369256880328495
	.quad	5956370573575798562
	.quad	6842782625116195714
	.quad	6646143553705917790
	.quad	-7959126122628895426
	.quad	3930886288654953669
	.quad	-5304885626161225444
	.quad	6966039733711006320
	.quad	3565931266726110263
	.quad	-8304483414591515448
	.quad	-131337622137589633
	.quad	-1589410083018471021
	.quad	6889519058362658033
	.quad	-6634699022348072016
	.quad	-5943626774063398409
	.quad	7223531498406875484
	.quad	-3203615505221241021
	.quad	-4648711311378757476
	.quad	4456440673105474920
	.quad	-550483179970443646
	.quad	5519537045179649847
	.quad	-6537855303076892795
	.quad	5444504459295913107
	.quad	5588728973482930155
	.quad	8914021876030553161
	.quad	9071747156187788379
	.quad	-3472007149454056731
	.quad	-1376545637841209617
	.quad	3643991391224035758
	.quad	260637732328275649
	.quad	-837099155893473391
	.quad	2302996326941944665
	.quad	1293835161492069734
	.quad	5795029109259991590
	.quad	6978986253519330084
	.quad	-8085988615301484130
	.quad	-8979001945847769475
	.quad	9197981630801498774
	.quad	6297600026339958279
	.quad	1375635441408481019
	.quad	-1571657735522270977
	.quad	-258021742180665659
	.quad	2047282716697647836
	.quad	-638446864657771891
	.quad	4756860180475663362
	.quad	-2342880457368937145
	.quad	4416311024167936572
	.quad	6340715229216403079
	.quad	-4184760065194399943
	.quad	8778722476581699445
	.quad	1624620854396291363
	.quad	8490568310899028272
	.quad	6147263592092458803
	.quad	3717414274397202281
	.quad	3449154725620836174
	.quad	-4919911088259013659
	.quad	5888744936142942064
	.quad	-1169603271071192853
	.quad	-8156715423419730791
	.quad	1940657436863195045
	.quad	-7650342834452400955
	.quad	7788083050548605852
	.quad	-4972351070693888127
	.quad	8961936186303685357
	.quad	81364364291228199
	.quad	-6810588951072410474
	.quad	927710893705810893
	.quad	1403208391464987879
	.quad	4332234662194589819
	.quad	7913319387647351094
	.quad	2589089673930123808
	.quad	5387282875974124558
	.quad	-7835074865771082592
	.quad	4491327257859270050
	.quad	-4317352189872207505
	.quad	-4521933225259785155
	.quad	8792187899775727862
	.quad	-3398601450139478416
	.quad	3933861866144269656
	.quad	1162055633060412126
	.quad	6883724061714130987
	.quad	-8030464779455822513
	.quad	-6199710849364051965
	.quad	-8155670816824446382
	.quad	4480789666471481188
	.quad	6022169887991948086
	.quad	3778647272347441051
	.quad	-8919363607124421225
	.quad	-2039518839867294663
	.quad	-5023060239076037665
	.quad	-992279870158850983
	.quad	6033758555290610449
	.quad	5063673994339442907
	.quad	-6196351288780131677
	.quad	5954485814444410119
	.quad	-8347648702984109337
	.quad	-894517945040882787
	.quad	-6018386294836214932
	.quad	-5608060123468977329
	.quad	5657606268149157844
	.quad	-8487939778036504002
	.quad	-1221600987938722514
	.quad	7094048380025667640
	.quad	6278536026721661045
	.quad	2207912884303752731
	.quad	-3319330548322857979
	.quad	4827559533456948533
	.quad	-1931868273013255021
	.quad	6725483924146798512
	.quad	6097276022374418714
	.quad	-597300885154221513
	.quad	3905363743511863990
	.quad	953560843943255928
	.quad	1007790658936974234
	.quad	2145849333258589255
	.quad	-1224071899752030031
	.quad	905913321297295688
	.quad	-4468650951261192835
	.quad	7243396336429486184
	.quad	1423043695913548764
	.quad	4687621216548073298
	.quad	-5763487110813967339
	.quad	1406415612737291460
	.quad	3991320149877222007
	.quad	403384179417053146
	.quad	7072351635192146705
	.quad	-4057912503385242836
	.quad	2518546598792352745
	.quad	5950179945450950997
	.quad	5549074004838472175
	.quad	-5755574668639058927
	.quad	-3566756554552502385
	.quad	-3641211220026964663
	.quad	-6872481766624041127
	.quad	5120718047672451625
	.quad	43856683411486384
	.quad	3037177293487231351
	.quad	-3090214953896617025
	.quad	-6336209543107206208
	.quad	-6809783015754931218
	.quad	844574383733857516
	.quad	-2967152725392022443
	.quad	-1446391016512748870
	.quad	300669239444874248
	.quad	-213469334097981904
	.quad	8820930423287927102
	.quad	-14518545410060532
	.quad	6114427687772141908
	.quad	-701038238761373815
	.quad	4197664090466588908
	.quad	4735732877904738848
	.quad	3245721008805430822
	.quad	2866701220158780648
	.quad	-4101042893008896203
	.quad	-8063538170386026453
	.quad	-3885709835822205284
	.quad	4525630512028460468
	.quad	7470042867870921036
	.quad	-5948107113952457711
	.quad	-3487064003942177522
	.quad	214531307038081650
	.quad	-4784557719374146195
	.quad	-4877651442620028650
	.quad	-3711865148629996416
	.quad	5573745132853181827
	.quad	-8685849541118777271
	.quad	570913584844852393
	.quad	2876490049670168337
	.quad	11344011070326117
	.quad	-9064274443547438195
	.quad	-2754044997137160812
	.quad	-769399347708781497
	.quad	-927176163017374209
	.quad	-2024345516489333855
	.quad	-341643155840574048
	.quad	4423683464755616724
	.quad	6372455903401744010
	.quad	-5254919625334959032
	.quad	-7336843379937689928
	.quad	110375825395752105
	.quad	6141887491810102753
	.quad	8539638882985816710
	.quad	4526177768174643497
	.quad	-826655602781670577
	.quad	939355076355747784
	.quad	236998652239230884
	.quad	7862332576114728232
	.quad	3008745396212765985
	.quad	-1554228916581102737
	.quad	1688671543548974140
	.quad	582235491724828261
	.quad	2879861045707356356
	.quad	2285310769686557092
	.quad	-7153316408405900237
	.quad	8666834049068129010
	.quad	3061370600471084712
	.quad	4820371831788291226
	.quad	4992042531162225725
	.quad	8378874803286822999
	.quad	4511794224086040722
	.quad	1586362542983259878
	.quad	830602083002759106
	.quad	8809449833345147146
	.quad	-8095456003908347913
	.quad	4474448749851844990
	.quad	-4747585133487221468
	.quad	-7879563837157060687
	.quad	3669657668035555185
	.quad	-2916922436505982793
	.quad	-4884176371209588760
	.quad	5074207613677642129
	.quad	38994934082435094
	.quad	1851024507452702986
	.quad	9216837842350896824
	.quad	6381737838838328803
	.quad	-5542436555662222724
	.quad	5793581539270397654
	.quad	-6378771917827311301
	.quad	1914416028486337582
	.quad	2044052608129533771
	.quad	1045680055817519578
	.quad	6183307954634642810
	.quad	1115903654002488241
	.quad	-8717514451149553565
	.quad	657854851752832614
	.quad	4373110550758038665
	.quad	-6306937583863223268
	.quad	-2410169014439768645
	.quad	-2719576191411409298
	.quad	-3993494396207521660
	.quad	8288798556127644667
	.quad	-2728851610343186193
	.quad	-1572422247712495998
	.quad	400037609179914212
	.quad	3864128485219555550
	.quad	-3640309428481364053
	.quad	-3151683091918007060
	.quad	-8366608281156471350
	.quad	-2152141381648569118
	.quad	-9049532242957851456
	.quad	4607471545021940647
	.quad	-8117721448892327924
	.quad	5673148007526683509
	.quad	6798045979138406005
	.quad	2482987580707580528
	.quad	-1714288440089342900
	.quad	6031601624437317232
	.quad	-6138650108540198892
	.quad	-6941510519167308003
	.quad	-4796371902087997518
	.quad	-6560342644958827440
	.quad	2616122636264787282
	.quad	-8638868335444020725
	.quad	2065326856613209663
	.quad	3841177149705795822
	.quad	-5967907157621978780
	.quad	8232363113772004318
	.quad	944808808023089306
	.quad	8739347959070868050
	.quad	817952963655862253
	.quad	-2146838236833878959
	.quad	-6307696094338076802
	.quad	-2667130220547090401
	.quad	-2884482435107287839
	.quad	-5905560455450589634
	.quad	9203911447114001350
	.quad	-3037780438549871616
	.quad	-6514583263247871732
	.quad	2958619894272617132
	.quad	-1865006114340682111
	.quad	-5903565841713888051
	.quad	-6342360296845352177
	.quad	8816281388168697026
	.quad	-9175615573298055287
	.quad	-5472965749005428470
	.quad	-7745236075382220667
	.quad	445500535548170626
	.quad	-6423440326967359339
	.quad	7251113665249264373
	.quad	-4183180143941246082
	.quad	8725096612265348131
	.quad	-1486989539461051310
	.quad	3934616751368449170
	.quad	887912345061829880
	.quad	-7036565213760593748
	.quad	-5579359568778802887
	.quad	4367798270196663137
	.quad	4359910421693489126
	.quad	5476013756679056474
	.quad	-1615677655089390150
	.quad	5154441282353501056
	.quad	-8501835487529494012
	.quad	-1583422773159363144
	.quad	-4656942124990376127
	.quad	5175764766642587626
	.quad	4994987408730773963
	.quad	7605297636680658571
	.quad	-4764953743373773369
	.quad	7062139185815584970
	.quad	-6123497084954255628
	.quad	2059396910721247438
	.quad	-1931229860340282114
	.quad	-8542326284772464262
	.quad	-1438745562424738469
	.quad	7001723908320566865
	.quad	-8099652471462306518
	.quad	4384949953259632697
	.quad	6083023044985508992
	.quad	2816748307745016086
	.quad	4992645938276999364
	.quad	-5796250950745750008
	.quad	2938550945945889356
	.quad	-225154247927070748
	.quad	-2571438610676880987
	.quad	1054133002549446970
	.quad	2220911650204683784
	.quad	-7572052276679371545
	.quad	-4542940918196421516
	.quad	-3572861331972207180
	.quad	-9072245355537494060
	.quad	-6016424294163183548
	.quad	-3639312246957954053
	.quad	2580956579666848991
	.quad	-9154930603276325814
	.quad	9206372108830388039
	.quad	-8586928727898044187
	.quad	6437221412532850718
	.quad	8755518748734711830
	.quad	6645172492434637315
	.quad	-8724888102266109979
	.quad	6237420006630446102
	.quad	3098462923885221813
	.quad	4241189113466539691
	.quad	2475157434029943689
	.quad	3888877150389710590
	.quad	-7647390465502327669
	.quad	5576359513516166131
	.quad	2524840388842473438
	.quad	-3879936357584754761
	.quad	944714429954178349
	.quad	-8499481694014734616
	.quad	3935254128211993726
	.quad	8454996497366628327
	.quad	-8075783574482931845
	.quad	7669790431656261769
	.quad	2776517632462593286
	.quad	-6752718406043918110
	.quad	-8912949984700656339
	.quad	2895611631120558023
	.quad	-6895333418260762660
	.quad	-8420202172937280691
	.quad	6243136875017000843
	.quad	-9012259081180365232
	.quad	-2010996026048942091
	.quad	-2256083379558561630
	.quad	7083965852434071085
	.quad	4216306437741910756
	.quad	2698742177539497614
	.quad	5199793642504009017
	.quad	-1148319303890532456
	.quad	8168579295855409503
	.quad	-1719174152179519775
	.quad	6182114460261837773
	.quad	8940603165471931374
	.quad	6081572078077526926
	.quad	5890840443923124563
	.quad	-7231438245414791889
	.quad	2875117534361804712
	.quad	7507377696839752642
	.quad	1061259379811757443
	.quad	-8170153913316633803
	.quad	6889137095037822679
	.quad	-2072830567926826066
	.quad	-6159010977906027090
	.quad	5695917172259210496
	.quad	6360958736925918808
	.quad	-94409287236665579
	.quad	7096021570596476676
	.quad	-1401336568580684443
	.quad	2467670847537319400
	.quad	2225663888244226889
	.quad	1876713214939672742
	.quad	5329943993157142620
	.quad	-6278093097797369428
	.quad	-5786196105720511829
	.quad	2109392063597767300
	.quad	-8557000801711797579
	.quad	-6643416477085227580
	.quad	6940409327849314286
	.quad	1466399127363116843
	.quad	2572333022681966275
	.quad	4216097356402537802
	.quad	2976756344404126744
	.quad	-1414187464306715057
	.quad	-2097836609697977434
	.quad	2196781021202618892
	.quad	8270822867494340805
	.quad	4738372358350764889
	.quad	6088256422707334932
	.quad	-1325374739202044111
	.quad	7819174654675104600
	.quad	-5668688591279214890
	.quad	-3830895530219380005
	.quad	-948328898445808791
	.quad	4785899184222234034
	.quad	5227136636239697699
	.quad	1570704808469050246
	.quad	2858953380860123257
	.quad	-4509190169329519025
	.quad	9165760362893872288
	.quad	-4287137171033900947
	.quad	7794101517494576908
	.quad	-6452147180829087452
	.quad	-2235465861434134582
	.quad	1568324133241165712
	.quad	6579463633356173526
	.quad	3191556545349441897
	.quad	4780077336463115599
	.quad	102121356289129288
	.quad	-93635678955071659
	.quad	-8346810023298229289
	.quad	-8123310584971965719
	.quad	1480832277301232858
	.quad	8304664509429164326
	.quad	3426958921435818822
	.quad	395886748655323570
	.quad	280632942609884625
	.quad	4361473570148050146
	.quad	6600885194277340683
	.quad	-1778420121412719673
	.quad	-8388994268826690103
	.quad	5701592287343868424
	.quad	215205608065278414
	.quad	-3085686084572321972
	.quad	6756215047166430628
	.quad	-6231659775832498791
	.quad	7185815532109454500
	.quad	3394755837885079236
	.quad	1778980761557523977
	.quad	1861969072415300655
	.quad	4791947847339351337
	.quad	-3241747263953706684
	.quad	-6773779755025788298
	.quad	-5379484201763749813
	.quad	2139419248113049376
	.quad	-251049215620279627
	.quad	7208559250123396675
	.quad	4671149208567820584
	.quad	-2913381503188494285
	.quad	6942829144635570952
	.quad	-8873753628241399796
	.quad	6294042535380467396
	.quad	9052929167426522790
	.quad	-153313378809026119
	.quad	9076155092724374912
	.quad	6410242671697688127
	.quad	-6507921426213150654
	.quad	-3113216406290351906
	.quad	2385985954862343680
	.quad	-3670328961465411447
	.quad	-5628990349235446156
	.quad	5129368568396757194
	.quad	607898027127847045
	.quad	3917240453172744497
	.quad	2903417389682946131
	.quad	-2541165132885940522
	.quad	4910425097773753648
	.quad	-7629328691565729848
	.quad	-2090351694782365500
	.quad	1174713154793914656
	.quad	9176413825070952738
	.quad	-667638548764512905
	.quad	369660229032730089
	.quad	-6594828240179745918
	.quad	-4961474544265581726
	.quad	1270120511649175022
	.quad	9128783725626301238
	.quad	6173048611666804214
	.quad	-4295339542540355944
	.quad	-205735973787908179
	.quad	-3847141402021030422
	.quad	5246238840903272885
	.quad	7735887593778696326
	.quad	-3445790737480779448
	.quad	-8405711902191644387
	.quad	-8013483710119033908
	.quad	6238046728545667504
	.quad	6959216950819717375
	.quad	-6873688603647847963
	.quad	-4558924558536740710
	.quad	3938406118326640390
	.quad	-8404674996485728754
	.quad	1860816873234243395
	.quad	210197300097122146
	.quad	84082179748006734
	.quad	4022243426133402849
	.quad	-5313053376123299416
	.quad	-1113226390914151099
	.quad	7182665164529730522
	.quad	-3524734050645133034
	.quad	-843355218208316379
	.quad	-1449822811618626819
	.quad	-7780381491463137787
	.quad	677878238991447197
	.quad	-8341679587671275685
	.quad	-8505176170952224747
	.quad	6270887402670099368
	.quad	7893637404671442647
	.quad	2735064016951904470
	.quad	9171615884630606261
	.quad	5656549069399906375
	.quad	8408128164782137512
	.quad	4894616935337285264
	.quad	-1173544013380989512
	.quad	5759044742201791486
	.quad	459029503866185124
	.quad	7791953919566385265
	.quad	980252407651599974
	.quad	5767407120554565007
	.quad	4335269889445976823
	.quad	-8041367831558854460
	.quad	6573098429713857057
	.quad	6056762164094245612
	.quad	-3515197653300654984
	.quad	8642400541297677396
	.quad	4657189931536461926
	.quad	-1728949594914971193
	.quad	-5060591424072692768
	.quad	431145783457550068
	.quad	-5908706147390285113
	.quad	-8625675925532130192
	.quad	8995093503301868581
	.quad	7239450823380699241
	.quad	-6303200711018740090
	.quad	-991706513840611398
	.quad	8560593298916210550
	.quad	-2115718101389006145
	.quad	6852381640421896437
	.quad	-9122003660494688121
	.quad	-2728405038327833894
	.quad	1521756232012903545
	.quad	5431459367124818841
	.quad	5364830919043042094
	.quad	-7341995202727539866
	.quad	2031448926752068746
	.quad	-3644987569803908638
	.quad	-4700859529346964662
	.quad	2131141852931246035
	.quad	6818490009082557418
	.quad	-9059074880666488910
	.quad	-5367445616548530868
	.quad	3640709702740635976
	.quad	-5224220185129628640
	.quad	-1107551638794542083
	.quad	-556832316864280600
	.quad	-1956416245221750104
	.quad	5476469193465541283
	.quad	-2559663429300738982
	.quad	4342140490026065039
	.quad	-195004624819803392
	.quad	8562626600773759074
	.quad	7092134186961862402
	.quad	6017219076919063598
	.quad	2479137614071320236
	.quad	-371719242763636011
	.quad	-6087148195057291029
	.quad	-6871990798266825129
	.quad	-7455672026810246574
	.quad	8751379332306049197
	.quad	-6134114288578142169
	.quad	-632706737375136435
	.quad	6692744925623662217
	.quad	3863732224992788201
	.quad	4841484619128660652
	.quad	-5378171290423475318
	.quad	8728503753199816424
	.quad	4139580980524293285
	.quad	4486213908602469656
	.quad	6318725371284153827
	.quad	6748792125565193574
	.quad	7503109355568776053
	.quad	3848941210439569663
	.quad	-5832255917140929047
	.quad	6011777035588982682
	.quad	-3190359181177330454
	.quad	-3077685883245095661
	.quad	-1287330249230705260
	.quad	-6974475008152228761
	.quad	-3286628113245450413
	.quad	7114272652419455010
	.quad	6143717110686453168
	.quad	-5482171551746921550
	.quad	2576358801645560170
	.quad	1895194889490415140
	.quad	3490685827829981195
	.quad	-6277375607001814771
	.quad	6090964163091329231
	.quad	-6791723795126054412
	.quad	8139157710651763351
	.quad	-1583575408845090489
	.quad	-2219954710553851570
	.quad	-4712038484185494760
	.quad	-8816748560216708385
	.quad	2636144377026081617
	.quad	1233405076007260313
	.quad	2119672919365858964
	.quad	4932766292290315579
	.quad	4185117177904214366
	.quad	-1759104581306149452
	.quad	-2067339989971758335
	.quad	228418009139069825
	.quad	6185899685899577889
	.quad	6528101344786573134
	.quad	6528857366303746204
	.quad	4700865975984882257
	.quad	-7442811620442318070
	.quad	-4951778818714753760
	.quad	636847347076719313
	.quad	1293458640942312397
	.quad	4993622848271282190
	.quad	-6004603841451163589
	.quad	-5749855469176635027
	.quad	6639468300058476306
	.quad	2383874161632639111
	.quad	1841490865296370221
	.quad	-3060920583128777942
	.quad	-8744245641264864002
	.quad	-7841654215299296623
	.quad	-8858978675991454272
	.quad	-4542967674681965879
	.quad	-1833881196975133749
	.quad	-439170504332619130
	.quad	7320968272518522826
	.quad	-1705630625382442497
	.quad	-70570940930453469
	.quad	-4150838385560339461
	.quad	-5740090159814673070
	.quad	-7831045101428543538
	.quad	7043291583873156744
	.quad	-5609732681342941521
	.quad	1913574782165503888
	.quad	8765169883702371
	.quad	-1968465163206251655
	.quad	-1456406857939378763
	.quad	-5534531821937973464
	.quad	8434872729216966899
	.quad	6526104381117234173
	.quad	-7565663919582873610
	.quad	-5448576383006453281
	.quad	2426820356727707890
	.quad	-3022948499982408660
	.quad	-278754420250123861
	.quad	-1708057025712100736
	.quad	4444566779986664845
	.quad	-4939384550883124386
	.quad	-2016021318005268099
	.quad	-4964398599940319555
	.quad	-8352088682115524956
	.quad	-4302922187860014805
	.quad	-5354810886620487629
	.quad	-6279428240098978843
	.quad	7529953542077104678
	.quad	-945816200330349185
	.quad	22025147420449606
	.quad	6556637108078954923
	.quad	854911879338322327
	.quad	-1111135457447492946
	.quad	8212786550755149003
	.quad	8111194132924193031
	.quad	-2756778784628538241
	.quad	-1805382149435551322
	.quad	-5315711298679546760
	.quad	-3474559869922399909
	.quad	893532519535176392
	.quad	4327175332572950263
	.quad	6547436740626897726
	.quad	3907667817275219301
	.quad	-513376244516137722
	.quad	-3897265060561245498
	.quad	-1357223989030341530
	.quad	4872184194103748547
	.quad	-8210372567346187445
	.quad	-3513461965512721803
	.quad	2106865987313930439
	.quad	-6276204706569671037
	.quad	3599556290990140224
	.quad	369801970444538880
	.quad	7432187408005945192
	.quad	8083904547083006259
	.quad	2629192188303927611
	.quad	-195820505009637559
	.quad	5921370933223240207
	.quad	-1914324487769451597
	.quad	2476902904923426929
	.quad	3728247757512838864
	.quad	-4269859032650796297
	.quad	2759710860791777404
	.quad	-6039168498146267730
	.quad	4058220890410303303
	.quad	4615858739895692547
	.quad	314823159968506916
	.quad	-144793264721122933
	.quad	5028821218172495674
	.quad	8571167248598454632
	.quad	1935118153241597779
	.quad	-5582685297906537143
	.quad	-2848924305980654300
	.quad	-7706691962123351774
	.quad	-3327006282101871618
	.quad	3511704291264785470
	.quad	-8127174341941887174
	.quad	-8114176062517744116
	.quad	3451333152616610591
	.quad	-1548460274602793657
	.quad	-3756038259728275898
	.quad	-4049644735247657903
	.quad	-9072649460328817133
	.quad	-2713601914748630948
	.quad	-4893187069196649104
	.quad	2192701343510156143
	.quad	7038711891770932469
	.quad	4907946886569650004
	.quad	-3424532500745158903
	.quad	8532999975240905073
	.quad	-2592203038476089454
	.quad	-1584512171224376258
	.quad	-1888611959271831906
	.quad	5617174620208955228
	.quad	8653575060724839982
	.quad	-6964216478965198360
	.quad	-7609135145493891568
	.quad	3651629796762058243
	.quad	7098570919231943894
	.quad	-1543321167021975834
	.quad	6449467519885582678
	.quad	-3991049094183144745
	.quad	8482029702048255168
	.quad	-3566535837784616075
	.quad	220188182156076386
	.quad	-309891530988112224
	.quad	7156211201990623512
	.quad	8966632248395192593
	.quad	9162627045647552296
	.quad	3341857146418392073
	.quad	594612854367739327
	.quad	5983183475301792999
	.quad	-997300037623606727
	.quad	3129179724689555004
	.quad	-1832916651278353417
	.quad	3507628942858275428
	.quad	7411009064433118624
	.quad	-794753445258499392
	.quad	-5737596725833174759
	.quad	4996168977835586582
	.quad	-4053010581602511301
	.quad	924002972232889001
	.quad	4554028158131920803
	.quad	-542583558502578287
	.quad	-4230434340410508024
	.quad	6112609052494035415
	.quad	-8602338407010698015
	.quad	-7326974274885363593
	.quad	-377844709676396464
	.quad	9024777743909412917
	.quad	-8782930982548492053
	.quad	8011386234594843769
	.quad	7044989162327466870
	.quad	-2738984068580011888
	.quad	-1898206526280550751
	.quad	-8837397686252640734
	.quad	1760875669341969137
	.quad	7234401681660287691
	.quad	5108702929929681310
	.quad	8477973022180998334
	.quad	5561589568721643096
	.quad	669704042923990168
	.quad	5400526159232420698
	.quad	7423858059925532432
	.quad	-3978798964990990598
	.quad	-392253562239151808
	.quad	8640891683222775024
	.quad	6865424508411920742
	.quad	2008491891689460823
	.quad	-2900165025011720222
	.quad	5101505512630431075
	.quad	-7398230837096587653
	.quad	1986014547004320759
	.quad	6594047838613828519
	.quad	646005707031983573
	.quad	512549377524564864
	.quad	-4085841126456949430
	.quad	-3814986484578751652
	.quad	781149662684377075
	.quad	-8839965328132502724
	.quad	-1803820240137536929
	.quad	6804945833779567806
	.quad	7749938807818369385
	.quad	4119995592971432914
	.quad	-1274674291299147249
	.quad	-6888033948869466361
	.quad	-228165019198936813
	.quad	-1567749558367005968
	.quad	8610199550074606564
	.quad	8809394105448084199
	.quad	-6298964562102193005
	.quad	-101317167259878154
	.quad	5025276546543251199
	.quad	-7994519729651039255
	.quad	-3800968649625701043
	.quad	-7887001434208340261
	.quad	4339100724927325820
	.quad	4311662636897493443
	.quad	694179854024481401
	.quad	7584284068757058861
	.quad	9015745066085865009
	.quad	2168892428388081873
	.quad	5058625435453894254
	.quad	-6382117815967182519
	.quad	6991448767109889445
	.quad	840503862786567505
	.quad	-3450060347760162342
	.quad	-7802663239707423704
	.quad	6322015521720168004
	.quad	6495934681398117720
	.quad	1767898528826270703
	.quad	2121946067634562158
	.quad	-6223302570336174400
	.quad	-6874998389889328573
	.quad	6232371980364527031
	.quad	8357204959067525707
	.quad	-8076784853125110264
	.quad	6955608217338007368
	.quad	-5740093272340690609
	.quad	-8749838064623048490
	.quad	1480151357155118629
	.quad	-7373624869362862120
	.quad	659714168169349166
	.quad	2501159620886204012
	.quad	7796384479021447020
	.quad	6027354037319329367
	.quad	-8258484256603386054
	.quad	-5417006799330316459
	.quad	-2649619759010571362
	.quad	6717375872749950618
	.quad	-8713013102465562654
	.quad	-6770907515867250291
	.quad	-7128463148848514781
	.quad	-4846126637571210337
	.quad	-7233924286833872492
	.quad	4252904977034159517
	.quad	-5446220763899718368
	.quad	1835391804879298340
	.quad	-7185048553227544575
	.quad	8281576077292852636
	.quad	-8371182812267233159
	.quad	4530936572606730312
	.quad	-1450573681278947560
	.quad	2476294162951949891
	.quad	6677439492116109133
	.quad	1649550562276235959
	.quad	7307278264575968221
	.quad	-1318067809465540773
	.quad	-8678681774272860243
	.quad	3825325732056225433
	.quad	-1222094061836951959
	.quad	-7016555987526575464
	.quad	-5554680454865831587
	.quad	5912993124689510433
	.quad	7069617917494051681
	.quad	1298012103142698333
	.quad	7943359430865057535
	.quad	-9116967229987832077
	.quad	-8982658470040515162
	.quad	7848014338005901108
	.quad	2368914226155404065
	.quad	-6868327961861033766
	.quad	6323647866244499941
	.quad	-4047154077005603620
	.quad	2824522520842155768
	.quad	391310842153371124
	.quad	-8498093272476417846
	.quad	5836115460383443197
	.quad	-7042573376735102409
	.quad	4791020823967734476
	.quad	423024247809958592
	.quad	-7195075685829290815
	.quad	5562546584223492723
	.quad	578572156618131794
	.quad	-4457889380034586893
	.quad	-7629590041640519675
	.quad	3171651998645961547
	.quad	5518712225783687705
	.quad	-3739838982577459646
	.quad	-4485985612774584740
	.quad	-6305708931629858471
	.quad	3149939820435101269
	.quad	2505301881938098126
	.quad	-8484420594785899476
	.quad	-9134544549759107274
	.quad	-5488921571035861911
	.quad	8060810607849163143
	.quad	737408553843844193
	.quad	8143568733429881786
	.quad	-443575802928782140
	.quad	4460927228453411137
	.quad	-2388321369923764089
	.quad	8016770980039986075
	.quad	-6995802972744691096
	.quad	2742597710491507274
	.quad	-1505991095037750343
	.quad	5897441526901650840
	.quad	5926672707007682446
	.quad	5772778048593061508
	.quad	-3021987256001227688
	.quad	-6604702814432367809
	.quad	-776791388658391093
	.quad	5405007811515938363
	.quad	4415223809135251038
	.quad	2223192286456742546
	.quad	-2704638277914278842
	.quad	-6637401418396051343
	.quad	-1624039971896267379
	.quad	-5349371998102813693
	.quad	5463281428453250615
	.quad	-6478877082036026054
	.quad	6828790575157689223
	.quad	-5877912111611745970
	.quad	8385980093725157349
	.quad	8090324765778815982
	.quad	-2449310973491346973
	.quad	7771766025433829989
	.quad	914551143312324786
	.quad	4640358803642182649
	.quad	-1018595864971795406
	.quad	-6301776336309780618
	.quad	-3371618330328810204
	.quad	5954807828598238451
	.quad	3186352433639831389
	.quad	333598278340882889
	.quad	8647732331490039308
	.quad	3706589107409903019
	.quad	7338319463305947507
	.quad	3829684452513478938
	.quad	8551967121356509963
	.quad	-1692966473949796747
	.quad	-6418589875130038663
	.quad	7911616552276519044
	.quad	789841268294170739
	.quad	8228995103825761982
	.quad	-4152785141990491280
	.quad	2778055819582565008
	.quad	1399082948378499882
	.quad	-5954178875182332716
	.quad	-1109458496412821414
	.quad	-3358399560135749199
	.quad	4272568906387671217
	.quad	2365541522321646412
	.quad	678395397666822608
	.quad	437334842774934301
	.quad	-5003416467543471779
	.quad	1266313952277763194
	.quad	-6975893455896160955
	.quad	-8020354809235213806
	.quad	2996447663006153747
	.quad	-3228448714687399494
	.quad	-3812204120889736024
	.quad	1775270187047190460
	.quad	2942637199921677956
	.quad	4952377176677649521
	.quad	7473631065005310719
	.quad	7363684030854414233
	.quad	-5889852673710964383
	.quad	2190850394642244911
	.quad	5458637782288631421
	.quad	270926994697866523
	.quad	5528436328062366401
	.quad	-8949568900174184650
	.quad	25345745857275253
	.quad	5047829133239508177
	.quad	5340238103822773099
	.quad	3133339556064328840
	.quad	666970525709876149
	.quad	-2871238600209260114
	.quad	-5677068266853910962
	.quad	-9199974559233848990
	.quad	5788284997389507365
	.quad	-2588846710859224213
	.quad	-4582067272614457398
	.quad	-5565217351381028349
	.quad	2620841421323221200
	.quad	-5846762298393154492
	.quad	-5625754226864991576
	.quad	-123579102726423581
	.quad	752158096182501272
	.quad	5423974049456128256
	.quad	-5573541630887247398
	.quad	6970363814115228779
	.quad	-6389606503186333700
	.quad	-7015575170071517514
	.quad	-9046706338708495782
	.quad	-8609307690505018104
	.quad	-8305592421393544515
	.quad	8159053109020108401
	.quad	-6658190409335914500
	.quad	-1796542015966944942
	.quad	6235556222107967476
	.quad	-8359668631223568029
	.quad	6582571995896877651
	.quad	9093648267164121006
	.quad	-1880024752281489436
	.quad	9124296954694479671
	.quad	-4542634898430587145
	.quad	6224082883901876005
	.quad	2149217807308608438
	.quad	567399113328154246
	.quad	5644309974715489704
	.quad	4636729848322167616
	.quad	-4396948147125430115
	.quad	5453167060116151495
	.quad	998572834505318428
	.quad	-2715732469577326708
	.quad	2095929574170149461
	.quad	3490427176594607180
	.quad	8780295274171132366
	.quad	189888681352221957
	.quad	3964942785106930970
	.quad	4569937998517534039
	.quad	4055198934094127292
	.quad	-8663953090386388069
	.quad	5547071987209052831
	.quad	1199216211088471100
	.quad	4110766320211806150
	.quad	-8124965338605782818
	.quad	-3688399879001481360
	.quad	-2970304258486082174
	.quad	532148359168715729
	.quad	-3220909208454033216
	.quad	-2937848018046234849
	.quad	-341893434263083126
	.quad	2488177186666868543
	.quad	5398398967673985537
	.quad	-1116820838285165703
	.quad	-2223051099380735676
	.quad	5326150419420161138
	.quad	-5464676215692510957
	.quad	437115335690312330
	.quad	5165001523502489231
	.quad	-500394381692344926
	.quad	6704274260332044340
	.quad	6051529704832246954
	.quad	-6313329347519537281
	.quad	-7175990553076156842
	.quad	6495070184910243766
	.quad	-4769872165243346196
	.quad	421684341196948798
	.quad	-7601745963973183318
	.quad	-3171845368248461678
	.quad	-1502194598019195836
	.quad	-4589061886511047711
	.quad	-2712762290385856328
	.quad	8322323760173901696
	.quad	-2158015852471408652
	.quad	202225485530536451
	.quad	-7931030164648953798
	.quad	2914532376850913375
	.quad	8273714800291865626
	.quad	-6354807073726116479
	.quad	8937501254266968189
	.quad	325469177065802505
	.quad	8254205972142406576
	.quad	-3741785477291965291
	.quad	534157845251331471
	.quad	7375808274309588081
	.quad	-947830583803858672
	.quad	5013901205209706532
	.quad	5201074329391670689
	.quad	-3938211125285533563
	.quad	8071655042703340871
	.quad	740269220835292496
	.quad	5748627041445307217
	.quad	8488633456722380969
	.quad	-8718763105586089089
	.quad	-8837626794299480464
	.quad	-9150882604977262609
	.quad	-4444541792648613225
	.quad	-5887179533303346965
	.quad	-4822108461685871312
	.quad	-444466053045109523
	.quad	6546420581053111816
	.quad	8611114753972752891
	.quad	-2076070107658120810
	.quad	-5039001735105099580
	.quad	7512906714337955940
	.quad	9137581601181262395
	.quad	6314526563036596696
	.quad	-968374825859517620
	.quad	-962500608030052173
	.quad	-1268371824762433815
	.quad	-7454301573189382955
	.quad	6047719574706085170
	.quad	-2054148271676736403
	.quad	-1608988999465277592
	.quad	4870305263622690319
	.quad	2666281115474685350
	.quad	4053132846958628419
	.quad	-9178949812801099472
	.quad	3528277385005543975
	.quad	968287661425257272
	.quad	1740054338688295013
	.quad	-6144678777986687104
	.quad	1519419574911759743
	.quad	2698845136076842548
	.quad	-5380095428609303859
	.quad	-1719251958107629951
	.quad	-2697272312269053510
	.quad	937594351871983779
	.quad	8381111811209734349
	.quad	-7562386154983911925
	.quad	781591570669492079
	.quad	-5668000308411123350
	.quad	-2550950639572843289
	.quad	-5549070286656708921
	.quad	2542820357880873270
	.quad	8673992867724516827
	.quad	-2793027690940252648
	.quad	7884781601763053177
	.quad	8814755658828083638
	.quad	4472819812931128716
	.quad	6067884619803100975
	.quad	-6796682748360225118
	.quad	7538524202410053367
	.quad	-8334832729735267701
	.quad	5103715590804783938
	.quad	-1421716380289939760
	.quad	-5365507771106686487
	.quad	-2679881460135487720
	.quad	-6299911601826075838
	.quad	1380068047237084033
	.quad	6184968881722914853
	.quad	-6000431969009540563
	.quad	8421881362415104000
	.quad	-3788422895348494479
	.quad	3503380353902244286
	.quad	549872831894010267
	.quad	-5517993139637525122
	.quad	5960675687235853633
	.quad	-2844957349756407098
	.quad	-7263580362632317174
	.quad	3540070043204067807
	.quad	6136591191720266393
	.quad	826603412704310062
	.quad	6662692131202618934
	.quad	-6131543140648815972
	.quad	8132535834299567433
	.quad	-7634053682107960804
	.quad	4408038991015896270
	.quad	-830360586162136970
	.quad	859505540658395569
	.quad	-6449229411068781623
	.quad	137612883845296201
	.quad	8571026534393135902
	.quad	-1870740956934408895
	.quad	-5688891658363697284
	.quad	2237855594493645771
	.quad	-793255428210797491
	.quad	6734990896455425744
	.quad	4333367978669786965
	.quad	8882560347037739840
	.quad	-2640808641528045570
	.quad	-8120188175843698866
	.quad	-3683024148421333733
	.quad	-6177660977290620794
	.quad	-6066751445882812057
	.quad	4987719661266707949
	.quad	-6335929025028930841
	.quad	-363156884124124620
	.quad	8291124196560778138
	.quad	8141227113684390722
	.quad	-1493165404273733925
	.quad	-4530866039302870447
	.quad	-4298133658646348097
	.quad	4188330836172038175
	.quad	-3904295267874059405
	.quad	4511186129762456995
	.quad	-2249499142711921600
	.quad	1680469270481574495
	.quad	-2231450557849561693
	.quad	3642578796774579296
	.quad	741228268400183812
	.quad	2727210046051130015
	.quad	-786618082161945898
	.quad	-7687748986131554332
	.quad	-3356681512462669159
	.quad	-8012594640183035766
	.quad	-7674336613101206934
	.quad	6119836864949999314
	.quad	-4829936515570985862
	.quad	4400068657310499180
	.quad	7496331182334160503
	.quad	-7862629496961721640
	.quad	-2944834698337024680
	.quad	6981964459029102491
	.quad	837959910241236542
	.quad	-3878085545398750649
	.quad	7408829220677057119
	.quad	5947723691882230061
	.quad	-2198004863596597028
	.quad	2115973940937726012
	.quad	5886794372778966577
	.quad	-3800630640494568944
	.quad	2329709641616575161
	.quad	6068996737228970224
	.quad	5644126082472535422
	.quad	1152558188732911261
	.quad	-306901335926966596
	.quad	-537362571230184566
	.quad	2350629711932399321
	.quad	-6023321492571009822
	.quad	-902731722560248471
	.quad	-2185415286578478953
	.quad	2578901057786310202
	.quad	5190284121276554158
	.quad	-3318934022377226649
	.quad	4938594396261502460
	.quad	-8313064003527496051
	.quad	-5563362237042258724
	.quad	5484112636000039288
	.quad	-1170763087132669096
	.quad	6858412610586656348
	.quad	3440089926022539036
	.quad	-2262353271773201324
	.quad	482228648174899521
	.quad	4104547340795479645
	.quad	8276903254116222937
	.quad	-961261847625834505
	.quad	5103785472413960920
	.quad	-7897596403325767569
	.quad	-1982143574302687390
	.quad	-1733568477568163791
	.quad	-4500240616771466551
	.quad	1797915488494232282
	.quad	-1171987931450277153
	.quad	-4238749754530449839
	.quad	-9040840321170636379
	.quad	9001743317941152797
	.quad	-3397991465647960773
	.quad	4925745663463425863
	.quad	-1303050056532413131
	.quad	5051663926048617589
	.quad	-2798333086010211395
	.quad	-379204681876884154
	.quad	6994555732361523474
	.quad	785179939519723026
	.quad	6820309717217716460
	.quad	7784341686666686512
	.quad	7249857536718283262
	.quad	2732820549567570452
	.quad	-5376682836194528415
	.quad	1013916479092472290
	.quad	-3391295784507868553
	.quad	-9115293842845755557
	.quad	-8832699586388078530
	.quad	-5416364568236987322
	.quad	8361586668461010798
	.quad	3330617624059648575
	.quad	-4329197300188957655
	.quad	-3868649315225912460
	.quad	-8644794901602113284
	.quad	-2465637109807472450
	.quad	-8682850962121578705
	.quad	4953099426302013665
	.quad	1449684812718737214
	.quad	978784255817451438
	.quad	7540736719246214002
	.quad	-757028565743582253
	.quad	304831869240931122
	.quad	-3741117858230131502
	.quad	-5269520996094883148
	.quad	-5284001332758833500
	.quad	-8935112092282172887
	.quad	6624094958629813061
	.quad	6283205916365903269
	.quad	-3939738314993770500
	.quad	6000831751777417732
	.quad	8720916747747456200
	.quad	-6395584301268999057
	.quad	-3338509960540271368
	.quad	2693509955127557564
	.quad	7057133340711131943
	.quad	-2346022276136699335
	.quad	-5540651606609497105
	.quad	-5712319056106222295
	.quad	-1242635803666096667
	.quad	8082943506063772603
	.quad	3104643441618422003
	.quad	-1280204897765556988
	.quad	-7133558691736032123
	.quad	3292358540470645431
	.quad	-2897271777256399272
	.quad	3778191497358195553
	.quad	-5506167774047654135
	.quad	3434176687127224622
	.quad	3507746496214033552
	.quad	8459494064648763745
	.quad	3893913580319803463
	.quad	-3816768552166107914
	.quad	-5405665284351190429
	.quad	-4464094706443524356
	.quad	4413715088553472581
	.quad	-7155895218719200482
	.quad	6834815905788269391
	.quad	-5783294370131209809
	.quad	-7343432506952610691
	.quad	6536507636245280927
	.quad	1948181222131792467
	.quad	2531860643688771243
	.quad	-4543302797026599347
	.quad	1817244879198923177
	.quad	1725423953067792488
	.quad	-2038522916082073084
	.quad	1472388457417163585
	.quad	3863855935107558734
	.quad	-6974540567602338787
	.quad	-7306312022986971966
	.quad	-7970906253167931218
	.quad	-8517214629077452164
	.quad	-8564004720040808102
	.quad	8995646560245640451
	.quad	-290596070741330930
	.quad	-486941484463038824
	.quad	-1161713573547856681
	.quad	-8001770909815210686
	.quad	-9104029575760569619
	.quad	-7661895272897597464
	.quad	4616876083721080146
	.quad	-3170570760689681341
	.quad	-3965317690551532140
	.quad	3347531699277753784
	.quad	-9035209712845070384
	.quad	-2050879738576880506
	.quad	-3451054714327177000
	.quad	4976540900420190813
	.quad	-3724792012129626142
	.quad	-4709706914282111367
	.quad	5628022266683225376
	.quad	-288766204736887804
	.quad	6203137713475380362
	.quad	8287156022272938201
	.quad	8789330878369741175
	.quad	8532485640509948692
	.quad	1213285141753663719
	.quad	8863081883000508597
	.quad	6552524475374644462
	.quad	-1175179090119010898
	.quad	5542366751216000362
	.quad	-7135004039512890537
	.quad	4133753980346833605
	.quad	40437483083332477
	.quad	-8111863155278691109
	.quad	5859880444319573111
	.quad	-5040110516491381999
	.quad	7986037874503749847
	.quad	-4181953613292726573
	.quad	988798126505081472
	.quad	-3271867089093440657
	.quad	-119151977779355891
	.quad	-7550980531859956775
	.quad	7764811359053980967
	.quad	-6833306098484395312
	.quad	8619196433402562266
	.quad	-6539710785710714192
	.quad	5056904365610561965
	.quad	7637552956459333558
	.quad	2827449950719061527
	.quad	-8448236988452698115
	.quad	-9208181188183651291
	.quad	-8841352462034250464
	.quad	-4432111649667028392
	.quad	4638465078692570733
	.quad	3013469722048440965
	.quad	-7474144013499036930
	.quad	4497572559400894366
	.quad	2652629676209366276
	.quad	-2618897267209836534
	.quad	-1391624099447607741
	.quad	6266720893662254540
	.quad	-5344604120328402742
	.quad	5249314164321788611
	.quad	7157525732140787612
	.quad	-3065466614513637390
	.quad	-1181718815442841263
	.quad	-873243641110003496
	.quad	-7878992122015263200
	.quad	-7980719803264906846
	.quad	-1308016440825640830
	.quad	-5794176418951754498
	.quad	-4582632635443992411
	.quad	2552332838857882141
	.quad	3739570066357761968
	.quad	1439381288436968019
	.quad	940679263188661008
	.quad	-3793386907991411266
	.quad	-3006823276361707943
	.quad	-9031156818198994122
	.quad	-331707019031828938
	.quad	8165849408798239027
	.quad	-1077356974041979209
	.quad	-827677616582872801
	.quad	-2451362527992101793
	.quad	1786382825080504574
	.quad	-8903668575475555354
	.quad	-5686310346949444164
	.quad	8102166083184507574
	.quad	-536813506764905690
	.quad	431368208339745914
	.quad	4912534743471772274
	.quad	8649149223282317557
	.quad	7756351751136698462
	.quad	-206972001699812165
	.quad	-8629237494760327057
	.quad	-68710405978751196
	.quad	-1652622933642988740
	.quad	5288247581483071333
	.quad	-6044440556326623497
	.quad	6158128202723140604
	.quad	4098693427686917113
	.quad	7757537975160646809
	.quad	-3124896969018918632
	.quad	-4063340061579197770
	.quad	2289620874319746135
	.quad	-1154199896825546887
	.quad	7173547907638407008
	.quad	-7399605252034186539
	.quad	8918121441180891972
	.quad	26692501222219426
	.quad	-3198331021009227638
	.quad	7305399157133896461
	.quad	7065644238942265367
	.quad	3949166834387057064
	.quad	-4268495867001536009
	.quad	-330173242578913560
	.quad	4202062495184063747
	.quad	-4017014411305442993
	.quad	6283092944170277871
	.quad	6555133169274617435
	.quad	-7676815868042369055
	.quad	1670074450796631778
	.quad	-7198117024651723766
	.quad	2031270890855333638
	.quad	-1464647631280110965
	.quad	-1760439674860915716
	.quad	5829842366016448839
	.quad	-4335663975236577433
	.quad	-5881442195966219397
	.quad	1685254887702201709
	.quad	-7808644499729542486
	.quad	7366823613736453699
	.quad	-7935563720772414055
	.quad	1746174228462704241
	.quad	4043926927622224881
	.quad	-5065720848706015636
	.quad	8954926448610202770
	.quad	1141089703092710271
	.quad	-6220700365237515809
	.quad	-8828146937747503187
	.quad	4323708363301758294
	.quad	1934098864729515110
	.quad	-6408301734911825166
	.quad	8373847126955513333
	.quad	3300151407444969023
	.quad	-2558617121269754702
	.quad	1426880256839266097
	.quad	953459069663016720
	.quad	985640082399754160
	.quad	-6964422460289972181
	.quad	7381057696005265006
	.quad	2016802112307085846
	.quad	-3633343203742404426
	.quad	7316805911300200122
	.quad	1980797488023277973
	.quad	6428576619669681259
	.quad	7657770350257045071
	.quad	-607330414313388210
	.quad	4702043961312931605
	.quad	8200928556018997183
	.quad	-5164367212965740812
	.quad	-5441129618291883977
	.quad	-1027714441917886977
	.quad	3578441995393871207
	.quad	2258864589639885281
	.quad	4303280567577724992
	.quad	7197482050807868524
	.quad	4335571359706623335
	.quad	7981511023477502169
	.quad	-2588262258107802304
	.quad	-3687999192752941316
	.quad	69860179712677448
	.quad	-2981747418251321136
	.quad	-3351392855572956062
	.quad	3792171085643513009
	.quad	3187131848664503636
	.quad	-5733411284118764552
	.quad	6278731049699775392
	.quad	1597379696359884724
	.quad	-4850716333545013558
	.quad	-4169348380739300443
	.quad	-3734773804678069609
	.quad	3089973769915594058
	.quad	5136363984148344399
	.quad	-87858045113503008
	.quad	-4342273504117713477
	.quad	7419783486133307338
	.quad	-2773732998045175606
	.quad	-2927518261477663073
	.quad	1336371877669824820
	.quad	4354970830277120843
	.quad	8744720488959125220
	.quad	-904951154108404681
	.quad	-4147483969625438801
	.quad	-2364189778995952964
	.quad	-7276888587892284306
	.quad	6220245240076352465
	.quad	-1497337545426543757
	.quad	6787760572247418387
	.quad	505444476568943747
	.quad	-3432948607421036570
	.quad	-9052711285516655595
	.quad	6241520839528863480
	.quad	-4906131683001499330
	.quad	-8233389088222067716
	.quad	-7080372658121837750
	.quad	-8111806496277288572
	.quad	-5078353238455296471
	.quad	-4993098753991962856
	.quad	6303196127329783110
	.quad	1204334422768264234
	.quad	-353007059216255972
	.quad	-3227334635197015915
	.quad	7061161772052928485
	.quad	-4263494056198383659
	.quad	4384475014599229301
	.quad	8251140470271559549
	.quad	594280154752755747
	.quad	-8604966983446155725
	.quad	-225203854470050081
	.quad	8536815826205784644
	.quad	-1118234627660951312
	.quad	-4523715264481293285
	.quad	-4462122938925011134
	.quad	-8191760803029921369
	.quad	-989612367380321953
	.quad	927850905006752032
	.quad	-5558847223436730737
	.quad	2041647784771048011
	.quad	-8237466648238697393
	.quad	3520320577710585
	.quad	6865923800150703514
	.quad	-2065420740590899830
	.quad	2347826086975948322
	.quad	8561754334318732548
	.quad	3952205381894147962
	.quad	-7075297964302407679
	.quad	7231851263356642380
	.quad	-6834231705171248478
	.quad	5227214975837085115
	.quad	-7709179025269844450
	.quad	6333629542995218640
	.quad	-6060018152151743978
	.quad	4359366015227662437
	.quad	-1328407175905769180
	.quad	643609943619076406
	.quad	2461137850461045097
	.quad	5716695838752599509
	.quad	-9069583269675690264
	.quad	6659956135750590764
	.quad	4864360441330378010
	.quad	3772067962000745672
	.quad	4436468403847408320
	.quad	-7834144458526874036
	.quad	-4707988682635415347
	.quad	-4781186287532125209
	.quad	14568219921857752
	.quad	2691062926825113708
	.quad	-3780228335331983641
	.quad	-8079271969296273827
	.quad	-5313948559933047732
	.quad	7033388244929029851
	.quad	6828114996068298183
	.quad	-5814940939281765631
	.quad	-8853756014113151658
	.quad	1050588836280879226
	.quad	8478002127898457067
	.quad	5392936538333570234
	.quad	-7920451970063605615
	.quad	-4314249943840127997
	.quad	7207059073717065545
	.quad	283545293669631007
	.quad	-2601732473025568090
	.quad	5081287846871250008
	.quad	-514889093005023454
	.quad	-5309479344297313989
	.quad	8204297513401599937
	.quad	4519238248532496297
	.quad	-5708858753109915954
	.quad	378989707202047421
	.quad	2681471021201111139
	.quad	8449234254256695670
	.quad	5760220346486651601
	.quad	8364400939527235175
	.quad	7959571573625351093
	.quad	-2597724785715017081
	.quad	6982609389731776566
	.quad	6287382484291579264
	.quad	-1950598729577276449
	.quad	-6384437843999837841
	.quad	312030175316686885
	.quad	-7160918792646129429
	.quad	8303154821035830425
	.quad	-2689427291206139863
	.quad	-7237896122190797938
	.quad	-6216290670508388070
	.quad	-1008481240717752157
	.quad	5715824863950486712
	.quad	2792793659861037222
	.quad	3631886121917081375
	.quad	-4160332885862149657
	.quad	1546298555066841633
	.quad	4790996540037176549
	.quad	-8905251921490064774
	.quad	-6141875574748796007
	.quad	-7019968287928461287
	.quad	-7652846044584190461
	.quad	8015650321621584324
	.quad	-5171983779883742369
	.quad	-5644789054666467491
	.quad	-7098894914190442795
	.quad	3714608359252723126
	.quad	-4896016648494766826
	.quad	-6606540882410442242
	.quad	5492810792922110153
	.quad	7622290708672108599
	.quad	-6734783253497517265
	.quad	-2962838733051390831
	.quad	-4165701719548526027
	.quad	-3994111647518680351
	.quad	-8279894389465340300
	.quad	66445170272949941
	.quad	7891861556982054814
	.quad	7845028925029834413
	.quad	2081007442542219215
	.quad	3212771673311408731
	.quad	6466691389869033989
	.quad	956698728828172075
	.quad	-5105996356268054712
	.quad	-588939326336972227
	.quad	6162360029275687326
	.quad	4515118079011756015
	.quad	2707600004537972061
	.quad	-8878676531284619127
	.quad	6653095835003873916
	.quad	-3060206844853380771
	.quad	5554400650840004097
	.quad	8730987770201233904
	.quad	-3984142289199040822
	.quad	7513147443397373299
	.quad	-5059687638760105393
	.quad	3076669562371096248
	.quad	-3716718738070406785
	.quad	-6016231153637743503
	.quad	7615030210991194031
	.quad	-5109827209943197065
	.quad	-4826761968227210374
	.quad	9117022181381115294
	.quad	4352233736903521636
	.quad	-2868634419321437379
	.quad	2991007746661047238
	.quad	4758348965352231059
	.quad	-6595067431435811179
	.quad	759056471481584896
	.quad	-525786298754897082
	.quad	-1429415771192331752
	.quad	-3129503407591339922
	.quad	-3243057309591147931
	.quad	8013985075095334677
	.quad	-2647252992662484992
	.quad	-3621786531227551403
	.quad	-1163242343421499285
	.quad	-7742679167530148484
	.quad	-1476712047663643250
	.quad	4739834790205788500
	.quad	-6841966478371943737
	.quad	7222013010088766249
	.quad	5472916641327283117
	.quad	4172262758310864960
	.quad	5724466588558015820
	.quad	1116300519629843659
	.quad	6369714546805817281
	.quad	-629921231150554031
	.quad	7365226560564176216
	.quad	6580776939665457454
	.quad	6310813908021737206
	.quad	5914106438012325582
	.quad	5816791512528841091
	.quad	-3848151292528284790
	.quad	7657465348462358425
	.quad	-8140640016097706996
	.quad	5666288783522319114
	.quad	6653078273702921060
	.quad	5052265693839031825
	.quad	-7057202762198433624
	.quad	8783337578721795382
	.quad	2960805731497779043
	.quad	-748069330645139537
	.quad	4138691754864315701
	.quad	-3962417945604155263
	.quad	1137554879802507686
	.quad	4693724461058344589
	.quad	1223974024678697997
	.quad	-525032773029765744
	.quad	3145839574562174026
	.quad	-6757729164741404299
	.quad	6970270419172475743
	.quad	-2957550648755230795
	.quad	-5571990027291634799
	.quad	-1137459967267050905
	.quad	-5875057406865219024
	.quad	6467161130681993958
	.quad	-3637841312902224144
	.quad	-4960786501236560173
	.quad	-1858456748686798168
	.quad	-4666882822930186946
	.quad	-5851363267383808867
	.quad	-1945914536797642276
	.quad	-8024772814911965183
	.quad	127520032102313559
	.quad	-3591299446688003045
	.quad	350472948514654865
	.quad	2818947366768013947
	.quad	9092811430167734050
	.quad	2436839220088724709
	.quad	607744248078497692
	.quad	-1151210630254002167
	.quad	-991666616563896023
	.quad	413168823279983568
	.quad	7507298484070483059
	.quad	-1006556142959754201
	.quad	-5260811594737713247
	.quad	878554143091685789
	.quad	988545131525694095
	.quad	8425452536955234368
	.quad	8379122544705519726
	.quad	2169609511637578036
	.quad	-2651729078096313405
	.quad	-4156160834112197728
	.quad	2490895887909073495
	.quad	-7315751086412229744
	.quad	-891744286105184528
	.quad	3420129662095546057
	.quad	-6973957637786268889
	.quad	-1577030597021699389
	.quad	-8333538167502183878
	.quad	6871029420400966525
	.quad	-361813988396368491
	.quad	7697791244035857383
	.quad	4898432645224630025
	.quad	-4158373930653676899
	.quad	1612854169681754742
	.quad	-5845171415183470149
	.quad	-1083228972400491598
	.quad	6261390299285707953
	.quad	3845923998958193342
	.quad	1836066561066148646
	.quad	4754027831640637759
	.quad	6843218202291311421
	.quad	2824442247139867348
	.quad	179807201887702921
	.quad	336332709803807486
	.quad	594841491983637392
	.quad	6833669613882604896
	.quad	-5078449383392684820
	.quad	-6515912976929704199
	.quad	84933793179193823
	.quad	-6523072905236179075
	.quad	76218599287171535
	.quad	-5037556598414610945
	.quad	8980137876800891842
	.quad	-2587075477493902859
	.quad	-6483130147574075787
	.quad	1452129846834447524
	.quad	-7378711239280847538
	.quad	-4485995678669762918
	.quad	-8379690655391150058
	.quad	-633755529887175888
	.quad	-3213983259637749539
	.quad	-4604242977110171157
	.quad	3671733556147001113
	.quad	-5243219173536385834
	.quad	272540603570747136
	.quad	3611055432608023146
	.quad	6918691470400611896
	.quad	-609001203698735487
	.quad	1648494965740899920
	.quad	3588207345672565427
	.quad	-507499593985724584
	.quad	-3617391274115079200
	.quad	-3072443429885975584
	.quad	-3685233534870303759
	.quad	7690459338464093131
	.quad	5772729825113591748
	.quad	-7071512131425125137
	.quad	203453204386582857
	.quad	-2567756818619604393
	.quad	7225911725542922205
	.quad	-8575492543268056790
	.quad	6397787865510242806
	.quad	7692070443653343200
	.quad	-3411682843778965681
	.quad	453017670704522761
	.quad	-5177245834908420641
	.quad	-9064798330470028558
	.quad	2560842189862328725
	.quad	6461599464735341542
	.quad	-6378920066362534629
	.quad	254830492191366350
	.quad	6957578514194452023
	.quad	-4572266386941431185
	.quad	1710203733179211993
	.quad	-1529015400849198311
	.quad	-3937188756081447446
	.quad	-157376676602662949
	.quad	4627233922482553882
	.quad	1454732094825513429
	.quad	-5042283217365175753
	.quad	-3831524678517468691
	.quad	5073170128236689058
	.quad	-5003121105766235781
	.quad	-108309560527077637
	.quad	1950388817118151842
	.quad	-6827340071932902587
	.quad	-1928461810444023797
	.quad	4991783219043241251
	.quad	4422287776092818981
	.quad	-7007884272203973583
	.quad	2832377915020322340
	.quad	-35591632613205135
	.quad	-9158027770646114439
	.quad	-6816797186315110411
	.quad	-6393722444112584195
	.quad	8354713826680443798
	.quad	-4172996759476476053
	.quad	7429858322771356726
	.quad	-3466112170494119555
	.quad	1315851640620840054
	.quad	6267553442197156930
	.quad	2747310929531425014
	.quad	-2332075781231026354
	.quad	1099864823629157655
	.quad	6998959624229307637
	.quad	-3199338963873975457
	.quad	4761269564581682201
	.quad	-7533271915767434719
	.quad	744579049394035287
	.quad	-9195703646790068179
	.quad	-7005978033722665540
	.quad	3208775897110301169
	.quad	-5707975230994530449
	.quad	7684774007648906930
	.quad	-3208601041326408749
	.quad	-4174097043797688783
	.quad	294886053809673680
	.quad	19455077152910776
	.quad	-6935578500125939762
	.quad	3434316897382007970
	.quad	2429790329636743617
	.quad	-8120046986667018842
	.quad	-2447364035122477454
	.quad	3392561582838906477
	.quad	2834571760007128637
	.quad	-5353397019652920272
	.quad	-7714147375833504070
	.quad	-7514391103663350117
	.quad	5875690226460998551
	.quad	3699681560657289718
	.quad	8665743594825198441
	.quad	-8214654345222249144
	.quad	-2782171774976459647
	.quad	7267222702489958195
	.quad	-7894650719823432920
	.quad	2399232949134869057
	.quad	-2038274954767598339
	.quad	-1216965848147367205
	.quad	-2456487304760309307
	.quad	-7751837732022966780
	.quad	2816242351659628719
	.quad	-7652580928222715956
	.quad	-2844839099376447614
	.quad	-5176644665831512020
	.quad	-6877711147151747270
	.quad	7759575992876193458
	.quad	8239088820951102451
	.quad	-8813136346023592552
	.quad	-8670834840791740275
	.quad	-6148822342210936710
	.quad	-3690643852119505067
	.quad	-7616267506528863248
	.quad	-8443669377912191432
	.quad	5589380226277136479
	.quad	-3493782443322834529
	.quad	6354514974022878533
	.quad	3426762794422332369
	.quad	-495929019428953873
	.quad	-3506466670466573021
	.quad	5228416958727036186
	.quad	-5912444017449640238
	.quad	6859045937063682340
	.quad	-1885025319981640204
	.quad	-9019154998933526769
	.quad	4167904055656501509
	.quad	-8290053028455988380
	.quad	-889647512102628567
	.quad	1742616860124435111
	.quad	5755060029289879130
	.quad	-5184664700492729609
	.quad	-6104315405220853609
	.quad	-7361296212253660033
	.quad	-3887346185964086697
	.quad	8151641931803485088
	.quad	-1717381750013668670
	.quad	-7734009865790478142
	.quad	7815672121152520009
	.quad	-2578678776243149589
	.quad	-341265906521166743
	.quad	-258826915995478493
	.quad	6595127332065835954
	.quad	-2997011687333827059
	.quad	370009038469630931
	.quad	-5396930125526043199
	.quad	2608283980694804503
	.quad	460213244904555927
	.quad	-2954996033207504540
	.quad	2362593181226831688
	.quad	-2977914597971922333
	.quad	-4132884039244296469
	.quad	-3636741904693068750
	.quad	-5599482599416447236
	.quad	-2511108409554071910
	.quad	-6489883009158920470
	.quad	-6703153566761325969
	.quad	-2473651207493802900
	.quad	8269726904881958353
	.quad	-2806781681186110088
	.quad	-3275326255349482604
	.quad	5835546988713532433
	.quad	-7072430986389588648
	.quad	-3573269872205029788
	.quad	7815892299351314681
	.quad	7113899783238941873
	.quad	-3529028178184557278
	.quad	8215635448389931121
	.quad	697574732547715887
	.quad	6808382625477235955
	.quad	2019454237123684751
	.quad	635994846565281004
	.quad	267238400886589787
	.quad	-5836743240075540435
	.quad	-7638323810484122633
	.quad	5828552048937106828
	.quad	7365002025428600048
	.quad	347149315813636352
	.quad	5628861027036006226
	.quad	6577320488150071660
	.quad	-6414810839117174849
	.quad	-1333244340054210864
	.quad	-4164756965699729539
	.quad	-666994264098004522
	.quad	-5822821475773749018
	.quad	2605212343977737441
	.quad	-53273049523361803
	.quad	2302707671753008158
	.quad	8606549841034095192
	.quad	3842822953634987820
	.quad	3094721493917442423
	.quad	6408313759447502937
	.quad	-4960379873454824329
	.quad	-8773328426417058564
	.quad	5487120274097689076
	.quad	-831376166591203359
	.quad	2673312213504165110
	.quad	8995407322457438561
	.quad	-6538842217120019884
	.quad	8611586864461246844
	.quad	-4281083448553549524
	.quad	1678313407013300858
	.quad	-248685280631774085
	.quad	3008704521070494148
	.quad	-510165322844734405
	.quad	157346791535572050
	.quad	4570988619801268844
	.quad	649412940503636724
	.quad	8786534823812926948
	.quad	7066389095888678039
	.quad	8428319968753383455
	.quad	5618199284733449074
	.quad	3075457931381134654
	.quad	1623796305465548059
	.quad	6298658223604589703
	.quad	5155813601057889962
	.quad	-5584024123618257558
	.quad	2191808101092881088
	.quad	128992526124656216
	.quad	738676021426139131
	.quad	-8289420926066870058
	.quad	-7224784129856431030
	.quad	-191254257158838269
	.quad	-7561512414641123967
	.quad	-6342346678589886593
	.quad	-3936361179888744991
	.quad	-6103277747300606808
	.quad	4468646201174717696
	.quad	-418441407146489709
	.quad	26611844485539154
	.quad	-2573399566458433249
	.quad	2424791673421318778
	.quad	-6544814861434220585
	.quad	-552359505708868223
	.quad	639977162375829440
	.quad	-5505372079642612825
	.quad	8070131200643577748
	.quad	-8472860986873097720
	.quad	-6210110027201490162
	.quad	4825321231728269705
	.quad	702320805859398894
	.quad	2466516506113091472
	.quad	7807314037577389852
	.quad	6962279694036630114
	.quad	5032326650533173641
	.quad	4909722267035707282
	.quad	5364854426558471467
	.quad	-1122475195967424026
	.quad	-2791004303527069052
	.quad	7707807226411417919
	.quad	-1836880525010286266
	.quad	-807372437012123488
	.quad	8755472387723764172
	.quad	164779854477783265
	.quad	-8732544831952786002
	.quad	3491355372893948450
	.quad	-763001618672584453
	.quad	-3430697127757146646
	.quad	5506907996877025336
	.quad	7161254886831444057
	.quad	6443790637302691776
	.quad	-9219057577299497350
	.quad	1107431539006941094
	.quad	6684076479428133321
	.quad	-6743603432569159494
	.quad	-1435247635711190754
	.quad	8712807047482085030
	.quad	4352072198797863865
	.quad	-8877682610046710235
	.quad	43041386963753969
	.quad	-3652769191183221340
	.quad	4367655759244616535
	.quad	-8963849459950721864
	.quad	-4185555569188773761
	.quad	8473111436093658596
	.quad	8090231200552354583
	.quad	-7920577477124931203
	.quad	-3837608550201996148
	.quad	-3089941230265588555
	.quad	-1408482545633255448
	.quad	5726121548254040395
	.quad	-4850985441247213320
	.quad	-3931580407559373699
	.quad	6720823780841221770
	.quad	-3375308409365942280
	.quad	9016075014492765983
	.quad	-1565466463873234730
	.quad	6969993988115170067
	.quad	-3027039287274814546
	.quad	-8019664899744638288
	.quad	7438214823618799052
	.quad	152025452904676403
	.quad	46743960498371648
	.quad	-7642818320032396769
	.quad	-138936462910248043
	.quad	7446573913022077340
	.quad	-738586863509944045
	.quad	-606468416561775144
	.quad	-8955360630865002872
	.quad	-7197902127040184014
	.quad	6385999296638235550
	.quad	233788301393762783
	.quad	-8792562345104256972
	.quad	-2371154825651036982
	.quad	-924415350815694028
	.quad	6192318265739117644
	.quad	2237560873338659735
	.quad	6196281024752145753
	.quad	-4074386080138928718
	.quad	6759034387099889180
	.quad	-1499458842115834160
	.quad	6834201146621233604
	.quad	9025956220928377277
	.quad	-3513395305560135891
	.quad	8499210770493553168
	.quad	6778840616148281272
	.quad	-5163906207257539128
	.quad	-6439417801534690563
	.quad	-7274004211690333342
	.quad	-3244248708406901905
	.quad	8797477675597086120
	.quad	4565794561185951196
	.quad	2479165985081095467
	.quad	6788643636264532926
	.quad	-7654548157915406219
	.quad	-1408958704506481447
	.quad	-8913923847200887986
	.quad	-1331564700097159243
	.quad	-6095780158311369966
	.quad	5531351359199412867
	.quad	-5720228873173831586
	.quad	-3320893656902316156
	.quad	5617940801644958365
	.quad	-2203659468030231994
	.quad	-4129289067268146949
	.quad	1150025403144907455
	.quad	-7721859451242071686
	.quad	8970494048948687610
	.quad	8961615044834054753
	.quad	-7270597391214598444
	.quad	-4012396782749931699
	.quad	870991453120499097
	.quad	-577679523104012085
	.quad	-6116331796723536376
	.quad	-8953990799402041540
	.quad	-584185327577383385
	.quad	4941846130090682869
	.quad	-1315186418764543390
	.quad	5312800819142473968
	.quad	5818269467205924209
	.quad	-4988162025850104594
	.quad	2683428091382447153
	.quad	-5489856119244820952
	.quad	5888310395147193227
	.quad	-6874232991356538509
	.quad	2317981305780728503
	.quad	-5924332255812951201
	.quad	3812333827905935621
	.quad	-4402676416429847295
	.quad	1294816308137122451
	.quad	1581122092788182848
	.quad	1807583328853648114
	.quad	-6811864160590588035
	.quad	8455914066961704694
	.quad	-2252598298247399515
	.quad	7016493239022143576
	.quad	3967106695742543297
	.quad	-4915872246818080170
	.quad	-307949101139606156
	.quad	-7649385600737486865
	.quad	-1228679172463429255
	.quad	6075667007081054773
	.quad	2175883638733466173
	.quad	6128975170568091249
	.quad	-4842124342226388233
	.quad	-540199863267310038
	.quad	954812041404803933
	.quad	-6625991074887607749
	.quad	5623379642132478491
	.quad	-6779936580588810796
	.quad	7241997274572162616
	.quad	-1281733564714060926
	.quad	1769225877906480182
	.quad	3814296306467163522
	.quad	1913823003062817434
	.quad	-9122003191684203718
	.quad	-677100021745532333
	.quad	-8213380880960762383
	.quad	5143108016304555111
	.quad	-5358506540208428708
	.quad	-8805955332857466988
	.quad	2219477057795407104
	.quad	2149028638526550801
	.quad	4103026227392115268
	.quad	4530189420124853233
	.quad	-5889483500198764004
	.quad	61695772475103722
	.quad	1254301120366369029
	.quad	5275070262973371046
	.quad	-4760195106918891883
	.quad	8618275646691099674
	.quad	874808940080593884
	.quad	-3195922377079297364
	.quad	-3538844750971737893
	.quad	-348810111818969459
	.quad	-8788221587422816
	.quad	-6473887730237291692
	.quad	9220217539983834844
	.quad	-4243744863130997271
	.quad	-6509930737599062619
	.quad	3878433838529606580
	.quad	6540053284493149566
	.quad	-7836464748966158053
	.quad	-4366891263789449550
	.quad	9176732841330794388
	.quad	-4159432163886697653
	.quad	7146204303626670196
	.quad	6401008029138830249
	.quad	8134013398851838527
	.quad	-5599109953287756122
	.quad	9172307248423930720
	.quad	-6135861375583409558
	.quad	-2743524285662972272
	.quad	5979886932500863997
	.quad	820888090788934705
	.quad	2489963141077269205
	.quad	-4707888419055110467
	.quad	3271444877754947516
	.quad	4491566310237638494
	.quad	-973661958012168368
	.quad	4505223789965761294
	.quad	1803574756017423259
	.quad	6086669784963704872
	.quad	-925592908763827164
	.quad	3932095990999808157
	.quad	-1983772855182608084
	.quad	-1080378295207919874
	.quad	-4837817506375661102
	.quad	-336105227212979387
	.quad	-741437860803086393
	.quad	-2419764337436341443
	.quad	1222343790928490335
	.quad	2199405396044383670
	.quad	-4365824186495959468
	.quad	7341303626667347624
	.quad	-6661862541012894098
	.quad	-1139001162623401060
	.quad	6036132721599132043
	.quad	-6279637576644244675
	.quad	384410277485090481
	.quad	-8014295122546399550
	.quad	-7248931392874156740
	.quad	8086651599339569446
	.quad	-6239098884228795851
	.quad	931908345547518869
	.quad	2909258739251639345
	.quad	952435807453547620
	.quad	365087582058500829
	.quad	-6480935520010302121
	.quad	9053161486270215669
	.quad	5185298469085517497
	.quad	-4078489571825202444
	.quad	4159673891028400009
	.quad	5103363490033677426
	.quad	-4312680501485075273
	.quad	4952962631096373021
	.quad	-6155814821241584171
	.quad	8221886085465431907
	.quad	7249683043763645677
	.quad	7777952187988036460
	.quad	-2035745786058826346
	.quad	8431940649770652832
	.quad	1634300281296373076
	.quad	-4629670870302552257
	.quad	7220729284169210756
	.quad	-3538336575105950134
	.quad	-4910519084088849984
	.quad	1615171540711527931
	.quad	2063856048260214664
	.quad	-7824162638292077057
	.quad	-2068238307978783584
	.quad	9151239081275171075
	.quad	7423262711463869517
	.quad	8947041190000308514
	.quad	3941676688884804841
	.quad	-6053751973627244464
	.quad	463749365390065202
	.quad	-3562242902480516674
	.quad	-8507821162439941295
	.quad	3044114640006667382
	.quad	9210757173367370336
	.quad	913614345685647654
	.quad	7152330872435580872
	.quad	6209097141785715097
	.quad	-99952405316287344
	.quad	-4398579705294179916
	.quad	-1497987836285805299
	.quad	-4815392515584655045
	.quad	5943244478563944662
	.quad	-6199024504235076264
	.quad	-2022497285874840596
	.quad	8900581912704145587
	.quad	-5297007883250440665
	.quad	826053987737908694
	.quad	-6651839179608611859
	.quad	6855676470217754770
	.quad	-8929594361422927291
	.quad	-7366364042640579936
	.quad	667425509348698033
	.quad	6136243307299269825
	.quad	5326577850303193160
	.quad	-2326553795363794169
	.quad	1982981965726975383
	.quad	8744025105981340173
	.quad	-2739668502226950826
	.quad	-6624904617641747147
	.quad	-3812453481673624201
	.quad	6064738785036742955
	.quad	-6680186934411798331
	.quad	-145999888218765546
	.quad	-3143190754036141932
	.quad	6248537076467230900
	.quad	2878368886092041889
	.quad	1348685239716178072
	.quad	-2611000064273200881
	.quad	-7702676800203453435
	.quad	-8423073036048941930
	.quad	-6524674321177104886
	.quad	8639142536015072598
	.quad	627986052551686532
	.quad	-6086921948236791242
	.quad	-6179492875511706713
	.quad	6541221764315149554
	.quad	-8575799803068687953
	.quad	8247005197979896560
	.quad	-1071021999891460278
	.quad	1410494711917079674
	.quad	-3047289967610374748
	.quad	3988744407816581672
	.quad	3596277710300384050
	.quad	-3317630359075628118
	.quad	1554582462382333698
	.quad	3164553872715651710
	.quad	-5717603709726803190
	.quad	-2080016037999739832
	.quad	7497314767137070939
	.quad	3474631575262952693
	.quad	-1609024490157452878
	.quad	8273554325133946231
	.quad	1541597533738359269
	.quad	4129426307615288703
	.quad	-6770693040064743274
	.quad	6153310969984108942
	.quad	-1526125412802472721
	.quad	7553004709688610164
	.quad	7052662341422904224
	.quad	-8945779434512264406
	.quad	7655552724660781336
	.quad	-6793217376223649687
	.quad	806137495370302210
	.quad	-7444723122432138186
	.quad	-8819891785609310305
	.quad	5079970084189211590
	.quad	5180346125456136747
	.quad	-156834213163452211
	.quad	3186488226518137338
	.quad	5215769978330904985
	.quad	-7512158599148079741
	.quad	1580252915008703689
	.quad	-6798807862300122743
	.quad	-3742281419898017751
	.quad	-8441614498427163691
	.quad	1526194796943187368
	.quad	-7540417266220647308
	.quad	-189865383035115809
	.quad	-5353169528314397613
	.quad	-6093933847167184210
	.quad	-1453141499141374307
	.quad	1069800939886955479
	.quad	4738427816858124794
	.quad	-7974106900614898576
	.quad	-2899989370154637303
	.quad	2282429945622138235
	.quad	8544300996913391914
	.quad	4281195612627157599
	.quad	856403695228904943
	.quad	6282537641741252041
	.quad	-7802296779570727633
	.quad	-6715113842675436873
	.quad	8938690284247335116
	.quad	-80066137468623877
	.quad	-5432944324182946739
	.quad	3628836420131514822
	.quad	-2223554673029363201
	.quad	6345021486831815523
	.quad	-3070952780161996645
	.quad	249934818439718618
	.quad	2767553653687816613
	.quad	-6605751796266448341
	.quad	-8460796046121941709
	.quad	-3970750798721765511
	.quad	-3155927059437106737
	.quad	8012864091692295774
	.quad	7591940515496590516
	.quad	-9147124948383524768
	.quad	7297256232167521068
	.quad	-585539701309753989
	.quad	3100022958796565106
	.quad	-3132973194509347003
	.quad	-8544380824832276980
	.quad	-2670548828916825555
	.quad	1935342462634574355
	.quad	-1874236724287925014
	.quad	7503944294807242065
	.quad	7454248748618678609
	.quad	2837392985175901475
	.quad	-1952176442559776104
	.quad	-6147501795211242351
	.quad	117303082144788574
	.quad	-63807558143849813
	.quad	7941141688858846015
	.quad	-3522920715410183658
	.quad	-2765655034636520864
	.quad	-1568022988288338831
	.quad	3933697483394042011
	.quad	-4437090573540090496
	.quad	-5463989577064873103
	.quad	-3860709428272535854
	.quad	-319911530942106642
	.quad	627541781236454235
	.quad	3801503508930355635
	.quad	-3792059925927459532
	.quad	4179096323459534629
	.quad	2878536922988449879
	.quad	8819365314325664735
	.quad	2696760638950720974
	.quad	-7089564651908722011
	.quad	-3715934264452991033
	.quad	-2169485347283821017
	.quad	-5257054797963581024
	.quad	-4676959122279242172
	.quad	-774851796187411977
	.quad	1384260767972381005
	.quad	7623504419117295292
	.quad	-7248813840737976376
	.quad	-3579274831533719827
	.quad	897596747715880677
	.quad	3892483173599058531
	.quad	-4993489463744388536
	.quad	-8154074128072425698
	.quad	-4851181012035058817
	.quad	-145414004995278963
	.quad	-1465670475537532346
	.quad	4022713583718555211
	.quad	847970754090163894
	.quad	-5578750456540084229
	.quad	-8425602451844917751
	.quad	-6821303309593617372
	.quad	-1074519512292824627
	.quad	-4989401707259080481
	.quad	1569549943944038472
	.quad	-693085716627749633
	.quad	-4353253995716510757
	.quad	1282770820260996510
	.quad	-2043950079380113946
	.quad	-3192030418584815152
	.quad	6283719686609422435
	.quad	5417864180357938798
	.quad	-4436105264103754370
	.quad	-7573053473003680093
	.quad	-3432504606578961322
	.quad	-2681283854164270961
	.quad	6048061577845125750
	.quad	551123410800147542
	.quad	3776077075927568503
	.quad	6626659642670089033
	.quad	-6479591537483548555
	.quad	9185304317195769958
	.quad	5112782518139266177
	.quad	-6981396185332522439
	.quad	102528809454945465
	.quad	-4980941670829565576
	.quad	-5669248493913174503
	.quad	-7195601815197814865
	.quad	8312965145580158560
	.quad	223338793373356823
	.quad	813747086573652373
	.quad	534790745256052224
	.quad	3658554932030960904
	.quad	-1680004154457439959
	.quad	-5207184382479160482
	.quad	4041048590536682866
	.quad	8571027333376993146
	.quad	7092152432287739283
	.quad	6134761235972188163
	.quad	8683917864398698144
	.quad	970857087874389489
	.quad	223170064814687698
	.quad	-5508028070731500499
	.quad	3848816111228150666
	.quad	-983094754092169150
	.quad	-5560341884221084320
	.quad	-8840801716576096130
	.quad	-6174054811975400183
	.quad	-8529935615400568777
	.quad	-3500743515772200189
	.quad	2744771204431983317
	.quad	5531599096261016401
	.quad	-3665190040427686846
	.quad	-3589414970221357719
	.quad	6459579633570594506
	.quad	7819192408778151636
	.quad	-4439328855873950257
	.quad	2879267873712146919
	.quad	1770061136847768757
	.quad	3497337219301780129
	.quad	-1381738485308245037
	.quad	7675751531915094916
	.quad	4337540836976665798
	.quad	-5940875487283489761
	.quad	-1516782128589434490
	.quad	2051390908414072772
	.quad	6915768622644115962
	.quad	-6751734610823822216
	.quad	-175943669111794667
	.quad	-297772698532625012
	.quad	-5404509660493651691
	.quad	7203636080550532852
	.quad	3875154058488238281
	.quad	-6434014570483004974
	.quad	4811951115754240681
	.quad	2652621264600062520
	.quad	1108958391967017223
	.quad	2508980100759035797
	.quad	9023233544151778447
	.quad	-7263186486068006470
	.quad	-7720016792868792097
	.quad	-4288355686168049143
	.quad	7732457758470092838
	.quad	4400033732159574794
	.quad	-841839236886392983
	.quad	6081972574159129716
	.quad	-3449241829180101048
	.quad	5281126708635261997
	.quad	-1019031068918394712
	.quad	7189877122763725514
	.quad	-3790661323158557950
	.quad	-4938437158960131496
	.quad	4564443784575285318
	.quad	-2996177082051904601
	.quad	-4427060742157447468
	.quad	7751003035652012225
	.quad	960642801291306739
	.quad	8090950240610420462
	.quad	8677461174191226041
	.quad	-3154953088643334098
	.quad	5087888772897358108
	.quad	-244544523130756560
	.quad	-1782375041855085652
	.quad	-143916544329562708
	.quad	3000786186847252872
	.quad	4621870789074053275
	.quad	2699296606556701282
	.quad	-936687390147814542
	.quad	-3892008917654942750
	.quad	-8889803303005112787
	.quad	-7645575590710679183
	.quad	2280142648958056556
	.quad	4982572404720159279
	.quad	-1770887298037873824
	.quad	5206149706659263275
	.quad	7487490610359376620
	.quad	-7157711602715878879
	.quad	6632063912068589321
	.quad	2636493491900390721
	.quad	-7785040287955795052
	.quad	632562549005022913
	.quad	-3825014298971350945
	.quad	-1596535344911372713
	.quad	2650832773786164628
	.quad	8325244333065591089
	.quad	-754623730063358473
	.quad	2242845836784335580
	.quad	-9060032988423182312
	.quad	517979059098779699
	.quad	2170423741853171361
	.quad	-1853060663968579200
	.quad	-6488906338944356496
	.quad	-6816950021484640108
	.quad	6151564128343562574
	.quad	5997699850165665180
	.quad	8312408337514322006
	.quad	1583926568042847253
	.quad	396296174223428093
	.quad	-1682955324720929782
	.quad	-7839940371924910707
	.quad	2399987183687936561
	.quad	3641562114746393614
	.quad	8536687357022564742
	.quad	-3914198786747825858
	.quad	-3788412976177604715
	.quad	-5237093260830355030
	.quad	-762416073436317463
	.quad	-4111252332511979809
	.quad	591774495298244644
	.quad	3917745975267458863
	.quad	-1028814486888848291
	.quad	-3989938012322608759
	.quad	-2928973309608684967
	.quad	-5209310166216154747
	.quad	4990918623816750268
	.quad	-773711282970244341
	.quad	-2538809049406835554
	.quad	8613470231259845273
	.quad	-9100418020799404584
	.quad	-699566364906989678
	.quad	4490130127498754807
	.quad	-2528686686589254069
	.quad	-6708550860684107868
	.quad	-5581319251114038694
	.quad	3578088376651980089
	.quad	2099090184904384730
	.quad	5390164356505145744
	.quad	7526186952676085859
	.quad	5558830056981709467
	.quad	-4579338576900138904
	.quad	7002613759387491643
	.quad	-5412808520902584238
	.quad	67437088702121131
	.quad	1528641041740753990
	.quad	7001198041125832592
	.quad	6102137699349551632
	.quad	-6919260148617324814
	.quad	524299354929596469
	.quad	-7531652676945260889
	.quad	-6554589581892695423
	.quad	-6154054320865623174
	.quad	7706393383161142580
	.quad	7665969458279995476
	.quad	5829561192696462174
	.quad	339460305781155912
	.quad	5535652777947676324
	.quad	1216916140919282417
	.quad	343617165825197489
	.quad	-7639813014081688327
	.quad	3212291315152120591
	.quad	3351900116486367965
	.quad	8595828725191802110
	.quad	-2825666671972658058
	.quad	990043464005487163
	.quad	-6522995021679651341
	.quad	6005997194938248859
	.quad	553872289724742850
	.quad	4233907486949364371
	.quad	4276498796774568509
	.quad	-5040113367272243594
	.quad	1794559791341337291
	.quad	2386026063595321071
	.quad	9144724461940169335
	.quad	-5325556653088033062
	.quad	-1095047397484571125
	.quad	143495028693925520
	.quad	4590642171152119027
	.quad	8655406817079059692
	.quad	-8441236995753619504
	.quad	1341771626040412201
	.quad	8811044282831030571
	.quad	-1947334349941945812
	.quad	4410606711715015725
	.quad	3777508012859381399
	.quad	-7875594242079131480
	.quad	-4062351215078542258
	.quad	6230769057965924145
	.quad	6982427644490593208
	.quad	5211219672384700779
	.quad	-4098197958026926894
	.quad	5876199850746516331
	.quad	-49903487113790132
	.quad	1465795856184232635
	.quad	-9072227925748698442
	.quad	-6643718440133585180
	.quad	169998302526276425
	.quad	-871038304336955839
	.quad	-2581776587711115131
	.quad	6275335579777773653
	.quad	6618343913291326886
	.quad	8937267328619527653
	.quad	-1266645963252230563
	.quad	-5684846356564175065
	.quad	-2072034695726859387
	.quad	2545295070586009694
	.quad	-1080350212349684293
	.quad	-379407839450270301
	.quad	9181658491221440805
	.quad	-2258552069621289899
	.quad	-4777057560137451943
	.quad	2044092029751770484
	.quad	-8747018767566612498
	.quad	-6542024463729382921
	.quad	-1912129198539885681
	.quad	7741922265246726966
	.quad	4598799678731641621
	.quad	3709128065119417193
	.quad	-7503236719346116871
	.quad	5112580578083384621
	.quad	7308293641399229883
	.quad	-8633204298258084120
	.quad	4837144575100457648
	.quad	-4373223043701215822
	.quad	-6075019844742585160
	.quad	9185074727660313894
	.quad	7387427551441329556
	.quad	1866580457929037678
	.quad	-1770887980821278919
	.quad	-4565380366869679258
	.quad	-5208154587926711143
	.quad	-8156718505346250651
	.quad	-7558398382386743441
	.quad	-5466958021798622497
	.quad	-5088647609541745594
	.quad	-8416430519826048046
	.quad	2047964090310465728
	.quad	-4313053796639803101
	.quad	8287749071957055844
	.quad	-1625473492735120398
	.quad	-8122059190121966051
	.quad	-8794245886365379119
	.quad	2461802306013063247
	.quad	-3397893761668870973
	.quad	4775408960764274630
	.quad	-4068698859071080349
	.quad	-6159714216274190812
	.quad	-6617242359432245225
	.quad	-4812352071790917163
	.quad	-7889582106933336178
	.quad	5276873227503576794
	.quad	5852143548176983337
	.quad	-8787573241833895271
	.quad	4251587871822599596
	.quad	-6055465040575776834
	.quad	7346556824831912968
	.quad	2133114137534468833
	.quad	8694105814921565301
	.quad	1000087733076615381
	.quad	3478818915231998954
	.quad	-2505443277384417897
	.quad	6689458038550493645
	.quad	6689890587222755331
	.quad	-2588559977590070050
	.quad	539072856563341249
	.quad	914710961457560618
	.quad	8812677170938721854
	.quad	-931969910853752337
	.quad	-2614423889710716730
	.quad	898251865651859288
	.quad	-1572239912325900583
	.quad	-21577155773196267
	.quad	-5059472239713157063
	.quad	808054572728974308
	.quad	2281828182196149100
	.quad	-3826522827580200193
	.quad	9180327267531598726
	.quad	-235011086585852676
	.quad	-3751609747525022830
	.quad	6286357375481918851
	.quad	5139448292857468240
	.quad	-1734236724741681154
	.quad	1135927226669916744
	.quad	5921310820027200590
	.quad	2755242181069093228
	.quad	-2291146753240390487
	.quad	-1071615745459559027
	.quad	-5070053406539328249
	.quad	-5621290021518491395
	.quad	-4821614467300268064
	.quad	5627148592782580041
	.quad	3092789333954796605
	.quad	6957694597899945255
	.quad	-851709985284056681
	.quad	-1466315558472041943
	.quad	2274912037200049462
	.quad	-3683207292588213291
	.quad	8831266318572430976
	.quad	-1878141491216442242
	.quad	1651275249084632538
	.quad	105705035058376953
	.quad	7541598459498134635
	.quad	6627685529861836787
	.quad	5724525771392188178
	.quad	-4580846955408708999
	.quad	627652561624109853
	.quad	167084371112939132
	.quad	-4253912920365536194
	.quad	4429202648276526106
	.quad	7238621060589448026
	.quad	327425111823374145
	.quad	-4159890239469928108
	.quad	-2375868404866233265
	.quad	3574353110160747115
	.quad	-8385832236547530889
	.quad	-8059893874325143569
	.quad	-2828309173194578151
	.quad	-4178766626003741410
	.quad	8823759714826430108
	.quad	7918740515193061263
	.quad	1664424041430494212
	.quad	9076733744947861202
	.quad	-6436006279007791897
	.quad	-4526055442263248748
	.quad	1752109731204648558
	.quad	-6979019823601283099
	.quad	-36045562749827370
	.quad	259712965399970571
	.quad	4103476847317103663
	.quad	5116956194215911306
	.quad	1996579506428684670
	.quad	41407221030892948
	.quad	-3623583929028627588
	.quad	-2756171279806219907
	.quad	1101762466949115887
	.quad	19462496059060771
	.quad	6099422315003219574
	.quad	4300077459158116870
	.quad	1282001407902323746
	.quad	5792772971400374848
	.quad	8804599345051681966
	.quad	1660867561057987837
	.quad	6779185491122967535
	.quad	-6359674749610435672
	.quad	534198323228608336
	.quad	-403946062182743479
	.quad	-240133764068823759
	.quad	-8680638070775395891
	.quad	-6958422951340824715
	.quad	-3814470703365369679
	.quad	-5461893224883288398
	.quad	1857014998357880446
	.quad	-4549608159177343681
	.quad	-2521113851655874226
	.quad	-6454693286360440651
	.quad	-8374394150124585581
	.quad	-513070601122933951
	.quad	-1931667257345950142
	.quad	-3193629936452716452
	.quad	-5179839437538992459
	.quad	1948744095967172711
	.quad	-8061184308151984800
	.quad	4024266852523887517
	.quad	5501546279560409551
	.quad	-5609047453764746227
	.quad	-4976427550701024897
	.quad	3074966674353053986
	.quad	2630814767089382743
	.quad	-5092976132022680746
	.quad	-7041230553618583048
	.quad	3071969598389884693
	.quad	8212421686942839224
	.quad	-716731110355004408
	.quad	5379293414729555353
	.quad	4126759573313100944
	.quad	-5377103440480717540
	.quad	-6732941284795433555
	.quad	-1142513439007770435
	.quad	6698313858796867795
	.quad	7015659976069520214
	.quad	7866179127856055582
	.quad	-6572119567562325283
	.quad	5793384221044709375
	.quad	4411967221310302622
	.quad	3004913667339358722
	.quad	-6215865401705669571
	.quad	7395980261120250376
	.quad	5188846147165419817
	.quad	-3205094553003141136
	.quad	-2305346687936739744
	.quad	1952571486075632167
	.quad	-8676403655078771927
	.quad	-6446965213439113086
	.quad	-3333846486734294375
	.quad	-5805402623398168796
	.quad	7585136769193798136
	.quad	-2286522687082942540
	.quad	2876994290210606255
	.quad	6065036384672004173
	.quad	-3750410724759978281
	.quad	2667009584785381424
	.quad	-6346551411864756697
	.quad	-6044798404554492453
	.quad	-5598971220058627808
	.quad	6338836112605591235
	.quad	-557490713234073287
	.quad	2264121875619753395
	.quad	-8930766964394196780
	.quad	8294108866635398938
	.quad	8957691354441672832
	.quad	-6500301714474235801
	.quad	-1070773759472918240
	.quad	2286437117905535902
	.quad	3130250324287833414
	.quad	3662253455746154641
	.quad	-5217702708033965669
	.quad	3663813013822489770
	.quad	3093300797589723687
	.quad	-6939098507191841384
	.quad	3715061633580408995
	.quad	-9155429354769094437
	.quad	5626572085266677046
	.quad	-2902304721527222158
	.quad	-783282156960260671
	.quad	5567327776138344814
	.quad	4008668214839812418
	.quad	-4668167283009736853
	.quad	-6189058229134513306
	.quad	3464453985305889088
	.quad	7486900500389940957
	.quad	8944303108517222303
	.quad	-126810517305714698
	.quad	6782476025105836770
	.quad	-5623903126786174106
	.quad	2799592944286097404
	.quad	8737598030273298051
	.quad	2754563581284692865
	.quad	-7189383351346722229
	.quad	8254261291934606879
	.quad	-8423174153384455387
	.quad	7980898855627864603
	.quad	-1284680624097265913
	.quad	-9170984617773447253
	.quad	-2509939335609912972
	.quad	303387668469489035
	.quad	7978391052264888020
	.quad	-3033022016359227122
	.quad	508608987485166058
	.quad	5585753287556892522
	.quad	1344134516582665443
	.quad	-3302464667932042402
	.quad	-1432390623867984467
	.quad	-5928167051494256842
	.quad	-7099359285586601058
	.quad	-1324025248751531252
	.quad	5431993665805279177
	.quad	1445831254446028321
	.quad	-8601089863464748136
	.quad	-130965544016939332
	.quad	930563922336183289
	.quad	4894710987714215219
	.quad	-2741750469830555509
	.quad	1606204036324478223
	.quad	-4138108924179352684
	.quad	5026736228773269251
	.quad	2911689442372084137
	.quad	9004077539360196849
	.quad	7770049130277452000
	.quad	2745120518194234905
	.quad	-1190799266148142733
	.quad	7371907591838942770
	.quad	-6665218785325680389
	.quad	7814952754785494862
	.quad	-3424028859897015404
	.quad	4112388658963418656
	.quad	-4742972165311560281
	.quad	-991303932897210047
	.quad	-1708073909234129854
	.quad	-5186839943523335622
	.quad	2168106064304872507
	.quad	1969289843772256992
	.quad	9025317999701057831
	.quad	5835661391798891929
	.quad	3826587698101558069
	.quad	9149648374608464235
	.quad	7248346993716635643
	.quad	-1162824905184229251
	.quad	-8339063008893822821
	.quad	-6269930135680043897
	.quad	-3336406499420518548
	.quad	2436453685316043712
	.quad	5876967059744625564
	.quad	6197919059881189313
	.quad	3300993078638782623
	.quad	-9089076321337350179
	.quad	-758614318574542169
	.quad	5477090746558113696
	.quad	-5844719552520671316
	.quad	-2556782138202258261
	.quad	7135039746373941272
	.quad	-5885680646816307311
	.quad	3079971284510744316
	.quad	-2750886883333735743
	.quad	-1716070117502126278
	.quad	-6381266251864086500
	.quad	-4600585705587632388
	.quad	2126156187526559500
	.quad	3005167441915916768
	.quad	3858987859895327040
	.quad	-1402840113821434221
	.quad	5861237635520080595
	.quad	3292646198413575902
	.quad	-4160099516661129256
	.quad	-4100334543320570642
	.quad	-5863189027108396455
	.quad	4665981927428063991
	.quad	7657686120974201842
	.quad	2388299767028319466
	.quad	-511936055918333977
	.quad	-1738103366683179303
	.quad	-4324402807574575130
	.quad	-8899619074852177125
	.quad	-7252674155273525693
	.quad	-3789205092778823739
	.quad	-330954360797254196
	.quad	6543740714573413570
	.quad	1955886376702349613
	.quad	-3709890703990465282
	.quad	3914330395250768396
	.quad	7607848156418885173
	.quad	-226110544729495102
	.quad	-6515791223550692686
	.quad	-1436062320234850275
	.quad	6961088634819162945
	.quad	-50862756588036321
	.quad	-6835332831702284437
	.quad	7996717433149311639
	.quad	2687736005475404867
	.quad	-3106529710977628467
	.quad	7116441414289074727
	.quad	-4144545376488889213
	.quad	-6531702561765629098
	.quad	-6083306909269377966
	.quad	4047410026894059083
	.quad	-7007001042013418169
	.quad	8776097395071907030
	.quad	6851061783357383945
	.quad	-1962010497127610604
	.quad	2861660066704264713
	.quad	-1993541924938498391
	.quad	-8407708260205487989
	.quad	6275446616881871868
	.quad	7150609984920482782
	.quad	-7345802318165197253
	.quad	6219760433202580646
	.quad	2875377482232912143
	.quad	-1969045885789848917
	.quad	2757160833848759781
	.quad	5976267476122243443
	.quad	7375951277779829055
	.quad	6525111513935493528
	.quad	-8477021151536671935
	.quad	-5864043320653011664
	.quad	3861958159147836631
	.quad	4207324524057007052
	.quad	-4968322810316785699
	.quad	-5128468430974783610
	.quad	8504333045658265535
	.quad	3960720256367501697
	.quad	1601661680373853468
	.quad	7704205542213854353
	.quad	1552780884856863914
	.quad	-6658260414497971089
	.quad	8739274750400900816
	.quad	-884293366065702544
	.quad	2113004873311762141
	.quad	8542099133996522813
	.quad	5273956141012313478
	.quad	-2785662097204438278
	.quad	2290009483289921559
	.quad	7730337285529332076
	.quad	910421998453976119
	.quad	1242962796308775978
	.quad	-2515430890201629103
	.quad	296811920445331257
	.quad	5821874870466240960
	.quad	3843405649348506130
	.quad	9007082448812181532
	.quad	7200777231000974420
	.quad	-2630327618328720246
	.quad	-5514706017350039605
	.quad	-2023942887322934885
	.quad	489979647738684819
	.quad	8269568123908387407
	.quad	-6828779027813788637
	.quad	-8376944675042095985
	.quad	8245819835927284113
	.quad	5237630684564909794
	.quad	-1874498502525094031
	.quad	-5050532453793921119
	.quad	9177789877937729597
	.quad	7598297211302983411
	.quad	3133511073496333246
	.quad	-1893724036007461040
	.quad	-5004752750643802014
	.quad	-3005174060598539630
	.quad	291172418860690999
	.quad	765089869758770890
	.quad	-2502992677811962933
	.quad	1887511823199710563
	.quad	-2994555410309875176
	.quad	-3418716382539005240
	.quad	-7436820771015751296
	.quad	5465227554242327455
	.quad	6511134004216481185
	.quad	2187999546010819375
	.quad	8387421071023131689
	.quad	174295266381833460
	.quad	6010935117399493668
	.quad	3340537243300033200
	.quad	270646782953286316
	.quad	6635640130829923909
	.quad	-5729145593930955349
	.quad	3198506535831522029
	.quad	2605714695474737827
	.quad	-3898155136583045702
	.quad	-7998464249386526042
	.quad	-2438183483214763326
	.quad	-6986503024893375514
	.quad	6557818897531989327
	.quad	6948658872009630691
	.quad	-5940480330208351949
	.quad	1813031030961999507
	.quad	-126636624003047859
	.quad	-1663667620126752577
	.quad	-8332806544629583773
	.quad	3096618551325580575
	.quad	-2018753311876880680
	.quad	-6654302968262932588
	.quad	682188988823121368
	.quad	-2840718377338430067
	.quad	-3051381624461154593
	.quad	-8288594766272241067
	.quad	4442375503593769727
	.quad	5486499432056098253
	.quad	3811951715772590831
	.quad	3856863699598204250
	.quad	559724736042732093
	.quad	-5194991392479869657
	.quad	3173330346541355882
	.quad	3597530263899943500
	.quad	-6879495357151131336
	.quad	-5624719506861620387
	.quad	-3959597310767414810
	.quad	1361688279016339671
	.quad	2776885758026394514
	.quad	-4830521780578388643
	.quad	4629388276054227930
	.quad	8304132204812769256
	.quad	-3258468622039040667
	.quad	3676452641243730693
	.quad	-7607735825706485137
	.quad	7676518604603740317
	.quad	-62468748659172956
	.quad	7827069556104560937
	.quad	-4111002232257878833
	.quad	1145975213382205474
	.quad	-4755124004331136121
	.quad	2513451633312793643
	.quad	-1115286094771403688
	.quad	-6858539414861364888
	.quad	8824497684232939293
	.quad	5956154520546906549
	.quad	-4011785994467864907
	.quad	-6647873085789191169
	.quad	5875117843056165993
	.quad	-7132836040348784155
	.quad	-3768168202198603199
	.quad	8479250768537158849
	.quad	-4592560290550652690
	.quad	-9033218692507901563
	.quad	-8369305790569464417
	.quad	-7032960851391822335
	.quad	4418417663988371635
	.quad	6001837395299394988
	.quad	7545846298204709215
	.quad	6662102781970969966
	.quad	-5750689523036881742
	.quad	7436995610194789060
	.quad	9042605089262227561
	.quad	-6825235948639923011
	.quad	7289479057360149973
	.quad	-669432360008178244
	.quad	-8476146789428484229
	.quad	2397645525145913949
	.quad	5908158509536309319
	.quad	7766812747582392882
	.quad	-2058161730191893441
	.quad	3450188096982355678
	.quad	-1340191285602940097
	.quad	63215920132781270
	.quad	3260719166098989799
	.quad	-6225497196221438094
	.quad	8145192858914451920
	.quad	-3035743676614521896
	.quad	-6100752485230368451
	.quad	8534058804971720236
	.quad	-7721292951009117004
	.quad	-6672662390886629349
	.quad	-1269910956507074801
	.quad	6501251510428323109
	.quad	4954207773535581298
	.quad	-3769472306919292708
	.quad	-8572467389803966708
	.quad	-6300641036137602190
	.quad	-8362175381040841998
	.quad	2193756190569682571
	.quad	-6674987068311257806
	.quad	-1677887290493830271
	.quad	7877270636707473770
	.quad	-9097644607428085223
	.quad	-2030477470907395968
	.quad	8249747471936210492
	.quad	-8329295590648688920
	.quad	3659328069300385007
	.quad	4004703492946075086
	.quad	-3199533610018083864
	.quad	3202281732323973014
	.quad	-2356058625265290831
	.quad	8657874068945014393
	.quad	5564779174303396874
	.quad	15846943918586507
	.quad	-3790884803302883179
	.quad	3770008039366611206
	.quad	-2937095184831915963
	.quad	4131784474979419187
	.quad	-2891404609615760797
	.quad	-1025737894251798270
	.quad	6806991105033676854
	.quad	-2678315276586265477
	.quad	-4720167065693481312
	.quad	6901243580548811522
	.quad	-8453665570388442963
	.quad	4408383275736021519
	.quad	-1978053880396816932
	.quad	-1655131517620289740
	.quad	6402768721695125205
	.quad	1055777486248302372
	.quad	-2301918397716089869
	.quad	4481688106395460479
	.quad	2272483887053590380
	.quad	-6462113681402053667
	.quad	-2494520196238996362
	.quad	-4804652015048565174
	.quad	-3858117896715907714
	.quad	8700342585602595036
	.quad	-4451501733800209410
	.quad	7330024343325173474
	.quad	-2283653854856854792
	.quad	1482190786037630986
	.quad	1466628115518808882
	.quad	4339326918013437850
	.quad	-6968607239710125843
	.quad	5594235925323394847
	.quad	-511248495644580722
	.quad	4632527480183644727
	.quad	-7211735847474115877
	.quad	5685177960356421593
	.quad	3705111990217459907
	.quad	-4787220972255573763
	.quad	-8123533297217846934
	.quad	2692127807597869922
	.quad	8184831351487044429
	.quad	-3592766668888700281
	.quad	-5220438166861053285
	.quad	8385991762799090109
	.quad	8148972563476168530
	.quad	145354484126882742
	.quad	-2358795904788522525
	.quad	-1217159574238934225
	.quad	-3613250564265556942
	.quad	-2191533808761705033
	.quad	2223704391455147376
	.quad	3188530712496822406
	.quad	-3492530280715044710
	.quad	-7582354240637035286
	.quad	-1136745862351125405
	.quad	-8162925784390510326
	.quad	4554305067081625207
	.quad	-4003270695440909771
	.quad	9063230987546773297
	.quad	6086491730985096923
	.quad	7724728809140182781
	.quad	-127208687024294133
	.quad	-488643152088243948
	.quad	4329056903677504215
	.quad	-2061619308121212696
	.quad	3380898881106955122
	.quad	-4703663403945887047
	.quad	4467495372706945573
	.quad	9179847057770023229
	.quad	916144137544453729
	.quad	7688352245245129824
	.quad	6185561896109205293
	.quad	5561661074969575170
	.quad	1290283602529325160
	.quad	-9147806835603729936
	.quad	-425608249640292525
	.quad	-5816402055888880641
	.quad	6680526268521514546
	.quad	6082235569745042851
	.quad	8603029151383485711
	.quad	-8999683070828672369
	.quad	-3825779954163399801
	.quad	-6136190990516552881
	.quad	-2523049661774098162
	.quad	7392925129127637753
	.quad	-4311604183722655641
	.quad	-5686172635348330486
	.quad	-1446229455906196881
	.quad	-997744544107470780
	.quad	4756229054264287177
	.quad	6243782489300430371
	.quad	3361407338508150844
	.quad	2869516150694128276
	.quad	-7026803845929938387
	.quad	6877674753313754479
	.quad	6370560749192091464
	.quad	-6951936201844527443
	.quad	5845241595522289973
	.quad	6487067930879758551
	.quad	871977055795459633
	.quad	-8432725526491141035
	.quad	-8558918794014900118
	.quad	4169187116990824452
	.quad	441827992034384157
	.quad	2040946698991668420
	.quad	6018437144082035880
	.quad	-2860384053651538685
	.quad	-4278987652955656275
	.quad	8102505077278181234
	.quad	4181375118621914475
	.quad	236800733646352784
	.quad	9045530308097155312
	.quad	-7970457600333477568
	.quad	8264300447051059025
	.quad	3254092831507502024
	.quad	-8610152094595270139
	.quad	-5185511188039347525
	.quad	5448932290945581771
	.quad	8860614048917516388
	.quad	-3374356111922404292
	.quad	3859253090374278595
	.quad	4415724881273125070
	.quad	9091554585666429063
	.quad	3622838788090106041
	.quad	5016815126583323469
	.quad	-1606436946601543729
	.quad	2743735549718773953
	.quad	-263025476463944015
	.quad	-7546689186422366055
	.quad	-6206268965438855720
	.quad	887513853896563011
	.quad	-2733397638022511068
	.quad	-5908541101016728606
	.quad	-3628475106239166042
	.quad	449241712153575121
	.quad	8339170736211850932
	.quad	5979386800857560680
	.quad	7531929378050251998
	.quad	6929867306184090449
	.quad	-5761041797328634861
	.quad	-8307427463752412094
	.quad	4704123063528865006
	.quad	8145096934812263032
	.quad	-5938720015147268336
	.quad	-7682592808832958847
	.quad	6058850988045950403
	.quad	-5558767303422696326
	.quad	-7100120189411798784
	.quad	1918091635280197586
	.quad	2032880646376579178
	.quad	8400137165023978324
	.quad	8540017535036471693
	.quad	-4987061960346015417
	.quad	-5453069046490199412
	.quad	7507731778048003925
	.quad	-857514785745464609
	.quad	7287304074856091895
	.quad	6482309955459117203
	.quad	8065930556044687534
	.quad	781992420662092742
	.quad	2628218403632103957
	.quad	-2865903811054699852
	.quad	2759110330514639358
	.quad	3182418109732407234
	.quad	-3227047658728597070
	.quad	8169149782834355985
	.quad	4810357005974162457
	.quad	-9093209003977058212
	.quad	352934302608639933
	.quad	-2904161998737485653
	.quad	7895282356299503471
	.quad	789632891187267964
	.quad	1597242346345193644
	.quad	5957308079072052224
	.quad	-1285127972708277900
	.quad	-4728352661384757383
	.quad	329310039554271291
	.quad	8274146320684955380
	.quad	-6188967731444498387
	.quad	1952631641181275965
	.quad	6632563756994415788
	.quad	-5717240366211631688
	.quad	7176875028147412194
	.quad	-2721361211860747984
	.quad	-3848037452968202353
	.quad	-8897392946633952345
	.quad	-8412668619587404224
	.quad	-5209304557355998461
	.quad	411008515164480861
	.quad	-3920641671842128274
	.quad	8574651064208076778
	.quad	5787554842480204510
	.quad	3639956036331252491
	.quad	-8265426150875254725
	.quad	-3708164342084005444
	.quad	-5459078823087058533
	.quad	7310586608491406160
	.quad	3913258145100339495
	.quad	1425219502285353708
	.quad	3459979620077800480
	.quad	7867113139278157723
	.quad	-3640934396753921075
	.quad	1289255030247914494
	.quad	8693667966651213046
	.quad	-3428426298332011883
	.quad	-1065268075696442744
	.quad	-5054403682986130042
	.quad	-919016008139743074
	.quad	-2891094573020546246
	.quad	7857014165815014600
	.quad	4664069234996337119
	.quad	8058230521837307501
	.quad	-356322447700368166
	.quad	-9168564376247106718
	.quad	-1307864720611642846
	.quad	-161520803901805445
	.quad	-5705518100327798184
	.quad	5461579923265799106
	.quad	4348015554411389960
	.quad	-3476207900398623744
	.quad	-6878372874569851997
	.quad	-6698081322033884386
	.quad	-2951079250647659916
	.quad	670495577617908409
	.quad	-5179851786179102427
	.quad	2232961926857263527
	.quad	5934654989155432442
	.quad	5415975493246016158
	.quad	-1328959686827088458
	.quad	3875398271691758986
	.quad	-2691000492532341773
	.quad	-7065997538697135957
	.quad	-1887095763570273526
	.quad	4796731467175572814
	.quad	-9179188908525296788
	.quad	1400425639375650333
	.quad	5199035239208036114
	.quad	7994153995816640929
	.quad	-2768997776301840578
	.quad	-2107848511383264178
	.quad	-8284284574709074357
	.quad	7534168794800651527
	.quad	6320985751131807192
	.quad	-9182903839808511195
	.quad	-6268118789945534366
	.quad	-5302946960478399610
	.quad	-5357690522009943397
	.quad	-4966280063598293560
	.quad	3886207141264898075
	.quad	4215113531127552656
	.quad	-4162903312535459126
	.quad	-7285237050913258273
	.quad	-7211233778014545082
	.quad	2260082644337974884
	.quad	3781681413610409735
	.quad	5577127823856153222
	.quad	-7020062726314432994
	.quad	-1310876775147508988
	.quad	-7576009353255930504
	.quad	-4643379750734229399
	.quad	-8706216790647274986
	.quad	-4681505592816386353
	.quad	4792349632705804116
	.quad	-87714933643704568
	.quad	-7332970774632178933
	.quad	-1828154898595687783
	.quad	-5866090251924001470
	.quad	8264195478884998326
	.quad	-4877275812947839766
	.quad	-1906939672916026574
	.quad	-3982203276837705065
	.quad	7710175783216723569
	.quad	1420251412241033168
	.quad	6449255753238336368
	.quad	7468624722117319576
	.quad	5716072259994197219
	.quad	8165015263320602150
	.quad	4757529151848960259
	.quad	2040364517493350115
	.quad	-7377101740225008867
	.quad	7316766449463697051
	.quad	1410976281384361962
	.quad	2878678490331118371
	.quad	-808238669501105922
	.quad	1130528985192221086
	.quad	7544558337870473835
	.quad	-6374834839084694243
	.quad	436426448500115731
	.quad	-9012056402751220804
	.quad	4808705744496679962
	.quad	-4536409445470368003
	.quad	2628594509406050235
	.quad	-8390832608542689318
	.quad	8069256921143792190
	.quad	-6559775357862053425
	.quad	6351594160398684406
	.quad	-5558275925178932551
	.quad	542846015600866106
	.quad	2086677842713697080
	.quad	2758534484095407635
	.quad	-2679620654565756319
	.quad	7077908316515201321
	.quad	-8149437391956382750
	.quad	4641656730233236179
	.quad	5472832021993175857
	.quad	6120966193470238758
	.quad	-5289793998245490357
	.quad	-3613371870860921172
	.quad	5760885723102571027
	.quad	-424171882803381273
	.quad	-8575825077788654395
	.quad	-8900688406243495145
	.quad	-1066435988450134490
	.quad	-5861935432679366475
	.quad	-2961283830514699156
	.quad	-2274528265927078189
	.quad	690761937231979275
	.quad	-875835787348171366
	.quad	3347059970688467328
	.quad	-8042346314102704980
	.quad	-1322152193304500292
	.quad	3379747334483646957
	.quad	2084957978131092947
	.quad	2413497199486596627
	.quad	2867893699156486423
	.quad	1357836849049583382
	.quad	-4839436088365330581
	.quad	-407549502768787871
	.quad	2248775486830407244
	.quad	1550340755758127506
	.quad	8399436463450785695
	.quad	-7382848997269248078
	.quad	2168511054719571959
	.quad	-6208245179441595778
	.quad	-7622477697231963809
	.quad	1073243669335517712
	.quad	-5215928381539541381
	.quad	-7784080035895176771
	.quad	-8326359858788020282
	.quad	8892863196093018212
	.quad	4443096401408136417
	.quad	1896901619181196514
	.quad	739574867683694091
	.quad	-7212791302108624035
	.quad	-5415436990296597499
	.quad	-2938407601039283369
	.quad	7998702810957866659
	.quad	6658693362145210202
	.quad	-7155925890934720532
	.quad	-4769269900037751775
	.quad	-285638738991354730
	.quad	6388716687513613354
	.quad	-4560865155234343209
	.quad	-31612967049144960
	.quad	-4084142637096602702
	.quad	5740711586144226035
	.quad	220574937152712384
	.quad	-1672727824152232657
	.quad	4658351269477373440
	.quad	7890975779439252404
	.quad	245499297443588188
	.quad	-5978232042454723823
	.quad	8174288892016848577
	.quad	-4631329899538159033
	.quad	7095704452088797496
	.quad	-6596021987456564897
	.quad	3946944084831768079
	.quad	150324108818525256
	.quad	-1818028786833368604
	.quad	5300385226682547206
	.quad	4493053153469218188
	.quad	6690552861098862065
	.quad	-9087398872097891586
	.quad	-1056386880547823134
	.quad	-9163088625224886002
	.quad	-4699096715922638175
	.quad	2132641073324695418
	.quad	712760292426997746
	.quad	-3030905609640707766
	.quad	4692839706371205174
	.quad	-6296177077167817152
	.quad	7908425105970706054
	.quad	-2355971637589953709
	.quad	6018655988028357561
	.quad	3101241556869117917
	.quad	4731590937333975732
	.quad	8347709942856514723
	.quad	580858462407103829
	.quad	8937550160715031857
	.quad	563888416351720575
	.quad	6928865729903641398
	.quad	8295908905021542009
	.quad	-6163167737661369857
	.quad	5963578448681969925
	.quad	-973160328818694195
	.quad	-8388286989490693281
	.quad	8913485994477842539
	.quad	-1732325037702306312
	.quad	-1606126610313707402
	.quad	-3344968537708610214
	.quad	2219303446125808132
	.quad	7766409607764464233
	.quad	4492816761527421087
	.quad	1687012079818776091
	.quad	-8479231166817454024
	.quad	8099397263797608226
	.quad	264054732854154094
	.quad	-3931121248625584119
	.quad	122626795682541484
	.quad	4288588754984298362
	.quad	145649008901076310
	.quad	7584539655248546439
	.quad	1444356991619759914
	.quad	-8682865988214674634
	.quad	167685768197825177
	.quad	-4081442729440297414
	.quad	-7860117735285487779
	.quad	-7161438853125739585
	.quad	1552873676034063335
	.quad	7108571382532772330
	.quad	-6369143571271435957
	.quad	4925647731241250576
	.quad	887903929602864140
	.quad	3575833277214438245
	.quad	797073496459928523
	.quad	4694171948261691687
	.quad	7480852750757610178
	.quad	6958638705475169629
	.quad	2494808678663553445
	.quad	-5188225306963856743
	.quad	5876161369472053298
	.quad	3070327359047457100
	.quad	-3761101378511833859
	.quad	4830460343095831969
	.quad	1748938116371486214
	.quad	3212377924501398108
	.quad	7575821759023381902
	.quad	4416593227203343304
	.quad	-636078741588504414
	.quad	5387420006905173437
	.quad	3757419344337500561
	.quad	959953915856350141
	.quad	-5168090781574754857
	.quad	8398923315162473213
	.quad	-6279145915600667909
	.quad	-1522252932312985817
	.quad	9008981975385132745
	.quad	1352609874179390103
	.quad	8644732068940188724
	.quad	-1329938589476852261
	.quad	6611042643736763845
	.quad	-5760263462477535350
	.quad	-5024487972451325287
	.quad	-2545079868385629117
	.quad	100273141428472746
	.quad	3184681836469139902
	.quad	-9216758105564064664
	.quad	-1354915949149123063
	.quad	6995779392478232002
	.quad	3280318063993402472
	.quad	1033362978340722272
	.quad	4202523856806659489
	.quad	-3284051720030647904
	.quad	-5282496134653316024
	.quad	-7738141323865916378
	.quad	8046488591192123621
	.quad	-7055585816693217063
	.quad	2512908912806916201
	.quad	-3686519449439713578
	.quad	2631910198880826809
	.quad	2387247811669872033
	.quad	2048193899742148806
	.quad	-4447958236235824610
	.quad	-5171258572722699597
	.quad	-386710582017943400
	.quad	9119009445126116490
	.quad	2281671971515994698
	.quad	-4803999548446777356
	.quad	4065611007760560055
	.quad	-348178619171115162
	.quad	5654204836171067316
	.quad	-1594601604999769811
	.quad	9136039981162620247
	.quad	2697902464755506944
	.quad	3115360062367892669
	.quad	-6907199970806340172
	.quad	4965179026443639534
	.quad	5299789349049516504
	.quad	4307524726674194054
	.quad	988252922122896774
	.quad	-4981784614155429432
	.quad	-7660837997920885601
	.quad	-5518437263347610885
	.quad	-7254359273725327176
	.quad	5433493933426319005
	.quad	-4155645670896117554
	.quad	8288347247576331980
	.quad	-3710280188414164671
	.quad	65118237867659610
	.quad	7709654893724192899
	.quad	1138012924568046197
	.quad	-5129819271055060511
	.quad	3767917910822074838
	.quad	1902622101044985100
	.quad	-2864010353664800797
	.quad	-2404952450087032628
	.quad	-1630432950759582038
	.quad	-8867122965501400898
	.quad	9069261679715096107
	.quad	-4192892924234033245
	.quad	-9176696323121509050
	.quad	-7838977962038292711
	.quad	3334020681164782736
	.quad	967447990382915677
	.quad	-2789017824154335756
	.quad	1089888851026428025
	.quad	-3546190233579037119
	.quad	-6281751283054976995
	.quad	-4626072157428708377
	.quad	3716876427517493173
	.quad	-2841554720257816145
	.quad	-6141589467554744216
	.quad	5878568415340074410
	.quad	4994699992618658685
	.quad	4601044459198847444
	.quad	-2771473012767880320
	.quad	6818771789293461805
	.quad	2283809454235826500
	.quad	-7643600974522331798
	.quad	-7935601708868542153
	.quad	-7971417380554429372
	.quad	-8142100012694226943
	.quad	-1416490774561774029
	.quad	494936899112588700
	.quad	-4525280516216225776
	.quad	2974468772802075138
	.quad	3704905313528067429
	.quad	-1220187761514963298
	.quad	7198670354009587714
	.quad	-7278046650703839074
	.quad	-5371299546938677411
	.quad	-2418005021779188095
	.quad	-8723400050008916614
	.quad	-8416332666420848646
	.quad	421539463987072218
	.quad	-8505141535874151272
	.quad	9149404584068333955
	.quad	-7869469342853965838
	.quad	-7105031969089396683
	.quad	171854526749010578
	.quad	-947477472249316366
	.quad	-7710728141009520457
	.quad	7346884282683657323
	.quad	3418801331617663397
	.quad	-614535220782846447
	.quad	-6831883949054209102
	.quad	-2303005173931345922
	.quad	7538134759481773039
	.quad	3853094382426840610
	.quad	-1612501145569675608
	.quad	-6771868399030289346
	.quad	3250033585981373002
	.quad	-6072203141467978466
	.quad	-3664691071057085603
	.quad	4233933610774394413
	.quad	9093096051439575327
	.quad	-1460928301314837424
	.quad	2340828929230774591
	.quad	-7362217979056417812
	.quad	-7717939861330558432
	.quad	-4571381736932910090
	.quad	-6528231822901874602
	.quad	7428606541042137340
	.quad	-3051915617198150616
	.quad	-6285910863270426286
	.quad	-6377115015564311397
	.quad	2992691965540670788
	.quad	-3458555626733511542
	.quad	-4109154804906859420
	.quad	5785543418333740512
	.quad	6247539907590267674
	.quad	3260010667104672340
	.quad	2439824211272225727
	.quad	-1837803683716883066
	.quad	8797616198354200208
	.quad	239069031563975519
	.quad	-1262895663415940467
	.quad	-1151568088825309978
	.quad	619221296113807276
	.quad	4279263052252882769
	.quad	1531648143521350892
	.quad	2308341421676447724
	.quad	-3366699595213318286
	.quad	3116947733967283796
	.quad	7394682799883896055
	.quad	5954535116277809481
	.quad	6749187287924210434
	.quad	6847529654752406003
	.quad	8425820995261250252
	.quad	-1850691025570144559
	.quad	-5482124831283401094
	.quad	5837013390209672878
	.quad	-2495396325852443333
	.quad	9213811360539586789
	.quad	218236560191108275
	.quad	1342414244519190626
	.quad	8939756003278861756
	.quad	-4674921804325944081
	.quad	-1357371922397181132
	.quad	9203841454166907983
	.quad	7410580829699433606
	.quad	6919245947052664289
	.quad	-8412707033083375632
	.quad	3545448946539452828
	.quad	-7416925315195679987
	.quad	-3639426967804381667
	.quad	6522884559416955388
	.quad	-8853708317930511501
	.quad	-8637932955644910276
	.quad	-2820211176352727946
	.quad	8151708832479626146
	.quad	8235204573419796858
	.quad	6161460698350306689
	.quad	6683329696105424253
	.quad	-8272538508001227653
	.quad	-7211767187104431920
	.quad	8794287012550985476
	.quad	-7987640614898433961
	.quad	142920794426817901
	.quad	3871736764121344804
	.quad	7207001090020794965
	.quad	-5329677090496528461
	.quad	5581671052410718309
	.quad	8865998813708720418
	.quad	-8435360572659149997
	.quad	-2225257824635527046
	.quad	4932173019017285882
	.quad	8576791084662542804
	.quad	-863801421329176787
	.quad	5933276979573986178
	.quad	7672927228117375875
	.quad	637934175296889624
	.quad	-4211671961305414049
	.quad	1663896908182443653
	.quad	1237910251733702795
	.quad	-682103378485865382
	.quad	5220664704651308204
	.quad	4824398694756816988
	.quad	7900714079332924468
	.quad	-3967011756302497139
	.quad	-4395887300428302494
	.quad	-2180725387242036308
	.quad	2001444757579639314
	.quad	1213831733268082908
	.quad	-3005959787231294162
	.quad	-1104896226492175214
	.quad	7630151118745069715
	.quad	-5279623225003784917
	.quad	609605646098536648
	.quad	7373155409463228308
	.quad	8878659736830739609
	.quad	7971764247096142648
	.quad	-3330807157482754313
	.quad	-7172197660115497144
	.quad	3126969565434755772
	.quad	-2133010905546238063
	.quad	5031664706612827514
	.quad	-8099028249079912938
	.quad	-3522302358333166115
	.quad	-9088877744579963313
	.quad	5133597383191968153
	.quad	7824087216220104706
	.quad	6498776564694897029
	.quad	-9030204429079693109
	.quad	7100547015327080718
	.quad	-3214920057870376989
	.quad	-3727818741115895212
	.quad	9011417791982218917
	.quad	2260863509019720638
	.quad	2446408927964136748
	.quad	-6822886242174102192
	.quad	2473004931010465979
	.quad	-2444719477881715428
	.quad	2265951234883129192
	.quad	3366235037071938034
	.quad	4343672634742042967
	.quad	5579224129396260200
	.quad	6998776665401587798
	.quad	4222906130618976223
	.quad	-6256743049981618301
	.quad	-2222349168524223665
	.quad	4738217849588625157
	.quad	-252535240097359076
	.quad	-6012931267376272931
	.quad	-4646979313753364471
	.quad	1160653611207682063
	.quad	-4568543674460203517
	.quad	6318723717674467358
	.quad	-313809209953799000
	.quad	9212304764077577748
	.quad	-6553961873674304459
	.quad	-7677802299216458675
	.quad	932099975215033008
	.quad	-1759343913661072897
	.quad	-9140567532074932599
	.quad	8173367641067253764
	.quad	3889159453011152611
	.quad	8058955589790540213
	.quad	5924652448604373203
	.quad	6557283863385543329
	.quad	2369480957472183057
	.quad	1078283637561458679
	.quad	-7597247180461305547
	.quad	-1000537124045960813
	.quad	7308881555236161372
	.quad	-1017540499179584973
	.quad	-7220216499833655968
	.quad	-4742952261979138734
	.quad	6748850399242362563
	.quad	-6988258259605885159
	.quad	-1053760408504525896
	.quad	-5843412840017790776
	.quad	3752711326309791976
	.quad	8281544857330094164
	.quad	-1442092727148281510
	.quad	-8047421533452775693
	.quad	-8725444623424688440
	.quad	3725182263994944884
	.quad	74190110112564319
	.quad	-7219514416642806452
	.quad	-8295663474114459672
	.quad	-1855692697634960241
	.quad	8256332495682655293
	.quad	7127985739945537626
	.quad	5708687346183367016
	.quad	-135823027254528335
	.quad	6887629766078662088
	.quad	-3115988679276953174
	.quad	-4302135896436348630
	.quad	-5188089077162532760
	.quad	8975611270007504091
	.quad	-1576909217430449255
	.quad	-5738773197857503793
	.quad	8520055680055874514
	.quad	4922928863857449168
	.quad	7226901725606965824
	.quad	7568276305032368752
	.quad	6253457805758596797
	.quad	-4101703196133348538
	.quad	1718759302498746946
	.quad	3544444746772280646
	.quad	-566441346310102050
	.quad	-885073603144252640
	.quad	-8922621931695242269
	.quad	-5826872819686671621
	.quad	4098610542031538614
	.quad	8338691110372464881
	.quad	4378598564044777665
	.quad	-2011063439460198873
	.quad	-6378915893232795084
	.quad	-1874315888507715104
	.quad	-2911582116711093910
	.quad	3118508753345802652
	.quad	1036719175817464914
	.quad	-8517202899524074876
	.quad	-787979648824214430
	.quad	3038747611544544975
	.quad	-9146917500272119559
	.quad	-5696045579256313026
	.quad	822220438401342753
	.quad	-5711277602959016843
	.quad	-3277758670607774976
	.quad	-609071595788218537
	.quad	5413174218886573483
	.quad	8340507718774735027
	.quad	3796235681866322764
	.quad	-517542370675491131
	.quad	-2968231304349505579
	.quad	-6794644649488544072
	.quad	8436785170867890275
	.quad	-2106339584571785886
	.quad	-4741551571301579577
	.quad	-8981819320699281958
	.quad	-1074119860775695481
	.quad	-5871823149467275398
	.quad	-300646096635661082
	.quad	-165200879572005891
	.quad	4432773597060264867
	.quad	797962164984225968
	.quad	-5014559323068316415
	.quad	-6051767857905613538
	.quad	3054137600383896411
	.quad	1710639639899429904
	.quad	8256339985792095142
	.quad	-2765154748208804884
	.quad	4739658557959866962
	.quad	-3609054404344137472
	.quad	-4976828187749313459
	.quad	6512220952649709788
	.quad	1383642069948026077
	.quad	-2367227780335427087
	.quad	3219406803455526095
	.quad	7313531873302124732
	.quad	-7419527225504970386
	.quad	420453934550342612
	.quad	4813186436097950636
	.quad	4591054440926926469
	.quad	2451960367277958352
	.quad	-3254288198978235931
	.quad	-2629619479625093492
	.quad	4394234434831906747
	.quad	926560055427197789
	.quad	5708704135670038668
	.quad	195700237254288598
	.quad	-379518660401104273
	.quad	-1962716986047984714
	.quad	-5535846772811312615
	.quad	-4329824772952941095
	.quad	-8709643759799896331
	.quad	8792063194563201934
	.quad	924297264228895146
	.quad	975866810375743708
	.quad	-3492924190193176497
	.quad	-8454182106841350099
	.quad	1182623625655614802
	.quad	-1841772899512893680
	.quad	5422424153282251503
	.quad	1353747441989826025
	.quad	1172702604088778899
	.quad	1426321625930246345
	.quad	-8385930303370268053
	.quad	-2190897720009362279
	.quad	-4218783608206118707
	.quad	2662870462718081351
	.quad	-981151607638851318
	.quad	4550760646558355023
	.quad	-1344950672172703509
	.quad	-1023554969842350735
	.quad	8957889495568856841
	.quad	4757999160732238697
	.quad	4252100093996597217
	.quad	-6199000733406608026
	.quad	6535013681174920101
	.quad	-6392905539850512651
	.quad	-3740473290638394377
	.quad	1576531988993159972
	.quad	-6681732610977814627
	.quad	6517329338935804883
	.quad	-176181759394722392
	.quad	-872193350802973699
	.quad	-2923756497122910345
	.quad	4200899284963891561
	.quad	-2726955636387682649
	.quad	-56508755530562863
	.quad	-1074925186956286231
	.quad	4583380351670429228
	.quad	-2776950545083215774
	.quad	3492433269689910066
	.quad	-2880261942273828085
	.quad	8725631504466489048
	.quad	-5297749671102702194
	.quad	3328500299247573555
	.quad	75277417797757036
	.quad	4961013654716999351
	.quad	7501035896439038531
	.quad	-6924621301348529080
	.quad	-5115895488340355784
	.quad	-6912455678274903985
	.quad	-9149123405724135294
	.quad	5181608294013145826
	.quad	1493595388721971059
	.quad	2460667348222619403
	.quad	-8004543476968928224
	.quad	2419164858619647542
	.quad	-1196599514311313760
	.quad	-2936313644283813387
	.quad	1801890115719307962
	.quad	5092782362979204171
	.quad	-6826661030693257408
	.quad	-1487106902483518980
	.quad	-7156028028388387719
	.quad	423611636875887759
	.quad	8716385793549629027
	.quad	8029377844845093468
	.quad	-1872895613257901431
	.quad	-3351875933518447073
	.quad	-3822260465274775513
	.quad	9086586764934160662
	.quad	7819147899014840515
	.quad	2171641266843519508
	.quad	7472307087149949093
	.quad	5164651606747017865
	.quad	3131259144507348071
	.quad	2831149220581674249
	.quad	6934926683935902665
	.quad	-3630562364776086648
	.quad	2765238342790485676
	.quad	-3731026297282785555
	.quad	3491964401358717041
	.quad	-7533319864277154434
	.quad	479257090156366011
	.quad	7217529123039186436
	.quad	-8284963622935025013
	.quad	2373749609575148155
	.quad	-2338477571789207917
	.quad	5247714054181677321
	.quad	5502318677807155986
	.quad	9110680331669187868
	.quad	7415094350098516280
	.quad	-5247804861094431713
	.quad	7665762876769276946
	.quad	-3659799818747407232
	.quad	1320522168839874087
	.quad	6395673054871725696
	.quad	7793960979093413321
	.quad	-7044689622422650439
	.quad	-1168663783077322576
	.quad	3823680337747309837
	.quad	7840042035002848151
	.quad	-607150299506266335
	.quad	5808878279242048514
	.quad	-1306615235312940976
	.quad	-7889162108902700886
	.quad	-710833965752118564
	.quad	-4204176091999913546
	.quad	2926862894723516482
	.quad	332036954842023914
	.quad	4970254900103012028
	.quad	-398671928075777138
	.quad	-203153005550701529
	.quad	-4179346569942877501
	.quad	-119410358526318213
	.quad	-157533985777715693
	.quad	3593627379904830021
	.quad	3570440871085625396
	.quad	1889523726204887344
	.quad	-4645759647362408927
	.quad	-5595633145354483542
	.quad	2177672425796385529
	.quad	2969737058189948562
	.quad	-3065017750119927284
	.quad	-5366391412017754417
	.quad	-3688712996518023209
	.quad	-8712241941976859269
	.quad	-8422198448691414010
	.quad	3780616370895328213
	.quad	1516632588067435378
	.quad	-4600113369775975798
	.quad	-4122838304820977258
	.quad	-2383756720893687172
	.quad	-5002405975174538159
	.quad	-5046082055102209706
	.quad	-3574272026018698567
	.quad	-2033992705134310625
	.quad	-520106684389114064
	.quad	1638164740741183531
	.quad	7376368527084801314
	.quad	2167244556183130784
	.quad	1323172262200756530
	.quad	8858180954712424165
	.quad	7550004814445419110
	.quad	-593500465705511319
	.quad	-2807948204135664059
	.quad	3777095437434674684
	.quad	2330527260929159836
	.quad	-500898128822120210
	.quad	-2291339443117315184
	.quad	1019623855630190715
	.quad	-9198726788395932199
	.quad	9090948961319994808
	.quad	8374479987654744654
	.quad	4091461133992408760
	.quad	-8768292330999224470
	.quad	2786420192738835528
	.quad	5651089711204812366
	.quad	-506205712360998847
	.quad	-8344742875796120376
	.quad	6211688443233768420
	.quad	1986665099237206297
	.quad	-9197836194440534611
	.quad	3081890249882755206
	.quad	7828527646248386813
	.quad	-5770709981479225129
	.quad	-3790776046248471485
	.quad	300033151323705408
	.quad	-1268147168517317482
	.quad	6123184815780386628
	.quad	3458384367994741179
	.quad	5699828494398342378
	.quad	301817277509909643
	.quad	93256909069254545
	.quad	-5333349381258739379
	.quad	6978718675606340320
	.quad	-2357445559536203993
	.quad	913590890972347437
	.quad	-2422781316488122625
	.quad	428337345820874883
	.quad	4338706825216319007
	.quad	-8227968092431892927
	.quad	747161510755528367
	.quad	-4636135781343364655
	.quad	-6558948015942830762
	.quad	1213537715233079817
	.quad	7285759096898220897
	.quad	5302156611177270957
	.quad	1076360690772073386
	.quad	-784228703015668934
	.quad	2273012305760641344
	.quad	3763532248936424432
	.quad	-4938783363577239176
	.quad	2003243330622949364
	.quad	8723351916784911918
	.quad	-1034873894176069025
	.quad	495549359712213584
	.quad	6958432541445845486
	.quad	7674356092204128350
	.quad	-9101045421165623196
	.quad	-5675472372152227882
	.quad	-5349322769103518735
	.quad	-3948903065611419200
	.quad	6076042605867688571
	.quad	-7085215094567733688
	.quad	2539536564410497212
	.quad	-1815288337669029516
	.quad	-4824054084081806975
	.quad	-3708018163069004331
	.quad	1232877362101843368
	.quad	-174025838586371876
	.quad	5336882271629103674
	.quad	5554112441983541357
	.quad	8772962087907996567
	.quad	854553171308460308
	.quad	3015338247877359270
	.quad	9181358419085100077
	.quad	1370112344474255336
	.quad	-6909676139828665349
	.quad	7972287246728545064
	.quad	-4088964181590306162
	.quad	-8456353487162096464
	.quad	8098608060808448791
	.quad	-6632406825297251644
	.quad	-9099282827966246416
	.quad	-2990183141637282082
	.quad	-8866989715767615441
	.quad	2098168907840746456
	.quad	2063921976437345588
	.quad	-9178935358789146038
	.quad	6482702408130663270
	.quad	-6703257021012160377
	.quad	4665574856545785423
	.quad	-5455756882621750952
	.quad	-4378512869051735688
	.quad	-3617123341505502893
	.quad	-7497277754099295882
	.quad	-3711952175343198407
	.quad	4097885314922330418
	.quad	-1997087347355074683
	.quad	-1587277002121418476
	.quad	-4595639303600296313
	.quad	4174121793208618538
	.quad	-5930879758048189552
	.quad	7491961779786464265
	.quad	3615326485385344731
	.quad	-6692068879874311978
	.quad	-2285242547768070869
	.quad	-2325519829015210960
	.quad	5988738865642454640
	.quad	-4898558297720560560
	.quad	1730966451564516397
	.quad	3189851205260958243
	.quad	3568920474489042147
	.quad	7717280787653342337
	.quad	3313415711246730386
	.quad	4607422129142883607
	.quad	278072683866121896
	.quad	830840258180061490
	.quad	-1484784334683547477
	.quad	7896385585906900106
	.quad	7610238284391475173
	.quad	7231671772874233939
	.quad	2683263032359580188
	.quad	-9027078244007844450
	.quad	3219519494575583377
	.quad	-4734283710071255653
	.quad	7846884648696731337
	.quad	3956598741587246912
	.quad	-8988572285479616750
	.quad	8874013125217690772
	.quad	-5602246142277018922
	.quad	-4278108152682012581
	.quad	5431423402947355270
	.quad	1749760606474503756
	.quad	6370859244620408254
	.quad	977114843763702541
	.quad	-5287471104921645197
	.quad	7058940767564710197
	.quad	-54813766969238968
	.quad	973275295261538921
	.quad	-1258867241112790545
	.quad	-4987768884704916739
	.quad	-2965269146081279079
	.quad	5487792144998142813
	.quad	-9006322206888985409
	.quad	-133983531037886992
	.quad	-6981946773347644795
	.quad	1444449385286554508
	.quad	-6013738916231704227
	.quad	964895564896662942
	.quad	8457290958728547067
	.quad	7044433897330872257
	.quad	-6154070145434498211
	.quad	-4767388975844359409
	.quad	-3331359234307646287
	.quad	-7232411582222131076
	.quad	-478274734613580542
	.quad	-2055405018862152789
	.quad	4538529917059108200
	.quad	591476698864369962
	.quad	-2809198055498864280
	.quad	-6585968312966576817
	.quad	2345063949276584638
	.quad	4299446591224609820
	.quad	-8653252465345279600
	.quad	3829213409407078016
	.quad	7093476337868590146
	.quad	-1654442174072157766
	.quad	4259241238661947872
	.quad	-5220063577357019751
	.quad	546262968745316984
	.quad	-9216750752749428073
	.quad	1663960183766349909
	.quad	1275525774008937308
	.quad	5255530902817623847
	.quad	-4808591531095508385
	.quad	-8747997855414721850
	.quad	-8541662181609005996
	.quad	-3094439378123066893
	.quad	1527883079108513336
	.quad	5890042963344522083
	.quad	-5038772970188785539
	.quad	-6061504444557362954
	.quad	315706510218287516
	.quad	5361117161753711484
	.quad	8824676525356150938
	.quad	-8336015424832988279
	.quad	2601438932627525989
	.quad	3831408338990021273
	.quad	-6935562671540225336
	.quad	-1515926671423694877
	.quad	2145958488286825350
	.quad	-2860045397172990609
	.quad	2899710370260856888
	.quad	1837228996535113378
	.quad	7979185870146503031
	.quad	-5183921230271283490
	.quad	-2425803292498847637
	.quad	2284419571225779546
	.quad	-8259551527776972293
	.quad	1193366311670005261
	.quad	8077078874839326912
	.quad	-372211597195260688
	.quad	-6583158406193105803
	.quad	1920200440769516759
	.quad	6718072901014014643
	.quad	9198377768257311407
	.quad	-304689112514004425
	.quad	2893885872056800788
	.quad	-139611606042926038
	.quad	4555925933619499493
	.quad	-3557140708229839287
	.quad	-2548521848036067401
	.quad	878884802170861101
	.quad	430001626591485427
	.quad	881428142547721183
	.quad	653855015067704092
	.quad	-7067753719242238807
	.quad	5142669130132092473
	.quad	-379975288590201940
	.quad	1655602971889645407
	.quad	-5854794660875604726
	.quad	5042253947031180758
	.quad	271449890388283940
	.quad	-9023600271538825558
	.quad	7219578174182948563
	.quad	-1416397400609355348
	.quad	2891743471387873355
	.quad	6993466202830200839
	.quad	-8191362454331010818
	.quad	7958364630523599598
	.quad	4403899896546857215
	.quad	3942076161850144478
	.quad	3195935263258932051
	.quad	-4501685110626816065
	.quad	-6393678831710275322
	.quad	6578509233654688001
	.quad	886742607971432259
	.quad	8502147563777132214
	.quad	-5447222506863809497
	.quad	-1230529524350769623
	.quad	-1628627663666826531
	.quad	-8227518503056546471
	.quad	9205374019534090202
	.quad	-1617757477651523873
	.quad	1089575570166892706
	.quad	3079144130112884386
	.quad	4682944567048139400
	.quad	7674497449298779575
	.quad	-4309208790143311718
	.quad	-3910677730322291619
	.quad	-8566459959073756044
	.quad	6506938948126849457
	.quad	7404330201841387280
	.quad	6799240548038460640
	.quad	-3049983580903131713
	.quad	-4541687447732578873
	.quad	-3955497890456795451
	.quad	3894544998202185720
	.quad	-335591807026801135
	.quad	4844094449730910181
	.quad	-7196808098438477296
	.quad	-7553718920408304590
	.quad	1948812119696766710
	.quad	-9173127335462089563
	.quad	3420753689821788969
	.quad	-560570289184161457
	.quad	-4174297344130610554
	.quad	-7720651807788810411
	.quad	-1805129974828518791
	.quad	6591686658979060796
	.quad	7579056999807497636
	.quad	4566111124776352400
	.quad	-4001303483889364200
	.quad	5841260956815214452
	.quad	-8985509411210681668
	.quad	4761949640006529525
	.quad	-216920727372799044
	.quad	-2390786613936383203
	.quad	4272222475092786627
	.quad	-196855956122738846
	.quad	4531982814021269346
	.quad	7270238601276019194
	.quad	7318279377964882079
	.quad	5226788506940171017
	.quad	-1608294171631101343
	.quad	3375184937745100689
	.quad	-2126088223126320096
	.quad	2173229791272659780
	.quad	-8630362101943347236
	.quad	-8703924751639838864
	.quad	8779224519997661749
	.quad	2591205872359340025
	.quad	9144644967919881415
	.quad	-7950911969999091702
	.quad	4557264342687723360
	.quad	935865282128150338
	.quad	7120324256648044882
	.quad	-8206879843961796658
	.quad	-5969459098241951106
	.quad	-4391913659927519782
	.quad	-693775592527658861
	.quad	-2364030682188139854
	.quad	-1255414356842016312
	.quad	-7201229668394213707
	.quad	-3287010328476997080
	.quad	-5752077514851542495
	.quad	-7454430298972236429
	.quad	6046508760845509477
	.quad	-1627924489059728562
	.quad	-7982653913018519397
	.quad	1221502600750419478
	.quad	8658907655588546849
	.quad	-2336115182725041739
	.quad	-6945711680476652389
	.quad	3895174794911924947
	.quad	3230698222875450976
	.quad	7264134402609589101
	.quad	-355644028717404272
	.quad	-5194559368063859482
	.quad	8424205723200969631
	.quad	5731735154358029264
	.quad	2157617452419341992
	.quad	3753997642171159286
	.quad	6553292364671628995
	.quad	4814048166016850277
	.quad	6152139240994642263
	.quad	-4379924474130288349
	.quad	7377541740373798192
	.quad	-616161097542493827
	.quad	-800162185668602864
	.quad	8252837592394234071
	.quad	2508742924483223473
	.quad	5332070238932154531
	.quad	-5280758276848156370
	.quad	4409584176627274781
	.quad	-9216490952526444186
	.quad	8784052955551358471
	.quad	6266830413981331818
	.quad	-7555884593300429206
	.quad	738708598357264321
	.quad	-9205570931567449317
	.quad	9152169484987657321
	.quad	-6324313954806214561
	.quad	-4176681338250847873
	.quad	-4569108468674875967
	.quad	8290757161146187542
	.quad	-2884074943715227954
	.quad	2863459447621962432
	.quad	4667306846936560151
	.quad	7796596747769448356
	.quad	5783669575392854093
	.quad	8401187007461225417
	.quad	-8966707325521466954
	.quad	-4249226661996888611
	.quad	4145719120688519638
	.quad	9128276092416158541
	.quad	1708340713838327940
	.quad	-277250536351093169
	.quad	-8627156875348507006
	.quad	-4692584870803788409
	.quad	-1499722200217623909
	.quad	6744240908656573480
	.quad	-8515495903054910766
	.quad	6175955406887631458
	.quad	-2018384811017522746
	.quad	-5244252449389580959
	.quad	9188864732916106228
	.quad	-8748134326593149888
	.quad	3123354328063210716
	.quad	-4914552237214573618
	.quad	6827519734660834944
	.quad	8725212895369052754
	.quad	4833254531559625426
	.quad	5466595832104117183
	.quad	-3047965818633543358
	.quad	6426261194771881163
	.quad	7367476830507660522
	.quad	-9198423712914328498
	.quad	-9013708785597321498
	.quad	-2524566829804012254
	.quad	2424260925240617
	.quad	-7938825307757698085
	.quad	5668202072650201381
	.quad	909658250268303221
	.quad	6512934920610156243
	.quad	952699568774726356
	.quad	-6929751269712155888
	.quad	5045557075616275269
	.quad	-2733162836989590077
	.quad	-2561419572217010181
	.quad	-4777650580223621146
	.quad	1305479754163878488
	.quad	2396875597934398506
	.quad	1825938941520418156
	.quad	5520609739476357963
	.quad	-784167333463481038
	.quad	-2189479970853419699
	.quad	-647772701978756125
	.quad	-4101633463347716603
	.quad	-2587279241249083858
	.quad	4209689073305267642
	.quad	4572419849863661964
	.quad	-2116002547892310939
	.quad	5456771007607263420
	.quad	8798510164381810403
	.quad	-1899560480645001751
	.quad	-7091608478339191837
	.quad	-864833282257840691
	.quad	-6762139657960546128
	.quad	6258778358988144967
	.quad	-1559883479816875752
	.quad	346050865932846353
	.quad	2021912212755763732
	.quad	-7951466153831410815
	.quad	-2551744108103262373
	.quad	1955356210177101833
	.quad	3028097085927971797
	.quad	-8354505621102320509
	.quad	5870909807832998255
	.quad	-3740134022928120685
	.quad	-5546689569734714847
	.quad	-2881761861189916890
	.quad	92799633124268987
	.quad	-5771074462748133703
	.quad	-1312474356328959069
	.quad	-2015147207238709741
	.quad	-8826140619329464405
	.quad	4863903535514388245
	.quad	-2447456504663507873
	.quad	8112135546952741600
	.quad	5330353735277129425
	.quad	7159985813315143306
	.quad	-8354793235745591848
	.quad	-2965099308612177781
	.quad	7077222303895349203
	.quad	-8697986043706818890
	.quad	-2788503209936224866
	.quad	-7878639235305967032
	.quad	2822297800292822960
	.quad	8374362813345313412
	.quad	-1733807780855758299
	.quad	-8478377821001814804
	.quad	871466803961216577
	.quad	7832690613209872165
	.quad	-613466932323737175
	.quad	-7757853312069689456
	.quad	-943598351157885011
	.quad	-3543548155435824733
	.quad	-7995579742145645305
	.quad	-7284457318292521444
	.quad	4144508188652091835
	.quad	-5366224631961340017
	.quad	3745026629844641320
	.quad	-1580440220467051636
	.quad	-5864033170020503029
	.quad	2194393893892489149
	.quad	7907544536956266396
	.quad	7063943212621326198
	.quad	-715293367205523399
	.quad	-6587726112494751643
	.quad	-1453298244498378223
	.quad	4549656703444241202
	.quad	-1568750518326706171
	.quad	-5984863184012280221
	.quad	6202120906821588588
	.quad	2766130068233451740
	.quad	-2537054661052179402
	.quad	3272828023364980896
	.quad	-5539210068113113613
	.quad	7065629942275705493
	.quad	-7836761422625229967
	.quad	-1116400652091653805
	.quad	1746246157222856918
	.quad	5637904591245533773
	.quad	-4123249760460851307
	.quad	8654016154306358604
	.quad	-5125335189865854542
	.quad	-7432096512260685939
	.quad	8275550508531527994
	.quad	7280194780494812021
	.quad	-227270941164069610
	.quad	-8461063207244289407
	.quad	-9218859638886341244
	.quad	8141467698370511496
	.quad	-755900139818979608
	.quad	1512602748331723832
	.quad	-2372828826462564997
	.quad	-6878654126496930513
	.quad	6419130073692391077
	.quad	2398791146481112357
	.quad	5248365489408015164
	.quad	164326186792557513
	.quad	4682024780249537767
	.quad	-4384823767282822420
	.quad	69637361778293230
	.quad	-6100857519780248201
	.quad	7553392412813441939
	.quad	9069266593647979016
	.quad	-3505378894347237735
	.quad	4875370022541981315
	.quad	1983411686382910560
	.quad	4868972925264352654
	.quad	-3621776582248413938
	.quad	9205434611883249291
	.quad	-1550251104174634173
	.quad	8239820012142567384
	.quad	-7446458913278045030
	.quad	1028397949505589985
	.quad	-3603736426343001954
	.quad	3794403298731462055
	.quad	-1854432446292322335
	.quad	-7620077550071686274
	.quad	-6946890902818485422
	.quad	3818076259350406137
	.quad	-7789762186162136323
	.quad	8524078130165576540
	.quad	8211038917993158948
	.quad	214823546394421086
	.quad	-6805893032214268188
	.quad	580737514102263065
	.quad	6671663775243114663
	.quad	-8701714626090777634
	.quad	7253120189451319536
	.quad	7094816614704567483
	.quad	-7536900786094280277
	.quad	-8684776954976889405
	.quad	-2506902577443189752
	.quad	3634569994405736497
	.quad	4348983047921457244
	.quad	-5277790214631414426
	.quad	9072500190247791267
	.quad	-7356544699431424517
	.quad	3503847851309060744
	.quad	-4050955248035705034
	.quad	-3372750509998217825
	.quad	-5566869682003548365
	.quad	-3029715373167263445
	.quad	9125448548374958877
	.quad	-470216926206011834
	.quad	-8789197494427955174
	.quad	-498630996887476068
	.quad	-3850889504740058170
	.quad	1748770834549849306
	.quad	-3854499318516161733
	.quad	1125767318227123682
	.quad	5275599452654174178
	.quad	7184989198232060639
	.quad	4665986703241763755
	.quad	-7162646962754239588
	.quad	6921626998383095505
	.quad	-1510785443023599137
	.quad	-7195840171768358502
	.quad	7245517285973803770
	.quad	-2539041003542817805
	.quad	-852292578741804216
	.quad	3079643485703298011
	.quad	5612894312282726750
	.quad	5336902032288277692
	.quad	-6377366645365093031
	.quad	-326321434088906757
	.quad	8081044096591035790
	.quad	-150673973281491737
	.quad	-742009513173544324
	.quad	-1979887685390543051
	.quad	-6032715982211401449
	.quad	-351434897304116326
	.quad	-2223244436718255273
	.quad	-7118679607668158586
	.quad	-8523178873734304658
	.quad	2863822009182427356
	.quad	1770178361326169813
	.quad	7131308308709572928
	.quad	9147060519728778980
	.quad	5821577832398183091
	.quad	5348446898624032335
	.quad	7406398503300512569
	.quad	2505569181218203306
	.quad	-7688872680325208770
	.quad	3056824912121033559
	.quad	-1815005724263838874
	.quad	-8213725320747676447
	.quad	-1975541377757498182
	.quad	8900821696545568773
	.quad	7203565955615453094
	.quad	-8978472726666840060
	.quad	-4983355011435444420
	.quad	-5276798267826030435
	.quad	-1284459045599798336
	.quad	-2775468732597757785
	.quad	-6199699183398830629
	.quad	4078197200530145626
	.quad	8528040375235228633
	.quad	-1299444230422468732
	.quad	2686132933630431595
	.quad	334448852204016400
	.quad	5636563341880055087
	.quad	3897420469445246068
	.quad	-7877566243974467028
	.quad	8244586887721364305
	.quad	-473250863862049301
	.quad	-362787636786053533
	.quad	-2492278123284943464
	.quad	-5217040733023623847
	.quad	272145233435793884
	.quad	-7869234854870360396
	.quad	1164219584210089188
	.quad	8351939693181747354
	.quad	7569790553145853339
	.quad	-3936291692635885952
	.quad	-850212669811676123
	.quad	4907755765052362186
	.quad	7208923271570692597
	.quad	4165694045315506562
	.quad	353444977888105888
	.quad	3018325487683311712
	.quad	589536923081468739
	.quad	2413611336646404879
	.quad	6392929170129414741
	.quad	-4285757452737553040
	.quad	-8989202194504914542
	.quad	-5352042392854983211
	.quad	8983254701715655248
	.quad	5057138291190127357
	.quad	7986517018560401862
	.quad	7550903087054129040
	.quad	3130773538386328200
	.quad	6929153658180274884
	.quad	-7191631860060284152
	.quad	6201455687976192426
	.quad	6137144636176008052
	.quad	-6668951242970564987
	.quad	-3177297202453056039
	.quad	4336739253770835984
	.quad	1238747034997301480
	.quad	-4577634271980669003
	.quad	4092979069096562764
	.quad	1110211425398357650
	.quad	-3174556231158732817
	.quad	-5535711565062472159
	.quad	5113165524986667714
	.quad	7623839255605771841
	.quad	4564919456537654490
	.quad	-3527723453432488258
	.quad	7862364818901333703
	.quad	5694863192438804232
	.quad	-7331730744916611432
	.quad	2682936141805643729
	.quad	-2436899987323113712
	.quad	-5144728843048774884
	.quad	-3375376702761073793
	.quad	4398110675566967623
	.quad	7062420827951810744
	.quad	-4657469696476824409
	.quad	-8505389790513074360
	.quad	2570559381528286730
	.quad	-2324634301453614421
	.quad	4535727735412122102
	.quad	-2932234943385934570
	.quad	-8613253718538652514
	.quad	-6418722507604039095
	.quad	6349458533674010018
	.quad	-4976719955140002028
	.quad	7867188201997717819
	.quad	6110792121234766402
	.quad	-8528885557942976921
	.quad	1437199905572556005
	.quad	-6339589738618375478
	.quad	-8841745333377030139
	.quad	-5159647441632630268
	.quad	-8179795284252904247
	.quad	2771163062899250954
	.quad	439837157889938661
	.quad	-5360637189083321366
	.quad	2144169333440441469
	.quad	-5263401774449028309
	.quad	-5127947886587402272
	.quad	-4976936152781168273
	.quad	8016524618934701880
	.quad	-6103224089760589803
	.quad	995293902469943494
	.quad	-7111366573381681863
	.quad	-5754100927848073555
	.quad	-9141293885999843511
	.quad	-3562075589338724639
	.quad	-4385552044557373833
	.quad	155461868301239885
	.quad	-8734698278666260895
	.quad	2699564816121059658
	.quad	-8399357330305897552
	.quad	-1395010843774901366
	.quad	-6667281913859425452
	.quad	-2916944036482305951
	.quad	-4803419502776351212
	.quad	-3001832455971108183
	.quad	-2537057903796949976
	.quad	-9132449292778516506
	.quad	-3980171172113006826
	.quad	-2115461238044546250
	.quad	-7395925903075863621
	.quad	-526962149433449685
	.quad	8785325286266329428
	.quad	-4054579026673979576
	.quad	7431337938254358936
	.quad	-2801509947441866434
	.quad	-587393584276470788
	.quad	6188935551174964736
	.quad	3067251779898026292
	.quad	-3762240408853070882
	.quad	-5759621598456447164
	.quad	8019984151197173267
	.quad	5921438776809591562
	.quad	6542289551387157982
	.quad	6297211398577231471
	.quad	6778603934357492720
	.quad	-1084471102271879794
	.quad	8672874592018554823
	.quad	-2928665628167276195
	.quad	-7949713730757568044
	.quad	-1903076282301663345
	.quad	4978008726072070813
	.quad	1673225930928223621
	.quad	8273062939911446888
	.quad	1936638151089648185
	.quad	44602505720759914
	.quad	7839132833110815763
	.quad	-5400987905445029624
	.quad	5375972549477973022
	.quad	-1482592510173805652
	.quad	2871770426902555432
	.quad	-1571390586636613435
	.quad	-8222273375616363020
	.quad	8819401708706934788
	.quad	5040020477421190672
	.quad	-8679837095126507680
	.quad	6795892515822897971
	.quad	-1924664546769543794
	.quad	-8032225282495476852
	.quad	3960383861167861220
	.quad	8534084327075282424
	.quad	5224766315611240197
	.quad	5307413352885318818
	.quad	-5065431758159368707
	.quad	-8118257205252020203
	.quad	-4559941540902432875
	.quad	1339572568772452494
	.quad	-3893161118994057988
	.quad	2342520389548274060
	.quad	8220142026899138637
	.quad	-2112904987161558464
	.quad	1072884614361791695
	.quad	1657121922569474739
	.quad	-664475692279690512
	.quad	-6374257449041603845
	.quad	-2833178378271903511
	.quad	2104280916806408101
	.quad	8467326626171221407
	.quad	-2427329907145195491
	.quad	-4689270854013217442
	.quad	7434711451940677471
	.quad	-8738715256365579813
	.quad	-3293838305166795911
	.quad	7003615103498555363
	.quad	-3724963690050813791
	.quad	5622144923884048361
	.quad	-7731945135865369616
	.quad	-1994235918025232910
	.quad	-8448129487184697869
	.quad	1130259881839496008
	.quad	5561348833118433337
	.quad	-4609790841018184108
	.quad	1198750072036297131
	.quad	-7204780435395077031
	.quad	347326736550517060
	.quad	-6921429598659312691
	.quad	2946017405694102203
	.quad	-1627809762376316523
	.quad	3206761969768917983
	.quad	-1263757287662208021
	.quad	5777593026314692598
	.quad	8062769624830568226
	.quad	-7118003322640968938
	.quad	78229638005066695
	.quad	1411967433927239561
	.quad	2871039183282949314
	.quad	3465142094918186998
	.quad	-4282100380145748404
	.quad	6386904235704679249
	.quad	931435629437735510
	.quad	4496152555914735639
	.quad	820099532545743339
	.quad	-5026755355647133918
	.quad	8948965620484833159
	.quad	7238410427920554862
	.quad	-9006248935627766462
	.quad	-1118581690013609517
	.quad	1870751290505230781
	.quad	-459677885931502341
	.quad	-8494521035228343911
	.quad	-8320334586411424740
	.quad	1181369784146909444
	.quad	8158422380540037915
	.quad	-7553874064396143682
	.quad	5709686117526627488
	.quad	-2102915166822402569
	.quad	-2382953899503675301
	.quad	9076070192754075075
	.quad	4639156357669822592
	.quad	4904064385440242264
	.quad	5942264027390072320
	.quad	-3860700645753918554
	.quad	1886633882927769308
	.quad	-5660639811906982390
	.quad	-1032008650148503514
	.quad	3869682486341171982
	.quad	-1300052175281853559
	.quad	-8560527057536350037
	.quad	-930970453248497871
	.quad	-1174759500981996471
	.quad	2097715321690717305
	.quad	5328035183708920909
	.quad	-5239962307540770608
	.quad	5915693606819932446
	.quad	3870849056297265622
	.quad	-375951918558821098
	.quad	7786839743829304936
	.quad	-4355469508019290802
	.quad	5039742420071412611
	.quad	2322945829654574283
	.quad	7678395717670225646
	.quad	-1050672303109775749
	.quad	4747582460834310767
	.quad	-5059565966951414569
	.quad	7224458787360678986
	.quad	2020583809775623843
	.quad	3803516109208330416
	.quad	-7954420994245837585
	.quad	-201822351127932934
	.quad	6400055933742731191
	.quad	-76531491762828369
	.quad	-7030931128825429568
	.quad	5987324147127294665
	.quad	3106709870210381627
	.quad	3437108621064387068
	.quad	3265644153772373951
	.quad	-4093488268209940667
	.quad	-7117016564843505196
	.quad	5461257448868659690
	.quad	8139681370942905079
	.quad	8439558396411914298
	.quad	7939886940063870939
	.quad	3597929036186322512
	.quad	-5713971677210785575
	.quad	-5146318805979304101
	.quad	2345112231224079293
	.quad	-6119129444413236855
	.quad	-1340641136547143933
	.quad	1702694317559034053
	.quad	4276582831142955483
	.quad	1304336253044853784
	.quad	-129687433103602290
	.quad	-7246270859736254196
	.quad	3937030502759894542
	.quad	2315314353886242360
	.quad	2673827662906962132
	.quad	-8664999490791005549
	.quad	-609475763022455452
	.quad	-8324248616075949993
	.quad	-6461594063839398635
	.quad	-7164599572914941227
	.quad	-4447575337976953057
	.quad	9030771445951876212
	.quad	6423904381826094276
	.quad	6148980837201061250
	.quad	-3825601337055290866
	.quad	1806201536162806753
	.quad	-5884068888173891645
	.quad	5326177198980139868
	.quad	8675433132905478434
	.quad	-7650709987814633745
	.quad	7562073626744691385
	.quad	1491977564717017512
	.quad	8821632341545057929
	.quad	-1737827722666000149
	.quad	9171560460858577216
	.quad	5711973041149612575
	.quad	-2638441408632094331
	.quad	8412173943543358851
	.quad	-5844267703688335900
	.quad	4778674887660148537
	.quad	7524796586818405222
	.quad	5468491023058834244
	.quad	7965536127579551161
	.quad	-8871073515140955892
	.quad	4020611179055350793
	.quad	186082735900253826
	.quad	-7248394603247656232
	.quad	2693853052562145978
	.quad	7977371007734934919
	.quad	1442746893361509157
	.quad	-3366700007082735415
	.quad	9179319344686817504
	.quad	-519559418895946452
	.quad	-1905108688910456943
	.quad	1663389722548868092
	.quad	9157422724003022421
	.quad	4167146676307544690
	.quad	-6404607328970513659
	.quad	6606952994938338836
	.quad	7554398412699794678
	.quad	-6602466825930785841
	.quad	8165791089025933303
	.quad	-3492405537745513893
	.quad	-1752889962231897139
	.quad	2707032230021934480
	.quad	-3502798485413103957
	.quad	-5112781571710693915
	.quad	-7842999341694295216
	.quad	3386903941135274495
	.quad	8507451908469049716
	.quad	-9215567837935840666
	.quad	995464562185179329
	.quad	6396706495754611078
	.quad	1146690753957043239
	.quad	-8893166753971932411
	.quad	7792344637511998328
	.quad	5817280830339508857
	.quad	9088674021849041302
	.quad	7998574055919406502
	.quad	-8529155685431252774
	.quad	-637080681983320035
	.quad	-504309446811251205
	.quad	1772874298389465404
	.quad	4370107650662624631
	.quad	-7460189454223091041
	.quad	6468588203973894704
	.quad	3774089988354632115
	.quad	1977461136333079625
	.quad	-6620902272100438517
	.quad	-3614270029836393889
	.quad	1097012937516800544
	.quad	-1522251108834024834
	.quad	-5720325064116338541
	.quad	3829706524897283392
	.quad	-5178195553101576086
	.quad	8639224448494317250
	.quad	1251633503842168929
	.quad	8646405730060859011
	.quad	7525758827556699239
	.quad	-5665240774388228477
	.quad	3762059070509735358
	.quad	-5542155308724040734
	.quad	518456268741331092
	.quad	2752400776174997580
	.quad	-7112935477124674254
	.quad	4648662245334380237
	.quad	-4151385449012733954
	.quad	-8435599046153369596
	.quad	5896390276696435180
	.quad	-2908907692800302824
	.quad	4672292311318937614
	.quad	-4284734499786692876
	.quad	-8223435299672693945
	.quad	-4690686658319097775
	.quad	6237915970920141276
	.quad	-1506151626808915476
	.quad	7384039773449699821
	.quad	4850301213005388843
	.quad	-1924304881556312646
	.quad	-6182413582089448301
	.quad	5331224384444919101
	.quad	672178755761164752
	.quad	-8445216299092356186
	.quad	2529598226133692987
	.quad	-7834701306218233501
	.quad	2301214552883084212
	.quad	2834890233458992780
	.quad	-3707615250065527808
	.quad	2965193395248314453
	.quad	-1441360112168862405
	.quad	2510904953800463288
	.quad	-3864650664963765933
	.quad	-3516465682462091081
	.quad	-3126968212036779530
	.quad	7915822626743762260
	.quad	-7965688615524523313
	.quad	-2990504369982345343
	.quad	-4366999372964516224
	.quad	-9092679394217252718
	.quad	3292245398668284712
	.quad	-1745252030336873321
	.quad	-1842083058267463147
	.quad	-3607073621973239204
	.quad	5171836492962536289
	.quad	7944447847659794866
	.quad	4510950674181999946
	.quad	4549587383191256253
	.quad	6838593779852526743
	.quad	-1105575772164523589
	.quad	202342743893251568
	.quad	5051255562148132748
	.quad	-1918196695211409756
	.quad	846714991505717840
	.quad	5343401854311866830
	.quad	4049448001096827893
	.quad	2960957445190610262
	.quad	443993272053881323
	.quad	-8725235366671653490
	.quad	3218319820724569090
	.quad	6068796306806671803
	.quad	750419144665626202
	.quad	4009275022270511551
	.quad	4810013488865977907
	.quad	-5356046538404632223
	.quad	-1038573012281611050
	.quad	-4976933510731263901
	.quad	3952372983235223818
	.quad	-5850101823009516660
	.quad	-3494374273887753354
	.quad	6162778131062090729
	.quad	8842391846406351797
	.quad	5957391081775556587
	.quad	-3632023250604876944
	.quad	5694517343461090785
	.quad	-8021169551666454221
	.quad	1945065904870666852
	.quad	-6409417599908893588
	.quad	-6092693438800036354
	.quad	3535155129343370103
	.quad	5310920886071666336
	.quad	1055043820487487862
	.quad	6028312157570371970
	.quad	-871880922033906229
	.quad	948140388141931827
	.quad	340362439278835363
	.quad	-4945805000909578682
	.quad	-6804607987935100655
	.quad	-7492868135915356808
	.quad	5702433021340640425
	.quad	-2796024058807070635
	.quad	-8959553578106172962
	.quad	317883197055036560
	.quad	1497127512412966214
	.quad	-7154474103160294190
	.quad	-4526029355471879384
	.quad	1363993524078475237
	.quad	3687544717271789391
	.quad	-4349211919459137413
	.quad	8367320351336033564
	.quad	-7357071613145543916
	.quad	7999875949142277906
	.quad	-1878063146786054049
	.quad	-636951821227820217
	.quad	4609128695893508288
	.quad	-3737010104854267721
	.quad	9055736859868083557
	.quad	7506614498775259821
	.quad	-1474722667723271827
	.quad	-4267665645432476901
	.quad	2519142160594259434
	.quad	1172522948935960609
	.quad	-1324469237126063950
	.quad	-7242020533957430118
	.quad	9218356895801185904
	.quad	3822860454130121325
	.quad	6204789380951138077
	.quad	5483304947150470319
	.quad	6234165851593761932
	.quad	7706134011846390056
	.quad	-1100394524724209604
	.quad	8312026449045331808
	.quad	4456563304879214387
	.quad	-998938104062063377
	.quad	-2877388794196154195
	.quad	3927746316404254574
	.quad	-8473503130727340663
	.quad	-4324442568749066472
	.quad	-5197386380192261171
	.quad	4259646940372475995
	.quad	-5290158942957935596
	.quad	424701295260668232
	.quad	-5440677898456492427
	.quad	1905190562794428863
	.quad	7358363376146788424
	.quad	-5647116567983496095
	.quad	-4876814520714759057
	.quad	-3960457392491602352
	.quad	-2879009502311656977
	.quad	-6315199050263475963
	.quad	7874081159348850583
	.quad	1654777304807129341
	.quad	-383173118438283576
	.quad	-5799559830310636296
	.quad	2488334697091689547
	.quad	5887390521160394719
	.quad	-7897797640798940550
	.quad	-2320648946626980698
	.quad	-1497079987336688423
	.quad	4533688665305562776
	.quad	-5627550024913223323
	.quad	1806091596432395804
	.quad	1492746217591538906
	.quad	7191986399506467205
	.quad	508985777468571516
	.quad	5639416630041199306
	.quad	-1388581722228079075
	.quad	-8138337803572141265
	.quad	-2234625226559779
	.quad	-5937235025623425061
	.quad	8343613342319774737
	.quad	7902938427788958534
	.quad	-8521818350734699731
	.quad	3762983399809982874
	.quad	3397026083592781307
	.quad	-7371127848999493193
	.quad	8315334750077202986
	.quad	478644561729427557
	.quad	-7891401464053800960
	.quad	2978043972943208297
	.quad	-7371411816878552663
	.quad	-4183839396288537817
	.quad	7844594931517185063
	.quad	7603493652899569874
	.quad	2998342559560101796
	.quad	4181002334605258413
	.quad	-8924089334326079085
	.quad	7767882221970985376
	.quad	5050103947529988887
	.quad	-5434997349527294250
	.quad	-4242428476334968729
	.quad	-7729656117871979215
	.quad	5916467729646729690
	.quad	5982210899703487625
	.quad	2003505906675905609
	.quad	-853529387923495526
	.quad	-556122200835810789
	.quad	-1453795445220184804
	.quad	-8187030321005909693
	.quad	2116063253535766674
	.quad	-5654570314938605996
	.quad	-7088889706540211955
	.quad	4502375174987631263
	.quad	-7072207796628450170
	.quad	718846097450449491
	.quad	6555869089578359747
	.quad	8571702699293548804
	.quad	-6270698637992368459
	.quad	-8526632120114892862
	.quad	4914446267384895896
	.quad	3456621504389794051
	.quad	3209089087085827811
	.quad	-3632709941105063906
	.quad	9037107581323458538
	.quad	-2201067208096502564
	.quad	7421214078090311462
	.quad	-578107485370343369
	.quad	-6936322025238254983
	.quad	-1360648630977151454
	.quad	8512359070989528034
	.quad	1868673278763480056
	.quad	-1829845328493822150
	.quad	-6868812080090257074
	.quad	-7790148579354581734
	.quad	-6117456017114652034
	.quad	-1752155791463121206
	.quad	2617795205881155385
	.quad	6476785536789935635
	.quad	4890539548765279384
	.quad	1189879163062651206
	.quad	-6388283618426327329
	.quad	-1452790797684782787
	.quad	-6421153345906024233
	.quad	2672535181364381995
	.quad	2183111709986676538
	.quad	-3624222458234488277
	.quad	-7827998334254959589
	.quad	-8489229001264681952
	.quad	4797521918890127374
	.quad	2091987761465471994
	.quad	6392910087868868607
	.quad	-6035336180593994077
	.quad	7126593110994889416
	.quad	-250627010328083060
	.quad	-6343720875429668930
	.quad	2546074374964458988
	.quad	479971841863650316
	.quad	-9044337892658252451
	.quad	6023414524489950848
	.quad	6436497587248608591
	.quad	-3700845873145818129
	.quad	1287005331104127503
	.quad	-4523658224198221624
	.quad	6095200789752830578
	.quad	-3945455079766597250
	.quad	-198807820021566016
	.quad	-7559596254124701861
	.quad	448495588325665814
	.quad	689421321119265281
	.quad	3875814945149578299
	.quad	-5593614660658673408
	.quad	-1468317375445827388
	.quad	-4339296554698780644
	.quad	4582720743315312164
	.quad	-166324246567299600
	.quad	-5066114651960417626
	.quad	-1659801900260867695
	.quad	5929601960379909803
	.quad	6715621236552343797
	.quad	-7254220556639799660
	.quad	228125323996215945
	.quad	-8934137102549183164
	.quad	4951629227806374595
	.quad	-3293346862854260557
	.quad	9001311485461580562
	.quad	-4797627932954466648
	.quad	-1409399311941302337
	.quad	2812010804144207241
	.quad	-1252534795471303426
	.quad	-5704923263967455022
	.quad	-2719441757827306176
	.quad	-687101388243301191
	.quad	6494986764364646710
	.quad	4306771538765980878
	.quad	-4624840182037871751
	.quad	-991024962510007170
	.quad	-6214761662859946703
	.quad	-7071692239993553045
	.quad	-4757299320421224636
	.quad	-3578775973928613172
	.quad	604956412998262549
	.quad	3385166660012372899
	.quad	660232945556113383
	.quad	553849736682222266
	.quad	-7214205892603055689
	.quad	-6585567391800315620
	.quad	830114321507110720
	.quad	-5314538981038779321
	.quad	-3128456750817187572
	.quad	9027539547229346224
	.quad	-817360192483587442
	.quad	-1278902755757501271
	.quad	2169650970520181403
	.quad	-2211018752132494719
	.quad	2279866648033265522
	.quad	2193236597890728283
	.quad	-4173926933356697017
	.quad	-8447110932299011720
	.quad	-5035837895853120014
	.quad	-474579040801213137
	.quad	-221013151652042233
	.quad	-5759529570030929675
	.quad	-4018780010892742813
	.quad	5568600411121238547
	.quad	-2746689010243879979
	.quad	977769837757981554
	.quad	-226177475178028325
	.quad	427745208504293605
	.quad	1234383672932012638
	.quad	-3114071862108087203
	.quad	-8643148184799853533
	.quad	7287875718590829462
	.quad	-3338013964725610613
	.quad	-5710171901784594368
	.quad	-579785544692300711
	.quad	-4423989871719683860
	.quad	-744350262508419431
	.quad	-7080369499788720304
	.quad	81590945660392134
	.quad	3339836125719372590
	.quad	6176339191258224503
	.quad	-4948359471075378693
	.quad	-1066225427151298547
	.quad	6505222573402454298
	.quad	3404196177841425416
	.quad	-5581032960933334096
	.quad	-3687867043872116838
	.quad	381894003799415865
	.quad	7359522662009799774
	.quad	-8049248673495531311
	.quad	-6400192968679371450
	.quad	-8616718911987571228
	.quad	3126930293278768930
	.quad	6937684695030383923
	.quad	6788415662323122504
	.quad	-5423612126502355848
	.quad	1765485648650783071
	.quad	-7232447563715227610
	.quad	3318178923758791339
	.quad	-4775368615084440496
	.quad	1444699827005665263
	.quad	2335022132891488024
	.quad	-598651804563932173
	.quad	1477903132694431780
	.quad	3234694567617715857
	.quad	-7171387203322504334
	.quad	-102700406770326973
	.quad	5295291656986072404
	.quad	-5122807498212607378
	.quad	-348966580683181088
	.quad	398882723487597643
	.quad	-7984579277179731259
	.quad	7704526739683689547
	.quad	-6008684905684380223
	.quad	8163001730991802064
	.quad	3319372757738711275
	.quad	-6928728812002226355
	.quad	-6670498412902837369
	.quad	-317643585441540056
	.quad	-3056814729948254187
	.quad	-3902451420750387462
	.quad	-383424710595447183
	.quad	-5013599125042451433
	.quad	462314076175867487
	.quad	1862686058702915115
	.quad	-850630152750932127
	.quad	-6525919594051250238
	.quad	3786905428099710821
	.quad	-7333979784386645505
	.quad	8817260450068629272
	.quad	6518847791514184438
	.quad	-3853056748652211833
	.quad	-428162752376744141
	.quad	-7065243873270701925
	.quad	-2411145102875095499
	.quad	2963729681240608594
	.quad	-2362254062968593096
	.quad	-3951256619042351589
	.quad	8766968983600186491
	.quad	-685191436149686409
	.quad	1627990514575768192
	.quad	2056254186648603335
	.quad	-6303727498699585947
	.quad	3290271983033386616
	.quad	4338404082685850854
	.quad	-5786299101234285493
	.quad	6345409453044955404
	.quad	-5167874932930894262
	.quad	-8383738906127788830
	.quad	-250064817607063752
	.quad	3825253214861912787
	.quad	-8988878286980773798
	.quad	6037526596966934934
	.quad	-8694098061472709349
	.quad	-7900527982013820233
	.quad	8549233960013339047
	.quad	4153543172704831188
	.quad	5303950317664091150
	.quad	-1037101885569613858
	.quad	-6310849725407264558
	.quad	-2002002830289632865
	.quad	-4510858256398227293
	.quad	8496908197501732703
	.quad	-6283426350420708106
	.quad	-1555390636794236931
	.quad	-7101334845756971176
	.quad	-3781650391590238243
	.quad	-5111220549306928607
	.quad	3858282933954442284
	.quad	2019151865957322357
	.quad	-1146917822195829802
	.quad	-7109550591296431258
	.quad	7199125468972147655
	.quad	4168420842704770545
	.quad	338440394515115377
	.quad	2102734009665481092
	.quad	-8674018389236135151
	.quad	1247616337419130000
	.quad	4222072446972129729
	.quad	4836898447189504007
	.quad	9154346000276664999
	.quad	2816381186521523412
	.quad	-8256095182381445591
	.quad	-575818875364049571
	.quad	-4339663238955354860
	.quad	-7609196603747344810
	.quad	-3575083567869983819
	.quad	-5874017311654950590
	.quad	4083651569562328089
	.quad	-3797342702970564298
	.quad	-8402662394816739821
	.quad	1306517740393103656
	.quad	-1860676790259061994
	.quad	8211832777731897494
	.quad	-5597350214538264667
	.quad	-1119217520901768598
	.quad	-4275039454180053378
	.quad	6092148090444096714
	.quad	-3211902060276491583
	.quad	709553473555292079
	.quad	-8142676631724735078
	.quad	1742803888166609758
	.quad	-1280084761690869461
	.quad	5838691653383937200
	.quad	7394833470478898362
	.quad	-5597690683463993726
	.quad	-5753012996647931922
	.quad	5891211584023409476
	.quad	1008960642219209210
	.quad	-2853350201522337229
	.quad	7381248773473326001
	.quad	-1887087986914123057
	.quad	2106025108820858934
	.quad	-3540632837713910651
	.quad	-3968115131876415368
	.quad	-2468870032804714883
	.quad	1891950175445805402
	.quad	-2661137468661221007
	.quad	4488747986308749471
	.quad	-7330466060275154151
	.quad	-3322567943254691409
	.quad	4347667984894353308
	.quad	2129883711661222690
	.quad	1076488804494872856
	.quad	-3386775695954252421
	.quad	-6065806763331055374
	.quad	-2021263190438607508
	.quad	4769192332535557551
	.quad	-8058439028279051872
	.quad	-5286689677534954786
	.quad	7824971287746762292
	.quad	7361927771779195896
	.quad	-568612740469193723
	.quad	-8730397319196098042
	.quad	-4698329671180166299
	.quad	-6735070705030805652
	.quad	-1974159749327031730
	.quad	8553482596123775980
	.quad	-5819723451506170101
	.quad	-7671955387639206947
	.quad	6271789114731522097
	.quad	6270586844349642345
	.quad	5584690155569770537
	.quad	-8968217547390014442
	.quad	3405597782572827563
	.quad	-1916261133092041261
	.quad	-5455882114391405193
	.quad	-887666106734989220
	.quad	3164577282519516734
	.quad	758086112504548103
	.quad	6015569127788895973
	.quad	-1311568830772429435
	.quad	2324331718708219787
	.quad	-8191336008638216418
	.quad	2384996481315588922
	.quad	-7767296956411732541
	.quad	3734157461055440416
	.quad	1635042286365643780
	.quad	-7124934395936612620
	.quad	2373960964139986040
	.quad	4869129159740273704
	.quad	-6528699488895668695
	.quad	8760278563712777800
	.quad	-6149246662341505682
	.quad	5886258641619175871
	.quad	2557915738750788299
	.quad	-4963668682757253756
	.quad	-8260298851861044344
	.quad	967810313648752463
	.quad	-1765086258970534578
	.quad	2045405432090866328
	.quad	-8973310054751577144
	.quad	5549808619751464269
	.quad	3650191693776946828
	.quad	-2641109523972842875
	.quad	-1682556776353002949
	.quad	6849534466635874363
	.quad	581692797341213552
	.quad	3808972973297233446
	.quad	4205492649594739461
	.quad	9027601243885341831
	.quad	4650452839331426681
	.quad	5041781508143323153
	.quad	2035082054318980005
	.quad	-7438573043437607534
	.quad	-3150770523933466722
	.quad	8150873746601283651
	.quad	8017271980921908229
	.quad	4899654767305073834
	.quad	-3189242123224909925
	.quad	-1081412800731111550
	.quad	-3864229325385125444
	.quad	-3718945788851479950
	.quad	-4041213154743819878
	.quad	3401772073425335234
	.quad	-8450843849757750224
	.quad	1728487780101337274
	.quad	-5818284357572110939
	.quad	702851616085822705
	.quad	1574787209388253762
	.quad	-5853589715562277310
	.quad	3180828552573045472
	.quad	-748173795124111154
	.quad	8986722854533057232
	.quad	4518665117523514004
	.quad	1718699978312382231
	.quad	-1473669543362281652
	.quad	5684175730451960274
	.quad	-1218094552078313143
	.quad	-6434309395344451957
	.quad	-4256796268441404157
	.quad	4207338604406780034
	.quad	8027542420733233357
	.quad	6139833249454984664
	.quad	-3081783488253083443
	.quad	4025723465418391884
	.quad	-8739581325358984534
	.quad	2897180423141326703
	.quad	-4755470996895208472
	.quad	2967066815351306232
	.quad	1032540647518716635
	.quad	-2081027833720076840
	.quad	-8943077939414318849
	.quad	4599017511227366879
	.quad	-3971722911938596037
	.quad	-3977641369527540226
	.quad	-5980621061380362891
	.quad	-9076711153833566208
	.quad	-3874951109238583061
	.quad	-1748788674090918537
	.quad	4167943022372604313
	.quad	-2846447687912303535
	.quad	-1878080807544332024
	.quad	4512626226592149712
	.quad	-4871633857322482440
	.quad	-4958081430211624433
	.quad	-8773596749225301012
	.quad	143936220816719815
	.quad	2307325398241477161
	.quad	468315224038772027
	.quad	-703161443584951025
	.quad	2511864769977029865
	.quad	-5782638420275222646
	.quad	-9174218707948046019
	.quad	-5610499795597210327
	.quad	7309410741000601290
	.quad	487377307569123411
	.quad	-6865929035056728892
	.quad	-3249166580292055266
	.quad	1476494936296433813
	.quad	3408612621327299295
	.quad	-6813987403896294052
	.quad	-4150024176488848040
	.quad	2241234207239321749
	.quad	-6208769673953867397
	.quad	-2193108942136472050
	.quad	-6553872893837025537
	.quad	474775576052695633
	.quad	6092103775414825322
	.quad	4034370965534181218
	.quad	651682671549181006
	.quad	-8653442892946501288
	.quad	4947493656855498307
	.quad	-552933453849822219
	.quad	5310015287975790637
	.quad	8492025373682814159
	.quad	-9105181310575320656
	.quad	-8342385853404036738
	.quad	-901339283134612157
	.quad	-2709679939610756590
	.quad	3880597485411313924
	.quad	388663918823974597
	.quad	-3413828614803450433
	.quad	7534133815693908534
	.quad	-2804632272504897612
	.quad	8753759884853574310
	.quad	3429381080959589394
	.quad	-5361925617688872468
	.quad	-1454853732543298464
	.quad	-186054924961138576
	.quad	4552819104652960668
	.quad	965170717686924337
	.quad	-555980716098680436
	.quad	-857744546496554027
	.quad	-4470980263816208664
	.quad	5109669798963414493
	.quad	7891916061794044612
	.quad	4789971769354067287
	.quad	-5397082332429328568
	.quad	7737575215177651612
	.quad	-27205477229483503
	.quad	5387322057391814779
	.quad	6873996899255220217
	.quad	7444520579474403393
	.quad	-7269769902176659092
	.quad	-918026381562185408
	.quad	9124458064142451478
	.quad	-5399618361457664513
	.quad	6463859133854403980
	.quad	-6283029464782976097
	.quad	1018022589444930561
	.quad	1736262463418943433
	.quad	-2780835487752290047
	.quad	8814123147308650486
	.quad	4798595000205497714
	.quad	-6666270772421151133
	.quad	-503849375316239643
	.quad	-1953463351061847119
	.quad	-7304247268090498480
	.quad	3782991204244399378
	.quad	-6568988403455108772
	.quad	-7608317452495109139
	.quad	-5361290290658513986
	.quad	7506024921976923590
	.quad	5624217973379693717
	.quad	1727881279508834884
	.quad	6843292805721229768
	.quad	-3725351577929650154
	.quad	-2707487187513736757
	.quad	4955780690636679890
	.quad	7941019297099640360
	.quad	1441357539154557956
	.quad	7111672664209538454
	.quad	8237556418495661751
	.quad	9021758087851470673
	.quad	2932592450820088474
	.quad	5416670637647340083
	.quad	3951574843246087479
	.quad	6843235158796836869
	.quad	1679075860853192334
	.quad	-6934136693858766313
	.quad	8606478479964129549
	.quad	-7091237397011261062
	.quad	8638706560448426692
	.quad	-7131795648489426609
	.quad	192055228531777598
	.quad	1407009579456262795
	.quad	-107267637227536543
	.quad	9075320485275485179
	.quad	-1240808418679376350
	.quad	-589551813167536287
	.quad	-4353452225069034000
	.quad	-2436426664190195493
	.quad	-3846131927482512364
	.quad	-6526386769413394630
	.quad	-5160695579402122814
	.quad	9003344338654830342
	.quad	-4293260945207946623
	.quad	-3329574482932206
	.quad	1307798988667786279
	.quad	4422280407538765508
	.quad	1295189585361403916
	.quad	-5420657019221710048
	.quad	-3723281104781378101
	.quad	-1627216487804374946
	.quad	-6170494205238537503
	.quad	704632371442174697
	.quad	7130955172625459834
	.quad	2762999254615685549
	.quad	3033513272250111537
	.quad	8182043271562487403
	.quad	2784400402546744378
	.quad	-2556728323966500465
	.quad	2721137876244951114
	.quad	5096506081391833837
	.quad	7797931926335359630
	.quad	-6757291489810970484
	.quad	-4341959994356365606
	.quad	3188967683935096888
	.quad	6589040881686253306
	.quad	7429302943422186806
	.quad	-3184375036106913493
	.quad	-1914280695051451454
	.quad	-8428083436870973205
	.quad	3308707780785413354
	.quad	2622721071028385684
	.quad	6712191271736731715
	.quad	-7116512673366189616
	.quad	-5906569318635052528
	.quad	-8086127885580626567
	.quad	3458938550662172118
	.quad	-8463197035362572263
	.quad	-3460425339250232065
	.quad	6345635939240236679
	.quad	6320686366534231970
	.quad	836607869023918807
	.quad	-6684188272505386555
	.quad	3360409991410656638
	.quad	-7956287597590956754
	.quad	1264871196823308409
	.quad	-8171379152493623082
	.quad	-2478945153466990485
	.quad	2662350626873937973
	.quad	-3700512231607360983
	.quad	3622710091833101572
	.quad	-5820094152950289351
	.quad	7005023704205322451
	.quad	8825692535315999015
	.quad	4515463777365688013
	.quad	-8842332124679267111
	.quad	440641657645532650
	.quad	4470852339723212989
	.quad	5451288850035902531
	.quad	-5087178169780625843
	.quad	-7784905818485317395
	.quad	6485870775273726843
	.quad	-4898757303574699890
	.quad	6174172260496522636
	.quad	-3254742470214982409
	.quad	-2895116878598292249
	.quad	-597386153527989221
	.quad	-5575904251607309942
	.quad	-5389819749511764140
	.quad	-3337067872443716818
	.quad	-5471779393303526523
	.quad	-5605131658155093739
	.quad	2986633967268013902
	.quad	7784528370145486474
	.quad	5638894794931460077
	.quad	4394969769720985242
	.quad	3445678376101672818
	.quad	-2342145381915627435
	.quad	-8357160309608723858
	.quad	-1924760966206795711
	.quad	8951239312247674960
	.quad	-2273963783395045333
	.quad	6024364507532794579
	.quad	-6465691782964338691
	.quad	-4211643795657473289
	.quad	-5534238201691615594
	.quad	4228821405313065812
	.quad	2097279962856941481
	.quad	5542690235350104224
	.quad	-1393795597606419058
	.quad	5490601729308261293
	.quad	-3047764085866646380
	.quad	9213871028544712219
	.quad	1420229316053387607
	.quad	-4634159216197249579
	.quad	-7887484856181726528
	.quad	-8036327547924420541
	.quad	6815123236701278368
	.quad	6160442936745831892
	.quad	8260371745376005388
	.quad	715614132817606668
	.quad	7741929556783214361
	.quad	6266561134278568728
	.quad	-4450206280963083222
	.quad	-5330364242893668288
	.quad	2211651477381149612
	.quad	9062315051065215908
	.quad	-7516619705901254921
	.quad	801350860542496396
	.quad	2964204753961703614
	.quad	8949490923996776803
	.quad	3278451740447342689
	.quad	-1535872508790098340
	.quad	2212637711439965528
	.quad	-4229093890647623200
	.quad	540869510933311267
	.quad	6195450915592159668
	.quad	-3542556716409728171
	.quad	5215400274033728644
	.quad	6907285779833076435
	.quad	-2642521387838364225
	.quad	-5174424652479765101
	.quad	-2483749417634693353
	.quad	2523119338602716176
	.quad	-7755138544074592155
	.quad	-539568000357681780
	.quad	5804534865877205368
	.quad	8980801106606720594
	.quad	7109712265632787429
	.quad	-7322339932157073485
	.quad	-3128405921520479099
	.quad	4067893425297764249
	.quad	1697503410612817642
	.quad	219476584157335935
	.quad	-5339917979956515094
	.quad	-5396998865226765856
	.quad	-6614512874219159947
	.quad	-4730711408005503150
	.quad	6733271595318157805
	.quad	-5854760960794788398
	.quad	2692612385316724002
	.quad	-5006348630470969705
	.quad	-4192431076694089473
	.quad	195217663808039862
	.quad	3206602713992585491
	.quad	-7953415904656956982
	.quad	-7819662185895737957
	.quad	-7058080577745410862
	.quad	1823051796271862577
	.quad	-5970343489343252848
	.quad	-4737595986728870392
	.quad	4023418280354022922
	.quad	7805776130903851852
	.quad	-5372159537487352960
	.quad	-5134211724266119464
	.quad	2478543534103180171
	.quad	-7246065153488663774
	.quad	8935143355111342464
	.quad	-8920892455069494635
	.quad	8949847226595469955
	.quad	4105142520778351926
	.quad	-6457703574968285929
	.quad	-7461261363283549778
	.quad	598034896692782488
	.quad	-6216201373540990997
	.quad	1496676485546951232
	.quad	6833695919100964828
	.quad	527254545105454187
	.quad	6276811762216173921
	.quad	-5379908903588395566
	.quad	4537567556032040856
	.quad	-8849524168288568347
	.quad	1032174733563594189
	.quad	6941539428693779805
	.quad	7179634603570987050
	.quad	3875564842501240949
	.quad	-7497269715827151455
	.quad	-8994409181781220307
	.quad	-3239266657223187898
	.quad	8081596400773698461
	.quad	7528187414539292243
	.quad	4773782664413845594
	.quad	-9010921658825197817
	.quad	2722451711480791323
	.quad	-4804495973674141347
	.quad	-1876231111717263107
	.quad	-2661903137697938656
	.quad	-649105812492176488
	.quad	-7857619598038216786
	.quad	-1598303101587841717
	.quad	697679021479737566
	.quad	1456738239410270672
	.quad	7214966028857473701
	.quad	-7012586633755829183
	.quad	9090860151661100670
	.quad	8407869262026581159
	.quad	-564196689860143630
	.quad	5277257988019769029
	.quad	-6982890492884209433
	.quad	-4839254238209476149
	.quad	-1567943076210600865
	.quad	-2387446669000184210
	.quad	8426877510924536482
	.quad	-3176791464912766061
	.quad	6256768900860981984
	.quad	-5304088279994849543
	.quad	-3880403681752377698
	.quad	-1299678790005360507
	.quad	879106195264399
	.quad	1169887957113173798
	.quad	4936710663791789838
	.quad	8029349457377894665
	.quad	3317691225106441967
	.quad	3622769674498678594
	.quad	1954144360900150482
	.quad	1432045977341997899
	.quad	934737636789214593
	.quad	3519438486034584001
	.quad	-1511735215630590603
	.quad	-7249193141754117179
	.quad	-4346736986072738205
	.quad	-7350562603916953200
	.quad	1355325916242161182
	.quad	3003143504356161310
	.quad	5855778258533244174
	.quad	3469569649879539425
	.quad	2734409579230557820
	.quad	-7203642355248588394
	.quad	-3997348521084376751
	.quad	2832531264658408884
	.quad	-5710690477975972563
	.quad	8514265014627300817
	.quad	4646556172848350801
	.quad	1035318057221356651
	.quad	-1775484944718481883
	.quad	933190532640544326
	.quad	-8373653153989122246
	.quad	-2148552245706004670
	.quad	89465711115503243
	.quad	1726024123088964037
	.quad	6293688775358665990
	.quad	-8800562480627361093
	.quad	-2378726662544170118
	.quad	-5126816483663615051
	.quad	6113055520205251774
	.quad	5576373032696512038
	.quad	-4566399571994747420
	.quad	-6424537144230340355
	.quad	7387979357081975315
	.quad	-4093421742483678992
	.quad	-4308837513013230210
	.quad	-8848902264582405286
	.quad	-3967579357324101300
	.quad	-55858627042098015
	.quad	-4657142706685363919
	.quad	-7847174601288645541
	.quad	2183893278236533867
	.quad	-462698268772380697
	.quad	3008713646989855019
	.quad	-6960836275684254203
	.quad	-4066003154656574675
	.quad	3447658178143557676
	.quad	9095585806057103587
	.quad	698302327819557146
	.quad	7922185712178340950
	.quad	-5854221870058507151
	.quad	1491459000495558958
	.quad	-1458707369613662804
	.quad	4620491143241098446
	.quad	3378886739158384486
	.quad	4601357523445825298
	.quad	7994566595487207192
	.quad	4507705687201434902
	.quad	-4892853079798024975
	.quad	1237937561304731611
	.quad	-7393092732854552802
	.quad	8737874920379363783
	.quad	-3032235847707664698
	.quad	-9135220756578863809
	.quad	-6366001250992843382
	.quad	4715194040021784977
	.quad	-7032935979777614385
	.quad	8917864246709968658
	.quad	-4892436583463688090
	.quad	2827250138133094370
	.quad	7637229863299622584
	.quad	6947884496333162143
	.quad	4815638417787805223
	.quad	-8154940280948704737
	.quad	-5812695482623698070
	.quad	-4125016027784657629
	.quad	-6117996628423369213
	.quad	436433860116637979
	.quad	5910966881246245784
	.quad	-6968591672582549237
	.quad	-2489983198397662749
	.quad	-8866402586094578443
	.quad	5405380974793160831
	.quad	-1206127466486675853
	.quad	-39682511465235984
	.quad	1777973921117407170
	.quad	6264824459040652928
	.quad	-179515901874375892
	.quad	1278124974392461846
	.quad	-2347329283277809301
	.quad	-1264611237659950086
	.quad	1486820395924546410
	.quad	-4357696891344791126
	.quad	5375431386740917568
	.quad	2352352269256972682
	.quad	6220398075470064021
	.quad	-7002010395493474244
	.quad	8173002234516562536
	.quad	2862732059898640615
	.quad	-1961304166946963570
	.quad	8431038226899400253
	.quad	8931540904642954995
	.quad	792388953489761723
	.quad	-9150725087138682251
	.quad	406447163304028453
	.quad	-5176351898873252634
	.quad	7772216409762031099
	.quad	334915652033124323
	.quad	-8741680184989307198
	.quad	-8617663196574981246
	.quad	-4646487284822472549
	.quad	6121678265481939341
	.quad	-6698788084981683694
	.quad	-2884839816190529397
	.quad	-6527496859838161385
	.quad	-3388511422771972905
	.quad	-1937309022763241900
	.quad	4585646383560577121
	.quad	7109079914182671169
	.quad	-7376143309263379215
	.quad	-5234279674199612942
	.quad	-389115952769949591
	.quad	7896339057146013415
	.quad	-832998389312957881
	.quad	4238258305077796259
	.quad	-3008104508938157328
	.quad	1482402451684594916
	.quad	3104492350488980260
	.quad	5195487229736262641
	.quad	1361150797580203482
	.quad	-1973599295881903231
	.quad	1226441665397311636
	.quad	-6858892294707377980
	.quad	5723433682141598491
	.quad	3818559725806959172
	.quad	9177247615754603193
	.quad	-8915718317156274015
	.quad	1716800965379459594
	.quad	-8170311407623520231
	.quad	-3819291997874884869
	.quad	-446069450372666325
	.quad	-3118357651276752379
	.quad	-307188022131801204
	.quad	2213209867616444127
	.quad	-8849529337097926336
	.quad	2458176131336755868
	.quad	-1328937962917128294
	.quad	-2559321887065551412
	.quad	-238346356655581171
	.quad	7361598408210891485
	.quad	-4628189350279343778
	.quad	-5630734047903464418
	.quad	-563679137616863405
	.quad	1716893191215908273
	.quad	-2496888745773006606
	.quad	-2554131008907250204
	.quad	7776232754624386979
	.quad	2193423430757249310
	.quad	-7694888739195648938
	.quad	-4674653697358607516
	.quad	5644047706587449960
	.quad	370992037484721524
	.quad	-7649136398567920906
	.quad	-1821149170576034726
	.quad	4419277245854893028
	.quad	2258389314023537326
	.quad	-1688300110402938317
	.quad	-3157013169713038027
	.quad	-1322480412524305625
	.quad	-2584726491422592625
	.quad	-6173874147670556026
	.quad	4569089761627301260
	.quad	6495211060884501138
	.quad	-7322167751416632339
	.quad	-131945848784455453
	.quad	-5214412490997513403
	.quad	4402693571738173484
	.quad	-9062443023743867620
	.quad	-8835717279798746078
	.quad	-7294741342426052869
	.quad	-5917899482382496810
	.quad	1485961507414531975
	.quad	-5625850167306780998
	.quad	-2198336506628460246
	.quad	-2652665342810860159
	.quad	-215441127727259213
	.quad	-2116790512600813233
	.quad	-3893682707493369124
	.quad	5112198484879130320
	.quad	1893048255589705004
	.quad	-6977065213673207601
	.quad	8992526488267920066
	.quad	-238498514404730098
	.quad	8980963391041920447
	.quad	-752122365925388446
	.quad	-2128873128532305594
	.quad	9173265111786762052
	.quad	761657177655159269
	.quad	4876597178189658673
	.quad	8185879737091523833
	.quad	7520213092991049248
	.quad	6827963030155074898
	.quad	4104149897263226969
	.quad	1008830393844825523
	.quad	1692548451180187046
	.quad	-7461819570410088531
	.quad	3526468436911084942
	.quad	-434700122081092970
	.quad	-3265520085931015918
	.quad	-430583277074267047
	.quad	1524865955503524054
	.quad	7479709667052337482
	.quad	1064851658558537015
	.quad	-4042562635335541305
	.quad	192685278892740648
	.quad	38546070651855709
	.quad	-1439991157768052765
	.quad	7120034574635007914
	.quad	5783711159088718530
	.quad	3503029393593618754
	.quad	-7710551937047409360
	.quad	-3002884465580572948
	.quad	271805305647187927
	.quad	8244170003029416464
	.quad	-1429672570671163170
	.quad	2536084345379259313
	.quad	-3221206015120251341
	.quad	8678606365257418773
	.quad	-5188593840195489883
	.quad	2723558813685301173
	.quad	-7012081408584030779
	.quad	6896657278977975396
	.quad	7631051811117734114
	.quad	-6274380545889891658
	.quad	-3644880445966775875
	.quad	7348340617252030944
	.quad	-6594075842487415124
	.quad	-8968535067715176093
	.quad	-6292150617722006575
	.quad	1209274824983282226
	.quad	3104703849546910367
	.quad	-4719952298905281734
	.quad	3203537326038858257
	.quad	-7754515799962052945
	.quad	4836276405653749442
	.quad	3999439711671959031
	.quad	-2122868579808342469
	.quad	-6060003771573691986
	.quad	6935183857469236232
	.quad	1496917832170277249
	.quad	-8596452407721635097
	.quad	6499970366121170030
	.quad	7001995026899086280
	.quad	-8484917754669794758
	.quad	7497823327397141096
	.quad	6975352931548332265
	.quad	4068344268340314997
	.quad	-2557770653992921918
	.quad	7803388045939930119
	.quad	-6780755763410106751
	.quad	6060712688538330200
	.quad	6754412606130748409
	.quad	7235742103162653255
	.quad	260792862712425976
	.quad	-3341774063529607232
	.quad	-8882070535834825212
	.quad	3142713430940446778
	.quad	2595554988122494066
	.quad	8554229071016960042
	.quad	-5612549251592558665
	.quad	-2460882558964077040
	.quad	-7087404864899608975
	.quad	-7364478315492738267
	.quad	4804177589506238804
	.quad	1498596948484733438
	.quad	-2961006920537273998
	.quad	3001497815855796524
	.quad	-8618200831104682792
	.quad	3974733822184427182
	.quad	1418559865339558100
	.quad	4933272629162230649
	.quad	-1115130075141756910
	.quad	3982898776583485812
	.quad	-8043510362895475196
	.quad	8681461491810344216
	.quad	4116685619183896910
	.quad	-253875941384318502
	.quad	-1069666635710061011
	.quad	-449027809954497040
	.quad	-8070057417228685498
	.quad	8417974529945133069
	.quad	3410203198184860498
	.quad	-1973047620759256984
	.quad	7556259406586489255
	.quad	-5066321607437669949
	.quad	-5040073083497184661
	.quad	6972163259091755972
	.quad	-4179476054998948190
	.quad	3273763035278585848
	.quad	2061442309213678857
	.quad	4724384698962169741
	.quad	8903689927579398127
	.quad	1119127467170002621
	.quad	5215680304685557446
	.quad	-3197315349868510806
	.quad	-5759797756892087339
	.quad	7854513935133384921
	.quad	1398737121285970885
	.quad	-7981872930008733029
	.quad	2246149451866399148
	.quad	-8859563329812062688
	.quad	-7835877185973796130
	.quad	6555841282182174992
	.quad	7532924447765423137
	.quad	3479412946560984795
	.quad	5044366097675527819
	.quad	-4739179144071286705
	.quad	5666779920208401261
	.quad	-8309273697026321433
	.quad	2075467328249870088
	.quad	-6989617508802277203
	.quad	-4745656741060295457
	.quad	-1418636524931612995
	.quad	-754783693154262674
	.quad	-6507686550372111719
	.quad	777673758339189916
	.quad	3952707455597093804
	.quad	2129731642896641054
	.quad	-1955349294805685695
	.quad	7277076158582744288
	.quad	-7570516268804962299
	.quad	-5351989132848234275
	.quad	3921612464394677712
	.quad	-1355615350345041369
	.quad	5005162276510078946
	.quad	1256957336355875421
	.quad	2759716929108123967
	.quad	8366441542083527767
	.quad	8695460668388013300
	.quad	-496116540173427843
	.quad	4156916209578013525
	.quad	1292651629572075737
	.quad	-2628744985544161823
	.quad	325260715433401681
	.quad	-7087594310969925621
	.quad	-4377181801514345953
	.quad	-5872490421143616780
	.quad	8388159655344384255
	.quad	-2318790620992922303
	.quad	1877819316325313228
	.quad	8945746653921217760
	.quad	4616678606113198065
	.quad	1336330019150074567
	.quad	-6536454922940141336
	.quad	-9199296199179093839
	.quad	6233038155803904807
	.quad	-2535037762360574476
	.quad	8619876666332636518
	.quad	-8377001413785839494
	.quad	-662437120737514009
	.quad	-527699290303431246
	.quad	-3326991510699386314
	.quad	-5494126289159609791
	.quad	4506192339530900136
	.quad	-3688350909224906364
	.quad	-7219048410837899276
	.quad	-7498971308322903477
	.quad	-2423475391412496131
	.quad	7639613466909073888
	.quad	1206484536037728854
	.quad	-2806845436423953975
	.quad	-3075519489583050047
	.quad	-8184728269676577988
	.quad	-3753327126041763467
	.quad	5768336039405434499
	.quad	4281994560316032828
	.quad	6013163720228984144
	.quad	-3524744660968138361
	.quad	-8881151983626652749
	.quad	1968790057506790036
	.quad	4797721149040405609
	.quad	-5320934225204006336
	.quad	-4324078682942528079
	.quad	-1175568534965260766
	.quad	-2439091011513883426
	.quad	-2074908867868675137
	.quad	-4532800347430802952
	.quad	652430253892573877
	.quad	4633139350206557402
	.quad	9070828855750658196
	.quad	8452227971549949099
	.quad	7828576586515621699
	.quad	8570503876294818028
	.quad	-3349870490380845877
	.quad	-3003121128057857942
	.quad	-5482999661840200141
	.quad	613707534925522492
	.quad	6690619148135265419
	.quad	-6776482029573939598
	.quad	5138620269182831193
	.quad	8714242846403929124
	.quad	704200292779390589
	.quad	8175624981234663291
	.quad	299768160731440217
	.quad	5844750361429111917
	.quad	3906372647643845240
	.quad	-3517881590167041036
	.quad	-5511996679141005438
	.quad	-6392647584520304631
	.quad	-7493391921173913594
	.quad	-8037052814776173928
	.quad	-4710276936614365246
	.quad	2757793467881882435
	.quad	-6003304383186615985
	.quad	-844819224143857212
	.quad	988048065500720515
	.quad	7554063443268400107
	.quad	4274248596892038508
	.quad	-2000990078886673400
	.quad	-8512436600026815107
	.quad	-5715616506069195341
	.quad	574635321146315105
	.quad	-4401902406622629401
	.quad	-3462657965909109485
	.quad	-5754042464334729035
	.quad	-5086866717128205099
	.quad	-8238091116739069076
	.quad	27793168446331225
	.quad	6042266872524950661
	.quad	504733549698937167
	.quad	5050779709311778829
	.quad	5996084595416821109
	.quad	-5466543341263337005
	.quad	1827531722320720329
	.quad	4220556923272086734
	.quad	-4815510410527074708
	.quad	6707736962848157717
	.quad	-6953170116812553679
	.quad	-2830113050442006526
	.quad	-4826373837172277962
	.quad	-2553281547342087748
	.quad	-990309262337618354
	.quad	8972162505776549196
	.quad	-2237379943287987396
	.quad	-5428547376437289185
	.quad	418388148277092169
	.quad	-6801250076829578577
	.quad	5024734975063482607
	.quad	3708889997144620499
	.quad	-7237801952294190902
	.quad	-7176008514600802264
	.quad	-5020601932872886870
	.quad	8804047716032510939
	.quad	-3480007514673301412
	.quad	-8341278889774845861
	.quad	9094487748782317697
	.quad	8872483363137539807
	.quad	6755234788739644999
	.quad	-4315719326874936897
	.quad	1401998826634593241
	.quad	1757458384064526168
	.quad	-8005283547002803562
	.quad	-6103510484415745676
	.quad	-2932393304258940956
	.quad	-8431332651926432956
	.quad	-8028671578293028793
	.quad	-741929173482044532
	.quad	408392451658271192
	.quad	-8207463044292388341
	.quad	-8110695469724992142
	.quad	-8246129090979124564
	.quad	-8337589002546231857
	.quad	8342569811556515437
	.quad	-7416793124007829487
	.quad	-6911460913625717641
	.quad	-3343826121212961787
	.quad	-5537648376817641871
	.quad	4611119212602854744
	.quad	4195756524232932570
	.quad	3754603965149529000
	.quad	-6907467111350943800
	.quad	4401424391553230481
	.quad	6842993463058627120
	.quad	2708745114617181146
	.quad	3832382691810282630
	.quad	-8112909615652230804
	.quad	-3418546876705474228
	.quad	7681293343255119354
	.quad	-2219206382082964131
	.quad	6703363869832495607
	.quad	7757354840118131559
	.quad	-2219395095295528354
	.quad	5800861674805516343
	.quad	-1960508270460850655
	.quad	-2800043910685874307
	.quad	504258765210816549
	.quad	-4722596173784851919
	.quad	-4857844535392274520
	.quad	-8289118051739231147
	.quad	6580688164585715207
	.quad	-1288327379238373829
	.quad	2873484006255074946
	.quad	-3594527616264688575
	.quad	7463041347566136496
	.quad	2190030775722958628
	.quad	1116223035803602728
	.quad	7585174044375463988
	.quad	2491923406404093282
	.quad	-9091010811665515504
	.quad	-6962664462359974291
	.quad	-5301714064454608325
	.quad	1234932884591406048
	.quad	479845670619308618
	.quad	87735010308690865
	.quad	-4212587700396695216
	.quad	-2235804284895499908
	.quad	6478880037923038392
	.quad	-8011231969896642055
	.quad	-303899751907191863
	.quad	3243996803126554757
	.quad	395603619159523019
	.quad	-8233154538052847009
	.quad	-3452846302056815240
	.quad	3320388672992783302
	.quad	-25187332739437403
	.quad	7438967127794745135
	.quad	-3398346347919732262
	.quad	-5724844914285774615
	.quad	1135125102123667189
	.quad	6637485660805148630
	.quad	-464804989336231621
	.quad	3989926231875116241
	.quad	-3104234139007711571
	.quad	-5447491578398318097
	.quad	-3056825048766773607
	.quad	6136335679373143315
	.quad	4117381415379544275
	.quad	-5104487609968904841
	.quad	-2641786233895004462
	.quad	7924193945337173678
	.quad	1080401129055171214
	.quad	-7630299511831023040
	.quad	-5275133600480189845
	.quad	8099842733764406841
	.quad	-9162003003499099949
	.quad	-9201548858337526327
	.quad	-4746082094399154576
	.quad	-7273927439772724591
	.quad	7087232997755437759
	.quad	601317374152115944
	.quad	-2417992482872059649
	.quad	2749566595186093629
	.quad	4445248645671399873
	.quad	-3732561115231916619
	.quad	-2765798048352759887
	.quad	-7511504861446843554
	.quad	-3191147471371120900
	.quad	-2943754275171093256
	.quad	906862139952472300
	.quad	-2318381201562856929
	.quad	9038121313842477036
	.quad	-141971986454436690
	.quad	3487728992359467218
	.quad	-7175542337199776763
	.quad	5968332690756574092
	.quad	3519182420015237550
	.quad	-1302529705408157201
	.quad	1805926423542721773
	.quad	-4750474555500392482
	.quad	942126126861202483
	.quad	4804461736506692241
	.quad	-7748092581761752664
	.quad	3524135800884470917
	.quad	-6995090321722900659
	.quad	-8021831944627191803
	.quad	6912080226482239953
	.quad	-8088935353738565090
	.quad	-6689203832523993177
	.quad	1617286442811984718
	.quad	4008909641875477702
	.quad	-9118089283166841871
	.quad	-6431067541304951906
	.quad	1763241944305573436
	.quad	-9098418232034215532
	.quad	4072126498552363080
	.quad	-1201055134593827795
	.quad	-3523648172519814918
	.quad	90760593075377861
	.quad	-6714210592204820106
	.quad	6000651333412910877
	.quad	7847865090059184838
	.quad	-1587204668789650021
	.quad	2709105957383645337
	.quad	-8182923108369077226
	.quad	4673738700738845848
	.quad	2758750364605631228
	.quad	-1850437919671027876
	.quad	4124917668203310922
	.quad	2170509910405778957
	.quad	4178077301639210933
	.quad	5109055439238993109
	.quad	-8818983953195141408
	.quad	7185947197544988797
	.quad	-5139934674919492169
	.quad	-7005784820431266329
	.quad	-3362359933227307046
	.quad	5059824327869316332
	.quad	7585354587200615362
	.quad	6801884469610571467
	.quad	6427162399794357267
	.quad	-8648917360455396205
	.quad	-5643469034114040046
	.quad	-4365967688692874419
	.quad	-7219093041622380128
	.quad	-5760798025345254296
	.quad	4187434089166359909
	.quad	-1569257187217746541
	.quad	4031071966139297512
	.quad	1212460504796396461
	.quad	8326601343107526190
	.quad	-3948406944213500756
	.quad	-2386426121261267187
	.quad	3936812821529574674
	.quad	-2978448705198127398
	.quad	5137780176744119031
	.quad	-590599931836080940
	.quad	2931682406389064831
	.quad	8969090251670311807
	.quad	8847797625821541607
	.quad	159503991788126839
	.quad	-6348460132602851004
	.quad	687815076354114796
	.quad	3907394716394630090
	.quad	7218610610089058553
	.quad	9020248281547172273
	.quad	-219823745327971451
	.quad	1219851319786106657
	.quad	3838218446185953846
	.quad	-1066657558956067791
	.quad	-6613298944445425542
	.quad	7332788558757377325
	.quad	-6401605550055513522
	.quad	-5848053049946073463
	.quad	743552331803091951
	.quad	6302499653016869299
	.quad	-912328322316025205
	.quad	2994964119019994540
	.quad	4653792890988022047
	.quad	5537076784719877796
	.quad	-1942911312525085598
	.quad	-6234300033966790736
	.quad	7206111646182459837
	.quad	3902924154968235077
	.quad	-5638458256560682259
	.quad	-4709941169861993527
	.quad	2479109306111513903
	.quad	4338077649691856998
	.quad	3045355006979787822
	.quad	-8303717168851699871
	.quad	-1743912829643823317
	.quad	2845948185640107143
	.quad	1869824425078247087
	.quad	-7300542703336718325
	.quad	2242366594668668642
	.quad	7852948533879424862
	.quad	-3057700745732089662
	.quad	1505501490785526604
	.quad	6062033360335279190
	.quad	-5232212717782157765
	.quad	8869230490276248430
	.quad	-6850185375454534500
	.quad	6698268011950867978
	.quad	-3001579060348328540
	.quad	4910055064120213146
	.quad	-7411443656429480555
	.quad	-1065536057341583529
	.quad	4373325509324692741
	.quad	-3294171800037224406
	.quad	-3524824187514963467
	.quad	-4665015857941663934
	.quad	-6168583805215661617
	.quad	-1257621774441248525
	.quad	-2230045317122213569
	.quad	1117062306872638002
	.quad	6992239865646506952
	.quad	2926799220444040509
	.quad	-1367380703879495958
	.quad	-3041687992648779511
	.quad	5115140127807539910
	.quad	-7961695331851465085
	.quad	5705083788615886673
	.quad	8195707389914578605
	.quad	4098150093355096385
	.quad	6487236579713542824
	.quad	-2966085221452166931
	.quad	-6418556775347518531
	.quad	-6134305376288734187
	.quad	-3481018769137912096
	.quad	1274314108672095381
	.quad	-6831151909366708675
	.quad	-8564789463277041932
	.quad	-4337331526038346698
	.quad	-5813538960549367334
	.quad	-1583726154330594951
	.quad	-5704053514322381024
	.quad	7784641046861678661
	.quad	-7487950143427323177
	.quad	-3023085987834721641
	.quad	8090615205972212633
	.quad	2260110843293536740
	.quad	-5141777881632182904
	.quad	7632242591513115261
	.quad	-7656337172579367664
	.quad	-760661888789206205
	.quad	9118940213879382982
	.quad	-4099545450126072229
	.quad	-6899036628726170493
	.quad	7618270005118391551
	.quad	-8515700361850519828
	.quad	-7380139015057594421
	.quad	2134400404227140017
	.quad	723091637639496552
	.quad	-1591388511893773177
	.quad	-3975882334308144090
	.quad	-4237998924010556632
	.quad	1068630621887572279
	.quad	-7235991112745011602
	.quad	1001378501000814008
	.quad	-10286425553642526
	.quad	-7235168335465878976
	.quad	1453348772281274490
	.quad	-5418655502769060145
	.quad	-2346120960959299776
	.quad	5210244400259879874
	.quad	-9002827917974135442
	.quad	-1577223154391101110
	.quad	7479400208826706574
	.quad	-4071773160356949158
	.quad	-7143928131941362747
	.quad	-8779962495952810797
	.quad	8666756314249003627
	.quad	-4626178156998238557
	.quad	-6287589550880285837
	.quad	8109472373388378114
	.quad	7816729792196986297
	.quad	-2370519873802449066
	.quad	3354225313582864467
	.quad	3265899880197122791
	.quad	382081945670658096
	.quad	-6687426444222675951
	.quad	-6879702533450899750
	.quad	-1357248995803694805
	.quad	8085581370241771844
	.quad	-5279247682822005517
	.quad	-2129830217805397322
	.quad	-114461054426761144
	.quad	-6504594411049030345
	.quad	-5465508044725616290
	.quad	-8250217792706633083
	.quad	-76723572305662606
	.quad	-7085191595974970201
	.quad	180959540761828913
	.quad	-1297052629391882131
	.quad	3466556824605983310
	.quad	-9135931544994119631
	.quad	6173018420416470632
	.quad	2774942435460397394
	.quad	4196178875828558767
	.quad	-1378235249646555709
	.quad	3303602016981935816
	.quad	2329823860147557473
	.quad	-8409889007330834021
	.quad	-2105302833870865966
	.quad	-3324814124753434792
	.quad	-5831562226954976919
	.quad	-5011194309383641805
	.quad	4400927706770371156
	.quad	-6615415005957591205
	.quad	1524853453097654252
	.quad	-3875541662516136683
	.quad	-8465633703326646861
	.quad	1183008853772414376
	.quad	-8098867890435331679
	.quad	2541795878569334917
	.quad	4397820166797978900
	.quad	-1077911453503836858
	.quad	8940171850178480574
	.quad	-5567882903758246504
	.quad	-7788569588067365411
	.quad	4433555884432236451
	.quad	5204694977017937683
	.quad	-8391993930582847630
	.quad	5529338164204743558
	.quad	2455314001705147403
	.quad	-5389248416894408640
	.quad	1743194961605203063
	.quad	-2713144375825372349
	.quad	3501754291485677593
	.quad	7405256272105757266
	.quad	-6102446231401005797
	.quad	3389605493339498760
	.quad	3092252531918600248
	.quad	-859815214225220833
	.quad	2442136785208930996
	.quad	8944313300333656379
	.quad	8146634065528242419
	.quad	-285096781872863281
	.quad	636439418827200280
	.quad	-2786107352571142473
	.quad	-7556294889070310881
	.quad	-3895806217697510747
	.quad	-4557050883711062978
	.quad	-5806377748389951937
	.quad	-4163855786339501631
	.quad	2512896198742992835
	.quad	-112591680865193204
	.quad	3135117990430067081
	.quad	-76506367596807515
	.quad	1634982049011754623
	.quad	-4106417755835894031
	.quad	-4682430903877530900
	.quad	-9008127134307593933
	.quad	1912538378457699405
	.quad	-315126481925995613
	.quad	-5737778488637121710
	.quad	2129557567470197503
	.quad	3501470459789355123
	.quad	9046906390571308350
	.quad	7904432353013262160
	.quad	3298292386318337258
	.quad	-4584889928330384491
	.quad	-1592597652835801364
	.quad	-4772762925177035819
	.quad	-5247948420245659418
	.quad	-8236385665262237622
	.quad	6917554146687813404
	.quad	4802045651280228184
	.quad	-5147166702065713863
	.quad	-3474883638372507512
	.quad	1906149944252828985
	.quad	-8325894856370810766
	.quad	5517445442670333601
	.quad	8977334088121817720
	.quad	-3510354519435740895
	.quad	656536396889836669
	.quad	8009779501848351049
	.quad	-559753938756352788
	.quad	-8597878946569509618
	.quad	7693560460951874501
	.quad	-4042736352910575743
	.quad	7037750669955202002
	.quad	3335950925204886960
	.quad	1967419845492160800
	.quad	-1865866117276492290
	.quad	-8019651116181760737
	.quad	-9212988242595025872
	.quad	-3840835307663585694
	.quad	5705660601374927808
	.quad	5038191990715247960
	.quad	2723916483244871576
	.quad	4891019526710760134
	.quad	-7352111732576291247
	.quad	6274429941353136467
	.quad	1408871421293516065
	.quad	-5991118204221062835
	.quad	3401549469990652817
	.quad	-843774216096935394
	.quad	-5748518856709922334
	.quad	-7087256837887524686
	.quad	7741876214403685511
	.quad	9123074353821742209
	.quad	5008528281805315137
	.quad	903268221126788738
	.quad	816886369690793701
	.quad	2540249674215807809
	.quad	-6616204780951554967
	.quad	-458802884820438615
	.quad	-1171019372274421834
	.quad	2732535037612510575
	.quad	-7156541377823896840
	.quad	6042844003568611222
	.quad	4078002854002995546
	.quad	-784556553970812786
	.quad	1940061504763367662
	.quad	2763400241055583036
	.quad	-6975954272542020303
	.quad	6912181476876394668
	.quad	-3846830253795741906
	.quad	-6801553740531074525
	.quad	-3276834917298029725
	.quad	-2624990280475523430
	.quad	2924199799769698008
	.quad	-8662141690699091678
	.quad	-8759001061087010198
	.quad	-2004672657481623469
	.quad	3331787717120015559
	.quad	-2711134005199286065
	.quad	-4627145293729932913
	.quad	-9095986330946537208
	.quad	1814440818350258985
	.quad	-4328654989006949576
	.quad	-1315440011348320927
	.quad	866636981335164512
	.quad	-2720630198437708402
	.quad	-2811866198236591762
	.quad	-90755988315512249
	.quad	-8136934955794736567
	.quad	-6205944908944899568
	.quad	-8907243684419422486
	.quad	-7809144112732382905
	.quad	7513851677556683848
	.quad	5349517810048761180
	.quad	-4538852556345811118
	.quad	-2070147595051770214
	.quad	7725529728678547918
	.quad	-6232553940790544493
	.quad	7792883014923559958
	.quad	1405647908283465447
	.quad	-3268754192226159072
	.quad	-4016884148483877812
	.quad	4331459805514810170
	.quad	-7773683420789054233
	.quad	4716563932720198201
	.quad	1584625214845878997
	.quad	-5233386454700611534
	.quad	-5323793866478756431
	.quad	-6143374071915087718
	.quad	6725033180592084698
	.quad	-6144591759485127022
	.quad	6139100303374835750
	.quad	-5813125687297084078
	.quad	3644668086242291913
	.quad	2684133892232953345
	.quad	-5750932683774553786
	.quad	6465970550081774925
	.quad	1553504021101731106
	.quad	-3721239950113497517
	.quad	-5907607413334088435
	.quad	-6235147107811593991
	.quad	6834738766207518577
	.quad	3541037631793357252
	.quad	-8704561726493272098
	.quad	711971841716915592
	.quad	5969821422667718729
	.quad	5800306980507168584
	.quad	-8805784688331991432
	.quad	-553629860220004143
	.quad	2415798507543635343
	.quad	5771528015414730160
	.quad	-7982728363505698982
	.quad	3450178665697757228
	.quad	-8664106334292631668
	.quad	-8858736813518808414
	.quad	910211577543409037
	.quad	5867138813559362509
	.quad	-8558677638493209560
	.quad	25269637082652575
	.quad	8590571185851885815
	.quad	7895782571952394827
	.quad	3933997996794260135
	.quad	4733796830311235237
	.quad	3758664690407123473
	.quad	-4698821477255962815
	.quad	4189346449745865661
	.quad	-2870665523535984515
	.quad	5388744942273236371
	.quad	4584947756942805680
	.quad	-7209083284924314629
	.quad	-6841147301781468771
	.quad	6413132448905617789
	.quad	-4307814886897595210
	.quad	-7383731738136362269
	.quad	1433228652871983634
	.quad	2070023155652102
	.quad	-9175151256083332247
	.quad	-8681765906410410871
	.quad	-6364318284417518940
	.quad	7458310522273340360
	.quad	6758603206466630201
	.quad	6862497305751794905
	.quad	-4577380173793913455
	.quad	-2015195091800773209
	.quad	-8266806193447316897
	.quad	-8436595833222167946
	.quad	-1638337653675414836
	.quad	2581812239329526740
	.quad	-8297146796778434151
	.quad	5778043705364022356
	.quad	-4558300468468342398
	.quad	6889225091714429810
	.quad	-2237380435216507641
	.quad	8516350006446457646
	.quad	9214830076046105138
	.quad	8894115046323798175
	.quad	-2071238288146910390
	.quad	4903074653735993511
	.quad	-8090956227946519855
	.quad	3188849033041803587
	.quad	3145147452182864049
	.quad	-4567996200601173150
	.quad	2798650520315922121
	.quad	2325962694441538199
	.quad	-6916160465686326649
	.quad	-2467588907182550329
	.quad	592931868138800645
	.quad	5361781029549479856
	.quad	-7200325320879145520
	.quad	-6564492089461080180
	.quad	-6420354611764922193
	.quad	-6157666150911327796
	.quad	1328339467113622233
	.quad	-5071919918716687393
	.quad	-6389612058385543792
	.quad	8507647484414695512
	.quad	-9160727702911404630
	.quad	9083798709648036612
	.quad	4312959727577073260
	.quad	3732271624824420608
	.quad	-4316871279254235694
	.quad	-2091933482395415914
	.quad	3177417010197743958
	.quad	-1952392942781852924
	.quad	-1888979017381103798
	.quad	3139394196704738651
	.quad	-1554930075438247966
	.quad	7374470997276173905
	.quad	1547814412223404746
	.quad	-4252034725303639449
	.quad	-2675715144086157815
	.quad	-7501695900840867227
	.quad	-7212260195098023211
	.quad	-8904138696128849935
	.quad	4555391547268120796
	.quad	-3529871856257591594
	.quad	-2956612191345511979
	.quad	5140304620645573547
	.quad	-9043088316210724793
	.quad	-8621893118720374723
	.quad	6366139388903157264
	.quad	1981838834216345294
	.quad	-3786873786831572060
	.quad	-6355165949216939092
	.quad	6832171775190531128
	.quad	7903951882621813138
	.quad	-4729170852881142349
	.quad	-3046168950981701562
	.quad	6101307565293576434
	.quad	-1219971306603568302
	.quad	3485283905347036760
	.quad	-7422800813967769
	.quad	6289130721434350290
	.quad	-2317406400579830770
	.quad	6648351866142453445
	.quad	7705983837166554199
	.quad	8120136556582544814
	.quad	7924417299222764443
	.quad	7821995671300500892
	.quad	-749081347530466877
	.quad	6669506511185916061
	.quad	7036555931205961476
	.quad	-2975419845696595960
	.quad	1075869467462424743
	.quad	-3612561264852710230
	.quad	-8964874665000689218
	.quad	193651363902981365
	.quad	3496053494343565969
	.quad	-3248453291230635515
	.quad	-2241450207879906932
	.quad	2104596565474767471
	.quad	7783918193658109501
	.quad	1567469099169331732
	.quad	-7122109096019352692
	.quad	1374141643017900909
	.quad	-78101679271125986
	.quad	-5057106066981839314
	.quad	-928419580446103934
	.quad	-5267911873028291959
	.quad	8955667391164524441
	.quad	-9114984547894125913
	.quad	-5526021561796450567
	.quad	-2639141311998507190
	.quad	-573524252083574954
	.quad	-6342932683334591016
	.quad	2801185238127939998
	.quad	-2157520114601903271
	.quad	-1203083078851165512
	.quad	-3627786344386591118
	.quad	-8428252279057580410
	.quad	5502065678180783560
	.quad	4158378425043433526
	.quad	-8167822898712957981
	.quad	4630624563386647486
	.quad	-7267100857665204596
	.quad	8701826069861381281
	.quad	5839989039471676569
	.quad	3060138177923841885
	.quad	-7167095991565938764
	.quad	-3238957340297419733
	.quad	-168793094758413274
	.quad	2577918906618404946
	.quad	-6762191030968765453
	.quad	3082582313241836872
	.quad	5222056779189126973
	.quad	7794579876203167869
	.quad	8527673475629739407
	.quad	-8594953532701767101
	.quad	671618501514350673
	.quad	3455246317052893537
	.quad	-285210616256828716
	.quad	8968434886308785175
	.quad	8445049055511813064
	.quad	-1549611279645250623
	.quad	-4025806074034951146
	.quad	-7336116737131868179
	.quad	-4359998812058731868
	.quad	-493636203932833728
	.quad	1777725846494438428
	.quad	2765314406831814212
	.quad	2603997194371852991
	.quad	2223517025105045134
	.quad	-2866842738177801982
	.quad	6571733615332171148
	.quad	-3312577331509994476
	.quad	3030916113242823903
	.quad	-8293354617157334097
	.quad	-6682628843869271961
	.quad	2843629331354637819
	.quad	-406630365754737087
	.quad	141442027343453367
	.quad	4599897495911955815
	.quad	7380171483583663974
	.quad	-5548010928850862217
	.quad	-8264720101760219544
	.quad	2707883628295830058
	.quad	-755086561789104916
	.quad	8580510837082272374
	.quad	5944032829274865509
	.quad	6187583916333043579
	.quad	-190358071468723973
	.quad	-430105790992926208
	.quad	-635506005314099968
	.quad	-680173983610080243
	.quad	3463585186668489322
	.quad	125381812083443778
	.quad	4414152782293269459
	.quad	-6456363333186140938
	.quad	-8769346477597992904
	.quad	-2150146691026479675
	.quad	-9112654242074600910
	.quad	3678721306834285892
	.quad	8786424109117601556
	.quad	3852579432074779235
	.quad	3407015691501208370
	.quad	47451605214095444
	.quad	-5424124389168165568
	.quad	-1704709467383192063
	.quad	-855510402609500328
	.quad	-9026930620751465337
	.quad	-4475617928776468003
	.quad	-3299119146450323497
	.quad	5898753194606650427
	.quad	5500995341149228911
	.quad	-2532486397334871272
	.quad	3935288410021116570
	.quad	-4124208397727396382
	.quad	5067575932958240159
	.quad	1623791047141121175
	.quad	6622554941735779444
	.quad	8128714189140509315
	.quad	6339202485819175057
	.quad	-6660519411866841029
	.quad	-4571162665694849047
	.quad	2233617524230900070
	.quad	7874140081193709411
	.quad	-40564080981564549
	.quad	-4308025650992164722
	.quad	1561105171659636990
	.quad	970134312216935236
	.quad	-4449355366355260198
	.quad	-2746889111299100194
	.quad	-3754771978494177707
	.quad	-7964478924720221481
	.quad	-8539014920276431825
	.quad	-3240419335734894036
	.quad	-7956727540119258893
	.quad	-3364305675676034264
	.quad	-121086838656643005
	.quad	-8560804615113114143
	.quad	-1909776080086696222
	.quad	938502887230090642
	.quad	8118187727625536278
	.quad	-1780483798460609978
	.quad	-1373320868207618105
	.quad	-6624964603244212845
	.quad	1595741034164208261
	.quad	-5707825736891143454
	.quad	8287515129151868867
	.quad	-1974857285738618794
	.quad	1299688388685453974
	.quad	2225943808317017505
	.quad	-8087512464847526214
	.quad	904942504787961440
	.quad	-8761777806503685175
	.quad	407205211844864581
	.quad	-6472715866508641466
	.quad	-8965273274049691013
	.quad	8393521804958801167
	.quad	-3830159242131880438
	.quad	-9167738486458900888
	.quad	-1777843979395367252
	.quad	-4302216782656125195
	.quad	5159049176139018936
	.quad	8385566735148186739
	.quad	-1425905571657387861
	.quad	507948704027159873
	.quad	8332239579967118161
	.quad	-1356672605841771020
	.quad	-8478566581338858038
	.quad	-7426021812514397964
	.quad	3895577048652166637
	.quad	442963499212124413
	.quad	-1011947164455001389
	.quad	-7102368986758678856
	.quad	-8408536557470351947
	.quad	-8644488272100675435
	.quad	-7685658183019734599
	.quad	-6659201591585588505
	.quad	2309960831938026132
	.quad	2362007974617016395
	.quad	2611794407696443242
	.quad	4122136677638136371
	.quad	-5100318127038606868
	.quad	-5248290391895411036
	.quad	-2841405567811304303
	.quad	3319861647584273954
	.quad	4262376312406607829
	.quad	-904947508582159261
	.quad	-508049266838151235
	.quad	-958430188073033963
	.quad	2299888405553816553
	.quad	-417040289993724170
	.quad	7265581292649320574
	.quad	5478465698516556930
	.quad	287443454357750768
	.quad	-6245539410046422331
	.quad	782849770204658255
	.quad	-7176699038700347365
	.quad	-294060101346407279
	.quad	-7983444035782908877
	.quad	-4083102484110687765
	.quad	-3915509095072762043
	.quad	909854808241810216
	.quad	-3807915636835288611
	.quad	3772815102400200640
	.quad	-4152701981509605470
	.quad	7476623528039533398
	.quad	3181213314707539799
	.quad	-7785090224657175479
	.quad	3217164253029871777
	.quad	-3361596042489776343
	.quad	-9201722705066393784
	.quad	-1421370216209960765
	.quad	-8514512545560023190
	.quad	-948531594036182596
	.quad	1194955963183847491
	.quad	5870615917790052312
	.quad	-3011789769308753441
	.quad	5106975865570057711
	.quad	128504050515074472
	.quad	-224708219220314414
	.quad	-8281822885309707650
	.quad	-2503126626399410724
	.quad	-3619576150630290754
	.quad	-8872459445477984260
	.quad	-8676482197799413352
	.quad	-7236642810776577779
	.quad	6177207666899251220
	.quad	9123684873022039790
	.quad	-7733391979453784476
	.quad	241413272439668786
	.quad	4256388385716970158
	.quad	-6438209557587498990
	.quad	-8966098139382636128
	.quad	-3928319431865658223
	.quad	9129318936934457065
	.quad	5133955072092805841
	.quad	4744313375708495117
	.quad	-1864287382888815876
	.quad	-7923683555881417853
	.quad	4729363825483673452
	.quad	1972263253557705899
	.quad	7280860302491967495
	.quad	-4575174219290104313
	.quad	-2693643367477370819
	.quad	88848404001215659
	.quad	-3887501957990085360
	.quad	-8797127935011219799
	.quad	3195615783469988160
	.quad	8049292510468328799
	.quad	-410894569128852069
	.quad	7642645448348541588
	.quad	-7315912762216459823
	.quad	356353340609561831
	.quad	-138975244859218507
	.quad	-1767056766041726492
	.quad	-231739738270100579
	.quad	-2157607940015503238
	.quad	1459971036573045246
	.quad	2268207820260970127
	.quad	1657587946121446168
	.quad	-739716498893702046
	.quad	4265424202020396234
	.quad	-1676418044542962675
	.quad	-5714915418630135542
	.quad	4967566053718884432
	.quad	-5022868087868701335
	.quad	6530957798856038993
	.quad	1990261356680279342
	.quad	1614229643576482293
	.quad	7020232130816423771
	.quad	1238161960648997643
	.quad	-292026881274290611
	.quad	-2988722717942477436
	.quad	7494972949996760696
	.quad	6585878718269115758
	.quad	3740017640771590762
	.quad	-7396253774591789716
	.quad	-2943110756642647221
	.quad	-376351873236240349
	.quad	-7369672054570108748
	.quad	8227708203793965173
	.quad	5303114546636671270
	.quad	-5628161547635673043
	.quad	-3401570567468349707
	.quad	-874244244502442922
	.quad	-5348783704481687694
	.quad	5767441285241450922
	.quad	-7279318217055572821
	.quad	-7750591462796990854
	.quad	-276266471527991849
	.quad	6200052062614005372
	.quad	-1036160954791828165
	.quad	-1143214977193385367
	.quad	-7603337090240154215
	.quad	1538984515898175164
	.quad	-3644198293302953242
	.quad	2150703926109713264
	.quad	3092501220436048889
	.quad	6729786856448621154
	.quad	8126996555942412135
	.quad	-3315764984190644983
	.quad	-2234732820954920697
	.quad	-2139312504914980075
	.quad	3191588702345533869
	.quad	-4994644719090099290
	.quad	-5058701309425411503
	.quad	-2842093644753319785
	.quad	-2003930050659455840
	.quad	-768611378763188410
	.quad	-8792091097789365761
	.quad	-2339933595515643309
	.quad	7093365830229726555
	.quad	-5787577465156480197
	.quad	349127343026679281
	.quad	3043786832223420275
	.quad	830781685313467402
	.quad	7865043074287015730
	.quad	-4443873268248995583
	.quad	-582183444657385448
	.quad	4217329213971740558
	.quad	3790592075869665284
	.quad	5120320091554329756
	.quad	-3085162791315522907
	.quad	-4086279412798386701
	.quad	-3197087114717619676
	.quad	2563751872827049233
	.quad	-4700952066772904883
	.quad	-3873800398776383443
	.quad	2251149478288377120
	.quad	-4941224495516361998
	.quad	-750239071448769470
	.quad	8093726359580120337
	.quad	1263555581817098336
	.quad	-6404900956869999316
	.quad	-6613530162376473164
	.quad	4838012203206816318
	.quad	-1005154364743894035
	.quad	7213015153840923323
	.quad	6314323453313404285
	.quad	6381901817925247561
	.quad	1837638193871082830
	.quad	-1558376828653894748
	.quad	3274459986662260021
	.quad	1521003566315940435
	.quad	4661383343843249320
	.quad	-2230588332359596669
	.quad	-1682860997778272083
	.quad	2149640229074548421
	.quad	2967482192075339809
	.quad	4071910872210478944
	.quad	1389423123772004067
	.quad	-952940267577684575
	.quad	4678826688491706216
	.quad	9161020734370119213
	.quad	5222945441071494211
	.quad	8566690081993450827
	.quad	3943056984379981511
	.quad	-4651341755824144395
	.quad	8470337011221927310
	.quad	6537255561054093704
	.quad	3738375089082451309
	.quad	6514970648577838457
	.quad	7804685382029045195
	.quad	2351881035460103663
	.quad	-291634940980518565
	.quad	7987109949506293355
	.quad	-6457058713026246010
	.quad	2451680741303342071
	.quad	2630348365434878015
	.quad	-3203248068828175330
	.quad	-357687826267076251
	.quad	-8546339279478696497
	.quad	4700842779866148334
	.quad	2963147983395394772
	.quad	34184191855854590
	.quad	2735097653528150849
	.quad	7159191095318998595
	.quad	8118560532842715391
	.quad	-6995790859278598826
	.quad	-3559962022152811264
	.quad	-434479607343337206
	.quad	-7042692465422594904
	.quad	2682961761198747620
	.quad	-6563212847550777999
	.quad	-4487426830278750984
	.quad	1818133317667567255
	.quad	-7810043203315802640
	.quad	5742764297768200957
	.quad	3611462274463439586
	.quad	-8198085523259477866
	.quad	-8222327515119597160
	.quad	-7995689409959220569
	.quad	2744936399037437624
	.quad	1137283612430446099
	.quad	-6408499817727490269
	.quad	-3329914897299512030
	.quad	-5063454978426290028
	.quad	1761826221177684001
	.quad	-2181248695050240675
	.quad	-6673212740798084353
	.quad	-1160184818418128212
	.quad	1459619703843866588
	.quad	1010618845582775336
	.quad	-3788508809956716657
	.quad	1123993653573816700
	.quad	-3115171212096327698
	.quad	-5326586149050777501
	.quad	8978842590650160645
	.quad	-4899639114987756857
	.quad	677487383148997160
	.quad	1438817713579911538
	.quad	4322177286233111456
	.quad	1377062599323784736
	.quad	-4615084439491361090
	.quad	-7258549355813592285
	.quad	4764395505648099910
	.quad	1128248988297074226
	.quad	-4575304120816407405
	.quad	3105418814312659163
	.quad	2760200072375153308
	.quad	-5826429979008937502
	.quad	1635652581363442196
	.quad	-4957964698479197490
	.quad	7593556695326989828
	.quad	4288090460384633760
	.quad	-4700852869402758362
	.quad	7542813029413440031
	.quad	-3362841793975823207
	.quad	-6038394237219264250
	.quad	8339351023354515087
	.quad	7217296296476817732
	.quad	-4532828129181797324
	.quad	4382085868216324863
	.quad	-4347422826038794628
	.quad	-4238488715963326257
	.quad	-7468506200670694094
	.quad	-309426644345921632
	.quad	-480911127883259287
	.quad	-337857466997756694
	.quad	7459441398838480159
	.quad	7321471770619195719
	.quad	-7249494752049343148
	.quad	7746086586242811444
	.quad	-2765242301362048209
	.quad	3523758168926239650
	.quad	1801130783618348953
	.quad	6673549655627155021
	.quad	-2037057186294669806
	.quad	3167679014977537749
	.quad	3417445004776702290
	.quad	1709246158507866266
	.quad	5861367897285174360
	.quad	8437429877561342262
	.quad	-1215136627466072868
	.quad	-2399147674402784668
	.quad	-790305487879865719
	.quad	-6082575458720611116
	.quad	-5252376821246128498
	.quad	-6223337467181810336
	.quad	5014139294736037086
	.quad	-7202044590877735523
	.quad	5336498572491451990
	.quad	-4178339491140695474
	.quad	-3944425252739952300
	.quad	-7989046664402883182
	.quad	7830477435299250296
	.quad	7772379952622394912
	.quad	6109610138112185532
	.quad	4382803614711332911
	.quad	286231563340803504
	.quad	-4037883788283845580
	.quad	-9001453457913332295
	.quad	-8853550044312759468
	.quad	6376573619820601945
	.quad	-3752076275047425748
	.quad	473733746941891591
	.quad	662607401339043361
	.quad	-6341167552893189761
	.quad	-1817003605391683232
	.quad	-6030538072503430487
	.quad	8838210194055479741
	.quad	-2256464384870260160
	.quad	-1926622715126794060
	.quad	-1677784345007580982
	.quad	-1166847163504568078
	.quad	3582816187015369256
	.quad	372137484481226748
	.quad	-5474513865990558375
	.quad	3617189719024090291
	.quad	-2624597636067525240
	.quad	342786825318562909
	.quad	-3245868196108281841
	.quad	6423857882273670676
	.quad	6904720167049912102
	.quad	1413643925551833571
	.quad	3226579738300033711
	.quad	5372953569411270487
	.quad	-638711038272695422
	.quad	-324346807604441633
	.quad	7100719381161799491
	.quad	-3656993587752443840
	.quad	7797117101197801156
	.quad	3512936690589352328
	.quad	-1426678974085084496
	.quad	5133367598701899493
	.quad	-1017122470374037965
	.quad	-8670672362557492541
	.quad	7026472249149753066
	.quad	7479749209874137439
	.quad	-126079214670444502
	.quad	5961569412857119589
	.quad	8413030053433587371
	.quad	-6966712801246187495
	.quad	2525856087688686375
	.quad	5875255653057452580
	.quad	5606696614467440464
	.quad	-6352028539491103654
	.quad	6173479337351577758
	.quad	-202728669227068813
	.quad	-5247394724198051921
	.quad	-3570762467873922358
	.quad	811076820712819500
	.quad	367493520148833360
	.quad	-1506638874190902235
	.quad	7979320982353135317
	.quad	-5601600327382845451
	.quad	3083661875673961625
	.quad	6149844133082862443
	.quad	-3309027369050620645
	.quad	-7459756200402641922
	.quad	1939043496821343401
	.quad	831824210330752494
	.quad	1056638569496361761
	.quad	1714583153436391847
	.quad	5183439003162975519
	.quad	1665087783666164342
	.quad	5883018523679142556
	.quad	599139427612377130
	.quad	7252516366347164604
	.quad	4102945279009204305
	.quad	-4087426278743949273
	.quad	-1671098351069176646
	.quad	-1570068240621608109
	.quad	814041002380090726
	.quad	8618628902870211609
	.quad	-382095641909648020
	.quad	7274877928823092285
	.quad	5660734703123876155
	.quad	-1268593261888291011
	.quad	5485275535084805985
	.quad	-5838976463390962451
	.quad	2215859519135800862
	.quad	-3639369435646242695
	.quad	-2443417639336621596
	.quad	5871150838666244444
	.quad	4868348340155771131
	.quad	5856303523378586379
	.quad	7230432977102916981
	.quad	-3236321495838195480
	.quad	4988542717491653310
	.quad	-3921490642394988131
	.quad	-385305833716856192
	.quad	3753059877845742067
	.quad	6434164734885086330
	.quad	7925955539869645215
	.quad	5236273722884803492
	.quad	-1311280114075695888
	.quad	1885217581414238490
	.quad	160512089488749247
	.quad	-460966690943567122
	.quad	-6629722900898576594
	.quad	-8833578804189123633
	.quad	-8050865018260513377
	.quad	1736866851732847281
	.quad	-1957221447031901964
	.quad	-8672003257539067967
	.quad	6097225965006328457
	.quad	2630336000831717722
	.quad	7049638698786526134
	.quad	4203465038263485233
	.quad	4677974565964393904
	.quad	-2402707395585915355
	.quad	7266049959100300634
	.quad	-7107070003561046687
	.quad	-966093635027386372
	.quad	2582216473120377812
	.quad	5354614011525395898
	.quad	-1956789595269125494
	.quad	1012722707475213966
	.quad	5755921845057680224
	.quad	2274319256198770186
	.quad	5915999837171104027
	.quad	8932509163442546090
	.quad	-3358024234899047073
	.quad	-2066145756898163087
	.quad	-6630234846253006311
	.quad	-2329645421871585109
	.quad	6506253137957995237
	.quad	7842840841723336777
	.quad	-3592113378095296127
	.quad	-3789774881541641102
	.quad	9169563924096968904
	.quad	-6422547868570519312
	.quad	2689911557106660636
	.quad	-5627663360968676706
	.quad	-3573268276991944804
	.quad	-5666341802025663422
	.quad	-5197358080906387349
	.quad	-5127343076807180083
	.quad	7582870533150862327
	.quad	3853021819016824068
	.quad	1553148791440569506
	.quad	1383156799113954152
	.quad	-3253925826250991746
	.quad	-2350576386592086930
	.quad	6356494963887209448
	.quad	-9004860483635235637
	.quad	-3218292712593762430
	.quad	-6538398248436661693
	.quad	-4416571748654210515
	.quad	-2038404281560580714
	.quad	-3817456352841542988
	.quad	-3890947850559417342
	.quad	3393582016759411684
	.quad	-2287005189872704059
	.quad	-5648855305846750206
	.quad	-3929839520004364668
	.quad	-5376657889328471182
	.quad	916885380224317954
	.quad	-8960167178612885078
	.quad	2320292919516422975
	.quad	5019772534786350963
	.quad	-2282150607068294980
	.quad	-9022514422360719001
	.quad	-2020086637053608883
	.quad	8869720252782861177
	.quad	-5313792199395779587
	.quad	5592760582055033604
	.quad	-7521170140477653848
	.quad	-4051586061188909462
	.quad	1979992348876614621
	.quad	7494083465935166973
	.quad	-2411020410986719872
	.quad	6820849908885211777
	.quad	-1706008833808528563
	.quad	2017530162004533409
	.quad	3087262288875984227
	.quad	9072904925376793991
	.quad	5384947312629749516
	.quad	274641734531480011
	.quad	-5740827278919524375
	.quad	3451525370693472710
	.quad	-3783773396036446004
	.quad	3031893143549722163
	.quad	-3976137390293646047
	.quad	-877327795402128407
	.quad	-6729809547574219140
	.quad	433379719600995157
	.quad	-3465419329999064155
	.quad	-1866581930280619848
	.quad	-768528036478904829
	.quad	2252837520490636634
	.quad	-2532444379111866878
	.quad	-3192744345504564679
	.quad	-2263663460836323023
	.quad	-8723081705927552962
	.quad	6861014809755572445
	.quad	-4538509100774170394
	.quad	6323972265200613616
	.quad	-3561804314528200307
	.quad	6605522851578158
	.quad	1274034852286938315
	.quad	-2773144740479589822
	.quad	8862902775863712472
	.quad	7565222536246787763
	.quad	6724910605061440481
	.quad	5835390808530098179
	.quad	-8798967733673768824
	.quad	1038074137838521743
	.quad	3352456378381259564
	.quad	1561810793927255728
	.quad	-806726912555815871
	.quad	5327290357611130910
	.quad	3027767393171366872
	.quad	-1508617807149579269
	.quad	-645803695858984931
	.quad	6597895388908606259
	.quad	-817275709177073493
	.quad	-5280418167485434686
	.quad	-8038263014794399821
	.quad	-4863064859299593634
	.quad	-5208406916781865922
	.quad	-2357958636889716916
	.quad	-2586083458115459388
	.quad	6472158593272826810
	.quad	-2846433901543159964
	.quad	195009112549837430
	.quad	-8275641479984878642
	.quad	-7484862980247049642
	.quad	6322665550838496015
	.quad	664075825704540076
	.quad	8408894912297704248
	.quad	-3965403354874290930
	.quad	-4550349476365952714
	.quad	1830819081327272165
	.quad	-6495451992848905069
	.quad	-444243270290921678
	.quad	-5128757378492147776
	.quad	5005574200470766330
	.quad	-8308564287970899112
	.quad	1610518863105278224
	.quad	-5137300808130594662
	.quad	8494848733818134667
	.quad	-4795003313660724994
	.quad	856502085436914202
	.quad	9137924761425959598
	.quad	8223390780415850496
	.quad	4792562080031365928
	.quad	-7652866550031413549
	.quad	-4388640038334542319
	.quad	-6471342130131904101
	.quad	-4714069030003723801
	.quad	-9064971160070671916
	.quad	7024118484638661491
	.quad	4617667104658353211
	.quad	-4177584328110704605
	.quad	7561841021307648332
	.quad	3598286444531508038
	.quad	-4982269346263221892
	.quad	1472725883195646550
	.quad	-2397791931166575901
	.quad	5874001399120316992
	.quad	-4412103935118614
	.quad	6531192377696679111
	.quad	-7316598609929185510
	.quad	5016115531623253996
	.quad	-6421427863897232494
	.quad	3387287085943525109
	.quad	-5678216501326224624
	.quad	-4332083949239384784
	.quad	-2567240909334821606
	.quad	4196368744372087980
	.quad	3369528778973242763
	.quad	7513814970342209951
	.quad	-7479830457649830381
	.quad	-6711368760298398365
	.quad	-475306048306882985
	.quad	-9135106824809378539
	.quad	6686639432668247379
	.quad	5851864267390937888
	.quad	4953441374005730805
	.quad	4663015540292435760
	.quad	-2770854358601636576
	.quad	6789945972393499834
	.quad	8630978621199375157
	.quad	5994784319937123498
	.quad	5877195492780543104
	.quad	2487492481190336248
	.quad	-6116058938419210364
	.quad	-1661053271434583626
	.quad	7024895740050605660
	.quad	-5769474324970505990
	.quad	1657064255351641256
	.quad	5027521353793723619
	.quad	4821867290776093047
	.quad	8763628521265491114
	.quad	-694220351549739122
	.quad	-8452650883566273492
	.quad	8383241685301818332
	.quad	6629521234420338478
	.quad	8997316634951392497
	.quad	-8470110977314523022
	.quad	5171570735720385772
	.quad	8129153749198218776
	.quad	-7850441158563886549
	.quad	3726383961188926740
	.quad	-4151504152550402156
	.quad	2219412945895869305
	.quad	2301486898358080741
	.quad	7994669970981089731
	.quad	-5566339384097668013
	.quad	-6859202589584176392
	.quad	8985317781473700407
	.quad	2336817423093024736
	.quad	5196501271689625340
	.quad	506742750478072060
	.quad	-9205181600886536810
	.quad	5504640646601654326
	.quad	-7009664464910106685
	.quad	-2297758166746390841
	.quad	-8141774906692382702
	.quad	-7286115547942131220
	.quad	-6529853740429770591
	.quad	7496872993469364497
	.quad	866856401031024577
	.quad	-8566928017154084415
	.quad	-3835240681859789252
	.quad	3006452545387265575
	.quad	7403271317289709859
	.quad	502346210293181630
	.quad	6449712106849988752
	.quad	1849725589228044637
	.quad	-276758532330415321
	.quad	-8918287614453433534
	.quad	-886666776797281428
	.quad	3031820729988701189
	.quad	5699854833360675703
	.quad	-6314264585881391565
	.quad	4440987307623131188
	.quad	6503262979870678192
	.quad	-4947945214490227985
	.quad	3086542187237515537
	.quad	1961933059310435320
	.quad	8289198941664006151
	.quad	549179836295545090
	.quad	1740587936373404894
	.quad	-4020019059217139417
	.quad	-3204570271131131962
	.quad	7860527721225503436
	.quad	7733263948336339653
	.quad	434250989663204517
	.quad	-1982358710562144265
	.quad	4781289392470637125
	.quad	6046819823861637472
	.quad	5150447189453682312
	.quad	5990915409844923698
	.quad	-8190271578429606879
	.quad	-3847336834340564161
	.quad	-5673924965979418306
	.quad	5998002584613060882
	.quad	4584690529432220359
	.quad	-5587141627032266810
	.quad	-3952472139728441697
	.quad	9056473564311980628
	.quad	-7888936600287244687
	.quad	1549747977888697589
	.quad	4534184223615087698
	.quad	-5469625140542509058
	.quad	-6516286143682867773
	.quad	8346041661496792064
	.quad	-1729311821820161051
	.quad	-1694055724833232915
	.quad	-7788609163287160560
	.quad	-33154990876525719
	.quad	304085159863389492
	.quad	5120344733627268321
	.quad	-9102894436011973767
	.quad	-6827366041856570327
	.quad	7742526365349193623
	.quad	1398100600045004657
	.quad	6474277159061713
	.quad	-7525545756285077896
	.quad	6191600195770015188
	.quad	6915526025748315557
	.quad	-1778496951675800058
	.quad	6298521458219186748
	.quad	-4961582902044165537
	.quad	7717171831050129051
	.quad	-4456938187566227961
	.quad	-272904633786894358
	.quad	-7636225388051266655
	.quad	6066285273830235545
	.quad	-6073811868755892286
	.quad	-6011022288032653483
	.quad	7875835336411342275
	.quad	-2031014604378161899
	.quad	-6550721312678900354
	.quad	2290218908696116373
	.quad	7192607767349294674
	.quad	-6313561830114057814
	.quad	6482352610978378892
	.quad	-8113740979656349990
	.quad	-3483683103571837021
	.quad	179204750051371982
	.quad	-4715825552436582733
	.quad	-8454577659768372652
	.quad	2609818734205130424
	.quad	7320601005385267285
	.quad	-4968901614727861078
	.quad	6235988513956293628
	.quad	1051148942155916163
	.quad	5326408467357730658
	.quad	-2445322512156828245
	.quad	4917239930442969654
	.quad	1601983656714703062
	.quad	-1982074743051998855
	.quad	-5880421945371352782
	.quad	-1444180064394716316
	.quad	-8269738437158321718
	.quad	977649401260716809
	.quad	6192278055053415317
	.quad	-4764414303204257560
	.quad	-2602576532286624999
	.quad	-8574093778047326606
	.quad	-5663474998186378669
	.quad	-8169618307932675073
	.quad	7756665146227128459
	.quad	-3305919552436164908
	.quad	693427108108819556
	.quad	-3627554611108329090
	.quad	4507393341357475468
	.quad	8710020646873218244
	.quad	4535796033535410044
	.quad	-6562239440947843670
	.quad	6377718329432217848
	.quad	-7602417341620358360
	.quad	-7066963819039477370
	.quad	6785433556477600668
	.quad	-6076079044963457313
	.quad	-470556601792450540
	.quad	-7329150107204954343
	.quad	-284823700151558721
	.quad	-8378124357031062868
	.quad	6241573460734267775
	.quad	-8992650428276628305
	.quad	3671179367371097517
	.quad	-7439156885844354171
	.quad	-5114046652650915320
	.quad	2679886952231572898
	.quad	-2961756621292453479
	.quad	9047314185178106166
	.quad	-5890251475232497285
	.quad	-6520090156703798327
	.quad	7747364295616225981
	.quad	3733190423843006503
	.quad	6875295544495962900
	.quad	-1050193076069352558
	.quad	8551842852830175576
	.quad	5659325723768523571
	.quad	7456773911030716065
	.quad	7813053208381689109
	.quad	6888944079000285645
	.quad	8112875284150638945
	.quad	6884957060389645130
	.quad	-2425232581813985922
	.quad	9130495523018399458
	.quad	801110757056513351
	.quad	-8486664869588905648
	.quad	765245033029780710
	.quad	8703776649527121689
	.quad	8001546760344235042
	.quad	-7092680224003991301
	.quad	-6015905043209404857
	.quad	-9098829525737336605
	.quad	4403153515665851078
	.quad	2878453445844686683
	.quad	-5366101104576270696
	.quad	8866466066727875070
	.quad	-148389882762016537
	.quad	-6287457324366599433
	.quad	5537932525008129088
	.quad	7099680991358143212
	.quad	7462007553123783456
	.quad	7061151251183846982
	.quad	-4286716101130839458
	.quad	-2319558624949623734
	.quad	-8094206231789941949
	.quad	-606079032414303642
	.quad	2130326314336363919
	.quad	3189144021848809694
	.quad	-4254549645055837137
	.quad	-6868125505777893852
	.quad	6032668189933768881
	.quad	-2465208511323357692
	.quad	8925792218631314923
	.quad	-9038029927705367935
	.quad	8859017894477140398
	.quad	1675606340537058506
	.quad	-8563337839806280631
	.quad	-1262512863241251032
	.quad	5498903678702785900
	.quad	6903833261382863389
	.quad	-6957605978606569980
	.quad	9021901931786177471
	.quad	3227433089132150317
	.quad	-1807288522911924574
	.quad	-5530875198575254860
	.quad	3071143582305760275
	.quad	-7598026216962521606
	.quad	-7473560186071236649
	.quad	5983269487036236823
	.quad	-8561559366776218203
	.quad	-3937250403863869665
	.quad	-8777136007908171639
	.quad	-2249501572951077428
	.quad	3349369240724295499
	.quad	-9023803764958880979
	.quad	-1557899548123746809
	.quad	-4401319289303479817
	.quad	-5266140935009343870
	.quad	2683581192503868543
	.quad	3842875784859878
	.quad	1190044221726873109
	.quad	732025666411072563
	.quad	7781096808432277694
	.quad	-5366864436053651251
	.quad	9048680577986693793
	.quad	-5918397879605009492
	.quad	-7871374497386921781
	.quad	-4377831035656085652
	.quad	2504592232156788582
	.quad	-7018324726244226368
	.quad	676716758264400180
	.quad	2742973248598700609
	.quad	5556676493068501337
	.quad	7600749634637173603
	.quad	223150585820970035
	.quad	-6265433533695528973
	.quad	6393765978793059531
	.quad	-8809569224222482072
	.quad	7807368722321901553
	.quad	1809286454193262338
	.quad	-4677375628525836964
	.quad	4063577534813458092
	.quad	-7971874368936671781
	.quad	-5437384695084704163
	.quad	-1186198952688598878
	.quad	-1038944426543519556
	.quad	8381902893090443465
	.quad	-774680883073759671
	.quad	-4700158653328966019
	.quad	3219034571632502231
	.quad	-6286485064903306341
	.quad	6032525744779359215
	.quad	3297775431071502652
	.quad	7947266993949467566
	.quad	6161673381820779563
	.quad	-7842117338862345620
	.quad	-777726007645048691
	.quad	2386071939136502354
	.quad	1076023928806956187
	.quad	-2371284390966635176
	.quad	-3158916470001294807
	.quad	-7796887331819536500
	.quad	49704452031233155
	.quad	-4939294911626700916
	.quad	-7101321594586536217
	.quad	-1911518186191373844
	.quad	4134609140844567089
	.quad	3289722700912697012
	.quad	-8755226273835406352
	.quad	8254289394910073433
	.quad	6662408028263651672
	.quad	-556080590942618655
	.quad	-4006601416031118564
	.quad	162486275460316716
	.quad	-1990518627851357919
	.quad	8975700091008617084
	.quad	-6068198175237724045
	.quad	4784466237927085268
	.quad	7549034053521737959
	.quad	-3142994229208797725
	.quad	-9116799925023677303
	.quad	-3722658515947424270
	.quad	-7349620030895732402
	.quad	-4168500098025434806
	.quad	-6059716055170951666
	.quad	5791681577936683396
	.quad	7536922194386052138
	.quad	-3068973826359297280
	.quad	6564316170002440575
	.quad	-7817372806560005660
	.quad	-2320983803808057234
	.quad	-2395346028811589592
	.quad	-4301318513357064806
	.quad	6170115807880821789
	.quad	-3026499323115014521
	.quad	3847143778049885304
	.quad	-9139152642030568479
	.quad	-8467390201525487392
	.quad	2386572354065025243
	.quad	3380585211769037752
	.quad	-2825049271647655116
	.quad	-2202590890012302015
	.quad	-7263472055903054629
	.quad	-1233011068782602050
	.quad	-1610131323796108286
	.quad	7314742546847171114
	.quad	3022945430689585423
	.quad	8765584026888974870
	.quad	-7143750045780034794
	.quad	-4123098438568628858
	.quad	-3112527406353872057
	.quad	2279756782645895464
	.quad	4052489491003061971
	.quad	8179496044948993983
	.quad	-4075399673375140065
	.quad	2710589865977392594
	.quad	6237354803374899565
	.quad	1782400080026955610
	.quad	-2331716996179912274
	.quad	-539484258873332092
	.quad	-5267509690117125456
	.quad	7302978467158243198
	.quad	-4839023080245802391
	.quad	6693531817169120736
	.quad	-1663815838427885245
	.quad	1247805131146218230
	.quad	4411568376012718279
	.quad	8206296174758378006
	.quad	-6518683343365506234
	.quad	197598727360926882
	.quad	-7848269168116618462
	.quad	-4950217032597256119
	.quad	6099268721001354850
	.quad	-7873861010982621932
	.quad	3294640545423918274
	.quad	-9093875086536657340
	.quad	4662756878807039852
	.quad	6674085705093864658
	.quad	87714094983407511
	.quad	-1889812569014363659
	.quad	4673803641651355168
	.quad	-597531473892780720
	.quad	-5069662193927075464
	.quad	1054096986419504561
	.quad	-6552852995054469425
	.quad	-1476876580060009827
	.quad	3094050424671162217
	.quad	-4739468443263961368
	.quad	-8787276874861485687
	.quad	-4681639966236016877
	.quad	820057324758632016
	.quad	-1842580478831284211
	.quad	-3125219518283404322
	.quad	-3922576654376188659
	.quad	157291234996957911
	.quad	3689488130722730671
	.quad	1282418945106189332
	.quad	402903428136517512
	.quad	-741728451746516243
	.quad	-1620545068479575187
	.quad	8039579851564309744
	.quad	8070592018768352242
	.quad	-2876936674749929601
	.quad	-1644542552766809724
	.quad	-3269460529468413522
	.quad	-2871649883391359286
	.quad	3194064293064601632
	.quad	-897602422337381312
	.quad	905657696410604811
	.quad	-927784550015955301
	.quad	-5791374384983969746
	.quad	6361329158080586297
	.quad	7716434025468636299
	.quad	-5313497177854278200
	.quad	-8701175046242505505
	.quad	3235247432024052734
	.quad	-1575635858989759488
	.quad	-9150002940428529031
	.quad	-4830167250860322857
	.quad	5278855478371775662
	.quad	-4550212428463983011
	.quad	-4848331434060570696
	.quad	3875086557856143664
	.quad	-9204638560753416021
	.quad	-1036478895425390525
	.quad	-3541989237582101153
	.quad	2354327747158525902
	.quad	3858493849578874654
	.quad	-5788883751979935391
	.quad	3111136670622270204
	.quad	3062688642530184504
	.quad	-6292754388526854530
	.quad	5909053790519487373
	.quad	7338860374993638946
	.quad	6301472970533827948
	.quad	-4689391532654162526
	.quad	-273473174296309164
	.quad	-3094380370047229599
	.quad	-4596653739032884515
	.quad	1560321784780979958
	.quad	6481702558147486678
	.quad	4003212128032702640
	.quad	-4085921323400626716
	.quad	-5886034345164419276
	.quad	5359827017430680737
	.quad	-2262086240124674325
	.quad	-4591389940185057148
	.quad	3846749698948659819
	.quad	4032064276487021030
	.quad	2511149531350280045
	.quad	4033965095158576064
	.quad	-4833771633066662553
	.quad	-1158305848510732926
	.quad	-3171553933008802842
	.quad	-3913887801281029207
	.quad	2192294551011758591
	.quad	4275966798014984695
	.quad	-5193931599163809502
	.quad	8604705074440591847
	.quad	504054699541924162
	.quad	2622427664115441737
	.quad	-7206941483895701655
	.quad	-2906917247300259221
	.quad	-2736739295317283590
	.quad	-4422715304649953336
	.quad	5121217067631755054
	.quad	-6402020861368995545
	.quad	-2561335916193860826
	.quad	4082492268755213171
	.quad	7220816352984989296
	.quad	-6816249320879115264
	.quad	555087775869586401
	.quad	-5559379062955665277
	.quad	4329692214642010093
	.quad	-5950602308184972158
	.quad	5207091966208328497
	.quad	8787915194769268921
	.quad	-4292001358665894838
	.quad	8574566616348057265
	.quad	4718477922671733191
	.quad	6855378801192266784
	.quad	-2984089951456343326
	.quad	6836040177648043750
	.quad	-7131972098071283309
	.quad	3623027910997185067
	.quad	-2489277234352718683
	.quad	3504133700071704955
	.quad	4135728439139397021
	.quad	1160600455691338871
	.quad	4431928072859292239
	.quad	1542956305318065546
	.quad	-4337562889339856761
	.quad	6118689282549062216
	.quad	-5760088502527540827
	.quad	-9070926871740805957
	.quad	-8433785019261711274
	.quad	-2324528900698314357
	.quad	2981842454755155059
	.quad	2323075624478596600
	.quad	622968343656099962
	.quad	2805455905023215060
	.quad	-5490201004917358538
	.quad	5061011434208437353
	.quad	1862323308049432930
	.quad	2510690568633136287
	.quad	7320135293791459781
	.quad	-3523630929347359058
	.quad	8048490104123382229
	.quad	-8376698579544207389
	.quad	5054618059443499851
	.quad	-2840297013361774381
	.quad	2237142098922639345
	.quad	-588365491319920364
	.quad	3019921476841452425
	.quad	5347556330962644294
	.quad	-1708560732568203298
	.quad	9135041378474229537
	.quad	-2820478586114673236
	.quad	2645257479784082878
	.quad	8105679948445763432
	.quad	8579715781576202730
	.quad	-5009384540560235316
	.quad	4344754720520585005
	.quad	-5120371220775447943
	.quad	165483759318812471
	.quad	-312467859300664374
	.quad	7954296215350467821
	.quad	-7394467041946515270
	.quad	-1672538230182444245
	.quad	-489005897469471414
	.quad	2478089135757248090
	.quad	5231097547198332891
	.quad	-5925095151879521954
	.quad	8321807161082217728
	.quad	2818221455919281213
	.quad	-4695539564561054602
	.quad	7360100056415701682
	.quad	-5873949907581636438
	.quad	1969585222729590085
	.quad	7462994855288208972
	.quad	-8790684880149175475
	.quad	-1580459697767535064
	.quad	160513788731011737
	.quad	4421473254557047860
	.quad	-5695123440969444654
	.quad	-2799508461529044070
	.quad	-7877256665670047358
	.quad	-1574821475240391042
	.quad	-7105121987235245633
	.quad	-1341785127898368338
	.quad	8154944722722765678
	.quad	6696975609844549775
	.quad	-7550777713626673599
	.quad	2277686037575837054
	.quad	-6209901192169207090
	.quad	2086470279064067791
	.quad	4676014362947229904
	.quad	451485010686515888
	.quad	6298394085398869561
	.quad	2287997841086900308
	.quad	-7984677888185259779
	.quad	-2935278427182443349
	.quad	372413865015932342
	.quad	400145827458874655
	.quad	7340905405509675890
	.quad	-7567977043815637245
	.quad	6699766115458902082
	.quad	-719608351378397408
	.quad	6859098360227814806
	.quad	4043818511257773205
	.quad	-7969511761918564023
	.quad	-5474680647036770065
	.quad	2887572870285185444
	.quad	1592411785513140463
	.quad	4870878061838084213
	.quad	8217944443945059145
	.quad	-4437841475419504516
	.quad	-8642717332141287387
	.quad	8100083007464892804
	.quad	-589568404552308326
	.quad	2942668817124399651
	.quad	-7007718675190295837
	.quad	-969479639038080374
	.quad	-8840236979576966155
	.quad	1771475584689465869
	.quad	-7655482694629504857
	.quad	-5544745807981582827
	.quad	-2023317348114516148
	.quad	-6690311659408023589
	.quad	-656961773965035630
	.quad	6099965271863960940
	.quad	8353164617927584418
	.quad	-8279958247449189627
	.quad	-6243742006931219555
	.quad	-8618705364926592694
	.quad	-3722763007284729415
	.quad	-6423582216791310468
	.quad	-4169917606845845331
	.quad	-3019197253978858628
	.quad	-1583381230055798700
	.quad	1677610440440801209
	.quad	7412857987183437300
	.quad	5667706915595397972
	.quad	-4527161289175462032
	.quad	-2003946690863661607
	.quad	-1683404543663036009
	.quad	-1573607767347316827
	.quad	-5355543136540291758
	.quad	4681969767081707610
	.quad	-6300549895187108158
	.quad	-7528325667047315802
	.quad	-5478171813095373086
	.quad	555419805011031621
	.quad	-4731060788196261326
	.quad	-2920089481714018865
	.quad	7023761423093873354
	.quad	-3353377640530569312
	.quad	8625749648874372840
	.quad	6412297471587129206
	.quad	-6285629868984595854
	.quad	2981508076046376567
	.quad	-5891821506328037115
	.quad	7486179684887101641
	.quad	-4932501401268151486
	.quad	7886340517529335171
	.quad	8471822508530984514
	.quad	-632140592029824525
	.quad	7026890484263529627
	.quad	4211681453204926858
	.quad	18361622818116236
	.quad	9050847476587443663
	.quad	8602504001579796205
	.quad	-2382642539793667504
	.quad	5364947806786258030
	.quad	3726902762626541865
	.quad	-3818434972746833203
	.quad	-4908554101953155548
	.quad	3389777680541755027
	.quad	-5980861727043028975
	.quad	-6193572045415007921
	.quad	7993622576569271006
	.quad	-491428821607564845
	.quad	1938481567371934760
	.quad	-6296532708246863568
	.quad	-9084120650888656349
	.quad	6491356159483508885
	.quad	8543224082493101588
	.quad	-1155814390431293029
	.quad	-1098655401163060722
	.quad	3323350644823701753
	.quad	398525379151271104
	.quad	-652326409570182939
	.quad	-1353068782172609962
	.quad	-842487597435110587
	.quad	-7992270000873733197
	.quad	-4067101613573066273
	.quad	7782276388892756934
	.quad	-2779334553037456347
	.quad	3722931929233610757
	.quad	1313553897796580081
	.quad	1667454418978759373
	.quad	2269617799051668437
	.quad	-1036852651835612241
	.quad	3227844070685584591
	.quad	2277727042276575910
	.quad	7142714671693815636
	.quad	6283363992690323330
	.quad	5980348330249667460
	.quad	6083414483005347460
	.quad	-5374114943518859403
	.quad	2766694141828761202
	.quad	-1326560159923749637
	.quad	5655824668194536233
	.quad	8462503311301842617
	.quad	-2567156896259118674
	.quad	7544739593613756484
	.quad	5880914635028486784
	.quad	2898124605786107494
	.quad	7953506026198179840
	.quad	2189477357380899574
	.quad	-7239621630755857323
	.quad	-9158204841049342945
	.quad	-4919046448698572163
	.quad	448462453367651162
	.quad	3871769944323266884
	.quad	8986412525236655377
	.quad	-5777395523093493189
	.quad	-6414856580970405138
	.quad	1575183046251762194
	.quad	-8053500376603608663
	.quad	3073623652761044869
	.quad	3949138391464698111
	.quad	-4142273542629778414
	.quad	8463313329760187347
	.quad	-8671203935666365608
	.quad	-198491419847971310
	.quad	-8945087181249940338
	.quad	-9062948787668918506
	.quad	-5014841076025575103
	.quad	3165683460713073462
	.quad	-8646535224738741042
	.quad	8521215680274024559
	.quad	382555998437069789
	.quad	-3946876138259844055
	.quad	-7270284572861837521
	.quad	4171281944086810524
	.quad	-3396068494773899344
	.quad	1550755113295510434
	.quad	-7184538354276381031
	.quad	7539606872920196479
	.quad	492385789142086954
	.quad	-2410149953376700349
	.quad	8084547797138041354
	.quad	-8383407883938023902
	.quad	2484395715469739911
	.quad	4879298610504146231
	.quad	7144591079605395001
	.quad	8380739907063065951
	.quad	5238435798964066529
	.quad	-6251964261320912497
	.quad	2414766501711416412
	.quad	2405544329502236282
	.quad	-5989575454034289049
	.quad	-3934939085663452185
	.quad	9122648474259985341
	.quad	-6733421313255382219
	.quad	6293770254380331844
	.quad	-9066232761278730759
	.quad	3132938411600676301
	.quad	6370044880640490224
	.quad	4674141431261411396
	.quad	-7463529845825315255
	.quad	8315910090613269111
	.quad	6321170478049047108
	.quad	-4755956894013354841
	.quad	-4984976736635165699
	.quad	-7488380493181281106
	.quad	-850491319810794842
	.quad	-4684023877378173385
	.quad	-91110407456548488
	.quad	194633990068625151
	.quad	1028128699653523895
	.quad	7436102537486268753
	.quad	1855520454959348468
	.quad	5098690958966904466
	.quad	3342676718901330604
	.quad	6942212660412942406
	.quad	-1936555235499877533
	.quad	7963995066277321795
	.quad	-3460513728547000250
	.quad	-7830377613107078838
	.quad	-2259800744493870467
	.quad	-8923888429544903893
	.quad	-8588407635832530438
	.quad	-2101801671438478732
	.quad	-419390579618961594
	.quad	-5271135162864787695
	.quad	-7278356605328213106
	.quad	5555873864224342205
	.quad	-666184471137911271
	.quad	1582669533588472814
	.quad	8145133762789622706
	.quad	1625372887980692455
	.quad	4576809104068554285
	.quad	-1431221699453705459
	.quad	7155392284047197223
	.quad	1248775493117789546
	.quad	9199472299655737207
	.quad	-5319858749052268669
	.quad	-6353754697625868327
	.quad	2035698983314262432
	.quad	835441512024005104
	.quad	2900978533555060931
	.quad	1749946807863203576
	.quad	-6741009561778479157
	.quad	4446980691693419424
	.quad	-4009219913114644375
	.quad	-5650831507069550843
	.quad	-8046707819011612462
	.quad	8356113088668925361
	.quad	-2558163822171553993
	.quad	-4192834239980852638
	.quad	-4001205581042320900
	.quad	4028538972354525849
	.quad	7720263170150940477
	.quad	1190890222876864097
	.quad	8657188516818851005
	.quad	1987613286973742753
	.quad	8900726473285671992
	.quad	890209742292473781
	.quad	-2387275684990178449
	.quad	-1868803135167318395
	.quad	-1064977208747323883
	.quad	231915274132518769
	.quad	-1968927049696672916
	.quad	-2800722787399283071
	.quad	-2609725787342753926
	.quad	-332330263143741288
	.quad	-9004870039142400815
	.quad	-4370802935820362223
	.quad	-5659981018662282356
	.quad	9121030808281463204
	.quad	1713778999270814105
	.quad	-1431482209271060949
	.quad	-934879789247072565
	.quad	4391315454785363822
	.quad	-1813354827210299050
	.quad	4290325975494843430
	.quad	-2534073424047326425
	.quad	-4274010252106223249
	.quad	-5736941446215009907
	.quad	-8798505391870672981
	.quad	180576351599892120
	.quad	-7927433048292952573
	.quad	8477424469145179535
	.quad	4669867751250116471
	.quad	1994919128545862505
	.quad	-7890851667196213054
	.quad	-2794836402382877689
	.quad	-3112250393098524288
	.quad	4196883387800999444
	.quad	-7185674233629849362
	.quad	7135968036494594517
	.quad	-3908895062078307546
	.quad	1930221875891546479
	.quad	3029378442249928630
	.quad	6219774718328347890
	.quad	5922417028077454069
	.quad	-602709327041276479
	.quad	3995102189778453406
	.quad	-81980524932693196
	.quad	-2304987071676022023
	.quad	8011233855640103370
	.quad	-1757003722188724847
	.quad	-783500235159976712
	.quad	7821917468218835021
	.quad	-5976339112521034833
	.quad	-8025880199456749621
	.quad	1369334550763670666
	.quad	4781925915058005676
	.quad	-5360205228351563585
	.quad	-7415714605520708850
	.quad	-3194721768587989761
	.quad	-7948973380840661957
	.quad	-7269158812295112151
	.quad	8555550767077757372
	.quad	8433510782220427750
	.quad	3914752085207636707
	.quad	8293390980487843445
	.quad	8498007843305603692
	.quad	-6571329513489350090
	.quad	3274303396904444376
	.quad	8808726441417268278
	.quad	8201526072266158452
	.quad	1136378216494101481
	.quad	-3432600708666478463
	.quad	-8693950541700763351
	.quad	-23137983802744334
	.quad	-5738366375163573203
	.quad	-4749338545053802925
	.quad	8345000478355325237
	.quad	7074065506008475070
	.quad	8734515145762395808
	.quad	1009542667420924111
	.quad	-8367753839629328329
	.quad	-5837836615002122330
	.quad	4586133556055561102
	.quad	8514002041295434852
	.quad	-5606119590660889501
	.quad	-4832517950103171997
	.quad	-3359172078535702272
	.quad	1395488309690794621
	.quad	7173958427217959878
	.quad	1198561064176820332
	.quad	-1624857813543869990
	.quad	-8427264904048333681
	.quad	571762720385294452
	.quad	-9151736755660585862
	.quad	4402973778680800006
	.quad	3661219619363508770
	.quad	-4644995313574936602
	.quad	4440190398814147562
	.quad	84468586982729054
	.quad	-158441323789541972
	.quad	8089335244564816024
	.quad	4652396396372834438
	.quad	8473523796721514770
	.quad	4493469844513366216
	.quad	5448577418901909194
	.quad	-4959241553368357746
	.quad	-467855153686170532
	.quad	-5321521263289423494
	.quad	8532850531904699855
	.quad	1884947799710040549
	.quad	-5254992841933293864
	.quad	5216762030613829632
	.quad	2728367517133780658
	.quad	3688253804995769492
	.quad	-3417601649411481273
	.quad	5296055023128814083
	.quad	-7077603913905578481
	.quad	8391820975236191093
	.quad	4865145203995472561
	.quad	-3547015191128320451
	.quad	-7277711355185492880
	.quad	-3914303552255988853
	.quad	7464998467530340358
	.quad	-3465497691951936845
	.quad	-6706399146224405692
	.quad	-5151497504344267029
	.quad	7074365828940724041
	.quad	-2862237018275929765
	.quad	-2000700712440561456
	.quad	9211411382103079596
	.quad	3117834653346946552
	.quad	7467025269689063225
	.quad	1242992129726403300
	.quad	2014928170416925311
	.quad	6341058783517690890
	.quad	-6756452575456531986
	.quad	-2495157826111962193
	.quad	-4412750837006580057
	.quad	-1483018782142492152
	.quad	-3371619456955232390
	.quad	-3489925374107505554
	.quad	7036212790586382356
	.quad	-8231489905263764549
	.quad	-1197253990759818587
	.quad	4909820781443705800
	.quad	-1803371576812029442
	.quad	2091062597876684083
	.quad	1733033959604406405
	.quad	-8545415823194019081
	.quad	-5650438758077347674
	.quad	-7627674626049147769
	.quad	-5904505831200890376
	.quad	-1368966336246697378
	.quad	4364294351375777648
	.quad	8335244153165894685
	.quad	8863541604979427311
	.quad	-1570996973897430977
	.quad	-8508779151373332586
	.quad	-7178120072891639835
	.quad	-7808267698777074579
	.quad	-1770315685756731799
	.quad	-4253490415083796338
	.quad	2634321065668976787
	.quad	-5904584241418540447
	.quad	-5797969945879313298
	.quad	5576880401343711606
	.quad	-6659876506819944758
	.quad	7421038047404952574
	.quad	1037620897405863409
	.quad	-1765871716463225971
	.quad	-8003453946144665393
	.quad	-8728561177695721035
	.quad	7699266668079313941
	.quad	-578128671723844262
	.quad	-4286550406016434315
	.quad	9070958842401092679
	.quad	8006679375886609259
	.quad	-5031752284200348734
	.quad	3933392243827535811
	.quad	5160543338263740972
	.quad	-3247736779422944792
	.quad	-8221226705744742586
	.quad	-5618965423886409967
	.quad	-2400704679821736476
	.quad	284741135347255597
	.quad	4015036609703147909
	.quad	3902771329647468314
	.quad	5128707935422024078
	.quad	1576249226280590825
	.quad	-3169319825106695255
	.quad	-8906246844708289972
	.quad	-5111331586026588689
	.quad	-5900745845725556979
	.quad	-4993747585187547994
	.quad	993626331412186656
	.quad	-177489565177097740
	.quad	-1493596029083206253
	.quad	5101833106541998042
	.quad	7655361325113312133
	.quad	-2497837330417673888
	.quad	-6827339798953202201
	.quad	7521254459857915559
	.quad	-3468703263560216698
	.quad	-53749556617592025
	.quad	6499763229352085115
	.quad	-1174160306688805391
	.quad	1511895166239351648
	.quad	6938544898364959180
	.quad	6817821492681525481
	.quad	7583134150677700238
	.quad	-346821368446502986
	.quad	7148441960599650055
	.quad	-7417223616956868458
	.quad	2297291237551781454
	.quad	7934683676555855479
	.quad	1563954733146546128
	.quad	2252805128528536255
	.quad	-7923368377886612504
	.quad	4598652721256818062
	.quad	-953364968639790181
	.quad	1926348565003865371
	.quad	4255254433704268046
	.quad	1681158193358626496
	.quad	5991810433630706483
	.quad	6895091633283981575
	.quad	5371071658742354426
	.quad	-6839921140844276412
	.quad	-8601056111636149893
	.quad	1717382065475436420
	.quad	-6002467879549221232
	.quad	3605273785657402256
	.quad	-943321468040430601
	.quad	-6380287070796155310
	.quad	-336916871597668932
	.quad	-6891506051489599216
	.quad	1993655497207863497
	.quad	2156969529075983079
	.quad	-1680794086812536743
	.quad	687516913951147292
	.quad	-2784979453711863973
	.quad	-6561299195403957531
	.quad	3605001634912029345
	.quad	2710719643887252156
	.quad	6410529265713440395
	.quad	-3594520408031941237
	.quad	4743851404709775958
	.quad	8525514757892437524
	.quad	-8043966892210959891
	.quad	-1350709073781085012
	.quad	4289543339828736175
	.quad	4306145672261807290
	.quad	-3080619074481843686
	.quad	-4594640401777287549
	.quad	7066817443538968138
	.quad	-7709136444653364680
	.quad	4415184411883990205
	.quad	7612706496226832024
	.quad	-5387660939150184434
	.quad	-1051793843416437623
	.quad	3515680330619600100
	.quad	9159996652502914864
	.quad	-8145394650507255224
	.quad	-4916653170386550984
	.quad	4082840779249202050
	.quad	8824726775176314063
	.quad	-2412976301349599831
	.quad	9181204573557660412
	.quad	7582747879080399183
	.quad	5775422047968008097
	.quad	-1578594687005511891
	.quad	-2971247258957690818
	.quad	-8305871778786633527
	.quad	-7940974670180506417
	.quad	-2634525579216669434
	.quad	-7012276010443733341
	.quad	-466417259980654898
	.quad	2747551692916263132
	.quad	3151123035150683281
	.quad	-4508429740399867825
	.quad	-6475879818225972056
	.quad	7894236725861110998
	.quad	-7931130450476983900
	.quad	-8001186242952484777
	.quad	-7291646345967500661
	.quad	-8913437912923147837
	.quad	6213685338081339070
	.quad	3385069213280895743
	.quad	3751722427774356033
	.quad	6150559358156178653
	.quad	-3426928249427672422
	.quad	-3513216314563594350
	.quad	276925055263804213
	.quad	511773909731247800
	.quad	2463012923954369656
	.quad	-2587602357118510145
	.quad	4940781664379556792
	.quad	-6011119730174803332
	.quad	-8168659545959422288
	.quad	-5268608292583719124
	.quad	5930328346313533490
	.quad	-2952424185190737128
	.quad	2689475832913388379
	.quad	-8321765068957142532
	.quad	-5384463279196921785
	.quad	-3573537549408727253
	.quad	8616648185563730979
	.quad	-3413250728518032600
	.quad	-5844737371706149716
	.quad	9122100956633732655
	.quad	4007876149211873275
	.quad	8339438668849688737
	.quad	7791075492023424820
	.quad	1771434463088769532
	.quad	-1005489926043646829
	.quad	-8976445512646267743
	.quad	-1894393560382665265
	.quad	3702155006521252805
	.quad	8105259775102479095
	.quad	-2943209178963208799
	.quad	8381384129528103071
	.quad	3654316315693298575
	.quad	2195495675088092092
	.quad	-8009068319667393328
	.quad	-2132037327422898617
	.quad	2842235074681099572
	.quad	6045955093828210410
	.quad	-5912716667501967897
	.quad	9023829328537353058
	.quad	1661393615224515538
	.quad	3265308219651631507
	.quad	-3621302453163316309
	.quad	6190486519065164472
	.quad	8394466698582982865
	.quad	-3634952569041644373
	.quad	6536935190290983088
	.quad	-7077905319916940110
	.quad	8706790942476159327
	.quad	2732345461885702701
	.quad	4578683468384947164
	.quad	-4665298498202341329
	.quad	-8876981442331629915
	.quad	-8104776764436281316
	.quad	4697570564829842013
	.quad	-1761981947805884313
	.quad	5281929071085172097
	.quad	-5418782527296880489
	.quad	-47979470717375302
	.quad	3872796039504642974
	.quad	1749023725863256505
	.quad	6269967439734872000
	.quad	-8389543105044220200
	.quad	-3413251680381755038
	.quad	-6969404583176823733
	.quad	-6907533801164779454
	.quad	6868066136907025162
	.quad	1313967559405474021
	.quad	3625046733403850478
	.quad	-374307751723873268
	.quad	-5520019241799784161
	.quad	-1185854681786076496
	.quad	2205546675974800411
	.quad	4823605748727161314
	.quad	-6690365753673293186
	.quad	-5721118158121408751
	.quad	-8727089179715039158
	.quad	-5947134183263177123
	.quad	9112563462369462323
	.quad	7849308142991804730
	.quad	-7146472191021458821
	.quad	-1171248409871116019
	.quad	3742053159993618077
	.quad	-8913527711784192696
	.quad	3620769638269480452
	.quad	531680461898170
	.quad	-8233516821195882745
	.quad	-2999928037771048921
	.quad	-3256875204894864851
	.quad	8689079054027125562
	.quad	-7679443249941890606
	.quad	-6261484254428740415
	.quad	3817443363908171455
	.quad	-4183719797985669196
	.quad	-8002644227068933793
	.quad	-112967350125821547
	.quad	8906801086769828484
	.quad	7805032626511449445
	.quad	-2902310544689550595
	.quad	-1318517195991295481
	.quad	2954211398425891878
	.quad	887045055614004603
	.quad	-1421782520805054972
	.quad	-7263560259581488927
	.quad	2275500228939836642
	.quad	8454621353771976628
	.quad	-4740693202392111095
	.quad	-5293961390421255190
	.quad	-1671666077013181597
	.quad	-7010497372543455289
	.quad	-765014490793006257
	.quad	8783919533190163234
	.quad	8404976038282141545
	.quad	-3759851707013256352
	.quad	8673763375857142739
	.quad	-8220651228084058612
	.quad	5035609627965208105
	.quad	6338722048255995169
	.quad	-6851774385741076281
	.quad	5639340633771742838
	.quad	6928934109570365590
	.quad	-6857134160624383909
	.quad	-93209778689781369
	.quad	6879412911232288750
	.quad	2419239248251153850
	.quad	-2382473582889090639
	.quad	5070674325182887571
	.quad	8737008639788420504
	.quad	-6486963667461335605
	.quad	8345840141325998827
	.quad	-3699631554428468884
	.quad	7787334016216788486
	.quad	-5223369732732709232
	.quad	5803903047180226505
	.quad	-8064351217417412666
	.quad	6807712794865416975
	.quad	7273350714698980002
	.quad	-2375128956840448863
	.quad	-7316639207501355770
	.quad	-1347521360242282810
	.quad	2751380746160289973
	.quad	520111344125586851
	.quad	5518080020523982028
	.quad	5224107185434650165
	.quad	-5675245043099945383
	.quad	-2403269366513778400
	.quad	-5070624974227963324
	.quad	1881254102903546019
	.quad	4288395624114587260
	.quad	-8260150335902431968
	.quad	5970871638851383523
	.quad	-1172115920699475025
	.quad	-7363389054317777648
	.quad	-2875092691869134966
	.quad	7269503864920933911
	.quad	34314525388851272
	.quad	1254701782185288323
	.quad	-9180735601627884826
	.quad	-1375455186798342143
	.quad	-7803700288150648836
	.quad	-1834871420346968646
	.quad	2755574474517467100
	.quad	-8623584278317799821
	.quad	8847049430024807094
	.quad	-4927837060595764181
	.quad	-4647555958746285394
	.quad	-7497416076659934000
	.quad	-5594869092488940467
	.quad	-4201420136223466022
	.quad	-121940327647337705
	.quad	-5222002311393686786
	.quad	-2536201063034355686
	.quad	-7293898614427297249
	.quad	2502806428642371310
	.quad	-4109326931711997373
	.quad	-9149721057305526073
	.quad	991878181730753873
	.quad	-2023104804502300309
	.quad	-2740920700703316023
	.quad	-994711534215131688
	.quad	-8404735479952867608
	.quad	6713471518385846030
	.quad	-7484898234783012639
	.quad	855334359173719954
	.quad	7598642325962297361
	.quad	-440232808332518715
	.quad	6844179774752820363
	.quad	248341098560552116
	.quad	-9187292898008019042
	.quad	-2848758532767939069
	.quad	4541553034987877619
	.quad	8927802479718285609
	.quad	-3774513358780749040
	.quad	-4162126123104244916
	.quad	-5106773261318769570
	.quad	787078889494395850
	.quad	-281304659276487697
	.quad	-3753461185289965522
	.quad	-3454127783919558386
	.quad	-5214535922907997704
	.quad	-1596396587795213923
	.quad	223364064845089224
	.quad	7302899015436300563
	.quad	4391216311540396088
	.quad	-5888355670520871079
	.quad	-7758765504196196806
	.quad	-9073173217144901844
	.quad	4079327722512691465
	.quad	5372437374337150740
	.quad	3297421622932790851
	.quad	-9119890479885696929
	.quad	8305371884938201251
	.quad	-5325271741958820313
	.quad	323745485980480220
	.quad	-3336435371181431639
	.quad	4696302365805118372
	.quad	-8587649572874980014
	.quad	5315656270700787939
	.quad	4187063204400651801
	.quad	1695695129564818327
	.quad	-5629157229689701812
	.quad	-3021255856793809687
	.quad	-3153181160583508562
	.quad	-6675845102943573061
	.quad	6806103820345670787
	.quad	-657649924570921157
	.quad	3807781571713999192
	.quad	5823254011289457198
	.quad	-8334219842793536012
	.quad	-4875600165053281017
	.quad	6031089010487808103
	.quad	5774558171390644848
	.quad	1808959243244841573
	.quad	-4375431543282859461
	.quad	-9205344831004998214
	.quad	-8610594023054182385
	.quad	-4363736101306016125
	.quad	-2437209559580046341
	.quad	-5965494961478412577
	.quad	-8137353414446970473
	.quad	5782517315325366794
	.quad	-1729359520414792086
	.quad	4578392002424884134
	.quad	239005024949492645
	.quad	1836857790164349346
	.quad	-7183669295054634501
	.quad	4786985732596838094
	.quad	-7921298988773453942
	.quad	1484357665966453236
	.quad	3110871407036679558
	.quad	1668700683093601768
	.quad	2736269131339849752
	.quad	-9197381479518631370
	.quad	8088172462140746331
	.quad	4080107866285682736
	.quad	-2241144535271000263
	.quad	-133800928103239339
	.quad	9100632964181080418
	.quad	3969991115337154345
	.quad	5340098959750368315
	.quad	-6324295666661515971
	.quad	2891250339380982359
	.quad	-5652532020777028216
	.quad	7166035112141500392
	.quad	-2669302760984710454
	.quad	4552528682229856831
	.quad	2210391301762911476
	.quad	-2036489392752230230
	.quad	6910044784455706429
	.quad	-6495498299038628761
	.quad	207795885948948810
	.quad	3884359690300962405
	.quad	4578772752480772344
	.quad	2948797025787714138
	.quad	-1672299538051348808
	.quad	1388183483009000463
	.quad	-1884764944689646196
	.quad	1881862411760441386
	.quad	-3004793558998229606
	.quad	-5513723850251112760
	.quad	5570341451312029630
	.quad	-274105113981292557
	.quad	9074261777549091198
	.quad	6171200053222754816
	.quad	-8320308971533514379
	.quad	1545112930055760251
	.quad	-6883604081838990023
	.quad	-7679989901344612782
	.quad	5116781688621052838
	.quad	-3975028954208770241
	.quad	4724882615229687192
	.quad	-8415057042987505291
	.quad	-3429914606274770804
	.quad	6777508689306592732
	.quad	3811682306063049290
	.quad	-6971382850837675229
	.quad	6080948654298953274
	.quad	-6834001798946936583
	.quad	5268311600240325047
	.quad	9147351973710519861
	.quad	-6316540302779078857
	.quad	3880998309361490881
	.quad	8807462332494735511
	.quad	-9155355999372496483
	.quad	-281431769460569184
	.quad	-5713599638868015637
	.quad	-356548376021315345
	.quad	5825342884125782172
	.quad	-5412358429259151000
	.quad	-1947808033833340314
	.quad	-5427729517379824028
	.quad	-535633880641467201
	.quad	2034190024798401134
	.quad	1526884555531436223
	.quad	8108814142164064795
	.quad	4075908755148182733
	.quad	6404489603451030675
	.quad	-1844994618364968239
	.quad	-5539003406280595544
	.quad	8446383351289364752
	.quad	698035388979141580
	.quad	3593914367189873571
	.quad	6744392605914028800
	.quad	-278665120562259160
	.quad	-3962040575216828917
	.quad	6030798911934842161
	.quad	-2515742044453349328
	.quad	-4955142081385060376
	.quad	8585568434702372483
	.quad	9113555433818303018
	.quad	6375455514164501736
	.quad	1476639189214882947
	.quad	5209683814158663472
	.quad	-1551217100581194438
	.quad	-7989255163317916589
	.quad	-916741031477110915
	.quad	4030542539553991812
	.quad	-9001087785836566653
	.quad	4212489101708176016
	.quad	837886727556721620
	.quad	2983790309644332360
	.quad	-7169971340715126269
	.quad	1310621139116895737
	.quad	3131558545024164284
	.quad	3529698629777893989
	.quad	-5174970739251408246
	.quad	8171825923423406479
	.quad	305718858162497191
	.quad	-6099200085146979094
	.quad	4315642616923374215
	.quad	-860266310849123769
	.quad	1037334149869395772
	.quad	-135672527704418892
	.quad	1489505092175764848
	.quad	8926409949339059078
	.quad	-8186436463764480900
	.quad	1253128470325829265
	.quad	917180526219408600
	.quad	-7975318999229858458
	.quad	-5788065809250196284
	.quad	8502334428811982364
	.quad	3789675096428271759
	.quad	4531393894096863308
	.quad	-6270248315807756103
	.quad	-3364977279114079980
	.quad	3944913291385975654
	.quad	-3938912003805460132
	.quad	3624606168811123851
	.quad	-6969775566032453506
	.quad	1056328247986567681
	.quad	-3200136071509498656
	.quad	6566558379177875405
	.quad	652315099041528631
	.quad	4287214618428297946
	.quad	-6716183848275688167
	.quad	7935915607867430686
	.quad	-2467584606899612608
	.quad	9209839549459543141
	.quad	-8945698834350816943
	.quad	-2955970345450667339
	.quad	-4165742629206438520
	.quad	-9192940595171323743
	.quad	3842669056581745692
	.quad	-46753417403724452
	.quad	-6605356568998607395
	.quad	-2394382237120544233
	.quad	831115622826254867
	.quad	8219898649601530197
	.quad	2339128600785774471
	.quad	1426373723429876004
	.quad	3299581455481810683
	.quad	-1480199472856504459
	.quad	8419320331267538738
	.quad	8376963013864643226
	.quad	1996128805959565963
	.quad	2376766970819731241
	.quad	-7483132232014296705
	.quad	2914831079289063424
	.quad	-2562487613318615249
	.quad	8724520571578171796
	.quad	329402220949313078
	.quad	8905943304651682982
	.quad	1280899166177109409
	.quad	6980213851983339340
	.quad	5524321102331478758
	.quad	2149164875175284006
	.quad	-7549104589195351291
	.quad	-3841562281673930972
	.quad	316829907946955098
	.quad	-4669963254782513114
	.quad	-278831631964250569
	.quad	-1601131479824445164
	.quad	-2628804048602514728
	.quad	-4041738871752477248
	.quad	-6799666136481544311
	.quad	-4651305280931958174
	.quad	-8633404927868909533
	.quad	-5250547867726624709
	.quad	5981408724994946624
	.quad	-6142931255624861491
	.quad	-6625334843223924291
	.quad	1934768678832528678
	.quad	-2648346743562400433
	.quad	2089418311766868031
	.quad	-2240620761862708969
	.quad	-8169767926153946871
	.quad	-3587993287009678280
	.quad	2500482310681473276
	.quad	-8943882788008802812
	.quad	-6282916095179272072
	.quad	-9063675165892071682
	.quad	5717811606328725851
	.quad	-6030546058688714883
	.quad	-2757157908988873722
	.quad	-4108822375985202095
	.quad	-9054340608066580337
	.quad	6696074876763293236
	.quad	-8143771378269264648
	.quad	-1799689310423889371
	.quad	7841147641486000427
	.quad	-7834107218989576267
	.quad	3592516733641215266
	.quad	-4274284249745943761
	.quad	1290213042793222575
	.quad	2761556549307077918
	.quad	-6999724083525932967
	.quad	-7895793350738538009
	.quad	-7198120811180785254
	.quad	7253078585345602745
	.quad	-8041885190069020647
	.quad	4110435371892881242
	.quad	-4145908537368001411
	.quad	5864304948398186216
	.quad	669023308228170515
	.quad	-7390405468471216659
	.quad	489822210532172808
	.quad	8011857987203167032
	.quad	1587230808446527981
	.quad	6140811755424295323
	.quad	-4304723957946130583
	.quad	-3593827770672936150
	.quad	-3564869430569730753
	.quad	7416351644889114861
	.quad	-5618808681332405248
	.quad	-4657285070874281400
	.quad	-5261269067270424873
	.quad	-4697350841806935965
	.quad	-2945248649800173745
	.quad	-9209002302352400831
	.quad	6764651885201630516
	.quad	1437817419486128663
	.quad	-1504377745270171016
	.quad	5784666561714233692
	.quad	6293805363238617381
	.quad	-4747667723882089585
	.quad	-5115621572485435145
	.quad	-1896280387425127096
	.quad	5769311031230463240
	.quad	-7404717680697121446
	.quad	-7353706342175798787
	.quad	-2853175844331604113
	.quad	1505642484246542411
	.quad	3633407696985690830
	.quad	-4018002052311928305
	.quad	-4303920526980255396
	.quad	-3242563172666691019
	.quad	2340969308352014726
	.quad	6325346014821350440
	.quad	-1086683420111066589
	.quad	5356327882949496786
	.quad	-6522673890384799334
	.quad	893463288511508973
	.quad	-7259030123813629338
	.quad	-4074600327980925627
	.quad	-7676653772545876757
	.quad	2256344140527568708
	.quad	-620671255519447468
	.quad	-4153567841147165286
	.quad	-8590227849862535017
	.quad	9115327099799555452
	.quad	-5890596235126743815
	.quad	8055581491243837629
	.quad	2279026259693364517
	.quad	-683682524375629038
	.quad	-6909184924577545970
	.quad	7485693378128570416
	.quad	-6063719411012124921
	.quad	428156501949303205
	.quad	-5023770952266911038
	.quad	4242380505753654085
	.quad	5143667148229816302
	.quad	7273865467828540514
	.quad	-402755869756125037
	.quad	4465510962443795966
	.quad	-3648046096182382323
	.quad	-308341199355773319
	.quad	-8214254228214099759
	.quad	8445067370861894735
	.quad	7261924969794735844
	.quad	803961266791319338
	.quad	-7446998227986509196
	.quad	-5084961555424431588
	.quad	4102970312250396814
	.quad	-8020963751024164195
	.quad	-7415841427805239210
	.quad	-6509946651964061559
	.quad	-9219260990856309495
	.quad	-9135502315756097681
	.quad	5264349882261601831
	.quad	5099828715235639682
	.quad	8668408771945259726
	.quad	-1947217015396726986
	.quad	5677298314761366309
	.quad	-8872726668295054235
	.quad	6784186777557800584
	.quad	6272335664607110983
	.quad	-409345803592926705
	.quad	-7855155446362064024
	.quad	4500048053254191281
	.quad	-7170534773543021893
	.quad	-6626157625744793047
	.quad	2054697368726082711
	.quad	6890315380154425093
	.quad	-4988990868374000483
	.quad	-640153382470943491
	.quad	-942137916274342890
	.quad	5980179449827732070
	.quad	2924787861338145394
	.quad	-61053226133641403
	.quad	586769555520123099
	.quad	8369274592406842441
	.quad	-819505208078500009
	.quad	7938921666334076248
	.quad	-473731361873014524
	.quad	-5771788857348679031
	.quad	-8536192318582295108
	.quad	-2558967193102652166
	.quad	7370561554470601702
	.quad	7764450301197173792
	.quad	3619657384652518064
	.quad	-3464049823247391807
	.quad	-7776375104276674034
	.quad	7211396312939564152
	.quad	2969730623347112178
	.quad	-7392512598106725775
	.quad	-1812118502327545314
	.quad	-6416799984692224428
	.quad	2225879640561819982
	.quad	-6742425079789218665
	.quad	3950313163771174404
	.quad	4824246269812452298
	.quad	-7401643415370893804
	.quad	5498330448102279905
	.quad	398169994352987913
	.quad	-3879715464505346485
	.quad	8612621215918761275
	.quad	-4641938607073619674
	.quad	3162384357529036431
	.quad	1169034958303809702
	.quad	7175696550281935357
	.quad	168157185339249497
	.quad	-2722238410578455954
	.quad	5177985917647853183
	.quad	4015992292247142861
	.quad	-5266544285505521800
	.quad	-2982982238177976890
	.quad	-4328715063308341492
	.quad	5609726561837098480
	.quad	-6862306823241634136
	.quad	-8422667990479043037
	.quad	817233210800336958
	.quad	6169075716388850689
	.quad	524801001868947866
	.quad	2265731457641254034
	.quad	8123570138855147808
	.quad	-1410140858343151612
	.quad	4785895377696606034
	.quad	-1068468801884785110
	.quad	2647814045476304565
	.quad	-5224545775830719875
	.quad	1534645012286377939
	.quad	-8896153321336804674
	.quad	-9139915873149113404
	.quad	8893915226176945194
	.quad	-9196428196013048423
	.quad	5445939106839358660
	.quad	8279405789880726307
	.quad	-4845386263866800018
	.quad	1018429316582993541
	.quad	-6529728576037658140
	.quad	8516257231153197553
	.quad	5829528893973009545
	.quad	-3848888695712428021
	.quad	6631986941807939061
	.quad	-6463178737285043579
	.quad	-4978240167272825758
	.quad	5675140826740925125
	.quad	-8292554714467449277
	.quad	-1587242582850865949
	.quad	-4805552303289159138
	.quad	-2909412149231406446
	.quad	-2122822861869103510
	.quad	2854411881211881129
	.quad	8128151313298933987
	.quad	2419529076552524978
	.quad	1097143342756111256
	.quad	9041313458287284907
	.quad	-2810438661170536201
	.quad	-1543027847987681312
	.quad	-4096359053025481612
	.quad	-1779671956583180698
	.quad	853902443967109017
	.quad	8393002195233818547
	.quad	-2754408830760453859
	.quad	-8213857642508403230
	.quad	-6689381058560167296
	.quad	7667233646992437811
	.quad	1133558086343704360
	.quad	6210057775737212769
	.quad	988736016460605596
	.quad	752050541072089412
	.quad	-8324954184686825157
	.quad	5060083756619647260
	.quad	6577420941165363788
	.quad	6390223798455008082
	.quad	-6830776319755841872
	.quad	7010051628767479155
	.quad	-2509805232974960466
	.quad	-6477520790288616521
	.quad	6887250096761908240
	.quad	4685384794397726083
	.quad	5792150551938915934
	.quad	3536332919932668305
	.quad	-1071410441815292498
	.quad	-6390467466826731808
	.quad	-7708620435014936210
	.quad	-6646529024420806346
	.quad	-7503072612704711403
	.quad	-3822494497862783445
	.quad	8643073512039958712
	.quad	-2658162163964441386
	.quad	5124360531652913292
	.quad	-8159686488762048159
	.quad	4752279182903298786
	.quad	7463487194056923525
	.quad	8825880149139953755
	.quad	3200440568657110086
	.quad	1802607640384980929
	.quad	1622569546126104415
	.quad	192794315689238011
	.quad	7121346410246285972
	.quad	-5372869592015681936
	.quad	-3575562275745692311
	.quad	8906367850320011247
	.quad	903162057802746775
	.quad	-9099565110450544933
	.quad	-2859195597173896182
	.quad	-813463161491874743
	.quad	-6557972869174433082
	.quad	1713382804914600570
	.quad	-487144648860768290
	.quad	-40159601219218610
	.quad	5537567455099242728
	.quad	-7889229914030632966
	.quad	5563033614645762160
	.quad	-6406768169924992203
	.quad	-45534508436692763
	.quad	6601550394712733234
	.quad	4290760378304901435
	.quad	-3900797186136717728
	.quad	3459707216380961167
	.quad	-3597107661932164548
	.quad	-6106401457410241149
	.quad	2643081025052622745
	.quad	-8191380205774499287
	.quad	1490557404107428532
	.quad	-2973801402969535839
	.quad	-785766337321862818
	.quad	-3178943413476534636
	.quad	-9021077438511729369
# WAS .section	.rodata.ONE,"a"
.text
	.align 32
	.type	ONE, @object
	.size	ONE, 32
.LONE_local_target:
ONE:
	.quad	1
	.quad	-4294967296
	.quad	-1
	.quad	4294967294
	.section	.bss.EC_GFp_nistp256_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_nistp256_method_once, @object
	.size	EC_GFp_nistp256_method_once, 4
EC_GFp_nistp256_method_once:
.LEC_GFp_nistp256_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_nistp256_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_nistp256_method_storage, @object
	.size	EC_GFp_nistp256_method_storage, 160
EC_GFp_nistp256_method_storage:
.LEC_GFp_nistp256_method_storage_local_target:

	.zero	160
# WAS .section	.rodata.fiat_p256_g_pre_comp,"a"
.text
	.align 32
	.type	fiat_p256_g_pre_comp, @object
	.size	fiat_p256_g_pre_comp, 1920
.Lfiat_p256_g_pre_comp_local_target:
fiat_p256_g_pre_comp:
	.quad	8784043285714375740
	.quad	8483257759279461889
	.quad	8789745728267363600
	.quad	1770019616739251654
	.quad	-2453807210370345462
	.quad	-8409706061646666660
	.quad	-3249199208764148955
	.quad	-8830996915122840187
	.quad	5733697799130763963
	.quad	962857090393715865
	.quad	-7907811621198222197
	.quad	3413281437172590207
	.quad	6635428480179771287
	.quad	4404718679994229138
	.quad	329074170931436370
	.quad	-700035866798649477
	.quad	-7037322709789328452
	.quad	-2002898287532045332
	.quad	-5637337533951560605
	.quad	6538666479565209621
	.quad	-7878340026305839701
	.quad	6286355804771978247
	.quad	906091462710971447
	.quad	-7729458598481267837
	.quad	7109145612337154341
	.quad	-7943898102981924761
	.quad	6527587047878193251
	.quad	7049690136888681718
	.quad	-1696041067294395414
	.quad	2559311261501721445
	.quad	1222802194566919230
	.quad	-427281135183990850
	.quad	2056208975165235197
	.quad	124567364666801187
	.quad	-5273647648731706738
	.quad	6372224363761221340
	.quad	879827989740186889
	.quad	2198217571631230434
	.quad	2850733210726716154
	.quad	1861583173235134225
	.quad	7086263607447860181
	.quad	7438692001412668864
	.quad	6304613532044280467
	.quad	-4941039977305577807
	.quad	-1735803152649528909
	.quad	-2981189629052816256
	.quad	-4202839415967646681
	.quad	6968301839063759259
	.quad	-4797959913539786212
	.quad	-5136525613394872744
	.quad	797981648873293805
	.quad	-7129436036711841843
	.quad	-3849937553126651307
	.quad	-7163719371121244102
	.quad	558973984822106737
	.quad	2614997560689869965
	.quad	6266830413981331818
	.quad	-7555884593300429206
	.quad	738708598357264321
	.quad	-9205570931567449317
	.quad	9152169484987657321
	.quad	-6324313954806214561
	.quad	-4176681338250847873
	.quad	-4569108468674875967
	.quad	-8905209712510129356
	.quad	-6274070034593744687
	.quad	2319710432508274927
	.quad	-1031549896796201168
	.quad	-7366915710566154928
	.quad	-8972015179152791620
	.quad	437874012993319487
	.quad	2580827778749570187
	.quad	-1327468813016475093
	.quad	8063582447246570438
	.quad	4833498359465668604
	.quad	5817442189819519338
	.quad	3999638227521553982
	.quad	7296443000087760306
	.quad	4731041969914437878
	.quad	3102981345882556867
	.quad	-258757118256409197
	.quad	-4357806986775858948
	.quad	8161916339688758459
	.quad	-2497939125869761012
	.quad	-7802332910459539468
	.quad	-3251532683474946871
	.quad	-7315360169116814806
	.quad	-1809104198267215807
	.quad	6908886859819786750
	.quad	-662572944952279422
	.quad	-7440973497418228377
	.quad	-373111261384252497
	.quad	-8016206486169778765
	.quad	4010921920112696038
	.quad	755980720570818173
	.quad	8590754705788770948
	.quad	2206425484138122711
	.quad	-6498697731454243724
	.quad	-8108146150424072498
	.quad	-5513666255901375362
	.quad	3861474824309074575
	.quad	-185408724142616797
	.quad	-6078641260554555570
	.quad	-7200311560001673003
	.quad	728583222220880062
	.quad	2981880483336643263
	.quad	-7043203190063115092
	.quad	-4536820496877164288
	.quad	-4408859313123862779
	.quad	-5113769658701609536
	.quad	-8905538901507029861
	.quad	-7222871862677725471
	.quad	962331430020526196
	.quad	6145473022060217009
	.quad	5088124634747925290
	.quad	2979444868102376641
	.quad	-1770095610321463233
	.quad	-4720072294311951135
	.quad	1297270435552600457
	.quad	7167009449057399596
	.quad	2317249352525369754
	.quad	-3415946592628018448
	.quad	-6209153497401267256
	.quad	-2786667081098110743
	.quad	-7105728254008815729
	.quad	8280257602754365719
	.quad	9212501234696283343
	.quad	-8773368871568373517
	.quad	5757832545805155636
	.quad	-837663540656123989
	.quad	-4591082043107461724
	.quad	-8824245390257338319
	.quad	-6165157631644969670
	.quad	610529441714948581
	.quad	-3706386596690114990
	.quad	-1463553961983992753
	.quad	-6072364400062637415
	.quad	-6416829442355085278
	.quad	2847533229795968488
	.quad	3709360088816110947
	.quad	4352535582211537226
	.quad	2337374492246769505
	.quad	745969715554277096
	.quad	965424904679914454
	.quad	-3155927059437106737
	.quad	8012864091692295774
	.quad	7591940515496590516
	.quad	-9147124948383524768
	.quad	7297256232167521068
	.quad	-585539701309753989
	.quad	3100022958796565106
	.quad	-3132973194509347003
	.quad	-3594037721842092439
	.quad	718516015856057707
	.quad	-7689704687091308659
	.quad	2339432947234554268
	.quad	-8665662521477228219
	.quad	1765759529073322179
	.quad	-6936438607076957014
	.quad	5250175605149052941
	.quad	-1220679325471592108
	.quad	4505189063471083162
	.quad	5020084351112727196
	.quad	-6191640484899829991
	.quad	2806431030942539549
	.quad	-2241446620484903309
	.quad	-5055063585325458108
	.quad	7783186025061067009
	.quad	-2169571867475487760
	.quad	-5157682079919236919
	.quad	-7800851898434750862
	.quad	-983218946679793033
	.quad	2247741118672706828
	.quad	-7109555974829587868
	.quad	5330958638254036062
	.quad	4159327500366449214
	.quad	-2071238288146910390
	.quad	4903074653735993511
	.quad	-8090956227946519855
	.quad	3188849033041803587
	.quad	3145147452182864049
	.quad	-4567996200601173150
	.quad	2798650520315922121
	.quad	2325962694441538199
	.quad	1085960429291333586
	.quad	7121446697247253642
	.quad	1010019204115154743
	.quad	647923944963945640
	.quad	-5985631511434759545
	.quad	-4420809138444526226
	.quad	3855890369422333058
	.quad	3422225347286756567
	.quad	720895576535369579
	.quad	5908607258233734324
	.quad	363438805794070390
	.quad	-8886813128012606234
	.quad	-3031692621783205622
	.quad	3273190717352309867
	.quad	8499801144579465746
	.quad	-1926573727019608512
	.quad	-4425245350979479187
	.quad	137927029298074292
	.quad	5117413771148605793
	.quad	912257373989413735
	.quad	-7903190339511702687
	.quad	2213423130801589510
	.quad	-1733372668015368642
	.quad	-7576001921457386445
	.quad	2529933435044337736
	.quad	-1694997330967163763
	.quad	-7125285729376738960
	.quad	5387370822353591307
	.quad	1854925943745321085
	.quad	-8420756291147139882
	.quad	2152922266743051069
	.quad	4039048027058931188
	.quad	3928710401657783069
	.quad	7517419274763377164
	.quad	853258880971939529
	.quad	-3884507204660322988
	.quad	-3715791849641550926
	.quad	-212358863649071848
	.quad	-8692361162491856664
	.quad	-6235612931373191962
	.quad	-3587210485650513445
	.quad	756588971954918034
	.quad	-8855481899128917626
	.quad	-6403507432404112109
	.quad	-6724867187841265340
	.quad	6485817134079957445
	.quad	-7939304473031619016
	.quad	-4713908560492575088
	.quad	3282472107118434831
	.quad	4304551729442299031
	.quad	-768039674014459243
	.quad	-2604902730166717408
	.quad	-9103314076927025481
	.quad	7990226821218932588
	.quad	6081345340067246461
	.quad	-8204199780643980336
	.section	.bss.p256_methods_once,"aw",@nobits
	.align 4
	.type	p256_methods_once, @object
	.size	p256_methods_once, 4
p256_methods_once:
.Lp256_methods_once_local_target:

	.zero	4
	.section	.bss.p256_methods_storage,"aw",@nobits
	.align 32
	.type	p256_methods_storage, @object
	.size	p256_methods_storage, 80
p256_methods_storage:
.Lp256_methods_storage_local_target:

	.zero	80
# WAS .section	.rodata.fiat_p256_one,"a"
.text
	.align 32
	.type	fiat_p256_one, @object
	.size	fiat_p256_one, 32
.Lfiat_p256_one_local_target:
fiat_p256_one:
	.quad	1
	.quad	-4294967296
	.quad	-1
	.quad	4294967294
	.section	.bss.EC_GFp_nistp224_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_nistp224_method_once, @object
	.size	EC_GFp_nistp224_method_once, 4
EC_GFp_nistp224_method_once:
.LEC_GFp_nistp224_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_nistp224_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_nistp224_method_storage, @object
	.size	EC_GFp_nistp224_method_storage, 160
EC_GFp_nistp224_method_storage:
.LEC_GFp_nistp224_method_storage_local_target:

	.zero	160
# WAS .section	.rodata.g_p224_pre_comp,"a"
.text
	.align 32
	.type	g_p224_pre_comp, @object
	.size	g_p224_pre_comp, 3072
.Lg_p224_pre_comp_local_target:
g_p224_pre_comp:
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	14215405738138913
	.quad	54557040081707572
	.quad	35802381656082947
	.quad	51525368618398911
	.quad	60096666400751156
	.quad	33108880804766788
	.quad	70733931823418691
	.quad	53259671233230627
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	71378600081669097
	.quad	53101353446198878
	.quad	9643677127944771
	.quad	8806794754890693
	.quad	11787557387672643
	.quad	66683595736409698
	.quad	62071344511258832
	.quad	42804938177827617
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	30749386935733944
	.quad	24100114246361841
	.quad	6449338927450687
	.quad	67233816825210696
	.quad	68010914192828013
	.quad	48399079136688607
	.quad	13854281485496300
	.quad	26093033259862551
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	1760964184319715
	.quad	41090027584401568
	.quad	67532174447950347
	.quad	1294857651850942
	.quad	32950441342316381
	.quad	37393468670956624
	.quad	36547193909475078
	.quad	29580121932532827
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	66029711509099974
	.quad	2357355352064724
	.quad	62261198381500593
	.quad	41424473139086755
	.quad	44747090636954559
	.quad	18408407550890224
	.quad	71473164347156647
	.quad	23149671595181610
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	36644373851745395
	.quad	45067346634300687
	.quad	15269155078675364
	.quad	55047824290902620
	.quad	52870985989664036
	.quad	62482831525149420
	.quad	55050187086899839
	.quad	8720744547476036
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	21566442933681569
	.quad	58858973370079675
	.quad	71931372512054140
	.quad	10714412583876681
	.quad	19370324697435552
	.quad	57908507923887355
	.quad	42340026435320969
	.quad	71608876929167634
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	63768024459850029
	.quad	56043627304934510
	.quad	34260102009486412
	.quad	1626393528605511
	.quad	44894586669579834
	.quad	6862401668738010
	.quad	28182317526089046
	.quad	32234762541237140
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	1241452496952329
	.quad	32837518891159477
	.quad	51964745771230176
	.quad	18517456905243677
	.quad	64715081076890241
	.quad	17397160098818133
	.quad	8160769644386790
	.quad	4044017734465703
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	61557443266865279
	.quad	19193158631805686
	.quad	63114965174238904
	.quad	57153014074658596
	.quad	33295952022928805
	.quad	6856166956736580
	.quad	41238105016811088
	.quad	55172608173881473
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	51955431143051104
	.quad	48951545393908131
	.quad	7332110390559962
	.quad	6585796058786180
	.quad	33542384203444382
	.quad	10058797968965999
	.quad	21426027006873135
	.quad	63791559461639017
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	24521654599544755
	.quad	48950835715048786
	.quad	56486885804635390
	.quad	30538161968627171
	.quad	71951289672484434
	.quad	50802807143032121
	.quad	45762139208909556
	.quad	11379042128140896
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	18220922147849391
	.quad	2697206093288044
	.quad	53180879631546064
	.quad	9383343528083543
	.quad	39346355303216222
	.quad	67866619231686511
	.quad	37772318539245749
	.quad	65271359694450105
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	49944528290716795
	.quad	48476314201006552
	.quad	7926935861973702
	.quad	56315968460949481
	.quad	11418713148600607
	.quad	2383810739544042
	.quad	69034399404693108
	.quad	8489243135795900
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	44809056590259435
	.quad	1914876046564940
	.quad	71801422434380147
	.quad	68027829451324504
	.quad	62240249598010623
	.quad	62677691397309147
	.quad	32834184294422163
	.quad	67174968371586392
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	42332462233023828
	.quad	42243062983880493
	.quad	58027427525010455
	.quad	59490963410320433
	.quad	37661422047375710
	.quad	9350132935584427
	.quad	45389832818299846
	.quad	15017233711959853
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	7398951664410213
	.quad	60475672073594172
	.quad	65189123520720006
	.quad	28643743500374243
	.quad	70475444581864262
	.quad	68053533660433071
	.quad	55479242755132331
	.quad	731566529102474
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	33904912311162351
	.quad	37915670572403972
	.quad	61931713228770714
	.quad	59556603249994803
	.quad	12229322042053423
	.quad	53667417733410291
	.quad	62062863872954880
	.quad	59213258449723648
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	41174889044835069
	.quad	48461860850250128
	.quad	40209832863945724
	.quad	36688508243763925
	.quad	39821100915975713
	.quad	10027667342093709
	.quad	49411097451828917
	.quad	61039442818226922
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	33400705216086256
	.quad	65773690130261649
	.quad	29591350155084583
	.quad	27904408962553022
	.quad	19878918007644842
	.quad	39760458290838277
	.quad	8882603977681800
	.quad	64454190132739665
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	36697159835102230
	.quad	575617900413498
	.quad	29339469010895205
	.quad	5910771084751601
	.quad	14138852356790521
	.quad	20623455015356372
	.quad	54424934377855695
	.quad	3323637626710203
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	41284609216738756
	.quad	23348383899184552
	.quad	57208799144709267
	.quad	18021335613985331
	.quad	71519866587154834
	.quad	331650310714647
	.quad	7414810685154214
	.quad	1962338185252335
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	20952864667040953
	.quad	53105343129885304
	.quad	17663783448724262
	.quad	61941988514011822
	.quad	58374853219681168
	.quad	25954017644378996
	.quad	43623027367233463
	.quad	42061554624494661
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	18866340853038698
	.quad	41174294738871394
	.quad	69059630486859566
	.quad	53229817573778734
	.quad	1229341092743632
	.quad	11808623625303923
	.quad	32750466386186109
	.quad	7063500670951355
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	25736141242682233
	.quad	20639221590945830
	.quad	63648179904700148
	.quad	55382561624164830
	.quad	13648133609350424
	.quad	13987049300520376
	.quad	20241014388399759
	.quad	56125148414327283
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	16887184962971910
	.quad	20148389049946259
	.quad	62590757308324646
	.quad	11679895284435717
	.quad	31555794398004138
	.quad	31652418437296597
	.quad	5565067883491094
	.quad	42948060693069400
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	4484933557700496
	.quad	12797448631115054
	.quad	41696350946270356
	.quad	52844113124987323
	.quad	50320894428189032
	.quad	4608360979303795
	.quad	45000129293402240
	.quad	34760599269173168
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	48724297006178995
	.quad	67574095596594845
	.quad	30183651778200389
	.quad	18251160955299033
	.quad	38854541824519485
	.quad	43405894546881848
	.quad	25178753450613532
	.quad	62159745794163690
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	48681561500723115
	.quad	21533324478502711
	.quad	55818039270904196
	.quad	3040451452578746
	.quad	30400509585702766
	.quad	71720626911765290
	.quad	7308408247352024
	.quad	1419608241050629
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	66796554085571222
	.quad	26158445393921034
	.quad	33651971713134491
	.quad	32657111288886622
	.quad	14152348376426694
	.quad	50782694041125259
	.quad	40839628717987281
	.quad	17443819558305038
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.section	.bss.EC_GFp_mont_method_once,"aw",@nobits
	.align 4
	.type	EC_GFp_mont_method_once, @object
	.size	EC_GFp_mont_method_once, 4
EC_GFp_mont_method_once:
.LEC_GFp_mont_method_once_local_target:

	.zero	4
	.section	.bss.EC_GFp_mont_method_storage,"aw",@nobits
	.align 32
	.type	EC_GFp_mont_method_storage, @object
	.size	EC_GFp_mont_method_storage, 160
EC_GFp_mont_method_storage:
.LEC_GFp_mont_method_storage_local_target:

	.zero	160
	.section	.bss.EC_KEY_OpenSSL_once,"aw",@nobits
	.align 4
	.type	EC_KEY_OpenSSL_once, @object
	.size	EC_KEY_OpenSSL_once, 4
EC_KEY_OpenSSL_once:
.LEC_KEY_OpenSSL_once_local_target:

	.zero	4
	.section	.bss.EC_KEY_OpenSSL_storage,"aw",@nobits
	.align 32
	.type	EC_KEY_OpenSSL_storage, @object
	.size	EC_KEY_OpenSSL_storage, 40
EC_KEY_OpenSSL_storage:
.LEC_KEY_OpenSSL_storage_local_target:

	.zero	40
	.section	.bss.g_ec_ex_data_class,"aw",@nobits
	.align 32
	.type	g_ec_ex_data_class, @object
	.size	g_ec_ex_data_class, 72
g_ec_ex_data_class:
.Lg_ec_ex_data_class_local_target:

	.zero	72
	.section	.bss.EC_group_secp256k1_once,"aw",@nobits
	.align 4
	.type	EC_group_secp256k1_once, @object
	.size	EC_group_secp256k1_once, 4
EC_group_secp256k1_once:
.LEC_group_secp256k1_once_local_target:

	.zero	4
	.section	.bss.EC_group_secp256k1_storage,"aw",@nobits
	.align 32
	.type	EC_group_secp256k1_storage, @object
	.size	EC_group_secp256k1_storage, 544
EC_group_secp256k1_storage:
.LEC_group_secp256k1_storage_local_target:

	.zero	544
	.section	.bss.EC_group_p521_once,"aw",@nobits
	.align 4
	.type	EC_group_p521_once, @object
	.size	EC_group_p521_once, 4
EC_group_p521_once:
.LEC_group_p521_once_local_target:

	.zero	4
	.section	.bss.EC_group_p521_storage,"aw",@nobits
	.align 32
	.type	EC_group_p521_storage, @object
	.size	EC_group_p521_storage, 544
EC_group_p521_storage:
.LEC_group_p521_storage_local_target:

	.zero	544
	.section	.bss.EC_group_p384_once,"aw",@nobits
	.align 4
	.type	EC_group_p384_once, @object
	.size	EC_group_p384_once, 4
EC_group_p384_once:
.LEC_group_p384_once_local_target:

	.zero	4
	.section	.bss.EC_group_p384_storage,"aw",@nobits
	.align 32
	.type	EC_group_p384_storage, @object
	.size	EC_group_p384_storage, 544
EC_group_p384_storage:
.LEC_group_p384_storage_local_target:

	.zero	544
	.section	.bss.EC_group_p256_once,"aw",@nobits
	.align 4
	.type	EC_group_p256_once, @object
	.size	EC_group_p256_once, 4
EC_group_p256_once:
.LEC_group_p256_once_local_target:

	.zero	4
	.section	.bss.EC_group_p256_storage,"aw",@nobits
	.align 32
	.type	EC_group_p256_storage, @object
	.size	EC_group_p256_storage, 544
EC_group_p256_storage:
.LEC_group_p256_storage_local_target:

	.zero	544
	.section	.bss.EC_group_p224_once,"aw",@nobits
	.align 4
	.type	EC_group_p224_once, @object
	.size	EC_group_p224_once, 4
EC_group_p224_once:
.LEC_group_p224_once_local_target:

	.zero	4
	.section	.bss.EC_group_p224_storage,"aw",@nobits
	.align 32
	.type	EC_group_p224_storage, @object
	.size	EC_group_p224_storage, 544
EC_group_p224_storage:
.LEC_group_p224_storage_local_target:

	.zero	544
# WAS .section	.rodata.ksecp256k1OrderRR,"a"
.text
	.align 32
	.type	ksecp256k1OrderRR, @object
	.size	ksecp256k1OrderRR, 32
.Lksecp256k1OrderRR_local_target:
ksecp256k1OrderRR:
	.quad	-8544188223573208768
	.quad	8364476168144746616
	.quad	-1830724362361305146
	.quad	-7104678183822779451
# WAS .section	.rodata.ksecp256k1FieldRR,"a"
.text
	.align 32
	.type	ksecp256k1FieldRR, @object
	.size	ksecp256k1FieldRR, 32
.Lksecp256k1FieldRR_local_target:
ksecp256k1FieldRR:
	.quad	8392367050913
	.quad	1
	.quad	0
	.quad	0
# WAS .section	.rodata.ksecp256k1Order,"a"
.text
	.align 32
	.type	ksecp256k1Order, @object
	.size	ksecp256k1Order, 32
.Lksecp256k1Order_local_target:
ksecp256k1Order:
	.quad	-4624529908474429119
	.quad	-4994812053365940165
	.quad	-2
	.quad	-1
# WAS .section	.rodata.ksecp256k1Field,"a"
.text
	.align 32
	.type	ksecp256k1Field, @object
	.size	ksecp256k1Field, 32
.Lksecp256k1Field_local_target:
ksecp256k1Field:
	.quad	-4294968273
	.quad	-1
	.quad	-1
	.quad	-1
# WAS .section	.rodata.kP521OrderRR,"a"
.text
	.align 32
	.type	kP521OrderRR, @object
	.size	kP521OrderRR, 72
.LkP521OrderRR_local_target:
kP521OrderRR:
	.quad	1404226216438127876
	.quad	-646342563601285469
	.quad	1344198287485662207
	.quad	-3210469545270092282
	.quad	-2491014132492810277
	.quad	-3462193604041806274
	.quad	6614782218913277884
	.quad	3282565375810407749
	.quad	61
# WAS .section	.rodata.kP521FieldRR,"a"
.text
	.align 32
	.type	kP521FieldRR, @object
	.size	kP521FieldRR, 72
.LkP521FieldRR_local_target:
kP521FieldRR:
	.quad	0
	.quad	70368744177664
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
# WAS .section	.rodata.kP521Order,"a"
.text
	.align 32
	.type	kP521Order, @object
	.size	kP521Order, 72
.LkP521Order_local_target:
kP521Order:
	.quad	-4940528924288850935
	.quad	4302566813442262958
	.quad	9208736750959699408
	.quad	5874531763869423211
	.quad	-6
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	511
# WAS .section	.rodata.kP521Field,"a"
.text
	.align 32
	.type	kP521Field, @object
	.size	kP521Field, 72
.LkP521Field_local_target:
kP521Field:
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	-1
	.quad	511
# WAS .section	.rodata.kP384OrderRR,"a"
.text
	.align 32
	.type	kP384OrderRR, @object
	.size	kP384OrderRR, 48
.LkP384OrderRR_local_target:
kP384OrderRR:
	.quad	3256554584917936553
	.quad	-54744796168018919
	.quad	-4882385527837808313
	.quad	-3166794598585787195
	.quad	4589268600508278933
	.quad	902107514168524577
# WAS .section	.rodata.kP384FieldRR,"a"
.text
	.align 32
	.type	kP384FieldRR, @object
	.size	kP384FieldRR, 48
.LkP384FieldRR_local_target:
kP384FieldRR:
	.quad	-8589934591
	.quad	8589934592
	.quad	-8589934592
	.quad	8589934592
	.quad	1
	.quad	0
# WAS .section	.rodata.kP384Order,"a"
.text
	.align 32
	.type	kP384Order, @object
	.size	kP384Order, 48
.LkP384Order_local_target:
kP384Order:
	.quad	-1374695839762142861
	.quad	6348401684107011962
	.quad	-4079331616924160545
	.quad	-1
	.quad	-1
	.quad	-1
# WAS .section	.rodata.kP384Field,"a"
.text
	.align 32
	.type	kP384Field, @object
	.size	kP384Field, 48
.LkP384Field_local_target:
kP384Field:
	.quad	4294967295
	.quad	-4294967296
	.quad	-2
	.quad	-1
	.quad	-1
	.quad	-1
# WAS .section	.rodata.kP256OrderRR,"a"
.text
	.align 32
	.type	kP256OrderRR, @object
	.size	kP256OrderRR, 32
.LkP256OrderRR_local_target:
kP256OrderRR:
	.quad	-8996981949549908318
	.quad	5087230966250696614
	.quad	2901921493521525849
	.quad	7413256579398063648
# WAS .section	.rodata.kP256FieldRR,"a"
.text
	.align 32
	.type	kP256FieldRR, @object
	.size	kP256FieldRR, 32
.LkP256FieldRR_local_target:
kP256FieldRR:
	.quad	3
	.quad	-17179869185
	.quad	-2
	.quad	21474836477
# WAS .section	.rodata.kP256Order,"a"
.text
	.align 32
	.type	kP256Order, @object
	.size	kP256Order, 32
.LkP256Order_local_target:
kP256Order:
	.quad	-884452912994769583
	.quad	-4834901526196019580
	.quad	-1
	.quad	-4294967296
# WAS .section	.rodata.kP256Field,"a"
.text
	.align 32
	.type	kP256Field, @object
	.size	kP256Field, 32
.LkP256Field_local_target:
kP256Field:
	.quad	-1
	.quad	4294967295
	.quad	0
	.quad	-4294967295
# WAS .section	.rodata.kP224OrderRR,"a"
.text
	.align 32
	.type	kP224OrderRR, @object
	.size	kP224OrderRR, 32
.LkP224OrderRR_local_target:
kP224OrderRR:
	.quad	2996154245097553173
	.quad	-6068319739328446645
	.quad	7697038227981551702
	.quad	2984868193
# WAS .section	.rodata.kP224FieldRR,"a"
.text
	.align 32
	.type	kP224FieldRR, @object
	.size	kP224FieldRR, 32
.LkP224FieldRR_local_target:
kP224FieldRR:
	.quad	-4294967295
	.quad	-4294967296
	.quad	-8589934592
	.quad	4294967295
# WAS .section	.rodata.kP224Order,"a"
.text
	.align 32
	.type	kP224Order, @object
	.size	kP224Order, 32
.LkP224Order_local_target:
kP224Order:
	.quad	1431345634452711997
	.quad	-256586165981122
	.quad	-1
	.quad	4294967295
# WAS .section	.rodata.kP224Field,"a"
.text
	.align 32
	.type	kP224Field, @object
	.size	kP224Field, 32
.LkP224Field_local_target:
kP224Field:
	.quad	1
	.quad	-4294967296
	.quad	-1
	.quad	4294967295
	.section	.bss.EVP_md5_sha1_once,"aw",@nobits
	.align 4
	.type	EVP_md5_sha1_once, @object
	.size	EVP_md5_sha1_once, 4
EVP_md5_sha1_once:
.LEVP_md5_sha1_once_local_target:

	.zero	4
	.section	.bss.EVP_md5_sha1_storage,"aw",@nobits
	.align 32
	.type	EVP_md5_sha1_storage, @object
	.size	EVP_md5_sha1_storage, 56
EVP_md5_sha1_storage:
.LEVP_md5_sha1_storage_local_target:

	.zero	56
	.section	.bss.EVP_shake256_once,"aw",@nobits
	.align 4
	.type	EVP_shake256_once, @object
	.size	EVP_shake256_once, 4
EVP_shake256_once:
.LEVP_shake256_once_local_target:

	.zero	4
	.section	.bss.EVP_shake256_storage,"aw",@nobits
	.align 32
	.type	EVP_shake256_storage, @object
	.size	EVP_shake256_storage, 56
EVP_shake256_storage:
.LEVP_shake256_storage_local_target:

	.zero	56
	.section	.bss.EVP_shake128_once,"aw",@nobits
	.align 4
	.type	EVP_shake128_once, @object
	.size	EVP_shake128_once, 4
EVP_shake128_once:
.LEVP_shake128_once_local_target:

	.zero	4
	.section	.bss.EVP_shake128_storage,"aw",@nobits
	.align 32
	.type	EVP_shake128_storage, @object
	.size	EVP_shake128_storage, 56
EVP_shake128_storage:
.LEVP_shake128_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha3_512_once,"aw",@nobits
	.align 4
	.type	EVP_sha3_512_once, @object
	.size	EVP_sha3_512_once, 4
EVP_sha3_512_once:
.LEVP_sha3_512_once_local_target:

	.zero	4
	.section	.bss.EVP_sha3_512_storage,"aw",@nobits
	.align 32
	.type	EVP_sha3_512_storage, @object
	.size	EVP_sha3_512_storage, 56
EVP_sha3_512_storage:
.LEVP_sha3_512_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha3_384_once,"aw",@nobits
	.align 4
	.type	EVP_sha3_384_once, @object
	.size	EVP_sha3_384_once, 4
EVP_sha3_384_once:
.LEVP_sha3_384_once_local_target:

	.zero	4
	.section	.bss.EVP_sha3_384_storage,"aw",@nobits
	.align 32
	.type	EVP_sha3_384_storage, @object
	.size	EVP_sha3_384_storage, 56
EVP_sha3_384_storage:
.LEVP_sha3_384_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha3_256_once,"aw",@nobits
	.align 4
	.type	EVP_sha3_256_once, @object
	.size	EVP_sha3_256_once, 4
EVP_sha3_256_once:
.LEVP_sha3_256_once_local_target:

	.zero	4
	.section	.bss.EVP_sha3_256_storage,"aw",@nobits
	.align 32
	.type	EVP_sha3_256_storage, @object
	.size	EVP_sha3_256_storage, 56
EVP_sha3_256_storage:
.LEVP_sha3_256_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha3_224_once,"aw",@nobits
	.align 4
	.type	EVP_sha3_224_once, @object
	.size	EVP_sha3_224_once, 4
EVP_sha3_224_once:
.LEVP_sha3_224_once_local_target:

	.zero	4
	.section	.bss.EVP_sha3_224_storage,"aw",@nobits
	.align 32
	.type	EVP_sha3_224_storage, @object
	.size	EVP_sha3_224_storage, 56
EVP_sha3_224_storage:
.LEVP_sha3_224_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha512_256_once,"aw",@nobits
	.align 4
	.type	EVP_sha512_256_once, @object
	.size	EVP_sha512_256_once, 4
EVP_sha512_256_once:
.LEVP_sha512_256_once_local_target:

	.zero	4
	.section	.bss.EVP_sha512_256_storage,"aw",@nobits
	.align 32
	.type	EVP_sha512_256_storage, @object
	.size	EVP_sha512_256_storage, 56
EVP_sha512_256_storage:
.LEVP_sha512_256_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha512_224_once,"aw",@nobits
	.align 4
	.type	EVP_sha512_224_once, @object
	.size	EVP_sha512_224_once, 4
EVP_sha512_224_once:
.LEVP_sha512_224_once_local_target:

	.zero	4
	.section	.bss.EVP_sha512_224_storage,"aw",@nobits
	.align 32
	.type	EVP_sha512_224_storage, @object
	.size	EVP_sha512_224_storage, 56
EVP_sha512_224_storage:
.LEVP_sha512_224_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha512_once,"aw",@nobits
	.align 4
	.type	EVP_sha512_once, @object
	.size	EVP_sha512_once, 4
EVP_sha512_once:
.LEVP_sha512_once_local_target:

	.zero	4
	.section	.bss.EVP_sha512_storage,"aw",@nobits
	.align 32
	.type	EVP_sha512_storage, @object
	.size	EVP_sha512_storage, 56
EVP_sha512_storage:
.LEVP_sha512_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha384_once,"aw",@nobits
	.align 4
	.type	EVP_sha384_once, @object
	.size	EVP_sha384_once, 4
EVP_sha384_once:
.LEVP_sha384_once_local_target:

	.zero	4
	.section	.bss.EVP_sha384_storage,"aw",@nobits
	.align 32
	.type	EVP_sha384_storage, @object
	.size	EVP_sha384_storage, 56
EVP_sha384_storage:
.LEVP_sha384_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha256_once,"aw",@nobits
	.align 4
	.type	EVP_sha256_once, @object
	.size	EVP_sha256_once, 4
EVP_sha256_once:
.LEVP_sha256_once_local_target:

	.zero	4
	.section	.bss.EVP_sha256_storage,"aw",@nobits
	.align 32
	.type	EVP_sha256_storage, @object
	.size	EVP_sha256_storage, 56
EVP_sha256_storage:
.LEVP_sha256_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha224_once,"aw",@nobits
	.align 4
	.type	EVP_sha224_once, @object
	.size	EVP_sha224_once, 4
EVP_sha224_once:
.LEVP_sha224_once_local_target:

	.zero	4
	.section	.bss.EVP_sha224_storage,"aw",@nobits
	.align 32
	.type	EVP_sha224_storage, @object
	.size	EVP_sha224_storage, 56
EVP_sha224_storage:
.LEVP_sha224_storage_local_target:

	.zero	56
	.section	.bss.EVP_sha1_once,"aw",@nobits
	.align 4
	.type	EVP_sha1_once, @object
	.size	EVP_sha1_once, 4
EVP_sha1_once:
.LEVP_sha1_once_local_target:

	.zero	4
	.section	.bss.EVP_sha1_storage,"aw",@nobits
	.align 32
	.type	EVP_sha1_storage, @object
	.size	EVP_sha1_storage, 56
EVP_sha1_storage:
.LEVP_sha1_storage_local_target:

	.zero	56
	.section	.bss.EVP_ripemd160_once,"aw",@nobits
	.align 4
	.type	EVP_ripemd160_once, @object
	.size	EVP_ripemd160_once, 4
EVP_ripemd160_once:
.LEVP_ripemd160_once_local_target:

	.zero	4
	.section	.bss.EVP_ripemd160_storage,"aw",@nobits
	.align 32
	.type	EVP_ripemd160_storage, @object
	.size	EVP_ripemd160_storage, 56
EVP_ripemd160_storage:
.LEVP_ripemd160_storage_local_target:

	.zero	56
	.section	.bss.EVP_md5_once,"aw",@nobits
	.align 4
	.type	EVP_md5_once, @object
	.size	EVP_md5_once, 4
EVP_md5_once:
.LEVP_md5_once_local_target:

	.zero	4
	.section	.bss.EVP_md5_storage,"aw",@nobits
	.align 32
	.type	EVP_md5_storage, @object
	.size	EVP_md5_storage, 56
EVP_md5_storage:
.LEVP_md5_storage_local_target:

	.zero	56
	.section	.bss.EVP_md4_once,"aw",@nobits
	.align 4
	.type	EVP_md4_once, @object
	.size	EVP_md4_once, 4
EVP_md4_once:
.LEVP_md4_once_local_target:

	.zero	4
	.section	.bss.EVP_md4_storage,"aw",@nobits
	.align 32
	.type	EVP_md4_storage, @object
	.size	EVP_md4_storage, 56
EVP_md4_storage:
.LEVP_md4_storage_local_target:

	.zero	56
# WAS .section	.rodata.k25519Bi,"a"
.text
	.align 32
	.type	k25519Bi, @object
	.size	k25519Bi, 960
.Lk25519Bi_local_target:
k25519Bi:
	.quad	1288382639258501
	.quad	245678601348599
	.quad	269427782077623
	.quad	1462984067271730
	.quad	137412439391563
	.quad	62697248952638
	.quad	204681361388450
	.quad	631292143396476
	.quad	338455783676468
	.quad	1213667448819585
	.quad	301289933810280
	.quad	1259582250014073
	.quad	1422107436869536
	.quad	796239922652654
	.quad	1953934009299142
	.quad	1601611775252272
	.quad	1720807796594148
	.quad	1132070835939856
	.quad	1260455018889551
	.quad	2147779492816911
	.quad	316559037616741
	.quad	2177824224946892
	.quad	1459442586438991
	.quad	1461528397712656
	.quad	751590696113597
	.quad	1850748884277385
	.quad	1200145853858453
	.quad	1068094770532492
	.quad	672251375690438
	.quad	1586055907191707
	.quad	769950342298419
	.quad	132954430919746
	.quad	844085933195555
	.quad	974092374476333
	.quad	726076285546016
	.quad	425251763115706
	.quad	608463272472562
	.quad	442562545713235
	.quad	837766094556764
	.quad	374555092627893
	.quad	1086255230780037
	.quad	274979815921559
	.quad	1960002765731872
	.quad	929474102396301
	.quad	1190409889297339
	.quad	665000864555967
	.quad	2065379846933859
	.quad	370231110385876
	.quad	350988370788628
	.quad	1233371373142985
	.quad	2019367628972465
	.quad	676711900706637
	.quad	110710997811333
	.quad	1108646842542025
	.quad	517791959672113
	.quad	965130719900578
	.quad	247011430587952
	.quad	526356006571389
	.quad	91986625355052
	.quad	2157223321444601
	.quad	1802695059465007
	.quad	1664899123557221
	.quad	593559490740857
	.quad	2160434469266659
	.quad	927570450755031
	.quad	1725674970513508
	.quad	1933645953859181
	.quad	1542344539275782
	.quad	1767788773573747
	.quad	1297447965928905
	.quad	1381809363726107
	.quad	1430341051343062
	.quad	2061843536018959
	.quad	1551778050872521
	.quad	2036394857967624
	.quad	1970894096313054
	.quad	528066325833207
	.quad	1619374932191227
	.quad	2207306624415883
	.quad	1169170329061080
	.quad	2070390218572616
	.quad	1458919061857835
	.quad	624171843017421
	.quad	1055332792707765
	.quad	433987520732508
	.quad	893653801273833
	.quad	1168026499324677
	.quad	1242553501121234
	.quad	1306366254304474
	.quad	1086752658510815
	.quad	213454002618221
	.quad	939771523987438
	.quad	1159882208056014
	.quad	317388369627517
	.quad	621213314200687
	.quad	1971678598905747
	.quad	338026507889165
	.quad	762398079972271
	.quad	655096486107477
	.quad	42299032696322
	.quad	177130678690680
	.quad	1754759263300204
	.quad	1864311296286618
	.quad	1180675631479880
	.quad	1292726903152791
	.quad	1913163449625248
	.quad	460779200291993
	.quad	2193883288642314
	.quad	1008900146920800
	.quad	1721983679009502
	.quad	1070401523076875
	.quad	1272492007800961
	.quad	1910153608563310
	.quad	2075579521696771
	.quad	1191169788841221
	.quad	692896803108118
	.quad	500174642072499
	.quad	2068223309439677
	.quad	1162190621851337
	.quad	1426986007309901
# WAS .section	.rodata.k25519Precomp,"a"
.text
	.align 32
	.type	k25519Precomp, @object
	.size	k25519Precomp, 30720
.Lk25519Precomp_local_target:
k25519Precomp:
	.quad	1288382639258501
	.quad	245678601348599
	.quad	269427782077623
	.quad	1462984067271730
	.quad	137412439391563
	.quad	62697248952638
	.quad	204681361388450
	.quad	631292143396476
	.quad	338455783676468
	.quad	1213667448819585
	.quad	301289933810280
	.quad	1259582250014073
	.quad	1422107436869536
	.quad	796239922652654
	.quad	1953934009299142
	.quad	1380971894829527
	.quad	790832306631236
	.quad	2067202295274102
	.quad	1995808275510000
	.quad	1566530869037010
	.quad	463307831301544
	.quad	432984605774163
	.quad	1610641361907204
	.quad	750899048855000
	.quad	1894842303421586
	.quad	748439484463711
	.quad	1033211726465151
	.quad	1396005112841647
	.quad	1611506220286469
	.quad	1972177495910992
	.quad	1601611775252272
	.quad	1720807796594148
	.quad	1132070835939856
	.quad	1260455018889551
	.quad	2147779492816911
	.quad	316559037616741
	.quad	2177824224946892
	.quad	1459442586438991
	.quad	1461528397712656
	.quad	751590696113597
	.quad	1850748884277385
	.quad	1200145853858453
	.quad	1068094770532492
	.quad	672251375690438
	.quad	1586055907191707
	.quad	934282339813791
	.quad	1846903124198670
	.quad	1172395437954843
	.quad	1007037127761661
	.quad	1830588347719256
	.quad	1694390458783935
	.quad	1735906047636159
	.quad	705069562067493
	.quad	648033061693059
	.quad	696214010414170
	.quad	1121406372216585
	.quad	192876649532226
	.quad	190294192191717
	.quad	1994165897297032
	.quad	2245000007398739
	.quad	769950342298419
	.quad	132954430919746
	.quad	844085933195555
	.quad	974092374476333
	.quad	726076285546016
	.quad	425251763115706
	.quad	608463272472562
	.quad	442562545713235
	.quad	837766094556764
	.quad	374555092627893
	.quad	1086255230780037
	.quad	274979815921559
	.quad	1960002765731872
	.quad	929474102396301
	.quad	1190409889297339
	.quad	1388594989461809
	.quad	316767091099457
	.quad	394298842192982
	.quad	1230079486801005
	.quad	1440737038838979
	.quad	7380825640100
	.quad	146210432690483
	.quad	304903576448906
	.quad	1198869323871120
	.quad	997689833219095
	.quad	1181317918772081
	.quad	114573476638901
	.quad	262805072233344
	.quad	265712217171332
	.quad	294181933805782
	.quad	665000864555967
	.quad	2065379846933859
	.quad	370231110385876
	.quad	350988370788628
	.quad	1233371373142985
	.quad	2019367628972465
	.quad	676711900706637
	.quad	110710997811333
	.quad	1108646842542025
	.quad	517791959672113
	.quad	965130719900578
	.quad	247011430587952
	.quad	526356006571389
	.quad	91986625355052
	.quad	2157223321444601
	.quad	2068619540119183
	.quad	1966274918058806
	.quad	957728544705549
	.quad	729906502578991
	.quad	159834893065166
	.quad	2073601412052185
	.quad	31021124762708
	.quad	264500969797082
	.quad	248034690651703
	.quad	1030252227928288
	.quad	551790716293402
	.quad	1989538725166328
	.quad	801169423371717
	.quad	2052451893578887
	.quad	678432056995012
	.quad	1368953770187805
	.quad	790347636712921
	.quad	437508475667162
	.quad	2142576377050580
	.quad	1932081720066286
	.quad	953638594433374
	.quad	1092333936795051
	.quad	1419774766716690
	.quad	805677984380077
	.quad	859228993502513
	.quad	1200766035879111
	.quad	20142053207432
	.quad	1465634435977050
	.quad	1645256912097844
	.quad	295121984874596
	.quad	1735718747031557
	.quad	1248237894295956
	.quad	1204753118328107
	.quad	976066523550493
	.quad	65943769534592
	.quad	1060098822528990
	.quad	1586825862073490
	.quad	212301317240126
	.quad	1975302711403555
	.quad	666724059764335
	.quad	1091990273418756
	.quad	1572899409348578
	.quad	80968014455247
	.quad	306009358661350
	.quad	1520450739132526
	.quad	1480517209436112
	.quad	1511153322193952
	.quad	1244343858991172
	.quad	304788150493241
	.quad	369136856496443
	.quad	2151330273626164
	.quad	762045184746182
	.quad	1688074332551515
	.quad	823046109005759
	.quad	907602769079491
	.quad	2047386910586836
	.quad	168470092900250
	.quad	1552838872594810
	.quad	340951180073789
	.quad	360819374702533
	.quad	1982622644432056
	.quad	2014393600336956
	.quad	128909208804214
	.quad	1617792623929191
	.quad	105294281913815
	.quad	980234343912898
	.quad	1712256739246056
	.quad	588935272190264
	.quad	204298813091998
	.quad	841798321043288
	.quad	197561292938973
	.quad	454817274782871
	.quad	1963754960082318
	.quad	2113372252160468
	.quad	971377527342673
	.quad	164699448829328
	.quad	3127451757672
	.quad	1199504971548753
	.quad	1766155447043652
	.quad	1899238924683527
	.quad	732262946680281
	.quad	1674412764227063
	.quad	2182456405662809
	.quad	1350894754474250
	.quad	558458873295247
	.quad	2103305098582922
	.quad	1960809151316468
	.quad	715134605001343
	.quad	1454892949167181
	.quad	40827143824949
	.quad	1239289043050212
	.quad	1744654158124578
	.quad	758702410031698
	.quad	1796762995074688
	.quad	1603056663766
	.quad	2232056027107988
	.quad	987343914584615
	.quad	2115594492994461
	.quad	1819598072792159
	.quad	1119305654014850
	.quad	320153677847348
	.quad	939613871605645
	.quad	641883205761567
	.quad	1930009789398224
	.quad	329165806634126
	.quad	980930490474130
	.quad	1242488692177893
	.quad	1251446316964684
	.quad	1086618677993530
	.quad	1961430968465772
	.quad	276821765317453
	.quad	1536835591188030
	.quad	1305212741412361
	.quad	61473904210175
	.quad	2051377036983058
	.quad	833449923882501
	.quad	1750270368490475
	.quad	1123347002068295
	.quad	185477424765687
	.quad	278090826653186
	.quad	794524995833413
	.quad	1849907304548286
	.quad	53348672473145
	.quad	1272368559505217
	.quad	1147304168324779
	.quad	1504846112759364
	.quad	1203096289004681
	.quad	562139421471418
	.quad	274333017451844
	.quad	1284344053775441
	.quad	483048732424432
	.quad	2116063063343382
	.quad	30120189902313
	.quad	292451576741007
	.quad	1156379271702225
	.quad	928372153029038
	.quad	2147692869914564
	.quad	1455665844462196
	.quad	1986737809425946
	.quad	185207050258089
	.quad	137732961814206
	.quad	706670923917341
	.quad	1387038086865771
	.quad	1965643813686352
	.quad	1384777115696347
	.quad	481144981981577
	.quad	2053319313589856
	.quad	2065402289827512
	.quad	617954271490316
	.quad	1106602634668125
	.quad	696298019648792
	.quad	893299659040895
	.quad	1148636718636009
	.quad	26734077349617
	.quad	2203955659340681
	.quad	657390353372855
	.quad	998499966885562
	.quad	991893336905797
	.quad	810470207106761
	.quad	343139804608786
	.quad	791736669492960
	.quad	934767652997115
	.quad	824656780392914
	.quad	1759463253018643
	.quad	361530362383518
	.quad	2022541353055597
	.quad	2094700262587466
	.quad	1551008075025686
	.quad	242785517418164
	.quad	695985404963562
	.quad	1287487199965223
	.quad	2215311941380308
	.quad	1552928390931986
	.quad	1664859529680196
	.quad	1125004975265243
	.quad	677434665154918
	.quad	989582503122485
	.quad	1817429540898386
	.quad	1052904935475344
	.quad	1143826298169798
	.quad	367266328308408
	.quad	318431188922404
	.quad	695629353755355
	.quad	634085657580832
	.quad	24581612564426
	.quad	773360688841258
	.quad	1815381330538070
	.quad	363773437667376
	.quad	539629987070205
	.quad	783280434248437
	.quad	180820816194166
	.quad	168937968377394
	.quad	748416242794470
	.quad	1227281252254508
	.quad	1567587861004268
	.quad	478775558583645
	.quad	2062896624554807
	.quad	699391259285399
	.quad	358099408427873
	.quad	1277310261461761
	.quad	1984740906540026
	.quad	1079164179400229
	.quad	1056021349262661
	.quad	1659958556483663
	.quad	1088529069025527
	.quad	580736401511151
	.quad	1842931091388998
	.quad	1177201471228238
	.quad	2075460256527244
	.quad	1301133425678027
	.quad	1515728832059182
	.quad	1575261009617579
	.quad	1510246567196186
	.quad	191078022609704
	.quad	116661716289141
	.quad	1295295738269652
	.quad	1714742313707026
	.quad	545583042462581
	.quad	2034411676262552
	.quad	1513248090013606
	.quad	230710545179830
	.quad	30821514358353
	.quad	760704303452229
	.quad	390668103790604
	.quad	573437871383156
	.quad	1169380107545646
	.quad	263167233745614
	.quad	2022901299054448
	.quad	819900753251120
	.quad	2023898464874585
	.quad	2102254323485823
	.quad	1570832666216754
	.quad	34696906544624
	.quad	1993213739807337
	.quad	70638552271463
	.quad	894132856735058
	.quad	548675863558441
	.quad	845349339503395
	.quad	1942269668326667
	.quad	1615682209874691
	.quad	1287670217537834
	.quad	1222355136884920
	.quad	1846481788678694
	.quad	1150426571265110
	.quad	1613523400722047
	.quad	793388516527298
	.quad	1315457083650035
	.quad	1972286999342417
	.quad	1901825953052455
	.quad	338269477222410
	.quad	550201530671806
	.quad	778605267108140
	.quad	2063911101902983
	.quad	115500557286349
	.quad	2041641272971022
	.quad	717255318455100
	.quad	519313764361315
	.quad	2080406977303708
	.quad	541981206705521
	.quad	774328150311600
	.quad	261715221532238
	.quad	1795354330069993
	.quad	1496878026850283
	.quad	499739720521052
	.quad	389031152673770
	.quad	1997217696294013
	.quad	1717306351628065
	.quad	1684313917746180
	.quad	1644426076011410
	.quad	1857378133465451
	.quad	1475434724792648
	.quad	76931896285979
	.quad	1116729029771667
	.quad	2002544139318042
	.quad	725547833803938
	.quad	2022306639183567
	.quad	726296063571875
	.quad	315345054448644
	.quad	1058733329149221
	.quad	1448201136060677
	.quad	1710065158525665
	.quad	1895094923036397
	.quad	123988286168546
	.quad	1145519900776355
	.quad	1607510767693874
	.quad	561605375422540
	.quad	1071733543815037
	.quad	131496498800990
	.quad	1946868434569999
	.quad	828138133964203
	.quad	1548495173745801
	.quad	442310529226540
	.quad	998072547000384
	.quad	553054358385281
	.quad	644824326376171
	.quad	1445526537029440
	.quad	2225519789662536
	.quad	914628859347385
	.quad	1064754194555068
	.quad	1660295614401091
	.quad	1199690223111956
	.quad	24028135822341
	.quad	66638289244341
	.quad	57626156285975
	.quad	565093967979607
	.quad	876926774220824
	.quad	554618976488214
	.quad	1012056309841565
	.quad	839961821554611
	.quad	1414499340307677
	.quad	703047626104145
	.quad	1266841406201770
	.quad	165556500219173
	.quad	486991595001879
	.quad	1011325891650656
	.quad	1622861044480487
	.quad	1156394801573634
	.quad	1869132565415504
	.quad	327103985777730
	.quad	2095342781472284
	.quad	334886927423922
	.quad	489511099221528
	.quad	129160865966726
	.quad	1720809113143481
	.quad	619700195649254
	.quad	1646545795166119
	.quad	1758370782583567
	.quad	714746174550637
	.quad	1472693650165135
	.quad	898994790308209
	.quad	333403773039279
	.quad	295772542452938
	.quad	1693106465353610
	.quad	912330357530760
	.quad	471235657950362
	.quad	1811196219982022
	.quad	1068969825533602
	.quad	289602974833439
	.quad	1988956043611592
	.quad	863562343398367
	.quad	906282429780072
	.quad	2108672665779781
	.quad	432396390473936
	.quad	150625823801893
	.quad	1708930497638539
	.quad	925664675702328
	.quad	21416848568684
	.quad	1831436641861340
	.quad	601157008940113
	.quad	371818055044496
	.quad	1479786007267725
	.quad	1738881859066675
	.quad	68646196476567
	.quad	2146507056100328
	.quad	1247662817535471
	.quad	52035296774456
	.quad	939969390708103
	.quad	312023458773250
	.quad	59873523517659
	.quad	1231345905848899
	.quad	643355106415761
	.quad	290186807495774
	.quad	2013561737429023
	.quad	319648069511546
	.quad	393736678496162
	.quad	129358342392716
	.quad	1932811617704777
	.quad	1176749390799681
	.quad	398040349861790
	.quad	1170779668090425
	.quad	2051980782668029
	.quad	121859921510665
	.quad	2048329875753063
	.quad	1235229850149665
	.quad	519062146124755
	.quad	1608170971973096
	.quad	415809060360428
	.quad	1350468408164766
	.quad	2038620059057678
	.quad	1026904485989112
	.quad	1837656083115103
	.quad	1510134048812070
	.quad	906263674192061
	.quad	1821064197805734
	.quad	565375124676301
	.quad	578027192365650
	.quad	2034800251375322
	.quad	2128954087207123
	.quad	478816193810521
	.quad	2196171989962750
	.quad	1633188840273139
	.quad	852787172373708
	.quad	1548762607215796
	.quad	1266275218902681
	.quad	1107218203325133
	.quad	462189358480054
	.quad	1784816734159228
	.quad	1611334301651368
	.quad	1303938263943540
	.quad	707589560319424
	.quad	1038829280972848
	.quad	38176604650029
	.quad	753193246598573
	.quad	1136076426528122
	.quad	595709990562434
	.quad	1408451820859834
	.quad	2194984964010833
	.quad	2198361797561729
	.quad	1061962440055713
	.quad	1645147963442934
	.quad	4701053362120
	.quad	1647641066302348
	.quad	1047553002242085
	.quad	1923635013395977
	.quad	206970314902065
	.quad	1750479161778571
	.quad	1362553355169293
	.quad	1891721260220598
	.quad	966109370862782
	.quad	1024913988299801
	.quad	212699049131723
	.quad	1117950018299775
	.quad	1873945661751056
	.quad	1403802921984058
	.quad	130896082652698
	.quad	636808533673210
	.quad	1262201711667560
	.quad	390951380330599
	.quad	1663420692697294
	.quad	561951321757406
	.quad	520731594438141
	.quad	1446301499955692
	.quad	273753264629267
	.quad	1565101517999256
	.quad	1019411827004672
	.quad	926527492029409
	.quad	1191853477411379
	.quad	734233225181171
	.quad	184038887541270
	.quad	1790426146325343
	.quad	1464651961852572
	.quad	1483737295721717
	.quad	1519450561335517
	.quad	1161429831763785
	.quad	405914998179977
	.quad	996126634382301
	.quad	796204125879525
	.quad	127517800546509
	.quad	344155944689303
	.quad	615279846169038
	.quad	738724080975276
	.quad	2188666632415296
	.quad	1961313708559162
	.quad	1506545807547587
	.quad	1151301638969740
	.quad	622917337413835
	.quad	1218989177089035
	.quad	1284857712846592
	.quad	970502061709359
	.quad	351025208117090
	.quad	2067814584765580
	.quad	1677855129927492
	.quad	2086109782475197
	.quad	235286517313238
	.quad	1416314046739645
	.quad	586844262630358
	.quad	307444381952195
	.quad	458399356043426
	.quad	602068024507062
	.quad	1028548203415243
	.quad	678489922928203
	.quad	2016657584724032
	.quad	90977383049628
	.quad	1026831907234582
	.quad	615271492942522
	.quad	301225714012278
	.quad	1094837270268560
	.quad	1202288391010439
	.quad	644352775178361
	.quad	1647055902137983
	.quad	1210746697896478
	.quad	1416608304244708
	.quad	686487477217856
	.quad	1245131191434135
	.quad	1051238336855737
	.quad	1135604073198207
	.quad	1683322080485474
	.quad	769147804376683
	.quad	2086688130589414
	.quad	900445683120379
	.quad	1971518477615628
	.quad	401909519527336
	.quad	448627091057375
	.quad	1409486868273821
	.quad	1214789035034363
	.quad	1364039144731711
	.quad	1897497433586190
	.quad	2203097701135459
	.quad	145461396811251
	.quad	1349844460790699
	.quad	1045230323257973
	.quad	818206601145807
	.quad	630513189076103
	.quad	1672046528998132
	.quad	807204017562437
	.quad	439961968385997
	.quad	386362664488986
	.quad	1382706320807688
	.quad	309894000125359
	.quad	2207801346498567
	.quad	1229004686397588
	.quad	920643968530863
	.quad	123975893911178
	.quad	681423993215777
	.quad	1400559197080973
	.quad	2003766096898049
	.quad	170074059235165
	.quad	1141124258967971
	.quad	1485419893480973
	.quad	1573762821028725
	.quad	729905708611432
	.quad	1270323270673202
	.quad	123353058984288
	.quad	426460209632942
	.quad	2195574535456672
	.quad	1271140255321235
	.quad	2044363183174497
	.quad	52125387634689
	.quad	1445120246694705
	.quad	942541986339084
	.quad	1761608437466135
	.quad	583360847526804
	.quad	1586706389685493
	.quad	2157056599579261
	.quad	1170692369685772
	.quad	871476219910823
	.quad	1878769545097794
	.quad	2241832391238412
	.quad	548957640601001
	.quad	690047440233174
	.quad	297194732135507
	.quad	1366347803776820
	.quad	1301185512245601
	.quad	561849853336294
	.quad	1533554921345731
	.quad	999628998628371
	.quad	1132836708493400
	.quad	2084741674517453
	.quad	469343353015612
	.quad	678782988708035
	.quad	2189427607417022
	.quad	699801937082607
	.quad	412764402319267
	.quad	1478091893643349
	.quad	2244675696854460
	.quad	1712292055966563
	.quad	204413590624874
	.quad	1405738637332841
	.quad	408981300829763
	.quad	861082219276721
	.quad	508561155940631
	.quad	966928475686665
	.quad	2236717801150132
	.quad	424543858577297
	.quad	2089272956986143
	.quad	221245220129925
	.quad	1156020201681217
	.quad	491145634799213
	.quad	542422431960839
	.quad	828100817819207
	.quad	153756971240384
	.quad	1299874139923977
	.quad	393099165260502
	.quad	1058234455773022
	.quad	996989038681183
	.quad	559086812798481
	.quad	573177704212711
	.quad	1629737083816402
	.quad	1399819713462595
	.quad	1646954378266038
	.quad	1887963056288059
	.quad	228507035730124
	.quad	1468368348640282
	.quad	930557653420194
	.quad	613513962454686
	.quad	1224529808187553
	.quad	1577022856702685
	.quad	2206946542980843
	.quad	625883007765001
	.quad	279930793512158
	.quad	1076287717051609
	.quad	1114455570543035
	.quad	187297059715481
	.quad	250446884292121
	.quad	1885187512550540
	.quad	902497362940219
	.quad	76749815795675
	.quad	1657927525633846
	.quad	1420238379745202
	.quad	1340321636548352
	.quad	1129576631190784
	.quad	1281994010027327
	.quad	996844254743018
	.quad	257876363489249
	.quad	1150850742055018
	.quad	628740660038789
	.quad	1943038498527841
	.quad	467786347793886
	.quad	1093341428303375
	.quad	235413859513003
	.quad	237425418909360
	.quad	469614029179605
	.quad	1512389769174935
	.quad	1241726368345357
	.quad	441602891065214
	.quad	1736417953058555
	.quad	726531315520508
	.quad	1833335034432527
	.quad	1629442561574747
	.quad	624418919286085
	.quad	1960754663920689
	.quad	497040957888962
	.quad	1909832851283095
	.quad	1271432136996826
	.quad	2219780368020940
	.quad	1537037379417136
	.quad	1358865369268262
	.quad	2130838645654099
	.quad	828733687040705
	.quad	1999987652890901
	.quad	629042105241814
	.quad	1098854999137608
	.quad	887281544569320
	.quad	1423102019874777
	.quad	7911258951561
	.quad	1811562332665373
	.quad	1501882019007673
	.quad	2213763501088999
	.quad	359573079719636
	.quad	36370565049116
	.quad	218907117361280
	.quad	1209298913016966
	.quad	1944312619096112
	.quad	1130690631451061
	.quad	1342327389191701
	.quad	1369976867854704
	.quad	1396479602419169
	.quad	1765656654398856
	.quad	2203659200586299
	.quad	998327836117241
	.quad	2230701885562825
	.quad	1348173180338974
	.quad	2172856128624598
	.quad	1426538746123771
	.quad	444193481326151
	.quad	784210426627951
	.quad	918204562375674
	.quad	1284546780452985
	.quad	1324534636134684
	.quad	1872449409642708
	.quad	319638829540294
	.quad	596282656808406
	.quad	2037902696412608
	.quad	1557219121643918
	.quad	341938082688094
	.quad	1901860206695915
	.quad	2004489122065736
	.quad	1625847061568236
	.quad	973529743399879
	.quad	2075287685312905
	.quad	1371853944110545
	.quad	1042332820512553
	.quad	1949855697918254
	.quad	1791195775521505
	.quad	37487364849293
	.quad	687200189577855
	.quad	1082536651125675
	.quad	644224940871546
	.quad	340923196057951
	.quad	343581346747396
	.quad	2082717129583892
	.quad	27829425539422
	.quad	145655066671970
	.quad	1690527209845512
	.quad	1865260509673478
	.quad	1059729620568824
	.quad	2163709103470266
	.quad	1440302280256872
	.quad	1769143160546397
	.quad	869830310425069
	.quad	1609516219779025
	.quad	777277757338817
	.quad	2101121130363987
	.quad	550762194946473
	.quad	1905542338659364
	.quad	2024821921041576
	.quad	426948675450149
	.quad	595133284085473
	.quad	471860860885970
	.quad	600321679413000
	.quad	598474602406721
	.quad	1468128276358244
	.quad	1191923149557635
	.quad	1501376424093216
	.quad	1281662691293476
	.quad	1721138489890707
	.quad	1264336102277790
	.quad	433064545421287
	.quad	1359988423149466
	.quad	1561871293409447
	.quad	719520245587143
	.quad	393380711632345
	.quad	132350400863381
	.quad	1543271270810729
	.quad	1819543295798660
	.quad	396397949784152
	.quad	1811354474471839
	.quad	1362679985304303
	.quad	2117033964846756
	.quad	498041172552279
	.quad	1812471844975748
	.quad	1856491995543149
	.quad	126579494584102
	.quad	1036244859282620
	.quad	1975108050082550
	.quad	650623932407995
	.quad	1137551288410575
	.quad	2125223403615539
	.quad	1725658013221271
	.quad	2134892965117796
	.quad	522584000310195
	.quad	1241762481390450
	.quad	1743702789495384
	.quad	2227404127826575
	.quad	1686746002148897
	.quad	427904865186312
	.quad	1703211129693455
	.quad	1585368107547509
	.quad	1436984488744336
	.quad	761188534613978
	.quad	318101947455002
	.quad	248138407995851
	.quad	1481904195303927
	.quad	309278454311197
	.quad	1258516760217879
	.quad	1275068538599310
	.quad	513726919533379
	.quad	349926553492294
	.quad	688428871968420
	.quad	1702400196000666
	.quad	1061864036265233
	.quad	961611260325381
	.quad	321859632700838
	.quad	1045600629959517
	.quad	1985130202504038
	.quad	1558816436882417
	.quad	1962896332636523
	.quad	1337709822062152
	.quad	1501413830776938
	.quad	294436165831932
	.quad	818359826554971
	.quad	1862173000996177
	.quad	626821592884859
	.quad	573655738872376
	.quad	1749691246745455
	.quad	1988022651432119
	.quad	1082111498586040
	.quad	1834020786104821
	.quad	1454826876423687
	.quad	692929915223122
	.quad	2146513703733331
	.quad	584788900394667
	.quad	464965657279958
	.quad	2183973639356127
	.quad	238371159456790
	.quad	1129007025494441
	.quad	2197883144413266
	.quad	265142755578169
	.quad	971864464758890
	.quad	1983715884903702
	.quad	1291366624493075
	.quad	381456718189114
	.quad	1711482489312444
	.quad	1815233647702022
	.quad	892279782992467
	.quad	444548969917454
	.quad	1452286453853356
	.quad	2113731441506810
	.quad	645188273895859
	.quad	810317625309512
	.quad	2242724082797924
	.quad	1373354730327868
	.quad	1006520110883049
	.quad	2147330369940688
	.quad	1151816104883620
	.quad	1745720200383796
	.quad	1911723143175317
	.quad	2056329390702074
	.quad	355227174309849
	.quad	879232794371100
	.quad	163723479936298
	.quad	115424889803150
	.quad	1156016391581227
	.quad	1894942220753364
	.quad	1970549419986329
	.quad	681981452362484
	.quad	267208874112496
	.quad	1374683991933094
	.quad	638600984916117
	.quad	646178654558546
	.quad	13378654854251
	.quad	106237307029567
	.quad	1944412051589651
	.quad	1841976767925457
	.quad	230702819835573
	.quad	260683893467075
	.quad	854060306077237
	.quad	913639551980112
	.quad	4704576840123
	.quad	280254810808712
	.quad	715374893080287
	.quad	1173334812210491
	.quad	1806524662079626
	.quad	1894596008000979
	.quad	398905715033393
	.quad	500026409727661
	.quad	1596431288195371
	.quad	1420380351989370
	.quad	985211561521489
	.quad	392444930785633
	.quad	2096421546958141
	.quad	1922523000950363
	.quad	789831022876840
	.quad	427295144688779
	.quad	320923973161730
	.quad	1927770723575450
	.quad	1485792977512719
	.quad	1850996108474547
	.quad	551696031508956
	.quad	2126047405475647
	.quad	2112099158080148
	.quad	742570803909715
	.quad	6484558077432
	.quad	1951119898618916
	.quad	93090382703416
	.quad	383905201636970
	.quad	859946997631870
	.quad	855623867637644
	.quad	1017125780577795
	.quad	794250831877809
	.quad	77571826285752
	.quad	999304298101753
	.quad	487841111777762
	.quad	1038031143212339
	.quad	339066367948762
	.quad	674994775520533
	.quad	266035846330789
	.quad	826951213393478
	.quad	1405007746162285
	.quad	1781791018620876
	.quad	1001412661522686
	.quad	348196197067298
	.quad	1666614366723946
	.quad	888424995032760
	.quad	580747687801357
	.quad	1939560076207777
	.quad	1409892634407635
	.quad	552574736069277
	.quad	383854338280405
	.quad	190706709864139
	.quad	2177087163428741
	.quad	1439255351721944
	.quad	1208070840382793
	.quad	2230616362004769
	.quad	1396886392021913
	.quad	676962063230039
	.quad	1880275537148808
	.quad	2046721011602706
	.quad	888463247083003
	.quad	1318301552024067
	.quad	1466980508178206
	.quad	617045217998949
	.quad	652303580573628
	.quad	757303753529064
	.quad	207583137376902
	.quad	1511056752906902
	.quad	105403126891277
	.quad	493434892772846
	.quad	1091943425335976
	.quad	1802717338077427
	.quad	1853982405405128
	.quad	1878664056251147
	.quad	1528011020803992
	.quad	1019626468153565
	.quad	1128438412189035
	.quad	1963939888391106
	.quad	293456433791664
	.quad	697897559513649
	.quad	985882796904380
	.quad	796244541237972
	.quad	416770998629779
	.quad	389655552427054
	.quad	1314476859406756
	.quad	1749382513022778
	.quad	1161905598739491
	.quad	1428358296490651
	.quad	1027115282420478
	.quad	304840698058337
	.quad	441410174026628
	.quad	1819358356278573
	.quad	204943430200135
	.quad	1554861433819175
	.quad	216426658514651
	.quad	264149070665950
	.quad	2047097371738319
	.quad	1934415182909034
	.quad	1393285083565062
	.quad	516409331772960
	.quad	1157690734993892
	.quad	121039666594268
	.quad	662035583584445
	.quad	286736105093098
	.quad	1131773000510616
	.quad	818494214211439
	.quad	472943792054479
	.quad	665784778135882
	.quad	1893179629898606
	.quad	808313193813106
	.quad	276797254706413
	.quad	1563426179676396
	.quad	945205108984232
	.quad	526277562959295
	.quad	1324180513733566
	.quad	1666970227868664
	.quad	153547609289173
	.quad	2031433403516252
	.quad	203996615228162
	.quad	170487168837083
	.quad	981513604791390
	.quad	843573964916831
	.quad	1476570093962618
	.quad	838514669399805
	.quad	1857930577281364
	.quad	2017007352225784
	.quad	317085545220047
	.quad	1461557121912842
	.quad	1600674043318359
	.quad	2157134900399597
	.quad	1670641601940616
	.quad	127765583803283
	.quad	1293543509393474
	.quad	2143624609202546
	.quad	1058361566797508
	.quad	214097127393994
	.quad	946888515472729
	.quad	357067959932916
	.quad	1290876214345711
	.quad	521245575443703
	.quad	1494975468601005
	.quad	800942377643885
	.quad	566116659100033
	.quad	820247422481740
	.quad	994464017954148
	.quad	327157611686365
	.quad	92591318111744
	.quad	617256647603209
	.quad	1652107761099439
	.quad	1857213046645471
	.quad	1085597175214970
	.quad	817432759830522
	.quad	771808161440705
	.quad	1323510426395069
	.quad	680497615846440
	.quad	851580615547985
	.quad	1320806384849017
	.quad	1219260086131915
	.quad	647169006596815
	.quad	79601124759706
	.quad	2161724213426748
	.quad	404861897060198
	.quad	1327968293887866
	.quad	1335500852943256
	.quad	1401587164534264
	.quad	558137311952440
	.quad	1551360549268902
	.quad	417621685193956
	.quad	1429953819744454
	.quad	396157358457099
	.quad	1940470778873255
	.quad	214000046234152
	.quad	1268047918491973
	.quad	2172375426948536
	.quad	1533916099229249
	.quad	1761293575457130
	.quad	1590622667026765
	.quad	1627072914981959
	.quad	2211603081280073
	.quad	1912369601616504
	.quad	1191770436221309
	.quad	2187309757525860
	.quad	1149147819689533
	.quad	378692712667677
	.quad	828475842424202
	.quad	2218619146419342
	.quad	70688125792186
	.quad	1299739417079761
	.quad	1438616663452759
	.quad	1536729078504412
	.quad	2053896748919838
	.quad	1008421032591246
	.quad	2040723824657366
	.quad	399555637875075
	.quad	632543375452995
	.quad	872649937008051
	.quad	1235394727030233
	.quad	2211311599327900
	.quad	2139787259888175
	.quad	938706616835350
	.quad	12609661139114
	.quad	2081897930719789
	.quad	1324994503390450
	.quad	336982330582631
	.quad	1183998925654177
	.quad	1091654665913274
	.quad	48727673971319
	.quad	1845522914617879
	.quad	1222198248335542
	.quad	150841072760134
	.quad	1927029069940982
	.quad	1189913404498011
	.quad	1079559557592645
	.quad	2215338383666441
	.quad	1903569501302605
	.quad	49033973033940
	.quad	305703433934152
	.quad	94653405416909
	.quad	1386121349852999
	.quad	1062130477891762
	.quad	36553947479274
	.quad	833669648948846
	.quad	1432015813136298
	.quad	440364795295369
	.quad	1395647062821501
	.quad	1976874522764578
	.quad	934452372723352
	.quad	1296625309219774
	.quad	2068273464883862
	.quad	1858621048097805
	.quad	1492281814208508
	.quad	2235868981918946
	.quad	1490330266465570
	.quad	1858795661361448
	.quad	1436241134969763
	.quad	294573218899647
	.quad	1208140011028933
	.quad	1282462923712748
	.quad	741885683986255
	.quad	2027754642827561
	.quad	518989529541027
	.quad	1826610009555945
	.quad	1525827120027511
	.quad	723686461809551
	.quad	1597702369236987
	.quad	244802101764964
	.quad	1502833890372311
	.quad	113622036244513
	.quad	1233740067745854
	.quad	674109952278496
	.quad	2114345180342965
	.quad	166764512856263
	.quad	2041668749310338
	.quad	2184405322203901
	.quad	1633400637611036
	.quad	2110682505536899
	.quad	2048144390084644
	.quad	503058759232932
	.quad	760293024620937
	.quad	2027152777219493
	.quad	666858468148475
	.quad	1539184379870952
	.quad	1916168475367211
	.quad	915626432541343
	.quad	883217071712575
	.quad	363427871374304
	.quad	1976029821251593
	.quad	678039535434506
	.quad	570587290189340
	.quad	1605302676614120
	.quad	2147762562875701
	.quad	1706063797091704
	.quad	1439489648586438
	.quad	2194580753290951
	.quad	832380563557396
	.quad	561521973970522
	.quad	584497280718389
	.quad	187989455492609
	.quad	681223515948275
	.quad	1933493571072456
	.quad	1872921007304880
	.quad	488162364135671
	.quad	1413466089534451
	.quad	410844090765630
	.quad	1397263346404072
	.quad	408227143123410
	.quad	1594561803147811
	.quad	2102170800973153
	.quad	719462588665004
	.quad	1479649438510153
	.quad	1097529543970028
	.quad	1302363283777685
	.quad	942065717847195
	.quad	1069313679352961
	.quad	2007341951411051
	.quad	70973416446291
	.quad	1419433790163706
	.quad	1146565545556377
	.quad	1661971299445212
	.quad	406681704748893
	.quad	564452436406089
	.quad	1109109865829139
	.quad	2214421081775077
	.quad	1165671861210569
	.quad	1890453018796184
	.quad	3556249878661
	.quad	442116172656317
	.quad	753830546620811
	.quad	1666955059895019
	.quad	1530775289309243
	.quad	1119987029104146
	.quad	2164156153857580
	.quad	615171919212796
	.quad	1523849404854568
	.quad	854560460547503
	.quad	2067097370290715
	.quad	1765325848586042
	.quad	1094538949313667
	.quad	1796592198908825
	.quad	870221004284388
	.quad	2025558921863561
	.quad	1699010892802384
	.quad	1951351290725195
	.quad	1916457206844795
	.quad	198025184438026
	.quad	1909076887557595
	.quad	1938542290318919
	.quad	1014323197538413
	.quad	869150639940606
	.quad	1756009942696599
	.quad	1334952557375672
	.quad	1544945379082874
	.quad	764055910920305
	.quad	1603590757375439
	.quad	146805246592357
	.quad	1843313433854297
	.quad	954279890114939
	.quad	80113526615750
	.quad	764536758732259
	.quad	1055139345100233
	.quad	469252651759390
	.quad	617897512431515
	.quad	74497112547268
	.quad	740094153192149
	.quad	1745254631717581
	.quad	727713886503130
	.quad	1283034364416928
	.quad	525892105991110
	.quad	1723776830270342
	.quad	1476444848991936
	.quad	573789489857760
	.quad	133864092632978
	.quad	542611720192581
	.quad	1986812262899321
	.quad	1162535242465837
	.quad	481498966143464
	.quad	544600533583622
	.quad	64123227344372
	.quad	1239927720647794
	.quad	1360722983445904
	.quad	222610813654661
	.quad	62429487187991
	.quad	1793193323953132
	.quad	91096687857833
	.quad	70945970938921
	.quad	2158587638946380
	.quad	1537042406482111
	.quad	1895854577604609
	.quad	1394895708949416
	.quad	1728548428495944
	.quad	1140864900240149
	.quad	563645333603061
	.quad	141358280486863
	.quad	91435889572504
	.quad	1087208572552643
	.quad	1829599652522921
	.quad	1193307020643647
	.quad	1611230858525381
	.quad	950720175540785
	.quad	499589887488610
	.quad	2001656988495019
	.quad	88977313255908
	.quad	1189080501479658
	.quad	2184348804772597
	.quad	1040818725742319
	.quad	2018318290311834
	.quad	1712060030915354
	.quad	873966876953756
	.quad	1090638350350440
	.quad	1708559325189137
	.quad	672344594801910
	.quad	1320437969700239
	.quad	1508590048271766
	.quad	1131769479776094
	.quad	101550868699323
	.quad	428297785557897
	.quad	561791648661744
	.quad	756417570499462
	.quad	237882279232602
	.quad	2136263418594016
	.quad	1701968045454886
	.quad	703713185137472
	.quad	1781187809325462
	.quad	1697624151492346
	.quad	1381393690939988
	.quad	175194132284669
	.quad	1483054666415238
	.quad	2175517777364616
	.quad	708781536456029
	.quad	955668231122942
	.quad	1967557500069555
	.quad	2021208005604118
	.quad	1115135966606887
	.quad	224217372950782
	.quad	915967306279222
	.quad	593866251291540
	.quad	561747094208006
	.quad	1443163092879439
	.quad	391875531646162
	.quad	2180847134654632
	.quad	464538543018753
	.quad	1594098196837178
	.quad	850858855888869
	.quad	319436476624586
	.quad	327807784938441
	.quad	740785849558761
	.quad	17128415486016
	.quad	2132756334090067
	.quad	536247820155645
	.quad	48907151276867
	.quad	608473197600695
	.quad	1261689545022784
	.quad	1525176236978354
	.quad	974205476721062
	.quad	293436255662638
	.quad	148269621098039
	.quad	137961998433963
	.quad	1121075518299410
	.quad	2071745529082111
	.quad	1265567917414828
	.quad	1648196578317805
	.quad	496232102750820
	.quad	122321229299801
	.quad	1022922077493685
	.quad	2001275453369484
	.quad	2017441881607947
	.quad	993205880778002
	.quad	654925550560074
	.quad	1168810995576858
	.quad	575655959430926
	.quad	905758704861388
	.quad	496774564663534
	.quad	1954109525779738
	.quad	2117022646152485
	.quad	338102630417180
	.quad	1194140505732026
	.quad	107881734943492
	.quad	1714785840001267
	.quad	2036500018681589
	.quad	1876380234251966
	.quad	2056717182974196
	.quad	1645855254384642
	.quad	106431476499341
	.quad	62482972120563
	.quad	1513446655109411
	.quad	807258751769522
	.quad	538491469114
	.quad	2002850762893643
	.quad	1243624520538135
	.quad	1486040410574605
	.quad	2184752338181213
	.quad	378495998083531
	.quad	922510868424903
	.quad	1089502620807680
	.quad	402544072617374
	.quad	1131446598479839
	.quad	1290278588136533
	.quad	1867998812076769
	.quad	715425053580701
	.quad	39968586461416
	.quad	2173068014586163
	.quad	653822651801304
	.quad	162892278589453
	.quad	182585796682149
	.quad	75093073137630
	.quad	497037941226502
	.quad	133871727117371
	.quad	1914596576579670
	.quad	1608999621851578
	.quad	1987629837704609
	.quad	1519655314857977
	.quad	1819193753409464
	.quad	1949315551096831
	.quad	1069003344994464
	.quad	1939165033499916
	.quad	1548227205730856
	.quad	1933767655861407
	.quad	1730519386931635
	.quad	1393284965610134
	.quad	1597143735726030
	.quad	416032382447158
	.quad	1429665248828629
	.quad	360275475604565
	.quad	547835731063078
	.quad	215360904187529
	.quad	596646739879007
	.quad	332709650425085
	.quad	47602113726801
	.quad	1522314509708010
	.quad	437706261372925
	.quad	814035330438027
	.quad	335930650933545
	.quad	1291597595523886
	.quad	1058020588994081
	.quad	402837842324045
	.quad	1363323695882781
	.quad	2105763393033193
	.quad	109521982566564
	.quad	1715257748585139
	.quad	1112231216891516
	.quad	2046641005101484
	.quad	134249157157013
	.quad	2156991030936798
	.quad	2227544497153325
	.quad	1869050094431622
	.quad	754875860479115
	.quad	1754242344267058
	.quad	1846089562873800
	.quad	98894784984326
	.quad	1412430299204844
	.quad	171351226625762
	.quad	1100604760929008
	.quad	84172382130492
	.quad	499710970700046
	.quad	425749630620778
	.quad	1762872794206857
	.quad	612842602127960
	.quad	868309334532756
	.quad	1703010512741873
	.quad	1952690008738057
	.quad	4325269926064
	.quad	2071083554962116
	.quad	523094549451158
	.quad	401938899487815
	.quad	1407690589076010
	.quad	2022387426254453
	.quad	158660516411257
	.quad	612867287630009
	.quad	448212612103814
	.quad	571629077419196
	.quad	1466796750919376
	.quad	1728478129663858
	.quad	1723848973783452
	.quad	2208822520534681
	.quad	1718748322776940
	.quad	1974268454121942
	.quad	1194212502258141
	.quad	1254114807944608
	.quad	977770684047110
	.quad	2010756238954993
	.quad	1783628927194099
	.quad	1525962994408256
	.quad	232464058235826
	.quad	1948628555342434
	.quad	1835348780427694
	.quad	1031609499437291
	.quad	64472106918373
	.quad	767338676040683
	.quad	754089548318405
	.quad	1523192045639075
	.quad	435746025122062
	.quad	512692508440385
	.quad	1255955808701983
	.quad	1700487367990941
	.quad	1166401238800299
	.quad	1175121994891534
	.quad	1190934801395380
	.quad	349144008168292
	.quad	1337012557669162
	.quad	1475912332999108
	.quad	1321618454900458
	.quad	47611291904320
	.quad	877519947135419
	.quad	2172838026132651
	.quad	272304391224129
	.quad	1655143327559984
	.quad	886229406429814
	.quad	375806028254706
	.quad	214463229793940
	.quad	572906353144089
	.quad	572168269875638
	.quad	697556386112979
	.quad	1168827102357844
	.quad	823864273033637
	.quad	2071538752104697
	.quad	788062026895924
	.quad	599578340743362
	.quad	1948116082078088
	.quad	2054898304487796
	.quad	2204939184983900
	.quad	210526805152138
	.quad	786593586607626
	.quad	1915320147894736
	.quad	156481169009469
	.quad	655050471180417
	.quad	592917090415421
	.quad	2165897438660879
	.quad	1726336468579724
	.quad	1119932070398949
	.quad	1929199510967666
	.quad	33918788322959
	.quad	1836837863503150
	.quad	829996854845988
	.quad	217061778005138
	.quad	1686565909803640
	.quad	1346948817219846
	.quad	1723823550730181
	.quad	384301494966394
	.quad	687038900403062
	.quad	2211195391021739
	.quad	254684538421383
	.quad	1245698430589680
	.quad	1247567493562688
	.quad	1978182094455847
	.quad	183871474792955
	.quad	806570235643435
	.quad	288461518067916
	.quad	1449077384734201
	.quad	38285445457996
	.quad	2136537659177832
	.quad	2146493000841573
	.quad	725161151123125
	.quad	1201928866368855
	.quad	800415690605445
	.quad	1703146756828343
	.quad	997278587541744
	.quad	1858284414104014
	.quad	356468809648877
	.quad	782373916933152
	.quad	1718002439402870
	.quad	1392222252219254
	.quad	663171266061951
	.quad	759628738230460
	.quad	1012693474275852
	.quad	353780233086498
	.quad	246080061387552
	.quad	2030378857679162
	.quad	2040672435071076
	.quad	888593182036908
	.quad	1298443657189359
	.quad	1804780278521327
	.quad	354070726137060
	.quad	1894938527423184
	.quad	1463213041477277
	.quad	474410505497651
	.quad	247294963033299
	.quad	877975941029128
	.quad	207937160991127
	.quad	12966911039119
	.quad	820997788283092
	.quad	1010440472205286
	.quad	1701372890140810
	.quad	218882774543183
	.quad	533427444716285
	.quad	1233243976733245
	.quad	435054256891319
	.quad	1509568989549904
	.quad	1888838535711826
	.quad	1052177758340622
	.quad	1213553803324135
	.quad	169182009127332
	.quad	463374268115872
	.quad	299137589460312
	.quad	1594371588983567
	.quad	868058494039073
	.quad	257771590636681
	.quad	1805012993142921
	.quad	1806842755664364
	.quad	2098896946025095
	.quad	1356630998422878
	.quad	1458279806348064
	.quad	347755825962072
	.quad	1402334161391744
	.quad	1560083671046299
	.quad	1008585416617747
	.quad	1147797150908892
	.quad	1420416683642459
	.quad	665506704253369
	.quad	273770475169863
	.quad	799236974202630
	.quad	848328990077558
	.quad	1811448782807931
	.quad	1468412523962641
	.quad	771866649897997
	.quad	1931766110147832
	.quad	799561180078482
	.quad	524837559150077
	.quad	2223212657821850
	.quad	630416247363666
	.quad	2144451165500328
	.quad	816911130947791
	.quad	1024351058410032
	.quad	1266603897524861
	.quad	156378408858100
	.quad	1275649024228779
	.quad	447738405888420
	.quad	253186462063095
	.quad	2022215964509735
	.quad	136144366993649
	.quad	1800716593296582
	.quad	1193970603800203
	.quad	871675847064218
	.quad	1862751661970328
	.quad	851596246739884
	.quad	1519315554814041
	.quad	1542798466547449
	.quad	1417975335901520
	.quad	1228168094547481
	.quad	334133883362894
	.quad	587567568420081
	.quad	433612590281181
	.quad	603390400373205
	.quad	121893973206505
	.quad	1843345804916664
	.quad	1703118377384911
	.quad	497810164760654
	.quad	101150811654673
	.quad	458346255946468
	.quad	290909935619344
	.quad	1452768413850679
	.quad	550922875254215
	.quad	1537286854336538
	.quad	584322311184395
	.quad	380661238802118
	.quad	114839394528060
	.quad	655082270500073
	.quad	2111856026034852
	.quad	996965581008991
	.quad	2148998626477022
	.quad	1012273164934654
	.quad	1073876063914522
	.quad	1688031788934939
	.quad	923487018849600
	.quad	2085106799623355
	.quad	528082801620136
	.quad	1606206360876188
	.quad	735907091712524
	.quad	1697697887804317
	.quad	1335343703828273
	.quad	831288615207040
	.quad	949416685250051
	.quad	288760277392022
	.quad	1419122478109648
	.quad	1325574567803701
	.quad	602393874111094
	.quad	2107893372601700
	.quad	1314159682671307
	.quad	2201150872731804
	.quad	2180241023425241
	.quad	97663456423163
	.quad	1633405770247824
	.quad	848945042443986
	.quad	1173339555550611
	.quad	818605084277583
	.quad	47521504364289
	.quad	924108720564965
	.quad	735423405754506
	.quad	830104860549448
	.quad	1886653193241086
	.quad	1600929509383773
	.quad	1475051275443631
	.quad	286679780900937
	.quad	1577111294832995
	.quad	1030899169768747
	.quad	144900916293530
	.quad	1964672592979567
	.quad	568390100955250
	.quad	278388655910247
	.quad	487143369099838
	.quad	927762205508727
	.quad	181017540174210
	.quad	1616886700741287
	.quad	1191033906638969
	.quad	940823957346562
	.quad	1606870843663445
	.quad	861684761499847
	.quad	658674867251089
	.quad	1875032594195546
	.quad	1427106132796197
	.quad	724736390962158
	.quad	901860512044740
	.quad	635268497268760
	.quad	622869792298357
	.quad	1903919278950367
	.quad	1922588621661629
	.quad	1520574711600434
	.quad	1087100760174640
	.quad	25465949416618
	.quad	1693639527318811
	.quad	1526153382657203
	.quad	125943137857169
	.quad	145276964043999
	.quad	214739857969358
	.quad	920212862967915
	.quad	1939901550972269
	.quad	1211862791775221
	.quad	85097515720120
	.quad	2006245852772938
	.quad	734762734836159
	.quad	254642929763427
	.quad	1406213292755966
	.quad	239303749517686
	.quad	1619678837192149
	.quad	1919424032779215
	.quad	1357391272956794
	.quad	1525634040073113
	.quad	1310226789796241
	.quad	1040763709762123
	.quad	1704449869235352
	.quad	605263070456329
	.quad	1998838089036355
	.quad	1312142911487502
	.quad	1996723311435669
	.quad	1844342766567060
	.quad	985455700466044
	.quad	1165924681400960
	.quad	311508689870129
	.quad	43173156290518
	.quad	2202883069785309
	.quad	1137787467085917
	.quad	1733636061944606
	.quad	1394992037553852
	.quad	670078326344559
	.quad	555655025059356
	.quad	471959386282438
	.quad	2141455487356409
	.quad	849015953823125
	.quad	2197214573372804
	.quad	794254097241315
	.quad	1030190060513737
	.quad	267632515541902
	.quad	2040478049202624
	.quad	1812516004670529
	.quad	1609256702920783
	.quad	1706897079364493
	.quad	258549904773295
	.quad	996051247540686
	.quad	1540374301420584
	.quad	1764656898914615
	.quad	1810104162020396
	.quad	923808779163088
	.quad	664390074196579
	.quad	1323460699404750
	.quad	1262690757880991
	.quad	871777133477900
	.quad	1060078894988977
	.quad	1712236889662886
	.quad	1696163952057966
	.quad	1391710137550823
	.quad	608793846867416
	.quad	1034391509472039
	.quad	1780770894075012
	.quad	1367603834210841
	.quad	2131988646583224
	.quad	890353773628144
	.quad	1908908219165595
	.quad	270836895252891
	.quad	597536315471731
	.quad	40375058742586
	.quad	1942256403956049
	.quad	1185484645495932
	.quad	312666282024145
	.quad	1919411405316294
	.quad	1234508526402192
	.quad	1066863051997083
	.quad	1008444703737597
	.quad	1348810787701552
	.quad	2102881477513865
	.quad	1570274565945361
	.quad	1573617900503708
	.quad	18662635732583
	.quad	2232324307922098
	.quad	1853931367696942
	.quad	8107973870707
	.quad	350214504129299
	.quad	775206934582587
	.quad	1752317649166792
	.quad	1417148368003523
	.quad	721357181628282
	.quad	505725498207811
	.quad	373232277872983
	.quad	261634707184480
	.quad	2186733281493267
	.quad	2250694917008620
	.quad	1014829812957440
	.quad	479998161452389
	.quad	83566193876474
	.quad	1268116367301224
	.quad	560157088142809
	.quad	802626839600444
	.quad	2210189936605713
	.quad	1129993785579988
	.quad	615183387352312
	.quad	917611676109240
	.quad	878893615973325
	.quad	978940963313282
	.quad	938686890583575
	.quad	522024729211672
	.quad	1045059315315808
	.quad	1892245413707790
	.quad	1907891107684253
	.quad	2059998109500714
	.quad	1799679152208884
	.quad	912132775900387
	.quad	25967768040979
	.quad	432130448590461
	.quad	274568990261996
	.quad	98698809797682
	.quad	2144627600856209
	.quad	1907959298569602
	.quad	811491302610148
	.quad	1262481774981493
	.quad	1791451399743152
	.quad	1713538728337276
	.quad	118349997257490
	.quad	1882306388849954
	.quad	158235232210248
	.quad	1217809823321928
	.quad	2173947284933160
	.quad	1986927836272325
	.quad	1388114931125539
	.quad	12686131160169
	.quad	1650875518872272
	.quad	1136263858253897
	.quad	1732115601395988
	.quad	734312880662190
	.quad	1252904681142109
	.quad	372986456113865
	.quad	525430915458171
	.quad	2116279931702135
	.quad	501422713587815
	.quad	1907002872974925
	.quad	803147181835288
	.quad	868941437997146
	.quad	316299302989663
	.quad	943495589630550
	.quad	571224287904572
	.quad	227742695588364
	.quad	1776969298667369
	.quad	628602552821802
	.quad	457210915378118
	.quad	2041906378111140
	.quad	815000523470260
	.quad	913085688728307
	.quad	1052060118271173
	.quad	1345536665214223
	.quad	541623413135555
	.quad	1580216071604333
	.quad	1877997504342444
	.quad	857147161260913
	.quad	703522726778478
	.quad	2182763974211603
	.quad	1870080310923419
	.quad	71988220958492
	.quad	1783225432016732
	.quad	615915287105016
	.quad	1035570475990230
	.quad	730987750830150
	.quad	857613889540280
	.quad	1083813157271766
	.quad	1002817255970169
	.quad	1719228484436074
	.quad	377616581647602
	.quad	1581980403078513
	.quad	804044118130621
	.quad	2034382823044191
	.quad	643844048472185
	.quad	176957326463017
	.quad	1573744060478586
	.quad	528642225008045
	.quad	1816109618372371
	.quad	1515140189765006
	.quad	1888911448245718
	.quad	1387110895611080
	.quad	1924503794066429
	.quad	1731539523700949
	.quad	2230378382645454
	.quad	443392177002051
	.quad	233793396845137
	.quad	2199506622312416
	.quad	1011858706515937
	.quad	974676837063129
	.quad	1846351103143623
	.quad	1949984838808427
	.quad	671247021915253
	.quad	1946756846184401
	.quad	1929296930380217
	.quad	849646212452002
	.quad	1410198775302919
	.quad	73767886183695
	.quad	1641663456615812
	.quad	762256272452411
	.quad	692017667358279
	.quad	723305578826727
	.quad	1638042139863265
	.quad	748219305990306
	.quad	334589200523901
	.quad	22893968530686
	.quad	2235758574399251
	.quad	1661465835630252
	.quad	925707319443452
	.quad	1203475116966621
	.quad	801299035785166
	.quad	1733292596726131
	.quad	1664508947088596
	.quad	467749120991922
	.quad	1647498584535623
	.quad	903105258014366
	.quad	427141894933047
	.quad	561187017169777
	.quad	1884330244401954
	.quad	1914145708422219
	.quad	1344191060517578
	.quad	1960935031767890
	.quad	1518838929955259
	.quad	1781502350597190
	.quad	1564784025565682
	.quad	673723351748086
	.quad	1979969272514923
	.quad	1175287312495508
	.quad	1187589090978666
	.quad	1881897672213940
	.quad	1917185587363432
	.quad	1098342571752737
	.quad	5935801044414
	.quad	2000527662351839
	.quad	1538640296181569
	.quad	2495540013192
	.quad	678856913479236
	.quad	224998292422872
	.quad	219635787698590
	.quad	1972465269000940
	.quad	271413961212179
	.quad	1353052061471651
	.quad	344711291283483
	.quad	2014925838520662
	.quad	2006221033113941
	.quad	194583029968109
	.quad	514316781467765
	.quad	829677956235672
	.quad	1676415686873082
	.quad	810104584395840
	.quad	1980510813313589
	.quad	1948645276483975
	.quad	152063780665900
	.quad	129968026417582
	.quad	256984195613935
	.quad	1860190562533102
	.quad	1936576191345085
	.quad	461100292705964
	.quad	1811043097042830
	.quad	957486749306835
	.quad	796664815624365
	.quad	1543160838872951
	.quad	1500897791837765
	.quad	1667315977988401
	.quad	599303877030711
	.quad	1151480509533204
	.quad	2136010406720455
	.quad	738796060240027
	.quad	319298003765044
	.quad	1150614464349587
	.quad	1731069268103150
	.quad	735642447616087
	.quad	1364750481334268
	.quad	417232839982871
	.quad	927108269127661
	.quad	1017222050227968
	.quad	1987716148359
	.quad	2234319589635701
	.quad	621282683093392
	.quad	2132553131763026
	.quad	1567828528453324
	.quad	1017807205202360
	.quad	565295260895298
	.quad	829541698429100
	.quad	307243822276582
	.quad	249079270936248
	.quad	1501514259790706
	.quad	947909724204848
	.quad	944551802437487
	.quad	552658763982480
	.quad	2089966982947227
	.quad	1854140343916181
	.quad	2151980759220007
	.quad	2139781292261749
	.quad	158070445864917
	.quad	1338766321464554
	.quad	1906702607371284
	.quad	1519569445519894
	.quad	115384726262267
	.quad	1393058953390992
	.quad	1364621558265400
	.quad	1512388234908357
	.quad	1926731583198686
	.quad	2041482526432505
	.quad	920401122333774
	.quad	1884844597333588
	.quad	601480070269079
	.quad	620203503079537
	.quad	1079527400117915
	.quad	1202076693132015
	.quad	840922919763324
	.quad	727955812569642
	.quad	1303406629750194
	.quad	522898432152867
	.quad	294161410441865
	.quad	353760790835310
	.quad	1598361541848743
	.quad	1122905698202299
	.quad	1922533590158905
	.quad	419107700666580
	.quad	359856369838236
	.quad	180914355488683
	.quad	861726472646627
	.quad	218807937262986
	.quad	575626773232501
	.quad	755467689082474
	.quad	909202735047934
	.quad	730078068932500
	.quad	936309075711518
	.quad	2007798262842972
	.quad	1609384177904073
	.quad	362745185608627
	.quad	1335318541768201
	.quad	800965770436248
	.quad	547877979267412
	.quad	984339177776787
	.quad	815727786505884
	.quad	1645154585713747
	.quad	1659074964378553
	.quad	1686601651984156
	.quad	1697863093781930
	.quad	599794399429786
	.quad	1104556219769607
	.quad	830560774794755
	.quad	12812858601017
	.quad	1168737550514982
	.quad	897832437380552
	.quad	463140296333799
	.quad	302564600022547
	.quad	2008360505135501
	.quad	1856930662813910
	.quad	678090852002597
	.quad	1920179140755167
	.quad	1259527833759868
	.quad	55540971895511
	.quad	1158643631044921
	.quad	476554103621892
	.quad	178447851439725
	.quad	1305025542653569
	.quad	103433927680625
	.quad	2176793111709008
	.quad	1576725716350391
	.quad	2009350167273523
	.quad	2012390194631546
	.quad	2125297410909580
	.quad	825403285195098
	.quad	2144208587560784
	.quad	1925552004644643
	.quad	1915177840006985
	.quad	1015952128947864
	.quad	1807108316634472
	.quad	1534392066433717
	.quad	347342975407218
	.quad	1153820745616376
	.quad	7375003497471
	.quad	983061001799725
	.quad	431211889901241
	.quad	2201903782961093
	.quad	817393911064341
	.quad	2214616493042167
	.quad	228567918409756
	.quad	865093958780220
	.quad	358083886450556
	.quad	159617889659320
	.quad	1360637926292598
	.quad	234147501399755
	.quad	2229469128637390
	.quad	2175289352258889
	.quad	1397401514549353
	.quad	1885288963089922
	.quad	1111762412951562
	.quad	252849572507389
	.quad	1048714233823341
	.quad	146111095601446
	.quad	1237505378776770
	.quad	1113790697840279
	.quad	1051167139966244
	.quad	1045930658550944
	.quad	2011366241542643
	.quad	1686166824620755
	.quad	1054097349305049
	.quad	1872495070333352
	.quad	182121071220717
	.quad	1064378906787311
	.quad	100273572924182
	.quad	1306410853171605
	.quad	1627717417672447
	.quad	50983221088417
	.quad	1109249951172250
	.quad	870201789081392
	.quad	104233794644221
	.quad	1548919791188248
	.quad	2224541913267306
	.quad	2054909377116478
	.quad	1043803389015153
	.quad	216762189468802
	.quad	707284285441622
	.quad	190678557969733
	.quad	973969342604308
	.quad	1403009538434867
	.quad	1279024291038477
	.quad	344776835218310
	.quad	273722096017199
	.quad	1834200436811442
	.quad	634517197663804
	.quad	343805853118335
	.quad	1302216857414201
	.quad	566872543223541
	.quad	2051138939539004
	.quad	321428858384280
	.quad	470067171324852
	.quad	1618629234173951
	.quad	2000092177515639
	.quad	7307679772789
	.quad	1117521120249968
	.quad	278151578291475
	.quad	1810282338562947
	.quad	1771599529530998
	.quad	1383659409671631
	.quad	685373414471841
	.quad	577009397403102
	.quad	1791440261786291
	.quad	2177643735971638
	.quad	174546149911960
	.quad	1412505077782326
	.quad	893719721537457
	.quad	1201282458018197
	.quad	1522349501711173
	.quad	58011597740583
	.quad	1130406465887139
	.quad	412607348255453
	.quad	1280455764199780
	.quad	2233277987330768
	.quad	14180080401665
	.quad	331584698417165
	.quad	262483770854550
	.quad	990511055108216
	.quad	526885552771698
	.quad	571664396646158
	.quad	354086190278723
	.quad	1820352417585487
	.quad	24495617171480
	.quad	1547899057533253
	.quad	10041836186225
	.quad	480457105094042
	.quad	2023310314989233
	.quad	637905337525881
	.quad	2106474638900687
	.quad	557820711084072
	.quad	1687858215057826
	.quad	1144168702609745
	.quad	604444390410187
	.quad	1544541121756138
	.quad	1925315550126027
	.quad	626401428894002
	.quad	1922168257351784
	.quad	2018674099908659
	.quad	1776454117494445
	.quad	956539191509034
	.quad	36031129147635
	.quad	544644538748041
	.quad	1039872944430374
	.quad	876750409130610
	.quad	710657711326551
	.quad	1216952687484972
	.quad	58242421545916
	.quad	2035812695641843
	.quad	2118491866122923
	.quad	1191684463816273
	.quad	46921517454099
	.quad	272268252444639
	.quad	1374166457774292
	.quad	2230115177009552
	.quad	1053149803909880
	.quad	1354288411641016
	.quad	1857910905368338
	.quad	1754729879288912
	.quad	885945464109877
	.quad	1516096106802166
	.quad	1602902393369811
	.quad	1193437069800958
	.quad	901107149704790
	.quad	999672920611411
	.quad	477584824802207
	.quad	364239578697845
	.quad	886299989548838
	.quad	1538292895758047
	.quad	1590564179491896
	.quad	1944527126709657
	.quad	837344427345298
	.quad	754558365378305
	.quad	1712186480903618
	.quad	1703656826337531
	.quad	750310918489786
	.quad	518996040250900
	.quad	1309847803895382
	.quad	1462151862813074
	.quad	211370866671570
	.quad	1544595152703681
	.quad	1027691798954090
	.quad	803217563745370
	.quad	1884799722343599
	.quad	1357706345069218
	.quad	2244955901722095
	.quad	730869460037413
	.quad	689299471295966
	.quad	1831210565161071
	.quad	1375187341585438
	.quad	1106284977546171
	.quad	1893781834054269
	.quad	696351368613042
	.quad	1494385251239250
	.quad	738037133616932
	.quad	636385507851544
	.quad	927483222611406
	.quad	1949114198209333
	.quad	1104419699537997
	.quad	783495707664463
	.quad	1747473107602770
	.quad	2002634765788641
	.quad	1607325776830197
	.quad	530883941415333
	.quad	1451089452727895
	.quad	1581691157083423
	.quad	496100432831154
	.quad	1068900648804224
	.quad	2006891997072550
	.quad	1134049269345549
	.quad	1638760646180091
	.quad	2055396084625778
	.quad	2222475519314561
	.quad	1870703901472013
	.quad	1884051508440561
	.quad	1344072275216753
	.quad	1318025677799069
	.quad	155711679280656
	.quad	681100400509288
	.quad	389811735211209
	.quad	2135723811340709
	.quad	408733211204125
	.quad	7813206966729
	.quad	194444201427550
	.quad	2071405409526507
	.quad	1065605076176312
	.quad	1645486789731291
	.quad	16625790644959
	.quad	1647648827778410
	.quad	1579910185572704
	.quad	436452271048548
	.quad	121070048451050
	.quad	1037263028552531
	.quad	568385780377829
	.quad	297953104144430
	.quad	1558584511931211
	.quad	2238221839292471
	.quad	190565267697443
	.quad	672855706028058
	.quad	338796554369226
	.quad	337687268493904
	.quad	853246848691734
	.quad	1763863028400139
	.quad	766498079432444
	.quad	1321118624818005
	.quad	69494294452268
	.quad	858786744165651
	.quad	1292056768563024
	.quad	1456632109855638
	.quad	1100631247050184
	.quad	1386133165675321
	.quad	1232898350193752
	.quad	366253102478259
	.quad	525676242508811
	.quad	1449610995265438
	.quad	1183300845322183
	.quad	185960306491545
	.quad	28315355815982
	.quad	460422265558930
	.quad	1799675876678724
	.quad	1969256312504498
	.quad	1051823843138725
	.quad	156914999361983
	.quad	1606148405719949
	.quad	1665208410108430
	.quad	317643278692271
	.quad	1383783705665320
	.quad	54684536365732
	.quad	2210010038536222
	.quad	1194984798155308
	.quad	535239027773705
	.quad	1516355079301361
	.quad	1484387703771650
	.quad	198537510937949
	.quad	2186282186359116
	.quad	617687444857508
	.quad	647477376402122
	.quad	2147715541830533
	.quad	500032538445817
	.quad	646380016884826
	.quad	352227855331122
	.quad	1488268620408052
	.quad	159386186465542
	.quad	1877626593362941
	.quad	618737197060512
	.quad	1026674284330807
	.quad	1158121760792685
	.quad	1744544377739822
	.quad	1964054180355661
	.quad	1685781755873170
	.quad	2169740670377448
	.quad	1286112621104591
	.quad	81977249784993
	.quad	1667943117713086
	.quad	1668983819634866
	.quad	1605016835177615
	.quad	1353960708075544
	.quad	1602253788689063
	.quad	439542044889886
	.quad	2220348297664483
	.quad	657877410752869
	.quad	157451572512238
	.quad	1029287186166717
	.quad	65860128430192
	.quad	525298368814832
	.quad	1491902500801986
	.quad	1461064796385400
	.quad	408216988729246
	.quad	2121095722306989
	.quad	913562102267595
	.quad	1879708920318308
	.quad	241061448436731
	.quad	1185483484383269
	.quad	1356339572588553
	.quad	584932367316448
	.quad	102132779946470
	.quad	1792922621116791
	.quad	1966196870701923
	.quad	2230044620318636
	.quad	1425982460745905
	.quad	261167817826569
	.quad	46517743394330
	.quad	107077591595359
	.quad	884959942172345
	.quad	27306869797400
	.quad	2224911448949390
	.quad	964352058245223
	.quad	1730194207717538
	.quad	431790042319772
	.quad	1831515233279467
	.quad	1372080552768581
	.quad	1074513929381760
	.quad	1450880638731607
	.quad	1019861580989005
	.quad	1229729455116861
	.quad	1174945729836143
	.quad	826083146840706
	.quad	1899935429242705
	.quad	1602068751520477
	.quad	940583196550370
	.quad	82431069053859
	.quad	1540863155745696
	.quad	2136688454840028
	.quad	2099509000964294
	.quad	1690800495246475
	.quad	1217643678575476
	.quad	828720645084218
	.quad	765548025667841
	.quad	462473984016099
	.quad	998061409979798
	.quad	546353034089527
	.quad	2212508972466858
	.quad	46575283771160
	.quad	892570971573071
	.quad	1281983193144090
	.quad	1491520128287375
	.quad	75847005908304
	.quad	1801436127943107
	.quad	1734436817907890
	.quad	1268728090345068
	.quad	167003097070711
	.quad	2233597765834956
	.quad	1997562060465113
	.quad	1048700225534011
	.quad	7615603985628
	.quad	1855310849546841
	.quad	2242557647635213
	.quad	1161017320376250
	.quad	492624580169043
	.quad	2169815802355237
	.quad	976496781732542
	.quad	1770879511019629
	.quad	1357044908364776
	.quad	729130645262438
	.quad	1762469072918979
	.quad	1365633616878458
	.quad	181282906404941
	.quad	1080413443139865
	.quad	1155205815510486
	.quad	1848782073549786
	.quad	622566975152580
	.quad	124965574467971
	.quad	1184526762066993
	.quad	247622751762817
	.quad	692129017206356
	.quad	820018689412496
	.quad	2188697339828085
	.quad	2020536369003019
	.quad	202261491735136
	.quad	1053169669150884
	.quad	2056531979272544
	.quad	778165514694311
	.quad	237404399610207
	.quad	1308324858405118
	.quad	1229680749538400
	.quad	720131409105291
	.quad	1958958863624906
	.quad	515583508038846
	.quad	17656978857189
	.quad	1717918437373989
	.quad	1568052070792483
	.quad	46975803123923
	.quad	281527309158085
	.quad	36970532401524
	.quad	866906920877543
	.quad	2222282602952734
	.quad	1289598729589882
	.quad	1278207464902042
	.quad	494742455008756
	.quad	1262082121427081
	.quad	1577236621659884
	.quad	1888786707293291
	.quad	353042527954210
	.quad	1830056151907359
	.quad	1111731275799225
	.quad	174960955838824
	.quad	404312815582675
	.quad	2064251142068628
	.quad	1666421603389706
	.quad	1419271365315441
	.quad	468767774902855
	.quad	191535130366583
	.quad	1716987058588002
	.quad	1859366439773457
	.quad	1767194234188234
	.quad	64476199777924
	.quad	1117233614485261
	.quad	984292135520292
	.quad	135138246951259
	.quad	2220652137473167
	.quad	1722843421165029
	.quad	190482558012909
	.quad	298845952651262
	.quad	1166086588952562
	.quad	1179896526238434
	.quad	1347812759398693
	.quad	1412945390096208
	.quad	1143239552672925
	.quad	906436640714209
	.quad	2177000572812152
	.quad	2075299936108548
	.quad	325186347798433
	.quad	721024854374772
	.quad	684487861263316
	.quad	1373438744094159
	.quad	2193186935276995
	.quad	1387043709851261
	.quad	418098668140962
	.quad	715065997721283
	.quad	1471916138376055
	.quad	2168570337288357
	.quad	937812682637044
	.quad	1043584187226485
	.quad	2143395746619356
	.quad	2209558562919611
	.quad	482427979307092
	.quad	847556718384018
	.quad	1248731221520759
	.quad	1465200936117687
	.quad	540803492710140
	.quad	52978634680892
	.quad	261434490176109
	.quad	1057329623869501
	.quad	620334067429122
	.quad	461700859268034
	.quad	2012481616501857
	.quad	297268569108938
	.quad	1055352180870759
	.quad	1553151421852298
	.quad	1510903185371259
	.quad	1470458349428097
	.quad	1226259419062731
	.quad	1492988790301668
	.quad	790326625573331
	.quad	1190107028409745
	.quad	1389394752159193
	.quad	1620408196604194
	.quad	47000654413729
	.quad	1004754424173864
	.quad	1868044813557703
	.quad	173236934059409
	.quad	588771199737015
	.quad	30498470091663
	.quad	1082245510489825
	.quad	576771653181956
	.quad	806509986132686
	.quad	1317634017056939
	.quad	420308055751555
	.quad	1493354863316002
	.quad	165206721528088
	.quad	1884845694919786
	.quad	2065456951573059
	.quad	1115636332012334
	.quad	1854340990964155
	.quad	83792697369514
	.quad	1972177451994021
	.quad	457455116057587
	.quad	1698968457310898
	.quad	1435137169051090
	.quad	1083661677032510
	.quad	938363267483709
	.quad	340103887207182
	.quad	1995325341336574
	.quad	911500251774648
	.quad	164010755403692
	.quad	855378419194762
	.quad	1573601397528842
	.quad	241719380661528
	.quad	310028521317150
	.quad	1215881323380194
	.quad	1408214976493624
	.quad	2141142156467363
	.quad	1315157046163473
	.quad	727368447885818
	.quad	1363466668108618
	.quad	1668921439990361
	.quad	1398483384337907
	.quad	75029678299646
	.quad	1015388206460473
	.quad	1849729037055212
	.quad	1939814616452984
	.quad	444404230394954
	.quad	2053597130993710
	.quad	2024431685856332
	.quad	2233550957004860
	.quad	2012407275509545
	.quad	872546993104440
	.quad	1217269667678610
	.quad	599909351968693
	.quad	1390077048548598
	.quad	1471879360694802
	.quad	739586172317596
	.quad	1718318639380794
	.quad	1560510726633958
	.quad	904462881159922
	.quad	1418028351780052
	.quad	94404349451937
	.quad	2132502667405250
	.quad	214379346175414
	.quad	1502748313768060
	.quad	1960071701057800
	.quad	1353971822643138
	.quad	319394212043702
	.quad	2127459436033571
	.quad	717646691535162
	.quad	663366796076914
	.quad	318459064945314
	.quad	405989424923593
	.quad	1960452633787083
	.quad	667349034401665
	.quad	1492674260767112
	.quad	1451061489880787
	.quad	947085906234007
	.quad	323284730494107
	.quad	1485778563977200
	.quad	728576821512394
	.quad	901584347702286
	.quad	1575783124125742
	.quad	2126210792434375
	.quad	1569430791264065
	.quad	1402582372904727
	.quad	1891780248341114
	.quad	838432205560695
	.quad	1997703511451664
	.quad	1018791879907867
	.quad	1662001808174331
	.quad	78328132957753
	.quad	739152638255629
	.quad	2074935399403557
	.quad	505483666745895
	.quad	1611883356514088
	.quad	628654635394878
	.quad	1822054032121349
	.quad	643057948186973
	.quad	7306757352712
	.quad	577249257962099
	.quad	284735863382083
	.quad	1366558556363930
	.quad	1448606567552086
	.quad	1478881020944768
	.quad	165803179355898
	.quad	1115718458123498
	.quad	204146226972102
	.quad	1630511199034723
	.quad	2215235214174763
	.quad	174665910283542
	.quad	956127674017216
	.quad	1562934578796716
	.quad	1070893489712745
	.quad	11324610642270
	.quad	958989751581897
	.quad	2172552325473805
	.quad	1770564423056027
	.quad	735523631664565
	.quad	1326060113795289
	.quad	1509650369341127
	.quad	65892421582684
	.quad	623682558650637
	.quad	1337866509471512
	.quad	990313350206649
	.quad	1314236615762469
	.quad	1164772974270275
	.quad	223256821462517
	.quad	723690150104139
	.quad	1000261663630601
	.quad	933280913953265
	.quad	254872671543046
	.quad	1969087237026041
	.quad	624795725447124
	.quad	1335555107635969
	.quad	2069986355593023
	.quad	1712100149341902
	.quad	1236103475266979
	.quad	1837885883267218
	.quad	1026072585230455
	.quad	1025865513954973
	.quad	1801964901432134
	.quad	1115241013365517
	.quad	1712251818829143
	.quad	2148864332502771
	.quad	2096001471438138
	.quad	2235017246626125
	.quad	1299268198601632
	.quad	2047148477845621
	.quad	2165648650132450
	.quad	1612539282026145
	.quad	514197911628890
	.quad	118352772338543
	.quad	1067608711804704
	.quad	1434796676193498
	.quad	1683240170548391
	.quad	230866769907437
	.quad	1850689576796636
	.quad	1601590730430274
	.quad	1139674615958142
	.quad	1954384401440257
	.quad	76039205311
	.quad	1723387471374172
	.quad	997301467038410
	.quad	533927635123657
	.quad	20928644693965
	.quad	1756575222802513
	.quad	2146711623855116
	.quad	503278928021499
	.quad	625853062251406
	.quad	1109121378393107
	.quad	1033853809911861
	.quad	571005965509422
	.quad	2005213373292546
	.quad	1016697270349626
	.quad	56607856974274
	.quad	914438579435146
	.quad	1346698876211176
	.quad	2076651707527589
	.quad	1084761571110205
	.quad	265334478828406
	.quad	1068954492309671
	.quad	1769967932677654
	.quad	1695893319756416
	.quad	1151863389675920
	.quad	1781042784397689
	.quad	400287774418285
	.quad	1851867764003121
	.quad	403841933237558
	.quad	820549523771987
	.quad	761292590207581
	.quad	1743735048551143
	.quad	410915148140008
	.quad	2107072311871739
	.quad	1004367461876503
	.quad	99684895396761
	.quad	1180818713503224
	.quad	285945406881439
	.quad	648174397347453
	.quad	1098403762631981
	.quad	1366547441102991
	.quad	1505876883139217
	.quad	672095903120153
	.quad	1675918957959872
	.quad	636236529315028
	.quad	1569297300327696
	.quad	2164144194785875
	.quad	1902708175321798
	.quad	1035343530915438
	.quad	1178560808893263
	.quad	301095684058146
	.quad	1280977479761118
	.quad	1615357281742403
	.quad	404257611616381
	.quad	2160201349780978
	.quad	1160947379188955
	.quad	1578038619549541
	.quad	2013087639791217
	.quad	822734930507457
	.quad	1785668418619014
	.quad	1668650702946164
	.quad	389450875221715
	.quad	453918449698368
	.quad	106406819929001
	.quad	2072540975937135
	.quad	308588860670238
	.quad	1304394580755385
	.quad	1295082798350326
	.quad	2091844511495996
	.quad	1851348972587817
	.quad	3375039684596
	.quad	789440738712837
	.quad	2083069137186154
	.quad	848523102004566
	.quad	993982213589257
	.quad	1405313299916317
	.quad	1532824818698468
	.quad	1495961298852430
	.quad	1397203457344779
	.quad	1774950217066942
	.quad	139302743555696
	.quad	66603584342787
	.quad	1782411379088302
	.quad	1096724939964781
	.quad	27593390721418
	.quad	542241850291353
	.quad	1540337798439873
	.quad	693543956581437
	.quad	171507720360750
	.quad	1557908942697227
	.quad	1074697073443438
	.quad	1104093109037196
	.quad	345288228393419
	.quad	1099643569747172
	.quad	134881908403743
	.quad	1740551994106740
	.quad	248212179299770
	.quad	231429562203065
	.quad	1526290236421172
	.quad	2021375064026423
	.quad	1520954495658041
	.quad	806337791525116
	.quad	1079623667189886
	.quad	872403650198613
	.quad	766894200588288
	.quad	2163700860774109
	.quad	2023464507911816
	.quad	854645372543796
	.quad	1936406001954827
	.quad	151460662541253
	.quad	825325739271555
	.quad	1554306377287556
	.quad	1497138821904622
	.quad	1044820250515590
	.quad	1742593886423484
	.quad	1237204112746837
	.quad	849047450816987
	.quad	667962773375330
	.quad	1897271816877105
	.quad	1399712621683474
	.quad	1143302161683099
	.quad	2081798441209593
	.quad	127147851567005
	.quad	1936114012888110
	.quad	1704424366552046
	.quad	856674880716312
	.quad	716603621335359
	.quad	1072409664800960
	.quad	2146937497077528
	.quad	1508780108920651
	.quad	935767602384853
	.quad	1112800433544068
	.quad	333549023751292
	.quad	280219272863308
	.quad	2104176666454852
	.quad	1036466864875785
	.quad	536135186520207
	.quad	373666279883137
	.quad	146457241530109
	.quad	304116267127857
	.quad	416088749147715
	.quad	1258577131183391
	.quad	1186115062588401
	.quad	2251609796968486
	.quad	1098944457878953
	.quad	1153112761201374
	.quad	1791625503417267
	.quad	1870078460219737
	.quad	2129630962183380
	.quad	852283639691142
	.quad	292865602592851
	.quad	401904317342226
	.quad	1361070124828035
	.quad	815664541425524
	.quad	1026798897364671
	.quad	1951790935390647
	.quad	555874891834790
	.quad	1546301003424277
	.quad	459094500062839
	.quad	1097668518375311
	.quad	1780297770129643
	.quad	720763293687608
	.quad	1212405311403990
	.quad	1536693382542438
	.quad	61028431067459
	.quad	1863929423417129
	.quad	1223219538638038
	.quad	1294303766540260
	.quad	1183557465955093
	.quad	882271357233093
	.quad	63854569425375
	.quad	2213283684565087
	.quad	339050984211414
	.quad	601386726509773
	.quad	413735232134068
	.quad	966191255137228
	.quad	1839475899458159
	.quad	235605972169408
	.quad	2174055643032978
	.quad	1538335001838863
	.quad	1281866796917192
	.quad	1815940222628465
	.quad	1632352921721536
	.quad	1833328609514701
	.quad	2092779091951987
	.quad	1923956201873226
	.quad	2210068022482919
	.quad	35271216625062
	.quad	1712350667021807
	.quad	983664255668860
	.quad	98571260373038
	.quad	1232645608559836
	.quad	1998172393429622
	.quad	1798947921427073
	.quad	784387737563581
	.quad	1589352214827263
	.quad	1589861734168180
	.quad	1733739258725305
	.quad	31715717059538
	.quad	201969945218860
	.quad	992093044556990
	.quad	1194308773174556
	.quad	846415389605137
	.quad	746163495539180
	.quad	829658752826080
	.quad	592067705956946
	.quad	957242537821393
	.quad	1758148849754419
	.quad	619249044817679
	.quad	168089007997045
	.quad	1371497636330523
	.quad	1867101418880350
	.quad	326633984209635
	.quad	261759506071016
	.quad	1700682323676193
	.quad	1577907266349064
	.quad	1217647663383016
	.quad	1714182387328607
	.quad	1477856482074168
	.quad	574895689942184
	.quad	2159118410227270
	.quad	1555532449716575
	.quad	853828206885131
	.quad	998498946036955
	.quad	1835887550391235
	.quad	207627336608048
	.quad	258363815956050
	.quad	141141474651677
	.quad	1236728744905256
	.quad	643101419899887
	.quad	1646615130509173
	.quad	1208239602291765
	.quad	1501663228068911
	.quad	1354879465566912
	.quad	1444432675498247
	.quad	897812463852601
	.quad	855062598754348
	.quad	714380763546606
	.quad	1032824444965790
	.quad	1774073483745338
	.quad	1063840874947367
	.quad	1738680636537158
	.quad	1640635546696252
	.quad	633168953192112
	.quad	2212651044092396
	.quad	30590958583852
	.quad	368515260889378
	.quad	1171650314802029
	.quad	1567085444565577
	.quad	1453660792008405
	.quad	757914533009261
	.quad	1619511342778196
	.quad	420958967093237
	.quad	971103481109486
	.quad	2169549185607107
	.quad	1301191633558497
	.quad	1661514101014240
	.quad	907123651818302
	.quad	1332556122804146
	.quad	1824055253424487
	.quad	1367614217442959
	.quad	1982558335973172
	.quad	1121533090144639
	.quad	1021251337022187
	.quad	110469995947421
	.quad	1511059774758394
	.quad	2110035908131662
	.quad	303213233384524
	.quad	2061932261128138
	.quad	352862124777736
	.quad	40828818670255
	.quad	249879468482660
	.quad	856559257852200
	.quad	508517664949010
	.quad	1378193767894916
	.quad	1723459126947129
	.quad	1962275756614521
	.quad	1445691340537320
	.quad	40614383122127
	.quad	402104303144865
	.quad	485134269878232
	.quad	1659439323587426
	.quad	20057458979482
	.quad	1183363722525800
	.quad	2140003847237215
	.quad	2053873950687614
	.quad	2112017736174909
	.quad	2228654250927986
	.quad	1483591363415267
	.quad	1368661293910956
	.quad	1076511285177291
	.quad	526650682059608
	.quad	709481497028540
	.quad	531682216165724
	.quad	316963769431931
	.quad	1814315888453765
	.quad	258560242424104
	.quad	1053447823660455
	.quad	1955135194248683
	.quad	1010900954918985
	.quad	1182614026976701
	.quad	1240051576966610
	.quad	1957943897155497
	.quad	1788667368028035
	.quad	137692910029106
	.quad	1039519607062
	.quad	826404763313028
	.quad	1848942433095597
	.quad	1582009882530495
	.quad	1849292741020143
	.quad	1068498323302788
	.quad	2001402229799484
	.quad	1528282417624269
	.quad	2142492439828191
	.quad	2179662545816034
	.quad	362568973150328
	.quad	1591374675250271
	.quad	160026679434388
	.quad	232341189218716
	.quad	2149181472355545
	.quad	598041771119831
	.quad	183859001910173
	.quad	2013278155187349
	.quad	662660471354454
	.quad	793981225706267
	.quad	411706605985744
	.quad	804490933124791
	.quad	2051892037280204
	.quad	488391251096321
	.quad	2230187337030708
	.quad	930221970662692
	.quad	679002758255210
	.quad	1530723630438670
	.quad	875873929577927
	.quad	341560134269988
	.quad	449903119530753
	.quad	1055551308214179
	.quad	1461835919309432
	.quad	1955256480136428
	.quad	180866187813063
	.quad	1551979252664528
	.quad	557743861963950
	.quad	359179641731115
	.quad	1324915145732949
	.quad	902828372691474
	.quad	294254275669987
	.quad	1887036027752957
	.quad	2043271609454323
	.quad	2038225437857464
	.quad	1317528426475850
	.quad	1398989128982787
	.quad	2027639881006861
	.quad	2072902725256516
	.quad	312132452743412
	.quad	309930885642209
	.quad	996244312618453
	.quad	1590501300352303
	.quad	1397254305160710
	.quad	695734355138021
	.quad	2233992044438756
	.quad	1776180593969996
	.quad	1085588199351115
	.quad	440567051331029
	.quad	254894786356681
	.quad	493869224930222
	.quad	1556322069683366
	.quad	1567456540319218
	.quad	1950722461391320
	.quad	1907845598854797
	.quad	1822757481635527
	.quad	2121567704750244
	.quad	73811931471221
	.quad	387139307395758
	.quad	2058036430315676
	.quad	1220915649965325
	.quad	1794832055328951
	.quad	1230009312169328
	.quad	1765973779329517
	.quad	659344059446977
	.quad	19821901606666
	.quad	1301928341311214
	.quad	1116266004075885
	.quad	1127572801181483
	.quad	1224743760571696
	.quad	1276219889847274
	.quad	1529738721702581
	.quad	1589819666871853
	.quad	2181229378964934
	.quad	2190885205260020
	.quad	1511536077659137
	.quad	1246504208580490
	.quad	668883326494241
	.quad	437866655573314
	.quad	669026411194768
	.quad	81896997980338
	.quad	523874406393178
	.quad	245052060935236
	.quad	1975438052228868
	.quad	1071801519999806
	.quad	594652299224319
	.quad	1877697652668809
	.quad	1489635366987285
	.quad	958592545673770
	.quad	233048016518599
	.quad	851568750216589
	.quad	567703851596087
	.quad	1740300006094761
	.quad	2014540178270324
	.quad	192672779514432
	.quad	213877182641530
	.quad	2194819933853411
	.quad	1716422829364835
	.quad	1540769606609725
	.quad	2148289943846077
	.quad	1597804156127445
	.quad	1230603716683868
	.quad	815423458809453
	.quad	1738560251245018
	.quad	1779576754536888
	.quad	1783765347671392
	.quad	1880170990446751
	.quad	1088225159617541
	.quad	659303913929492
	.quad	1956447718227573
	.quad	1830568515922666
	.quad	841069049744408
	.quad	1669607124206368
	.quad	1143465490433355
	.quad	1532194726196059
	.quad	1093276745494697
	.quad	481041706116088
	.quad	2121405433561163
	.quad	1686424298744462
	.quad	1451806974487153
	.quad	266296068846582
	.quad	1834686947542675
	.quad	1720762336132256
	.quad	889217026388959
	.quad	1043290623284660
	.quad	856125087551909
	.quad	1669272323124636
	.quad	1603340330827879
	.quad	1206396181488998
	.quad	333158148435054
	.quad	1402633492821422
	.quad	1120091191722026
	.quad	1945474114550509
	.quad	766720088232571
	.quad	1512222781191002
	.quad	1189719893490790
	.quad	2091302129467914
	.quad	2141418006894941
	.quad	419663647306612
	.quad	1998875112167987
	.quad	1426599870253707
	.quad	1154928355379510
	.quad	486538532138187
	.quad	938160078005954
	.quad	1421776319053174
	.quad	1941643234741774
	.quad	180002183320818
	.quad	1414380336750546
	.quad	398001940109652
	.quad	1577721237663248
	.quad	1012748649830402
	.quad	1540516006905144
	.quad	1011684812884559
	.quad	1653276489969630
	.quad	6081825167624
	.quad	1921777941170836
	.quad	1604139841794531
	.quad	861211053640641
	.quad	996661541407379
	.quad	1455877387952927
	.quad	744312806857277
	.quad	139213896196746
	.quad	1000282908547789
	.quad	1450817495603008
	.quad	1476865707053229
	.quad	1030490562252053
	.quad	620966950353376
	.quad	1744760161539058
	.quad	559728410002599
	.quad	37056661641185
	.quad	2038622963352006
	.quad	1637244893271723
	.quad	1026565352238948
	.quad	962165956135846
	.quad	1116599660248791
	.quad	182090178006815
	.quad	1455605467021751
	.quad	196053588803284
	.quad	796863823080135
	.quad	1897365583584155
	.quad	420466939481601
	.quad	2165972651724672
	.quad	932177357788289
	.quad	877047233620632
	.quad	1375632631944375
	.quad	643773611882121
	.quad	660022738847877
	.quad	19353932331831
	.quad	2216943882299338
	.quad	394841323190322
	.quad	2222656898319671
	.quad	558186553950529
	.quad	1077236877025190
	.quad	801118384953213
	.quad	1914330175515892
	.quad	574541023311511
	.quad	1471123787903705
	.quad	1526158900256288
	.quad	949617889087234
	.quad	2207116611267331
	.quad	912920039141287
	.quad	501158539198789
	.quad	62362560771472
	.quad	1474518386765335
	.quad	1760793622169197
	.quad	1157399790472736
	.quad	1622864308058898
	.quad	165428294422792
	.quad	1961673048027128
	.quad	102619413083113
	.quad	1051982726768458
	.quad	1603657989805485
	.quad	1941613251499678
	.quad	1401939116319266
	.quad	335306339903072
	.quad	72046196085786
	.quad	862423201496006
	.quad	850518754531384
	.quad	1234706593321979
	.quad	1083343891215917
	.quad	898273974314935
	.quad	1640859118399498
	.quad	157578398571149
	.quad	1143483057726416
	.quad	1992614991758919
	.quad	674268662140796
	.quad	1773370048077526
	.quad	674318359920189
	.quad	1835401379538542
	.quad	173900035308392
	.quad	818247630716732
	.quad	1762100412152786
	.quad	1021506399448291
	.quad	1506632088156630
	.quad	2127481795522179
	.quad	513812919490255
	.quad	140643715928370
	.quad	442476620300318
	.quad	2056683376856736
	.quad	219094741662735
	.quad	2193541883188309
	.quad	1841182310235800
	.quad	556477468664293
	.quad	1315019427910827
	.quad	1049075855992603
	.quad	2066573052986543
	.quad	266904467185534
	.quad	2040482348591520
	.quad	94096246544434
	.quad	922482381166992
	.quad	24517828745563
	.quad	2139430508542503
	.quad	2097139044231004
	.quad	537697207950515
	.quad	1399352016347350
	.quad	1563663552106345
	.quad	2148749520888918
	.quad	549922092988516
	.quad	1747985413252434
	.quad	680511052635695
	.quad	1809559829982725
	.quad	594274250930054
	.quad	201673170745982
	.quad	323583936109569
	.quad	1973572998577657
	.quad	1192219029966558
	.quad	79354804385273
	.quad	1374043025560347
	.quad	213277331329947
	.quad	416202017849623
	.quad	1950535221091783
	.quad	1313441578103244
	.quad	2171386783823658
	.quad	189088804229831
	.quad	993969372859110
	.quad	895870121536987
	.quad	1547301535298256
	.quad	1477373024911350
	.quad	1620578418245010
	.quad	541035331188469
	.quad	2235785724453865
	.quad	2154865809088198
	.quad	1974627268751826
	.quad	1346805451740245
	.quad	1350981335690626
	.quad	942744349501813
	.quad	2155094562545502
	.quad	1012483751693409
	.quad	2107080134091762
	.quad	1132567062788208
	.quad	1824935377687210
	.quad	769194804343737
	.quad	1857941799971888
	.quad	1074666112436467
	.quad	249279386739593
	.quad	1174337926625354
	.quad	1559013532006480
	.quad	1472287775519121
	.quad	1872620123779532
	.quad	1892932666768992
	.quad	1921559078394978
	.quad	1270573311796160
	.quad	1438913646755037
	.quad	837390187648199
	.quad	1012253300223599
	.quad	989780015893987
	.quad	1351393287739814
	.quad	328627746545550
	.quad	1028328827183114
	.quad	1711043289969857
	.quad	1350832470374933
	.quad	1923164689604327
	.quad	1495656368846911
	.quad	1900828492104143
	.quad	430212361082163
	.quad	687437570852799
	.quad	832514536673512
	.quad	1685641495940794
	.quad	842632847936398
	.quad	605670026766216
	.quad	290836444839585
	.quad	163210774892356
	.quad	2213815011799645
	.quad	1176336383453996
	.quad	1725477294339771
	.quad	12700622672454
	.quad	678015708818208
	.quad	162724078519879
	.quad	1448049969043497
	.quad	1789411762943521
	.quad	385587766217753
	.quad	90201620913498
	.quad	832999441066823
	.quad	516086333293313
	.quad	2240508292484616
	.quad	1351669528166508
	.quad	1223255565316488
	.quad	750235824427138
	.quad	1263624896582495
	.quad	1102602401673328
	.quad	526302183714372
	.quad	2152015839128799
	.quad	1483839308490010
	.quad	442991718646863
	.quad	1599275157036458
	.quad	1925389027579192
	.quad	899514691371390
	.quad	350263251085160
	.quad	1689713572022143
	.quad	593854559254373
	.quad	978095044791970
	.quad	1985127338729499
	.quad	1676069120347625
	.quad	1557207018622683
	.quad	340631692799603
	.quad	1477725909476187
	.quad	614735951619419
	.quad	2033237123746766
	.quad	968764929340557
	.quad	1225534776710944
	.quad	662967304013036
	.quad	1155521416178595
	.quad	791142883466590
	.quad	1487081286167458
	.quad	993039441814934
	.quad	1792378982844640
	.quad	698652444999874
	.quad	2153908693179754
	.quad	1123181311102823
	.quad	685575944875442
	.quad	507605465509927
	.quad	1412590462117473
	.quad	568017325228626
	.quad	560258797465417
	.quad	2193971151466401
	.quad	1824086900849026
	.quad	579056363542056
	.quad	1690063960036441
	.quad	1918407319222416
	.quad	353767553059963
	.quad	1930426334528099
	.quad	1564816146005724
	.quad	1861342381708096
	.quad	2131325168777276
	.quad	1176636658428908
	.quad	1756922641512981
	.quad	1390243617176012
	.quad	1966325177038383
	.quad	2063958120364491
	.quad	2140267332393533
	.quad	699896251574968
	.quad	273268351312140
	.quad	375580724713232
	.quad	2024297515263178
	.quad	416959329722687
	.quad	1079014235017302
	.quad	171612225573183
	.quad	1031677520051053
	.quad	2033900009388450
	.quad	1744902869870788
	.quad	2190580087917640
	.quad	1949474984254121
	.quad	231049754293748
	.quad	343868674606581
	.quad	550155864008088
	.quad	1450580864229630
	.quad	481603765195050
	.quad	896972360018042
	.quad	2151139328380127
	.quad	314745882084928
	.quad	59756825775204
	.quad	1676664391494651
	.quad	2048348075599360
	.quad	1528930066340597
	.quad	1605003907059576
	.quad	1055061081337675
	.quad	1458319101947665
	.quad	1234195845213142
	.quad	830430507734812
	.quad	1780282976102377
	.quad	1425386760709037
	.quad	362399353095425
	.quad	2168861579799910
	.quad	1155762232730333
	.quad	980662895504006
	.quad	2053766700883521
	.quad	490966214077606
	.quad	510405877041357
	.quad	1683750316716132
	.quad	652278688286128
	.quad	1221798761193539
	.quad	1897360681476669
	.quad	319658166027343
	.quad	618808732869972
	.quad	72755186759744
	.quad	2060379135624181
	.quad	1730731526741822
	.quad	48862757828238
	.quad	1463171970593505
	.quad	1143040711767452
	.quad	614590986558883
	.quad	1409210575145591
	.quad	1882816996436803
	.quad	2230133264691131
	.quad	563950955091024
	.quad	2042915975426398
	.quad	827314356293472
	.quad	672028980152815
	.quad	264204366029760
	.quad	1654686424479449
	.quad	2185050199932931
	.quad	2207056159091748
	.quad	506015669043634
	.quad	1784446333136569
	.quad	1973746527984364
	.quad	334856327359575
	.quad	1156769775884610
	.quad	1023950124675478
	.quad	2065270940578383
	.quad	31477096270353
	.quad	306421879113491
	.quad	181958643936686
	.quad	1907105536686083
	.quad	1496516440779464
	.quad	1748485652986458
	.quad	872778352227340
	.quad	818358834654919
	.quad	97932669284220
	.quad	471636015770351
	.quad	672455402793577
	.quad	1804995246884103
	.quad	1842309243470804
	.quad	1501862504981682
	.quad	1013216974933691
	.quad	538921919682598
	.quad	1915776722521558
	.quad	1742822441583877
	.quad	1886550687916656
	.quad	2094270000643336
	.quad	303971879192276
	.quad	40801275554748
	.quad	649448917027930
	.quad	1818544418535447
	.quad	2241737709499165
	.quad	549397817447461
	.quad	838180519319392
	.quad	1725686958520781
	.quad	1705639080897747
	.quad	1216074541925116
	.quad	50120933933509
	.quad	1565829004133810
	.quad	721728156134580
	.quad	349206064666188
	.quad	948617110470858
	.quad	346222547451945
	.quad	1126511960599975
	.quad	1759386906004538
	.quad	493053284802266
	.quad	1454933046815146
	.quad	874696014266362
	.quad	1467170975468588
	.quad	1432316382418897
	.quad	2111710746366763
	.quad	2105387117364450
	.quad	1996463405126433
	.quad	1303008614294500
	.quad	851908115948209
	.quad	1353742049788635
	.quad	750300956351719
	.quad	1487736556065813
	.quad	15158817002104
	.quad	1511998221598392
	.quad	971739901354129
	.quad	1874648163531693
	.quad	2124487685930551
	.quad	1810030029384882
	.quad	918400043048335
	.quad	586348627300650
	.quad	1235084464747900
	.quad	1166111146432082
	.quad	1745394857881591
	.quad	1405516473883040
	.quad	4463504151617
	.quad	1663810156463827
	.quad	327797390285791
	.quad	1341846161759410
	.quad	1964121122800605
	.quad	1747470312055380
	.quad	660005247548233
	.quad	2071860029952887
	.quad	1358748199950107
	.quad	911703252219107
	.quad	1014379923023831
	.quad	2206641276178231
	.quad	1690587809721504
	.quad	1600173622825126
	.quad	2156096097634421
	.quad	1106822408548216
	.quad	1344788193552206
	.quad	1949552134239140
	.quad	1735915881729557
	.quad	675891104100469
	.quad	1834220014427292
	.quad	1920949492387964
	.quad	158885288387530
	.quad	70308263664033
	.quad	626038464897817
	.quad	1468081726101009
	.quad	622221042073383
	.quad	1210146474039168
	.quad	1742246422343683
	.quad	1403839361379025
	.quad	417189490895736
	.quad	22727256592983
	.quad	168471543384997
	.quad	1324340989803650
	.quad	1839310709638189
	.quad	504999476432775
	.quad	1313240518756327
	.quad	1721896294296942
	.quad	52263574587266
	.quad	2065069734239232
	.quad	804910473424630
	.quad	1337466662091884
	.quad	1287645354669772
	.quad	2018019646776184
	.quad	652181229374245
	.quad	898011753211715
	.quad	1969792547910734
	.quad	779969968247557
	.quad	2011350094423418
	.quad	1823964252907487
	.quad	1058949448296945
	.quad	207343737062002
	.quad	1118176942430253
	.quad	758894594548164
	.quad	806764629546266
	.quad	1157700123092949
	.quad	1273565321399022
	.quad	1638509681964574
	.quad	759235866488935
	.quad	666015124346707
	.quad	897983460943405
	.quad	1717263794012298
	.quad	1059601762860786
	.quad	1837819172257618
	.quad	1054130665797229
	.quad	680893204263559
	.quad	2237039662793603
	.quad	2249022333361206
	.quad	2058613546633703
	.quad	149454094845279
	.quad	2215176649164582
	.quad	79472182719605
	.quad	1851130257050174
	.quad	1825744808933107
	.quad	821667333481068
	.quad	781795293511946
	.quad	755822026485370
	.quad	152464789723500
	.quad	1178207602290608
	.quad	410307889503239
	.quad	156581253571278
	.quad	1418185496130297
	.quad	484520167728613
	.quad	1646737281442950
	.quad	1401487684670265
	.quad	1349185550126961
	.quad	1495380034400429
	.quad	325049476417173
	.quad	46346894893933
	.quad	1553408840354856
	.quad	828980101835683
	.quad	1280337889310282
	.quad	2070832742866672
	.quad	1640940617225222
	.quad	2098284908289951
	.quad	450929509534434
	.quad	407703353998781
	.quad	126572141483652
	.quad	286039827513621
	.quad	1999255076709338
	.quad	2030511179441770
	.quad	1254958221100483
	.quad	1153235960999843
	.quad	942907704968834
	.quad	637105404087392
	.quad	1149293270147267
	.quad	894249020470196
	.quad	400291701616810
	.quad	406878712230981
	.quad	1599128793487393
	.quad	1145868722604026
	.quad	1497955250203334
	.quad	110116344653260
	.quad	1128535642171976
	.quad	1900106496009660
	.quad	129792717460909
	.quad	452487513298665
	.quad	1352120549024569
	.quad	1173495883910956
	.quad	1999111705922009
	.quad	367328130454226
	.quad	1717539401269642
	.quad	1475188995688487
	.quad	891921989653942
	.quad	836824441505699
	.quad	1885988485608364
	.quad	1241784121422547
	.quad	187337051947583
	.quad	1118481812236193
	.quad	428747751936362
	.quad	30358898927325
	.quad	2022432361201842
	.quad	1088816090685051
	.quad	1977843398539868
	.quad	1854834215890724
	.quad	564238862029357
	.quad	938868489100585
	.quad	1100285072929025
	.quad	1017806255688848
	.quad	1957262154788833
	.quad	152787950560442
	.quad	867319417678923
	.quad	620471962942542
	.quad	226032203305716
	.quad	342001443957629
	.quad	1761675818237336
	.quad	1295072362439987
	.quad	931227904689414
	.quad	1355731432641687
	.quad	922235735834035
	.quad	892227229410209
	.quad	1680989767906154
	.quad	535362787031440
	.quad	2136691276706570
	.quad	1942228485381244
	.quad	1267350086882274
	.quad	366018233770527
	.quad	432660629755596
	.quad	126409707644535
	.quad	1973842949591662
	.quad	645627343442376
	.quad	535509430575217
	.quad	546885533737322
	.quad	1524675609547799
	.quad	2138095752851703
	.quad	1260738089896827
	.quad	1159906385590467
	.quad	2198530004321610
	.quad	714559485023225
	.quad	81880727882151
	.quad	1484020820037082
	.quad	1377485731340769
	.quad	2046328105512000
	.quad	1802058637158797
	.quad	62146136768173
	.quad	1356993908853901
	.quad	2013612215646735
	.quad	1830770575920375
	.quad	536135310219832
	.quad	609272325580394
	.quad	270684344495013
	.quad	1237542585982777
	.quad	2228682050256790
	.quad	1385281931622824
	.quad	593183794882890
	.quad	493654978552689
	.quad	47341488007760
	.quad	1891414891220257
	.quad	983894663308928
	.quad	176161768286818
	.quad	1126261115179708
	.quad	1694030170963455
	.quad	502038567066200
	.quad	1691160065225467
	.quad	949628319562187
	.quad	275110186693066
	.quad	1124515748676336
	.quad	1661673816593408
	.quad	1499640319059718
	.quad	1584929449166988
	.quad	558148594103306
	.quad	1784525599998356
	.quad	1619698033617383
	.quad	2097300287550715
	.quad	258265458103756
	.quad	1905684794832758
	.quad	1288941072872766
	.quad	931787902039402
	.quad	190731008859042
	.quad	2006859954667190
	.quad	1005931482221702
	.quad	1465551264822703
	.quad	152905080555927
	.quad	680334307368453
	.quad	173227184634745
	.quad	666407097159852
	.quad	2111017076203943
	.quad	1378760485794347
	.quad	1248583954016456
	.quad	1352289194864422
	.quad	1895180776543896
	.quad	171348223915638
	.quad	662766099800389
	.quad	462338943760497
	.quad	466917763340314
	.quad	656911292869115
	.quad	488623681976577
	.quad	866497561541722
	.quad	1708105560937768
	.quad	1673781214218839
	.quad	1506146329818807
	.quad	160425464456957
	.quad	950394373239689
	.quad	430497123340934
	.quad	711676555398832
	.quad	320964687779005
	.quad	988979367990485
	.quad	1359729327576302
	.quad	1301834257246029
	.quad	294141160829308
	.quad	29348272277475
	.quad	1434382743317910
	.quad	100082049942065
	.quad	221102347892623
	.quad	186982837860588
	.quad	1305765053501834
	.quad	2205916462268190
	.quad	499863829790820
	.quad	961960554686616
	.quad	158062762756985
	.quad	1841471168298305
	.quad	1191737341426592
	.quad	1847042034978363
	.quad	1382213545049056
	.quad	1039952395710448
	.quad	788812858896859
	.quad	1346965964571152
	.quad	1291881610839830
	.quad	2142916164336056
	.quad	786821641205979
	.quad	1571709146321039
	.quad	787164375951248
	.quad	202869205373189
	.quad	1356590421032140
	.quad	1431233331032510
	.quad	786341368775957
	.quad	492448143532951
	.quad	304105152670757
	.quad	1761767168301056
	.quad	233782684697790
	.quad	1981295323106089
	.quad	665807507761866
	.quad	1343384868355425
	.quad	895831046139653
	.quad	439338948736892
	.quad	1986828765695105
	.quad	756096210874553
	.quad	1721699973539149
	.quad	258765301727885
	.quad	1390588532210645
	.quad	1212530909934781
	.quad	852891097972275
	.quad	1816988871354562
	.quad	1543772755726524
	.quad	1174710635522444
	.quad	202129090724628
	.quad	1205281565824323
	.quad	22430498399418
	.quad	992947814485516
	.quad	1392458699738672
	.quad	688441466734558
	.quad	1050627428414972
	.quad	1955849529137135
	.quad	2171162376368357
	.quad	91745868298214
	.quad	447733118757826
	.quad	1287181461435438
	.quad	622722465530711
	.quad	880952150571872
	.quad	741035693459198
	.quad	311565274989772
	.quad	1003649078149734
	.quad	545233927396469
	.quad	1849786171789880
	.quad	1318943684880434
	.quad	280345687170552
# WAS .section	.rodata.k25519sqrtm1,"a"
.text
	.align 32
	.type	k25519sqrtm1, @object
	.size	k25519sqrtm1, 40
.Lk25519sqrtm1_local_target:
k25519sqrtm1:
	.quad	1718705420411056
	.quad	234908883556509
	.quad	2233514472574048
	.quad	2117202627021982
	.quad	765476049583133
# WAS .section	.rodata.k25519d,"a"
.text
	.align 32
	.type	k25519d, @object
	.size	k25519d, 40
.Lk25519d_local_target:
k25519d:
	.quad	929955233495203
	.quad	466365720129213
	.quad	1662059464998953
	.quad	2033849074728123
	.quad	1442794654840575
# WAS .section	.rodata.kZeroIV,"a"
.text
	.align 16
	.type	kZeroIV, @object
	.size	kZeroIV, 16
.LkZeroIV_local_target:
kZeroIV:
	.zero	16
	.section	.bss.EVP_aes_256_ccm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_ccm_once, @object
	.size	EVP_aes_256_ccm_once, 4
EVP_aes_256_ccm_once:
.LEVP_aes_256_ccm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_ccm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_ccm_storage, @object
	.size	EVP_aes_256_ccm_storage, 64
EVP_aes_256_ccm_storage:
.LEVP_aes_256_ccm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_192_ccm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_192_ccm_once, @object
	.size	EVP_aes_192_ccm_once, 4
EVP_aes_192_ccm_once:
.LEVP_aes_192_ccm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_192_ccm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_192_ccm_storage, @object
	.size	EVP_aes_192_ccm_storage, 64
EVP_aes_192_ccm_storage:
.LEVP_aes_192_ccm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_128_ccm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_128_ccm_once, @object
	.size	EVP_aes_128_ccm_once, 4
EVP_aes_128_ccm_once:
.LEVP_aes_128_ccm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_128_ccm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_128_ccm_storage, @object
	.size	EVP_aes_128_ccm_storage, 64
EVP_aes_128_ccm_storage:
.LEVP_aes_128_ccm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aead_aes_128_ccm_matter_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_ccm_matter_once, @object
	.size	EVP_aead_aes_128_ccm_matter_once, 4
EVP_aead_aes_128_ccm_matter_once:
.LEVP_aead_aes_128_ccm_matter_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_ccm_matter_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_ccm_matter_storage, @object
	.size	EVP_aead_aes_128_ccm_matter_storage, 96
EVP_aead_aes_128_ccm_matter_storage:
.LEVP_aead_aes_128_ccm_matter_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_ccm_bluetooth_8_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_ccm_bluetooth_8_once, @object
	.size	EVP_aead_aes_128_ccm_bluetooth_8_once, 4
EVP_aead_aes_128_ccm_bluetooth_8_once:
.LEVP_aead_aes_128_ccm_bluetooth_8_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_ccm_bluetooth_8_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_ccm_bluetooth_8_storage, @object
	.size	EVP_aead_aes_128_ccm_bluetooth_8_storage, 96
EVP_aead_aes_128_ccm_bluetooth_8_storage:
.LEVP_aead_aes_128_ccm_bluetooth_8_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_ccm_bluetooth_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_ccm_bluetooth_once, @object
	.size	EVP_aead_aes_128_ccm_bluetooth_once, 4
EVP_aead_aes_128_ccm_bluetooth_once:
.LEVP_aead_aes_128_ccm_bluetooth_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_ccm_bluetooth_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_ccm_bluetooth_storage, @object
	.size	EVP_aead_aes_128_ccm_bluetooth_storage, 96
EVP_aead_aes_128_ccm_bluetooth_storage:
.LEVP_aead_aes_128_ccm_bluetooth_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_256_gcm_tls13_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_256_gcm_tls13_once, @object
	.size	EVP_aead_aes_256_gcm_tls13_once, 4
EVP_aead_aes_256_gcm_tls13_once:
.LEVP_aead_aes_256_gcm_tls13_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_256_gcm_tls13_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_256_gcm_tls13_storage, @object
	.size	EVP_aead_aes_256_gcm_tls13_storage, 96
EVP_aead_aes_256_gcm_tls13_storage:
.LEVP_aead_aes_256_gcm_tls13_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_gcm_tls13_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_gcm_tls13_once, @object
	.size	EVP_aead_aes_128_gcm_tls13_once, 4
EVP_aead_aes_128_gcm_tls13_once:
.LEVP_aead_aes_128_gcm_tls13_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_gcm_tls13_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_gcm_tls13_storage, @object
	.size	EVP_aead_aes_128_gcm_tls13_storage, 96
EVP_aead_aes_128_gcm_tls13_storage:
.LEVP_aead_aes_128_gcm_tls13_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_256_gcm_tls12_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_256_gcm_tls12_once, @object
	.size	EVP_aead_aes_256_gcm_tls12_once, 4
EVP_aead_aes_256_gcm_tls12_once:
.LEVP_aead_aes_256_gcm_tls12_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_256_gcm_tls12_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_256_gcm_tls12_storage, @object
	.size	EVP_aead_aes_256_gcm_tls12_storage, 96
EVP_aead_aes_256_gcm_tls12_storage:
.LEVP_aead_aes_256_gcm_tls12_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_gcm_tls12_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_gcm_tls12_once, @object
	.size	EVP_aead_aes_128_gcm_tls12_once, 4
EVP_aead_aes_128_gcm_tls12_once:
.LEVP_aead_aes_128_gcm_tls12_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_gcm_tls12_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_gcm_tls12_storage, @object
	.size	EVP_aead_aes_128_gcm_tls12_storage, 96
EVP_aead_aes_128_gcm_tls12_storage:
.LEVP_aead_aes_128_gcm_tls12_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_256_gcm_randnonce_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_256_gcm_randnonce_once, @object
	.size	EVP_aead_aes_256_gcm_randnonce_once, 4
EVP_aead_aes_256_gcm_randnonce_once:
.LEVP_aead_aes_256_gcm_randnonce_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_256_gcm_randnonce_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_256_gcm_randnonce_storage, @object
	.size	EVP_aead_aes_256_gcm_randnonce_storage, 96
EVP_aead_aes_256_gcm_randnonce_storage:
.LEVP_aead_aes_256_gcm_randnonce_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_gcm_randnonce_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_gcm_randnonce_once, @object
	.size	EVP_aead_aes_128_gcm_randnonce_once, 4
EVP_aead_aes_128_gcm_randnonce_once:
.LEVP_aead_aes_128_gcm_randnonce_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_gcm_randnonce_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_gcm_randnonce_storage, @object
	.size	EVP_aead_aes_128_gcm_randnonce_storage, 96
EVP_aead_aes_128_gcm_randnonce_storage:
.LEVP_aead_aes_128_gcm_randnonce_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_256_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_256_gcm_once, @object
	.size	EVP_aead_aes_256_gcm_once, 4
EVP_aead_aes_256_gcm_once:
.LEVP_aead_aes_256_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_256_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_256_gcm_storage, @object
	.size	EVP_aead_aes_256_gcm_storage, 96
EVP_aead_aes_256_gcm_storage:
.LEVP_aead_aes_256_gcm_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_192_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_192_gcm_once, @object
	.size	EVP_aead_aes_192_gcm_once, 4
EVP_aead_aes_192_gcm_once:
.LEVP_aead_aes_192_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_192_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_192_gcm_storage, @object
	.size	EVP_aead_aes_192_gcm_storage, 96
EVP_aead_aes_192_gcm_storage:
.LEVP_aead_aes_192_gcm_storage_local_target:

	.zero	96
	.section	.bss.EVP_aead_aes_128_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aead_aes_128_gcm_once, @object
	.size	EVP_aead_aes_128_gcm_once, 4
EVP_aead_aes_128_gcm_once:
.LEVP_aead_aes_128_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aead_aes_128_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aead_aes_128_gcm_storage, @object
	.size	EVP_aead_aes_128_gcm_storage, 96
EVP_aead_aes_128_gcm_storage:
.LEVP_aead_aes_128_gcm_storage_local_target:

	.zero	96
	.section	.bss.aes_hw_256_ecb_once,"aw",@nobits
	.align 4
	.type	aes_hw_256_ecb_once, @object
	.size	aes_hw_256_ecb_once, 4
aes_hw_256_ecb_once:
.Laes_hw_256_ecb_once_local_target:

	.zero	4
	.section	.bss.aes_hw_256_ecb_storage,"aw",@nobits
	.align 32
	.type	aes_hw_256_ecb_storage, @object
	.size	aes_hw_256_ecb_storage, 64
aes_hw_256_ecb_storage:
.Laes_hw_256_ecb_storage_local_target:

	.zero	64
	.section	.bss.aes_hw_192_ecb_once,"aw",@nobits
	.align 4
	.type	aes_hw_192_ecb_once, @object
	.size	aes_hw_192_ecb_once, 4
aes_hw_192_ecb_once:
.Laes_hw_192_ecb_once_local_target:

	.zero	4
	.section	.bss.aes_hw_192_ecb_storage,"aw",@nobits
	.align 32
	.type	aes_hw_192_ecb_storage, @object
	.size	aes_hw_192_ecb_storage, 64
aes_hw_192_ecb_storage:
.Laes_hw_192_ecb_storage_local_target:

	.zero	64
	.section	.bss.aes_hw_128_ecb_once,"aw",@nobits
	.align 4
	.type	aes_hw_128_ecb_once, @object
	.size	aes_hw_128_ecb_once, 4
aes_hw_128_ecb_once:
.Laes_hw_128_ecb_once_local_target:

	.zero	4
	.section	.bss.aes_hw_128_ecb_storage,"aw",@nobits
	.align 32
	.type	aes_hw_128_ecb_storage, @object
	.size	aes_hw_128_ecb_storage, 64
aes_hw_128_ecb_storage:
.Laes_hw_128_ecb_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_xts_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_xts_once, @object
	.size	EVP_aes_256_xts_once, 4
EVP_aes_256_xts_once:
.LEVP_aes_256_xts_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_xts_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_xts_storage, @object
	.size	EVP_aes_256_xts_storage, 64
EVP_aes_256_xts_storage:
.LEVP_aes_256_xts_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_gcm_once, @object
	.size	EVP_aes_256_gcm_once, 4
EVP_aes_256_gcm_once:
.LEVP_aes_256_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_gcm_storage, @object
	.size	EVP_aes_256_gcm_storage, 64
EVP_aes_256_gcm_storage:
.LEVP_aes_256_gcm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_wrap_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_wrap_once, @object
	.size	EVP_aes_256_wrap_once, 4
EVP_aes_256_wrap_once:
.LEVP_aes_256_wrap_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_wrap_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_wrap_storage, @object
	.size	EVP_aes_256_wrap_storage, 64
EVP_aes_256_wrap_storage:
.LEVP_aes_256_wrap_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_ofb_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_ofb_once, @object
	.size	EVP_aes_256_ofb_once, 4
EVP_aes_256_ofb_once:
.LEVP_aes_256_ofb_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_ofb_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_ofb_storage, @object
	.size	EVP_aes_256_ofb_storage, 64
EVP_aes_256_ofb_storage:
.LEVP_aes_256_ofb_storage_local_target:

	.zero	64
	.section	.bss.aes_256_ecb_generic_once,"aw",@nobits
	.align 4
	.type	aes_256_ecb_generic_once, @object
	.size	aes_256_ecb_generic_once, 4
aes_256_ecb_generic_once:
.Laes_256_ecb_generic_once_local_target:

	.zero	4
	.section	.bss.aes_256_ecb_generic_storage,"aw",@nobits
	.align 32
	.type	aes_256_ecb_generic_storage, @object
	.size	aes_256_ecb_generic_storage, 64
aes_256_ecb_generic_storage:
.Laes_256_ecb_generic_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_ctr_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_ctr_once, @object
	.size	EVP_aes_256_ctr_once, 4
EVP_aes_256_ctr_once:
.LEVP_aes_256_ctr_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_ctr_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_ctr_storage, @object
	.size	EVP_aes_256_ctr_storage, 64
EVP_aes_256_ctr_storage:
.LEVP_aes_256_ctr_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_256_cbc_once,"aw",@nobits
	.align 4
	.type	EVP_aes_256_cbc_once, @object
	.size	EVP_aes_256_cbc_once, 4
EVP_aes_256_cbc_once:
.LEVP_aes_256_cbc_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_256_cbc_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_256_cbc_storage, @object
	.size	EVP_aes_256_cbc_storage, 64
EVP_aes_256_cbc_storage:
.LEVP_aes_256_cbc_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_192_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_192_gcm_once, @object
	.size	EVP_aes_192_gcm_once, 4
EVP_aes_192_gcm_once:
.LEVP_aes_192_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_192_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_192_gcm_storage, @object
	.size	EVP_aes_192_gcm_storage, 64
EVP_aes_192_gcm_storage:
.LEVP_aes_192_gcm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_192_ofb_once,"aw",@nobits
	.align 4
	.type	EVP_aes_192_ofb_once, @object
	.size	EVP_aes_192_ofb_once, 4
EVP_aes_192_ofb_once:
.LEVP_aes_192_ofb_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_192_ofb_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_192_ofb_storage, @object
	.size	EVP_aes_192_ofb_storage, 64
EVP_aes_192_ofb_storage:
.LEVP_aes_192_ofb_storage_local_target:

	.zero	64
	.section	.bss.aes_192_ecb_generic_once,"aw",@nobits
	.align 4
	.type	aes_192_ecb_generic_once, @object
	.size	aes_192_ecb_generic_once, 4
aes_192_ecb_generic_once:
.Laes_192_ecb_generic_once_local_target:

	.zero	4
	.section	.bss.aes_192_ecb_generic_storage,"aw",@nobits
	.align 32
	.type	aes_192_ecb_generic_storage, @object
	.size	aes_192_ecb_generic_storage, 64
aes_192_ecb_generic_storage:
.Laes_192_ecb_generic_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_192_ctr_once,"aw",@nobits
	.align 4
	.type	EVP_aes_192_ctr_once, @object
	.size	EVP_aes_192_ctr_once, 4
EVP_aes_192_ctr_once:
.LEVP_aes_192_ctr_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_192_ctr_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_192_ctr_storage, @object
	.size	EVP_aes_192_ctr_storage, 64
EVP_aes_192_ctr_storage:
.LEVP_aes_192_ctr_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_192_cbc_once,"aw",@nobits
	.align 4
	.type	EVP_aes_192_cbc_once, @object
	.size	EVP_aes_192_cbc_once, 4
EVP_aes_192_cbc_once:
.LEVP_aes_192_cbc_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_192_cbc_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_192_cbc_storage, @object
	.size	EVP_aes_192_cbc_storage, 64
EVP_aes_192_cbc_storage:
.LEVP_aes_192_cbc_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_128_gcm_once,"aw",@nobits
	.align 4
	.type	EVP_aes_128_gcm_once, @object
	.size	EVP_aes_128_gcm_once, 4
EVP_aes_128_gcm_once:
.LEVP_aes_128_gcm_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_128_gcm_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_128_gcm_storage, @object
	.size	EVP_aes_128_gcm_storage, 64
EVP_aes_128_gcm_storage:
.LEVP_aes_128_gcm_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_128_ofb_once,"aw",@nobits
	.align 4
	.type	EVP_aes_128_ofb_once, @object
	.size	EVP_aes_128_ofb_once, 4
EVP_aes_128_ofb_once:
.LEVP_aes_128_ofb_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_128_ofb_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_128_ofb_storage, @object
	.size	EVP_aes_128_ofb_storage, 64
EVP_aes_128_ofb_storage:
.LEVP_aes_128_ofb_storage_local_target:

	.zero	64
	.section	.bss.aes_128_ecb_generic_once,"aw",@nobits
	.align 4
	.type	aes_128_ecb_generic_once, @object
	.size	aes_128_ecb_generic_once, 4
aes_128_ecb_generic_once:
.Laes_128_ecb_generic_once_local_target:

	.zero	4
	.section	.bss.aes_128_ecb_generic_storage,"aw",@nobits
	.align 32
	.type	aes_128_ecb_generic_storage, @object
	.size	aes_128_ecb_generic_storage, 64
aes_128_ecb_generic_storage:
.Laes_128_ecb_generic_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_128_ctr_once,"aw",@nobits
	.align 4
	.type	EVP_aes_128_ctr_once, @object
	.size	EVP_aes_128_ctr_once, 4
EVP_aes_128_ctr_once:
.LEVP_aes_128_ctr_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_128_ctr_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_128_ctr_storage, @object
	.size	EVP_aes_128_ctr_storage, 64
EVP_aes_128_ctr_storage:
.LEVP_aes_128_ctr_storage_local_target:

	.zero	64
	.section	.bss.EVP_aes_128_cbc_once,"aw",@nobits
	.align 4
	.type	EVP_aes_128_cbc_once, @object
	.size	EVP_aes_128_cbc_once, 4
EVP_aes_128_cbc_once:
.LEVP_aes_128_cbc_once_local_target:

	.zero	4
	.section	.bss.EVP_aes_128_cbc_storage,"aw",@nobits
	.align 32
	.type	EVP_aes_128_cbc_storage, @object
	.size	EVP_aes_128_cbc_storage, 64
EVP_aes_128_cbc_storage:
.LEVP_aes_128_cbc_storage_local_target:

	.zero	64
# WAS .section	.rodata.rsaz_two80,"a"
.text
	.align 64
	.type	rsaz_two80, @object
	.size	rsaz_two80, 320
.Lrsaz_two80_local_target:
rsaz_two80:
	.quad	0
	.quad	0
	.quad	4194304
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
# WAS .section	.rodata.rsaz_one,"a"
.text
	.align 64
	.type	rsaz_one, @object
	.size	rsaz_one, 320
.Lrsaz_one_local_target:
rsaz_one:
	.quad	1
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
# WAS .section	.rodata.kPrimes,"a"
.text
	.align 32
	.type	kPrimes, @object
	.size	kPrimes, 2048
.LkPrimes_local_target:
kPrimes:
	.value	2
	.value	3
	.value	5
	.value	7
	.value	11
	.value	13
	.value	17
	.value	19
	.value	23
	.value	29
	.value	31
	.value	37
	.value	41
	.value	43
	.value	47
	.value	53
	.value	59
	.value	61
	.value	67
	.value	71
	.value	73
	.value	79
	.value	83
	.value	89
	.value	97
	.value	101
	.value	103
	.value	107
	.value	109
	.value	113
	.value	127
	.value	131
	.value	137
	.value	139
	.value	149
	.value	151
	.value	157
	.value	163
	.value	167
	.value	173
	.value	179
	.value	181
	.value	191
	.value	193
	.value	197
	.value	199
	.value	211
	.value	223
	.value	227
	.value	229
	.value	233
	.value	239
	.value	241
	.value	251
	.value	257
	.value	263
	.value	269
	.value	271
	.value	277
	.value	281
	.value	283
	.value	293
	.value	307
	.value	311
	.value	313
	.value	317
	.value	331
	.value	337
	.value	347
	.value	349
	.value	353
	.value	359
	.value	367
	.value	373
	.value	379
	.value	383
	.value	389
	.value	397
	.value	401
	.value	409
	.value	419
	.value	421
	.value	431
	.value	433
	.value	439
	.value	443
	.value	449
	.value	457
	.value	461
	.value	463
	.value	467
	.value	479
	.value	487
	.value	491
	.value	499
	.value	503
	.value	509
	.value	521
	.value	523
	.value	541
	.value	547
	.value	557
	.value	563
	.value	569
	.value	571
	.value	577
	.value	587
	.value	593
	.value	599
	.value	601
	.value	607
	.value	613
	.value	617
	.value	619
	.value	631
	.value	641
	.value	643
	.value	647
	.value	653
	.value	659
	.value	661
	.value	673
	.value	677
	.value	683
	.value	691
	.value	701
	.value	709
	.value	719
	.value	727
	.value	733
	.value	739
	.value	743
	.value	751
	.value	757
	.value	761
	.value	769
	.value	773
	.value	787
	.value	797
	.value	809
	.value	811
	.value	821
	.value	823
	.value	827
	.value	829
	.value	839
	.value	853
	.value	857
	.value	859
	.value	863
	.value	877
	.value	881
	.value	883
	.value	887
	.value	907
	.value	911
	.value	919
	.value	929
	.value	937
	.value	941
	.value	947
	.value	953
	.value	967
	.value	971
	.value	977
	.value	983
	.value	991
	.value	997
	.value	1009
	.value	1013
	.value	1019
	.value	1021
	.value	1031
	.value	1033
	.value	1039
	.value	1049
	.value	1051
	.value	1061
	.value	1063
	.value	1069
	.value	1087
	.value	1091
	.value	1093
	.value	1097
	.value	1103
	.value	1109
	.value	1117
	.value	1123
	.value	1129
	.value	1151
	.value	1153
	.value	1163
	.value	1171
	.value	1181
	.value	1187
	.value	1193
	.value	1201
	.value	1213
	.value	1217
	.value	1223
	.value	1229
	.value	1231
	.value	1237
	.value	1249
	.value	1259
	.value	1277
	.value	1279
	.value	1283
	.value	1289
	.value	1291
	.value	1297
	.value	1301
	.value	1303
	.value	1307
	.value	1319
	.value	1321
	.value	1327
	.value	1361
	.value	1367
	.value	1373
	.value	1381
	.value	1399
	.value	1409
	.value	1423
	.value	1427
	.value	1429
	.value	1433
	.value	1439
	.value	1447
	.value	1451
	.value	1453
	.value	1459
	.value	1471
	.value	1481
	.value	1483
	.value	1487
	.value	1489
	.value	1493
	.value	1499
	.value	1511
	.value	1523
	.value	1531
	.value	1543
	.value	1549
	.value	1553
	.value	1559
	.value	1567
	.value	1571
	.value	1579
	.value	1583
	.value	1597
	.value	1601
	.value	1607
	.value	1609
	.value	1613
	.value	1619
	.value	1621
	.value	1627
	.value	1637
	.value	1657
	.value	1663
	.value	1667
	.value	1669
	.value	1693
	.value	1697
	.value	1699
	.value	1709
	.value	1721
	.value	1723
	.value	1733
	.value	1741
	.value	1747
	.value	1753
	.value	1759
	.value	1777
	.value	1783
	.value	1787
	.value	1789
	.value	1801
	.value	1811
	.value	1823
	.value	1831
	.value	1847
	.value	1861
	.value	1867
	.value	1871
	.value	1873
	.value	1877
	.value	1879
	.value	1889
	.value	1901
	.value	1907
	.value	1913
	.value	1931
	.value	1933
	.value	1949
	.value	1951
	.value	1973
	.value	1979
	.value	1987
	.value	1993
	.value	1997
	.value	1999
	.value	2003
	.value	2011
	.value	2017
	.value	2027
	.value	2029
	.value	2039
	.value	2053
	.value	2063
	.value	2069
	.value	2081
	.value	2083
	.value	2087
	.value	2089
	.value	2099
	.value	2111
	.value	2113
	.value	2129
	.value	2131
	.value	2137
	.value	2141
	.value	2143
	.value	2153
	.value	2161
	.value	2179
	.value	2203
	.value	2207
	.value	2213
	.value	2221
	.value	2237
	.value	2239
	.value	2243
	.value	2251
	.value	2267
	.value	2269
	.value	2273
	.value	2281
	.value	2287
	.value	2293
	.value	2297
	.value	2309
	.value	2311
	.value	2333
	.value	2339
	.value	2341
	.value	2347
	.value	2351
	.value	2357
	.value	2371
	.value	2377
	.value	2381
	.value	2383
	.value	2389
	.value	2393
	.value	2399
	.value	2411
	.value	2417
	.value	2423
	.value	2437
	.value	2441
	.value	2447
	.value	2459
	.value	2467
	.value	2473
	.value	2477
	.value	2503
	.value	2521
	.value	2531
	.value	2539
	.value	2543
	.value	2549
	.value	2551
	.value	2557
	.value	2579
	.value	2591
	.value	2593
	.value	2609
	.value	2617
	.value	2621
	.value	2633
	.value	2647
	.value	2657
	.value	2659
	.value	2663
	.value	2671
	.value	2677
	.value	2683
	.value	2687
	.value	2689
	.value	2693
	.value	2699
	.value	2707
	.value	2711
	.value	2713
	.value	2719
	.value	2729
	.value	2731
	.value	2741
	.value	2749
	.value	2753
	.value	2767
	.value	2777
	.value	2789
	.value	2791
	.value	2797
	.value	2801
	.value	2803
	.value	2819
	.value	2833
	.value	2837
	.value	2843
	.value	2851
	.value	2857
	.value	2861
	.value	2879
	.value	2887
	.value	2897
	.value	2903
	.value	2909
	.value	2917
	.value	2927
	.value	2939
	.value	2953
	.value	2957
	.value	2963
	.value	2969
	.value	2971
	.value	2999
	.value	3001
	.value	3011
	.value	3019
	.value	3023
	.value	3037
	.value	3041
	.value	3049
	.value	3061
	.value	3067
	.value	3079
	.value	3083
	.value	3089
	.value	3109
	.value	3119
	.value	3121
	.value	3137
	.value	3163
	.value	3167
	.value	3169
	.value	3181
	.value	3187
	.value	3191
	.value	3203
	.value	3209
	.value	3217
	.value	3221
	.value	3229
	.value	3251
	.value	3253
	.value	3257
	.value	3259
	.value	3271
	.value	3299
	.value	3301
	.value	3307
	.value	3313
	.value	3319
	.value	3323
	.value	3329
	.value	3331
	.value	3343
	.value	3347
	.value	3359
	.value	3361
	.value	3371
	.value	3373
	.value	3389
	.value	3391
	.value	3407
	.value	3413
	.value	3433
	.value	3449
	.value	3457
	.value	3461
	.value	3463
	.value	3467
	.value	3469
	.value	3491
	.value	3499
	.value	3511
	.value	3517
	.value	3527
	.value	3529
	.value	3533
	.value	3539
	.value	3541
	.value	3547
	.value	3557
	.value	3559
	.value	3571
	.value	3581
	.value	3583
	.value	3593
	.value	3607
	.value	3613
	.value	3617
	.value	3623
	.value	3631
	.value	3637
	.value	3643
	.value	3659
	.value	3671
	.value	3673
	.value	3677
	.value	3691
	.value	3697
	.value	3701
	.value	3709
	.value	3719
	.value	3727
	.value	3733
	.value	3739
	.value	3761
	.value	3767
	.value	3769
	.value	3779
	.value	3793
	.value	3797
	.value	3803
	.value	3821
	.value	3823
	.value	3833
	.value	3847
	.value	3851
	.value	3853
	.value	3863
	.value	3877
	.value	3881
	.value	3889
	.value	3907
	.value	3911
	.value	3917
	.value	3919
	.value	3923
	.value	3929
	.value	3931
	.value	3943
	.value	3947
	.value	3967
	.value	3989
	.value	4001
	.value	4003
	.value	4007
	.value	4013
	.value	4019
	.value	4021
	.value	4027
	.value	4049
	.value	4051
	.value	4057
	.value	4073
	.value	4079
	.value	4091
	.value	4093
	.value	4099
	.value	4111
	.value	4127
	.value	4129
	.value	4133
	.value	4139
	.value	4153
	.value	4157
	.value	4159
	.value	4177
	.value	4201
	.value	4211
	.value	4217
	.value	4219
	.value	4229
	.value	4231
	.value	4241
	.value	4243
	.value	4253
	.value	4259
	.value	4261
	.value	4271
	.value	4273
	.value	4283
	.value	4289
	.value	4297
	.value	4327
	.value	4337
	.value	4339
	.value	4349
	.value	4357
	.value	4363
	.value	4373
	.value	4391
	.value	4397
	.value	4409
	.value	4421
	.value	4423
	.value	4441
	.value	4447
	.value	4451
	.value	4457
	.value	4463
	.value	4481
	.value	4483
	.value	4493
	.value	4507
	.value	4513
	.value	4517
	.value	4519
	.value	4523
	.value	4547
	.value	4549
	.value	4561
	.value	4567
	.value	4583
	.value	4591
	.value	4597
	.value	4603
	.value	4621
	.value	4637
	.value	4639
	.value	4643
	.value	4649
	.value	4651
	.value	4657
	.value	4663
	.value	4673
	.value	4679
	.value	4691
	.value	4703
	.value	4721
	.value	4723
	.value	4729
	.value	4733
	.value	4751
	.value	4759
	.value	4783
	.value	4787
	.value	4789
	.value	4793
	.value	4799
	.value	4801
	.value	4813
	.value	4817
	.value	4831
	.value	4861
	.value	4871
	.value	4877
	.value	4889
	.value	4903
	.value	4909
	.value	4919
	.value	4931
	.value	4933
	.value	4937
	.value	4943
	.value	4951
	.value	4957
	.value	4967
	.value	4969
	.value	4973
	.value	4987
	.value	4993
	.value	4999
	.value	5003
	.value	5009
	.value	5011
	.value	5021
	.value	5023
	.value	5039
	.value	5051
	.value	5059
	.value	5077
	.value	5081
	.value	5087
	.value	5099
	.value	5101
	.value	5107
	.value	5113
	.value	5119
	.value	5147
	.value	5153
	.value	5167
	.value	5171
	.value	5179
	.value	5189
	.value	5197
	.value	5209
	.value	5227
	.value	5231
	.value	5233
	.value	5237
	.value	5261
	.value	5273
	.value	5279
	.value	5281
	.value	5297
	.value	5303
	.value	5309
	.value	5323
	.value	5333
	.value	5347
	.value	5351
	.value	5381
	.value	5387
	.value	5393
	.value	5399
	.value	5407
	.value	5413
	.value	5417
	.value	5419
	.value	5431
	.value	5437
	.value	5441
	.value	5443
	.value	5449
	.value	5471
	.value	5477
	.value	5479
	.value	5483
	.value	5501
	.value	5503
	.value	5507
	.value	5519
	.value	5521
	.value	5527
	.value	5531
	.value	5557
	.value	5563
	.value	5569
	.value	5573
	.value	5581
	.value	5591
	.value	5623
	.value	5639
	.value	5641
	.value	5647
	.value	5651
	.value	5653
	.value	5657
	.value	5659
	.value	5669
	.value	5683
	.value	5689
	.value	5693
	.value	5701
	.value	5711
	.value	5717
	.value	5737
	.value	5741
	.value	5743
	.value	5749
	.value	5779
	.value	5783
	.value	5791
	.value	5801
	.value	5807
	.value	5813
	.value	5821
	.value	5827
	.value	5839
	.value	5843
	.value	5849
	.value	5851
	.value	5857
	.value	5861
	.value	5867
	.value	5869
	.value	5879
	.value	5881
	.value	5897
	.value	5903
	.value	5923
	.value	5927
	.value	5939
	.value	5953
	.value	5981
	.value	5987
	.value	6007
	.value	6011
	.value	6029
	.value	6037
	.value	6043
	.value	6047
	.value	6053
	.value	6067
	.value	6073
	.value	6079
	.value	6089
	.value	6091
	.value	6101
	.value	6113
	.value	6121
	.value	6131
	.value	6133
	.value	6143
	.value	6151
	.value	6163
	.value	6173
	.value	6197
	.value	6199
	.value	6203
	.value	6211
	.value	6217
	.value	6221
	.value	6229
	.value	6247
	.value	6257
	.value	6263
	.value	6269
	.value	6271
	.value	6277
	.value	6287
	.value	6299
	.value	6301
	.value	6311
	.value	6317
	.value	6323
	.value	6329
	.value	6337
	.value	6343
	.value	6353
	.value	6359
	.value	6361
	.value	6367
	.value	6373
	.value	6379
	.value	6389
	.value	6397
	.value	6421
	.value	6427
	.value	6449
	.value	6451
	.value	6469
	.value	6473
	.value	6481
	.value	6491
	.value	6521
	.value	6529
	.value	6547
	.value	6551
	.value	6553
	.value	6563
	.value	6569
	.value	6571
	.value	6577
	.value	6581
	.value	6599
	.value	6607
	.value	6619
	.value	6637
	.value	6653
	.value	6659
	.value	6661
	.value	6673
	.value	6679
	.value	6689
	.value	6691
	.value	6701
	.value	6703
	.value	6709
	.value	6719
	.value	6733
	.value	6737
	.value	6761
	.value	6763
	.value	6779
	.value	6781
	.value	6791
	.value	6793
	.value	6803
	.value	6823
	.value	6827
	.value	6829
	.value	6833
	.value	6841
	.value	6857
	.value	6863
	.value	6869
	.value	6871
	.value	6883
	.value	6899
	.value	6907
	.value	6911
	.value	6917
	.value	6947
	.value	6949
	.value	6959
	.value	6961
	.value	6967
	.value	6971
	.value	6977
	.value	6983
	.value	6991
	.value	6997
	.value	7001
	.value	7013
	.value	7019
	.value	7027
	.value	7039
	.value	7043
	.value	7057
	.value	7069
	.value	7079
	.value	7103
	.value	7109
	.value	7121
	.value	7127
	.value	7129
	.value	7151
	.value	7159
	.value	7177
	.value	7187
	.value	7193
	.value	7207
	.value	7211
	.value	7213
	.value	7219
	.value	7229
	.value	7237
	.value	7243
	.value	7247
	.value	7253
	.value	7283
	.value	7297
	.value	7307
	.value	7309
	.value	7321
	.value	7331
	.value	7333
	.value	7349
	.value	7351
	.value	7369
	.value	7393
	.value	7411
	.value	7417
	.value	7433
	.value	7451
	.value	7457
	.value	7459
	.value	7477
	.value	7481
	.value	7487
	.value	7489
	.value	7499
	.value	7507
	.value	7517
	.value	7523
	.value	7529
	.value	7537
	.value	7541
	.value	7547
	.value	7549
	.value	7559
	.value	7561
	.value	7573
	.value	7577
	.value	7583
	.value	7589
	.value	7591
	.value	7603
	.value	7607
	.value	7621
	.value	7639
	.value	7643
	.value	7649
	.value	7669
	.value	7673
	.value	7681
	.value	7687
	.value	7691
	.value	7699
	.value	7703
	.value	7717
	.value	7723
	.value	7727
	.value	7741
	.value	7753
	.value	7757
	.value	7759
	.value	7789
	.value	7793
	.value	7817
	.value	7823
	.value	7829
	.value	7841
	.value	7853
	.value	7867
	.value	7873
	.value	7877
	.value	7879
	.value	7883
	.value	7901
	.value	7907
	.value	7919
	.value	7927
	.value	7933
	.value	7937
	.value	7949
	.value	7951
	.value	7963
	.value	7993
	.value	8009
	.value	8011
	.value	8017
	.value	8039
	.value	8053
	.value	8059
	.value	8069
	.value	8081
	.value	8087
	.value	8089
	.value	8093
	.value	8101
	.value	8111
	.value	8117
	.value	8123
	.value	8147
	.value	8161
	.section	.bss.BN_value_one_once,"aw",@nobits
	.align 4
	.type	BN_value_one_once, @object
	.size	BN_value_one_once, 4
BN_value_one_once:
.LBN_value_one_once_local_target:

	.zero	4
	.section	.bss.BN_value_one_storage,"aw",@nobits
	.align 16
	.type	BN_value_one_storage, @object
	.size	BN_value_one_storage, 24
BN_value_one_storage:
.LBN_value_one_storage_local_target:

	.zero	24
# WAS .section	.rodata.kPaddingConstant,"a"
.text
	.type	kPaddingConstant, @object
	.size	kPaddingConstant, 4
.LkPaddingConstant_local_target:
kPaddingConstant:
	.ascii	"\246YY\246"
# WAS .section	.rodata.kDefaultIV,"a"
.text
	.align 8
	.type	kDefaultIV, @object
	.size	kDefaultIV, 8
.LkDefaultIV_local_target:
kDefaultIV:
	.ascii	"\246\246\246\246\246\246\246\246"
# WAS .section	.rodata.aes_nohw_rcon,"a"
.text
	.align 8
	.type	aes_nohw_rcon, @object
	.size	aes_nohw_rcon, 10
.Laes_nohw_rcon_local_target:
aes_nohw_rcon:
	.ascii	"\001\002\004\b\020 @\200\0336"
# WAS .section	.rodata.cst16,"aM",@progbits,16
.text
	.align 16
.LC0:

	.long	1431655765
	.long	1431655765
	.long	1431655765
	.long	1431655765
	.align 16
.LC1:

	.value	3
	.value	3
	.value	3
	.value	3
	.value	3
	.value	3
	.value	3
	.value	3
	.set	.LC2,.LC0
	.align 16
.LC3:

	.quad	3689348814741910323
	.quad	3689348814741910323
	.align 16
.LC4:

	.quad	1085102592571150095
	.quad	1085102592571150095
	.align 16
.LC7:

	.long	1
	.long	1
	.long	0
	.long	2
	.align 16
.LC8:

	.long	16
	.long	16
	.long	16
	.long	264
	.align 16
.LC10:

	.long	1
	.long	16
	.long	16
	.long	264
	.align 16
.LC11:

	.long	1
	.long	16
	.long	12
	.long	680
	.align 16
.LC12:

	.long	16
	.long	24
	.long	16
	.long	264
	.align 16
.LC13:

	.long	1
	.long	24
	.long	16
	.long	264
	.align 16
.LC14:

	.long	1
	.long	24
	.long	12
	.long	680
	.align 16
.LC15:

	.long	16
	.long	32
	.long	16
	.long	264
	.align 16
.LC16:

	.long	1
	.long	32
	.long	16
	.long	264
	.align 16
.LC17:

	.long	8
	.long	32
	.long	8
	.long	256
	.align 16
.LC18:

	.long	1
	.long	32
	.long	12
	.long	680
	.align 16
.LC19:

	.long	1
	.long	64
	.long	16
	.long	528
	.set	.LC20,.LC8
# WAS .section	.rodata.cst8,"aM",@progbits,8
.text
	.align 8
.LC21:

	.long	264
	.long	1
	.set	.LC22,.LC12
	.set	.LC23,.LC15
# WAS .section	.rodata.cst16
.text
	.align 16
.LC31:

	.long	1
	.long	16
	.long	13
	.long	376
	.align 16
.LC32:

	.long	1
	.long	24
	.long	13
	.long	376
	.align 16
.LC33:

	.long	1
	.long	32
	.long	13
	.long	376
# WAS .section	.rodata.cst8
.text
	.align 8
.LC39:

	.long	64
	.long	92
	.align 8
.LC41:

	.long	64
	.long	96
	.align 8
.LC43:

	.long	64
	.long	112
	.align 8
.LC46:

	.long	128
	.long	216
	.align 8
.LC48:

	.long	144
	.long	400
	.align 8
.LC49:

	.long	136
	.long	400
	.align 8
.LC50:

	.long	104
	.long	400
	.align 8
.LC51:

	.long	72
	.long	400
	.align 8
.LC52:

	.long	0
	.long	4
	.align 8
.LC53:

	.long	168
	.long	400
	.align 8
.LC55:

	.long	64
	.long	188
# WAS .section	.rodata.cst16
.text
	.align 16
.LC56:

	.quad	4
	.quad	256
	.align 16
.LC57:

	.quad	6
	.quad	384
	.align 16
.LC58:

	.quad	9
	.quad	521
	.align 16
.LC60:

	.quad	800
	.quad	1632
	.align 16
.LC61:

	.quad	768
	.quad	32
	.align 16
.LC62:

	.quad	64
	.quad	32
	.align 16
.LC64:

	.quad	1184
	.quad	2400
	.align 16
.LC65:

	.quad	1088
	.quad	32
	.align 16
.LC67:

	.quad	1568
	.quad	3168
	.align 16
.LC68:

	.quad	1568
	.quad	32
	.align 16
.LC69:

	.long	17
	.long	17
	.long	0
	.long	2
# WAS .section	.rodata.cst8
.text
	.align 8
.LC88:

	.long	4
	.long	4
	.set	.LC89,.LC7
# WAS .section	.rodata.cst16
.text
	.align 16
.LC90:

	.quad	-2939110741514510185
	.quad	2530505477788034779
	.align 16
.LC91:

	.quad	-7521212862342294884
	.quad	-7385368734564049080
	.align 16
.LC92:

	.quad	-5665907856757773342
	.quad	-8215588965695240627
	.align 16
.LC93:

	.quad	8121878653926228278
	.quad	-3512942812567600426
	.align 16
.LC98:

	.quad	0
	.quad	250000000
	.align 16
.LC100:

	.quad	280375465148160
	.quad	280375465148160
	.align 16
.LC101:

	.quad	71776119077928960
	.quad	71776119077928960
	.align 16
.LC102:

	.quad	-72057589759737856
	.quad	-72057589759737856
	.align 16
.LC103:

	.quad	1095216660735
	.quad	1095216660735
	.align 16
.LC104:

	.quad	-1
	.quad	-1
	.align 16
.LC108:

	.quad	1
	.quad	0
# WAS .section	.rodata.cst8
.text
	.align 8
.LC109:

	.long	8
	.long	14
# WAS .section	.rodata.cst16
.text
	.align 16
.LC111:

	.quad	288230376151711748
	.quad	288225978105200636
	.align 16
.LC112:

	.quad	288230376151711740
	.quad	288230376151711740
	.align 16
.LC114:

	.quad	0
	.quad	4294967295
	.align 16
.LC115:

	.quad	0
	.quad	-4294967296
	.align 16
.LC116:

	.quad	-1
	.quad	0
	.align 16
.LC127:

	.quad	-4294967295
	.quad	4294967295
# WAS .section	.rodata.cst8
.text
	.align 8
.LC129:

	.long	6
	.long	6
# WAS .section	.rodata.cst16
.text
	.align 16
.LC130:

	.quad	4454189113653900584
	.quad	2369870743683386936
	.align 16
.LC131:

	.quad	-8674993926805172882
	.quad	7229551204834152191
	.align 16
.LC132:

	.quad	-9137813387582972373
	.quad	5564951339003155731
	.align 16
.LC133:

	.quad	2523209505731486974
	.quad	-6791524172683761236
	.align 16
.LC134:

	.quad	-8381788974133039024
	.quad	-4124362564652695591
	.align 16
.LC135:

	.quad	-2485984631113275328
	.quad	3132442392059561449
	.set	.LC136,.LC127
	.align 16
.LC137:

	.quad	581395848458481100
	.quad	-636786727019859220
	.align 16
.LC138:

	.quad	8643006485390950958
	.quad	-2074105615313827102
	.align 16
.LC139:

	.quad	-5320121202432139116
	.quad	-3672666480684580871
	.align 16
.LC141:

	.quad	3761210295710391585
	.quad	5333319497174618402
	.align 16
.LC142:

	.quad	7761038610888102073
	.quad	3071151293
	.align 16
.LC143:

	.quad	4960013060979850804
	.quad	-3655949140929067164
	.align 16
.LC144:

	.quad	-5334755671375945754
	.quad	3174523784
	.align 16
.LC145:

	.quad	2813405352741437364
	.quad	5783942125095737530
	.align 16
.LC146:

	.quad	866014579497448022
	.quad	3020229253
# WAS .section	.rodata.cst8
.text
	.align 8
.LC148:

	.long	9
	.long	9
# WAS .section	.rodata.cst16
.text
	.align 16
.LC149:

	.quad	-468798559011619482
	.quad	3695401138005885595
	.align 16
.LC150:

	.quad	-135740037768697634
	.quad	-6824256941130819288
	.align 16
.LC151:

	.quad	-565008924583051846
	.quad	-7177469824220547807
	.align 16
.LC152:

	.quad	-7043969127616760766
	.quad	-8823107236856010291
	.align 16
.LC153:

	.quad	-8593267801767975344
	.quad	3836064706166178368
	.align 16
.LC154:

	.quad	-4228676635086485663
	.quad	-7498930326476675520
	.align 16
.LC155:

	.quad	1706790690937005612
	.quad	-7424953328857299864
	.align 16
.LC156:

	.quad	6668247425720589273
	.quad	4118940400423256068
	.align 16
.LC157:

	.quad	-1205522328057790720
	.quad	3851667882566759665
	.align 16
.LC158:

	.quad	1608559935907544839
	.quad	6204052985702421371
	.align 16
.LC159:

	.quad	-5137330016661468703
	.quad	-6711926556896061965
	.align 16
.LC160:

	.quad	-7882951223617961746
	.quad	-7692507284855023073
	.align 16
.LC161:

	.quad	1
	.quad	-4294967296
	.align 16
.LC162:

	.quad	-1
	.quad	-2
	.align 16
.LC164:

	.quad	8784043285714375740
	.quad	8483257759279461889
	.align 16
.LC165:

	.quad	8789745728267363600
	.quad	1770019616739251654
	.align 16
.LC166:

	.quad	-2453807210370345462
	.quad	-8409706061646666660
	.align 16
.LC167:

	.quad	-3249199208764148955
	.quad	-8830996915122840187
	.set	.LC168,.LC161
	.align 16
.LC169:

	.quad	-1
	.quad	4294967294
	.align 16
.LC170:

	.quad	-2838148052449706529
	.quad	-5985277524727025520
	.align 16
.LC171:

	.quad	-1899920169839284522
	.quad	-2580555864783501260
# WAS .section	.rodata.cst8
.text
	.align 8
.LC189:

	.long	4
	.long	2
	.align 8
.LC190:

	.long	16
	.long	2
	.align 8
.LC191:

	.long	8
	.long	2
# WAS .section	.rodata.cst16
.text
	.align 16
.LC194:

	.quad	4503599627370494
	.quad	4503599627370494
	.align 16
.LC195:

	.quad	4503599627370458
	.quad	4503599627370494
	.align 16
.LC196:

	.quad	0
	.quad	1
	.set	.LC197,.LC4
# WAS .section	.rodata.cst8
.text
	.align 8
.LC200:

	.long	32
	.long	32
# WAS .section	.rodata.cst16
.text
	.align 16
.LC205:

	.quad	3359171074415705231
	.quad	-3687651077292536707
	.align 16
.LC206:

	.quad	-992694125786116246
	.quad	-4793429018676042723
	.align 16
.LC207:

	.quad	6074515586741271966
	.quad	1051644423395645427
	.align 16
.LC208:

	.quad	-435605666168021128
	.quad	4758811782056453615
	.align 16
.LC209:

	.quad	-175735592382031380
	.quad	-4023822190086073263
	.align 16
.LC210:

	.quad	-4633511582724959018
	.quad	-8233869742870373117
	.align 16
.LC211:

	.quad	-4680538677583186615
	.quad	-5557943475764675472
	.align 16
.LC212:

	.quad	5991621220675737066
	.quad	4105120945310687581
	.align 16
.LC213:

	.quad	4731971902727094163
	.quad	6758229162685160178
	.align 16
.LC214:

	.quad	7100597588566074964
	.quad	5058246110906960031
	.align 16
.LC215:

	.quad	-6030978895264516452
	.quad	-8578679865413062992
	.align 16
.LC216:

	.quad	-7992960609228499027
	.quad	-8323434823438941247
	.align 16
.LC217:

	.quad	-4506648749969888251
	.quad	3384878351895303664
	.align 16
.LC218:

	.quad	8822436689804529991
	.quad	3808226452541240110
	.align 16
.LC219:

	.quad	277780491725998690
	.quad	-5198857101106295187
	.align 16
.LC220:

	.quad	-9118404786889296506
	.quad	-4713263778891939632
	.align 16
.LC221:

	.quad	-60839993332923510
	.quad	7424341251431402385
	.align 16
.LC222:

	.quad	400712832331195017
	.quad	6223966119658458590
	.align 16
.LC223:

	.quad	6799961148343275887
	.quad	1417475464737931922
	.align 16
.LC224:

	.quad	-8979000740870432491
	.quad	6045371722038845821
	.align 16
.LC225:

	.quad	-3708129845046772405
	.quad	-7263788166139744869
	.align 16
.LC226:

	.quad	-5167696548649104567
	.quad	648055582116046585
	.align 16
.LC227:

	.quad	-5978484546894995681
	.quad	251894501185421120
	.align 16
.LC228:

	.quad	7515256195248939714
	.quad	-6836383203570641839
	.align 16
.LC229:

	.quad	8075981638913824384
	.quad	7250547831916872202
	.align 16
.LC230:

	.quad	-3297818116481335016
	.quad	-7374141459826325370
	.align 16
.LC231:

	.quad	4856249213121251302
	.quad	-271890210767653054
	.align 16
.LC232:

	.quad	-196576867566263437
	.quad	-2547035062731534478
	.align 16
.LC233:

	.quad	-8593055923478200959
	.quad	3702765646818244361
	.align 16
.LC234:

	.quad	-5142888303827771161
	.quad	7169053400975591239
	.align 16
.LC235:

	.quad	-5399932277478100492
	.quad	-4568599735238219285
	.align 16
.LC236:

	.quad	-4218333888308244803
	.quad	9132332911778917273
	.align 16
.LC237:

	.quad	8919600904559823221
	.quad	8187297582683736324
	.align 16
.LC238:

	.quad	8943386346255228869
	.quad	2718577150628108995
	.align 16
.LC239:

	.quad	-7494475017015608192
	.quad	9218872836512369529
	.align 16
.LC240:

	.quad	-5366907110244832206
	.quad	-2967160362724505636
	.align 16
.LC241:

	.quad	-8472806837576688986
	.quad	-5592104970005386942
	.align 16
.LC242:

	.quad	-6085824336793172597
	.quad	-6505098926190952800
	.align 16
.LC243:

	.quad	4046727909889870078
	.quad	275641103373123891
	.align 16
.LC244:

	.quad	-5953874056520634629
	.quad	1070491606220678003
	.align 16
.LC245:

	.quad	2432332116270621847
	.quad	6822307286733410726
	.align 16
.LC246:

	.quad	3630546528317738908
	.quad	-8262758981221588226
	.align 16
.LC247:

	.quad	-2179924681447519613
	.quad	-798051666648866979
	.align 16
.LC248:

	.quad	-1149798053682322891
	.quad	1512639546991202881
	.align 16
.LC249:

	.quad	-5330586828592636932
	.quad	6038447806021164652
	.align 16
.LC250:

	.quad	1766384860382732069
	.quad	8990402774020300228
	.align 16
.LC251:

	.quad	-2790857847564037668
	.quad	3556693000767237220
	.align 16
.LC252:

	.quad	-8894897243876912253
	.quad	-7168770653496605617
	.align 16
.LC253:

	.quad	-1483042198550705194
	.quad	-7675766479325214744
	.align 16
.LC254:

	.quad	-687286909842541362
	.quad	1298242931874410216
# WAS .section	.rodata.cst8
.text
	.align 8
.LC267:

	.long	4
	.long	1
# WAS .section	.rodata.cst16
.text
	.align 16
.LC306:

	.long	1732584193
	.long	-271733879
	.long	-1732584194
	.long	271733878
	.align 16
.LC307:

	.value	-3327
	.value	-3327
	.value	-3327
	.value	-3327
	.value	-3327
	.value	-3327
	.value	-3327
	.value	-3327
	.align 16
.LC308:

	.value	-3329
	.value	-3329
	.value	-3329
	.value	-3329
	.value	-3329
	.value	-3329
	.value	-3329
	.value	-3329
	.align 16
.LC309:

	.value	20159
	.value	20159
	.value	20159
	.value	20159
	.value	20159
	.value	20159
	.value	20159
	.value	20159
	.align 16
.LC310:

	.long	33554432
	.long	33554432
	.long	33554432
	.long	33554432
	.align 16
.LC311:

	.value	3329
	.value	3329
	.value	3329
	.value	3329
	.value	3329
	.value	3329
	.value	3329
	.value	3329
	.align 16
.LC312:

	.value	1441
	.value	1441
	.value	1441
	.value	1441
	.value	1441
	.value	1441
	.value	1441
	.value	1441
	.align 16
.LC313:

	.quad	2
	.quad	3
	.align 16
.LC314:

	.quad	128
	.quad	768
	.align 16
.LC315:

	.quad	640
	.quad	800
	.align 16
.LC316:

	.quad	768
	.quad	768
	.align 16
.LC317:

	.quad	3
	.quad	2
	.align 16
.LC318:

	.quad	128
	.quad	1152
	.align 16
.LC319:

	.quad	960
	.quad	1184
	.align 16
.LC320:

	.quad	1152
	.quad	1088
	.align 16
.LC321:

	.quad	4
	.quad	2
	.align 16
.LC322:

	.quad	160
	.quad	1536
	.align 16
.LC323:

	.quad	1408
	.quad	1568
	.align 16
.LC324:

	.quad	1536
	.quad	1568
	.align 16
.LC325:

	.long	3329
	.long	3329
	.long	3329
	.long	3329
	.align 16
.LC326:

	.long	1665
	.long	1665
	.long	1665
	.long	1665
	.align 16
.LC327:

	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.value	255
	.align 16
.LC328:

	.value	8
	.value	8
	.value	8
	.value	8
	.value	8
	.value	8
	.value	8
	.value	8
	.align 16
.LC329:

	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.byte	2
	.align 16
.LC330:

	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.byte	1
	.align 16
.LC331:

	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.byte	4
	.align 16
.LC332:

	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.align 16
.LC333:

	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.byte	16
	.align 16
.LC334:

	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.byte	32
	.align 16
.LC335:

	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.byte	64
	.align 16
.LC336:

	.value	1353
	.value	1353
	.value	1353
	.value	1353
	.value	1353
	.value	1353
	.value	1353
	.value	1353
	.align 16
.LC337:

	.byte	83
	.byte	15
	.byte	-118
	.byte	-5
	.byte	-57
	.byte	69
	.byte	54
	.byte	-71
	.byte	-87
	.byte	99
	.byte	-76
	.byte	-15
	.byte	-60
	.byte	-53
	.byte	115
	.byte	-117
	.align 16
.LC338:

	.byte	-50
	.byte	-89
	.byte	64
	.byte	61
	.byte	77
	.byte	96
	.byte	107
	.byte	110
	.byte	7
	.byte	78
	.byte	-59
	.byte	-45
	.byte	-70
	.byte	-13
	.byte	-99
	.byte	24
	.align 16
.LC339:

	.byte	114
	.byte	96
	.byte	3
	.byte	-54
	.byte	55
	.byte	-90
	.byte	42
	.byte	116
	.byte	-47
	.byte	-94
	.byte	-11
	.byte	-114
	.byte	117
	.byte	6
	.byte	53
	.byte	-114
	.align 16
.LC355:

	.quad	3906369333256140342
	.quad	3906369333256140342
	.align 16
.LC356:

	.quad	6655295901103053916
	.quad	6655295901103053916
	.align 16
.LC374:

	.long	-1056596264
	.long	914150663
	.long	812702999
	.long	-150054599
	.align 16
.LC375:

	.long	-4191439
	.long	1750603025
	.long	1694076839
	.long	-1090891868
	.align 16
.LC376:

	.long	1779033703
	.long	-1150833019
	.long	1013904242
	.long	-1521486534
	.align 16
.LC377:

	.long	1359893119
	.long	-1694144372
	.long	528734635
	.long	1541459225
	.align 16
.LC400:

	.quad	-382110027351598100
	.quad	-3318229454019085018
	.align 16
.LC401:

	.quad	3933311542182584658
	.quad	-2945251002391908233
	.align 16
.LC402:

	.quad	6792629458811160347
	.quad	2656884546628970001
	.align 16
.LC403:

	.quad	4104342345896464171
	.quad	3630399203301529563
	.align 16
.LC404:

	.quad	6085900289190823724
	.quad	3839002204370820980
	.align 16
.LC405:

	.quad	1255030971398613305
	.quad	252746407802568067
	.align 16
.LC406:

	.quad	9055701883097674407
	.quad	-5840510059796534391
	.align 16
.LC407:

	.quad	-6576850112580617979
	.quad	3055237889931596833
	.align 16
.LC408:

	.quad	-6095804818675187266
	.quad	4350081307183153399
	.align 16
.LC409:

	.quad	-2196712493415364834
	.quad	6511683953387516119
	.align 16
.LC410:

	.quad	-6989130336980374120
	.quad	-6891798445153448395
	.align 16
.LC411:

	.quad	5702812509378694806
	.quad	-4777839788135504519
	.align 16
.LC413:

	.quad	-3766243637369397544
	.quad	7105036623409894663
	.align 16
.LC414:

	.quad	-7973340178411365097
	.quad	1526699215303891257
	.align 16
.LC415:

	.quad	7436329637833083697
	.quad	-8163818279084223215
	.align 16
.LC416:

	.quad	-2662702644619276377
	.quad	5167115440072839076
# WAS .section	.rodata.cst8
.text
	.align 8
.LC417:

	.long	0
	.long	48
# WAS .section	.rodata.cst16
.text
	.align 16
.LC418:

	.quad	7640891576956012808
	.quad	-4942790177534073029
	.align 16
.LC419:

	.quad	4354685564936845355
	.quad	-6534734903238641935
	.align 16
.LC420:

	.quad	5840696475078001361
	.quad	-7276294671716946913
	.align 16
.LC421:

	.quad	2270897969802886507
	.quad	6620516959819538809
# WAS .section	.rodata.cst8
.text
	.align 8
.LC422:

	.long	0
	.long	64
# WAS .section	.rodata.cst16
.text
	.align 16
.LC423:

	.quad	-8341449602262348382
	.quad	8350123849800275158
	.align 16
.LC424:

	.quad	2160240930085379202
	.quad	7466358040605728719
	.align 16
.LC425:

	.quad	1111592415079452072
	.quad	8638871050018654530
	.align 16
.LC426:

	.quad	4583966954114332360
	.quad	1230299281376055969
# WAS .section	.rodata.cst8
.text
	.align 8
.LC427:

	.long	0
	.long	28
# WAS .section	.rodata.cst16
.text
	.align 16
.LC428:

	.quad	2463787394917988140
	.quad	-6965556091613846334
	.align 16
.LC429:

	.quad	2563595384472711505
	.quad	-7622211418569250115
	.align 16
.LC430:

	.quad	-7626776825740460061
	.quad	-4729309413028513390
	.align 16
.LC431:

	.quad	3098927326965381290
	.quad	1060366662362279074
# WAS .section	.rodata.cst8
.text
	.align 8
.LC432:

	.long	0
	.long	32
# WAS .section	.rodata.cst16
.text
	.align 16
.LC438:

	.quad	-3302814991127307853
	.quad	-4538595268775528931
	.align 16
.LC439:

	.quad	-8090278395210704003
	.quad	1482352653681908142
	.align 16
.LC440:

	.quad	-6389965537156303385
	.quad	-566120860218385946
	.align 16
.LC441:

	.quad	4380099872746042162
	.quad	-5024146822682987198
	.align 16
.LC442:

	.quad	6272168342703577648
	.quad	-5261791941622989521
	.align 16
.LC443:

	.quad	-6017679514073786173
	.quad	1851697266664304973
	.align 16
.LC444:

	.quad	3793565265758585734
	.quad	8685770970783388452
	.align 16
.LC445:

	.quad	-6719711728887196347
	.quad	1085518394474623395
	.align 16
.LC446:

	.quad	6556474215353687315
	.quad	-3147861131703423030
	.align 16
.LC447:

	.quad	-4063136282914596213
	.quad	7387210361923278107
	.align 16
.LC448:

	.quad	-250592661279593904
	.quad	4797216946411031753
	.align 16
.LC449:

	.quad	3448689946041162699
	.quad	1992498971798501502
	.align 16
.LC450:

	.quad	-3859554302389980336
	.quad	8952904300832758720
	.align 16
.LC451:

	.quad	457913329892378794
	.quad	-137564835767522376
	.align 16
.LC452:

	.quad	-1005641232095029700
	.quad	-280749038809383183
	.align 16
.LC453:

	.quad	-3642881286313679818
	.quad	8991544467690116761
	.align 16
.LC482:

	.quad	795741901218843403
	.quad	795741901218843403
	.align 16
.LC483:

	.quad	-3230475277992649251
	.quad	-328003479250172653
	.align 16
.LC484:

	.quad	4819677790614430712
	.quad	-2256522344794400282
	.align 16
.LC485:

	.quad	4683093523028992528
	.quad	-1091049845729367036
	.ident	"GCC: (Ubuntu 13.4.0-10ubuntu1) 13.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:

	.string	"GNU"
1:

	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:

	.long	0x3
3:

	.align 8
4:

# 0 "aesni-gcm-avx512.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "aesni-gcm-avx512.S"



#include <openssl/asm_base.h>
# 4 "aesni-gcm-avx512.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "aesni-gcm-avx512.S" 2



.text
.globl gcm_init_avx512
.hidden gcm_init_avx512
.hidden gcm_init_avx512
.type gcm_init_avx512,@function
.align 32
.Lgcm_init_avx512_local_target:
gcm_init_avx512:
.cfi_startproc
.byte 243,15,30,250
 vmovdqu64 (%rsi),%xmm16
 vpalignr $8,%xmm16,%xmm16,%xmm16

 vmovdqa64 %xmm16,%xmm2
 vpsllq $1,%xmm16,%xmm16
 vpsrlq $63,%xmm2,%xmm2
 vmovdqa %xmm2,%xmm1
 vpslldq $8,%xmm2,%xmm2
 vpsrldq $8,%xmm1,%xmm1
 vporq %xmm2,%xmm16,%xmm16

 vpshufd $36,%xmm1,%xmm2
# WAS vpcmpeqd TWOONE(%rip),%xmm2,%xmm2
	vpcmpeqd	.LTWOONE_local_target(%rip), %xmm2, %xmm2
# WAS vpand POLY(%rip),%xmm2,%xmm2
	vpand	.LPOLY_local_target(%rip), %xmm2, %xmm2
 vpxorq %xmm2,%xmm16,%xmm16

 vmovdqu64 %xmm16,240(%rdi)
 vshufi32x4 $0x00,%ymm16,%ymm16,%ymm4
 vmovdqa %ymm4,%ymm3

.byte 98,243,101,40,68,196,17
.byte 98,243,101,40,68,204,0
.byte 98,243,101,40,68,212,1
.byte 98,243,101,40,68,220,16
 vpxorq %ymm2,%ymm3,%ymm3

 vpsrldq $8,%ymm3,%ymm2
 vpslldq $8,%ymm3,%ymm3
 vpxorq %ymm2,%ymm0,%ymm0
 vpxorq %ymm1,%ymm3,%ymm3



# WAS vmovdqu64 POLY2(%rip),%ymm2
	vmovdqu64	.LPOLY2_local_target(%rip), %ymm2

.byte 98,243,109,40,68,203,1
 vpslldq $8,%ymm1,%ymm1
 vpxorq %ymm1,%ymm3,%ymm3



.byte 98,243,109,40,68,203,0
 vpsrldq $4,%ymm1,%ymm1
.byte 98,243,109,40,68,219,16
 vpslldq $4,%ymm3,%ymm3

 vpternlogq $0x96,%ymm1,%ymm0,%ymm3

 vmovdqu64 %xmm3,224(%rdi)
 vinserti64x2 $1,%xmm16,%ymm3,%ymm4
 vmovdqa64 %ymm4,%ymm5

.byte 98,243,93,40,68,195,17
.byte 98,243,93,40,68,203,0
.byte 98,243,93,40,68,211,1
.byte 98,243,93,40,68,227,16
 vpxorq %ymm2,%ymm4,%ymm4

 vpsrldq $8,%ymm4,%ymm2
 vpslldq $8,%ymm4,%ymm4
 vpxorq %ymm2,%ymm0,%ymm0
 vpxorq %ymm1,%ymm4,%ymm4



# WAS vmovdqu64 POLY2(%rip),%ymm2
	vmovdqu64	.LPOLY2_local_target(%rip), %ymm2

.byte 98,243,109,40,68,204,1
 vpslldq $8,%ymm1,%ymm1
 vpxorq %ymm1,%ymm4,%ymm4



.byte 98,243,109,40,68,204,0
 vpsrldq $4,%ymm1,%ymm1
.byte 98,243,109,40,68,228,16
 vpslldq $4,%ymm4,%ymm4

 vpternlogq $0x96,%ymm1,%ymm0,%ymm4

 vmovdqu64 %ymm4,192(%rdi)

 vinserti64x4 $1,%ymm5,%zmm4,%zmm4


 vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3
 vmovdqa64 %zmm4,%zmm5

.byte 98,243,93,72,68,195,17
.byte 98,243,93,72,68,203,0
.byte 98,243,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm2,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm2
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm2,%zmm0,%zmm0
 vpxorq %zmm1,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm2
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm2

.byte 98,243,109,72,68,204,1
 vpslldq $8,%zmm1,%zmm1
 vpxorq %zmm1,%zmm4,%zmm4



.byte 98,243,109,72,68,204,0
 vpsrldq $4,%zmm1,%zmm1
.byte 98,243,109,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm1,%zmm0,%zmm4

 vmovdqu64 %zmm4,128(%rdi)
 vshufi64x2 $0x00,%zmm4,%zmm4,%zmm3

.byte 98,243,85,72,68,195,17
.byte 98,243,85,72,68,203,0
.byte 98,243,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm2,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm2
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm2,%zmm0,%zmm0
 vpxorq %zmm1,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm2
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm2

.byte 98,243,109,72,68,205,1
 vpslldq $8,%zmm1,%zmm1
 vpxorq %zmm1,%zmm5,%zmm5



.byte 98,243,109,72,68,205,0
 vpsrldq $4,%zmm1,%zmm1
.byte 98,243,109,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm1,%zmm0,%zmm5

 vmovdqu64 %zmm5,64(%rdi)

.byte 98,243,93,72,68,195,17
.byte 98,243,93,72,68,203,0
.byte 98,243,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm2,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm2
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm2,%zmm0,%zmm0
 vpxorq %zmm1,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm2
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm2

.byte 98,243,109,72,68,204,1
 vpslldq $8,%zmm1,%zmm1
 vpxorq %zmm1,%zmm4,%zmm4



.byte 98,243,109,72,68,204,0
 vpsrldq $4,%zmm1,%zmm1
.byte 98,243,109,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm1,%zmm0,%zmm4

 vmovdqu64 %zmm4,0(%rdi)
 vzeroupper
.Lexit_init_BCM_4:

 .byte 0xf3,0xc3
.cfi_endproc
.size gcm_init_avx512, .-gcm_init_avx512
.globl gcm_gmult_avx512
.hidden gcm_gmult_avx512
.hidden gcm_gmult_avx512
.type gcm_gmult_avx512,@function
.align 32
.Lgcm_gmult_avx512_local_target:
gcm_gmult_avx512:
.cfi_startproc
.byte 243,15,30,250
 vmovdqu64 (%rdi),%xmm1


# WAS vpshufb SHUF_MASK(%rip),%xmm1,%xmm1
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm1, %xmm1
 vmovdqu64 240(%rsi),%xmm2

.byte 98,243,117,8,68,218,17
.byte 98,243,117,8,68,226,0
.byte 98,243,117,8,68,234,1
.byte 98,243,117,8,68,202,16
 vpxorq %xmm5,%xmm1,%xmm1

 vpsrldq $8,%xmm1,%xmm5
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm5,%xmm3,%xmm3
 vpxorq %xmm4,%xmm1,%xmm1



# WAS vmovdqu64 POLY2(%rip),%xmm5
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm5

.byte 98,243,85,8,68,225,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm1,%xmm1



.byte 98,243,85,8,68,225,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,243,85,8,68,201,16
 vpslldq $4,%xmm1,%xmm1

 vpternlogq $0x96,%xmm4,%xmm3,%xmm1

# WAS vpshufb SHUF_MASK(%rip),%xmm1,%xmm1
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm1, %xmm1
 vmovdqu64 %xmm1,(%rdi)
 vzeroupper
.Lexit_gmult_BCM_4:

 .byte 0xf3,0xc3
.cfi_endproc
.size gcm_gmult_avx512, .-gcm_gmult_avx512
.globl gcm_ghash_avx512
.hidden gcm_ghash_avx512
.hidden gcm_ghash_avx512
.type gcm_ghash_avx512,@function
.align 32
.Lgcm_ghash_avx512_local_target:
gcm_ghash_avx512:
.cfi_startproc
.Lghash_seh_begin_BCM_4:

.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
.Lghash_seh_push_rbx_BCM_4:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
.Lghash_seh_push_rbp_BCM_4:

 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
.Lghash_seh_push_r12_BCM_4:

 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
.Lghash_seh_push_r13_BCM_4:

 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
.Lghash_seh_push_r14_BCM_4:

 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lghash_seh_push_r15_BCM_4:

# 292 "aesni-gcm-avx512.S"
 leaq 0(%rsp),%rbp
.cfi_def_cfa_register %rbp
.Lghash_seh_setfp_BCM_4:


.Lghash_seh_prolog_end_BCM_4:

 subq $820,%rsp
 andq $(-64),%rsp
 vmovdqu64 (%rdi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 movq %rdx,%r10
 movq %rcx,%r11
 orq %r11,%r11
# WAS jz .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jz	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4

 xorq %rbx,%rbx
# WAS vmovdqa64 SHUF_MASK(%rip),%zmm16
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm16

.L_get_AAD_loop48x16_hEgxyDlCngwrfFe_BCM_4:

 cmpq $768,%r11
# WAS jl .L_exit_AAD_loop48x16_hEgxyDlCngwrfFe
	jl	.L_exit_AAD_loop48x16_hEgxyDlCngwrfFe_BCM_4
 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 testq %rbx,%rbx
# WAS jnz .L_skip_hkeys_precomputation_amivrujEyduiFoi
	jnz	.L_skip_hkeys_precomputation_amivrujEyduiFoi_BCM_4

 vmovdqu64 192(%rsi),%zmm1
 vmovdqu64 %zmm1,704(%rsp)

 vmovdqu64 128(%rsi),%zmm9
 vmovdqu64 %zmm9,640(%rsp)


 vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9

 vmovdqu64 64(%rsi),%zmm10
 vmovdqu64 %zmm10,576(%rsp)

 vmovdqu64 0(%rsi),%zmm12
 vmovdqu64 %zmm12,512(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,448(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,384(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,320(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,256(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,192(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,128(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,64(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,0(%rsp)
.L_skip_hkeys_precomputation_amivrujEyduiFoi_BCM_4:

 movq $1,%rbx
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 0(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 64(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 128(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 192(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 256(%r10),%zmm11
 vmovdqu64 320(%r10),%zmm3
 vmovdqu64 384(%r10),%zmm4
 vmovdqu64 448(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 256(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 320(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 384(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 448(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 512(%r10),%zmm11
 vmovdqu64 576(%r10),%zmm3
 vmovdqu64 640(%r10),%zmm4
 vmovdqu64 704(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 512(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 576(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 640(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 704(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,115,45,8,68,241,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm6,%xmm9,%xmm14

 subq $768,%r11
# WAS je .L_CALC_AAD_done_hEgxyDlCngwrfFe
	je	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4

 addq $768,%r10
# WAS jmp .L_get_AAD_loop48x16_hEgxyDlCngwrfFe
	jmp	.L_get_AAD_loop48x16_hEgxyDlCngwrfFe_BCM_4

.L_exit_AAD_loop48x16_hEgxyDlCngwrfFe_BCM_4:


 cmpq $512,%r11
# WAS jl .L_less_than_32x16_hEgxyDlCngwrfFe
	jl	.L_less_than_32x16_hEgxyDlCngwrfFe_BCM_4

 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 testq %rbx,%rbx
# WAS jnz .L_skip_hkeys_precomputation_wcpqaDvsGlbjGoe
	jnz	.L_skip_hkeys_precomputation_wcpqaDvsGlbjGoe_BCM_4

 vmovdqu64 192(%rsi),%zmm1
 vmovdqu64 %zmm1,704(%rsp)

 vmovdqu64 128(%rsi),%zmm9
 vmovdqu64 %zmm9,640(%rsp)


 vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9

 vmovdqu64 64(%rsi),%zmm10
 vmovdqu64 %zmm10,576(%rsp)

 vmovdqu64 0(%rsi),%zmm12
 vmovdqu64 %zmm12,512(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,448(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,384(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,320(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,256(%rsp)
.L_skip_hkeys_precomputation_wcpqaDvsGlbjGoe_BCM_4:

 movq $1,%rbx
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 256(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 320(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 384(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 448(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 256(%r10),%zmm11
 vmovdqu64 320(%r10),%zmm3
 vmovdqu64 384(%r10),%zmm4
 vmovdqu64 448(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 512(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 576(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 640(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 704(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,115,45,8,68,241,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm6,%xmm9,%xmm14

 subq $512,%r11
# WAS je .L_CALC_AAD_done_hEgxyDlCngwrfFe
	je	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4

 addq $512,%r10
# WAS jmp .L_less_than_16x16_hEgxyDlCngwrfFe
	jmp	.L_less_than_16x16_hEgxyDlCngwrfFe_BCM_4

.L_less_than_32x16_hEgxyDlCngwrfFe_BCM_4:

 cmpq $256,%r11
# WAS jl .L_less_than_16x16_hEgxyDlCngwrfFe
	jl	.L_less_than_16x16_hEgxyDlCngwrfFe_BCM_4

 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 0(%rsi),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 64(%rsi),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 128(%rsi),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 192(%rsi),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,115,45,8,68,241,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm6,%xmm9,%xmm14

 subq $256,%r11
# WAS je .L_CALC_AAD_done_hEgxyDlCngwrfFe
	je	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4

 addq $256,%r10

.L_less_than_16x16_hEgxyDlCngwrfFe_BCM_4:


# WAS leaq byte64_len_to_mask_table(%rip),%r12
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r12
 leaq (%r12,%r11,8),%r12


 addl $15,%r11d
 shrl $4,%r11d
 cmpl $2,%r11d
# WAS jb .L_AAD_blocks_1_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_1_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_2_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_2_hEgxyDlCngwrfFe_BCM_4
 cmpl $4,%r11d
# WAS jb .L_AAD_blocks_3_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_3_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_4_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_4_hEgxyDlCngwrfFe_BCM_4
 cmpl $6,%r11d
# WAS jb .L_AAD_blocks_5_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_5_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_6_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_6_hEgxyDlCngwrfFe_BCM_4
 cmpl $8,%r11d
# WAS jb .L_AAD_blocks_7_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_7_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_8_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_8_hEgxyDlCngwrfFe_BCM_4
 cmpl $10,%r11d
# WAS jb .L_AAD_blocks_9_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_9_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_10_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_10_hEgxyDlCngwrfFe_BCM_4
 cmpl $12,%r11d
# WAS jb .L_AAD_blocks_11_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_11_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_12_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_12_hEgxyDlCngwrfFe_BCM_4
 cmpl $14,%r11d
# WAS jb .L_AAD_blocks_13_hEgxyDlCngwrfFe
	jb	.L_AAD_blocks_13_hEgxyDlCngwrfFe_BCM_4
# WAS je .L_AAD_blocks_14_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_14_hEgxyDlCngwrfFe_BCM_4
 cmpl $15,%r11d
# WAS je .L_AAD_blocks_15_hEgxyDlCngwrfFe
	je	.L_AAD_blocks_15_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_16_hEgxyDlCngwrfFe_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%zmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 0(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 64(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 128(%rsi),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm9,%zmm11,%zmm1
 vpternlogq $0x96,%zmm10,%zmm3,%zmm6
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm12,%zmm11,%zmm7
 vpternlogq $0x96,%zmm13,%zmm3,%zmm8
 vmovdqu64 192(%rsi),%zmm15
.byte 98,83,85,72,68,207,17
.byte 98,83,85,72,68,215,0
.byte 98,83,85,72,68,231,1
.byte 98,83,85,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_15_hEgxyDlCngwrfFe_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%zmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 16(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 80(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 144(%rsi),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 208(%rsi),%ymm15
 vinserti64x2 $2,240(%rsi),%zmm15,%zmm15
.byte 98,211,85,72,68,255,1
.byte 98,83,85,72,68,199,16
.byte 98,211,85,72,68,207,17
.byte 98,211,85,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_14_hEgxyDlCngwrfFe_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%ymm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %ymm16,%ymm5,%ymm5
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 32(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 96(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 160(%rsi),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 224(%rsi),%ymm15
.byte 98,211,85,40,68,255,1
.byte 98,83,85,40,68,199,16
.byte 98,211,85,40,68,207,17
.byte 98,211,85,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_13_hEgxyDlCngwrfFe_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%xmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %xmm16,%xmm5,%xmm5
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 48(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 112(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 176(%rsi),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 240(%rsi),%xmm15
.byte 98,211,85,8,68,255,1
.byte 98,83,85,8,68,199,16
.byte 98,211,85,8,68,207,17
.byte 98,211,85,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_12_hEgxyDlCngwrfFe_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 64(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 128(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 192(%rsi),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_11_hEgxyDlCngwrfFe_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 80(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 144(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 208(%rsi),%ymm15
 vinserti64x2 $2,240(%rsi),%zmm15,%zmm15
.byte 98,211,93,72,68,255,1
.byte 98,83,93,72,68,199,16
.byte 98,211,93,72,68,207,17
.byte 98,211,93,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_10_hEgxyDlCngwrfFe_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%ymm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %ymm16,%ymm4,%ymm4
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 96(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 160(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 224(%rsi),%ymm15
.byte 98,211,93,40,68,255,1
.byte 98,83,93,40,68,199,16
.byte 98,211,93,40,68,207,17
.byte 98,211,93,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_9_hEgxyDlCngwrfFe_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%xmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %xmm16,%xmm4,%xmm4
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 112(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 176(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 240(%rsi),%xmm15
.byte 98,211,93,8,68,255,1
.byte 98,83,93,8,68,199,16
.byte 98,211,93,8,68,207,17
.byte 98,211,93,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_8_hEgxyDlCngwrfFe_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 128(%rsi),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 192(%rsi),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_7_hEgxyDlCngwrfFe_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 144(%rsi),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 208(%rsi),%ymm15
 vinserti64x2 $2,240(%rsi),%zmm15,%zmm15
.byte 98,211,101,72,68,255,1
.byte 98,83,101,72,68,199,16
.byte 98,211,101,72,68,207,17
.byte 98,211,101,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_6_hEgxyDlCngwrfFe_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%ymm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %ymm16,%ymm3,%ymm3
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 160(%rsi),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 224(%rsi),%ymm15
.byte 98,211,101,40,68,255,1
.byte 98,83,101,40,68,199,16
.byte 98,211,101,40,68,207,17
.byte 98,211,101,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_5_hEgxyDlCngwrfFe_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%xmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %xmm16,%xmm3,%xmm3
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 176(%rsi),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 240(%rsi),%xmm15
.byte 98,211,101,8,68,255,1
.byte 98,83,101,8,68,199,16
.byte 98,211,101,8,68,207,17
.byte 98,211,101,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_4_hEgxyDlCngwrfFe_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 192(%rsi),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_3_hEgxyDlCngwrfFe_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 208(%rsi),%ymm15
 vinserti64x2 $2,240(%rsi),%zmm15,%zmm15
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_2_hEgxyDlCngwrfFe_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%ymm11{%k1}{z}
 vpshufb %ymm16,%ymm11,%ymm11
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 224(%rsi),%ymm15
.byte 98,211,37,40,68,255,1
.byte 98,83,37,40,68,199,16
.byte 98,211,37,40,68,207,17
.byte 98,211,37,40,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

# WAS jmp .L_CALC_AAD_done_hEgxyDlCngwrfFe
	jmp	.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4
.L_AAD_blocks_1_hEgxyDlCngwrfFe_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%xmm11{%k1}{z}
 vpshufb %xmm16,%xmm11,%xmm11
 vpxorq %zmm14,%zmm11,%zmm11
 vmovdqu64 240(%rsi),%xmm15
.byte 98,211,37,8,68,255,1
.byte 98,83,37,8,68,199,16
.byte 98,211,37,8,68,207,17
.byte 98,211,37,8,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,115,5,8,68,247,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm1,%xmm8,%xmm14

.L_CALC_AAD_done_hEgxyDlCngwrfFe_BCM_4:

# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,(%rdi)
 cmpq $256,%rcx
# WAS jbe .Lskip_hkeys_cleanup_EmbgEptodyewbFa
	jbe	.Lskip_hkeys_cleanup_EmbgEptodyewbFa_BCM_4
 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %zmm0,0(%rsp)
 vmovdqa64 %zmm0,64(%rsp)
 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)
 vmovdqa64 %zmm0,320(%rsp)
 vmovdqa64 %zmm0,384(%rsp)
 vmovdqa64 %zmm0,448(%rsp)
 vmovdqa64 %zmm0,512(%rsp)
 vmovdqa64 %zmm0,576(%rsp)
 vmovdqa64 %zmm0,640(%rsp)
 vmovdqa64 %zmm0,704(%rsp)
.Lskip_hkeys_cleanup_EmbgEptodyewbFa_BCM_4:

 vzeroupper
 leaq (%rbp),%rsp
.cfi_def_cfa_register %rsp
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
.Lexit_ghash_BCM_4:

 .byte 0xf3,0xc3
.Lghash_seh_end_BCM_4:

.cfi_endproc
.size gcm_ghash_avx512, .-gcm_ghash_avx512
.globl gcm_setiv_avx512
.hidden gcm_setiv_avx512
.hidden gcm_setiv_avx512
.type gcm_setiv_avx512,@function
.align 32
.Lgcm_setiv_avx512_local_target:
gcm_setiv_avx512:
.cfi_startproc
.Lsetiv_seh_begin_BCM_4:

.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
.Lsetiv_seh_push_rbx_BCM_4:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
.Lsetiv_seh_push_rbp_BCM_4:

 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
.Lsetiv_seh_push_r12_BCM_4:

 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
.Lsetiv_seh_push_r13_BCM_4:

 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
.Lsetiv_seh_push_r14_BCM_4:

 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lsetiv_seh_push_r15_BCM_4:

# 2053 "aesni-gcm-avx512.S"
 leaq 0(%rsp),%rbp
.cfi_def_cfa_register %rbp
.Lsetiv_seh_setfp_BCM_4:


.Lsetiv_seh_prolog_end_BCM_4:

 subq $820,%rsp
 andq $(-64),%rsp
 cmpq $12,%rcx
# WAS je iv_len_12_init_IV
	je	.Liv_len_12_init_IV_local_target
 vpxor %xmm2,%xmm2,%xmm2
 leaq 80(%rsi),%r13
 movq %rdx,%r10
 movq %rcx,%r11
 orq %r11,%r11
# WAS jz .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jz	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4

 xorq %rbx,%rbx
# WAS vmovdqa64 SHUF_MASK(%rip),%zmm16
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm16

.L_get_AAD_loop48x16_bnzFsuvmDknpsbp_BCM_4:

 cmpq $768,%r11
# WAS jl .L_exit_AAD_loop48x16_bnzFsuvmDknpsbp
	jl	.L_exit_AAD_loop48x16_bnzFsuvmDknpsbp_BCM_4
 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 testq %rbx,%rbx
# WAS jnz .L_skip_hkeys_precomputation_dBmbyqhifbmbobw
	jnz	.L_skip_hkeys_precomputation_dBmbyqhifbmbobw_BCM_4

 vmovdqu64 192(%r13),%zmm1
 vmovdqu64 %zmm1,704(%rsp)

 vmovdqu64 128(%r13),%zmm9
 vmovdqu64 %zmm9,640(%rsp)


 vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9

 vmovdqu64 64(%r13),%zmm10
 vmovdqu64 %zmm10,576(%rsp)

 vmovdqu64 0(%r13),%zmm12
 vmovdqu64 %zmm12,512(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,448(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,384(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,320(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,256(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,192(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,128(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,64(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,0(%rsp)
.L_skip_hkeys_precomputation_dBmbyqhifbmbobw_BCM_4:

 movq $1,%rbx
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 0(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 64(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 128(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 192(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 256(%r10),%zmm11
 vmovdqu64 320(%r10),%zmm3
 vmovdqu64 384(%r10),%zmm4
 vmovdqu64 448(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 256(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 320(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 384(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 448(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 512(%r10),%zmm11
 vmovdqu64 576(%r10),%zmm3
 vmovdqu64 640(%r10),%zmm4
 vmovdqu64 704(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 512(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 576(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 640(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 704(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,243,45,8,68,209,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm6,%xmm9,%xmm2

 subq $768,%r11
# WAS je .L_CALC_AAD_done_bnzFsuvmDknpsbp
	je	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4

 addq $768,%r10
# WAS jmp .L_get_AAD_loop48x16_bnzFsuvmDknpsbp
	jmp	.L_get_AAD_loop48x16_bnzFsuvmDknpsbp_BCM_4

.L_exit_AAD_loop48x16_bnzFsuvmDknpsbp_BCM_4:


 cmpq $512,%r11
# WAS jl .L_less_than_32x16_bnzFsuvmDknpsbp
	jl	.L_less_than_32x16_bnzFsuvmDknpsbp_BCM_4

 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 testq %rbx,%rbx
# WAS jnz .L_skip_hkeys_precomputation_javBbvtBBkicjdB
	jnz	.L_skip_hkeys_precomputation_javBbvtBBkicjdB_BCM_4

 vmovdqu64 192(%r13),%zmm1
 vmovdqu64 %zmm1,704(%rsp)

 vmovdqu64 128(%r13),%zmm9
 vmovdqu64 %zmm9,640(%rsp)


 vshufi64x2 $0x00,%zmm9,%zmm9,%zmm9

 vmovdqu64 64(%r13),%zmm10
 vmovdqu64 %zmm10,576(%rsp)

 vmovdqu64 0(%r13),%zmm12
 vmovdqu64 %zmm12,512(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,448(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,384(%rsp)

.byte 98,83,45,72,68,233,17
.byte 98,83,45,72,68,249,0
.byte 98,195,45,72,68,201,1
.byte 98,83,45,72,68,209,16
 vpxorq %zmm17,%zmm10,%zmm10

 vpsrldq $8,%zmm10,%zmm17
 vpslldq $8,%zmm10,%zmm10
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm10,%zmm10



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,250,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm10,%zmm10



.byte 98,83,117,64,68,250,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,210,16
 vpslldq $4,%zmm10,%zmm10

 vpternlogq $0x96,%zmm15,%zmm13,%zmm10

 vmovdqu64 %zmm10,320(%rsp)

.byte 98,83,29,72,68,233,17
.byte 98,83,29,72,68,249,0
.byte 98,195,29,72,68,201,1
.byte 98,83,29,72,68,225,16
 vpxorq %zmm17,%zmm12,%zmm12

 vpsrldq $8,%zmm12,%zmm17
 vpslldq $8,%zmm12,%zmm12
 vpxorq %zmm17,%zmm13,%zmm13
 vpxorq %zmm15,%zmm12,%zmm12



# WAS vmovdqu64 POLY2(%rip),%zmm17
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm17

.byte 98,83,117,64,68,252,1
 vpslldq $8,%zmm15,%zmm15
 vpxorq %zmm15,%zmm12,%zmm12



.byte 98,83,117,64,68,252,0
 vpsrldq $4,%zmm15,%zmm15
.byte 98,83,117,64,68,228,16
 vpslldq $4,%zmm12,%zmm12

 vpternlogq $0x96,%zmm15,%zmm13,%zmm12

 vmovdqu64 %zmm12,256(%rsp)
.L_skip_hkeys_precomputation_javBbvtBBkicjdB_BCM_4:

 movq $1,%rbx
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 256(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 320(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 384(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 448(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 256(%r10),%zmm11
 vmovdqu64 320(%r10),%zmm3
 vmovdqu64 384(%r10),%zmm4
 vmovdqu64 448(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vmovdqu64 512(%rsp),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 576(%rsp),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 640(%rsp),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 704(%rsp),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,243,45,8,68,209,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm6,%xmm9,%xmm2

 subq $512,%r11
# WAS je .L_CALC_AAD_done_bnzFsuvmDknpsbp
	je	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4

 addq $512,%r10
# WAS jmp .L_less_than_16x16_bnzFsuvmDknpsbp
	jmp	.L_less_than_16x16_bnzFsuvmDknpsbp_BCM_4

.L_less_than_32x16_bnzFsuvmDknpsbp_BCM_4:

 cmpq $256,%r11
# WAS jl .L_less_than_16x16_bnzFsuvmDknpsbp
	jl	.L_less_than_16x16_bnzFsuvmDknpsbp_BCM_4

 vmovdqu64 0(%r10),%zmm11
 vmovdqu64 64(%r10),%zmm3
 vmovdqu64 128(%r10),%zmm4
 vmovdqu64 192(%r10),%zmm5
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 0(%r13),%zmm19
.byte 98,179,37,72,68,203,17
.byte 98,51,37,72,68,203,0
.byte 98,51,37,72,68,211,1
.byte 98,51,37,72,68,227,16
 vmovdqu64 64(%r13),%zmm19
.byte 98,51,101,72,68,235,17
.byte 98,51,101,72,68,251,0
.byte 98,163,101,72,68,203,1
.byte 98,163,101,72,68,211,16
 vpxorq %zmm17,%zmm10,%zmm7
 vpxorq %zmm13,%zmm1,%zmm6
 vpxorq %zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7
 vmovdqu64 128(%r13),%zmm19
.byte 98,179,93,72,68,203,17
.byte 98,51,93,72,68,203,0
.byte 98,51,93,72,68,211,1
.byte 98,51,93,72,68,227,16
 vmovdqu64 192(%r13),%zmm19
.byte 98,51,85,72,68,235,17
.byte 98,51,85,72,68,251,0
.byte 98,163,85,72,68,203,1
.byte 98,163,85,72,68,211,16

 vpternlogq $0x96,%zmm17,%zmm10,%zmm7
 vpternlogq $0x96,%zmm13,%zmm1,%zmm6
 vpternlogq $0x96,%zmm15,%zmm9,%zmm8
 vpternlogq $0x96,%zmm18,%zmm12,%zmm7

 vpsrldq $8,%zmm7,%zmm1
 vpslldq $8,%zmm7,%zmm9
 vpxorq %zmm1,%zmm6,%zmm6
 vpxorq %zmm9,%zmm8,%zmm8
 vextracti64x4 $1,%zmm6,%ymm1
 vpxorq %ymm1,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm1
 vpxorq %xmm1,%xmm6,%xmm6
 vextracti64x4 $1,%zmm8,%ymm9
 vpxorq %ymm9,%ymm8,%ymm8
 vextracti32x4 $1,%ymm8,%xmm9
 vpxorq %xmm9,%xmm8,%xmm8
# WAS vmovdqa64 POLY2(%rip),%xmm10
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm10


.byte 98,211,45,8,68,200,1
 vpslldq $8,%xmm1,%xmm1
 vpxorq %xmm1,%xmm8,%xmm1


.byte 98,115,45,8,68,201,0
 vpsrldq $4,%xmm9,%xmm9
.byte 98,243,45,8,68,209,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm6,%xmm9,%xmm2

 subq $256,%r11
# WAS je .L_CALC_AAD_done_bnzFsuvmDknpsbp
	je	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4

 addq $256,%r10

.L_less_than_16x16_bnzFsuvmDknpsbp_BCM_4:


# WAS leaq byte64_len_to_mask_table(%rip),%r12
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r12
 leaq (%r12,%r11,8),%r12


 addl $15,%r11d
 shrl $4,%r11d
 cmpl $2,%r11d
# WAS jb .L_AAD_blocks_1_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_1_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_2_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_2_bnzFsuvmDknpsbp_BCM_4
 cmpl $4,%r11d
# WAS jb .L_AAD_blocks_3_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_3_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_4_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_4_bnzFsuvmDknpsbp_BCM_4
 cmpl $6,%r11d
# WAS jb .L_AAD_blocks_5_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_5_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_6_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_6_bnzFsuvmDknpsbp_BCM_4
 cmpl $8,%r11d
# WAS jb .L_AAD_blocks_7_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_7_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_8_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_8_bnzFsuvmDknpsbp_BCM_4
 cmpl $10,%r11d
# WAS jb .L_AAD_blocks_9_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_9_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_10_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_10_bnzFsuvmDknpsbp_BCM_4
 cmpl $12,%r11d
# WAS jb .L_AAD_blocks_11_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_11_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_12_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_12_bnzFsuvmDknpsbp_BCM_4
 cmpl $14,%r11d
# WAS jb .L_AAD_blocks_13_bnzFsuvmDknpsbp
	jb	.L_AAD_blocks_13_bnzFsuvmDknpsbp_BCM_4
# WAS je .L_AAD_blocks_14_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_14_bnzFsuvmDknpsbp_BCM_4
 cmpl $15,%r11d
# WAS je .L_AAD_blocks_15_bnzFsuvmDknpsbp
	je	.L_AAD_blocks_15_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_16_bnzFsuvmDknpsbp_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%zmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 0(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 64(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 128(%r13),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm9,%zmm11,%zmm1
 vpternlogq $0x96,%zmm10,%zmm3,%zmm6
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm12,%zmm11,%zmm7
 vpternlogq $0x96,%zmm13,%zmm3,%zmm8
 vmovdqu64 192(%r13),%zmm15
.byte 98,83,85,72,68,207,17
.byte 98,83,85,72,68,215,0
.byte 98,83,85,72,68,231,1
.byte 98,83,85,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_15_bnzFsuvmDknpsbp_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%zmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %zmm16,%zmm5,%zmm5
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 16(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 80(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 144(%r13),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 208(%r13),%ymm15
 vinserti64x2 $2,240(%r13),%zmm15,%zmm15
.byte 98,211,85,72,68,255,1
.byte 98,83,85,72,68,199,16
.byte 98,211,85,72,68,207,17
.byte 98,211,85,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_14_bnzFsuvmDknpsbp_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%ymm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %ymm16,%ymm5,%ymm5
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 32(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 96(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 160(%r13),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 224(%r13),%ymm15
.byte 98,211,85,40,68,255,1
.byte 98,83,85,40,68,199,16
.byte 98,211,85,40,68,207,17
.byte 98,211,85,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_13_bnzFsuvmDknpsbp_BCM_4:

 subq $1536,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4
 vmovdqu8 192(%r10),%xmm5{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpshufb %xmm16,%xmm5,%xmm5
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 48(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 112(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 176(%r13),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13
 vmovdqu64 240(%r13),%xmm15
.byte 98,211,85,8,68,255,1
.byte 98,83,85,8,68,199,16
.byte 98,211,85,8,68,207,17
.byte 98,211,85,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_12_bnzFsuvmDknpsbp_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 64(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 128(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vmovdqu64 192(%r13),%zmm15
.byte 98,83,93,72,68,223,17
.byte 98,211,93,72,68,223,0
 vpternlogq $0x96,%zmm1,%zmm11,%zmm9
 vpternlogq $0x96,%zmm6,%zmm3,%zmm10
.byte 98,83,93,72,68,223,1
.byte 98,211,93,72,68,223,16
 vpternlogq $0x96,%zmm7,%zmm11,%zmm12
 vpternlogq $0x96,%zmm8,%zmm3,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_11_bnzFsuvmDknpsbp_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%zmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %zmm16,%zmm4,%zmm4
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 80(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 144(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 208(%r13),%ymm15
 vinserti64x2 $2,240(%r13),%zmm15,%zmm15
.byte 98,211,93,72,68,255,1
.byte 98,83,93,72,68,199,16
.byte 98,211,93,72,68,207,17
.byte 98,211,93,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_10_bnzFsuvmDknpsbp_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%ymm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %ymm16,%ymm4,%ymm4
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 96(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 160(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 224(%r13),%ymm15
.byte 98,211,93,40,68,255,1
.byte 98,83,93,40,68,199,16
.byte 98,211,93,40,68,207,17
.byte 98,211,93,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_9_bnzFsuvmDknpsbp_BCM_4:

 subq $1024,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3
 vmovdqu8 128(%r10),%xmm4{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpshufb %xmm16,%xmm4,%xmm4
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 112(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 176(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13
 vmovdqu64 240(%r13),%xmm15
.byte 98,211,93,8,68,255,1
.byte 98,83,93,8,68,199,16
.byte 98,211,93,8,68,207,17
.byte 98,211,93,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_8_bnzFsuvmDknpsbp_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 128(%r13),%zmm15
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
 vmovdqu64 192(%r13),%zmm15
.byte 98,83,101,72,68,207,17
.byte 98,83,101,72,68,215,0
.byte 98,83,101,72,68,231,1
.byte 98,83,101,72,68,239,16
 vpxorq %zmm9,%zmm1,%zmm9
 vpxorq %zmm10,%zmm6,%zmm10
 vpxorq %zmm12,%zmm7,%zmm12
 vpxorq %zmm13,%zmm8,%zmm13

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_7_bnzFsuvmDknpsbp_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%zmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %zmm16,%zmm3,%zmm3
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 144(%r13),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 208(%r13),%ymm15
 vinserti64x2 $2,240(%r13),%zmm15,%zmm15
.byte 98,211,101,72,68,255,1
.byte 98,83,101,72,68,199,16
.byte 98,211,101,72,68,207,17
.byte 98,211,101,72,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_6_bnzFsuvmDknpsbp_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%ymm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %ymm16,%ymm3,%ymm3
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 160(%r13),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 224(%r13),%ymm15
.byte 98,211,101,40,68,255,1
.byte 98,83,101,40,68,199,16
.byte 98,211,101,40,68,207,17
.byte 98,211,101,40,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_5_bnzFsuvmDknpsbp_BCM_4:

 subq $512,%r12
 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11
 vmovdqu8 64(%r10),%xmm3{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpshufb %xmm16,%xmm3,%xmm3
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 176(%r13),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16
 vmovdqu64 240(%r13),%xmm15
.byte 98,211,101,8,68,255,1
.byte 98,83,101,8,68,199,16
.byte 98,211,101,8,68,207,17
.byte 98,211,101,8,68,247,0

 vpxorq %zmm12,%zmm7,%zmm7
 vpxorq %zmm13,%zmm8,%zmm8
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm6,%zmm6

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_4_bnzFsuvmDknpsbp_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 192(%r13),%zmm15
.byte 98,83,37,72,68,207,17
.byte 98,83,37,72,68,215,0
.byte 98,83,37,72,68,231,1
.byte 98,83,37,72,68,239,16

 vpxorq %zmm13,%zmm12,%zmm12
 vpsrldq $8,%zmm12,%zmm7
 vpslldq $8,%zmm12,%zmm8
 vpxorq %zmm7,%zmm9,%zmm1
 vpxorq %zmm8,%zmm10,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_3_bnzFsuvmDknpsbp_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%zmm11{%k1}{z}
 vpshufb %zmm16,%zmm11,%zmm11
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 208(%r13),%ymm15
 vinserti64x2 $2,240(%r13),%zmm15,%zmm15
.byte 98,211,37,72,68,255,1
.byte 98,83,37,72,68,199,16
.byte 98,211,37,72,68,207,17
.byte 98,211,37,72,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_2_bnzFsuvmDknpsbp_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%ymm11{%k1}{z}
 vpshufb %ymm16,%ymm11,%ymm11
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 224(%r13),%ymm15
.byte 98,211,37,40,68,255,1
.byte 98,83,37,40,68,199,16
.byte 98,211,37,40,68,207,17
.byte 98,211,37,40,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

# WAS jmp .L_CALC_AAD_done_bnzFsuvmDknpsbp
	jmp	.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4
.L_AAD_blocks_1_bnzFsuvmDknpsbp_BCM_4:

 kmovq (%r12),%k1
 vmovdqu8 0(%r10),%xmm11{%k1}{z}
 vpshufb %xmm16,%xmm11,%xmm11
 vpxorq %zmm2,%zmm11,%zmm11
 vmovdqu64 240(%r13),%xmm15
.byte 98,211,37,8,68,255,1
.byte 98,83,37,8,68,199,16
.byte 98,211,37,8,68,207,17
.byte 98,211,37,8,68,247,0

 vpxorq %zmm8,%zmm7,%zmm7
 vpsrldq $8,%zmm7,%zmm12
 vpslldq $8,%zmm7,%zmm13
 vpxorq %zmm12,%zmm1,%zmm1
 vpxorq %zmm13,%zmm6,%zmm6
 vextracti64x4 $1,%zmm1,%ymm12
 vpxorq %ymm12,%ymm1,%ymm1
 vextracti32x4 $1,%ymm1,%xmm12
 vpxorq %xmm12,%xmm1,%xmm1
 vextracti64x4 $1,%zmm6,%ymm13
 vpxorq %ymm13,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm13
 vpxorq %xmm13,%xmm6,%xmm6
# WAS vmovdqa64 POLY2(%rip),%xmm15
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm15


.byte 98,243,5,8,68,254,1
 vpslldq $8,%xmm7,%xmm7
 vpxorq %xmm7,%xmm6,%xmm7


.byte 98,115,5,8,68,199,0
 vpsrldq $4,%xmm8,%xmm8
.byte 98,243,5,8,68,215,16
 vpslldq $4,%xmm2,%xmm2
 vpternlogq $0x96,%xmm1,%xmm8,%xmm2

.L_CALC_AAD_done_bnzFsuvmDknpsbp_BCM_4:

 movq %rcx,%r10
 shlq $3,%r10
 vmovq %r10,%xmm3


 vpxorq %xmm2,%xmm3,%xmm2

 vmovdqu64 240(%r13),%xmm1

.byte 98,115,109,8,68,217,17
.byte 98,243,109,8,68,217,0
.byte 98,243,109,8,68,225,1
.byte 98,243,109,8,68,209,16
 vpxorq %xmm4,%xmm2,%xmm2

 vpsrldq $8,%xmm2,%xmm4
 vpslldq $8,%xmm2,%xmm2
 vpxorq %xmm4,%xmm11,%xmm11
 vpxorq %xmm3,%xmm2,%xmm2



# WAS vmovdqu64 POLY2(%rip),%xmm4
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm4

.byte 98,243,93,8,68,218,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm2,%xmm2



.byte 98,243,93,8,68,218,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,243,93,8,68,210,16
 vpslldq $4,%xmm2,%xmm2

 vpternlogq $0x96,%xmm3,%xmm11,%xmm2

# WAS vpshufb SHUF_MASK(%rip),%xmm2,%xmm2
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm2, %xmm2
# WAS jmp skip_iv_len_12_init_IV
	jmp	.Lskip_iv_len_12_init_IV_local_target
.Liv_len_12_init_IV_local_target:
iv_len_12_init_IV:

# WAS vmovdqu8 ONEf(%rip),%xmm2
	vmovdqu8	.LONEf_local_target(%rip), %xmm2
 movq %rdx,%r11
 movl $0x0000000000000fff,%r10d
 kmovq %r10,%k1
 vmovdqu8 (%r11),%xmm2{%k1}
.Lskip_iv_len_12_init_IV_local_target:
skip_iv_len_12_init_IV:
 vmovdqu %xmm2,%xmm1


 movl 240(%rdi),%r10d
 cmpl $9,%r10d
# WAS je .Laes_128_otBvnbdyuroewzD
	je	.Laes_128_otBvnbdyuroewzD_BCM_4
 cmpl $11,%r10d
# WAS je .Laes_192_otBvnbdyuroewzD
	je	.Laes_192_otBvnbdyuroewzD_BCM_4
 cmpl $13,%r10d
# WAS je .Laes_256_otBvnbdyuroewzD
	je	.Laes_256_otBvnbdyuroewzD_BCM_4
# WAS jmp .Lexit_aes_otBvnbdyuroewzD
	jmp	.Lexit_aes_otBvnbdyuroewzD_BCM_4
.align 32
.Laes_128_otBvnbdyuroewzD_BCM_4:

 vpxorq 0(%rdi),%xmm1,%xmm1

.byte 98,242,117,8,220,79,1

.byte 98,242,117,8,220,79,2

.byte 98,242,117,8,220,79,3

.byte 98,242,117,8,220,79,4

.byte 98,242,117,8,220,79,5

.byte 98,242,117,8,220,79,6

.byte 98,242,117,8,220,79,7

.byte 98,242,117,8,220,79,8

.byte 98,242,117,8,220,79,9

.byte 98,242,117,8,221,79,10
# WAS jmp .Lexit_aes_otBvnbdyuroewzD
	jmp	.Lexit_aes_otBvnbdyuroewzD_BCM_4
.align 32
.Laes_192_otBvnbdyuroewzD_BCM_4:

 vpxorq 0(%rdi),%xmm1,%xmm1

.byte 98,242,117,8,220,79,1

.byte 98,242,117,8,220,79,2

.byte 98,242,117,8,220,79,3

.byte 98,242,117,8,220,79,4

.byte 98,242,117,8,220,79,5

.byte 98,242,117,8,220,79,6

.byte 98,242,117,8,220,79,7

.byte 98,242,117,8,220,79,8

.byte 98,242,117,8,220,79,9

.byte 98,242,117,8,220,79,10

.byte 98,242,117,8,220,79,11

.byte 98,242,117,8,221,79,12
# WAS jmp .Lexit_aes_otBvnbdyuroewzD
	jmp	.Lexit_aes_otBvnbdyuroewzD_BCM_4
.align 32
.Laes_256_otBvnbdyuroewzD_BCM_4:

 vpxorq 0(%rdi),%xmm1,%xmm1

.byte 98,242,117,8,220,79,1

.byte 98,242,117,8,220,79,2

.byte 98,242,117,8,220,79,3

.byte 98,242,117,8,220,79,4

.byte 98,242,117,8,220,79,5

.byte 98,242,117,8,220,79,6

.byte 98,242,117,8,220,79,7

.byte 98,242,117,8,220,79,8

.byte 98,242,117,8,220,79,9

.byte 98,242,117,8,220,79,10

.byte 98,242,117,8,220,79,11

.byte 98,242,117,8,220,79,12

.byte 98,242,117,8,220,79,13

.byte 98,242,117,8,221,79,14
# WAS jmp .Lexit_aes_otBvnbdyuroewzD
	jmp	.Lexit_aes_otBvnbdyuroewzD_BCM_4
.Lexit_aes_otBvnbdyuroewzD_BCM_4:


 vmovdqu %xmm1,32(%rsi)


# WAS vpshufb SHUF_MASK(%rip),%xmm2,%xmm2
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm2, %xmm2
 vmovdqu %xmm2,0(%rsi)
.Lexit_setiv_BCM_4:

 cmpq $256,%rcx
# WAS jbe .Lskip_hkeys_cleanup_lDGzdqCkvgheosr
	jbe	.Lskip_hkeys_cleanup_lDGzdqCkvgheosr_BCM_4
 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %zmm0,0(%rsp)
 vmovdqa64 %zmm0,64(%rsp)
 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)
 vmovdqa64 %zmm0,320(%rsp)
 vmovdqa64 %zmm0,384(%rsp)
 vmovdqa64 %zmm0,448(%rsp)
 vmovdqa64 %zmm0,512(%rsp)
 vmovdqa64 %zmm0,576(%rsp)
 vmovdqa64 %zmm0,640(%rsp)
 vmovdqa64 %zmm0,704(%rsp)
.Lskip_hkeys_cleanup_lDGzdqCkvgheosr_BCM_4:

 vzeroupper
 leaq (%rbp),%rsp
.cfi_def_cfa_register %rsp
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
 .byte 0xf3,0xc3
.Lsetiv_seh_end_BCM_4:

.cfi_endproc
.size gcm_setiv_avx512, .-gcm_setiv_avx512
.globl aes_gcm_encrypt_avx512
.hidden aes_gcm_encrypt_avx512
.hidden aes_gcm_encrypt_avx512
.type aes_gcm_encrypt_avx512,@function
.align 32
.Laes_gcm_encrypt_avx512_local_target:
aes_gcm_encrypt_avx512:
.cfi_startproc
.Lencrypt_seh_begin_BCM_4:






.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
.Lencrypt_seh_push_rbx_BCM_4:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
.Lencrypt_seh_push_rbp_BCM_4:

 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
.Lencrypt_seh_push_r12_BCM_4:

 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
.Lencrypt_seh_push_r13_BCM_4:

 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
.Lencrypt_seh_push_r14_BCM_4:

 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lencrypt_seh_push_r15_BCM_4:

# 3968 "aesni-gcm-avx512.S"
 leaq 0(%rsp),%rbp
.cfi_def_cfa_register %rbp
.Lencrypt_seh_setfp_BCM_4:


.Lencrypt_seh_prolog_end_BCM_4:

 subq $1588,%rsp
 andq $(-64),%rsp


 movl 240(%rdi),%eax
 cmpl $9,%eax
# WAS je .Laes_gcm_encrypt_128_avx512
	je	.Laes_gcm_encrypt_128_avx512_BCM_4
 cmpl $11,%eax
# WAS je .Laes_gcm_encrypt_192_avx512
	je	.Laes_gcm_encrypt_192_avx512_BCM_4
 cmpl $13,%eax
# WAS je .Laes_gcm_encrypt_256_avx512
	je	.Laes_gcm_encrypt_256_avx512_BCM_4
 xorl %eax,%eax
# WAS jmp .Lexit_gcm_encrypt
	jmp	.Lexit_gcm_encrypt_BCM_4
.align 32
.Laes_gcm_encrypt_128_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_pzwgkGgbplFqzaB
	je	.L_enc_dec_abort_pzwgkGgbplFqzaB_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_FkezCgctzlCoEyh
	je	.L_partial_block_done_FkezCgctzlCoEyh_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_FkezCgctzlCoEyh
	jge	.L_no_extra_mask_FkezCgctzlCoEyh_BCM_4
 subq %r13,%r12
.L_no_extra_mask_FkezCgctzlCoEyh_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm3,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_FkezCgctzlCoEyh
	jl	.L_partial_incomplete_FkezCgctzlCoEyh_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_FkezCgctzlCoEyh
	jmp	.L_enc_dec_done_FkezCgctzlCoEyh_BCM_4

.L_partial_incomplete_FkezCgctzlCoEyh_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_FkezCgctzlCoEyh_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1

# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_FkezCgctzlCoEyh_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_pzwgkGgbplFqzaB
	je	.L_enc_dec_done_pzwgkGgbplFqzaB_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_pzwgkGgbplFqzaB
	jbe	.L_message_below_equal_16_blocks_pzwgkGgbplFqzaB_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_yByFrylbFDFnFCp
	jae	.L_next_16_overflow_yByFrylbFDFnFCp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_yByFrylbFDFnFCp
	jmp	.L_next_16_ok_yByFrylbFDFnFCp_BCM_4
.L_next_16_overflow_yByFrylbFDFnFCp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_yByFrylbFDFnFCp_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_achfkmnqFwjgbDD
	jnz	.L_skip_hkeys_precomputation_achfkmnqFwjgbDD_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_achfkmnqFwjgbDD_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_pzwgkGgbplFqzaB
	jb	.L_message_below_32_blocks_pzwgkGgbplFqzaB_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_xvcFynjeulFjDdF
	jae	.L_next_16_overflow_xvcFynjeulFjDdF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_xvcFynjeulFjDdF
	jmp	.L_next_16_ok_xvcFynjeulFjDdF_BCM_4
.L_next_16_overflow_xvcFynjeulFjDdF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_xvcFynjeulFjDdF_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_mBcrmCyGfEttetw
	jnz	.L_skip_hkeys_precomputation_mBcrmCyGfEttetw_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_mBcrmCyGfEttetw_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_pzwgkGgbplFqzaB
	jb	.L_no_more_big_nblocks_pzwgkGgbplFqzaB_BCM_4
.L_encrypt_big_nblocks_pzwgkGgbplFqzaB_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_avoAfAGuxmumDjA
	jae	.L_16_blocks_overflow_avoAfAGuxmumDjA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_avoAfAGuxmumDjA
	jmp	.L_16_blocks_ok_avoAfAGuxmumDjA_BCM_4
.L_16_blocks_overflow_avoAfAGuxmumDjA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_avoAfAGuxmumDjA_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_AGgjmjawDklDqyq
	jae	.L_16_blocks_overflow_AGgjmjawDklDqyq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_AGgjmjawDklDqyq
	jmp	.L_16_blocks_ok_AGgjmjawDklDqyq_BCM_4
.L_16_blocks_overflow_AGgjmjawDklDqyq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_AGgjmjawDklDqyq_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_gutvpupplrsoEbw
	jae	.L_16_blocks_overflow_gutvpupplrsoEbw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_gutvpupplrsoEbw
	jmp	.L_16_blocks_ok_gutvpupplrsoEbw_BCM_4
.L_16_blocks_overflow_gutvpupplrsoEbw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_gutvpupplrsoEbw_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_pzwgkGgbplFqzaB
	jae	.L_encrypt_big_nblocks_pzwgkGgbplFqzaB_BCM_4

.L_no_more_big_nblocks_pzwgkGgbplFqzaB_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_pzwgkGgbplFqzaB
	jae	.L_encrypt_32_blocks_pzwgkGgbplFqzaB_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_pzwgkGgbplFqzaB
	jae	.L_encrypt_16_blocks_pzwgkGgbplFqzaB_BCM_4
.L_encrypt_0_blocks_ghash_32_pzwgkGgbplFqzaB_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_0_BdcphecxdpdFEsb_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_8_BdcphecxdpdFEsb_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_BdcphecxdpdFEsb
	jb	.L_last_num_blocks_is_7_1_BdcphecxdpdFEsb_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_12_BdcphecxdpdFEsb_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_BdcphecxdpdFEsb
	jb	.L_last_num_blocks_is_11_9_BdcphecxdpdFEsb_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_15_BdcphecxdpdFEsb_BCM_4
# WAS ja .L_last_num_blocks_is_16_BdcphecxdpdFEsb
	ja	.L_last_num_blocks_is_16_BdcphecxdpdFEsb_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_14_BdcphecxdpdFEsb_BCM_4
# WAS jmp .L_last_num_blocks_is_13_BdcphecxdpdFEsb
	jmp	.L_last_num_blocks_is_13_BdcphecxdpdFEsb_BCM_4

.L_last_num_blocks_is_11_9_BdcphecxdpdFEsb_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_10_BdcphecxdpdFEsb_BCM_4
# WAS ja .L_last_num_blocks_is_11_BdcphecxdpdFEsb
	ja	.L_last_num_blocks_is_11_BdcphecxdpdFEsb_BCM_4
# WAS jmp .L_last_num_blocks_is_9_BdcphecxdpdFEsb
	jmp	.L_last_num_blocks_is_9_BdcphecxdpdFEsb_BCM_4

.L_last_num_blocks_is_7_1_BdcphecxdpdFEsb_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_4_BdcphecxdpdFEsb_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_BdcphecxdpdFEsb
	jb	.L_last_num_blocks_is_3_1_BdcphecxdpdFEsb_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_BdcphecxdpdFEsb
	ja	.L_last_num_blocks_is_7_BdcphecxdpdFEsb_BCM_4
# WAS je .L_last_num_blocks_is_6_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_6_BdcphecxdpdFEsb_BCM_4
# WAS jmp .L_last_num_blocks_is_5_BdcphecxdpdFEsb
	jmp	.L_last_num_blocks_is_5_BdcphecxdpdFEsb_BCM_4

.L_last_num_blocks_is_3_1_BdcphecxdpdFEsb_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_BdcphecxdpdFEsb
	ja	.L_last_num_blocks_is_3_BdcphecxdpdFEsb_BCM_4
# WAS je .L_last_num_blocks_is_2_BdcphecxdpdFEsb
	je	.L_last_num_blocks_is_2_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_1_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_azzgqhumkfnyDqm
	jae	.L_16_blocks_overflow_azzgqhumkfnyDqm_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_azzgqhumkfnyDqm
	jmp	.L_16_blocks_ok_azzgqhumkfnyDqm_BCM_4

.L_16_blocks_overflow_azzgqhumkfnyDqm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_azzgqhumkfnyDqm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dnmqhGDjDpgnine
	jl	.L_small_initial_partial_block_dnmqhGDjDpgnine_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dnmqhGDjDpgnine
	jmp	.L_small_initial_compute_done_dnmqhGDjDpgnine_BCM_4
.L_small_initial_partial_block_dnmqhGDjDpgnine_BCM_4:

# 5420 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 5461 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_dnmqhGDjDpgnine
	jmp	.L_after_reduction_dnmqhGDjDpgnine_BCM_4
.L_small_initial_compute_done_dnmqhGDjDpgnine_BCM_4:

.L_after_reduction_dnmqhGDjDpgnine_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_2_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_yekhBCebufcAiFh
	jae	.L_16_blocks_overflow_yekhBCebufcAiFh_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_yekhBCebufcAiFh
	jmp	.L_16_blocks_ok_yekhBCebufcAiFh_BCM_4

.L_16_blocks_overflow_yekhBCebufcAiFh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_yekhBCebufcAiFh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jwyvkjdvesmxGpv
	jl	.L_small_initial_partial_block_jwyvkjdvesmxGpv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jwyvkjdvesmxGpv
	jmp	.L_small_initial_compute_done_jwyvkjdvesmxGpv_BCM_4
.L_small_initial_partial_block_jwyvkjdvesmxGpv_BCM_4:

# 5620 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jwyvkjdvesmxGpv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jwyvkjdvesmxGpv
	je	.L_after_reduction_jwyvkjdvesmxGpv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jwyvkjdvesmxGpv_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_3_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_usjywjwllaabozc
	jae	.L_16_blocks_overflow_usjywjwllaabozc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_usjywjwllaabozc
	jmp	.L_16_blocks_ok_usjywjwllaabozc_BCM_4

.L_16_blocks_overflow_usjywjwllaabozc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_usjywjwllaabozc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lmkDAitgFzCCoEA
	jl	.L_small_initial_partial_block_lmkDAitgFzCCoEA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lmkDAitgFzCCoEA
	jmp	.L_small_initial_compute_done_lmkDAitgFzCCoEA_BCM_4
.L_small_initial_partial_block_lmkDAitgFzCCoEA_BCM_4:

# 5819 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lmkDAitgFzCCoEA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lmkDAitgFzCCoEA
	je	.L_after_reduction_lmkDAitgFzCCoEA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lmkDAitgFzCCoEA_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_4_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_xobkzaAwcplaFgb
	jae	.L_16_blocks_overflow_xobkzaAwcplaFgb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_xobkzaAwcplaFgb
	jmp	.L_16_blocks_ok_xobkzaAwcplaFgb_BCM_4

.L_16_blocks_overflow_xobkzaAwcplaFgb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_xobkzaAwcplaFgb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_genGClghdbzBqhw
	jl	.L_small_initial_partial_block_genGClghdbzBqhw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_genGClghdbzBqhw
	jmp	.L_small_initial_compute_done_genGClghdbzBqhw_BCM_4
.L_small_initial_partial_block_genGClghdbzBqhw_BCM_4:

# 6018 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_genGClghdbzBqhw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_genGClghdbzBqhw
	je	.L_after_reduction_genGClghdbzBqhw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_genGClghdbzBqhw_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_5_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_bpsqdGAhjeggABn
	jae	.L_16_blocks_overflow_bpsqdGAhjeggABn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_bpsqdGAhjeggABn
	jmp	.L_16_blocks_ok_bpsqdGAhjeggABn_BCM_4

.L_16_blocks_overflow_bpsqdGAhjeggABn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_bpsqdGAhjeggABn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wdqrtGpojajFBea
	jl	.L_small_initial_partial_block_wdqrtGpojajFBea_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wdqrtGpojajFBea
	jmp	.L_small_initial_compute_done_wdqrtGpojajFBea_BCM_4
.L_small_initial_partial_block_wdqrtGpojajFBea_BCM_4:

# 6244 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wdqrtGpojajFBea_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wdqrtGpojajFBea
	je	.L_after_reduction_wdqrtGpojajFBea_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wdqrtGpojajFBea_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_6_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_qmgDCpkysmqcgnB
	jae	.L_16_blocks_overflow_qmgDCpkysmqcgnB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_qmgDCpkysmqcgnB
	jmp	.L_16_blocks_ok_qmgDCpkysmqcgnB_BCM_4

.L_16_blocks_overflow_qmgDCpkysmqcgnB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_qmgDCpkysmqcgnB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GvjnkpjsgDafsun
	jl	.L_small_initial_partial_block_GvjnkpjsgDafsun_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GvjnkpjsgDafsun
	jmp	.L_small_initial_compute_done_GvjnkpjsgDafsun_BCM_4
.L_small_initial_partial_block_GvjnkpjsgDafsun_BCM_4:

# 6470 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GvjnkpjsgDafsun_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GvjnkpjsgDafsun
	je	.L_after_reduction_GvjnkpjsgDafsun_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GvjnkpjsgDafsun_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_7_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_jaFyvjvpAfzmwyg
	jae	.L_16_blocks_overflow_jaFyvjvpAfzmwyg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_jaFyvjvpAfzmwyg
	jmp	.L_16_blocks_ok_jaFyvjvpAfzmwyg_BCM_4

.L_16_blocks_overflow_jaFyvjvpAfzmwyg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_jaFyvjvpAfzmwyg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iuyAGoBcDewEeiy
	jl	.L_small_initial_partial_block_iuyAGoBcDewEeiy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iuyAGoBcDewEeiy
	jmp	.L_small_initial_compute_done_iuyAGoBcDewEeiy_BCM_4
.L_small_initial_partial_block_iuyAGoBcDewEeiy_BCM_4:

# 6703 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iuyAGoBcDewEeiy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iuyAGoBcDewEeiy
	je	.L_after_reduction_iuyAGoBcDewEeiy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iuyAGoBcDewEeiy_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_8_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_FbwsrgpDGDmccid
	jae	.L_16_blocks_overflow_FbwsrgpDGDmccid_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_FbwsrgpDGDmccid
	jmp	.L_16_blocks_ok_FbwsrgpDGDmccid_BCM_4

.L_16_blocks_overflow_FbwsrgpDGDmccid_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_FbwsrgpDGDmccid_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lABtdkpvoGeFpzp
	jl	.L_small_initial_partial_block_lABtdkpvoGeFpzp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lABtdkpvoGeFpzp
	jmp	.L_small_initial_compute_done_lABtdkpvoGeFpzp_BCM_4
.L_small_initial_partial_block_lABtdkpvoGeFpzp_BCM_4:

# 6938 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lABtdkpvoGeFpzp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lABtdkpvoGeFpzp
	je	.L_after_reduction_lABtdkpvoGeFpzp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lABtdkpvoGeFpzp_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_9_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_dtxuExFwmpsGEiG
	jae	.L_16_blocks_overflow_dtxuExFwmpsGEiG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_dtxuExFwmpsGEiG
	jmp	.L_16_blocks_ok_dtxuExFwmpsGEiG_BCM_4

.L_16_blocks_overflow_dtxuExFwmpsGEiG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_dtxuExFwmpsGEiG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vkADoeFsfDwilnv
	jl	.L_small_initial_partial_block_vkADoeFsfDwilnv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vkADoeFsfDwilnv
	jmp	.L_small_initial_compute_done_vkADoeFsfDwilnv_BCM_4
.L_small_initial_partial_block_vkADoeFsfDwilnv_BCM_4:

# 7198 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vkADoeFsfDwilnv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vkADoeFsfDwilnv
	je	.L_after_reduction_vkADoeFsfDwilnv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vkADoeFsfDwilnv_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_10_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_damgrhyFxffganz
	jae	.L_16_blocks_overflow_damgrhyFxffganz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_damgrhyFxffganz
	jmp	.L_16_blocks_ok_damgrhyFxffganz_BCM_4

.L_16_blocks_overflow_damgrhyFxffganz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_damgrhyFxffganz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iankhgrgFnoiAgG
	jl	.L_small_initial_partial_block_iankhgrgFnoiAgG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iankhgrgFnoiAgG
	jmp	.L_small_initial_compute_done_iankhgrgFnoiAgG_BCM_4
.L_small_initial_partial_block_iankhgrgFnoiAgG_BCM_4:

# 7460 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iankhgrgFnoiAgG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iankhgrgFnoiAgG
	je	.L_after_reduction_iankhgrgFnoiAgG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iankhgrgFnoiAgG_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_11_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_gnGEkpgDpmugvpk
	jae	.L_16_blocks_overflow_gnGEkpgDpmugvpk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_gnGEkpgDpmugvpk
	jmp	.L_16_blocks_ok_gnGEkpgDpmugvpk_BCM_4

.L_16_blocks_overflow_gnGEkpgDpmugvpk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_gnGEkpgDpmugvpk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sECkucceDhaBnCk
	jl	.L_small_initial_partial_block_sECkucceDhaBnCk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sECkucceDhaBnCk
	jmp	.L_small_initial_compute_done_sECkucceDhaBnCk_BCM_4
.L_small_initial_partial_block_sECkucceDhaBnCk_BCM_4:

# 7729 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sECkucceDhaBnCk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sECkucceDhaBnCk
	je	.L_after_reduction_sECkucceDhaBnCk_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sECkucceDhaBnCk_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_12_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_qkecuzhoaAuxmmC
	jae	.L_16_blocks_overflow_qkecuzhoaAuxmmC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_qkecuzhoaAuxmmC
	jmp	.L_16_blocks_ok_qkecuzhoaAuxmmC_BCM_4

.L_16_blocks_overflow_qkecuzhoaAuxmmC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_qkecuzhoaAuxmmC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GEFnxzpzjbtbhxx
	jl	.L_small_initial_partial_block_GEFnxzpzjbtbhxx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GEFnxzpzjbtbhxx
	jmp	.L_small_initial_compute_done_GEFnxzpzjbtbhxx_BCM_4
.L_small_initial_partial_block_GEFnxzpzjbtbhxx_BCM_4:

# 7996 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GEFnxzpzjbtbhxx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GEFnxzpzjbtbhxx
	je	.L_after_reduction_GEFnxzpzjbtbhxx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GEFnxzpzjbtbhxx_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_13_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_BjhkFcriuCnuFez
	jae	.L_16_blocks_overflow_BjhkFcriuCnuFez_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_BjhkFcriuCnuFez
	jmp	.L_16_blocks_ok_BjhkFcriuCnuFez_BCM_4

.L_16_blocks_overflow_BjhkFcriuCnuFez_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_BjhkFcriuCnuFez_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jyxtluvpAmFhjFk
	jl	.L_small_initial_partial_block_jyxtluvpAmFhjFk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jyxtluvpAmFhjFk
	jmp	.L_small_initial_compute_done_jyxtluvpAmFhjFk_BCM_4
.L_small_initial_partial_block_jyxtluvpAmFhjFk_BCM_4:

# 8288 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jyxtluvpAmFhjFk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jyxtluvpAmFhjFk
	je	.L_after_reduction_jyxtluvpAmFhjFk_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jyxtluvpAmFhjFk_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_14_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_kGBwgppdvolmGmc
	jae	.L_16_blocks_overflow_kGBwgppdvolmGmc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_kGBwgppdvolmGmc
	jmp	.L_16_blocks_ok_kGBwgppdvolmGmc_BCM_4

.L_16_blocks_overflow_kGBwgppdvolmGmc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_kGBwgppdvolmGmc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AxanimCshomfwbg
	jl	.L_small_initial_partial_block_AxanimCshomfwbg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AxanimCshomfwbg
	jmp	.L_small_initial_compute_done_AxanimCshomfwbg_BCM_4
.L_small_initial_partial_block_AxanimCshomfwbg_BCM_4:

# 8578 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AxanimCshomfwbg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AxanimCshomfwbg
	je	.L_after_reduction_AxanimCshomfwbg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AxanimCshomfwbg_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_15_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_EBkkfjcEDyEptfo
	jae	.L_16_blocks_overflow_EBkkfjcEDyEptfo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_EBkkfjcEDyEptfo
	jmp	.L_16_blocks_ok_EBkkfjcEDyEptfo_BCM_4

.L_16_blocks_overflow_EBkkfjcEDyEptfo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_EBkkfjcEDyEptfo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_henbgxejEhFgymC
	jl	.L_small_initial_partial_block_henbgxejEhFgymC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_henbgxejEhFgymC
	jmp	.L_small_initial_compute_done_henbgxejEhFgymC_BCM_4
.L_small_initial_partial_block_henbgxejEhFgymC_BCM_4:

# 8875 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_henbgxejEhFgymC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_henbgxejEhFgymC
	je	.L_after_reduction_henbgxejEhFgymC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_henbgxejEhFgymC_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_16_BdcphecxdpdFEsb_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_BlcvjlyDGzsAttk
	jae	.L_16_blocks_overflow_BlcvjlyDGzsAttk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_BlcvjlyDGzsAttk
	jmp	.L_16_blocks_ok_BlcvjlyDGzsAttk_BCM_4

.L_16_blocks_overflow_BlcvjlyDGzsAttk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_BlcvjlyDGzsAttk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_aGAffhBljtiFsea_BCM_4:

# 9102 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aGAffhBljtiFsea_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aGAffhBljtiFsea_BCM_4:

# WAS jmp .L_last_blocks_done_BdcphecxdpdFEsb
	jmp	.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4
.L_last_num_blocks_is_0_BdcphecxdpdFEsb_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_BdcphecxdpdFEsb_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_pzwgkGgbplFqzaB
	jmp	.L_ghash_done_pzwgkGgbplFqzaB_BCM_4
.L_encrypt_32_blocks_pzwgkGgbplFqzaB_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_zuczDhwqwDAmzjf
	jae	.L_16_blocks_overflow_zuczDhwqwDAmzjf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_zuczDhwqwDAmzjf
	jmp	.L_16_blocks_ok_zuczDhwqwDAmzjf_BCM_4
.L_16_blocks_overflow_zuczDhwqwDAmzjf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_zuczDhwqwDAmzjf_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_CeGBtrGsogoqpyb
	jae	.L_16_blocks_overflow_CeGBtrGsogoqpyb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_CeGBtrGsogoqpyb
	jmp	.L_16_blocks_ok_CeGBtrGsogoqpyb_BCM_4
.L_16_blocks_overflow_CeGBtrGsogoqpyb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_CeGBtrGsogoqpyb_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_0_CfrpfvcjvvrcbGa_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_8_CfrpfvcjvvrcbGa_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CfrpfvcjvvrcbGa
	jb	.L_last_num_blocks_is_7_1_CfrpfvcjvvrcbGa_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_12_CfrpfvcjvvrcbGa_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CfrpfvcjvvrcbGa
	jb	.L_last_num_blocks_is_11_9_CfrpfvcjvvrcbGa_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_15_CfrpfvcjvvrcbGa_BCM_4
# WAS ja .L_last_num_blocks_is_16_CfrpfvcjvvrcbGa
	ja	.L_last_num_blocks_is_16_CfrpfvcjvvrcbGa_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_14_CfrpfvcjvvrcbGa_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CfrpfvcjvvrcbGa
	jmp	.L_last_num_blocks_is_13_CfrpfvcjvvrcbGa_BCM_4

.L_last_num_blocks_is_11_9_CfrpfvcjvvrcbGa_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_10_CfrpfvcjvvrcbGa_BCM_4
# WAS ja .L_last_num_blocks_is_11_CfrpfvcjvvrcbGa
	ja	.L_last_num_blocks_is_11_CfrpfvcjvvrcbGa_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CfrpfvcjvvrcbGa
	jmp	.L_last_num_blocks_is_9_CfrpfvcjvvrcbGa_BCM_4

.L_last_num_blocks_is_7_1_CfrpfvcjvvrcbGa_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_4_CfrpfvcjvvrcbGa_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CfrpfvcjvvrcbGa
	jb	.L_last_num_blocks_is_3_1_CfrpfvcjvvrcbGa_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CfrpfvcjvvrcbGa
	ja	.L_last_num_blocks_is_7_CfrpfvcjvvrcbGa_BCM_4
# WAS je .L_last_num_blocks_is_6_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_6_CfrpfvcjvvrcbGa_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CfrpfvcjvvrcbGa
	jmp	.L_last_num_blocks_is_5_CfrpfvcjvvrcbGa_BCM_4

.L_last_num_blocks_is_3_1_CfrpfvcjvvrcbGa_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CfrpfvcjvvrcbGa
	ja	.L_last_num_blocks_is_3_CfrpfvcjvvrcbGa_BCM_4
# WAS je .L_last_num_blocks_is_2_CfrpfvcjvvrcbGa
	je	.L_last_num_blocks_is_2_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_1_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_dbajrbEcjsFpceD
	jae	.L_16_blocks_overflow_dbajrbEcjsFpceD_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_dbajrbEcjsFpceD
	jmp	.L_16_blocks_ok_dbajrbEcjsFpceD_BCM_4

.L_16_blocks_overflow_dbajrbEcjsFpceD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_dbajrbEcjsFpceD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qFrfFusofbDaigi
	jl	.L_small_initial_partial_block_qFrfFusofbDaigi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qFrfFusofbDaigi
	jmp	.L_small_initial_compute_done_qFrfFusofbDaigi_BCM_4
.L_small_initial_partial_block_qFrfFusofbDaigi_BCM_4:

# 9857 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 9898 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_qFrfFusofbDaigi
	jmp	.L_after_reduction_qFrfFusofbDaigi_BCM_4
.L_small_initial_compute_done_qFrfFusofbDaigi_BCM_4:

.L_after_reduction_qFrfFusofbDaigi_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_2_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_kgpAeeaoAnozgEF
	jae	.L_16_blocks_overflow_kgpAeeaoAnozgEF_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_kgpAeeaoAnozgEF
	jmp	.L_16_blocks_ok_kgpAeeaoAnozgEF_BCM_4

.L_16_blocks_overflow_kgpAeeaoAnozgEF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_kgpAeeaoAnozgEF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zaugFxnkqnldtoD
	jl	.L_small_initial_partial_block_zaugFxnkqnldtoD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zaugFxnkqnldtoD
	jmp	.L_small_initial_compute_done_zaugFxnkqnldtoD_BCM_4
.L_small_initial_partial_block_zaugFxnkqnldtoD_BCM_4:

# 10057 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zaugFxnkqnldtoD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zaugFxnkqnldtoD
	je	.L_after_reduction_zaugFxnkqnldtoD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zaugFxnkqnldtoD_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_3_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_kblsDeoCDCisntD
	jae	.L_16_blocks_overflow_kblsDeoCDCisntD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_kblsDeoCDCisntD
	jmp	.L_16_blocks_ok_kblsDeoCDCisntD_BCM_4

.L_16_blocks_overflow_kblsDeoCDCisntD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_kblsDeoCDCisntD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Ajrbbfyxhsbqszm
	jl	.L_small_initial_partial_block_Ajrbbfyxhsbqszm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Ajrbbfyxhsbqszm
	jmp	.L_small_initial_compute_done_Ajrbbfyxhsbqszm_BCM_4
.L_small_initial_partial_block_Ajrbbfyxhsbqszm_BCM_4:

# 10256 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Ajrbbfyxhsbqszm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Ajrbbfyxhsbqszm
	je	.L_after_reduction_Ajrbbfyxhsbqszm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Ajrbbfyxhsbqszm_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_4_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_eGcBplCnDqdtGiy
	jae	.L_16_blocks_overflow_eGcBplCnDqdtGiy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_eGcBplCnDqdtGiy
	jmp	.L_16_blocks_ok_eGcBplCnDqdtGiy_BCM_4

.L_16_blocks_overflow_eGcBplCnDqdtGiy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_eGcBplCnDqdtGiy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xeEmmeAmgryyzGr
	jl	.L_small_initial_partial_block_xeEmmeAmgryyzGr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xeEmmeAmgryyzGr
	jmp	.L_small_initial_compute_done_xeEmmeAmgryyzGr_BCM_4
.L_small_initial_partial_block_xeEmmeAmgryyzGr_BCM_4:

# 10455 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xeEmmeAmgryyzGr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xeEmmeAmgryyzGr
	je	.L_after_reduction_xeEmmeAmgryyzGr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xeEmmeAmgryyzGr_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_5_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_bgsqDFmekFAimag
	jae	.L_16_blocks_overflow_bgsqDFmekFAimag_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_bgsqDFmekFAimag
	jmp	.L_16_blocks_ok_bgsqDFmekFAimag_BCM_4

.L_16_blocks_overflow_bgsqDFmekFAimag_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_bgsqDFmekFAimag_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iwszuhryhslDkgD
	jl	.L_small_initial_partial_block_iwszuhryhslDkgD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iwszuhryhslDkgD
	jmp	.L_small_initial_compute_done_iwszuhryhslDkgD_BCM_4
.L_small_initial_partial_block_iwszuhryhslDkgD_BCM_4:

# 10681 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iwszuhryhslDkgD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iwszuhryhslDkgD
	je	.L_after_reduction_iwszuhryhslDkgD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iwszuhryhslDkgD_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_6_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_oaGuttEwoetbnjp
	jae	.L_16_blocks_overflow_oaGuttEwoetbnjp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_oaGuttEwoetbnjp
	jmp	.L_16_blocks_ok_oaGuttEwoetbnjp_BCM_4

.L_16_blocks_overflow_oaGuttEwoetbnjp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_oaGuttEwoetbnjp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pulckbvkcxsatqu
	jl	.L_small_initial_partial_block_pulckbvkcxsatqu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pulckbvkcxsatqu
	jmp	.L_small_initial_compute_done_pulckbvkcxsatqu_BCM_4
.L_small_initial_partial_block_pulckbvkcxsatqu_BCM_4:

# 10907 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pulckbvkcxsatqu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pulckbvkcxsatqu
	je	.L_after_reduction_pulckbvkcxsatqu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pulckbvkcxsatqu_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_7_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_FvhiAqmdFpdFmlp
	jae	.L_16_blocks_overflow_FvhiAqmdFpdFmlp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_FvhiAqmdFpdFmlp
	jmp	.L_16_blocks_ok_FvhiAqmdFpdFmlp_BCM_4

.L_16_blocks_overflow_FvhiAqmdFpdFmlp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_FvhiAqmdFpdFmlp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sqobqxAEFkeiGsu
	jl	.L_small_initial_partial_block_sqobqxAEFkeiGsu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sqobqxAEFkeiGsu
	jmp	.L_small_initial_compute_done_sqobqxAEFkeiGsu_BCM_4
.L_small_initial_partial_block_sqobqxAEFkeiGsu_BCM_4:

# 11140 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sqobqxAEFkeiGsu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sqobqxAEFkeiGsu
	je	.L_after_reduction_sqobqxAEFkeiGsu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sqobqxAEFkeiGsu_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_8_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_hwGtCmqmcvackpz
	jae	.L_16_blocks_overflow_hwGtCmqmcvackpz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_hwGtCmqmcvackpz
	jmp	.L_16_blocks_ok_hwGtCmqmcvackpz_BCM_4

.L_16_blocks_overflow_hwGtCmqmcvackpz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_hwGtCmqmcvackpz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_itiiyBtdfcskbai
	jl	.L_small_initial_partial_block_itiiyBtdfcskbai_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_itiiyBtdfcskbai
	jmp	.L_small_initial_compute_done_itiiyBtdfcskbai_BCM_4
.L_small_initial_partial_block_itiiyBtdfcskbai_BCM_4:

# 11375 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_itiiyBtdfcskbai_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_itiiyBtdfcskbai
	je	.L_after_reduction_itiiyBtdfcskbai_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_itiiyBtdfcskbai_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_9_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_DDnhmxjezrilein
	jae	.L_16_blocks_overflow_DDnhmxjezrilein_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_DDnhmxjezrilein
	jmp	.L_16_blocks_ok_DDnhmxjezrilein_BCM_4

.L_16_blocks_overflow_DDnhmxjezrilein_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_DDnhmxjezrilein_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bBBEnlialjlpfsp
	jl	.L_small_initial_partial_block_bBBEnlialjlpfsp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bBBEnlialjlpfsp
	jmp	.L_small_initial_compute_done_bBBEnlialjlpfsp_BCM_4
.L_small_initial_partial_block_bBBEnlialjlpfsp_BCM_4:

# 11635 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bBBEnlialjlpfsp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bBBEnlialjlpfsp
	je	.L_after_reduction_bBBEnlialjlpfsp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bBBEnlialjlpfsp_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_10_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_zCijhbGCeraapou
	jae	.L_16_blocks_overflow_zCijhbGCeraapou_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_zCijhbGCeraapou
	jmp	.L_16_blocks_ok_zCijhbGCeraapou_BCM_4

.L_16_blocks_overflow_zCijhbGCeraapou_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_zCijhbGCeraapou_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DzFChhwqqhyhjhC
	jl	.L_small_initial_partial_block_DzFChhwqqhyhjhC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DzFChhwqqhyhjhC
	jmp	.L_small_initial_compute_done_DzFChhwqqhyhjhC_BCM_4
.L_small_initial_partial_block_DzFChhwqqhyhjhC_BCM_4:

# 11897 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DzFChhwqqhyhjhC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DzFChhwqqhyhjhC
	je	.L_after_reduction_DzFChhwqqhyhjhC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DzFChhwqqhyhjhC_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_11_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_aafwvnrniBpBhGh
	jae	.L_16_blocks_overflow_aafwvnrniBpBhGh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_aafwvnrniBpBhGh
	jmp	.L_16_blocks_ok_aafwvnrniBpBhGh_BCM_4

.L_16_blocks_overflow_aafwvnrniBpBhGh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_aafwvnrniBpBhGh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ntDAaiasAzzqzla
	jl	.L_small_initial_partial_block_ntDAaiasAzzqzla_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ntDAaiasAzzqzla
	jmp	.L_small_initial_compute_done_ntDAaiasAzzqzla_BCM_4
.L_small_initial_partial_block_ntDAaiasAzzqzla_BCM_4:

# 12166 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ntDAaiasAzzqzla_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ntDAaiasAzzqzla
	je	.L_after_reduction_ntDAaiasAzzqzla_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ntDAaiasAzzqzla_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_12_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_szlfmGmeuofoAra
	jae	.L_16_blocks_overflow_szlfmGmeuofoAra_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_szlfmGmeuofoAra
	jmp	.L_16_blocks_ok_szlfmGmeuofoAra_BCM_4

.L_16_blocks_overflow_szlfmGmeuofoAra_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_szlfmGmeuofoAra_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FgCEuitmambDkxu
	jl	.L_small_initial_partial_block_FgCEuitmambDkxu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FgCEuitmambDkxu
	jmp	.L_small_initial_compute_done_FgCEuitmambDkxu_BCM_4
.L_small_initial_partial_block_FgCEuitmambDkxu_BCM_4:

# 12433 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FgCEuitmambDkxu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FgCEuitmambDkxu
	je	.L_after_reduction_FgCEuitmambDkxu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FgCEuitmambDkxu_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_13_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_knBrwwsfezoBuDz
	jae	.L_16_blocks_overflow_knBrwwsfezoBuDz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_knBrwwsfezoBuDz
	jmp	.L_16_blocks_ok_knBrwwsfezoBuDz_BCM_4

.L_16_blocks_overflow_knBrwwsfezoBuDz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_knBrwwsfezoBuDz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_szDFenAfBoEDgjz
	jl	.L_small_initial_partial_block_szDFenAfBoEDgjz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_szDFenAfBoEDgjz
	jmp	.L_small_initial_compute_done_szDFenAfBoEDgjz_BCM_4
.L_small_initial_partial_block_szDFenAfBoEDgjz_BCM_4:

# 12725 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_szDFenAfBoEDgjz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_szDFenAfBoEDgjz
	je	.L_after_reduction_szDFenAfBoEDgjz_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_szDFenAfBoEDgjz_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_14_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_xfkAqxxGjDnhBjB
	jae	.L_16_blocks_overflow_xfkAqxxGjDnhBjB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_xfkAqxxGjDnhBjB
	jmp	.L_16_blocks_ok_xfkAqxxGjDnhBjB_BCM_4

.L_16_blocks_overflow_xfkAqxxGjDnhBjB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_xfkAqxxGjDnhBjB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xpnwxzswluGFliu
	jl	.L_small_initial_partial_block_xpnwxzswluGFliu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xpnwxzswluGFliu
	jmp	.L_small_initial_compute_done_xpnwxzswluGFliu_BCM_4
.L_small_initial_partial_block_xpnwxzswluGFliu_BCM_4:

# 13015 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xpnwxzswluGFliu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xpnwxzswluGFliu
	je	.L_after_reduction_xpnwxzswluGFliu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xpnwxzswluGFliu_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_15_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_myvDpkrqCoAukhb
	jae	.L_16_blocks_overflow_myvDpkrqCoAukhb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_myvDpkrqCoAukhb
	jmp	.L_16_blocks_ok_myvDpkrqCoAukhb_BCM_4

.L_16_blocks_overflow_myvDpkrqCoAukhb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_myvDpkrqCoAukhb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jjDbyaqFmGmaiEB
	jl	.L_small_initial_partial_block_jjDbyaqFmGmaiEB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jjDbyaqFmGmaiEB
	jmp	.L_small_initial_compute_done_jjDbyaqFmGmaiEB_BCM_4
.L_small_initial_partial_block_jjDbyaqFmGmaiEB_BCM_4:

# 13312 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jjDbyaqFmGmaiEB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jjDbyaqFmGmaiEB
	je	.L_after_reduction_jjDbyaqFmGmaiEB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jjDbyaqFmGmaiEB_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_16_CfrpfvcjvvrcbGa_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_zEAEoetgkvqojFa
	jae	.L_16_blocks_overflow_zEAEoetgkvqojFa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_zEAEoetgkvqojFa
	jmp	.L_16_blocks_ok_zEAEoetgkvqojFa_BCM_4

.L_16_blocks_overflow_zEAEoetgkvqojFa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_zEAEoetgkvqojFa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_erAoEayjDqpuhEu_BCM_4:

# 13539 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_erAoEayjDqpuhEu_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_erAoEayjDqpuhEu_BCM_4:

# WAS jmp .L_last_blocks_done_CfrpfvcjvvrcbGa
	jmp	.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4
.L_last_num_blocks_is_0_CfrpfvcjvvrcbGa_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CfrpfvcjvvrcbGa_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_pzwgkGgbplFqzaB
	jmp	.L_ghash_done_pzwgkGgbplFqzaB_BCM_4
.L_encrypt_16_blocks_pzwgkGgbplFqzaB_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_rkcxrDqAhslhkiA
	jae	.L_16_blocks_overflow_rkcxrDqAhslhkiA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_rkcxrDqAhslhkiA
	jmp	.L_16_blocks_ok_rkcxrDqAhslhkiA_BCM_4
.L_16_blocks_overflow_rkcxrDqAhslhkiA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_rkcxrDqAhslhkiA_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_0_aibBfiDGEtrGszv_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_8_aibBfiDGEtrGszv_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_aibBfiDGEtrGszv
	jb	.L_last_num_blocks_is_7_1_aibBfiDGEtrGszv_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_12_aibBfiDGEtrGszv_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_aibBfiDGEtrGszv
	jb	.L_last_num_blocks_is_11_9_aibBfiDGEtrGszv_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_15_aibBfiDGEtrGszv_BCM_4
# WAS ja .L_last_num_blocks_is_16_aibBfiDGEtrGszv
	ja	.L_last_num_blocks_is_16_aibBfiDGEtrGszv_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_14_aibBfiDGEtrGszv_BCM_4
# WAS jmp .L_last_num_blocks_is_13_aibBfiDGEtrGszv
	jmp	.L_last_num_blocks_is_13_aibBfiDGEtrGszv_BCM_4

.L_last_num_blocks_is_11_9_aibBfiDGEtrGszv_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_10_aibBfiDGEtrGszv_BCM_4
# WAS ja .L_last_num_blocks_is_11_aibBfiDGEtrGszv
	ja	.L_last_num_blocks_is_11_aibBfiDGEtrGszv_BCM_4
# WAS jmp .L_last_num_blocks_is_9_aibBfiDGEtrGszv
	jmp	.L_last_num_blocks_is_9_aibBfiDGEtrGszv_BCM_4

.L_last_num_blocks_is_7_1_aibBfiDGEtrGszv_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_4_aibBfiDGEtrGszv_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_aibBfiDGEtrGszv
	jb	.L_last_num_blocks_is_3_1_aibBfiDGEtrGszv_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_aibBfiDGEtrGszv
	ja	.L_last_num_blocks_is_7_aibBfiDGEtrGszv_BCM_4
# WAS je .L_last_num_blocks_is_6_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_6_aibBfiDGEtrGszv_BCM_4
# WAS jmp .L_last_num_blocks_is_5_aibBfiDGEtrGszv
	jmp	.L_last_num_blocks_is_5_aibBfiDGEtrGszv_BCM_4

.L_last_num_blocks_is_3_1_aibBfiDGEtrGszv_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_aibBfiDGEtrGszv
	ja	.L_last_num_blocks_is_3_aibBfiDGEtrGszv_BCM_4
# WAS je .L_last_num_blocks_is_2_aibBfiDGEtrGszv
	je	.L_last_num_blocks_is_2_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_1_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_CfAjeyGwbnghnsF
	jae	.L_16_blocks_overflow_CfAjeyGwbnghnsF_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_CfAjeyGwbnghnsF
	jmp	.L_16_blocks_ok_CfAjeyGwbnghnsF_BCM_4

.L_16_blocks_overflow_CfAjeyGwbnghnsF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_CfAjeyGwbnghnsF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EpCxqyApoFBApzn
	jl	.L_small_initial_partial_block_EpCxqyApoFBApzn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EpCxqyApoFBApzn
	jmp	.L_small_initial_compute_done_EpCxqyApoFBApzn_BCM_4
.L_small_initial_partial_block_EpCxqyApoFBApzn_BCM_4:

# 14103 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 14116 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_EpCxqyApoFBApzn
	jmp	.L_after_reduction_EpCxqyApoFBApzn_BCM_4
.L_small_initial_compute_done_EpCxqyApoFBApzn_BCM_4:

.L_after_reduction_EpCxqyApoFBApzn_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_2_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_sbkoxvmnmihnaig
	jae	.L_16_blocks_overflow_sbkoxvmnmihnaig_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_sbkoxvmnmihnaig
	jmp	.L_16_blocks_ok_sbkoxvmnmihnaig_BCM_4

.L_16_blocks_overflow_sbkoxvmnmihnaig_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_sbkoxvmnmihnaig_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rlBeEnisjmybagx
	jl	.L_small_initial_partial_block_rlBeEnisjmybagx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rlBeEnisjmybagx
	jmp	.L_small_initial_compute_done_rlBeEnisjmybagx_BCM_4
.L_small_initial_partial_block_rlBeEnisjmybagx_BCM_4:

# 14296 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rlBeEnisjmybagx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rlBeEnisjmybagx
	je	.L_after_reduction_rlBeEnisjmybagx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rlBeEnisjmybagx_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_3_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_zopCCjajxtsjEdG
	jae	.L_16_blocks_overflow_zopCCjajxtsjEdG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_zopCCjajxtsjEdG
	jmp	.L_16_blocks_ok_zopCCjajxtsjEdG_BCM_4

.L_16_blocks_overflow_zopCCjajxtsjEdG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_zopCCjajxtsjEdG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hzwxdhlzEAlznGG
	jl	.L_small_initial_partial_block_hzwxdhlzEAlznGG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hzwxdhlzEAlznGG
	jmp	.L_small_initial_compute_done_hzwxdhlzEAlznGG_BCM_4
.L_small_initial_partial_block_hzwxdhlzEAlznGG_BCM_4:

# 14514 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hzwxdhlzEAlznGG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hzwxdhlzEAlznGG
	je	.L_after_reduction_hzwxdhlzEAlznGG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hzwxdhlzEAlznGG_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_4_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_utgfjaowycovqbp
	jae	.L_16_blocks_overflow_utgfjaowycovqbp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_utgfjaowycovqbp
	jmp	.L_16_blocks_ok_utgfjaowycovqbp_BCM_4

.L_16_blocks_overflow_utgfjaowycovqbp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_utgfjaowycovqbp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AslmndcqqeqAFer
	jl	.L_small_initial_partial_block_AslmndcqqeqAFer_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AslmndcqqeqAFer
	jmp	.L_small_initial_compute_done_AslmndcqqeqAFer_BCM_4
.L_small_initial_partial_block_AslmndcqqeqAFer_BCM_4:

# 14731 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AslmndcqqeqAFer_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AslmndcqqeqAFer
	je	.L_after_reduction_AslmndcqqeqAFer_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AslmndcqqeqAFer_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_5_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_wugoGjfryfqCjFa
	jae	.L_16_blocks_overflow_wugoGjfryfqCjFa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_wugoGjfryfqCjFa
	jmp	.L_16_blocks_ok_wugoGjfryfqCjFa_BCM_4

.L_16_blocks_overflow_wugoGjfryfqCjFa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_wugoGjfryfqCjFa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CFkxkbxvkninECi
	jl	.L_small_initial_partial_block_CFkxkbxvkninECi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CFkxkbxvkninECi
	jmp	.L_small_initial_compute_done_CFkxkbxvkninECi_BCM_4
.L_small_initial_partial_block_CFkxkbxvkninECi_BCM_4:

# 14979 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CFkxkbxvkninECi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CFkxkbxvkninECi
	je	.L_after_reduction_CFkxkbxvkninECi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CFkxkbxvkninECi_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_6_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_bpCexfjrkbCbhBc
	jae	.L_16_blocks_overflow_bpCexfjrkbCbhBc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_bpCexfjrkbCbhBc
	jmp	.L_16_blocks_ok_bpCexfjrkbCbhBc_BCM_4

.L_16_blocks_overflow_bpCexfjrkbCbhBc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_bpCexfjrkbCbhBc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ojmsEGarpmywurj
	jl	.L_small_initial_partial_block_ojmsEGarpmywurj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ojmsEGarpmywurj
	jmp	.L_small_initial_compute_done_ojmsEGarpmywurj_BCM_4
.L_small_initial_partial_block_ojmsEGarpmywurj_BCM_4:

# 15226 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ojmsEGarpmywurj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ojmsEGarpmywurj
	je	.L_after_reduction_ojmsEGarpmywurj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ojmsEGarpmywurj_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_7_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_ifByzBizpdBxFnD
	jae	.L_16_blocks_overflow_ifByzBizpdBxFnD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_ifByzBizpdBxFnD
	jmp	.L_16_blocks_ok_ifByzBizpdBxFnD_BCM_4

.L_16_blocks_overflow_ifByzBizpdBxFnD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_ifByzBizpdBxFnD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yEEshkytCfbpoyC
	jl	.L_small_initial_partial_block_yEEshkytCfbpoyC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yEEshkytCfbpoyC
	jmp	.L_small_initial_compute_done_yEEshkytCfbpoyC_BCM_4
.L_small_initial_partial_block_yEEshkytCfbpoyC_BCM_4:

# 15484 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yEEshkytCfbpoyC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yEEshkytCfbpoyC
	je	.L_after_reduction_yEEshkytCfbpoyC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yEEshkytCfbpoyC_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_8_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_cjwhqEvpCfjCcEa
	jae	.L_16_blocks_overflow_cjwhqEvpCfjCcEa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_cjwhqEvpCfjCcEa
	jmp	.L_16_blocks_ok_cjwhqEvpCfjCcEa_BCM_4

.L_16_blocks_overflow_cjwhqEvpCfjCcEa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_cjwhqEvpCfjCcEa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EqvthrGbiBgAmsm
	jl	.L_small_initial_partial_block_EqvthrGbiBgAmsm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EqvthrGbiBgAmsm
	jmp	.L_small_initial_compute_done_EqvthrGbiBgAmsm_BCM_4
.L_small_initial_partial_block_EqvthrGbiBgAmsm_BCM_4:

# 15740 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EqvthrGbiBgAmsm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EqvthrGbiBgAmsm
	je	.L_after_reduction_EqvthrGbiBgAmsm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EqvthrGbiBgAmsm_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_9_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_xiomBjDmsdhvtig
	jae	.L_16_blocks_overflow_xiomBjDmsdhvtig_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_xiomBjDmsdhvtig
	jmp	.L_16_blocks_ok_xiomBjDmsdhvtig_BCM_4

.L_16_blocks_overflow_xiomBjDmsdhvtig_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_xiomBjDmsdhvtig_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mbfjpvagktvcgbq
	jl	.L_small_initial_partial_block_mbfjpvagktvcgbq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mbfjpvagktvcgbq
	jmp	.L_small_initial_compute_done_mbfjpvagktvcgbq_BCM_4
.L_small_initial_partial_block_mbfjpvagktvcgbq_BCM_4:

# 16025 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mbfjpvagktvcgbq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mbfjpvagktvcgbq
	je	.L_after_reduction_mbfjpvagktvcgbq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mbfjpvagktvcgbq_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_10_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_cEyikykuFcExlBe
	jae	.L_16_blocks_overflow_cEyikykuFcExlBe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_cEyikykuFcExlBe
	jmp	.L_16_blocks_ok_cEyikykuFcExlBe_BCM_4

.L_16_blocks_overflow_cEyikykuFcExlBe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_cEyikykuFcExlBe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zkabbaDExfgmaqw
	jl	.L_small_initial_partial_block_zkabbaDExfgmaqw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zkabbaDExfgmaqw
	jmp	.L_small_initial_compute_done_zkabbaDExfgmaqw_BCM_4
.L_small_initial_partial_block_zkabbaDExfgmaqw_BCM_4:

# 16308 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zkabbaDExfgmaqw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zkabbaDExfgmaqw
	je	.L_after_reduction_zkabbaDExfgmaqw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zkabbaDExfgmaqw_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_11_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_gsBoGfzrmwqlomo
	jae	.L_16_blocks_overflow_gsBoGfzrmwqlomo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_gsBoGfzrmwqlomo
	jmp	.L_16_blocks_ok_gsBoGfzrmwqlomo_BCM_4

.L_16_blocks_overflow_gsBoGfzrmwqlomo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_gsBoGfzrmwqlomo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jaixjmwppjCmscj
	jl	.L_small_initial_partial_block_jaixjmwppjCmscj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jaixjmwppjCmscj
	jmp	.L_small_initial_compute_done_jaixjmwppjCmscj_BCM_4
.L_small_initial_partial_block_jaixjmwppjCmscj_BCM_4:

# 16602 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jaixjmwppjCmscj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jaixjmwppjCmscj
	je	.L_after_reduction_jaixjmwppjCmscj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jaixjmwppjCmscj_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_12_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_CAvgqgqjrtonFws
	jae	.L_16_blocks_overflow_CAvgqgqjrtonFws_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_CAvgqgqjrtonFws
	jmp	.L_16_blocks_ok_CAvgqgqjrtonFws_BCM_4

.L_16_blocks_overflow_CAvgqgqjrtonFws_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_CAvgqgqjrtonFws_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hvmFFygfifAjAnG
	jl	.L_small_initial_partial_block_hvmFFygfifAjAnG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hvmFFygfifAjAnG
	jmp	.L_small_initial_compute_done_hvmFFygfifAjAnG_BCM_4
.L_small_initial_partial_block_hvmFFygfifAjAnG_BCM_4:

# 16890 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hvmFFygfifAjAnG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hvmFFygfifAjAnG
	je	.L_after_reduction_hvmFFygfifAjAnG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hvmFFygfifAjAnG_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_13_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_zqBffksAbxFoiFr
	jae	.L_16_blocks_overflow_zqBffksAbxFoiFr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_zqBffksAbxFoiFr
	jmp	.L_16_blocks_ok_zqBffksAbxFoiFr_BCM_4

.L_16_blocks_overflow_zqBffksAbxFoiFr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_zqBffksAbxFoiFr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kmvbbtEzBEoeAuq
	jl	.L_small_initial_partial_block_kmvbbtEzBEoeAuq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kmvbbtEzBEoeAuq
	jmp	.L_small_initial_compute_done_kmvbbtEzBEoeAuq_BCM_4
.L_small_initial_partial_block_kmvbbtEzBEoeAuq_BCM_4:

# 17207 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kmvbbtEzBEoeAuq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kmvbbtEzBEoeAuq
	je	.L_after_reduction_kmvbbtEzBEoeAuq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kmvbbtEzBEoeAuq_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_14_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_mBiifnhuGFDpfDy
	jae	.L_16_blocks_overflow_mBiifnhuGFDpfDy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_mBiifnhuGFDpfDy
	jmp	.L_16_blocks_ok_mBiifnhuGFDpfDy_BCM_4

.L_16_blocks_overflow_mBiifnhuGFDpfDy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_mBiifnhuGFDpfDy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_imGnxqypsDyhyek
	jl	.L_small_initial_partial_block_imGnxqypsDyhyek_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_imGnxqypsDyhyek
	jmp	.L_small_initial_compute_done_imGnxqypsDyhyek_BCM_4
.L_small_initial_partial_block_imGnxqypsDyhyek_BCM_4:

# 17518 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_imGnxqypsDyhyek_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_imGnxqypsDyhyek
	je	.L_after_reduction_imGnxqypsDyhyek_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_imGnxqypsDyhyek_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_15_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_zDGlqyFvuaglkeB
	jae	.L_16_blocks_overflow_zDGlqyFvuaglkeB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_zDGlqyFvuaglkeB
	jmp	.L_16_blocks_ok_zDGlqyFvuaglkeB_BCM_4

.L_16_blocks_overflow_zDGlqyFvuaglkeB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_zDGlqyFvuaglkeB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BuGprjrzjxrmorl
	jl	.L_small_initial_partial_block_BuGprjrzjxrmorl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BuGprjrzjxrmorl
	jmp	.L_small_initial_compute_done_BuGprjrzjxrmorl_BCM_4
.L_small_initial_partial_block_BuGprjrzjxrmorl_BCM_4:

# 17840 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BuGprjrzjxrmorl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BuGprjrzjxrmorl
	je	.L_after_reduction_BuGprjrzjxrmorl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BuGprjrzjxrmorl_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_16_aibBfiDGEtrGszv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_uwtqqfwgewBdjhg
	jae	.L_16_blocks_overflow_uwtqqfwgewBdjhg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_uwtqqfwgewBdjhg
	jmp	.L_16_blocks_ok_uwtqqfwgewBdjhg_BCM_4

.L_16_blocks_overflow_uwtqqfwgewBdjhg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_uwtqqfwgewBdjhg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_ifytbdtuElzEqkG_BCM_4:

# 18091 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ifytbdtuElzEqkG_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ifytbdtuElzEqkG_BCM_4:

# WAS jmp .L_last_blocks_done_aibBfiDGEtrGszv
	jmp	.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4
.L_last_num_blocks_is_0_aibBfiDGEtrGszv_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_aibBfiDGEtrGszv_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_pzwgkGgbplFqzaB
	jmp	.L_ghash_done_pzwgkGgbplFqzaB_BCM_4

.L_message_below_32_blocks_pzwgkGgbplFqzaB_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_mgjxphyGhnqeEta
	jnz	.L_skip_hkeys_precomputation_mgjxphyGhnqeEta_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_mgjxphyGhnqeEta_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_0_FjCtcrwcdAhCtrr_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_8_FjCtcrwcdAhCtrr_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_FjCtcrwcdAhCtrr
	jb	.L_last_num_blocks_is_7_1_FjCtcrwcdAhCtrr_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_12_FjCtcrwcdAhCtrr_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_FjCtcrwcdAhCtrr
	jb	.L_last_num_blocks_is_11_9_FjCtcrwcdAhCtrr_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_15_FjCtcrwcdAhCtrr_BCM_4
# WAS ja .L_last_num_blocks_is_16_FjCtcrwcdAhCtrr
	ja	.L_last_num_blocks_is_16_FjCtcrwcdAhCtrr_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_14_FjCtcrwcdAhCtrr_BCM_4
# WAS jmp .L_last_num_blocks_is_13_FjCtcrwcdAhCtrr
	jmp	.L_last_num_blocks_is_13_FjCtcrwcdAhCtrr_BCM_4

.L_last_num_blocks_is_11_9_FjCtcrwcdAhCtrr_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_10_FjCtcrwcdAhCtrr_BCM_4
# WAS ja .L_last_num_blocks_is_11_FjCtcrwcdAhCtrr
	ja	.L_last_num_blocks_is_11_FjCtcrwcdAhCtrr_BCM_4
# WAS jmp .L_last_num_blocks_is_9_FjCtcrwcdAhCtrr
	jmp	.L_last_num_blocks_is_9_FjCtcrwcdAhCtrr_BCM_4

.L_last_num_blocks_is_7_1_FjCtcrwcdAhCtrr_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_4_FjCtcrwcdAhCtrr_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_FjCtcrwcdAhCtrr
	jb	.L_last_num_blocks_is_3_1_FjCtcrwcdAhCtrr_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_FjCtcrwcdAhCtrr
	ja	.L_last_num_blocks_is_7_FjCtcrwcdAhCtrr_BCM_4
# WAS je .L_last_num_blocks_is_6_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_6_FjCtcrwcdAhCtrr_BCM_4
# WAS jmp .L_last_num_blocks_is_5_FjCtcrwcdAhCtrr
	jmp	.L_last_num_blocks_is_5_FjCtcrwcdAhCtrr_BCM_4

.L_last_num_blocks_is_3_1_FjCtcrwcdAhCtrr_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_FjCtcrwcdAhCtrr
	ja	.L_last_num_blocks_is_3_FjCtcrwcdAhCtrr_BCM_4
# WAS je .L_last_num_blocks_is_2_FjCtcrwcdAhCtrr
	je	.L_last_num_blocks_is_2_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_1_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_zCjdttbyboeGxFb
	jae	.L_16_blocks_overflow_zCjdttbyboeGxFb_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_zCjdttbyboeGxFb
	jmp	.L_16_blocks_ok_zCjdttbyboeGxFb_BCM_4

.L_16_blocks_overflow_zCjdttbyboeGxFb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_zCjdttbyboeGxFb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ojiwxsAElGDCCBo
	jl	.L_small_initial_partial_block_ojiwxsAElGDCCBo_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ojiwxsAElGDCCBo
	jmp	.L_small_initial_compute_done_ojiwxsAElGDCCBo_BCM_4
.L_small_initial_partial_block_ojiwxsAElGDCCBo_BCM_4:

# 18558 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 18599 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_ojiwxsAElGDCCBo
	jmp	.L_after_reduction_ojiwxsAElGDCCBo_BCM_4
.L_small_initial_compute_done_ojiwxsAElGDCCBo_BCM_4:

.L_after_reduction_ojiwxsAElGDCCBo_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_2_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_fhFvhqpaozkgyzE
	jae	.L_16_blocks_overflow_fhFvhqpaozkgyzE_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_fhFvhqpaozkgyzE
	jmp	.L_16_blocks_ok_fhFvhqpaozkgyzE_BCM_4

.L_16_blocks_overflow_fhFvhqpaozkgyzE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_fhFvhqpaozkgyzE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_poknuzddusxymkw
	jl	.L_small_initial_partial_block_poknuzddusxymkw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_poknuzddusxymkw
	jmp	.L_small_initial_compute_done_poknuzddusxymkw_BCM_4
.L_small_initial_partial_block_poknuzddusxymkw_BCM_4:

# 18758 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_poknuzddusxymkw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_poknuzddusxymkw
	je	.L_after_reduction_poknuzddusxymkw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_poknuzddusxymkw_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_3_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_hjBmpccGhruhCnv
	jae	.L_16_blocks_overflow_hjBmpccGhruhCnv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_hjBmpccGhruhCnv
	jmp	.L_16_blocks_ok_hjBmpccGhruhCnv_BCM_4

.L_16_blocks_overflow_hjBmpccGhruhCnv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_hjBmpccGhruhCnv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yshcwAFsbqgougy
	jl	.L_small_initial_partial_block_yshcwAFsbqgougy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yshcwAFsbqgougy
	jmp	.L_small_initial_compute_done_yshcwAFsbqgougy_BCM_4
.L_small_initial_partial_block_yshcwAFsbqgougy_BCM_4:

# 18957 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yshcwAFsbqgougy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yshcwAFsbqgougy
	je	.L_after_reduction_yshcwAFsbqgougy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yshcwAFsbqgougy_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_4_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_bBrsEuBDcsAcscn
	jae	.L_16_blocks_overflow_bBrsEuBDcsAcscn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_bBrsEuBDcsAcscn
	jmp	.L_16_blocks_ok_bBrsEuBDcsAcscn_BCM_4

.L_16_blocks_overflow_bBrsEuBDcsAcscn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_bBrsEuBDcsAcscn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bDghuGEnDqEshwp
	jl	.L_small_initial_partial_block_bDghuGEnDqEshwp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bDghuGEnDqEshwp
	jmp	.L_small_initial_compute_done_bDghuGEnDqEshwp_BCM_4
.L_small_initial_partial_block_bDghuGEnDqEshwp_BCM_4:

# 19156 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bDghuGEnDqEshwp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bDghuGEnDqEshwp
	je	.L_after_reduction_bDghuGEnDqEshwp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bDghuGEnDqEshwp_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_5_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_nygdGeFptfwzvpw
	jae	.L_16_blocks_overflow_nygdGeFptfwzvpw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_nygdGeFptfwzvpw
	jmp	.L_16_blocks_ok_nygdGeFptfwzvpw_BCM_4

.L_16_blocks_overflow_nygdGeFptfwzvpw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_nygdGeFptfwzvpw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dFGmpkoEnwhmCiq
	jl	.L_small_initial_partial_block_dFGmpkoEnwhmCiq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dFGmpkoEnwhmCiq
	jmp	.L_small_initial_compute_done_dFGmpkoEnwhmCiq_BCM_4
.L_small_initial_partial_block_dFGmpkoEnwhmCiq_BCM_4:

# 19382 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dFGmpkoEnwhmCiq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dFGmpkoEnwhmCiq
	je	.L_after_reduction_dFGmpkoEnwhmCiq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dFGmpkoEnwhmCiq_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_6_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_adtbeheumiAkmlw
	jae	.L_16_blocks_overflow_adtbeheumiAkmlw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_adtbeheumiAkmlw
	jmp	.L_16_blocks_ok_adtbeheumiAkmlw_BCM_4

.L_16_blocks_overflow_adtbeheumiAkmlw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_adtbeheumiAkmlw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nDqCwyzuFDuivbj
	jl	.L_small_initial_partial_block_nDqCwyzuFDuivbj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nDqCwyzuFDuivbj
	jmp	.L_small_initial_compute_done_nDqCwyzuFDuivbj_BCM_4
.L_small_initial_partial_block_nDqCwyzuFDuivbj_BCM_4:

# 19608 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nDqCwyzuFDuivbj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nDqCwyzuFDuivbj
	je	.L_after_reduction_nDqCwyzuFDuivbj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nDqCwyzuFDuivbj_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_7_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_aDdoAskralEtovy
	jae	.L_16_blocks_overflow_aDdoAskralEtovy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_aDdoAskralEtovy
	jmp	.L_16_blocks_ok_aDdoAskralEtovy_BCM_4

.L_16_blocks_overflow_aDdoAskralEtovy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_aDdoAskralEtovy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GmgCerxizidGGeG
	jl	.L_small_initial_partial_block_GmgCerxizidGGeG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GmgCerxizidGGeG
	jmp	.L_small_initial_compute_done_GmgCerxizidGGeG_BCM_4
.L_small_initial_partial_block_GmgCerxizidGGeG_BCM_4:

# 19841 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GmgCerxizidGGeG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GmgCerxizidGGeG
	je	.L_after_reduction_GmgCerxizidGGeG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GmgCerxizidGGeG_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_8_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_hjBdmnrbjjzAbzC
	jae	.L_16_blocks_overflow_hjBdmnrbjjzAbzC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_hjBdmnrbjjzAbzC
	jmp	.L_16_blocks_ok_hjBdmnrbjjzAbzC_BCM_4

.L_16_blocks_overflow_hjBdmnrbjjzAbzC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_hjBdmnrbjjzAbzC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_oukGaFAnaceFaaB
	jl	.L_small_initial_partial_block_oukGaFAnaceFaaB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_oukGaFAnaceFaaB
	jmp	.L_small_initial_compute_done_oukGaFAnaceFaaB_BCM_4
.L_small_initial_partial_block_oukGaFAnaceFaaB_BCM_4:

# 20076 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_oukGaFAnaceFaaB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_oukGaFAnaceFaaB
	je	.L_after_reduction_oukGaFAnaceFaaB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_oukGaFAnaceFaaB_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_9_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_szBmuqzxwjxBawF
	jae	.L_16_blocks_overflow_szBmuqzxwjxBawF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_szBmuqzxwjxBawF
	jmp	.L_16_blocks_ok_szBmuqzxwjxBawF_BCM_4

.L_16_blocks_overflow_szBmuqzxwjxBawF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_szBmuqzxwjxBawF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_paBklhesgEuGBAF
	jl	.L_small_initial_partial_block_paBklhesgEuGBAF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_paBklhesgEuGBAF
	jmp	.L_small_initial_compute_done_paBklhesgEuGBAF_BCM_4
.L_small_initial_partial_block_paBklhesgEuGBAF_BCM_4:

# 20336 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_paBklhesgEuGBAF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_paBklhesgEuGBAF
	je	.L_after_reduction_paBklhesgEuGBAF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_paBklhesgEuGBAF_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_10_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_xhlcvtlyGczsicp
	jae	.L_16_blocks_overflow_xhlcvtlyGczsicp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_xhlcvtlyGczsicp
	jmp	.L_16_blocks_ok_xhlcvtlyGczsicp_BCM_4

.L_16_blocks_overflow_xhlcvtlyGczsicp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_xhlcvtlyGczsicp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nytpeiDsozzjuGs
	jl	.L_small_initial_partial_block_nytpeiDsozzjuGs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nytpeiDsozzjuGs
	jmp	.L_small_initial_compute_done_nytpeiDsozzjuGs_BCM_4
.L_small_initial_partial_block_nytpeiDsozzjuGs_BCM_4:

# 20598 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nytpeiDsozzjuGs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nytpeiDsozzjuGs
	je	.L_after_reduction_nytpeiDsozzjuGs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nytpeiDsozzjuGs_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_11_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_CkhBiupnDlzBoGx
	jae	.L_16_blocks_overflow_CkhBiupnDlzBoGx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_CkhBiupnDlzBoGx
	jmp	.L_16_blocks_ok_CkhBiupnDlzBoGx_BCM_4

.L_16_blocks_overflow_CkhBiupnDlzBoGx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_CkhBiupnDlzBoGx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BsdepnxnqoCzhkf
	jl	.L_small_initial_partial_block_BsdepnxnqoCzhkf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BsdepnxnqoCzhkf
	jmp	.L_small_initial_compute_done_BsdepnxnqoCzhkf_BCM_4
.L_small_initial_partial_block_BsdepnxnqoCzhkf_BCM_4:

# 20867 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BsdepnxnqoCzhkf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BsdepnxnqoCzhkf
	je	.L_after_reduction_BsdepnxnqoCzhkf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BsdepnxnqoCzhkf_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_12_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_svvcxnisrDiilsD
	jae	.L_16_blocks_overflow_svvcxnisrDiilsD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_svvcxnisrDiilsD
	jmp	.L_16_blocks_ok_svvcxnisrDiilsD_BCM_4

.L_16_blocks_overflow_svvcxnisrDiilsD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_svvcxnisrDiilsD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vFAcldEivdmCjng
	jl	.L_small_initial_partial_block_vFAcldEivdmCjng_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vFAcldEivdmCjng
	jmp	.L_small_initial_compute_done_vFAcldEivdmCjng_BCM_4
.L_small_initial_partial_block_vFAcldEivdmCjng_BCM_4:

# 21134 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vFAcldEivdmCjng_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vFAcldEivdmCjng
	je	.L_after_reduction_vFAcldEivdmCjng_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vFAcldEivdmCjng_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_13_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_oDDmorFzihnoffg
	jae	.L_16_blocks_overflow_oDDmorFzihnoffg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_oDDmorFzihnoffg
	jmp	.L_16_blocks_ok_oDDmorFzihnoffg_BCM_4

.L_16_blocks_overflow_oDDmorFzihnoffg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_oDDmorFzihnoffg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yccbCzjnDwADEak
	jl	.L_small_initial_partial_block_yccbCzjnDwADEak_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yccbCzjnDwADEak
	jmp	.L_small_initial_compute_done_yccbCzjnDwADEak_BCM_4
.L_small_initial_partial_block_yccbCzjnDwADEak_BCM_4:

# 21426 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yccbCzjnDwADEak_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yccbCzjnDwADEak
	je	.L_after_reduction_yccbCzjnDwADEak_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yccbCzjnDwADEak_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_14_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_liipuseeafvnkfi
	jae	.L_16_blocks_overflow_liipuseeafvnkfi_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_liipuseeafvnkfi
	jmp	.L_16_blocks_ok_liipuseeafvnkfi_BCM_4

.L_16_blocks_overflow_liipuseeafvnkfi_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_liipuseeafvnkfi_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BentjlpjfFDzvxb
	jl	.L_small_initial_partial_block_BentjlpjfFDzvxb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BentjlpjfFDzvxb
	jmp	.L_small_initial_compute_done_BentjlpjfFDzvxb_BCM_4
.L_small_initial_partial_block_BentjlpjfFDzvxb_BCM_4:

# 21716 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BentjlpjfFDzvxb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BentjlpjfFDzvxb
	je	.L_after_reduction_BentjlpjfFDzvxb_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BentjlpjfFDzvxb_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_15_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_cuygxmuthGeaeby
	jae	.L_16_blocks_overflow_cuygxmuthGeaeby_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_cuygxmuthGeaeby
	jmp	.L_16_blocks_ok_cuygxmuthGeaeby_BCM_4

.L_16_blocks_overflow_cuygxmuthGeaeby_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_cuygxmuthGeaeby_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qokhdigphzzzcxp
	jl	.L_small_initial_partial_block_qokhdigphzzzcxp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qokhdigphzzzcxp
	jmp	.L_small_initial_compute_done_qokhdigphzzzcxp_BCM_4
.L_small_initial_partial_block_qokhdigphzzzcxp_BCM_4:

# 22013 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qokhdigphzzzcxp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qokhdigphzzzcxp
	je	.L_after_reduction_qokhdigphzzzcxp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qokhdigphzzzcxp_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_16_FjCtcrwcdAhCtrr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_AgkAgztElEpGqer
	jae	.L_16_blocks_overflow_AgkAgztElEpGqer_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_AgkAgztElEpGqer
	jmp	.L_16_blocks_ok_AgkAgztElEpGqer_BCM_4

.L_16_blocks_overflow_AgkAgztElEpGqer_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_AgkAgztElEpGqer_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_eruDeitqttsEEhG_BCM_4:

# 22240 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_eruDeitqttsEEhG_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_eruDeitqttsEEhG_BCM_4:

# WAS jmp .L_last_blocks_done_FjCtcrwcdAhCtrr
	jmp	.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4
.L_last_num_blocks_is_0_FjCtcrwcdAhCtrr_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_FjCtcrwcdAhCtrr_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_pzwgkGgbplFqzaB
	jmp	.L_ghash_done_pzwgkGgbplFqzaB_BCM_4

.L_message_below_equal_16_blocks_pzwgkGgbplFqzaB_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_8_Arjlgemsqpaxhfj_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_Arjlgemsqpaxhfj
	jl	.L_small_initial_num_blocks_is_7_1_Arjlgemsqpaxhfj_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_12_Arjlgemsqpaxhfj_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_Arjlgemsqpaxhfj
	jl	.L_small_initial_num_blocks_is_11_9_Arjlgemsqpaxhfj_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_16_Arjlgemsqpaxhfj_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_15_Arjlgemsqpaxhfj_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_14_Arjlgemsqpaxhfj_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_Arjlgemsqpaxhfj
	jmp	.L_small_initial_num_blocks_is_13_Arjlgemsqpaxhfj_BCM_4

.L_small_initial_num_blocks_is_11_9_Arjlgemsqpaxhfj_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_11_Arjlgemsqpaxhfj_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_10_Arjlgemsqpaxhfj_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_Arjlgemsqpaxhfj
	jmp	.L_small_initial_num_blocks_is_9_Arjlgemsqpaxhfj_BCM_4

.L_small_initial_num_blocks_is_7_1_Arjlgemsqpaxhfj_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_4_Arjlgemsqpaxhfj_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_Arjlgemsqpaxhfj
	jl	.L_small_initial_num_blocks_is_3_1_Arjlgemsqpaxhfj_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_7_Arjlgemsqpaxhfj_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_6_Arjlgemsqpaxhfj_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_Arjlgemsqpaxhfj
	jmp	.L_small_initial_num_blocks_is_5_Arjlgemsqpaxhfj_BCM_4

.L_small_initial_num_blocks_is_3_1_Arjlgemsqpaxhfj_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_3_Arjlgemsqpaxhfj_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_Arjlgemsqpaxhfj
	je	.L_small_initial_num_blocks_is_2_Arjlgemsqpaxhfj_BCM_4





.L_small_initial_num_blocks_is_1_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qFFkbngiCspnnzb
	jl	.L_small_initial_partial_block_qFFkbngiCspnnzb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qFFkbngiCspnnzb
	jmp	.L_small_initial_compute_done_qFFkbngiCspnnzb_BCM_4
.L_small_initial_partial_block_qFFkbngiCspnnzb_BCM_4:

# 22518 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 22531 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_qFFkbngiCspnnzb
	jmp	.L_after_reduction_qFFkbngiCspnnzb_BCM_4
.L_small_initial_compute_done_qFFkbngiCspnnzb_BCM_4:

.L_after_reduction_qFFkbngiCspnnzb_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_2_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vcznqnCBEluErfz
	jl	.L_small_initial_partial_block_vcznqnCBEluErfz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vcznqnCBEluErfz
	jmp	.L_small_initial_compute_done_vcznqnCBEluErfz_BCM_4
.L_small_initial_partial_block_vcznqnCBEluErfz_BCM_4:

# 22633 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vcznqnCBEluErfz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vcznqnCBEluErfz
	je	.L_after_reduction_vcznqnCBEluErfz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_vcznqnCBEluErfz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_3_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lxlwCnecElggboh
	jl	.L_small_initial_partial_block_lxlwCnecElggboh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lxlwCnecElggboh
	jmp	.L_small_initial_compute_done_lxlwCnecElggboh_BCM_4
.L_small_initial_partial_block_lxlwCnecElggboh_BCM_4:

# 22773 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lxlwCnecElggboh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lxlwCnecElggboh
	je	.L_after_reduction_lxlwCnecElggboh_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_lxlwCnecElggboh_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_4_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_uwbAugwxtaEtqkm
	jl	.L_small_initial_partial_block_uwbAugwxtaEtqkm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_uwbAugwxtaEtqkm
	jmp	.L_small_initial_compute_done_uwbAugwxtaEtqkm_BCM_4
.L_small_initial_partial_block_uwbAugwxtaEtqkm_BCM_4:

# 22912 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uwbAugwxtaEtqkm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_uwbAugwxtaEtqkm
	je	.L_after_reduction_uwbAugwxtaEtqkm_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_uwbAugwxtaEtqkm_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_5_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %xmm29,%xmm3,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DlAbwtibuwDuckF
	jl	.L_small_initial_partial_block_DlAbwtibuwDuckF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DlAbwtibuwDuckF
	jmp	.L_small_initial_compute_done_DlAbwtibuwDuckF_BCM_4
.L_small_initial_partial_block_DlAbwtibuwDuckF_BCM_4:

# 23080 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DlAbwtibuwDuckF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DlAbwtibuwDuckF
	je	.L_after_reduction_DlAbwtibuwDuckF_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_DlAbwtibuwDuckF_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_6_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %ymm29,%ymm3,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bGfevqujtGrmyqw
	jl	.L_small_initial_partial_block_bGfevqujtGrmyqw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bGfevqujtGrmyqw
	jmp	.L_small_initial_compute_done_bGfevqujtGrmyqw_BCM_4
.L_small_initial_partial_block_bGfevqujtGrmyqw_BCM_4:

# 23247 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bGfevqujtGrmyqw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bGfevqujtGrmyqw
	je	.L_after_reduction_bGfevqujtGrmyqw_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_bGfevqujtGrmyqw_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_7_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BDbECEkpAEccDln
	jl	.L_small_initial_partial_block_BDbECEkpAEccDln_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BDbECEkpAEccDln
	jmp	.L_small_initial_compute_done_BDbECEkpAEccDln_BCM_4
.L_small_initial_partial_block_BDbECEkpAEccDln_BCM_4:

# 23425 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BDbECEkpAEccDln_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BDbECEkpAEccDln
	je	.L_after_reduction_BDbECEkpAEccDln_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_BDbECEkpAEccDln_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_8_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ngynpdbFzwtiwpp
	jl	.L_small_initial_partial_block_ngynpdbFzwtiwpp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ngynpdbFzwtiwpp
	jmp	.L_small_initial_compute_done_ngynpdbFzwtiwpp_BCM_4
.L_small_initial_partial_block_ngynpdbFzwtiwpp_BCM_4:

# 23601 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ngynpdbFzwtiwpp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ngynpdbFzwtiwpp
	je	.L_after_reduction_ngynpdbFzwtiwpp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ngynpdbFzwtiwpp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_9_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %xmm29,%xmm4,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bxCwlFCulijpvoi
	jl	.L_small_initial_partial_block_bxCwlFCulijpvoi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bxCwlFCulijpvoi
	jmp	.L_small_initial_compute_done_bxCwlFCulijpvoi_BCM_4
.L_small_initial_partial_block_bxCwlFCulijpvoi_BCM_4:

# 23805 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bxCwlFCulijpvoi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bxCwlFCulijpvoi
	je	.L_after_reduction_bxCwlFCulijpvoi_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_bxCwlFCulijpvoi_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_10_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %ymm29,%ymm4,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kAlkoicirsyCsoA
	jl	.L_small_initial_partial_block_kAlkoicirsyCsoA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kAlkoicirsyCsoA
	jmp	.L_small_initial_compute_done_kAlkoicirsyCsoA_BCM_4
.L_small_initial_partial_block_kAlkoicirsyCsoA_BCM_4:

# 24007 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kAlkoicirsyCsoA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kAlkoicirsyCsoA
	je	.L_after_reduction_kAlkoicirsyCsoA_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_kAlkoicirsyCsoA_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_11_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rsxtmscApkaFsGk
	jl	.L_small_initial_partial_block_rsxtmscApkaFsGk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rsxtmscApkaFsGk
	jmp	.L_small_initial_compute_done_rsxtmscApkaFsGk_BCM_4
.L_small_initial_partial_block_rsxtmscApkaFsGk_BCM_4:

# 24220 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rsxtmscApkaFsGk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rsxtmscApkaFsGk
	je	.L_after_reduction_rsxtmscApkaFsGk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_rsxtmscApkaFsGk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_12_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_uytuqlquheEjDpf
	jl	.L_small_initial_partial_block_uytuqlquheEjDpf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_uytuqlquheEjDpf
	jmp	.L_small_initial_compute_done_uytuqlquheEjDpf_BCM_4
.L_small_initial_partial_block_uytuqlquheEjDpf_BCM_4:

# 24427 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uytuqlquheEjDpf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_uytuqlquheEjDpf
	je	.L_after_reduction_uytuqlquheEjDpf_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_uytuqlquheEjDpf_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_13_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %xmm29,%xmm5,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AEjkiAmqCDcyaGF
	jl	.L_small_initial_partial_block_AEjkiAmqCDcyaGF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AEjkiAmqCDcyaGF
	jmp	.L_small_initial_compute_done_AEjkiAmqCDcyaGF_BCM_4
.L_small_initial_partial_block_AEjkiAmqCDcyaGF_BCM_4:

# 24662 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AEjkiAmqCDcyaGF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AEjkiAmqCDcyaGF
	je	.L_after_reduction_AEjkiAmqCDcyaGF_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_AEjkiAmqCDcyaGF_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_14_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %ymm29,%ymm5,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xweDbtGBgzaynjE
	jl	.L_small_initial_partial_block_xweDbtGBgzaynjE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xweDbtGBgzaynjE
	jmp	.L_small_initial_compute_done_xweDbtGBgzaynjE_BCM_4
.L_small_initial_partial_block_xweDbtGBgzaynjE_BCM_4:

# 24891 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xweDbtGBgzaynjE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xweDbtGBgzaynjE
	je	.L_after_reduction_xweDbtGBgzaynjE_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_xweDbtGBgzaynjE_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_15_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ffBpbkEzFalCAqm
	jl	.L_small_initial_partial_block_ffBpbkEzFalCAqm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ffBpbkEzFalCAqm
	jmp	.L_small_initial_compute_done_ffBpbkEzFalCAqm_BCM_4
.L_small_initial_partial_block_ffBpbkEzFalCAqm_BCM_4:

# 25131 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ffBpbkEzFalCAqm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ffBpbkEzFalCAqm
	je	.L_after_reduction_ffBpbkEzFalCAqm_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ffBpbkEzFalCAqm_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj
	jmp	.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4
.L_small_initial_num_blocks_is_16_Arjlgemsqpaxhfj_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_icDnnqvChyBsuli_BCM_4:

# 25300 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_icDnnqvChyBsuli_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_icDnnqvChyBsuli_BCM_4:

.L_small_initial_blocks_encrypted_Arjlgemsqpaxhfj_BCM_4:

.L_ghash_done_pzwgkGgbplFqzaB_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_pzwgkGgbplFqzaB_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_pzwgkGgbplFqzaB_BCM_4:

# WAS jmp .Lexit_gcm_encrypt
	jmp	.Lexit_gcm_encrypt_BCM_4
.align 32
.Laes_gcm_encrypt_192_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_jzxBnczDBxGvzop
	je	.L_enc_dec_abort_jzxBnczDBxGvzop_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_CoBypAsApBwqcnx
	je	.L_partial_block_done_CoBypAsApBwqcnx_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_CoBypAsApBwqcnx
	jge	.L_no_extra_mask_CoBypAsApBwqcnx_BCM_4
 subq %r13,%r12
.L_no_extra_mask_CoBypAsApBwqcnx_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm3,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_CoBypAsApBwqcnx
	jl	.L_partial_incomplete_CoBypAsApBwqcnx_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_CoBypAsApBwqcnx
	jmp	.L_enc_dec_done_CoBypAsApBwqcnx_BCM_4

.L_partial_incomplete_CoBypAsApBwqcnx_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_CoBypAsApBwqcnx_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1

# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_CoBypAsApBwqcnx_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_jzxBnczDBxGvzop
	je	.L_enc_dec_done_jzxBnczDBxGvzop_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_jzxBnczDBxGvzop
	jbe	.L_message_below_equal_16_blocks_jzxBnczDBxGvzop_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_lelEEvckqsGkuGn
	jae	.L_next_16_overflow_lelEEvckqsGkuGn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_lelEEvckqsGkuGn
	jmp	.L_next_16_ok_lelEEvckqsGkuGn_BCM_4
.L_next_16_overflow_lelEEvckqsGkuGn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_lelEEvckqsGkuGn_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_EclAduckuFhozAl
	jnz	.L_skip_hkeys_precomputation_EclAduckuFhozAl_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_EclAduckuFhozAl_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_jzxBnczDBxGvzop
	jb	.L_message_below_32_blocks_jzxBnczDBxGvzop_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_hzduBGFfzuzeflu
	jae	.L_next_16_overflow_hzduBGFfzuzeflu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_hzduBGFfzuzeflu
	jmp	.L_next_16_ok_hzduBGFfzuzeflu_BCM_4
.L_next_16_overflow_hzduBGFfzuzeflu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_hzduBGFfzuzeflu_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_vFCorhCAmhdDCzm
	jnz	.L_skip_hkeys_precomputation_vFCorhCAmhdDCzm_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_vFCorhCAmhdDCzm_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_jzxBnczDBxGvzop
	jb	.L_no_more_big_nblocks_jzxBnczDBxGvzop_BCM_4
.L_encrypt_big_nblocks_jzxBnczDBxGvzop_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_tbpqxctvntvnomu
	jae	.L_16_blocks_overflow_tbpqxctvntvnomu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_tbpqxctvntvnomu
	jmp	.L_16_blocks_ok_tbpqxctvntvnomu_BCM_4
.L_16_blocks_overflow_tbpqxctvntvnomu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_tbpqxctvntvnomu_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_oaDubdDhvdaaGvl
	jae	.L_16_blocks_overflow_oaDubdDhvdaaGvl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_oaDubdDhvdaaGvl
	jmp	.L_16_blocks_ok_oaDubdDhvdaaGvl_BCM_4
.L_16_blocks_overflow_oaDubdDhvdaaGvl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_oaDubdDhvdaaGvl_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_BEBEkieDehCjfpg
	jae	.L_16_blocks_overflow_BEBEkieDehCjfpg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_BEBEkieDehCjfpg
	jmp	.L_16_blocks_ok_BEBEkieDehCjfpg_BCM_4
.L_16_blocks_overflow_BEBEkieDehCjfpg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_BEBEkieDehCjfpg_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_jzxBnczDBxGvzop
	jae	.L_encrypt_big_nblocks_jzxBnczDBxGvzop_BCM_4

.L_no_more_big_nblocks_jzxBnczDBxGvzop_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_jzxBnczDBxGvzop
	jae	.L_encrypt_32_blocks_jzxBnczDBxGvzop_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_jzxBnczDBxGvzop
	jae	.L_encrypt_16_blocks_jzxBnczDBxGvzop_BCM_4
.L_encrypt_0_blocks_ghash_32_jzxBnczDBxGvzop_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_0_BsvdFlCzDbBougk_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_8_BsvdFlCzDbBougk_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_BsvdFlCzDbBougk
	jb	.L_last_num_blocks_is_7_1_BsvdFlCzDbBougk_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_12_BsvdFlCzDbBougk_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_BsvdFlCzDbBougk
	jb	.L_last_num_blocks_is_11_9_BsvdFlCzDbBougk_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_15_BsvdFlCzDbBougk_BCM_4
# WAS ja .L_last_num_blocks_is_16_BsvdFlCzDbBougk
	ja	.L_last_num_blocks_is_16_BsvdFlCzDbBougk_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_14_BsvdFlCzDbBougk_BCM_4
# WAS jmp .L_last_num_blocks_is_13_BsvdFlCzDbBougk
	jmp	.L_last_num_blocks_is_13_BsvdFlCzDbBougk_BCM_4

.L_last_num_blocks_is_11_9_BsvdFlCzDbBougk_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_10_BsvdFlCzDbBougk_BCM_4
# WAS ja .L_last_num_blocks_is_11_BsvdFlCzDbBougk
	ja	.L_last_num_blocks_is_11_BsvdFlCzDbBougk_BCM_4
# WAS jmp .L_last_num_blocks_is_9_BsvdFlCzDbBougk
	jmp	.L_last_num_blocks_is_9_BsvdFlCzDbBougk_BCM_4

.L_last_num_blocks_is_7_1_BsvdFlCzDbBougk_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_4_BsvdFlCzDbBougk_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_BsvdFlCzDbBougk
	jb	.L_last_num_blocks_is_3_1_BsvdFlCzDbBougk_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_BsvdFlCzDbBougk
	ja	.L_last_num_blocks_is_7_BsvdFlCzDbBougk_BCM_4
# WAS je .L_last_num_blocks_is_6_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_6_BsvdFlCzDbBougk_BCM_4
# WAS jmp .L_last_num_blocks_is_5_BsvdFlCzDbBougk
	jmp	.L_last_num_blocks_is_5_BsvdFlCzDbBougk_BCM_4

.L_last_num_blocks_is_3_1_BsvdFlCzDbBougk_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_BsvdFlCzDbBougk
	ja	.L_last_num_blocks_is_3_BsvdFlCzDbBougk_BCM_4
# WAS je .L_last_num_blocks_is_2_BsvdFlCzDbBougk
	je	.L_last_num_blocks_is_2_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_1_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_czjqmrcuGbkhjtu
	jae	.L_16_blocks_overflow_czjqmrcuGbkhjtu_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_czjqmrcuGbkhjtu
	jmp	.L_16_blocks_ok_czjqmrcuGbkhjtu_BCM_4

.L_16_blocks_overflow_czjqmrcuGbkhjtu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_czjqmrcuGbkhjtu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kFnqfsluDrycrwr
	jl	.L_small_initial_partial_block_kFnqfsluDrycrwr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kFnqfsluDrycrwr
	jmp	.L_small_initial_compute_done_kFnqfsluDrycrwr_BCM_4
.L_small_initial_partial_block_kFnqfsluDrycrwr_BCM_4:

# 26864 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 26905 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_kFnqfsluDrycrwr
	jmp	.L_after_reduction_kFnqfsluDrycrwr_BCM_4
.L_small_initial_compute_done_kFnqfsluDrycrwr_BCM_4:

.L_after_reduction_kFnqfsluDrycrwr_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_2_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_tCDuaqxntEtBCqr
	jae	.L_16_blocks_overflow_tCDuaqxntEtBCqr_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_tCDuaqxntEtBCqr
	jmp	.L_16_blocks_ok_tCDuaqxntEtBCqr_BCM_4

.L_16_blocks_overflow_tCDuaqxntEtBCqr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_tCDuaqxntEtBCqr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nrarlmFvApvbzxy
	jl	.L_small_initial_partial_block_nrarlmFvApvbzxy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nrarlmFvApvbzxy
	jmp	.L_small_initial_compute_done_nrarlmFvApvbzxy_BCM_4
.L_small_initial_partial_block_nrarlmFvApvbzxy_BCM_4:

# 27068 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nrarlmFvApvbzxy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nrarlmFvApvbzxy
	je	.L_after_reduction_nrarlmFvApvbzxy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nrarlmFvApvbzxy_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_3_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_AxfvkflbDBEFEmp
	jae	.L_16_blocks_overflow_AxfvkflbDBEFEmp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_AxfvkflbDBEFEmp
	jmp	.L_16_blocks_ok_AxfvkflbDBEFEmp_BCM_4

.L_16_blocks_overflow_AxfvkflbDBEFEmp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_AxfvkflbDBEFEmp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wasBAmmrjbGbemo
	jl	.L_small_initial_partial_block_wasBAmmrjbGbemo_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wasBAmmrjbGbemo
	jmp	.L_small_initial_compute_done_wasBAmmrjbGbemo_BCM_4
.L_small_initial_partial_block_wasBAmmrjbGbemo_BCM_4:

# 27271 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wasBAmmrjbGbemo_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wasBAmmrjbGbemo
	je	.L_after_reduction_wasBAmmrjbGbemo_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wasBAmmrjbGbemo_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_4_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_xkpgotEfuidCEnC
	jae	.L_16_blocks_overflow_xkpgotEfuidCEnC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_xkpgotEfuidCEnC
	jmp	.L_16_blocks_ok_xkpgotEfuidCEnC_BCM_4

.L_16_blocks_overflow_xkpgotEfuidCEnC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_xkpgotEfuidCEnC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DvcssyjwzrqmFlE
	jl	.L_small_initial_partial_block_DvcssyjwzrqmFlE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DvcssyjwzrqmFlE
	jmp	.L_small_initial_compute_done_DvcssyjwzrqmFlE_BCM_4
.L_small_initial_partial_block_DvcssyjwzrqmFlE_BCM_4:

# 27474 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DvcssyjwzrqmFlE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DvcssyjwzrqmFlE
	je	.L_after_reduction_DvcssyjwzrqmFlE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DvcssyjwzrqmFlE_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_5_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_pxAyyxhuewraobh
	jae	.L_16_blocks_overflow_pxAyyxhuewraobh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_pxAyyxhuewraobh
	jmp	.L_16_blocks_ok_pxAyyxhuewraobh_BCM_4

.L_16_blocks_overflow_pxAyyxhuewraobh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_pxAyyxhuewraobh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Eawjwfemrjotopq
	jl	.L_small_initial_partial_block_Eawjwfemrjotopq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Eawjwfemrjotopq
	jmp	.L_small_initial_compute_done_Eawjwfemrjotopq_BCM_4
.L_small_initial_partial_block_Eawjwfemrjotopq_BCM_4:

# 27706 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Eawjwfemrjotopq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Eawjwfemrjotopq
	je	.L_after_reduction_Eawjwfemrjotopq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Eawjwfemrjotopq_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_6_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_rlBkdasaFkzjByu
	jae	.L_16_blocks_overflow_rlBkdasaFkzjByu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_rlBkdasaFkzjByu
	jmp	.L_16_blocks_ok_rlBkdasaFkzjByu_BCM_4

.L_16_blocks_overflow_rlBkdasaFkzjByu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_rlBkdasaFkzjByu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AesejBFGrhphEgi
	jl	.L_small_initial_partial_block_AesejBFGrhphEgi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AesejBFGrhphEgi
	jmp	.L_small_initial_compute_done_AesejBFGrhphEgi_BCM_4
.L_small_initial_partial_block_AesejBFGrhphEgi_BCM_4:

# 27938 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AesejBFGrhphEgi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AesejBFGrhphEgi
	je	.L_after_reduction_AesejBFGrhphEgi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AesejBFGrhphEgi_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_7_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_keqkskoubnuElfA
	jae	.L_16_blocks_overflow_keqkskoubnuElfA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_keqkskoubnuElfA
	jmp	.L_16_blocks_ok_keqkskoubnuElfA_BCM_4

.L_16_blocks_overflow_keqkskoubnuElfA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_keqkskoubnuElfA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BxDABaeeqkhilCj
	jl	.L_small_initial_partial_block_BxDABaeeqkhilCj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BxDABaeeqkhilCj
	jmp	.L_small_initial_compute_done_BxDABaeeqkhilCj_BCM_4
.L_small_initial_partial_block_BxDABaeeqkhilCj_BCM_4:

# 28177 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BxDABaeeqkhilCj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BxDABaeeqkhilCj
	je	.L_after_reduction_BxDABaeeqkhilCj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BxDABaeeqkhilCj_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_8_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_hwCFDDlqwBqrdyx
	jae	.L_16_blocks_overflow_hwCFDDlqwBqrdyx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_hwCFDDlqwBqrdyx
	jmp	.L_16_blocks_ok_hwCFDDlqwBqrdyx_BCM_4

.L_16_blocks_overflow_hwCFDDlqwBqrdyx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_hwCFDDlqwBqrdyx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BeuuFnmEliqBmCs
	jl	.L_small_initial_partial_block_BeuuFnmEliqBmCs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BeuuFnmEliqBmCs
	jmp	.L_small_initial_compute_done_BeuuFnmEliqBmCs_BCM_4
.L_small_initial_partial_block_BeuuFnmEliqBmCs_BCM_4:

# 28418 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BeuuFnmEliqBmCs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BeuuFnmEliqBmCs
	je	.L_after_reduction_BeuuFnmEliqBmCs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BeuuFnmEliqBmCs_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_9_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_ybEEnfpGmbdDyaC
	jae	.L_16_blocks_overflow_ybEEnfpGmbdDyaC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_ybEEnfpGmbdDyaC
	jmp	.L_16_blocks_ok_ybEEnfpGmbdDyaC_BCM_4

.L_16_blocks_overflow_ybEEnfpGmbdDyaC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_ybEEnfpGmbdDyaC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bDrrnAatcuCrjCa
	jl	.L_small_initial_partial_block_bDrrnAatcuCrjCa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bDrrnAatcuCrjCa
	jmp	.L_small_initial_compute_done_bDrrnAatcuCrjCa_BCM_4
.L_small_initial_partial_block_bDrrnAatcuCrjCa_BCM_4:

# 28686 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bDrrnAatcuCrjCa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bDrrnAatcuCrjCa
	je	.L_after_reduction_bDrrnAatcuCrjCa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bDrrnAatcuCrjCa_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_10_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_opfbCaznAiAepnv
	jae	.L_16_blocks_overflow_opfbCaznAiAepnv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_opfbCaznAiAepnv
	jmp	.L_16_blocks_ok_opfbCaznAiAepnv_BCM_4

.L_16_blocks_overflow_opfbCaznAiAepnv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_opfbCaznAiAepnv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CsmvpucAbBEBcvl
	jl	.L_small_initial_partial_block_CsmvpucAbBEBcvl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CsmvpucAbBEBcvl
	jmp	.L_small_initial_compute_done_CsmvpucAbBEBcvl_BCM_4
.L_small_initial_partial_block_CsmvpucAbBEBcvl_BCM_4:

# 28956 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CsmvpucAbBEBcvl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CsmvpucAbBEBcvl
	je	.L_after_reduction_CsmvpucAbBEBcvl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CsmvpucAbBEBcvl_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_11_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_qxFolltldGnscDg
	jae	.L_16_blocks_overflow_qxFolltldGnscDg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_qxFolltldGnscDg
	jmp	.L_16_blocks_ok_qxFolltldGnscDg_BCM_4

.L_16_blocks_overflow_qxFolltldGnscDg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_qxFolltldGnscDg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AaGweewAhEribny
	jl	.L_small_initial_partial_block_AaGweewAhEribny_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AaGweewAhEribny
	jmp	.L_small_initial_compute_done_AaGweewAhEribny_BCM_4
.L_small_initial_partial_block_AaGweewAhEribny_BCM_4:

# 29233 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AaGweewAhEribny_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AaGweewAhEribny
	je	.L_after_reduction_AaGweewAhEribny_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AaGweewAhEribny_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_12_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_nvmdGffBdmtukpe
	jae	.L_16_blocks_overflow_nvmdGffBdmtukpe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_nvmdGffBdmtukpe
	jmp	.L_16_blocks_ok_nvmdGffBdmtukpe_BCM_4

.L_16_blocks_overflow_nvmdGffBdmtukpe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_nvmdGffBdmtukpe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FoabkbEhqjtqagB
	jl	.L_small_initial_partial_block_FoabkbEhqjtqagB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FoabkbEhqjtqagB
	jmp	.L_small_initial_compute_done_FoabkbEhqjtqagB_BCM_4
.L_small_initial_partial_block_FoabkbEhqjtqagB_BCM_4:

# 29508 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FoabkbEhqjtqagB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FoabkbEhqjtqagB
	je	.L_after_reduction_FoabkbEhqjtqagB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FoabkbEhqjtqagB_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_13_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_zGEqEwwbyegFygC
	jae	.L_16_blocks_overflow_zGEqEwwbyegFygC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_zGEqEwwbyegFygC
	jmp	.L_16_blocks_ok_zGEqEwwbyegFygC_BCM_4

.L_16_blocks_overflow_zGEqEwwbyegFygC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_zGEqEwwbyegFygC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gjvieAerDfDGsxy
	jl	.L_small_initial_partial_block_gjvieAerDfDGsxy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gjvieAerDfDGsxy
	jmp	.L_small_initial_compute_done_gjvieAerDfDGsxy_BCM_4
.L_small_initial_partial_block_gjvieAerDfDGsxy_BCM_4:

# 29810 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gjvieAerDfDGsxy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gjvieAerDfDGsxy
	je	.L_after_reduction_gjvieAerDfDGsxy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gjvieAerDfDGsxy_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_14_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_hGfdBnfArvqgnDo
	jae	.L_16_blocks_overflow_hGfdBnfArvqgnDo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_hGfdBnfArvqgnDo
	jmp	.L_16_blocks_ok_hGfdBnfArvqgnDo_BCM_4

.L_16_blocks_overflow_hGfdBnfArvqgnDo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_hGfdBnfArvqgnDo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_faDbEijoauEqsyG
	jl	.L_small_initial_partial_block_faDbEijoauEqsyG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_faDbEijoauEqsyG
	jmp	.L_small_initial_compute_done_faDbEijoauEqsyG_BCM_4
.L_small_initial_partial_block_faDbEijoauEqsyG_BCM_4:

# 30110 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_faDbEijoauEqsyG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_faDbEijoauEqsyG
	je	.L_after_reduction_faDbEijoauEqsyG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_faDbEijoauEqsyG_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_15_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_AhbxhfFAjAuyeFk
	jae	.L_16_blocks_overflow_AhbxhfFAjAuyeFk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_AhbxhfFAjAuyeFk
	jmp	.L_16_blocks_ok_AhbxhfFAjAuyeFk_BCM_4

.L_16_blocks_overflow_AhbxhfFAjAuyeFk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_AhbxhfFAjAuyeFk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sxxFbklDpjCfEvm
	jl	.L_small_initial_partial_block_sxxFbklDpjCfEvm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sxxFbklDpjCfEvm
	jmp	.L_small_initial_compute_done_sxxFbklDpjCfEvm_BCM_4
.L_small_initial_partial_block_sxxFbklDpjCfEvm_BCM_4:

# 30417 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sxxFbklDpjCfEvm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sxxFbklDpjCfEvm
	je	.L_after_reduction_sxxFbklDpjCfEvm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sxxFbklDpjCfEvm_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_16_BsvdFlCzDbBougk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_njybzcioxuyaaaD
	jae	.L_16_blocks_overflow_njybzcioxuyaaaD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_njybzcioxuyaaaD
	jmp	.L_16_blocks_ok_njybzcioxuyaaaD_BCM_4

.L_16_blocks_overflow_njybzcioxuyaaaD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_njybzcioxuyaaaD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_bCffyflcoaBxCzy_BCM_4:

# 30654 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bCffyflcoaBxCzy_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bCffyflcoaBxCzy_BCM_4:

# WAS jmp .L_last_blocks_done_BsvdFlCzDbBougk
	jmp	.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4
.L_last_num_blocks_is_0_BsvdFlCzDbBougk_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_BsvdFlCzDbBougk_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_jzxBnczDBxGvzop
	jmp	.L_ghash_done_jzxBnczDBxGvzop_BCM_4
.L_encrypt_32_blocks_jzxBnczDBxGvzop_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_wafuliacDuosCms
	jae	.L_16_blocks_overflow_wafuliacDuosCms_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_wafuliacDuosCms
	jmp	.L_16_blocks_ok_wafuliacDuosCms_BCM_4
.L_16_blocks_overflow_wafuliacDuosCms_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_wafuliacDuosCms_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_kAejpmvyzczzucF
	jae	.L_16_blocks_overflow_kAejpmvyzczzucF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_kAejpmvyzczzucF
	jmp	.L_16_blocks_ok_kAejpmvyzczzucF_BCM_4
.L_16_blocks_overflow_kAejpmvyzczzucF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_kAejpmvyzczzucF_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_0_vkvGtsckpeodFyd_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_8_vkvGtsckpeodFyd_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_vkvGtsckpeodFyd
	jb	.L_last_num_blocks_is_7_1_vkvGtsckpeodFyd_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_12_vkvGtsckpeodFyd_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_vkvGtsckpeodFyd
	jb	.L_last_num_blocks_is_11_9_vkvGtsckpeodFyd_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_15_vkvGtsckpeodFyd_BCM_4
# WAS ja .L_last_num_blocks_is_16_vkvGtsckpeodFyd
	ja	.L_last_num_blocks_is_16_vkvGtsckpeodFyd_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_14_vkvGtsckpeodFyd_BCM_4
# WAS jmp .L_last_num_blocks_is_13_vkvGtsckpeodFyd
	jmp	.L_last_num_blocks_is_13_vkvGtsckpeodFyd_BCM_4

.L_last_num_blocks_is_11_9_vkvGtsckpeodFyd_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_10_vkvGtsckpeodFyd_BCM_4
# WAS ja .L_last_num_blocks_is_11_vkvGtsckpeodFyd
	ja	.L_last_num_blocks_is_11_vkvGtsckpeodFyd_BCM_4
# WAS jmp .L_last_num_blocks_is_9_vkvGtsckpeodFyd
	jmp	.L_last_num_blocks_is_9_vkvGtsckpeodFyd_BCM_4

.L_last_num_blocks_is_7_1_vkvGtsckpeodFyd_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_4_vkvGtsckpeodFyd_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_vkvGtsckpeodFyd
	jb	.L_last_num_blocks_is_3_1_vkvGtsckpeodFyd_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_vkvGtsckpeodFyd
	ja	.L_last_num_blocks_is_7_vkvGtsckpeodFyd_BCM_4
# WAS je .L_last_num_blocks_is_6_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_6_vkvGtsckpeodFyd_BCM_4
# WAS jmp .L_last_num_blocks_is_5_vkvGtsckpeodFyd
	jmp	.L_last_num_blocks_is_5_vkvGtsckpeodFyd_BCM_4

.L_last_num_blocks_is_3_1_vkvGtsckpeodFyd_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_vkvGtsckpeodFyd
	ja	.L_last_num_blocks_is_3_vkvGtsckpeodFyd_BCM_4
# WAS je .L_last_num_blocks_is_2_vkvGtsckpeodFyd
	je	.L_last_num_blocks_is_2_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_1_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_BvAqyjatyidEnnt
	jae	.L_16_blocks_overflow_BvAqyjatyidEnnt_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_BvAqyjatyidEnnt
	jmp	.L_16_blocks_ok_BvAqyjatyidEnnt_BCM_4

.L_16_blocks_overflow_BvAqyjatyidEnnt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_BvAqyjatyidEnnt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gBeshkmzGvkmrAi
	jl	.L_small_initial_partial_block_gBeshkmzGvkmrAi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gBeshkmzGvkmrAi
	jmp	.L_small_initial_compute_done_gBeshkmzGvkmrAi_BCM_4
.L_small_initial_partial_block_gBeshkmzGvkmrAi_BCM_4:

# 31435 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 31476 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_gBeshkmzGvkmrAi
	jmp	.L_after_reduction_gBeshkmzGvkmrAi_BCM_4
.L_small_initial_compute_done_gBeshkmzGvkmrAi_BCM_4:

.L_after_reduction_gBeshkmzGvkmrAi_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_2_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_nbawutokAutAqum
	jae	.L_16_blocks_overflow_nbawutokAutAqum_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_nbawutokAutAqum
	jmp	.L_16_blocks_ok_nbawutokAutAqum_BCM_4

.L_16_blocks_overflow_nbawutokAutAqum_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_nbawutokAutAqum_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BlGfnlBkldmmFcw
	jl	.L_small_initial_partial_block_BlGfnlBkldmmFcw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BlGfnlBkldmmFcw
	jmp	.L_small_initial_compute_done_BlGfnlBkldmmFcw_BCM_4
.L_small_initial_partial_block_BlGfnlBkldmmFcw_BCM_4:

# 31639 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BlGfnlBkldmmFcw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BlGfnlBkldmmFcw
	je	.L_after_reduction_BlGfnlBkldmmFcw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BlGfnlBkldmmFcw_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_3_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_CwkxGelBrtqaaxv
	jae	.L_16_blocks_overflow_CwkxGelBrtqaaxv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_CwkxGelBrtqaaxv
	jmp	.L_16_blocks_ok_CwkxGelBrtqaaxv_BCM_4

.L_16_blocks_overflow_CwkxGelBrtqaaxv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_CwkxGelBrtqaaxv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EEhEwlabesmvDev
	jl	.L_small_initial_partial_block_EEhEwlabesmvDev_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EEhEwlabesmvDev
	jmp	.L_small_initial_compute_done_EEhEwlabesmvDev_BCM_4
.L_small_initial_partial_block_EEhEwlabesmvDev_BCM_4:

# 31842 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EEhEwlabesmvDev_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EEhEwlabesmvDev
	je	.L_after_reduction_EEhEwlabesmvDev_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EEhEwlabesmvDev_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_4_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_gFpynBlybCeGalG
	jae	.L_16_blocks_overflow_gFpynBlybCeGalG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_gFpynBlybCeGalG
	jmp	.L_16_blocks_ok_gFpynBlybCeGalG_BCM_4

.L_16_blocks_overflow_gFpynBlybCeGalG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_gFpynBlybCeGalG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gFxpzjaswtGGooa
	jl	.L_small_initial_partial_block_gFxpzjaswtGGooa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gFxpzjaswtGGooa
	jmp	.L_small_initial_compute_done_gFxpzjaswtGGooa_BCM_4
.L_small_initial_partial_block_gFxpzjaswtGGooa_BCM_4:

# 32045 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gFxpzjaswtGGooa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gFxpzjaswtGGooa
	je	.L_after_reduction_gFxpzjaswtGGooa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gFxpzjaswtGGooa_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_5_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_xwErcCwicbEwFqC
	jae	.L_16_blocks_overflow_xwErcCwicbEwFqC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_xwErcCwicbEwFqC
	jmp	.L_16_blocks_ok_xwErcCwicbEwFqC_BCM_4

.L_16_blocks_overflow_xwErcCwicbEwFqC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_xwErcCwicbEwFqC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GaEkADDkkdyyuqC
	jl	.L_small_initial_partial_block_GaEkADDkkdyyuqC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GaEkADDkkdyyuqC
	jmp	.L_small_initial_compute_done_GaEkADDkkdyyuqC_BCM_4
.L_small_initial_partial_block_GaEkADDkkdyyuqC_BCM_4:

# 32277 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GaEkADDkkdyyuqC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GaEkADDkkdyyuqC
	je	.L_after_reduction_GaEkADDkkdyyuqC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GaEkADDkkdyyuqC_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_6_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_baDecrAptncCCuf
	jae	.L_16_blocks_overflow_baDecrAptncCCuf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_baDecrAptncCCuf
	jmp	.L_16_blocks_ok_baDecrAptncCCuf_BCM_4

.L_16_blocks_overflow_baDecrAptncCCuf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_baDecrAptncCCuf_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GuszoBBsEjlucdt
	jl	.L_small_initial_partial_block_GuszoBBsEjlucdt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GuszoBBsEjlucdt
	jmp	.L_small_initial_compute_done_GuszoBBsEjlucdt_BCM_4
.L_small_initial_partial_block_GuszoBBsEjlucdt_BCM_4:

# 32509 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GuszoBBsEjlucdt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GuszoBBsEjlucdt
	je	.L_after_reduction_GuszoBBsEjlucdt_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GuszoBBsEjlucdt_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_7_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_iltrljarpeDchus
	jae	.L_16_blocks_overflow_iltrljarpeDchus_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_iltrljarpeDchus
	jmp	.L_16_blocks_ok_iltrljarpeDchus_BCM_4

.L_16_blocks_overflow_iltrljarpeDchus_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_iltrljarpeDchus_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iGfglGojAckhaEr
	jl	.L_small_initial_partial_block_iGfglGojAckhaEr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iGfglGojAckhaEr
	jmp	.L_small_initial_compute_done_iGfglGojAckhaEr_BCM_4
.L_small_initial_partial_block_iGfglGojAckhaEr_BCM_4:

# 32748 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iGfglGojAckhaEr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iGfglGojAckhaEr
	je	.L_after_reduction_iGfglGojAckhaEr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iGfglGojAckhaEr_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_8_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_eyzjCojxduufqEi
	jae	.L_16_blocks_overflow_eyzjCojxduufqEi_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_eyzjCojxduufqEi
	jmp	.L_16_blocks_ok_eyzjCojxduufqEi_BCM_4

.L_16_blocks_overflow_eyzjCojxduufqEi_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_eyzjCojxduufqEi_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hczvcmipanjdewG
	jl	.L_small_initial_partial_block_hczvcmipanjdewG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hczvcmipanjdewG
	jmp	.L_small_initial_compute_done_hczvcmipanjdewG_BCM_4
.L_small_initial_partial_block_hczvcmipanjdewG_BCM_4:

# 32989 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hczvcmipanjdewG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hczvcmipanjdewG
	je	.L_after_reduction_hczvcmipanjdewG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hczvcmipanjdewG_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_9_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_bwdCwgCmnErFeDe
	jae	.L_16_blocks_overflow_bwdCwgCmnErFeDe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_bwdCwgCmnErFeDe
	jmp	.L_16_blocks_ok_bwdCwgCmnErFeDe_BCM_4

.L_16_blocks_overflow_bwdCwgCmnErFeDe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_bwdCwgCmnErFeDe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nczsEBrGqvtCBoe
	jl	.L_small_initial_partial_block_nczsEBrGqvtCBoe_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nczsEBrGqvtCBoe
	jmp	.L_small_initial_compute_done_nczsEBrGqvtCBoe_BCM_4
.L_small_initial_partial_block_nczsEBrGqvtCBoe_BCM_4:

# 33257 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nczsEBrGqvtCBoe_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nczsEBrGqvtCBoe
	je	.L_after_reduction_nczsEBrGqvtCBoe_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nczsEBrGqvtCBoe_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_10_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_eGGpBsfFnpwwbub
	jae	.L_16_blocks_overflow_eGGpBsfFnpwwbub_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_eGGpBsfFnpwwbub
	jmp	.L_16_blocks_ok_eGGpBsfFnpwwbub_BCM_4

.L_16_blocks_overflow_eGGpBsfFnpwwbub_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_eGGpBsfFnpwwbub_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EcwCefEtlqcfEms
	jl	.L_small_initial_partial_block_EcwCefEtlqcfEms_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EcwCefEtlqcfEms
	jmp	.L_small_initial_compute_done_EcwCefEtlqcfEms_BCM_4
.L_small_initial_partial_block_EcwCefEtlqcfEms_BCM_4:

# 33527 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EcwCefEtlqcfEms_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EcwCefEtlqcfEms
	je	.L_after_reduction_EcwCefEtlqcfEms_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EcwCefEtlqcfEms_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_11_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_eddhoEuAgjbBjFF
	jae	.L_16_blocks_overflow_eddhoEuAgjbBjFF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_eddhoEuAgjbBjFF
	jmp	.L_16_blocks_ok_eddhoEuAgjbBjFF_BCM_4

.L_16_blocks_overflow_eddhoEuAgjbBjFF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_eddhoEuAgjbBjFF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wytgrCdaysqdDEF
	jl	.L_small_initial_partial_block_wytgrCdaysqdDEF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wytgrCdaysqdDEF
	jmp	.L_small_initial_compute_done_wytgrCdaysqdDEF_BCM_4
.L_small_initial_partial_block_wytgrCdaysqdDEF_BCM_4:

# 33804 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wytgrCdaysqdDEF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wytgrCdaysqdDEF
	je	.L_after_reduction_wytgrCdaysqdDEF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wytgrCdaysqdDEF_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_12_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_bfsFAnmADrmmioq
	jae	.L_16_blocks_overflow_bfsFAnmADrmmioq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_bfsFAnmADrmmioq
	jmp	.L_16_blocks_ok_bfsFAnmADrmmioq_BCM_4

.L_16_blocks_overflow_bfsFAnmADrmmioq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_bfsFAnmADrmmioq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pzClwApspseFxiy
	jl	.L_small_initial_partial_block_pzClwApspseFxiy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pzClwApspseFxiy
	jmp	.L_small_initial_compute_done_pzClwApspseFxiy_BCM_4
.L_small_initial_partial_block_pzClwApspseFxiy_BCM_4:

# 34079 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pzClwApspseFxiy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pzClwApspseFxiy
	je	.L_after_reduction_pzClwApspseFxiy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pzClwApspseFxiy_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_13_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_eqddxBoxqiwCsny
	jae	.L_16_blocks_overflow_eqddxBoxqiwCsny_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_eqddxBoxqiwCsny
	jmp	.L_16_blocks_ok_eqddxBoxqiwCsny_BCM_4

.L_16_blocks_overflow_eqddxBoxqiwCsny_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_eqddxBoxqiwCsny_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jtCktBigdCvArrs
	jl	.L_small_initial_partial_block_jtCktBigdCvArrs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jtCktBigdCvArrs
	jmp	.L_small_initial_compute_done_jtCktBigdCvArrs_BCM_4
.L_small_initial_partial_block_jtCktBigdCvArrs_BCM_4:

# 34381 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jtCktBigdCvArrs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jtCktBigdCvArrs
	je	.L_after_reduction_jtCktBigdCvArrs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jtCktBigdCvArrs_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_14_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_DAGxccpeauyqpCa
	jae	.L_16_blocks_overflow_DAGxccpeauyqpCa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_DAGxccpeauyqpCa
	jmp	.L_16_blocks_ok_DAGxccpeauyqpCa_BCM_4

.L_16_blocks_overflow_DAGxccpeauyqpCa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_DAGxccpeauyqpCa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_eekywuGEAhgthae
	jl	.L_small_initial_partial_block_eekywuGEAhgthae_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_eekywuGEAhgthae
	jmp	.L_small_initial_compute_done_eekywuGEAhgthae_BCM_4
.L_small_initial_partial_block_eekywuGEAhgthae_BCM_4:

# 34681 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_eekywuGEAhgthae_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_eekywuGEAhgthae
	je	.L_after_reduction_eekywuGEAhgthae_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_eekywuGEAhgthae_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_15_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_xrzdkvEbdpatlsn
	jae	.L_16_blocks_overflow_xrzdkvEbdpatlsn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_xrzdkvEbdpatlsn
	jmp	.L_16_blocks_ok_xrzdkvEbdpatlsn_BCM_4

.L_16_blocks_overflow_xrzdkvEbdpatlsn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_xrzdkvEbdpatlsn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nvxEscrdCznvhGj
	jl	.L_small_initial_partial_block_nvxEscrdCznvhGj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nvxEscrdCznvhGj
	jmp	.L_small_initial_compute_done_nvxEscrdCznvhGj_BCM_4
.L_small_initial_partial_block_nvxEscrdCznvhGj_BCM_4:

# 34988 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nvxEscrdCznvhGj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nvxEscrdCznvhGj
	je	.L_after_reduction_nvxEscrdCznvhGj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nvxEscrdCznvhGj_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_16_vkvGtsckpeodFyd_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_nhkzxmwsyGuskoi
	jae	.L_16_blocks_overflow_nhkzxmwsyGuskoi_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_nhkzxmwsyGuskoi
	jmp	.L_16_blocks_ok_nhkzxmwsyGuskoi_BCM_4

.L_16_blocks_overflow_nhkzxmwsyGuskoi_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_nhkzxmwsyGuskoi_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_ECtspjaqpoxwhnx_BCM_4:

# 35225 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ECtspjaqpoxwhnx_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ECtspjaqpoxwhnx_BCM_4:

# WAS jmp .L_last_blocks_done_vkvGtsckpeodFyd
	jmp	.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4
.L_last_num_blocks_is_0_vkvGtsckpeodFyd_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_vkvGtsckpeodFyd_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_jzxBnczDBxGvzop
	jmp	.L_ghash_done_jzxBnczDBxGvzop_BCM_4
.L_encrypt_16_blocks_jzxBnczDBxGvzop_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_kkhtsxadreytpgc
	jae	.L_16_blocks_overflow_kkhtsxadreytpgc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_kkhtsxadreytpgc
	jmp	.L_16_blocks_ok_kkhtsxadreytpgc_BCM_4
.L_16_blocks_overflow_kkhtsxadreytpgc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_kkhtsxadreytpgc_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_0_CGhwyqzCxCrDAod_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_8_CGhwyqzCxCrDAod_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CGhwyqzCxCrDAod
	jb	.L_last_num_blocks_is_7_1_CGhwyqzCxCrDAod_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_12_CGhwyqzCxCrDAod_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CGhwyqzCxCrDAod
	jb	.L_last_num_blocks_is_11_9_CGhwyqzCxCrDAod_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_15_CGhwyqzCxCrDAod_BCM_4
# WAS ja .L_last_num_blocks_is_16_CGhwyqzCxCrDAod
	ja	.L_last_num_blocks_is_16_CGhwyqzCxCrDAod_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_14_CGhwyqzCxCrDAod_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CGhwyqzCxCrDAod
	jmp	.L_last_num_blocks_is_13_CGhwyqzCxCrDAod_BCM_4

.L_last_num_blocks_is_11_9_CGhwyqzCxCrDAod_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_10_CGhwyqzCxCrDAod_BCM_4
# WAS ja .L_last_num_blocks_is_11_CGhwyqzCxCrDAod
	ja	.L_last_num_blocks_is_11_CGhwyqzCxCrDAod_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CGhwyqzCxCrDAod
	jmp	.L_last_num_blocks_is_9_CGhwyqzCxCrDAod_BCM_4

.L_last_num_blocks_is_7_1_CGhwyqzCxCrDAod_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_4_CGhwyqzCxCrDAod_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CGhwyqzCxCrDAod
	jb	.L_last_num_blocks_is_3_1_CGhwyqzCxCrDAod_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CGhwyqzCxCrDAod
	ja	.L_last_num_blocks_is_7_CGhwyqzCxCrDAod_BCM_4
# WAS je .L_last_num_blocks_is_6_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_6_CGhwyqzCxCrDAod_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CGhwyqzCxCrDAod
	jmp	.L_last_num_blocks_is_5_CGhwyqzCxCrDAod_BCM_4

.L_last_num_blocks_is_3_1_CGhwyqzCxCrDAod_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CGhwyqzCxCrDAod
	ja	.L_last_num_blocks_is_3_CGhwyqzCxCrDAod_BCM_4
# WAS je .L_last_num_blocks_is_2_CGhwyqzCxCrDAod
	je	.L_last_num_blocks_is_2_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_1_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_ycAFtgAvrzFpmud
	jae	.L_16_blocks_overflow_ycAFtgAvrzFpmud_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_ycAFtgAvrzFpmud
	jmp	.L_16_blocks_ok_ycAFtgAvrzFpmud_BCM_4

.L_16_blocks_overflow_ycAFtgAvrzFpmud_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_ycAFtgAvrzFpmud_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CbqAGqoFBCoBcnn
	jl	.L_small_initial_partial_block_CbqAGqoFBCoBcnn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CbqAGqoFBCoBcnn
	jmp	.L_small_initial_compute_done_CbqAGqoFBCoBcnn_BCM_4
.L_small_initial_partial_block_CbqAGqoFBCoBcnn_BCM_4:

# 35804 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 35817 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_CbqAGqoFBCoBcnn
	jmp	.L_after_reduction_CbqAGqoFBCoBcnn_BCM_4
.L_small_initial_compute_done_CbqAGqoFBCoBcnn_BCM_4:

.L_after_reduction_CbqAGqoFBCoBcnn_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_2_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_unaFqvbBnCelmgG
	jae	.L_16_blocks_overflow_unaFqvbBnCelmgG_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_unaFqvbBnCelmgG
	jmp	.L_16_blocks_ok_unaFqvbBnCelmgG_BCM_4

.L_16_blocks_overflow_unaFqvbBnCelmgG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_unaFqvbBnCelmgG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gzvpemiEleCjEbC
	jl	.L_small_initial_partial_block_gzvpemiEleCjEbC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gzvpemiEleCjEbC
	jmp	.L_small_initial_compute_done_gzvpemiEleCjEbC_BCM_4
.L_small_initial_partial_block_gzvpemiEleCjEbC_BCM_4:

# 36001 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gzvpemiEleCjEbC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gzvpemiEleCjEbC
	je	.L_after_reduction_gzvpemiEleCjEbC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gzvpemiEleCjEbC_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_3_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_FzufylrxyerzBEy
	jae	.L_16_blocks_overflow_FzufylrxyerzBEy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_FzufylrxyerzBEy
	jmp	.L_16_blocks_ok_FzufylrxyerzBEy_BCM_4

.L_16_blocks_overflow_FzufylrxyerzBEy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_FzufylrxyerzBEy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gqwjyzltkrfhGvo
	jl	.L_small_initial_partial_block_gqwjyzltkrfhGvo_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gqwjyzltkrfhGvo
	jmp	.L_small_initial_compute_done_gqwjyzltkrfhGvo_BCM_4
.L_small_initial_partial_block_gqwjyzltkrfhGvo_BCM_4:

# 36223 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gqwjyzltkrfhGvo_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gqwjyzltkrfhGvo
	je	.L_after_reduction_gqwjyzltkrfhGvo_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gqwjyzltkrfhGvo_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_4_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_FtupvahihsnvuAd
	jae	.L_16_blocks_overflow_FtupvahihsnvuAd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_FtupvahihsnvuAd
	jmp	.L_16_blocks_ok_FtupvahihsnvuAd_BCM_4

.L_16_blocks_overflow_FtupvahihsnvuAd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_FtupvahihsnvuAd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wBowoFhurirchGq
	jl	.L_small_initial_partial_block_wBowoFhurirchGq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wBowoFhurirchGq
	jmp	.L_small_initial_compute_done_wBowoFhurirchGq_BCM_4
.L_small_initial_partial_block_wBowoFhurirchGq_BCM_4:

# 36444 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wBowoFhurirchGq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wBowoFhurirchGq
	je	.L_after_reduction_wBowoFhurirchGq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wBowoFhurirchGq_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_5_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_uBhGhomDazsjBak
	jae	.L_16_blocks_overflow_uBhGhomDazsjBak_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_uBhGhomDazsjBak
	jmp	.L_16_blocks_ok_uBhGhomDazsjBak_BCM_4

.L_16_blocks_overflow_uBhGhomDazsjBak_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_uBhGhomDazsjBak_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_eFbGprqpsBhvBkh
	jl	.L_small_initial_partial_block_eFbGprqpsBhvBkh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_eFbGprqpsBhvBkh
	jmp	.L_small_initial_compute_done_eFbGprqpsBhvBkh_BCM_4
.L_small_initial_partial_block_eFbGprqpsBhvBkh_BCM_4:

# 36698 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_eFbGprqpsBhvBkh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_eFbGprqpsBhvBkh
	je	.L_after_reduction_eFbGprqpsBhvBkh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_eFbGprqpsBhvBkh_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_6_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_mBfhrGpovoncBkc
	jae	.L_16_blocks_overflow_mBfhrGpovoncBkc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_mBfhrGpovoncBkc
	jmp	.L_16_blocks_ok_mBfhrGpovoncBkc_BCM_4

.L_16_blocks_overflow_mBfhrGpovoncBkc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_mBfhrGpovoncBkc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qFilbDGEygcyzzw
	jl	.L_small_initial_partial_block_qFilbDGEygcyzzw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qFilbDGEygcyzzw
	jmp	.L_small_initial_compute_done_qFilbDGEygcyzzw_BCM_4
.L_small_initial_partial_block_qFilbDGEygcyzzw_BCM_4:

# 36951 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qFilbDGEygcyzzw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qFilbDGEygcyzzw
	je	.L_after_reduction_qFilbDGEygcyzzw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qFilbDGEygcyzzw_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_7_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_FvpewBABrfyByvd
	jae	.L_16_blocks_overflow_FvpewBABrfyByvd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_FvpewBABrfyByvd
	jmp	.L_16_blocks_ok_FvpewBABrfyByvd_BCM_4

.L_16_blocks_overflow_FvpewBABrfyByvd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_FvpewBABrfyByvd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vrmegiBFdzfFmfq
	jl	.L_small_initial_partial_block_vrmegiBFdzfFmfq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vrmegiBFdzfFmfq
	jmp	.L_small_initial_compute_done_vrmegiBFdzfFmfq_BCM_4
.L_small_initial_partial_block_vrmegiBFdzfFmfq_BCM_4:

# 37215 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vrmegiBFdzfFmfq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vrmegiBFdzfFmfq
	je	.L_after_reduction_vrmegiBFdzfFmfq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vrmegiBFdzfFmfq_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_8_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_FsoptjzAkrqyAAr
	jae	.L_16_blocks_overflow_FsoptjzAkrqyAAr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_FsoptjzAkrqyAAr
	jmp	.L_16_blocks_ok_FsoptjzAkrqyAAr_BCM_4

.L_16_blocks_overflow_FsoptjzAkrqyAAr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_FsoptjzAkrqyAAr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vkFiBjCFtrykuwD
	jl	.L_small_initial_partial_block_vkFiBjCFtrykuwD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vkFiBjCFtrykuwD
	jmp	.L_small_initial_compute_done_vkFiBjCFtrykuwD_BCM_4
.L_small_initial_partial_block_vkFiBjCFtrykuwD_BCM_4:

# 37477 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vkFiBjCFtrykuwD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vkFiBjCFtrykuwD
	je	.L_after_reduction_vkFiBjCFtrykuwD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vkFiBjCFtrykuwD_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_9_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_iABBxfvotBEkECx
	jae	.L_16_blocks_overflow_iABBxfvotBEkECx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_iABBxfvotBEkECx
	jmp	.L_16_blocks_ok_iABBxfvotBEkECx_BCM_4

.L_16_blocks_overflow_iABBxfvotBEkECx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_iABBxfvotBEkECx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ypbbgpxgCctCtxy
	jl	.L_small_initial_partial_block_ypbbgpxgCctCtxy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ypbbgpxgCctCtxy
	jmp	.L_small_initial_compute_done_ypbbgpxgCctCtxy_BCM_4
.L_small_initial_partial_block_ypbbgpxgCctCtxy_BCM_4:

# 37770 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ypbbgpxgCctCtxy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ypbbgpxgCctCtxy
	je	.L_after_reduction_ypbbgpxgCctCtxy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ypbbgpxgCctCtxy_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_10_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_jEngtqCkuniGdjp
	jae	.L_16_blocks_overflow_jEngtqCkuniGdjp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_jEngtqCkuniGdjp
	jmp	.L_16_blocks_ok_jEngtqCkuniGdjp_BCM_4

.L_16_blocks_overflow_jEngtqCkuniGdjp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_jEngtqCkuniGdjp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nffhkznowjoDiCf
	jl	.L_small_initial_partial_block_nffhkznowjoDiCf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nffhkznowjoDiCf
	jmp	.L_small_initial_compute_done_nffhkznowjoDiCf_BCM_4
.L_small_initial_partial_block_nffhkznowjoDiCf_BCM_4:

# 38061 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nffhkznowjoDiCf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nffhkznowjoDiCf
	je	.L_after_reduction_nffhkznowjoDiCf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nffhkznowjoDiCf_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_11_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_beoirgaAxslixji
	jae	.L_16_blocks_overflow_beoirgaAxslixji_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_beoirgaAxslixji
	jmp	.L_16_blocks_ok_beoirgaAxslixji_BCM_4

.L_16_blocks_overflow_beoirgaAxslixji_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_beoirgaAxslixji_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cqzlemDcyGkhDnC
	jl	.L_small_initial_partial_block_cqzlemDcyGkhDnC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cqzlemDcyGkhDnC
	jmp	.L_small_initial_compute_done_cqzlemDcyGkhDnC_BCM_4
.L_small_initial_partial_block_cqzlemDcyGkhDnC_BCM_4:

# 38363 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cqzlemDcyGkhDnC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cqzlemDcyGkhDnC
	je	.L_after_reduction_cqzlemDcyGkhDnC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cqzlemDcyGkhDnC_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_12_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_sxrCycfBickEpCs
	jae	.L_16_blocks_overflow_sxrCycfBickEpCs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_sxrCycfBickEpCs
	jmp	.L_16_blocks_ok_sxrCycfBickEpCs_BCM_4

.L_16_blocks_overflow_sxrCycfBickEpCs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_sxrCycfBickEpCs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lzBzlrbzBeACuhk
	jl	.L_small_initial_partial_block_lzBzlrbzBeACuhk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lzBzlrbzBeACuhk
	jmp	.L_small_initial_compute_done_lzBzlrbzBeACuhk_BCM_4
.L_small_initial_partial_block_lzBzlrbzBeACuhk_BCM_4:

# 38659 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lzBzlrbzBeACuhk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lzBzlrbzBeACuhk
	je	.L_after_reduction_lzBzlrbzBeACuhk_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lzBzlrbzBeACuhk_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_13_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_sesGGmqiCkypotq
	jae	.L_16_blocks_overflow_sesGGmqiCkypotq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_sesGGmqiCkypotq
	jmp	.L_16_blocks_ok_sesGGmqiCkypotq_BCM_4

.L_16_blocks_overflow_sesGGmqiCkypotq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_sesGGmqiCkypotq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qihphhEmthsffzk
	jl	.L_small_initial_partial_block_qihphhEmthsffzk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qihphhEmthsffzk
	jmp	.L_small_initial_compute_done_qihphhEmthsffzk_BCM_4
.L_small_initial_partial_block_qihphhEmthsffzk_BCM_4:

# 38986 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qihphhEmthsffzk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qihphhEmthsffzk
	je	.L_after_reduction_qihphhEmthsffzk_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qihphhEmthsffzk_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_14_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_jqifyxAoeoxkDuE
	jae	.L_16_blocks_overflow_jqifyxAoeoxkDuE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_jqifyxAoeoxkDuE
	jmp	.L_16_blocks_ok_jqifyxAoeoxkDuE_BCM_4

.L_16_blocks_overflow_jqifyxAoeoxkDuE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_jqifyxAoeoxkDuE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FkuwuuqBpnEvzkd
	jl	.L_small_initial_partial_block_FkuwuuqBpnEvzkd_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FkuwuuqBpnEvzkd
	jmp	.L_small_initial_compute_done_FkuwuuqBpnEvzkd_BCM_4
.L_small_initial_partial_block_FkuwuuqBpnEvzkd_BCM_4:

# 39307 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FkuwuuqBpnEvzkd_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FkuwuuqBpnEvzkd
	je	.L_after_reduction_FkuwuuqBpnEvzkd_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FkuwuuqBpnEvzkd_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_15_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_CBqhusrmEugbwks
	jae	.L_16_blocks_overflow_CBqhusrmEugbwks_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_CBqhusrmEugbwks
	jmp	.L_16_blocks_ok_CBqhusrmEugbwks_BCM_4

.L_16_blocks_overflow_CBqhusrmEugbwks_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_CBqhusrmEugbwks_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qEmtvwDozjnABmp
	jl	.L_small_initial_partial_block_qEmtvwDozjnABmp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qEmtvwDozjnABmp
	jmp	.L_small_initial_compute_done_qEmtvwDozjnABmp_BCM_4
.L_small_initial_partial_block_qEmtvwDozjnABmp_BCM_4:

# 39639 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qEmtvwDozjnABmp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qEmtvwDozjnABmp
	je	.L_after_reduction_qEmtvwDozjnABmp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qEmtvwDozjnABmp_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_16_CGhwyqzCxCrDAod_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_hDfCleGEdmpzBiw
	jae	.L_16_blocks_overflow_hDfCleGEdmpzBiw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_hDfCleGEdmpzBiw
	jmp	.L_16_blocks_ok_hDfCleGEdmpzBiw_BCM_4

.L_16_blocks_overflow_hDfCleGEdmpzBiw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_hDfCleGEdmpzBiw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_pybhdxzahdqcprl_BCM_4:

# 39900 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pybhdxzahdqcprl_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pybhdxzahdqcprl_BCM_4:

# WAS jmp .L_last_blocks_done_CGhwyqzCxCrDAod
	jmp	.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4
.L_last_num_blocks_is_0_CGhwyqzCxCrDAod_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CGhwyqzCxCrDAod_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_jzxBnczDBxGvzop
	jmp	.L_ghash_done_jzxBnczDBxGvzop_BCM_4

.L_message_below_32_blocks_jzxBnczDBxGvzop_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_dzmCrsBiciGnliE
	jnz	.L_skip_hkeys_precomputation_dzmCrsBiciGnliE_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_dzmCrsBiciGnliE_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_0_aFwwehusEvmmDke_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_8_aFwwehusEvmmDke_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_aFwwehusEvmmDke
	jb	.L_last_num_blocks_is_7_1_aFwwehusEvmmDke_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_12_aFwwehusEvmmDke_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_aFwwehusEvmmDke
	jb	.L_last_num_blocks_is_11_9_aFwwehusEvmmDke_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_15_aFwwehusEvmmDke_BCM_4
# WAS ja .L_last_num_blocks_is_16_aFwwehusEvmmDke
	ja	.L_last_num_blocks_is_16_aFwwehusEvmmDke_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_14_aFwwehusEvmmDke_BCM_4
# WAS jmp .L_last_num_blocks_is_13_aFwwehusEvmmDke
	jmp	.L_last_num_blocks_is_13_aFwwehusEvmmDke_BCM_4

.L_last_num_blocks_is_11_9_aFwwehusEvmmDke_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_10_aFwwehusEvmmDke_BCM_4
# WAS ja .L_last_num_blocks_is_11_aFwwehusEvmmDke
	ja	.L_last_num_blocks_is_11_aFwwehusEvmmDke_BCM_4
# WAS jmp .L_last_num_blocks_is_9_aFwwehusEvmmDke
	jmp	.L_last_num_blocks_is_9_aFwwehusEvmmDke_BCM_4

.L_last_num_blocks_is_7_1_aFwwehusEvmmDke_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_4_aFwwehusEvmmDke_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_aFwwehusEvmmDke
	jb	.L_last_num_blocks_is_3_1_aFwwehusEvmmDke_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_aFwwehusEvmmDke
	ja	.L_last_num_blocks_is_7_aFwwehusEvmmDke_BCM_4
# WAS je .L_last_num_blocks_is_6_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_6_aFwwehusEvmmDke_BCM_4
# WAS jmp .L_last_num_blocks_is_5_aFwwehusEvmmDke
	jmp	.L_last_num_blocks_is_5_aFwwehusEvmmDke_BCM_4

.L_last_num_blocks_is_3_1_aFwwehusEvmmDke_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_aFwwehusEvmmDke
	ja	.L_last_num_blocks_is_3_aFwwehusEvmmDke_BCM_4
# WAS je .L_last_num_blocks_is_2_aFwwehusEvmmDke
	je	.L_last_num_blocks_is_2_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_1_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_BsFiEfmuvxGEGuk
	jae	.L_16_blocks_overflow_BsFiEfmuvxGEGuk_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_BsFiEfmuvxGEGuk
	jmp	.L_16_blocks_ok_BsFiEfmuvxGEGuk_BCM_4

.L_16_blocks_overflow_BsFiEfmuvxGEGuk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_BsFiEfmuvxGEGuk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zEujlpbgqDyCdvt
	jl	.L_small_initial_partial_block_zEujlpbgqDyCdvt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zEujlpbgqDyCdvt
	jmp	.L_small_initial_compute_done_zEujlpbgqDyCdvt_BCM_4
.L_small_initial_partial_block_zEujlpbgqDyCdvt_BCM_4:

# 40371 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 40412 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_zEujlpbgqDyCdvt
	jmp	.L_after_reduction_zEujlpbgqDyCdvt_BCM_4
.L_small_initial_compute_done_zEujlpbgqDyCdvt_BCM_4:

.L_after_reduction_zEujlpbgqDyCdvt_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_2_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_DrefbggoCuhFosm
	jae	.L_16_blocks_overflow_DrefbggoCuhFosm_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_DrefbggoCuhFosm
	jmp	.L_16_blocks_ok_DrefbggoCuhFosm_BCM_4

.L_16_blocks_overflow_DrefbggoCuhFosm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_DrefbggoCuhFosm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rjkFEDDDoeuwufs
	jl	.L_small_initial_partial_block_rjkFEDDDoeuwufs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rjkFEDDDoeuwufs
	jmp	.L_small_initial_compute_done_rjkFEDDDoeuwufs_BCM_4
.L_small_initial_partial_block_rjkFEDDDoeuwufs_BCM_4:

# 40575 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rjkFEDDDoeuwufs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rjkFEDDDoeuwufs
	je	.L_after_reduction_rjkFEDDDoeuwufs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rjkFEDDDoeuwufs_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_3_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_oskEeEmCEGeqECv
	jae	.L_16_blocks_overflow_oskEeEmCEGeqECv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_oskEeEmCEGeqECv
	jmp	.L_16_blocks_ok_oskEeEmCEGeqECv_BCM_4

.L_16_blocks_overflow_oskEeEmCEGeqECv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_oskEeEmCEGeqECv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sgeerDwthydzyuy
	jl	.L_small_initial_partial_block_sgeerDwthydzyuy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sgeerDwthydzyuy
	jmp	.L_small_initial_compute_done_sgeerDwthydzyuy_BCM_4
.L_small_initial_partial_block_sgeerDwthydzyuy_BCM_4:

# 40778 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sgeerDwthydzyuy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sgeerDwthydzyuy
	je	.L_after_reduction_sgeerDwthydzyuy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sgeerDwthydzyuy_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_4_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_aAxBGtfyfEadAkB
	jae	.L_16_blocks_overflow_aAxBGtfyfEadAkB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_aAxBGtfyfEadAkB
	jmp	.L_16_blocks_ok_aAxBGtfyfEadAkB_BCM_4

.L_16_blocks_overflow_aAxBGtfyfEadAkB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_aAxBGtfyfEadAkB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Dqjcrneuragvwkw
	jl	.L_small_initial_partial_block_Dqjcrneuragvwkw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Dqjcrneuragvwkw
	jmp	.L_small_initial_compute_done_Dqjcrneuragvwkw_BCM_4
.L_small_initial_partial_block_Dqjcrneuragvwkw_BCM_4:

# 40981 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Dqjcrneuragvwkw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Dqjcrneuragvwkw
	je	.L_after_reduction_Dqjcrneuragvwkw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Dqjcrneuragvwkw_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_5_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_bpEikxmsheidfwq
	jae	.L_16_blocks_overflow_bpEikxmsheidfwq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_bpEikxmsheidfwq
	jmp	.L_16_blocks_ok_bpEikxmsheidfwq_BCM_4

.L_16_blocks_overflow_bpEikxmsheidfwq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_bpEikxmsheidfwq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AGuqEbsAbinbrDm
	jl	.L_small_initial_partial_block_AGuqEbsAbinbrDm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AGuqEbsAbinbrDm
	jmp	.L_small_initial_compute_done_AGuqEbsAbinbrDm_BCM_4
.L_small_initial_partial_block_AGuqEbsAbinbrDm_BCM_4:

# 41213 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AGuqEbsAbinbrDm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AGuqEbsAbinbrDm
	je	.L_after_reduction_AGuqEbsAbinbrDm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AGuqEbsAbinbrDm_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_6_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_otEmDDixbpFEmvy
	jae	.L_16_blocks_overflow_otEmDDixbpFEmvy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_otEmDDixbpFEmvy
	jmp	.L_16_blocks_ok_otEmDDixbpFEmvy_BCM_4

.L_16_blocks_overflow_otEmDDixbpFEmvy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_otEmDDixbpFEmvy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FAvepDmDsogujha
	jl	.L_small_initial_partial_block_FAvepDmDsogujha_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FAvepDmDsogujha
	jmp	.L_small_initial_compute_done_FAvepDmDsogujha_BCM_4
.L_small_initial_partial_block_FAvepDmDsogujha_BCM_4:

# 41445 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FAvepDmDsogujha_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FAvepDmDsogujha
	je	.L_after_reduction_FAvepDmDsogujha_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FAvepDmDsogujha_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_7_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_kEvFawDBkeclidj
	jae	.L_16_blocks_overflow_kEvFawDBkeclidj_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_kEvFawDBkeclidj
	jmp	.L_16_blocks_ok_kEvFawDBkeclidj_BCM_4

.L_16_blocks_overflow_kEvFawDBkeclidj_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_kEvFawDBkeclidj_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jyvbjxevpurblup
	jl	.L_small_initial_partial_block_jyvbjxevpurblup_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jyvbjxevpurblup
	jmp	.L_small_initial_compute_done_jyvbjxevpurblup_BCM_4
.L_small_initial_partial_block_jyvbjxevpurblup_BCM_4:

# 41684 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jyvbjxevpurblup_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jyvbjxevpurblup
	je	.L_after_reduction_jyvbjxevpurblup_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jyvbjxevpurblup_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_8_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_nfBegzmtymkjkuE
	jae	.L_16_blocks_overflow_nfBegzmtymkjkuE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_nfBegzmtymkjkuE
	jmp	.L_16_blocks_ok_nfBegzmtymkjkuE_BCM_4

.L_16_blocks_overflow_nfBegzmtymkjkuE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_nfBegzmtymkjkuE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ArBbnussymieuyl
	jl	.L_small_initial_partial_block_ArBbnussymieuyl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ArBbnussymieuyl
	jmp	.L_small_initial_compute_done_ArBbnussymieuyl_BCM_4
.L_small_initial_partial_block_ArBbnussymieuyl_BCM_4:

# 41925 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ArBbnussymieuyl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ArBbnussymieuyl
	je	.L_after_reduction_ArBbnussymieuyl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ArBbnussymieuyl_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_9_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_zjmfGFrkFzfxxez
	jae	.L_16_blocks_overflow_zjmfGFrkFzfxxez_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_zjmfGFrkFzfxxez
	jmp	.L_16_blocks_ok_zjmfGFrkFzfxxez_BCM_4

.L_16_blocks_overflow_zjmfGFrkFzfxxez_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_zjmfGFrkFzfxxez_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CEuslsjdAFEouni
	jl	.L_small_initial_partial_block_CEuslsjdAFEouni_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CEuslsjdAFEouni
	jmp	.L_small_initial_compute_done_CEuslsjdAFEouni_BCM_4
.L_small_initial_partial_block_CEuslsjdAFEouni_BCM_4:

# 42193 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CEuslsjdAFEouni_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CEuslsjdAFEouni
	je	.L_after_reduction_CEuslsjdAFEouni_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CEuslsjdAFEouni_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_10_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_BvDkzdlGxbqBdwD
	jae	.L_16_blocks_overflow_BvDkzdlGxbqBdwD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_BvDkzdlGxbqBdwD
	jmp	.L_16_blocks_ok_BvDkzdlGxbqBdwD_BCM_4

.L_16_blocks_overflow_BvDkzdlGxbqBdwD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_BvDkzdlGxbqBdwD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FEEAGeFDucwexEe
	jl	.L_small_initial_partial_block_FEEAGeFDucwexEe_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FEEAGeFDucwexEe
	jmp	.L_small_initial_compute_done_FEEAGeFDucwexEe_BCM_4
.L_small_initial_partial_block_FEEAGeFDucwexEe_BCM_4:

# 42463 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FEEAGeFDucwexEe_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FEEAGeFDucwexEe
	je	.L_after_reduction_FEEAGeFDucwexEe_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FEEAGeFDucwexEe_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_11_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_wfjezxDvGpDnoFf
	jae	.L_16_blocks_overflow_wfjezxDvGpDnoFf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_wfjezxDvGpDnoFf
	jmp	.L_16_blocks_ok_wfjezxDvGpDnoFf_BCM_4

.L_16_blocks_overflow_wfjezxDvGpDnoFf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_wfjezxDvGpDnoFf_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qadlBuzdbwfpDef
	jl	.L_small_initial_partial_block_qadlBuzdbwfpDef_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qadlBuzdbwfpDef
	jmp	.L_small_initial_compute_done_qadlBuzdbwfpDef_BCM_4
.L_small_initial_partial_block_qadlBuzdbwfpDef_BCM_4:

# 42740 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qadlBuzdbwfpDef_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qadlBuzdbwfpDef
	je	.L_after_reduction_qadlBuzdbwfpDef_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qadlBuzdbwfpDef_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_12_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_pbckDbEtDdqavpn
	jae	.L_16_blocks_overflow_pbckDbEtDdqavpn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_pbckDbEtDdqavpn
	jmp	.L_16_blocks_ok_pbckDbEtDdqavpn_BCM_4

.L_16_blocks_overflow_pbckDbEtDdqavpn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_pbckDbEtDdqavpn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_osuccbBAbutpqse
	jl	.L_small_initial_partial_block_osuccbBAbutpqse_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_osuccbBAbutpqse
	jmp	.L_small_initial_compute_done_osuccbBAbutpqse_BCM_4
.L_small_initial_partial_block_osuccbBAbutpqse_BCM_4:

# 43015 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_osuccbBAbutpqse_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_osuccbBAbutpqse
	je	.L_after_reduction_osuccbBAbutpqse_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_osuccbBAbutpqse_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_13_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_oCotpBuspdAtjpe
	jae	.L_16_blocks_overflow_oCotpBuspdAtjpe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_oCotpBuspdAtjpe
	jmp	.L_16_blocks_ok_oCotpBuspdAtjpe_BCM_4

.L_16_blocks_overflow_oCotpBuspdAtjpe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_oCotpBuspdAtjpe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mmuEdDpgoEjulrs
	jl	.L_small_initial_partial_block_mmuEdDpgoEjulrs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mmuEdDpgoEjulrs
	jmp	.L_small_initial_compute_done_mmuEdDpgoEjulrs_BCM_4
.L_small_initial_partial_block_mmuEdDpgoEjulrs_BCM_4:

# 43317 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mmuEdDpgoEjulrs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mmuEdDpgoEjulrs
	je	.L_after_reduction_mmuEdDpgoEjulrs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mmuEdDpgoEjulrs_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_14_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_bbvjuqrsjgdyCBn
	jae	.L_16_blocks_overflow_bbvjuqrsjgdyCBn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_bbvjuqrsjgdyCBn
	jmp	.L_16_blocks_ok_bbvjuqrsjgdyCBn_BCM_4

.L_16_blocks_overflow_bbvjuqrsjgdyCBn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_bbvjuqrsjgdyCBn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_roGxlxzlgsulhzk
	jl	.L_small_initial_partial_block_roGxlxzlgsulhzk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_roGxlxzlgsulhzk
	jmp	.L_small_initial_compute_done_roGxlxzlgsulhzk_BCM_4
.L_small_initial_partial_block_roGxlxzlgsulhzk_BCM_4:

# 43617 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_roGxlxzlgsulhzk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_roGxlxzlgsulhzk
	je	.L_after_reduction_roGxlxzlgsulhzk_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_roGxlxzlgsulhzk_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_15_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_GriwFAotfyoEekC
	jae	.L_16_blocks_overflow_GriwFAotfyoEekC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_GriwFAotfyoEekC
	jmp	.L_16_blocks_ok_GriwFAotfyoEekC_BCM_4

.L_16_blocks_overflow_GriwFAotfyoEekC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_GriwFAotfyoEekC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_huBogwgwhfClyls
	jl	.L_small_initial_partial_block_huBogwgwhfClyls_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_huBogwgwhfClyls
	jmp	.L_small_initial_compute_done_huBogwgwhfClyls_BCM_4
.L_small_initial_partial_block_huBogwgwhfClyls_BCM_4:

# 43924 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_huBogwgwhfClyls_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_huBogwgwhfClyls
	je	.L_after_reduction_huBogwgwhfClyls_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_huBogwgwhfClyls_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_16_aFwwehusEvmmDke_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_sjAcjwAAtCgmwjr
	jae	.L_16_blocks_overflow_sjAcjwAAtCgmwjr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_sjAcjwAAtCgmwjr
	jmp	.L_16_blocks_ok_sjAcjwAAtCgmwjr_BCM_4

.L_16_blocks_overflow_sjAcjwAAtCgmwjr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_sjAcjwAAtCgmwjr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_ayefrejzGqbkfya_BCM_4:

# 44161 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ayefrejzGqbkfya_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ayefrejzGqbkfya_BCM_4:

# WAS jmp .L_last_blocks_done_aFwwehusEvmmDke
	jmp	.L_last_blocks_done_aFwwehusEvmmDke_BCM_4
.L_last_num_blocks_is_0_aFwwehusEvmmDke_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_aFwwehusEvmmDke_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_jzxBnczDBxGvzop
	jmp	.L_ghash_done_jzxBnczDBxGvzop_BCM_4

.L_message_below_equal_16_blocks_jzxBnczDBxGvzop_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_8_wjgmgrFcljfrexe_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_wjgmgrFcljfrexe
	jl	.L_small_initial_num_blocks_is_7_1_wjgmgrFcljfrexe_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_12_wjgmgrFcljfrexe_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_wjgmgrFcljfrexe
	jl	.L_small_initial_num_blocks_is_11_9_wjgmgrFcljfrexe_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_16_wjgmgrFcljfrexe_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_15_wjgmgrFcljfrexe_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_14_wjgmgrFcljfrexe_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_wjgmgrFcljfrexe
	jmp	.L_small_initial_num_blocks_is_13_wjgmgrFcljfrexe_BCM_4

.L_small_initial_num_blocks_is_11_9_wjgmgrFcljfrexe_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_11_wjgmgrFcljfrexe_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_10_wjgmgrFcljfrexe_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_wjgmgrFcljfrexe
	jmp	.L_small_initial_num_blocks_is_9_wjgmgrFcljfrexe_BCM_4

.L_small_initial_num_blocks_is_7_1_wjgmgrFcljfrexe_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_4_wjgmgrFcljfrexe_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_wjgmgrFcljfrexe
	jl	.L_small_initial_num_blocks_is_3_1_wjgmgrFcljfrexe_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_7_wjgmgrFcljfrexe_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_6_wjgmgrFcljfrexe_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_wjgmgrFcljfrexe
	jmp	.L_small_initial_num_blocks_is_5_wjgmgrFcljfrexe_BCM_4

.L_small_initial_num_blocks_is_3_1_wjgmgrFcljfrexe_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_3_wjgmgrFcljfrexe_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_wjgmgrFcljfrexe
	je	.L_small_initial_num_blocks_is_2_wjgmgrFcljfrexe_BCM_4





.L_small_initial_num_blocks_is_1_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FfndtjjjGEeCFEr
	jl	.L_small_initial_partial_block_FfndtjjjGEeCFEr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FfndtjjjGEeCFEr
	jmp	.L_small_initial_compute_done_FfndtjjjGEeCFEr_BCM_4
.L_small_initial_partial_block_FfndtjjjGEeCFEr_BCM_4:

# 44443 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 44456 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_FfndtjjjGEeCFEr
	jmp	.L_after_reduction_FfndtjjjGEeCFEr_BCM_4
.L_small_initial_compute_done_FfndtjjjGEeCFEr_BCM_4:

.L_after_reduction_FfndtjjjGEeCFEr_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_2_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EnhukCdygAFrqou
	jl	.L_small_initial_partial_block_EnhukCdygAFrqou_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EnhukCdygAFrqou
	jmp	.L_small_initial_compute_done_EnhukCdygAFrqou_BCM_4
.L_small_initial_partial_block_EnhukCdygAFrqou_BCM_4:

# 44562 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EnhukCdygAFrqou_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EnhukCdygAFrqou
	je	.L_after_reduction_EnhukCdygAFrqou_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_EnhukCdygAFrqou_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_3_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_impdlEsbGuAaott
	jl	.L_small_initial_partial_block_impdlEsbGuAaott_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_impdlEsbGuAaott
	jmp	.L_small_initial_compute_done_impdlEsbGuAaott_BCM_4
.L_small_initial_partial_block_impdlEsbGuAaott_BCM_4:

# 44706 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_impdlEsbGuAaott_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_impdlEsbGuAaott
	je	.L_after_reduction_impdlEsbGuAaott_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_impdlEsbGuAaott_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_4_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rBqdjBpBxxfxpoF
	jl	.L_small_initial_partial_block_rBqdjBpBxxfxpoF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rBqdjBpBxxfxpoF
	jmp	.L_small_initial_compute_done_rBqdjBpBxxfxpoF_BCM_4
.L_small_initial_partial_block_rBqdjBpBxxfxpoF_BCM_4:

# 44849 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rBqdjBpBxxfxpoF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rBqdjBpBxxfxpoF
	je	.L_after_reduction_rBqdjBpBxxfxpoF_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_rBqdjBpBxxfxpoF_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_5_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %xmm29,%xmm3,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vuaskFEqawsiCsj
	jl	.L_small_initial_partial_block_vuaskFEqawsiCsj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vuaskFEqawsiCsj
	jmp	.L_small_initial_compute_done_vuaskFEqawsiCsj_BCM_4
.L_small_initial_partial_block_vuaskFEqawsiCsj_BCM_4:

# 45023 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vuaskFEqawsiCsj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vuaskFEqawsiCsj
	je	.L_after_reduction_vuaskFEqawsiCsj_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_vuaskFEqawsiCsj_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_6_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %ymm29,%ymm3,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dCffBvEqzkjcfvA
	jl	.L_small_initial_partial_block_dCffBvEqzkjcfvA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dCffBvEqzkjcfvA
	jmp	.L_small_initial_compute_done_dCffBvEqzkjcfvA_BCM_4
.L_small_initial_partial_block_dCffBvEqzkjcfvA_BCM_4:

# 45196 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dCffBvEqzkjcfvA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dCffBvEqzkjcfvA
	je	.L_after_reduction_dCffBvEqzkjcfvA_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_dCffBvEqzkjcfvA_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_7_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yEllnEiichfbFDc
	jl	.L_small_initial_partial_block_yEllnEiichfbFDc_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yEllnEiichfbFDc
	jmp	.L_small_initial_compute_done_yEllnEiichfbFDc_BCM_4
.L_small_initial_partial_block_yEllnEiichfbFDc_BCM_4:

# 45380 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yEllnEiichfbFDc_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yEllnEiichfbFDc
	je	.L_after_reduction_yEllnEiichfbFDc_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_yEllnEiichfbFDc_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_8_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vBdxtBrlzxbaFcc
	jl	.L_small_initial_partial_block_vBdxtBrlzxbaFcc_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vBdxtBrlzxbaFcc
	jmp	.L_small_initial_compute_done_vBdxtBrlzxbaFcc_BCM_4
.L_small_initial_partial_block_vBdxtBrlzxbaFcc_BCM_4:

# 45562 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vBdxtBrlzxbaFcc_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vBdxtBrlzxbaFcc
	je	.L_after_reduction_vBdxtBrlzxbaFcc_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_vBdxtBrlzxbaFcc_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_9_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %xmm29,%xmm4,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_scfvxdenebqCdyz
	jl	.L_small_initial_partial_block_scfvxdenebqCdyz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_scfvxdenebqCdyz
	jmp	.L_small_initial_compute_done_scfvxdenebqCdyz_BCM_4
.L_small_initial_partial_block_scfvxdenebqCdyz_BCM_4:

# 45774 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_scfvxdenebqCdyz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_scfvxdenebqCdyz
	je	.L_after_reduction_scfvxdenebqCdyz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_scfvxdenebqCdyz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_10_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %ymm29,%ymm4,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cvcjsgotzqiyevA
	jl	.L_small_initial_partial_block_cvcjsgotzqiyevA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cvcjsgotzqiyevA
	jmp	.L_small_initial_compute_done_cvcjsgotzqiyevA_BCM_4
.L_small_initial_partial_block_cvcjsgotzqiyevA_BCM_4:

# 45984 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cvcjsgotzqiyevA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cvcjsgotzqiyevA
	je	.L_after_reduction_cvcjsgotzqiyevA_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_cvcjsgotzqiyevA_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_11_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vuCaGGnzBCpphtu
	jl	.L_small_initial_partial_block_vuCaGGnzBCpphtu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vuCaGGnzBCpphtu
	jmp	.L_small_initial_compute_done_vuCaGGnzBCpphtu_BCM_4
.L_small_initial_partial_block_vuCaGGnzBCpphtu_BCM_4:

# 46205 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vuCaGGnzBCpphtu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vuCaGGnzBCpphtu
	je	.L_after_reduction_vuCaGGnzBCpphtu_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_vuCaGGnzBCpphtu_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_12_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qhFhudxmstaFEvA
	jl	.L_small_initial_partial_block_qhFhudxmstaFEvA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qhFhudxmstaFEvA
	jmp	.L_small_initial_compute_done_qhFhudxmstaFEvA_BCM_4
.L_small_initial_partial_block_qhFhudxmstaFEvA_BCM_4:

# 46420 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qhFhudxmstaFEvA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qhFhudxmstaFEvA
	je	.L_after_reduction_qhFhudxmstaFEvA_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_qhFhudxmstaFEvA_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_13_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %xmm29,%xmm5,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GbEgefaoCcDkbpn
	jl	.L_small_initial_partial_block_GbEgefaoCcDkbpn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GbEgefaoCcDkbpn
	jmp	.L_small_initial_compute_done_GbEgefaoCcDkbpn_BCM_4
.L_small_initial_partial_block_GbEgefaoCcDkbpn_BCM_4:

# 46665 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GbEgefaoCcDkbpn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GbEgefaoCcDkbpn
	je	.L_after_reduction_GbEgefaoCcDkbpn_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_GbEgefaoCcDkbpn_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_14_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %ymm29,%ymm5,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hCaaAkupwhFdkkk
	jl	.L_small_initial_partial_block_hCaaAkupwhFdkkk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hCaaAkupwhFdkkk
	jmp	.L_small_initial_compute_done_hCaaAkupwhFdkkk_BCM_4
.L_small_initial_partial_block_hCaaAkupwhFdkkk_BCM_4:

# 46904 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hCaaAkupwhFdkkk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hCaaAkupwhFdkkk
	je	.L_after_reduction_hCaaAkupwhFdkkk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_hCaaAkupwhFdkkk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_15_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kBjkymsezzduvxc
	jl	.L_small_initial_partial_block_kBjkymsezzduvxc_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kBjkymsezzduvxc
	jmp	.L_small_initial_compute_done_kBjkymsezzduvxc_BCM_4
.L_small_initial_partial_block_kBjkymsezzduvxc_BCM_4:

# 47154 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kBjkymsezzduvxc_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kBjkymsezzduvxc
	je	.L_after_reduction_kBjkymsezzduvxc_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_kBjkymsezzduvxc_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_wjgmgrFcljfrexe
	jmp	.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4
.L_small_initial_num_blocks_is_16_wjgmgrFcljfrexe_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_qxCpdapFxyCuqwj_BCM_4:

# 47333 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qxCpdapFxyCuqwj_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_qxCpdapFxyCuqwj_BCM_4:

.L_small_initial_blocks_encrypted_wjgmgrFcljfrexe_BCM_4:

.L_ghash_done_jzxBnczDBxGvzop_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_jzxBnczDBxGvzop_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_jzxBnczDBxGvzop_BCM_4:

# WAS jmp .Lexit_gcm_encrypt
	jmp	.Lexit_gcm_encrypt_BCM_4
.align 32
.Laes_gcm_encrypt_256_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_ralurfzeatcGxDF
	je	.L_enc_dec_abort_ralurfzeatcGxDF_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_yhoCcfnksexDFbx
	je	.L_partial_block_done_yhoCcfnksexDFbx_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_yhoCcfnksexDFbx
	jge	.L_no_extra_mask_yhoCcfnksexDFbx_BCM_4
 subq %r13,%r12
.L_no_extra_mask_yhoCcfnksexDFbx_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 vpxorq %xmm3,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_yhoCcfnksexDFbx
	jl	.L_partial_incomplete_yhoCcfnksexDFbx_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_yhoCcfnksexDFbx
	jmp	.L_enc_dec_done_yhoCcfnksexDFbx_BCM_4

.L_partial_incomplete_yhoCcfnksexDFbx_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_yhoCcfnksexDFbx_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1

# WAS vpshufb SHUF_MASK(%rip),%xmm3,%xmm3
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm3, %xmm3
 vpshufb %xmm5,%xmm3,%xmm3
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_yhoCcfnksexDFbx_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_ralurfzeatcGxDF
	je	.L_enc_dec_done_ralurfzeatcGxDF_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_ralurfzeatcGxDF
	jbe	.L_message_below_equal_16_blocks_ralurfzeatcGxDF_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_FolitFcvmzDtzbD
	jae	.L_next_16_overflow_FolitFcvmzDtzbD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_FolitFcvmzDtzbD
	jmp	.L_next_16_ok_FolitFcvmzDtzbD_BCM_4
.L_next_16_overflow_FolitFcvmzDtzbD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_FolitFcvmzDtzbD_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 208(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_slhsqgEufGclFec
	jnz	.L_skip_hkeys_precomputation_slhsqgEufGclFec_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_slhsqgEufGclFec_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_ralurfzeatcGxDF
	jb	.L_message_below_32_blocks_ralurfzeatcGxDF_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_rpkeAoplfcmnoqe
	jae	.L_next_16_overflow_rpkeAoplfcmnoqe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_rpkeAoplfcmnoqe
	jmp	.L_next_16_ok_rpkeAoplfcmnoqe_BCM_4
.L_next_16_overflow_rpkeAoplfcmnoqe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_rpkeAoplfcmnoqe_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 208(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_wDdhvEhGipECfzn
	jnz	.L_skip_hkeys_precomputation_wDdhvEhGipECfzn_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_wDdhvEhGipECfzn_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_ralurfzeatcGxDF
	jb	.L_no_more_big_nblocks_ralurfzeatcGxDF_BCM_4
.L_encrypt_big_nblocks_ralurfzeatcGxDF_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_tcpaCgCtyttEnkC
	jae	.L_16_blocks_overflow_tcpaCgCtyttEnkC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_tcpaCgCtyttEnkC
	jmp	.L_16_blocks_ok_tcpaCgCtyttEnkC_BCM_4
.L_16_blocks_overflow_tcpaCgCtyttEnkC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_tcpaCgCtyttEnkC_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_fefwzzFqtyGgFsy
	jae	.L_16_blocks_overflow_fefwzzFqtyGgFsy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_fefwzzFqtyGgFsy
	jmp	.L_16_blocks_ok_fefwzzFqtyGgFsy_BCM_4
.L_16_blocks_overflow_fefwzzFqtyGgFsy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_fefwzzFqtyGgFsy_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_poCaishDCqiAtDd
	jae	.L_16_blocks_overflow_poCaishDCqiAtDd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_poCaishDCqiAtDd
	jmp	.L_16_blocks_ok_poCaishDCqiAtDd_BCM_4
.L_16_blocks_overflow_poCaishDCqiAtDd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_poCaishDCqiAtDd_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_ralurfzeatcGxDF
	jae	.L_encrypt_big_nblocks_ralurfzeatcGxDF_BCM_4

.L_no_more_big_nblocks_ralurfzeatcGxDF_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_ralurfzeatcGxDF
	jae	.L_encrypt_32_blocks_ralurfzeatcGxDF_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_ralurfzeatcGxDF
	jae	.L_encrypt_16_blocks_ralurfzeatcGxDF_BCM_4
.L_encrypt_0_blocks_ghash_32_ralurfzeatcGxDF_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_0_xdvkfswEyEirzwB_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_8_xdvkfswEyEirzwB_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_xdvkfswEyEirzwB
	jb	.L_last_num_blocks_is_7_1_xdvkfswEyEirzwB_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_12_xdvkfswEyEirzwB_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_xdvkfswEyEirzwB
	jb	.L_last_num_blocks_is_11_9_xdvkfswEyEirzwB_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_15_xdvkfswEyEirzwB_BCM_4
# WAS ja .L_last_num_blocks_is_16_xdvkfswEyEirzwB
	ja	.L_last_num_blocks_is_16_xdvkfswEyEirzwB_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_14_xdvkfswEyEirzwB_BCM_4
# WAS jmp .L_last_num_blocks_is_13_xdvkfswEyEirzwB
	jmp	.L_last_num_blocks_is_13_xdvkfswEyEirzwB_BCM_4

.L_last_num_blocks_is_11_9_xdvkfswEyEirzwB_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_10_xdvkfswEyEirzwB_BCM_4
# WAS ja .L_last_num_blocks_is_11_xdvkfswEyEirzwB
	ja	.L_last_num_blocks_is_11_xdvkfswEyEirzwB_BCM_4
# WAS jmp .L_last_num_blocks_is_9_xdvkfswEyEirzwB
	jmp	.L_last_num_blocks_is_9_xdvkfswEyEirzwB_BCM_4

.L_last_num_blocks_is_7_1_xdvkfswEyEirzwB_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_4_xdvkfswEyEirzwB_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_xdvkfswEyEirzwB
	jb	.L_last_num_blocks_is_3_1_xdvkfswEyEirzwB_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_xdvkfswEyEirzwB
	ja	.L_last_num_blocks_is_7_xdvkfswEyEirzwB_BCM_4
# WAS je .L_last_num_blocks_is_6_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_6_xdvkfswEyEirzwB_BCM_4
# WAS jmp .L_last_num_blocks_is_5_xdvkfswEyEirzwB
	jmp	.L_last_num_blocks_is_5_xdvkfswEyEirzwB_BCM_4

.L_last_num_blocks_is_3_1_xdvkfswEyEirzwB_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_xdvkfswEyEirzwB
	ja	.L_last_num_blocks_is_3_xdvkfswEyEirzwB_BCM_4
# WAS je .L_last_num_blocks_is_2_xdvkfswEyEirzwB
	je	.L_last_num_blocks_is_2_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_1_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_igvodhikativhxs
	jae	.L_16_blocks_overflow_igvodhikativhxs_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_igvodhikativhxs
	jmp	.L_16_blocks_ok_igvodhikativhxs_BCM_4

.L_16_blocks_overflow_igvodhikativhxs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_igvodhikativhxs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GcsipbkriaBjvfi
	jl	.L_small_initial_partial_block_GcsipbkriaBjvfi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GcsipbkriaBjvfi
	jmp	.L_small_initial_compute_done_GcsipbkriaBjvfi_BCM_4
.L_small_initial_partial_block_GcsipbkriaBjvfi_BCM_4:

# 48957 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 48998 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_GcsipbkriaBjvfi
	jmp	.L_after_reduction_GcsipbkriaBjvfi_BCM_4
.L_small_initial_compute_done_GcsipbkriaBjvfi_BCM_4:

.L_after_reduction_GcsipbkriaBjvfi_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_2_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_vsprwaoekjwbkng
	jae	.L_16_blocks_overflow_vsprwaoekjwbkng_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_vsprwaoekjwbkng
	jmp	.L_16_blocks_ok_vsprwaoekjwbkng_BCM_4

.L_16_blocks_overflow_vsprwaoekjwbkng_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_vsprwaoekjwbkng_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lhbsspkwfiDtCyr
	jl	.L_small_initial_partial_block_lhbsspkwfiDtCyr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lhbsspkwfiDtCyr
	jmp	.L_small_initial_compute_done_lhbsspkwfiDtCyr_BCM_4
.L_small_initial_partial_block_lhbsspkwfiDtCyr_BCM_4:

# 49165 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lhbsspkwfiDtCyr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lhbsspkwfiDtCyr
	je	.L_after_reduction_lhbsspkwfiDtCyr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lhbsspkwfiDtCyr_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_3_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_pdiFfjCElAtekEv
	jae	.L_16_blocks_overflow_pdiFfjCElAtekEv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_pdiFfjCElAtekEv
	jmp	.L_16_blocks_ok_pdiFfjCElAtekEv_BCM_4

.L_16_blocks_overflow_pdiFfjCElAtekEv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_pdiFfjCElAtekEv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iyftGziCGvzBGwp
	jl	.L_small_initial_partial_block_iyftGziCGvzBGwp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iyftGziCGvzBGwp
	jmp	.L_small_initial_compute_done_iyftGziCGvzBGwp_BCM_4
.L_small_initial_partial_block_iyftGziCGvzBGwp_BCM_4:

# 49372 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iyftGziCGvzBGwp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iyftGziCGvzBGwp
	je	.L_after_reduction_iyftGziCGvzBGwp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iyftGziCGvzBGwp_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_4_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_giftEyoltvfgggA
	jae	.L_16_blocks_overflow_giftEyoltvfgggA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_giftEyoltvfgggA
	jmp	.L_16_blocks_ok_giftEyoltvfgggA_BCM_4

.L_16_blocks_overflow_giftEyoltvfgggA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_giftEyoltvfgggA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hdzCnewjxBbishd
	jl	.L_small_initial_partial_block_hdzCnewjxBbishd_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hdzCnewjxBbishd
	jmp	.L_small_initial_compute_done_hdzCnewjxBbishd_BCM_4
.L_small_initial_partial_block_hdzCnewjxBbishd_BCM_4:

# 49579 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hdzCnewjxBbishd_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hdzCnewjxBbishd
	je	.L_after_reduction_hdzCnewjxBbishd_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hdzCnewjxBbishd_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_5_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_orpkewzlnxCGshz
	jae	.L_16_blocks_overflow_orpkewzlnxCGshz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_orpkewzlnxCGshz
	jmp	.L_16_blocks_ok_orpkewzlnxCGshz_BCM_4

.L_16_blocks_overflow_orpkewzlnxCGshz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_orpkewzlnxCGshz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kyaoueFfnBudEhA
	jl	.L_small_initial_partial_block_kyaoueFfnBudEhA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kyaoueFfnBudEhA
	jmp	.L_small_initial_compute_done_kyaoueFfnBudEhA_BCM_4
.L_small_initial_partial_block_kyaoueFfnBudEhA_BCM_4:

# 49817 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kyaoueFfnBudEhA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kyaoueFfnBudEhA
	je	.L_after_reduction_kyaoueFfnBudEhA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kyaoueFfnBudEhA_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_6_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_orictFjAdfigdzk
	jae	.L_16_blocks_overflow_orictFjAdfigdzk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_orictFjAdfigdzk
	jmp	.L_16_blocks_ok_orictFjAdfigdzk_BCM_4

.L_16_blocks_overflow_orictFjAdfigdzk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_orictFjAdfigdzk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sgBbGfbjnccbnkh
	jl	.L_small_initial_partial_block_sgBbGfbjnccbnkh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sgBbGfbjnccbnkh
	jmp	.L_small_initial_compute_done_sgBbGfbjnccbnkh_BCM_4
.L_small_initial_partial_block_sgBbGfbjnccbnkh_BCM_4:

# 50055 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sgBbGfbjnccbnkh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sgBbGfbjnccbnkh
	je	.L_after_reduction_sgBbGfbjnccbnkh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sgBbGfbjnccbnkh_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_7_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_ivtabDnDqnrGEcy
	jae	.L_16_blocks_overflow_ivtabDnDqnrGEcy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_ivtabDnDqnrGEcy
	jmp	.L_16_blocks_ok_ivtabDnDqnrGEcy_BCM_4

.L_16_blocks_overflow_ivtabDnDqnrGEcy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_ivtabDnDqnrGEcy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FwberbenvBxEcDE
	jl	.L_small_initial_partial_block_FwberbenvBxEcDE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FwberbenvBxEcDE
	jmp	.L_small_initial_compute_done_FwberbenvBxEcDE_BCM_4
.L_small_initial_partial_block_FwberbenvBxEcDE_BCM_4:

# 50300 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FwberbenvBxEcDE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FwberbenvBxEcDE
	je	.L_after_reduction_FwberbenvBxEcDE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FwberbenvBxEcDE_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_8_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_uBiojDdgtEoAfGd
	jae	.L_16_blocks_overflow_uBiojDdgtEoAfGd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_uBiojDdgtEoAfGd
	jmp	.L_16_blocks_ok_uBiojDdgtEoAfGd_BCM_4

.L_16_blocks_overflow_uBiojDdgtEoAfGd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_uBiojDdgtEoAfGd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_twDrbrvhowngEDr
	jl	.L_small_initial_partial_block_twDrbrvhowngEDr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_twDrbrvhowngEDr
	jmp	.L_small_initial_compute_done_twDrbrvhowngEDr_BCM_4
.L_small_initial_partial_block_twDrbrvhowngEDr_BCM_4:

# 50547 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_twDrbrvhowngEDr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_twDrbrvhowngEDr
	je	.L_after_reduction_twDrbrvhowngEDr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_twDrbrvhowngEDr_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_9_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_FqperxgfhBwCqDo
	jae	.L_16_blocks_overflow_FqperxgfhBwCqDo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_FqperxgfhBwCqDo
	jmp	.L_16_blocks_ok_FqperxgfhBwCqDo_BCM_4

.L_16_blocks_overflow_FqperxgfhBwCqDo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_FqperxgfhBwCqDo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_agoyuAkiGwzDjns
	jl	.L_small_initial_partial_block_agoyuAkiGwzDjns_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_agoyuAkiGwzDjns
	jmp	.L_small_initial_compute_done_agoyuAkiGwzDjns_BCM_4
.L_small_initial_partial_block_agoyuAkiGwzDjns_BCM_4:

# 50823 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_agoyuAkiGwzDjns_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_agoyuAkiGwzDjns
	je	.L_after_reduction_agoyuAkiGwzDjns_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_agoyuAkiGwzDjns_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_10_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_bvimoanuboioxom
	jae	.L_16_blocks_overflow_bvimoanuboioxom_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_bvimoanuboioxom
	jmp	.L_16_blocks_ok_bvimoanuboioxom_BCM_4

.L_16_blocks_overflow_bvimoanuboioxom_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_bvimoanuboioxom_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kblafGutCsvisjA
	jl	.L_small_initial_partial_block_kblafGutCsvisjA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kblafGutCsvisjA
	jmp	.L_small_initial_compute_done_kblafGutCsvisjA_BCM_4
.L_small_initial_partial_block_kblafGutCsvisjA_BCM_4:

# 51101 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kblafGutCsvisjA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kblafGutCsvisjA
	je	.L_after_reduction_kblafGutCsvisjA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kblafGutCsvisjA_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_11_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_DcdigDqdkAmpala
	jae	.L_16_blocks_overflow_DcdigDqdkAmpala_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_DcdigDqdkAmpala
	jmp	.L_16_blocks_ok_DcdigDqdkAmpala_BCM_4

.L_16_blocks_overflow_DcdigDqdkAmpala_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_DcdigDqdkAmpala_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lFojEFrDvGhrqGC
	jl	.L_small_initial_partial_block_lFojEFrDvGhrqGC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lFojEFrDvGhrqGC
	jmp	.L_small_initial_compute_done_lFojEFrDvGhrqGC_BCM_4
.L_small_initial_partial_block_lFojEFrDvGhrqGC_BCM_4:

# 51386 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lFojEFrDvGhrqGC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lFojEFrDvGhrqGC
	je	.L_after_reduction_lFojEFrDvGhrqGC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lFojEFrDvGhrqGC_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_12_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_ijmafkyicqbAgov
	jae	.L_16_blocks_overflow_ijmafkyicqbAgov_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_ijmafkyicqbAgov
	jmp	.L_16_blocks_ok_ijmafkyicqbAgov_BCM_4

.L_16_blocks_overflow_ijmafkyicqbAgov_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_ijmafkyicqbAgov_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lbhyvEuvxtzgCqA
	jl	.L_small_initial_partial_block_lbhyvEuvxtzgCqA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lbhyvEuvxtzgCqA
	jmp	.L_small_initial_compute_done_lbhyvEuvxtzgCqA_BCM_4
.L_small_initial_partial_block_lbhyvEuvxtzgCqA_BCM_4:

# 51669 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lbhyvEuvxtzgCqA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lbhyvEuvxtzgCqA
	je	.L_after_reduction_lbhyvEuvxtzgCqA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lbhyvEuvxtzgCqA_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_13_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_xewjdgAADiucjCd
	jae	.L_16_blocks_overflow_xewjdgAADiucjCd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_xewjdgAADiucjCd
	jmp	.L_16_blocks_ok_xewjdgAADiucjCd_BCM_4

.L_16_blocks_overflow_xewjdgAADiucjCd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_xewjdgAADiucjCd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ihgbCttclcmDtmF
	jl	.L_small_initial_partial_block_ihgbCttclcmDtmF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ihgbCttclcmDtmF
	jmp	.L_small_initial_compute_done_ihgbCttclcmDtmF_BCM_4
.L_small_initial_partial_block_ihgbCttclcmDtmF_BCM_4:

# 51981 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ihgbCttclcmDtmF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ihgbCttclcmDtmF
	je	.L_after_reduction_ihgbCttclcmDtmF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ihgbCttclcmDtmF_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_14_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_uxvkthhndspgdct
	jae	.L_16_blocks_overflow_uxvkthhndspgdct_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_uxvkthhndspgdct
	jmp	.L_16_blocks_ok_uxvkthhndspgdct_BCM_4

.L_16_blocks_overflow_uxvkthhndspgdct_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_uxvkthhndspgdct_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_okkABmocyzkldgz
	jl	.L_small_initial_partial_block_okkABmocyzkldgz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_okkABmocyzkldgz
	jmp	.L_small_initial_compute_done_okkABmocyzkldgz_BCM_4
.L_small_initial_partial_block_okkABmocyzkldgz_BCM_4:

# 52291 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_okkABmocyzkldgz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_okkABmocyzkldgz
	je	.L_after_reduction_okkABmocyzkldgz_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_okkABmocyzkldgz_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_15_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_fdeajBtuhuyobdz
	jae	.L_16_blocks_overflow_fdeajBtuhuyobdz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_fdeajBtuhuyobdz
	jmp	.L_16_blocks_ok_fdeajBtuhuyobdz_BCM_4

.L_16_blocks_overflow_fdeajBtuhuyobdz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_fdeajBtuhuyobdz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ltEnnExvFfBwyxa
	jl	.L_small_initial_partial_block_ltEnnExvFfBwyxa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ltEnnExvFfBwyxa
	jmp	.L_small_initial_compute_done_ltEnnExvFfBwyxa_BCM_4
.L_small_initial_partial_block_ltEnnExvFfBwyxa_BCM_4:

# 52608 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ltEnnExvFfBwyxa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ltEnnExvFfBwyxa
	je	.L_after_reduction_ltEnnExvFfBwyxa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ltEnnExvFfBwyxa_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_16_xdvkfswEyEirzwB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_mxnyyrjuxpBhloh
	jae	.L_16_blocks_overflow_mxnyyrjuxpBhloh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_mxnyyrjuxpBhloh
	jmp	.L_16_blocks_ok_mxnyyrjuxpBhloh_BCM_4

.L_16_blocks_overflow_mxnyyrjuxpBhloh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_mxnyyrjuxpBhloh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_CFywctAlrBmkufB_BCM_4:

# 52855 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CFywctAlrBmkufB_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CFywctAlrBmkufB_BCM_4:

# WAS jmp .L_last_blocks_done_xdvkfswEyEirzwB
	jmp	.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4
.L_last_num_blocks_is_0_xdvkfswEyEirzwB_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_xdvkfswEyEirzwB_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_ralurfzeatcGxDF
	jmp	.L_ghash_done_ralurfzeatcGxDF_BCM_4
.L_encrypt_32_blocks_ralurfzeatcGxDF_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_maxnEmGesnybyGw
	jae	.L_16_blocks_overflow_maxnEmGesnybyGw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_maxnEmGesnybyGw
	jmp	.L_16_blocks_ok_maxnEmGesnybyGw_BCM_4
.L_16_blocks_overflow_maxnEmGesnybyGw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_maxnEmGesnybyGw_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_caDkotybClbwqcs
	jae	.L_16_blocks_overflow_caDkotybClbwqcs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_caDkotybClbwqcs
	jmp	.L_16_blocks_ok_caDkotybClbwqcs_BCM_4
.L_16_blocks_overflow_caDkotybClbwqcs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_caDkotybClbwqcs_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_0_CpuqkplkrGqAlEE_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_8_CpuqkplkrGqAlEE_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CpuqkplkrGqAlEE
	jb	.L_last_num_blocks_is_7_1_CpuqkplkrGqAlEE_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_12_CpuqkplkrGqAlEE_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CpuqkplkrGqAlEE
	jb	.L_last_num_blocks_is_11_9_CpuqkplkrGqAlEE_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_15_CpuqkplkrGqAlEE_BCM_4
# WAS ja .L_last_num_blocks_is_16_CpuqkplkrGqAlEE
	ja	.L_last_num_blocks_is_16_CpuqkplkrGqAlEE_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_14_CpuqkplkrGqAlEE_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CpuqkplkrGqAlEE
	jmp	.L_last_num_blocks_is_13_CpuqkplkrGqAlEE_BCM_4

.L_last_num_blocks_is_11_9_CpuqkplkrGqAlEE_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_10_CpuqkplkrGqAlEE_BCM_4
# WAS ja .L_last_num_blocks_is_11_CpuqkplkrGqAlEE
	ja	.L_last_num_blocks_is_11_CpuqkplkrGqAlEE_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CpuqkplkrGqAlEE
	jmp	.L_last_num_blocks_is_9_CpuqkplkrGqAlEE_BCM_4

.L_last_num_blocks_is_7_1_CpuqkplkrGqAlEE_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_4_CpuqkplkrGqAlEE_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CpuqkplkrGqAlEE
	jb	.L_last_num_blocks_is_3_1_CpuqkplkrGqAlEE_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CpuqkplkrGqAlEE
	ja	.L_last_num_blocks_is_7_CpuqkplkrGqAlEE_BCM_4
# WAS je .L_last_num_blocks_is_6_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_6_CpuqkplkrGqAlEE_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CpuqkplkrGqAlEE
	jmp	.L_last_num_blocks_is_5_CpuqkplkrGqAlEE_BCM_4

.L_last_num_blocks_is_3_1_CpuqkplkrGqAlEE_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CpuqkplkrGqAlEE
	ja	.L_last_num_blocks_is_3_CpuqkplkrGqAlEE_BCM_4
# WAS je .L_last_num_blocks_is_2_CpuqkplkrGqAlEE
	je	.L_last_num_blocks_is_2_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_1_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_alDzwCfDlrwfuue
	jae	.L_16_blocks_overflow_alDzwCfDlrwfuue_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_alDzwCfDlrwfuue
	jmp	.L_16_blocks_ok_alDzwCfDlrwfuue_BCM_4

.L_16_blocks_overflow_alDzwCfDlrwfuue_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_alDzwCfDlrwfuue_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iBlFpkcubprtgpj
	jl	.L_small_initial_partial_block_iBlFpkcubprtgpj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iBlFpkcubprtgpj
	jmp	.L_small_initial_compute_done_iBlFpkcubprtgpj_BCM_4
.L_small_initial_partial_block_iBlFpkcubprtgpj_BCM_4:

# 53664 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 53705 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_iBlFpkcubprtgpj
	jmp	.L_after_reduction_iBlFpkcubprtgpj_BCM_4
.L_small_initial_compute_done_iBlFpkcubprtgpj_BCM_4:

.L_after_reduction_iBlFpkcubprtgpj_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_2_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_nCqcfaumojsjgbp
	jae	.L_16_blocks_overflow_nCqcfaumojsjgbp_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_nCqcfaumojsjgbp
	jmp	.L_16_blocks_ok_nCqcfaumojsjgbp_BCM_4

.L_16_blocks_overflow_nCqcfaumojsjgbp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_nCqcfaumojsjgbp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yceinkEjzFdqAeG
	jl	.L_small_initial_partial_block_yceinkEjzFdqAeG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yceinkEjzFdqAeG
	jmp	.L_small_initial_compute_done_yceinkEjzFdqAeG_BCM_4
.L_small_initial_partial_block_yceinkEjzFdqAeG_BCM_4:

# 53872 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yceinkEjzFdqAeG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yceinkEjzFdqAeG
	je	.L_after_reduction_yceinkEjzFdqAeG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yceinkEjzFdqAeG_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_3_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_uwpbmorybawstbl
	jae	.L_16_blocks_overflow_uwpbmorybawstbl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_uwpbmorybawstbl
	jmp	.L_16_blocks_ok_uwpbmorybawstbl_BCM_4

.L_16_blocks_overflow_uwpbmorybawstbl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_uwpbmorybawstbl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sCduuopFvdCBjgG
	jl	.L_small_initial_partial_block_sCduuopFvdCBjgG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sCduuopFvdCBjgG
	jmp	.L_small_initial_compute_done_sCduuopFvdCBjgG_BCM_4
.L_small_initial_partial_block_sCduuopFvdCBjgG_BCM_4:

# 54079 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sCduuopFvdCBjgG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sCduuopFvdCBjgG
	je	.L_after_reduction_sCduuopFvdCBjgG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sCduuopFvdCBjgG_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_4_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_vadkquwycFnaotd
	jae	.L_16_blocks_overflow_vadkquwycFnaotd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_vadkquwycFnaotd
	jmp	.L_16_blocks_ok_vadkquwycFnaotd_BCM_4

.L_16_blocks_overflow_vadkquwycFnaotd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_vadkquwycFnaotd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ivhaorpFqBawvwj
	jl	.L_small_initial_partial_block_ivhaorpFqBawvwj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ivhaorpFqBawvwj
	jmp	.L_small_initial_compute_done_ivhaorpFqBawvwj_BCM_4
.L_small_initial_partial_block_ivhaorpFqBawvwj_BCM_4:

# 54286 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ivhaorpFqBawvwj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ivhaorpFqBawvwj
	je	.L_after_reduction_ivhaorpFqBawvwj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ivhaorpFqBawvwj_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_5_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_aFkFaFcofvloukl
	jae	.L_16_blocks_overflow_aFkFaFcofvloukl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_aFkFaFcofvloukl
	jmp	.L_16_blocks_ok_aFkFaFcofvloukl_BCM_4

.L_16_blocks_overflow_aFkFaFcofvloukl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_aFkFaFcofvloukl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DnveyAaCeDgzdCr
	jl	.L_small_initial_partial_block_DnveyAaCeDgzdCr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DnveyAaCeDgzdCr
	jmp	.L_small_initial_compute_done_DnveyAaCeDgzdCr_BCM_4
.L_small_initial_partial_block_DnveyAaCeDgzdCr_BCM_4:

# 54524 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DnveyAaCeDgzdCr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DnveyAaCeDgzdCr
	je	.L_after_reduction_DnveyAaCeDgzdCr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DnveyAaCeDgzdCr_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_6_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_hyGBuzayqDhhsut
	jae	.L_16_blocks_overflow_hyGBuzayqDhhsut_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_hyGBuzayqDhhsut
	jmp	.L_16_blocks_ok_hyGBuzayqDhhsut_BCM_4

.L_16_blocks_overflow_hyGBuzayqDhhsut_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_hyGBuzayqDhhsut_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FildbillAFDaont
	jl	.L_small_initial_partial_block_FildbillAFDaont_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FildbillAFDaont
	jmp	.L_small_initial_compute_done_FildbillAFDaont_BCM_4
.L_small_initial_partial_block_FildbillAFDaont_BCM_4:

# 54762 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FildbillAFDaont_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FildbillAFDaont
	je	.L_after_reduction_FildbillAFDaont_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FildbillAFDaont_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_7_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_wfwrxhyCBsGqfaa
	jae	.L_16_blocks_overflow_wfwrxhyCBsGqfaa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_wfwrxhyCBsGqfaa
	jmp	.L_16_blocks_ok_wfwrxhyCBsGqfaa_BCM_4

.L_16_blocks_overflow_wfwrxhyCBsGqfaa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_wfwrxhyCBsGqfaa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dFDhkscmwibqAtn
	jl	.L_small_initial_partial_block_dFDhkscmwibqAtn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dFDhkscmwibqAtn
	jmp	.L_small_initial_compute_done_dFDhkscmwibqAtn_BCM_4
.L_small_initial_partial_block_dFDhkscmwibqAtn_BCM_4:

# 55007 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dFDhkscmwibqAtn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dFDhkscmwibqAtn
	je	.L_after_reduction_dFDhkscmwibqAtn_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dFDhkscmwibqAtn_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_8_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_nwCspduhyDCpabc
	jae	.L_16_blocks_overflow_nwCspduhyDCpabc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_nwCspduhyDCpabc
	jmp	.L_16_blocks_ok_nwCspduhyDCpabc_BCM_4

.L_16_blocks_overflow_nwCspduhyDCpabc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_nwCspduhyDCpabc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_atEEroEqtkbEDxn
	jl	.L_small_initial_partial_block_atEEroEqtkbEDxn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_atEEroEqtkbEDxn
	jmp	.L_small_initial_compute_done_atEEroEqtkbEDxn_BCM_4
.L_small_initial_partial_block_atEEroEqtkbEDxn_BCM_4:

# 55254 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_atEEroEqtkbEDxn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_atEEroEqtkbEDxn
	je	.L_after_reduction_atEEroEqtkbEDxn_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_atEEroEqtkbEDxn_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_9_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_FtfeaayDywckyfd
	jae	.L_16_blocks_overflow_FtfeaayDywckyfd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_FtfeaayDywckyfd
	jmp	.L_16_blocks_ok_FtfeaayDywckyfd_BCM_4

.L_16_blocks_overflow_FtfeaayDywckyfd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_FtfeaayDywckyfd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nvbkpkefGjFjFfs
	jl	.L_small_initial_partial_block_nvbkpkefGjFjFfs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nvbkpkefGjFjFfs
	jmp	.L_small_initial_compute_done_nvbkpkefGjFjFfs_BCM_4
.L_small_initial_partial_block_nvbkpkefGjFjFfs_BCM_4:

# 55530 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nvbkpkefGjFjFfs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nvbkpkefGjFjFfs
	je	.L_after_reduction_nvbkpkefGjFjFfs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nvbkpkefGjFjFfs_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_10_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_rwkpzgCdusgbwpC
	jae	.L_16_blocks_overflow_rwkpzgCdusgbwpC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_rwkpzgCdusgbwpC
	jmp	.L_16_blocks_ok_rwkpzgCdusgbwpC_BCM_4

.L_16_blocks_overflow_rwkpzgCdusgbwpC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_rwkpzgCdusgbwpC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tEmDckpEuqBsraf
	jl	.L_small_initial_partial_block_tEmDckpEuqBsraf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tEmDckpEuqBsraf
	jmp	.L_small_initial_compute_done_tEmDckpEuqBsraf_BCM_4
.L_small_initial_partial_block_tEmDckpEuqBsraf_BCM_4:

# 55808 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tEmDckpEuqBsraf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tEmDckpEuqBsraf
	je	.L_after_reduction_tEmDckpEuqBsraf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tEmDckpEuqBsraf_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_11_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_lwGByppsljaznxt
	jae	.L_16_blocks_overflow_lwGByppsljaznxt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_lwGByppsljaznxt
	jmp	.L_16_blocks_ok_lwGByppsljaznxt_BCM_4

.L_16_blocks_overflow_lwGByppsljaznxt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_lwGByppsljaznxt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ilixxtsukzdoAtA
	jl	.L_small_initial_partial_block_ilixxtsukzdoAtA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ilixxtsukzdoAtA
	jmp	.L_small_initial_compute_done_ilixxtsukzdoAtA_BCM_4
.L_small_initial_partial_block_ilixxtsukzdoAtA_BCM_4:

# 56093 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ilixxtsukzdoAtA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ilixxtsukzdoAtA
	je	.L_after_reduction_ilixxtsukzdoAtA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ilixxtsukzdoAtA_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_12_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_jbqznyehrlCBlqk
	jae	.L_16_blocks_overflow_jbqznyehrlCBlqk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_jbqznyehrlCBlqk
	jmp	.L_16_blocks_ok_jbqznyehrlCBlqk_BCM_4

.L_16_blocks_overflow_jbqznyehrlCBlqk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_jbqznyehrlCBlqk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wctpdEkyEmpBhlB
	jl	.L_small_initial_partial_block_wctpdEkyEmpBhlB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wctpdEkyEmpBhlB
	jmp	.L_small_initial_compute_done_wctpdEkyEmpBhlB_BCM_4
.L_small_initial_partial_block_wctpdEkyEmpBhlB_BCM_4:

# 56376 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wctpdEkyEmpBhlB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wctpdEkyEmpBhlB
	je	.L_after_reduction_wctpdEkyEmpBhlB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wctpdEkyEmpBhlB_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_13_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_zfoiakgFjhncFgz
	jae	.L_16_blocks_overflow_zfoiakgFjhncFgz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_zfoiakgFjhncFgz
	jmp	.L_16_blocks_ok_zfoiakgFjhncFgz_BCM_4

.L_16_blocks_overflow_zfoiakgFjhncFgz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_zfoiakgFjhncFgz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ECBllyApvBoFquD
	jl	.L_small_initial_partial_block_ECBllyApvBoFquD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ECBllyApvBoFquD
	jmp	.L_small_initial_compute_done_ECBllyApvBoFquD_BCM_4
.L_small_initial_partial_block_ECBllyApvBoFquD_BCM_4:

# 56688 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ECBllyApvBoFquD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ECBllyApvBoFquD
	je	.L_after_reduction_ECBllyApvBoFquD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ECBllyApvBoFquD_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_14_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_boaouDrBeEmAnwp
	jae	.L_16_blocks_overflow_boaouDrBeEmAnwp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_boaouDrBeEmAnwp
	jmp	.L_16_blocks_ok_boaouDrBeEmAnwp_BCM_4

.L_16_blocks_overflow_boaouDrBeEmAnwp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_boaouDrBeEmAnwp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CjBwxsGswEoCtpA
	jl	.L_small_initial_partial_block_CjBwxsGswEoCtpA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CjBwxsGswEoCtpA
	jmp	.L_small_initial_compute_done_CjBwxsGswEoCtpA_BCM_4
.L_small_initial_partial_block_CjBwxsGswEoCtpA_BCM_4:

# 56998 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CjBwxsGswEoCtpA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CjBwxsGswEoCtpA
	je	.L_after_reduction_CjBwxsGswEoCtpA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CjBwxsGswEoCtpA_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_15_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_mFdcfdxbaoeAcmw
	jae	.L_16_blocks_overflow_mFdcfdxbaoeAcmw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_mFdcfdxbaoeAcmw
	jmp	.L_16_blocks_ok_mFdcfdxbaoeAcmw_BCM_4

.L_16_blocks_overflow_mFdcfdxbaoeAcmw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_mFdcfdxbaoeAcmw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nkpoxiswyhgqlsf
	jl	.L_small_initial_partial_block_nkpoxiswyhgqlsf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nkpoxiswyhgqlsf
	jmp	.L_small_initial_compute_done_nkpoxiswyhgqlsf_BCM_4
.L_small_initial_partial_block_nkpoxiswyhgqlsf_BCM_4:

# 57315 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nkpoxiswyhgqlsf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nkpoxiswyhgqlsf
	je	.L_after_reduction_nkpoxiswyhgqlsf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nkpoxiswyhgqlsf_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_16_CpuqkplkrGqAlEE_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_dhDlEwplftmrFtf
	jae	.L_16_blocks_overflow_dhDlEwplftmrFtf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_dhDlEwplftmrFtf
	jmp	.L_16_blocks_ok_dhDlEwplftmrFtf_BCM_4

.L_16_blocks_overflow_dhDlEwplftmrFtf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_dhDlEwplftmrFtf_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_iuDhkykBcvvzBFb_BCM_4:

# 57562 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iuDhkykBcvvzBFb_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iuDhkykBcvvzBFb_BCM_4:

# WAS jmp .L_last_blocks_done_CpuqkplkrGqAlEE
	jmp	.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4
.L_last_num_blocks_is_0_CpuqkplkrGqAlEE_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CpuqkplkrGqAlEE_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_ralurfzeatcGxDF
	jmp	.L_ghash_done_ralurfzeatcGxDF_BCM_4
.L_encrypt_16_blocks_ralurfzeatcGxDF_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_FGbkcFatDxoofCE
	jae	.L_16_blocks_overflow_FGbkcFatDxoofCE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_FGbkcFatDxoofCE
	jmp	.L_16_blocks_ok_FGbkcFatDxoofCE_BCM_4
.L_16_blocks_overflow_FGbkcFatDxoofCE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_FGbkcFatDxoofCE_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_0_FesvdmtDyerGEdv_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_8_FesvdmtDyerGEdv_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_FesvdmtDyerGEdv
	jb	.L_last_num_blocks_is_7_1_FesvdmtDyerGEdv_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_12_FesvdmtDyerGEdv_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_FesvdmtDyerGEdv
	jb	.L_last_num_blocks_is_11_9_FesvdmtDyerGEdv_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_15_FesvdmtDyerGEdv_BCM_4
# WAS ja .L_last_num_blocks_is_16_FesvdmtDyerGEdv
	ja	.L_last_num_blocks_is_16_FesvdmtDyerGEdv_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_14_FesvdmtDyerGEdv_BCM_4
# WAS jmp .L_last_num_blocks_is_13_FesvdmtDyerGEdv
	jmp	.L_last_num_blocks_is_13_FesvdmtDyerGEdv_BCM_4

.L_last_num_blocks_is_11_9_FesvdmtDyerGEdv_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_10_FesvdmtDyerGEdv_BCM_4
# WAS ja .L_last_num_blocks_is_11_FesvdmtDyerGEdv
	ja	.L_last_num_blocks_is_11_FesvdmtDyerGEdv_BCM_4
# WAS jmp .L_last_num_blocks_is_9_FesvdmtDyerGEdv
	jmp	.L_last_num_blocks_is_9_FesvdmtDyerGEdv_BCM_4

.L_last_num_blocks_is_7_1_FesvdmtDyerGEdv_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_4_FesvdmtDyerGEdv_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_FesvdmtDyerGEdv
	jb	.L_last_num_blocks_is_3_1_FesvdmtDyerGEdv_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_FesvdmtDyerGEdv
	ja	.L_last_num_blocks_is_7_FesvdmtDyerGEdv_BCM_4
# WAS je .L_last_num_blocks_is_6_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_6_FesvdmtDyerGEdv_BCM_4
# WAS jmp .L_last_num_blocks_is_5_FesvdmtDyerGEdv
	jmp	.L_last_num_blocks_is_5_FesvdmtDyerGEdv_BCM_4

.L_last_num_blocks_is_3_1_FesvdmtDyerGEdv_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_FesvdmtDyerGEdv
	ja	.L_last_num_blocks_is_3_FesvdmtDyerGEdv_BCM_4
# WAS je .L_last_num_blocks_is_2_FesvdmtDyerGEdv
	je	.L_last_num_blocks_is_2_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_1_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_cmjbanhfxFrrojy
	jae	.L_16_blocks_overflow_cmjbanhfxFrrojy_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_cmjbanhfxFrrojy
	jmp	.L_16_blocks_ok_cmjbanhfxFrrojy_BCM_4

.L_16_blocks_overflow_cmjbanhfxFrrojy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_cmjbanhfxFrrojy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EGeAwrlgtsiFljf
	jl	.L_small_initial_partial_block_EGeAwrlgtsiFljf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EGeAwrlgtsiFljf
	jmp	.L_small_initial_compute_done_EGeAwrlgtsiFljf_BCM_4
.L_small_initial_partial_block_EGeAwrlgtsiFljf_BCM_4:

# 58157 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 58170 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_EGeAwrlgtsiFljf
	jmp	.L_after_reduction_EGeAwrlgtsiFljf_BCM_4
.L_small_initial_compute_done_EGeAwrlgtsiFljf_BCM_4:

.L_after_reduction_EGeAwrlgtsiFljf_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_2_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_EgjyoropybwcGcn
	jae	.L_16_blocks_overflow_EgjyoropybwcGcn_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_EgjyoropybwcGcn
	jmp	.L_16_blocks_ok_EgjyoropybwcGcn_BCM_4

.L_16_blocks_overflow_EgjyoropybwcGcn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_EgjyoropybwcGcn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rrppsiDyiwwbqbf
	jl	.L_small_initial_partial_block_rrppsiDyiwwbqbf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rrppsiDyiwwbqbf
	jmp	.L_small_initial_compute_done_rrppsiDyiwwbqbf_BCM_4
.L_small_initial_partial_block_rrppsiDyiwwbqbf_BCM_4:

# 58358 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rrppsiDyiwwbqbf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rrppsiDyiwwbqbf
	je	.L_after_reduction_rrppsiDyiwwbqbf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rrppsiDyiwwbqbf_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_3_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_wGGmGvscmpGfnny
	jae	.L_16_blocks_overflow_wGGmGvscmpGfnny_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_wGGmGvscmpGfnny
	jmp	.L_16_blocks_ok_wGGmGvscmpGfnny_BCM_4

.L_16_blocks_overflow_wGGmGvscmpGfnny_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_wGGmGvscmpGfnny_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pFvDrkCwqwAamnn
	jl	.L_small_initial_partial_block_pFvDrkCwqwAamnn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pFvDrkCwqwAamnn
	jmp	.L_small_initial_compute_done_pFvDrkCwqwAamnn_BCM_4
.L_small_initial_partial_block_pFvDrkCwqwAamnn_BCM_4:

# 58584 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pFvDrkCwqwAamnn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pFvDrkCwqwAamnn
	je	.L_after_reduction_pFvDrkCwqwAamnn_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pFvDrkCwqwAamnn_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_4_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_lnowafuogaacgct
	jae	.L_16_blocks_overflow_lnowafuogaacgct_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_lnowafuogaacgct
	jmp	.L_16_blocks_ok_lnowafuogaacgct_BCM_4

.L_16_blocks_overflow_lnowafuogaacgct_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_lnowafuogaacgct_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yqgqaEocfqiFkDi
	jl	.L_small_initial_partial_block_yqgqaEocfqiFkDi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yqgqaEocfqiFkDi
	jmp	.L_small_initial_compute_done_yqgqaEocfqiFkDi_BCM_4
.L_small_initial_partial_block_yqgqaEocfqiFkDi_BCM_4:

# 58809 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yqgqaEocfqiFkDi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yqgqaEocfqiFkDi
	je	.L_after_reduction_yqgqaEocfqiFkDi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yqgqaEocfqiFkDi_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_5_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_trmgpGgtzmsExiu
	jae	.L_16_blocks_overflow_trmgpGgtzmsExiu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_trmgpGgtzmsExiu
	jmp	.L_16_blocks_ok_trmgpGgtzmsExiu_BCM_4

.L_16_blocks_overflow_trmgpGgtzmsExiu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_trmgpGgtzmsExiu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vuyopzdEphdnacq
	jl	.L_small_initial_partial_block_vuyopzdEphdnacq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vuyopzdEphdnacq
	jmp	.L_small_initial_compute_done_vuyopzdEphdnacq_BCM_4
.L_small_initial_partial_block_vuyopzdEphdnacq_BCM_4:

# 59069 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vuyopzdEphdnacq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vuyopzdEphdnacq
	je	.L_after_reduction_vuyopzdEphdnacq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vuyopzdEphdnacq_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_6_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_FwaeBcDAewBtpAB
	jae	.L_16_blocks_overflow_FwaeBcDAewBtpAB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_FwaeBcDAewBtpAB
	jmp	.L_16_blocks_ok_FwaeBcDAewBtpAB_BCM_4

.L_16_blocks_overflow_FwaeBcDAewBtpAB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_FwaeBcDAewBtpAB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rdtAwwiDCCqmaAa
	jl	.L_small_initial_partial_block_rdtAwwiDCCqmaAa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rdtAwwiDCCqmaAa
	jmp	.L_small_initial_compute_done_rdtAwwiDCCqmaAa_BCM_4
.L_small_initial_partial_block_rdtAwwiDCCqmaAa_BCM_4:

# 59328 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rdtAwwiDCCqmaAa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rdtAwwiDCCqmaAa
	je	.L_after_reduction_rdtAwwiDCCqmaAa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rdtAwwiDCCqmaAa_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_7_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_AnyscuqxAspkzsl
	jae	.L_16_blocks_overflow_AnyscuqxAspkzsl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_AnyscuqxAspkzsl
	jmp	.L_16_blocks_ok_AnyscuqxAspkzsl_BCM_4

.L_16_blocks_overflow_AnyscuqxAspkzsl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_AnyscuqxAspkzsl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_digiiCypcjzldxx
	jl	.L_small_initial_partial_block_digiiCypcjzldxx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_digiiCypcjzldxx
	jmp	.L_small_initial_compute_done_digiiCypcjzldxx_BCM_4
.L_small_initial_partial_block_digiiCypcjzldxx_BCM_4:

# 59598 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_digiiCypcjzldxx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_digiiCypcjzldxx
	je	.L_after_reduction_digiiCypcjzldxx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_digiiCypcjzldxx_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_8_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_cgqpkbbBmprdEnv
	jae	.L_16_blocks_overflow_cgqpkbbBmprdEnv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_cgqpkbbBmprdEnv
	jmp	.L_16_blocks_ok_cgqpkbbBmprdEnv_BCM_4

.L_16_blocks_overflow_cgqpkbbBmprdEnv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_cgqpkbbBmprdEnv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sEakaptGjtmocyA
	jl	.L_small_initial_partial_block_sEakaptGjtmocyA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sEakaptGjtmocyA
	jmp	.L_small_initial_compute_done_sEakaptGjtmocyA_BCM_4
.L_small_initial_partial_block_sEakaptGjtmocyA_BCM_4:

# 59866 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sEakaptGjtmocyA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sEakaptGjtmocyA
	je	.L_after_reduction_sEakaptGjtmocyA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sEakaptGjtmocyA_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_9_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_ovcajrDEfpdjwcF
	jae	.L_16_blocks_overflow_ovcajrDEfpdjwcF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_ovcajrDEfpdjwcF
	jmp	.L_16_blocks_ok_ovcajrDEfpdjwcF_BCM_4

.L_16_blocks_overflow_ovcajrDEfpdjwcF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_ovcajrDEfpdjwcF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wwoArvEqahCsDin
	jl	.L_small_initial_partial_block_wwoArvEqahCsDin_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wwoArvEqahCsDin
	jmp	.L_small_initial_compute_done_wwoArvEqahCsDin_BCM_4
.L_small_initial_partial_block_wwoArvEqahCsDin_BCM_4:

# 60167 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wwoArvEqahCsDin_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wwoArvEqahCsDin
	je	.L_after_reduction_wwoArvEqahCsDin_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wwoArvEqahCsDin_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_10_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_xyisBwjDghCtkcq
	jae	.L_16_blocks_overflow_xyisBwjDghCtkcq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_xyisBwjDghCtkcq
	jmp	.L_16_blocks_ok_xyisBwjDghCtkcq_BCM_4

.L_16_blocks_overflow_xyisBwjDghCtkcq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_xyisBwjDghCtkcq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_maGzmchmgBAsGGp
	jl	.L_small_initial_partial_block_maGzmchmgBAsGGp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_maGzmchmgBAsGGp
	jmp	.L_small_initial_compute_done_maGzmchmgBAsGGp_BCM_4
.L_small_initial_partial_block_maGzmchmgBAsGGp_BCM_4:

# 60466 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_maGzmchmgBAsGGp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_maGzmchmgBAsGGp
	je	.L_after_reduction_maGzmchmgBAsGGp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_maGzmchmgBAsGGp_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_11_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_oCaueqhtnkiqikA
	jae	.L_16_blocks_overflow_oCaueqhtnkiqikA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_oCaueqhtnkiqikA
	jmp	.L_16_blocks_ok_oCaueqhtnkiqikA_BCM_4

.L_16_blocks_overflow_oCaueqhtnkiqikA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_oCaueqhtnkiqikA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rwuhidithmAtnfF
	jl	.L_small_initial_partial_block_rwuhidithmAtnfF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rwuhidithmAtnfF
	jmp	.L_small_initial_compute_done_rwuhidithmAtnfF_BCM_4
.L_small_initial_partial_block_rwuhidithmAtnfF_BCM_4:

# 60776 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rwuhidithmAtnfF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rwuhidithmAtnfF
	je	.L_after_reduction_rwuhidithmAtnfF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rwuhidithmAtnfF_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_12_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_xwjsvxAnBhmckaz
	jae	.L_16_blocks_overflow_xwjsvxAnBhmckaz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_xwjsvxAnBhmckaz
	jmp	.L_16_blocks_ok_xwjsvxAnBhmckaz_BCM_4

.L_16_blocks_overflow_xwjsvxAnBhmckaz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_xwjsvxAnBhmckaz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_glqGCCyiublvFga
	jl	.L_small_initial_partial_block_glqGCCyiublvFga_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_glqGCCyiublvFga
	jmp	.L_small_initial_compute_done_glqGCCyiublvFga_BCM_4
.L_small_initial_partial_block_glqGCCyiublvFga_BCM_4:

# 61080 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_glqGCCyiublvFga_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_glqGCCyiublvFga
	je	.L_after_reduction_glqGCCyiublvFga_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_glqGCCyiublvFga_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_13_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_jfgktdduAaBgqFv
	jae	.L_16_blocks_overflow_jfgktdduAaBgqFv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_jfgktdduAaBgqFv
	jmp	.L_16_blocks_ok_jfgktdduAaBgqFv_BCM_4

.L_16_blocks_overflow_jfgktdduAaBgqFv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_jfgktdduAaBgqFv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_deedxboGavqljAa
	jl	.L_small_initial_partial_block_deedxboGavqljAa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_deedxboGavqljAa
	jmp	.L_small_initial_compute_done_deedxboGavqljAa_BCM_4
.L_small_initial_partial_block_deedxboGavqljAa_BCM_4:

# 61417 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_deedxboGavqljAa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_deedxboGavqljAa
	je	.L_after_reduction_deedxboGavqljAa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_deedxboGavqljAa_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_14_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_xdtrxodfgwcifbm
	jae	.L_16_blocks_overflow_xdtrxodfgwcifbm_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_xdtrxodfgwcifbm
	jmp	.L_16_blocks_ok_xdtrxodfgwcifbm_BCM_4

.L_16_blocks_overflow_xdtrxodfgwcifbm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_xdtrxodfgwcifbm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lhfnbffaAGncxjA
	jl	.L_small_initial_partial_block_lhfnbffaAGncxjA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lhfnbffaAGncxjA
	jmp	.L_small_initial_compute_done_lhfnbffaAGncxjA_BCM_4
.L_small_initial_partial_block_lhfnbffaAGncxjA_BCM_4:

# 61748 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lhfnbffaAGncxjA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lhfnbffaAGncxjA
	je	.L_after_reduction_lhfnbffaAGncxjA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lhfnbffaAGncxjA_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_15_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_FrBtEqtdGyajfFu
	jae	.L_16_blocks_overflow_FrBtEqtdGyajfFu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_FrBtEqtdGyajfFu
	jmp	.L_16_blocks_ok_FrBtEqtdGyajfFu_BCM_4

.L_16_blocks_overflow_FrBtEqtdGyajfFu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_FrBtEqtdGyajfFu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DlintgAmylyraad
	jl	.L_small_initial_partial_block_DlintgAmylyraad_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DlintgAmylyraad
	jmp	.L_small_initial_compute_done_DlintgAmylyraad_BCM_4
.L_small_initial_partial_block_DlintgAmylyraad_BCM_4:

# 62090 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DlintgAmylyraad_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DlintgAmylyraad
	je	.L_after_reduction_DlintgAmylyraad_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DlintgAmylyraad_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_16_FesvdmtDyerGEdv_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_ofhxurlakbuiiab
	jae	.L_16_blocks_overflow_ofhxurlakbuiiab_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ofhxurlakbuiiab
	jmp	.L_16_blocks_ok_ofhxurlakbuiiab_BCM_4

.L_16_blocks_overflow_ofhxurlakbuiiab_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ofhxurlakbuiiab_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_niAfluBnEgrukbj_BCM_4:

# 62361 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_niAfluBnEgrukbj_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_niAfluBnEgrukbj_BCM_4:

# WAS jmp .L_last_blocks_done_FesvdmtDyerGEdv
	jmp	.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4
.L_last_num_blocks_is_0_FesvdmtDyerGEdv_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_FesvdmtDyerGEdv_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_ralurfzeatcGxDF
	jmp	.L_ghash_done_ralurfzeatcGxDF_BCM_4

.L_message_below_32_blocks_ralurfzeatcGxDF_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_BiAvfDwrflaDzBx
	jnz	.L_skip_hkeys_precomputation_BiAvfDwrflaDzBx_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_BiAvfDwrflaDzBx_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_pnzuldcucuyingq
	je	.L_last_num_blocks_is_0_pnzuldcucuyingq_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_pnzuldcucuyingq
	je	.L_last_num_blocks_is_8_pnzuldcucuyingq_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_pnzuldcucuyingq
	jb	.L_last_num_blocks_is_7_1_pnzuldcucuyingq_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_pnzuldcucuyingq
	je	.L_last_num_blocks_is_12_pnzuldcucuyingq_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_pnzuldcucuyingq
	jb	.L_last_num_blocks_is_11_9_pnzuldcucuyingq_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_pnzuldcucuyingq
	je	.L_last_num_blocks_is_15_pnzuldcucuyingq_BCM_4
# WAS ja .L_last_num_blocks_is_16_pnzuldcucuyingq
	ja	.L_last_num_blocks_is_16_pnzuldcucuyingq_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_pnzuldcucuyingq
	je	.L_last_num_blocks_is_14_pnzuldcucuyingq_BCM_4
# WAS jmp .L_last_num_blocks_is_13_pnzuldcucuyingq
	jmp	.L_last_num_blocks_is_13_pnzuldcucuyingq_BCM_4

.L_last_num_blocks_is_11_9_pnzuldcucuyingq_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_pnzuldcucuyingq
	je	.L_last_num_blocks_is_10_pnzuldcucuyingq_BCM_4
# WAS ja .L_last_num_blocks_is_11_pnzuldcucuyingq
	ja	.L_last_num_blocks_is_11_pnzuldcucuyingq_BCM_4
# WAS jmp .L_last_num_blocks_is_9_pnzuldcucuyingq
	jmp	.L_last_num_blocks_is_9_pnzuldcucuyingq_BCM_4

.L_last_num_blocks_is_7_1_pnzuldcucuyingq_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_pnzuldcucuyingq
	je	.L_last_num_blocks_is_4_pnzuldcucuyingq_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_pnzuldcucuyingq
	jb	.L_last_num_blocks_is_3_1_pnzuldcucuyingq_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_pnzuldcucuyingq
	ja	.L_last_num_blocks_is_7_pnzuldcucuyingq_BCM_4
# WAS je .L_last_num_blocks_is_6_pnzuldcucuyingq
	je	.L_last_num_blocks_is_6_pnzuldcucuyingq_BCM_4
# WAS jmp .L_last_num_blocks_is_5_pnzuldcucuyingq
	jmp	.L_last_num_blocks_is_5_pnzuldcucuyingq_BCM_4

.L_last_num_blocks_is_3_1_pnzuldcucuyingq_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_pnzuldcucuyingq
	ja	.L_last_num_blocks_is_3_pnzuldcucuyingq_BCM_4
# WAS je .L_last_num_blocks_is_2_pnzuldcucuyingq
	je	.L_last_num_blocks_is_2_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_1_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_zDsbocmrpEvnicC
	jae	.L_16_blocks_overflow_zDsbocmrpEvnicC_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_zDsbocmrpEvnicC
	jmp	.L_16_blocks_ok_zDsbocmrpEvnicC_BCM_4

.L_16_blocks_overflow_zDsbocmrpEvnicC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_zDsbocmrpEvnicC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GkBxoqrqufclksk
	jl	.L_small_initial_partial_block_GkBxoqrqufclksk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GkBxoqrqufclksk
	jmp	.L_small_initial_compute_done_GkBxoqrqufclksk_BCM_4
.L_small_initial_partial_block_GkBxoqrqufclksk_BCM_4:

# 62836 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 62877 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_GkBxoqrqufclksk
	jmp	.L_after_reduction_GkBxoqrqufclksk_BCM_4
.L_small_initial_compute_done_GkBxoqrqufclksk_BCM_4:

.L_after_reduction_GkBxoqrqufclksk_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_2_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_fkqtFBuohiwoapu
	jae	.L_16_blocks_overflow_fkqtFBuohiwoapu_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_fkqtFBuohiwoapu
	jmp	.L_16_blocks_ok_fkqtFBuohiwoapu_BCM_4

.L_16_blocks_overflow_fkqtFBuohiwoapu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_fkqtFBuohiwoapu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vxviotokbwbgyEt
	jl	.L_small_initial_partial_block_vxviotokbwbgyEt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vxviotokbwbgyEt
	jmp	.L_small_initial_compute_done_vxviotokbwbgyEt_BCM_4
.L_small_initial_partial_block_vxviotokbwbgyEt_BCM_4:

# 63044 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vxviotokbwbgyEt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vxviotokbwbgyEt
	je	.L_after_reduction_vxviotokbwbgyEt_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vxviotokbwbgyEt_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_3_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_myfxreEhmAEiFvd
	jae	.L_16_blocks_overflow_myfxreEhmAEiFvd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_myfxreEhmAEiFvd
	jmp	.L_16_blocks_ok_myfxreEhmAEiFvd_BCM_4

.L_16_blocks_overflow_myfxreEhmAEiFvd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_myfxreEhmAEiFvd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cvvlAqBdybFdjiy
	jl	.L_small_initial_partial_block_cvvlAqBdybFdjiy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cvvlAqBdybFdjiy
	jmp	.L_small_initial_compute_done_cvvlAqBdybFdjiy_BCM_4
.L_small_initial_partial_block_cvvlAqBdybFdjiy_BCM_4:

# 63251 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cvvlAqBdybFdjiy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cvvlAqBdybFdjiy
	je	.L_after_reduction_cvvlAqBdybFdjiy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cvvlAqBdybFdjiy_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_4_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_EshcbGrbbBjGmFs
	jae	.L_16_blocks_overflow_EshcbGrbbBjGmFs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_EshcbGrbbBjGmFs
	jmp	.L_16_blocks_ok_EshcbGrbbBjGmFs_BCM_4

.L_16_blocks_overflow_EshcbGrbbBjGmFs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_EshcbGrbbBjGmFs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GfeakfatCkpGtjm
	jl	.L_small_initial_partial_block_GfeakfatCkpGtjm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GfeakfatCkpGtjm
	jmp	.L_small_initial_compute_done_GfeakfatCkpGtjm_BCM_4
.L_small_initial_partial_block_GfeakfatCkpGtjm_BCM_4:

# 63458 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GfeakfatCkpGtjm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GfeakfatCkpGtjm
	je	.L_after_reduction_GfeakfatCkpGtjm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GfeakfatCkpGtjm_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_5_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_rBzncCcAACDmBwu
	jae	.L_16_blocks_overflow_rBzncCcAACDmBwu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_rBzncCcAACDmBwu
	jmp	.L_16_blocks_ok_rBzncCcAACDmBwu_BCM_4

.L_16_blocks_overflow_rBzncCcAACDmBwu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_rBzncCcAACDmBwu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %xmm29,%xmm3,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AstwCzCrFBsuGAb
	jl	.L_small_initial_partial_block_AstwCzCrFBsuGAb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AstwCzCrFBsuGAb
	jmp	.L_small_initial_compute_done_AstwCzCrFBsuGAb_BCM_4
.L_small_initial_partial_block_AstwCzCrFBsuGAb_BCM_4:

# 63696 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AstwCzCrFBsuGAb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AstwCzCrFBsuGAb
	je	.L_after_reduction_AstwCzCrFBsuGAb_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AstwCzCrFBsuGAb_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_6_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_yghnlDweoeGyiyD
	jae	.L_16_blocks_overflow_yghnlDweoeGyiyD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_yghnlDweoeGyiyD
	jmp	.L_16_blocks_ok_yghnlDweoeGyiyD_BCM_4

.L_16_blocks_overflow_yghnlDweoeGyiyD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_yghnlDweoeGyiyD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %ymm29,%ymm3,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nAqArzgnghAposf
	jl	.L_small_initial_partial_block_nAqArzgnghAposf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nAqArzgnghAposf
	jmp	.L_small_initial_compute_done_nAqArzgnghAposf_BCM_4
.L_small_initial_partial_block_nAqArzgnghAposf_BCM_4:

# 63934 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nAqArzgnghAposf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nAqArzgnghAposf
	je	.L_after_reduction_nAqArzgnghAposf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nAqArzgnghAposf_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_7_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_stoalvbzsyrkrBC
	jae	.L_16_blocks_overflow_stoalvbzsyrkrBC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_stoalvbzsyrkrBC
	jmp	.L_16_blocks_ok_stoalvbzsyrkrBC_BCM_4

.L_16_blocks_overflow_stoalvbzsyrkrBC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_stoalvbzsyrkrBC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tvAfmkadqFgykwd
	jl	.L_small_initial_partial_block_tvAfmkadqFgykwd_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tvAfmkadqFgykwd
	jmp	.L_small_initial_compute_done_tvAfmkadqFgykwd_BCM_4
.L_small_initial_partial_block_tvAfmkadqFgykwd_BCM_4:

# 64179 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tvAfmkadqFgykwd_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tvAfmkadqFgykwd
	je	.L_after_reduction_tvAfmkadqFgykwd_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tvAfmkadqFgykwd_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_8_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_miFDzcCBFGrssiv
	jae	.L_16_blocks_overflow_miFDzcCBFGrssiv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_miFDzcCBFGrssiv
	jmp	.L_16_blocks_ok_miFDzcCBFGrssiv_BCM_4

.L_16_blocks_overflow_miFDzcCBFGrssiv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_miFDzcCBFGrssiv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dnvdvgGCEkvixhc
	jl	.L_small_initial_partial_block_dnvdvgGCEkvixhc_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dnvdvgGCEkvixhc
	jmp	.L_small_initial_compute_done_dnvdvgGCEkvixhc_BCM_4
.L_small_initial_partial_block_dnvdvgGCEkvixhc_BCM_4:

# 64426 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dnvdvgGCEkvixhc_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dnvdvgGCEkvixhc
	je	.L_after_reduction_dnvdvgGCEkvixhc_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dnvdvgGCEkvixhc_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_9_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_lkCdskAdsidpkuw
	jae	.L_16_blocks_overflow_lkCdskAdsidpkuw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_lkCdskAdsidpkuw
	jmp	.L_16_blocks_ok_lkCdskAdsidpkuw_BCM_4

.L_16_blocks_overflow_lkCdskAdsidpkuw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_lkCdskAdsidpkuw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %xmm29,%xmm4,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BvuayrqCbqotfzl
	jl	.L_small_initial_partial_block_BvuayrqCbqotfzl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BvuayrqCbqotfzl
	jmp	.L_small_initial_compute_done_BvuayrqCbqotfzl_BCM_4
.L_small_initial_partial_block_BvuayrqCbqotfzl_BCM_4:

# 64702 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BvuayrqCbqotfzl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BvuayrqCbqotfzl
	je	.L_after_reduction_BvuayrqCbqotfzl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BvuayrqCbqotfzl_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_10_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_hktAeBlvDcCnios
	jae	.L_16_blocks_overflow_hktAeBlvDcCnios_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_hktAeBlvDcCnios
	jmp	.L_16_blocks_ok_hktAeBlvDcCnios_BCM_4

.L_16_blocks_overflow_hktAeBlvDcCnios_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_hktAeBlvDcCnios_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %ymm29,%ymm4,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qDkapAwwDbttzcj
	jl	.L_small_initial_partial_block_qDkapAwwDbttzcj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qDkapAwwDbttzcj
	jmp	.L_small_initial_compute_done_qDkapAwwDbttzcj_BCM_4
.L_small_initial_partial_block_qDkapAwwDbttzcj_BCM_4:

# 64980 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qDkapAwwDbttzcj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qDkapAwwDbttzcj
	je	.L_after_reduction_qDkapAwwDbttzcj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qDkapAwwDbttzcj_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_11_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_bblFcfwEgdzswCm
	jae	.L_16_blocks_overflow_bblFcfwEgdzswCm_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_bblFcfwEgdzswCm
	jmp	.L_16_blocks_ok_bblFcfwEgdzswCm_BCM_4

.L_16_blocks_overflow_bblFcfwEgdzswCm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_bblFcfwEgdzswCm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hxkcdbddneddmzb
	jl	.L_small_initial_partial_block_hxkcdbddneddmzb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hxkcdbddneddmzb
	jmp	.L_small_initial_compute_done_hxkcdbddneddmzb_BCM_4
.L_small_initial_partial_block_hxkcdbddneddmzb_BCM_4:

# 65265 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hxkcdbddneddmzb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hxkcdbddneddmzb
	je	.L_after_reduction_hxkcdbddneddmzb_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hxkcdbddneddmzb_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_12_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_qmmgmehghErCGvF
	jae	.L_16_blocks_overflow_qmmgmehghErCGvF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_qmmgmehghErCGvF
	jmp	.L_16_blocks_ok_qmmgmehghErCGvF_BCM_4

.L_16_blocks_overflow_qmmgmehghErCGvF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_qmmgmehghErCGvF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bGACCFiDoxkcuwq
	jl	.L_small_initial_partial_block_bGACCFiDoxkcuwq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bGACCFiDoxkcuwq
	jmp	.L_small_initial_compute_done_bGACCFiDoxkcuwq_BCM_4
.L_small_initial_partial_block_bGACCFiDoxkcuwq_BCM_4:

# 65548 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bGACCFiDoxkcuwq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bGACCFiDoxkcuwq
	je	.L_after_reduction_bGACCFiDoxkcuwq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bGACCFiDoxkcuwq_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_13_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_dulzkutdgjakGvB
	jae	.L_16_blocks_overflow_dulzkutdgjakGvB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_dulzkutdgjakGvB
	jmp	.L_16_blocks_ok_dulzkutdgjakGvB_BCM_4

.L_16_blocks_overflow_dulzkutdgjakGvB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_dulzkutdgjakGvB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %xmm29,%xmm5,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dmbcxBEdtigsClF
	jl	.L_small_initial_partial_block_dmbcxBEdtigsClF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dmbcxBEdtigsClF
	jmp	.L_small_initial_compute_done_dmbcxBEdtigsClF_BCM_4
.L_small_initial_partial_block_dmbcxBEdtigsClF_BCM_4:

# 65860 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dmbcxBEdtigsClF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dmbcxBEdtigsClF
	je	.L_after_reduction_dmbcxBEdtigsClF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dmbcxBEdtigsClF_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_14_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_nntbrGkellunBas
	jae	.L_16_blocks_overflow_nntbrGkellunBas_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_nntbrGkellunBas
	jmp	.L_16_blocks_ok_nntbrGkellunBas_BCM_4

.L_16_blocks_overflow_nntbrGkellunBas_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_nntbrGkellunBas_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %ymm29,%ymm5,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aopDguzqabquECi
	jl	.L_small_initial_partial_block_aopDguzqabquECi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aopDguzqabquECi
	jmp	.L_small_initial_compute_done_aopDguzqabquECi_BCM_4
.L_small_initial_partial_block_aopDguzqabquECi_BCM_4:

# 66170 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aopDguzqabquECi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aopDguzqabquECi
	je	.L_after_reduction_aopDguzqabquECi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aopDguzqabquECi_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_15_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_gqGDtzmCceFkfal
	jae	.L_16_blocks_overflow_gqGDtzmCceFkfal_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_gqGDtzmCceFkfal
	jmp	.L_16_blocks_ok_gqGDtzmCceFkfal_BCM_4

.L_16_blocks_overflow_gqGDtzmCceFkfal_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_gqGDtzmCceFkfal_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kkvugeyiFsBldFy
	jl	.L_small_initial_partial_block_kkvugeyiFsBldFy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kkvugeyiFsBldFy
	jmp	.L_small_initial_compute_done_kkvugeyiFsBldFy_BCM_4
.L_small_initial_partial_block_kkvugeyiFsBldFy_BCM_4:

# 66487 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kkvugeyiFsBldFy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kkvugeyiFsBldFy
	je	.L_after_reduction_kkvugeyiFsBldFy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kkvugeyiFsBldFy_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_16_pnzuldcucuyingq_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_nnArmAxpgvlqCpA
	jae	.L_16_blocks_overflow_nnArmAxpgvlqCpA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_nnArmAxpgvlqCpA
	jmp	.L_16_blocks_ok_nnArmAxpgvlqCpA_BCM_4

.L_16_blocks_overflow_nnArmAxpgvlqCpA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_nnArmAxpgvlqCpA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm17
 vpshufb %zmm29,%zmm3,%zmm19
 vpshufb %zmm29,%zmm4,%zmm20
 vpshufb %zmm29,%zmm5,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_uqdvluxFgGqdFqv_BCM_4:

# 66734 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uqdvluxFgGqdFqv_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_uqdvluxFgGqdFqv_BCM_4:

# WAS jmp .L_last_blocks_done_pnzuldcucuyingq
	jmp	.L_last_blocks_done_pnzuldcucuyingq_BCM_4
.L_last_num_blocks_is_0_pnzuldcucuyingq_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_pnzuldcucuyingq_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_ralurfzeatcGxDF
	jmp	.L_ghash_done_ralurfzeatcGxDF_BCM_4

.L_message_below_equal_16_blocks_ralurfzeatcGxDF_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_8_hdjaAabmubhzgrE_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_hdjaAabmubhzgrE
	jl	.L_small_initial_num_blocks_is_7_1_hdjaAabmubhzgrE_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_12_hdjaAabmubhzgrE_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_hdjaAabmubhzgrE
	jl	.L_small_initial_num_blocks_is_11_9_hdjaAabmubhzgrE_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_16_hdjaAabmubhzgrE_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_15_hdjaAabmubhzgrE_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_14_hdjaAabmubhzgrE_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_hdjaAabmubhzgrE
	jmp	.L_small_initial_num_blocks_is_13_hdjaAabmubhzgrE_BCM_4

.L_small_initial_num_blocks_is_11_9_hdjaAabmubhzgrE_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_11_hdjaAabmubhzgrE_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_10_hdjaAabmubhzgrE_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_hdjaAabmubhzgrE
	jmp	.L_small_initial_num_blocks_is_9_hdjaAabmubhzgrE_BCM_4

.L_small_initial_num_blocks_is_7_1_hdjaAabmubhzgrE_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_4_hdjaAabmubhzgrE_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_hdjaAabmubhzgrE
	jl	.L_small_initial_num_blocks_is_3_1_hdjaAabmubhzgrE_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_7_hdjaAabmubhzgrE_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_6_hdjaAabmubhzgrE_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_hdjaAabmubhzgrE
	jmp	.L_small_initial_num_blocks_is_5_hdjaAabmubhzgrE_BCM_4

.L_small_initial_num_blocks_is_3_1_hdjaAabmubhzgrE_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_3_hdjaAabmubhzgrE_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_hdjaAabmubhzgrE
	je	.L_small_initial_num_blocks_is_2_hdjaAabmubhzgrE_BCM_4





.L_small_initial_num_blocks_is_1_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm0,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_oglzypDCtpAhyGa
	jl	.L_small_initial_partial_block_oglzypDCtpAhyGa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_oglzypDCtpAhyGa
	jmp	.L_small_initial_compute_done_oglzypDCtpAhyGa_BCM_4
.L_small_initial_partial_block_oglzypDCtpAhyGa_BCM_4:

# 67020 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 67033 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_oglzypDCtpAhyGa
	jmp	.L_after_reduction_oglzypDCtpAhyGa_BCM_4
.L_small_initial_compute_done_oglzypDCtpAhyGa_BCM_4:

.L_after_reduction_oglzypDCtpAhyGa_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_2_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm0,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mwbBGGvalpfhfnw
	jl	.L_small_initial_partial_block_mwbBGGvalpfhfnw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mwbBGGvalpfhfnw
	jmp	.L_small_initial_compute_done_mwbBGGvalpfhfnw_BCM_4
.L_small_initial_partial_block_mwbBGGvalpfhfnw_BCM_4:

# 67143 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mwbBGGvalpfhfnw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mwbBGGvalpfhfnw
	je	.L_after_reduction_mwbBGGvalpfhfnw_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_mwbBGGvalpfhfnw_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_3_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_njdmEDjqDqutzfl
	jl	.L_small_initial_partial_block_njdmEDjqDqutzfl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_njdmEDjqDqutzfl
	jmp	.L_small_initial_compute_done_njdmEDjqDqutzfl_BCM_4
.L_small_initial_partial_block_njdmEDjqDqutzfl_BCM_4:

# 67291 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_njdmEDjqDqutzfl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_njdmEDjqDqutzfl
	je	.L_after_reduction_njdmEDjqDqutzfl_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_njdmEDjqDqutzfl_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_4_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EsFwhCqwxAhrvFa
	jl	.L_small_initial_partial_block_EsFwhCqwxAhrvFa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EsFwhCqwxAhrvFa
	jmp	.L_small_initial_compute_done_EsFwhCqwxAhrvFa_BCM_4
.L_small_initial_partial_block_EsFwhCqwxAhrvFa_BCM_4:

# 67438 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EsFwhCqwxAhrvFa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EsFwhCqwxAhrvFa
	je	.L_after_reduction_EsFwhCqwxAhrvFa_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_EsFwhCqwxAhrvFa_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_5_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %xmm29,%xmm3,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aiubnzDkbAjBaGt
	jl	.L_small_initial_partial_block_aiubnzDkbAjBaGt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aiubnzDkbAjBaGt
	jmp	.L_small_initial_compute_done_aiubnzDkbAjBaGt_BCM_4
.L_small_initial_partial_block_aiubnzDkbAjBaGt_BCM_4:

# 67618 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aiubnzDkbAjBaGt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aiubnzDkbAjBaGt
	je	.L_after_reduction_aiubnzDkbAjBaGt_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_aiubnzDkbAjBaGt_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_6_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %ymm29,%ymm3,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GodgzzxioGrdAeg
	jl	.L_small_initial_partial_block_GodgzzxioGrdAeg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GodgzzxioGrdAeg
	jmp	.L_small_initial_compute_done_GodgzzxioGrdAeg_BCM_4
.L_small_initial_partial_block_GodgzzxioGrdAeg_BCM_4:

# 67797 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GodgzzxioGrdAeg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GodgzzxioGrdAeg
	je	.L_after_reduction_GodgzzxioGrdAeg_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_GodgzzxioGrdAeg_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_7_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jmqmzBeujCAjAxl
	jl	.L_small_initial_partial_block_jmqmzBeujCAjAxl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jmqmzBeujCAjAxl
	jmp	.L_small_initial_compute_done_jmqmzBeujCAjAxl_BCM_4
.L_small_initial_partial_block_jmqmzBeujCAjAxl_BCM_4:

# 67987 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jmqmzBeujCAjAxl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jmqmzBeujCAjAxl
	je	.L_after_reduction_jmqmzBeujCAjAxl_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_jmqmzBeujCAjAxl_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_8_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lGwzbjEigiuyrxp
	jl	.L_small_initial_partial_block_lGwzbjEigiuyrxp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lGwzbjEigiuyrxp
	jmp	.L_small_initial_compute_done_lGwzbjEigiuyrxp_BCM_4
.L_small_initial_partial_block_lGwzbjEigiuyrxp_BCM_4:

# 68175 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lGwzbjEigiuyrxp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lGwzbjEigiuyrxp
	je	.L_after_reduction_lGwzbjEigiuyrxp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_lGwzbjEigiuyrxp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_9_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %xmm29,%xmm4,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wtbpkxoFvlcvhkk
	jl	.L_small_initial_partial_block_wtbpkxoFvlcvhkk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wtbpkxoFvlcvhkk
	jmp	.L_small_initial_compute_done_wtbpkxoFvlcvhkk_BCM_4
.L_small_initial_partial_block_wtbpkxoFvlcvhkk_BCM_4:

# 68395 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wtbpkxoFvlcvhkk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wtbpkxoFvlcvhkk
	je	.L_after_reduction_wtbpkxoFvlcvhkk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_wtbpkxoFvlcvhkk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_10_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %ymm29,%ymm4,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zDgaEerElzafAjF
	jl	.L_small_initial_partial_block_zDgaEerElzafAjF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zDgaEerElzafAjF
	jmp	.L_small_initial_compute_done_zDgaEerElzafAjF_BCM_4
.L_small_initial_partial_block_zDgaEerElzafAjF_BCM_4:

# 68613 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zDgaEerElzafAjF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zDgaEerElzafAjF
	je	.L_after_reduction_zDgaEerElzafAjF_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_zDgaEerElzafAjF_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_11_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BrkzfboGqlhyAvb
	jl	.L_small_initial_partial_block_BrkzfboGqlhyAvb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BrkzfboGqlhyAvb
	jmp	.L_small_initial_compute_done_BrkzfboGqlhyAvb_BCM_4
.L_small_initial_partial_block_BrkzfboGqlhyAvb_BCM_4:

# 68842 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BrkzfboGqlhyAvb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BrkzfboGqlhyAvb
	je	.L_after_reduction_BrkzfboGqlhyAvb_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_BrkzfboGqlhyAvb_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_12_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wBuxadGqDBDeard
	jl	.L_small_initial_partial_block_wBuxadGqDBDeard_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wBuxadGqDBDeard
	jmp	.L_small_initial_compute_done_wBuxadGqDBDeard_BCM_4
.L_small_initial_partial_block_wBuxadGqDBDeard_BCM_4:

# 69065 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wBuxadGqDBDeard_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wBuxadGqDBDeard
	je	.L_after_reduction_wBuxadGqDBDeard_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_wBuxadGqDBDeard_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_13_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %xmm29,%xmm5,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_koBzdarsEboqwan
	jl	.L_small_initial_partial_block_koBzdarsEboqwan_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_koBzdarsEboqwan
	jmp	.L_small_initial_compute_done_koBzdarsEboqwan_BCM_4
.L_small_initial_partial_block_koBzdarsEboqwan_BCM_4:

# 69320 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_koBzdarsEboqwan_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_koBzdarsEboqwan
	je	.L_after_reduction_koBzdarsEboqwan_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_koBzdarsEboqwan_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_14_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %ymm29,%ymm5,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EhgwDyGvdzvgvtp
	jl	.L_small_initial_partial_block_EhgwDyGvdzvgvtp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EhgwDyGvdzvgvtp
	jmp	.L_small_initial_compute_done_EhgwDyGvdzvgvtp_BCM_4
.L_small_initial_partial_block_EhgwDyGvdzvgvtp_BCM_4:

# 69569 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EhgwDyGvdzvgvtp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EhgwDyGvdzvgvtp
	je	.L_after_reduction_EhgwDyGvdzvgvtp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_EhgwDyGvdzvgvtp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_15_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dguvDqtayFqucCq
	jl	.L_small_initial_partial_block_dguvDqtayFqucCq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dguvDqtayFqucCq
	jmp	.L_small_initial_compute_done_dguvDqtayFqucCq_BCM_4
.L_small_initial_partial_block_dguvDqtayFqucCq_BCM_4:

# 69829 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dguvDqtayFqucCq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dguvDqtayFqucCq
	je	.L_after_reduction_dguvDqtayFqucCq_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_dguvDqtayFqucCq_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_hdjaAabmubhzgrE
	jmp	.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4
.L_small_initial_num_blocks_is_16_hdjaAabmubhzgrE_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm0,%zmm6
 vpshufb %zmm29,%zmm3,%zmm7
 vpshufb %zmm29,%zmm4,%zmm10
 vpshufb %zmm29,%zmm5,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_mlladecCGcaEame_BCM_4:

# 70018 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mlladecCGcaEame_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_mlladecCGcaEame_BCM_4:

.L_small_initial_blocks_encrypted_hdjaAabmubhzgrE_BCM_4:

.L_ghash_done_ralurfzeatcGxDF_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_ralurfzeatcGxDF_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_ralurfzeatcGxDF_BCM_4:

# WAS jmp .Lexit_gcm_encrypt
	jmp	.Lexit_gcm_encrypt_BCM_4
.Lexit_gcm_encrypt_BCM_4:

 cmpq $256,%r8
# WAS jbe .Lskip_hkeys_cleanup_cccrurCdlggtEnk
	jbe	.Lskip_hkeys_cleanup_cccrurCdlggtEnk_BCM_4
 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %zmm0,0(%rsp)
 vmovdqa64 %zmm0,64(%rsp)
 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)
 vmovdqa64 %zmm0,320(%rsp)
 vmovdqa64 %zmm0,384(%rsp)
 vmovdqa64 %zmm0,448(%rsp)
 vmovdqa64 %zmm0,512(%rsp)
 vmovdqa64 %zmm0,576(%rsp)
 vmovdqa64 %zmm0,640(%rsp)
 vmovdqa64 %zmm0,704(%rsp)
.Lskip_hkeys_cleanup_cccrurCdlggtEnk_BCM_4:

 vzeroupper
 leaq (%rbp),%rsp
.cfi_def_cfa_register %rsp
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
 .byte 0xf3,0xc3
.Lencrypt_seh_end_BCM_4:

.cfi_endproc
.size aes_gcm_encrypt_avx512, .-aes_gcm_encrypt_avx512
.globl aes_gcm_decrypt_avx512
.hidden aes_gcm_decrypt_avx512
.type aes_gcm_decrypt_avx512,@function
.align 32
.Laes_gcm_decrypt_avx512_local_target:
aes_gcm_decrypt_avx512:
.cfi_startproc
.Ldecrypt_seh_begin_BCM_4:

.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
.Ldecrypt_seh_push_rbx_BCM_4:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
.Ldecrypt_seh_push_rbp_BCM_4:

 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
.Ldecrypt_seh_push_r12_BCM_4:

 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
.Ldecrypt_seh_push_r13_BCM_4:

 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
.Ldecrypt_seh_push_r14_BCM_4:

 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Ldecrypt_seh_push_r15_BCM_4:

# 70175 "aesni-gcm-avx512.S"
 leaq 0(%rsp),%rbp
.cfi_def_cfa_register %rbp
.Ldecrypt_seh_setfp_BCM_4:


.Ldecrypt_seh_prolog_end_BCM_4:

 subq $1588,%rsp
 andq $(-64),%rsp


 movl 240(%rdi),%eax
 cmpl $9,%eax
# WAS je .Laes_gcm_decrypt_128_avx512
	je	.Laes_gcm_decrypt_128_avx512_BCM_4
 cmpl $11,%eax
# WAS je .Laes_gcm_decrypt_192_avx512
	je	.Laes_gcm_decrypt_192_avx512_BCM_4
 cmpl $13,%eax
# WAS je .Laes_gcm_decrypt_256_avx512
	je	.Laes_gcm_decrypt_256_avx512_BCM_4
 xorl %eax,%eax
# WAS jmp .Lexit_gcm_decrypt
	jmp	.Lexit_gcm_decrypt_BCM_4
.align 32
.Laes_gcm_decrypt_128_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_icBhFhCkojGgnBc
	je	.L_enc_dec_abort_icBhFhCkojGgnBc_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_Cwuafefseqcgife
	je	.L_partial_block_done_Cwuafefseqcgife_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3

 vmovdqa64 %xmm0,%xmm6
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_Cwuafefseqcgife
	jge	.L_no_extra_mask_Cwuafefseqcgife_BCM_4
 subq %r13,%r12
.L_no_extra_mask_Cwuafefseqcgife_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
 vpand %xmm0,%xmm6,%xmm6
# WAS vpshufb SHUF_MASK(%rip),%xmm6,%xmm6
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm6, %xmm6
 vpshufb %xmm5,%xmm6,%xmm6
 vpxorq %xmm6,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_Cwuafefseqcgife
	jl	.L_partial_incomplete_Cwuafefseqcgife_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_Cwuafefseqcgife
	jmp	.L_enc_dec_done_Cwuafefseqcgife_BCM_4

.L_partial_incomplete_Cwuafefseqcgife_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_Cwuafefseqcgife_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_Cwuafefseqcgife_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_icBhFhCkojGgnBc
	je	.L_enc_dec_done_icBhFhCkojGgnBc_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_icBhFhCkojGgnBc
	jbe	.L_message_below_equal_16_blocks_icBhFhCkojGgnBc_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_DkBvliAEspzoabf
	jae	.L_next_16_overflow_DkBvliAEspzoabf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_DkBvliAEspzoabf
	jmp	.L_next_16_ok_DkBvliAEspzoabf_BCM_4
.L_next_16_overflow_DkBvliAEspzoabf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_DkBvliAEspzoabf_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_yDAnEECuuGxfwvr
	jnz	.L_skip_hkeys_precomputation_yDAnEECuuGxfwvr_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_yDAnEECuuGxfwvr_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_icBhFhCkojGgnBc
	jb	.L_message_below_32_blocks_icBhFhCkojGgnBc_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_lgmzdneusufrFmr
	jae	.L_next_16_overflow_lgmzdneusufrFmr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_lgmzdneusufrFmr
	jmp	.L_next_16_ok_lgmzdneusufrFmr_BCM_4
.L_next_16_overflow_lgmzdneusufrFmr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_lgmzdneusufrFmr_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_ecaeaEFhspgwivG
	jnz	.L_skip_hkeys_precomputation_ecaeaEFhspgwivG_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_ecaeaEFhspgwivG_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_icBhFhCkojGgnBc
	jb	.L_no_more_big_nblocks_icBhFhCkojGgnBc_BCM_4
.L_encrypt_big_nblocks_icBhFhCkojGgnBc_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_ApzaumldtosGeir
	jae	.L_16_blocks_overflow_ApzaumldtosGeir_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ApzaumldtosGeir
	jmp	.L_16_blocks_ok_ApzaumldtosGeir_BCM_4
.L_16_blocks_overflow_ApzaumldtosGeir_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ApzaumldtosGeir_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_ubdpEpmjBbFwdEm
	jae	.L_16_blocks_overflow_ubdpEpmjBbFwdEm_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ubdpEpmjBbFwdEm
	jmp	.L_16_blocks_ok_ubdpEpmjBbFwdEm_BCM_4
.L_16_blocks_overflow_ubdpEpmjBbFwdEm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ubdpEpmjBbFwdEm_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_EdBasfawgBetkCB
	jae	.L_16_blocks_overflow_EdBasfawgBetkCB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_EdBasfawgBetkCB
	jmp	.L_16_blocks_ok_EdBasfawgBetkCB_BCM_4
.L_16_blocks_overflow_EdBasfawgBetkCB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_EdBasfawgBetkCB_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_icBhFhCkojGgnBc
	jae	.L_encrypt_big_nblocks_icBhFhCkojGgnBc_BCM_4

.L_no_more_big_nblocks_icBhFhCkojGgnBc_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_icBhFhCkojGgnBc
	jae	.L_encrypt_32_blocks_icBhFhCkojGgnBc_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_icBhFhCkojGgnBc
	jae	.L_encrypt_16_blocks_icBhFhCkojGgnBc_BCM_4
.L_encrypt_0_blocks_ghash_32_icBhFhCkojGgnBc_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_0_lGwozrmByuyygbo_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_8_lGwozrmByuyygbo_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_lGwozrmByuyygbo
	jb	.L_last_num_blocks_is_7_1_lGwozrmByuyygbo_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_12_lGwozrmByuyygbo_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_lGwozrmByuyygbo
	jb	.L_last_num_blocks_is_11_9_lGwozrmByuyygbo_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_15_lGwozrmByuyygbo_BCM_4
# WAS ja .L_last_num_blocks_is_16_lGwozrmByuyygbo
	ja	.L_last_num_blocks_is_16_lGwozrmByuyygbo_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_14_lGwozrmByuyygbo_BCM_4
# WAS jmp .L_last_num_blocks_is_13_lGwozrmByuyygbo
	jmp	.L_last_num_blocks_is_13_lGwozrmByuyygbo_BCM_4

.L_last_num_blocks_is_11_9_lGwozrmByuyygbo_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_10_lGwozrmByuyygbo_BCM_4
# WAS ja .L_last_num_blocks_is_11_lGwozrmByuyygbo
	ja	.L_last_num_blocks_is_11_lGwozrmByuyygbo_BCM_4
# WAS jmp .L_last_num_blocks_is_9_lGwozrmByuyygbo
	jmp	.L_last_num_blocks_is_9_lGwozrmByuyygbo_BCM_4

.L_last_num_blocks_is_7_1_lGwozrmByuyygbo_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_4_lGwozrmByuyygbo_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_lGwozrmByuyygbo
	jb	.L_last_num_blocks_is_3_1_lGwozrmByuyygbo_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_lGwozrmByuyygbo
	ja	.L_last_num_blocks_is_7_lGwozrmByuyygbo_BCM_4
# WAS je .L_last_num_blocks_is_6_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_6_lGwozrmByuyygbo_BCM_4
# WAS jmp .L_last_num_blocks_is_5_lGwozrmByuyygbo
	jmp	.L_last_num_blocks_is_5_lGwozrmByuyygbo_BCM_4

.L_last_num_blocks_is_3_1_lGwozrmByuyygbo_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_lGwozrmByuyygbo
	ja	.L_last_num_blocks_is_3_lGwozrmByuyygbo_BCM_4
# WAS je .L_last_num_blocks_is_2_lGwozrmByuyygbo
	je	.L_last_num_blocks_is_2_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_1_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_lClAAkfGiaxqtqb
	jae	.L_16_blocks_overflow_lClAAkfGiaxqtqb_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_lClAAkfGiaxqtqb
	jmp	.L_16_blocks_ok_lClAAkfGiaxqtqb_BCM_4

.L_16_blocks_overflow_lClAAkfGiaxqtqb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_lClAAkfGiaxqtqb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AljhFopbDmohEEm
	jl	.L_small_initial_partial_block_AljhFopbDmohEEm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AljhFopbDmohEEm
	jmp	.L_small_initial_compute_done_AljhFopbDmohEEm_BCM_4
.L_small_initial_partial_block_AljhFopbDmohEEm_BCM_4:

# 71627 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 71668 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_AljhFopbDmohEEm
	jmp	.L_after_reduction_AljhFopbDmohEEm_BCM_4
.L_small_initial_compute_done_AljhFopbDmohEEm_BCM_4:

.L_after_reduction_AljhFopbDmohEEm_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_2_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_dxfcclgCzfhujoB
	jae	.L_16_blocks_overflow_dxfcclgCzfhujoB_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_dxfcclgCzfhujoB
	jmp	.L_16_blocks_ok_dxfcclgCzfhujoB_BCM_4

.L_16_blocks_overflow_dxfcclgCzfhujoB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_dxfcclgCzfhujoB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mhEghxGxhmrFGgF
	jl	.L_small_initial_partial_block_mhEghxGxhmrFGgF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mhEghxGxhmrFGgF
	jmp	.L_small_initial_compute_done_mhEghxGxhmrFGgF_BCM_4
.L_small_initial_partial_block_mhEghxGxhmrFGgF_BCM_4:

# 71827 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mhEghxGxhmrFGgF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mhEghxGxhmrFGgF
	je	.L_after_reduction_mhEghxGxhmrFGgF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mhEghxGxhmrFGgF_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_3_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_GzfdDtolkqgqFel
	jae	.L_16_blocks_overflow_GzfdDtolkqgqFel_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_GzfdDtolkqgqFel
	jmp	.L_16_blocks_ok_GzfdDtolkqgqFel_BCM_4

.L_16_blocks_overflow_GzfdDtolkqgqFel_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_GzfdDtolkqgqFel_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qwrgpmqrxkxvCzs
	jl	.L_small_initial_partial_block_qwrgpmqrxkxvCzs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qwrgpmqrxkxvCzs
	jmp	.L_small_initial_compute_done_qwrgpmqrxkxvCzs_BCM_4
.L_small_initial_partial_block_qwrgpmqrxkxvCzs_BCM_4:

# 72026 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qwrgpmqrxkxvCzs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qwrgpmqrxkxvCzs
	je	.L_after_reduction_qwrgpmqrxkxvCzs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qwrgpmqrxkxvCzs_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_4_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_tFlldonsxgiBeEi
	jae	.L_16_blocks_overflow_tFlldonsxgiBeEi_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_tFlldonsxgiBeEi
	jmp	.L_16_blocks_ok_tFlldonsxgiBeEi_BCM_4

.L_16_blocks_overflow_tFlldonsxgiBeEi_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_tFlldonsxgiBeEi_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gDoehbqfcmrseCg
	jl	.L_small_initial_partial_block_gDoehbqfcmrseCg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gDoehbqfcmrseCg
	jmp	.L_small_initial_compute_done_gDoehbqfcmrseCg_BCM_4
.L_small_initial_partial_block_gDoehbqfcmrseCg_BCM_4:

# 72225 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gDoehbqfcmrseCg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gDoehbqfcmrseCg
	je	.L_after_reduction_gDoehbqfcmrseCg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gDoehbqfcmrseCg_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_5_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_lAbhcGDwivukqtE
	jae	.L_16_blocks_overflow_lAbhcGDwivukqtE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_lAbhcGDwivukqtE
	jmp	.L_16_blocks_ok_lAbhcGDwivukqtE_BCM_4

.L_16_blocks_overflow_lAbhcGDwivukqtE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_lAbhcGDwivukqtE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ewowyEuhltFopkj
	jl	.L_small_initial_partial_block_ewowyEuhltFopkj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ewowyEuhltFopkj
	jmp	.L_small_initial_compute_done_ewowyEuhltFopkj_BCM_4
.L_small_initial_partial_block_ewowyEuhltFopkj_BCM_4:

# 72451 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ewowyEuhltFopkj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ewowyEuhltFopkj
	je	.L_after_reduction_ewowyEuhltFopkj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ewowyEuhltFopkj_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_6_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_xsoFcrclantxpei
	jae	.L_16_blocks_overflow_xsoFcrclantxpei_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_xsoFcrclantxpei
	jmp	.L_16_blocks_ok_xsoFcrclantxpei_BCM_4

.L_16_blocks_overflow_xsoFcrclantxpei_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_xsoFcrclantxpei_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lzfnkiFifvcmjit
	jl	.L_small_initial_partial_block_lzfnkiFifvcmjit_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lzfnkiFifvcmjit
	jmp	.L_small_initial_compute_done_lzfnkiFifvcmjit_BCM_4
.L_small_initial_partial_block_lzfnkiFifvcmjit_BCM_4:

# 72677 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lzfnkiFifvcmjit_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lzfnkiFifvcmjit
	je	.L_after_reduction_lzfnkiFifvcmjit_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lzfnkiFifvcmjit_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_7_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_xeeduBscFEzvdva
	jae	.L_16_blocks_overflow_xeeduBscFEzvdva_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_xeeduBscFEzvdva
	jmp	.L_16_blocks_ok_xeeduBscFEzvdva_BCM_4

.L_16_blocks_overflow_xeeduBscFEzvdva_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_xeeduBscFEzvdva_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DrhotzwvddbqFrj
	jl	.L_small_initial_partial_block_DrhotzwvddbqFrj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DrhotzwvddbqFrj
	jmp	.L_small_initial_compute_done_DrhotzwvddbqFrj_BCM_4
.L_small_initial_partial_block_DrhotzwvddbqFrj_BCM_4:

# 72910 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DrhotzwvddbqFrj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DrhotzwvddbqFrj
	je	.L_after_reduction_DrhotzwvddbqFrj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DrhotzwvddbqFrj_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_8_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_kBlrofzDjhoFnxv
	jae	.L_16_blocks_overflow_kBlrofzDjhoFnxv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_kBlrofzDjhoFnxv
	jmp	.L_16_blocks_ok_kBlrofzDjhoFnxv_BCM_4

.L_16_blocks_overflow_kBlrofzDjhoFnxv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_kBlrofzDjhoFnxv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pAdxDizkcbwmjry
	jl	.L_small_initial_partial_block_pAdxDizkcbwmjry_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pAdxDizkcbwmjry
	jmp	.L_small_initial_compute_done_pAdxDizkcbwmjry_BCM_4
.L_small_initial_partial_block_pAdxDizkcbwmjry_BCM_4:

# 73145 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pAdxDizkcbwmjry_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pAdxDizkcbwmjry
	je	.L_after_reduction_pAdxDizkcbwmjry_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pAdxDizkcbwmjry_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_9_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_whsqDBkDGaknbAC
	jae	.L_16_blocks_overflow_whsqDBkDGaknbAC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_whsqDBkDGaknbAC
	jmp	.L_16_blocks_ok_whsqDBkDGaknbAC_BCM_4

.L_16_blocks_overflow_whsqDBkDGaknbAC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_whsqDBkDGaknbAC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ranhBavDwnwbdEt
	jl	.L_small_initial_partial_block_ranhBavDwnwbdEt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ranhBavDwnwbdEt
	jmp	.L_small_initial_compute_done_ranhBavDwnwbdEt_BCM_4
.L_small_initial_partial_block_ranhBavDwnwbdEt_BCM_4:

# 73405 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ranhBavDwnwbdEt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ranhBavDwnwbdEt
	je	.L_after_reduction_ranhBavDwnwbdEt_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ranhBavDwnwbdEt_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_10_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_GbBbalFokmrvvlx
	jae	.L_16_blocks_overflow_GbBbalFokmrvvlx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_GbBbalFokmrvvlx
	jmp	.L_16_blocks_ok_GbBbalFokmrvvlx_BCM_4

.L_16_blocks_overflow_GbBbalFokmrvvlx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_GbBbalFokmrvvlx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vyxjFnxqwhAbeyi
	jl	.L_small_initial_partial_block_vyxjFnxqwhAbeyi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vyxjFnxqwhAbeyi
	jmp	.L_small_initial_compute_done_vyxjFnxqwhAbeyi_BCM_4
.L_small_initial_partial_block_vyxjFnxqwhAbeyi_BCM_4:

# 73667 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vyxjFnxqwhAbeyi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vyxjFnxqwhAbeyi
	je	.L_after_reduction_vyxjFnxqwhAbeyi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vyxjFnxqwhAbeyi_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_11_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_ldEsDEbywdmplpt
	jae	.L_16_blocks_overflow_ldEsDEbywdmplpt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_ldEsDEbywdmplpt
	jmp	.L_16_blocks_ok_ldEsDEbywdmplpt_BCM_4

.L_16_blocks_overflow_ldEsDEbywdmplpt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_ldEsDEbywdmplpt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dwbzkfjluwpFvvF
	jl	.L_small_initial_partial_block_dwbzkfjluwpFvvF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dwbzkfjluwpFvvF
	jmp	.L_small_initial_compute_done_dwbzkfjluwpFvvF_BCM_4
.L_small_initial_partial_block_dwbzkfjluwpFvvF_BCM_4:

# 73936 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dwbzkfjluwpFvvF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dwbzkfjluwpFvvF
	je	.L_after_reduction_dwbzkfjluwpFvvF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dwbzkfjluwpFvvF_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_12_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_rAsEscwvsFrjwEn
	jae	.L_16_blocks_overflow_rAsEscwvsFrjwEn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_rAsEscwvsFrjwEn
	jmp	.L_16_blocks_ok_rAsEscwvsFrjwEn_BCM_4

.L_16_blocks_overflow_rAsEscwvsFrjwEn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_rAsEscwvsFrjwEn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qqseyimgvencorf
	jl	.L_small_initial_partial_block_qqseyimgvencorf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qqseyimgvencorf
	jmp	.L_small_initial_compute_done_qqseyimgvencorf_BCM_4
.L_small_initial_partial_block_qqseyimgvencorf_BCM_4:

# 74203 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qqseyimgvencorf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qqseyimgvencorf
	je	.L_after_reduction_qqseyimgvencorf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qqseyimgvencorf_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_13_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_yuCmdhwEwEhlsnq
	jae	.L_16_blocks_overflow_yuCmdhwEwEhlsnq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_yuCmdhwEwEhlsnq
	jmp	.L_16_blocks_ok_yuCmdhwEwEhlsnq_BCM_4

.L_16_blocks_overflow_yuCmdhwEwEhlsnq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_yuCmdhwEwEhlsnq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qwyeDgkiECyoEct
	jl	.L_small_initial_partial_block_qwyeDgkiECyoEct_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qwyeDgkiECyoEct
	jmp	.L_small_initial_compute_done_qwyeDgkiECyoEct_BCM_4
.L_small_initial_partial_block_qwyeDgkiECyoEct_BCM_4:

# 74495 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qwyeDgkiECyoEct_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qwyeDgkiECyoEct
	je	.L_after_reduction_qwyeDgkiECyoEct_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qwyeDgkiECyoEct_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_14_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_oEwrswoqGyjlsqe
	jae	.L_16_blocks_overflow_oEwrswoqGyjlsqe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_oEwrswoqGyjlsqe
	jmp	.L_16_blocks_ok_oEwrswoqGyjlsqe_BCM_4

.L_16_blocks_overflow_oEwrswoqGyjlsqe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_oEwrswoqGyjlsqe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FvgcfpdwFDaojDh
	jl	.L_small_initial_partial_block_FvgcfpdwFDaojDh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FvgcfpdwFDaojDh
	jmp	.L_small_initial_compute_done_FvgcfpdwFDaojDh_BCM_4
.L_small_initial_partial_block_FvgcfpdwFDaojDh_BCM_4:

# 74785 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FvgcfpdwFDaojDh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FvgcfpdwFDaojDh
	je	.L_after_reduction_FvgcfpdwFDaojDh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FvgcfpdwFDaojDh_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_15_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_CtjhmwDvAgBsAry
	jae	.L_16_blocks_overflow_CtjhmwDvAgBsAry_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_CtjhmwDvAgBsAry
	jmp	.L_16_blocks_ok_CtjhmwDvAgBsAry_BCM_4

.L_16_blocks_overflow_CtjhmwDvAgBsAry_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_CtjhmwDvAgBsAry_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rertkxjeyegEbAD
	jl	.L_small_initial_partial_block_rertkxjeyegEbAD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rertkxjeyegEbAD
	jmp	.L_small_initial_compute_done_rertkxjeyegEbAD_BCM_4
.L_small_initial_partial_block_rertkxjeyegEbAD_BCM_4:

# 75082 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rertkxjeyegEbAD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rertkxjeyegEbAD
	je	.L_after_reduction_rertkxjeyegEbAD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rertkxjeyegEbAD_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_16_lGwozrmByuyygbo_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_ejwsGBcDyFeryCA
	jae	.L_16_blocks_overflow_ejwsGBcDyFeryCA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ejwsGBcDyFeryCA
	jmp	.L_16_blocks_ok_ejwsGBcDyFeryCA_BCM_4

.L_16_blocks_overflow_ejwsGBcDyFeryCA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ejwsGBcDyFeryCA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_vqjlBldpifEzCAi_BCM_4:

# 75309 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vqjlBldpifEzCAi_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vqjlBldpifEzCAi_BCM_4:

# WAS jmp .L_last_blocks_done_lGwozrmByuyygbo
	jmp	.L_last_blocks_done_lGwozrmByuyygbo_BCM_4
.L_last_num_blocks_is_0_lGwozrmByuyygbo_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_lGwozrmByuyygbo_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_icBhFhCkojGgnBc
	jmp	.L_ghash_done_icBhFhCkojGgnBc_BCM_4
.L_encrypt_32_blocks_icBhFhCkojGgnBc_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_bqdrbusADEaesxh
	jae	.L_16_blocks_overflow_bqdrbusADEaesxh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_bqdrbusADEaesxh
	jmp	.L_16_blocks_ok_bqdrbusADEaesxh_BCM_4
.L_16_blocks_overflow_bqdrbusADEaesxh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_bqdrbusADEaesxh_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_jsiAuvqcAwfrdty
	jae	.L_16_blocks_overflow_jsiAuvqcAwfrdty_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_jsiAuvqcAwfrdty
	jmp	.L_16_blocks_ok_jsiAuvqcAwfrdty_BCM_4
.L_16_blocks_overflow_jsiAuvqcAwfrdty_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_jsiAuvqcAwfrdty_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_0_aldutenGmyuhmFz_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_8_aldutenGmyuhmFz_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_aldutenGmyuhmFz
	jb	.L_last_num_blocks_is_7_1_aldutenGmyuhmFz_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_12_aldutenGmyuhmFz_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_aldutenGmyuhmFz
	jb	.L_last_num_blocks_is_11_9_aldutenGmyuhmFz_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_15_aldutenGmyuhmFz_BCM_4
# WAS ja .L_last_num_blocks_is_16_aldutenGmyuhmFz
	ja	.L_last_num_blocks_is_16_aldutenGmyuhmFz_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_14_aldutenGmyuhmFz_BCM_4
# WAS jmp .L_last_num_blocks_is_13_aldutenGmyuhmFz
	jmp	.L_last_num_blocks_is_13_aldutenGmyuhmFz_BCM_4

.L_last_num_blocks_is_11_9_aldutenGmyuhmFz_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_10_aldutenGmyuhmFz_BCM_4
# WAS ja .L_last_num_blocks_is_11_aldutenGmyuhmFz
	ja	.L_last_num_blocks_is_11_aldutenGmyuhmFz_BCM_4
# WAS jmp .L_last_num_blocks_is_9_aldutenGmyuhmFz
	jmp	.L_last_num_blocks_is_9_aldutenGmyuhmFz_BCM_4

.L_last_num_blocks_is_7_1_aldutenGmyuhmFz_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_4_aldutenGmyuhmFz_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_aldutenGmyuhmFz
	jb	.L_last_num_blocks_is_3_1_aldutenGmyuhmFz_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_aldutenGmyuhmFz
	ja	.L_last_num_blocks_is_7_aldutenGmyuhmFz_BCM_4
# WAS je .L_last_num_blocks_is_6_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_6_aldutenGmyuhmFz_BCM_4
# WAS jmp .L_last_num_blocks_is_5_aldutenGmyuhmFz
	jmp	.L_last_num_blocks_is_5_aldutenGmyuhmFz_BCM_4

.L_last_num_blocks_is_3_1_aldutenGmyuhmFz_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_aldutenGmyuhmFz
	ja	.L_last_num_blocks_is_3_aldutenGmyuhmFz_BCM_4
# WAS je .L_last_num_blocks_is_2_aldutenGmyuhmFz
	je	.L_last_num_blocks_is_2_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_1_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_kounvuokEjmfgDl
	jae	.L_16_blocks_overflow_kounvuokEjmfgDl_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_kounvuokEjmfgDl
	jmp	.L_16_blocks_ok_kounvuokEjmfgDl_BCM_4

.L_16_blocks_overflow_kounvuokEjmfgDl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_kounvuokEjmfgDl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_myyjGGFduxDnmrl
	jl	.L_small_initial_partial_block_myyjGGFduxDnmrl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_myyjGGFduxDnmrl
	jmp	.L_small_initial_compute_done_myyjGGFduxDnmrl_BCM_4
.L_small_initial_partial_block_myyjGGFduxDnmrl_BCM_4:

# 76064 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 76105 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_myyjGGFduxDnmrl
	jmp	.L_after_reduction_myyjGGFduxDnmrl_BCM_4
.L_small_initial_compute_done_myyjGGFduxDnmrl_BCM_4:

.L_after_reduction_myyjGGFduxDnmrl_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_2_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_GkcjorkhgDBFApE
	jae	.L_16_blocks_overflow_GkcjorkhgDBFApE_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_GkcjorkhgDBFApE
	jmp	.L_16_blocks_ok_GkcjorkhgDBFApE_BCM_4

.L_16_blocks_overflow_GkcjorkhgDBFApE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_GkcjorkhgDBFApE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_luGrBrcBwGbkypf
	jl	.L_small_initial_partial_block_luGrBrcBwGbkypf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_luGrBrcBwGbkypf
	jmp	.L_small_initial_compute_done_luGrBrcBwGbkypf_BCM_4
.L_small_initial_partial_block_luGrBrcBwGbkypf_BCM_4:

# 76264 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_luGrBrcBwGbkypf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_luGrBrcBwGbkypf
	je	.L_after_reduction_luGrBrcBwGbkypf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_luGrBrcBwGbkypf_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_3_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_GlGoAfCtaxDnccC
	jae	.L_16_blocks_overflow_GlGoAfCtaxDnccC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_GlGoAfCtaxDnccC
	jmp	.L_16_blocks_ok_GlGoAfCtaxDnccC_BCM_4

.L_16_blocks_overflow_GlGoAfCtaxDnccC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_GlGoAfCtaxDnccC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hjFElydehDprmun
	jl	.L_small_initial_partial_block_hjFElydehDprmun_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hjFElydehDprmun
	jmp	.L_small_initial_compute_done_hjFElydehDprmun_BCM_4
.L_small_initial_partial_block_hjFElydehDprmun_BCM_4:

# 76463 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hjFElydehDprmun_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hjFElydehDprmun
	je	.L_after_reduction_hjFElydehDprmun_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hjFElydehDprmun_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_4_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_zwfpgGyijsBkpeE
	jae	.L_16_blocks_overflow_zwfpgGyijsBkpeE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_zwfpgGyijsBkpeE
	jmp	.L_16_blocks_ok_zwfpgGyijsBkpeE_BCM_4

.L_16_blocks_overflow_zwfpgGyijsBkpeE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_zwfpgGyijsBkpeE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ftaDveFCagABhCd
	jl	.L_small_initial_partial_block_ftaDveFCagABhCd_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ftaDveFCagABhCd
	jmp	.L_small_initial_compute_done_ftaDveFCagABhCd_BCM_4
.L_small_initial_partial_block_ftaDveFCagABhCd_BCM_4:

# 76662 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ftaDveFCagABhCd_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ftaDveFCagABhCd
	je	.L_after_reduction_ftaDveFCagABhCd_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ftaDveFCagABhCd_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_5_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_CizAwbkEgozyasa
	jae	.L_16_blocks_overflow_CizAwbkEgozyasa_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_CizAwbkEgozyasa
	jmp	.L_16_blocks_ok_CizAwbkEgozyasa_BCM_4

.L_16_blocks_overflow_CizAwbkEgozyasa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_CizAwbkEgozyasa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_uvigeFCkFhxrjol
	jl	.L_small_initial_partial_block_uvigeFCkFhxrjol_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_uvigeFCkFhxrjol
	jmp	.L_small_initial_compute_done_uvigeFCkFhxrjol_BCM_4
.L_small_initial_partial_block_uvigeFCkFhxrjol_BCM_4:

# 76888 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uvigeFCkFhxrjol_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_uvigeFCkFhxrjol
	je	.L_after_reduction_uvigeFCkFhxrjol_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_uvigeFCkFhxrjol_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_6_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_yuzbpkwFyzjuBAz
	jae	.L_16_blocks_overflow_yuzbpkwFyzjuBAz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_yuzbpkwFyzjuBAz
	jmp	.L_16_blocks_ok_yuzbpkwFyzjuBAz_BCM_4

.L_16_blocks_overflow_yuzbpkwFyzjuBAz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_yuzbpkwFyzjuBAz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mGnxEwEsoAvgkoh
	jl	.L_small_initial_partial_block_mGnxEwEsoAvgkoh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mGnxEwEsoAvgkoh
	jmp	.L_small_initial_compute_done_mGnxEwEsoAvgkoh_BCM_4
.L_small_initial_partial_block_mGnxEwEsoAvgkoh_BCM_4:

# 77114 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mGnxEwEsoAvgkoh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mGnxEwEsoAvgkoh
	je	.L_after_reduction_mGnxEwEsoAvgkoh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mGnxEwEsoAvgkoh_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_7_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_fDccaFllCyjzgaw
	jae	.L_16_blocks_overflow_fDccaFllCyjzgaw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_fDccaFllCyjzgaw
	jmp	.L_16_blocks_ok_fDccaFllCyjzgaw_BCM_4

.L_16_blocks_overflow_fDccaFllCyjzgaw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_fDccaFllCyjzgaw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_awcpyfsBbqeAyhp
	jl	.L_small_initial_partial_block_awcpyfsBbqeAyhp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_awcpyfsBbqeAyhp
	jmp	.L_small_initial_compute_done_awcpyfsBbqeAyhp_BCM_4
.L_small_initial_partial_block_awcpyfsBbqeAyhp_BCM_4:

# 77347 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_awcpyfsBbqeAyhp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_awcpyfsBbqeAyhp
	je	.L_after_reduction_awcpyfsBbqeAyhp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_awcpyfsBbqeAyhp_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_8_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_yuxjCAwGGjlocDt
	jae	.L_16_blocks_overflow_yuxjCAwGGjlocDt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_yuxjCAwGGjlocDt
	jmp	.L_16_blocks_ok_yuxjCAwGGjlocDt_BCM_4

.L_16_blocks_overflow_yuxjCAwGGjlocDt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_yuxjCAwGGjlocDt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tCmmipfvAEinBtG
	jl	.L_small_initial_partial_block_tCmmipfvAEinBtG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tCmmipfvAEinBtG
	jmp	.L_small_initial_compute_done_tCmmipfvAEinBtG_BCM_4
.L_small_initial_partial_block_tCmmipfvAEinBtG_BCM_4:

# 77582 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tCmmipfvAEinBtG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tCmmipfvAEinBtG
	je	.L_after_reduction_tCmmipfvAEinBtG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tCmmipfvAEinBtG_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_9_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_FrborCeuBByFkga
	jae	.L_16_blocks_overflow_FrborCeuBByFkga_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_FrborCeuBByFkga
	jmp	.L_16_blocks_ok_FrborCeuBByFkga_BCM_4

.L_16_blocks_overflow_FrborCeuBByFkga_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_FrborCeuBByFkga_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rhmklrqdhsjaixG
	jl	.L_small_initial_partial_block_rhmklrqdhsjaixG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rhmklrqdhsjaixG
	jmp	.L_small_initial_compute_done_rhmklrqdhsjaixG_BCM_4
.L_small_initial_partial_block_rhmklrqdhsjaixG_BCM_4:

# 77842 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rhmklrqdhsjaixG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rhmklrqdhsjaixG
	je	.L_after_reduction_rhmklrqdhsjaixG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rhmklrqdhsjaixG_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_10_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_uqpvEzAtlprmDsg
	jae	.L_16_blocks_overflow_uqpvEzAtlprmDsg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_uqpvEzAtlprmDsg
	jmp	.L_16_blocks_ok_uqpvEzAtlprmDsg_BCM_4

.L_16_blocks_overflow_uqpvEzAtlprmDsg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_uqpvEzAtlprmDsg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yslffbaddFCEqwA
	jl	.L_small_initial_partial_block_yslffbaddFCEqwA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yslffbaddFCEqwA
	jmp	.L_small_initial_compute_done_yslffbaddFCEqwA_BCM_4
.L_small_initial_partial_block_yslffbaddFCEqwA_BCM_4:

# 78104 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yslffbaddFCEqwA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yslffbaddFCEqwA
	je	.L_after_reduction_yslffbaddFCEqwA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yslffbaddFCEqwA_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_11_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_wyBrnxyfcdFguiF
	jae	.L_16_blocks_overflow_wyBrnxyfcdFguiF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_wyBrnxyfcdFguiF
	jmp	.L_16_blocks_ok_wyBrnxyfcdFguiF_BCM_4

.L_16_blocks_overflow_wyBrnxyfcdFguiF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_wyBrnxyfcdFguiF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_axnFjCbcEhxjDmF
	jl	.L_small_initial_partial_block_axnFjCbcEhxjDmF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_axnFjCbcEhxjDmF
	jmp	.L_small_initial_compute_done_axnFjCbcEhxjDmF_BCM_4
.L_small_initial_partial_block_axnFjCbcEhxjDmF_BCM_4:

# 78373 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_axnFjCbcEhxjDmF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_axnFjCbcEhxjDmF
	je	.L_after_reduction_axnFjCbcEhxjDmF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_axnFjCbcEhxjDmF_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_12_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_nbfsGzmFjniAhpc
	jae	.L_16_blocks_overflow_nbfsGzmFjniAhpc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_nbfsGzmFjniAhpc
	jmp	.L_16_blocks_ok_nbfsGzmFjniAhpc_BCM_4

.L_16_blocks_overflow_nbfsGzmFjniAhpc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_nbfsGzmFjniAhpc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nmuwjreDfxCetjh
	jl	.L_small_initial_partial_block_nmuwjreDfxCetjh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nmuwjreDfxCetjh
	jmp	.L_small_initial_compute_done_nmuwjreDfxCetjh_BCM_4
.L_small_initial_partial_block_nmuwjreDfxCetjh_BCM_4:

# 78640 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nmuwjreDfxCetjh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nmuwjreDfxCetjh
	je	.L_after_reduction_nmuwjreDfxCetjh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nmuwjreDfxCetjh_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_13_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_BlpixnjkGtBtzBl
	jae	.L_16_blocks_overflow_BlpixnjkGtBtzBl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_BlpixnjkGtBtzBl
	jmp	.L_16_blocks_ok_BlpixnjkGtBtzBl_BCM_4

.L_16_blocks_overflow_BlpixnjkGtBtzBl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_BlpixnjkGtBtzBl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FdqyplwEjyoxvwf
	jl	.L_small_initial_partial_block_FdqyplwEjyoxvwf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FdqyplwEjyoxvwf
	jmp	.L_small_initial_compute_done_FdqyplwEjyoxvwf_BCM_4
.L_small_initial_partial_block_FdqyplwEjyoxvwf_BCM_4:

# 78932 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FdqyplwEjyoxvwf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FdqyplwEjyoxvwf
	je	.L_after_reduction_FdqyplwEjyoxvwf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FdqyplwEjyoxvwf_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_14_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_nlkisqljGgnlewr
	jae	.L_16_blocks_overflow_nlkisqljGgnlewr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_nlkisqljGgnlewr
	jmp	.L_16_blocks_ok_nlkisqljGgnlewr_BCM_4

.L_16_blocks_overflow_nlkisqljGgnlewr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_nlkisqljGgnlewr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ByszoDfuCgvEska
	jl	.L_small_initial_partial_block_ByszoDfuCgvEska_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ByszoDfuCgvEska
	jmp	.L_small_initial_compute_done_ByszoDfuCgvEska_BCM_4
.L_small_initial_partial_block_ByszoDfuCgvEska_BCM_4:

# 79222 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ByszoDfuCgvEska_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ByszoDfuCgvEska
	je	.L_after_reduction_ByszoDfuCgvEska_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ByszoDfuCgvEska_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_15_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_FewkqxwDmrjetmG
	jae	.L_16_blocks_overflow_FewkqxwDmrjetmG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_FewkqxwDmrjetmG
	jmp	.L_16_blocks_ok_FewkqxwDmrjetmG_BCM_4

.L_16_blocks_overflow_FewkqxwDmrjetmG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_FewkqxwDmrjetmG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jjbxCtvydaGqepC
	jl	.L_small_initial_partial_block_jjbxCtvydaGqepC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jjbxCtvydaGqepC
	jmp	.L_small_initial_compute_done_jjbxCtvydaGqepC_BCM_4
.L_small_initial_partial_block_jjbxCtvydaGqepC_BCM_4:

# 79519 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jjbxCtvydaGqepC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jjbxCtvydaGqepC
	je	.L_after_reduction_jjbxCtvydaGqepC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jjbxCtvydaGqepC_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_16_aldutenGmyuhmFz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_hEoxzbghGBmpbpw
	jae	.L_16_blocks_overflow_hEoxzbghGBmpbpw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_hEoxzbghGBmpbpw
	jmp	.L_16_blocks_ok_hEoxzbghGBmpbpw_BCM_4

.L_16_blocks_overflow_hEoxzbghGBmpbpw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_hEoxzbghGBmpbpw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_usEFihDgqghhogg_BCM_4:

# 79746 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_usEFihDgqghhogg_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_usEFihDgqghhogg_BCM_4:

# WAS jmp .L_last_blocks_done_aldutenGmyuhmFz
	jmp	.L_last_blocks_done_aldutenGmyuhmFz_BCM_4
.L_last_num_blocks_is_0_aldutenGmyuhmFz_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_aldutenGmyuhmFz_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_icBhFhCkojGgnBc
	jmp	.L_ghash_done_icBhFhCkojGgnBc_BCM_4
.L_encrypt_16_blocks_icBhFhCkojGgnBc_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_xlvtosuhBBytzsd
	jae	.L_16_blocks_overflow_xlvtosuhBBytzsd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_xlvtosuhBBytzsd
	jmp	.L_16_blocks_ok_xlvtosuhBBytzsd_BCM_4
.L_16_blocks_overflow_xlvtosuhBBytzsd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_xlvtosuhBBytzsd_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_0_CqqjsGobDovpiom_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_8_CqqjsGobDovpiom_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CqqjsGobDovpiom
	jb	.L_last_num_blocks_is_7_1_CqqjsGobDovpiom_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_12_CqqjsGobDovpiom_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CqqjsGobDovpiom
	jb	.L_last_num_blocks_is_11_9_CqqjsGobDovpiom_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_15_CqqjsGobDovpiom_BCM_4
# WAS ja .L_last_num_blocks_is_16_CqqjsGobDovpiom
	ja	.L_last_num_blocks_is_16_CqqjsGobDovpiom_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_14_CqqjsGobDovpiom_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CqqjsGobDovpiom
	jmp	.L_last_num_blocks_is_13_CqqjsGobDovpiom_BCM_4

.L_last_num_blocks_is_11_9_CqqjsGobDovpiom_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_10_CqqjsGobDovpiom_BCM_4
# WAS ja .L_last_num_blocks_is_11_CqqjsGobDovpiom
	ja	.L_last_num_blocks_is_11_CqqjsGobDovpiom_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CqqjsGobDovpiom
	jmp	.L_last_num_blocks_is_9_CqqjsGobDovpiom_BCM_4

.L_last_num_blocks_is_7_1_CqqjsGobDovpiom_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_4_CqqjsGobDovpiom_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CqqjsGobDovpiom
	jb	.L_last_num_blocks_is_3_1_CqqjsGobDovpiom_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CqqjsGobDovpiom
	ja	.L_last_num_blocks_is_7_CqqjsGobDovpiom_BCM_4
# WAS je .L_last_num_blocks_is_6_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_6_CqqjsGobDovpiom_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CqqjsGobDovpiom
	jmp	.L_last_num_blocks_is_5_CqqjsGobDovpiom_BCM_4

.L_last_num_blocks_is_3_1_CqqjsGobDovpiom_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CqqjsGobDovpiom
	ja	.L_last_num_blocks_is_3_CqqjsGobDovpiom_BCM_4
# WAS je .L_last_num_blocks_is_2_CqqjsGobDovpiom
	je	.L_last_num_blocks_is_2_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_1_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_iCcBbEaCnnBtiGz
	jae	.L_16_blocks_overflow_iCcBbEaCnnBtiGz_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_iCcBbEaCnnBtiGz
	jmp	.L_16_blocks_ok_iCcBbEaCnnBtiGz_BCM_4

.L_16_blocks_overflow_iCcBbEaCnnBtiGz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_iCcBbEaCnnBtiGz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_himCBxsCzdjqdtp
	jl	.L_small_initial_partial_block_himCBxsCzdjqdtp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_himCBxsCzdjqdtp
	jmp	.L_small_initial_compute_done_himCBxsCzdjqdtp_BCM_4
.L_small_initial_partial_block_himCBxsCzdjqdtp_BCM_4:

# 80310 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 80323 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_himCBxsCzdjqdtp
	jmp	.L_after_reduction_himCBxsCzdjqdtp_BCM_4
.L_small_initial_compute_done_himCBxsCzdjqdtp_BCM_4:

.L_after_reduction_himCBxsCzdjqdtp_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_2_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_spdFufbAAGcAxFf
	jae	.L_16_blocks_overflow_spdFufbAAGcAxFf_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_spdFufbAAGcAxFf
	jmp	.L_16_blocks_ok_spdFufbAAGcAxFf_BCM_4

.L_16_blocks_overflow_spdFufbAAGcAxFf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_spdFufbAAGcAxFf_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vdGxihcuFDvcDGx
	jl	.L_small_initial_partial_block_vdGxihcuFDvcDGx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vdGxihcuFDvcDGx
	jmp	.L_small_initial_compute_done_vdGxihcuFDvcDGx_BCM_4
.L_small_initial_partial_block_vdGxihcuFDvcDGx_BCM_4:

# 80503 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vdGxihcuFDvcDGx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vdGxihcuFDvcDGx
	je	.L_after_reduction_vdGxihcuFDvcDGx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vdGxihcuFDvcDGx_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_3_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_sBAazunogzDjqho
	jae	.L_16_blocks_overflow_sBAazunogzDjqho_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_sBAazunogzDjqho
	jmp	.L_16_blocks_ok_sBAazunogzDjqho_BCM_4

.L_16_blocks_overflow_sBAazunogzDjqho_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_sBAazunogzDjqho_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tldtpncdejgAGjh
	jl	.L_small_initial_partial_block_tldtpncdejgAGjh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tldtpncdejgAGjh
	jmp	.L_small_initial_compute_done_tldtpncdejgAGjh_BCM_4
.L_small_initial_partial_block_tldtpncdejgAGjh_BCM_4:

# 80721 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tldtpncdejgAGjh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tldtpncdejgAGjh
	je	.L_after_reduction_tldtpncdejgAGjh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tldtpncdejgAGjh_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_4_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_sekyjhofosAtkyB
	jae	.L_16_blocks_overflow_sekyjhofosAtkyB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_sekyjhofosAtkyB
	jmp	.L_16_blocks_ok_sekyjhofosAtkyB_BCM_4

.L_16_blocks_overflow_sekyjhofosAtkyB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_sekyjhofosAtkyB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wkomnalwByedats
	jl	.L_small_initial_partial_block_wkomnalwByedats_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wkomnalwByedats
	jmp	.L_small_initial_compute_done_wkomnalwByedats_BCM_4
.L_small_initial_partial_block_wkomnalwByedats_BCM_4:

# 80938 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wkomnalwByedats_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wkomnalwByedats
	je	.L_after_reduction_wkomnalwByedats_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wkomnalwByedats_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_5_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_zdkGskjaniDljeq
	jae	.L_16_blocks_overflow_zdkGskjaniDljeq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_zdkGskjaniDljeq
	jmp	.L_16_blocks_ok_zdkGskjaniDljeq_BCM_4

.L_16_blocks_overflow_zdkGskjaniDljeq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_zdkGskjaniDljeq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nCkgxpzwqEAtDfb
	jl	.L_small_initial_partial_block_nCkgxpzwqEAtDfb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nCkgxpzwqEAtDfb
	jmp	.L_small_initial_compute_done_nCkgxpzwqEAtDfb_BCM_4
.L_small_initial_partial_block_nCkgxpzwqEAtDfb_BCM_4:

# 81186 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nCkgxpzwqEAtDfb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nCkgxpzwqEAtDfb
	je	.L_after_reduction_nCkgxpzwqEAtDfb_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nCkgxpzwqEAtDfb_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_6_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_mrylAcnDjuqklnd
	jae	.L_16_blocks_overflow_mrylAcnDjuqklnd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_mrylAcnDjuqklnd
	jmp	.L_16_blocks_ok_mrylAcnDjuqklnd_BCM_4

.L_16_blocks_overflow_mrylAcnDjuqklnd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_mrylAcnDjuqklnd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dtDgucpjyaambao
	jl	.L_small_initial_partial_block_dtDgucpjyaambao_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dtDgucpjyaambao
	jmp	.L_small_initial_compute_done_dtDgucpjyaambao_BCM_4
.L_small_initial_partial_block_dtDgucpjyaambao_BCM_4:

# 81433 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dtDgucpjyaambao_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dtDgucpjyaambao
	je	.L_after_reduction_dtDgucpjyaambao_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dtDgucpjyaambao_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_7_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_ektccsvjwlnFwnw
	jae	.L_16_blocks_overflow_ektccsvjwlnFwnw_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_ektccsvjwlnFwnw
	jmp	.L_16_blocks_ok_ektccsvjwlnFwnw_BCM_4

.L_16_blocks_overflow_ektccsvjwlnFwnw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_ektccsvjwlnFwnw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rbfqryodaBgimfn
	jl	.L_small_initial_partial_block_rbfqryodaBgimfn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rbfqryodaBgimfn
	jmp	.L_small_initial_compute_done_rbfqryodaBgimfn_BCM_4
.L_small_initial_partial_block_rbfqryodaBgimfn_BCM_4:

# 81691 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rbfqryodaBgimfn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rbfqryodaBgimfn
	je	.L_after_reduction_rbfqryodaBgimfn_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rbfqryodaBgimfn_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_8_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_GGmuDhkjBtqxcEd
	jae	.L_16_blocks_overflow_GGmuDhkjBtqxcEd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_GGmuDhkjBtqxcEd
	jmp	.L_16_blocks_ok_GGmuDhkjBtqxcEd_BCM_4

.L_16_blocks_overflow_GGmuDhkjBtqxcEd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_GGmuDhkjBtqxcEd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aapCFFxCFiAoabs
	jl	.L_small_initial_partial_block_aapCFFxCFiAoabs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aapCFFxCFiAoabs
	jmp	.L_small_initial_compute_done_aapCFFxCFiAoabs_BCM_4
.L_small_initial_partial_block_aapCFFxCFiAoabs_BCM_4:

# 81947 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aapCFFxCFiAoabs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aapCFFxCFiAoabs
	je	.L_after_reduction_aapCFFxCFiAoabs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aapCFFxCFiAoabs_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_9_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_lDwlixsAzhAgDkG
	jae	.L_16_blocks_overflow_lDwlixsAzhAgDkG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_lDwlixsAzhAgDkG
	jmp	.L_16_blocks_ok_lDwlixsAzhAgDkG_BCM_4

.L_16_blocks_overflow_lDwlixsAzhAgDkG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_lDwlixsAzhAgDkG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ixzDxvojEApEnCt
	jl	.L_small_initial_partial_block_ixzDxvojEApEnCt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ixzDxvojEApEnCt
	jmp	.L_small_initial_compute_done_ixzDxvojEApEnCt_BCM_4
.L_small_initial_partial_block_ixzDxvojEApEnCt_BCM_4:

# 82232 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ixzDxvojEApEnCt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ixzDxvojEApEnCt
	je	.L_after_reduction_ixzDxvojEApEnCt_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ixzDxvojEApEnCt_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_10_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_BbbzknmqtuDuEfg
	jae	.L_16_blocks_overflow_BbbzknmqtuDuEfg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_BbbzknmqtuDuEfg
	jmp	.L_16_blocks_ok_BbbzknmqtuDuEfg_BCM_4

.L_16_blocks_overflow_BbbzknmqtuDuEfg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_BbbzknmqtuDuEfg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ocgDwclfceuanoy
	jl	.L_small_initial_partial_block_ocgDwclfceuanoy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ocgDwclfceuanoy
	jmp	.L_small_initial_compute_done_ocgDwclfceuanoy_BCM_4
.L_small_initial_partial_block_ocgDwclfceuanoy_BCM_4:

# 82515 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ocgDwclfceuanoy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ocgDwclfceuanoy
	je	.L_after_reduction_ocgDwclfceuanoy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ocgDwclfceuanoy_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_11_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_jatgakEfrDmqCyG
	jae	.L_16_blocks_overflow_jatgakEfrDmqCyG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_jatgakEfrDmqCyG
	jmp	.L_16_blocks_ok_jatgakEfrDmqCyG_BCM_4

.L_16_blocks_overflow_jatgakEfrDmqCyG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_jatgakEfrDmqCyG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tklDcEsdEdnDloA
	jl	.L_small_initial_partial_block_tklDcEsdEdnDloA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tklDcEsdEdnDloA
	jmp	.L_small_initial_compute_done_tklDcEsdEdnDloA_BCM_4
.L_small_initial_partial_block_tklDcEsdEdnDloA_BCM_4:

# 82809 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tklDcEsdEdnDloA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tklDcEsdEdnDloA
	je	.L_after_reduction_tklDcEsdEdnDloA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tklDcEsdEdnDloA_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_12_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_tovGfhABebkuFEt
	jae	.L_16_blocks_overflow_tovGfhABebkuFEt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_tovGfhABebkuFEt
	jmp	.L_16_blocks_ok_tovGfhABebkuFEt_BCM_4

.L_16_blocks_overflow_tovGfhABebkuFEt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_tovGfhABebkuFEt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EEeschrlAysrrgg
	jl	.L_small_initial_partial_block_EEeschrlAysrrgg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EEeschrlAysrrgg
	jmp	.L_small_initial_compute_done_EEeschrlAysrrgg_BCM_4
.L_small_initial_partial_block_EEeschrlAysrrgg_BCM_4:

# 83097 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EEeschrlAysrrgg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EEeschrlAysrrgg
	je	.L_after_reduction_EEeschrlAysrrgg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EEeschrlAysrrgg_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_13_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_ChCrwqCswoEpicz
	jae	.L_16_blocks_overflow_ChCrwqCswoEpicz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_ChCrwqCswoEpicz
	jmp	.L_16_blocks_ok_ChCrwqCswoEpicz_BCM_4

.L_16_blocks_overflow_ChCrwqCswoEpicz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_ChCrwqCswoEpicz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iBgxbAnxnejeaAD
	jl	.L_small_initial_partial_block_iBgxbAnxnejeaAD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iBgxbAnxnejeaAD
	jmp	.L_small_initial_compute_done_iBgxbAnxnejeaAD_BCM_4
.L_small_initial_partial_block_iBgxbAnxnejeaAD_BCM_4:

# 83414 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iBgxbAnxnejeaAD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iBgxbAnxnejeaAD
	je	.L_after_reduction_iBgxbAnxnejeaAD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iBgxbAnxnejeaAD_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_14_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_GzibzgsizEbkyAE
	jae	.L_16_blocks_overflow_GzibzgsizEbkyAE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_GzibzgsizEbkyAE
	jmp	.L_16_blocks_ok_GzibzgsizEbkyAE_BCM_4

.L_16_blocks_overflow_GzibzgsizEbkyAE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_GzibzgsizEbkyAE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ulArrmByoEAEezF
	jl	.L_small_initial_partial_block_ulArrmByoEAEezF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ulArrmByoEAEezF
	jmp	.L_small_initial_compute_done_ulArrmByoEAEezF_BCM_4
.L_small_initial_partial_block_ulArrmByoEAEezF_BCM_4:

# 83725 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ulArrmByoEAEezF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ulArrmByoEAEezF
	je	.L_after_reduction_ulArrmByoEAEezF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ulArrmByoEAEezF_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_15_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_DExqfkaBzzhxtrd
	jae	.L_16_blocks_overflow_DExqfkaBzzhxtrd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_DExqfkaBzzhxtrd
	jmp	.L_16_blocks_ok_DExqfkaBzzhxtrd_BCM_4

.L_16_blocks_overflow_DExqfkaBzzhxtrd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_DExqfkaBzzhxtrd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zqfGgrfeCzzwkzB
	jl	.L_small_initial_partial_block_zqfGgrfeCzzwkzB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zqfGgrfeCzzwkzB
	jmp	.L_small_initial_compute_done_zqfGgrfeCzzwkzB_BCM_4
.L_small_initial_partial_block_zqfGgrfeCzzwkzB_BCM_4:

# 84047 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zqfGgrfeCzzwkzB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zqfGgrfeCzzwkzB
	je	.L_after_reduction_zqfGgrfeCzzwkzB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zqfGgrfeCzzwkzB_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_16_CqqjsGobDovpiom_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_fanaekDAulfkhcb
	jae	.L_16_blocks_overflow_fanaekDAulfkhcb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_fanaekDAulfkhcb
	jmp	.L_16_blocks_ok_fanaekDAulfkhcb_BCM_4

.L_16_blocks_overflow_fanaekDAulfkhcb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_fanaekDAulfkhcb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_pCDjmBApGDgFGhw_BCM_4:

# 84298 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pCDjmBApGDgFGhw_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pCDjmBApGDgFGhw_BCM_4:

# WAS jmp .L_last_blocks_done_CqqjsGobDovpiom
	jmp	.L_last_blocks_done_CqqjsGobDovpiom_BCM_4
.L_last_num_blocks_is_0_CqqjsGobDovpiom_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CqqjsGobDovpiom_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_icBhFhCkojGgnBc
	jmp	.L_ghash_done_icBhFhCkojGgnBc_BCM_4

.L_message_below_32_blocks_icBhFhCkojGgnBc_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_lurmstfAeByrDpz
	jnz	.L_skip_hkeys_precomputation_lurmstfAeByrDpz_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_lurmstfAeByrDpz_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_0_kpvFtqCzpagsbmy_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_8_kpvFtqCzpagsbmy_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_kpvFtqCzpagsbmy
	jb	.L_last_num_blocks_is_7_1_kpvFtqCzpagsbmy_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_12_kpvFtqCzpagsbmy_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_kpvFtqCzpagsbmy
	jb	.L_last_num_blocks_is_11_9_kpvFtqCzpagsbmy_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_15_kpvFtqCzpagsbmy_BCM_4
# WAS ja .L_last_num_blocks_is_16_kpvFtqCzpagsbmy
	ja	.L_last_num_blocks_is_16_kpvFtqCzpagsbmy_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_14_kpvFtqCzpagsbmy_BCM_4
# WAS jmp .L_last_num_blocks_is_13_kpvFtqCzpagsbmy
	jmp	.L_last_num_blocks_is_13_kpvFtqCzpagsbmy_BCM_4

.L_last_num_blocks_is_11_9_kpvFtqCzpagsbmy_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_10_kpvFtqCzpagsbmy_BCM_4
# WAS ja .L_last_num_blocks_is_11_kpvFtqCzpagsbmy
	ja	.L_last_num_blocks_is_11_kpvFtqCzpagsbmy_BCM_4
# WAS jmp .L_last_num_blocks_is_9_kpvFtqCzpagsbmy
	jmp	.L_last_num_blocks_is_9_kpvFtqCzpagsbmy_BCM_4

.L_last_num_blocks_is_7_1_kpvFtqCzpagsbmy_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_4_kpvFtqCzpagsbmy_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_kpvFtqCzpagsbmy
	jb	.L_last_num_blocks_is_3_1_kpvFtqCzpagsbmy_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_kpvFtqCzpagsbmy
	ja	.L_last_num_blocks_is_7_kpvFtqCzpagsbmy_BCM_4
# WAS je .L_last_num_blocks_is_6_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_6_kpvFtqCzpagsbmy_BCM_4
# WAS jmp .L_last_num_blocks_is_5_kpvFtqCzpagsbmy
	jmp	.L_last_num_blocks_is_5_kpvFtqCzpagsbmy_BCM_4

.L_last_num_blocks_is_3_1_kpvFtqCzpagsbmy_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_kpvFtqCzpagsbmy
	ja	.L_last_num_blocks_is_3_kpvFtqCzpagsbmy_BCM_4
# WAS je .L_last_num_blocks_is_2_kpvFtqCzpagsbmy
	je	.L_last_num_blocks_is_2_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_1_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_erjqEcdgnsabCAp
	jae	.L_16_blocks_overflow_erjqEcdgnsabCAp_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_erjqEcdgnsabCAp
	jmp	.L_16_blocks_ok_erjqEcdgnsabCAp_BCM_4

.L_16_blocks_overflow_erjqEcdgnsabCAp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_erjqEcdgnsabCAp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tihlhrngdnEcfCn
	jl	.L_small_initial_partial_block_tihlhrngdnEcfCn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tihlhrngdnEcfCn
	jmp	.L_small_initial_compute_done_tihlhrngdnEcfCn_BCM_4
.L_small_initial_partial_block_tihlhrngdnEcfCn_BCM_4:

# 84765 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 84806 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_tihlhrngdnEcfCn
	jmp	.L_after_reduction_tihlhrngdnEcfCn_BCM_4
.L_small_initial_compute_done_tihlhrngdnEcfCn_BCM_4:

.L_after_reduction_tihlhrngdnEcfCn_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_2_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_AibviGpsltwhwck
	jae	.L_16_blocks_overflow_AibviGpsltwhwck_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_AibviGpsltwhwck
	jmp	.L_16_blocks_ok_AibviGpsltwhwck_BCM_4

.L_16_blocks_overflow_AibviGpsltwhwck_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_AibviGpsltwhwck_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CGytiedGuwlshAl
	jl	.L_small_initial_partial_block_CGytiedGuwlshAl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CGytiedGuwlshAl
	jmp	.L_small_initial_compute_done_CGytiedGuwlshAl_BCM_4
.L_small_initial_partial_block_CGytiedGuwlshAl_BCM_4:

# 84965 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CGytiedGuwlshAl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CGytiedGuwlshAl
	je	.L_after_reduction_CGytiedGuwlshAl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CGytiedGuwlshAl_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_3_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_cwyoDiaxggCofzt
	jae	.L_16_blocks_overflow_cwyoDiaxggCofzt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_cwyoDiaxggCofzt
	jmp	.L_16_blocks_ok_cwyoDiaxggCofzt_BCM_4

.L_16_blocks_overflow_cwyoDiaxggCofzt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_cwyoDiaxggCofzt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_khdhzwEsobgrlgi
	jl	.L_small_initial_partial_block_khdhzwEsobgrlgi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_khdhzwEsobgrlgi
	jmp	.L_small_initial_compute_done_khdhzwEsobgrlgi_BCM_4
.L_small_initial_partial_block_khdhzwEsobgrlgi_BCM_4:

# 85164 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_khdhzwEsobgrlgi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_khdhzwEsobgrlgi
	je	.L_after_reduction_khdhzwEsobgrlgi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_khdhzwEsobgrlgi_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_4_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_fqeFwlbvdGyejoA
	jae	.L_16_blocks_overflow_fqeFwlbvdGyejoA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_fqeFwlbvdGyejoA
	jmp	.L_16_blocks_ok_fqeFwlbvdGyejoA_BCM_4

.L_16_blocks_overflow_fqeFwlbvdGyejoA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_fqeFwlbvdGyejoA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bzlErbuuhovEdpE
	jl	.L_small_initial_partial_block_bzlErbuuhovEdpE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bzlErbuuhovEdpE
	jmp	.L_small_initial_compute_done_bzlErbuuhovEdpE_BCM_4
.L_small_initial_partial_block_bzlErbuuhovEdpE_BCM_4:

# 85363 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bzlErbuuhovEdpE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bzlErbuuhovEdpE
	je	.L_after_reduction_bzlErbuuhovEdpE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bzlErbuuhovEdpE_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_5_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_cjnavuxfcgGzzCb
	jae	.L_16_blocks_overflow_cjnavuxfcgGzzCb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_cjnavuxfcgGzzCb
	jmp	.L_16_blocks_ok_cjnavuxfcgGzzCb_BCM_4

.L_16_blocks_overflow_cjnavuxfcgGzzCb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_cjnavuxfcgGzzCb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_eaEmrzsvCBDlnpC
	jl	.L_small_initial_partial_block_eaEmrzsvCBDlnpC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_eaEmrzsvCBDlnpC
	jmp	.L_small_initial_compute_done_eaEmrzsvCBDlnpC_BCM_4
.L_small_initial_partial_block_eaEmrzsvCBDlnpC_BCM_4:

# 85589 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_eaEmrzsvCBDlnpC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_eaEmrzsvCBDlnpC
	je	.L_after_reduction_eaEmrzsvCBDlnpC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_eaEmrzsvCBDlnpC_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_6_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_DndbknmyrzkriDg
	jae	.L_16_blocks_overflow_DndbknmyrzkriDg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_DndbknmyrzkriDg
	jmp	.L_16_blocks_ok_DndbknmyrzkriDg_BCM_4

.L_16_blocks_overflow_DndbknmyrzkriDg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_DndbknmyrzkriDg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_geoBBGllnatlCqq
	jl	.L_small_initial_partial_block_geoBBGllnatlCqq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_geoBBGllnatlCqq
	jmp	.L_small_initial_compute_done_geoBBGllnatlCqq_BCM_4
.L_small_initial_partial_block_geoBBGllnatlCqq_BCM_4:

# 85815 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_geoBBGllnatlCqq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_geoBBGllnatlCqq
	je	.L_after_reduction_geoBBGllnatlCqq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_geoBBGllnatlCqq_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_7_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_jtGaGqFaokuwcFo
	jae	.L_16_blocks_overflow_jtGaGqFaokuwcFo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_jtGaGqFaokuwcFo
	jmp	.L_16_blocks_ok_jtGaGqFaokuwcFo_BCM_4

.L_16_blocks_overflow_jtGaGqFaokuwcFo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_jtGaGqFaokuwcFo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xkeqvjpCBEjlkGx
	jl	.L_small_initial_partial_block_xkeqvjpCBEjlkGx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xkeqvjpCBEjlkGx
	jmp	.L_small_initial_compute_done_xkeqvjpCBEjlkGx_BCM_4
.L_small_initial_partial_block_xkeqvjpCBEjlkGx_BCM_4:

# 86048 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xkeqvjpCBEjlkGx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xkeqvjpCBEjlkGx
	je	.L_after_reduction_xkeqvjpCBEjlkGx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xkeqvjpCBEjlkGx_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_8_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_BCegvazduGiwBqv
	jae	.L_16_blocks_overflow_BCegvazduGiwBqv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_BCegvazduGiwBqv
	jmp	.L_16_blocks_ok_BCegvazduGiwBqv_BCM_4

.L_16_blocks_overflow_BCegvazduGiwBqv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_BCegvazduGiwBqv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_fjDnDwdgfswBjwp
	jl	.L_small_initial_partial_block_fjDnDwdgfswBjwp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_fjDnDwdgfswBjwp
	jmp	.L_small_initial_compute_done_fjDnDwdgfswBjwp_BCM_4
.L_small_initial_partial_block_fjDnDwdgfswBjwp_BCM_4:

# 86283 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fjDnDwdgfswBjwp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_fjDnDwdgfswBjwp
	je	.L_after_reduction_fjDnDwdgfswBjwp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_fjDnDwdgfswBjwp_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_9_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_nGczFFdvDDdbdAl
	jae	.L_16_blocks_overflow_nGczFFdvDDdbdAl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_nGczFFdvDDdbdAl
	jmp	.L_16_blocks_ok_nGczFFdvDDdbdAl_BCM_4

.L_16_blocks_overflow_nGczFFdvDDdbdAl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_nGczFFdvDDdbdAl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FEodvvDmqnsbxoz
	jl	.L_small_initial_partial_block_FEodvvDmqnsbxoz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FEodvvDmqnsbxoz
	jmp	.L_small_initial_compute_done_FEodvvDmqnsbxoz_BCM_4
.L_small_initial_partial_block_FEodvvDmqnsbxoz_BCM_4:

# 86543 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FEodvvDmqnsbxoz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FEodvvDmqnsbxoz
	je	.L_after_reduction_FEodvvDmqnsbxoz_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FEodvvDmqnsbxoz_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_10_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_oulxbBotdhvdFbg
	jae	.L_16_blocks_overflow_oulxbBotdhvdFbg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_oulxbBotdhvdFbg
	jmp	.L_16_blocks_ok_oulxbBotdhvdFbg_BCM_4

.L_16_blocks_overflow_oulxbBotdhvdFbg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_oulxbBotdhvdFbg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mAhDuzfffzBcqnw
	jl	.L_small_initial_partial_block_mAhDuzfffzBcqnw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mAhDuzfffzBcqnw
	jmp	.L_small_initial_compute_done_mAhDuzfffzBcqnw_BCM_4
.L_small_initial_partial_block_mAhDuzfffzBcqnw_BCM_4:

# 86805 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mAhDuzfffzBcqnw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mAhDuzfffzBcqnw
	je	.L_after_reduction_mAhDuzfffzBcqnw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mAhDuzfffzBcqnw_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_11_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_nCertFgkfoCxtun
	jae	.L_16_blocks_overflow_nCertFgkfoCxtun_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_nCertFgkfoCxtun
	jmp	.L_16_blocks_ok_nCertFgkfoCxtun_BCM_4

.L_16_blocks_overflow_nCertFgkfoCxtun_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_nCertFgkfoCxtun_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dygAbwCGlokBzAu
	jl	.L_small_initial_partial_block_dygAbwCGlokBzAu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dygAbwCGlokBzAu
	jmp	.L_small_initial_compute_done_dygAbwCGlokBzAu_BCM_4
.L_small_initial_partial_block_dygAbwCGlokBzAu_BCM_4:

# 87074 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dygAbwCGlokBzAu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dygAbwCGlokBzAu
	je	.L_after_reduction_dygAbwCGlokBzAu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dygAbwCGlokBzAu_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_12_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_DtwkcFbdCfdcCrh
	jae	.L_16_blocks_overflow_DtwkcFbdCfdcCrh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_DtwkcFbdCfdcCrh
	jmp	.L_16_blocks_ok_DtwkcFbdCfdcCrh_BCM_4

.L_16_blocks_overflow_DtwkcFbdCfdcCrh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_DtwkcFbdCfdcCrh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_uelgeBErnEDceCF
	jl	.L_small_initial_partial_block_uelgeBErnEDceCF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_uelgeBErnEDceCF
	jmp	.L_small_initial_compute_done_uelgeBErnEDceCF_BCM_4
.L_small_initial_partial_block_uelgeBErnEDceCF_BCM_4:

# 87341 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uelgeBErnEDceCF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_uelgeBErnEDceCF
	je	.L_after_reduction_uelgeBErnEDceCF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_uelgeBErnEDceCF_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_13_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_ndumifgEEuiqDiF
	jae	.L_16_blocks_overflow_ndumifgEEuiqDiF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_ndumifgEEuiqDiF
	jmp	.L_16_blocks_ok_ndumifgEEuiqDiF_BCM_4

.L_16_blocks_overflow_ndumifgEEuiqDiF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_ndumifgEEuiqDiF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DrrvrAjlkiwmAzx
	jl	.L_small_initial_partial_block_DrrvrAjlkiwmAzx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DrrvrAjlkiwmAzx
	jmp	.L_small_initial_compute_done_DrrvrAjlkiwmAzx_BCM_4
.L_small_initial_partial_block_DrrvrAjlkiwmAzx_BCM_4:

# 87633 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DrrvrAjlkiwmAzx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DrrvrAjlkiwmAzx
	je	.L_after_reduction_DrrvrAjlkiwmAzx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DrrvrAjlkiwmAzx_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_14_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_osDGzgifEhqjECm
	jae	.L_16_blocks_overflow_osDGzgifEhqjECm_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_osDGzgifEhqjECm
	jmp	.L_16_blocks_ok_osDGzgifEhqjECm_BCM_4

.L_16_blocks_overflow_osDGzgifEhqjECm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_osDGzgifEhqjECm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_fwjCFubGdkywpFz
	jl	.L_small_initial_partial_block_fwjCFubGdkywpFz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_fwjCFubGdkywpFz
	jmp	.L_small_initial_compute_done_fwjCFubGdkywpFz_BCM_4
.L_small_initial_partial_block_fwjCFubGdkywpFz_BCM_4:

# 87923 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fwjCFubGdkywpFz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_fwjCFubGdkywpFz
	je	.L_after_reduction_fwjCFubGdkywpFz_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_fwjCFubGdkywpFz_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_15_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_tiCBFudBnEgekda
	jae	.L_16_blocks_overflow_tiCBFudBnEgekda_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_tiCBFudBnEgekda
	jmp	.L_16_blocks_ok_tiCBFudBnEgekda_BCM_4

.L_16_blocks_overflow_tiCBFudBnEgekda_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_tiCBFudBnEgekda_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_sbduutzwEklCDpB
	jl	.L_small_initial_partial_block_sbduutzwEklCDpB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_sbduutzwEklCDpB
	jmp	.L_small_initial_compute_done_sbduutzwEklCDpB_BCM_4
.L_small_initial_partial_block_sbduutzwEklCDpB_BCM_4:

# 88220 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_sbduutzwEklCDpB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_sbduutzwEklCDpB
	je	.L_after_reduction_sbduutzwEklCDpB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_sbduutzwEklCDpB_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_16_kpvFtqCzpagsbmy_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_ennneCoBjzBsijF
	jae	.L_16_blocks_overflow_ennneCoBjzBsijF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ennneCoBjzBsijF
	jmp	.L_16_blocks_ok_ennneCoBjzBsijF_BCM_4

.L_16_blocks_overflow_ennneCoBjzBsijF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ennneCoBjzBsijF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_qbevliloqkkkFsD_BCM_4:

# 88447 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qbevliloqkkkFsD_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qbevliloqkkkFsD_BCM_4:

# WAS jmp .L_last_blocks_done_kpvFtqCzpagsbmy
	jmp	.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4
.L_last_num_blocks_is_0_kpvFtqCzpagsbmy_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_kpvFtqCzpagsbmy_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_icBhFhCkojGgnBc
	jmp	.L_ghash_done_icBhFhCkojGgnBc_BCM_4

.L_message_below_equal_16_blocks_icBhFhCkojGgnBc_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_8_fAioGdenAmmvupb_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_fAioGdenAmmvupb
	jl	.L_small_initial_num_blocks_is_7_1_fAioGdenAmmvupb_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_12_fAioGdenAmmvupb_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_fAioGdenAmmvupb
	jl	.L_small_initial_num_blocks_is_11_9_fAioGdenAmmvupb_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_16_fAioGdenAmmvupb_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_15_fAioGdenAmmvupb_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_14_fAioGdenAmmvupb_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_fAioGdenAmmvupb
	jmp	.L_small_initial_num_blocks_is_13_fAioGdenAmmvupb_BCM_4

.L_small_initial_num_blocks_is_11_9_fAioGdenAmmvupb_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_11_fAioGdenAmmvupb_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_10_fAioGdenAmmvupb_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_fAioGdenAmmvupb
	jmp	.L_small_initial_num_blocks_is_9_fAioGdenAmmvupb_BCM_4

.L_small_initial_num_blocks_is_7_1_fAioGdenAmmvupb_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_4_fAioGdenAmmvupb_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_fAioGdenAmmvupb
	jl	.L_small_initial_num_blocks_is_3_1_fAioGdenAmmvupb_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_7_fAioGdenAmmvupb_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_6_fAioGdenAmmvupb_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_fAioGdenAmmvupb
	jmp	.L_small_initial_num_blocks_is_5_fAioGdenAmmvupb_BCM_4

.L_small_initial_num_blocks_is_3_1_fAioGdenAmmvupb_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_3_fAioGdenAmmvupb_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_fAioGdenAmmvupb
	je	.L_small_initial_num_blocks_is_2_fAioGdenAmmvupb_BCM_4





.L_small_initial_num_blocks_is_1_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm6,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_adigDqnunatgwqg
	jl	.L_small_initial_partial_block_adigDqnunatgwqg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_adigDqnunatgwqg
	jmp	.L_small_initial_compute_done_adigDqnunatgwqg_BCM_4
.L_small_initial_partial_block_adigDqnunatgwqg_BCM_4:

# 88725 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 88738 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_adigDqnunatgwqg
	jmp	.L_after_reduction_adigDqnunatgwqg_BCM_4
.L_small_initial_compute_done_adigDqnunatgwqg_BCM_4:

.L_after_reduction_adigDqnunatgwqg_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_2_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm6,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wijsfgBfoycrhbf
	jl	.L_small_initial_partial_block_wijsfgBfoycrhbf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wijsfgBfoycrhbf
	jmp	.L_small_initial_compute_done_wijsfgBfoycrhbf_BCM_4
.L_small_initial_partial_block_wijsfgBfoycrhbf_BCM_4:

# 88840 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wijsfgBfoycrhbf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wijsfgBfoycrhbf
	je	.L_after_reduction_wijsfgBfoycrhbf_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_wijsfgBfoycrhbf_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_3_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ibqkzvjmvrGthss
	jl	.L_small_initial_partial_block_ibqkzvjmvrGthss_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ibqkzvjmvrGthss
	jmp	.L_small_initial_compute_done_ibqkzvjmvrGthss_BCM_4
.L_small_initial_partial_block_ibqkzvjmvrGthss_BCM_4:

# 88980 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ibqkzvjmvrGthss_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ibqkzvjmvrGthss
	je	.L_after_reduction_ibqkzvjmvrGthss_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ibqkzvjmvrGthss_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_4_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xlbdECcsDitBbrC
	jl	.L_small_initial_partial_block_xlbdECcsDitBbrC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xlbdECcsDitBbrC
	jmp	.L_small_initial_compute_done_xlbdECcsDitBbrC_BCM_4
.L_small_initial_partial_block_xlbdECcsDitBbrC_BCM_4:

# 89119 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xlbdECcsDitBbrC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xlbdECcsDitBbrC
	je	.L_after_reduction_xlbdECcsDitBbrC_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_xlbdECcsDitBbrC_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_5_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %xmm29,%xmm7,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AvBuAcGaAAhviww
	jl	.L_small_initial_partial_block_AvBuAcGaAAhviww_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AvBuAcGaAAhviww
	jmp	.L_small_initial_compute_done_AvBuAcGaAAhviww_BCM_4
.L_small_initial_partial_block_AvBuAcGaAAhviww_BCM_4:

# 89287 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AvBuAcGaAAhviww_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AvBuAcGaAAhviww
	je	.L_after_reduction_AvBuAcGaAAhviww_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_AvBuAcGaAAhviww_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_6_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %ymm29,%ymm7,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dmnwagjDbfGuxqa
	jl	.L_small_initial_partial_block_dmnwagjDbfGuxqa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dmnwagjDbfGuxqa
	jmp	.L_small_initial_compute_done_dmnwagjDbfGuxqa_BCM_4
.L_small_initial_partial_block_dmnwagjDbfGuxqa_BCM_4:

# 89454 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dmnwagjDbfGuxqa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dmnwagjDbfGuxqa
	je	.L_after_reduction_dmnwagjDbfGuxqa_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_dmnwagjDbfGuxqa_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_7_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FFvlakmlCAfckcF
	jl	.L_small_initial_partial_block_FFvlakmlCAfckcF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FFvlakmlCAfckcF
	jmp	.L_small_initial_compute_done_FFvlakmlCAfckcF_BCM_4
.L_small_initial_partial_block_FFvlakmlCAfckcF_BCM_4:

# 89632 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FFvlakmlCAfckcF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FFvlakmlCAfckcF
	je	.L_after_reduction_FFvlakmlCAfckcF_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_FFvlakmlCAfckcF_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_8_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_brxnjeBcvFoBFjp
	jl	.L_small_initial_partial_block_brxnjeBcvFoBFjp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_brxnjeBcvFoBFjp
	jmp	.L_small_initial_compute_done_brxnjeBcvFoBFjp_BCM_4
.L_small_initial_partial_block_brxnjeBcvFoBFjp_BCM_4:

# 89808 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_brxnjeBcvFoBFjp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_brxnjeBcvFoBFjp
	je	.L_after_reduction_brxnjeBcvFoBFjp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_brxnjeBcvFoBFjp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_9_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %xmm29,%xmm10,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ruEgsxDerxegpsB
	jl	.L_small_initial_partial_block_ruEgsxDerxegpsB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ruEgsxDerxegpsB
	jmp	.L_small_initial_compute_done_ruEgsxDerxegpsB_BCM_4
.L_small_initial_partial_block_ruEgsxDerxegpsB_BCM_4:

# 90012 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ruEgsxDerxegpsB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ruEgsxDerxegpsB
	je	.L_after_reduction_ruEgsxDerxegpsB_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ruEgsxDerxegpsB_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_10_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %ymm29,%ymm10,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DtsnEBEgqapGgkD
	jl	.L_small_initial_partial_block_DtsnEBEgqapGgkD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DtsnEBEgqapGgkD
	jmp	.L_small_initial_compute_done_DtsnEBEgqapGgkD_BCM_4
.L_small_initial_partial_block_DtsnEBEgqapGgkD_BCM_4:

# 90214 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DtsnEBEgqapGgkD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DtsnEBEgqapGgkD
	je	.L_after_reduction_DtsnEBEgqapGgkD_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_DtsnEBEgqapGgkD_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_11_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FAlijzFrzEsACFt
	jl	.L_small_initial_partial_block_FAlijzFrzEsACFt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FAlijzFrzEsACFt
	jmp	.L_small_initial_compute_done_FAlijzFrzEsACFt_BCM_4
.L_small_initial_partial_block_FAlijzFrzEsACFt_BCM_4:

# 90427 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FAlijzFrzEsACFt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FAlijzFrzEsACFt
	je	.L_after_reduction_FAlijzFrzEsACFt_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_FAlijzFrzEsACFt_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_12_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xdDFiiniApojwBg
	jl	.L_small_initial_partial_block_xdDFiiniApojwBg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xdDFiiniApojwBg
	jmp	.L_small_initial_compute_done_xdDFiiniApojwBg_BCM_4
.L_small_initial_partial_block_xdDFiiniApojwBg_BCM_4:

# 90634 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xdDFiiniApojwBg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xdDFiiniApojwBg
	je	.L_after_reduction_xdDFiiniApojwBg_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_xdDFiiniApojwBg_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_13_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %xmm29,%xmm11,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nwkAjutBGaaatpl
	jl	.L_small_initial_partial_block_nwkAjutBGaaatpl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nwkAjutBGaaatpl
	jmp	.L_small_initial_compute_done_nwkAjutBGaaatpl_BCM_4
.L_small_initial_partial_block_nwkAjutBGaaatpl_BCM_4:

# 90869 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nwkAjutBGaaatpl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nwkAjutBGaaatpl
	je	.L_after_reduction_nwkAjutBGaaatpl_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_nwkAjutBGaaatpl_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_14_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %ymm29,%ymm11,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ffynzdqrsbdreFk
	jl	.L_small_initial_partial_block_ffynzdqrsbdreFk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ffynzdqrsbdreFk
	jmp	.L_small_initial_compute_done_ffynzdqrsbdreFk_BCM_4
.L_small_initial_partial_block_ffynzdqrsbdreFk_BCM_4:

# 91098 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ffynzdqrsbdreFk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ffynzdqrsbdreFk
	je	.L_after_reduction_ffynzdqrsbdreFk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ffynzdqrsbdreFk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_15_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hbmAeclAGCyurof
	jl	.L_small_initial_partial_block_hbmAeclAGCyurof_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hbmAeclAGCyurof
	jmp	.L_small_initial_compute_done_hbmAeclAGCyurof_BCM_4
.L_small_initial_partial_block_hbmAeclAGCyurof_BCM_4:

# 91338 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hbmAeclAGCyurof_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hbmAeclAGCyurof
	je	.L_after_reduction_hbmAeclAGCyurof_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_hbmAeclAGCyurof_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_fAioGdenAmmvupb
	jmp	.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4
.L_small_initial_num_blocks_is_16_fAioGdenAmmvupb_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_fvqkmnelfBwdflt_BCM_4:

# 91507 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fvqkmnelfBwdflt_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_fvqkmnelfBwdflt_BCM_4:

.L_small_initial_blocks_encrypted_fAioGdenAmmvupb_BCM_4:

.L_ghash_done_icBhFhCkojGgnBc_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_icBhFhCkojGgnBc_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_icBhFhCkojGgnBc_BCM_4:

# WAS jmp .Lexit_gcm_decrypt
	jmp	.Lexit_gcm_decrypt_BCM_4
.align 32
.Laes_gcm_decrypt_192_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_efvnrtvwAsfehEC
	je	.L_enc_dec_abort_efvnrtvwAsfehEC_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_Fvzomuuccfdfevt
	je	.L_partial_block_done_Fvzomuuccfdfevt_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3

 vmovdqa64 %xmm0,%xmm6
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_Fvzomuuccfdfevt
	jge	.L_no_extra_mask_Fvzomuuccfdfevt_BCM_4
 subq %r13,%r12
.L_no_extra_mask_Fvzomuuccfdfevt_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
 vpand %xmm0,%xmm6,%xmm6
# WAS vpshufb SHUF_MASK(%rip),%xmm6,%xmm6
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm6, %xmm6
 vpshufb %xmm5,%xmm6,%xmm6
 vpxorq %xmm6,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_Fvzomuuccfdfevt
	jl	.L_partial_incomplete_Fvzomuuccfdfevt_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_Fvzomuuccfdfevt
	jmp	.L_enc_dec_done_Fvzomuuccfdfevt_BCM_4

.L_partial_incomplete_Fvzomuuccfdfevt_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_Fvzomuuccfdfevt_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_Fvzomuuccfdfevt_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_efvnrtvwAsfehEC
	je	.L_enc_dec_done_efvnrtvwAsfehEC_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_efvnrtvwAsfehEC
	jbe	.L_message_below_equal_16_blocks_efvnrtvwAsfehEC_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_bmCGDqjpElhfFfq
	jae	.L_next_16_overflow_bmCGDqjpElhfFfq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_bmCGDqjpElhfFfq
	jmp	.L_next_16_ok_bmCGDqjpElhfFfq_BCM_4
.L_next_16_overflow_bmCGDqjpElhfFfq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_bmCGDqjpElhfFfq_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_mbihlziFEFsDoGE
	jnz	.L_skip_hkeys_precomputation_mbihlziFEFsDoGE_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_mbihlziFEFsDoGE_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_efvnrtvwAsfehEC
	jb	.L_message_below_32_blocks_efvnrtvwAsfehEC_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_lakxgokamypkjgE
	jae	.L_next_16_overflow_lakxgokamypkjgE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_lakxgokamypkjgE
	jmp	.L_next_16_ok_lakxgokamypkjgE_BCM_4
.L_next_16_overflow_lakxgokamypkjgE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_lakxgokamypkjgE_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_jpElfyvBextCmie
	jnz	.L_skip_hkeys_precomputation_jpElfyvBextCmie_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_jpElfyvBextCmie_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_efvnrtvwAsfehEC
	jb	.L_no_more_big_nblocks_efvnrtvwAsfehEC_BCM_4
.L_encrypt_big_nblocks_efvnrtvwAsfehEC_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_AlopGldBavsssnG
	jae	.L_16_blocks_overflow_AlopGldBavsssnG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_AlopGldBavsssnG
	jmp	.L_16_blocks_ok_AlopGldBavsssnG_BCM_4
.L_16_blocks_overflow_AlopGldBavsssnG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_AlopGldBavsssnG_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_gaBCwkclDxgqitC
	jae	.L_16_blocks_overflow_gaBCwkclDxgqitC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_gaBCwkclDxgqitC
	jmp	.L_16_blocks_ok_gaBCwkclDxgqitC_BCM_4
.L_16_blocks_overflow_gaBCwkclDxgqitC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_gaBCwkclDxgqitC_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_Fxngerofutwuigg
	jae	.L_16_blocks_overflow_Fxngerofutwuigg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_Fxngerofutwuigg
	jmp	.L_16_blocks_ok_Fxngerofutwuigg_BCM_4
.L_16_blocks_overflow_Fxngerofutwuigg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_Fxngerofutwuigg_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_efvnrtvwAsfehEC
	jae	.L_encrypt_big_nblocks_efvnrtvwAsfehEC_BCM_4

.L_no_more_big_nblocks_efvnrtvwAsfehEC_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_efvnrtvwAsfehEC
	jae	.L_encrypt_32_blocks_efvnrtvwAsfehEC_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_efvnrtvwAsfehEC
	jae	.L_encrypt_16_blocks_efvnrtvwAsfehEC_BCM_4
.L_encrypt_0_blocks_ghash_32_efvnrtvwAsfehEC_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_0_xtiyCEhGGvgkorn_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_8_xtiyCEhGGvgkorn_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_xtiyCEhGGvgkorn
	jb	.L_last_num_blocks_is_7_1_xtiyCEhGGvgkorn_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_12_xtiyCEhGGvgkorn_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_xtiyCEhGGvgkorn
	jb	.L_last_num_blocks_is_11_9_xtiyCEhGGvgkorn_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_15_xtiyCEhGGvgkorn_BCM_4
# WAS ja .L_last_num_blocks_is_16_xtiyCEhGGvgkorn
	ja	.L_last_num_blocks_is_16_xtiyCEhGGvgkorn_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_14_xtiyCEhGGvgkorn_BCM_4
# WAS jmp .L_last_num_blocks_is_13_xtiyCEhGGvgkorn
	jmp	.L_last_num_blocks_is_13_xtiyCEhGGvgkorn_BCM_4

.L_last_num_blocks_is_11_9_xtiyCEhGGvgkorn_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_10_xtiyCEhGGvgkorn_BCM_4
# WAS ja .L_last_num_blocks_is_11_xtiyCEhGGvgkorn
	ja	.L_last_num_blocks_is_11_xtiyCEhGGvgkorn_BCM_4
# WAS jmp .L_last_num_blocks_is_9_xtiyCEhGGvgkorn
	jmp	.L_last_num_blocks_is_9_xtiyCEhGGvgkorn_BCM_4

.L_last_num_blocks_is_7_1_xtiyCEhGGvgkorn_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_4_xtiyCEhGGvgkorn_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_xtiyCEhGGvgkorn
	jb	.L_last_num_blocks_is_3_1_xtiyCEhGGvgkorn_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_xtiyCEhGGvgkorn
	ja	.L_last_num_blocks_is_7_xtiyCEhGGvgkorn_BCM_4
# WAS je .L_last_num_blocks_is_6_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_6_xtiyCEhGGvgkorn_BCM_4
# WAS jmp .L_last_num_blocks_is_5_xtiyCEhGGvgkorn
	jmp	.L_last_num_blocks_is_5_xtiyCEhGGvgkorn_BCM_4

.L_last_num_blocks_is_3_1_xtiyCEhGGvgkorn_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_xtiyCEhGGvgkorn
	ja	.L_last_num_blocks_is_3_xtiyCEhGGvgkorn_BCM_4
# WAS je .L_last_num_blocks_is_2_xtiyCEhGGvgkorn
	je	.L_last_num_blocks_is_2_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_1_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_nlADBBgdbvxiiEb
	jae	.L_16_blocks_overflow_nlADBBgdbvxiiEb_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_nlADBBgdbvxiiEb
	jmp	.L_16_blocks_ok_nlADBBgdbvxiiEb_BCM_4

.L_16_blocks_overflow_nlADBBgdbvxiiEb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_nlADBBgdbvxiiEb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tqujgvqggqpCibu
	jl	.L_small_initial_partial_block_tqujgvqggqpCibu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tqujgvqggqpCibu
	jmp	.L_small_initial_compute_done_tqujgvqggqpCibu_BCM_4
.L_small_initial_partial_block_tqujgvqggqpCibu_BCM_4:

# 93071 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 93112 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_tqujgvqggqpCibu
	jmp	.L_after_reduction_tqujgvqggqpCibu_BCM_4
.L_small_initial_compute_done_tqujgvqggqpCibu_BCM_4:

.L_after_reduction_tqujgvqggqpCibu_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_2_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_uvnjGlBDyvrfirm
	jae	.L_16_blocks_overflow_uvnjGlBDyvrfirm_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_uvnjGlBDyvrfirm
	jmp	.L_16_blocks_ok_uvnjGlBDyvrfirm_BCM_4

.L_16_blocks_overflow_uvnjGlBDyvrfirm_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_uvnjGlBDyvrfirm_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wDeAjiDoocmqspC
	jl	.L_small_initial_partial_block_wDeAjiDoocmqspC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wDeAjiDoocmqspC
	jmp	.L_small_initial_compute_done_wDeAjiDoocmqspC_BCM_4
.L_small_initial_partial_block_wDeAjiDoocmqspC_BCM_4:

# 93275 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wDeAjiDoocmqspC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wDeAjiDoocmqspC
	je	.L_after_reduction_wDeAjiDoocmqspC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wDeAjiDoocmqspC_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_3_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_FgovsDdCfEGrkbF
	jae	.L_16_blocks_overflow_FgovsDdCfEGrkbF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_FgovsDdCfEGrkbF
	jmp	.L_16_blocks_ok_FgovsDdCfEGrkbF_BCM_4

.L_16_blocks_overflow_FgovsDdCfEGrkbF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_FgovsDdCfEGrkbF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vofcBkyofakpciE
	jl	.L_small_initial_partial_block_vofcBkyofakpciE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vofcBkyofakpciE
	jmp	.L_small_initial_compute_done_vofcBkyofakpciE_BCM_4
.L_small_initial_partial_block_vofcBkyofakpciE_BCM_4:

# 93478 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vofcBkyofakpciE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vofcBkyofakpciE
	je	.L_after_reduction_vofcBkyofakpciE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vofcBkyofakpciE_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_4_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_DlimwiDzackronx
	jae	.L_16_blocks_overflow_DlimwiDzackronx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_DlimwiDzackronx
	jmp	.L_16_blocks_ok_DlimwiDzackronx_BCM_4

.L_16_blocks_overflow_DlimwiDzackronx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_DlimwiDzackronx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_umExCeAmGaBqmig
	jl	.L_small_initial_partial_block_umExCeAmGaBqmig_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_umExCeAmGaBqmig
	jmp	.L_small_initial_compute_done_umExCeAmGaBqmig_BCM_4
.L_small_initial_partial_block_umExCeAmGaBqmig_BCM_4:

# 93681 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_umExCeAmGaBqmig_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_umExCeAmGaBqmig
	je	.L_after_reduction_umExCeAmGaBqmig_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_umExCeAmGaBqmig_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_5_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_qGrgsssqhFxDdtg
	jae	.L_16_blocks_overflow_qGrgsssqhFxDdtg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_qGrgsssqhFxDdtg
	jmp	.L_16_blocks_ok_qGrgsssqhFxDdtg_BCM_4

.L_16_blocks_overflow_qGrgsssqhFxDdtg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_qGrgsssqhFxDdtg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DkwztEgqyefkjcA
	jl	.L_small_initial_partial_block_DkwztEgqyefkjcA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DkwztEgqyefkjcA
	jmp	.L_small_initial_compute_done_DkwztEgqyefkjcA_BCM_4
.L_small_initial_partial_block_DkwztEgqyefkjcA_BCM_4:

# 93913 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DkwztEgqyefkjcA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DkwztEgqyefkjcA
	je	.L_after_reduction_DkwztEgqyefkjcA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DkwztEgqyefkjcA_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_6_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_ufEGEnqpAFAEymx
	jae	.L_16_blocks_overflow_ufEGEnqpAFAEymx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_ufEGEnqpAFAEymx
	jmp	.L_16_blocks_ok_ufEGEnqpAFAEymx_BCM_4

.L_16_blocks_overflow_ufEGEnqpAFAEymx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_ufEGEnqpAFAEymx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AjqanfyCsBedpsg
	jl	.L_small_initial_partial_block_AjqanfyCsBedpsg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AjqanfyCsBedpsg
	jmp	.L_small_initial_compute_done_AjqanfyCsBedpsg_BCM_4
.L_small_initial_partial_block_AjqanfyCsBedpsg_BCM_4:

# 94145 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AjqanfyCsBedpsg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AjqanfyCsBedpsg
	je	.L_after_reduction_AjqanfyCsBedpsg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AjqanfyCsBedpsg_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_7_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_xgpGrqoEEApwzGE
	jae	.L_16_blocks_overflow_xgpGrqoEEApwzGE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_xgpGrqoEEApwzGE
	jmp	.L_16_blocks_ok_xgpGrqoEEApwzGE_BCM_4

.L_16_blocks_overflow_xgpGrqoEEApwzGE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_xgpGrqoEEApwzGE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lrumjmlatrsmlag
	jl	.L_small_initial_partial_block_lrumjmlatrsmlag_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lrumjmlatrsmlag
	jmp	.L_small_initial_compute_done_lrumjmlatrsmlag_BCM_4
.L_small_initial_partial_block_lrumjmlatrsmlag_BCM_4:

# 94384 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lrumjmlatrsmlag_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lrumjmlatrsmlag
	je	.L_after_reduction_lrumjmlatrsmlag_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lrumjmlatrsmlag_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_8_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_DBafwcnsvcxAbsv
	jae	.L_16_blocks_overflow_DBafwcnsvcxAbsv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_DBafwcnsvcxAbsv
	jmp	.L_16_blocks_ok_DBafwcnsvcxAbsv_BCM_4

.L_16_blocks_overflow_DBafwcnsvcxAbsv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_DBafwcnsvcxAbsv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vptqcrjpEiCjEDi
	jl	.L_small_initial_partial_block_vptqcrjpEiCjEDi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vptqcrjpEiCjEDi
	jmp	.L_small_initial_compute_done_vptqcrjpEiCjEDi_BCM_4
.L_small_initial_partial_block_vptqcrjpEiCjEDi_BCM_4:

# 94625 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vptqcrjpEiCjEDi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vptqcrjpEiCjEDi
	je	.L_after_reduction_vptqcrjpEiCjEDi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vptqcrjpEiCjEDi_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_9_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_muonozkGretEzbg
	jae	.L_16_blocks_overflow_muonozkGretEzbg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_muonozkGretEzbg
	jmp	.L_16_blocks_ok_muonozkGretEzbg_BCM_4

.L_16_blocks_overflow_muonozkGretEzbg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_muonozkGretEzbg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tkpprjhbsieissq
	jl	.L_small_initial_partial_block_tkpprjhbsieissq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tkpprjhbsieissq
	jmp	.L_small_initial_compute_done_tkpprjhbsieissq_BCM_4
.L_small_initial_partial_block_tkpprjhbsieissq_BCM_4:

# 94893 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tkpprjhbsieissq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tkpprjhbsieissq
	je	.L_after_reduction_tkpprjhbsieissq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tkpprjhbsieissq_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_10_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_tcxAtedExcFvxwb
	jae	.L_16_blocks_overflow_tcxAtedExcFvxwb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_tcxAtedExcFvxwb
	jmp	.L_16_blocks_ok_tcxAtedExcFvxwb_BCM_4

.L_16_blocks_overflow_tcxAtedExcFvxwb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_tcxAtedExcFvxwb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jcddyvvAxCAjvqC
	jl	.L_small_initial_partial_block_jcddyvvAxCAjvqC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jcddyvvAxCAjvqC
	jmp	.L_small_initial_compute_done_jcddyvvAxCAjvqC_BCM_4
.L_small_initial_partial_block_jcddyvvAxCAjvqC_BCM_4:

# 95163 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jcddyvvAxCAjvqC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jcddyvvAxCAjvqC
	je	.L_after_reduction_jcddyvvAxCAjvqC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jcddyvvAxCAjvqC_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_11_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_oCyoemhjBbobeot
	jae	.L_16_blocks_overflow_oCyoemhjBbobeot_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_oCyoemhjBbobeot
	jmp	.L_16_blocks_ok_oCyoemhjBbobeot_BCM_4

.L_16_blocks_overflow_oCyoemhjBbobeot_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_oCyoemhjBbobeot_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DusiGqzupzswzGi
	jl	.L_small_initial_partial_block_DusiGqzupzswzGi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DusiGqzupzswzGi
	jmp	.L_small_initial_compute_done_DusiGqzupzswzGi_BCM_4
.L_small_initial_partial_block_DusiGqzupzswzGi_BCM_4:

# 95440 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DusiGqzupzswzGi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DusiGqzupzswzGi
	je	.L_after_reduction_DusiGqzupzswzGi_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DusiGqzupzswzGi_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_12_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_rechbAAmkFuppsn
	jae	.L_16_blocks_overflow_rechbAAmkFuppsn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_rechbAAmkFuppsn
	jmp	.L_16_blocks_ok_rechbAAmkFuppsn_BCM_4

.L_16_blocks_overflow_rechbAAmkFuppsn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_rechbAAmkFuppsn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lgDrfakaDoGugoh
	jl	.L_small_initial_partial_block_lgDrfakaDoGugoh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lgDrfakaDoGugoh
	jmp	.L_small_initial_compute_done_lgDrfakaDoGugoh_BCM_4
.L_small_initial_partial_block_lgDrfakaDoGugoh_BCM_4:

# 95715 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lgDrfakaDoGugoh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lgDrfakaDoGugoh
	je	.L_after_reduction_lgDrfakaDoGugoh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lgDrfakaDoGugoh_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_13_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_llFkwrFhuxfvsGD
	jae	.L_16_blocks_overflow_llFkwrFhuxfvsGD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_llFkwrFhuxfvsGD
	jmp	.L_16_blocks_ok_llFkwrFhuxfvsGD_BCM_4

.L_16_blocks_overflow_llFkwrFhuxfvsGD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_llFkwrFhuxfvsGD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qwqiEdfkpnfpFcA
	jl	.L_small_initial_partial_block_qwqiEdfkpnfpFcA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qwqiEdfkpnfpFcA
	jmp	.L_small_initial_compute_done_qwqiEdfkpnfpFcA_BCM_4
.L_small_initial_partial_block_qwqiEdfkpnfpFcA_BCM_4:

# 96017 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qwqiEdfkpnfpFcA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qwqiEdfkpnfpFcA
	je	.L_after_reduction_qwqiEdfkpnfpFcA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qwqiEdfkpnfpFcA_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_14_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_euGgDuqlvgCFoFG
	jae	.L_16_blocks_overflow_euGgDuqlvgCFoFG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_euGgDuqlvgCFoFG
	jmp	.L_16_blocks_ok_euGgDuqlvgCFoFG_BCM_4

.L_16_blocks_overflow_euGgDuqlvgCFoFG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_euGgDuqlvgCFoFG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jAmrCFqArnxiBwr
	jl	.L_small_initial_partial_block_jAmrCFqArnxiBwr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jAmrCFqArnxiBwr
	jmp	.L_small_initial_compute_done_jAmrCFqArnxiBwr_BCM_4
.L_small_initial_partial_block_jAmrCFqArnxiBwr_BCM_4:

# 96317 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jAmrCFqArnxiBwr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jAmrCFqArnxiBwr
	je	.L_after_reduction_jAmrCFqArnxiBwr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jAmrCFqArnxiBwr_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_15_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_pFsoEbjdpyaFdzt
	jae	.L_16_blocks_overflow_pFsoEbjdpyaFdzt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_pFsoEbjdpyaFdzt
	jmp	.L_16_blocks_ok_pFsoEbjdpyaFdzt_BCM_4

.L_16_blocks_overflow_pFsoEbjdpyaFdzt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_pFsoEbjdpyaFdzt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ynvaqdiwqpExsAh
	jl	.L_small_initial_partial_block_ynvaqdiwqpExsAh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ynvaqdiwqpExsAh
	jmp	.L_small_initial_compute_done_ynvaqdiwqpExsAh_BCM_4
.L_small_initial_partial_block_ynvaqdiwqpExsAh_BCM_4:

# 96624 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ynvaqdiwqpExsAh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ynvaqdiwqpExsAh
	je	.L_after_reduction_ynvaqdiwqpExsAh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ynvaqdiwqpExsAh_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_16_xtiyCEhGGvgkorn_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_lxzkkenajCqycbF
	jae	.L_16_blocks_overflow_lxzkkenajCqycbF_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_lxzkkenajCqycbF
	jmp	.L_16_blocks_ok_lxzkkenajCqycbF_BCM_4

.L_16_blocks_overflow_lxzkkenajCqycbF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_lxzkkenajCqycbF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_rerkgBbyampldto_BCM_4:

# 96861 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rerkgBbyampldto_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rerkgBbyampldto_BCM_4:

# WAS jmp .L_last_blocks_done_xtiyCEhGGvgkorn
	jmp	.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4
.L_last_num_blocks_is_0_xtiyCEhGGvgkorn_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_xtiyCEhGGvgkorn_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_efvnrtvwAsfehEC
	jmp	.L_ghash_done_efvnrtvwAsfehEC_BCM_4
.L_encrypt_32_blocks_efvnrtvwAsfehEC_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_kzaebDdDwylbAcu
	jae	.L_16_blocks_overflow_kzaebDdDwylbAcu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_kzaebDdDwylbAcu
	jmp	.L_16_blocks_ok_kzaebDdDwylbAcu_BCM_4
.L_16_blocks_overflow_kzaebDdDwylbAcu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_kzaebDdDwylbAcu_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_hfufmxvqjkdtxiG
	jae	.L_16_blocks_overflow_hfufmxvqjkdtxiG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_hfufmxvqjkdtxiG
	jmp	.L_16_blocks_ok_hfufmxvqjkdtxiG_BCM_4
.L_16_blocks_overflow_hfufmxvqjkdtxiG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_hfufmxvqjkdtxiG_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_0_nGrjyBwfEzyFAvA_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_8_nGrjyBwfEzyFAvA_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_nGrjyBwfEzyFAvA
	jb	.L_last_num_blocks_is_7_1_nGrjyBwfEzyFAvA_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_12_nGrjyBwfEzyFAvA_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_nGrjyBwfEzyFAvA
	jb	.L_last_num_blocks_is_11_9_nGrjyBwfEzyFAvA_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_15_nGrjyBwfEzyFAvA_BCM_4
# WAS ja .L_last_num_blocks_is_16_nGrjyBwfEzyFAvA
	ja	.L_last_num_blocks_is_16_nGrjyBwfEzyFAvA_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_14_nGrjyBwfEzyFAvA_BCM_4
# WAS jmp .L_last_num_blocks_is_13_nGrjyBwfEzyFAvA
	jmp	.L_last_num_blocks_is_13_nGrjyBwfEzyFAvA_BCM_4

.L_last_num_blocks_is_11_9_nGrjyBwfEzyFAvA_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_10_nGrjyBwfEzyFAvA_BCM_4
# WAS ja .L_last_num_blocks_is_11_nGrjyBwfEzyFAvA
	ja	.L_last_num_blocks_is_11_nGrjyBwfEzyFAvA_BCM_4
# WAS jmp .L_last_num_blocks_is_9_nGrjyBwfEzyFAvA
	jmp	.L_last_num_blocks_is_9_nGrjyBwfEzyFAvA_BCM_4

.L_last_num_blocks_is_7_1_nGrjyBwfEzyFAvA_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_4_nGrjyBwfEzyFAvA_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_nGrjyBwfEzyFAvA
	jb	.L_last_num_blocks_is_3_1_nGrjyBwfEzyFAvA_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_nGrjyBwfEzyFAvA
	ja	.L_last_num_blocks_is_7_nGrjyBwfEzyFAvA_BCM_4
# WAS je .L_last_num_blocks_is_6_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_6_nGrjyBwfEzyFAvA_BCM_4
# WAS jmp .L_last_num_blocks_is_5_nGrjyBwfEzyFAvA
	jmp	.L_last_num_blocks_is_5_nGrjyBwfEzyFAvA_BCM_4

.L_last_num_blocks_is_3_1_nGrjyBwfEzyFAvA_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_nGrjyBwfEzyFAvA
	ja	.L_last_num_blocks_is_3_nGrjyBwfEzyFAvA_BCM_4
# WAS je .L_last_num_blocks_is_2_nGrjyBwfEzyFAvA
	je	.L_last_num_blocks_is_2_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_1_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_mklqBGCbyBjeEom
	jae	.L_16_blocks_overflow_mklqBGCbyBjeEom_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_mklqBGCbyBjeEom
	jmp	.L_16_blocks_ok_mklqBGCbyBjeEom_BCM_4

.L_16_blocks_overflow_mklqBGCbyBjeEom_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_mklqBGCbyBjeEom_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AljAsgffjDBAEDB
	jl	.L_small_initial_partial_block_AljAsgffjDBAEDB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AljAsgffjDBAEDB
	jmp	.L_small_initial_compute_done_AljAsgffjDBAEDB_BCM_4
.L_small_initial_partial_block_AljAsgffjDBAEDB_BCM_4:

# 97642 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 97683 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_AljAsgffjDBAEDB
	jmp	.L_after_reduction_AljAsgffjDBAEDB_BCM_4
.L_small_initial_compute_done_AljAsgffjDBAEDB_BCM_4:

.L_after_reduction_AljAsgffjDBAEDB_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_2_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_ADzEaGzEEnztayt
	jae	.L_16_blocks_overflow_ADzEaGzEEnztayt_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_ADzEaGzEEnztayt
	jmp	.L_16_blocks_ok_ADzEaGzEEnztayt_BCM_4

.L_16_blocks_overflow_ADzEaGzEEnztayt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_ADzEaGzEEnztayt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_awmEjFhlgwizrsw
	jl	.L_small_initial_partial_block_awmEjFhlgwizrsw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_awmEjFhlgwizrsw
	jmp	.L_small_initial_compute_done_awmEjFhlgwizrsw_BCM_4
.L_small_initial_partial_block_awmEjFhlgwizrsw_BCM_4:

# 97846 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_awmEjFhlgwizrsw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_awmEjFhlgwizrsw
	je	.L_after_reduction_awmEjFhlgwizrsw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_awmEjFhlgwizrsw_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_3_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_lcaBxDbeGChbeFD
	jae	.L_16_blocks_overflow_lcaBxDbeGChbeFD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_lcaBxDbeGChbeFD
	jmp	.L_16_blocks_ok_lcaBxDbeGChbeFD_BCM_4

.L_16_blocks_overflow_lcaBxDbeGChbeFD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_lcaBxDbeGChbeFD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mBDBtxmxpwzmxwj
	jl	.L_small_initial_partial_block_mBDBtxmxpwzmxwj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mBDBtxmxpwzmxwj
	jmp	.L_small_initial_compute_done_mBDBtxmxpwzmxwj_BCM_4
.L_small_initial_partial_block_mBDBtxmxpwzmxwj_BCM_4:

# 98049 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mBDBtxmxpwzmxwj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mBDBtxmxpwzmxwj
	je	.L_after_reduction_mBDBtxmxpwzmxwj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mBDBtxmxpwzmxwj_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_4_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_pawpbdkivckxDwC
	jae	.L_16_blocks_overflow_pawpbdkivckxDwC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_pawpbdkivckxDwC
	jmp	.L_16_blocks_ok_pawpbdkivckxDwC_BCM_4

.L_16_blocks_overflow_pawpbdkivckxDwC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_pawpbdkivckxDwC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wubpbikcrdlgswu
	jl	.L_small_initial_partial_block_wubpbikcrdlgswu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wubpbikcrdlgswu
	jmp	.L_small_initial_compute_done_wubpbikcrdlgswu_BCM_4
.L_small_initial_partial_block_wubpbikcrdlgswu_BCM_4:

# 98252 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wubpbikcrdlgswu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wubpbikcrdlgswu
	je	.L_after_reduction_wubpbikcrdlgswu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wubpbikcrdlgswu_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_5_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_DaxgvFmGcDpdBDr
	jae	.L_16_blocks_overflow_DaxgvFmGcDpdBDr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_DaxgvFmGcDpdBDr
	jmp	.L_16_blocks_ok_DaxgvFmGcDpdBDr_BCM_4

.L_16_blocks_overflow_DaxgvFmGcDpdBDr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_DaxgvFmGcDpdBDr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wfpxmlzpEjGxgfg
	jl	.L_small_initial_partial_block_wfpxmlzpEjGxgfg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wfpxmlzpEjGxgfg
	jmp	.L_small_initial_compute_done_wfpxmlzpEjGxgfg_BCM_4
.L_small_initial_partial_block_wfpxmlzpEjGxgfg_BCM_4:

# 98484 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wfpxmlzpEjGxgfg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wfpxmlzpEjGxgfg
	je	.L_after_reduction_wfpxmlzpEjGxgfg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wfpxmlzpEjGxgfg_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_6_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_GCBuEfGizfDEkbf
	jae	.L_16_blocks_overflow_GCBuEfGizfDEkbf_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_GCBuEfGizfDEkbf
	jmp	.L_16_blocks_ok_GCBuEfGizfDEkbf_BCM_4

.L_16_blocks_overflow_GCBuEfGizfDEkbf_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_GCBuEfGizfDEkbf_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_bsGacaiacduekkh
	jl	.L_small_initial_partial_block_bsGacaiacduekkh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_bsGacaiacduekkh
	jmp	.L_small_initial_compute_done_bsGacaiacduekkh_BCM_4
.L_small_initial_partial_block_bsGacaiacduekkh_BCM_4:

# 98716 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_bsGacaiacduekkh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_bsGacaiacduekkh
	je	.L_after_reduction_bsGacaiacduekkh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_bsGacaiacduekkh_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_7_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_sxxwCglaApctqvC
	jae	.L_16_blocks_overflow_sxxwCglaApctqvC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_sxxwCglaApctqvC
	jmp	.L_16_blocks_ok_sxxwCglaApctqvC_BCM_4

.L_16_blocks_overflow_sxxwCglaApctqvC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_sxxwCglaApctqvC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yiCblticDBdDvqz
	jl	.L_small_initial_partial_block_yiCblticDBdDvqz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yiCblticDBdDvqz
	jmp	.L_small_initial_compute_done_yiCblticDBdDvqz_BCM_4
.L_small_initial_partial_block_yiCblticDBdDvqz_BCM_4:

# 98955 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yiCblticDBdDvqz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yiCblticDBdDvqz
	je	.L_after_reduction_yiCblticDBdDvqz_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yiCblticDBdDvqz_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_8_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_CnnuddjEBnFGdsj
	jae	.L_16_blocks_overflow_CnnuddjEBnFGdsj_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_CnnuddjEBnFGdsj
	jmp	.L_16_blocks_ok_CnnuddjEBnFGdsj_BCM_4

.L_16_blocks_overflow_CnnuddjEBnFGdsj_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_CnnuddjEBnFGdsj_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ozBrEzEFaraubuw
	jl	.L_small_initial_partial_block_ozBrEzEFaraubuw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ozBrEzEFaraubuw
	jmp	.L_small_initial_compute_done_ozBrEzEFaraubuw_BCM_4
.L_small_initial_partial_block_ozBrEzEFaraubuw_BCM_4:

# 99196 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ozBrEzEFaraubuw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ozBrEzEFaraubuw
	je	.L_after_reduction_ozBrEzEFaraubuw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ozBrEzEFaraubuw_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_9_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_jwawBbqsGrnbEEd
	jae	.L_16_blocks_overflow_jwawBbqsGrnbEEd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_jwawBbqsGrnbEEd
	jmp	.L_16_blocks_ok_jwawBbqsGrnbEEd_BCM_4

.L_16_blocks_overflow_jwawBbqsGrnbEEd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_jwawBbqsGrnbEEd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FtmdhyAthqlklcF
	jl	.L_small_initial_partial_block_FtmdhyAthqlklcF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FtmdhyAthqlklcF
	jmp	.L_small_initial_compute_done_FtmdhyAthqlklcF_BCM_4
.L_small_initial_partial_block_FtmdhyAthqlklcF_BCM_4:

# 99464 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FtmdhyAthqlklcF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FtmdhyAthqlklcF
	je	.L_after_reduction_FtmdhyAthqlklcF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FtmdhyAthqlklcF_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_10_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_bEhtipvqjwytqAA
	jae	.L_16_blocks_overflow_bEhtipvqjwytqAA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_bEhtipvqjwytqAA
	jmp	.L_16_blocks_ok_bEhtipvqjwytqAA_BCM_4

.L_16_blocks_overflow_bEhtipvqjwytqAA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_bEhtipvqjwytqAA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dGfczcdzdkvubwf
	jl	.L_small_initial_partial_block_dGfczcdzdkvubwf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dGfczcdzdkvubwf
	jmp	.L_small_initial_compute_done_dGfczcdzdkvubwf_BCM_4
.L_small_initial_partial_block_dGfczcdzdkvubwf_BCM_4:

# 99734 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dGfczcdzdkvubwf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dGfczcdzdkvubwf
	je	.L_after_reduction_dGfczcdzdkvubwf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dGfczcdzdkvubwf_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_11_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_peywgEttBymhlkG
	jae	.L_16_blocks_overflow_peywgEttBymhlkG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_peywgEttBymhlkG
	jmp	.L_16_blocks_ok_peywgEttBymhlkG_BCM_4

.L_16_blocks_overflow_peywgEttBymhlkG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_peywgEttBymhlkG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kGoguFjBsnAyegA
	jl	.L_small_initial_partial_block_kGoguFjBsnAyegA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kGoguFjBsnAyegA
	jmp	.L_small_initial_compute_done_kGoguFjBsnAyegA_BCM_4
.L_small_initial_partial_block_kGoguFjBsnAyegA_BCM_4:

# 100011 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kGoguFjBsnAyegA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kGoguFjBsnAyegA
	je	.L_after_reduction_kGoguFjBsnAyegA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kGoguFjBsnAyegA_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_12_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_pfftEtegsrsinbs
	jae	.L_16_blocks_overflow_pfftEtegsrsinbs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_pfftEtegsrsinbs
	jmp	.L_16_blocks_ok_pfftEtegsrsinbs_BCM_4

.L_16_blocks_overflow_pfftEtegsrsinbs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_pfftEtegsrsinbs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_epFvAomFdDAhsfr
	jl	.L_small_initial_partial_block_epFvAomFdDAhsfr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_epFvAomFdDAhsfr
	jmp	.L_small_initial_compute_done_epFvAomFdDAhsfr_BCM_4
.L_small_initial_partial_block_epFvAomFdDAhsfr_BCM_4:

# 100286 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_epFvAomFdDAhsfr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_epFvAomFdDAhsfr
	je	.L_after_reduction_epFvAomFdDAhsfr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_epFvAomFdDAhsfr_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_13_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_hoEpuvlFtAdDDCj
	jae	.L_16_blocks_overflow_hoEpuvlFtAdDDCj_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_hoEpuvlFtAdDDCj
	jmp	.L_16_blocks_ok_hoEpuvlFtAdDDCj_BCM_4

.L_16_blocks_overflow_hoEpuvlFtAdDDCj_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_hoEpuvlFtAdDDCj_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lwaCfdsabqxsDae
	jl	.L_small_initial_partial_block_lwaCfdsabqxsDae_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lwaCfdsabqxsDae
	jmp	.L_small_initial_compute_done_lwaCfdsabqxsDae_BCM_4
.L_small_initial_partial_block_lwaCfdsabqxsDae_BCM_4:

# 100588 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lwaCfdsabqxsDae_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lwaCfdsabqxsDae
	je	.L_after_reduction_lwaCfdsabqxsDae_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lwaCfdsabqxsDae_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_14_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_kDibsGzbehdlyln
	jae	.L_16_blocks_overflow_kDibsGzbehdlyln_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_kDibsGzbehdlyln
	jmp	.L_16_blocks_ok_kDibsGzbehdlyln_BCM_4

.L_16_blocks_overflow_kDibsGzbehdlyln_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_kDibsGzbehdlyln_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aygEgEvDgGbktBd
	jl	.L_small_initial_partial_block_aygEgEvDgGbktBd_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aygEgEvDgGbktBd
	jmp	.L_small_initial_compute_done_aygEgEvDgGbktBd_BCM_4
.L_small_initial_partial_block_aygEgEvDgGbktBd_BCM_4:

# 100888 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aygEgEvDgGbktBd_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aygEgEvDgGbktBd
	je	.L_after_reduction_aygEgEvDgGbktBd_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aygEgEvDgGbktBd_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_15_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_vejCgbGykbnkAnl
	jae	.L_16_blocks_overflow_vejCgbGykbnkAnl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_vejCgbGykbnkAnl
	jmp	.L_16_blocks_ok_vejCgbGykbnkAnl_BCM_4

.L_16_blocks_overflow_vejCgbGykbnkAnl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_vejCgbGykbnkAnl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AeaGuuDepzdAfkw
	jl	.L_small_initial_partial_block_AeaGuuDepzdAfkw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AeaGuuDepzdAfkw
	jmp	.L_small_initial_compute_done_AeaGuuDepzdAfkw_BCM_4
.L_small_initial_partial_block_AeaGuuDepzdAfkw_BCM_4:

# 101195 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AeaGuuDepzdAfkw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AeaGuuDepzdAfkw
	je	.L_after_reduction_AeaGuuDepzdAfkw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AeaGuuDepzdAfkw_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_16_nGrjyBwfEzyFAvA_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_oEmrkvwdwsmBgef
	jae	.L_16_blocks_overflow_oEmrkvwdwsmBgef_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_oEmrkvwdwsmBgef
	jmp	.L_16_blocks_ok_oEmrkvwdwsmBgef_BCM_4

.L_16_blocks_overflow_oEmrkvwdwsmBgef_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_oEmrkvwdwsmBgef_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_emEtFnwcsvbsGee_BCM_4:

# 101432 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_emEtFnwcsvbsGee_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_emEtFnwcsvbsGee_BCM_4:

# WAS jmp .L_last_blocks_done_nGrjyBwfEzyFAvA
	jmp	.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4
.L_last_num_blocks_is_0_nGrjyBwfEzyFAvA_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_nGrjyBwfEzyFAvA_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_efvnrtvwAsfehEC
	jmp	.L_ghash_done_efvnrtvwAsfehEC_BCM_4
.L_encrypt_16_blocks_efvnrtvwAsfehEC_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_evgrutpeAjmaukd
	jae	.L_16_blocks_overflow_evgrutpeAjmaukd_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_evgrutpeAjmaukd
	jmp	.L_16_blocks_ok_evgrutpeAjmaukd_BCM_4
.L_16_blocks_overflow_evgrutpeAjmaukd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_evgrutpeAjmaukd_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_0_FBaFgdErDhzlksr_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_8_FBaFgdErDhzlksr_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_FBaFgdErDhzlksr
	jb	.L_last_num_blocks_is_7_1_FBaFgdErDhzlksr_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_12_FBaFgdErDhzlksr_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_FBaFgdErDhzlksr
	jb	.L_last_num_blocks_is_11_9_FBaFgdErDhzlksr_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_15_FBaFgdErDhzlksr_BCM_4
# WAS ja .L_last_num_blocks_is_16_FBaFgdErDhzlksr
	ja	.L_last_num_blocks_is_16_FBaFgdErDhzlksr_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_14_FBaFgdErDhzlksr_BCM_4
# WAS jmp .L_last_num_blocks_is_13_FBaFgdErDhzlksr
	jmp	.L_last_num_blocks_is_13_FBaFgdErDhzlksr_BCM_4

.L_last_num_blocks_is_11_9_FBaFgdErDhzlksr_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_10_FBaFgdErDhzlksr_BCM_4
# WAS ja .L_last_num_blocks_is_11_FBaFgdErDhzlksr
	ja	.L_last_num_blocks_is_11_FBaFgdErDhzlksr_BCM_4
# WAS jmp .L_last_num_blocks_is_9_FBaFgdErDhzlksr
	jmp	.L_last_num_blocks_is_9_FBaFgdErDhzlksr_BCM_4

.L_last_num_blocks_is_7_1_FBaFgdErDhzlksr_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_4_FBaFgdErDhzlksr_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_FBaFgdErDhzlksr
	jb	.L_last_num_blocks_is_3_1_FBaFgdErDhzlksr_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_FBaFgdErDhzlksr
	ja	.L_last_num_blocks_is_7_FBaFgdErDhzlksr_BCM_4
# WAS je .L_last_num_blocks_is_6_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_6_FBaFgdErDhzlksr_BCM_4
# WAS jmp .L_last_num_blocks_is_5_FBaFgdErDhzlksr
	jmp	.L_last_num_blocks_is_5_FBaFgdErDhzlksr_BCM_4

.L_last_num_blocks_is_3_1_FBaFgdErDhzlksr_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_FBaFgdErDhzlksr
	ja	.L_last_num_blocks_is_3_FBaFgdErDhzlksr_BCM_4
# WAS je .L_last_num_blocks_is_2_FBaFgdErDhzlksr
	je	.L_last_num_blocks_is_2_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_1_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_EztzACczExrozqe
	jae	.L_16_blocks_overflow_EztzACczExrozqe_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_EztzACczExrozqe
	jmp	.L_16_blocks_ok_EztzACczExrozqe_BCM_4

.L_16_blocks_overflow_EztzACczExrozqe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_EztzACczExrozqe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CCCssCzirDpGCgu
	jl	.L_small_initial_partial_block_CCCssCzirDpGCgu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CCCssCzirDpGCgu
	jmp	.L_small_initial_compute_done_CCCssCzirDpGCgu_BCM_4
.L_small_initial_partial_block_CCCssCzirDpGCgu_BCM_4:

# 102011 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 102024 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_CCCssCzirDpGCgu
	jmp	.L_after_reduction_CCCssCzirDpGCgu_BCM_4
.L_small_initial_compute_done_CCCssCzirDpGCgu_BCM_4:

.L_after_reduction_CCCssCzirDpGCgu_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_2_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_ddpheeylmysesqA
	jae	.L_16_blocks_overflow_ddpheeylmysesqA_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_ddpheeylmysesqA
	jmp	.L_16_blocks_ok_ddpheeylmysesqA_BCM_4

.L_16_blocks_overflow_ddpheeylmysesqA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_ddpheeylmysesqA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kEwhkniEotxddri
	jl	.L_small_initial_partial_block_kEwhkniEotxddri_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kEwhkniEotxddri
	jmp	.L_small_initial_compute_done_kEwhkniEotxddri_BCM_4
.L_small_initial_partial_block_kEwhkniEotxddri_BCM_4:

# 102208 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kEwhkniEotxddri_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kEwhkniEotxddri
	je	.L_after_reduction_kEwhkniEotxddri_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kEwhkniEotxddri_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_3_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_vAzgdsEEohhszlv
	jae	.L_16_blocks_overflow_vAzgdsEEohhszlv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_vAzgdsEEohhszlv
	jmp	.L_16_blocks_ok_vAzgdsEEohhszlv_BCM_4

.L_16_blocks_overflow_vAzgdsEEohhszlv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_vAzgdsEEohhszlv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vgpvCquElabkfFm
	jl	.L_small_initial_partial_block_vgpvCquElabkfFm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vgpvCquElabkfFm
	jmp	.L_small_initial_compute_done_vgpvCquElabkfFm_BCM_4
.L_small_initial_partial_block_vgpvCquElabkfFm_BCM_4:

# 102430 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vgpvCquElabkfFm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vgpvCquElabkfFm
	je	.L_after_reduction_vgpvCquElabkfFm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vgpvCquElabkfFm_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_4_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_ciiDnbwsdfFhyEA
	jae	.L_16_blocks_overflow_ciiDnbwsdfFhyEA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_ciiDnbwsdfFhyEA
	jmp	.L_16_blocks_ok_ciiDnbwsdfFhyEA_BCM_4

.L_16_blocks_overflow_ciiDnbwsdfFhyEA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_ciiDnbwsdfFhyEA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BmnofkldoqxnfuE
	jl	.L_small_initial_partial_block_BmnofkldoqxnfuE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BmnofkldoqxnfuE
	jmp	.L_small_initial_compute_done_BmnofkldoqxnfuE_BCM_4
.L_small_initial_partial_block_BmnofkldoqxnfuE_BCM_4:

# 102651 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BmnofkldoqxnfuE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BmnofkldoqxnfuE
	je	.L_after_reduction_BmnofkldoqxnfuE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BmnofkldoqxnfuE_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_5_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_AGvFmhBetCxAviv
	jae	.L_16_blocks_overflow_AGvFmhBetCxAviv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_AGvFmhBetCxAviv
	jmp	.L_16_blocks_ok_AGvFmhBetCxAviv_BCM_4

.L_16_blocks_overflow_AGvFmhBetCxAviv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_AGvFmhBetCxAviv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tnjvAdygufmEFFh
	jl	.L_small_initial_partial_block_tnjvAdygufmEFFh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tnjvAdygufmEFFh
	jmp	.L_small_initial_compute_done_tnjvAdygufmEFFh_BCM_4
.L_small_initial_partial_block_tnjvAdygufmEFFh_BCM_4:

# 102905 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tnjvAdygufmEFFh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tnjvAdygufmEFFh
	je	.L_after_reduction_tnjvAdygufmEFFh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tnjvAdygufmEFFh_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_6_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_sjympigbCCDhsDn
	jae	.L_16_blocks_overflow_sjympigbCCDhsDn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_sjympigbCCDhsDn
	jmp	.L_16_blocks_ok_sjympigbCCDhsDn_BCM_4

.L_16_blocks_overflow_sjympigbCCDhsDn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_sjympigbCCDhsDn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cnyvDpbBAuzhoGm
	jl	.L_small_initial_partial_block_cnyvDpbBAuzhoGm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cnyvDpbBAuzhoGm
	jmp	.L_small_initial_compute_done_cnyvDpbBAuzhoGm_BCM_4
.L_small_initial_partial_block_cnyvDpbBAuzhoGm_BCM_4:

# 103158 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cnyvDpbBAuzhoGm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cnyvDpbBAuzhoGm
	je	.L_after_reduction_cnyvDpbBAuzhoGm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cnyvDpbBAuzhoGm_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_7_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_puBiejaewnoDvka
	jae	.L_16_blocks_overflow_puBiejaewnoDvka_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_puBiejaewnoDvka
	jmp	.L_16_blocks_ok_puBiejaewnoDvka_BCM_4

.L_16_blocks_overflow_puBiejaewnoDvka_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_puBiejaewnoDvka_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kEkkBlBkynveErA
	jl	.L_small_initial_partial_block_kEkkBlBkynveErA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kEkkBlBkynveErA
	jmp	.L_small_initial_compute_done_kEkkBlBkynveErA_BCM_4
.L_small_initial_partial_block_kEkkBlBkynveErA_BCM_4:

# 103422 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kEkkBlBkynveErA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kEkkBlBkynveErA
	je	.L_after_reduction_kEkkBlBkynveErA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kEkkBlBkynveErA_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_8_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_eaeCeiduedGDdDq
	jae	.L_16_blocks_overflow_eaeCeiduedGDdDq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_eaeCeiduedGDdDq
	jmp	.L_16_blocks_ok_eaeCeiduedGDdDq_BCM_4

.L_16_blocks_overflow_eaeCeiduedGDdDq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_eaeCeiduedGDdDq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qsuohqatcFrqreB
	jl	.L_small_initial_partial_block_qsuohqatcFrqreB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qsuohqatcFrqreB
	jmp	.L_small_initial_compute_done_qsuohqatcFrqreB_BCM_4
.L_small_initial_partial_block_qsuohqatcFrqreB_BCM_4:

# 103684 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qsuohqatcFrqreB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qsuohqatcFrqreB
	je	.L_after_reduction_qsuohqatcFrqreB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qsuohqatcFrqreB_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_9_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_zgrBucdeiivwwje
	jae	.L_16_blocks_overflow_zgrBucdeiivwwje_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_zgrBucdeiivwwje
	jmp	.L_16_blocks_ok_zgrBucdeiivwwje_BCM_4

.L_16_blocks_overflow_zgrBucdeiivwwje_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_zgrBucdeiivwwje_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BobokvzEgBCGCux
	jl	.L_small_initial_partial_block_BobokvzEgBCGCux_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BobokvzEgBCGCux
	jmp	.L_small_initial_compute_done_BobokvzEgBCGCux_BCM_4
.L_small_initial_partial_block_BobokvzEgBCGCux_BCM_4:

# 103977 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BobokvzEgBCGCux_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BobokvzEgBCGCux
	je	.L_after_reduction_BobokvzEgBCGCux_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BobokvzEgBCGCux_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_10_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_rqjyEzzCiBijwho
	jae	.L_16_blocks_overflow_rqjyEzzCiBijwho_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_rqjyEzzCiBijwho
	jmp	.L_16_blocks_ok_rqjyEzzCiBijwho_BCM_4

.L_16_blocks_overflow_rqjyEzzCiBijwho_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_rqjyEzzCiBijwho_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gptBtCibyiDhlou
	jl	.L_small_initial_partial_block_gptBtCibyiDhlou_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gptBtCibyiDhlou
	jmp	.L_small_initial_compute_done_gptBtCibyiDhlou_BCM_4
.L_small_initial_partial_block_gptBtCibyiDhlou_BCM_4:

# 104268 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gptBtCibyiDhlou_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gptBtCibyiDhlou
	je	.L_after_reduction_gptBtCibyiDhlou_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gptBtCibyiDhlou_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_11_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_udirAnChEpiDCdb
	jae	.L_16_blocks_overflow_udirAnChEpiDCdb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_udirAnChEpiDCdb
	jmp	.L_16_blocks_ok_udirAnChEpiDCdb_BCM_4

.L_16_blocks_overflow_udirAnChEpiDCdb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_udirAnChEpiDCdb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EuymoBDpuhDzkkw
	jl	.L_small_initial_partial_block_EuymoBDpuhDzkkw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EuymoBDpuhDzkkw
	jmp	.L_small_initial_compute_done_EuymoBDpuhDzkkw_BCM_4
.L_small_initial_partial_block_EuymoBDpuhDzkkw_BCM_4:

# 104570 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EuymoBDpuhDzkkw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EuymoBDpuhDzkkw
	je	.L_after_reduction_EuymoBDpuhDzkkw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EuymoBDpuhDzkkw_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_12_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_nCrveguADGnpgFu
	jae	.L_16_blocks_overflow_nCrveguADGnpgFu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_nCrveguADGnpgFu
	jmp	.L_16_blocks_ok_nCrveguADGnpgFu_BCM_4

.L_16_blocks_overflow_nCrveguADGnpgFu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_nCrveguADGnpgFu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EbClbforwjDGhdq
	jl	.L_small_initial_partial_block_EbClbforwjDGhdq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EbClbforwjDGhdq
	jmp	.L_small_initial_compute_done_EbClbforwjDGhdq_BCM_4
.L_small_initial_partial_block_EbClbforwjDGhdq_BCM_4:

# 104866 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EbClbforwjDGhdq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EbClbforwjDGhdq
	je	.L_after_reduction_EbClbforwjDGhdq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EbClbforwjDGhdq_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_13_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_FuAeDsuGfAcCbnh
	jae	.L_16_blocks_overflow_FuAeDsuGfAcCbnh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_FuAeDsuGfAcCbnh
	jmp	.L_16_blocks_ok_FuAeDsuGfAcCbnh_BCM_4

.L_16_blocks_overflow_FuAeDsuGfAcCbnh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_FuAeDsuGfAcCbnh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GdeeilznaFbDlhh
	jl	.L_small_initial_partial_block_GdeeilznaFbDlhh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GdeeilznaFbDlhh
	jmp	.L_small_initial_compute_done_GdeeilznaFbDlhh_BCM_4
.L_small_initial_partial_block_GdeeilznaFbDlhh_BCM_4:

# 105193 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GdeeilznaFbDlhh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GdeeilznaFbDlhh
	je	.L_after_reduction_GdeeilznaFbDlhh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GdeeilznaFbDlhh_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_14_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_FvEhyckDsphilDy
	jae	.L_16_blocks_overflow_FvEhyckDsphilDy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_FvEhyckDsphilDy
	jmp	.L_16_blocks_ok_FvEhyckDsphilDy_BCM_4

.L_16_blocks_overflow_FvEhyckDsphilDy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_FvEhyckDsphilDy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_fkoDbsekulkxCkw
	jl	.L_small_initial_partial_block_fkoDbsekulkxCkw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_fkoDbsekulkxCkw
	jmp	.L_small_initial_compute_done_fkoDbsekulkxCkw_BCM_4
.L_small_initial_partial_block_fkoDbsekulkxCkw_BCM_4:

# 105514 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fkoDbsekulkxCkw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_fkoDbsekulkxCkw
	je	.L_after_reduction_fkoDbsekulkxCkw_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_fkoDbsekulkxCkw_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_15_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_lpConoqwylkjlwn
	jae	.L_16_blocks_overflow_lpConoqwylkjlwn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_lpConoqwylkjlwn
	jmp	.L_16_blocks_ok_lpConoqwylkjlwn_BCM_4

.L_16_blocks_overflow_lpConoqwylkjlwn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_lpConoqwylkjlwn_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DbmjnDvmvfAywny
	jl	.L_small_initial_partial_block_DbmjnDvmvfAywny_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DbmjnDvmvfAywny
	jmp	.L_small_initial_compute_done_DbmjnDvmvfAywny_BCM_4
.L_small_initial_partial_block_DbmjnDvmvfAywny_BCM_4:

# 105846 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DbmjnDvmvfAywny_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DbmjnDvmvfAywny
	je	.L_after_reduction_DbmjnDvmvfAywny_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_DbmjnDvmvfAywny_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_16_FBaFgdErDhzlksr_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_vhaFwxkrByAhtie
	jae	.L_16_blocks_overflow_vhaFwxkrByAhtie_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_vhaFwxkrByAhtie
	jmp	.L_16_blocks_ok_vhaFwxkrByAhtie_BCM_4

.L_16_blocks_overflow_vhaFwxkrByAhtie_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_vhaFwxkrByAhtie_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_ciyykzjryphtjAc_BCM_4:

# 106107 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ciyykzjryphtjAc_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ciyykzjryphtjAc_BCM_4:

# WAS jmp .L_last_blocks_done_FBaFgdErDhzlksr
	jmp	.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4
.L_last_num_blocks_is_0_FBaFgdErDhzlksr_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_FBaFgdErDhzlksr_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_efvnrtvwAsfehEC
	jmp	.L_ghash_done_efvnrtvwAsfehEC_BCM_4

.L_message_below_32_blocks_efvnrtvwAsfehEC_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_yBFabBiEpjEBBsr
	jnz	.L_skip_hkeys_precomputation_yBFabBiEpjEBBsr_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_yBFabBiEpjEBBsr_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_0_cuuhesezwjvjmyk_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_8_cuuhesezwjvjmyk_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_cuuhesezwjvjmyk
	jb	.L_last_num_blocks_is_7_1_cuuhesezwjvjmyk_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_12_cuuhesezwjvjmyk_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_cuuhesezwjvjmyk
	jb	.L_last_num_blocks_is_11_9_cuuhesezwjvjmyk_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_15_cuuhesezwjvjmyk_BCM_4
# WAS ja .L_last_num_blocks_is_16_cuuhesezwjvjmyk
	ja	.L_last_num_blocks_is_16_cuuhesezwjvjmyk_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_14_cuuhesezwjvjmyk_BCM_4
# WAS jmp .L_last_num_blocks_is_13_cuuhesezwjvjmyk
	jmp	.L_last_num_blocks_is_13_cuuhesezwjvjmyk_BCM_4

.L_last_num_blocks_is_11_9_cuuhesezwjvjmyk_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_10_cuuhesezwjvjmyk_BCM_4
# WAS ja .L_last_num_blocks_is_11_cuuhesezwjvjmyk
	ja	.L_last_num_blocks_is_11_cuuhesezwjvjmyk_BCM_4
# WAS jmp .L_last_num_blocks_is_9_cuuhesezwjvjmyk
	jmp	.L_last_num_blocks_is_9_cuuhesezwjvjmyk_BCM_4

.L_last_num_blocks_is_7_1_cuuhesezwjvjmyk_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_4_cuuhesezwjvjmyk_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_cuuhesezwjvjmyk
	jb	.L_last_num_blocks_is_3_1_cuuhesezwjvjmyk_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_cuuhesezwjvjmyk
	ja	.L_last_num_blocks_is_7_cuuhesezwjvjmyk_BCM_4
# WAS je .L_last_num_blocks_is_6_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_6_cuuhesezwjvjmyk_BCM_4
# WAS jmp .L_last_num_blocks_is_5_cuuhesezwjvjmyk
	jmp	.L_last_num_blocks_is_5_cuuhesezwjvjmyk_BCM_4

.L_last_num_blocks_is_3_1_cuuhesezwjvjmyk_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_cuuhesezwjvjmyk
	ja	.L_last_num_blocks_is_3_cuuhesezwjvjmyk_BCM_4
# WAS je .L_last_num_blocks_is_2_cuuhesezwjvjmyk
	je	.L_last_num_blocks_is_2_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_1_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_yqjovttCDEvpyyd
	jae	.L_16_blocks_overflow_yqjovttCDEvpyyd_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_yqjovttCDEvpyyd
	jmp	.L_16_blocks_ok_yqjovttCDEvpyyd_BCM_4

.L_16_blocks_overflow_yqjovttCDEvpyyd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_yqjovttCDEvpyyd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vEAkobbEjFEfDjE
	jl	.L_small_initial_partial_block_vEAkobbEjFEfDjE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vEAkobbEjFEfDjE
	jmp	.L_small_initial_compute_done_vEAkobbEjFEfDjE_BCM_4
.L_small_initial_partial_block_vEAkobbEjFEfDjE_BCM_4:

# 106578 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 106619 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_vEAkobbEjFEfDjE
	jmp	.L_after_reduction_vEAkobbEjFEfDjE_BCM_4
.L_small_initial_compute_done_vEAkobbEjFEfDjE_BCM_4:

.L_after_reduction_vEAkobbEjFEfDjE_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_2_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_dunlemEBzoyBoxa
	jae	.L_16_blocks_overflow_dunlemEBzoyBoxa_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_dunlemEBzoyBoxa
	jmp	.L_16_blocks_ok_dunlemEBzoyBoxa_BCM_4

.L_16_blocks_overflow_dunlemEBzoyBoxa_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_dunlemEBzoyBoxa_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jwqibvpanppwwkg
	jl	.L_small_initial_partial_block_jwqibvpanppwwkg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jwqibvpanppwwkg
	jmp	.L_small_initial_compute_done_jwqibvpanppwwkg_BCM_4
.L_small_initial_partial_block_jwqibvpanppwwkg_BCM_4:

# 106782 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jwqibvpanppwwkg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jwqibvpanppwwkg
	je	.L_after_reduction_jwqibvpanppwwkg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_jwqibvpanppwwkg_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_3_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_gknxnDbcehnficG
	jae	.L_16_blocks_overflow_gknxnDbcehnficG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_gknxnDbcehnficG
	jmp	.L_16_blocks_ok_gknxnDbcehnficG_BCM_4

.L_16_blocks_overflow_gknxnDbcehnficG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_gknxnDbcehnficG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yrqnxcGbhfxbzua
	jl	.L_small_initial_partial_block_yrqnxcGbhfxbzua_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yrqnxcGbhfxbzua
	jmp	.L_small_initial_compute_done_yrqnxcGbhfxbzua_BCM_4
.L_small_initial_partial_block_yrqnxcGbhfxbzua_BCM_4:

# 106985 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yrqnxcGbhfxbzua_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yrqnxcGbhfxbzua
	je	.L_after_reduction_yrqnxcGbhfxbzua_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yrqnxcGbhfxbzua_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_4_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_vkChDblsuoFkgEp
	jae	.L_16_blocks_overflow_vkChDblsuoFkgEp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_vkChDblsuoFkgEp
	jmp	.L_16_blocks_ok_vkChDblsuoFkgEp_BCM_4

.L_16_blocks_overflow_vkChDblsuoFkgEp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_vkChDblsuoFkgEp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kqcfotnkDdwFCle
	jl	.L_small_initial_partial_block_kqcfotnkDdwFCle_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kqcfotnkDdwFCle
	jmp	.L_small_initial_compute_done_kqcfotnkDdwFCle_BCM_4
.L_small_initial_partial_block_kqcfotnkDdwFCle_BCM_4:

# 107188 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kqcfotnkDdwFCle_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kqcfotnkDdwFCle
	je	.L_after_reduction_kqcfotnkDdwFCle_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kqcfotnkDdwFCle_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_5_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_aGCpdetktlAtivE
	jae	.L_16_blocks_overflow_aGCpdetktlAtivE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_aGCpdetktlAtivE
	jmp	.L_16_blocks_ok_aGCpdetktlAtivE_BCM_4

.L_16_blocks_overflow_aGCpdetktlAtivE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_aGCpdetktlAtivE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BhyxbheFwtzAGqD
	jl	.L_small_initial_partial_block_BhyxbheFwtzAGqD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BhyxbheFwtzAGqD
	jmp	.L_small_initial_compute_done_BhyxbheFwtzAGqD_BCM_4
.L_small_initial_partial_block_BhyxbheFwtzAGqD_BCM_4:

# 107420 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BhyxbheFwtzAGqD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BhyxbheFwtzAGqD
	je	.L_after_reduction_BhyxbheFwtzAGqD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BhyxbheFwtzAGqD_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_6_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_DlEhcmhmAqggthl
	jae	.L_16_blocks_overflow_DlEhcmhmAqggthl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_DlEhcmhmAqggthl
	jmp	.L_16_blocks_ok_DlEhcmhmAqggthl_BCM_4

.L_16_blocks_overflow_DlEhcmhmAqggthl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_DlEhcmhmAqggthl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ykkpmhjniEvyltu
	jl	.L_small_initial_partial_block_ykkpmhjniEvyltu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ykkpmhjniEvyltu
	jmp	.L_small_initial_compute_done_ykkpmhjniEvyltu_BCM_4
.L_small_initial_partial_block_ykkpmhjniEvyltu_BCM_4:

# 107652 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ykkpmhjniEvyltu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ykkpmhjniEvyltu
	je	.L_after_reduction_ykkpmhjniEvyltu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ykkpmhjniEvyltu_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_7_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_szxcAmcFcFxFikD
	jae	.L_16_blocks_overflow_szxcAmcFcFxFikD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_szxcAmcFcFxFikD
	jmp	.L_16_blocks_ok_szxcAmcFcFxFikD_BCM_4

.L_16_blocks_overflow_szxcAmcFcFxFikD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_szxcAmcFcFxFikD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BsvCgmoprgDppla
	jl	.L_small_initial_partial_block_BsvCgmoprgDppla_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BsvCgmoprgDppla
	jmp	.L_small_initial_compute_done_BsvCgmoprgDppla_BCM_4
.L_small_initial_partial_block_BsvCgmoprgDppla_BCM_4:

# 107891 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BsvCgmoprgDppla_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BsvCgmoprgDppla
	je	.L_after_reduction_BsvCgmoprgDppla_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BsvCgmoprgDppla_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_8_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_nGgmonbofwfdiqp
	jae	.L_16_blocks_overflow_nGgmonbofwfdiqp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_nGgmonbofwfdiqp
	jmp	.L_16_blocks_ok_nGgmonbofwfdiqp_BCM_4

.L_16_blocks_overflow_nGgmonbofwfdiqp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_nGgmonbofwfdiqp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qxxbtfdlDzEAenB
	jl	.L_small_initial_partial_block_qxxbtfdlDzEAenB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qxxbtfdlDzEAenB
	jmp	.L_small_initial_compute_done_qxxbtfdlDzEAenB_BCM_4
.L_small_initial_partial_block_qxxbtfdlDzEAenB_BCM_4:

# 108132 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qxxbtfdlDzEAenB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qxxbtfdlDzEAenB
	je	.L_after_reduction_qxxbtfdlDzEAenB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qxxbtfdlDzEAenB_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_9_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_isErwnbzGxuwnib
	jae	.L_16_blocks_overflow_isErwnbzGxuwnib_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_isErwnbzGxuwnib
	jmp	.L_16_blocks_ok_isErwnbzGxuwnib_BCM_4

.L_16_blocks_overflow_isErwnbzGxuwnib_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_isErwnbzGxuwnib_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ldosriajsdgdtty
	jl	.L_small_initial_partial_block_ldosriajsdgdtty_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ldosriajsdgdtty
	jmp	.L_small_initial_compute_done_ldosriajsdgdtty_BCM_4
.L_small_initial_partial_block_ldosriajsdgdtty_BCM_4:

# 108400 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ldosriajsdgdtty_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ldosriajsdgdtty
	je	.L_after_reduction_ldosriajsdgdtty_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ldosriajsdgdtty_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_10_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_ylkmjtxhbazdAht
	jae	.L_16_blocks_overflow_ylkmjtxhbazdAht_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_ylkmjtxhbazdAht
	jmp	.L_16_blocks_ok_ylkmjtxhbazdAht_BCM_4

.L_16_blocks_overflow_ylkmjtxhbazdAht_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_ylkmjtxhbazdAht_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cogjdCgsFwwACAv
	jl	.L_small_initial_partial_block_cogjdCgsFwwACAv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cogjdCgsFwwACAv
	jmp	.L_small_initial_compute_done_cogjdCgsFwwACAv_BCM_4
.L_small_initial_partial_block_cogjdCgsFwwACAv_BCM_4:

# 108670 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cogjdCgsFwwACAv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cogjdCgsFwwACAv
	je	.L_after_reduction_cogjdCgsFwwACAv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cogjdCgsFwwACAv_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_11_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_amFqbyqnsgkbEyu
	jae	.L_16_blocks_overflow_amFqbyqnsgkbEyu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_amFqbyqnsgkbEyu
	jmp	.L_16_blocks_ok_amFqbyqnsgkbEyu_BCM_4

.L_16_blocks_overflow_amFqbyqnsgkbEyu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_amFqbyqnsgkbEyu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_duCGbqEavktkktr
	jl	.L_small_initial_partial_block_duCGbqEavktkktr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_duCGbqEavktkktr
	jmp	.L_small_initial_compute_done_duCGbqEavktkktr_BCM_4
.L_small_initial_partial_block_duCGbqEavktkktr_BCM_4:

# 108947 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_duCGbqEavktkktr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_duCGbqEavktkktr
	je	.L_after_reduction_duCGbqEavktkktr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_duCGbqEavktkktr_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_12_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_Gxdljjoscahpipo
	jae	.L_16_blocks_overflow_Gxdljjoscahpipo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_Gxdljjoscahpipo
	jmp	.L_16_blocks_ok_Gxdljjoscahpipo_BCM_4

.L_16_blocks_overflow_Gxdljjoscahpipo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_Gxdljjoscahpipo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EbrtvvbpfhnmgEG
	jl	.L_small_initial_partial_block_EbrtvvbpfhnmgEG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EbrtvvbpfhnmgEG
	jmp	.L_small_initial_compute_done_EbrtvvbpfhnmgEG_BCM_4
.L_small_initial_partial_block_EbrtvvbpfhnmgEG_BCM_4:

# 109222 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EbrtvvbpfhnmgEG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EbrtvvbpfhnmgEG
	je	.L_after_reduction_EbrtvvbpfhnmgEG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EbrtvvbpfhnmgEG_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_13_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_BzbwlusABaejjjy
	jae	.L_16_blocks_overflow_BzbwlusABaejjjy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_BzbwlusABaejjjy
	jmp	.L_16_blocks_ok_BzbwlusABaejjjy_BCM_4

.L_16_blocks_overflow_BzbwlusABaejjjy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_BzbwlusABaejjjy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_axssylktqnfAEEo
	jl	.L_small_initial_partial_block_axssylktqnfAEEo_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_axssylktqnfAEEo
	jmp	.L_small_initial_compute_done_axssylktqnfAEEo_BCM_4
.L_small_initial_partial_block_axssylktqnfAEEo_BCM_4:

# 109524 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_axssylktqnfAEEo_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_axssylktqnfAEEo
	je	.L_after_reduction_axssylktqnfAEEo_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_axssylktqnfAEEo_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_14_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_wfxluBeiqgADmFb
	jae	.L_16_blocks_overflow_wfxluBeiqgADmFb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_wfxluBeiqgADmFb
	jmp	.L_16_blocks_ok_wfxluBeiqgADmFb_BCM_4

.L_16_blocks_overflow_wfxluBeiqgADmFb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_wfxluBeiqgADmFb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_goygycijAEpsvvt
	jl	.L_small_initial_partial_block_goygycijAEpsvvt_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_goygycijAEpsvvt
	jmp	.L_small_initial_compute_done_goygycijAEpsvvt_BCM_4
.L_small_initial_partial_block_goygycijAEpsvvt_BCM_4:

# 109824 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_goygycijAEpsvvt_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_goygycijAEpsvvt
	je	.L_after_reduction_goygycijAEpsvvt_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_goygycijAEpsvvt_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_15_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_vyklFkDwzsnvgsC
	jae	.L_16_blocks_overflow_vyklFkDwzsnvgsC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_vyklFkDwzsnvgsC
	jmp	.L_16_blocks_ok_vyklFkDwzsnvgsC_BCM_4

.L_16_blocks_overflow_vyklFkDwzsnvgsC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_vyklFkDwzsnvgsC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wtfwhoaquntnsFC
	jl	.L_small_initial_partial_block_wtfwhoaquntnsFC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wtfwhoaquntnsFC
	jmp	.L_small_initial_compute_done_wtfwhoaquntnsFC_BCM_4
.L_small_initial_partial_block_wtfwhoaquntnsFC_BCM_4:

# 110131 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wtfwhoaquntnsFC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wtfwhoaquntnsFC
	je	.L_after_reduction_wtfwhoaquntnsFC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wtfwhoaquntnsFC_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_16_cuuhesezwjvjmyk_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_cwmmduuojwChbzc
	jae	.L_16_blocks_overflow_cwmmduuojwChbzc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_cwmmduuojwChbzc
	jmp	.L_16_blocks_ok_cwmmduuojwChbzc_BCM_4

.L_16_blocks_overflow_cwmmduuojwChbzc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_cwmmduuojwChbzc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_EFFoGallwwbomEy_BCM_4:

# 110368 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EFFoGallwwbomEy_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EFFoGallwwbomEy_BCM_4:

# WAS jmp .L_last_blocks_done_cuuhesezwjvjmyk
	jmp	.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4
.L_last_num_blocks_is_0_cuuhesezwjvjmyk_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_cuuhesezwjvjmyk_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_efvnrtvwAsfehEC
	jmp	.L_ghash_done_efvnrtvwAsfehEC_BCM_4

.L_message_below_equal_16_blocks_efvnrtvwAsfehEC_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_8_sFoDGktxtpnDmhn_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_sFoDGktxtpnDmhn
	jl	.L_small_initial_num_blocks_is_7_1_sFoDGktxtpnDmhn_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_12_sFoDGktxtpnDmhn_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_sFoDGktxtpnDmhn
	jl	.L_small_initial_num_blocks_is_11_9_sFoDGktxtpnDmhn_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_16_sFoDGktxtpnDmhn_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_15_sFoDGktxtpnDmhn_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_14_sFoDGktxtpnDmhn_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_sFoDGktxtpnDmhn
	jmp	.L_small_initial_num_blocks_is_13_sFoDGktxtpnDmhn_BCM_4

.L_small_initial_num_blocks_is_11_9_sFoDGktxtpnDmhn_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_11_sFoDGktxtpnDmhn_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_10_sFoDGktxtpnDmhn_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_sFoDGktxtpnDmhn
	jmp	.L_small_initial_num_blocks_is_9_sFoDGktxtpnDmhn_BCM_4

.L_small_initial_num_blocks_is_7_1_sFoDGktxtpnDmhn_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_4_sFoDGktxtpnDmhn_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_sFoDGktxtpnDmhn
	jl	.L_small_initial_num_blocks_is_3_1_sFoDGktxtpnDmhn_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_7_sFoDGktxtpnDmhn_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_6_sFoDGktxtpnDmhn_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_sFoDGktxtpnDmhn
	jmp	.L_small_initial_num_blocks_is_5_sFoDGktxtpnDmhn_BCM_4

.L_small_initial_num_blocks_is_3_1_sFoDGktxtpnDmhn_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_3_sFoDGktxtpnDmhn_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_sFoDGktxtpnDmhn
	je	.L_small_initial_num_blocks_is_2_sFoDGktxtpnDmhn_BCM_4





.L_small_initial_num_blocks_is_1_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm6,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FGCgmvsGdutropz
	jl	.L_small_initial_partial_block_FGCgmvsGdutropz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FGCgmvsGdutropz
	jmp	.L_small_initial_compute_done_FGCgmvsGdutropz_BCM_4
.L_small_initial_partial_block_FGCgmvsGdutropz_BCM_4:

# 110650 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 110663 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_FGCgmvsGdutropz
	jmp	.L_after_reduction_FGCgmvsGdutropz_BCM_4
.L_small_initial_compute_done_FGCgmvsGdutropz_BCM_4:

.L_after_reduction_FGCgmvsGdutropz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_2_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm6,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jEBbtDDBfBjEltG
	jl	.L_small_initial_partial_block_jEBbtDDBfBjEltG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jEBbtDDBfBjEltG
	jmp	.L_small_initial_compute_done_jEBbtDDBfBjEltG_BCM_4
.L_small_initial_partial_block_jEBbtDDBfBjEltG_BCM_4:

# 110769 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jEBbtDDBfBjEltG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jEBbtDDBfBjEltG
	je	.L_after_reduction_jEBbtDDBfBjEltG_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_jEBbtDDBfBjEltG_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_3_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EjibsatBlzkgqAl
	jl	.L_small_initial_partial_block_EjibsatBlzkgqAl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EjibsatBlzkgqAl
	jmp	.L_small_initial_compute_done_EjibsatBlzkgqAl_BCM_4
.L_small_initial_partial_block_EjibsatBlzkgqAl_BCM_4:

# 110913 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EjibsatBlzkgqAl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EjibsatBlzkgqAl
	je	.L_after_reduction_EjibsatBlzkgqAl_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_EjibsatBlzkgqAl_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_4_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xqconsagugmDarn
	jl	.L_small_initial_partial_block_xqconsagugmDarn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xqconsagugmDarn
	jmp	.L_small_initial_compute_done_xqconsagugmDarn_BCM_4
.L_small_initial_partial_block_xqconsagugmDarn_BCM_4:

# 111056 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xqconsagugmDarn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xqconsagugmDarn
	je	.L_after_reduction_xqconsagugmDarn_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_xqconsagugmDarn_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_5_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %xmm29,%xmm7,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pbFCejpvpmxjAhk
	jl	.L_small_initial_partial_block_pbFCejpvpmxjAhk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pbFCejpvpmxjAhk
	jmp	.L_small_initial_compute_done_pbFCejpvpmxjAhk_BCM_4
.L_small_initial_partial_block_pbFCejpvpmxjAhk_BCM_4:

# 111230 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pbFCejpvpmxjAhk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pbFCejpvpmxjAhk
	je	.L_after_reduction_pbFCejpvpmxjAhk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_pbFCejpvpmxjAhk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_6_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %ymm29,%ymm7,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_uktkzFjovqcxfqp
	jl	.L_small_initial_partial_block_uktkzFjovqcxfqp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_uktkzFjovqcxfqp
	jmp	.L_small_initial_compute_done_uktkzFjovqcxfqp_BCM_4
.L_small_initial_partial_block_uktkzFjovqcxfqp_BCM_4:

# 111403 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_uktkzFjovqcxfqp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_uktkzFjovqcxfqp
	je	.L_after_reduction_uktkzFjovqcxfqp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_uktkzFjovqcxfqp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_7_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_giliDfyAgzgDsqz
	jl	.L_small_initial_partial_block_giliDfyAgzgDsqz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_giliDfyAgzgDsqz
	jmp	.L_small_initial_compute_done_giliDfyAgzgDsqz_BCM_4
.L_small_initial_partial_block_giliDfyAgzgDsqz_BCM_4:

# 111587 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_giliDfyAgzgDsqz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_giliDfyAgzgDsqz
	je	.L_after_reduction_giliDfyAgzgDsqz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_giliDfyAgzgDsqz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_8_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_DjnECqEweilEAGu
	jl	.L_small_initial_partial_block_DjnECqEweilEAGu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_DjnECqEweilEAGu
	jmp	.L_small_initial_compute_done_DjnECqEweilEAGu_BCM_4
.L_small_initial_partial_block_DjnECqEweilEAGu_BCM_4:

# 111769 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_DjnECqEweilEAGu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_DjnECqEweilEAGu
	je	.L_after_reduction_DjnECqEweilEAGu_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_DjnECqEweilEAGu_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_9_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %xmm29,%xmm10,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kgxaGkfnalAmrwz
	jl	.L_small_initial_partial_block_kgxaGkfnalAmrwz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kgxaGkfnalAmrwz
	jmp	.L_small_initial_compute_done_kgxaGkfnalAmrwz_BCM_4
.L_small_initial_partial_block_kgxaGkfnalAmrwz_BCM_4:

# 111981 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kgxaGkfnalAmrwz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kgxaGkfnalAmrwz
	je	.L_after_reduction_kgxaGkfnalAmrwz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_kgxaGkfnalAmrwz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_10_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %ymm29,%ymm10,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BCvcswkitbgmjFe
	jl	.L_small_initial_partial_block_BCvcswkitbgmjFe_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BCvcswkitbgmjFe
	jmp	.L_small_initial_compute_done_BCvcswkitbgmjFe_BCM_4
.L_small_initial_partial_block_BCvcswkitbgmjFe_BCM_4:

# 112191 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BCvcswkitbgmjFe_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BCvcswkitbgmjFe
	je	.L_after_reduction_BCvcswkitbgmjFe_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_BCvcswkitbgmjFe_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_11_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xxiyEjrxujqtjjz
	jl	.L_small_initial_partial_block_xxiyEjrxujqtjjz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xxiyEjrxujqtjjz
	jmp	.L_small_initial_compute_done_xxiyEjrxujqtjjz_BCM_4
.L_small_initial_partial_block_xxiyEjrxujqtjjz_BCM_4:

# 112412 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xxiyEjrxujqtjjz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xxiyEjrxujqtjjz
	je	.L_after_reduction_xxiyEjrxujqtjjz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_xxiyEjrxujqtjjz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_12_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_jAwfsnuhpsyacia
	jl	.L_small_initial_partial_block_jAwfsnuhpsyacia_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_jAwfsnuhpsyacia
	jmp	.L_small_initial_compute_done_jAwfsnuhpsyacia_BCM_4
.L_small_initial_partial_block_jAwfsnuhpsyacia_BCM_4:

# 112627 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_jAwfsnuhpsyacia_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_jAwfsnuhpsyacia
	je	.L_after_reduction_jAwfsnuhpsyacia_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_jAwfsnuhpsyacia_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_13_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %xmm29,%xmm11,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iimAEdydkqcfzCi
	jl	.L_small_initial_partial_block_iimAEdydkqcfzCi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iimAEdydkqcfzCi
	jmp	.L_small_initial_compute_done_iimAEdydkqcfzCi_BCM_4
.L_small_initial_partial_block_iimAEdydkqcfzCi_BCM_4:

# 112872 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iimAEdydkqcfzCi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iimAEdydkqcfzCi
	je	.L_after_reduction_iimAEdydkqcfzCi_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_iimAEdydkqcfzCi_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_14_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %ymm29,%ymm11,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cflpryEedqzCjvl
	jl	.L_small_initial_partial_block_cflpryEedqzCjvl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cflpryEedqzCjvl
	jmp	.L_small_initial_compute_done_cflpryEedqzCjvl_BCM_4
.L_small_initial_partial_block_cflpryEedqzCjvl_BCM_4:

# 113111 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cflpryEedqzCjvl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cflpryEedqzCjvl
	je	.L_after_reduction_cflpryEedqzCjvl_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_cflpryEedqzCjvl_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_15_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pFbDADbCplEDFfw
	jl	.L_small_initial_partial_block_pFbDADbCplEDFfw_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pFbDADbCplEDFfw
	jmp	.L_small_initial_compute_done_pFbDADbCplEDFfw_BCM_4
.L_small_initial_partial_block_pFbDADbCplEDFfw_BCM_4:

# 113361 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pFbDADbCplEDFfw_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pFbDADbCplEDFfw
	je	.L_after_reduction_pFbDADbCplEDFfw_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_pFbDADbCplEDFfw_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn
	jmp	.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4
.L_small_initial_num_blocks_is_16_sFoDGktxtpnDmhn_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_pGqEmoznEqGhujq_BCM_4:

# 113540 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pGqEmoznEqGhujq_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_pGqEmoznEqGhujq_BCM_4:

.L_small_initial_blocks_encrypted_sFoDGktxtpnDmhn_BCM_4:

.L_ghash_done_efvnrtvwAsfehEC_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_efvnrtvwAsfehEC_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_efvnrtvwAsfehEC_BCM_4:

# WAS jmp .Lexit_gcm_decrypt
	jmp	.Lexit_gcm_decrypt_BCM_4
.align 32
.Laes_gcm_decrypt_256_avx512_BCM_4:

 orq %r8,%r8
# WAS je .L_enc_dec_abort_keEetjmxflGqBfv
	je	.L_enc_dec_abort_keEetjmxflGqBfv_BCM_4
 xorq %r14,%r14
 vmovdqu64 64(%rsi),%xmm14
# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14

 movl (%rdx),%eax
 orq %rax,%rax
# WAS je .L_partial_block_done_fhsskwCeFatEtrh
	je	.L_partial_block_done_fhsskwCeFatEtrh_BCM_4
 movl $16,%r10d
# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 cmpq %r10,%r8
 cmovcq %r8,%r10
 kmovw (%r12,%r10,2),%k1
 vmovdqu8 (%rcx),%xmm0{%k1}{z}

 vmovdqu64 16(%rsi),%xmm3

 leaq 80(%rsi),%r10
 vmovdqu64 240(%r10),%xmm4



# WAS leaq SHIFT_MASK(%rip),%r12
	leaq	.LSHIFT_MASK_local_target(%rip), %r12
 addq %rax,%r12
 vmovdqu64 (%r12),%xmm5
 vpshufb %xmm5,%xmm3,%xmm3

 vmovdqa64 %xmm0,%xmm6
 vpxorq %xmm0,%xmm3,%xmm3


 leaq (%r8,%rax,1),%r13
 subq $16,%r13
# WAS jge .L_no_extra_mask_fhsskwCeFatEtrh
	jge	.L_no_extra_mask_fhsskwCeFatEtrh_BCM_4
 subq %r13,%r12
.L_no_extra_mask_fhsskwCeFatEtrh_BCM_4:




 vmovdqu64 16(%r12),%xmm0
 vpand %xmm0,%xmm3,%xmm3
 vpand %xmm0,%xmm6,%xmm6
# WAS vpshufb SHUF_MASK(%rip),%xmm6,%xmm6
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm6, %xmm6
 vpshufb %xmm5,%xmm6,%xmm6
 vpxorq %xmm6,%xmm14,%xmm14
 cmpq $0,%r13
# WAS jl .L_partial_incomplete_fhsskwCeFatEtrh
	jl	.L_partial_incomplete_fhsskwCeFatEtrh_BCM_4

.byte 98,243,13,8,68,252,17
.byte 98,115,13,8,68,212,0
.byte 98,115,13,8,68,220,1
.byte 98,115,13,8,68,244,16
 vpxorq %xmm11,%xmm14,%xmm14

 vpsrldq $8,%xmm14,%xmm11
 vpslldq $8,%xmm14,%xmm14
 vpxorq %xmm11,%xmm7,%xmm7
 vpxorq %xmm10,%xmm14,%xmm14



# WAS vmovdqu64 POLY2(%rip),%xmm11
	vmovdqu64	.LPOLY2_local_target(%rip), %xmm11

.byte 98,83,37,8,68,214,1
 vpslldq $8,%xmm10,%xmm10
 vpxorq %xmm10,%xmm14,%xmm14



.byte 98,83,37,8,68,214,0
 vpsrldq $4,%xmm10,%xmm10
.byte 98,83,37,8,68,246,16
 vpslldq $4,%xmm14,%xmm14

 vpternlogq $0x96,%xmm10,%xmm7,%xmm14

 movl $0,(%rdx)

 movq %rax,%r12
 movq $16,%rax
 subq %r12,%rax
# WAS jmp .L_enc_dec_done_fhsskwCeFatEtrh
	jmp	.L_enc_dec_done_fhsskwCeFatEtrh_BCM_4

.L_partial_incomplete_fhsskwCeFatEtrh_BCM_4:

 addl %r8d,(%rdx)
 movq %r8,%rax

.L_enc_dec_done_fhsskwCeFatEtrh_BCM_4:



# WAS leaq byte_len_to_mask_table(%rip),%r12
	leaq	.Lbyte_len_to_mask_table_local_target(%rip), %r12
 kmovw (%r12,%rax,2),%k1
 movq %r9,%r12
 vmovdqu8 %xmm3,(%r12){%k1}
.L_partial_block_done_fhsskwCeFatEtrh_BCM_4:

 vmovdqu64 0(%rsi),%xmm2
 subq %rax,%r8
# WAS je .L_enc_dec_done_keEetjmxflGqBfv
	je	.L_enc_dec_done_keEetjmxflGqBfv_BCM_4
 cmpq $256,%r8
# WAS jbe .L_message_below_equal_16_blocks_keEetjmxflGqBfv
	jbe	.L_message_below_equal_16_blocks_keEetjmxflGqBfv_BCM_4

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
# WAS vmovdqa64 ddq_addbe_4444(%rip),%zmm27
	vmovdqa64	.Lddq_addbe_4444_local_target(%rip), %zmm27
# WAS vmovdqa64 ddq_addbe_1234(%rip),%zmm28
	vmovdqa64	.Lddq_addbe_1234_local_target(%rip), %zmm28






 vmovd %xmm2,%r15d
 andl $255,%r15d

 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
 vpshufb %zmm29,%zmm2,%zmm2



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_tpefFeFucnbumCh
	jae	.L_next_16_overflow_tpefFeFucnbumCh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_tpefFeFucnbumCh
	jmp	.L_next_16_ok_tpefFeFucnbumCh_BCM_4
.L_next_16_overflow_tpefFeFucnbumCh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_tpefFeFucnbumCh_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 0(%rcx,%rax,1),%zmm0
 vmovdqu8 64(%rcx,%rax,1),%zmm3
 vmovdqu8 128(%rcx,%rax,1),%zmm4
 vmovdqu8 192(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 208(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,0(%r10,%rax,1)
 vmovdqu8 %zmm10,64(%r10,%rax,1)
 vmovdqu8 %zmm11,128(%r10,%rax,1)
 vmovdqu8 %zmm12,192(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,768(%rsp)
 vmovdqa64 %zmm10,832(%rsp)
 vmovdqa64 %zmm11,896(%rsp)
 vmovdqa64 %zmm12,960(%rsp)
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_iDAhziwpjqoADaj
	jnz	.L_skip_hkeys_precomputation_iDAhziwpjqoADaj_BCM_4

 vmovdqu64 192(%r12),%zmm0
 vmovdqu64 %zmm0,704(%rsp)

 vmovdqu64 128(%r12),%zmm3
 vmovdqu64 %zmm3,640(%rsp)


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 64(%r12),%zmm4
 vmovdqu64 %zmm4,576(%rsp)

 vmovdqu64 0(%r12),%zmm5
 vmovdqu64 %zmm5,512(%rsp)
.L_skip_hkeys_precomputation_iDAhziwpjqoADaj_BCM_4:

 cmpq $512,%r8
# WAS jb .L_message_below_32_blocks_keEetjmxflGqBfv
	jb	.L_message_below_32_blocks_keEetjmxflGqBfv_BCM_4



 cmpb $240,%r15b
# WAS jae .L_next_16_overflow_qgCCeDpdgxsjtxo
	jae	.L_next_16_overflow_qgCCeDpdgxsjtxo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm7
 vpaddd %zmm27,%zmm7,%zmm10
 vpaddd %zmm27,%zmm10,%zmm11
 vpaddd %zmm27,%zmm11,%zmm12
# WAS jmp .L_next_16_ok_qgCCeDpdgxsjtxo
	jmp	.L_next_16_ok_qgCCeDpdgxsjtxo_BCM_4
.L_next_16_overflow_qgCCeDpdgxsjtxo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm12
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm12
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm7
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm7
 vpaddd %zmm12,%zmm7,%zmm10
 vpaddd %zmm12,%zmm10,%zmm11
 vpaddd %zmm12,%zmm11,%zmm12
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vpshufb %zmm29,%zmm12,%zmm12
.L_next_16_ok_qgCCeDpdgxsjtxo_BCM_4:

 vshufi64x2 $255,%zmm12,%zmm12,%zmm2
 addb $16,%r15b

 vmovdqu8 256(%rcx,%rax,1),%zmm0
 vmovdqu8 320(%rcx,%rax,1),%zmm3
 vmovdqu8 384(%rcx,%rax,1),%zmm4
 vmovdqu8 448(%rcx,%rax,1),%zmm5


 vbroadcastf64x2 0(%rdi),%zmm6
 vpxorq %zmm6,%zmm7,%zmm7
 vpxorq %zmm6,%zmm10,%zmm10
 vpxorq %zmm6,%zmm11,%zmm11
 vpxorq %zmm6,%zmm12,%zmm12
 vbroadcastf64x2 16(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 32(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 48(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 80(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 112(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 144(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 176(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 208(%rdi),%zmm6
.byte 98,242,69,72,220,254
.byte 98,114,45,72,220,214
.byte 98,114,37,72,220,222
.byte 98,114,29,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm6
.byte 98,242,69,72,221,254
.byte 98,114,45,72,221,214
.byte 98,114,37,72,221,222
.byte 98,114,29,72,221,230


 vpxorq %zmm0,%zmm7,%zmm7
 vpxorq %zmm3,%zmm10,%zmm10
 vpxorq %zmm4,%zmm11,%zmm11
 vpxorq %zmm5,%zmm12,%zmm12


 movq %r9,%r10
 vmovdqu8 %zmm7,256(%r10,%rax,1)
 vmovdqu8 %zmm10,320(%r10,%rax,1)
 vmovdqu8 %zmm11,384(%r10,%rax,1)
 vmovdqu8 %zmm12,448(%r10,%rax,1)

 vpshufb %zmm29,%zmm0,%zmm7
 vpshufb %zmm29,%zmm3,%zmm10
 vpshufb %zmm29,%zmm4,%zmm11
 vpshufb %zmm29,%zmm5,%zmm12
 vmovdqa64 %zmm7,1024(%rsp)
 vmovdqa64 %zmm10,1088(%rsp)
 vmovdqa64 %zmm11,1152(%rsp)
 vmovdqa64 %zmm12,1216(%rsp)
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_ErxbfranEhsBGhe
	jnz	.L_skip_hkeys_precomputation_ErxbfranEhsBGhe_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,192(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,128(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,64(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,0(%rsp)
.L_skip_hkeys_precomputation_ErxbfranEhsBGhe_BCM_4:

 movq $1,%r14
 addq $512,%rax
 subq $512,%r8

 cmpq $768,%r8
# WAS jb .L_no_more_big_nblocks_keEetjmxflGqBfv
	jb	.L_no_more_big_nblocks_keEetjmxflGqBfv_BCM_4
.L_encrypt_big_nblocks_keEetjmxflGqBfv_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_budzEysnblsjtjq
	jae	.L_16_blocks_overflow_budzEysnblsjtjq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_budzEysnblsjtjq
	jmp	.L_16_blocks_ok_budzEysnblsjtjq_BCM_4
.L_16_blocks_overflow_budzEysnblsjtjq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_budzEysnblsjtjq_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_ojhGelucjaDDiwh
	jae	.L_16_blocks_overflow_ojhGelucjaDDiwh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_ojhGelucjaDDiwh
	jmp	.L_16_blocks_ok_ojhGelucjaDDiwh_BCM_4
.L_16_blocks_overflow_ojhGelucjaDDiwh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_ojhGelucjaDDiwh_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_jpAfkEctagbyfkB
	jae	.L_16_blocks_overflow_jpAfkEctagbyfkB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_jpAfkEctagbyfkB
	jmp	.L_16_blocks_ok_jpAfkEctagbyfkB_BCM_4
.L_16_blocks_overflow_jpAfkEctagbyfkB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_jpAfkEctagbyfkB_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 512(%rcx,%rax,1),%zmm17
 vmovdqu8 576(%rcx,%rax,1),%zmm19
 vmovdqu8 640(%rcx,%rax,1),%zmm20
 vmovdqu8 704(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30


 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10

 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpternlogq $0x96,%zmm15,%zmm12,%zmm6
 vpxorq %zmm24,%zmm6,%zmm6
 vpternlogq $0x96,%zmm10,%zmm13,%zmm7
 vpxorq %zmm25,%zmm7,%zmm7
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vextracti64x4 $1,%zmm6,%ymm12
 vpxorq %ymm12,%ymm6,%ymm6
 vextracti32x4 $1,%ymm6,%xmm12
 vpxorq %xmm12,%xmm6,%xmm6
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm6
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,512(%r10,%rax,1)
 vmovdqu8 %zmm3,576(%r10,%rax,1)
 vmovdqu8 %zmm4,640(%r10,%rax,1)
 vmovdqu8 %zmm5,704(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1024(%rsp)
 vmovdqa64 %zmm3,1088(%rsp)
 vmovdqa64 %zmm4,1152(%rsp)
 vmovdqa64 %zmm5,1216(%rsp)
 vmovdqa64 %zmm6,%zmm14

 addq $768,%rax
 subq $768,%r8
 cmpq $768,%r8
# WAS jae .L_encrypt_big_nblocks_keEetjmxflGqBfv
	jae	.L_encrypt_big_nblocks_keEetjmxflGqBfv_BCM_4

.L_no_more_big_nblocks_keEetjmxflGqBfv_BCM_4:


 cmpq $512,%r8
# WAS jae .L_encrypt_32_blocks_keEetjmxflGqBfv
	jae	.L_encrypt_32_blocks_keEetjmxflGqBfv_BCM_4

 cmpq $256,%r8
# WAS jae .L_encrypt_16_blocks_keEetjmxflGqBfv
	jae	.L_encrypt_16_blocks_keEetjmxflGqBfv_BCM_4
.L_encrypt_0_blocks_ghash_32_keEetjmxflGqBfv_BCM_4:

 movl %r8d,%r10d
 andl $~15,%r10d
 movl $256,%ebx
 subl %r10d,%ebx
 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 addl $256,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_0_CjljsCjaoxujvDg_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_8_CjljsCjaoxujvDg_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CjljsCjaoxujvDg
	jb	.L_last_num_blocks_is_7_1_CjljsCjaoxujvDg_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_12_CjljsCjaoxujvDg_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CjljsCjaoxujvDg
	jb	.L_last_num_blocks_is_11_9_CjljsCjaoxujvDg_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_15_CjljsCjaoxujvDg_BCM_4
# WAS ja .L_last_num_blocks_is_16_CjljsCjaoxujvDg
	ja	.L_last_num_blocks_is_16_CjljsCjaoxujvDg_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_14_CjljsCjaoxujvDg_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CjljsCjaoxujvDg
	jmp	.L_last_num_blocks_is_13_CjljsCjaoxujvDg_BCM_4

.L_last_num_blocks_is_11_9_CjljsCjaoxujvDg_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_10_CjljsCjaoxujvDg_BCM_4
# WAS ja .L_last_num_blocks_is_11_CjljsCjaoxujvDg
	ja	.L_last_num_blocks_is_11_CjljsCjaoxujvDg_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CjljsCjaoxujvDg
	jmp	.L_last_num_blocks_is_9_CjljsCjaoxujvDg_BCM_4

.L_last_num_blocks_is_7_1_CjljsCjaoxujvDg_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_4_CjljsCjaoxujvDg_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CjljsCjaoxujvDg
	jb	.L_last_num_blocks_is_3_1_CjljsCjaoxujvDg_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CjljsCjaoxujvDg
	ja	.L_last_num_blocks_is_7_CjljsCjaoxujvDg_BCM_4
# WAS je .L_last_num_blocks_is_6_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_6_CjljsCjaoxujvDg_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CjljsCjaoxujvDg
	jmp	.L_last_num_blocks_is_5_CjljsCjaoxujvDg_BCM_4

.L_last_num_blocks_is_3_1_CjljsCjaoxujvDg_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CjljsCjaoxujvDg
	ja	.L_last_num_blocks_is_3_CjljsCjaoxujvDg_BCM_4
# WAS je .L_last_num_blocks_is_2_CjljsCjaoxujvDg
	je	.L_last_num_blocks_is_2_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_1_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_BpzosFahboxovuF
	jae	.L_16_blocks_overflow_BpzosFahboxovuF_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_BpzosFahboxovuF
	jmp	.L_16_blocks_ok_BpzosFahboxovuF_BCM_4

.L_16_blocks_overflow_BpzosFahboxovuF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_BpzosFahboxovuF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dzmevElEtmlqdvB
	jl	.L_small_initial_partial_block_dzmevElEtmlqdvB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dzmevElEtmlqdvB
	jmp	.L_small_initial_compute_done_dzmevElEtmlqdvB_BCM_4
.L_small_initial_partial_block_dzmevElEtmlqdvB_BCM_4:

# 115164 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 115205 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_dzmevElEtmlqdvB
	jmp	.L_after_reduction_dzmevElEtmlqdvB_BCM_4
.L_small_initial_compute_done_dzmevElEtmlqdvB_BCM_4:

.L_after_reduction_dzmevElEtmlqdvB_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_2_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_idijgbEnolbjmvb
	jae	.L_16_blocks_overflow_idijgbEnolbjmvb_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_idijgbEnolbjmvb
	jmp	.L_16_blocks_ok_idijgbEnolbjmvb_BCM_4

.L_16_blocks_overflow_idijgbEnolbjmvb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_idijgbEnolbjmvb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zvohpFFyvnbybFD
	jl	.L_small_initial_partial_block_zvohpFFyvnbybFD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zvohpFFyvnbybFD
	jmp	.L_small_initial_compute_done_zvohpFFyvnbybFD_BCM_4
.L_small_initial_partial_block_zvohpFFyvnbybFD_BCM_4:

# 115372 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zvohpFFyvnbybFD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zvohpFFyvnbybFD
	je	.L_after_reduction_zvohpFFyvnbybFD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zvohpFFyvnbybFD_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_3_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_wghnihbAoEsnemr
	jae	.L_16_blocks_overflow_wghnihbAoEsnemr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_wghnihbAoEsnemr
	jmp	.L_16_blocks_ok_wghnihbAoEsnemr_BCM_4

.L_16_blocks_overflow_wghnihbAoEsnemr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_wghnihbAoEsnemr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pjzlkCCsFsjiBsp
	jl	.L_small_initial_partial_block_pjzlkCCsFsjiBsp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pjzlkCCsFsjiBsp
	jmp	.L_small_initial_compute_done_pjzlkCCsFsjiBsp_BCM_4
.L_small_initial_partial_block_pjzlkCCsFsjiBsp_BCM_4:

# 115579 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pjzlkCCsFsjiBsp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pjzlkCCsFsjiBsp
	je	.L_after_reduction_pjzlkCCsFsjiBsp_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pjzlkCCsFsjiBsp_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_4_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_CjzGmeouGBagvfs
	jae	.L_16_blocks_overflow_CjzGmeouGBagvfs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_CjzGmeouGBagvfs
	jmp	.L_16_blocks_ok_CjzGmeouGBagvfs_BCM_4

.L_16_blocks_overflow_CjzGmeouGBagvfs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_CjzGmeouGBagvfs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_emFtlfDdrDiyoGj
	jl	.L_small_initial_partial_block_emFtlfDdrDiyoGj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_emFtlfDdrDiyoGj
	jmp	.L_small_initial_compute_done_emFtlfDdrDiyoGj_BCM_4
.L_small_initial_partial_block_emFtlfDdrDiyoGj_BCM_4:

# 115786 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_emFtlfDdrDiyoGj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_emFtlfDdrDiyoGj
	je	.L_after_reduction_emFtlfDdrDiyoGj_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_emFtlfDdrDiyoGj_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_5_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_DgBblneEbhavoAc
	jae	.L_16_blocks_overflow_DgBblneEbhavoAc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_DgBblneEbhavoAc
	jmp	.L_16_blocks_ok_DgBblneEbhavoAc_BCM_4

.L_16_blocks_overflow_DgBblneEbhavoAc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_DgBblneEbhavoAc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vowzfgidatEfBqr
	jl	.L_small_initial_partial_block_vowzfgidatEfBqr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vowzfgidatEfBqr
	jmp	.L_small_initial_compute_done_vowzfgidatEfBqr_BCM_4
.L_small_initial_partial_block_vowzfgidatEfBqr_BCM_4:

# 116024 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vowzfgidatEfBqr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vowzfgidatEfBqr
	je	.L_after_reduction_vowzfgidatEfBqr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vowzfgidatEfBqr_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_6_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_sswuqofDefGijpp
	jae	.L_16_blocks_overflow_sswuqofDefGijpp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_sswuqofDefGijpp
	jmp	.L_16_blocks_ok_sswuqofDefGijpp_BCM_4

.L_16_blocks_overflow_sswuqofDefGijpp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_sswuqofDefGijpp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zaEschzpbmFozoB
	jl	.L_small_initial_partial_block_zaEschzpbmFozoB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zaEschzpbmFozoB
	jmp	.L_small_initial_compute_done_zaEschzpbmFozoB_BCM_4
.L_small_initial_partial_block_zaEschzpbmFozoB_BCM_4:

# 116262 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zaEschzpbmFozoB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zaEschzpbmFozoB
	je	.L_after_reduction_zaEschzpbmFozoB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zaEschzpbmFozoB_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_7_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_lncoDbxzFvwogbC
	jae	.L_16_blocks_overflow_lncoDbxzFvwogbC_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_lncoDbxzFvwogbC
	jmp	.L_16_blocks_ok_lncoDbxzFvwogbC_BCM_4

.L_16_blocks_overflow_lncoDbxzFvwogbC_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_lncoDbxzFvwogbC_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mbqrkjfyrCjFtkC
	jl	.L_small_initial_partial_block_mbqrkjfyrCjFtkC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mbqrkjfyrCjFtkC
	jmp	.L_small_initial_compute_done_mbqrkjfyrCjFtkC_BCM_4
.L_small_initial_partial_block_mbqrkjfyrCjFtkC_BCM_4:

# 116507 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mbqrkjfyrCjFtkC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mbqrkjfyrCjFtkC
	je	.L_after_reduction_mbqrkjfyrCjFtkC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_mbqrkjfyrCjFtkC_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_8_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_ExCdtGvwDseyezE
	jae	.L_16_blocks_overflow_ExCdtGvwDseyezE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_ExCdtGvwDseyezE
	jmp	.L_16_blocks_ok_ExCdtGvwDseyezE_BCM_4

.L_16_blocks_overflow_ExCdtGvwDseyezE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_ExCdtGvwDseyezE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ajbflDwBgvpaEcE
	jl	.L_small_initial_partial_block_ajbflDwBgvpaEcE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ajbflDwBgvpaEcE
	jmp	.L_small_initial_compute_done_ajbflDwBgvpaEcE_BCM_4
.L_small_initial_partial_block_ajbflDwBgvpaEcE_BCM_4:

# 116754 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ajbflDwBgvpaEcE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ajbflDwBgvpaEcE
	je	.L_after_reduction_ajbflDwBgvpaEcE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ajbflDwBgvpaEcE_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_9_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_qnvdfsmvntyhGuo
	jae	.L_16_blocks_overflow_qnvdfsmvntyhGuo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_qnvdfsmvntyhGuo
	jmp	.L_16_blocks_ok_qnvdfsmvntyhGuo_BCM_4

.L_16_blocks_overflow_qnvdfsmvntyhGuo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_qnvdfsmvntyhGuo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_kduEkAyqanCoGvE
	jl	.L_small_initial_partial_block_kduEkAyqanCoGvE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_kduEkAyqanCoGvE
	jmp	.L_small_initial_compute_done_kduEkAyqanCoGvE_BCM_4
.L_small_initial_partial_block_kduEkAyqanCoGvE_BCM_4:

# 117030 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_kduEkAyqanCoGvE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_kduEkAyqanCoGvE
	je	.L_after_reduction_kduEkAyqanCoGvE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_kduEkAyqanCoGvE_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_10_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_ucjmDCDgtvwsblB
	jae	.L_16_blocks_overflow_ucjmDCDgtvwsblB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_ucjmDCDgtvwsblB
	jmp	.L_16_blocks_ok_ucjmDCDgtvwsblB_BCM_4

.L_16_blocks_overflow_ucjmDCDgtvwsblB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_ucjmDCDgtvwsblB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_grEzijkmcwkEkrv
	jl	.L_small_initial_partial_block_grEzijkmcwkEkrv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_grEzijkmcwkEkrv
	jmp	.L_small_initial_compute_done_grEzijkmcwkEkrv_BCM_4
.L_small_initial_partial_block_grEzijkmcwkEkrv_BCM_4:

# 117308 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_grEzijkmcwkEkrv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_grEzijkmcwkEkrv
	je	.L_after_reduction_grEzijkmcwkEkrv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_grEzijkmcwkEkrv_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_11_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_tGfszqdtairfiAy
	jae	.L_16_blocks_overflow_tGfszqdtairfiAy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_tGfszqdtairfiAy
	jmp	.L_16_blocks_ok_tGfszqdtairfiAy_BCM_4

.L_16_blocks_overflow_tGfszqdtairfiAy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_tGfszqdtairfiAy_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_nyiEcniDhxadvrv
	jl	.L_small_initial_partial_block_nyiEcniDhxadvrv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_nyiEcniDhxadvrv
	jmp	.L_small_initial_compute_done_nyiEcniDhxadvrv_BCM_4
.L_small_initial_partial_block_nyiEcniDhxadvrv_BCM_4:

# 117593 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_nyiEcniDhxadvrv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_nyiEcniDhxadvrv
	je	.L_after_reduction_nyiEcniDhxadvrv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_nyiEcniDhxadvrv_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_12_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_GBxxxGGdrBGGAzv
	jae	.L_16_blocks_overflow_GBxxxGGdrBGGAzv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_GBxxxGGdrBGGAzv
	jmp	.L_16_blocks_ok_GBxxxGGdrBGGAzv_BCM_4

.L_16_blocks_overflow_GBxxxGGdrBGGAzv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_GBxxxGGdrBGGAzv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vhoepgywGpbErsu
	jl	.L_small_initial_partial_block_vhoepgywGpbErsu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vhoepgywGpbErsu
	jmp	.L_small_initial_compute_done_vhoepgywGpbErsu_BCM_4
.L_small_initial_partial_block_vhoepgywGpbErsu_BCM_4:

# 117876 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vhoepgywGpbErsu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vhoepgywGpbErsu
	je	.L_after_reduction_vhoepgywGpbErsu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vhoepgywGpbErsu_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_13_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_rFdlFzmcbwfmCFo
	jae	.L_16_blocks_overflow_rFdlFzmcbwfmCFo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_rFdlFzmcbwfmCFo
	jmp	.L_16_blocks_ok_rFdlFzmcbwfmCFo_BCM_4

.L_16_blocks_overflow_rFdlFzmcbwfmCFo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_rFdlFzmcbwfmCFo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tidvwDCqozzjufl
	jl	.L_small_initial_partial_block_tidvwDCqozzjufl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tidvwDCqozzjufl
	jmp	.L_small_initial_compute_done_tidvwDCqozzjufl_BCM_4
.L_small_initial_partial_block_tidvwDCqozzjufl_BCM_4:

# 118188 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tidvwDCqozzjufl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tidvwDCqozzjufl
	je	.L_after_reduction_tidvwDCqozzjufl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tidvwDCqozzjufl_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_14_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_yDllfugovhaluis
	jae	.L_16_blocks_overflow_yDllfugovhaluis_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_yDllfugovhaluis
	jmp	.L_16_blocks_ok_yDllfugovhaluis_BCM_4

.L_16_blocks_overflow_yDllfugovhaluis_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_yDllfugovhaluis_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vGAylAjswesdfcA
	jl	.L_small_initial_partial_block_vGAylAjswesdfcA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vGAylAjswesdfcA
	jmp	.L_small_initial_compute_done_vGAylAjswesdfcA_BCM_4
.L_small_initial_partial_block_vGAylAjswesdfcA_BCM_4:

# 118498 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vGAylAjswesdfcA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vGAylAjswesdfcA
	je	.L_after_reduction_vGAylAjswesdfcA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_vGAylAjswesdfcA_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_15_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_pincAkEEiiwgxGh
	jae	.L_16_blocks_overflow_pincAkEEiiwgxGh_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_pincAkEEiiwgxGh
	jmp	.L_16_blocks_ok_pincAkEEiiwgxGh_BCM_4

.L_16_blocks_overflow_pincAkEEiiwgxGh_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_pincAkEEiiwgxGh_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FgsluzdCoDzfqdG
	jl	.L_small_initial_partial_block_FgsluzdCoDzfqdG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FgsluzdCoDzfqdG
	jmp	.L_small_initial_compute_done_FgsluzdCoDzfqdG_BCM_4
.L_small_initial_partial_block_FgsluzdCoDzfqdG_BCM_4:

# 118815 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FgsluzdCoDzfqdG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FgsluzdCoDzfqdG
	je	.L_after_reduction_FgsluzdCoDzfqdG_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FgsluzdCoDzfqdG_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_16_CjljsCjaoxujvDg_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_dBDAoEoFjhwcanb
	jae	.L_16_blocks_overflow_dBDAoEoFjhwcanb_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_dBDAoEoFjhwcanb
	jmp	.L_16_blocks_ok_dBDAoEoFjhwcanb_BCM_4

.L_16_blocks_overflow_dBDAoEoFjhwcanb_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_dBDAoEoFjhwcanb_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 1088(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 1152(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 1216(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm14,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_fdoxuvdoEsDrnFi_BCM_4:

# 119062 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fdoxuvdoEsDrnFi_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_fdoxuvdoEsDrnFi_BCM_4:

# WAS jmp .L_last_blocks_done_CjljsCjaoxujvDg
	jmp	.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4
.L_last_num_blocks_is_0_CjljsCjaoxujvDg_BCM_4:

 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CjljsCjaoxujvDg_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_keEetjmxflGqBfv
	jmp	.L_ghash_done_keEetjmxflGqBfv_BCM_4
.L_encrypt_32_blocks_keEetjmxflGqBfv_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_wovDjxgtezsaCbn
	jae	.L_16_blocks_overflow_wovDjxgtezsaCbn_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_wovDjxgtezsaCbn
	jmp	.L_16_blocks_ok_wovDjxgtezsaCbn_BCM_4
.L_16_blocks_overflow_wovDjxgtezsaCbn_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_wovDjxgtezsaCbn_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_qraoeizxDFojkGy
	jae	.L_16_blocks_overflow_qraoeizxDFojkGy_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_qraoeizxDFojkGy
	jmp	.L_16_blocks_ok_qraoeizxDFojkGy_BCM_4
.L_16_blocks_overflow_qraoeizxDFojkGy_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_qraoeizxDFojkGy_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1024(%rsp),%zmm8
 vmovdqu64 256(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 320(%rsp),%zmm18
 vmovdqa64 1088(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 384(%rsp),%zmm1
 vmovdqa64 1152(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 448(%rsp),%zmm18
 vmovdqa64 1216(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 256(%rcx,%rax,1),%zmm17
 vmovdqu8 320(%rcx,%rax,1),%zmm19
 vmovdqu8 384(%rcx,%rax,1),%zmm20
 vmovdqu8 448(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm15,%zmm10,%zmm26
 vpternlogq $0x96,%zmm12,%zmm6,%zmm24
 vpternlogq $0x96,%zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,256(%r10,%rax,1)
 vmovdqu8 %zmm3,320(%r10,%rax,1)
 vmovdqu8 %zmm4,384(%r10,%rax,1)
 vmovdqu8 %zmm5,448(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,768(%rsp)
 vmovdqa64 %zmm3,832(%rsp)
 vmovdqa64 %zmm4,896(%rsp)
 vmovdqa64 %zmm5,960(%rsp)
 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

 subq $512,%r8
 addq $512,%rax
 movl %r8d,%r10d
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_0_CafpBFgwEozfiCz_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_8_CafpBFgwEozfiCz_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_CafpBFgwEozfiCz
	jb	.L_last_num_blocks_is_7_1_CafpBFgwEozfiCz_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_12_CafpBFgwEozfiCz_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_CafpBFgwEozfiCz
	jb	.L_last_num_blocks_is_11_9_CafpBFgwEozfiCz_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_15_CafpBFgwEozfiCz_BCM_4
# WAS ja .L_last_num_blocks_is_16_CafpBFgwEozfiCz
	ja	.L_last_num_blocks_is_16_CafpBFgwEozfiCz_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_14_CafpBFgwEozfiCz_BCM_4
# WAS jmp .L_last_num_blocks_is_13_CafpBFgwEozfiCz
	jmp	.L_last_num_blocks_is_13_CafpBFgwEozfiCz_BCM_4

.L_last_num_blocks_is_11_9_CafpBFgwEozfiCz_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_10_CafpBFgwEozfiCz_BCM_4
# WAS ja .L_last_num_blocks_is_11_CafpBFgwEozfiCz
	ja	.L_last_num_blocks_is_11_CafpBFgwEozfiCz_BCM_4
# WAS jmp .L_last_num_blocks_is_9_CafpBFgwEozfiCz
	jmp	.L_last_num_blocks_is_9_CafpBFgwEozfiCz_BCM_4

.L_last_num_blocks_is_7_1_CafpBFgwEozfiCz_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_4_CafpBFgwEozfiCz_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_CafpBFgwEozfiCz
	jb	.L_last_num_blocks_is_3_1_CafpBFgwEozfiCz_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_CafpBFgwEozfiCz
	ja	.L_last_num_blocks_is_7_CafpBFgwEozfiCz_BCM_4
# WAS je .L_last_num_blocks_is_6_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_6_CafpBFgwEozfiCz_BCM_4
# WAS jmp .L_last_num_blocks_is_5_CafpBFgwEozfiCz
	jmp	.L_last_num_blocks_is_5_CafpBFgwEozfiCz_BCM_4

.L_last_num_blocks_is_3_1_CafpBFgwEozfiCz_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_CafpBFgwEozfiCz
	ja	.L_last_num_blocks_is_3_CafpBFgwEozfiCz_BCM_4
# WAS je .L_last_num_blocks_is_2_CafpBFgwEozfiCz
	je	.L_last_num_blocks_is_2_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_1_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_fekfutzigacvqDc
	jae	.L_16_blocks_overflow_fekfutzigacvqDc_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_fekfutzigacvqDc
	jmp	.L_16_blocks_ok_fekfutzigacvqDc_BCM_4

.L_16_blocks_overflow_fekfutzigacvqDc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_fekfutzigacvqDc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BqCzdBwrfgovfqg
	jl	.L_small_initial_partial_block_BqCzdBwrfgovfqg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BqCzdBwrfgovfqg
	jmp	.L_small_initial_compute_done_BqCzdBwrfgovfqg_BCM_4
.L_small_initial_partial_block_BqCzdBwrfgovfqg_BCM_4:

# 119871 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 119912 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_BqCzdBwrfgovfqg
	jmp	.L_after_reduction_BqCzdBwrfgovfqg_BCM_4
.L_small_initial_compute_done_BqCzdBwrfgovfqg_BCM_4:

.L_after_reduction_BqCzdBwrfgovfqg_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_2_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_zEwleqntmDxAeyd
	jae	.L_16_blocks_overflow_zEwleqntmDxAeyd_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_zEwleqntmDxAeyd
	jmp	.L_16_blocks_ok_zEwleqntmDxAeyd_BCM_4

.L_16_blocks_overflow_zEwleqntmDxAeyd_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_zEwleqntmDxAeyd_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_eohifjbpuerrzyg
	jl	.L_small_initial_partial_block_eohifjbpuerrzyg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_eohifjbpuerrzyg
	jmp	.L_small_initial_compute_done_eohifjbpuerrzyg_BCM_4
.L_small_initial_partial_block_eohifjbpuerrzyg_BCM_4:

# 120079 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_eohifjbpuerrzyg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_eohifjbpuerrzyg
	je	.L_after_reduction_eohifjbpuerrzyg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_eohifjbpuerrzyg_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_3_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_acnffEtijrEjnxo
	jae	.L_16_blocks_overflow_acnffEtijrEjnxo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_acnffEtijrEjnxo
	jmp	.L_16_blocks_ok_acnffEtijrEjnxo_BCM_4

.L_16_blocks_overflow_acnffEtijrEjnxo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_acnffEtijrEjnxo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_doyzohBGtCkjnqc
	jl	.L_small_initial_partial_block_doyzohBGtCkjnqc_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_doyzohBGtCkjnqc
	jmp	.L_small_initial_compute_done_doyzohBGtCkjnqc_BCM_4
.L_small_initial_partial_block_doyzohBGtCkjnqc_BCM_4:

# 120286 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_doyzohBGtCkjnqc_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_doyzohBGtCkjnqc
	je	.L_after_reduction_doyzohBGtCkjnqc_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_doyzohBGtCkjnqc_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_4_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_uGhvhwlitDofjoE
	jae	.L_16_blocks_overflow_uGhvhwlitDofjoE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_uGhvhwlitDofjoE
	jmp	.L_16_blocks_ok_uGhvhwlitDofjoE_BCM_4

.L_16_blocks_overflow_uGhvhwlitDofjoE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_uGhvhwlitDofjoE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_CsCwmBEowahhzih
	jl	.L_small_initial_partial_block_CsCwmBEowahhzih_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_CsCwmBEowahhzih
	jmp	.L_small_initial_compute_done_CsCwmBEowahhzih_BCM_4
.L_small_initial_partial_block_CsCwmBEowahhzih_BCM_4:

# 120493 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_CsCwmBEowahhzih_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_CsCwmBEowahhzih
	je	.L_after_reduction_CsCwmBEowahhzih_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_CsCwmBEowahhzih_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_5_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_BwnlahcxoBDAelu
	jae	.L_16_blocks_overflow_BwnlahcxoBDAelu_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_BwnlahcxoBDAelu
	jmp	.L_16_blocks_ok_BwnlahcxoBDAelu_BCM_4

.L_16_blocks_overflow_BwnlahcxoBDAelu_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_BwnlahcxoBDAelu_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rBivbBgEnqzuoau
	jl	.L_small_initial_partial_block_rBivbBgEnqzuoau_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rBivbBgEnqzuoau
	jmp	.L_small_initial_compute_done_rBivbBgEnqzuoau_BCM_4
.L_small_initial_partial_block_rBivbBgEnqzuoau_BCM_4:

# 120731 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rBivbBgEnqzuoau_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rBivbBgEnqzuoau
	je	.L_after_reduction_rBivbBgEnqzuoau_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rBivbBgEnqzuoau_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_6_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_ymfljrqweowoCvG
	jae	.L_16_blocks_overflow_ymfljrqweowoCvG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_ymfljrqweowoCvG
	jmp	.L_16_blocks_ok_ymfljrqweowoCvG_BCM_4

.L_16_blocks_overflow_ymfljrqweowoCvG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_ymfljrqweowoCvG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Dlbqsuajgnhvlny
	jl	.L_small_initial_partial_block_Dlbqsuajgnhvlny_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Dlbqsuajgnhvlny
	jmp	.L_small_initial_compute_done_Dlbqsuajgnhvlny_BCM_4
.L_small_initial_partial_block_Dlbqsuajgnhvlny_BCM_4:

# 120969 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Dlbqsuajgnhvlny_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Dlbqsuajgnhvlny
	je	.L_after_reduction_Dlbqsuajgnhvlny_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Dlbqsuajgnhvlny_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_7_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_ijxrtlxzmzgCbiE
	jae	.L_16_blocks_overflow_ijxrtlxzmzgCbiE_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_ijxrtlxzmzgCbiE
	jmp	.L_16_blocks_ok_ijxrtlxzmzgCbiE_BCM_4

.L_16_blocks_overflow_ijxrtlxzmzgCbiE_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_ijxrtlxzmzgCbiE_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Fpgnkfiyboaddsm
	jl	.L_small_initial_partial_block_Fpgnkfiyboaddsm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Fpgnkfiyboaddsm
	jmp	.L_small_initial_compute_done_Fpgnkfiyboaddsm_BCM_4
.L_small_initial_partial_block_Fpgnkfiyboaddsm_BCM_4:

# 121214 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Fpgnkfiyboaddsm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Fpgnkfiyboaddsm
	je	.L_after_reduction_Fpgnkfiyboaddsm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Fpgnkfiyboaddsm_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_8_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_zzfxscwhyoakGqc
	jae	.L_16_blocks_overflow_zzfxscwhyoakGqc_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_zzfxscwhyoakGqc
	jmp	.L_16_blocks_ok_zzfxscwhyoakGqc_BCM_4

.L_16_blocks_overflow_zzfxscwhyoakGqc_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_zzfxscwhyoakGqc_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xBdugFFrnyriCBE
	jl	.L_small_initial_partial_block_xBdugFFrnyriCBE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xBdugFFrnyriCBE
	jmp	.L_small_initial_compute_done_xBdugFFrnyriCBE_BCM_4
.L_small_initial_partial_block_xBdugFFrnyriCBE_BCM_4:

# 121461 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xBdugFFrnyriCBE_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xBdugFFrnyriCBE
	je	.L_after_reduction_xBdugFFrnyriCBE_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xBdugFFrnyriCBE_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_9_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_hswtkcnEneBfnil
	jae	.L_16_blocks_overflow_hswtkcnEneBfnil_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_hswtkcnEneBfnil
	jmp	.L_16_blocks_ok_hswtkcnEneBfnil_BCM_4

.L_16_blocks_overflow_hswtkcnEneBfnil_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_hswtkcnEneBfnil_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_lgbbvgiAttomlsy
	jl	.L_small_initial_partial_block_lgbbvgiAttomlsy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_lgbbvgiAttomlsy
	jmp	.L_small_initial_compute_done_lgbbvgiAttomlsy_BCM_4
.L_small_initial_partial_block_lgbbvgiAttomlsy_BCM_4:

# 121737 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_lgbbvgiAttomlsy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_lgbbvgiAttomlsy
	je	.L_after_reduction_lgbbvgiAttomlsy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_lgbbvgiAttomlsy_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_10_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_EBzDixsnrGlAsGi
	jae	.L_16_blocks_overflow_EBzDixsnrGlAsGi_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_EBzDixsnrGlAsGi
	jmp	.L_16_blocks_ok_EBzDixsnrGlAsGi_BCM_4

.L_16_blocks_overflow_EBzDixsnrGlAsGi_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_EBzDixsnrGlAsGi_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xdsDxBzahxmzysb
	jl	.L_small_initial_partial_block_xdsDxBzahxmzysb_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xdsDxBzahxmzysb
	jmp	.L_small_initial_compute_done_xdsDxBzahxmzysb_BCM_4
.L_small_initial_partial_block_xdsDxBzahxmzysb_BCM_4:

# 122015 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xdsDxBzahxmzysb_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xdsDxBzahxmzysb
	je	.L_after_reduction_xdsDxBzahxmzysb_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xdsDxBzahxmzysb_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_11_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_qyEwjvzrfEfrwlG
	jae	.L_16_blocks_overflow_qyEwjvzrfEfrwlG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_qyEwjvzrfEfrwlG
	jmp	.L_16_blocks_ok_qyEwjvzrfEfrwlG_BCM_4

.L_16_blocks_overflow_qyEwjvzrfEfrwlG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_qyEwjvzrfEfrwlG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cmfyhuncjqoAhuh
	jl	.L_small_initial_partial_block_cmfyhuncjqoAhuh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cmfyhuncjqoAhuh
	jmp	.L_small_initial_compute_done_cmfyhuncjqoAhuh_BCM_4
.L_small_initial_partial_block_cmfyhuncjqoAhuh_BCM_4:

# 122300 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cmfyhuncjqoAhuh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cmfyhuncjqoAhuh
	je	.L_after_reduction_cmfyhuncjqoAhuh_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cmfyhuncjqoAhuh_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_12_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_bcstjouersAefmz
	jae	.L_16_blocks_overflow_bcstjouersAefmz_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_bcstjouersAefmz
	jmp	.L_16_blocks_ok_bcstjouersAefmz_BCM_4

.L_16_blocks_overflow_bcstjouersAefmz_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_bcstjouersAefmz_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iFhieggherswFAm
	jl	.L_small_initial_partial_block_iFhieggherswFAm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iFhieggherswFAm
	jmp	.L_small_initial_compute_done_iFhieggherswFAm_BCM_4
.L_small_initial_partial_block_iFhieggherswFAm_BCM_4:

# 122583 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iFhieggherswFAm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iFhieggherswFAm
	je	.L_after_reduction_iFhieggherswFAm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iFhieggherswFAm_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_13_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_rymwDrficveEDaj
	jae	.L_16_blocks_overflow_rymwDrficveEDaj_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_rymwDrficveEDaj
	jmp	.L_16_blocks_ok_rymwDrficveEDaj_BCM_4

.L_16_blocks_overflow_rymwDrficveEDaj_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_rymwDrficveEDaj_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aevCxqqBBnzfjmB
	jl	.L_small_initial_partial_block_aevCxqqBBnzfjmB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aevCxqqBBnzfjmB
	jmp	.L_small_initial_compute_done_aevCxqqBBnzfjmB_BCM_4
.L_small_initial_partial_block_aevCxqqBBnzfjmB_BCM_4:

# 122895 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aevCxqqBBnzfjmB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aevCxqqBBnzfjmB
	je	.L_after_reduction_aevCxqqBBnzfjmB_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aevCxqqBBnzfjmB_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_14_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_kzfnwbigglfewrl
	jae	.L_16_blocks_overflow_kzfnwbigglfewrl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_kzfnwbigglfewrl
	jmp	.L_16_blocks_ok_kzfnwbigglfewrl_BCM_4

.L_16_blocks_overflow_kzfnwbigglfewrl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_kzfnwbigglfewrl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_BirmupqDcbxwtda
	jl	.L_small_initial_partial_block_BirmupqDcbxwtda_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_BirmupqDcbxwtda
	jmp	.L_small_initial_compute_done_BirmupqDcbxwtda_BCM_4
.L_small_initial_partial_block_BirmupqDcbxwtda_BCM_4:

# 123205 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_BirmupqDcbxwtda_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_BirmupqDcbxwtda
	je	.L_after_reduction_BirmupqDcbxwtda_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_BirmupqDcbxwtda_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_15_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_zpEbDAveGDqklle
	jae	.L_16_blocks_overflow_zpEbDAveGDqklle_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_zpEbDAveGDqklle
	jmp	.L_16_blocks_ok_zpEbDAveGDqklle_BCM_4

.L_16_blocks_overflow_zpEbDAveGDqklle_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_zpEbDAveGDqklle_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_Djympovkdexblck
	jl	.L_small_initial_partial_block_Djympovkdexblck_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_Djympovkdexblck
	jmp	.L_small_initial_compute_done_Djympovkdexblck_BCM_4
.L_small_initial_partial_block_Djympovkdexblck_BCM_4:

# 123522 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_Djympovkdexblck_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_Djympovkdexblck
	je	.L_after_reduction_Djympovkdexblck_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_Djympovkdexblck_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_16_CafpBFgwEozfiCz_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_bjFGibBdktCEryt
	jae	.L_16_blocks_overflow_bjFGibBdktCEryt_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_bjFGibBdktCEryt
	jmp	.L_16_blocks_ok_bjFGibBdktCEryt_BCM_4

.L_16_blocks_overflow_bjFGibBdktCEryt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_bjFGibBdktCEryt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_pBmCpEpokBigCud_BCM_4:

# 123769 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pBmCpEpokBigCud_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_pBmCpEpokBigCud_BCM_4:

# WAS jmp .L_last_blocks_done_CafpBFgwEozfiCz
	jmp	.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4
.L_last_num_blocks_is_0_CafpBFgwEozfiCz_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_CafpBFgwEozfiCz_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_keEetjmxflGqBfv
	jmp	.L_ghash_done_keEetjmxflGqBfv_BCM_4
.L_encrypt_16_blocks_keEetjmxflGqBfv_BCM_4:

 cmpb $240,%r15b
# WAS jae .L_16_blocks_overflow_wmtckzeadccoCgk
	jae	.L_16_blocks_overflow_wmtckzeadccoCgk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_wmtckzeadccoCgk
	jmp	.L_16_blocks_ok_wmtckzeadccoCgk_BCM_4
.L_16_blocks_overflow_wmtckzeadccoCgk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_wmtckzeadccoCgk_BCM_4:

 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp),%zmm1




 vshufi64x2 $255,%zmm5,%zmm5,%zmm2
 addb $16,%r15b


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp),%zmm18
 vmovdqa64 832(%rsp),%zmm22







 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30



.byte 98,243,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp),%zmm1
 vmovdqa64 896(%rsp),%zmm8



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp),%zmm18
 vmovdqa64 960(%rsp),%zmm22



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30



.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0


.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31



 vpternlogq $0x96,%zmm17,%zmm12,%zmm6
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10



.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30



 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21



.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31



.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0


.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm15,%zmm10,%zmm26
 vpxorq %zmm12,%zmm6,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31

.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30

.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238



 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5



 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1)
 vpshufb %zmm29,%zmm17,%zmm0
 vpshufb %zmm29,%zmm19,%zmm3
 vpshufb %zmm29,%zmm20,%zmm4
 vpshufb %zmm29,%zmm21,%zmm5
 vmovdqa64 %zmm0,1280(%rsp)
 vmovdqa64 %zmm3,1344(%rsp)
 vmovdqa64 %zmm4,1408(%rsp)
 vmovdqa64 %zmm5,1472(%rsp)
 vmovdqa64 1024(%rsp),%zmm13
 vmovdqu64 256(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1088(%rsp),%zmm13
 vmovdqu64 320(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1152(%rsp),%zmm13
 vmovdqu64 384(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1216(%rsp),%zmm13
 vmovdqu64 448(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_0_adnhFzpjBkEnjlu_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_8_adnhFzpjBkEnjlu_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_adnhFzpjBkEnjlu
	jb	.L_last_num_blocks_is_7_1_adnhFzpjBkEnjlu_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_12_adnhFzpjBkEnjlu_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_adnhFzpjBkEnjlu
	jb	.L_last_num_blocks_is_11_9_adnhFzpjBkEnjlu_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_15_adnhFzpjBkEnjlu_BCM_4
# WAS ja .L_last_num_blocks_is_16_adnhFzpjBkEnjlu
	ja	.L_last_num_blocks_is_16_adnhFzpjBkEnjlu_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_14_adnhFzpjBkEnjlu_BCM_4
# WAS jmp .L_last_num_blocks_is_13_adnhFzpjBkEnjlu
	jmp	.L_last_num_blocks_is_13_adnhFzpjBkEnjlu_BCM_4

.L_last_num_blocks_is_11_9_adnhFzpjBkEnjlu_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_10_adnhFzpjBkEnjlu_BCM_4
# WAS ja .L_last_num_blocks_is_11_adnhFzpjBkEnjlu
	ja	.L_last_num_blocks_is_11_adnhFzpjBkEnjlu_BCM_4
# WAS jmp .L_last_num_blocks_is_9_adnhFzpjBkEnjlu
	jmp	.L_last_num_blocks_is_9_adnhFzpjBkEnjlu_BCM_4

.L_last_num_blocks_is_7_1_adnhFzpjBkEnjlu_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_4_adnhFzpjBkEnjlu_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_adnhFzpjBkEnjlu
	jb	.L_last_num_blocks_is_3_1_adnhFzpjBkEnjlu_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_adnhFzpjBkEnjlu
	ja	.L_last_num_blocks_is_7_adnhFzpjBkEnjlu_BCM_4
# WAS je .L_last_num_blocks_is_6_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_6_adnhFzpjBkEnjlu_BCM_4
# WAS jmp .L_last_num_blocks_is_5_adnhFzpjBkEnjlu
	jmp	.L_last_num_blocks_is_5_adnhFzpjBkEnjlu_BCM_4

.L_last_num_blocks_is_3_1_adnhFzpjBkEnjlu_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_adnhFzpjBkEnjlu
	ja	.L_last_num_blocks_is_3_adnhFzpjBkEnjlu_BCM_4
# WAS je .L_last_num_blocks_is_2_adnhFzpjBkEnjlu
	je	.L_last_num_blocks_is_2_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_1_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_GsxmuksbpmpGjAF
	jae	.L_16_blocks_overflow_GsxmuksbpmpGjAF_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_GsxmuksbpmpGjAF
	jmp	.L_16_blocks_ok_GsxmuksbpmpGjAF_BCM_4

.L_16_blocks_overflow_GsxmuksbpmpGjAF_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_GsxmuksbpmpGjAF_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,8,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_fkgElsvknyCFraE
	jl	.L_small_initial_partial_block_fkgElsvknyCFraE_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_fkgElsvknyCFraE
	jmp	.L_small_initial_compute_done_fkgElsvknyCFraE_BCM_4
.L_small_initial_partial_block_fkgElsvknyCFraE_BCM_4:

# 124364 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
# 124377 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_fkgElsvknyCFraE
	jmp	.L_after_reduction_fkgElsvknyCFraE_BCM_4
.L_small_initial_compute_done_fkgElsvknyCFraE_BCM_4:

.L_after_reduction_fkgElsvknyCFraE_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_2_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_EjdqvCnEusieimt
	jae	.L_16_blocks_overflow_EjdqvCnEusieimt_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_EjdqvCnEusieimt
	jmp	.L_16_blocks_ok_EjdqvCnEusieimt_BCM_4

.L_16_blocks_overflow_EjdqvCnEusieimt_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_EjdqvCnEusieimt_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,40,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rouAoqaCpdDxjzF
	jl	.L_small_initial_partial_block_rouAoqaCpdDxjzF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rouAoqaCpdDxjzF
	jmp	.L_small_initial_compute_done_rouAoqaCpdDxjzF_BCM_4
.L_small_initial_partial_block_rouAoqaCpdDxjzF_BCM_4:

# 124565 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rouAoqaCpdDxjzF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rouAoqaCpdDxjzF
	je	.L_after_reduction_rouAoqaCpdDxjzF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_rouAoqaCpdDxjzF_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_3_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_uctbCqtlugkklDD
	jae	.L_16_blocks_overflow_uctbCqtlugkklDD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_uctbCqtlugkklDD
	jmp	.L_16_blocks_ok_uctbCqtlugkklDD_BCM_4

.L_16_blocks_overflow_uctbCqtlugkklDD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_uctbCqtlugkklDD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zkAAeakisCCFqgf
	jl	.L_small_initial_partial_block_zkAAeakisCCFqgf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zkAAeakisCCFqgf
	jmp	.L_small_initial_compute_done_zkAAeakisCCFqgf_BCM_4
.L_small_initial_partial_block_zkAAeakisCCFqgf_BCM_4:

# 124791 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zkAAeakisCCFqgf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zkAAeakisCCFqgf
	je	.L_after_reduction_zkAAeakisCCFqgf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zkAAeakisCCFqgf_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_4_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_gaqeqvovBwleCnk
	jae	.L_16_blocks_overflow_gaqeqvovBwleCnk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_gaqeqvovBwleCnk
	jmp	.L_16_blocks_ok_gaqeqvovBwleCnk_BCM_4

.L_16_blocks_overflow_gaqeqvovBwleCnk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_gaqeqvovBwleCnk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_qihCqAlqxdsjyzm
	jl	.L_small_initial_partial_block_qihCqAlqxdsjyzm_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_qihCqAlqxdsjyzm
	jmp	.L_small_initial_compute_done_qihCqAlqxdsjyzm_BCM_4
.L_small_initial_partial_block_qihCqAlqxdsjyzm_BCM_4:

# 125016 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_qihCqAlqxdsjyzm_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_qihCqAlqxdsjyzm
	je	.L_after_reduction_qihCqAlqxdsjyzm_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_qihCqAlqxdsjyzm_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_5_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_ocpzeCAdEaCuwqG
	jae	.L_16_blocks_overflow_ocpzeCAdEaCuwqG_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_ocpzeCAdEaCuwqG
	jmp	.L_16_blocks_ok_ocpzeCAdEaCuwqG_BCM_4

.L_16_blocks_overflow_ocpzeCAdEaCuwqG_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_ocpzeCAdEaCuwqG_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GgfcCeubxmwGabf
	jl	.L_small_initial_partial_block_GgfcCeubxmwGabf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GgfcCeubxmwGabf
	jmp	.L_small_initial_compute_done_GgfcCeubxmwGabf_BCM_4
.L_small_initial_partial_block_GgfcCeubxmwGabf_BCM_4:

# 125276 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GgfcCeubxmwGabf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GgfcCeubxmwGabf
	je	.L_after_reduction_GgfcCeubxmwGabf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GgfcCeubxmwGabf_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_6_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_tCpEhfGhdbguevv
	jae	.L_16_blocks_overflow_tCpEhfGhdbguevv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_tCpEhfGhdbguevv
	jmp	.L_16_blocks_ok_tCpEhfGhdbguevv_BCM_4

.L_16_blocks_overflow_tCpEhfGhdbguevv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_tCpEhfGhdbguevv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EcehrEgDvGgGxlr
	jl	.L_small_initial_partial_block_EcehrEgDvGgGxlr_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EcehrEgDvGgGxlr
	jmp	.L_small_initial_compute_done_EcehrEgDvGgGxlr_BCM_4
.L_small_initial_partial_block_EcehrEgDvGgGxlr_BCM_4:

# 125535 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EcehrEgDvGgGxlr_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EcehrEgDvGgGxlr
	je	.L_after_reduction_EcehrEgDvGgGxlr_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EcehrEgDvGgGxlr_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_7_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_yhnxntsqCvqmnAv
	jae	.L_16_blocks_overflow_yhnxntsqCvqmnAv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_yhnxntsqCvqmnAv
	jmp	.L_16_blocks_ok_yhnxntsqCvqmnAv_BCM_4

.L_16_blocks_overflow_yhnxntsqCvqmnAv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_yhnxntsqCvqmnAv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dpnDdmEjpiBlsff
	jl	.L_small_initial_partial_block_dpnDdmEjpiBlsff_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dpnDdmEjpiBlsff
	jmp	.L_small_initial_compute_done_dpnDdmEjpiBlsff_BCM_4
.L_small_initial_partial_block_dpnDdmEjpiBlsff_BCM_4:

# 125805 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dpnDdmEjpiBlsff_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dpnDdmEjpiBlsff
	je	.L_after_reduction_dpnDdmEjpiBlsff_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dpnDdmEjpiBlsff_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_8_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_qhecknjsAigbdvl
	jae	.L_16_blocks_overflow_qhecknjsAigbdvl_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_qhecknjsAigbdvl
	jmp	.L_16_blocks_ok_qhecknjsAigbdvl_BCM_4

.L_16_blocks_overflow_qhecknjsAigbdvl_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_qhecknjsAigbdvl_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_agskGinasntEiCl
	jl	.L_small_initial_partial_block_agskGinasntEiCl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_agskGinasntEiCl
	jmp	.L_small_initial_compute_done_agskGinasntEiCl_BCM_4
.L_small_initial_partial_block_agskGinasntEiCl_BCM_4:

# 126073 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_agskGinasntEiCl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_agskGinasntEiCl
	je	.L_after_reduction_agskGinasntEiCl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_agskGinasntEiCl_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_9_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_bFfGEAqbwowecqr
	jae	.L_16_blocks_overflow_bFfGEAqbwowecqr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_bFfGEAqbwowecqr
	jmp	.L_16_blocks_ok_bFfGEAqbwowecqr_BCM_4

.L_16_blocks_overflow_bFfGEAqbwowecqr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_bFfGEAqbwowecqr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xuljsjGkGjfAtFa
	jl	.L_small_initial_partial_block_xuljsjGkGjfAtFa_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xuljsjGkGjfAtFa
	jmp	.L_small_initial_compute_done_xuljsjGkGjfAtFa_BCM_4
.L_small_initial_partial_block_xuljsjGkGjfAtFa_BCM_4:

# 126374 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xuljsjGkGjfAtFa_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xuljsjGkGjfAtFa
	je	.L_after_reduction_xuljsjGkGjfAtFa_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xuljsjGkGjfAtFa_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_10_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_rvpoAkotkmdfoGD
	jae	.L_16_blocks_overflow_rvpoAkotkmdfoGD_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_rvpoAkotkmdfoGD
	jmp	.L_16_blocks_ok_rvpoAkotkmdfoGD_BCM_4

.L_16_blocks_overflow_rvpoAkotkmdfoGD_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_rvpoAkotkmdfoGD_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_xvxthCnBgzxznFe
	jl	.L_small_initial_partial_block_xvxthCnBgzxznFe_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_xvxthCnBgzxznFe
	jmp	.L_small_initial_compute_done_xvxthCnBgzxznFe_BCM_4
.L_small_initial_partial_block_xvxthCnBgzxznFe_BCM_4:

# 126673 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xvxthCnBgzxznFe_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_xvxthCnBgzxznFe
	je	.L_after_reduction_xvxthCnBgzxznFe_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xvxthCnBgzxznFe_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_11_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_vfjpDwaAwwnfAie
	jae	.L_16_blocks_overflow_vfjpDwaAwwnfAie_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_vfjpDwaAwwnfAie
	jmp	.L_16_blocks_ok_vfjpDwaAwwnfAie_BCM_4

.L_16_blocks_overflow_vfjpDwaAwwnfAie_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_vfjpDwaAwwnfAie_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_aBbqBjAzrxyDsyu
	jl	.L_small_initial_partial_block_aBbqBjAzrxyDsyu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_aBbqBjAzrxyDsyu
	jmp	.L_small_initial_compute_done_aBbqBjAzrxyDsyu_BCM_4
.L_small_initial_partial_block_aBbqBjAzrxyDsyu_BCM_4:

# 126983 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_aBbqBjAzrxyDsyu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_aBbqBjAzrxyDsyu
	je	.L_after_reduction_aBbqBjAzrxyDsyu_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_aBbqBjAzrxyDsyu_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_12_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_sxuCEDavBFjsEdv
	jae	.L_16_blocks_overflow_sxuCEDavBFjsEdv_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_sxuCEDavBFjsEdv
	jmp	.L_16_blocks_ok_sxuCEDavBFjsEdv_BCM_4

.L_16_blocks_overflow_sxuCEDavBFjsEdv_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_sxuCEDavBFjsEdv_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yChicojCCAAFCdn
	jl	.L_small_initial_partial_block_yChicojCCAAFCdn_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yChicojCCAAFCdn
	jmp	.L_small_initial_compute_done_yChicojCCAAFCdn_BCM_4
.L_small_initial_partial_block_yChicojCCAAFCdn_BCM_4:

# 127287 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yChicojCCAAFCdn_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yChicojCCAAFCdn
	je	.L_after_reduction_yChicojCCAAFCdn_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yChicojCCAAFCdn_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_13_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_qqAerGvEyeduCgs
	jae	.L_16_blocks_overflow_qqAerGvEyeduCgs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_qqAerGvEyeduCgs
	jmp	.L_16_blocks_ok_qqAerGvEyeduCgs_BCM_4

.L_16_blocks_overflow_qqAerGvEyeduCgs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_qqAerGvEyeduCgs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zkhmCnldAfcumwl
	jl	.L_small_initial_partial_block_zkhmCnldAfcumwl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zkhmCnldAfcumwl
	jmp	.L_small_initial_compute_done_zkhmCnldAfcumwl_BCM_4
.L_small_initial_partial_block_zkhmCnldAfcumwl_BCM_4:

# 127624 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zkhmCnldAfcumwl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zkhmCnldAfcumwl
	je	.L_after_reduction_zkhmCnldAfcumwl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zkhmCnldAfcumwl_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_14_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_tiwfklfdCbEnvFe
	jae	.L_16_blocks_overflow_tiwfklfdCbEnvFe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_tiwfklfdCbEnvFe
	jmp	.L_16_blocks_ok_tiwfklfdCbEnvFe_BCM_4

.L_16_blocks_overflow_tiwfklfdCbEnvFe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_tiwfklfdCbEnvFe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_fFfrqpdqbcvGzmv
	jl	.L_small_initial_partial_block_fFfrqpdqbcvGzmv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_fFfrqpdqbcvGzmv
	jmp	.L_small_initial_compute_done_fFfrqpdqbcvGzmv_BCM_4
.L_small_initial_partial_block_fFfrqpdqbcvGzmv_BCM_4:

# 127955 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fFfrqpdqbcvGzmv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_fFfrqpdqbcvGzmv
	je	.L_after_reduction_fFfrqpdqbcvGzmv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_fFfrqpdqbcvGzmv_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_15_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_BatgsGhBnhqnqnx
	jae	.L_16_blocks_overflow_BatgsGhBnhqnqnx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_BatgsGhBnhqnqnx
	jmp	.L_16_blocks_ok_BatgsGhBnhqnqnx_BCM_4

.L_16_blocks_overflow_BatgsGhBnhqnqnx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_BatgsGhBnhqnqnx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ysbBlvhzxEdeEFl
	jl	.L_small_initial_partial_block_ysbBlvhzxEdeEFl_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ysbBlvhzxEdeEFl
	jmp	.L_small_initial_compute_done_ysbBlvhzxEdeEFl_BCM_4
.L_small_initial_partial_block_ysbBlvhzxEdeEFl_BCM_4:

# 128297 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ysbBlvhzxEdeEFl_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ysbBlvhzxEdeEFl
	je	.L_after_reduction_ysbBlvhzxEdeEFl_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_ysbBlvhzxEdeEFl_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_16_adnhFzpjBkEnjlu_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_CuxvqEazAfGjsCp
	jae	.L_16_blocks_overflow_CuxvqEazAfGjsCp_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_CuxvqEazAfGjsCp
	jmp	.L_16_blocks_ok_CuxvqEazAfGjsCp_BCM_4

.L_16_blocks_overflow_CuxvqEazAfGjsCp_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_CuxvqEazAfGjsCp_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vmovdqa64 1280(%rsp),%zmm8
 vmovdqu64 512(%rsp),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 576(%rsp),%zmm18
 vmovdqa64 1344(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 640(%rsp),%zmm1
 vmovdqa64 1408(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 704(%rsp),%zmm18
 vmovdqa64 1472(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpternlogq $0x96,%zmm12,%zmm24,%zmm14
 vpternlogq $0x96,%zmm13,%zmm25,%zmm7
 vpternlogq $0x96,%zmm15,%zmm26,%zmm10
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
 vpsrldq $8,%zmm10,%zmm15
 vpslldq $8,%zmm10,%zmm10

# WAS vmovdqa64 POLY2(%rip),%xmm16
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm16
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
 vpxorq %zmm15,%zmm14,%zmm14
 vpxorq %zmm10,%zmm7,%zmm7
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vextracti64x4 $1,%zmm14,%ymm12
 vpxorq %ymm12,%ymm14,%ymm14
 vextracti32x4 $1,%ymm14,%xmm12
 vpxorq %xmm12,%xmm14,%xmm14
 vextracti64x4 $1,%zmm7,%ymm13
 vpxorq %ymm13,%ymm7,%ymm7
 vextracti32x4 $1,%ymm7,%xmm13
 vpxorq %xmm13,%xmm7,%xmm7
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,115,125,0,68,239,1
 vpslldq $8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm7,%xmm13
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,83,125,0,68,229,0
 vpsrldq $4,%xmm12,%xmm12
.byte 98,83,125,0,68,253,16
 vpslldq $4,%xmm15,%xmm15

 vpternlogq $0x96,%xmm12,%xmm15,%xmm14
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_cGvBxlvhpkhxlhv_BCM_4:

# 128568 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vpxorq %zmm14,%zmm17,%zmm17
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm31,%zmm5,%zmm5
 vpxorq %zmm8,%zmm0,%zmm0
 vpxorq %zmm22,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cGvBxlvhpkhxlhv_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_cGvBxlvhpkhxlhv_BCM_4:

# WAS jmp .L_last_blocks_done_adnhFzpjBkEnjlu
	jmp	.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4
.L_last_num_blocks_is_0_adnhFzpjBkEnjlu_BCM_4:

 vmovdqa64 1280(%rsp),%zmm13
 vmovdqu64 512(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1344(%rsp),%zmm13
 vmovdqu64 576(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 1408(%rsp),%zmm13
 vmovdqu64 640(%rsp),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 1472(%rsp),%zmm13
 vmovdqu64 704(%rsp),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_adnhFzpjBkEnjlu_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_keEetjmxflGqBfv
	jmp	.L_ghash_done_keEetjmxflGqBfv_BCM_4

.L_message_below_32_blocks_keEetjmxflGqBfv_BCM_4:



 subq $256,%r8
 addq $256,%rax
 movl %r8d,%r10d
 leaq 80(%rsi),%r12
 testq %r14,%r14
# WAS jnz .L_skip_hkeys_precomputation_wDAhpcxxDdecsFn
	jnz	.L_skip_hkeys_precomputation_wDAhpcxxDdecsFn_BCM_4
 vmovdqu64 640(%rsp),%zmm3


 vshufi64x2 $0x00,%zmm3,%zmm3,%zmm3

 vmovdqu64 576(%rsp),%zmm4
 vmovdqu64 512(%rsp),%zmm5

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,448(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,384(%rsp)

.byte 98,243,93,72,68,243,17
.byte 98,243,93,72,68,251,0
.byte 98,115,93,72,68,211,1
.byte 98,243,93,72,68,227,16
 vpxorq %zmm10,%zmm4,%zmm4

 vpsrldq $8,%zmm4,%zmm10
 vpslldq $8,%zmm4,%zmm4
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm4,%zmm4



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,252,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm4,%zmm4



.byte 98,243,45,72,68,252,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,228,16
 vpslldq $4,%zmm4,%zmm4

 vpternlogq $0x96,%zmm7,%zmm6,%zmm4

 vmovdqu64 %zmm4,320(%rsp)

.byte 98,243,85,72,68,243,17
.byte 98,243,85,72,68,251,0
.byte 98,115,85,72,68,211,1
.byte 98,243,85,72,68,235,16
 vpxorq %zmm10,%zmm5,%zmm5

 vpsrldq $8,%zmm5,%zmm10
 vpslldq $8,%zmm5,%zmm5
 vpxorq %zmm10,%zmm6,%zmm6
 vpxorq %zmm7,%zmm5,%zmm5



# WAS vmovdqu64 POLY2(%rip),%zmm10
	vmovdqu64	.LPOLY2_local_target(%rip), %zmm10

.byte 98,243,45,72,68,253,1
 vpslldq $8,%zmm7,%zmm7
 vpxorq %zmm7,%zmm5,%zmm5



.byte 98,243,45,72,68,253,0
 vpsrldq $4,%zmm7,%zmm7
.byte 98,243,45,72,68,237,16
 vpslldq $4,%zmm5,%zmm5

 vpternlogq $0x96,%zmm7,%zmm6,%zmm5

 vmovdqu64 %zmm5,256(%rsp)
.L_skip_hkeys_precomputation_wDAhpcxxDdecsFn_BCM_4:

 movq $1,%r14
 andl $~15,%r10d
 movl $512,%ebx
 subl %r10d,%ebx
 movl %r8d,%r10d
 addl $15,%r10d
 shrl $4,%r10d
# WAS je .L_last_num_blocks_is_0_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_0_uGbbotznadbtwnB_BCM_4

 cmpl $8,%r10d
# WAS je .L_last_num_blocks_is_8_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_8_uGbbotznadbtwnB_BCM_4
# WAS jb .L_last_num_blocks_is_7_1_uGbbotznadbtwnB
	jb	.L_last_num_blocks_is_7_1_uGbbotznadbtwnB_BCM_4


 cmpl $12,%r10d
# WAS je .L_last_num_blocks_is_12_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_12_uGbbotznadbtwnB_BCM_4
# WAS jb .L_last_num_blocks_is_11_9_uGbbotznadbtwnB
	jb	.L_last_num_blocks_is_11_9_uGbbotznadbtwnB_BCM_4


 cmpl $15,%r10d
# WAS je .L_last_num_blocks_is_15_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_15_uGbbotznadbtwnB_BCM_4
# WAS ja .L_last_num_blocks_is_16_uGbbotznadbtwnB
	ja	.L_last_num_blocks_is_16_uGbbotznadbtwnB_BCM_4
 cmpl $14,%r10d
# WAS je .L_last_num_blocks_is_14_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_14_uGbbotznadbtwnB_BCM_4
# WAS jmp .L_last_num_blocks_is_13_uGbbotznadbtwnB
	jmp	.L_last_num_blocks_is_13_uGbbotznadbtwnB_BCM_4

.L_last_num_blocks_is_11_9_uGbbotznadbtwnB_BCM_4:


 cmpl $10,%r10d
# WAS je .L_last_num_blocks_is_10_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_10_uGbbotznadbtwnB_BCM_4
# WAS ja .L_last_num_blocks_is_11_uGbbotznadbtwnB
	ja	.L_last_num_blocks_is_11_uGbbotznadbtwnB_BCM_4
# WAS jmp .L_last_num_blocks_is_9_uGbbotznadbtwnB
	jmp	.L_last_num_blocks_is_9_uGbbotznadbtwnB_BCM_4

.L_last_num_blocks_is_7_1_uGbbotznadbtwnB_BCM_4:

 cmpl $4,%r10d
# WAS je .L_last_num_blocks_is_4_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_4_uGbbotznadbtwnB_BCM_4
# WAS jb .L_last_num_blocks_is_3_1_uGbbotznadbtwnB
	jb	.L_last_num_blocks_is_3_1_uGbbotznadbtwnB_BCM_4

 cmpl $6,%r10d
# WAS ja .L_last_num_blocks_is_7_uGbbotznadbtwnB
	ja	.L_last_num_blocks_is_7_uGbbotznadbtwnB_BCM_4
# WAS je .L_last_num_blocks_is_6_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_6_uGbbotznadbtwnB_BCM_4
# WAS jmp .L_last_num_blocks_is_5_uGbbotznadbtwnB
	jmp	.L_last_num_blocks_is_5_uGbbotznadbtwnB_BCM_4

.L_last_num_blocks_is_3_1_uGbbotznadbtwnB_BCM_4:


 cmpl $2,%r10d
# WAS ja .L_last_num_blocks_is_3_uGbbotznadbtwnB
	ja	.L_last_num_blocks_is_3_uGbbotznadbtwnB_BCM_4
# WAS je .L_last_num_blocks_is_2_uGbbotznadbtwnB
	je	.L_last_num_blocks_is_2_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_1_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $255,%r15d
# WAS jae .L_16_blocks_overflow_cChwjnmCkfzrqax
	jae	.L_16_blocks_overflow_cChwjnmCkfzrqax_BCM_4
 vpaddd %xmm28,%xmm2,%xmm0
# WAS jmp .L_16_blocks_ok_cChwjnmCkfzrqax
	jmp	.L_16_blocks_ok_cChwjnmCkfzrqax_BCM_4

.L_16_blocks_overflow_cChwjnmCkfzrqax_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %xmm29,%xmm0,%xmm0
.L_16_blocks_ok_cChwjnmCkfzrqax_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %xmm30,%xmm0,%xmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,8,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,8,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%xmm17{%k1}{z}
.byte 98,146,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,8,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,8,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,8,220,199
.byte 98,146,125,8,221,198
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %xmm29,%xmm17,%xmm17
 vextracti32x4 $0,%zmm17,%xmm7
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EctpihchBbzjuhh
	jl	.L_small_initial_partial_block_EctpihchBbzjuhh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EctpihchBbzjuhh
	jmp	.L_small_initial_compute_done_EctpihchBbzjuhh_BCM_4
.L_small_initial_partial_block_EctpihchBbzjuhh_BCM_4:

# 129043 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)


 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm0
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm0


.byte 98,147,125,8,68,217,1
 vpslldq $8,%xmm3,%xmm3
 vpxorq %xmm3,%xmm25,%xmm3


.byte 98,243,125,8,68,227,0
 vpsrldq $4,%xmm4,%xmm4
.byte 98,115,125,8,68,243,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm4,%xmm14
# 129084 "aesni-gcm-avx512.S"
 vpxorq %xmm7,%xmm14,%xmm14

# WAS jmp .L_after_reduction_EctpihchBbzjuhh
	jmp	.L_after_reduction_EctpihchBbzjuhh_BCM_4
.L_small_initial_compute_done_EctpihchBbzjuhh_BCM_4:

.L_after_reduction_EctpihchBbzjuhh_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_2_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $254,%r15d
# WAS jae .L_16_blocks_overflow_DqmtBvrcgAqmgdw
	jae	.L_16_blocks_overflow_DqmtBvrcgAqmgdw_BCM_4
 vpaddd %ymm28,%ymm2,%ymm0
# WAS jmp .L_16_blocks_ok_DqmtBvrcgAqmgdw
	jmp	.L_16_blocks_ok_DqmtBvrcgAqmgdw_BCM_4

.L_16_blocks_overflow_DqmtBvrcgAqmgdw_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %ymm29,%ymm0,%ymm0
.L_16_blocks_ok_DqmtBvrcgAqmgdw_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %ymm30,%ymm0,%ymm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,40,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,40,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%ymm17{%k1}{z}
.byte 98,146,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,40,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,40,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,40,220,199
.byte 98,146,125,40,221,198
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %ymm29,%ymm17,%ymm17
 vextracti32x4 $1,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EyrkoajdjakxzkF
	jl	.L_small_initial_partial_block_EyrkoajdjakxzkF_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EyrkoajdjakxzkF
	jmp	.L_small_initial_compute_done_EyrkoajdjakxzkF_BCM_4
.L_small_initial_partial_block_EyrkoajdjakxzkF_BCM_4:

# 129251 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,117,0,68,225,1
.byte 98,243,117,0,68,233,16
.byte 98,243,117,0,68,193,17
.byte 98,243,117,0,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EyrkoajdjakxzkF_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EyrkoajdjakxzkF
	je	.L_after_reduction_EyrkoajdjakxzkF_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EyrkoajdjakxzkF_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_3_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $253,%r15d
# WAS jae .L_16_blocks_overflow_hfDuCGGGEpbgAAo
	jae	.L_16_blocks_overflow_hfDuCGGGEpbgAAo_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_hfDuCGGGEpbgAAo
	jmp	.L_16_blocks_ok_hfDuCGGGEpbgAAo_BCM_4

.L_16_blocks_overflow_hfDuCGGGEpbgAAo_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_hfDuCGGGEpbgAAo_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $2,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GfsyFzqqokxFwFx
	jl	.L_small_initial_partial_block_GfsyFzqqokxFwFx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GfsyFzqqokxFwFx
	jmp	.L_small_initial_compute_done_GfsyFzqqokxFwFx_BCM_4
.L_small_initial_partial_block_GfsyFzqqokxFwFx_BCM_4:

# 129458 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,117,32,68,225,1
.byte 98,243,117,32,68,233,16
.byte 98,243,117,32,68,193,17
.byte 98,243,117,32,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GfsyFzqqokxFwFx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GfsyFzqqokxFwFx
	je	.L_after_reduction_GfsyFzqqokxFwFx_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_GfsyFzqqokxFwFx_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_4_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $252,%r15d
# WAS jae .L_16_blocks_overflow_wxaujbwbDrFxuhe
	jae	.L_16_blocks_overflow_wxaujbwbDrFxuhe_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
# WAS jmp .L_16_blocks_ok_wxaujbwbDrFxuhe
	jmp	.L_16_blocks_ok_wxaujbwbDrFxuhe_BCM_4

.L_16_blocks_overflow_wxaujbwbDrFxuhe_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
 vpshufb %zmm29,%zmm0,%zmm0
.L_16_blocks_ok_wxaujbwbDrFxuhe_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm0,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17{%k1}{z}
.byte 98,146,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,125,72,221,198
 vpxorq %zmm17,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm17,%zmm17{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vextracti32x4 $3,%zmm17,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_tpadbsuBdepEgig
	jl	.L_small_initial_partial_block_tpadbsuBdepEgig_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_tpadbsuBdepEgig
	jmp	.L_small_initial_compute_done_tpadbsuBdepEgig_BCM_4
.L_small_initial_partial_block_tpadbsuBdepEgig_BCM_4:

# 129665 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
 vpxorq %zmm26,%zmm4,%zmm4
 vpxorq %zmm24,%zmm0,%zmm0
 vpxorq %zmm25,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_tpadbsuBdepEgig_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_tpadbsuBdepEgig
	je	.L_after_reduction_tpadbsuBdepEgig_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_tpadbsuBdepEgig_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_5_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $251,%r15d
# WAS jae .L_16_blocks_overflow_tEuoxeaCCDdhEFB
	jae	.L_16_blocks_overflow_tEuoxeaCCDdhEFB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %xmm27,%xmm0,%xmm3
# WAS jmp .L_16_blocks_ok_tEuoxeaCCDdhEFB
	jmp	.L_16_blocks_ok_tEuoxeaCCDdhEFB_BCM_4

.L_16_blocks_overflow_tEuoxeaCCDdhEFB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
.L_16_blocks_ok_tEuoxeaCCDdhEFB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %xmm30,%xmm3,%xmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%xmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,8,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,8,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,8,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %xmm19,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %xmm29,%xmm19,%xmm19
 vextracti32x4 $0,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_srvwxdEwmxFwfhg
	jl	.L_small_initial_partial_block_srvwxdEwmxFwfhg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_srvwxdEwmxFwfhg
	jmp	.L_small_initial_compute_done_srvwxdEwmxFwfhg_BCM_4
.L_small_initial_partial_block_srvwxdEwmxFwfhg_BCM_4:

# 129903 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_srvwxdEwmxFwfhg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_srvwxdEwmxFwfhg
	je	.L_after_reduction_srvwxdEwmxFwfhg_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_srvwxdEwmxFwfhg_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_6_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $250,%r15d
# WAS jae .L_16_blocks_overflow_prosxFkubabgvzg
	jae	.L_16_blocks_overflow_prosxFkubabgvzg_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %ymm27,%ymm0,%ymm3
# WAS jmp .L_16_blocks_ok_prosxFkubabgvzg
	jmp	.L_16_blocks_ok_prosxFkubabgvzg_BCM_4

.L_16_blocks_overflow_prosxFkubabgvzg_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
.L_16_blocks_ok_prosxFkubabgvzg_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %ymm30,%ymm3,%ymm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%ymm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,40,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,40,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,40,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %ymm29,%ymm19,%ymm19
 vextracti32x4 $1,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hzkBexFaxhsbChs
	jl	.L_small_initial_partial_block_hzkBexFaxhsbChs_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hzkBexFaxhsbChs
	jmp	.L_small_initial_compute_done_hzkBexFaxhsbChs_BCM_4
.L_small_initial_partial_block_hzkBexFaxhsbChs_BCM_4:

# 130141 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,101,0,68,225,1
.byte 98,243,101,0,68,233,16
.byte 98,243,101,0,68,193,17
.byte 98,243,101,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hzkBexFaxhsbChs_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hzkBexFaxhsbChs
	je	.L_after_reduction_hzkBexFaxhsbChs_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_hzkBexFaxhsbChs_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_7_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $249,%r15d
# WAS jae .L_16_blocks_overflow_aeeqyBehlbvnfnk
	jae	.L_16_blocks_overflow_aeeqyBehlbvnfnk_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_aeeqyBehlbvnfnk
	jmp	.L_16_blocks_ok_aeeqyBehlbvnfnk_BCM_4

.L_16_blocks_overflow_aeeqyBehlbvnfnk_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_aeeqyBehlbvnfnk_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $2,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_AobapGtdiluagwq
	jl	.L_small_initial_partial_block_AobapGtdiluagwq_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_AobapGtdiluagwq
	jmp	.L_small_initial_compute_done_AobapGtdiluagwq_BCM_4
.L_small_initial_partial_block_AobapGtdiluagwq_BCM_4:

# 130386 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,101,32,68,225,1
.byte 98,243,101,32,68,233,16
.byte 98,243,101,32,68,193,17
.byte 98,243,101,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_AobapGtdiluagwq_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_AobapGtdiluagwq
	je	.L_after_reduction_AobapGtdiluagwq_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_AobapGtdiluagwq_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_8_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $64,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $248,%r15d
# WAS jae .L_16_blocks_overflow_rboylvBCxohyFxr
	jae	.L_16_blocks_overflow_rboylvBCxohyFxr_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
# WAS jmp .L_16_blocks_ok_rboylvBCxohyFxr
	jmp	.L_16_blocks_ok_rboylvBCxohyFxr_BCM_4

.L_16_blocks_overflow_rboylvBCxohyFxr_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
.L_16_blocks_ok_rboylvBCxohyFxr_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm3,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm19,%zmm19{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vextracti32x4 $3,%zmm19,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_iitjdnjexGtAzlA
	jl	.L_small_initial_partial_block_iitjdnjexGtAzlA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_iitjdnjexGtAzlA
	jmp	.L_small_initial_compute_done_iitjdnjexGtAzlA_BCM_4
.L_small_initial_partial_block_iitjdnjexGtAzlA_BCM_4:

# 130633 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,117,64,68,193,17
.byte 98,227,117,64,68,241,0
.byte 98,99,117,64,68,241,1
.byte 98,99,117,64,68,249,16
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,101,64,68,225,1
.byte 98,243,101,64,68,233,16
.byte 98,243,101,64,68,193,17
.byte 98,243,101,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_iitjdnjexGtAzlA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_iitjdnjexGtAzlA
	je	.L_after_reduction_iitjdnjexGtAzlA_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_iitjdnjexGtAzlA_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_9_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $247,%r15d
# WAS jae .L_16_blocks_overflow_kwzbcrnlszssDoA
	jae	.L_16_blocks_overflow_kwzbcrnlszssDoA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %xmm27,%xmm3,%xmm4
# WAS jmp .L_16_blocks_ok_kwzbcrnlszssDoA
	jmp	.L_16_blocks_ok_kwzbcrnlszssDoA_BCM_4

.L_16_blocks_overflow_kwzbcrnlszssDoA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
.L_16_blocks_ok_kwzbcrnlszssDoA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %xmm30,%xmm4,%xmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%xmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,8,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,8,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,8,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %xmm20,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %xmm29,%xmm20,%xmm20
 vextracti32x4 $0,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_EFvfhGiioywrajC
	jl	.L_small_initial_partial_block_EFvfhGiioywrajC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_EFvfhGiioywrajC
	jmp	.L_small_initial_compute_done_EFvfhGiioywrajC_BCM_4
.L_small_initial_partial_block_EFvfhGiioywrajC_BCM_4:

# 130909 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 128(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_EFvfhGiioywrajC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_EFvfhGiioywrajC
	je	.L_after_reduction_EFvfhGiioywrajC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_EFvfhGiioywrajC_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_10_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $246,%r15d
# WAS jae .L_16_blocks_overflow_hrbjfpBdCjiGnfs
	jae	.L_16_blocks_overflow_hrbjfpBdCjiGnfs_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %ymm27,%ymm3,%ymm4
# WAS jmp .L_16_blocks_ok_hrbjfpBdCjiGnfs
	jmp	.L_16_blocks_ok_hrbjfpBdCjiGnfs_BCM_4

.L_16_blocks_overflow_hrbjfpBdCjiGnfs_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
.L_16_blocks_ok_hrbjfpBdCjiGnfs_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %ymm30,%ymm4,%ymm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%ymm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,40,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,40,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,40,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %ymm20,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %ymm29,%ymm20,%ymm20
 vextracti32x4 $1,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FvsGiljtuwAeGuy
	jl	.L_small_initial_partial_block_FvsGiljtuwAeGuy_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FvsGiljtuwAeGuy
	jmp	.L_small_initial_compute_done_FvsGiljtuwAeGuy_BCM_4
.L_small_initial_partial_block_FvsGiljtuwAeGuy_BCM_4:

# 131187 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 112(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,93,0,68,225,1
.byte 98,243,93,0,68,233,16
.byte 98,243,93,0,68,193,17
.byte 98,243,93,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FvsGiljtuwAeGuy_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FvsGiljtuwAeGuy
	je	.L_after_reduction_FvsGiljtuwAeGuy_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_FvsGiljtuwAeGuy_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_11_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $245,%r15d
# WAS jae .L_16_blocks_overflow_gffyuiCaEymxbgx
	jae	.L_16_blocks_overflow_gffyuiCaEymxbgx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_gffyuiCaEymxbgx
	jmp	.L_16_blocks_ok_gffyuiCaEymxbgx_BCM_4

.L_16_blocks_overflow_gffyuiCaEymxbgx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_gffyuiCaEymxbgx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $2,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yskGpojraEjuoeD
	jl	.L_small_initial_partial_block_yskGpojraEjuoeD_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yskGpojraEjuoeD
	jmp	.L_small_initial_compute_done_yskGpojraEjuoeD_BCM_4
.L_small_initial_partial_block_yskGpojraEjuoeD_BCM_4:

# 131472 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 96(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,93,32,68,225,1
.byte 98,243,93,32,68,233,16
.byte 98,243,93,32,68,193,17
.byte 98,243,93,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yskGpojraEjuoeD_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yskGpojraEjuoeD
	je	.L_after_reduction_yskGpojraEjuoeD_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_yskGpojraEjuoeD_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_12_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $128,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $244,%r15d
# WAS jae .L_16_blocks_overflow_hAjEfcezvfywBbB
	jae	.L_16_blocks_overflow_hAjEfcezvfywBbB_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
# WAS jmp .L_16_blocks_ok_hAjEfcezvfywBbB
	jmp	.L_16_blocks_ok_hAjEfcezvfywBbB_BCM_4

.L_16_blocks_overflow_hAjEfcezvfywBbB_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
.L_16_blocks_ok_hAjEfcezvfywBbB_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm4,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm20,%zmm20{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vextracti32x4 $3,%zmm20,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_dkgezBnEGtEnaGC
	jl	.L_small_initial_partial_block_dkgezBnEGtEnaGC_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_dkgezBnEGtEnaGC
	jmp	.L_small_initial_compute_done_dkgezBnEGtEnaGC_BCM_4
.L_small_initial_partial_block_dkgezBnEGtEnaGC_BCM_4:

# 131755 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 80(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vpxorq %zmm8,%zmm0,%zmm8
 vpxorq %zmm22,%zmm3,%zmm22
 vpxorq %zmm30,%zmm4,%zmm30
 vpxorq %zmm31,%zmm5,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,93,64,68,225,1
.byte 98,243,93,64,68,233,16
.byte 98,243,93,64,68,193,17
.byte 98,243,93,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_dkgezBnEGtEnaGC_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_dkgezBnEGtEnaGC
	je	.L_after_reduction_dkgezBnEGtEnaGC_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_dkgezBnEGtEnaGC_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_13_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $243,%r15d
# WAS jae .L_16_blocks_overflow_jsBqmgCzCrGvyyA
	jae	.L_16_blocks_overflow_jsBqmgCzCrGvyyA_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %xmm27,%xmm4,%xmm5
# WAS jmp .L_16_blocks_ok_jsBqmgCzCrGvyyA
	jmp	.L_16_blocks_ok_jsBqmgCzCrGvyyA_BCM_4

.L_16_blocks_overflow_jsBqmgCzCrGvyyA_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
.L_16_blocks_ok_jsBqmgCzCrGvyyA_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $0,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %xmm30,%xmm5,%xmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%xmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,8,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,8,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,8,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %xmm21,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %xmm29,%xmm21,%xmm21
 vextracti32x4 $0,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_gEgFBvntjyjbGji
	jl	.L_small_initial_partial_block_gEgFBvntjyjbGji_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_gEgFBvntjyjbGji
	jmp	.L_small_initial_compute_done_gEgFBvntjyjbGji_BCM_4
.L_small_initial_partial_block_gEgFBvntjyjbGji_BCM_4:

# 132067 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 64(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 128(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 192(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31

 vpxorq %zmm26,%zmm30,%zmm30
 vpxorq %zmm24,%zmm8,%zmm8
 vpxorq %zmm25,%zmm22,%zmm22

 vpxorq %zmm31,%zmm30,%zmm30
 vpsrldq $8,%zmm30,%zmm4
 vpslldq $8,%zmm30,%zmm5
 vpxorq %zmm4,%zmm8,%zmm0
 vpxorq %zmm5,%zmm22,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_gEgFBvntjyjbGji_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_gEgFBvntjyjbGji
	je	.L_after_reduction_gEgFBvntjyjbGji_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_gEgFBvntjyjbGji_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_14_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $242,%r15d
# WAS jae .L_16_blocks_overflow_muGuwhaFlxCtAii
	jae	.L_16_blocks_overflow_muGuwhaFlxCtAii_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %ymm27,%ymm4,%ymm5
# WAS jmp .L_16_blocks_ok_muGuwhaFlxCtAii
	jmp	.L_16_blocks_ok_muGuwhaFlxCtAii_BCM_4

.L_16_blocks_overflow_muGuwhaFlxCtAii_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
.L_16_blocks_ok_muGuwhaFlxCtAii_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $1,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %ymm30,%ymm5,%ymm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%ymm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,40,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,40,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,40,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %ymm21,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %ymm29,%ymm21,%ymm21
 vextracti32x4 $1,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zumDfmCofGawimf
	jl	.L_small_initial_partial_block_zumDfmCofGawimf_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zumDfmCofGawimf
	jmp	.L_small_initial_compute_done_zumDfmCofGawimf_BCM_4
.L_small_initial_partial_block_zumDfmCofGawimf_BCM_4:

# 132377 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 48(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 112(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 176(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 240(%r10),%xmm1
.byte 98,243,85,0,68,225,1
.byte 98,243,85,0,68,233,16
.byte 98,243,85,0,68,193,17
.byte 98,243,85,0,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zumDfmCofGawimf_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zumDfmCofGawimf
	je	.L_after_reduction_zumDfmCofGawimf_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_zumDfmCofGawimf_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_15_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $241,%r15d
# WAS jae .L_16_blocks_overflow_EpbiipkiGBkrvEx
	jae	.L_16_blocks_overflow_EpbiipkiGBkrvEx_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_EpbiipkiGBkrvEx
	jmp	.L_16_blocks_ok_EpbiipkiGBkrvEx_BCM_4

.L_16_blocks_overflow_EpbiipkiGBkrvEx_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_EpbiipkiGBkrvEx_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $2,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $2,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_wohgmjgdAjDrcfv
	jl	.L_small_initial_partial_block_wohgmjgdAjDrcfv_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_wohgmjgdAjDrcfv
	jmp	.L_small_initial_compute_done_wohgmjgdAjDrcfv_BCM_4
.L_small_initial_partial_block_wohgmjgdAjDrcfv_BCM_4:

# 132694 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 32(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 96(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 160(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 224(%r10),%ymm1
.byte 98,243,85,32,68,225,1
.byte 98,243,85,32,68,233,16
.byte 98,243,85,32,68,193,17
.byte 98,243,85,32,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_wohgmjgdAjDrcfv_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_wohgmjgdAjDrcfv
	je	.L_after_reduction_wohgmjgdAjDrcfv_BCM_4
 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_wohgmjgdAjDrcfv_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_16_uGbbotznadbtwnB_BCM_4:

# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r11
 subq $192,%r11
 kmovq (%r10,%r11,8),%k1
 cmpl $240,%r15d
# WAS jae .L_16_blocks_overflow_etuAklrEovqCDpq
	jae	.L_16_blocks_overflow_etuAklrEovqCDpq_BCM_4
 vpaddd %zmm28,%zmm2,%zmm0
 vpaddd %zmm27,%zmm0,%zmm3
 vpaddd %zmm27,%zmm3,%zmm4
 vpaddd %zmm27,%zmm4,%zmm5
# WAS jmp .L_16_blocks_ok_etuAklrEovqCDpq
	jmp	.L_16_blocks_ok_etuAklrEovqCDpq_BCM_4

.L_16_blocks_overflow_etuAklrEovqCDpq_BCM_4:

 vpshufb %zmm29,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vmovdqa64 ddq_add_4444(%rip),%zmm5
	vmovdqa64	.Lddq_add_4444_local_target(%rip), %zmm5
 vpaddd %zmm5,%zmm0,%zmm3
 vpaddd %zmm5,%zmm3,%zmm4
 vpaddd %zmm5,%zmm4,%zmm5
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
.L_16_blocks_ok_etuAklrEovqCDpq_BCM_4:





 vbroadcastf64x2 0(%rdi),%zmm30
 vpxorq 768(%rsp),%zmm14,%zmm8
 vmovdqu64 0(%rsp,%rbx,1),%zmm1
 vextracti32x4 $3,%zmm5,%xmm2
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2


 vbroadcastf64x2 16(%rdi),%zmm31
 vmovdqu64 64(%rsp,%rbx,1),%zmm18
 vmovdqa64 832(%rsp),%zmm22
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm30,%zmm3,%zmm3
 vpxorq %zmm30,%zmm4,%zmm4
 vpxorq %zmm30,%zmm5,%zmm5
 vbroadcastf64x2 32(%rdi),%zmm30


.byte 98,115,61,72,68,241,17
.byte 98,243,61,72,68,249,0
.byte 98,115,61,72,68,209,1
.byte 98,115,61,72,68,217,16
 vmovdqu64 128(%rsp,%rbx,1),%zmm1
 vmovdqa64 896(%rsp),%zmm8
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
 vmovdqu64 192(%rsp,%rbx,1),%zmm18
 vmovdqa64 960(%rsp),%zmm22
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 64(%rdi),%zmm30


.byte 98,227,61,72,68,225,16
.byte 98,227,61,72,68,233,1
.byte 98,227,61,72,68,201,17
.byte 98,227,61,72,68,217,0
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm31


 vpternlogq $0x96,%zmm17,%zmm12,%zmm14
 vpternlogq $0x96,%zmm19,%zmm13,%zmm7
 vpternlogq $0x96,%zmm21,%zmm16,%zmm11
 vpternlogq $0x96,%zmm20,%zmm15,%zmm10
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 96(%rdi),%zmm30
 vmovdqu8 0(%rcx,%rax,1),%zmm17
 vmovdqu8 64(%rcx,%rax,1),%zmm19
 vmovdqu8 128(%rcx,%rax,1),%zmm20
 vmovdqu8 192(%rcx,%rax,1),%zmm21{%k1}{z}
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm31


.byte 98,51,77,64,68,250,16
.byte 98,163,77,64,68,194,1
.byte 98,51,77,64,68,226,17
.byte 98,51,77,64,68,234,0
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 128(%rdi),%zmm30
 vpternlogq $0x96,%zmm16,%zmm11,%zmm10
 vpxorq %zmm12,%zmm14,%zmm24
 vpxorq %zmm13,%zmm7,%zmm25
 vpxorq %zmm15,%zmm10,%zmm26
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 160(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 192(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm31
.byte 98,146,125,72,220,198
.byte 98,146,101,72,220,222
.byte 98,146,93,72,220,230
.byte 98,146,85,72,220,238
 vbroadcastf64x2 224(%rdi),%zmm30
.byte 98,146,125,72,220,199
.byte 98,146,101,72,220,223
.byte 98,146,93,72,220,231
.byte 98,146,85,72,220,239
.byte 98,146,125,72,221,198
.byte 98,146,101,72,221,222
.byte 98,146,93,72,221,230
.byte 98,146,85,72,221,238
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vpxorq %zmm20,%zmm4,%zmm4
 vpxorq %zmm21,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm11
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm21,%zmm21{%k1}{z}
 vpshufb %zmm29,%zmm17,%zmm17
 vpshufb %zmm29,%zmm19,%zmm19
 vpshufb %zmm29,%zmm20,%zmm20
 vpshufb %zmm29,%zmm21,%zmm21
 vextracti32x4 $3,%zmm21,%xmm7
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_xGuCpnrvibyoyay_BCM_4:

# 132941 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm11,16(%rsi)
 vmovdqu64 16(%r10),%zmm1
.byte 98,243,117,64,68,193,17
.byte 98,243,117,64,68,217,0
.byte 98,243,117,64,68,225,1
.byte 98,243,117,64,68,233,16
 vmovdqu64 80(%r10),%zmm1
.byte 98,115,101,64,68,193,17
.byte 98,227,101,64,68,241,0
.byte 98,99,101,64,68,241,1
.byte 98,99,101,64,68,249,16
 vmovdqu64 144(%r10),%zmm1
.byte 98,227,93,64,68,201,17
.byte 98,227,93,64,68,217,0
 vpternlogq $0x96,%zmm0,%zmm17,%zmm8
 vpternlogq $0x96,%zmm3,%zmm19,%zmm22
.byte 98,227,93,64,68,201,1
.byte 98,227,93,64,68,217,16
 vpternlogq $0x96,%zmm4,%zmm17,%zmm30
 vpternlogq $0x96,%zmm5,%zmm19,%zmm31
 vmovdqu64 208(%r10),%ymm1
 vinserti64x2 $2,240(%r10),%zmm1,%zmm1
.byte 98,243,85,64,68,225,1
.byte 98,243,85,64,68,233,16
.byte 98,243,85,64,68,193,17
.byte 98,243,85,64,68,217,0

 vpxorq %zmm30,%zmm4,%zmm4
 vpternlogq $0x96,%zmm31,%zmm26,%zmm5
 vpternlogq $0x96,%zmm8,%zmm24,%zmm0
 vpternlogq $0x96,%zmm22,%zmm25,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm30
 vpslldq $8,%zmm4,%zmm31
 vpxorq %zmm30,%zmm0,%zmm0
 vpxorq %zmm31,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm30
 vpxorq %ymm30,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm30
 vpxorq %xmm30,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm31
 vpxorq %ymm31,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm31
 vpxorq %xmm31,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm1
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm1


.byte 98,243,117,8,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,117,8,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,117,8,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_xGuCpnrvibyoyay_BCM_4:

 vpxorq %xmm7,%xmm14,%xmm14
.L_after_reduction_xGuCpnrvibyoyay_BCM_4:

# WAS jmp .L_last_blocks_done_uGbbotznadbtwnB
	jmp	.L_last_blocks_done_uGbbotznadbtwnB_BCM_4
.L_last_num_blocks_is_0_uGbbotznadbtwnB_BCM_4:

 vmovdqa64 768(%rsp),%zmm13
 vpxorq %zmm14,%zmm13,%zmm13
 vmovdqu64 0(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 832(%rsp),%zmm13
 vmovdqu64 64(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16
 vpxorq %zmm10,%zmm4,%zmm26
 vpxorq %zmm6,%zmm0,%zmm24
 vpxorq %zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26
 vmovdqa64 896(%rsp),%zmm13
 vmovdqu64 128(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,196,17
.byte 98,211,21,72,68,220,0
.byte 98,211,21,72,68,228,1
.byte 98,211,21,72,68,236,16
 vmovdqa64 960(%rsp),%zmm13
 vmovdqu64 192(%rsp,%rbx,1),%zmm12
.byte 98,211,21,72,68,244,17
.byte 98,211,21,72,68,252,0
.byte 98,83,21,72,68,212,1
.byte 98,83,21,72,68,220,16

 vpternlogq $0x96,%zmm10,%zmm4,%zmm26
 vpternlogq $0x96,%zmm6,%zmm0,%zmm24
 vpternlogq $0x96,%zmm7,%zmm3,%zmm25
 vpternlogq $0x96,%zmm11,%zmm5,%zmm26

 vpsrldq $8,%zmm26,%zmm0
 vpslldq $8,%zmm26,%zmm3
 vpxorq %zmm0,%zmm24,%zmm24
 vpxorq %zmm3,%zmm25,%zmm25
 vextracti64x4 $1,%zmm24,%ymm0
 vpxorq %ymm0,%ymm24,%ymm24
 vextracti32x4 $1,%ymm24,%xmm0
 vpxorq %xmm0,%xmm24,%xmm24
 vextracti64x4 $1,%zmm25,%ymm3
 vpxorq %ymm3,%ymm25,%ymm25
 vextracti32x4 $1,%ymm25,%xmm3
 vpxorq %xmm3,%xmm25,%xmm25
# WAS vmovdqa64 POLY2(%rip),%xmm4
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm4


.byte 98,147,93,8,68,193,1
 vpslldq $8,%xmm0,%xmm0
 vpxorq %xmm0,%xmm25,%xmm0


.byte 98,243,93,8,68,216,0
 vpsrldq $4,%xmm3,%xmm3
.byte 98,115,93,8,68,240,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm24,%xmm3,%xmm14

.L_last_blocks_done_uGbbotznadbtwnB_BCM_4:

 vpshufb %xmm29,%xmm2,%xmm2
# WAS jmp .L_ghash_done_keEetjmxflGqBfv
	jmp	.L_ghash_done_keEetjmxflGqBfv_BCM_4

.L_message_below_equal_16_blocks_keEetjmxflGqBfv_BCM_4:



 movl %r8d,%r12d
 addl $15,%r12d
 shrl $4,%r12d
 cmpq $8,%r12
# WAS je .L_small_initial_num_blocks_is_8_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_8_vkDeiBlhaznkthD_BCM_4
# WAS jl .L_small_initial_num_blocks_is_7_1_vkDeiBlhaznkthD
	jl	.L_small_initial_num_blocks_is_7_1_vkDeiBlhaznkthD_BCM_4


 cmpq $12,%r12
# WAS je .L_small_initial_num_blocks_is_12_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_12_vkDeiBlhaznkthD_BCM_4
# WAS jl .L_small_initial_num_blocks_is_11_9_vkDeiBlhaznkthD
	jl	.L_small_initial_num_blocks_is_11_9_vkDeiBlhaznkthD_BCM_4


 cmpq $16,%r12
# WAS je .L_small_initial_num_blocks_is_16_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_16_vkDeiBlhaznkthD_BCM_4
 cmpq $15,%r12
# WAS je .L_small_initial_num_blocks_is_15_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_15_vkDeiBlhaznkthD_BCM_4
 cmpq $14,%r12
# WAS je .L_small_initial_num_blocks_is_14_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_14_vkDeiBlhaznkthD_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_13_vkDeiBlhaznkthD
	jmp	.L_small_initial_num_blocks_is_13_vkDeiBlhaznkthD_BCM_4

.L_small_initial_num_blocks_is_11_9_vkDeiBlhaznkthD_BCM_4:


 cmpq $11,%r12
# WAS je .L_small_initial_num_blocks_is_11_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_11_vkDeiBlhaznkthD_BCM_4
 cmpq $10,%r12
# WAS je .L_small_initial_num_blocks_is_10_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_10_vkDeiBlhaznkthD_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_9_vkDeiBlhaznkthD
	jmp	.L_small_initial_num_blocks_is_9_vkDeiBlhaznkthD_BCM_4

.L_small_initial_num_blocks_is_7_1_vkDeiBlhaznkthD_BCM_4:

 cmpq $4,%r12
# WAS je .L_small_initial_num_blocks_is_4_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_4_vkDeiBlhaznkthD_BCM_4
# WAS jl .L_small_initial_num_blocks_is_3_1_vkDeiBlhaznkthD
	jl	.L_small_initial_num_blocks_is_3_1_vkDeiBlhaznkthD_BCM_4

 cmpq $7,%r12
# WAS je .L_small_initial_num_blocks_is_7_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_7_vkDeiBlhaznkthD_BCM_4
 cmpq $6,%r12
# WAS je .L_small_initial_num_blocks_is_6_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_6_vkDeiBlhaznkthD_BCM_4
# WAS jmp .L_small_initial_num_blocks_is_5_vkDeiBlhaznkthD
	jmp	.L_small_initial_num_blocks_is_5_vkDeiBlhaznkthD_BCM_4

.L_small_initial_num_blocks_is_3_1_vkDeiBlhaznkthD_BCM_4:


 cmpq $3,%r12
# WAS je .L_small_initial_num_blocks_is_3_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_3_vkDeiBlhaznkthD_BCM_4
 cmpq $2,%r12
# WAS je .L_small_initial_num_blocks_is_2_vkDeiBlhaznkthD
	je	.L_small_initial_num_blocks_is_2_vkDeiBlhaznkthD_BCM_4





.L_small_initial_num_blocks_is_1_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%xmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %xmm29
# WAS vpaddd ONEa(%rip),%xmm2,%xmm0
	vpaddd	.LONEa_local_target(%rip), %xmm2, %xmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm0,%xmm2
 vpshufb %xmm29,%xmm0,%xmm0
 vmovdqu8 0(%rcx,%rax,1),%xmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %xmm15,%xmm0,%xmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,8,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,8,221,199
 vpxorq %xmm6,%xmm0,%xmm0
 vextracti32x4 $0,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %xmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %xmm29,%xmm6,%xmm6
 vextracti32x4 $0,%zmm6,%xmm13
 leaq 80(%rsi),%r10


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pelykqxdehCqvkk
	jl	.L_small_initial_partial_block_pelykqxdehCqvkk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pelykqxdehCqvkk
	jmp	.L_small_initial_compute_done_pelykqxdehCqvkk_BCM_4
.L_small_initial_partial_block_pelykqxdehCqvkk_BCM_4:

# 133227 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
# 133240 "aesni-gcm-avx512.S"
 vpxorq %xmm13,%xmm14,%xmm14

# WAS jmp .L_after_reduction_pelykqxdehCqvkk
	jmp	.L_after_reduction_pelykqxdehCqvkk_BCM_4
.L_small_initial_compute_done_pelykqxdehCqvkk_BCM_4:

.L_after_reduction_pelykqxdehCqvkk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_2_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%ymm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %ymm29
 vshufi64x2 $0,%ymm2,%ymm2,%ymm0
# WAS vpaddd ddq_add_1234(%rip),%ymm0,%ymm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %ymm0, %ymm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm0,%xmm2
 vpshufb %ymm29,%ymm0,%ymm0
 vmovdqu8 0(%rcx,%rax,1),%ymm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %ymm15,%ymm0,%ymm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,40,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,40,221,199
 vpxorq %ymm6,%ymm0,%ymm0
 vextracti32x4 $1,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %ymm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %ymm29,%ymm6,%ymm6
 vextracti32x4 $1,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (2 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ldyuFtpzipDvehA
	jl	.L_small_initial_partial_block_ldyuFtpzipDvehA_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ldyuFtpzipDvehA
	jmp	.L_small_initial_compute_done_ldyuFtpzipDvehA_BCM_4
.L_small_initial_partial_block_ldyuFtpzipDvehA_BCM_4:

# 133350 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,77,8,68,228,1
.byte 98,179,77,8,68,236,16
.byte 98,179,77,8,68,196,17
.byte 98,179,77,8,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ldyuFtpzipDvehA_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ldyuFtpzipDvehA
	je	.L_after_reduction_ldyuFtpzipDvehA_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ldyuFtpzipDvehA_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_3_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $2,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $2,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (3 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_trwwageihBqcfkh
	jl	.L_small_initial_partial_block_trwwageihBqcfkh_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_trwwageihBqcfkh
	jmp	.L_small_initial_compute_done_trwwageihBqcfkh_BCM_4
.L_small_initial_partial_block_trwwageihBqcfkh_BCM_4:

# 133498 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,77,40,68,228,1
.byte 98,179,77,40,68,236,16
.byte 98,179,77,40,68,196,17
.byte 98,179,77,40,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_trwwageihBqcfkh_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_trwwageihBqcfkh
	je	.L_after_reduction_trwwageihBqcfkh_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_trwwageihBqcfkh_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_4_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm0,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vmovdqu8 0(%rcx,%rax,1),%zmm6{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
 vpxorq %zmm6,%zmm0,%zmm0
 vextracti32x4 $3,%zmm0,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1){%k1}
 vmovdqu8 %zmm0,%zmm0{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vextracti32x4 $3,%zmm6,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (4 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_yotsdxeGEAxlmrj
	jl	.L_small_initial_partial_block_yotsdxeGEAxlmrj_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_yotsdxeGEAxlmrj
	jmp	.L_small_initial_compute_done_yotsdxeGEAxlmrj_BCM_4
.L_small_initial_partial_block_yotsdxeGEAxlmrj_BCM_4:

# 133645 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_yotsdxeGEAxlmrj_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_yotsdxeGEAxlmrj
	je	.L_after_reduction_yotsdxeGEAxlmrj_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_yotsdxeGEAxlmrj_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_5_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %xmm29,%xmm3,%xmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%xmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %xmm15,%xmm3,%xmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,8,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,8,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %xmm7,%xmm3,%xmm3
 vextracti32x4 $0,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %xmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %xmm29,%xmm7,%xmm7
 vextracti32x4 $0,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (5 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_rmwxtkgdnBhEnAk
	jl	.L_small_initial_partial_block_rmwxtkgdnBhEnAk_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_rmwxtkgdnBhEnAk
	jmp	.L_small_initial_compute_done_rmwxtkgdnBhEnAk_BCM_4
.L_small_initial_partial_block_rmwxtkgdnBhEnAk_BCM_4:

# 133825 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_rmwxtkgdnBhEnAk_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_rmwxtkgdnBhEnAk
	je	.L_after_reduction_rmwxtkgdnBhEnAk_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_rmwxtkgdnBhEnAk_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_6_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %ymm29,%ymm3,%ymm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%ymm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %ymm15,%ymm3,%ymm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,40,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,40,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %ymm7,%ymm3,%ymm3
 vextracti32x4 $1,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %ymm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %ymm29,%ymm7,%ymm7
 vextracti32x4 $1,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (6 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_hGvwkbDFDGzDyAp
	jl	.L_small_initial_partial_block_hGvwkbDFDGzDyAp_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_hGvwkbDFDGzDyAp
	jmp	.L_small_initial_compute_done_hGvwkbDFDGzDyAp_BCM_4
.L_small_initial_partial_block_hGvwkbDFDGzDyAp_BCM_4:

# 134004 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,69,8,68,228,1
.byte 98,179,69,8,68,236,16
.byte 98,179,69,8,68,196,17
.byte 98,179,69,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_hGvwkbDFDGzDyAp_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_hGvwkbDFDGzDyAp
	je	.L_after_reduction_hGvwkbDFDGzDyAp_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_hGvwkbDFDGzDyAp_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_7_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $2,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $2,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (7 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_FchyqAlDxAtkgym
	jl	.L_small_initial_partial_block_FchyqAlDxAtkgym_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_FchyqAlDxAtkgym
	jmp	.L_small_initial_compute_done_FchyqAlDxAtkgym_BCM_4
.L_small_initial_partial_block_FchyqAlDxAtkgym_BCM_4:

# 134194 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,69,40,68,228,1
.byte 98,179,69,40,68,236,16
.byte 98,179,69,40,68,196,17
.byte 98,179,69,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_FchyqAlDxAtkgym_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_FchyqAlDxAtkgym
	je	.L_after_reduction_FchyqAlDxAtkgym_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_FchyqAlDxAtkgym_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_8_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $64,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm3,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vextracti32x4 $3,%zmm3,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1){%k1}
 vmovdqu8 %zmm3,%zmm3{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vextracti32x4 $3,%zmm7,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (8 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_ChlBCihfFcxfpre
	jl	.L_small_initial_partial_block_ChlBCihfFcxfpre_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_ChlBCihfFcxfpre
	jmp	.L_small_initial_compute_done_ChlBCihfFcxfpre_BCM_4
.L_small_initial_partial_block_ChlBCihfFcxfpre_BCM_4:

# 134382 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,77,72,68,252,17
.byte 98,163,77,72,68,196,0
.byte 98,163,77,72,68,204,1
.byte 98,163,77,72,68,220,16
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,69,72,68,228,1
.byte 98,179,69,72,68,236,16
.byte 98,179,69,72,68,196,17
.byte 98,179,69,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_ChlBCihfFcxfpre_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_ChlBCihfFcxfpre
	je	.L_after_reduction_ChlBCihfFcxfpre_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_ChlBCihfFcxfpre_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_9_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %xmm29,%xmm4,%xmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%xmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %xmm15,%xmm4,%xmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,8,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,8,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %xmm10,%xmm4,%xmm4
 vextracti32x4 $0,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %xmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %xmm29,%xmm10,%xmm10
 vextracti32x4 $0,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (9 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_trxojfuEtotExGB
	jl	.L_small_initial_partial_block_trxojfuEtotExGB_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_trxojfuEtotExGB
	jmp	.L_small_initial_compute_done_trxojfuEtotExGB_BCM_4
.L_small_initial_partial_block_trxojfuEtotExGB_BCM_4:

# 134602 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 128(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_trxojfuEtotExGB_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_trxojfuEtotExGB
	je	.L_after_reduction_trxojfuEtotExGB_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_trxojfuEtotExGB_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_10_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %ymm29,%ymm4,%ymm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%ymm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %ymm15,%ymm4,%ymm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,40,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,40,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %ymm10,%ymm4,%ymm4
 vextracti32x4 $1,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %ymm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %ymm29,%ymm10,%ymm10
 vextracti32x4 $1,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (10 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_zdivCCwEFvrsaiu
	jl	.L_small_initial_partial_block_zdivCCwEFvrsaiu_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_zdivCCwEFvrsaiu
	jmp	.L_small_initial_compute_done_zdivCCwEFvrsaiu_BCM_4
.L_small_initial_partial_block_zdivCCwEFvrsaiu_BCM_4:

# 134820 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 112(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,45,8,68,228,1
.byte 98,179,45,8,68,236,16
.byte 98,179,45,8,68,196,17
.byte 98,179,45,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_zdivCCwEFvrsaiu_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_zdivCCwEFvrsaiu
	je	.L_after_reduction_zdivCCwEFvrsaiu_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_zdivCCwEFvrsaiu_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_11_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $2,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $2,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (11 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_cbByewwahwBzpzx
	jl	.L_small_initial_partial_block_cbByewwahwBzpzx_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_cbByewwahwBzpzx
	jmp	.L_small_initial_compute_done_cbByewwahwBzpzx_BCM_4
.L_small_initial_partial_block_cbByewwahwBzpzx_BCM_4:

# 135049 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 96(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,45,40,68,228,1
.byte 98,179,45,40,68,236,16
.byte 98,179,45,40,68,196,17
.byte 98,179,45,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_cbByewwahwBzpzx_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_cbByewwahwBzpzx
	je	.L_after_reduction_cbByewwahwBzpzx_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_cbByewwahwBzpzx_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_12_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $128,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm4,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vextracti32x4 $3,%zmm4,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1){%k1}
 vmovdqu8 %zmm4,%zmm4{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vextracti32x4 $3,%zmm10,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (12 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_vpiEDoFuFgdvCsg
	jl	.L_small_initial_partial_block_vpiEDoFuFgdvCsg_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_vpiEDoFuFgdvCsg
	jmp	.L_small_initial_compute_done_vpiEDoFuFgdvCsg_BCM_4
.L_small_initial_partial_block_vpiEDoFuFgdvCsg_BCM_4:

# 135272 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 80(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vpxorq %zmm15,%zmm0,%zmm15
 vpxorq %zmm16,%zmm3,%zmm16
 vpxorq %zmm17,%zmm4,%zmm17
 vpxorq %zmm19,%zmm5,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,45,72,68,228,1
.byte 98,179,45,72,68,236,16
.byte 98,179,45,72,68,196,17
.byte 98,179,45,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_vpiEDoFuFgdvCsg_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_vpiEDoFuFgdvCsg
	je	.L_after_reduction_vpiEDoFuFgdvCsg_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_vpiEDoFuFgdvCsg_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_13_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $0,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %xmm29,%xmm5,%xmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%xmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %xmm15,%xmm5,%xmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,8,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,8,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %xmm11,%xmm5,%xmm5
 vextracti32x4 $0,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %xmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %xmm29,%xmm11,%xmm11
 vextracti32x4 $0,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (13 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_pkeazcEqwkcpavG
	jl	.L_small_initial_partial_block_pkeazcEqwkcpavG_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_pkeazcEqwkcpavG
	jmp	.L_small_initial_compute_done_pkeazcEqwkcpavG_BCM_4
.L_small_initial_partial_block_pkeazcEqwkcpavG_BCM_4:

# 135527 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 64(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 128(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 192(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19

 vpxorq %zmm19,%zmm17,%zmm17
 vpsrldq $8,%zmm17,%zmm4
 vpslldq $8,%zmm17,%zmm5
 vpxorq %zmm4,%zmm15,%zmm0
 vpxorq %zmm5,%zmm16,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_pkeazcEqwkcpavG_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_pkeazcEqwkcpavG
	je	.L_after_reduction_pkeazcEqwkcpavG_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_pkeazcEqwkcpavG_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_14_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $1,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %ymm29,%ymm5,%ymm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%ymm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %ymm15,%ymm5,%ymm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,40,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,40,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %ymm11,%ymm5,%ymm5
 vextracti32x4 $1,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %ymm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %ymm29,%ymm11,%ymm11
 vextracti32x4 $1,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (14 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_GsuCukqqbwGpxDi
	jl	.L_small_initial_partial_block_GsuCukqqbwGpxDi_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_GsuCukqqbwGpxDi
	jmp	.L_small_initial_compute_done_GsuCukqqbwGpxDi_BCM_4
.L_small_initial_partial_block_GsuCukqqbwGpxDi_BCM_4:

# 135776 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 48(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 112(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 176(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 240(%r10),%xmm20
.byte 98,179,37,8,68,228,1
.byte 98,179,37,8,68,236,16
.byte 98,179,37,8,68,196,17
.byte 98,179,37,8,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_GsuCukqqbwGpxDi_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_GsuCukqqbwGpxDi
	je	.L_after_reduction_GsuCukqqbwGpxDi_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_GsuCukqqbwGpxDi_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_15_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $2,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $2,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $2,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (15 - 1),%r8


 cmpq $16,%r8
# WAS jl .L_small_initial_partial_block_mbxlopCmuqdpqjz
	jl	.L_small_initial_partial_block_mbxlopCmuqdpqjz_BCM_4





 subq $16,%r8
 movl $0,(%rdx)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

# WAS jmp .L_small_initial_compute_done_mbxlopCmuqdpqjz
	jmp	.L_small_initial_compute_done_mbxlopCmuqdpqjz_BCM_4
.L_small_initial_partial_block_mbxlopCmuqdpqjz_BCM_4:

# 136036 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 32(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 96(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 160(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 224(%r10),%ymm20
.byte 98,179,37,40,68,228,1
.byte 98,179,37,40,68,236,16
.byte 98,179,37,40,68,196,17
.byte 98,179,37,40,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_mbxlopCmuqdpqjz_BCM_4:


 orq %r8,%r8
# WAS je .L_after_reduction_mbxlopCmuqdpqjz
	je	.L_after_reduction_mbxlopCmuqdpqjz_BCM_4
 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_mbxlopCmuqdpqjz_BCM_4:

# WAS jmp .L_small_initial_blocks_encrypted_vkDeiBlhaznkthD
	jmp	.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4
.L_small_initial_num_blocks_is_16_vkDeiBlhaznkthD_BCM_4:

# WAS vmovdqa64 SHUF_MASK(%rip),%zmm29
	vmovdqa64	.LSHUF_MASK_local_target(%rip), %zmm29
 vshufi64x2 $0,%zmm2,%zmm2,%zmm2
# WAS vpaddd ddq_add_1234(%rip),%zmm2,%zmm0
	vpaddd	.Lddq_add_1234_local_target(%rip), %zmm2, %zmm0
# WAS vpaddd ddq_add_5678(%rip),%zmm2,%zmm3
	vpaddd	.Lddq_add_5678_local_target(%rip), %zmm2, %zmm3
# WAS vpaddd ddq_add_8888(%rip),%zmm0,%zmm4
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm0, %zmm4
# WAS vpaddd ddq_add_8888(%rip),%zmm3,%zmm5
	vpaddd	.Lddq_add_8888_local_target(%rip), %zmm3, %zmm5
# WAS leaq byte64_len_to_mask_table(%rip),%r10
	leaq	.Lbyte64_len_to_mask_table_local_target(%rip), %r10
 movq %r8,%r15
 subq $192,%r15
 kmovq (%r10,%r15,8),%k1
 vextracti32x4 $3,%zmm5,%xmm2
 vpshufb %zmm29,%zmm0,%zmm0
 vpshufb %zmm29,%zmm3,%zmm3
 vpshufb %zmm29,%zmm4,%zmm4
 vpshufb %zmm29,%zmm5,%zmm5
 vmovdqu8 0(%rcx,%rax,1),%zmm6
 vmovdqu8 64(%rcx,%rax,1),%zmm7
 vmovdqu8 128(%rcx,%rax,1),%zmm10
 vmovdqu8 192(%rcx,%rax,1),%zmm11{%k1}{z}
 vbroadcastf64x2 0(%rdi),%zmm15
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm15,%zmm3,%zmm3
 vpxorq %zmm15,%zmm4,%zmm4
 vpxorq %zmm15,%zmm5,%zmm5
 vbroadcastf64x2 16(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 32(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 48(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 64(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 80(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 96(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 112(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 128(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 144(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 160(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 176(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 192(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 208(%rdi),%zmm15
.byte 98,210,125,72,220,199
.byte 98,210,101,72,220,223
.byte 98,210,93,72,220,231
.byte 98,210,85,72,220,239
 vbroadcastf64x2 224(%rdi),%zmm15
.byte 98,210,125,72,221,199
.byte 98,210,101,72,221,223
.byte 98,210,93,72,221,231
.byte 98,210,85,72,221,239
 vpxorq %zmm6,%zmm0,%zmm0
 vpxorq %zmm7,%zmm3,%zmm3
 vpxorq %zmm10,%zmm4,%zmm4
 vpxorq %zmm11,%zmm5,%zmm5
 vextracti32x4 $3,%zmm5,%xmm12
 movq %r9,%r10
 vmovdqu8 %zmm0,0(%r10,%rax,1)
 vmovdqu8 %zmm3,64(%r10,%rax,1)
 vmovdqu8 %zmm4,128(%r10,%rax,1)
 vmovdqu8 %zmm5,192(%r10,%rax,1){%k1}
 vmovdqu8 %zmm5,%zmm5{%k1}{z}
 vpshufb %zmm29,%zmm6,%zmm6
 vpshufb %zmm29,%zmm7,%zmm7
 vpshufb %zmm29,%zmm10,%zmm10
 vpshufb %zmm29,%zmm11,%zmm11
 vextracti32x4 $3,%zmm11,%xmm13
 leaq 80(%rsi),%r10
 subq $16 * (16 - 1),%r8
.L_small_initial_partial_block_fpGgFAenBuAyutw_BCM_4:

# 136225 "aesni-gcm-avx512.S"
 movl %r8d,(%rdx)
 vmovdqu64 %xmm12,16(%rsi)
 vpxorq %zmm14,%zmm6,%zmm6
 vmovdqu64 16(%r10),%zmm20
.byte 98,179,77,72,68,196,17
.byte 98,179,77,72,68,220,0
.byte 98,179,77,72,68,228,1
.byte 98,179,77,72,68,236,16
 vmovdqu64 80(%r10),%zmm20
.byte 98,51,69,72,68,252,17
.byte 98,163,69,72,68,196,0
.byte 98,163,69,72,68,204,1
.byte 98,163,69,72,68,220,16
 vmovdqu64 144(%r10),%zmm20
.byte 98,179,45,72,68,244,17
.byte 98,179,45,72,68,252,0
 vpternlogq $0x96,%zmm0,%zmm6,%zmm15
 vpternlogq $0x96,%zmm3,%zmm7,%zmm16
.byte 98,179,45,72,68,244,1
.byte 98,179,45,72,68,252,16
 vpternlogq $0x96,%zmm4,%zmm6,%zmm17
 vpternlogq $0x96,%zmm5,%zmm7,%zmm19
 vmovdqu64 208(%r10),%ymm20
 vinserti64x2 $2,240(%r10),%zmm20,%zmm20
.byte 98,179,37,72,68,228,1
.byte 98,179,37,72,68,236,16
.byte 98,179,37,72,68,196,17
.byte 98,179,37,72,68,220,0

 vpxorq %zmm17,%zmm4,%zmm4
 vpxorq %zmm19,%zmm5,%zmm5
 vpxorq %zmm15,%zmm0,%zmm0
 vpxorq %zmm16,%zmm3,%zmm3

 vpxorq %zmm5,%zmm4,%zmm4
 vpsrldq $8,%zmm4,%zmm17
 vpslldq $8,%zmm4,%zmm19
 vpxorq %zmm17,%zmm0,%zmm0
 vpxorq %zmm19,%zmm3,%zmm3
 vextracti64x4 $1,%zmm0,%ymm17
 vpxorq %ymm17,%ymm0,%ymm0
 vextracti32x4 $1,%ymm0,%xmm17
 vpxorq %xmm17,%xmm0,%xmm0
 vextracti64x4 $1,%zmm3,%ymm19
 vpxorq %ymm19,%ymm3,%ymm3
 vextracti32x4 $1,%ymm3,%xmm19
 vpxorq %xmm19,%xmm3,%xmm3
# WAS vmovdqa64 POLY2(%rip),%xmm20
	vmovdqa64	.LPOLY2_local_target(%rip), %xmm20


.byte 98,243,93,0,68,227,1
 vpslldq $8,%xmm4,%xmm4
 vpxorq %xmm4,%xmm3,%xmm4


.byte 98,243,93,0,68,236,0
 vpsrldq $4,%xmm5,%xmm5
.byte 98,115,93,0,68,244,16
 vpslldq $4,%xmm14,%xmm14
 vpternlogq $0x96,%xmm0,%xmm5,%xmm14

.L_small_initial_compute_done_fpGgFAenBuAyutw_BCM_4:

 vpxorq %xmm13,%xmm14,%xmm14
.L_after_reduction_fpGgFAenBuAyutw_BCM_4:

.L_small_initial_blocks_encrypted_vkDeiBlhaznkthD_BCM_4:

.L_ghash_done_keEetjmxflGqBfv_BCM_4:

 vmovdqu64 %xmm2,0(%rsi)
.L_enc_dec_done_keEetjmxflGqBfv_BCM_4:


# WAS vpshufb SHUF_MASK(%rip),%xmm14,%xmm14
	vpshufb	.LSHUF_MASK_local_target(%rip), %xmm14, %xmm14
 vmovdqu64 %xmm14,64(%rsi)
.L_enc_dec_abort_keEetjmxflGqBfv_BCM_4:

# WAS jmp .Lexit_gcm_decrypt
	jmp	.Lexit_gcm_decrypt_BCM_4
.Lexit_gcm_decrypt_BCM_4:

 cmpq $256,%r8
# WAS jbe .Lskip_hkeys_cleanup_byhoEGxnfawfFqd
	jbe	.Lskip_hkeys_cleanup_byhoEGxnfawfFqd_BCM_4
 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %zmm0,0(%rsp)
 vmovdqa64 %zmm0,64(%rsp)
 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)
 vmovdqa64 %zmm0,320(%rsp)
 vmovdqa64 %zmm0,384(%rsp)
 vmovdqa64 %zmm0,448(%rsp)
 vmovdqa64 %zmm0,512(%rsp)
 vmovdqa64 %zmm0,576(%rsp)
 vmovdqa64 %zmm0,640(%rsp)
 vmovdqa64 %zmm0,704(%rsp)
.Lskip_hkeys_cleanup_byhoEGxnfawfFqd_BCM_4:

 vzeroupper
 leaq (%rbp),%rsp
.cfi_def_cfa_register %rsp
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
 .byte 0xf3,0xc3
.Ldecrypt_seh_end_BCM_4:

.cfi_endproc
.size aes_gcm_decrypt_avx512, .-aes_gcm_decrypt_avx512
# WAS .section .rodata
.text
.align 16
.LPOLY_local_target:
POLY:.quad 0x0000000000000001, 0xC200000000000000

.align 64
.LPOLY2_local_target:
POLY2:
.quad 0x00000001C2000000, 0xC200000000000000
.quad 0x00000001C2000000, 0xC200000000000000
.quad 0x00000001C2000000, 0xC200000000000000
.quad 0x00000001C2000000, 0xC200000000000000

.align 16
.LTWOONE_local_target:
TWOONE:.quad 0x0000000000000001, 0x0000000100000000



.align 64
.LSHUF_MASK_local_target:
SHUF_MASK:
.quad 0x08090A0B0C0D0E0F, 0x0001020304050607
.quad 0x08090A0B0C0D0E0F, 0x0001020304050607
.quad 0x08090A0B0C0D0E0F, 0x0001020304050607
.quad 0x08090A0B0C0D0E0F, 0x0001020304050607

.align 16
.LSHIFT_MASK_local_target:
SHIFT_MASK:
.quad 0x0706050403020100, 0x0f0e0d0c0b0a0908

.LALL_F_local_target:
ALL_F:
.quad 0xffffffffffffffff, 0xffffffffffffffff

.LZERO_local_target:
ZERO:
.quad 0x0000000000000000, 0x0000000000000000

.align 16
.LONEa_local_target:
ONEa:
.quad 0x0000000000000001, 0x0000000000000000

.align 16
.LONEf_local_target:
ONEf:
.quad 0x0000000000000000, 0x0100000000000000

.align 64
.Lddq_add_1234_local_target:
ddq_add_1234:
.quad 0x0000000000000001, 0x0000000000000000
.quad 0x0000000000000002, 0x0000000000000000
.quad 0x0000000000000003, 0x0000000000000000
.quad 0x0000000000000004, 0x0000000000000000

.align 64
.Lddq_add_5678_local_target:
ddq_add_5678:
.quad 0x0000000000000005, 0x0000000000000000
.quad 0x0000000000000006, 0x0000000000000000
.quad 0x0000000000000007, 0x0000000000000000
.quad 0x0000000000000008, 0x0000000000000000

.align 64
.Lddq_add_4444_local_target:
ddq_add_4444:
.quad 0x0000000000000004, 0x0000000000000000
.quad 0x0000000000000004, 0x0000000000000000
.quad 0x0000000000000004, 0x0000000000000000
.quad 0x0000000000000004, 0x0000000000000000

.align 64
.Lddq_add_8888_local_target:
ddq_add_8888:
.quad 0x0000000000000008, 0x0000000000000000
.quad 0x0000000000000008, 0x0000000000000000
.quad 0x0000000000000008, 0x0000000000000000
.quad 0x0000000000000008, 0x0000000000000000

.align 64
.Lddq_addbe_1234_local_target:
ddq_addbe_1234:
.quad 0x0000000000000000, 0x0100000000000000
.quad 0x0000000000000000, 0x0200000000000000
.quad 0x0000000000000000, 0x0300000000000000
.quad 0x0000000000000000, 0x0400000000000000

.align 64
.Lddq_addbe_4444_local_target:
ddq_addbe_4444:
.quad 0x0000000000000000, 0x0400000000000000
.quad 0x0000000000000000, 0x0400000000000000
.quad 0x0000000000000000, 0x0400000000000000
.quad 0x0000000000000000, 0x0400000000000000

.align 64
.Lbyte_len_to_mask_table_local_target:
byte_len_to_mask_table:
.value 0x0000, 0x0001, 0x0003, 0x0007
.value 0x000f, 0x001f, 0x003f, 0x007f
.value 0x00ff, 0x01ff, 0x03ff, 0x07ff
.value 0x0fff, 0x1fff, 0x3fff, 0x7fff
.value 0xffff

.align 64
.Lbyte64_len_to_mask_table_local_target:
byte64_len_to_mask_table:
.quad 0x0000000000000000, 0x0000000000000001
.quad 0x0000000000000003, 0x0000000000000007
.quad 0x000000000000000f, 0x000000000000001f
.quad 0x000000000000003f, 0x000000000000007f
.quad 0x00000000000000ff, 0x00000000000001ff
.quad 0x00000000000003ff, 0x00000000000007ff
.quad 0x0000000000000fff, 0x0000000000001fff
.quad 0x0000000000003fff, 0x0000000000007fff
.quad 0x000000000000ffff, 0x000000000001ffff
.quad 0x000000000003ffff, 0x000000000007ffff
.quad 0x00000000000fffff, 0x00000000001fffff
.quad 0x00000000003fffff, 0x00000000007fffff
.quad 0x0000000000ffffff, 0x0000000001ffffff
.quad 0x0000000003ffffff, 0x0000000007ffffff
.quad 0x000000000fffffff, 0x000000001fffffff
.quad 0x000000003fffffff, 0x000000007fffffff
.quad 0x00000000ffffffff, 0x00000001ffffffff
.quad 0x00000003ffffffff, 0x00000007ffffffff
.quad 0x0000000fffffffff, 0x0000001fffffffff
.quad 0x0000003fffffffff, 0x0000007fffffffff
.quad 0x000000ffffffffff, 0x000001ffffffffff
.quad 0x000003ffffffffff, 0x000007ffffffffff
.quad 0x00000fffffffffff, 0x00001fffffffffff
.quad 0x00003fffffffffff, 0x00007fffffffffff
.quad 0x0000ffffffffffff, 0x0001ffffffffffff
.quad 0x0003ffffffffffff, 0x0007ffffffffffff
.quad 0x000fffffffffffff, 0x001fffffffffffff
.quad 0x003fffffffffffff, 0x007fffffffffffff
.quad 0x00ffffffffffffff, 0x01ffffffffffffff
.quad 0x03ffffffffffffff, 0x07ffffffffffffff
.quad 0x0fffffffffffffff, 0x1fffffffffffffff
.quad 0x3fffffffffffffff, 0x7fffffffffffffff
.quad 0xffffffffffffffff
.text
# 0 "aesni-gcm-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "aesni-gcm-x86_64.S"



#include <openssl/asm_base.h>
# 4 "aesni-gcm-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "aesni-gcm-x86_64.S" 2


.text

.type _aesni_ctr32_ghash_6x,@function
.align 32
.L_aesni_ctr32_ghash_6x_local_target:
_aesni_ctr32_ghash_6x:
.cfi_startproc
 vmovdqu 32(%r11),%xmm2
 subq $6,%rdx
 vpxor %xmm4,%xmm4,%xmm4
 vmovdqu 0-128(%rcx),%xmm15
 vpaddb %xmm2,%xmm1,%xmm10
 vpaddb %xmm2,%xmm10,%xmm11
 vpaddb %xmm2,%xmm11,%xmm12
 vpaddb %xmm2,%xmm12,%xmm13
 vpaddb %xmm2,%xmm13,%xmm14
 vpxor %xmm15,%xmm1,%xmm9
 vmovdqu %xmm4,16+8(%rsp)
# WAS jmp .Loop6x
	jmp	.Loop6x_BCM_5

.align 32
.Loop6x_BCM_5:

 addl $100663296,%ebx
# WAS jc .Lhandle_ctr32
	jc	.Lhandle_ctr32_BCM_5
 vmovdqu 0-32(%r9),%xmm3
 vpaddb %xmm2,%xmm14,%xmm1
 vpxor %xmm15,%xmm10,%xmm10
 vpxor %xmm15,%xmm11,%xmm11

.Lresume_ctr32_BCM_5:

 vmovdqu %xmm1,(%r8)
 vpclmulqdq $0x10,%xmm3,%xmm7,%xmm5
 vpxor %xmm15,%xmm12,%xmm12
 vmovups 16-128(%rcx),%xmm2
 vpclmulqdq $0x01,%xmm3,%xmm7,%xmm6
# 58 "aesni-gcm-x86_64.S"
 xorq %r12,%r12
 cmpq %r14,%r15

 vaesenc %xmm2,%xmm9,%xmm9
 vmovdqu 48+8(%rsp),%xmm0
 vpxor %xmm15,%xmm13,%xmm13
 vpclmulqdq $0x00,%xmm3,%xmm7,%xmm1
 vaesenc %xmm2,%xmm10,%xmm10
 vpxor %xmm15,%xmm14,%xmm14
 setnc %r12b
 vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7
 vaesenc %xmm2,%xmm11,%xmm11
 vmovdqu 16-32(%r9),%xmm3
 negq %r12
 vaesenc %xmm2,%xmm12,%xmm12
 vpxor %xmm5,%xmm6,%xmm6
 vpclmulqdq $0x00,%xmm3,%xmm0,%xmm5
 vpxor %xmm4,%xmm8,%xmm8
 vaesenc %xmm2,%xmm13,%xmm13
 vpxor %xmm5,%xmm1,%xmm4
 andq $0x60,%r12
 vmovups 32-128(%rcx),%xmm15
 vpclmulqdq $0x10,%xmm3,%xmm0,%xmm1
 vaesenc %xmm2,%xmm14,%xmm14

 vpclmulqdq $0x01,%xmm3,%xmm0,%xmm2
 leaq (%r14,%r12,1),%r14
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor 16+8(%rsp),%xmm8,%xmm8
 vpclmulqdq $0x11,%xmm3,%xmm0,%xmm3
 vmovdqu 64+8(%rsp),%xmm0
 vaesenc %xmm15,%xmm10,%xmm10
 movbeq 88(%r14),%r13
 vaesenc %xmm15,%xmm11,%xmm11
 movbeq 80(%r14),%r12
 vaesenc %xmm15,%xmm12,%xmm12
 movq %r13,32+8(%rsp)
 vaesenc %xmm15,%xmm13,%xmm13
 movq %r12,40+8(%rsp)
 vmovdqu 48-32(%r9),%xmm5
 vaesenc %xmm15,%xmm14,%xmm14

 vmovups 48-128(%rcx),%xmm15
 vpxor %xmm1,%xmm6,%xmm6
 vpclmulqdq $0x00,%xmm5,%xmm0,%xmm1
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor %xmm2,%xmm6,%xmm6
 vpclmulqdq $0x10,%xmm5,%xmm0,%xmm2
 vaesenc %xmm15,%xmm10,%xmm10
 vpxor %xmm3,%xmm7,%xmm7
 vpclmulqdq $0x01,%xmm5,%xmm0,%xmm3
 vaesenc %xmm15,%xmm11,%xmm11
 vpclmulqdq $0x11,%xmm5,%xmm0,%xmm5
 vmovdqu 80+8(%rsp),%xmm0
 vaesenc %xmm15,%xmm12,%xmm12
 vaesenc %xmm15,%xmm13,%xmm13
 vpxor %xmm1,%xmm4,%xmm4
 vmovdqu 64-32(%r9),%xmm1
 vaesenc %xmm15,%xmm14,%xmm14

 vmovups 64-128(%rcx),%xmm15
 vpxor %xmm2,%xmm6,%xmm6
 vpclmulqdq $0x00,%xmm1,%xmm0,%xmm2
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor %xmm3,%xmm6,%xmm6
 vpclmulqdq $0x10,%xmm1,%xmm0,%xmm3
 vaesenc %xmm15,%xmm10,%xmm10
 movbeq 72(%r14),%r13
 vpxor %xmm5,%xmm7,%xmm7
 vpclmulqdq $0x01,%xmm1,%xmm0,%xmm5
 vaesenc %xmm15,%xmm11,%xmm11
 movbeq 64(%r14),%r12
 vpclmulqdq $0x11,%xmm1,%xmm0,%xmm1
 vmovdqu 96+8(%rsp),%xmm0
 vaesenc %xmm15,%xmm12,%xmm12
 movq %r13,48+8(%rsp)
 vaesenc %xmm15,%xmm13,%xmm13
 movq %r12,56+8(%rsp)
 vpxor %xmm2,%xmm4,%xmm4
 vmovdqu 96-32(%r9),%xmm2
 vaesenc %xmm15,%xmm14,%xmm14

 vmovups 80-128(%rcx),%xmm15
 vpxor %xmm3,%xmm6,%xmm6
 vpclmulqdq $0x00,%xmm2,%xmm0,%xmm3
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor %xmm5,%xmm6,%xmm6
 vpclmulqdq $0x10,%xmm2,%xmm0,%xmm5
 vaesenc %xmm15,%xmm10,%xmm10
 movbeq 56(%r14),%r13
 vpxor %xmm1,%xmm7,%xmm7
 vpclmulqdq $0x01,%xmm2,%xmm0,%xmm1
 vpxor 112+8(%rsp),%xmm8,%xmm8
 vaesenc %xmm15,%xmm11,%xmm11
 movbeq 48(%r14),%r12
 vpclmulqdq $0x11,%xmm2,%xmm0,%xmm2
 vaesenc %xmm15,%xmm12,%xmm12
 movq %r13,64+8(%rsp)
 vaesenc %xmm15,%xmm13,%xmm13
 movq %r12,72+8(%rsp)
 vpxor %xmm3,%xmm4,%xmm4
 vmovdqu 112-32(%r9),%xmm3
 vaesenc %xmm15,%xmm14,%xmm14

 vmovups 96-128(%rcx),%xmm15
 vpxor %xmm5,%xmm6,%xmm6
 vpclmulqdq $0x10,%xmm3,%xmm8,%xmm5
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor %xmm1,%xmm6,%xmm6
 vpclmulqdq $0x01,%xmm3,%xmm8,%xmm1
 vaesenc %xmm15,%xmm10,%xmm10
 movbeq 40(%r14),%r13
 vpxor %xmm2,%xmm7,%xmm7
 vpclmulqdq $0x00,%xmm3,%xmm8,%xmm2
 vaesenc %xmm15,%xmm11,%xmm11
 movbeq 32(%r14),%r12
 vpclmulqdq $0x11,%xmm3,%xmm8,%xmm8
 vaesenc %xmm15,%xmm12,%xmm12
 movq %r13,80+8(%rsp)
 vaesenc %xmm15,%xmm13,%xmm13
 movq %r12,88+8(%rsp)
 vpxor %xmm5,%xmm6,%xmm6
 vaesenc %xmm15,%xmm14,%xmm14
 vpxor %xmm1,%xmm6,%xmm6

 vmovups 112-128(%rcx),%xmm15
 vpslldq $8,%xmm6,%xmm5
 vpxor %xmm2,%xmm4,%xmm4
 vmovdqu 16(%r11),%xmm3

 vaesenc %xmm15,%xmm9,%xmm9
 vpxor %xmm8,%xmm7,%xmm7
 vaesenc %xmm15,%xmm10,%xmm10
 vpxor %xmm5,%xmm4,%xmm4
 movbeq 24(%r14),%r13
 vaesenc %xmm15,%xmm11,%xmm11
 movbeq 16(%r14),%r12
 vpalignr $8,%xmm4,%xmm4,%xmm0
 vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4
 movq %r13,96+8(%rsp)
 vaesenc %xmm15,%xmm12,%xmm12
 movq %r12,104+8(%rsp)
 vaesenc %xmm15,%xmm13,%xmm13
 vmovups 128-128(%rcx),%xmm1
 vaesenc %xmm15,%xmm14,%xmm14

 vaesenc %xmm1,%xmm9,%xmm9
 vmovups 144-128(%rcx),%xmm15
 vaesenc %xmm1,%xmm10,%xmm10
 vpsrldq $8,%xmm6,%xmm6
 vaesenc %xmm1,%xmm11,%xmm11
 vpxor %xmm6,%xmm7,%xmm7
 vaesenc %xmm1,%xmm12,%xmm12
 vpxor %xmm0,%xmm4,%xmm4
 movbeq 8(%r14),%r13
 vaesenc %xmm1,%xmm13,%xmm13
 movbeq 0(%r14),%r12
 vaesenc %xmm1,%xmm14,%xmm14
 vmovups 160-128(%rcx),%xmm1
 cmpl $11,%r10d
# WAS jb .Lenc_tail
	jb	.Lenc_tail_BCM_5

 vaesenc %xmm15,%xmm9,%xmm9
 vaesenc %xmm15,%xmm10,%xmm10
 vaesenc %xmm15,%xmm11,%xmm11
 vaesenc %xmm15,%xmm12,%xmm12
 vaesenc %xmm15,%xmm13,%xmm13
 vaesenc %xmm15,%xmm14,%xmm14

 vaesenc %xmm1,%xmm9,%xmm9
 vaesenc %xmm1,%xmm10,%xmm10
 vaesenc %xmm1,%xmm11,%xmm11
 vaesenc %xmm1,%xmm12,%xmm12
 vaesenc %xmm1,%xmm13,%xmm13
 vmovups 176-128(%rcx),%xmm15
 vaesenc %xmm1,%xmm14,%xmm14
 vmovups 192-128(%rcx),%xmm1
# WAS je .Lenc_tail
	je	.Lenc_tail_BCM_5

 vaesenc %xmm15,%xmm9,%xmm9
 vaesenc %xmm15,%xmm10,%xmm10
 vaesenc %xmm15,%xmm11,%xmm11
 vaesenc %xmm15,%xmm12,%xmm12
 vaesenc %xmm15,%xmm13,%xmm13
 vaesenc %xmm15,%xmm14,%xmm14

 vaesenc %xmm1,%xmm9,%xmm9
 vaesenc %xmm1,%xmm10,%xmm10
 vaesenc %xmm1,%xmm11,%xmm11
 vaesenc %xmm1,%xmm12,%xmm12
 vaesenc %xmm1,%xmm13,%xmm13
 vmovups 208-128(%rcx),%xmm15
 vaesenc %xmm1,%xmm14,%xmm14
 vmovups 224-128(%rcx),%xmm1
# WAS jmp .Lenc_tail
	jmp	.Lenc_tail_BCM_5

.align 32
.Lhandle_ctr32_BCM_5:

 vmovdqu (%r11),%xmm0
 vpshufb %xmm0,%xmm1,%xmm6
 vmovdqu 48(%r11),%xmm5
 vpaddd 64(%r11),%xmm6,%xmm10
 vpaddd %xmm5,%xmm6,%xmm11
 vmovdqu 0-32(%r9),%xmm3
 vpaddd %xmm5,%xmm10,%xmm12
 vpshufb %xmm0,%xmm10,%xmm10
 vpaddd %xmm5,%xmm11,%xmm13
 vpshufb %xmm0,%xmm11,%xmm11
 vpxor %xmm15,%xmm10,%xmm10
 vpaddd %xmm5,%xmm12,%xmm14
 vpshufb %xmm0,%xmm12,%xmm12
 vpxor %xmm15,%xmm11,%xmm11
 vpaddd %xmm5,%xmm13,%xmm1
 vpshufb %xmm0,%xmm13,%xmm13
 vpshufb %xmm0,%xmm14,%xmm14
 vpshufb %xmm0,%xmm1,%xmm1
# WAS jmp .Lresume_ctr32
	jmp	.Lresume_ctr32_BCM_5

.align 32
.Lenc_tail_BCM_5:

 vaesenc %xmm15,%xmm9,%xmm9
 vmovdqu %xmm7,16+8(%rsp)
 vpalignr $8,%xmm4,%xmm4,%xmm8
 vaesenc %xmm15,%xmm10,%xmm10
 vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4
 vpxor 0(%rdi),%xmm1,%xmm2
 vaesenc %xmm15,%xmm11,%xmm11
 vpxor 16(%rdi),%xmm1,%xmm0
 vaesenc %xmm15,%xmm12,%xmm12
 vpxor 32(%rdi),%xmm1,%xmm5
 vaesenc %xmm15,%xmm13,%xmm13
 vpxor 48(%rdi),%xmm1,%xmm6
 vaesenc %xmm15,%xmm14,%xmm14
 vpxor 64(%rdi),%xmm1,%xmm7
 vpxor 80(%rdi),%xmm1,%xmm3
 vmovdqu (%r8),%xmm1

 vaesenclast %xmm2,%xmm9,%xmm9
 vmovdqu 32(%r11),%xmm2
 vaesenclast %xmm0,%xmm10,%xmm10
 vpaddb %xmm2,%xmm1,%xmm0
 movq %r13,112+8(%rsp)
 leaq 96(%rdi),%rdi

 prefetcht0 512(%rdi)
 prefetcht0 576(%rdi)
 vaesenclast %xmm5,%xmm11,%xmm11
 vpaddb %xmm2,%xmm0,%xmm5
 movq %r12,120+8(%rsp)
 leaq 96(%rsi),%rsi
 vmovdqu 0-128(%rcx),%xmm15
 vaesenclast %xmm6,%xmm12,%xmm12
 vpaddb %xmm2,%xmm5,%xmm6
 vaesenclast %xmm7,%xmm13,%xmm13
 vpaddb %xmm2,%xmm6,%xmm7
 vaesenclast %xmm3,%xmm14,%xmm14
 vpaddb %xmm2,%xmm7,%xmm3

 addq $0x60,%rax
 subq $0x6,%rdx
# WAS jc .L6x_done
	jc	.L6x_done_BCM_5

 vmovups %xmm9,-96(%rsi)
 vpxor %xmm15,%xmm1,%xmm9
 vmovups %xmm10,-80(%rsi)
 vmovdqa %xmm0,%xmm10
 vmovups %xmm11,-64(%rsi)
 vmovdqa %xmm5,%xmm11
 vmovups %xmm12,-48(%rsi)
 vmovdqa %xmm6,%xmm12
 vmovups %xmm13,-32(%rsi)
 vmovdqa %xmm7,%xmm13
 vmovups %xmm14,-16(%rsi)
 vmovdqa %xmm3,%xmm14
 vmovdqu 32+8(%rsp),%xmm7
# WAS jmp .Loop6x
	jmp	.Loop6x_BCM_5

.L6x_done_BCM_5:

 vpxor 16+8(%rsp),%xmm8,%xmm8
 vpxor %xmm4,%xmm8,%xmm8

 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_ctr32_ghash_6x,.-_aesni_ctr32_ghash_6x
.globl aesni_gcm_decrypt
.hidden aesni_gcm_decrypt
.type aesni_gcm_decrypt,@function
.align 32
.Laesni_gcm_decrypt_local_target:
aesni_gcm_decrypt:
.cfi_startproc

endbr64
 xorq %rax,%rax



 cmpq $0x60,%rdx
# WAS jb .Lgcm_dec_abort
	jb	.Lgcm_dec_abort_BCM_5

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16

 movq %rsp,%rbp
.cfi_def_cfa_register %rbp
 pushq %rbx
.cfi_offset %rbx,-24

 pushq %r12
.cfi_offset %r12,-32

 pushq %r13
.cfi_offset %r13,-40

 pushq %r14
.cfi_offset %r14,-48

 pushq %r15
.cfi_offset %r15,-56

 vzeroupper

 movq 16(%rbp),%r12
 vmovdqu (%r8),%xmm1
 addq $-128,%rsp
 movl 12(%r8),%ebx
# WAS leaq .Lbswap_mask(%rip),%r11
	leaq	.Lbswap_mask_BCM_5(%rip), %r11
 leaq -128(%rcx),%r14
 movq $0xf80,%r15
 vmovdqu (%r12),%xmm8
 andq $-128,%rsp
 vmovdqu (%r11),%xmm0
 leaq 128(%rcx),%rcx
 leaq 32(%r9),%r9
 movl 240-128(%rcx),%r10d
 vpshufb %xmm0,%xmm8,%xmm8

 andq %r15,%r14
 andq %rsp,%r15
 subq %r14,%r15
# WAS jc .Ldec_no_key_aliasing
	jc	.Ldec_no_key_aliasing_BCM_5
 cmpq $768,%r15
# WAS jnc .Ldec_no_key_aliasing
	jnc	.Ldec_no_key_aliasing_BCM_5
 subq %r15,%rsp
.Ldec_no_key_aliasing_BCM_5:


 vmovdqu 80(%rdi),%xmm7
 movq %rdi,%r14
 vmovdqu 64(%rdi),%xmm4







 leaq -192(%rdi,%rdx,1),%r15

 vmovdqu 48(%rdi),%xmm5
 shrq $4,%rdx
 xorq %rax,%rax
 vmovdqu 32(%rdi),%xmm6
 vpshufb %xmm0,%xmm7,%xmm7
 vmovdqu 16(%rdi),%xmm2
 vpshufb %xmm0,%xmm4,%xmm4
 vmovdqu (%rdi),%xmm3
 vpshufb %xmm0,%xmm5,%xmm5
 vmovdqu %xmm4,48(%rsp)
 vpshufb %xmm0,%xmm6,%xmm6
 vmovdqu %xmm5,64(%rsp)
 vpshufb %xmm0,%xmm2,%xmm2
 vmovdqu %xmm6,80(%rsp)
 vpshufb %xmm0,%xmm3,%xmm3
 vmovdqu %xmm2,96(%rsp)
 vmovdqu %xmm3,112(%rsp)

# WAS call _aesni_ctr32_ghash_6x
	call	.L_aesni_ctr32_ghash_6x_local_target

 movq 16(%rbp),%r12
 vmovups %xmm9,-96(%rsi)
 vmovups %xmm10,-80(%rsi)
 vmovups %xmm11,-64(%rsi)
 vmovups %xmm12,-48(%rsi)
 vmovups %xmm13,-32(%rsi)
 vmovups %xmm14,-16(%rsi)

 vpshufb (%r11),%xmm8,%xmm8
 vmovdqu %xmm8,(%r12)

 vzeroupper
 leaq -40(%rbp),%rsp
.cfi_def_cfa %rsp, 0x38
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
.Lgcm_dec_abort_BCM_5:

 .byte 0xf3,0xc3

.cfi_endproc
.size aesni_gcm_decrypt,.-aesni_gcm_decrypt
.type _aesni_ctr32_6x,@function
.align 32
.L_aesni_ctr32_6x_local_target:
_aesni_ctr32_6x:
.cfi_startproc
 vmovdqu 0-128(%rcx),%xmm4
 vmovdqu 32(%r11),%xmm2
 leaq -1(%r10),%r13
 vmovups 16-128(%rcx),%xmm15
 leaq 32-128(%rcx),%r12
 vpxor %xmm4,%xmm1,%xmm9
 addl $100663296,%ebx
# WAS jc .Lhandle_ctr32_2
	jc	.Lhandle_ctr32_2_BCM_5
 vpaddb %xmm2,%xmm1,%xmm10
 vpaddb %xmm2,%xmm10,%xmm11
 vpxor %xmm4,%xmm10,%xmm10
 vpaddb %xmm2,%xmm11,%xmm12
 vpxor %xmm4,%xmm11,%xmm11
 vpaddb %xmm2,%xmm12,%xmm13
 vpxor %xmm4,%xmm12,%xmm12
 vpaddb %xmm2,%xmm13,%xmm14
 vpxor %xmm4,%xmm13,%xmm13
 vpaddb %xmm2,%xmm14,%xmm1
 vpxor %xmm4,%xmm14,%xmm14
# WAS jmp .Loop_ctr32
	jmp	.Loop_ctr32_BCM_5

.align 16
.Loop_ctr32_BCM_5:

 vaesenc %xmm15,%xmm9,%xmm9
 vaesenc %xmm15,%xmm10,%xmm10
 vaesenc %xmm15,%xmm11,%xmm11
 vaesenc %xmm15,%xmm12,%xmm12
 vaesenc %xmm15,%xmm13,%xmm13
 vaesenc %xmm15,%xmm14,%xmm14
 vmovups (%r12),%xmm15
 leaq 16(%r12),%r12
 decl %r13d
# WAS jnz .Loop_ctr32
	jnz	.Loop_ctr32_BCM_5

 vmovdqu (%r12),%xmm3
 vaesenc %xmm15,%xmm9,%xmm9
 vpxor 0(%rdi),%xmm3,%xmm4
 vaesenc %xmm15,%xmm10,%xmm10
 vpxor 16(%rdi),%xmm3,%xmm5
 vaesenc %xmm15,%xmm11,%xmm11
 vpxor 32(%rdi),%xmm3,%xmm6
 vaesenc %xmm15,%xmm12,%xmm12
 vpxor 48(%rdi),%xmm3,%xmm8
 vaesenc %xmm15,%xmm13,%xmm13
 vpxor 64(%rdi),%xmm3,%xmm2
 vaesenc %xmm15,%xmm14,%xmm14
 vpxor 80(%rdi),%xmm3,%xmm3
 leaq 96(%rdi),%rdi

 vaesenclast %xmm4,%xmm9,%xmm9
 vaesenclast %xmm5,%xmm10,%xmm10
 vaesenclast %xmm6,%xmm11,%xmm11
 vaesenclast %xmm8,%xmm12,%xmm12
 vaesenclast %xmm2,%xmm13,%xmm13
 vaesenclast %xmm3,%xmm14,%xmm14
 vmovups %xmm9,0(%rsi)
 vmovups %xmm10,16(%rsi)
 vmovups %xmm11,32(%rsi)
 vmovups %xmm12,48(%rsi)
 vmovups %xmm13,64(%rsi)
 vmovups %xmm14,80(%rsi)
 leaq 96(%rsi),%rsi

 .byte 0xf3,0xc3
.align 32
.Lhandle_ctr32_2_BCM_5:

 vpshufb %xmm0,%xmm1,%xmm6
 vmovdqu 48(%r11),%xmm5
 vpaddd 64(%r11),%xmm6,%xmm10
 vpaddd %xmm5,%xmm6,%xmm11
 vpaddd %xmm5,%xmm10,%xmm12
 vpshufb %xmm0,%xmm10,%xmm10
 vpaddd %xmm5,%xmm11,%xmm13
 vpshufb %xmm0,%xmm11,%xmm11
 vpxor %xmm4,%xmm10,%xmm10
 vpaddd %xmm5,%xmm12,%xmm14
 vpshufb %xmm0,%xmm12,%xmm12
 vpxor %xmm4,%xmm11,%xmm11
 vpaddd %xmm5,%xmm13,%xmm1
 vpshufb %xmm0,%xmm13,%xmm13
 vpxor %xmm4,%xmm12,%xmm12
 vpshufb %xmm0,%xmm14,%xmm14
 vpxor %xmm4,%xmm13,%xmm13
 vpshufb %xmm0,%xmm1,%xmm1
 vpxor %xmm4,%xmm14,%xmm14
# WAS jmp .Loop_ctr32
	jmp	.Loop_ctr32_BCM_5
.cfi_endproc
.size _aesni_ctr32_6x,.-_aesni_ctr32_6x

.globl aesni_gcm_encrypt
.hidden aesni_gcm_encrypt
.type aesni_gcm_encrypt,@function
.align 32
.Laesni_gcm_encrypt_local_target:
aesni_gcm_encrypt:
.cfi_startproc

endbr64





 xorq %rax,%rax




 cmpq $288,%rdx
# WAS jb .Lgcm_enc_abort
	jb	.Lgcm_enc_abort_BCM_5

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16

 movq %rsp,%rbp
.cfi_def_cfa_register %rbp
 pushq %rbx
.cfi_offset %rbx,-24

 pushq %r12
.cfi_offset %r12,-32

 pushq %r13
.cfi_offset %r13,-40

 pushq %r14
.cfi_offset %r14,-48

 pushq %r15
.cfi_offset %r15,-56

 vzeroupper

 vmovdqu (%r8),%xmm1
 addq $-128,%rsp
 movl 12(%r8),%ebx
# WAS leaq .Lbswap_mask(%rip),%r11
	leaq	.Lbswap_mask_BCM_5(%rip), %r11
 leaq -128(%rcx),%r14
 movq $0xf80,%r15
 leaq 128(%rcx),%rcx
 vmovdqu (%r11),%xmm0
 andq $-128,%rsp
 movl 240-128(%rcx),%r10d

 andq %r15,%r14
 andq %rsp,%r15
 subq %r14,%r15
# WAS jc .Lenc_no_key_aliasing
	jc	.Lenc_no_key_aliasing_BCM_5
 cmpq $768,%r15
# WAS jnc .Lenc_no_key_aliasing
	jnc	.Lenc_no_key_aliasing_BCM_5
 subq %r15,%rsp
.Lenc_no_key_aliasing_BCM_5:


 movq %rsi,%r14
# 639 "aesni-gcm-x86_64.S"
 leaq -192(%rsi,%rdx,1),%r15

 shrq $4,%rdx

# WAS call _aesni_ctr32_6x
	call	.L_aesni_ctr32_6x_local_target
 vpshufb %xmm0,%xmm9,%xmm8
 vpshufb %xmm0,%xmm10,%xmm2
 vmovdqu %xmm8,112(%rsp)
 vpshufb %xmm0,%xmm11,%xmm4
 vmovdqu %xmm2,96(%rsp)
 vpshufb %xmm0,%xmm12,%xmm5
 vmovdqu %xmm4,80(%rsp)
 vpshufb %xmm0,%xmm13,%xmm6
 vmovdqu %xmm5,64(%rsp)
 vpshufb %xmm0,%xmm14,%xmm7
 vmovdqu %xmm6,48(%rsp)

# WAS call _aesni_ctr32_6x
	call	.L_aesni_ctr32_6x_local_target

 movq 16(%rbp),%r12
 leaq 32(%r9),%r9
 vmovdqu (%r12),%xmm8
 subq $12,%rdx
 movq $192,%rax
 vpshufb %xmm0,%xmm8,%xmm8

# WAS call _aesni_ctr32_ghash_6x
	call	.L_aesni_ctr32_ghash_6x_local_target
 vmovdqu 32(%rsp),%xmm7
 vmovdqu (%r11),%xmm0
 vmovdqu 0-32(%r9),%xmm3
 vpunpckhqdq %xmm7,%xmm7,%xmm1
 vmovdqu 32-32(%r9),%xmm15
 vmovups %xmm9,-96(%rsi)
 vpshufb %xmm0,%xmm9,%xmm9
 vpxor %xmm7,%xmm1,%xmm1
 vmovups %xmm10,-80(%rsi)
 vpshufb %xmm0,%xmm10,%xmm10
 vmovups %xmm11,-64(%rsi)
 vpshufb %xmm0,%xmm11,%xmm11
 vmovups %xmm12,-48(%rsi)
 vpshufb %xmm0,%xmm12,%xmm12
 vmovups %xmm13,-32(%rsi)
 vpshufb %xmm0,%xmm13,%xmm13
 vmovups %xmm14,-16(%rsi)
 vpshufb %xmm0,%xmm14,%xmm14
 vmovdqu %xmm9,16(%rsp)
 vmovdqu 48(%rsp),%xmm6
 vmovdqu 16-32(%r9),%xmm0
 vpunpckhqdq %xmm6,%xmm6,%xmm2
 vpclmulqdq $0x00,%xmm3,%xmm7,%xmm5
 vpxor %xmm6,%xmm2,%xmm2
 vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7
 vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1

 vmovdqu 64(%rsp),%xmm9
 vpclmulqdq $0x00,%xmm0,%xmm6,%xmm4
 vmovdqu 48-32(%r9),%xmm3
 vpxor %xmm5,%xmm4,%xmm4
 vpunpckhqdq %xmm9,%xmm9,%xmm5
 vpclmulqdq $0x11,%xmm0,%xmm6,%xmm6
 vpxor %xmm9,%xmm5,%xmm5
 vpxor %xmm7,%xmm6,%xmm6
 vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2
 vmovdqu 80-32(%r9),%xmm15
 vpxor %xmm1,%xmm2,%xmm2

 vmovdqu 80(%rsp),%xmm1
 vpclmulqdq $0x00,%xmm3,%xmm9,%xmm7
 vmovdqu 64-32(%r9),%xmm0
 vpxor %xmm4,%xmm7,%xmm7
 vpunpckhqdq %xmm1,%xmm1,%xmm4
 vpclmulqdq $0x11,%xmm3,%xmm9,%xmm9
 vpxor %xmm1,%xmm4,%xmm4
 vpxor %xmm6,%xmm9,%xmm9
 vpclmulqdq $0x00,%xmm15,%xmm5,%xmm5
 vpxor %xmm2,%xmm5,%xmm5

 vmovdqu 96(%rsp),%xmm2
 vpclmulqdq $0x00,%xmm0,%xmm1,%xmm6
 vmovdqu 96-32(%r9),%xmm3
 vpxor %xmm7,%xmm6,%xmm6
 vpunpckhqdq %xmm2,%xmm2,%xmm7
 vpclmulqdq $0x11,%xmm0,%xmm1,%xmm1
 vpxor %xmm2,%xmm7,%xmm7
 vpxor %xmm9,%xmm1,%xmm1
 vpclmulqdq $0x10,%xmm15,%xmm4,%xmm4
 vmovdqu 128-32(%r9),%xmm15
 vpxor %xmm5,%xmm4,%xmm4

 vpxor 112(%rsp),%xmm8,%xmm8
 vpclmulqdq $0x00,%xmm3,%xmm2,%xmm5
 vmovdqu 112-32(%r9),%xmm0
 vpunpckhqdq %xmm8,%xmm8,%xmm9
 vpxor %xmm6,%xmm5,%xmm5
 vpclmulqdq $0x11,%xmm3,%xmm2,%xmm2
 vpxor %xmm8,%xmm9,%xmm9
 vpxor %xmm1,%xmm2,%xmm2
 vpclmulqdq $0x00,%xmm15,%xmm7,%xmm7
 vpxor %xmm4,%xmm7,%xmm4

 vpclmulqdq $0x00,%xmm0,%xmm8,%xmm6
 vmovdqu 0-32(%r9),%xmm3
 vpunpckhqdq %xmm14,%xmm14,%xmm1
 vpclmulqdq $0x11,%xmm0,%xmm8,%xmm8
 vpxor %xmm14,%xmm1,%xmm1
 vpxor %xmm5,%xmm6,%xmm5
 vpclmulqdq $0x10,%xmm15,%xmm9,%xmm9
 vmovdqu 32-32(%r9),%xmm15
 vpxor %xmm2,%xmm8,%xmm7
 vpxor %xmm4,%xmm9,%xmm6

 vmovdqu 16-32(%r9),%xmm0
 vpxor %xmm5,%xmm7,%xmm9
 vpclmulqdq $0x00,%xmm3,%xmm14,%xmm4
 vpxor %xmm9,%xmm6,%xmm6
 vpunpckhqdq %xmm13,%xmm13,%xmm2
 vpclmulqdq $0x11,%xmm3,%xmm14,%xmm14
 vpxor %xmm13,%xmm2,%xmm2
 vpslldq $8,%xmm6,%xmm9
 vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1
 vpxor %xmm9,%xmm5,%xmm8
 vpsrldq $8,%xmm6,%xmm6
 vpxor %xmm6,%xmm7,%xmm7

 vpclmulqdq $0x00,%xmm0,%xmm13,%xmm5
 vmovdqu 48-32(%r9),%xmm3
 vpxor %xmm4,%xmm5,%xmm5
 vpunpckhqdq %xmm12,%xmm12,%xmm9
 vpclmulqdq $0x11,%xmm0,%xmm13,%xmm13
 vpxor %xmm12,%xmm9,%xmm9
 vpxor %xmm14,%xmm13,%xmm13
 vpalignr $8,%xmm8,%xmm8,%xmm14
 vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2
 vmovdqu 80-32(%r9),%xmm15
 vpxor %xmm1,%xmm2,%xmm2

 vpclmulqdq $0x00,%xmm3,%xmm12,%xmm4
 vmovdqu 64-32(%r9),%xmm0
 vpxor %xmm5,%xmm4,%xmm4
 vpunpckhqdq %xmm11,%xmm11,%xmm1
 vpclmulqdq $0x11,%xmm3,%xmm12,%xmm12
 vpxor %xmm11,%xmm1,%xmm1
 vpxor %xmm13,%xmm12,%xmm12
 vxorps 16(%rsp),%xmm7,%xmm7
 vpclmulqdq $0x00,%xmm15,%xmm9,%xmm9
 vpxor %xmm2,%xmm9,%xmm9

 vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8
 vxorps %xmm14,%xmm8,%xmm8

 vpclmulqdq $0x00,%xmm0,%xmm11,%xmm5
 vmovdqu 96-32(%r9),%xmm3
 vpxor %xmm4,%xmm5,%xmm5
 vpunpckhqdq %xmm10,%xmm10,%xmm2
 vpclmulqdq $0x11,%xmm0,%xmm11,%xmm11
 vpxor %xmm10,%xmm2,%xmm2
 vpalignr $8,%xmm8,%xmm8,%xmm14
 vpxor %xmm12,%xmm11,%xmm11
 vpclmulqdq $0x10,%xmm15,%xmm1,%xmm1
 vmovdqu 128-32(%r9),%xmm15
 vpxor %xmm9,%xmm1,%xmm1

 vxorps %xmm7,%xmm14,%xmm14
 vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8
 vxorps %xmm14,%xmm8,%xmm8

 vpclmulqdq $0x00,%xmm3,%xmm10,%xmm4
 vmovdqu 112-32(%r9),%xmm0
 vpxor %xmm5,%xmm4,%xmm4
 vpunpckhqdq %xmm8,%xmm8,%xmm9
 vpclmulqdq $0x11,%xmm3,%xmm10,%xmm10
 vpxor %xmm8,%xmm9,%xmm9
 vpxor %xmm11,%xmm10,%xmm10
 vpclmulqdq $0x00,%xmm15,%xmm2,%xmm2
 vpxor %xmm1,%xmm2,%xmm2

 vpclmulqdq $0x00,%xmm0,%xmm8,%xmm5
 vpclmulqdq $0x11,%xmm0,%xmm8,%xmm7
 vpxor %xmm4,%xmm5,%xmm5
 vpclmulqdq $0x10,%xmm15,%xmm9,%xmm6
 vpxor %xmm10,%xmm7,%xmm7
 vpxor %xmm2,%xmm6,%xmm6

 vpxor %xmm5,%xmm7,%xmm4
 vpxor %xmm4,%xmm6,%xmm6
 vpslldq $8,%xmm6,%xmm1
 vmovdqu 16(%r11),%xmm3
 vpsrldq $8,%xmm6,%xmm6
 vpxor %xmm1,%xmm5,%xmm8
 vpxor %xmm6,%xmm7,%xmm7

 vpalignr $8,%xmm8,%xmm8,%xmm2
 vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8
 vpxor %xmm2,%xmm8,%xmm8

 vpalignr $8,%xmm8,%xmm8,%xmm2
 vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8
 vpxor %xmm7,%xmm2,%xmm2
 vpxor %xmm2,%xmm8,%xmm8
 movq 16(%rbp),%r12
 vpshufb (%r11),%xmm8,%xmm8
 vmovdqu %xmm8,(%r12)

 vzeroupper
 leaq -40(%rbp),%rsp
.cfi_def_cfa %rsp, 0x38
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore %r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore %r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore %r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore %r12
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore %rbx
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore %rbp
.Lgcm_enc_abort_BCM_5:

 .byte 0xf3,0xc3

.cfi_endproc
.size aesni_gcm_encrypt,.-aesni_gcm_encrypt
# WAS .section .rodata
.text
.align 64
.Lbswap_mask_BCM_5:

.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.Lpoly_BCM_5:

.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
.Lone_msb_BCM_5:

.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
.Ltwo_lsb_BCM_5:

.byte 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.Lone_lsb_BCM_5:

.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.text
# 0 "aesni-xts-avx512.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "aesni-xts-avx512.S"



#include <openssl/asm_base.h>
# 4 "aesni-xts-avx512.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "aesni-xts-avx512.S" 2



.text
.globl aes_hw_xts_encrypt_avx512
.hidden aes_hw_xts_encrypt_avx512
.hidden aes_hw_xts_encrypt_avx512
.type aes_hw_xts_encrypt_avx512,@function
.align 32
.Laes_hw_xts_encrypt_avx512_local_target:
aes_hw_xts_encrypt_avx512:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbp
 movq %rsp,%rbp
 subq $376,%rsp
 andq $0xffffffffffffffc0,%rsp
 movq %rbx,368(%rsp)
 movq $0x87,%r10
 vmovdqu (%r9),%xmm1
 vpxor %xmm4,%xmm4,%xmm4
 vmovdqu (%r8),%xmm0
 vpxor %xmm0,%xmm1,%xmm1

 vmovdqu (%rcx),%xmm2
 vmovdqa %xmm2,128(%rsp)

 vmovdqu 16(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 16(%rcx),%xmm2
 vmovdqa %xmm2,144(%rsp)

 vmovdqu 32(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 32(%rcx),%xmm2
 vmovdqa %xmm2,160(%rsp)

 vmovdqu 48(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 48(%rcx),%xmm2
 vmovdqa %xmm2,176(%rsp)

 vmovdqu 64(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 64(%rcx),%xmm2
 vmovdqa %xmm2,192(%rsp)

 vmovdqu 80(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 80(%rcx),%xmm2
 vmovdqa %xmm2,208(%rsp)

 vmovdqu 96(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 96(%rcx),%xmm2
 vmovdqa %xmm2,224(%rsp)

 vmovdqu 112(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 112(%rcx),%xmm2
 vmovdqa %xmm2,240(%rsp)

 vmovdqu 128(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 128(%rcx),%xmm2
 vmovdqa %xmm2,256(%rsp)

 vmovdqu 144(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 144(%rcx),%xmm2
 vmovdqa %xmm2,272(%rsp)

 vmovdqu 160(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 160(%rcx),%xmm2
 vmovdqa %xmm2,288(%rsp)

 vmovdqu 176(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 176(%rcx),%xmm2
 vmovdqa %xmm2,304(%rsp)

 vmovdqu 192(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 192(%rcx),%xmm2
 vmovdqa %xmm2,320(%rsp)

 vmovdqu 208(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 208(%rcx),%xmm2
 vmovdqa %xmm2,336(%rsp)

 vmovdqu 224(%r8),%xmm0
.byte 98,242,117,8,221,200

 vmovdqu 224(%rcx),%xmm2
 vmovdqa %xmm2,352(%rsp)

 vmovdqa %xmm1,(%rsp)

 cmpq $0x80,%rdx
# WAS jl .L_less_than_128_bytes_hEgxyDlCngwrfFe
	jl	.L_less_than_128_bytes_hEgxyDlCngwrfFe_BCM_6
 vpbroadcastq %r10,%zmm25
 cmpq $0x100,%rdx
# WAS jge .L_start_by16_hEgxyDlCngwrfFe
	jge	.L_start_by16_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x80,%rdx
# WAS jge .L_start_by8_hEgxyDlCngwrfFe
	jge	.L_start_by8_hEgxyDlCngwrfFe_BCM_6

.L_do_n_blocks_hEgxyDlCngwrfFe_BCM_6:

 cmpq $0x0,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x70,%rdx
# WAS jge .L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x60,%rdx
# WAS jge .L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x50,%rdx
# WAS jge .L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x40,%rdx
# WAS jge .L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x30,%rdx
# WAS jge .L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x20,%rdx
# WAS jge .L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x10,%rdx
# WAS jge .L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe
	jge	.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe_BCM_6
 vmovdqa %xmm0,%xmm8
 vmovdqa %xmm9,%xmm0
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6

.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe_BCM_6:

 movq $0xffffffffffffffff,%r8
 shrq $0x10,%r8
 kmovq %r8,%k1
 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2{%k1}
 addq $0x70,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi){%k1}
 addq $0x70,%rsi
 vextracti32x4 $0x2,%zmm2,%xmm8
 vextracti32x4 $0x3,%zmm10,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6

.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%ymm2
 addq $0x60,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %ymm2,64(%rsi)
 addq $0x60,%rsi
 vextracti32x4 $0x1,%zmm2,%xmm8
 vextracti32x4 $0x2,%zmm10,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6

.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu 64(%rdi),%xmm2
 addq $0x50,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu %xmm2,64(%rsi)
 addq $0x50,%rsi
 vmovdqa %xmm2,%xmm8
 vextracti32x4 $0x1,%zmm10,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6

.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 addq $0x40,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 addq $0x40,%rsi
 vextracti32x4 $0x3,%zmm1,%xmm8
 vextracti32x4 $0x0,%zmm10,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6
.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe_BCM_6:

 vextracti32x4 $0x1,%zmm9,%xmm10
 vextracti32x4 $0x2,%zmm9,%xmm11
 vmovdqu (%rdi),%xmm1
 vmovdqu 16(%rdi),%xmm2
 vmovdqu 32(%rdi),%xmm3
 addq $0x30,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 addq $0x30,%rsi
 vmovdqa %xmm3,%xmm8
 vextracti32x4 $0x3,%zmm9,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6
.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe_BCM_6:

 vextracti32x4 $0x1,%zmm9,%xmm10
 vmovdqu (%rdi),%xmm1
 vmovdqu 16(%rdi),%xmm2
 addq $0x20,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 addq $0x20,%rsi
 vmovdqa %xmm2,%xmm8
 vextracti32x4 $0x2,%zmm9,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6
.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu (%rdi),%xmm1
 addq $0x10,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqu %xmm1,(%rsi)
 addq $0x10,%rsi
 vmovdqa %xmm1,%xmm8
 vextracti32x4 $0x1,%zmm9,%xmm0
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6

.L_start_by16_hEgxyDlCngwrfFe_BCM_6:

 vbroadcasti32x4 (%rsp),%zmm0
# WAS vbroadcasti32x4 shufb_15_7(%rip),%zmm8
	vbroadcasti32x4	.Lshufb_15_7_local_target(%rip), %zmm8
 movq $0xaa,%r8
 kmovq %r8,%k2
 vpshufb %zmm8,%zmm0,%zmm1
# WAS vpsllvq const_dq3210(%rip),%zmm0,%zmm4
	vpsllvq	.Lconst_dq3210_local_target(%rip), %zmm0, %zmm4
# WAS vpsrlvq const_dq5678(%rip),%zmm1,%zmm2
	vpsrlvq	.Lconst_dq5678_local_target(%rip), %zmm1, %zmm2
.byte 98,147,109,72,68,217,0
 vpxorq %zmm2,%zmm4,%zmm4{%k2}
 vpxord %zmm4,%zmm3,%zmm9
# WAS vpsllvq const_dq7654(%rip),%zmm0,%zmm5
	vpsllvq	.Lconst_dq7654_local_target(%rip), %zmm0, %zmm5
# WAS vpsrlvq const_dq1234(%rip),%zmm1,%zmm6
	vpsrlvq	.Lconst_dq1234_local_target(%rip), %zmm1, %zmm6
.byte 98,147,77,72,68,249,0
 vpxorq %zmm6,%zmm5,%zmm5{%k2}
 vpxord %zmm5,%zmm7,%zmm10
 vpsrldq $0xf,%zmm9,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm9,%zmm11
 vpxord %zmm14,%zmm11,%zmm11
 vpsrldq $0xf,%zmm10,%zmm15
.byte 98,131,5,72,68,193,0
 vpslldq $0x1,%zmm10,%zmm12
 vpxord %zmm16,%zmm12,%zmm12

.L_main_loop_run_16_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2
 vmovdqu8 128(%rdi),%zmm3
 vmovdqu8 192(%rdi),%zmm4
 addq $0x100,%rdi
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2
 vpxorq %zmm11,%zmm3,%zmm3
 vpxorq %zmm12,%zmm4,%zmm4
 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vpxorq %zmm0,%zmm3,%zmm3
 vpxorq %zmm0,%zmm4,%zmm4
 vpsrldq $0xf,%zmm11,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm11,%zmm15
 vpxord %zmm14,%zmm15,%zmm15
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vpsrldq $0xf,%zmm12,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm12,%zmm16
 vpxord %zmm14,%zmm16,%zmm16
 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vpsrldq $0xf,%zmm15,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm15,%zmm17
 vpxord %zmm14,%zmm17,%zmm17
 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vpsrldq $0xf,%zmm16,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm16,%zmm18
 vpxord %zmm14,%zmm18,%zmm18
 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
.byte 98,242,101,72,220,216
.byte 98,242,93,72,220,224
 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208
.byte 98,242,101,72,221,216
.byte 98,242,93,72,221,224
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2
 vpxorq %zmm11,%zmm3,%zmm3
 vpxorq %zmm12,%zmm4,%zmm4

 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqa32 %zmm17,%zmm11
 vmovdqa32 %zmm18,%zmm12
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi)
 vmovdqu8 %zmm3,128(%rsi)
 vmovdqu8 %zmm4,192(%rsi)
 addq $0x100,%rsi
 subq $0x100,%rdx
 cmpq $0x100,%rdx
# WAS jge .L_main_loop_run_16_hEgxyDlCngwrfFe
	jge	.L_main_loop_run_16_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x80,%rdx
# WAS jge .L_main_loop_run_8_hEgxyDlCngwrfFe
	jge	.L_main_loop_run_8_hEgxyDlCngwrfFe_BCM_6
 vextracti32x4 $0x3,%zmm4,%xmm0
# WAS jmp .L_do_n_blocks_hEgxyDlCngwrfFe
	jmp	.L_do_n_blocks_hEgxyDlCngwrfFe_BCM_6

.L_start_by8_hEgxyDlCngwrfFe_BCM_6:

 vbroadcasti32x4 (%rsp),%zmm0
# WAS vbroadcasti32x4 shufb_15_7(%rip),%zmm8
	vbroadcasti32x4	.Lshufb_15_7_local_target(%rip), %zmm8
 movq $0xaa,%r8
 kmovq %r8,%k2
 vpshufb %zmm8,%zmm0,%zmm1
# WAS vpsllvq const_dq3210(%rip),%zmm0,%zmm4
	vpsllvq	.Lconst_dq3210_local_target(%rip), %zmm0, %zmm4
# WAS vpsrlvq const_dq5678(%rip),%zmm1,%zmm2
	vpsrlvq	.Lconst_dq5678_local_target(%rip), %zmm1, %zmm2
.byte 98,147,109,72,68,217,0
 vpxorq %zmm2,%zmm4,%zmm4{%k2}
 vpxord %zmm4,%zmm3,%zmm9
# WAS vpsllvq const_dq7654(%rip),%zmm0,%zmm5
	vpsllvq	.Lconst_dq7654_local_target(%rip), %zmm0, %zmm5
# WAS vpsrlvq const_dq1234(%rip),%zmm1,%zmm6
	vpsrlvq	.Lconst_dq1234_local_target(%rip), %zmm1, %zmm6
.byte 98,147,77,72,68,249,0
 vpxorq %zmm6,%zmm5,%zmm5{%k2}
 vpxord %zmm5,%zmm7,%zmm10

.L_main_loop_run_8_hEgxyDlCngwrfFe_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2
 addq $0x80,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vpsrldq $0xf,%zmm9,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm9,%zmm15
 vpxord %zmm14,%zmm15,%zmm15
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208
 vpsrldq $0xf,%zmm10,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm10,%zmm16
 vpxord %zmm14,%zmm16,%zmm16

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,220,200
.byte 98,242,109,72,220,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,221,200
.byte 98,242,109,72,221,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi)
 addq $0x80,%rsi
 subq $0x80,%rdx
 cmpq $0x80,%rdx
# WAS jge .L_main_loop_run_8_hEgxyDlCngwrfFe
	jge	.L_main_loop_run_8_hEgxyDlCngwrfFe_BCM_6
 vextracti32x4 $0x3,%zmm2,%xmm0
# WAS jmp .L_do_n_blocks_hEgxyDlCngwrfFe
	jmp	.L_do_n_blocks_hEgxyDlCngwrfFe_BCM_6

.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,(%rsp)
 movq %rbx,8(%rsp)
 vmovdqa (%rsp),%xmm0

.L_steal_cipher_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa %xmm8,%xmm2
# WAS leaq vpshufb_shf_table(%rip),%rax
	leaq	.Lvpshufb_shf_table_local_target(%rip), %rax
 vmovdqu (%rax,%rdx,1),%xmm10
 vpshufb %xmm10,%xmm8,%xmm8
 vmovdqu -16(%rdi,%rdx,1),%xmm3
 vmovdqu %xmm8,-16(%rsi,%rdx,1)
# WAS leaq vpshufb_shf_table(%rip),%rax
	leaq	.Lvpshufb_shf_table_local_target(%rip), %rax
 addq $16,%rax
 subq %rdx,%rax
 vmovdqu (%rax),%xmm10
# WAS vpxor mask1(%rip),%xmm10,%xmm10
	vpxor	.Lmask1_local_target(%rip), %xmm10, %xmm10
 vpshufb %xmm10,%xmm3,%xmm3
 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3
 vpxor %xmm0,%xmm3,%xmm8
 vpxor 128(%rsp),%xmm8,%xmm8
.byte 98,114,61,8,220,132,36,144,0,0,0
.byte 98,114,61,8,220,132,36,160,0,0,0
.byte 98,114,61,8,220,132,36,176,0,0,0
.byte 98,114,61,8,220,132,36,192,0,0,0
.byte 98,114,61,8,220,132,36,208,0,0,0
.byte 98,114,61,8,220,132,36,224,0,0,0
.byte 98,114,61,8,220,132,36,240,0,0,0
.byte 98,114,61,8,220,132,36,0,1,0,0
.byte 98,114,61,8,220,132,36,16,1,0,0
.byte 98,114,61,8,220,132,36,32,1,0,0
.byte 98,114,61,8,220,132,36,48,1,0,0
.byte 98,114,61,8,220,132,36,64,1,0,0
.byte 98,114,61,8,220,132,36,80,1,0,0
.byte 98,114,61,8,221,132,36,96,1,0,0
 vpxor %xmm0,%xmm8,%xmm8
 vmovdqu %xmm8,-16(%rsi)
.L_ret_hEgxyDlCngwrfFe_BCM_6:

 movq 368(%rsp),%rbx
 xorq %r8,%r8
 movq %r8,368(%rsp)

 vpxorq %zmm0,%zmm0,%zmm0

 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)



 movq $0x3f,%r8
 kmovq %r8,%k2
 vmovdqa64 %zmm0,320(%rsp){%k2}

 movq %rbp,%rsp
 popq %rbp
 vzeroupper
 .byte 0xf3,0xc3

.L_less_than_128_bytes_hEgxyDlCngwrfFe_BCM_6:

 cmpq $0x10,%rdx
# WAS jb .L_ret_hEgxyDlCngwrfFe
	jb	.L_ret_hEgxyDlCngwrfFe_BCM_6
 movq %rdx,%r8
 andq $0x70,%r8
 cmpq $0x60,%r8
# WAS je .L_num_blocks_is_6_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_6_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x50,%r8
# WAS je .L_num_blocks_is_5_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_5_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x40,%r8
# WAS je .L_num_blocks_is_4_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_4_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x30,%r8
# WAS je .L_num_blocks_is_3_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_3_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x20,%r8
# WAS je .L_num_blocks_is_2_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_2_hEgxyDlCngwrfFe_BCM_6
 cmpq $0x10,%r8
# WAS je .L_num_blocks_is_1_hEgxyDlCngwrfFe
	je	.L_num_blocks_is_1_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_7_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,80(%rsp)
 movq %rbx,88(%rsp)
 vmovdqa 80(%rsp),%xmm14
 vmovdqu 80(%rdi),%xmm6
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,96(%rsp)
 movq %rbx,104(%rsp)
 vmovdqa 96(%rsp),%xmm15
 vmovdqu 96(%rdi),%xmm7
 addq $0x70,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vpxor %xmm0,%xmm7,%xmm7
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
.byte 98,242,69,8,220,248
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
.byte 98,242,93,8,221,224
.byte 98,242,85,8,221,232
.byte 98,242,77,8,221,240
.byte 98,242,69,8,221,248
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 vmovdqu %xmm6,80(%rsi)
 vmovdqu %xmm7,96(%rsi)
 addq $0x70,%rsi
 vmovdqa %xmm7,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_6_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,80(%rsp)
 movq %rbx,88(%rsp)
 vmovdqa 80(%rsp),%xmm14
 vmovdqu 80(%rdi),%xmm6
 addq $0x60,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
.byte 98,242,77,8,220,240
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
.byte 98,242,93,8,221,224
.byte 98,242,85,8,221,232
.byte 98,242,77,8,221,240
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 vmovdqu %xmm6,80(%rsi)
 addq $0x60,%rsi
 vmovdqa %xmm6,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_5_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 addq $0x50,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
.byte 98,242,85,8,220,232
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
.byte 98,242,93,8,221,224
.byte 98,242,85,8,221,232
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 addq $0x50,%rsi
 vmovdqa %xmm5,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_4_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 addq $0x40,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
.byte 98,242,93,8,220,224
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
.byte 98,242,93,8,221,224
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 addq $0x40,%rsi
 vmovdqa %xmm4,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_3_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 addq $0x30,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
.byte 98,242,101,8,220,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
.byte 98,242,101,8,221,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 addq $0x30,%rsi
 vmovdqa %xmm3,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_2_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 addq $0x20,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
.byte 98,242,109,8,220,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
.byte 98,242,109,8,221,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 addq $0x20,%rsi
 vmovdqa %xmm2,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6

.L_num_blocks_is_1_hEgxyDlCngwrfFe_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 addq $0x10,%rdi
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,220,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,221,200
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqu %xmm1,(%rsi)
 addq $0x10,%rsi
 vmovdqa %xmm1,%xmm8
 andq $0xf,%rdx
# WAS je .L_ret_hEgxyDlCngwrfFe
	je	.L_ret_hEgxyDlCngwrfFe_BCM_6
# WAS jmp .L_steal_cipher_next_hEgxyDlCngwrfFe
	jmp	.L_steal_cipher_next_hEgxyDlCngwrfFe_BCM_6
.cfi_endproc
.globl aes_hw_xts_decrypt_avx512
.hidden aes_hw_xts_decrypt_avx512
.hidden aes_hw_xts_decrypt_avx512
.type aes_hw_xts_decrypt_avx512,@function
.align 32
.Laes_hw_xts_decrypt_avx512_local_target:
aes_hw_xts_decrypt_avx512:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbp
 movq %rsp,%rbp
 subq $376,%rsp
 andq $0xffffffffffffffc0,%rsp
 movq %rbx,368(%rsp)
 movq $0x87,%r10
 vmovdqu (%r9),%xmm1
 vpxor %xmm4,%xmm4,%xmm4
 vmovdqu (%r8),%xmm0
 vpxor %xmm0,%xmm1,%xmm1

 vmovdqu 224(%rcx),%xmm2
 vmovdqa %xmm2,352(%rsp)

 vmovdqu 16(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 208(%rcx),%xmm2
 vmovdqa %xmm2,336(%rsp)

 vmovdqu 32(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 192(%rcx),%xmm2
 vmovdqa %xmm2,320(%rsp)

 vmovdqu 48(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 176(%rcx),%xmm2
 vmovdqa %xmm2,304(%rsp)

 vmovdqu 64(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 160(%rcx),%xmm2
 vmovdqa %xmm2,288(%rsp)

 vmovdqu 80(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 144(%rcx),%xmm2
 vmovdqa %xmm2,272(%rsp)

 vmovdqu 96(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 128(%rcx),%xmm2
 vmovdqa %xmm2,256(%rsp)

 vmovdqu 112(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 112(%rcx),%xmm2
 vmovdqa %xmm2,240(%rsp)

 vmovdqu 128(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 96(%rcx),%xmm2
 vmovdqa %xmm2,224(%rsp)

 vmovdqu 144(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 80(%rcx),%xmm2
 vmovdqa %xmm2,208(%rsp)

 vmovdqu 160(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 64(%rcx),%xmm2
 vmovdqa %xmm2,192(%rsp)

 vmovdqu 176(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 48(%rcx),%xmm2
 vmovdqa %xmm2,176(%rsp)

 vmovdqu 192(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 32(%rcx),%xmm2
 vmovdqa %xmm2,160(%rsp)

 vmovdqu 208(%r8),%xmm0
.byte 98,242,117,8,220,200

 vmovdqu 16(%rcx),%xmm2
 vmovdqa %xmm2,144(%rsp)

 vmovdqu 224(%r8),%xmm0
.byte 98,242,117,8,221,200

 vmovdqu (%rcx),%xmm2
 vmovdqa %xmm2,128(%rsp)

 vmovdqa %xmm1,(%rsp)

 cmpq $0x80,%rdx
# WAS jb .L_less_than_128_bytes_amivrujEyduiFoi
	jb	.L_less_than_128_bytes_amivrujEyduiFoi_BCM_6
 vpbroadcastq %r10,%zmm25
 cmpq $0x100,%rdx
# WAS jge .L_start_by16_amivrujEyduiFoi
	jge	.L_start_by16_amivrujEyduiFoi_BCM_6
# WAS jmp .L_start_by8_amivrujEyduiFoi
	jmp	.L_start_by8_amivrujEyduiFoi_BCM_6

.L_do_n_blocks_amivrujEyduiFoi_BCM_6:

 cmpq $0x0,%rdx
# WAS je .L_ret_amivrujEyduiFoi
	je	.L_ret_amivrujEyduiFoi_BCM_6
 cmpq $0x70,%rdx
# WAS jge .L_remaining_num_blocks_is_7_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_7_amivrujEyduiFoi_BCM_6
 cmpq $0x60,%rdx
# WAS jge .L_remaining_num_blocks_is_6_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_6_amivrujEyduiFoi_BCM_6
 cmpq $0x50,%rdx
# WAS jge .L_remaining_num_blocks_is_5_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_5_amivrujEyduiFoi_BCM_6
 cmpq $0x40,%rdx
# WAS jge .L_remaining_num_blocks_is_4_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_4_amivrujEyduiFoi_BCM_6
 cmpq $0x30,%rdx
# WAS jge .L_remaining_num_blocks_is_3_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_3_amivrujEyduiFoi_BCM_6
 cmpq $0x20,%rdx
# WAS jge .L_remaining_num_blocks_is_2_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_2_amivrujEyduiFoi_BCM_6
 cmpq $0x10,%rdx
# WAS jge .L_remaining_num_blocks_is_1_amivrujEyduiFoi
	jge	.L_remaining_num_blocks_is_1_amivrujEyduiFoi_BCM_6


 vmovdqu %xmm5,%xmm1

 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqu %xmm1,-16(%rsi)
 vmovdqa %xmm1,%xmm8


 movq $0x1,%r8
 kmovq %r8,%k1
 vpsllq $0x3f,%xmm9,%xmm13
 vpsraq $0x3f,%xmm13,%xmm14
 vpandq %xmm25,%xmm14,%xmm5
 vpxorq %xmm5,%xmm9,%xmm9{%k1}
 vpsrldq $0x8,%xmm9,%xmm10
.byte 98, 211, 181, 8, 115, 194, 1
 vpslldq $0x8,%xmm13,%xmm13
 vpxorq %xmm13,%xmm0,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_7_amivrujEyduiFoi_BCM_6:

 movq $0xffffffffffffffff,%r8
 shrq $0x10,%r8
 kmovq %r8,%k1
 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2{%k1}
 addq $0x70,%rdi
 andq $0xf,%rdx
# WAS je .L_done_7_remain_amivrujEyduiFoi
	je	.L_done_7_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x2,%zmm10,%xmm12
 vextracti32x4 $0x3,%zmm10,%xmm13
 vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi){%k1}
 addq $0x70,%rsi
 vextracti32x4 $0x2,%zmm2,%xmm8
 vmovdqa %xmm12,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_7_remain_amivrujEyduiFoi_BCM_6:


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi){%k1}
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_6_amivrujEyduiFoi_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%ymm2
 addq $0x60,%rdi
 andq $0xf,%rdx
# WAS je .L_done_6_remain_amivrujEyduiFoi
	je	.L_done_6_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x1,%zmm10,%xmm12
 vextracti32x4 $0x2,%zmm10,%xmm13
 vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %ymm2,64(%rsi)
 addq $0x60,%rsi
 vextracti32x4 $0x1,%zmm2,%xmm8
 vmovdqa %xmm12,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_6_remain_amivrujEyduiFoi_BCM_6:


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %ymm2,64(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_5_amivrujEyduiFoi_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu 64(%rdi),%xmm2
 addq $0x50,%rdi
 andq $0xf,%rdx
# WAS je .L_done_5_remain_amivrujEyduiFoi
	je	.L_done_5_remain_amivrujEyduiFoi_BCM_6
 vmovdqa %xmm10,%xmm12
 vextracti32x4 $0x1,%zmm10,%xmm10

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu %xmm2,64(%rsi)
 addq $0x50,%rsi
 vmovdqa %xmm2,%xmm8
 vmovdqa %xmm12,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_5_remain_amivrujEyduiFoi_BCM_6:


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %xmm2,64(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_4_amivrujEyduiFoi_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 addq $0x40,%rdi
 andq $0xf,%rdx
# WAS je .L_done_4_remain_amivrujEyduiFoi
	je	.L_done_4_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x3,%zmm9,%xmm12
 vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 addq $0x40,%rsi
 vextracti32x4 $0x3,%zmm1,%xmm8
 vmovdqa %xmm12,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_4_remain_amivrujEyduiFoi_BCM_6:


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_3_amivrujEyduiFoi_BCM_6:

 vmovdqu (%rdi),%xmm1
 vmovdqu 16(%rdi),%xmm2
 vmovdqu 32(%rdi),%xmm3
 addq $0x30,%rdi
 andq $0xf,%rdx
# WAS je .L_done_3_remain_amivrujEyduiFoi
	je	.L_done_3_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x2,%zmm9,%xmm13
 vextracti32x4 $0x1,%zmm9,%xmm10
 vextracti32x4 $0x3,%zmm9,%xmm11
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 addq $0x30,%rsi
 vmovdqa %xmm3,%xmm8
 vmovdqa %xmm13,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_3_remain_amivrujEyduiFoi_BCM_6:

 vextracti32x4 $0x1,%zmm9,%xmm10
 vextracti32x4 $0x2,%zmm9,%xmm11
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_2_amivrujEyduiFoi_BCM_6:

 vmovdqu (%rdi),%xmm1
 vmovdqu 16(%rdi),%xmm2
 addq $0x20,%rdi
 andq $0xf,%rdx
# WAS je .L_done_2_remain_amivrujEyduiFoi
	je	.L_done_2_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x2,%zmm9,%xmm10
 vextracti32x4 $0x1,%zmm9,%xmm12
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 addq $0x20,%rsi
 vmovdqa %xmm2,%xmm8
 vmovdqa %xmm12,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_2_remain_amivrujEyduiFoi_BCM_6:

 vextracti32x4 $0x1,%zmm9,%xmm10
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_remaining_num_blocks_is_1_amivrujEyduiFoi_BCM_6:

 vmovdqu (%rdi),%xmm1
 addq $0x10,%rdi
 andq $0xf,%rdx
# WAS je .L_done_1_remain_amivrujEyduiFoi
	je	.L_done_1_remain_amivrujEyduiFoi_BCM_6
 vextracti32x4 $0x1,%zmm9,%xmm11
 vpxor %xmm11,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
 vpxor %xmm11,%xmm1,%xmm1
 vmovdqu %xmm1,(%rsi)
 addq $0x10,%rsi
 vmovdqa %xmm1,%xmm8
 vmovdqa %xmm9,%xmm0
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_1_remain_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqu %xmm1,(%rsi)
# WAS jmp .L_ret_amivrujEyduiFoi
	jmp	.L_ret_amivrujEyduiFoi_BCM_6

.L_start_by16_amivrujEyduiFoi_BCM_6:

 vbroadcasti32x4 (%rsp),%zmm0
# WAS vbroadcasti32x4 shufb_15_7(%rip),%zmm8
	vbroadcasti32x4	.Lshufb_15_7_local_target(%rip), %zmm8
 movq $0xaa,%r8
 kmovq %r8,%k2


 vpshufb %zmm8,%zmm0,%zmm1
# WAS vpsllvq const_dq3210(%rip),%zmm0,%zmm4
	vpsllvq	.Lconst_dq3210_local_target(%rip), %zmm0, %zmm4
# WAS vpsrlvq const_dq5678(%rip),%zmm1,%zmm2
	vpsrlvq	.Lconst_dq5678_local_target(%rip), %zmm1, %zmm2
.byte 98,147,109,72,68,217,0
 vpxorq %zmm2,%zmm4,%zmm4{%k2}
 vpxord %zmm4,%zmm3,%zmm9


# WAS vpsllvq const_dq7654(%rip),%zmm0,%zmm5
	vpsllvq	.Lconst_dq7654_local_target(%rip), %zmm0, %zmm5
# WAS vpsrlvq const_dq1234(%rip),%zmm1,%zmm6
	vpsrlvq	.Lconst_dq1234_local_target(%rip), %zmm1, %zmm6
.byte 98,147,77,72,68,249,0
 vpxorq %zmm6,%zmm5,%zmm5{%k2}
 vpxord %zmm5,%zmm7,%zmm10


 vpsrldq $0xf,%zmm9,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm9,%zmm11
 vpxord %zmm14,%zmm11,%zmm11

 vpsrldq $0xf,%zmm10,%zmm15
.byte 98,131,5,72,68,193,0
 vpslldq $0x1,%zmm10,%zmm12
 vpxord %zmm16,%zmm12,%zmm12

.L_main_loop_run_16_amivrujEyduiFoi_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2
 vmovdqu8 128(%rdi),%zmm3
 vmovdqu8 192(%rdi),%zmm4
 vmovdqu8 240(%rdi),%xmm5
 addq $0x100,%rdi
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2
 vpxorq %zmm11,%zmm3,%zmm3
 vpxorq %zmm12,%zmm4,%zmm4
 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vpxorq %zmm0,%zmm3,%zmm3
 vpxorq %zmm0,%zmm4,%zmm4
 vpsrldq $0xf,%zmm11,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm11,%zmm15
 vpxord %zmm14,%zmm15,%zmm15
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vpsrldq $0xf,%zmm12,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm12,%zmm16
 vpxord %zmm14,%zmm16,%zmm16
 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vpsrldq $0xf,%zmm15,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm15,%zmm17
 vpxord %zmm14,%zmm17,%zmm17
 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vpsrldq $0xf,%zmm16,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm16,%zmm18
 vpxord %zmm14,%zmm18,%zmm18
 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
.byte 98,242,101,72,222,216
.byte 98,242,93,72,222,224
 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208
.byte 98,242,101,72,223,216
.byte 98,242,93,72,223,224
 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2
 vpxorq %zmm11,%zmm3,%zmm3
 vpxorq %zmm12,%zmm4,%zmm4

 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqa32 %zmm17,%zmm11
 vmovdqa32 %zmm18,%zmm12
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi)
 vmovdqu8 %zmm3,128(%rsi)
 vmovdqu8 %zmm4,192(%rsi)
 addq $0x100,%rsi
 subq $0x100,%rdx
 cmpq $0x100,%rdx
# WAS jge .L_main_loop_run_16_amivrujEyduiFoi
	jge	.L_main_loop_run_16_amivrujEyduiFoi_BCM_6

 cmpq $0x80,%rdx
# WAS jge .L_main_loop_run_8_amivrujEyduiFoi
	jge	.L_main_loop_run_8_amivrujEyduiFoi_BCM_6
# WAS jmp .L_do_n_blocks_amivrujEyduiFoi
	jmp	.L_do_n_blocks_amivrujEyduiFoi_BCM_6

.L_start_by8_amivrujEyduiFoi_BCM_6:


 vbroadcasti32x4 (%rsp),%zmm0
# WAS vbroadcasti32x4 shufb_15_7(%rip),%zmm8
	vbroadcasti32x4	.Lshufb_15_7_local_target(%rip), %zmm8
 movq $0xaa,%r8
 kmovq %r8,%k2


 vpshufb %zmm8,%zmm0,%zmm1
# WAS vpsllvq const_dq3210(%rip),%zmm0,%zmm4
	vpsllvq	.Lconst_dq3210_local_target(%rip), %zmm0, %zmm4
# WAS vpsrlvq const_dq5678(%rip),%zmm1,%zmm2
	vpsrlvq	.Lconst_dq5678_local_target(%rip), %zmm1, %zmm2
.byte 98,147,109,72,68,217,0
 vpxorq %zmm2,%zmm4,%zmm4{%k2}
 vpxord %zmm4,%zmm3,%zmm9


# WAS vpsllvq const_dq7654(%rip),%zmm0,%zmm5
	vpsllvq	.Lconst_dq7654_local_target(%rip), %zmm0, %zmm5
# WAS vpsrlvq const_dq1234(%rip),%zmm1,%zmm6
	vpsrlvq	.Lconst_dq1234_local_target(%rip), %zmm1, %zmm6
.byte 98,147,77,72,68,249,0
 vpxorq %zmm6,%zmm5,%zmm5{%k2}
 vpxord %zmm5,%zmm7,%zmm10

.L_main_loop_run_8_amivrujEyduiFoi_BCM_6:

 vmovdqu8 (%rdi),%zmm1
 vmovdqu8 64(%rdi),%zmm2
 vmovdqu8 112(%rdi),%xmm5
 addq $0x80,%rdi

 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vbroadcasti32x4 128(%rsp),%zmm0
 vpxorq %zmm0,%zmm1,%zmm1
 vpxorq %zmm0,%zmm2,%zmm2
 vpsrldq $0xf,%zmm9,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm9,%zmm15
 vpxord %zmm14,%zmm15,%zmm15
 vbroadcasti32x4 144(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 160(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 176(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208
 vpsrldq $0xf,%zmm10,%zmm13
.byte 98,19,21,72,68,241,0
 vpslldq $0x1,%zmm10,%zmm16
 vpxord %zmm14,%zmm16,%zmm16

 vbroadcasti32x4 192(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 208(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 224(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 240(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 256(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 272(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 288(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 304(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 320(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 336(%rsp),%zmm0
.byte 98,242,117,72,222,200
.byte 98,242,109,72,222,208


 vbroadcasti32x4 352(%rsp),%zmm0
.byte 98,242,117,72,223,200
.byte 98,242,109,72,223,208


 vpxorq %zmm9,%zmm1,%zmm1
 vpxorq %zmm10,%zmm2,%zmm2


 vmovdqa32 %zmm15,%zmm9
 vmovdqa32 %zmm16,%zmm10
 vmovdqu8 %zmm1,(%rsi)
 vmovdqu8 %zmm2,64(%rsi)
 addq $0x80,%rsi
 subq $0x80,%rdx
 cmpq $0x80,%rdx
# WAS jge .L_main_loop_run_8_amivrujEyduiFoi
	jge	.L_main_loop_run_8_amivrujEyduiFoi_BCM_6
# WAS jmp .L_do_n_blocks_amivrujEyduiFoi
	jmp	.L_do_n_blocks_amivrujEyduiFoi_BCM_6

.L_steal_cipher_amivrujEyduiFoi_BCM_6:


 vmovdqa %xmm8,%xmm2


# WAS leaq vpshufb_shf_table(%rip),%rax
	leaq	.Lvpshufb_shf_table_local_target(%rip), %rax
 vmovdqu (%rax,%rdx,1),%xmm10
 vpshufb %xmm10,%xmm8,%xmm8


 vmovdqu -16(%rdi,%rdx,1),%xmm3
 vmovdqu %xmm8,-16(%rsi,%rdx,1)


# WAS leaq vpshufb_shf_table(%rip),%rax
	leaq	.Lvpshufb_shf_table_local_target(%rip), %rax
 addq $16,%rax
 subq %rdx,%rax
 vmovdqu (%rax),%xmm10
# WAS vpxor mask1(%rip),%xmm10,%xmm10
	vpxor	.Lmask1_local_target(%rip), %xmm10, %xmm10
 vpshufb %xmm10,%xmm3,%xmm3

 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3


 vpxor %xmm0,%xmm3,%xmm8


 vpxor 128(%rsp),%xmm8,%xmm8
.byte 98,114,61,8,222,132,36,144,0,0,0
.byte 98,114,61,8,222,132,36,160,0,0,0
.byte 98,114,61,8,222,132,36,176,0,0,0
.byte 98,114,61,8,222,132,36,192,0,0,0
.byte 98,114,61,8,222,132,36,208,0,0,0
.byte 98,114,61,8,222,132,36,224,0,0,0
.byte 98,114,61,8,222,132,36,240,0,0,0
.byte 98,114,61,8,222,132,36,0,1,0,0
.byte 98,114,61,8,222,132,36,16,1,0,0
.byte 98,114,61,8,222,132,36,32,1,0,0
.byte 98,114,61,8,222,132,36,48,1,0,0
.byte 98,114,61,8,222,132,36,64,1,0,0
.byte 98,114,61,8,222,132,36,80,1,0,0
.byte 98,114,61,8,223,132,36,96,1,0,0


 vpxor %xmm0,%xmm8,%xmm8

.L_done_amivrujEyduiFoi_BCM_6:


 vmovdqu %xmm8,-16(%rsi)
.L_ret_amivrujEyduiFoi_BCM_6:

 movq 368(%rsp),%rbx
 xorq %r8,%r8
 movq %r8,368(%rsp)

 vpxorq %zmm0,%zmm0,%zmm0

 vmovdqa64 %zmm0,128(%rsp)
 vmovdqa64 %zmm0,192(%rsp)
 vmovdqa64 %zmm0,256(%rsp)



 movq $0x3f,%r8
 kmovq %r8,%k2
 vmovdqa64 %zmm0,320(%rsp){%k2}

 movq %rbp,%rsp
 popq %rbp
 vzeroupper
 .byte 0xf3,0xc3

.L_less_than_128_bytes_amivrujEyduiFoi_BCM_6:

 cmpq $0x10,%rdx
# WAS jb .L_ret_amivrujEyduiFoi
	jb	.L_ret_amivrujEyduiFoi_BCM_6

 movq %rdx,%r8
 andq $0x70,%r8
 cmpq $0x60,%r8
# WAS je .L_num_blocks_is_6_amivrujEyduiFoi
	je	.L_num_blocks_is_6_amivrujEyduiFoi_BCM_6
 cmpq $0x50,%r8
# WAS je .L_num_blocks_is_5_amivrujEyduiFoi
	je	.L_num_blocks_is_5_amivrujEyduiFoi_BCM_6
 cmpq $0x40,%r8
# WAS je .L_num_blocks_is_4_amivrujEyduiFoi
	je	.L_num_blocks_is_4_amivrujEyduiFoi_BCM_6
 cmpq $0x30,%r8
# WAS je .L_num_blocks_is_3_amivrujEyduiFoi
	je	.L_num_blocks_is_3_amivrujEyduiFoi_BCM_6
 cmpq $0x20,%r8
# WAS je .L_num_blocks_is_2_amivrujEyduiFoi
	je	.L_num_blocks_is_2_amivrujEyduiFoi_BCM_6
 cmpq $0x10,%r8
# WAS je .L_num_blocks_is_1_amivrujEyduiFoi
	je	.L_num_blocks_is_1_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_7_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,80(%rsp)
 movq %rbx,88(%rsp)
 vmovdqa 80(%rsp),%xmm14
 vmovdqu 80(%rdi),%xmm6
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,96(%rsp)
 movq %rbx,104(%rsp)
 vmovdqa 96(%rsp),%xmm15
 vmovdqu 96(%rdi),%xmm7
 addq $0x70,%rdi
 andq $0xf,%rdx
# WAS je .L_done_7_amivrujEyduiFoi
	je	.L_done_7_amivrujEyduiFoi_BCM_6

.L_steal_cipher_7_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm15,%xmm16
 vmovdqa 16(%rsp),%xmm15
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vpxor %xmm0,%xmm7,%xmm7
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
.byte 98,242,77,8,223,240
.byte 98,242,69,8,223,248
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 vmovdqu %xmm6,80(%rsi)
 addq $0x70,%rsi
 vmovdqa64 %xmm16,%xmm0
 vmovdqa %xmm7,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_7_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vpxor %xmm0,%xmm7,%xmm7
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
.byte 98,242,69,8,222,248
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
.byte 98,242,77,8,223,240
.byte 98,242,69,8,223,248
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vpxor %xmm15,%xmm7,%xmm7
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 vmovdqu %xmm6,80(%rsi)
 addq $0x70,%rsi
 vmovdqa %xmm7,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_6_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,80(%rsp)
 movq %rbx,88(%rsp)
 vmovdqa 80(%rsp),%xmm14
 vmovdqu 80(%rdi),%xmm6
 addq $0x60,%rdi
 andq $0xf,%rdx
# WAS je .L_done_6_amivrujEyduiFoi
	je	.L_done_6_amivrujEyduiFoi_BCM_6

.L_steal_cipher_6_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm14,%xmm15
 vmovdqa 16(%rsp),%xmm14
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
.byte 98,242,77,8,223,240
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 addq $0x60,%rsi
 vmovdqa %xmm15,%xmm0
 vmovdqa %xmm6,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_6_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vpxor %xmm0,%xmm6,%xmm6
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
.byte 98,242,77,8,222,240
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
.byte 98,242,77,8,223,240
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vpxor %xmm14,%xmm6,%xmm6
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 vmovdqu %xmm5,64(%rsi)
 addq $0x60,%rsi
 vmovdqa %xmm6,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_5_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,64(%rsp)
 movq %rbx,72(%rsp)
 vmovdqa 64(%rsp),%xmm13
 vmovdqu 64(%rdi),%xmm5
 addq $0x50,%rdi
 andq $0xf,%rdx
# WAS je .L_done_5_amivrujEyduiFoi
	je	.L_done_5_amivrujEyduiFoi_BCM_6

.L_steal_cipher_5_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm13,%xmm14
 vmovdqa 16(%rsp),%xmm13
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 addq $0x50,%rsi
 vmovdqa %xmm14,%xmm0
 vmovdqa %xmm5,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_5_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vpxor %xmm0,%xmm5,%xmm5
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
.byte 98,242,85,8,222,232
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
.byte 98,242,85,8,223,232
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vpxor %xmm13,%xmm5,%xmm5
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 vmovdqu %xmm4,48(%rsi)
 addq $0x50,%rsi
 vmovdqa %xmm5,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_4_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 vmovdqa 48(%rsp),%xmm12
 vmovdqu 48(%rdi),%xmm4
 addq $0x40,%rdi
 andq $0xf,%rdx
# WAS je .L_done_4_amivrujEyduiFoi
	je	.L_done_4_amivrujEyduiFoi_BCM_6

.L_steal_cipher_4_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm12,%xmm13
 vmovdqa 16(%rsp),%xmm12
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 addq $0x40,%rsi
 vmovdqa %xmm13,%xmm0
 vmovdqa %xmm4,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_4_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm0,%xmm4,%xmm4
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
.byte 98,242,93,8,222,224
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
.byte 98,242,93,8,223,224
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vpxor %xmm12,%xmm4,%xmm4
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 vmovdqu %xmm3,32(%rsi)
 addq $0x40,%rsi
 vmovdqa %xmm4,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_3_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,32(%rsp)
 movq %rbx,40(%rsp)
 vmovdqa 32(%rsp),%xmm11
 vmovdqu 32(%rdi),%xmm3
 addq $0x30,%rdi
 andq $0xf,%rdx
# WAS je .L_done_3_amivrujEyduiFoi
	je	.L_done_3_amivrujEyduiFoi_BCM_6

.L_steal_cipher_3_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm11,%xmm12
 vmovdqa 16(%rsp),%xmm11
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 addq $0x30,%rsi
 vmovdqa %xmm12,%xmm0
 vmovdqa %xmm3,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_3_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vpxor %xmm0,%xmm3,%xmm3
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
.byte 98,242,101,8,222,216
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
.byte 98,242,101,8,223,216
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vpxor %xmm11,%xmm3,%xmm3
 vmovdqu %xmm1,(%rsi)
 vmovdqu %xmm2,16(%rsi)
 addq $0x30,%rsi
 vmovdqa %xmm3,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_2_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa 16(%rsp),%xmm10
 vmovdqu 16(%rdi),%xmm2
 addq $0x20,%rdi
 andq $0xf,%rdx
# WAS je .L_done_2_amivrujEyduiFoi
	je	.L_done_2_amivrujEyduiFoi_BCM_6

.L_steal_cipher_2_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm10,%xmm11
 vmovdqa 16(%rsp),%xmm10
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 addq $0x20,%rsi
 vmovdqa %xmm11,%xmm0
 vmovdqa %xmm2,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_2_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm0,%xmm2,%xmm2
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
.byte 98,242,109,8,222,208
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
.byte 98,242,109,8,223,208
 vpxor %xmm9,%xmm1,%xmm1
 vpxor %xmm10,%xmm2,%xmm2
 vmovdqu %xmm1,(%rsi)
 addq $0x20,%rsi
 vmovdqa %xmm2,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6

.L_num_blocks_is_1_amivrujEyduiFoi_BCM_6:

 vmovdqa 0(%rsp),%xmm9
 movq 0(%rsp),%rax
 movq 8(%rsp),%rbx
 vmovdqu 0(%rdi),%xmm1
 addq $0x10,%rdi
 andq $0xf,%rdx
# WAS je .L_done_1_amivrujEyduiFoi
	je	.L_done_1_amivrujEyduiFoi_BCM_6

.L_steal_cipher_1_amivrujEyduiFoi_BCM_6:

 xorq %r11,%r11
 shlq $1,%rax
 adcq %rbx,%rbx
 cmovcq %r10,%r11
 xorq %r11,%rax
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 vmovdqa64 %xmm9,%xmm10
 vmovdqa 16(%rsp),%xmm9
 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
 vpxor %xmm9,%xmm1,%xmm1
 addq $0x10,%rsi
 vmovdqa %xmm10,%xmm0
 vmovdqa %xmm1,%xmm8
# WAS jmp .L_steal_cipher_amivrujEyduiFoi
	jmp	.L_steal_cipher_amivrujEyduiFoi_BCM_6

.L_done_1_amivrujEyduiFoi_BCM_6:

 vpxor %xmm9,%xmm1,%xmm1
 vmovdqa 128(%rsp),%xmm0
 vpxor %xmm0,%xmm1,%xmm1
 vmovdqa 144(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 160(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 176(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 192(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 208(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 224(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 240(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 256(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 272(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 288(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 304(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 320(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 336(%rsp),%xmm0
.byte 98,242,117,8,222,200
 vmovdqa 352(%rsp),%xmm0
.byte 98,242,117,8,223,200
 vpxor %xmm9,%xmm1,%xmm1
 addq $0x10,%rsi
 vmovdqa %xmm1,%xmm8
# WAS jmp .L_done_amivrujEyduiFoi
	jmp	.L_done_amivrujEyduiFoi_BCM_6
.cfi_endproc
# WAS .section .rodata
.text
.align 16

.Lvpshufb_shf_table_local_target:
vpshufb_shf_table:
.quad 0x8786858483828100, 0x8f8e8d8c8b8a8988
.quad 0x0706050403020100, 0x000e0d0c0b0a0908

.Lmask1_local_target:
mask1:
.quad 0x8080808080808080, 0x8080808080808080

.Lconst_dq3210_local_target:
const_dq3210:
.quad 0, 0, 1, 1, 2, 2, 3, 3
.Lconst_dq5678_local_target:
const_dq5678:
.quad 8, 8, 7, 7, 6, 6, 5, 5
.Lconst_dq7654_local_target:
const_dq7654:
.quad 4, 4, 5, 5, 6, 6, 7, 7
.Lconst_dq1234_local_target:
const_dq1234:
.quad 4, 4, 3, 3, 2, 2, 1, 1

.Lshufb_15_7_local_target:
shufb_15_7:
.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff

.text
# 0 "aesni-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "aesni-x86_64.S"



#include <openssl/asm_base.h>
# 4 "aesni-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "aesni-x86_64.S" 2


.text
.extern OPENSSL_ia32cap_P
.hidden OPENSSL_ia32cap_P
.globl aes_hw_encrypt
.hidden aes_hw_encrypt
.type aes_hw_encrypt,@function
.align 16
.Laes_hw_encrypt_local_target:
aes_hw_encrypt:
.cfi_startproc
endbr64





 movups (%rdi),%xmm2
 movl 240(%rdx),%eax
 movups (%rdx),%xmm0
 movups 16(%rdx),%xmm1
 leaq 32(%rdx),%rdx
 xorps %xmm0,%xmm2
.Loop_enc1_1_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%rdx),%xmm1
 leaq 16(%rdx),%rdx
# WAS jnz .Loop_enc1_1
	jnz	.Loop_enc1_1_BCM_7
.byte 102,15,56,221,209
 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_encrypt,.-aes_hw_encrypt

.globl aes_hw_decrypt
.hidden aes_hw_decrypt
.type aes_hw_decrypt,@function
.align 16
.Laes_hw_decrypt_local_target:
aes_hw_decrypt:
.cfi_startproc
endbr64
 movups (%rdi),%xmm2
 movl 240(%rdx),%eax
 movups (%rdx),%xmm0
 movups 16(%rdx),%xmm1
 leaq 32(%rdx),%rdx
 xorps %xmm0,%xmm2
.Loop_dec1_2_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rdx),%xmm1
 leaq 16(%rdx),%rdx
# WAS jnz .Loop_dec1_2
	jnz	.Loop_dec1_2_BCM_7
.byte 102,15,56,223,209
 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_decrypt, .-aes_hw_decrypt
.type _aesni_encrypt2,@function
.align 16
.L_aesni_encrypt2_local_target:
_aesni_encrypt2:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
 addq $16,%rax

.Lenc_loop2_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,220,208
.byte 102,15,56,220,216
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Lenc_loop2
	jnz	.Lenc_loop2_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,221,208
.byte 102,15,56,221,216
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_encrypt2,.-_aesni_encrypt2
.type _aesni_decrypt2,@function
.align 16
.L_aesni_decrypt2_local_target:
_aesni_decrypt2:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
 addq $16,%rax

.Ldec_loop2_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Ldec_loop2
	jnz	.Ldec_loop2_BCM_7

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,223,208
.byte 102,15,56,223,216
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_decrypt2,.-_aesni_decrypt2
.type _aesni_encrypt3,@function
.align 16
.L_aesni_encrypt3_local_target:
_aesni_encrypt3:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 xorps %xmm0,%xmm4
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
 addq $16,%rax

.Lenc_loop3_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Lenc_loop3
	jnz	.Lenc_loop3_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,221,208
.byte 102,15,56,221,216
.byte 102,15,56,221,224
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_encrypt3,.-_aesni_encrypt3
.type _aesni_decrypt3,@function
.align 16
.L_aesni_decrypt3_local_target:
_aesni_decrypt3:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 xorps %xmm0,%xmm4
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
 addq $16,%rax

.Ldec_loop3_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Ldec_loop3
	jnz	.Ldec_loop3_BCM_7

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,223,208
.byte 102,15,56,223,216
.byte 102,15,56,223,224
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_decrypt3,.-_aesni_decrypt3
.type _aesni_encrypt4,@function
.align 16
.L_aesni_encrypt4_local_target:
_aesni_encrypt4:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 xorps %xmm0,%xmm4
 xorps %xmm0,%xmm5
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 0x0f,0x1f,0x00
 addq $16,%rax

.Lenc_loop4_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Lenc_loop4
	jnz	.Lenc_loop4_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,221,208
.byte 102,15,56,221,216
.byte 102,15,56,221,224
.byte 102,15,56,221,232
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_encrypt4,.-_aesni_encrypt4
.type _aesni_decrypt4,@function
.align 16
.L_aesni_decrypt4_local_target:
_aesni_decrypt4:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 xorps %xmm0,%xmm4
 xorps %xmm0,%xmm5
 movups 32(%rcx),%xmm0
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 0x0f,0x1f,0x00
 addq $16,%rax

.Ldec_loop4_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Ldec_loop4
	jnz	.Ldec_loop4_BCM_7

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,223,208
.byte 102,15,56,223,216
.byte 102,15,56,223,224
.byte 102,15,56,223,232
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_decrypt4,.-_aesni_decrypt4
.type _aesni_encrypt6,@function
.align 16
.L_aesni_encrypt6_local_target:
_aesni_encrypt6:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 pxor %xmm0,%xmm3
 pxor %xmm0,%xmm4
.byte 102,15,56,220,209
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 102,15,56,220,217
 pxor %xmm0,%xmm5
 pxor %xmm0,%xmm6
.byte 102,15,56,220,225
 pxor %xmm0,%xmm7
 movups (%rcx,%rax,1),%xmm0
 addq $16,%rax
# WAS jmp .Lenc_loop6_enter
	jmp	.Lenc_loop6_enter_BCM_7
.align 16
.Lenc_loop6_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.Lenc_loop6_enter_BCM_7:

.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Lenc_loop6
	jnz	.Lenc_loop6_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,15,56,221,208
.byte 102,15,56,221,216
.byte 102,15,56,221,224
.byte 102,15,56,221,232
.byte 102,15,56,221,240
.byte 102,15,56,221,248
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_encrypt6,.-_aesni_encrypt6
.type _aesni_decrypt6,@function
.align 16
.L_aesni_decrypt6_local_target:
_aesni_decrypt6:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 pxor %xmm0,%xmm3
 pxor %xmm0,%xmm4
.byte 102,15,56,222,209
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 102,15,56,222,217
 pxor %xmm0,%xmm5
 pxor %xmm0,%xmm6
.byte 102,15,56,222,225
 pxor %xmm0,%xmm7
 movups (%rcx,%rax,1),%xmm0
 addq $16,%rax
# WAS jmp .Ldec_loop6_enter
	jmp	.Ldec_loop6_enter_BCM_7
.align 16
.Ldec_loop6_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.Ldec_loop6_enter_BCM_7:

.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Ldec_loop6
	jnz	.Ldec_loop6_BCM_7

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,15,56,223,208
.byte 102,15,56,223,216
.byte 102,15,56,223,224
.byte 102,15,56,223,232
.byte 102,15,56,223,240
.byte 102,15,56,223,248
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_decrypt6,.-_aesni_decrypt6
.type _aesni_encrypt8,@function
.align 16
.L_aesni_encrypt8_local_target:
_aesni_encrypt8:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 pxor %xmm0,%xmm4
 pxor %xmm0,%xmm5
 pxor %xmm0,%xmm6
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 102,15,56,220,209
 pxor %xmm0,%xmm7
 pxor %xmm0,%xmm8
.byte 102,15,56,220,217
 pxor %xmm0,%xmm9
 movups (%rcx,%rax,1),%xmm0
 addq $16,%rax
# WAS jmp .Lenc_loop8_inner
	jmp	.Lenc_loop8_inner_BCM_7
.align 16
.Lenc_loop8_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.Lenc_loop8_inner_BCM_7:

.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
.Lenc_loop8_enter_BCM_7:

 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Lenc_loop8
	jnz	.Lenc_loop8_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
.byte 102,15,56,221,208
.byte 102,15,56,221,216
.byte 102,15,56,221,224
.byte 102,15,56,221,232
.byte 102,15,56,221,240
.byte 102,15,56,221,248
.byte 102,68,15,56,221,192
.byte 102,68,15,56,221,200
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_encrypt8,.-_aesni_encrypt8
.type _aesni_decrypt8,@function
.align 16
.L_aesni_decrypt8_local_target:
_aesni_decrypt8:
.cfi_startproc
 movups (%rcx),%xmm0
 shll $4,%eax
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm2
 xorps %xmm0,%xmm3
 pxor %xmm0,%xmm4
 pxor %xmm0,%xmm5
 pxor %xmm0,%xmm6
 leaq 32(%rcx,%rax,1),%rcx
 negq %rax
.byte 102,15,56,222,209
 pxor %xmm0,%xmm7
 pxor %xmm0,%xmm8
.byte 102,15,56,222,217
 pxor %xmm0,%xmm9
 movups (%rcx,%rax,1),%xmm0
 addq $16,%rax
# WAS jmp .Ldec_loop8_inner
	jmp	.Ldec_loop8_inner_BCM_7
.align 16
.Ldec_loop8_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.Ldec_loop8_inner_BCM_7:

.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
.Ldec_loop8_enter_BCM_7:

 movups (%rcx,%rax,1),%xmm1
 addq $32,%rax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups -16(%rcx,%rax,1),%xmm0
# WAS jnz .Ldec_loop8
	jnz	.Ldec_loop8_BCM_7

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
.byte 102,15,56,223,208
.byte 102,15,56,223,216
.byte 102,15,56,223,224
.byte 102,15,56,223,232
.byte 102,15,56,223,240
.byte 102,15,56,223,248
.byte 102,68,15,56,223,192
.byte 102,68,15,56,223,200
 .byte 0xf3,0xc3
.cfi_endproc
.size _aesni_decrypt8,.-_aesni_decrypt8
.globl aes_hw_ecb_encrypt
.hidden aes_hw_ecb_encrypt
.type aes_hw_ecb_encrypt,@function
.align 16
.Laes_hw_ecb_encrypt_local_target:
aes_hw_ecb_encrypt:
.cfi_startproc
endbr64
 andq $-16,%rdx
# WAS jz .Lecb_ret
	jz	.Lecb_ret_BCM_7

 movl 240(%rcx),%eax
 movups (%rcx),%xmm0
 movq %rcx,%r11
 movl %eax,%r10d
 testl %r8d,%r8d
# WAS jz .Lecb_decrypt
	jz	.Lecb_decrypt_BCM_7

 cmpq $0x80,%rdx
# WAS jb .Lecb_enc_tail
	jb	.Lecb_enc_tail_BCM_7

 movdqu (%rdi),%xmm2
 movdqu 16(%rdi),%xmm3
 movdqu 32(%rdi),%xmm4
 movdqu 48(%rdi),%xmm5
 movdqu 64(%rdi),%xmm6
 movdqu 80(%rdi),%xmm7
 movdqu 96(%rdi),%xmm8
 movdqu 112(%rdi),%xmm9
 leaq 128(%rdi),%rdi
 subq $0x80,%rdx
# WAS jmp .Lecb_enc_loop8_enter
	jmp	.Lecb_enc_loop8_enter_BCM_7
.align 16
.Lecb_enc_loop8_BCM_7:

 movups %xmm2,(%rsi)
 movq %r11,%rcx
 movdqu (%rdi),%xmm2
 movl %r10d,%eax
 movups %xmm3,16(%rsi)
 movdqu 16(%rdi),%xmm3
 movups %xmm4,32(%rsi)
 movdqu 32(%rdi),%xmm4
 movups %xmm5,48(%rsi)
 movdqu 48(%rdi),%xmm5
 movups %xmm6,64(%rsi)
 movdqu 64(%rdi),%xmm6
 movups %xmm7,80(%rsi)
 movdqu 80(%rdi),%xmm7
 movups %xmm8,96(%rsi)
 movdqu 96(%rdi),%xmm8
 movups %xmm9,112(%rsi)
 leaq 128(%rsi),%rsi
 movdqu 112(%rdi),%xmm9
 leaq 128(%rdi),%rdi
.Lecb_enc_loop8_enter_BCM_7:


# WAS call _aesni_encrypt8
	call	.L_aesni_encrypt8_local_target

 subq $0x80,%rdx
# WAS jnc .Lecb_enc_loop8
	jnc	.Lecb_enc_loop8_BCM_7

 movups %xmm2,(%rsi)
 movq %r11,%rcx
 movups %xmm3,16(%rsi)
 movl %r10d,%eax
 movups %xmm4,32(%rsi)
 movups %xmm5,48(%rsi)
 movups %xmm6,64(%rsi)
 movups %xmm7,80(%rsi)
 movups %xmm8,96(%rsi)
 movups %xmm9,112(%rsi)
 leaq 128(%rsi),%rsi
 addq $0x80,%rdx
# WAS jz .Lecb_ret
	jz	.Lecb_ret_BCM_7

.Lecb_enc_tail_BCM_7:

 movups (%rdi),%xmm2
 cmpq $0x20,%rdx
# WAS jb .Lecb_enc_one
	jb	.Lecb_enc_one_BCM_7
 movups 16(%rdi),%xmm3
# WAS je .Lecb_enc_two
	je	.Lecb_enc_two_BCM_7
 movups 32(%rdi),%xmm4
 cmpq $0x40,%rdx
# WAS jb .Lecb_enc_three
	jb	.Lecb_enc_three_BCM_7
 movups 48(%rdi),%xmm5
# WAS je .Lecb_enc_four
	je	.Lecb_enc_four_BCM_7
 movups 64(%rdi),%xmm6
 cmpq $0x60,%rdx
# WAS jb .Lecb_enc_five
	jb	.Lecb_enc_five_BCM_7
 movups 80(%rdi),%xmm7
# WAS je .Lecb_enc_six
	je	.Lecb_enc_six_BCM_7
 movdqu 96(%rdi),%xmm8
 xorps %xmm9,%xmm9
# WAS call _aesni_encrypt8
	call	.L_aesni_encrypt8_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 movups %xmm5,48(%rsi)
 movups %xmm6,64(%rsi)
 movups %xmm7,80(%rsi)
 movups %xmm8,96(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_one_BCM_7:

 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_enc1_3_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_enc1_3
	jnz	.Loop_enc1_3_BCM_7
.byte 102,15,56,221,209
 movups %xmm2,(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_two_BCM_7:

# WAS call _aesni_encrypt2
	call	.L_aesni_encrypt2_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_three_BCM_7:

# WAS call _aesni_encrypt3
	call	.L_aesni_encrypt3_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_four_BCM_7:

# WAS call _aesni_encrypt4
	call	.L_aesni_encrypt4_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 movups %xmm5,48(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_five_BCM_7:

 xorps %xmm7,%xmm7
# WAS call _aesni_encrypt6
	call	.L_aesni_encrypt6_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 movups %xmm5,48(%rsi)
 movups %xmm6,64(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_enc_six_BCM_7:

# WAS call _aesni_encrypt6
	call	.L_aesni_encrypt6_local_target
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 movups %xmm5,48(%rsi)
 movups %xmm6,64(%rsi)
 movups %xmm7,80(%rsi)
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7

.align 16
.Lecb_decrypt_BCM_7:

 cmpq $0x80,%rdx
# WAS jb .Lecb_dec_tail
	jb	.Lecb_dec_tail_BCM_7

 movdqu (%rdi),%xmm2
 movdqu 16(%rdi),%xmm3
 movdqu 32(%rdi),%xmm4
 movdqu 48(%rdi),%xmm5
 movdqu 64(%rdi),%xmm6
 movdqu 80(%rdi),%xmm7
 movdqu 96(%rdi),%xmm8
 movdqu 112(%rdi),%xmm9
 leaq 128(%rdi),%rdi
 subq $0x80,%rdx
# WAS jmp .Lecb_dec_loop8_enter
	jmp	.Lecb_dec_loop8_enter_BCM_7
.align 16
.Lecb_dec_loop8_BCM_7:

 movups %xmm2,(%rsi)
 movq %r11,%rcx
 movdqu (%rdi),%xmm2
 movl %r10d,%eax
 movups %xmm3,16(%rsi)
 movdqu 16(%rdi),%xmm3
 movups %xmm4,32(%rsi)
 movdqu 32(%rdi),%xmm4
 movups %xmm5,48(%rsi)
 movdqu 48(%rdi),%xmm5
 movups %xmm6,64(%rsi)
 movdqu 64(%rdi),%xmm6
 movups %xmm7,80(%rsi)
 movdqu 80(%rdi),%xmm7
 movups %xmm8,96(%rsi)
 movdqu 96(%rdi),%xmm8
 movups %xmm9,112(%rsi)
 leaq 128(%rsi),%rsi
 movdqu 112(%rdi),%xmm9
 leaq 128(%rdi),%rdi
.Lecb_dec_loop8_enter_BCM_7:


# WAS call _aesni_decrypt8
	call	.L_aesni_decrypt8_local_target

 movups (%r11),%xmm0
 subq $0x80,%rdx
# WAS jnc .Lecb_dec_loop8
	jnc	.Lecb_dec_loop8_BCM_7

 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movq %r11,%rcx
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movl %r10d,%eax
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movups %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 movups %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 movups %xmm7,80(%rsi)
 pxor %xmm7,%xmm7
 movups %xmm8,96(%rsi)
 pxor %xmm8,%xmm8
 movups %xmm9,112(%rsi)
 pxor %xmm9,%xmm9
 leaq 128(%rsi),%rsi
 addq $0x80,%rdx
# WAS jz .Lecb_ret
	jz	.Lecb_ret_BCM_7

.Lecb_dec_tail_BCM_7:

 movups (%rdi),%xmm2
 cmpq $0x20,%rdx
# WAS jb .Lecb_dec_one
	jb	.Lecb_dec_one_BCM_7
 movups 16(%rdi),%xmm3
# WAS je .Lecb_dec_two
	je	.Lecb_dec_two_BCM_7
 movups 32(%rdi),%xmm4
 cmpq $0x40,%rdx
# WAS jb .Lecb_dec_three
	jb	.Lecb_dec_three_BCM_7
 movups 48(%rdi),%xmm5
# WAS je .Lecb_dec_four
	je	.Lecb_dec_four_BCM_7
 movups 64(%rdi),%xmm6
 cmpq $0x60,%rdx
# WAS jb .Lecb_dec_five
	jb	.Lecb_dec_five_BCM_7
 movups 80(%rdi),%xmm7
# WAS je .Lecb_dec_six
	je	.Lecb_dec_six_BCM_7
 movups 96(%rdi),%xmm8
 movups (%rcx),%xmm0
 xorps %xmm9,%xmm9
# WAS call _aesni_decrypt8
	call	.L_aesni_decrypt8_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movups %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 movups %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 movups %xmm7,80(%rsi)
 pxor %xmm7,%xmm7
 movups %xmm8,96(%rsi)
 pxor %xmm8,%xmm8
 pxor %xmm9,%xmm9
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_one_BCM_7:

 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_4_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_4
	jnz	.Loop_dec1_4_BCM_7
.byte 102,15,56,223,209
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_two_BCM_7:

# WAS call _aesni_decrypt2
	call	.L_aesni_decrypt2_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_three_BCM_7:

# WAS call _aesni_decrypt3
	call	.L_aesni_decrypt3_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_four_BCM_7:

# WAS call _aesni_decrypt4
	call	.L_aesni_decrypt4_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movups %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_five_BCM_7:

 xorps %xmm7,%xmm7
# WAS call _aesni_decrypt6
	call	.L_aesni_decrypt6_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movups %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 movups %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
# WAS jmp .Lecb_ret
	jmp	.Lecb_ret_BCM_7
.align 16
.Lecb_dec_six_BCM_7:

# WAS call _aesni_decrypt6
	call	.L_aesni_decrypt6_local_target
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
 movups %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movups %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movups %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 movups %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 movups %xmm7,80(%rsi)
 pxor %xmm7,%xmm7

.Lecb_ret_BCM_7:

 xorps %xmm0,%xmm0
 pxor %xmm1,%xmm1
 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_ecb_encrypt,.-aes_hw_ecb_encrypt
.globl aes_hw_ctr32_encrypt_blocks
.hidden aes_hw_ctr32_encrypt_blocks
.type aes_hw_ctr32_encrypt_blocks,@function
.align 16
.Laes_hw_ctr32_encrypt_blocks_local_target:
aes_hw_ctr32_encrypt_blocks:
.cfi_startproc
endbr64



 cmpq $1,%rdx
# WAS jb .Lctr32_epilogue
	jb	.Lctr32_epilogue_BCM_7
# WAS jne .Lctr32_bulk
	jne	.Lctr32_bulk_BCM_7



 movups (%r8),%xmm2
 movups (%rdi),%xmm3
 movl 240(%rcx),%edx
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_enc1_5_BCM_7:

.byte 102,15,56,220,209
 decl %edx
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_enc1_5
	jnz	.Loop_enc1_5_BCM_7
.byte 102,15,56,221,209
 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 xorps %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movups %xmm2,(%rsi)
 xorps %xmm2,%xmm2
# WAS jmp .Lctr32_epilogue
	jmp	.Lctr32_epilogue_BCM_7

.align 16
.Lctr32_bulk_BCM_7:

 leaq (%rsp),%r11
.cfi_def_cfa_register %r11
 pushq %rbp
.cfi_offset %rbp,-16
 subq $128,%rsp
 andq $-16,%rsp




 movdqu (%r8),%xmm2
 movdqu (%rcx),%xmm0
 movl 12(%r8),%r8d
 pxor %xmm0,%xmm2
 movl 12(%rcx),%ebp
 movdqa %xmm2,0(%rsp)
 bswapl %r8d
 movdqa %xmm2,%xmm3
 movdqa %xmm2,%xmm4
 movdqa %xmm2,%xmm5
 movdqa %xmm2,64(%rsp)
 movdqa %xmm2,80(%rsp)
 movdqa %xmm2,96(%rsp)
 movq %rdx,%r10
 movdqa %xmm2,112(%rsp)

 leaq 1(%r8),%rax
 leaq 2(%r8),%rdx
 bswapl %eax
 bswapl %edx
 xorl %ebp,%eax
 xorl %ebp,%edx
.byte 102,15,58,34,216,3
 leaq 3(%r8),%rax
 movdqa %xmm3,16(%rsp)
.byte 102,15,58,34,226,3
 bswapl %eax
 movq %r10,%rdx
 leaq 4(%r8),%r10
 movdqa %xmm4,32(%rsp)
 xorl %ebp,%eax
 bswapl %r10d
.byte 102,15,58,34,232,3
 xorl %ebp,%r10d
 movdqa %xmm5,48(%rsp)
 leaq 5(%r8),%r9
 movl %r10d,64+12(%rsp)
 bswapl %r9d
 leaq 6(%r8),%r10
 movl 240(%rcx),%eax
 xorl %ebp,%r9d
 bswapl %r10d
 movl %r9d,80+12(%rsp)
 xorl %ebp,%r10d
 leaq 7(%r8),%r9
 movl %r10d,96+12(%rsp)
 bswapl %r9d
 xorl %ebp,%r9d
 movl %r9d,112+12(%rsp)

 movups 16(%rcx),%xmm1

 movdqa 64(%rsp),%xmm6
 movdqa 80(%rsp),%xmm7

 cmpq $8,%rdx
# WAS jb .Lctr32_tail
	jb	.Lctr32_tail_BCM_7

 leaq 128(%rcx),%rcx
 subq $8,%rdx
# WAS jmp .Lctr32_loop8
	jmp	.Lctr32_loop8_BCM_7

.align 32
.Lctr32_loop8_BCM_7:

 addl $8,%r8d
 movdqa 96(%rsp),%xmm8
.byte 102,15,56,220,209
 movl %r8d,%r9d
 movdqa 112(%rsp),%xmm9
.byte 102,15,56,220,217
 bswapl %r9d
 movups 32-128(%rcx),%xmm0
.byte 102,15,56,220,225
 xorl %ebp,%r9d
 nop
.byte 102,15,56,220,233
 movl %r9d,0+12(%rsp)
 leaq 1(%r8),%r9
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 48-128(%rcx),%xmm1
 bswapl %r9d
.byte 102,15,56,220,208
.byte 102,15,56,220,216
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 movl %r9d,16+12(%rsp)
 leaq 2(%r8),%r9
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 64-128(%rcx),%xmm0
 bswapl %r9d
.byte 102,15,56,220,209
.byte 102,15,56,220,217
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movl %r9d,32+12(%rsp)
 leaq 3(%r8),%r9
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 80-128(%rcx),%xmm1
 bswapl %r9d
.byte 102,15,56,220,208
.byte 102,15,56,220,216
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 movl %r9d,48+12(%rsp)
 leaq 4(%r8),%r9
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 96-128(%rcx),%xmm0
 bswapl %r9d
.byte 102,15,56,220,209
.byte 102,15,56,220,217
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movl %r9d,64+12(%rsp)
 leaq 5(%r8),%r9
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 112-128(%rcx),%xmm1
 bswapl %r9d
.byte 102,15,56,220,208
.byte 102,15,56,220,216
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 movl %r9d,80+12(%rsp)
 leaq 6(%r8),%r9
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 128-128(%rcx),%xmm0
 bswapl %r9d
.byte 102,15,56,220,209
.byte 102,15,56,220,217
 xorl %ebp,%r9d
.byte 0x66,0x90
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movl %r9d,96+12(%rsp)
 leaq 7(%r8),%r9
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 144-128(%rcx),%xmm1
 bswapl %r9d
.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
 xorl %ebp,%r9d
 movdqu 0(%rdi),%xmm10
.byte 102,15,56,220,232
 movl %r9d,112+12(%rsp)
 cmpl $11,%eax
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 160-128(%rcx),%xmm0

# WAS jb .Lctr32_enc_done
	jb	.Lctr32_enc_done_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 176-128(%rcx),%xmm1

.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 192-128(%rcx),%xmm0
# WAS je .Lctr32_enc_done
	je	.Lctr32_enc_done_BCM_7

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movups 208-128(%rcx),%xmm1

.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
 movups 224-128(%rcx),%xmm0
# WAS jmp .Lctr32_enc_done
	jmp	.Lctr32_enc_done_BCM_7

.align 16
.Lctr32_enc_done_BCM_7:

 movdqu 16(%rdi),%xmm11
 pxor %xmm0,%xmm10
 movdqu 32(%rdi),%xmm12
 pxor %xmm0,%xmm11
 movdqu 48(%rdi),%xmm13
 pxor %xmm0,%xmm12
 movdqu 64(%rdi),%xmm14
 pxor %xmm0,%xmm13
 movdqu 80(%rdi),%xmm15
 pxor %xmm0,%xmm14
 prefetcht0 448(%rdi)
 prefetcht0 512(%rdi)
 pxor %xmm0,%xmm15
.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
 movdqu 96(%rdi),%xmm1
 leaq 128(%rdi),%rdi

.byte 102,65,15,56,221,210
 pxor %xmm0,%xmm1
 movdqu 112-128(%rdi),%xmm10
.byte 102,65,15,56,221,219
 pxor %xmm0,%xmm10
 movdqa 0(%rsp),%xmm11
.byte 102,65,15,56,221,228
.byte 102,65,15,56,221,237
 movdqa 16(%rsp),%xmm12
 movdqa 32(%rsp),%xmm13
.byte 102,65,15,56,221,246
.byte 102,65,15,56,221,255
 movdqa 48(%rsp),%xmm14
 movdqa 64(%rsp),%xmm15
.byte 102,68,15,56,221,193
 movdqa 80(%rsp),%xmm0
 movups 16-128(%rcx),%xmm1
.byte 102,69,15,56,221,202

 movups %xmm2,(%rsi)
 movdqa %xmm11,%xmm2
 movups %xmm3,16(%rsi)
 movdqa %xmm12,%xmm3
 movups %xmm4,32(%rsi)
 movdqa %xmm13,%xmm4
 movups %xmm5,48(%rsi)
 movdqa %xmm14,%xmm5
 movups %xmm6,64(%rsi)
 movdqa %xmm15,%xmm6
 movups %xmm7,80(%rsi)
 movdqa %xmm0,%xmm7
 movups %xmm8,96(%rsi)
 movups %xmm9,112(%rsi)
 leaq 128(%rsi),%rsi

 subq $8,%rdx
# WAS jnc .Lctr32_loop8
	jnc	.Lctr32_loop8_BCM_7

 addq $8,%rdx
# WAS jz .Lctr32_done
	jz	.Lctr32_done_BCM_7
 leaq -128(%rcx),%rcx

.Lctr32_tail_BCM_7:



 leaq 16(%rcx),%rcx
 cmpq $4,%rdx
# WAS jb .Lctr32_loop3
	jb	.Lctr32_loop3_BCM_7
# WAS je .Lctr32_loop4
	je	.Lctr32_loop4_BCM_7


 shll $4,%eax
 movdqa 96(%rsp),%xmm8
 pxor %xmm9,%xmm9

 movups 16(%rcx),%xmm0
.byte 102,15,56,220,209
.byte 102,15,56,220,217
 leaq 32-16(%rcx,%rax,1),%rcx
 negq %rax
.byte 102,15,56,220,225
 addq $16,%rax
 movups (%rdi),%xmm10
.byte 102,15,56,220,233
.byte 102,15,56,220,241
 movups 16(%rdi),%xmm11
 movups 32(%rdi),%xmm12
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193

# WAS call .Lenc_loop8_enter
	call	.Lenc_loop8_enter_BCM_7

 movdqu 48(%rdi),%xmm13
 pxor %xmm10,%xmm2
 movdqu 64(%rdi),%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm13,%xmm5
 movdqu %xmm4,32(%rsi)
 pxor %xmm10,%xmm6
 movdqu %xmm5,48(%rsi)
 movdqu %xmm6,64(%rsi)
 cmpq $6,%rdx
# WAS jb .Lctr32_done
	jb	.Lctr32_done_BCM_7

 movups 80(%rdi),%xmm11
 xorps %xmm11,%xmm7
 movups %xmm7,80(%rsi)
# WAS je .Lctr32_done
	je	.Lctr32_done_BCM_7

 movups 96(%rdi),%xmm12
 xorps %xmm12,%xmm8
 movups %xmm8,96(%rsi)
# WAS jmp .Lctr32_done
	jmp	.Lctr32_done_BCM_7

.align 32
.Lctr32_loop4_BCM_7:

.byte 102,15,56,220,209
 leaq 16(%rcx),%rcx
 decl %eax
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movups (%rcx),%xmm1
# WAS jnz .Lctr32_loop4
	jnz	.Lctr32_loop4_BCM_7
.byte 102,15,56,221,209
.byte 102,15,56,221,217
 movups (%rdi),%xmm10
 movups 16(%rdi),%xmm11
.byte 102,15,56,221,225
.byte 102,15,56,221,233
 movups 32(%rdi),%xmm12
 movups 48(%rdi),%xmm13

 xorps %xmm10,%xmm2
 movups %xmm2,(%rsi)
 xorps %xmm11,%xmm3
 movups %xmm3,16(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm4,32(%rsi)
 pxor %xmm13,%xmm5
 movdqu %xmm5,48(%rsi)
# WAS jmp .Lctr32_done
	jmp	.Lctr32_done_BCM_7

.align 32
.Lctr32_loop3_BCM_7:

.byte 102,15,56,220,209
 leaq 16(%rcx),%rcx
 decl %eax
.byte 102,15,56,220,217
.byte 102,15,56,220,225
 movups (%rcx),%xmm1
# WAS jnz .Lctr32_loop3
	jnz	.Lctr32_loop3_BCM_7
.byte 102,15,56,221,209
.byte 102,15,56,221,217
.byte 102,15,56,221,225

 movups (%rdi),%xmm10
 xorps %xmm10,%xmm2
 movups %xmm2,(%rsi)
 cmpq $2,%rdx
# WAS jb .Lctr32_done
	jb	.Lctr32_done_BCM_7

 movups 16(%rdi),%xmm11
 xorps %xmm11,%xmm3
 movups %xmm3,16(%rsi)
# WAS je .Lctr32_done
	je	.Lctr32_done_BCM_7

 movups 32(%rdi),%xmm12
 xorps %xmm12,%xmm4
 movups %xmm4,32(%rsi)

.Lctr32_done_BCM_7:

 xorps %xmm0,%xmm0
 xorl %ebp,%ebp
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 movaps %xmm0,0(%rsp)
 pxor %xmm8,%xmm8
 movaps %xmm0,16(%rsp)
 pxor %xmm9,%xmm9
 movaps %xmm0,32(%rsp)
 pxor %xmm10,%xmm10
 movaps %xmm0,48(%rsp)
 pxor %xmm11,%xmm11
 movaps %xmm0,64(%rsp)
 pxor %xmm12,%xmm12
 movaps %xmm0,80(%rsp)
 pxor %xmm13,%xmm13
 movaps %xmm0,96(%rsp)
 pxor %xmm14,%xmm14
 movaps %xmm0,112(%rsp)
 pxor %xmm15,%xmm15
 movq -8(%r11),%rbp
.cfi_restore %rbp
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lctr32_epilogue_BCM_7:

 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_ctr32_encrypt_blocks,.-aes_hw_ctr32_encrypt_blocks
.globl aes_hw_xts_encrypt
.hidden aes_hw_xts_encrypt
.type aes_hw_xts_encrypt,@function
.align 16
.Laes_hw_xts_encrypt_local_target:
aes_hw_xts_encrypt:
.cfi_startproc
endbr64
 leaq (%rsp),%r11
.cfi_def_cfa_register %r11
 pushq %rbp
.cfi_offset %rbp,-16
 subq $112,%rsp
 andq $-16,%rsp
 movups (%r9),%xmm2
 movl 240(%r8),%eax
 movl 240(%rcx),%r10d
 movups (%r8),%xmm0
 movups 16(%r8),%xmm1
 leaq 32(%r8),%r8
 xorps %xmm0,%xmm2
.Loop_enc1_6_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%r8),%xmm1
 leaq 16(%r8),%r8
# WAS jnz .Loop_enc1_6
	jnz	.Loop_enc1_6_BCM_7
.byte 102,15,56,221,209
 movups (%rcx),%xmm0
 movq %rcx,%rbp
 movl %r10d,%eax
 shll $4,%r10d
 movq %rdx,%r9
 andq $-16,%rdx

 movups 16(%rcx,%r10,1),%xmm1

# WAS movdqa .Lxts_magic(%rip),%xmm8
	movdqa	.Lxts_magic_BCM_7(%rip), %xmm8
 movdqa %xmm2,%xmm15
 pshufd $0x5f,%xmm2,%xmm9
 pxor %xmm0,%xmm1
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm10
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm10
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm11
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm11
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm12
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm12
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm13
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm13
 pxor %xmm14,%xmm15
 movdqa %xmm15,%xmm14
 psrad $31,%xmm9
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm9
 pxor %xmm0,%xmm14
 pxor %xmm9,%xmm15
 movaps %xmm1,96(%rsp)

 subq $96,%rdx
# WAS jc .Lxts_enc_short
	jc	.Lxts_enc_short_BCM_7

 movl $16+96,%eax
 leaq 32(%rbp,%r10,1),%rcx
 subq %r10,%rax
 movups 16(%rbp),%xmm1
 movq %rax,%r10
# WAS leaq .Lxts_magic(%rip),%r8
	leaq	.Lxts_magic_BCM_7(%rip), %r8
# WAS jmp .Lxts_enc_grandloop
	jmp	.Lxts_enc_grandloop_BCM_7

.align 32
.Lxts_enc_grandloop_BCM_7:

 movdqu 0(%rdi),%xmm2
 movdqa %xmm0,%xmm8
 movdqu 16(%rdi),%xmm3
 pxor %xmm10,%xmm2
 movdqu 32(%rdi),%xmm4
 pxor %xmm11,%xmm3
.byte 102,15,56,220,209
 movdqu 48(%rdi),%xmm5
 pxor %xmm12,%xmm4
.byte 102,15,56,220,217
 movdqu 64(%rdi),%xmm6
 pxor %xmm13,%xmm5
.byte 102,15,56,220,225
 movdqu 80(%rdi),%xmm7
 pxor %xmm15,%xmm8
 movdqa 96(%rsp),%xmm9
 pxor %xmm14,%xmm6
.byte 102,15,56,220,233
 movups 32(%rbp),%xmm0
 leaq 96(%rdi),%rdi
 pxor %xmm8,%xmm7

 pxor %xmm9,%xmm10
.byte 102,15,56,220,241
 pxor %xmm9,%xmm11
 movdqa %xmm10,0(%rsp)
.byte 102,15,56,220,249
 movups 48(%rbp),%xmm1
 pxor %xmm9,%xmm12

.byte 102,15,56,220,208
 pxor %xmm9,%xmm13
 movdqa %xmm11,16(%rsp)
.byte 102,15,56,220,216
 pxor %xmm9,%xmm14
 movdqa %xmm12,32(%rsp)
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 pxor %xmm9,%xmm8
 movdqa %xmm14,64(%rsp)
.byte 102,15,56,220,240
.byte 102,15,56,220,248
 movups 64(%rbp),%xmm0
 movdqa %xmm8,80(%rsp)
 pshufd $0x5f,%xmm15,%xmm9
# WAS jmp .Lxts_enc_loop6
	jmp	.Lxts_enc_loop6_BCM_7
.align 32
.Lxts_enc_loop6_BCM_7:

.byte 102,15,56,220,209
.byte 102,15,56,220,217
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
 movups -64(%rcx,%rax,1),%xmm1
 addq $32,%rax

.byte 102,15,56,220,208
.byte 102,15,56,220,216
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
 movups -80(%rcx,%rax,1),%xmm0
# WAS jnz .Lxts_enc_loop6
	jnz	.Lxts_enc_loop6_BCM_7

 movdqa (%r8),%xmm8
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
.byte 102,15,56,220,209
 paddq %xmm15,%xmm15
 psrad $31,%xmm14
.byte 102,15,56,220,217
 pand %xmm8,%xmm14
 movups (%rbp),%xmm10
.byte 102,15,56,220,225
.byte 102,15,56,220,233
.byte 102,15,56,220,241
 pxor %xmm14,%xmm15
 movaps %xmm10,%xmm11
.byte 102,15,56,220,249
 movups -64(%rcx),%xmm1

 movdqa %xmm9,%xmm14
.byte 102,15,56,220,208
 paddd %xmm9,%xmm9
 pxor %xmm15,%xmm10
.byte 102,15,56,220,216
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
.byte 102,15,56,220,224
.byte 102,15,56,220,232
 pand %xmm8,%xmm14
 movaps %xmm11,%xmm12
.byte 102,15,56,220,240
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
.byte 102,15,56,220,248
 movups -48(%rcx),%xmm0

 paddd %xmm9,%xmm9
.byte 102,15,56,220,209
 pxor %xmm15,%xmm11
 psrad $31,%xmm14
.byte 102,15,56,220,217
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 movdqa %xmm13,48(%rsp)
 pxor %xmm14,%xmm15
.byte 102,15,56,220,241
 movaps %xmm12,%xmm13
 movdqa %xmm9,%xmm14
.byte 102,15,56,220,249
 movups -32(%rcx),%xmm1

 paddd %xmm9,%xmm9
.byte 102,15,56,220,208
 pxor %xmm15,%xmm12
 psrad $31,%xmm14
.byte 102,15,56,220,216
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
.byte 102,15,56,220,224
.byte 102,15,56,220,232
.byte 102,15,56,220,240
 pxor %xmm14,%xmm15
 movaps %xmm13,%xmm14
.byte 102,15,56,220,248

 movdqa %xmm9,%xmm0
 paddd %xmm9,%xmm9
.byte 102,15,56,220,209
 pxor %xmm15,%xmm13
 psrad $31,%xmm0
.byte 102,15,56,220,217
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm0
.byte 102,15,56,220,225
.byte 102,15,56,220,233
 pxor %xmm0,%xmm15
 movups (%rbp),%xmm0
.byte 102,15,56,220,241
.byte 102,15,56,220,249
 movups 16(%rbp),%xmm1

 pxor %xmm15,%xmm14
.byte 102,15,56,221,84,36,0
 psrad $31,%xmm9
 paddq %xmm15,%xmm15
.byte 102,15,56,221,92,36,16
.byte 102,15,56,221,100,36,32
 pand %xmm8,%xmm9
 movq %r10,%rax
.byte 102,15,56,221,108,36,48
.byte 102,15,56,221,116,36,64
.byte 102,15,56,221,124,36,80
 pxor %xmm9,%xmm15

 leaq 96(%rsi),%rsi
 movups %xmm2,-96(%rsi)
 movups %xmm3,-80(%rsi)
 movups %xmm4,-64(%rsi)
 movups %xmm5,-48(%rsi)
 movups %xmm6,-32(%rsi)
 movups %xmm7,-16(%rsi)
 subq $96,%rdx
# WAS jnc .Lxts_enc_grandloop
	jnc	.Lxts_enc_grandloop_BCM_7

 movl $16+96,%eax
 subl %r10d,%eax
 movq %rbp,%rcx
 shrl $4,%eax

.Lxts_enc_short_BCM_7:


 movl %eax,%r10d
 pxor %xmm0,%xmm10
 addq $96,%rdx
# WAS jz .Lxts_enc_done
	jz	.Lxts_enc_done_BCM_7

 pxor %xmm0,%xmm11
 cmpq $0x20,%rdx
# WAS jb .Lxts_enc_one
	jb	.Lxts_enc_one_BCM_7
 pxor %xmm0,%xmm12
# WAS je .Lxts_enc_two
	je	.Lxts_enc_two_BCM_7

 pxor %xmm0,%xmm13
 cmpq $0x40,%rdx
# WAS jb .Lxts_enc_three
	jb	.Lxts_enc_three_BCM_7
 pxor %xmm0,%xmm14
# WAS je .Lxts_enc_four
	je	.Lxts_enc_four_BCM_7

 movdqu (%rdi),%xmm2
 movdqu 16(%rdi),%xmm3
 movdqu 32(%rdi),%xmm4
 pxor %xmm10,%xmm2
 movdqu 48(%rdi),%xmm5
 pxor %xmm11,%xmm3
 movdqu 64(%rdi),%xmm6
 leaq 80(%rdi),%rdi
 pxor %xmm12,%xmm4
 pxor %xmm13,%xmm5
 pxor %xmm14,%xmm6
 pxor %xmm7,%xmm7

# WAS call _aesni_encrypt6
	call	.L_aesni_encrypt6_local_target

 xorps %xmm10,%xmm2
 movdqa %xmm15,%xmm10
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4
 movdqu %xmm2,(%rsi)
 xorps %xmm13,%xmm5
 movdqu %xmm3,16(%rsi)
 xorps %xmm14,%xmm6
 movdqu %xmm4,32(%rsi)
 movdqu %xmm5,48(%rsi)
 movdqu %xmm6,64(%rsi)
 leaq 80(%rsi),%rsi
# WAS jmp .Lxts_enc_done
	jmp	.Lxts_enc_done_BCM_7

.align 16
.Lxts_enc_one_BCM_7:

 movups (%rdi),%xmm2
 leaq 16(%rdi),%rdi
 xorps %xmm10,%xmm2
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_enc1_7_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_enc1_7
	jnz	.Loop_enc1_7_BCM_7
.byte 102,15,56,221,209
 xorps %xmm10,%xmm2
 movdqa %xmm11,%xmm10
 movups %xmm2,(%rsi)
 leaq 16(%rsi),%rsi
# WAS jmp .Lxts_enc_done
	jmp	.Lxts_enc_done_BCM_7

.align 16
.Lxts_enc_two_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 leaq 32(%rdi),%rdi
 xorps %xmm10,%xmm2
 xorps %xmm11,%xmm3

# WAS call _aesni_encrypt2
	call	.L_aesni_encrypt2_local_target

 xorps %xmm10,%xmm2
 movdqa %xmm12,%xmm10
 xorps %xmm11,%xmm3
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 leaq 32(%rsi),%rsi
# WAS jmp .Lxts_enc_done
	jmp	.Lxts_enc_done_BCM_7

.align 16
.Lxts_enc_three_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 movups 32(%rdi),%xmm4
 leaq 48(%rdi),%rdi
 xorps %xmm10,%xmm2
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4

# WAS call _aesni_encrypt3
	call	.L_aesni_encrypt3_local_target

 xorps %xmm10,%xmm2
 movdqa %xmm13,%xmm10
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 leaq 48(%rsi),%rsi
# WAS jmp .Lxts_enc_done
	jmp	.Lxts_enc_done_BCM_7

.align 16
.Lxts_enc_four_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 movups 32(%rdi),%xmm4
 xorps %xmm10,%xmm2
 movups 48(%rdi),%xmm5
 leaq 64(%rdi),%rdi
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4
 xorps %xmm13,%xmm5

# WAS call _aesni_encrypt4
	call	.L_aesni_encrypt4_local_target

 pxor %xmm10,%xmm2
 movdqa %xmm14,%xmm10
 pxor %xmm11,%xmm3
 pxor %xmm12,%xmm4
 movdqu %xmm2,(%rsi)
 pxor %xmm13,%xmm5
 movdqu %xmm3,16(%rsi)
 movdqu %xmm4,32(%rsi)
 movdqu %xmm5,48(%rsi)
 leaq 64(%rsi),%rsi
# WAS jmp .Lxts_enc_done
	jmp	.Lxts_enc_done_BCM_7

.align 16
.Lxts_enc_done_BCM_7:

 andq $15,%r9
# WAS jz .Lxts_enc_ret
	jz	.Lxts_enc_ret_BCM_7
 movq %r9,%rdx

.Lxts_enc_steal_BCM_7:

 movzbl (%rdi),%eax
 movzbl -16(%rsi),%ecx
 leaq 1(%rdi),%rdi
 movb %al,-16(%rsi)
 movb %cl,0(%rsi)
 leaq 1(%rsi),%rsi
 subq $1,%rdx
# WAS jnz .Lxts_enc_steal
	jnz	.Lxts_enc_steal_BCM_7

 subq %r9,%rsi
 movq %rbp,%rcx
 movl %r10d,%eax

 movups -16(%rsi),%xmm2
 xorps %xmm10,%xmm2
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_enc1_8_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_enc1_8
	jnz	.Loop_enc1_8_BCM_7
.byte 102,15,56,221,209
 xorps %xmm10,%xmm2
 movups %xmm2,-16(%rsi)

.Lxts_enc_ret_BCM_7:

 xorps %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 movaps %xmm0,0(%rsp)
 pxor %xmm8,%xmm8
 movaps %xmm0,16(%rsp)
 pxor %xmm9,%xmm9
 movaps %xmm0,32(%rsp)
 pxor %xmm10,%xmm10
 movaps %xmm0,48(%rsp)
 pxor %xmm11,%xmm11
 movaps %xmm0,64(%rsp)
 pxor %xmm12,%xmm12
 movaps %xmm0,80(%rsp)
 pxor %xmm13,%xmm13
 movaps %xmm0,96(%rsp)
 pxor %xmm14,%xmm14
 pxor %xmm15,%xmm15
 movq -8(%r11),%rbp
.cfi_restore %rbp
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lxts_enc_epilogue_BCM_7:

 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_xts_encrypt,.-aes_hw_xts_encrypt
.globl aes_hw_xts_decrypt
.hidden aes_hw_xts_decrypt
.type aes_hw_xts_decrypt,@function
.align 16
.Laes_hw_xts_decrypt_local_target:
aes_hw_xts_decrypt:
.cfi_startproc
endbr64
 leaq (%rsp),%r11
.cfi_def_cfa_register %r11
 pushq %rbp
.cfi_offset %rbp,-16
 subq $112,%rsp
 andq $-16,%rsp
 movups (%r9),%xmm2
 movl 240(%r8),%eax
 movl 240(%rcx),%r10d
 movups (%r8),%xmm0
 movups 16(%r8),%xmm1
 leaq 32(%r8),%r8
 xorps %xmm0,%xmm2
.Loop_enc1_9_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%r8),%xmm1
 leaq 16(%r8),%r8
# WAS jnz .Loop_enc1_9
	jnz	.Loop_enc1_9_BCM_7
.byte 102,15,56,221,209
 xorl %eax,%eax
 testq $15,%rdx
 setnz %al
 shlq $4,%rax
 subq %rax,%rdx

 movups (%rcx),%xmm0
 movq %rcx,%rbp
 movl %r10d,%eax
 shll $4,%r10d
 movq %rdx,%r9
 andq $-16,%rdx

 movups 16(%rcx,%r10,1),%xmm1

# WAS movdqa .Lxts_magic(%rip),%xmm8
	movdqa	.Lxts_magic_BCM_7(%rip), %xmm8
 movdqa %xmm2,%xmm15
 pshufd $0x5f,%xmm2,%xmm9
 pxor %xmm0,%xmm1
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm10
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm10
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm11
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm11
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm12
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm12
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
 movdqa %xmm15,%xmm13
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
 pxor %xmm0,%xmm13
 pxor %xmm14,%xmm15
 movdqa %xmm15,%xmm14
 psrad $31,%xmm9
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm9
 pxor %xmm0,%xmm14
 pxor %xmm9,%xmm15
 movaps %xmm1,96(%rsp)

 subq $96,%rdx
# WAS jc .Lxts_dec_short
	jc	.Lxts_dec_short_BCM_7

 movl $16+96,%eax
 leaq 32(%rbp,%r10,1),%rcx
 subq %r10,%rax
 movups 16(%rbp),%xmm1
 movq %rax,%r10
# WAS leaq .Lxts_magic(%rip),%r8
	leaq	.Lxts_magic_BCM_7(%rip), %r8
# WAS jmp .Lxts_dec_grandloop
	jmp	.Lxts_dec_grandloop_BCM_7

.align 32
.Lxts_dec_grandloop_BCM_7:

 movdqu 0(%rdi),%xmm2
 movdqa %xmm0,%xmm8
 movdqu 16(%rdi),%xmm3
 pxor %xmm10,%xmm2
 movdqu 32(%rdi),%xmm4
 pxor %xmm11,%xmm3
.byte 102,15,56,222,209
 movdqu 48(%rdi),%xmm5
 pxor %xmm12,%xmm4
.byte 102,15,56,222,217
 movdqu 64(%rdi),%xmm6
 pxor %xmm13,%xmm5
.byte 102,15,56,222,225
 movdqu 80(%rdi),%xmm7
 pxor %xmm15,%xmm8
 movdqa 96(%rsp),%xmm9
 pxor %xmm14,%xmm6
.byte 102,15,56,222,233
 movups 32(%rbp),%xmm0
 leaq 96(%rdi),%rdi
 pxor %xmm8,%xmm7

 pxor %xmm9,%xmm10
.byte 102,15,56,222,241
 pxor %xmm9,%xmm11
 movdqa %xmm10,0(%rsp)
.byte 102,15,56,222,249
 movups 48(%rbp),%xmm1
 pxor %xmm9,%xmm12

.byte 102,15,56,222,208
 pxor %xmm9,%xmm13
 movdqa %xmm11,16(%rsp)
.byte 102,15,56,222,216
 pxor %xmm9,%xmm14
 movdqa %xmm12,32(%rsp)
.byte 102,15,56,222,224
.byte 102,15,56,222,232
 pxor %xmm9,%xmm8
 movdqa %xmm14,64(%rsp)
.byte 102,15,56,222,240
.byte 102,15,56,222,248
 movups 64(%rbp),%xmm0
 movdqa %xmm8,80(%rsp)
 pshufd $0x5f,%xmm15,%xmm9
# WAS jmp .Lxts_dec_loop6
	jmp	.Lxts_dec_loop6_BCM_7
.align 32
.Lxts_dec_loop6_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
 movups -64(%rcx,%rax,1),%xmm1
 addq $32,%rax

.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
 movups -80(%rcx,%rax,1),%xmm0
# WAS jnz .Lxts_dec_loop6
	jnz	.Lxts_dec_loop6_BCM_7

 movdqa (%r8),%xmm8
 movdqa %xmm9,%xmm14
 paddd %xmm9,%xmm9
.byte 102,15,56,222,209
 paddq %xmm15,%xmm15
 psrad $31,%xmm14
.byte 102,15,56,222,217
 pand %xmm8,%xmm14
 movups (%rbp),%xmm10
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
 pxor %xmm14,%xmm15
 movaps %xmm10,%xmm11
.byte 102,15,56,222,249
 movups -64(%rcx),%xmm1

 movdqa %xmm9,%xmm14
.byte 102,15,56,222,208
 paddd %xmm9,%xmm9
 pxor %xmm15,%xmm10
.byte 102,15,56,222,216
 psrad $31,%xmm14
 paddq %xmm15,%xmm15
.byte 102,15,56,222,224
.byte 102,15,56,222,232
 pand %xmm8,%xmm14
 movaps %xmm11,%xmm12
.byte 102,15,56,222,240
 pxor %xmm14,%xmm15
 movdqa %xmm9,%xmm14
.byte 102,15,56,222,248
 movups -48(%rcx),%xmm0

 paddd %xmm9,%xmm9
.byte 102,15,56,222,209
 pxor %xmm15,%xmm11
 psrad $31,%xmm14
.byte 102,15,56,222,217
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
.byte 102,15,56,222,225
.byte 102,15,56,222,233
 movdqa %xmm13,48(%rsp)
 pxor %xmm14,%xmm15
.byte 102,15,56,222,241
 movaps %xmm12,%xmm13
 movdqa %xmm9,%xmm14
.byte 102,15,56,222,249
 movups -32(%rcx),%xmm1

 paddd %xmm9,%xmm9
.byte 102,15,56,222,208
 pxor %xmm15,%xmm12
 psrad $31,%xmm14
.byte 102,15,56,222,216
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm14
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
 pxor %xmm14,%xmm15
 movaps %xmm13,%xmm14
.byte 102,15,56,222,248

 movdqa %xmm9,%xmm0
 paddd %xmm9,%xmm9
.byte 102,15,56,222,209
 pxor %xmm15,%xmm13
 psrad $31,%xmm0
.byte 102,15,56,222,217
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm0
.byte 102,15,56,222,225
.byte 102,15,56,222,233
 pxor %xmm0,%xmm15
 movups (%rbp),%xmm0
.byte 102,15,56,222,241
.byte 102,15,56,222,249
 movups 16(%rbp),%xmm1

 pxor %xmm15,%xmm14
.byte 102,15,56,223,84,36,0
 psrad $31,%xmm9
 paddq %xmm15,%xmm15
.byte 102,15,56,223,92,36,16
.byte 102,15,56,223,100,36,32
 pand %xmm8,%xmm9
 movq %r10,%rax
.byte 102,15,56,223,108,36,48
.byte 102,15,56,223,116,36,64
.byte 102,15,56,223,124,36,80
 pxor %xmm9,%xmm15

 leaq 96(%rsi),%rsi
 movups %xmm2,-96(%rsi)
 movups %xmm3,-80(%rsi)
 movups %xmm4,-64(%rsi)
 movups %xmm5,-48(%rsi)
 movups %xmm6,-32(%rsi)
 movups %xmm7,-16(%rsi)
 subq $96,%rdx
# WAS jnc .Lxts_dec_grandloop
	jnc	.Lxts_dec_grandloop_BCM_7

 movl $16+96,%eax
 subl %r10d,%eax
 movq %rbp,%rcx
 shrl $4,%eax

.Lxts_dec_short_BCM_7:


 movl %eax,%r10d
 pxor %xmm0,%xmm10
 pxor %xmm0,%xmm11
 addq $96,%rdx
# WAS jz .Lxts_dec_done
	jz	.Lxts_dec_done_BCM_7

 pxor %xmm0,%xmm12
 cmpq $0x20,%rdx
# WAS jb .Lxts_dec_one
	jb	.Lxts_dec_one_BCM_7
 pxor %xmm0,%xmm13
# WAS je .Lxts_dec_two
	je	.Lxts_dec_two_BCM_7

 pxor %xmm0,%xmm14
 cmpq $0x40,%rdx
# WAS jb .Lxts_dec_three
	jb	.Lxts_dec_three_BCM_7
# WAS je .Lxts_dec_four
	je	.Lxts_dec_four_BCM_7

 movdqu (%rdi),%xmm2
 movdqu 16(%rdi),%xmm3
 movdqu 32(%rdi),%xmm4
 pxor %xmm10,%xmm2
 movdqu 48(%rdi),%xmm5
 pxor %xmm11,%xmm3
 movdqu 64(%rdi),%xmm6
 leaq 80(%rdi),%rdi
 pxor %xmm12,%xmm4
 pxor %xmm13,%xmm5
 pxor %xmm14,%xmm6

# WAS call _aesni_decrypt6
	call	.L_aesni_decrypt6_local_target

 xorps %xmm10,%xmm2
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4
 movdqu %xmm2,(%rsi)
 xorps %xmm13,%xmm5
 movdqu %xmm3,16(%rsi)
 xorps %xmm14,%xmm6
 movdqu %xmm4,32(%rsi)
 pxor %xmm14,%xmm14
 movdqu %xmm5,48(%rsi)
 pcmpgtd %xmm15,%xmm14
 movdqu %xmm6,64(%rsi)
 leaq 80(%rsi),%rsi
 pshufd $0x13,%xmm14,%xmm11
 andq $15,%r9
# WAS jz .Lxts_dec_ret
	jz	.Lxts_dec_ret_BCM_7

 movdqa %xmm15,%xmm10
 paddq %xmm15,%xmm15
 pand %xmm8,%xmm11
 pxor %xmm15,%xmm11
# WAS jmp .Lxts_dec_done2
	jmp	.Lxts_dec_done2_BCM_7

.align 16
.Lxts_dec_one_BCM_7:

 movups (%rdi),%xmm2
 leaq 16(%rdi),%rdi
 xorps %xmm10,%xmm2
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_10_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_10
	jnz	.Loop_dec1_10_BCM_7
.byte 102,15,56,223,209
 xorps %xmm10,%xmm2
 movdqa %xmm11,%xmm10
 movups %xmm2,(%rsi)
 movdqa %xmm12,%xmm11
 leaq 16(%rsi),%rsi
# WAS jmp .Lxts_dec_done
	jmp	.Lxts_dec_done_BCM_7

.align 16
.Lxts_dec_two_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 leaq 32(%rdi),%rdi
 xorps %xmm10,%xmm2
 xorps %xmm11,%xmm3

# WAS call _aesni_decrypt2
	call	.L_aesni_decrypt2_local_target

 xorps %xmm10,%xmm2
 movdqa %xmm12,%xmm10
 xorps %xmm11,%xmm3
 movdqa %xmm13,%xmm11
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 leaq 32(%rsi),%rsi
# WAS jmp .Lxts_dec_done
	jmp	.Lxts_dec_done_BCM_7

.align 16
.Lxts_dec_three_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 movups 32(%rdi),%xmm4
 leaq 48(%rdi),%rdi
 xorps %xmm10,%xmm2
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4

# WAS call _aesni_decrypt3
	call	.L_aesni_decrypt3_local_target

 xorps %xmm10,%xmm2
 movdqa %xmm13,%xmm10
 xorps %xmm11,%xmm3
 movdqa %xmm14,%xmm11
 xorps %xmm12,%xmm4
 movups %xmm2,(%rsi)
 movups %xmm3,16(%rsi)
 movups %xmm4,32(%rsi)
 leaq 48(%rsi),%rsi
# WAS jmp .Lxts_dec_done
	jmp	.Lxts_dec_done_BCM_7

.align 16
.Lxts_dec_four_BCM_7:

 movups (%rdi),%xmm2
 movups 16(%rdi),%xmm3
 movups 32(%rdi),%xmm4
 xorps %xmm10,%xmm2
 movups 48(%rdi),%xmm5
 leaq 64(%rdi),%rdi
 xorps %xmm11,%xmm3
 xorps %xmm12,%xmm4
 xorps %xmm13,%xmm5

# WAS call _aesni_decrypt4
	call	.L_aesni_decrypt4_local_target

 pxor %xmm10,%xmm2
 movdqa %xmm14,%xmm10
 pxor %xmm11,%xmm3
 movdqa %xmm15,%xmm11
 pxor %xmm12,%xmm4
 movdqu %xmm2,(%rsi)
 pxor %xmm13,%xmm5
 movdqu %xmm3,16(%rsi)
 movdqu %xmm4,32(%rsi)
 movdqu %xmm5,48(%rsi)
 leaq 64(%rsi),%rsi
# WAS jmp .Lxts_dec_done
	jmp	.Lxts_dec_done_BCM_7

.align 16
.Lxts_dec_done_BCM_7:

 andq $15,%r9
# WAS jz .Lxts_dec_ret
	jz	.Lxts_dec_ret_BCM_7
.Lxts_dec_done2_BCM_7:

 movq %r9,%rdx
 movq %rbp,%rcx
 movl %r10d,%eax

 movups (%rdi),%xmm2
 xorps %xmm11,%xmm2
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_11_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_11
	jnz	.Loop_dec1_11_BCM_7
.byte 102,15,56,223,209
 xorps %xmm11,%xmm2
 movups %xmm2,(%rsi)

.Lxts_dec_steal_BCM_7:

 movzbl 16(%rdi),%eax
 movzbl (%rsi),%ecx
 leaq 1(%rdi),%rdi
 movb %al,(%rsi)
 movb %cl,16(%rsi)
 leaq 1(%rsi),%rsi
 subq $1,%rdx
# WAS jnz .Lxts_dec_steal
	jnz	.Lxts_dec_steal_BCM_7

 subq %r9,%rsi
 movq %rbp,%rcx
 movl %r10d,%eax

 movups (%rsi),%xmm2
 xorps %xmm10,%xmm2
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_12_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_12
	jnz	.Loop_dec1_12_BCM_7
.byte 102,15,56,223,209
 xorps %xmm10,%xmm2
 movups %xmm2,(%rsi)

.Lxts_dec_ret_BCM_7:

 xorps %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 movaps %xmm0,0(%rsp)
 pxor %xmm8,%xmm8
 movaps %xmm0,16(%rsp)
 pxor %xmm9,%xmm9
 movaps %xmm0,32(%rsp)
 pxor %xmm10,%xmm10
 movaps %xmm0,48(%rsp)
 pxor %xmm11,%xmm11
 movaps %xmm0,64(%rsp)
 pxor %xmm12,%xmm12
 movaps %xmm0,80(%rsp)
 pxor %xmm13,%xmm13
 movaps %xmm0,96(%rsp)
 pxor %xmm14,%xmm14
 pxor %xmm15,%xmm15
 movq -8(%r11),%rbp
.cfi_restore %rbp
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lxts_dec_epilogue_BCM_7:

 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_xts_decrypt,.-aes_hw_xts_decrypt
.globl aes_hw_cbc_encrypt
.hidden aes_hw_cbc_encrypt
.type aes_hw_cbc_encrypt,@function
.align 16
.Laes_hw_cbc_encrypt_local_target:
aes_hw_cbc_encrypt:
.cfi_startproc
endbr64
 testq %rdx,%rdx
# WAS jz .Lcbc_ret
	jz	.Lcbc_ret_BCM_7

 movl 240(%rcx),%r10d
 movq %rcx,%r11
 testl %r9d,%r9d
# WAS jz .Lcbc_decrypt
	jz	.Lcbc_decrypt_BCM_7

 movups (%r8),%xmm2
 movl %r10d,%eax
 cmpq $16,%rdx
# WAS jb .Lcbc_enc_tail
	jb	.Lcbc_enc_tail_BCM_7
 subq $16,%rdx
# WAS jmp .Lcbc_enc_loop
	jmp	.Lcbc_enc_loop_BCM_7
.align 16
.Lcbc_enc_loop_BCM_7:

 movups (%rdi),%xmm3
 leaq 16(%rdi),%rdi

 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 xorps %xmm0,%xmm3
 leaq 32(%rcx),%rcx
 xorps %xmm3,%xmm2
.Loop_enc1_13_BCM_7:

.byte 102,15,56,220,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_enc1_13
	jnz	.Loop_enc1_13_BCM_7
.byte 102,15,56,221,209
 movl %r10d,%eax
 movq %r11,%rcx
 movups %xmm2,0(%rsi)
 leaq 16(%rsi),%rsi
 subq $16,%rdx
# WAS jnc .Lcbc_enc_loop
	jnc	.Lcbc_enc_loop_BCM_7
 addq $16,%rdx
# WAS jnz .Lcbc_enc_tail
	jnz	.Lcbc_enc_tail_BCM_7
 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 movups %xmm2,(%r8)
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
# WAS jmp .Lcbc_ret
	jmp	.Lcbc_ret_BCM_7

.Lcbc_enc_tail_BCM_7:

 movq %rdx,%rcx
 xchgq %rdi,%rsi
.long 0x9066A4F3
 movl $16,%ecx
 subq %rdx,%rcx
 xorl %eax,%eax
.long 0x9066AAF3
 leaq -16(%rdi),%rdi
 movl %r10d,%eax
 movq %rdi,%rsi
 movq %r11,%rcx
 xorq %rdx,%rdx
# WAS jmp .Lcbc_enc_loop
	jmp	.Lcbc_enc_loop_BCM_7

.align 16
.Lcbc_decrypt_BCM_7:

 cmpq $16,%rdx
# WAS jne .Lcbc_decrypt_bulk
	jne	.Lcbc_decrypt_bulk_BCM_7



 movdqu (%rdi),%xmm2
 movdqu (%r8),%xmm3
 movdqa %xmm2,%xmm4
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_14_BCM_7:

.byte 102,15,56,222,209
 decl %r10d
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_14
	jnz	.Loop_dec1_14_BCM_7
.byte 102,15,56,223,209
 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 movdqu %xmm4,(%r8)
 xorps %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
# WAS jmp .Lcbc_ret
	jmp	.Lcbc_ret_BCM_7
.align 16
.Lcbc_decrypt_bulk_BCM_7:

 leaq (%rsp),%r11
.cfi_def_cfa_register %r11
 pushq %rbp
.cfi_offset %rbp,-16
 subq $16,%rsp
 andq $-16,%rsp
 movq %rcx,%rbp
 movups (%r8),%xmm10
 movl %r10d,%eax
 cmpq $0x50,%rdx
# WAS jbe .Lcbc_dec_tail
	jbe	.Lcbc_dec_tail_BCM_7

 movups (%rcx),%xmm0
 movdqu 0(%rdi),%xmm2
 movdqu 16(%rdi),%xmm3
 movdqa %xmm2,%xmm11
 movdqu 32(%rdi),%xmm4
 movdqa %xmm3,%xmm12
 movdqu 48(%rdi),%xmm5
 movdqa %xmm4,%xmm13
 movdqu 64(%rdi),%xmm6
 movdqa %xmm5,%xmm14
 movdqu 80(%rdi),%xmm7
 movdqa %xmm6,%xmm15
 cmpq $0x70,%rdx
# WAS jbe .Lcbc_dec_six_or_seven
	jbe	.Lcbc_dec_six_or_seven_BCM_7

 subq $0x70,%rdx
 leaq 112(%rcx),%rcx
# WAS jmp .Lcbc_dec_loop8_enter
	jmp	.Lcbc_dec_loop8_enter_BCM_7
.align 16
.Lcbc_dec_loop8_BCM_7:

 movups %xmm9,(%rsi)
 leaq 16(%rsi),%rsi
.Lcbc_dec_loop8_enter_BCM_7:

 movdqu 96(%rdi),%xmm8
 pxor %xmm0,%xmm2
 movdqu 112(%rdi),%xmm9
 pxor %xmm0,%xmm3
 movups 16-112(%rcx),%xmm1
 pxor %xmm0,%xmm4
 movq $-1,%rbp
 cmpq $0x70,%rdx
 pxor %xmm0,%xmm5
 pxor %xmm0,%xmm6
 pxor %xmm0,%xmm7
 pxor %xmm0,%xmm8

.byte 102,15,56,222,209
 pxor %xmm0,%xmm9
 movups 32-112(%rcx),%xmm0
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
 adcq $0,%rbp
 andq $128,%rbp
.byte 102,68,15,56,222,201
 addq %rdi,%rbp
 movups 48-112(%rcx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 64-112(%rcx),%xmm0
 nop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movups 80-112(%rcx),%xmm1
 nop
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 96-112(%rcx),%xmm0
 nop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movups 112-112(%rcx),%xmm1
 nop
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 128-112(%rcx),%xmm0
 nop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movups 144-112(%rcx),%xmm1
 cmpl $11,%eax
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 160-112(%rcx),%xmm0
# WAS jb .Lcbc_dec_done
	jb	.Lcbc_dec_done_BCM_7
.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movups 176-112(%rcx),%xmm1
 nop
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 192-112(%rcx),%xmm0
# WAS je .Lcbc_dec_done
	je	.Lcbc_dec_done_BCM_7
.byte 102,15,56,222,209
.byte 102,15,56,222,217
.byte 102,15,56,222,225
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movups 208-112(%rcx),%xmm1
 nop
.byte 102,15,56,222,208
.byte 102,15,56,222,216
.byte 102,15,56,222,224
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
 movups 224-112(%rcx),%xmm0
# WAS jmp .Lcbc_dec_done
	jmp	.Lcbc_dec_done_BCM_7
.align 16
.Lcbc_dec_done_BCM_7:

.byte 102,15,56,222,209
.byte 102,15,56,222,217
 pxor %xmm0,%xmm10
 pxor %xmm0,%xmm11
.byte 102,15,56,222,225
.byte 102,15,56,222,233
 pxor %xmm0,%xmm12
 pxor %xmm0,%xmm13
.byte 102,15,56,222,241
.byte 102,15,56,222,249
 pxor %xmm0,%xmm14
 pxor %xmm0,%xmm15
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
 movdqu 80(%rdi),%xmm1

.byte 102,65,15,56,223,210
 movdqu 96(%rdi),%xmm10
 pxor %xmm0,%xmm1
.byte 102,65,15,56,223,219
 pxor %xmm0,%xmm10
 movdqu 112(%rdi),%xmm0
.byte 102,65,15,56,223,228
 leaq 128(%rdi),%rdi
 movdqu 0(%rbp),%xmm11
.byte 102,65,15,56,223,237
.byte 102,65,15,56,223,246
 movdqu 16(%rbp),%xmm12
 movdqu 32(%rbp),%xmm13
.byte 102,65,15,56,223,255
.byte 102,68,15,56,223,193
 movdqu 48(%rbp),%xmm14
 movdqu 64(%rbp),%xmm15
.byte 102,69,15,56,223,202
 movdqa %xmm0,%xmm10
 movdqu 80(%rbp),%xmm1
 movups -112(%rcx),%xmm0

 movups %xmm2,(%rsi)
 movdqa %xmm11,%xmm2
 movups %xmm3,16(%rsi)
 movdqa %xmm12,%xmm3
 movups %xmm4,32(%rsi)
 movdqa %xmm13,%xmm4
 movups %xmm5,48(%rsi)
 movdqa %xmm14,%xmm5
 movups %xmm6,64(%rsi)
 movdqa %xmm15,%xmm6
 movups %xmm7,80(%rsi)
 movdqa %xmm1,%xmm7
 movups %xmm8,96(%rsi)
 leaq 112(%rsi),%rsi

 subq $0x80,%rdx
# WAS ja .Lcbc_dec_loop8
	ja	.Lcbc_dec_loop8_BCM_7

 movaps %xmm9,%xmm2
 leaq -112(%rcx),%rcx
 addq $0x70,%rdx
# WAS jle .Lcbc_dec_clear_tail_collected
	jle	.Lcbc_dec_clear_tail_collected_BCM_7
 movups %xmm9,(%rsi)
 leaq 16(%rsi),%rsi
 cmpq $0x50,%rdx
# WAS jbe .Lcbc_dec_tail
	jbe	.Lcbc_dec_tail_BCM_7

 movaps %xmm11,%xmm2
.Lcbc_dec_six_or_seven_BCM_7:

 cmpq $0x60,%rdx
# WAS ja .Lcbc_dec_seven
	ja	.Lcbc_dec_seven_BCM_7

 movaps %xmm7,%xmm8
# WAS call _aesni_decrypt6
	call	.L_aesni_decrypt6_local_target
 pxor %xmm10,%xmm2
 movaps %xmm8,%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 pxor %xmm13,%xmm5
 movdqu %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 pxor %xmm14,%xmm6
 movdqu %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 pxor %xmm15,%xmm7
 movdqu %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 leaq 80(%rsi),%rsi
 movdqa %xmm7,%xmm2
 pxor %xmm7,%xmm7
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7

.align 16
.Lcbc_dec_seven_BCM_7:

 movups 96(%rdi),%xmm8
 xorps %xmm9,%xmm9
# WAS call _aesni_decrypt8
	call	.L_aesni_decrypt8_local_target
 movups 80(%rdi),%xmm9
 pxor %xmm10,%xmm2
 movups 96(%rdi),%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 pxor %xmm13,%xmm5
 movdqu %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 pxor %xmm14,%xmm6
 movdqu %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 pxor %xmm15,%xmm7
 movdqu %xmm6,64(%rsi)
 pxor %xmm6,%xmm6
 pxor %xmm9,%xmm8
 movdqu %xmm7,80(%rsi)
 pxor %xmm7,%xmm7
 leaq 96(%rsi),%rsi
 movdqa %xmm8,%xmm2
 pxor %xmm8,%xmm8
 pxor %xmm9,%xmm9
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7

.Lcbc_dec_tail_BCM_7:

 movups (%rdi),%xmm2
 subq $0x10,%rdx
# WAS jbe .Lcbc_dec_one
	jbe	.Lcbc_dec_one_BCM_7

 movups 16(%rdi),%xmm3
 movaps %xmm2,%xmm11
 subq $0x10,%rdx
# WAS jbe .Lcbc_dec_two
	jbe	.Lcbc_dec_two_BCM_7

 movups 32(%rdi),%xmm4
 movaps %xmm3,%xmm12
 subq $0x10,%rdx
# WAS jbe .Lcbc_dec_three
	jbe	.Lcbc_dec_three_BCM_7

 movups 48(%rdi),%xmm5
 movaps %xmm4,%xmm13
 subq $0x10,%rdx
# WAS jbe .Lcbc_dec_four
	jbe	.Lcbc_dec_four_BCM_7

 movups 64(%rdi),%xmm6
 movaps %xmm5,%xmm14
 movaps %xmm6,%xmm15
 xorps %xmm7,%xmm7
# WAS call _aesni_decrypt6
	call	.L_aesni_decrypt6_local_target
 pxor %xmm10,%xmm2
 movaps %xmm15,%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 pxor %xmm13,%xmm5
 movdqu %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 pxor %xmm14,%xmm6
 movdqu %xmm5,48(%rsi)
 pxor %xmm5,%xmm5
 leaq 64(%rsi),%rsi
 movdqa %xmm6,%xmm2
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 subq $0x10,%rdx
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7

.align 16
.Lcbc_dec_one_BCM_7:

 movaps %xmm2,%xmm11
 movups (%rcx),%xmm0
 movups 16(%rcx),%xmm1
 leaq 32(%rcx),%rcx
 xorps %xmm0,%xmm2
.Loop_dec1_15_BCM_7:

.byte 102,15,56,222,209
 decl %eax
 movups (%rcx),%xmm1
 leaq 16(%rcx),%rcx
# WAS jnz .Loop_dec1_15
	jnz	.Loop_dec1_15_BCM_7
.byte 102,15,56,223,209
 xorps %xmm10,%xmm2
 movaps %xmm11,%xmm10
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7
.align 16
.Lcbc_dec_two_BCM_7:

 movaps %xmm3,%xmm12
# WAS call _aesni_decrypt2
	call	.L_aesni_decrypt2_local_target
 pxor %xmm10,%xmm2
 movaps %xmm12,%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 movdqa %xmm3,%xmm2
 pxor %xmm3,%xmm3
 leaq 16(%rsi),%rsi
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7
.align 16
.Lcbc_dec_three_BCM_7:

 movaps %xmm4,%xmm13
# WAS call _aesni_decrypt3
	call	.L_aesni_decrypt3_local_target
 pxor %xmm10,%xmm2
 movaps %xmm13,%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 movdqa %xmm4,%xmm2
 pxor %xmm4,%xmm4
 leaq 32(%rsi),%rsi
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7
.align 16
.Lcbc_dec_four_BCM_7:

 movaps %xmm5,%xmm14
# WAS call _aesni_decrypt4
	call	.L_aesni_decrypt4_local_target
 pxor %xmm10,%xmm2
 movaps %xmm14,%xmm10
 pxor %xmm11,%xmm3
 movdqu %xmm2,(%rsi)
 pxor %xmm12,%xmm4
 movdqu %xmm3,16(%rsi)
 pxor %xmm3,%xmm3
 pxor %xmm13,%xmm5
 movdqu %xmm4,32(%rsi)
 pxor %xmm4,%xmm4
 movdqa %xmm5,%xmm2
 pxor %xmm5,%xmm5
 leaq 48(%rsi),%rsi
# WAS jmp .Lcbc_dec_tail_collected
	jmp	.Lcbc_dec_tail_collected_BCM_7

.align 16
.Lcbc_dec_clear_tail_collected_BCM_7:

 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 pxor %xmm8,%xmm8
 pxor %xmm9,%xmm9
.Lcbc_dec_tail_collected_BCM_7:

 movups %xmm10,(%r8)
 andq $15,%rdx
# WAS jnz .Lcbc_dec_tail_partial
	jnz	.Lcbc_dec_tail_partial_BCM_7
 movups %xmm2,(%rsi)
 pxor %xmm2,%xmm2
# WAS jmp .Lcbc_dec_ret
	jmp	.Lcbc_dec_ret_BCM_7
.align 16
.Lcbc_dec_tail_partial_BCM_7:

 movaps %xmm2,(%rsp)
 pxor %xmm2,%xmm2
 movq $16,%rcx
 movq %rsi,%rdi
 subq %rdx,%rcx
 leaq (%rsp),%rsi
.long 0x9066A4F3
 movdqa %xmm2,(%rsp)

.Lcbc_dec_ret_BCM_7:

 xorps %xmm0,%xmm0
 pxor %xmm1,%xmm1
 movq -8(%r11),%rbp
.cfi_restore %rbp
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lcbc_ret_BCM_7:

 .byte 0xf3,0xc3
.cfi_endproc
.size aes_hw_cbc_encrypt,.-aes_hw_cbc_encrypt
.globl aes_hw_set_decrypt_key
.hidden aes_hw_set_decrypt_key
.type aes_hw_set_decrypt_key,@function
.align 16
.Laes_hw_set_decrypt_key_local_target:
aes_hw_set_decrypt_key:
.cfi_startproc
endbr64
.byte 0x48,0x83,0xEC,0x08
.cfi_adjust_cfa_offset 8
# WAS call __aesni_set_encrypt_key
	call	.L__aesni_set_encrypt_key_local_target
 shll $4,%esi
 testl %eax,%eax
# WAS jnz .Ldec_key_ret
	jnz	.Ldec_key_ret_BCM_7
 leaq 16(%rdx,%rsi,1),%rdi

 movups (%rdx),%xmm0
 movups (%rdi),%xmm1
 movups %xmm0,(%rdi)
 movups %xmm1,(%rdx)
 leaq 16(%rdx),%rdx
 leaq -16(%rdi),%rdi

.Ldec_key_inverse_BCM_7:

 movups (%rdx),%xmm0
 movups (%rdi),%xmm1
.byte 102,15,56,219,192
.byte 102,15,56,219,201
 leaq 16(%rdx),%rdx
 leaq -16(%rdi),%rdi
 movups %xmm0,16(%rdi)
 movups %xmm1,-16(%rdx)
 cmpq %rdx,%rdi
# WAS ja .Ldec_key_inverse
	ja	.Ldec_key_inverse_BCM_7

 movups (%rdx),%xmm0
.byte 102,15,56,219,192
 pxor %xmm1,%xmm1
 movups %xmm0,(%rdi)
 pxor %xmm0,%xmm0
.Ldec_key_ret_BCM_7:

 addq $8,%rsp
.cfi_adjust_cfa_offset -8
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_set_decrypt_key_BCM_7:

.size aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key
.globl aes_hw_set_encrypt_key
.hidden aes_hw_set_encrypt_key
.type aes_hw_set_encrypt_key,@function
.align 16
.Laes_hw_set_encrypt_key_local_target:
aes_hw_set_encrypt_key:
.L__aesni_set_encrypt_key_local_target:
__aesni_set_encrypt_key:
.cfi_startproc
endbr64



.byte 0x48,0x83,0xEC,0x08
.cfi_adjust_cfa_offset 8
 movq $-1,%rax
 testq %rdi,%rdi
# WAS jz .Lenc_key_ret
	jz	.Lenc_key_ret_BCM_7
 testq %rdx,%rdx
# WAS jz .Lenc_key_ret
	jz	.Lenc_key_ret_BCM_7

 movups (%rdi),%xmm0
 xorps %xmm4,%xmm4
# WAS leaq OPENSSL_ia32cap_P(%rip),%r10
	jmp	LOPENSSL_ia32cap_P_r102
LOPENSSL_ia32cap_P_r102_return:
 movl 4(%r10),%r10d
 andl $268437504,%r10d
 leaq 16(%rdx),%rax
 cmpl $256,%esi
# WAS je .L14rounds
	je	.L14rounds_BCM_7
 cmpl $192,%esi
# WAS je .L12rounds
	je	.L12rounds_BCM_7
 cmpl $128,%esi
# WAS jne .Lbad_keybits
	jne	.Lbad_keybits_BCM_7

.L10rounds_BCM_7:

 movl $9,%esi
 cmpl $268435456,%r10d
# WAS je .L10rounds_alt
	je	.L10rounds_alt_BCM_7

 movups %xmm0,(%rdx)
.byte 102,15,58,223,200,1
# WAS call .Lkey_expansion_128_cold
	call	.Lkey_expansion_128_cold_BCM_7
.byte 102,15,58,223,200,2
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,4
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,8
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,16
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,32
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,64
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,128
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,27
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
.byte 102,15,58,223,200,54
# WAS call .Lkey_expansion_128
	call	.Lkey_expansion_128_BCM_7
 movups %xmm0,(%rax)
 movl %esi,80(%rax)
 xorl %eax,%eax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.L10rounds_alt_BCM_7:

# WAS movdqa .Lkey_rotate(%rip),%xmm5
	movdqa	.Lkey_rotate_BCM_7(%rip), %xmm5
 movl $8,%r10d
# WAS movdqa .Lkey_rcon1(%rip),%xmm4
	movdqa	.Lkey_rcon1_BCM_7(%rip), %xmm4
 movdqa %xmm0,%xmm2
 movdqu %xmm0,(%rdx)
# WAS jmp .Loop_key128
	jmp	.Loop_key128_BCM_7

.align 16
.Loop_key128_BCM_7:

.byte 102,15,56,0,197
.byte 102,15,56,221,196
 pslld $1,%xmm4
 leaq 16(%rax),%rax

 movdqa %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm3,%xmm2

 pxor %xmm2,%xmm0
 movdqu %xmm0,-16(%rax)
 movdqa %xmm0,%xmm2

 decl %r10d
# WAS jnz .Loop_key128
	jnz	.Loop_key128_BCM_7

# WAS movdqa .Lkey_rcon1b(%rip),%xmm4
	movdqa	.Lkey_rcon1b_BCM_7(%rip), %xmm4

.byte 102,15,56,0,197
.byte 102,15,56,221,196
 pslld $1,%xmm4

 movdqa %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm3,%xmm2

 pxor %xmm2,%xmm0
 movdqu %xmm0,(%rax)

 movdqa %xmm0,%xmm2
.byte 102,15,56,0,197
.byte 102,15,56,221,196

 movdqa %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm2,%xmm3
 pslldq $4,%xmm2
 pxor %xmm3,%xmm2

 pxor %xmm2,%xmm0
 movdqu %xmm0,16(%rax)

 movl %esi,96(%rax)
 xorl %eax,%eax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.L12rounds_BCM_7:

 movq 16(%rdi),%xmm2
 movl $11,%esi
 cmpl $268435456,%r10d
# WAS je .L12rounds_alt
	je	.L12rounds_alt_BCM_7

 movups %xmm0,(%rdx)
.byte 102,15,58,223,202,1
# WAS call .Lkey_expansion_192a_cold
	call	.Lkey_expansion_192a_cold_BCM_7
.byte 102,15,58,223,202,2
# WAS call .Lkey_expansion_192b
	call	.Lkey_expansion_192b_BCM_7
.byte 102,15,58,223,202,4
# WAS call .Lkey_expansion_192a
	call	.Lkey_expansion_192a_BCM_7
.byte 102,15,58,223,202,8
# WAS call .Lkey_expansion_192b
	call	.Lkey_expansion_192b_BCM_7
.byte 102,15,58,223,202,16
# WAS call .Lkey_expansion_192a
	call	.Lkey_expansion_192a_BCM_7
.byte 102,15,58,223,202,32
# WAS call .Lkey_expansion_192b
	call	.Lkey_expansion_192b_BCM_7
.byte 102,15,58,223,202,64
# WAS call .Lkey_expansion_192a
	call	.Lkey_expansion_192a_BCM_7
.byte 102,15,58,223,202,128
# WAS call .Lkey_expansion_192b
	call	.Lkey_expansion_192b_BCM_7
 movups %xmm0,(%rax)
 movl %esi,48(%rax)
 xorq %rax,%rax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.L12rounds_alt_BCM_7:

# WAS movdqa .Lkey_rotate192(%rip),%xmm5
	movdqa	.Lkey_rotate192_BCM_7(%rip), %xmm5
# WAS movdqa .Lkey_rcon1(%rip),%xmm4
	movdqa	.Lkey_rcon1_BCM_7(%rip), %xmm4
 movl $8,%r10d
 movdqu %xmm0,(%rdx)
# WAS jmp .Loop_key192
	jmp	.Loop_key192_BCM_7

.align 16
.Loop_key192_BCM_7:

 movq %xmm2,0(%rax)
 movdqa %xmm2,%xmm1
.byte 102,15,56,0,213
.byte 102,15,56,221,212
 pslld $1,%xmm4
 leaq 24(%rax),%rax

 movdqa %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm3,%xmm0

 pshufd $0xff,%xmm0,%xmm3
 pxor %xmm1,%xmm3
 pslldq $4,%xmm1
 pxor %xmm1,%xmm3

 pxor %xmm2,%xmm0
 pxor %xmm3,%xmm2
 movdqu %xmm0,-16(%rax)

 decl %r10d
# WAS jnz .Loop_key192
	jnz	.Loop_key192_BCM_7

 movl %esi,32(%rax)
 xorl %eax,%eax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.L14rounds_BCM_7:

 movups 16(%rdi),%xmm2
 movl $13,%esi
 leaq 16(%rax),%rax
 cmpl $268435456,%r10d
# WAS je .L14rounds_alt
	je	.L14rounds_alt_BCM_7

 movups %xmm0,(%rdx)
 movups %xmm2,16(%rdx)
.byte 102,15,58,223,202,1
# WAS call .Lkey_expansion_256a_cold
	call	.Lkey_expansion_256a_cold_BCM_7
.byte 102,15,58,223,200,1
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,2
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
.byte 102,15,58,223,200,2
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,4
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
.byte 102,15,58,223,200,4
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,8
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
.byte 102,15,58,223,200,8
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,16
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
.byte 102,15,58,223,200,16
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,32
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
.byte 102,15,58,223,200,32
# WAS call .Lkey_expansion_256b
	call	.Lkey_expansion_256b_BCM_7
.byte 102,15,58,223,202,64
# WAS call .Lkey_expansion_256a
	call	.Lkey_expansion_256a_BCM_7
 movups %xmm0,(%rax)
 movl %esi,16(%rax)
 xorq %rax,%rax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.L14rounds_alt_BCM_7:

# WAS movdqa .Lkey_rotate(%rip),%xmm5
	movdqa	.Lkey_rotate_BCM_7(%rip), %xmm5
# WAS movdqa .Lkey_rcon1(%rip),%xmm4
	movdqa	.Lkey_rcon1_BCM_7(%rip), %xmm4
 movl $7,%r10d
 movdqu %xmm0,0(%rdx)
 movdqa %xmm2,%xmm1
 movdqu %xmm2,16(%rdx)
# WAS jmp .Loop_key256
	jmp	.Loop_key256_BCM_7

.align 16
.Loop_key256_BCM_7:

.byte 102,15,56,0,213
.byte 102,15,56,221,212

 movdqa %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm0,%xmm3
 pslldq $4,%xmm0
 pxor %xmm3,%xmm0
 pslld $1,%xmm4

 pxor %xmm2,%xmm0
 movdqu %xmm0,(%rax)

 decl %r10d
# WAS jz .Ldone_key256
	jz	.Ldone_key256_BCM_7

 pshufd $0xff,%xmm0,%xmm2
 pxor %xmm3,%xmm3
.byte 102,15,56,221,211

 movdqa %xmm1,%xmm3
 pslldq $4,%xmm1
 pxor %xmm1,%xmm3
 pslldq $4,%xmm1
 pxor %xmm1,%xmm3
 pslldq $4,%xmm1
 pxor %xmm3,%xmm1

 pxor %xmm1,%xmm2
 movdqu %xmm2,16(%rax)
 leaq 32(%rax),%rax
 movdqa %xmm2,%xmm1

# WAS jmp .Loop_key256
	jmp	.Loop_key256_BCM_7

.Ldone_key256_BCM_7:

 movl %esi,16(%rax)
 xorl %eax,%eax
# WAS jmp .Lenc_key_ret
	jmp	.Lenc_key_ret_BCM_7

.align 16
.Lbad_keybits_BCM_7:

 movq $-2,%rax
.Lenc_key_ret_BCM_7:

 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 addq $8,%rsp
.cfi_adjust_cfa_offset -8
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_set_encrypt_key_BCM_7:


.align 16
.Lkey_expansion_128_BCM_7:

 movups %xmm0,(%rax)
 leaq 16(%rax),%rax
.Lkey_expansion_128_cold_BCM_7:

 shufps $16,%xmm0,%xmm4
 xorps %xmm4,%xmm0
 shufps $140,%xmm0,%xmm4
 xorps %xmm4,%xmm0
 shufps $255,%xmm1,%xmm1
 xorps %xmm1,%xmm0
 .byte 0xf3,0xc3

.align 16
.Lkey_expansion_192a_BCM_7:

 movups %xmm0,(%rax)
 leaq 16(%rax),%rax
.Lkey_expansion_192a_cold_BCM_7:

 movaps %xmm2,%xmm5
.Lkey_expansion_192b_warm_BCM_7:

 shufps $16,%xmm0,%xmm4
 movdqa %xmm2,%xmm3
 xorps %xmm4,%xmm0
 shufps $140,%xmm0,%xmm4
 pslldq $4,%xmm3
 xorps %xmm4,%xmm0
 pshufd $85,%xmm1,%xmm1
 pxor %xmm3,%xmm2
 pxor %xmm1,%xmm0
 pshufd $255,%xmm0,%xmm3
 pxor %xmm3,%xmm2
 .byte 0xf3,0xc3

.align 16
.Lkey_expansion_192b_BCM_7:

 movaps %xmm0,%xmm3
 shufps $68,%xmm0,%xmm5
 movups %xmm5,(%rax)
 shufps $78,%xmm2,%xmm3
 movups %xmm3,16(%rax)
 leaq 32(%rax),%rax
# WAS jmp .Lkey_expansion_192b_warm
	jmp	.Lkey_expansion_192b_warm_BCM_7

.align 16
.Lkey_expansion_256a_BCM_7:

 movups %xmm2,(%rax)
 leaq 16(%rax),%rax
.Lkey_expansion_256a_cold_BCM_7:

 shufps $16,%xmm0,%xmm4
 xorps %xmm4,%xmm0
 shufps $140,%xmm0,%xmm4
 xorps %xmm4,%xmm0
 shufps $255,%xmm1,%xmm1
 xorps %xmm1,%xmm0
 .byte 0xf3,0xc3

.align 16
.Lkey_expansion_256b_BCM_7:

 movups %xmm0,(%rax)
 leaq 16(%rax),%rax

 shufps $16,%xmm2,%xmm4
 xorps %xmm4,%xmm2
 shufps $140,%xmm2,%xmm4
 xorps %xmm4,%xmm2
 shufps $170,%xmm1,%xmm1
 xorps %xmm1,%xmm2
 .byte 0xf3,0xc3
.size aes_hw_set_encrypt_key,.-aes_hw_set_encrypt_key
.size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
# WAS .section .rodata
.text
.align 64
.Lbswap_mask_BCM_7:

.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.Lincrement32_BCM_7:

.long 6,6,6,0
.Lincrement64_BCM_7:

.long 1,0,0,0
.Lxts_magic_BCM_7:

.long 0x87,0,1,0
.Lincrement1_BCM_7:

.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
.Lkey_rotate_BCM_7:

.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
.Lkey_rotate192_BCM_7:

.long 0x04070605,0x04070605,0x04070605,0x04070605
.Lkey_rcon1_BCM_7:

.long 1,1,1,1
.Lkey_rcon1b_BCM_7:

.long 0x1b,0x1b,0x1b,0x1b

.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.text
# 0 "ghash-ssse3-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "ghash-ssse3-x86_64.S"



#include <openssl/asm_base.h>
# 4 "ghash-ssse3-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "ghash-ssse3-x86_64.S" 2


.text





.type gcm_gmult_ssse3, @function
.globl gcm_gmult_ssse3
.hidden gcm_gmult_ssse3
.align 16
.Lgcm_gmult_ssse3_local_target:
gcm_gmult_ssse3:
.cfi_startproc

endbr64
 movdqu (%rdi),%xmm0
# WAS movdqa .Lreverse_bytes(%rip),%xmm10
	movdqa	.Lreverse_bytes_BCM_8(%rip), %xmm10
# WAS movdqa .Llow4_mask(%rip),%xmm2
	movdqa	.Llow4_mask_BCM_8(%rip), %xmm2


.byte 102,65,15,56,0,194


 movdqa %xmm2,%xmm1
 pandn %xmm0,%xmm1
 psrld $4,%xmm1
 pand %xmm2,%xmm0




 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 movq $5,%rax
.Loop_row_1_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_1
	jnz	.Loop_row_1_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movq $5,%rax
.Loop_row_2_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_2
	jnz	.Loop_row_2_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movq $6,%rax
.Loop_row_3_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_3
	jnz	.Loop_row_3_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3

.byte 102,65,15,56,0,210
 movdqu %xmm2,(%rdi)


 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 .byte 0xf3,0xc3
.cfi_endproc

.size gcm_gmult_ssse3,.-gcm_gmult_ssse3





.type gcm_ghash_ssse3, @function
.globl gcm_ghash_ssse3
.hidden gcm_ghash_ssse3
.align 16
.Lgcm_ghash_ssse3_local_target:
gcm_ghash_ssse3:
.cfi_startproc

endbr64
 movdqu (%rdi),%xmm0
# WAS movdqa .Lreverse_bytes(%rip),%xmm10
	movdqa	.Lreverse_bytes_BCM_8(%rip), %xmm10
# WAS movdqa .Llow4_mask(%rip),%xmm11
	movdqa	.Llow4_mask_BCM_8(%rip), %xmm11


 andq $-16,%rcx



.byte 102,65,15,56,0,194


 pxor %xmm3,%xmm3
.Loop_ghash_BCM_8:


 movdqu (%rdx),%xmm1
.byte 102,65,15,56,0,202
 pxor %xmm1,%xmm0


 movdqa %xmm11,%xmm1
 pandn %xmm0,%xmm1
 psrld $4,%xmm1
 pand %xmm11,%xmm0




 pxor %xmm2,%xmm2

 movq $5,%rax
.Loop_row_4_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_4
	jnz	.Loop_row_4_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movq $5,%rax
.Loop_row_5_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_5
	jnz	.Loop_row_5_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movq $6,%rax
.Loop_row_6_BCM_8:

 movdqa (%rsi),%xmm4
 leaq 16(%rsi),%rsi


 movdqa %xmm2,%xmm6
.byte 102,15,58,15,243,1
 movdqa %xmm6,%xmm3
 psrldq $1,%xmm2




 movdqa %xmm4,%xmm5
.byte 102,15,56,0,224
.byte 102,15,56,0,233


 pxor %xmm5,%xmm2



 movdqa %xmm4,%xmm5
 psllq $60,%xmm5
 movdqa %xmm5,%xmm6
 pslldq $8,%xmm6
 pxor %xmm6,%xmm3


 psrldq $8,%xmm5
 pxor %xmm5,%xmm2
 psrlq $4,%xmm4
 pxor %xmm4,%xmm2

 subq $1,%rax
# WAS jnz .Loop_row_6
	jnz	.Loop_row_6_BCM_8



 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $1,%xmm3
 pxor %xmm3,%xmm2
 psrlq $5,%xmm3
 pxor %xmm3,%xmm2
 pxor %xmm3,%xmm3
 movdqa %xmm2,%xmm0


 leaq -256(%rsi),%rsi


 leaq 16(%rdx),%rdx
 subq $16,%rcx
# WAS jnz .Loop_ghash
	jnz	.Loop_ghash_BCM_8


.byte 102,65,15,56,0,194
 movdqu %xmm0,(%rdi)


 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 .byte 0xf3,0xc3
.cfi_endproc

.size gcm_ghash_ssse3,.-gcm_ghash_ssse3

# WAS .section .rodata
.text
.align 16


.Lreverse_bytes_BCM_8:

.byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

.Llow4_mask_BCM_8:

.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
.text
# 0 "ghash-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "ghash-x86_64.S"



#include <openssl/asm_base.h>
# 4 "ghash-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "ghash-x86_64.S" 2


.text
.globl gcm_init_clmul
.hidden gcm_init_clmul
.type gcm_init_clmul,@function
.align 16
.Lgcm_init_clmul_local_target:
gcm_init_clmul:
.cfi_startproc

endbr64
.L_init_clmul_BCM_9:

 movdqu (%rsi),%xmm2
 pshufd $78,%xmm2,%xmm2


 pshufd $255,%xmm2,%xmm4
 movdqa %xmm2,%xmm3
 psllq $1,%xmm2
 pxor %xmm5,%xmm5
 psrlq $63,%xmm3
 pcmpgtd %xmm4,%xmm5
 pslldq $8,%xmm3
 por %xmm3,%xmm2


# WAS pand .L0x1c2_polynomial(%rip),%xmm5
	pand	.L0x1c2_polynomial_BCM_9(%rip), %xmm5
 pxor %xmm5,%xmm2


 pshufd $78,%xmm2,%xmm6
 movdqa %xmm2,%xmm0
 pxor %xmm2,%xmm6
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm3
 pxor %xmm0,%xmm3
.byte 102,15,58,68,194,0
.byte 102,15,58,68,202,17
.byte 102,15,58,68,222,0
 pxor %xmm0,%xmm3
 pxor %xmm1,%xmm3

 movdqa %xmm3,%xmm4
 psrldq $8,%xmm3
 pslldq $8,%xmm4
 pxor %xmm3,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 pshufd $78,%xmm2,%xmm3
 pshufd $78,%xmm0,%xmm4
 pxor %xmm2,%xmm3
 movdqu %xmm2,0(%rdi)
 pxor %xmm0,%xmm4
 movdqu %xmm0,16(%rdi)
.byte 102,15,58,15,227,8
 movdqu %xmm4,32(%rdi)
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm3
 pxor %xmm0,%xmm3
.byte 102,15,58,68,194,0
.byte 102,15,58,68,202,17
.byte 102,15,58,68,222,0
 pxor %xmm0,%xmm3
 pxor %xmm1,%xmm3

 movdqa %xmm3,%xmm4
 psrldq $8,%xmm3
 pslldq $8,%xmm4
 pxor %xmm3,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 movdqa %xmm0,%xmm5
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm3
 pxor %xmm0,%xmm3
.byte 102,15,58,68,194,0
.byte 102,15,58,68,202,17
.byte 102,15,58,68,222,0
 pxor %xmm0,%xmm3
 pxor %xmm1,%xmm3

 movdqa %xmm3,%xmm4
 psrldq $8,%xmm3
 pslldq $8,%xmm4
 pxor %xmm3,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 pshufd $78,%xmm5,%xmm3
 pshufd $78,%xmm0,%xmm4
 pxor %xmm5,%xmm3
 movdqu %xmm5,48(%rdi)
 pxor %xmm0,%xmm4
 movdqu %xmm0,64(%rdi)
.byte 102,15,58,15,227,8
 movdqu %xmm4,80(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc

.size gcm_init_clmul,.-gcm_init_clmul
.globl gcm_gmult_clmul
.hidden gcm_gmult_clmul
.type gcm_gmult_clmul,@function
.align 16
.Lgcm_gmult_clmul_local_target:
gcm_gmult_clmul:
.cfi_startproc
endbr64
.L_gmult_clmul_BCM_9:

 movdqu (%rdi),%xmm0
# WAS movdqa .Lbswap_mask(%rip),%xmm5
	movdqa	.Lbswap_mask_BCM_9(%rip), %xmm5
 movdqu (%rsi),%xmm2
 movdqu 32(%rsi),%xmm4
.byte 102,15,56,0,197
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm3
 pxor %xmm0,%xmm3
.byte 102,15,58,68,194,0
.byte 102,15,58,68,202,17
.byte 102,15,58,68,220,0
 pxor %xmm0,%xmm3
 pxor %xmm1,%xmm3

 movdqa %xmm3,%xmm4
 psrldq $8,%xmm3
 pslldq $8,%xmm4
 pxor %xmm3,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
.byte 102,15,56,0,197
 movdqu %xmm0,(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.size gcm_gmult_clmul,.-gcm_gmult_clmul
.globl gcm_ghash_clmul
.hidden gcm_ghash_clmul
.type gcm_ghash_clmul,@function
.align 32
.Lgcm_ghash_clmul_local_target:
gcm_ghash_clmul:
.cfi_startproc

endbr64
.L_ghash_clmul_BCM_9:

# WAS movdqa .Lbswap_mask(%rip),%xmm10
	movdqa	.Lbswap_mask_BCM_9(%rip), %xmm10

 movdqu (%rdi),%xmm0
 movdqu (%rsi),%xmm2
 movdqu 32(%rsi),%xmm7
.byte 102,65,15,56,0,194

 subq $0x10,%rcx
# WAS jz .Lodd_tail
	jz	.Lodd_tail_BCM_9

 movdqu 16(%rsi),%xmm6
 cmpq $0x30,%rcx
# WAS jb .Lskip4x
	jb	.Lskip4x_BCM_9

 subq $0x30,%rcx
 movq $0xA040608020C0E000,%rax
 movdqu 48(%rsi),%xmm14
 movdqu 64(%rsi),%xmm15




 movdqu 48(%rdx),%xmm3
 movdqu 32(%rdx),%xmm11
.byte 102,65,15,56,0,218
.byte 102,69,15,56,0,218
 movdqa %xmm3,%xmm5
 pshufd $78,%xmm3,%xmm4
 pxor %xmm3,%xmm4
.byte 102,15,58,68,218,0
.byte 102,15,58,68,234,17
.byte 102,15,58,68,231,0

 movdqa %xmm11,%xmm13
 pshufd $78,%xmm11,%xmm12
 pxor %xmm11,%xmm12
.byte 102,68,15,58,68,222,0
.byte 102,68,15,58,68,238,17
.byte 102,68,15,58,68,231,16
 xorps %xmm11,%xmm3
 xorps %xmm13,%xmm5
 movups 80(%rsi),%xmm7
 xorps %xmm12,%xmm4

 movdqu 16(%rdx),%xmm11
 movdqu 0(%rdx),%xmm8
.byte 102,69,15,56,0,218
.byte 102,69,15,56,0,194
 movdqa %xmm11,%xmm13
 pshufd $78,%xmm11,%xmm12
 pxor %xmm8,%xmm0
 pxor %xmm11,%xmm12
.byte 102,69,15,58,68,222,0
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm8
 pxor %xmm0,%xmm8
.byte 102,69,15,58,68,238,17
.byte 102,68,15,58,68,231,0
 xorps %xmm11,%xmm3
 xorps %xmm13,%xmm5

 leaq 64(%rdx),%rdx
 subq $0x40,%rcx
# WAS jc .Ltail4x
	jc	.Ltail4x_BCM_9

# WAS jmp .Lmod4_loop
	jmp	.Lmod4_loop_BCM_9
.align 32
.Lmod4_loop_BCM_9:

.byte 102,65,15,58,68,199,0
 xorps %xmm12,%xmm4
 movdqu 48(%rdx),%xmm11
.byte 102,69,15,56,0,218
.byte 102,65,15,58,68,207,17
 xorps %xmm3,%xmm0
 movdqu 32(%rdx),%xmm3
 movdqa %xmm11,%xmm13
.byte 102,68,15,58,68,199,16
 pshufd $78,%xmm11,%xmm12
 xorps %xmm5,%xmm1
 pxor %xmm11,%xmm12
.byte 102,65,15,56,0,218
 movups 32(%rsi),%xmm7
 xorps %xmm4,%xmm8
.byte 102,68,15,58,68,218,0
 pshufd $78,%xmm3,%xmm4

 pxor %xmm0,%xmm8
 movdqa %xmm3,%xmm5
 pxor %xmm1,%xmm8
 pxor %xmm3,%xmm4
 movdqa %xmm8,%xmm9
.byte 102,68,15,58,68,234,17
 pslldq $8,%xmm8
 psrldq $8,%xmm9
 pxor %xmm8,%xmm0
# WAS movdqa .L7_mask(%rip),%xmm8
	movdqa	.L7_mask_BCM_9(%rip), %xmm8
 pxor %xmm9,%xmm1
.byte 102,76,15,110,200

 pand %xmm0,%xmm8
.byte 102,69,15,56,0,200
 pxor %xmm0,%xmm9
.byte 102,68,15,58,68,231,0
 psllq $57,%xmm9
 movdqa %xmm9,%xmm8
 pslldq $8,%xmm9
.byte 102,15,58,68,222,0
 psrldq $8,%xmm8
 pxor %xmm9,%xmm0
 pxor %xmm8,%xmm1
 movdqu 0(%rdx),%xmm8

 movdqa %xmm0,%xmm9
 psrlq $1,%xmm0
.byte 102,15,58,68,238,17
 xorps %xmm11,%xmm3
 movdqu 16(%rdx),%xmm11
.byte 102,69,15,56,0,218
.byte 102,15,58,68,231,16
 xorps %xmm13,%xmm5
 movups 80(%rsi),%xmm7
.byte 102,69,15,56,0,194
 pxor %xmm9,%xmm1
 pxor %xmm0,%xmm9
 psrlq $5,%xmm0

 movdqa %xmm11,%xmm13
 pxor %xmm12,%xmm4
 pshufd $78,%xmm11,%xmm12
 pxor %xmm9,%xmm0
 pxor %xmm8,%xmm1
 pxor %xmm11,%xmm12
.byte 102,69,15,58,68,222,0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 movdqa %xmm0,%xmm1
.byte 102,69,15,58,68,238,17
 xorps %xmm11,%xmm3
 pshufd $78,%xmm0,%xmm8
 pxor %xmm0,%xmm8

.byte 102,68,15,58,68,231,0
 xorps %xmm13,%xmm5

 leaq 64(%rdx),%rdx
 subq $0x40,%rcx
# WAS jnc .Lmod4_loop
	jnc	.Lmod4_loop_BCM_9

.Ltail4x_BCM_9:

.byte 102,65,15,58,68,199,0
.byte 102,65,15,58,68,207,17
.byte 102,68,15,58,68,199,16
 xorps %xmm12,%xmm4
 xorps %xmm3,%xmm0
 xorps %xmm5,%xmm1
 pxor %xmm0,%xmm1
 pxor %xmm4,%xmm8

 pxor %xmm1,%xmm8
 pxor %xmm0,%xmm1

 movdqa %xmm8,%xmm9
 psrldq $8,%xmm8
 pslldq $8,%xmm9
 pxor %xmm8,%xmm1
 pxor %xmm9,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 addq $0x40,%rcx
# WAS jz .Ldone
	jz	.Ldone_BCM_9
 movdqu 32(%rsi),%xmm7
 subq $0x10,%rcx
# WAS jz .Lodd_tail
	jz	.Lodd_tail_BCM_9
.Lskip4x_BCM_9:






 movdqu (%rdx),%xmm8
 movdqu 16(%rdx),%xmm3
.byte 102,69,15,56,0,194
.byte 102,65,15,56,0,218
 pxor %xmm8,%xmm0

 movdqa %xmm3,%xmm5
 pshufd $78,%xmm3,%xmm4
 pxor %xmm3,%xmm4
.byte 102,15,58,68,218,0
.byte 102,15,58,68,234,17
.byte 102,15,58,68,231,0

 leaq 32(%rdx),%rdx
 nop
 subq $0x20,%rcx
# WAS jbe .Leven_tail
	jbe	.Leven_tail_BCM_9
 nop
# WAS jmp .Lmod_loop
	jmp	.Lmod_loop_BCM_9

.align 32
.Lmod_loop_BCM_9:

 movdqa %xmm0,%xmm1
 movdqa %xmm4,%xmm8
 pshufd $78,%xmm0,%xmm4
 pxor %xmm0,%xmm4

.byte 102,15,58,68,198,0
.byte 102,15,58,68,206,17
.byte 102,15,58,68,231,16

 pxor %xmm3,%xmm0
 pxor %xmm5,%xmm1
 movdqu (%rdx),%xmm9
 pxor %xmm0,%xmm8
.byte 102,69,15,56,0,202
 movdqu 16(%rdx),%xmm3

 pxor %xmm1,%xmm8
 pxor %xmm9,%xmm1
 pxor %xmm8,%xmm4
.byte 102,65,15,56,0,218
 movdqa %xmm4,%xmm8
 psrldq $8,%xmm8
 pslldq $8,%xmm4
 pxor %xmm8,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm3,%xmm5

 movdqa %xmm0,%xmm9
 movdqa %xmm0,%xmm8
 psllq $5,%xmm0
 pxor %xmm0,%xmm8
.byte 102,15,58,68,218,0
 psllq $1,%xmm0
 pxor %xmm8,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm8
 pslldq $8,%xmm0
 psrldq $8,%xmm8
 pxor %xmm9,%xmm0
 pshufd $78,%xmm5,%xmm4
 pxor %xmm8,%xmm1
 pxor %xmm5,%xmm4

 movdqa %xmm0,%xmm9
 psrlq $1,%xmm0
.byte 102,15,58,68,234,17
 pxor %xmm9,%xmm1
 pxor %xmm0,%xmm9
 psrlq $5,%xmm0
 pxor %xmm9,%xmm0
 leaq 32(%rdx),%rdx
 psrlq $1,%xmm0
.byte 102,15,58,68,231,0
 pxor %xmm1,%xmm0

 subq $0x20,%rcx
# WAS ja .Lmod_loop
	ja	.Lmod_loop_BCM_9

.Leven_tail_BCM_9:

 movdqa %xmm0,%xmm1
 movdqa %xmm4,%xmm8
 pshufd $78,%xmm0,%xmm4
 pxor %xmm0,%xmm4

.byte 102,15,58,68,198,0
.byte 102,15,58,68,206,17
.byte 102,15,58,68,231,16

 pxor %xmm3,%xmm0
 pxor %xmm5,%xmm1
 pxor %xmm0,%xmm8
 pxor %xmm1,%xmm8
 pxor %xmm8,%xmm4
 movdqa %xmm4,%xmm8
 psrldq $8,%xmm8
 pslldq $8,%xmm4
 pxor %xmm8,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
 testq %rcx,%rcx
# WAS jnz .Ldone
	jnz	.Ldone_BCM_9

.Lodd_tail_BCM_9:

 movdqu (%rdx),%xmm8
.byte 102,69,15,56,0,194
 pxor %xmm8,%xmm0
 movdqa %xmm0,%xmm1
 pshufd $78,%xmm0,%xmm3
 pxor %xmm0,%xmm3
.byte 102,15,58,68,194,0
.byte 102,15,58,68,202,17
.byte 102,15,58,68,223,0
 pxor %xmm0,%xmm3
 pxor %xmm1,%xmm3

 movdqa %xmm3,%xmm4
 psrldq $8,%xmm3
 pslldq $8,%xmm4
 pxor %xmm3,%xmm1
 pxor %xmm4,%xmm0

 movdqa %xmm0,%xmm4
 movdqa %xmm0,%xmm3
 psllq $5,%xmm0
 pxor %xmm0,%xmm3
 psllq $1,%xmm0
 pxor %xmm3,%xmm0
 psllq $57,%xmm0
 movdqa %xmm0,%xmm3
 pslldq $8,%xmm0
 psrldq $8,%xmm3
 pxor %xmm4,%xmm0
 pxor %xmm3,%xmm1


 movdqa %xmm0,%xmm4
 psrlq $1,%xmm0
 pxor %xmm4,%xmm1
 pxor %xmm0,%xmm4
 psrlq $5,%xmm0
 pxor %xmm4,%xmm0
 psrlq $1,%xmm0
 pxor %xmm1,%xmm0
.Ldone_BCM_9:

.byte 102,65,15,56,0,194
 movdqu %xmm0,(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc

.size gcm_ghash_clmul,.-gcm_ghash_clmul
.globl gcm_init_avx
.hidden gcm_init_avx
.type gcm_init_avx,@function
.align 32
.Lgcm_init_avx_local_target:
gcm_init_avx:
.cfi_startproc
endbr64
 vzeroupper

 vmovdqu (%rsi),%xmm2
 vpshufd $78,%xmm2,%xmm2


 vpshufd $255,%xmm2,%xmm4
 vpsrlq $63,%xmm2,%xmm3
 vpsllq $1,%xmm2,%xmm2
 vpxor %xmm5,%xmm5,%xmm5
 vpcmpgtd %xmm4,%xmm5,%xmm5
 vpslldq $8,%xmm3,%xmm3
 vpor %xmm3,%xmm2,%xmm2


# WAS vpand .L0x1c2_polynomial(%rip),%xmm5,%xmm5
	vpand	.L0x1c2_polynomial_BCM_9(%rip), %xmm5, %xmm5
 vpxor %xmm5,%xmm2,%xmm2

 vpunpckhqdq %xmm2,%xmm2,%xmm6
 vmovdqa %xmm2,%xmm0
 vpxor %xmm2,%xmm6,%xmm6
 movq $4,%r10
# WAS jmp .Linit_start_avx
	jmp	.Linit_start_avx_BCM_9
.align 32
.Linit_loop_avx_BCM_9:

 vpalignr $8,%xmm3,%xmm4,%xmm5
 vmovdqu %xmm5,-16(%rdi)
 vpunpckhqdq %xmm0,%xmm0,%xmm3
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1
 vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0
 vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3
 vpxor %xmm0,%xmm1,%xmm4
 vpxor %xmm4,%xmm3,%xmm3

 vpslldq $8,%xmm3,%xmm4
 vpsrldq $8,%xmm3,%xmm3
 vpxor %xmm4,%xmm0,%xmm0
 vpxor %xmm3,%xmm1,%xmm1
 vpsllq $57,%xmm0,%xmm3
 vpsllq $62,%xmm0,%xmm4
 vpxor %xmm3,%xmm4,%xmm4
 vpsllq $63,%xmm0,%xmm3
 vpxor %xmm3,%xmm4,%xmm4
 vpslldq $8,%xmm4,%xmm3
 vpsrldq $8,%xmm4,%xmm4
 vpxor %xmm3,%xmm0,%xmm0
 vpxor %xmm4,%xmm1,%xmm1

 vpsrlq $1,%xmm0,%xmm4
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm4,%xmm0,%xmm0
 vpsrlq $5,%xmm4,%xmm4
 vpxor %xmm4,%xmm0,%xmm0
 vpsrlq $1,%xmm0,%xmm0
 vpxor %xmm1,%xmm0,%xmm0
.Linit_start_avx_BCM_9:

 vmovdqa %xmm0,%xmm5
 vpunpckhqdq %xmm0,%xmm0,%xmm3
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1
 vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0
 vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3
 vpxor %xmm0,%xmm1,%xmm4
 vpxor %xmm4,%xmm3,%xmm3

 vpslldq $8,%xmm3,%xmm4
 vpsrldq $8,%xmm3,%xmm3
 vpxor %xmm4,%xmm0,%xmm0
 vpxor %xmm3,%xmm1,%xmm1
 vpsllq $57,%xmm0,%xmm3
 vpsllq $62,%xmm0,%xmm4
 vpxor %xmm3,%xmm4,%xmm4
 vpsllq $63,%xmm0,%xmm3
 vpxor %xmm3,%xmm4,%xmm4
 vpslldq $8,%xmm4,%xmm3
 vpsrldq $8,%xmm4,%xmm4
 vpxor %xmm3,%xmm0,%xmm0
 vpxor %xmm4,%xmm1,%xmm1

 vpsrlq $1,%xmm0,%xmm4
 vpxor %xmm0,%xmm1,%xmm1
 vpxor %xmm4,%xmm0,%xmm0
 vpsrlq $5,%xmm4,%xmm4
 vpxor %xmm4,%xmm0,%xmm0
 vpsrlq $1,%xmm0,%xmm0
 vpxor %xmm1,%xmm0,%xmm0
 vpshufd $78,%xmm5,%xmm3
 vpshufd $78,%xmm0,%xmm4
 vpxor %xmm5,%xmm3,%xmm3
 vmovdqu %xmm5,0(%rdi)
 vpxor %xmm0,%xmm4,%xmm4
 vmovdqu %xmm0,16(%rdi)
 leaq 48(%rdi),%rdi
 subq $1,%r10
# WAS jnz .Linit_loop_avx
	jnz	.Linit_loop_avx_BCM_9

 vpalignr $8,%xmm4,%xmm3,%xmm5
 vmovdqu %xmm5,-16(%rdi)

 vzeroupper
 .byte 0xf3,0xc3

.cfi_endproc
.size gcm_init_avx,.-gcm_init_avx
.globl gcm_gmult_avx
.hidden gcm_gmult_avx
.type gcm_gmult_avx,@function
.align 32
.Lgcm_gmult_avx_local_target:
gcm_gmult_avx:
.cfi_startproc
endbr64
# WAS jmp .L_gmult_clmul
	jmp	.L_gmult_clmul_BCM_9
.cfi_endproc
.size gcm_gmult_avx,.-gcm_gmult_avx
.globl gcm_ghash_avx
.hidden gcm_ghash_avx
.type gcm_ghash_avx,@function
.align 32
.Lgcm_ghash_avx_local_target:
gcm_ghash_avx:
.cfi_startproc
endbr64
 vzeroupper

 vmovdqu (%rdi),%xmm10
# WAS leaq .L0x1c2_polynomial(%rip),%r10
	leaq	.L0x1c2_polynomial_BCM_9(%rip), %r10
 leaq 64(%rsi),%rsi
# WAS vmovdqu .Lbswap_mask(%rip),%xmm13
	vmovdqu	.Lbswap_mask_BCM_9(%rip), %xmm13
 vpshufb %xmm13,%xmm10,%xmm10
 cmpq $0x80,%rcx
# WAS jb .Lshort_avx
	jb	.Lshort_avx_BCM_9
 subq $0x80,%rcx

 vmovdqu 112(%rdx),%xmm14
 vmovdqu 0-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm14
 vmovdqu 32-64(%rsi),%xmm7

 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vmovdqu 96(%rdx),%xmm15
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpxor %xmm14,%xmm9,%xmm9
 vpshufb %xmm13,%xmm15,%xmm15
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 16-64(%rsi),%xmm6
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vmovdqu 80(%rdx),%xmm14
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vpxor %xmm15,%xmm8,%xmm8

 vpshufb %xmm13,%xmm14,%xmm14
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vmovdqu 48-64(%rsi),%xmm6
 vpxor %xmm14,%xmm9,%xmm9
 vmovdqu 64(%rdx),%xmm15
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 80-64(%rsi),%xmm7

 vpshufb %xmm13,%xmm15,%xmm15
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpxor %xmm1,%xmm4,%xmm4
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 64-64(%rsi),%xmm6
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vpxor %xmm15,%xmm8,%xmm8

 vmovdqu 48(%rdx),%xmm14
 vpxor %xmm3,%xmm0,%xmm0
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpxor %xmm4,%xmm1,%xmm1
 vpshufb %xmm13,%xmm14,%xmm14
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vmovdqu 96-64(%rsi),%xmm6
 vpxor %xmm5,%xmm2,%xmm2
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 128-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9

 vmovdqu 32(%rdx),%xmm15
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpxor %xmm1,%xmm4,%xmm4
 vpshufb %xmm13,%xmm15,%xmm15
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 112-64(%rsi),%xmm6
 vpxor %xmm2,%xmm5,%xmm5
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vpxor %xmm15,%xmm8,%xmm8

 vmovdqu 16(%rdx),%xmm14
 vpxor %xmm3,%xmm0,%xmm0
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpxor %xmm4,%xmm1,%xmm1
 vpshufb %xmm13,%xmm14,%xmm14
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vmovdqu 144-64(%rsi),%xmm6
 vpxor %xmm5,%xmm2,%xmm2
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 176-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9

 vmovdqu (%rdx),%xmm15
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpxor %xmm1,%xmm4,%xmm4
 vpshufb %xmm13,%xmm15,%xmm15
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 160-64(%rsi),%xmm6
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2

 leaq 128(%rdx),%rdx
 cmpq $0x80,%rcx
# WAS jb .Ltail_avx
	jb	.Ltail_avx_BCM_9

 vpxor %xmm10,%xmm15,%xmm15
 subq $0x80,%rcx
# WAS jmp .Loop8x_avx
	jmp	.Loop8x_avx_BCM_9

.align 32
.Loop8x_avx_BCM_9:

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vmovdqu 112(%rdx),%xmm14
 vpxor %xmm0,%xmm3,%xmm3
 vpxor %xmm15,%xmm8,%xmm8
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm10
 vpshufb %xmm13,%xmm14,%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm11
 vmovdqu 0-64(%rsi),%xmm6
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm12
 vmovdqu 32-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9

 vmovdqu 96(%rdx),%xmm15
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpxor %xmm3,%xmm10,%xmm10
 vpshufb %xmm13,%xmm15,%xmm15
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vxorps %xmm4,%xmm11,%xmm11
 vmovdqu 16-64(%rsi),%xmm6
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vpxor %xmm5,%xmm12,%xmm12
 vxorps %xmm15,%xmm8,%xmm8

 vmovdqu 80(%rdx),%xmm14
 vpxor %xmm10,%xmm12,%xmm12
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpxor %xmm11,%xmm12,%xmm12
 vpslldq $8,%xmm12,%xmm9
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vpsrldq $8,%xmm12,%xmm12
 vpxor %xmm9,%xmm10,%xmm10
 vmovdqu 48-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm14
 vxorps %xmm12,%xmm11,%xmm11
 vpxor %xmm1,%xmm4,%xmm4
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 80-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9
 vpxor %xmm2,%xmm5,%xmm5

 vmovdqu 64(%rdx),%xmm15
 vpalignr $8,%xmm10,%xmm10,%xmm12
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpshufb %xmm13,%xmm15,%xmm15
 vpxor %xmm3,%xmm0,%xmm0
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 64-64(%rsi),%xmm6
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm4,%xmm1,%xmm1
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vxorps %xmm15,%xmm8,%xmm8
 vpxor %xmm5,%xmm2,%xmm2

 vmovdqu 48(%rdx),%xmm14
 vpclmulqdq $0x10,(%r10),%xmm10,%xmm10
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpshufb %xmm13,%xmm14,%xmm14
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vmovdqu 96-64(%rsi),%xmm6
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 128-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9
 vpxor %xmm2,%xmm5,%xmm5

 vmovdqu 32(%rdx),%xmm15
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpshufb %xmm13,%xmm15,%xmm15
 vpxor %xmm3,%xmm0,%xmm0
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 112-64(%rsi),%xmm6
 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm4,%xmm1,%xmm1
 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
 vpxor %xmm15,%xmm8,%xmm8
 vpxor %xmm5,%xmm2,%xmm2
 vxorps %xmm12,%xmm10,%xmm10

 vmovdqu 16(%rdx),%xmm14
 vpalignr $8,%xmm10,%xmm10,%xmm12
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
 vpshufb %xmm13,%xmm14,%xmm14
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
 vmovdqu 144-64(%rsi),%xmm6
 vpclmulqdq $0x10,(%r10),%xmm10,%xmm10
 vxorps %xmm11,%xmm12,%xmm12
 vpunpckhqdq %xmm14,%xmm14,%xmm9
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
 vmovdqu 176-64(%rsi),%xmm7
 vpxor %xmm14,%xmm9,%xmm9
 vpxor %xmm2,%xmm5,%xmm5

 vmovdqu (%rdx),%xmm15
 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
 vpshufb %xmm13,%xmm15,%xmm15
 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
 vmovdqu 160-64(%rsi),%xmm6
 vpxor %xmm12,%xmm15,%xmm15
 vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2
 vpxor %xmm10,%xmm15,%xmm15

 leaq 128(%rdx),%rdx
 subq $0x80,%rcx
# WAS jnc .Loop8x_avx
	jnc	.Loop8x_avx_BCM_9

 addq $0x80,%rcx
# WAS jmp .Ltail_no_xor_avx
	jmp	.Ltail_no_xor_avx_BCM_9

.align 32
.Lshort_avx_BCM_9:

 vmovdqu -16(%rdx,%rcx,1),%xmm14
 leaq (%rdx,%rcx,1),%rdx
 vmovdqu 0-64(%rsi),%xmm6
 vmovdqu 32-64(%rsi),%xmm7
 vpshufb %xmm13,%xmm14,%xmm15

 vmovdqa %xmm0,%xmm3
 vmovdqa %xmm1,%xmm4
 vmovdqa %xmm2,%xmm5
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -32(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 16-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vpsrldq $8,%xmm7,%xmm7
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -48(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 48-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vmovdqu 80-64(%rsi),%xmm7
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -64(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 64-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vpsrldq $8,%xmm7,%xmm7
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -80(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 96-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vmovdqu 128-64(%rsi),%xmm7
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -96(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 112-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vpsrldq $8,%xmm7,%xmm7
 subq $0x10,%rcx
# WAS jz .Ltail_avx
	jz	.Ltail_avx_BCM_9

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vmovdqu -112(%rdx),%xmm14
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vmovdqu 144-64(%rsi),%xmm6
 vpshufb %xmm13,%xmm14,%xmm15
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
 vmovq 184-64(%rsi),%xmm7
 subq $0x10,%rcx
# WAS jmp .Ltail_avx
	jmp	.Ltail_avx_BCM_9

.align 32
.Ltail_avx_BCM_9:

 vpxor %xmm10,%xmm15,%xmm15
.Ltail_no_xor_avx_BCM_9:

 vpunpckhqdq %xmm15,%xmm15,%xmm8
 vpxor %xmm0,%xmm3,%xmm3
 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
 vpxor %xmm15,%xmm8,%xmm8
 vpxor %xmm1,%xmm4,%xmm4
 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
 vpxor %xmm2,%xmm5,%xmm5
 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2

 vmovdqu (%r10),%xmm12

 vpxor %xmm0,%xmm3,%xmm10
 vpxor %xmm1,%xmm4,%xmm11
 vpxor %xmm2,%xmm5,%xmm5

 vpxor %xmm10,%xmm5,%xmm5
 vpxor %xmm11,%xmm5,%xmm5
 vpslldq $8,%xmm5,%xmm9
 vpsrldq $8,%xmm5,%xmm5
 vpxor %xmm9,%xmm10,%xmm10
 vpxor %xmm5,%xmm11,%xmm11

 vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9
 vpalignr $8,%xmm10,%xmm10,%xmm10
 vpxor %xmm9,%xmm10,%xmm10

 vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9
 vpalignr $8,%xmm10,%xmm10,%xmm10
 vpxor %xmm11,%xmm10,%xmm10
 vpxor %xmm9,%xmm10,%xmm10

 cmpq $0,%rcx
# WAS jne .Lshort_avx
	jne	.Lshort_avx_BCM_9

 vpshufb %xmm13,%xmm10,%xmm10
 vmovdqu %xmm10,(%rdi)
 vzeroupper
 .byte 0xf3,0xc3
.cfi_endproc

.size gcm_ghash_avx,.-gcm_ghash_avx
# WAS .section .rodata
.text
.align 64
.Lbswap_mask_BCM_9:

.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.L0x1c2_polynomial_BCM_9:

.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
.L7_mask_BCM_9:

.long 7,0,7,0
.align 64

.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.text
# 0 "md5-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "md5-x86_64.S"



#include <openssl/asm_base.h>
# 4 "md5-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "md5-x86_64.S" 2


.text
.align 16

.globl md5_block_asm_data_order
.hidden md5_block_asm_data_order
.type md5_block_asm_data_order,@function
.Lmd5_block_asm_data_order_local_target:
md5_block_asm_data_order:
.cfi_startproc
endbr64
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset r12,-32
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset r14,-40
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset r15,-48
.Lprologue_BCM_10:





 movq %rdi,%rbp
 shlq $6,%rdx
 leaq (%rsi,%rdx,1),%rdi
 movl 0(%rbp),%eax
 movl 4(%rbp),%ebx
 movl 8(%rbp),%ecx
 movl 12(%rbp),%edx







 cmpq %rdi,%rsi
# WAS je .Lend
	je	.Lend_BCM_10


.Lloop_BCM_10:

 movl %eax,%r8d
 movl %ebx,%r9d
 movl %ecx,%r14d
 movl %edx,%r15d
 movl 0(%rsi),%r10d
 movl %edx,%r11d
 xorl %ecx,%r11d
 leal -680876936(%rax,%r10,1),%eax
 andl %ebx,%r11d
 xorl %edx,%r11d
 movl 4(%rsi),%r10d
 addl %r11d,%eax
 roll $7,%eax
 movl %ecx,%r11d
 addl %ebx,%eax
 xorl %ebx,%r11d
 leal -389564586(%rdx,%r10,1),%edx
 andl %eax,%r11d
 xorl %ecx,%r11d
 movl 8(%rsi),%r10d
 addl %r11d,%edx
 roll $12,%edx
 movl %ebx,%r11d
 addl %eax,%edx
 xorl %eax,%r11d
 leal 606105819(%rcx,%r10,1),%ecx
 andl %edx,%r11d
 xorl %ebx,%r11d
 movl 12(%rsi),%r10d
 addl %r11d,%ecx
 roll $17,%ecx
 movl %eax,%r11d
 addl %edx,%ecx
 xorl %edx,%r11d
 leal -1044525330(%rbx,%r10,1),%ebx
 andl %ecx,%r11d
 xorl %eax,%r11d
 movl 16(%rsi),%r10d
 addl %r11d,%ebx
 roll $22,%ebx
 movl %edx,%r11d
 addl %ecx,%ebx
 xorl %ecx,%r11d
 leal -176418897(%rax,%r10,1),%eax
 andl %ebx,%r11d
 xorl %edx,%r11d
 movl 20(%rsi),%r10d
 addl %r11d,%eax
 roll $7,%eax
 movl %ecx,%r11d
 addl %ebx,%eax
 xorl %ebx,%r11d
 leal 1200080426(%rdx,%r10,1),%edx
 andl %eax,%r11d
 xorl %ecx,%r11d
 movl 24(%rsi),%r10d
 addl %r11d,%edx
 roll $12,%edx
 movl %ebx,%r11d
 addl %eax,%edx
 xorl %eax,%r11d
 leal -1473231341(%rcx,%r10,1),%ecx
 andl %edx,%r11d
 xorl %ebx,%r11d
 movl 28(%rsi),%r10d
 addl %r11d,%ecx
 roll $17,%ecx
 movl %eax,%r11d
 addl %edx,%ecx
 xorl %edx,%r11d
 leal -45705983(%rbx,%r10,1),%ebx
 andl %ecx,%r11d
 xorl %eax,%r11d
 movl 32(%rsi),%r10d
 addl %r11d,%ebx
 roll $22,%ebx
 movl %edx,%r11d
 addl %ecx,%ebx
 xorl %ecx,%r11d
 leal 1770035416(%rax,%r10,1),%eax
 andl %ebx,%r11d
 xorl %edx,%r11d
 movl 36(%rsi),%r10d
 addl %r11d,%eax
 roll $7,%eax
 movl %ecx,%r11d
 addl %ebx,%eax
 xorl %ebx,%r11d
 leal -1958414417(%rdx,%r10,1),%edx
 andl %eax,%r11d
 xorl %ecx,%r11d
 movl 40(%rsi),%r10d
 addl %r11d,%edx
 roll $12,%edx
 movl %ebx,%r11d
 addl %eax,%edx
 xorl %eax,%r11d
 leal -42063(%rcx,%r10,1),%ecx
 andl %edx,%r11d
 xorl %ebx,%r11d
 movl 44(%rsi),%r10d
 addl %r11d,%ecx
 roll $17,%ecx
 movl %eax,%r11d
 addl %edx,%ecx
 xorl %edx,%r11d
 leal -1990404162(%rbx,%r10,1),%ebx
 andl %ecx,%r11d
 xorl %eax,%r11d
 movl 48(%rsi),%r10d
 addl %r11d,%ebx
 roll $22,%ebx
 movl %edx,%r11d
 addl %ecx,%ebx
 xorl %ecx,%r11d
 leal 1804603682(%rax,%r10,1),%eax
 andl %ebx,%r11d
 xorl %edx,%r11d
 movl 52(%rsi),%r10d
 addl %r11d,%eax
 roll $7,%eax
 movl %ecx,%r11d
 addl %ebx,%eax
 xorl %ebx,%r11d
 leal -40341101(%rdx,%r10,1),%edx
 andl %eax,%r11d
 xorl %ecx,%r11d
 movl 56(%rsi),%r10d
 addl %r11d,%edx
 roll $12,%edx
 movl %ebx,%r11d
 addl %eax,%edx
 xorl %eax,%r11d
 leal -1502002290(%rcx,%r10,1),%ecx
 andl %edx,%r11d
 xorl %ebx,%r11d
 movl 60(%rsi),%r10d
 addl %r11d,%ecx
 roll $17,%ecx
 movl %eax,%r11d
 addl %edx,%ecx
 xorl %edx,%r11d
 leal 1236535329(%rbx,%r10,1),%ebx
 andl %ecx,%r11d
 xorl %eax,%r11d
 movl 0(%rsi),%r10d
 addl %r11d,%ebx
 roll $22,%ebx
 movl %edx,%r11d
 addl %ecx,%ebx
 movl 4(%rsi),%r10d
 movl %edx,%r11d
 movl %edx,%r12d
 notl %r11d
 leal -165796510(%rax,%r10,1),%eax
 andl %ebx,%r12d
 andl %ecx,%r11d
 movl 24(%rsi),%r10d
 orl %r11d,%r12d
 movl %ecx,%r11d
 addl %r12d,%eax
 movl %ecx,%r12d
 roll $5,%eax
 addl %ebx,%eax
 notl %r11d
 leal -1069501632(%rdx,%r10,1),%edx
 andl %eax,%r12d
 andl %ebx,%r11d
 movl 44(%rsi),%r10d
 orl %r11d,%r12d
 movl %ebx,%r11d
 addl %r12d,%edx
 movl %ebx,%r12d
 roll $9,%edx
 addl %eax,%edx
 notl %r11d
 leal 643717713(%rcx,%r10,1),%ecx
 andl %edx,%r12d
 andl %eax,%r11d
 movl 0(%rsi),%r10d
 orl %r11d,%r12d
 movl %eax,%r11d
 addl %r12d,%ecx
 movl %eax,%r12d
 roll $14,%ecx
 addl %edx,%ecx
 notl %r11d
 leal -373897302(%rbx,%r10,1),%ebx
 andl %ecx,%r12d
 andl %edx,%r11d
 movl 20(%rsi),%r10d
 orl %r11d,%r12d
 movl %edx,%r11d
 addl %r12d,%ebx
 movl %edx,%r12d
 roll $20,%ebx
 addl %ecx,%ebx
 notl %r11d
 leal -701558691(%rax,%r10,1),%eax
 andl %ebx,%r12d
 andl %ecx,%r11d
 movl 40(%rsi),%r10d
 orl %r11d,%r12d
 movl %ecx,%r11d
 addl %r12d,%eax
 movl %ecx,%r12d
 roll $5,%eax
 addl %ebx,%eax
 notl %r11d
 leal 38016083(%rdx,%r10,1),%edx
 andl %eax,%r12d
 andl %ebx,%r11d
 movl 60(%rsi),%r10d
 orl %r11d,%r12d
 movl %ebx,%r11d
 addl %r12d,%edx
 movl %ebx,%r12d
 roll $9,%edx
 addl %eax,%edx
 notl %r11d
 leal -660478335(%rcx,%r10,1),%ecx
 andl %edx,%r12d
 andl %eax,%r11d
 movl 16(%rsi),%r10d
 orl %r11d,%r12d
 movl %eax,%r11d
 addl %r12d,%ecx
 movl %eax,%r12d
 roll $14,%ecx
 addl %edx,%ecx
 notl %r11d
 leal -405537848(%rbx,%r10,1),%ebx
 andl %ecx,%r12d
 andl %edx,%r11d
 movl 36(%rsi),%r10d
 orl %r11d,%r12d
 movl %edx,%r11d
 addl %r12d,%ebx
 movl %edx,%r12d
 roll $20,%ebx
 addl %ecx,%ebx
 notl %r11d
 leal 568446438(%rax,%r10,1),%eax
 andl %ebx,%r12d
 andl %ecx,%r11d
 movl 56(%rsi),%r10d
 orl %r11d,%r12d
 movl %ecx,%r11d
 addl %r12d,%eax
 movl %ecx,%r12d
 roll $5,%eax
 addl %ebx,%eax
 notl %r11d
 leal -1019803690(%rdx,%r10,1),%edx
 andl %eax,%r12d
 andl %ebx,%r11d
 movl 12(%rsi),%r10d
 orl %r11d,%r12d
 movl %ebx,%r11d
 addl %r12d,%edx
 movl %ebx,%r12d
 roll $9,%edx
 addl %eax,%edx
 notl %r11d
 leal -187363961(%rcx,%r10,1),%ecx
 andl %edx,%r12d
 andl %eax,%r11d
 movl 32(%rsi),%r10d
 orl %r11d,%r12d
 movl %eax,%r11d
 addl %r12d,%ecx
 movl %eax,%r12d
 roll $14,%ecx
 addl %edx,%ecx
 notl %r11d
 leal 1163531501(%rbx,%r10,1),%ebx
 andl %ecx,%r12d
 andl %edx,%r11d
 movl 52(%rsi),%r10d
 orl %r11d,%r12d
 movl %edx,%r11d
 addl %r12d,%ebx
 movl %edx,%r12d
 roll $20,%ebx
 addl %ecx,%ebx
 notl %r11d
 leal -1444681467(%rax,%r10,1),%eax
 andl %ebx,%r12d
 andl %ecx,%r11d
 movl 8(%rsi),%r10d
 orl %r11d,%r12d
 movl %ecx,%r11d
 addl %r12d,%eax
 movl %ecx,%r12d
 roll $5,%eax
 addl %ebx,%eax
 notl %r11d
 leal -51403784(%rdx,%r10,1),%edx
 andl %eax,%r12d
 andl %ebx,%r11d
 movl 28(%rsi),%r10d
 orl %r11d,%r12d
 movl %ebx,%r11d
 addl %r12d,%edx
 movl %ebx,%r12d
 roll $9,%edx
 addl %eax,%edx
 notl %r11d
 leal 1735328473(%rcx,%r10,1),%ecx
 andl %edx,%r12d
 andl %eax,%r11d
 movl 48(%rsi),%r10d
 orl %r11d,%r12d
 movl %eax,%r11d
 addl %r12d,%ecx
 movl %eax,%r12d
 roll $14,%ecx
 addl %edx,%ecx
 notl %r11d
 leal -1926607734(%rbx,%r10,1),%ebx
 andl %ecx,%r12d
 andl %edx,%r11d
 movl 0(%rsi),%r10d
 orl %r11d,%r12d
 movl %edx,%r11d
 addl %r12d,%ebx
 movl %edx,%r12d
 roll $20,%ebx
 addl %ecx,%ebx
 movl 20(%rsi),%r10d
 movl %ecx,%r11d
 leal -378558(%rax,%r10,1),%eax
 movl 32(%rsi),%r10d
 xorl %edx,%r11d
 xorl %ebx,%r11d
 addl %r11d,%eax
 roll $4,%eax
 movl %ebx,%r11d
 addl %ebx,%eax
 leal -2022574463(%rdx,%r10,1),%edx
 movl 44(%rsi),%r10d
 xorl %ecx,%r11d
 xorl %eax,%r11d
 addl %r11d,%edx
 roll $11,%edx
 movl %eax,%r11d
 addl %eax,%edx
 leal 1839030562(%rcx,%r10,1),%ecx
 movl 56(%rsi),%r10d
 xorl %ebx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ecx
 roll $16,%ecx
 movl %edx,%r11d
 addl %edx,%ecx
 leal -35309556(%rbx,%r10,1),%ebx
 movl 4(%rsi),%r10d
 xorl %eax,%r11d
 xorl %ecx,%r11d
 addl %r11d,%ebx
 roll $23,%ebx
 movl %ecx,%r11d
 addl %ecx,%ebx
 leal -1530992060(%rax,%r10,1),%eax
 movl 16(%rsi),%r10d
 xorl %edx,%r11d
 xorl %ebx,%r11d
 addl %r11d,%eax
 roll $4,%eax
 movl %ebx,%r11d
 addl %ebx,%eax
 leal 1272893353(%rdx,%r10,1),%edx
 movl 28(%rsi),%r10d
 xorl %ecx,%r11d
 xorl %eax,%r11d
 addl %r11d,%edx
 roll $11,%edx
 movl %eax,%r11d
 addl %eax,%edx
 leal -155497632(%rcx,%r10,1),%ecx
 movl 40(%rsi),%r10d
 xorl %ebx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ecx
 roll $16,%ecx
 movl %edx,%r11d
 addl %edx,%ecx
 leal -1094730640(%rbx,%r10,1),%ebx
 movl 52(%rsi),%r10d
 xorl %eax,%r11d
 xorl %ecx,%r11d
 addl %r11d,%ebx
 roll $23,%ebx
 movl %ecx,%r11d
 addl %ecx,%ebx
 leal 681279174(%rax,%r10,1),%eax
 movl 0(%rsi),%r10d
 xorl %edx,%r11d
 xorl %ebx,%r11d
 addl %r11d,%eax
 roll $4,%eax
 movl %ebx,%r11d
 addl %ebx,%eax
 leal -358537222(%rdx,%r10,1),%edx
 movl 12(%rsi),%r10d
 xorl %ecx,%r11d
 xorl %eax,%r11d
 addl %r11d,%edx
 roll $11,%edx
 movl %eax,%r11d
 addl %eax,%edx
 leal -722521979(%rcx,%r10,1),%ecx
 movl 24(%rsi),%r10d
 xorl %ebx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ecx
 roll $16,%ecx
 movl %edx,%r11d
 addl %edx,%ecx
 leal 76029189(%rbx,%r10,1),%ebx
 movl 36(%rsi),%r10d
 xorl %eax,%r11d
 xorl %ecx,%r11d
 addl %r11d,%ebx
 roll $23,%ebx
 movl %ecx,%r11d
 addl %ecx,%ebx
 leal -640364487(%rax,%r10,1),%eax
 movl 48(%rsi),%r10d
 xorl %edx,%r11d
 xorl %ebx,%r11d
 addl %r11d,%eax
 roll $4,%eax
 movl %ebx,%r11d
 addl %ebx,%eax
 leal -421815835(%rdx,%r10,1),%edx
 movl 60(%rsi),%r10d
 xorl %ecx,%r11d
 xorl %eax,%r11d
 addl %r11d,%edx
 roll $11,%edx
 movl %eax,%r11d
 addl %eax,%edx
 leal 530742520(%rcx,%r10,1),%ecx
 movl 8(%rsi),%r10d
 xorl %ebx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ecx
 roll $16,%ecx
 movl %edx,%r11d
 addl %edx,%ecx
 leal -995338651(%rbx,%r10,1),%ebx
 movl 0(%rsi),%r10d
 xorl %eax,%r11d
 xorl %ecx,%r11d
 addl %r11d,%ebx
 roll $23,%ebx
 movl %ecx,%r11d
 addl %ecx,%ebx
 movl 0(%rsi),%r10d
 movl $0xffffffff,%r11d
 xorl %edx,%r11d
 leal -198630844(%rax,%r10,1),%eax
 orl %ebx,%r11d
 xorl %ecx,%r11d
 addl %r11d,%eax
 movl 28(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $6,%eax
 xorl %ecx,%r11d
 addl %ebx,%eax
 leal 1126891415(%rdx,%r10,1),%edx
 orl %eax,%r11d
 xorl %ebx,%r11d
 addl %r11d,%edx
 movl 56(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $10,%edx
 xorl %ebx,%r11d
 addl %eax,%edx
 leal -1416354905(%rcx,%r10,1),%ecx
 orl %edx,%r11d
 xorl %eax,%r11d
 addl %r11d,%ecx
 movl 20(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $15,%ecx
 xorl %eax,%r11d
 addl %edx,%ecx
 leal -57434055(%rbx,%r10,1),%ebx
 orl %ecx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ebx
 movl 48(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $21,%ebx
 xorl %edx,%r11d
 addl %ecx,%ebx
 leal 1700485571(%rax,%r10,1),%eax
 orl %ebx,%r11d
 xorl %ecx,%r11d
 addl %r11d,%eax
 movl 12(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $6,%eax
 xorl %ecx,%r11d
 addl %ebx,%eax
 leal -1894986606(%rdx,%r10,1),%edx
 orl %eax,%r11d
 xorl %ebx,%r11d
 addl %r11d,%edx
 movl 40(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $10,%edx
 xorl %ebx,%r11d
 addl %eax,%edx
 leal -1051523(%rcx,%r10,1),%ecx
 orl %edx,%r11d
 xorl %eax,%r11d
 addl %r11d,%ecx
 movl 4(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $15,%ecx
 xorl %eax,%r11d
 addl %edx,%ecx
 leal -2054922799(%rbx,%r10,1),%ebx
 orl %ecx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ebx
 movl 32(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $21,%ebx
 xorl %edx,%r11d
 addl %ecx,%ebx
 leal 1873313359(%rax,%r10,1),%eax
 orl %ebx,%r11d
 xorl %ecx,%r11d
 addl %r11d,%eax
 movl 60(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $6,%eax
 xorl %ecx,%r11d
 addl %ebx,%eax
 leal -30611744(%rdx,%r10,1),%edx
 orl %eax,%r11d
 xorl %ebx,%r11d
 addl %r11d,%edx
 movl 24(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $10,%edx
 xorl %ebx,%r11d
 addl %eax,%edx
 leal -1560198380(%rcx,%r10,1),%ecx
 orl %edx,%r11d
 xorl %eax,%r11d
 addl %r11d,%ecx
 movl 52(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $15,%ecx
 xorl %eax,%r11d
 addl %edx,%ecx
 leal 1309151649(%rbx,%r10,1),%ebx
 orl %ecx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ebx
 movl 16(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $21,%ebx
 xorl %edx,%r11d
 addl %ecx,%ebx
 leal -145523070(%rax,%r10,1),%eax
 orl %ebx,%r11d
 xorl %ecx,%r11d
 addl %r11d,%eax
 movl 44(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $6,%eax
 xorl %ecx,%r11d
 addl %ebx,%eax
 leal -1120210379(%rdx,%r10,1),%edx
 orl %eax,%r11d
 xorl %ebx,%r11d
 addl %r11d,%edx
 movl 8(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $10,%edx
 xorl %ebx,%r11d
 addl %eax,%edx
 leal 718787259(%rcx,%r10,1),%ecx
 orl %edx,%r11d
 xorl %eax,%r11d
 addl %r11d,%ecx
 movl 36(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $15,%ecx
 xorl %eax,%r11d
 addl %edx,%ecx
 leal -343485551(%rbx,%r10,1),%ebx
 orl %ecx,%r11d
 xorl %edx,%r11d
 addl %r11d,%ebx
 movl 0(%rsi),%r10d
 movl $0xffffffff,%r11d
 roll $21,%ebx
 xorl %edx,%r11d
 addl %ecx,%ebx

 addl %r8d,%eax
 addl %r9d,%ebx
 addl %r14d,%ecx
 addl %r15d,%edx


 addq $64,%rsi
 cmpq %rdi,%rsi
# WAS jb .Lloop
	jb	.Lloop_BCM_10


.Lend_BCM_10:

 movl %eax,0(%rbp)
 movl %ebx,4(%rbp)
 movl %ecx,8(%rbp)
 movl %edx,12(%rbp)

 movq (%rsp),%r15
.cfi_restore r15
 movq 8(%rsp),%r14
.cfi_restore r14
 movq 16(%rsp),%r12
.cfi_restore r12
 movq 24(%rsp),%rbx
.cfi_restore rbx
 movq 32(%rsp),%rbp
.cfi_restore rbp
 addq $40,%rsp
.cfi_adjust_cfa_offset -40
.Lepilogue_BCM_10:

 .byte 0xf3,0xc3
.cfi_endproc
.size md5_block_asm_data_order,.-md5_block_asm_data_order
# 0 "p256-x86_64-asm.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p256-x86_64-asm.S"



#include <openssl/asm_base.h>
# 4 "p256-x86_64-asm.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "p256-x86_64-asm.S" 2


.text
.extern OPENSSL_ia32cap_P
.hidden OPENSSL_ia32cap_P


# WAS .section .rodata
.text
.align 64
.Lpoly_BCM_11:

.quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001

.LOne_BCM_11:

.long 1,1,1,1,1,1,1,1
.LTwo_BCM_11:

.long 2,2,2,2,2,2,2,2
.LThree_BCM_11:

.long 3,3,3,3,3,3,3,3
.LONE_mont_BCM_11:

.quad 0x0000000000000001, 0xffffffff00000000, 0xffffffffffffffff, 0x00000000fffffffe


.Lord_BCM_11:

.quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000
.LordK_BCM_11:

.quad 0xccd1c8aaee00bc4f
.text



.globl ecp_nistz256_neg
.hidden ecp_nistz256_neg
.type ecp_nistz256_neg,@function
.align 32
.Lecp_nistz256_neg_local_target:
ecp_nistz256_neg:
.cfi_startproc
endbr64
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-16
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-24
.Lneg_body_BCM_11:


 xorq %r8,%r8
 xorq %r9,%r9
 xorq %r10,%r10
 xorq %r11,%r11
 xorq %r13,%r13

 subq 0(%rsi),%r8
 sbbq 8(%rsi),%r9
 sbbq 16(%rsi),%r10
 movq %r8,%rax
 sbbq 24(%rsi),%r11
# WAS leaq .Lpoly(%rip),%rsi
	leaq	.Lpoly_BCM_11(%rip), %rsi
 movq %r9,%rdx
 sbbq $0,%r13

 addq 0(%rsi),%r8
 movq %r10,%rcx
 adcq 8(%rsi),%r9
 adcq 16(%rsi),%r10
 movq %r11,%r12
 adcq 24(%rsi),%r11
 testq %r13,%r13

 cmovzq %rax,%r8
 cmovzq %rdx,%r9
 movq %r8,0(%rdi)
 cmovzq %rcx,%r10
 movq %r9,8(%rdi)
 cmovzq %r12,%r11
 movq %r10,16(%rdi)
 movq %r11,24(%rdi)

 movq 0(%rsp),%r13
.cfi_restore %r13
 movq 8(%rsp),%r12
.cfi_restore %r12
 leaq 16(%rsp),%rsp
.cfi_adjust_cfa_offset -16
.Lneg_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_neg,.-ecp_nistz256_neg






.globl ecp_nistz256_ord_mul_mont
.hidden ecp_nistz256_ord_mul_mont
.type ecp_nistz256_ord_mul_mont,@function
.align 32
.Lecp_nistz256_ord_mul_mont_local_target:
ecp_nistz256_ord_mul_mont:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx3
LOPENSSL_ia32cap_P_rcx3_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx
 cmpl $0x80100,%ecx
# WAS je .Lecp_nistz256_ord_mul_montx
	je	.Lecp_nistz256_ord_mul_montx_BCM_11

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lord_mul_body_BCM_11:


 movq 0(%rdx),%rax
 movq %rdx,%rbx
# WAS leaq .Lord(%rip),%r14
	leaq	.Lord_BCM_11(%rip), %r14
# WAS movq .LordK(%rip),%r15
	movq	.LordK_BCM_11(%rip), %r15


 movq %rax,%rcx
 mulq 0(%rsi)
 movq %rax,%r8
 movq %rcx,%rax
 movq %rdx,%r9

 mulq 8(%rsi)
 addq %rax,%r9
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq 16(%rsi)
 addq %rax,%r10
 movq %rcx,%rax
 adcq $0,%rdx

 movq %r8,%r13
 imulq %r15,%r8

 movq %rdx,%r11
 mulq 24(%rsi)
 addq %rax,%r11
 movq %r8,%rax
 adcq $0,%rdx
 movq %rdx,%r12


 mulq 0(%r14)
 movq %r8,%rbp
 addq %rax,%r13
 movq %r8,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 subq %r8,%r10
 sbbq $0,%r8

 mulq 8(%r14)
 addq %rcx,%r9
 adcq $0,%rdx
 addq %rax,%r9
 movq %rbp,%rax
 adcq %rdx,%r10
 movq %rbp,%rdx
 adcq $0,%r8

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r11
 movq 8(%rbx),%rax
 sbbq %rdx,%rbp

 addq %r8,%r11
 adcq %rbp,%r12
 adcq $0,%r13


 movq %rax,%rcx
 mulq 0(%rsi)
 addq %rax,%r9
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 8(%rsi)
 addq %rbp,%r10
 adcq $0,%rdx
 addq %rax,%r10
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 16(%rsi)
 addq %rbp,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %rcx,%rax
 adcq $0,%rdx

 movq %r9,%rcx
 imulq %r15,%r9

 movq %rdx,%rbp
 mulq 24(%rsi)
 addq %rbp,%r12
 adcq $0,%rdx
 xorq %r8,%r8
 addq %rax,%r12
 movq %r9,%rax
 adcq %rdx,%r13
 adcq $0,%r8


 mulq 0(%r14)
 movq %r9,%rbp
 addq %rax,%rcx
 movq %r9,%rax
 adcq %rdx,%rcx

 subq %r9,%r11
 sbbq $0,%r9

 mulq 8(%r14)
 addq %rcx,%r10
 adcq $0,%rdx
 addq %rax,%r10
 movq %rbp,%rax
 adcq %rdx,%r11
 movq %rbp,%rdx
 adcq $0,%r9

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r12
 movq 16(%rbx),%rax
 sbbq %rdx,%rbp

 addq %r9,%r12
 adcq %rbp,%r13
 adcq $0,%r8


 movq %rax,%rcx
 mulq 0(%rsi)
 addq %rax,%r10
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 8(%rsi)
 addq %rbp,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 16(%rsi)
 addq %rbp,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %rcx,%rax
 adcq $0,%rdx

 movq %r10,%rcx
 imulq %r15,%r10

 movq %rdx,%rbp
 mulq 24(%rsi)
 addq %rbp,%r13
 adcq $0,%rdx
 xorq %r9,%r9
 addq %rax,%r13
 movq %r10,%rax
 adcq %rdx,%r8
 adcq $0,%r9


 mulq 0(%r14)
 movq %r10,%rbp
 addq %rax,%rcx
 movq %r10,%rax
 adcq %rdx,%rcx

 subq %r10,%r12
 sbbq $0,%r10

 mulq 8(%r14)
 addq %rcx,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %rbp,%rax
 adcq %rdx,%r12
 movq %rbp,%rdx
 adcq $0,%r10

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r13
 movq 24(%rbx),%rax
 sbbq %rdx,%rbp

 addq %r10,%r13
 adcq %rbp,%r8
 adcq $0,%r9


 movq %rax,%rcx
 mulq 0(%rsi)
 addq %rax,%r11
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 8(%rsi)
 addq %rbp,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %rcx,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq 16(%rsi)
 addq %rbp,%r13
 adcq $0,%rdx
 addq %rax,%r13
 movq %rcx,%rax
 adcq $0,%rdx

 movq %r11,%rcx
 imulq %r15,%r11

 movq %rdx,%rbp
 mulq 24(%rsi)
 addq %rbp,%r8
 adcq $0,%rdx
 xorq %r10,%r10
 addq %rax,%r8
 movq %r11,%rax
 adcq %rdx,%r9
 adcq $0,%r10


 mulq 0(%r14)
 movq %r11,%rbp
 addq %rax,%rcx
 movq %r11,%rax
 adcq %rdx,%rcx

 subq %r11,%r13
 sbbq $0,%r11

 mulq 8(%r14)
 addq %rcx,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %rbp,%rax
 adcq %rdx,%r13
 movq %rbp,%rdx
 adcq $0,%r11

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r8
 sbbq %rdx,%rbp

 addq %r11,%r8
 adcq %rbp,%r9
 adcq $0,%r10


 movq %r12,%rsi
 subq 0(%r14),%r12
 movq %r13,%r11
 sbbq 8(%r14),%r13
 movq %r8,%rcx
 sbbq 16(%r14),%r8
 movq %r9,%rbp
 sbbq 24(%r14),%r9
 sbbq $0,%r10

 cmovcq %rsi,%r12
 cmovcq %r11,%r13
 cmovcq %rcx,%r8
 cmovcq %rbp,%r9

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lord_mul_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_ord_mul_mont,.-ecp_nistz256_ord_mul_mont







.globl ecp_nistz256_ord_sqr_mont
.hidden ecp_nistz256_ord_sqr_mont
.type ecp_nistz256_ord_sqr_mont,@function
.align 32
.Lecp_nistz256_ord_sqr_mont_local_target:
ecp_nistz256_ord_sqr_mont:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx4
LOPENSSL_ia32cap_P_rcx4_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx
 cmpl $0x80100,%ecx
# WAS je .Lecp_nistz256_ord_sqr_montx
	je	.Lecp_nistz256_ord_sqr_montx_BCM_11

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lord_sqr_body_BCM_11:


 movq 0(%rsi),%r8
 movq 8(%rsi),%rax
 movq 16(%rsi),%r14
 movq 24(%rsi),%r15
# WAS leaq .Lord(%rip),%rsi
	leaq	.Lord_BCM_11(%rip), %rsi
 movq %rdx,%rbx
# WAS jmp .Loop_ord_sqr
	jmp	.Loop_ord_sqr_BCM_11

.align 32
.Loop_ord_sqr_BCM_11:


 movq %rax,%rbp
 mulq %r8
 movq %rax,%r9
.byte 102,72,15,110,205
 movq %r14,%rax
 movq %rdx,%r10

 mulq %r8
 addq %rax,%r10
 movq %r15,%rax
.byte 102,73,15,110,214
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %r8
 addq %rax,%r11
 movq %r15,%rax
.byte 102,73,15,110,223
 adcq $0,%rdx
 movq %rdx,%r12


 mulq %r14
 movq %rax,%r13
 movq %r14,%rax
 movq %rdx,%r14


 mulq %rbp
 addq %rax,%r11
 movq %r15,%rax
 adcq $0,%rdx
 movq %rdx,%r15

 mulq %rbp
 addq %rax,%r12
 adcq $0,%rdx

 addq %r15,%r12
 adcq %rdx,%r13
 adcq $0,%r14


 xorq %r15,%r15
 movq %r8,%rax
 addq %r9,%r9
 adcq %r10,%r10
 adcq %r11,%r11
 adcq %r12,%r12
 adcq %r13,%r13
 adcq %r14,%r14
 adcq $0,%r15


 mulq %rax
 movq %rax,%r8
.byte 102,72,15,126,200
 movq %rdx,%rbp

 mulq %rax
 addq %rbp,%r9
 adcq %rax,%r10
.byte 102,72,15,126,208
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq %rax
 addq %rbp,%r11
 adcq %rax,%r12
.byte 102,72,15,126,216
 adcq $0,%rdx
 movq %rdx,%rbp

 movq %r8,%rcx
 imulq 32(%rsi),%r8

 mulq %rax
 addq %rbp,%r13
 adcq %rax,%r14
 movq 0(%rsi),%rax
 adcq %rdx,%r15


 mulq %r8
 movq %r8,%rbp
 addq %rax,%rcx
 movq 8(%rsi),%rax
 adcq %rdx,%rcx

 subq %r8,%r10
 sbbq $0,%rbp

 mulq %r8
 addq %rcx,%r9
 adcq $0,%rdx
 addq %rax,%r9
 movq %r8,%rax
 adcq %rdx,%r10
 movq %r8,%rdx
 adcq $0,%rbp

 movq %r9,%rcx
 imulq 32(%rsi),%r9

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r11
 movq 0(%rsi),%rax
 sbbq %rdx,%r8

 addq %rbp,%r11
 adcq $0,%r8


 mulq %r9
 movq %r9,%rbp
 addq %rax,%rcx
 movq 8(%rsi),%rax
 adcq %rdx,%rcx

 subq %r9,%r11
 sbbq $0,%rbp

 mulq %r9
 addq %rcx,%r10
 adcq $0,%rdx
 addq %rax,%r10
 movq %r9,%rax
 adcq %rdx,%r11
 movq %r9,%rdx
 adcq $0,%rbp

 movq %r10,%rcx
 imulq 32(%rsi),%r10

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r8
 movq 0(%rsi),%rax
 sbbq %rdx,%r9

 addq %rbp,%r8
 adcq $0,%r9


 mulq %r10
 movq %r10,%rbp
 addq %rax,%rcx
 movq 8(%rsi),%rax
 adcq %rdx,%rcx

 subq %r10,%r8
 sbbq $0,%rbp

 mulq %r10
 addq %rcx,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %r10,%rax
 adcq %rdx,%r8
 movq %r10,%rdx
 adcq $0,%rbp

 movq %r11,%rcx
 imulq 32(%rsi),%r11

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r9
 movq 0(%rsi),%rax
 sbbq %rdx,%r10

 addq %rbp,%r9
 adcq $0,%r10


 mulq %r11
 movq %r11,%rbp
 addq %rax,%rcx
 movq 8(%rsi),%rax
 adcq %rdx,%rcx

 subq %r11,%r9
 sbbq $0,%rbp

 mulq %r11
 addq %rcx,%r8
 adcq $0,%rdx
 addq %rax,%r8
 movq %r11,%rax
 adcq %rdx,%r9
 movq %r11,%rdx
 adcq $0,%rbp

 shlq $32,%rax
 shrq $32,%rdx
 subq %rax,%r10
 sbbq %rdx,%r11

 addq %rbp,%r10
 adcq $0,%r11


 xorq %rdx,%rdx
 addq %r12,%r8
 adcq %r13,%r9
 movq %r8,%r12
 adcq %r14,%r10
 adcq %r15,%r11
 movq %r9,%rax
 adcq $0,%rdx


 subq 0(%rsi),%r8
 movq %r10,%r14
 sbbq 8(%rsi),%r9
 sbbq 16(%rsi),%r10
 movq %r11,%r15
 sbbq 24(%rsi),%r11
 sbbq $0,%rdx

 cmovcq %r12,%r8
 cmovncq %r9,%rax
 cmovncq %r10,%r14
 cmovncq %r11,%r15

 decq %rbx
# WAS jnz .Loop_ord_sqr
	jnz	.Loop_ord_sqr_BCM_11

 movq %r8,0(%rdi)
 movq %rax,8(%rdi)
 pxor %xmm1,%xmm1
 movq %r14,16(%rdi)
 pxor %xmm2,%xmm2
 movq %r15,24(%rdi)
 pxor %xmm3,%xmm3

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lord_sqr_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont


.type ecp_nistz256_ord_mul_montx,@function
.align 32
.Lecp_nistz256_ord_mul_montx_local_target:
ecp_nistz256_ord_mul_montx:
.cfi_startproc
.Lecp_nistz256_ord_mul_montx_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lord_mulx_body_BCM_11:


 movq %rdx,%rbx
 movq 0(%rdx),%rdx
 movq 0(%rsi),%r9
 movq 8(%rsi),%r10
 movq 16(%rsi),%r11
 movq 24(%rsi),%r12
 leaq -128(%rsi),%rsi
# WAS leaq .Lord-128(%rip),%r14
	leaq	.Lord_BCM_11-128(%rip), %r14
# WAS movq .LordK(%rip),%r15
	movq	.LordK_BCM_11(%rip), %r15


 mulxq %r9,%r8,%r9
 mulxq %r10,%rcx,%r10
 mulxq %r11,%rbp,%r11
 addq %rcx,%r9
 mulxq %r12,%rcx,%r12
 movq %r8,%rdx
 mulxq %r15,%rdx,%rax
 adcq %rbp,%r10
 adcq %rcx,%r11
 adcq $0,%r12


 xorq %r13,%r13
 mulxq 0+128(%r14),%rcx,%rbp
 adcxq %rcx,%r8
 adoxq %rbp,%r9

 mulxq 8+128(%r14),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10

 mulxq 16+128(%r14),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 24+128(%r14),%rcx,%rbp
 movq 8(%rbx),%rdx
 adcxq %rcx,%r11
 adoxq %rbp,%r12
 adcxq %r8,%r12
 adoxq %r8,%r13
 adcq $0,%r13


 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r9,%rdx
 mulxq %r15,%rdx,%rax
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 adcxq %r8,%r13
 adoxq %r8,%r8
 adcq $0,%r8


 mulxq 0+128(%r14),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10

 mulxq 8+128(%r14),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 16+128(%r14),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 24+128(%r14),%rcx,%rbp
 movq 16(%rbx),%rdx
 adcxq %rcx,%r12
 adoxq %rbp,%r13
 adcxq %r9,%r13
 adoxq %r9,%r8
 adcq $0,%r8


 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r10,%rdx
 mulxq %r15,%rdx,%rax
 adcxq %rcx,%r13
 adoxq %rbp,%r8

 adcxq %r9,%r8
 adoxq %r9,%r9
 adcq $0,%r9


 mulxq 0+128(%r14),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 8+128(%r14),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 16+128(%r14),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 24+128(%r14),%rcx,%rbp
 movq 24(%rbx),%rdx
 adcxq %rcx,%r13
 adoxq %rbp,%r8
 adcxq %r10,%r8
 adoxq %r10,%r9
 adcq $0,%r9


 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r13
 adoxq %rbp,%r8

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r11,%rdx
 mulxq %r15,%rdx,%rax
 adcxq %rcx,%r8
 adoxq %rbp,%r9

 adcxq %r10,%r9
 adoxq %r10,%r10
 adcq $0,%r10


 mulxq 0+128(%r14),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 8+128(%r14),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 16+128(%r14),%rcx,%rbp
 adcxq %rcx,%r13
 adoxq %rbp,%r8

 mulxq 24+128(%r14),%rcx,%rbp
 leaq 128(%r14),%r14
 movq %r12,%rbx
 adcxq %rcx,%r8
 adoxq %rbp,%r9
 movq %r13,%rdx
 adcxq %r11,%r9
 adoxq %r11,%r10
 adcq $0,%r10



 movq %r8,%rcx
 subq 0(%r14),%r12
 sbbq 8(%r14),%r13
 sbbq 16(%r14),%r8
 movq %r9,%rbp
 sbbq 24(%r14),%r9
 sbbq $0,%r10

 cmovcq %rbx,%r12
 cmovcq %rdx,%r13
 cmovcq %rcx,%r8
 cmovcq %rbp,%r9

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lord_mulx_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_ord_mul_montx,.-ecp_nistz256_ord_mul_montx

.type ecp_nistz256_ord_sqr_montx,@function
.align 32
.Lecp_nistz256_ord_sqr_montx_local_target:
ecp_nistz256_ord_sqr_montx:
.cfi_startproc
.Lecp_nistz256_ord_sqr_montx_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lord_sqrx_body_BCM_11:


 movq %rdx,%rbx
 movq 0(%rsi),%rdx
 movq 8(%rsi),%r14
 movq 16(%rsi),%r15
 movq 24(%rsi),%r8
# WAS leaq .Lord(%rip),%rsi
	leaq	.Lord_BCM_11(%rip), %rsi
# WAS jmp .Loop_ord_sqrx
	jmp	.Loop_ord_sqrx_BCM_11

.align 32
.Loop_ord_sqrx_BCM_11:

 mulxq %r14,%r9,%r10
 mulxq %r15,%rcx,%r11
 movq %rdx,%rax
.byte 102,73,15,110,206
 mulxq %r8,%rbp,%r12
 movq %r14,%rdx
 addq %rcx,%r10
.byte 102,73,15,110,215
 adcq %rbp,%r11
 adcq $0,%r12
 xorq %r13,%r13

 mulxq %r15,%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq %r8,%rcx,%rbp
 movq %r15,%rdx
 adcxq %rcx,%r12
 adoxq %rbp,%r13
 adcq $0,%r13

 mulxq %r8,%rcx,%r14
 movq %rax,%rdx
.byte 102,73,15,110,216
 xorq %r15,%r15
 adcxq %r9,%r9
 adoxq %rcx,%r13
 adcxq %r10,%r10
 adoxq %r15,%r14


 mulxq %rdx,%r8,%rbp
.byte 102,72,15,126,202
 adcxq %r11,%r11
 adoxq %rbp,%r9
 adcxq %r12,%r12
 mulxq %rdx,%rcx,%rax
.byte 102,72,15,126,210
 adcxq %r13,%r13
 adoxq %rcx,%r10
 adcxq %r14,%r14
 mulxq %rdx,%rcx,%rbp
.byte 0x67
.byte 102,72,15,126,218
 adoxq %rax,%r11
 adcxq %r15,%r15
 adoxq %rcx,%r12
 adoxq %rbp,%r13
 mulxq %rdx,%rcx,%rax
 adoxq %rcx,%r14
 adoxq %rax,%r15


 movq %r8,%rdx
 mulxq 32(%rsi),%rdx,%rcx

 xorq %rax,%rax
 mulxq 0(%rsi),%rcx,%rbp
 adcxq %rcx,%r8
 adoxq %rbp,%r9
 mulxq 8(%rsi),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10
 mulxq 16(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11
 mulxq 24(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r8
 adcxq %rax,%r8


 movq %r9,%rdx
 mulxq 32(%rsi),%rdx,%rcx

 mulxq 0(%rsi),%rcx,%rbp
 adoxq %rcx,%r9
 adcxq %rbp,%r10
 mulxq 8(%rsi),%rcx,%rbp
 adoxq %rcx,%r10
 adcxq %rbp,%r11
 mulxq 16(%rsi),%rcx,%rbp
 adoxq %rcx,%r11
 adcxq %rbp,%r8
 mulxq 24(%rsi),%rcx,%rbp
 adoxq %rcx,%r8
 adcxq %rbp,%r9
 adoxq %rax,%r9


 movq %r10,%rdx
 mulxq 32(%rsi),%rdx,%rcx

 mulxq 0(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11
 mulxq 8(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r8
 mulxq 16(%rsi),%rcx,%rbp
 adcxq %rcx,%r8
 adoxq %rbp,%r9
 mulxq 24(%rsi),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10
 adcxq %rax,%r10


 movq %r11,%rdx
 mulxq 32(%rsi),%rdx,%rcx

 mulxq 0(%rsi),%rcx,%rbp
 adoxq %rcx,%r11
 adcxq %rbp,%r8
 mulxq 8(%rsi),%rcx,%rbp
 adoxq %rcx,%r8
 adcxq %rbp,%r9
 mulxq 16(%rsi),%rcx,%rbp
 adoxq %rcx,%r9
 adcxq %rbp,%r10
 mulxq 24(%rsi),%rcx,%rbp
 adoxq %rcx,%r10
 adcxq %rbp,%r11
 adoxq %rax,%r11


 addq %r8,%r12
 adcq %r13,%r9
 movq %r12,%rdx
 adcq %r14,%r10
 adcq %r15,%r11
 movq %r9,%r14
 adcq $0,%rax


 subq 0(%rsi),%r12
 movq %r10,%r15
 sbbq 8(%rsi),%r9
 sbbq 16(%rsi),%r10
 movq %r11,%r8
 sbbq 24(%rsi),%r11
 sbbq $0,%rax

 cmovncq %r12,%rdx
 cmovncq %r9,%r14
 cmovncq %r10,%r15
 cmovncq %r11,%r8

 decq %rbx
# WAS jnz .Loop_ord_sqrx
	jnz	.Loop_ord_sqrx_BCM_11

 movq %rdx,0(%rdi)
 movq %r14,8(%rdi)
 pxor %xmm1,%xmm1
 movq %r15,16(%rdi)
 pxor %xmm2,%xmm2
 movq %r8,24(%rdi)
 pxor %xmm3,%xmm3

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lord_sqrx_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx







.globl ecp_nistz256_mul_mont
.hidden ecp_nistz256_mul_mont
.type ecp_nistz256_mul_mont,@function
.align 32
.Lecp_nistz256_mul_mont_local_target:
ecp_nistz256_mul_mont:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx5
LOPENSSL_ia32cap_P_rcx5_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx

.Lmul_mont_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lmul_body_BCM_11:


 cmpl $0x80100,%ecx
# WAS je .Lmul_montx
	je	.Lmul_montx_BCM_11

 movq %rdx,%rbx
 movq 0(%rdx),%rax
 movq 0(%rsi),%r9
 movq 8(%rsi),%r10
 movq 16(%rsi),%r11
 movq 24(%rsi),%r12

# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

# WAS jmp .Lmul_mont_done
	jmp	.Lmul_mont_done_BCM_11

.align 32
.Lmul_montx_BCM_11:

 movq %rdx,%rbx
 movq 0(%rdx),%rdx
 movq 0(%rsi),%r9
 movq 8(%rsi),%r10
 movq 16(%rsi),%r11
 movq 24(%rsi),%r12
 leaq -128(%rsi),%rsi

# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

.Lmul_mont_done_BCM_11:

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lmul_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont

.type __ecp_nistz256_mul_montq,@function
.align 32
.L__ecp_nistz256_mul_montq_local_target:
__ecp_nistz256_mul_montq:
.cfi_startproc


 movq %rax,%rbp
 mulq %r9
# WAS movq .Lpoly+8(%rip),%r14
	movq	.Lpoly_BCM_11+8(%rip), %r14
 movq %rax,%r8
 movq %rbp,%rax
 movq %rdx,%r9

 mulq %r10
# WAS movq .Lpoly+24(%rip),%r15
	movq	.Lpoly_BCM_11+24(%rip), %r15
 addq %rax,%r9
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %r11
 addq %rax,%r10
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %r12
 addq %rax,%r11
 movq %r8,%rax
 adcq $0,%rdx
 xorq %r13,%r13
 movq %rdx,%r12
# 1320 "p256-x86_64-asm.S"
 movq %r8,%rbp
 shlq $32,%r8
 mulq %r15
 shrq $32,%rbp
 addq %r8,%r9
 adcq %rbp,%r10
 adcq %rax,%r11
 movq 8(%rbx),%rax
 adcq %rdx,%r12
 adcq $0,%r13
 xorq %r8,%r8



 movq %rax,%rbp
 mulq 0(%rsi)
 addq %rax,%r9
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 8(%rsi)
 addq %rcx,%r10
 adcq $0,%rdx
 addq %rax,%r10
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 16(%rsi)
 addq %rcx,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 24(%rsi)
 addq %rcx,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %r9,%rax
 adcq %rdx,%r13
 adcq $0,%r8



 movq %r9,%rbp
 shlq $32,%r9
 mulq %r15
 shrq $32,%rbp
 addq %r9,%r10
 adcq %rbp,%r11
 adcq %rax,%r12
 movq 16(%rbx),%rax
 adcq %rdx,%r13
 adcq $0,%r8
 xorq %r9,%r9



 movq %rax,%rbp
 mulq 0(%rsi)
 addq %rax,%r10
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 8(%rsi)
 addq %rcx,%r11
 adcq $0,%rdx
 addq %rax,%r11
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 16(%rsi)
 addq %rcx,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 24(%rsi)
 addq %rcx,%r13
 adcq $0,%rdx
 addq %rax,%r13
 movq %r10,%rax
 adcq %rdx,%r8
 adcq $0,%r9



 movq %r10,%rbp
 shlq $32,%r10
 mulq %r15
 shrq $32,%rbp
 addq %r10,%r11
 adcq %rbp,%r12
 adcq %rax,%r13
 movq 24(%rbx),%rax
 adcq %rdx,%r8
 adcq $0,%r9
 xorq %r10,%r10



 movq %rax,%rbp
 mulq 0(%rsi)
 addq %rax,%r11
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 8(%rsi)
 addq %rcx,%r12
 adcq $0,%rdx
 addq %rax,%r12
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 16(%rsi)
 addq %rcx,%r13
 adcq $0,%rdx
 addq %rax,%r13
 movq %rbp,%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq 24(%rsi)
 addq %rcx,%r8
 adcq $0,%rdx
 addq %rax,%r8
 movq %r11,%rax
 adcq %rdx,%r9
 adcq $0,%r10



 movq %r11,%rbp
 shlq $32,%r11
 mulq %r15
 shrq $32,%rbp
 addq %r11,%r12
 adcq %rbp,%r13
 movq %r12,%rcx
 adcq %rax,%r8
 adcq %rdx,%r9
 movq %r13,%rbp
 adcq $0,%r10



 subq $-1,%r12
 movq %r8,%rbx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%rdx
 sbbq %r15,%r9
 sbbq $0,%r10

 cmovcq %rcx,%r12
 cmovcq %rbp,%r13
 movq %r12,0(%rdi)
 cmovcq %rbx,%r8
 movq %r13,8(%rdi)
 cmovcq %rdx,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_mul_montq,.-__ecp_nistz256_mul_montq
# 1503 "p256-x86_64-asm.S"
.globl ecp_nistz256_sqr_mont
.hidden ecp_nistz256_sqr_mont
.type ecp_nistz256_sqr_mont,@function
.align 32
.Lecp_nistz256_sqr_mont_local_target:
ecp_nistz256_sqr_mont:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx6
LOPENSSL_ia32cap_P_rcx6_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lsqr_body_BCM_11:


 cmpl $0x80100,%ecx
# WAS je .Lsqr_montx
	je	.Lsqr_montx_BCM_11

 movq 0(%rsi),%rax
 movq 8(%rsi),%r14
 movq 16(%rsi),%r15
 movq 24(%rsi),%r8

# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

# WAS jmp .Lsqr_mont_done
	jmp	.Lsqr_mont_done_BCM_11

.align 32
.Lsqr_montx_BCM_11:

 movq 0(%rsi),%rdx
 movq 8(%rsi),%r14
 movq 16(%rsi),%r15
 movq 24(%rsi),%r8
 leaq -128(%rsi),%rsi

# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

.Lsqr_mont_done_BCM_11:

 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbx
.cfi_restore %rbx
 movq 40(%rsp),%rbp
.cfi_restore %rbp
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lsqr_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont

.type __ecp_nistz256_sqr_montq,@function
.align 32
.L__ecp_nistz256_sqr_montq_local_target:
__ecp_nistz256_sqr_montq:
.cfi_startproc
 movq %rax,%r13
 mulq %r14
 movq %rax,%r9
 movq %r15,%rax
 movq %rdx,%r10

 mulq %r13
 addq %rax,%r10
 movq %r8,%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %r13
 addq %rax,%r11
 movq %r15,%rax
 adcq $0,%rdx
 movq %rdx,%r12


 mulq %r14
 addq %rax,%r11
 movq %r8,%rax
 adcq $0,%rdx
 movq %rdx,%rbp

 mulq %r14
 addq %rax,%r12
 movq %r8,%rax
 adcq $0,%rdx
 addq %rbp,%r12
 movq %rdx,%r13
 adcq $0,%r13


 mulq %r15
 xorq %r15,%r15
 addq %rax,%r13
 movq 0(%rsi),%rax
 movq %rdx,%r14
 adcq $0,%r14

 addq %r9,%r9
 adcq %r10,%r10
 adcq %r11,%r11
 adcq %r12,%r12
 adcq %r13,%r13
 adcq %r14,%r14
 adcq $0,%r15

 mulq %rax
 movq %rax,%r8
 movq 8(%rsi),%rax
 movq %rdx,%rcx

 mulq %rax
 addq %rcx,%r9
 adcq %rax,%r10
 movq 16(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq %rax
 addq %rcx,%r11
 adcq %rax,%r12
 movq 24(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%rcx

 mulq %rax
 addq %rcx,%r13
 adcq %rax,%r14
 movq %r8,%rax
 adcq %rdx,%r15

# WAS movq .Lpoly+8(%rip),%rsi
	movq	.Lpoly_BCM_11+8(%rip), %rsi
# WAS movq .Lpoly+24(%rip),%rbp
	movq	.Lpoly_BCM_11+24(%rip), %rbp




 movq %r8,%rcx
 shlq $32,%r8
 mulq %rbp
 shrq $32,%rcx
 addq %r8,%r9
 adcq %rcx,%r10
 adcq %rax,%r11
 movq %r9,%rax
 adcq $0,%rdx



 movq %r9,%rcx
 shlq $32,%r9
 movq %rdx,%r8
 mulq %rbp
 shrq $32,%rcx
 addq %r9,%r10
 adcq %rcx,%r11
 adcq %rax,%r8
 movq %r10,%rax
 adcq $0,%rdx



 movq %r10,%rcx
 shlq $32,%r10
 movq %rdx,%r9
 mulq %rbp
 shrq $32,%rcx
 addq %r10,%r11
 adcq %rcx,%r8
 adcq %rax,%r9
 movq %r11,%rax
 adcq $0,%rdx



 movq %r11,%rcx
 shlq $32,%r11
 movq %rdx,%r10
 mulq %rbp
 shrq $32,%rcx
 addq %r11,%r8
 adcq %rcx,%r9
 adcq %rax,%r10
 adcq $0,%rdx
 xorq %r11,%r11



 addq %r8,%r12
 adcq %r9,%r13
 movq %r12,%r8
 adcq %r10,%r14
 adcq %rdx,%r15
 movq %r13,%r9
 adcq $0,%r11

 subq $-1,%r12
 movq %r14,%r10
 sbbq %rsi,%r13
 sbbq $0,%r14
 movq %r15,%rcx
 sbbq %rbp,%r15
 sbbq $0,%r11

 cmovcq %r8,%r12
 cmovcq %r9,%r13
 movq %r12,0(%rdi)
 cmovcq %r10,%r14
 movq %r13,8(%rdi)
 cmovcq %rcx,%r15
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq

.type __ecp_nistz256_mul_montx,@function
.align 32
.L__ecp_nistz256_mul_montx_local_target:
__ecp_nistz256_mul_montx:
.cfi_startproc


 mulxq %r9,%r8,%r9
 mulxq %r10,%rcx,%r10
 movq $32,%r14
 xorq %r13,%r13
 mulxq %r11,%rbp,%r11
# WAS movq .Lpoly+24(%rip),%r15
	movq	.Lpoly_BCM_11+24(%rip), %r15
 adcq %rcx,%r9
 mulxq %r12,%rcx,%r12
 movq %r8,%rdx
 adcq %rbp,%r10
 shlxq %r14,%r8,%rbp
 adcq %rcx,%r11
 shrxq %r14,%r8,%rcx
 adcq $0,%r12



 addq %rbp,%r9
 adcq %rcx,%r10

 mulxq %r15,%rcx,%rbp
 movq 8(%rbx),%rdx
 adcq %rcx,%r11
 adcq %rbp,%r12
 adcq $0,%r13
 xorq %r8,%r8



 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r9
 adoxq %rbp,%r10

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r9,%rdx
 adcxq %rcx,%r12
 shlxq %r14,%r9,%rcx
 adoxq %rbp,%r13
 shrxq %r14,%r9,%rbp

 adcxq %r8,%r13
 adoxq %r8,%r8
 adcq $0,%r8



 addq %rcx,%r10
 adcq %rbp,%r11

 mulxq %r15,%rcx,%rbp
 movq 16(%rbx),%rdx
 adcq %rcx,%r12
 adcq %rbp,%r13
 adcq $0,%r8
 xorq %r9,%r9



 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r10
 adoxq %rbp,%r11

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r10,%rdx
 adcxq %rcx,%r13
 shlxq %r14,%r10,%rcx
 adoxq %rbp,%r8
 shrxq %r14,%r10,%rbp

 adcxq %r9,%r8
 adoxq %r9,%r9
 adcq $0,%r9



 addq %rcx,%r11
 adcq %rbp,%r12

 mulxq %r15,%rcx,%rbp
 movq 24(%rbx),%rdx
 adcq %rcx,%r13
 adcq %rbp,%r8
 adcq $0,%r9
 xorq %r10,%r10



 mulxq 0+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq 8+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r12
 adoxq %rbp,%r13

 mulxq 16+128(%rsi),%rcx,%rbp
 adcxq %rcx,%r13
 adoxq %rbp,%r8

 mulxq 24+128(%rsi),%rcx,%rbp
 movq %r11,%rdx
 adcxq %rcx,%r8
 shlxq %r14,%r11,%rcx
 adoxq %rbp,%r9
 shrxq %r14,%r11,%rbp

 adcxq %r10,%r9
 adoxq %r10,%r10
 adcq $0,%r10



 addq %rcx,%r12
 adcq %rbp,%r13

 mulxq %r15,%rcx,%rbp
 movq %r12,%rbx
# WAS movq .Lpoly+8(%rip),%r14
	movq	.Lpoly_BCM_11+8(%rip), %r14
 adcq %rcx,%r8
 movq %r13,%rdx
 adcq %rbp,%r9
 adcq $0,%r10



 xorl %eax,%eax
 movq %r8,%rcx
 sbbq $-1,%r12
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%rbp
 sbbq %r15,%r9
 sbbq $0,%r10

 cmovcq %rbx,%r12
 cmovcq %rdx,%r13
 movq %r12,0(%rdi)
 cmovcq %rcx,%r8
 movq %r13,8(%rdi)
 cmovcq %rbp,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx

.type __ecp_nistz256_sqr_montx,@function
.align 32
.L__ecp_nistz256_sqr_montx_local_target:
__ecp_nistz256_sqr_montx:
.cfi_startproc
 mulxq %r14,%r9,%r10
 mulxq %r15,%rcx,%r11
 xorl %eax,%eax
 adcq %rcx,%r10
 mulxq %r8,%rbp,%r12
 movq %r14,%rdx
 adcq %rbp,%r11
 adcq $0,%r12
 xorq %r13,%r13


 mulxq %r15,%rcx,%rbp
 adcxq %rcx,%r11
 adoxq %rbp,%r12

 mulxq %r8,%rcx,%rbp
 movq %r15,%rdx
 adcxq %rcx,%r12
 adoxq %rbp,%r13
 adcq $0,%r13


 mulxq %r8,%rcx,%r14
 movq 0+128(%rsi),%rdx
 xorq %r15,%r15
 adcxq %r9,%r9
 adoxq %rcx,%r13
 adcxq %r10,%r10
 adoxq %r15,%r14

 mulxq %rdx,%r8,%rbp
 movq 8+128(%rsi),%rdx
 adcxq %r11,%r11
 adoxq %rbp,%r9
 adcxq %r12,%r12
 mulxq %rdx,%rcx,%rax
 movq 16+128(%rsi),%rdx
 adcxq %r13,%r13
 adoxq %rcx,%r10
 adcxq %r14,%r14
.byte 0x67
 mulxq %rdx,%rcx,%rbp
 movq 24+128(%rsi),%rdx
 adoxq %rax,%r11
 adcxq %r15,%r15
 adoxq %rcx,%r12
 movq $32,%rsi
 adoxq %rbp,%r13
.byte 0x67,0x67
 mulxq %rdx,%rcx,%rax
# WAS movq .Lpoly+24(%rip),%rdx
	movq	.Lpoly_BCM_11+24(%rip), %rdx
 adoxq %rcx,%r14
 shlxq %rsi,%r8,%rcx
 adoxq %rax,%r15
 shrxq %rsi,%r8,%rax
 movq %rdx,%rbp


 addq %rcx,%r9
 adcq %rax,%r10

 mulxq %r8,%rcx,%r8
 adcq %rcx,%r11
 shlxq %rsi,%r9,%rcx
 adcq $0,%r8
 shrxq %rsi,%r9,%rax


 addq %rcx,%r10
 adcq %rax,%r11

 mulxq %r9,%rcx,%r9
 adcq %rcx,%r8
 shlxq %rsi,%r10,%rcx
 adcq $0,%r9
 shrxq %rsi,%r10,%rax


 addq %rcx,%r11
 adcq %rax,%r8

 mulxq %r10,%rcx,%r10
 adcq %rcx,%r9
 shlxq %rsi,%r11,%rcx
 adcq $0,%r10
 shrxq %rsi,%r11,%rax


 addq %rcx,%r8
 adcq %rax,%r9

 mulxq %r11,%rcx,%r11
 adcq %rcx,%r10
 adcq $0,%r11

 xorq %rdx,%rdx
 addq %r8,%r12
# WAS movq .Lpoly+8(%rip),%rsi
	movq	.Lpoly_BCM_11+8(%rip), %rsi
 adcq %r9,%r13
 movq %r12,%r8
 adcq %r10,%r14
 adcq %r11,%r15
 movq %r13,%r9
 adcq $0,%rdx

 subq $-1,%r12
 movq %r14,%r10
 sbbq %rsi,%r13
 sbbq $0,%r14
 movq %r15,%r11
 sbbq %rbp,%r15
 sbbq $0,%rdx

 cmovcq %r8,%r12
 cmovcq %r9,%r13
 movq %r12,0(%rdi)
 cmovcq %r10,%r14
 movq %r13,8(%rdi)
 cmovcq %r11,%r15
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx



.globl ecp_nistz256_select_w5
.hidden ecp_nistz256_select_w5
.type ecp_nistz256_select_w5,@function
.align 32
.Lecp_nistz256_select_w5_local_target:
ecp_nistz256_select_w5:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rax
	jmp	LOPENSSL_ia32cap_P_rax7
LOPENSSL_ia32cap_P_rax7_return:
 movq 8(%rax),%rax
 testl $32,%eax
# WAS jnz .Lavx2_select_w5
	jnz	.Lavx2_select_w5_BCM_11

# WAS movdqa .LOne(%rip),%xmm0
	movdqa	.LOne_BCM_11(%rip), %xmm0
 movd %edx,%xmm1

 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7

 movdqa %xmm0,%xmm8
 pshufd $0,%xmm1,%xmm1

 movq $16,%rax
.Lselect_loop_sse_w5_BCM_11:


 movdqa %xmm8,%xmm15
 paddd %xmm0,%xmm8
 pcmpeqd %xmm1,%xmm15

 movdqa 0(%rsi),%xmm9
 movdqa 16(%rsi),%xmm10
 movdqa 32(%rsi),%xmm11
 movdqa 48(%rsi),%xmm12
 movdqa 64(%rsi),%xmm13
 movdqa 80(%rsi),%xmm14
 leaq 96(%rsi),%rsi

 pand %xmm15,%xmm9
 pand %xmm15,%xmm10
 por %xmm9,%xmm2
 pand %xmm15,%xmm11
 por %xmm10,%xmm3
 pand %xmm15,%xmm12
 por %xmm11,%xmm4
 pand %xmm15,%xmm13
 por %xmm12,%xmm5
 pand %xmm15,%xmm14
 por %xmm13,%xmm6
 por %xmm14,%xmm7

 decq %rax
# WAS jnz .Lselect_loop_sse_w5
	jnz	.Lselect_loop_sse_w5_BCM_11

 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)
 movdqu %xmm4,32(%rdi)
 movdqu %xmm5,48(%rdi)
 movdqu %xmm6,64(%rdi)
 movdqu %xmm7,80(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_ecp_nistz256_select_w5_BCM_11:

.size ecp_nistz256_select_w5,.-ecp_nistz256_select_w5



.globl ecp_nistz256_select_w7
.hidden ecp_nistz256_select_w7
.type ecp_nistz256_select_w7,@function
.align 32
.Lecp_nistz256_select_w7_local_target:
ecp_nistz256_select_w7:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rax
	jmp	LOPENSSL_ia32cap_P_rax8
LOPENSSL_ia32cap_P_rax8_return:
 movq 8(%rax),%rax
 testl $32,%eax
# WAS jnz .Lavx2_select_w7
	jnz	.Lavx2_select_w7_BCM_11

# WAS movdqa .LOne(%rip),%xmm8
	movdqa	.LOne_BCM_11(%rip), %xmm8
 movd %edx,%xmm1

 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5

 movdqa %xmm8,%xmm0
 pshufd $0,%xmm1,%xmm1
 movq $64,%rax

.Lselect_loop_sse_w7_BCM_11:

 movdqa %xmm8,%xmm15
 paddd %xmm0,%xmm8
 movdqa 0(%rsi),%xmm9
 movdqa 16(%rsi),%xmm10
 pcmpeqd %xmm1,%xmm15
 movdqa 32(%rsi),%xmm11
 movdqa 48(%rsi),%xmm12
 leaq 64(%rsi),%rsi

 pand %xmm15,%xmm9
 pand %xmm15,%xmm10
 por %xmm9,%xmm2
 pand %xmm15,%xmm11
 por %xmm10,%xmm3
 pand %xmm15,%xmm12
 por %xmm11,%xmm4
 prefetcht0 255(%rsi)
 por %xmm12,%xmm5

 decq %rax
# WAS jnz .Lselect_loop_sse_w7
	jnz	.Lselect_loop_sse_w7_BCM_11

 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)
 movdqu %xmm4,32(%rdi)
 movdqu %xmm5,48(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_ecp_nistz256_select_w7_BCM_11:

.size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7



.type ecp_nistz256_avx2_select_w5,@function
.align 32
.Lecp_nistz256_avx2_select_w5_local_target:
ecp_nistz256_avx2_select_w5:
.cfi_startproc
.Lavx2_select_w5_BCM_11:

 vzeroupper
# WAS vmovdqa .LTwo(%rip),%ymm0
	vmovdqa	.LTwo_BCM_11(%rip), %ymm0

 vpxor %ymm2,%ymm2,%ymm2
 vpxor %ymm3,%ymm3,%ymm3
 vpxor %ymm4,%ymm4,%ymm4

# WAS vmovdqa .LOne(%rip),%ymm5
	vmovdqa	.LOne_BCM_11(%rip), %ymm5
# WAS vmovdqa .LTwo(%rip),%ymm10
	vmovdqa	.LTwo_BCM_11(%rip), %ymm10

 vmovd %edx,%xmm1
 vpermd %ymm1,%ymm2,%ymm1

 movq $8,%rax
.Lselect_loop_avx2_w5_BCM_11:


 vmovdqa 0(%rsi),%ymm6
 vmovdqa 32(%rsi),%ymm7
 vmovdqa 64(%rsi),%ymm8

 vmovdqa 96(%rsi),%ymm11
 vmovdqa 128(%rsi),%ymm12
 vmovdqa 160(%rsi),%ymm13

 vpcmpeqd %ymm1,%ymm5,%ymm9
 vpcmpeqd %ymm1,%ymm10,%ymm14

 vpaddd %ymm0,%ymm5,%ymm5
 vpaddd %ymm0,%ymm10,%ymm10
 leaq 192(%rsi),%rsi

 vpand %ymm9,%ymm6,%ymm6
 vpand %ymm9,%ymm7,%ymm7
 vpand %ymm9,%ymm8,%ymm8
 vpand %ymm14,%ymm11,%ymm11
 vpand %ymm14,%ymm12,%ymm12
 vpand %ymm14,%ymm13,%ymm13

 vpxor %ymm6,%ymm2,%ymm2
 vpxor %ymm7,%ymm3,%ymm3
 vpxor %ymm8,%ymm4,%ymm4
 vpxor %ymm11,%ymm2,%ymm2
 vpxor %ymm12,%ymm3,%ymm3
 vpxor %ymm13,%ymm4,%ymm4

 decq %rax
# WAS jnz .Lselect_loop_avx2_w5
	jnz	.Lselect_loop_avx2_w5_BCM_11

 vmovdqu %ymm2,0(%rdi)
 vmovdqu %ymm3,32(%rdi)
 vmovdqu %ymm4,64(%rdi)
 vzeroupper
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_ecp_nistz256_avx2_select_w5_BCM_11:

.size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5




.globl ecp_nistz256_avx2_select_w7
.hidden ecp_nistz256_avx2_select_w7
.type ecp_nistz256_avx2_select_w7,@function
.align 32
.Lecp_nistz256_avx2_select_w7_local_target:
ecp_nistz256_avx2_select_w7:
.cfi_startproc
.Lavx2_select_w7_BCM_11:

endbr64
 vzeroupper
# WAS vmovdqa .LThree(%rip),%ymm0
	vmovdqa	.LThree_BCM_11(%rip), %ymm0

 vpxor %ymm2,%ymm2,%ymm2
 vpxor %ymm3,%ymm3,%ymm3

# WAS vmovdqa .LOne(%rip),%ymm4
	vmovdqa	.LOne_BCM_11(%rip), %ymm4
# WAS vmovdqa .LTwo(%rip),%ymm8
	vmovdqa	.LTwo_BCM_11(%rip), %ymm8
# WAS vmovdqa .LThree(%rip),%ymm12
	vmovdqa	.LThree_BCM_11(%rip), %ymm12

 vmovd %edx,%xmm1
 vpermd %ymm1,%ymm2,%ymm1


 movq $21,%rax
.Lselect_loop_avx2_w7_BCM_11:


 vmovdqa 0(%rsi),%ymm5
 vmovdqa 32(%rsi),%ymm6

 vmovdqa 64(%rsi),%ymm9
 vmovdqa 96(%rsi),%ymm10

 vmovdqa 128(%rsi),%ymm13
 vmovdqa 160(%rsi),%ymm14

 vpcmpeqd %ymm1,%ymm4,%ymm7
 vpcmpeqd %ymm1,%ymm8,%ymm11
 vpcmpeqd %ymm1,%ymm12,%ymm15

 vpaddd %ymm0,%ymm4,%ymm4
 vpaddd %ymm0,%ymm8,%ymm8
 vpaddd %ymm0,%ymm12,%ymm12
 leaq 192(%rsi),%rsi

 vpand %ymm7,%ymm5,%ymm5
 vpand %ymm7,%ymm6,%ymm6
 vpand %ymm11,%ymm9,%ymm9
 vpand %ymm11,%ymm10,%ymm10
 vpand %ymm15,%ymm13,%ymm13
 vpand %ymm15,%ymm14,%ymm14

 vpxor %ymm5,%ymm2,%ymm2
 vpxor %ymm6,%ymm3,%ymm3
 vpxor %ymm9,%ymm2,%ymm2
 vpxor %ymm10,%ymm3,%ymm3
 vpxor %ymm13,%ymm2,%ymm2
 vpxor %ymm14,%ymm3,%ymm3

 decq %rax
# WAS jnz .Lselect_loop_avx2_w7
	jnz	.Lselect_loop_avx2_w7_BCM_11


 vmovdqa 0(%rsi),%ymm5
 vmovdqa 32(%rsi),%ymm6

 vpcmpeqd %ymm1,%ymm4,%ymm7

 vpand %ymm7,%ymm5,%ymm5
 vpand %ymm7,%ymm6,%ymm6

 vpxor %ymm5,%ymm2,%ymm2
 vpxor %ymm6,%ymm3,%ymm3

 vmovdqu %ymm2,0(%rdi)
 vmovdqu %ymm3,32(%rdi)
 vzeroupper
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_ecp_nistz256_avx2_select_w7_BCM_11:

.size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7

.type __ecp_nistz256_add_toq,@function
.align 32
.L__ecp_nistz256_add_toq_local_target:
__ecp_nistz256_add_toq:
.cfi_startproc
 xorq %r11,%r11
 addq 0(%rbx),%r12
 adcq 8(%rbx),%r13
 movq %r12,%rax
 adcq 16(%rbx),%r8
 adcq 24(%rbx),%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 cmovcq %rbp,%r13
 movq %r12,0(%rdi)
 cmovcq %rcx,%r8
 movq %r13,8(%rdi)
 cmovcq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_add_toq,.-__ecp_nistz256_add_toq

.type __ecp_nistz256_sub_fromq,@function
.align 32
.L__ecp_nistz256_sub_fromq_local_target:
__ecp_nistz256_sub_fromq:
.cfi_startproc
 subq 0(%rbx),%r12
 sbbq 8(%rbx),%r13
 movq %r12,%rax
 sbbq 16(%rbx),%r8
 sbbq 24(%rbx),%r9
 movq %r13,%rbp
 sbbq %r11,%r11

 addq $-1,%r12
 movq %r8,%rcx
 adcq %r14,%r13
 adcq $0,%r8
 movq %r9,%r10
 adcq %r15,%r9
 testq %r11,%r11

 cmovzq %rax,%r12
 cmovzq %rbp,%r13
 movq %r12,0(%rdi)
 cmovzq %rcx,%r8
 movq %r13,8(%rdi)
 cmovzq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_sub_fromq,.-__ecp_nistz256_sub_fromq

.type __ecp_nistz256_subq,@function
.align 32
.L__ecp_nistz256_subq_local_target:
__ecp_nistz256_subq:
.cfi_startproc
 subq %r12,%rax
 sbbq %r13,%rbp
 movq %rax,%r12
 sbbq %r8,%rcx
 sbbq %r9,%r10
 movq %rbp,%r13
 sbbq %r11,%r11

 addq $-1,%rax
 movq %rcx,%r8
 adcq %r14,%rbp
 adcq $0,%rcx
 movq %r10,%r9
 adcq %r15,%r10
 testq %r11,%r11

 cmovnzq %rax,%r12
 cmovnzq %rbp,%r13
 cmovnzq %rcx,%r8
 cmovnzq %r10,%r9

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_subq,.-__ecp_nistz256_subq

.type __ecp_nistz256_mul_by_2q,@function
.align 32
.L__ecp_nistz256_mul_by_2q_local_target:
__ecp_nistz256_mul_by_2q:
.cfi_startproc
 xorq %r11,%r11
 addq %r12,%r12
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 cmovcq %rbp,%r13
 movq %r12,0(%rdi)
 cmovcq %rcx,%r8
 movq %r13,8(%rdi)
 cmovcq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q
.globl ecp_nistz256_point_double
.hidden ecp_nistz256_point_double
.type ecp_nistz256_point_double,@function
.align 32
.Lecp_nistz256_point_double_local_target:
ecp_nistz256_point_double:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx9
LOPENSSL_ia32cap_P_rcx9_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx
 cmpl $0x80100,%ecx
# WAS je .Lpoint_doublex
	je	.Lpoint_doublex_BCM_11

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $160+8,%rsp
.cfi_adjust_cfa_offset 32*5+8
.Lpoint_doubleq_body_BCM_11:


.Lpoint_double_shortcutq_BCM_11:

 movdqu 0(%rsi),%xmm0
 movq %rsi,%rbx
 movdqu 16(%rsi),%xmm1
 movq 32+0(%rsi),%r12
 movq 32+8(%rsi),%r13
 movq 32+16(%rsi),%r8
 movq 32+24(%rsi),%r9
# WAS movq .Lpoly+8(%rip),%r14
	movq	.Lpoly_BCM_11+8(%rip), %r14
# WAS movq .Lpoly+24(%rip),%r15
	movq	.Lpoly_BCM_11+24(%rip), %r15
 movdqa %xmm0,96(%rsp)
 movdqa %xmm1,96+16(%rsp)
 leaq 32(%rdi),%r10
 leaq 64(%rdi),%r11
.byte 102,72,15,110,199
.byte 102,73,15,110,202
.byte 102,73,15,110,211

 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2q
	call	.L__ecp_nistz256_mul_by_2q_local_target

 movq 64+0(%rsi),%rax
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 leaq 64-0(%rsi),%rsi
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 0+0(%rsp),%rax
 movq 8+0(%rsp),%r14
 leaq 0+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 32(%rbx),%rax
 movq 64+0(%rbx),%r9
 movq 64+8(%rbx),%r10
 movq 64+16(%rbx),%r11
 movq 64+24(%rbx),%r12
 leaq 64-0(%rbx),%rsi
 leaq 32(%rbx),%rbx
.byte 102,72,15,126,215
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target
# WAS call __ecp_nistz256_mul_by_2q
	call	.L__ecp_nistz256_mul_by_2q_local_target

 movq 96+0(%rsp),%r12
 movq 96+8(%rsp),%r13
 leaq 64(%rsp),%rbx
 movq 96+16(%rsp),%r8
 movq 96+24(%rsp),%r9
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_add_toq
	call	.L__ecp_nistz256_add_toq_local_target

 movq 96+0(%rsp),%r12
 movq 96+8(%rsp),%r13
 leaq 64(%rsp),%rbx
 movq 96+16(%rsp),%r8
 movq 96+24(%rsp),%r9
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 0+0(%rsp),%rax
 movq 8+0(%rsp),%r14
 leaq 0+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
.byte 102,72,15,126,207
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target
 xorq %r9,%r9
 movq %r12,%rax
 addq $-1,%r12
 movq %r13,%r10
 adcq %rsi,%r13
 movq %r14,%rcx
 adcq $0,%r14
 movq %r15,%r8
 adcq %rbp,%r15
 adcq $0,%r9
 xorq %rsi,%rsi
 testq $1,%rax

 cmovzq %rax,%r12
 cmovzq %r10,%r13
 cmovzq %rcx,%r14
 cmovzq %r8,%r15
 cmovzq %rsi,%r9

 movq %r13,%rax
 shrq $1,%r12
 shlq $63,%rax
 movq %r14,%r10
 shrq $1,%r13
 orq %rax,%r12
 shlq $63,%r10
 movq %r15,%rcx
 shrq $1,%r14
 orq %r10,%r13
 shlq $63,%rcx
 movq %r12,0(%rdi)
 shrq $1,%r15
 movq %r13,8(%rdi)
 shlq $63,%r9
 orq %rcx,%r14
 orq %r9,%r15
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)
 movq 64(%rsp),%rax
 leaq 64(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2q
	call	.L__ecp_nistz256_mul_by_2q_local_target

 leaq 32(%rsp),%rbx
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_add_toq
	call	.L__ecp_nistz256_add_toq_local_target

 movq 96(%rsp),%rax
 leaq 96(%rsp),%rbx
 movq 0+0(%rsp),%r9
 movq 8+0(%rsp),%r10
 leaq 0+0(%rsp),%rsi
 movq 16+0(%rsp),%r11
 movq 24+0(%rsp),%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2q
	call	.L__ecp_nistz256_mul_by_2q_local_target

 movq 0+32(%rsp),%rax
 movq 8+32(%rsp),%r14
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r15
 movq 24+32(%rsp),%r8
.byte 102,72,15,126,199
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 leaq 128(%rsp),%rbx
 movq %r14,%r8
 movq %r15,%r9
 movq %rsi,%r14
 movq %rbp,%r15
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 0+0(%rsp),%rax
 movq 0+8(%rsp),%rbp
 movq 0+16(%rsp),%rcx
 movq 0+24(%rsp),%r10
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_subq
	call	.L__ecp_nistz256_subq_local_target

 movq 32(%rsp),%rax
 leaq 32(%rsp),%rbx
 movq %r12,%r14
 xorl %ecx,%ecx
 movq %r12,0+0(%rsp)
 movq %r13,%r10
 movq %r13,0+8(%rsp)
 cmovzq %r8,%r11
 movq %r8,0+16(%rsp)
 leaq 0-0(%rsp),%rsi
 cmovzq %r9,%r12
 movq %r9,0+24(%rsp)
 movq %r14,%r9
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

.byte 102,72,15,126,203
.byte 102,72,15,126,207
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 leaq 160+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpoint_doubleq_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_double,.-ecp_nistz256_point_double
.globl ecp_nistz256_point_add
.hidden ecp_nistz256_point_add
.type ecp_nistz256_point_add,@function
.align 32
.Lecp_nistz256_point_add_local_target:
ecp_nistz256_point_add:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx10
LOPENSSL_ia32cap_P_rcx10_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx
 cmpl $0x80100,%ecx
# WAS je .Lpoint_addx
	je	.Lpoint_addx_BCM_11

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $576+8,%rsp
.cfi_adjust_cfa_offset 32*18+8
.Lpoint_addq_body_BCM_11:


 movdqu 0(%rsi),%xmm0
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 movdqu 48(%rsi),%xmm3
 movdqu 64(%rsi),%xmm4
 movdqu 80(%rsi),%xmm5
 movq %rsi,%rbx
 movq %rdx,%rsi
 movdqa %xmm0,384(%rsp)
 movdqa %xmm1,384+16(%rsp)
 movdqa %xmm2,416(%rsp)
 movdqa %xmm3,416+16(%rsp)
 movdqa %xmm4,448(%rsp)
 movdqa %xmm5,448+16(%rsp)
 por %xmm4,%xmm5

 movdqu 0(%rsi),%xmm0
 pshufd $0xb1,%xmm5,%xmm3
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 por %xmm3,%xmm5
 movdqu 48(%rsi),%xmm3
 movq 64+0(%rsi),%rax
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 movdqa %xmm0,480(%rsp)
 pshufd $0x1e,%xmm5,%xmm4
 movdqa %xmm1,480+16(%rsp)
 movdqu 64(%rsi),%xmm0
 movdqu 80(%rsi),%xmm1
 movdqa %xmm2,512(%rsp)
 movdqa %xmm3,512+16(%rsp)
 por %xmm4,%xmm5
 pxor %xmm4,%xmm4
 por %xmm0,%xmm1
.byte 102,72,15,110,199

 leaq 64-0(%rsi),%rsi
 movq %rax,544+0(%rsp)
 movq %r14,544+8(%rsp)
 movq %r15,544+16(%rsp)
 movq %r8,544+24(%rsp)
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 pcmpeqd %xmm4,%xmm5
 pshufd $0xb1,%xmm1,%xmm4
 por %xmm1,%xmm4
 pshufd $0,%xmm5,%xmm5
 pshufd $0x1e,%xmm4,%xmm3
 por %xmm3,%xmm4
 pxor %xmm3,%xmm3
 pcmpeqd %xmm3,%xmm4
 pshufd $0,%xmm4,%xmm4
 movq 64+0(%rbx),%rax
 movq 64+8(%rbx),%r14
 movq 64+16(%rbx),%r15
 movq 64+24(%rbx),%r8
.byte 102,72,15,110,203

 leaq 64-0(%rbx),%rsi
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 544(%rsp),%rax
 leaq 544(%rsp),%rbx
 movq 0+96(%rsp),%r9
 movq 8+96(%rsp),%r10
 leaq 0+96(%rsp),%rsi
 movq 16+96(%rsp),%r11
 movq 24+96(%rsp),%r12
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 448(%rsp),%rax
 leaq 448(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 416(%rsp),%rax
 leaq 416(%rsp),%rbx
 movq 0+224(%rsp),%r9
 movq 8+224(%rsp),%r10
 leaq 0+224(%rsp),%rsi
 movq 16+224(%rsp),%r11
 movq 24+224(%rsp),%r12
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 512(%rsp),%rax
 leaq 512(%rsp),%rbx
 movq 0+256(%rsp),%r9
 movq 8+256(%rsp),%r10
 leaq 0+256(%rsp),%rsi
 movq 16+256(%rsp),%r11
 movq 24+256(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 224(%rsp),%rbx
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 orq %r13,%r12
 movdqa %xmm4,%xmm2
 orq %r8,%r12
 orq %r9,%r12
 por %xmm5,%xmm2
.byte 102,73,15,110,220

 movq 384(%rsp),%rax
 leaq 384(%rsp),%rbx
 movq 0+96(%rsp),%r9
 movq 8+96(%rsp),%r10
 leaq 0+96(%rsp),%rsi
 movq 16+96(%rsp),%r11
 movq 24+96(%rsp),%r12
 leaq 160(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 480(%rsp),%rax
 leaq 480(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 160(%rsp),%rbx
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 orq %r13,%r12
 orq %r8,%r12
 orq %r9,%r12

.byte 102,73,15,126,208
.byte 102,73,15,126,217
 orq %r8,%r12
.byte 0x3e
# WAS jnz .Ladd_proceedq
	jnz	.Ladd_proceedq_BCM_11



 testq %r9,%r9
# WAS jz .Ladd_doubleq
	jz	.Ladd_doubleq_BCM_11






.byte 102,72,15,126,199
 pxor %xmm0,%xmm0
 movdqu %xmm0,0(%rdi)
 movdqu %xmm0,16(%rdi)
 movdqu %xmm0,32(%rdi)
 movdqu %xmm0,48(%rdi)
 movdqu %xmm0,64(%rdi)
 movdqu %xmm0,80(%rdi)
# WAS jmp .Ladd_doneq
	jmp	.Ladd_doneq_BCM_11

.align 32
.Ladd_doubleq_BCM_11:

.byte 102,72,15,126,206
.byte 102,72,15,126,199
 addq $416,%rsp
.cfi_adjust_cfa_offset -416
# WAS jmp .Lpoint_double_shortcutq
	jmp	.Lpoint_double_shortcutq_BCM_11
.cfi_adjust_cfa_offset 416

.align 32
.Ladd_proceedq_BCM_11:

 movq 0+64(%rsp),%rax
 movq 8+64(%rsp),%r14
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r15
 movq 24+64(%rsp),%r8
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 448(%rsp),%rax
 leaq 448(%rsp),%rbx
 movq 0+0(%rsp),%r9
 movq 8+0(%rsp),%r10
 leaq 0+0(%rsp),%rsi
 movq 16+0(%rsp),%r11
 movq 24+0(%rsp),%r12
 leaq 352(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 0+0(%rsp),%rax
 movq 8+0(%rsp),%r14
 leaq 0+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 544(%rsp),%rax
 leaq 544(%rsp),%rbx
 movq 0+352(%rsp),%r9
 movq 8+352(%rsp),%r10
 leaq 0+352(%rsp),%rsi
 movq 16+352(%rsp),%r11
 movq 24+352(%rsp),%r12
 leaq 352(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 0(%rsp),%rax
 leaq 0(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 160(%rsp),%rax
 leaq 160(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target




 xorq %r11,%r11
 addq %r12,%r12
 leaq 96(%rsp),%rsi
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 movq 0(%rsi),%rax
 cmovcq %rbp,%r13
 movq 8(%rsi),%rbp
 cmovcq %rcx,%r8
 movq 16(%rsi),%rcx
 cmovcq %r10,%r9
 movq 24(%rsi),%r10

# WAS call __ecp_nistz256_subq
	call	.L__ecp_nistz256_subq_local_target

 leaq 128(%rsp),%rbx
 leaq 288(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 192+0(%rsp),%rax
 movq 192+8(%rsp),%rbp
 movq 192+16(%rsp),%rcx
 movq 192+24(%rsp),%r10
 leaq 320(%rsp),%rdi

# WAS call __ecp_nistz256_subq
	call	.L__ecp_nistz256_subq_local_target

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)
 movq 128(%rsp),%rax
 leaq 128(%rsp),%rbx
 movq 0+224(%rsp),%r9
 movq 8+224(%rsp),%r10
 leaq 0+224(%rsp),%rsi
 movq 16+224(%rsp),%r11
 movq 24+224(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 320(%rsp),%rax
 leaq 320(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 320(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 256(%rsp),%rbx
 leaq 320(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

.byte 102,72,15,126,199

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 352(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 352+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 544(%rsp),%xmm2
 pand 544+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 448(%rsp),%xmm2
 pand 448+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,64(%rdi)
 movdqu %xmm3,80(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 288(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 288+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 480(%rsp),%xmm2
 pand 480+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 384(%rsp),%xmm2
 pand 384+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 320(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 320+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 512(%rsp),%xmm2
 pand 512+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 416(%rsp),%xmm2
 pand 416+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,32(%rdi)
 movdqu %xmm3,48(%rdi)

.Ladd_doneq_BCM_11:

 leaq 576+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpoint_addq_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_add,.-ecp_nistz256_point_add
.globl ecp_nistz256_point_add_affine
.hidden ecp_nistz256_point_add_affine
.type ecp_nistz256_point_add_affine,@function
.align 32
.Lecp_nistz256_point_add_affine_local_target:
ecp_nistz256_point_add_affine:
.cfi_startproc
endbr64

# WAS leaq OPENSSL_ia32cap_P(%rip),%rcx
	jmp	LOPENSSL_ia32cap_P_rcx11
LOPENSSL_ia32cap_P_rcx11_return:
 movq 8(%rcx),%rcx
 andl $0x80100,%ecx
 cmpl $0x80100,%ecx
# WAS je .Lpoint_add_affinex
	je	.Lpoint_add_affinex_BCM_11

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $480+8,%rsp
.cfi_adjust_cfa_offset 32*15+8
.Ladd_affineq_body_BCM_11:


 movdqu 0(%rsi),%xmm0
 movq %rdx,%rbx
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 movdqu 48(%rsi),%xmm3
 movdqu 64(%rsi),%xmm4
 movdqu 80(%rsi),%xmm5
 movq 64+0(%rsi),%rax
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 movdqa %xmm0,320(%rsp)
 movdqa %xmm1,320+16(%rsp)
 movdqa %xmm2,352(%rsp)
 movdqa %xmm3,352+16(%rsp)
 movdqa %xmm4,384(%rsp)
 movdqa %xmm5,384+16(%rsp)
 por %xmm4,%xmm5

 movdqu 0(%rbx),%xmm0
 pshufd $0xb1,%xmm5,%xmm3
 movdqu 16(%rbx),%xmm1
 movdqu 32(%rbx),%xmm2
 por %xmm3,%xmm5
 movdqu 48(%rbx),%xmm3
 movdqa %xmm0,416(%rsp)
 pshufd $0x1e,%xmm5,%xmm4
 movdqa %xmm1,416+16(%rsp)
 por %xmm0,%xmm1
.byte 102,72,15,110,199
 movdqa %xmm2,448(%rsp)
 movdqa %xmm3,448+16(%rsp)
 por %xmm2,%xmm3
 por %xmm4,%xmm5
 pxor %xmm4,%xmm4
 por %xmm1,%xmm3

 leaq 64-0(%rsi),%rsi
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 pcmpeqd %xmm4,%xmm5
 pshufd $0xb1,%xmm3,%xmm4
 movq 0(%rbx),%rax

 movq %r12,%r9
 por %xmm3,%xmm4
 pshufd $0,%xmm5,%xmm5
 pshufd $0x1e,%xmm4,%xmm3
 movq %r13,%r10
 por %xmm3,%xmm4
 pxor %xmm3,%xmm3
 movq %r14,%r11
 pcmpeqd %xmm3,%xmm4
 pshufd $0,%xmm4,%xmm4

 leaq 32-0(%rsp),%rsi
 movq %r15,%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 320(%rsp),%rbx
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 384(%rsp),%rax
 leaq 384(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 384(%rsp),%rax
 leaq 384(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 288(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 448(%rsp),%rax
 leaq 448(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq 0+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 352(%rsp),%rbx
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 0+64(%rsp),%rax
 movq 8+64(%rsp),%r14
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r15
 movq 24+64(%rsp),%r8
 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 0+96(%rsp),%rax
 movq 8+96(%rsp),%r14
 leaq 0+96(%rsp),%rsi
 movq 16+96(%rsp),%r15
 movq 24+96(%rsp),%r8
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montq
	call	.L__ecp_nistz256_sqr_montq_local_target

 movq 128(%rsp),%rax
 leaq 128(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 160(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 320(%rsp),%rax
 leaq 320(%rsp),%rbx
 movq 0+128(%rsp),%r9
 movq 8+128(%rsp),%r10
 leaq 0+128(%rsp),%rsi
 movq 16+128(%rsp),%r11
 movq 24+128(%rsp),%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target




 xorq %r11,%r11
 addq %r12,%r12
 leaq 192(%rsp),%rsi
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 movq 0(%rsi),%rax
 cmovcq %rbp,%r13
 movq 8(%rsi),%rbp
 cmovcq %rcx,%r8
 movq 16(%rsi),%rcx
 cmovcq %r10,%r9
 movq 24(%rsi),%r10

# WAS call __ecp_nistz256_subq
	call	.L__ecp_nistz256_subq_local_target

 leaq 160(%rsp),%rbx
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

 movq 0+0(%rsp),%rax
 movq 0+8(%rsp),%rbp
 movq 0+16(%rsp),%rcx
 movq 0+24(%rsp),%r10
 leaq 64(%rsp),%rdi

# WAS call __ecp_nistz256_subq
	call	.L__ecp_nistz256_subq_local_target

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)
 movq 352(%rsp),%rax
 leaq 352(%rsp),%rbx
 movq 0+160(%rsp),%r9
 movq 8+160(%rsp),%r10
 leaq 0+160(%rsp),%rsi
 movq 16+160(%rsp),%r11
 movq 24+160(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 movq 96(%rsp),%rax
 leaq 96(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq 0+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montq
	call	.L__ecp_nistz256_mul_montq_local_target

 leaq 32(%rsp),%rbx
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromq
	call	.L__ecp_nistz256_sub_fromq_local_target

.byte 102,72,15,126,199

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 288(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 288+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
# WAS pand .LONE_mont(%rip),%xmm2
	pand	.LONE_mont_BCM_11(%rip), %xmm2
# WAS pand .LONE_mont+16(%rip),%xmm3
	pand	.LONE_mont_BCM_11+16(%rip), %xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 384(%rsp),%xmm2
 pand 384+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,64(%rdi)
 movdqu %xmm3,80(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 224(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 224+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 416(%rsp),%xmm2
 pand 416+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 320(%rsp),%xmm2
 pand 320+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 256(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 256+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 448(%rsp),%xmm2
 pand 448+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 352(%rsp),%xmm2
 pand 352+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,32(%rdi)
 movdqu %xmm3,48(%rdi)

 leaq 480+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Ladd_affineq_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine

.type __ecp_nistz256_add_tox,@function
.align 32
.L__ecp_nistz256_add_tox_local_target:
__ecp_nistz256_add_tox:
.cfi_startproc
 xorq %r11,%r11
 adcq 0(%rbx),%r12
 adcq 8(%rbx),%r13
 movq %r12,%rax
 adcq 16(%rbx),%r8
 adcq 24(%rbx),%r9
 movq %r13,%rbp
 adcq $0,%r11

 xorq %r10,%r10
 sbbq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 cmovcq %rbp,%r13
 movq %r12,0(%rdi)
 cmovcq %rcx,%r8
 movq %r13,8(%rdi)
 cmovcq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_add_tox,.-__ecp_nistz256_add_tox

.type __ecp_nistz256_sub_fromx,@function
.align 32
.L__ecp_nistz256_sub_fromx_local_target:
__ecp_nistz256_sub_fromx:
.cfi_startproc
 xorq %r11,%r11
 sbbq 0(%rbx),%r12
 sbbq 8(%rbx),%r13
 movq %r12,%rax
 sbbq 16(%rbx),%r8
 sbbq 24(%rbx),%r9
 movq %r13,%rbp
 sbbq $0,%r11

 xorq %r10,%r10
 adcq $-1,%r12
 movq %r8,%rcx
 adcq %r14,%r13
 adcq $0,%r8
 movq %r9,%r10
 adcq %r15,%r9

 btq $0,%r11
 cmovncq %rax,%r12
 cmovncq %rbp,%r13
 movq %r12,0(%rdi)
 cmovncq %rcx,%r8
 movq %r13,8(%rdi)
 cmovncq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_sub_fromx,.-__ecp_nistz256_sub_fromx

.type __ecp_nistz256_subx,@function
.align 32
.L__ecp_nistz256_subx_local_target:
__ecp_nistz256_subx:
.cfi_startproc
 xorq %r11,%r11
 sbbq %r12,%rax
 sbbq %r13,%rbp
 movq %rax,%r12
 sbbq %r8,%rcx
 sbbq %r9,%r10
 movq %rbp,%r13
 sbbq $0,%r11

 xorq %r9,%r9
 adcq $-1,%rax
 movq %rcx,%r8
 adcq %r14,%rbp
 adcq $0,%rcx
 movq %r10,%r9
 adcq %r15,%r10

 btq $0,%r11
 cmovcq %rax,%r12
 cmovcq %rbp,%r13
 cmovcq %rcx,%r8
 cmovcq %r10,%r9

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_subx,.-__ecp_nistz256_subx

.type __ecp_nistz256_mul_by_2x,@function
.align 32
.L__ecp_nistz256_mul_by_2x_local_target:
__ecp_nistz256_mul_by_2x:
.cfi_startproc
 xorq %r11,%r11
 adcq %r12,%r12
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 xorq %r10,%r10
 sbbq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 cmovcq %rbp,%r13
 movq %r12,0(%rdi)
 cmovcq %rcx,%r8
 movq %r13,8(%rdi)
 cmovcq %r10,%r9
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x
.type ecp_nistz256_point_doublex,@function
.align 32
.Lecp_nistz256_point_doublex_local_target:
ecp_nistz256_point_doublex:
.cfi_startproc
.Lpoint_doublex_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $160+8,%rsp
.cfi_adjust_cfa_offset 32*5+8
.Lpoint_doublex_body_BCM_11:


.Lpoint_double_shortcutx_BCM_11:

 movdqu 0(%rsi),%xmm0
 movq %rsi,%rbx
 movdqu 16(%rsi),%xmm1
 movq 32+0(%rsi),%r12
 movq 32+8(%rsi),%r13
 movq 32+16(%rsi),%r8
 movq 32+24(%rsi),%r9
# WAS movq .Lpoly+8(%rip),%r14
	movq	.Lpoly_BCM_11+8(%rip), %r14
# WAS movq .Lpoly+24(%rip),%r15
	movq	.Lpoly_BCM_11+24(%rip), %r15
 movdqa %xmm0,96(%rsp)
 movdqa %xmm1,96+16(%rsp)
 leaq 32(%rdi),%r10
 leaq 64(%rdi),%r11
.byte 102,72,15,110,199
.byte 102,73,15,110,202
.byte 102,73,15,110,211

 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2x
	call	.L__ecp_nistz256_mul_by_2x_local_target

 movq 64+0(%rsi),%rdx
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 leaq 64-128(%rsi),%rsi
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 0+0(%rsp),%rdx
 movq 8+0(%rsp),%r14
 leaq -128+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 32(%rbx),%rdx
 movq 64+0(%rbx),%r9
 movq 64+8(%rbx),%r10
 movq 64+16(%rbx),%r11
 movq 64+24(%rbx),%r12
 leaq 64-128(%rbx),%rsi
 leaq 32(%rbx),%rbx
.byte 102,72,15,126,215
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target
# WAS call __ecp_nistz256_mul_by_2x
	call	.L__ecp_nistz256_mul_by_2x_local_target

 movq 96+0(%rsp),%r12
 movq 96+8(%rsp),%r13
 leaq 64(%rsp),%rbx
 movq 96+16(%rsp),%r8
 movq 96+24(%rsp),%r9
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_add_tox
	call	.L__ecp_nistz256_add_tox_local_target

 movq 96+0(%rsp),%r12
 movq 96+8(%rsp),%r13
 leaq 64(%rsp),%rbx
 movq 96+16(%rsp),%r8
 movq 96+24(%rsp),%r9
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 0+0(%rsp),%rdx
 movq 8+0(%rsp),%r14
 leaq -128+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
.byte 102,72,15,126,207
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target
 xorq %r9,%r9
 movq %r12,%rax
 addq $-1,%r12
 movq %r13,%r10
 adcq %rsi,%r13
 movq %r14,%rcx
 adcq $0,%r14
 movq %r15,%r8
 adcq %rbp,%r15
 adcq $0,%r9
 xorq %rsi,%rsi
 testq $1,%rax

 cmovzq %rax,%r12
 cmovzq %r10,%r13
 cmovzq %rcx,%r14
 cmovzq %r8,%r15
 cmovzq %rsi,%r9

 movq %r13,%rax
 shrq $1,%r12
 shlq $63,%rax
 movq %r14,%r10
 shrq $1,%r13
 orq %rax,%r12
 shlq $63,%r10
 movq %r15,%rcx
 shrq $1,%r14
 orq %r10,%r13
 shlq $63,%rcx
 movq %r12,0(%rdi)
 shrq $1,%r15
 movq %r13,8(%rdi)
 shlq $63,%r9
 orq %rcx,%r14
 orq %r9,%r15
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)
 movq 64(%rsp),%rdx
 leaq 64(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2x
	call	.L__ecp_nistz256_mul_by_2x_local_target

 leaq 32(%rsp),%rbx
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_add_tox
	call	.L__ecp_nistz256_add_tox_local_target

 movq 96(%rsp),%rdx
 leaq 96(%rsp),%rbx
 movq 0+0(%rsp),%r9
 movq 8+0(%rsp),%r10
 leaq -128+0(%rsp),%rsi
 movq 16+0(%rsp),%r11
 movq 24+0(%rsp),%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_by_2x
	call	.L__ecp_nistz256_mul_by_2x_local_target

 movq 0+32(%rsp),%rdx
 movq 8+32(%rsp),%r14
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r15
 movq 24+32(%rsp),%r8
.byte 102,72,15,126,199
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 leaq 128(%rsp),%rbx
 movq %r14,%r8
 movq %r15,%r9
 movq %rsi,%r14
 movq %rbp,%r15
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 0+0(%rsp),%rax
 movq 0+8(%rsp),%rbp
 movq 0+16(%rsp),%rcx
 movq 0+24(%rsp),%r10
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_subx
	call	.L__ecp_nistz256_subx_local_target

 movq 32(%rsp),%rdx
 leaq 32(%rsp),%rbx
 movq %r12,%r14
 xorl %ecx,%ecx
 movq %r12,0+0(%rsp)
 movq %r13,%r10
 movq %r13,0+8(%rsp)
 cmovzq %r8,%r11
 movq %r8,0+16(%rsp)
 leaq 0-128(%rsp),%rsi
 cmovzq %r9,%r12
 movq %r9,0+24(%rsp)
 movq %r14,%r9
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

.byte 102,72,15,126,203
.byte 102,72,15,126,207
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 leaq 160+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpoint_doublex_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_doublex,.-ecp_nistz256_point_doublex
.type ecp_nistz256_point_addx,@function
.align 32
.Lecp_nistz256_point_addx_local_target:
ecp_nistz256_point_addx:
.cfi_startproc
.Lpoint_addx_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $576+8,%rsp
.cfi_adjust_cfa_offset 32*18+8
.Lpoint_addx_body_BCM_11:


 movdqu 0(%rsi),%xmm0
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 movdqu 48(%rsi),%xmm3
 movdqu 64(%rsi),%xmm4
 movdqu 80(%rsi),%xmm5
 movq %rsi,%rbx
 movq %rdx,%rsi
 movdqa %xmm0,384(%rsp)
 movdqa %xmm1,384+16(%rsp)
 movdqa %xmm2,416(%rsp)
 movdqa %xmm3,416+16(%rsp)
 movdqa %xmm4,448(%rsp)
 movdqa %xmm5,448+16(%rsp)
 por %xmm4,%xmm5

 movdqu 0(%rsi),%xmm0
 pshufd $0xb1,%xmm5,%xmm3
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 por %xmm3,%xmm5
 movdqu 48(%rsi),%xmm3
 movq 64+0(%rsi),%rdx
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 movdqa %xmm0,480(%rsp)
 pshufd $0x1e,%xmm5,%xmm4
 movdqa %xmm1,480+16(%rsp)
 movdqu 64(%rsi),%xmm0
 movdqu 80(%rsi),%xmm1
 movdqa %xmm2,512(%rsp)
 movdqa %xmm3,512+16(%rsp)
 por %xmm4,%xmm5
 pxor %xmm4,%xmm4
 por %xmm0,%xmm1
.byte 102,72,15,110,199

 leaq 64-128(%rsi),%rsi
 movq %rdx,544+0(%rsp)
 movq %r14,544+8(%rsp)
 movq %r15,544+16(%rsp)
 movq %r8,544+24(%rsp)
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 pcmpeqd %xmm4,%xmm5
 pshufd $0xb1,%xmm1,%xmm4
 por %xmm1,%xmm4
 pshufd $0,%xmm5,%xmm5
 pshufd $0x1e,%xmm4,%xmm3
 por %xmm3,%xmm4
 pxor %xmm3,%xmm3
 pcmpeqd %xmm3,%xmm4
 pshufd $0,%xmm4,%xmm4
 movq 64+0(%rbx),%rdx
 movq 64+8(%rbx),%r14
 movq 64+16(%rbx),%r15
 movq 64+24(%rbx),%r8
.byte 102,72,15,110,203

 leaq 64-128(%rbx),%rsi
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 544(%rsp),%rdx
 leaq 544(%rsp),%rbx
 movq 0+96(%rsp),%r9
 movq 8+96(%rsp),%r10
 leaq -128+96(%rsp),%rsi
 movq 16+96(%rsp),%r11
 movq 24+96(%rsp),%r12
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 448(%rsp),%rdx
 leaq 448(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 416(%rsp),%rdx
 leaq 416(%rsp),%rbx
 movq 0+224(%rsp),%r9
 movq 8+224(%rsp),%r10
 leaq -128+224(%rsp),%rsi
 movq 16+224(%rsp),%r11
 movq 24+224(%rsp),%r12
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 512(%rsp),%rdx
 leaq 512(%rsp),%rbx
 movq 0+256(%rsp),%r9
 movq 8+256(%rsp),%r10
 leaq -128+256(%rsp),%rsi
 movq 16+256(%rsp),%r11
 movq 24+256(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 224(%rsp),%rbx
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 orq %r13,%r12
 movdqa %xmm4,%xmm2
 orq %r8,%r12
 orq %r9,%r12
 por %xmm5,%xmm2
.byte 102,73,15,110,220

 movq 384(%rsp),%rdx
 leaq 384(%rsp),%rbx
 movq 0+96(%rsp),%r9
 movq 8+96(%rsp),%r10
 leaq -128+96(%rsp),%rsi
 movq 16+96(%rsp),%r11
 movq 24+96(%rsp),%r12
 leaq 160(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 480(%rsp),%rdx
 leaq 480(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 160(%rsp),%rbx
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 orq %r13,%r12
 orq %r8,%r12
 orq %r9,%r12

.byte 102,73,15,126,208
.byte 102,73,15,126,217
 orq %r8,%r12
.byte 0x3e
# WAS jnz .Ladd_proceedx
	jnz	.Ladd_proceedx_BCM_11



 testq %r9,%r9
# WAS jz .Ladd_doublex
	jz	.Ladd_doublex_BCM_11






.byte 102,72,15,126,199
 pxor %xmm0,%xmm0
 movdqu %xmm0,0(%rdi)
 movdqu %xmm0,16(%rdi)
 movdqu %xmm0,32(%rdi)
 movdqu %xmm0,48(%rdi)
 movdqu %xmm0,64(%rdi)
 movdqu %xmm0,80(%rdi)
# WAS jmp .Ladd_donex
	jmp	.Ladd_donex_BCM_11

.align 32
.Ladd_doublex_BCM_11:

.byte 102,72,15,126,206
.byte 102,72,15,126,199
 addq $416,%rsp
.cfi_adjust_cfa_offset -416
# WAS jmp .Lpoint_double_shortcutx
	jmp	.Lpoint_double_shortcutx_BCM_11
.cfi_adjust_cfa_offset 416

.align 32
.Ladd_proceedx_BCM_11:

 movq 0+64(%rsp),%rdx
 movq 8+64(%rsp),%r14
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r15
 movq 24+64(%rsp),%r8
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 448(%rsp),%rdx
 leaq 448(%rsp),%rbx
 movq 0+0(%rsp),%r9
 movq 8+0(%rsp),%r10
 leaq -128+0(%rsp),%rsi
 movq 16+0(%rsp),%r11
 movq 24+0(%rsp),%r12
 leaq 352(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 0+0(%rsp),%rdx
 movq 8+0(%rsp),%r14
 leaq -128+0(%rsp),%rsi
 movq 16+0(%rsp),%r15
 movq 24+0(%rsp),%r8
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 544(%rsp),%rdx
 leaq 544(%rsp),%rbx
 movq 0+352(%rsp),%r9
 movq 8+352(%rsp),%r10
 leaq -128+352(%rsp),%rsi
 movq 16+352(%rsp),%r11
 movq 24+352(%rsp),%r12
 leaq 352(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 0(%rsp),%rdx
 leaq 0(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 160(%rsp),%rdx
 leaq 160(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target




 xorq %r11,%r11
 addq %r12,%r12
 leaq 96(%rsp),%rsi
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 movq 0(%rsi),%rax
 cmovcq %rbp,%r13
 movq 8(%rsi),%rbp
 cmovcq %rcx,%r8
 movq 16(%rsi),%rcx
 cmovcq %r10,%r9
 movq 24(%rsi),%r10

# WAS call __ecp_nistz256_subx
	call	.L__ecp_nistz256_subx_local_target

 leaq 128(%rsp),%rbx
 leaq 288(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 192+0(%rsp),%rax
 movq 192+8(%rsp),%rbp
 movq 192+16(%rsp),%rcx
 movq 192+24(%rsp),%r10
 leaq 320(%rsp),%rdi

# WAS call __ecp_nistz256_subx
	call	.L__ecp_nistz256_subx_local_target

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)
 movq 128(%rsp),%rdx
 leaq 128(%rsp),%rbx
 movq 0+224(%rsp),%r9
 movq 8+224(%rsp),%r10
 leaq -128+224(%rsp),%rsi
 movq 16+224(%rsp),%r11
 movq 24+224(%rsp),%r12
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 320(%rsp),%rdx
 leaq 320(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 320(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 256(%rsp),%rbx
 leaq 320(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

.byte 102,72,15,126,199

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 352(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 352+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 544(%rsp),%xmm2
 pand 544+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 448(%rsp),%xmm2
 pand 448+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,64(%rdi)
 movdqu %xmm3,80(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 288(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 288+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 480(%rsp),%xmm2
 pand 480+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 384(%rsp),%xmm2
 pand 384+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 320(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 320+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 512(%rsp),%xmm2
 pand 512+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 416(%rsp),%xmm2
 pand 416+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,32(%rdi)
 movdqu %xmm3,48(%rdi)

.Ladd_donex_BCM_11:

 leaq 576+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpoint_addx_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_addx,.-ecp_nistz256_point_addx
.type ecp_nistz256_point_add_affinex,@function
.align 32
.Lecp_nistz256_point_add_affinex_local_target:
ecp_nistz256_point_add_affinex:
.cfi_startproc
.Lpoint_add_affinex_BCM_11:

 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-16
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
 subq $480+8,%rsp
.cfi_adjust_cfa_offset 32*15+8
.Ladd_affinex_body_BCM_11:


 movdqu 0(%rsi),%xmm0
 movq %rdx,%rbx
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
 movdqu 48(%rsi),%xmm3
 movdqu 64(%rsi),%xmm4
 movdqu 80(%rsi),%xmm5
 movq 64+0(%rsi),%rdx
 movq 64+8(%rsi),%r14
 movq 64+16(%rsi),%r15
 movq 64+24(%rsi),%r8
 movdqa %xmm0,320(%rsp)
 movdqa %xmm1,320+16(%rsp)
 movdqa %xmm2,352(%rsp)
 movdqa %xmm3,352+16(%rsp)
 movdqa %xmm4,384(%rsp)
 movdqa %xmm5,384+16(%rsp)
 por %xmm4,%xmm5

 movdqu 0(%rbx),%xmm0
 pshufd $0xb1,%xmm5,%xmm3
 movdqu 16(%rbx),%xmm1
 movdqu 32(%rbx),%xmm2
 por %xmm3,%xmm5
 movdqu 48(%rbx),%xmm3
 movdqa %xmm0,416(%rsp)
 pshufd $0x1e,%xmm5,%xmm4
 movdqa %xmm1,416+16(%rsp)
 por %xmm0,%xmm1
.byte 102,72,15,110,199
 movdqa %xmm2,448(%rsp)
 movdqa %xmm3,448+16(%rsp)
 por %xmm2,%xmm3
 por %xmm4,%xmm5
 pxor %xmm4,%xmm4
 por %xmm1,%xmm3

 leaq 64-128(%rsi),%rsi
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 pcmpeqd %xmm4,%xmm5
 pshufd $0xb1,%xmm3,%xmm4
 movq 0(%rbx),%rdx

 movq %r12,%r9
 por %xmm3,%xmm4
 pshufd $0,%xmm5,%xmm5
 pshufd $0x1e,%xmm4,%xmm3
 movq %r13,%r10
 por %xmm3,%xmm4
 pxor %xmm3,%xmm3
 movq %r14,%r11
 pcmpeqd %xmm3,%xmm4
 pshufd $0,%xmm4,%xmm4

 leaq 32-128(%rsp),%rsi
 movq %r15,%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 320(%rsp),%rbx
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 384(%rsp),%rdx
 leaq 384(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 384(%rsp),%rdx
 leaq 384(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 288(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 448(%rsp),%rdx
 leaq 448(%rsp),%rbx
 movq 0+32(%rsp),%r9
 movq 8+32(%rsp),%r10
 leaq -128+32(%rsp),%rsi
 movq 16+32(%rsp),%r11
 movq 24+32(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 352(%rsp),%rbx
 leaq 96(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 0+64(%rsp),%rdx
 movq 8+64(%rsp),%r14
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r15
 movq 24+64(%rsp),%r8
 leaq 128(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 0+96(%rsp),%rdx
 movq 8+96(%rsp),%r14
 leaq -128+96(%rsp),%rsi
 movq 16+96(%rsp),%r15
 movq 24+96(%rsp),%r8
 leaq 192(%rsp),%rdi
# WAS call __ecp_nistz256_sqr_montx
	call	.L__ecp_nistz256_sqr_montx_local_target

 movq 128(%rsp),%rdx
 leaq 128(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 160(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 320(%rsp),%rdx
 leaq 320(%rsp),%rbx
 movq 0+128(%rsp),%r9
 movq 8+128(%rsp),%r10
 leaq -128+128(%rsp),%rsi
 movq 16+128(%rsp),%r11
 movq 24+128(%rsp),%r12
 leaq 0(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target




 xorq %r11,%r11
 addq %r12,%r12
 leaq 192(%rsp),%rsi
 adcq %r13,%r13
 movq %r12,%rax
 adcq %r8,%r8
 adcq %r9,%r9
 movq %r13,%rbp
 adcq $0,%r11

 subq $-1,%r12
 movq %r8,%rcx
 sbbq %r14,%r13
 sbbq $0,%r8
 movq %r9,%r10
 sbbq %r15,%r9
 sbbq $0,%r11

 cmovcq %rax,%r12
 movq 0(%rsi),%rax
 cmovcq %rbp,%r13
 movq 8(%rsi),%rbp
 cmovcq %rcx,%r8
 movq 16(%rsi),%rcx
 cmovcq %r10,%r9
 movq 24(%rsi),%r10

# WAS call __ecp_nistz256_subx
	call	.L__ecp_nistz256_subx_local_target

 leaq 160(%rsp),%rbx
 leaq 224(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

 movq 0+0(%rsp),%rax
 movq 0+8(%rsp),%rbp
 movq 0+16(%rsp),%rcx
 movq 0+24(%rsp),%r10
 leaq 64(%rsp),%rdi

# WAS call __ecp_nistz256_subx
	call	.L__ecp_nistz256_subx_local_target

 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r8,16(%rdi)
 movq %r9,24(%rdi)
 movq 352(%rsp),%rdx
 leaq 352(%rsp),%rbx
 movq 0+160(%rsp),%r9
 movq 8+160(%rsp),%r10
 leaq -128+160(%rsp),%rsi
 movq 16+160(%rsp),%r11
 movq 24+160(%rsp),%r12
 leaq 32(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 movq 96(%rsp),%rdx
 leaq 96(%rsp),%rbx
 movq 0+64(%rsp),%r9
 movq 8+64(%rsp),%r10
 leaq -128+64(%rsp),%rsi
 movq 16+64(%rsp),%r11
 movq 24+64(%rsp),%r12
 leaq 64(%rsp),%rdi
# WAS call __ecp_nistz256_mul_montx
	call	.L__ecp_nistz256_mul_montx_local_target

 leaq 32(%rsp),%rbx
 leaq 256(%rsp),%rdi
# WAS call __ecp_nistz256_sub_fromx
	call	.L__ecp_nistz256_sub_fromx_local_target

.byte 102,72,15,126,199

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 288(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 288+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
# WAS pand .LONE_mont(%rip),%xmm2
	pand	.LONE_mont_BCM_11(%rip), %xmm2
# WAS pand .LONE_mont+16(%rip),%xmm3
	pand	.LONE_mont_BCM_11+16(%rip), %xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 384(%rsp),%xmm2
 pand 384+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,64(%rdi)
 movdqu %xmm3,80(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 224(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 224+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 416(%rsp),%xmm2
 pand 416+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 320(%rsp),%xmm2
 pand 320+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,0(%rdi)
 movdqu %xmm3,16(%rdi)

 movdqa %xmm5,%xmm0
 movdqa %xmm5,%xmm1
 pandn 256(%rsp),%xmm0
 movdqa %xmm5,%xmm2
 pandn 256+16(%rsp),%xmm1
 movdqa %xmm5,%xmm3
 pand 448(%rsp),%xmm2
 pand 448+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3

 movdqa %xmm4,%xmm0
 movdqa %xmm4,%xmm1
 pandn %xmm2,%xmm0
 movdqa %xmm4,%xmm2
 pandn %xmm3,%xmm1
 movdqa %xmm4,%xmm3
 pand 352(%rsp),%xmm2
 pand 352+16(%rsp),%xmm3
 por %xmm0,%xmm2
 por %xmm1,%xmm3
 movdqu %xmm2,32(%rdi)
 movdqu %xmm3,48(%rdi)

 leaq 480+56(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbx
.cfi_restore %rbx
 movq -8(%rsi),%rbp
.cfi_restore %rbp
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Ladd_affinex_epilogue_BCM_11:

 .byte 0xf3,0xc3
.cfi_endproc
.size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex
# 0 "p256_beeu-x86_64-asm.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p256_beeu-x86_64-asm.S"



#include <openssl/asm_base.h>
# 4 "p256_beeu-x86_64-asm.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "p256_beeu-x86_64-asm.S" 2


.text

.type beeu_mod_inverse_vartime,@function
.hidden beeu_mod_inverse_vartime
.globl beeu_mod_inverse_vartime
.hidden beeu_mod_inverse_vartime
.align 32
.Lbeeu_mod_inverse_vartime_local_target:
beeu_mod_inverse_vartime:
.cfi_startproc
endbr64
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset rbp,-16
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset r12,-24
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset r13,-32
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset r14,-40
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset r15,-48
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset rbx,-56
 pushq %rsi
.cfi_adjust_cfa_offset 8
.cfi_offset rsi,-64

 subq $80,%rsp
.cfi_adjust_cfa_offset 80
 movq %rdi,0(%rsp)


 movq $1,%r8
 xorq %r9,%r9
 xorq %r10,%r10
 xorq %r11,%r11
 xorq %rdi,%rdi

 xorq %r12,%r12
 xorq %r13,%r13
 xorq %r14,%r14
 xorq %r15,%r15
 xorq %rbp,%rbp


 vmovdqu 0(%rsi),%xmm0
 vmovdqu 16(%rsi),%xmm1
 vmovdqu %xmm0,48(%rsp)
 vmovdqu %xmm1,64(%rsp)

 vmovdqu 0(%rdx),%xmm0
 vmovdqu 16(%rdx),%xmm1
 vmovdqu %xmm0,16(%rsp)
 vmovdqu %xmm1,32(%rsp)

.Lbeeu_loop_BCM_12:

 xorq %rbx,%rbx
 orq 48(%rsp),%rbx
 orq 56(%rsp),%rbx
 orq 64(%rsp),%rbx
 orq 72(%rsp),%rbx
# WAS jz .Lbeeu_loop_end
	jz	.Lbeeu_loop_end_BCM_12
# 84 "p256_beeu-x86_64-asm.S"
 movq $1,%rcx


.Lbeeu_shift_loop_XB_BCM_12:

 movq %rcx,%rbx
 andq 48(%rsp),%rbx
# WAS jnz .Lbeeu_shift_loop_end_XB
	jnz	.Lbeeu_shift_loop_end_XB_BCM_12


 movq $1,%rbx
 andq %r8,%rbx
# WAS jz .Lshift1_0
	jz	.Lshift1_0_BCM_12
 addq 0(%rdx),%r8
 adcq 8(%rdx),%r9
 adcq 16(%rdx),%r10
 adcq 24(%rdx),%r11
 adcq $0,%rdi

.Lshift1_0_BCM_12:

 shrdq $1,%r9,%r8
 shrdq $1,%r10,%r9
 shrdq $1,%r11,%r10
 shrdq $1,%rdi,%r11
 shrq $1,%rdi

 shlq $1,%rcx





 cmpq $0x8000000,%rcx
# WAS jne .Lbeeu_shift_loop_XB
	jne	.Lbeeu_shift_loop_XB_BCM_12

.Lbeeu_shift_loop_end_XB_BCM_12:

 bsfq %rcx,%rcx
 testq %rcx,%rcx
# WAS jz .Lbeeu_no_shift_XB
	jz	.Lbeeu_no_shift_XB_BCM_12



 movq 8+48(%rsp),%rax
 movq 16+48(%rsp),%rbx
 movq 24+48(%rsp),%rsi

 shrdq %cl,%rax,0+48(%rsp)
 shrdq %cl,%rbx,8+48(%rsp)
 shrdq %cl,%rsi,16+48(%rsp)

 shrq %cl,%rsi
 movq %rsi,24+48(%rsp)


.Lbeeu_no_shift_XB_BCM_12:


 movq $1,%rcx


.Lbeeu_shift_loop_YA_BCM_12:

 movq %rcx,%rbx
 andq 16(%rsp),%rbx
# WAS jnz .Lbeeu_shift_loop_end_YA
	jnz	.Lbeeu_shift_loop_end_YA_BCM_12


 movq $1,%rbx
 andq %r12,%rbx
# WAS jz .Lshift1_1
	jz	.Lshift1_1_BCM_12
 addq 0(%rdx),%r12
 adcq 8(%rdx),%r13
 adcq 16(%rdx),%r14
 adcq 24(%rdx),%r15
 adcq $0,%rbp

.Lshift1_1_BCM_12:

 shrdq $1,%r13,%r12
 shrdq $1,%r14,%r13
 shrdq $1,%r15,%r14
 shrdq $1,%rbp,%r15
 shrq $1,%rbp

 shlq $1,%rcx





 cmpq $0x8000000,%rcx
# WAS jne .Lbeeu_shift_loop_YA
	jne	.Lbeeu_shift_loop_YA_BCM_12

.Lbeeu_shift_loop_end_YA_BCM_12:

 bsfq %rcx,%rcx
 testq %rcx,%rcx
# WAS jz .Lbeeu_no_shift_YA
	jz	.Lbeeu_no_shift_YA_BCM_12



 movq 8+16(%rsp),%rax
 movq 16+16(%rsp),%rbx
 movq 24+16(%rsp),%rsi

 shrdq %cl,%rax,0+16(%rsp)
 shrdq %cl,%rbx,8+16(%rsp)
 shrdq %cl,%rsi,16+16(%rsp)

 shrq %cl,%rsi
 movq %rsi,24+16(%rsp)


.Lbeeu_no_shift_YA_BCM_12:


 movq 48(%rsp),%rax
 movq 56(%rsp),%rbx
 movq 64(%rsp),%rsi
 movq 72(%rsp),%rcx
 subq 16(%rsp),%rax
 sbbq 24(%rsp),%rbx
 sbbq 32(%rsp),%rsi
 sbbq 40(%rsp),%rcx
# WAS jnc .Lbeeu_B_bigger_than_A
	jnc	.Lbeeu_B_bigger_than_A_BCM_12


 movq 16(%rsp),%rax
 movq 24(%rsp),%rbx
 movq 32(%rsp),%rsi
 movq 40(%rsp),%rcx
 subq 48(%rsp),%rax
 sbbq 56(%rsp),%rbx
 sbbq 64(%rsp),%rsi
 sbbq 72(%rsp),%rcx
 movq %rax,16(%rsp)
 movq %rbx,24(%rsp)
 movq %rsi,32(%rsp)
 movq %rcx,40(%rsp)


 addq %r8,%r12
 adcq %r9,%r13
 adcq %r10,%r14
 adcq %r11,%r15
 adcq %rdi,%rbp
# WAS jmp .Lbeeu_loop
	jmp	.Lbeeu_loop_BCM_12

.Lbeeu_B_bigger_than_A_BCM_12:


 movq %rax,48(%rsp)
 movq %rbx,56(%rsp)
 movq %rsi,64(%rsp)
 movq %rcx,72(%rsp)


 addq %r12,%r8
 adcq %r13,%r9
 adcq %r14,%r10
 adcq %r15,%r11
 adcq %rbp,%rdi

# WAS jmp .Lbeeu_loop
	jmp	.Lbeeu_loop_BCM_12

.Lbeeu_loop_end_BCM_12:





 movq 16(%rsp),%rbx
 subq $1,%rbx
 orq 24(%rsp),%rbx
 orq 32(%rsp),%rbx
 orq 40(%rsp),%rbx

# WAS jnz .Lbeeu_err
	jnz	.Lbeeu_err_BCM_12




 movq 0(%rdx),%r8
 movq 8(%rdx),%r9
 movq 16(%rdx),%r10
 movq 24(%rdx),%r11
 xorq %rdi,%rdi

.Lbeeu_reduction_loop_BCM_12:

 movq %r12,16(%rsp)
 movq %r13,24(%rsp)
 movq %r14,32(%rsp)
 movq %r15,40(%rsp)
 movq %rbp,48(%rsp)


 subq %r8,%r12
 sbbq %r9,%r13
 sbbq %r10,%r14
 sbbq %r11,%r15
 sbbq $0,%rbp


 cmovcq 16(%rsp),%r12
 cmovcq 24(%rsp),%r13
 cmovcq 32(%rsp),%r14
 cmovcq 40(%rsp),%r15
# WAS jnc .Lbeeu_reduction_loop
	jnc	.Lbeeu_reduction_loop_BCM_12


 subq %r12,%r8
 sbbq %r13,%r9
 sbbq %r14,%r10
 sbbq %r15,%r11

.Lbeeu_save_BCM_12:


 movq 0(%rsp),%rdi

 movq %r8,0(%rdi)
 movq %r9,8(%rdi)
 movq %r10,16(%rdi)
 movq %r11,24(%rdi)


 movq $1,%rax
# WAS jmp .Lbeeu_finish
	jmp	.Lbeeu_finish_BCM_12

.Lbeeu_err_BCM_12:


 xorq %rax,%rax

.Lbeeu_finish_BCM_12:

 addq $80,%rsp
.cfi_adjust_cfa_offset -80
 popq %rsi
.cfi_adjust_cfa_offset -8
.cfi_restore rsi
 popq %rbx
.cfi_adjust_cfa_offset -8
.cfi_restore rbx
 popq %r15
.cfi_adjust_cfa_offset -8
.cfi_restore r15
 popq %r14
.cfi_adjust_cfa_offset -8
.cfi_restore r14
 popq %r13
.cfi_adjust_cfa_offset -8
.cfi_restore r13
 popq %r12
.cfi_adjust_cfa_offset -8
.cfi_restore r12
 popq %rbp
.cfi_adjust_cfa_offset -8
.cfi_restore rbp
 .byte 0xf3,0xc3
.cfi_endproc

.size beeu_mod_inverse_vartime, .-beeu_mod_inverse_vartime
# 0 "rdrand-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "rdrand-x86_64.S"



#include <openssl/asm_base.h>
# 4 "rdrand-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "rdrand-x86_64.S" 2


.text




.globl CRYPTO_rdrand
.hidden CRYPTO_rdrand
.type CRYPTO_rdrand,@function
.align 16
.LCRYPTO_rdrand_local_target:
CRYPTO_rdrand:
.cfi_startproc
endbr64
 xorq %rax,%rax
.byte 72,15,199,242
 testq %rdx,%rdx
# WAS jz .Lerr
	jz	.Lerr_BCM_13
 cmpq $-1,%rdx
# WAS je .Lerr
	je	.Lerr_BCM_13

 adcq %rax,%rax
 movq %rdx,0(%rdi)
 .byte 0xf3,0xc3
.Lerr_BCM_13:

 xorq %rax,%rax
 .byte 0xf3,0xc3
.cfi_endproc
.size CRYPTO_rdrand,.-CRYPTO_rdrand





.globl CRYPTO_rdrand_multiple8_buf
.hidden CRYPTO_rdrand_multiple8_buf
.type CRYPTO_rdrand_multiple8_buf,@function
.align 16
.LCRYPTO_rdrand_multiple8_buf_local_target:
CRYPTO_rdrand_multiple8_buf:
.cfi_startproc
endbr64
 testq %rsi,%rsi
# WAS jz .Lout
	jz	.Lout_BCM_13
 movq $8,%rdx
.Lloop_BCM_13:

.byte 72,15,199,241
# WAS jnc .Lerr_multiple
	jnc	.Lerr_multiple_BCM_13
 testq %rcx,%rcx
# WAS jz .Lerr_multiple
	jz	.Lerr_multiple_BCM_13
 cmpq $-1,%rcx
# WAS je .Lerr_multiple
	je	.Lerr_multiple_BCM_13
 movq %rcx,0(%rdi)
 addq %rdx,%rdi
 subq %rdx,%rsi
# WAS jnz .Lloop
	jnz	.Lloop_BCM_13
.Lout_BCM_13:

 movq $1,%rax
 .byte 0xf3,0xc3
.Lerr_multiple_BCM_13:

 xorq %rax,%rax
 .byte 0xf3,0xc3
.cfi_endproc
.size CRYPTO_rdrand_multiple8_buf,.-CRYPTO_rdrand_multiple8_buf
# 0 "rsaz-avx2.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "rsaz-avx2.S"



#include <openssl/asm_base.h>
# 4 "rsaz-avx2.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "rsaz-avx2.S" 2


.text

.globl rsaz_1024_sqr_avx2
.hidden rsaz_1024_sqr_avx2
.type rsaz_1024_sqr_avx2,@function
.align 64
.Lrsaz_1024_sqr_avx2_local_target:
rsaz_1024_sqr_avx2:
.cfi_startproc
endbr64
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 vzeroupper
 movq %rax,%rbp
.cfi_def_cfa_register %rbp
 movq %rdx,%r13
 subq $832,%rsp
 movq %r13,%r15
 subq $-128,%rdi
 subq $-128,%rsi
 subq $-128,%r13

 andq $4095,%r15
 addq $320,%r15
 shrq $12,%r15
 vpxor %ymm9,%ymm9,%ymm9
# WAS jz .Lsqr_1024_no_n_copy
	jz	.Lsqr_1024_no_n_copy_BCM_14





 subq $320,%rsp
 vmovdqu 0-128(%r13),%ymm0
 andq $-2048,%rsp
 vmovdqu 32-128(%r13),%ymm1
 vmovdqu 64-128(%r13),%ymm2
 vmovdqu 96-128(%r13),%ymm3
 vmovdqu 128-128(%r13),%ymm4
 vmovdqu 160-128(%r13),%ymm5
 vmovdqu 192-128(%r13),%ymm6
 vmovdqu 224-128(%r13),%ymm7
 vmovdqu 256-128(%r13),%ymm8
 leaq 832+128(%rsp),%r13
 vmovdqu %ymm0,0-128(%r13)
 vmovdqu %ymm1,32-128(%r13)
 vmovdqu %ymm2,64-128(%r13)
 vmovdqu %ymm3,96-128(%r13)
 vmovdqu %ymm4,128-128(%r13)
 vmovdqu %ymm5,160-128(%r13)
 vmovdqu %ymm6,192-128(%r13)
 vmovdqu %ymm7,224-128(%r13)
 vmovdqu %ymm8,256-128(%r13)
 vmovdqu %ymm9,288-128(%r13)

.Lsqr_1024_no_n_copy_BCM_14:

 andq $-1024,%rsp

 vmovdqu 32-128(%rsi),%ymm1
 vmovdqu 64-128(%rsi),%ymm2
 vmovdqu 96-128(%rsi),%ymm3
 vmovdqu 128-128(%rsi),%ymm4
 vmovdqu 160-128(%rsi),%ymm5
 vmovdqu 192-128(%rsi),%ymm6
 vmovdqu 224-128(%rsi),%ymm7
 vmovdqu 256-128(%rsi),%ymm8

 leaq 192(%rsp),%rbx
# WAS vmovdqu .Land_mask(%rip),%ymm15
	vmovdqu	.Land_mask_BCM_14(%rip), %ymm15
# WAS jmp .LOOP_GRANDE_SQR_1024
	jmp	.LOOP_GRANDE_SQR_1024_BCM_14

.align 32
.LOOP_GRANDE_SQR_1024_BCM_14:

 leaq 576+128(%rsp),%r9
 leaq 448(%rsp),%r12




 vpaddq %ymm1,%ymm1,%ymm1
 vpbroadcastq 0-128(%rsi),%ymm10
 vpaddq %ymm2,%ymm2,%ymm2
 vmovdqa %ymm1,0-128(%r9)
 vpaddq %ymm3,%ymm3,%ymm3
 vmovdqa %ymm2,32-128(%r9)
 vpaddq %ymm4,%ymm4,%ymm4
 vmovdqa %ymm3,64-128(%r9)
 vpaddq %ymm5,%ymm5,%ymm5
 vmovdqa %ymm4,96-128(%r9)
 vpaddq %ymm6,%ymm6,%ymm6
 vmovdqa %ymm5,128-128(%r9)
 vpaddq %ymm7,%ymm7,%ymm7
 vmovdqa %ymm6,160-128(%r9)
 vpaddq %ymm8,%ymm8,%ymm8
 vmovdqa %ymm7,192-128(%r9)
 vpxor %ymm9,%ymm9,%ymm9
 vmovdqa %ymm8,224-128(%r9)

 vpmuludq 0-128(%rsi),%ymm10,%ymm0
 vpbroadcastq 32-128(%rsi),%ymm11
 vmovdqu %ymm9,288-192(%rbx)
 vpmuludq %ymm10,%ymm1,%ymm1
 vmovdqu %ymm9,320-448(%r12)
 vpmuludq %ymm10,%ymm2,%ymm2
 vmovdqu %ymm9,352-448(%r12)
 vpmuludq %ymm10,%ymm3,%ymm3
 vmovdqu %ymm9,384-448(%r12)
 vpmuludq %ymm10,%ymm4,%ymm4
 vmovdqu %ymm9,416-448(%r12)
 vpmuludq %ymm10,%ymm5,%ymm5
 vmovdqu %ymm9,448-448(%r12)
 vpmuludq %ymm10,%ymm6,%ymm6
 vmovdqu %ymm9,480-448(%r12)
 vpmuludq %ymm10,%ymm7,%ymm7
 vmovdqu %ymm9,512-448(%r12)
 vpmuludq %ymm10,%ymm8,%ymm8
 vpbroadcastq 64-128(%rsi),%ymm10
 vmovdqu %ymm9,544-448(%r12)

 movq %rsi,%r15
 movl $4,%r14d
# WAS jmp .Lsqr_entry_1024
	jmp	.Lsqr_entry_1024_BCM_14
.align 32
.LOOP_SQR_1024_BCM_14:

 vpbroadcastq 32-128(%r15),%ymm11
 vpmuludq 0-128(%rsi),%ymm10,%ymm0
 vpaddq 0-192(%rbx),%ymm0,%ymm0
 vpmuludq 0-128(%r9),%ymm10,%ymm1
 vpaddq 32-192(%rbx),%ymm1,%ymm1
 vpmuludq 32-128(%r9),%ymm10,%ymm2
 vpaddq 64-192(%rbx),%ymm2,%ymm2
 vpmuludq 64-128(%r9),%ymm10,%ymm3
 vpaddq 96-192(%rbx),%ymm3,%ymm3
 vpmuludq 96-128(%r9),%ymm10,%ymm4
 vpaddq 128-192(%rbx),%ymm4,%ymm4
 vpmuludq 128-128(%r9),%ymm10,%ymm5
 vpaddq 160-192(%rbx),%ymm5,%ymm5
 vpmuludq 160-128(%r9),%ymm10,%ymm6
 vpaddq 192-192(%rbx),%ymm6,%ymm6
 vpmuludq 192-128(%r9),%ymm10,%ymm7
 vpaddq 224-192(%rbx),%ymm7,%ymm7
 vpmuludq 224-128(%r9),%ymm10,%ymm8
 vpbroadcastq 64-128(%r15),%ymm10
 vpaddq 256-192(%rbx),%ymm8,%ymm8
.Lsqr_entry_1024_BCM_14:

 vmovdqu %ymm0,0-192(%rbx)
 vmovdqu %ymm1,32-192(%rbx)

 vpmuludq 32-128(%rsi),%ymm11,%ymm12
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq 32-128(%r9),%ymm11,%ymm14
 vpaddq %ymm14,%ymm3,%ymm3
 vpmuludq 64-128(%r9),%ymm11,%ymm13
 vpaddq %ymm13,%ymm4,%ymm4
 vpmuludq 96-128(%r9),%ymm11,%ymm12
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq 128-128(%r9),%ymm11,%ymm14
 vpaddq %ymm14,%ymm6,%ymm6
 vpmuludq 160-128(%r9),%ymm11,%ymm13
 vpaddq %ymm13,%ymm7,%ymm7
 vpmuludq 192-128(%r9),%ymm11,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq 224-128(%r9),%ymm11,%ymm0
 vpbroadcastq 96-128(%r15),%ymm11
 vpaddq 288-192(%rbx),%ymm0,%ymm0

 vmovdqu %ymm2,64-192(%rbx)
 vmovdqu %ymm3,96-192(%rbx)

 vpmuludq 64-128(%rsi),%ymm10,%ymm13
 vpaddq %ymm13,%ymm4,%ymm4
 vpmuludq 64-128(%r9),%ymm10,%ymm12
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq 96-128(%r9),%ymm10,%ymm14
 vpaddq %ymm14,%ymm6,%ymm6
 vpmuludq 128-128(%r9),%ymm10,%ymm13
 vpaddq %ymm13,%ymm7,%ymm7
 vpmuludq 160-128(%r9),%ymm10,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq 192-128(%r9),%ymm10,%ymm14
 vpaddq %ymm14,%ymm0,%ymm0
 vpmuludq 224-128(%r9),%ymm10,%ymm1
 vpbroadcastq 128-128(%r15),%ymm10
 vpaddq 320-448(%r12),%ymm1,%ymm1

 vmovdqu %ymm4,128-192(%rbx)
 vmovdqu %ymm5,160-192(%rbx)

 vpmuludq 96-128(%rsi),%ymm11,%ymm12
 vpaddq %ymm12,%ymm6,%ymm6
 vpmuludq 96-128(%r9),%ymm11,%ymm14
 vpaddq %ymm14,%ymm7,%ymm7
 vpmuludq 128-128(%r9),%ymm11,%ymm13
 vpaddq %ymm13,%ymm8,%ymm8
 vpmuludq 160-128(%r9),%ymm11,%ymm12
 vpaddq %ymm12,%ymm0,%ymm0
 vpmuludq 192-128(%r9),%ymm11,%ymm14
 vpaddq %ymm14,%ymm1,%ymm1
 vpmuludq 224-128(%r9),%ymm11,%ymm2
 vpbroadcastq 160-128(%r15),%ymm11
 vpaddq 352-448(%r12),%ymm2,%ymm2

 vmovdqu %ymm6,192-192(%rbx)
 vmovdqu %ymm7,224-192(%rbx)

 vpmuludq 128-128(%rsi),%ymm10,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq 128-128(%r9),%ymm10,%ymm14
 vpaddq %ymm14,%ymm0,%ymm0
 vpmuludq 160-128(%r9),%ymm10,%ymm13
 vpaddq %ymm13,%ymm1,%ymm1
 vpmuludq 192-128(%r9),%ymm10,%ymm12
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq 224-128(%r9),%ymm10,%ymm3
 vpbroadcastq 192-128(%r15),%ymm10
 vpaddq 384-448(%r12),%ymm3,%ymm3

 vmovdqu %ymm8,256-192(%rbx)
 vmovdqu %ymm0,288-192(%rbx)
 leaq 8(%rbx),%rbx

 vpmuludq 160-128(%rsi),%ymm11,%ymm13
 vpaddq %ymm13,%ymm1,%ymm1
 vpmuludq 160-128(%r9),%ymm11,%ymm12
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq 192-128(%r9),%ymm11,%ymm14
 vpaddq %ymm14,%ymm3,%ymm3
 vpmuludq 224-128(%r9),%ymm11,%ymm4
 vpbroadcastq 224-128(%r15),%ymm11
 vpaddq 416-448(%r12),%ymm4,%ymm4

 vmovdqu %ymm1,320-448(%r12)
 vmovdqu %ymm2,352-448(%r12)

 vpmuludq 192-128(%rsi),%ymm10,%ymm12
 vpaddq %ymm12,%ymm3,%ymm3
 vpmuludq 192-128(%r9),%ymm10,%ymm14
 vpbroadcastq 256-128(%r15),%ymm0
 vpaddq %ymm14,%ymm4,%ymm4
 vpmuludq 224-128(%r9),%ymm10,%ymm5
 vpbroadcastq 0+8-128(%r15),%ymm10
 vpaddq 448-448(%r12),%ymm5,%ymm5

 vmovdqu %ymm3,384-448(%r12)
 vmovdqu %ymm4,416-448(%r12)
 leaq 8(%r15),%r15

 vpmuludq 224-128(%rsi),%ymm11,%ymm12
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq 224-128(%r9),%ymm11,%ymm6
 vpaddq 480-448(%r12),%ymm6,%ymm6

 vpmuludq 256-128(%rsi),%ymm0,%ymm7
 vmovdqu %ymm5,448-448(%r12)
 vpaddq 512-448(%r12),%ymm7,%ymm7
 vmovdqu %ymm6,480-448(%r12)
 vmovdqu %ymm7,512-448(%r12)
 leaq 8(%r12),%r12

 decl %r14d
# WAS jnz .LOOP_SQR_1024
	jnz	.LOOP_SQR_1024_BCM_14

 vmovdqu 256(%rsp),%ymm8
 vmovdqu 288(%rsp),%ymm1
 vmovdqu 320(%rsp),%ymm2
 leaq 192(%rsp),%rbx

 vpsrlq $29,%ymm8,%ymm14
 vpand %ymm15,%ymm8,%ymm8
 vpsrlq $29,%ymm1,%ymm11
 vpand %ymm15,%ymm1,%ymm1

 vpermq $0x93,%ymm14,%ymm14
 vpxor %ymm9,%ymm9,%ymm9
 vpermq $0x93,%ymm11,%ymm11

 vpblendd $3,%ymm9,%ymm14,%ymm10
 vpblendd $3,%ymm14,%ymm11,%ymm14
 vpaddq %ymm10,%ymm8,%ymm8
 vpblendd $3,%ymm11,%ymm9,%ymm11
 vpaddq %ymm14,%ymm1,%ymm1
 vpaddq %ymm11,%ymm2,%ymm2
 vmovdqu %ymm1,288-192(%rbx)
 vmovdqu %ymm2,320-192(%rbx)

 movq (%rsp),%rax
 movq 8(%rsp),%r10
 movq 16(%rsp),%r11
 movq 24(%rsp),%r12
 vmovdqu 32(%rsp),%ymm1
 vmovdqu 64-192(%rbx),%ymm2
 vmovdqu 96-192(%rbx),%ymm3
 vmovdqu 128-192(%rbx),%ymm4
 vmovdqu 160-192(%rbx),%ymm5
 vmovdqu 192-192(%rbx),%ymm6
 vmovdqu 224-192(%rbx),%ymm7

 movq %rax,%r9
 imull %ecx,%eax
 andl $0x1fffffff,%eax
 vmovd %eax,%xmm12

 movq %rax,%rdx
 imulq -128(%r13),%rax
 vpbroadcastq %xmm12,%ymm12
 addq %rax,%r9
 movq %rdx,%rax
 imulq 8-128(%r13),%rax
 shrq $29,%r9
 addq %rax,%r10
 movq %rdx,%rax
 imulq 16-128(%r13),%rax
 addq %r9,%r10
 addq %rax,%r11
 imulq 24-128(%r13),%rdx
 addq %rdx,%r12

 movq %r10,%rax
 imull %ecx,%eax
 andl $0x1fffffff,%eax

 movl $9,%r14d
# WAS jmp .LOOP_REDUCE_1024
	jmp	.LOOP_REDUCE_1024_BCM_14

.align 32
.LOOP_REDUCE_1024_BCM_14:

 vmovd %eax,%xmm13
 vpbroadcastq %xmm13,%ymm13

 vpmuludq 32-128(%r13),%ymm12,%ymm10
 movq %rax,%rdx
 imulq -128(%r13),%rax
 vpaddq %ymm10,%ymm1,%ymm1
 addq %rax,%r10
 vpmuludq 64-128(%r13),%ymm12,%ymm14
 movq %rdx,%rax
 imulq 8-128(%r13),%rax
 vpaddq %ymm14,%ymm2,%ymm2
 vpmuludq 96-128(%r13),%ymm12,%ymm11
.byte 0x67
 addq %rax,%r11
.byte 0x67
 movq %rdx,%rax
 imulq 16-128(%r13),%rax
 shrq $29,%r10
 vpaddq %ymm11,%ymm3,%ymm3
 vpmuludq 128-128(%r13),%ymm12,%ymm10
 addq %rax,%r12
 addq %r10,%r11
 vpaddq %ymm10,%ymm4,%ymm4
 vpmuludq 160-128(%r13),%ymm12,%ymm14
 movq %r11,%rax
 imull %ecx,%eax
 vpaddq %ymm14,%ymm5,%ymm5
 vpmuludq 192-128(%r13),%ymm12,%ymm11
 andl $0x1fffffff,%eax
 vpaddq %ymm11,%ymm6,%ymm6
 vpmuludq 224-128(%r13),%ymm12,%ymm10
 vpaddq %ymm10,%ymm7,%ymm7
 vpmuludq 256-128(%r13),%ymm12,%ymm14
 vmovd %eax,%xmm12

 vpaddq %ymm14,%ymm8,%ymm8

 vpbroadcastq %xmm12,%ymm12

 vpmuludq 32-8-128(%r13),%ymm13,%ymm11
 vmovdqu 96-8-128(%r13),%ymm14
 movq %rax,%rdx
 imulq -128(%r13),%rax
 vpaddq %ymm11,%ymm1,%ymm1
 vpmuludq 64-8-128(%r13),%ymm13,%ymm10
 vmovdqu 128-8-128(%r13),%ymm11
 addq %rax,%r11
 movq %rdx,%rax
 imulq 8-128(%r13),%rax
 vpaddq %ymm10,%ymm2,%ymm2
 addq %r12,%rax
 shrq $29,%r11
 vpmuludq %ymm13,%ymm14,%ymm14
 vmovdqu 160-8-128(%r13),%ymm10
 addq %r11,%rax
 vpaddq %ymm14,%ymm3,%ymm3
 vpmuludq %ymm13,%ymm11,%ymm11
 vmovdqu 192-8-128(%r13),%ymm14
.byte 0x67
 movq %rax,%r12
 imull %ecx,%eax
 vpaddq %ymm11,%ymm4,%ymm4
 vpmuludq %ymm13,%ymm10,%ymm10
.byte 0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00
 andl $0x1fffffff,%eax
 vpaddq %ymm10,%ymm5,%ymm5
 vpmuludq %ymm13,%ymm14,%ymm14
 vmovdqu 256-8-128(%r13),%ymm10
 vpaddq %ymm14,%ymm6,%ymm6
 vpmuludq %ymm13,%ymm11,%ymm11
 vmovdqu 288-8-128(%r13),%ymm9
 vmovd %eax,%xmm0
 imulq -128(%r13),%rax
 vpaddq %ymm11,%ymm7,%ymm7
 vpmuludq %ymm13,%ymm10,%ymm10
 vmovdqu 32-16-128(%r13),%ymm14
 vpbroadcastq %xmm0,%ymm0
 vpaddq %ymm10,%ymm8,%ymm8
 vpmuludq %ymm13,%ymm9,%ymm9
 vmovdqu 64-16-128(%r13),%ymm11
 addq %rax,%r12

 vmovdqu 32-24-128(%r13),%ymm13
 vpmuludq %ymm12,%ymm14,%ymm14
 vmovdqu 96-16-128(%r13),%ymm10
 vpaddq %ymm14,%ymm1,%ymm1
 vpmuludq %ymm0,%ymm13,%ymm13
 vpmuludq %ymm12,%ymm11,%ymm11
.byte 0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff
 vpaddq %ymm1,%ymm13,%ymm13
 vpaddq %ymm11,%ymm2,%ymm2
 vpmuludq %ymm12,%ymm10,%ymm10
 vmovdqu 160-16-128(%r13),%ymm11
.byte 0x67
 vmovq %xmm13,%rax
 vmovdqu %ymm13,(%rsp)
 vpaddq %ymm10,%ymm3,%ymm3
 vpmuludq %ymm12,%ymm14,%ymm14
 vmovdqu 192-16-128(%r13),%ymm10
 vpaddq %ymm14,%ymm4,%ymm4
 vpmuludq %ymm12,%ymm11,%ymm11
 vmovdqu 224-16-128(%r13),%ymm14
 vpaddq %ymm11,%ymm5,%ymm5
 vpmuludq %ymm12,%ymm10,%ymm10
 vmovdqu 256-16-128(%r13),%ymm11
 vpaddq %ymm10,%ymm6,%ymm6
 vpmuludq %ymm12,%ymm14,%ymm14
 shrq $29,%r12
 vmovdqu 288-16-128(%r13),%ymm10
 addq %r12,%rax
 vpaddq %ymm14,%ymm7,%ymm7
 vpmuludq %ymm12,%ymm11,%ymm11

 movq %rax,%r9
 imull %ecx,%eax
 vpaddq %ymm11,%ymm8,%ymm8
 vpmuludq %ymm12,%ymm10,%ymm10
 andl $0x1fffffff,%eax
 vmovd %eax,%xmm12
 vmovdqu 96-24-128(%r13),%ymm11
.byte 0x67
 vpaddq %ymm10,%ymm9,%ymm9
 vpbroadcastq %xmm12,%ymm12

 vpmuludq 64-24-128(%r13),%ymm0,%ymm14
 vmovdqu 128-24-128(%r13),%ymm10
 movq %rax,%rdx
 imulq -128(%r13),%rax
 movq 8(%rsp),%r10
 vpaddq %ymm14,%ymm2,%ymm1
 vpmuludq %ymm0,%ymm11,%ymm11
 vmovdqu 160-24-128(%r13),%ymm14
 addq %rax,%r9
 movq %rdx,%rax
 imulq 8-128(%r13),%rax
.byte 0x67
 shrq $29,%r9
 movq 16(%rsp),%r11
 vpaddq %ymm11,%ymm3,%ymm2
 vpmuludq %ymm0,%ymm10,%ymm10
 vmovdqu 192-24-128(%r13),%ymm11
 addq %rax,%r10
 movq %rdx,%rax
 imulq 16-128(%r13),%rax
 vpaddq %ymm10,%ymm4,%ymm3
 vpmuludq %ymm0,%ymm14,%ymm14
 vmovdqu 224-24-128(%r13),%ymm10
 imulq 24-128(%r13),%rdx
 addq %rax,%r11
 leaq (%r9,%r10,1),%rax
 vpaddq %ymm14,%ymm5,%ymm4
 vpmuludq %ymm0,%ymm11,%ymm11
 vmovdqu 256-24-128(%r13),%ymm14
 movq %rax,%r10
 imull %ecx,%eax
 vpmuludq %ymm0,%ymm10,%ymm10
 vpaddq %ymm11,%ymm6,%ymm5
 vmovdqu 288-24-128(%r13),%ymm11
 andl $0x1fffffff,%eax
 vpaddq %ymm10,%ymm7,%ymm6
 vpmuludq %ymm0,%ymm14,%ymm14
 addq 24(%rsp),%rdx
 vpaddq %ymm14,%ymm8,%ymm7
 vpmuludq %ymm0,%ymm11,%ymm11
 vpaddq %ymm11,%ymm9,%ymm8
 vmovq %r12,%xmm9
 movq %rdx,%r12

 decl %r14d
# WAS jnz .LOOP_REDUCE_1024
	jnz	.LOOP_REDUCE_1024_BCM_14
 leaq 448(%rsp),%r12
 vpaddq %ymm9,%ymm13,%ymm0
 vpxor %ymm9,%ymm9,%ymm9

 vpaddq 288-192(%rbx),%ymm0,%ymm0
 vpaddq 320-448(%r12),%ymm1,%ymm1
 vpaddq 352-448(%r12),%ymm2,%ymm2
 vpaddq 384-448(%r12),%ymm3,%ymm3
 vpaddq 416-448(%r12),%ymm4,%ymm4
 vpaddq 448-448(%r12),%ymm5,%ymm5
 vpaddq 480-448(%r12),%ymm6,%ymm6
 vpaddq 512-448(%r12),%ymm7,%ymm7
 vpaddq 544-448(%r12),%ymm8,%ymm8

 vpsrlq $29,%ymm0,%ymm14
 vpand %ymm15,%ymm0,%ymm0
 vpsrlq $29,%ymm1,%ymm11
 vpand %ymm15,%ymm1,%ymm1
 vpsrlq $29,%ymm2,%ymm12
 vpermq $0x93,%ymm14,%ymm14
 vpand %ymm15,%ymm2,%ymm2
 vpsrlq $29,%ymm3,%ymm13
 vpermq $0x93,%ymm11,%ymm11
 vpand %ymm15,%ymm3,%ymm3
 vpermq $0x93,%ymm12,%ymm12

 vpblendd $3,%ymm9,%ymm14,%ymm10
 vpermq $0x93,%ymm13,%ymm13
 vpblendd $3,%ymm14,%ymm11,%ymm14
 vpaddq %ymm10,%ymm0,%ymm0
 vpblendd $3,%ymm11,%ymm12,%ymm11
 vpaddq %ymm14,%ymm1,%ymm1
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm11,%ymm2,%ymm2
 vpblendd $3,%ymm13,%ymm9,%ymm13
 vpaddq %ymm12,%ymm3,%ymm3
 vpaddq %ymm13,%ymm4,%ymm4

 vpsrlq $29,%ymm0,%ymm14
 vpand %ymm15,%ymm0,%ymm0
 vpsrlq $29,%ymm1,%ymm11
 vpand %ymm15,%ymm1,%ymm1
 vpsrlq $29,%ymm2,%ymm12
 vpermq $0x93,%ymm14,%ymm14
 vpand %ymm15,%ymm2,%ymm2
 vpsrlq $29,%ymm3,%ymm13
 vpermq $0x93,%ymm11,%ymm11
 vpand %ymm15,%ymm3,%ymm3
 vpermq $0x93,%ymm12,%ymm12

 vpblendd $3,%ymm9,%ymm14,%ymm10
 vpermq $0x93,%ymm13,%ymm13
 vpblendd $3,%ymm14,%ymm11,%ymm14
 vpaddq %ymm10,%ymm0,%ymm0
 vpblendd $3,%ymm11,%ymm12,%ymm11
 vpaddq %ymm14,%ymm1,%ymm1
 vmovdqu %ymm0,0-128(%rdi)
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm11,%ymm2,%ymm2
 vmovdqu %ymm1,32-128(%rdi)
 vpblendd $3,%ymm13,%ymm9,%ymm13
 vpaddq %ymm12,%ymm3,%ymm3
 vmovdqu %ymm2,64-128(%rdi)
 vpaddq %ymm13,%ymm4,%ymm4
 vmovdqu %ymm3,96-128(%rdi)
 vpsrlq $29,%ymm4,%ymm14
 vpand %ymm15,%ymm4,%ymm4
 vpsrlq $29,%ymm5,%ymm11
 vpand %ymm15,%ymm5,%ymm5
 vpsrlq $29,%ymm6,%ymm12
 vpermq $0x93,%ymm14,%ymm14
 vpand %ymm15,%ymm6,%ymm6
 vpsrlq $29,%ymm7,%ymm13
 vpermq $0x93,%ymm11,%ymm11
 vpand %ymm15,%ymm7,%ymm7
 vpsrlq $29,%ymm8,%ymm0
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm8,%ymm8
 vpermq $0x93,%ymm13,%ymm13

 vpblendd $3,%ymm9,%ymm14,%ymm10
 vpermq $0x93,%ymm0,%ymm0
 vpblendd $3,%ymm14,%ymm11,%ymm14
 vpaddq %ymm10,%ymm4,%ymm4
 vpblendd $3,%ymm11,%ymm12,%ymm11
 vpaddq %ymm14,%ymm5,%ymm5
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm11,%ymm6,%ymm6
 vpblendd $3,%ymm13,%ymm0,%ymm13
 vpaddq %ymm12,%ymm7,%ymm7
 vpaddq %ymm13,%ymm8,%ymm8

 vpsrlq $29,%ymm4,%ymm14
 vpand %ymm15,%ymm4,%ymm4
 vpsrlq $29,%ymm5,%ymm11
 vpand %ymm15,%ymm5,%ymm5
 vpsrlq $29,%ymm6,%ymm12
 vpermq $0x93,%ymm14,%ymm14
 vpand %ymm15,%ymm6,%ymm6
 vpsrlq $29,%ymm7,%ymm13
 vpermq $0x93,%ymm11,%ymm11
 vpand %ymm15,%ymm7,%ymm7
 vpsrlq $29,%ymm8,%ymm0
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm8,%ymm8
 vpermq $0x93,%ymm13,%ymm13

 vpblendd $3,%ymm9,%ymm14,%ymm10
 vpermq $0x93,%ymm0,%ymm0
 vpblendd $3,%ymm14,%ymm11,%ymm14
 vpaddq %ymm10,%ymm4,%ymm4
 vpblendd $3,%ymm11,%ymm12,%ymm11
 vpaddq %ymm14,%ymm5,%ymm5
 vmovdqu %ymm4,128-128(%rdi)
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm11,%ymm6,%ymm6
 vmovdqu %ymm5,160-128(%rdi)
 vpblendd $3,%ymm13,%ymm0,%ymm13
 vpaddq %ymm12,%ymm7,%ymm7
 vmovdqu %ymm6,192-128(%rdi)
 vpaddq %ymm13,%ymm8,%ymm8
 vmovdqu %ymm7,224-128(%rdi)
 vmovdqu %ymm8,256-128(%rdi)

 movq %rdi,%rsi
 decl %r8d
# WAS jne .LOOP_GRANDE_SQR_1024
	jne	.LOOP_GRANDE_SQR_1024_BCM_14

 vzeroall
 movq %rbp,%rax
.cfi_def_cfa_register %rax
 movq -48(%rax),%r15
.cfi_restore %r15
 movq -40(%rax),%r14
.cfi_restore %r14
 movq -32(%rax),%r13
.cfi_restore %r13
 movq -24(%rax),%r12
.cfi_restore %r12
 movq -16(%rax),%rbp
.cfi_restore %rbp
 movq -8(%rax),%rbx
.cfi_restore %rbx
 leaq (%rax),%rsp
.cfi_def_cfa_register %rsp
.Lsqr_1024_epilogue_BCM_14:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_1024_sqr_avx2,.-rsaz_1024_sqr_avx2
.globl rsaz_1024_mul_avx2
.hidden rsaz_1024_mul_avx2
.type rsaz_1024_mul_avx2,@function
.align 64
.Lrsaz_1024_mul_avx2_local_target:
rsaz_1024_mul_avx2:
.cfi_startproc
endbr64
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 movq %rax,%rbp
.cfi_def_cfa_register %rbp
 vzeroall
 movq %rdx,%r13
 subq $64,%rsp






.byte 0x67,0x67
 movq %rsi,%r15
 andq $4095,%r15
 addq $320,%r15
 shrq $12,%r15
 movq %rsi,%r15
 cmovnzq %r13,%rsi
 cmovnzq %r15,%r13

 movq %rcx,%r15
 subq $-128,%rsi
 subq $-128,%rcx
 subq $-128,%rdi

 andq $4095,%r15
 addq $320,%r15
.byte 0x67,0x67
 shrq $12,%r15
# WAS jz .Lmul_1024_no_n_copy
	jz	.Lmul_1024_no_n_copy_BCM_14





 subq $320,%rsp
 vmovdqu 0-128(%rcx),%ymm0
 andq $-512,%rsp
 vmovdqu 32-128(%rcx),%ymm1
 vmovdqu 64-128(%rcx),%ymm2
 vmovdqu 96-128(%rcx),%ymm3
 vmovdqu 128-128(%rcx),%ymm4
 vmovdqu 160-128(%rcx),%ymm5
 vmovdqu 192-128(%rcx),%ymm6
 vmovdqu 224-128(%rcx),%ymm7
 vmovdqu 256-128(%rcx),%ymm8
 leaq 64+128(%rsp),%rcx
 vmovdqu %ymm0,0-128(%rcx)
 vpxor %ymm0,%ymm0,%ymm0
 vmovdqu %ymm1,32-128(%rcx)
 vpxor %ymm1,%ymm1,%ymm1
 vmovdqu %ymm2,64-128(%rcx)
 vpxor %ymm2,%ymm2,%ymm2
 vmovdqu %ymm3,96-128(%rcx)
 vpxor %ymm3,%ymm3,%ymm3
 vmovdqu %ymm4,128-128(%rcx)
 vpxor %ymm4,%ymm4,%ymm4
 vmovdqu %ymm5,160-128(%rcx)
 vpxor %ymm5,%ymm5,%ymm5
 vmovdqu %ymm6,192-128(%rcx)
 vpxor %ymm6,%ymm6,%ymm6
 vmovdqu %ymm7,224-128(%rcx)
 vpxor %ymm7,%ymm7,%ymm7
 vmovdqu %ymm8,256-128(%rcx)
 vmovdqa %ymm0,%ymm8
 vmovdqu %ymm9,288-128(%rcx)
.Lmul_1024_no_n_copy_BCM_14:

 andq $-64,%rsp

 movq (%r13),%rbx
 vpbroadcastq (%r13),%ymm10
 vmovdqu %ymm0,(%rsp)
 xorq %r9,%r9
.byte 0x67
 xorq %r10,%r10
 xorq %r11,%r11
 xorq %r12,%r12

# WAS vmovdqu .Land_mask(%rip),%ymm15
	vmovdqu	.Land_mask_BCM_14(%rip), %ymm15
 movl $9,%r14d
 vmovdqu %ymm9,288-128(%rdi)
# WAS jmp .Loop_mul_1024
	jmp	.Loop_mul_1024_BCM_14

.align 32
.Loop_mul_1024_BCM_14:

 vpsrlq $29,%ymm3,%ymm9
 movq %rbx,%rax
 imulq -128(%rsi),%rax
 addq %r9,%rax
 movq %rbx,%r10
 imulq 8-128(%rsi),%r10
 addq 8(%rsp),%r10

 movq %rax,%r9
 imull %r8d,%eax
 andl $0x1fffffff,%eax

 movq %rbx,%r11
 imulq 16-128(%rsi),%r11
 addq 16(%rsp),%r11

 movq %rbx,%r12
 imulq 24-128(%rsi),%r12
 addq 24(%rsp),%r12
 vpmuludq 32-128(%rsi),%ymm10,%ymm0
 vmovd %eax,%xmm11
 vpaddq %ymm0,%ymm1,%ymm1
 vpmuludq 64-128(%rsi),%ymm10,%ymm12
 vpbroadcastq %xmm11,%ymm11
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq 96-128(%rsi),%ymm10,%ymm13
 vpand %ymm15,%ymm3,%ymm3
 vpaddq %ymm13,%ymm3,%ymm3
 vpmuludq 128-128(%rsi),%ymm10,%ymm0
 vpaddq %ymm0,%ymm4,%ymm4
 vpmuludq 160-128(%rsi),%ymm10,%ymm12
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq 192-128(%rsi),%ymm10,%ymm13
 vpaddq %ymm13,%ymm6,%ymm6
 vpmuludq 224-128(%rsi),%ymm10,%ymm0
 vpermq $0x93,%ymm9,%ymm9
 vpaddq %ymm0,%ymm7,%ymm7
 vpmuludq 256-128(%rsi),%ymm10,%ymm12
 vpbroadcastq 8(%r13),%ymm10
 vpaddq %ymm12,%ymm8,%ymm8

 movq %rax,%rdx
 imulq -128(%rcx),%rax
 addq %rax,%r9
 movq %rdx,%rax
 imulq 8-128(%rcx),%rax
 addq %rax,%r10
 movq %rdx,%rax
 imulq 16-128(%rcx),%rax
 addq %rax,%r11
 shrq $29,%r9
 imulq 24-128(%rcx),%rdx
 addq %rdx,%r12
 addq %r9,%r10

 vpmuludq 32-128(%rcx),%ymm11,%ymm13
 vmovq %xmm10,%rbx
 vpaddq %ymm13,%ymm1,%ymm1
 vpmuludq 64-128(%rcx),%ymm11,%ymm0
 vpaddq %ymm0,%ymm2,%ymm2
 vpmuludq 96-128(%rcx),%ymm11,%ymm12
 vpaddq %ymm12,%ymm3,%ymm3
 vpmuludq 128-128(%rcx),%ymm11,%ymm13
 vpaddq %ymm13,%ymm4,%ymm4
 vpmuludq 160-128(%rcx),%ymm11,%ymm0
 vpaddq %ymm0,%ymm5,%ymm5
 vpmuludq 192-128(%rcx),%ymm11,%ymm12
 vpaddq %ymm12,%ymm6,%ymm6
 vpmuludq 224-128(%rcx),%ymm11,%ymm13
 vpblendd $3,%ymm14,%ymm9,%ymm12
 vpaddq %ymm13,%ymm7,%ymm7
 vpmuludq 256-128(%rcx),%ymm11,%ymm0
 vpaddq %ymm12,%ymm3,%ymm3
 vpaddq %ymm0,%ymm8,%ymm8

 movq %rbx,%rax
 imulq -128(%rsi),%rax
 addq %rax,%r10
 vmovdqu -8+32-128(%rsi),%ymm12
 movq %rbx,%rax
 imulq 8-128(%rsi),%rax
 addq %rax,%r11
 vmovdqu -8+64-128(%rsi),%ymm13

 movq %r10,%rax
 vpblendd $0xfc,%ymm14,%ymm9,%ymm9
 imull %r8d,%eax
 vpaddq %ymm9,%ymm4,%ymm4
 andl $0x1fffffff,%eax

 imulq 16-128(%rsi),%rbx
 addq %rbx,%r12
 vpmuludq %ymm10,%ymm12,%ymm12
 vmovd %eax,%xmm11
 vmovdqu -8+96-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm1,%ymm1
 vpmuludq %ymm10,%ymm13,%ymm13
 vpbroadcastq %xmm11,%ymm11
 vmovdqu -8+128-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm2,%ymm2
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -8+160-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm3,%ymm3
 vpmuludq %ymm10,%ymm12,%ymm12
 vmovdqu -8+192-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm4,%ymm4
 vpmuludq %ymm10,%ymm13,%ymm13
 vmovdqu -8+224-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm5,%ymm5
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -8+256-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm6,%ymm6
 vpmuludq %ymm10,%ymm12,%ymm12
 vmovdqu -8+288-128(%rsi),%ymm9
 vpaddq %ymm12,%ymm7,%ymm7
 vpmuludq %ymm10,%ymm13,%ymm13
 vpaddq %ymm13,%ymm8,%ymm8
 vpmuludq %ymm10,%ymm9,%ymm9
 vpbroadcastq 16(%r13),%ymm10

 movq %rax,%rdx
 imulq -128(%rcx),%rax
 addq %rax,%r10
 vmovdqu -8+32-128(%rcx),%ymm0
 movq %rdx,%rax
 imulq 8-128(%rcx),%rax
 addq %rax,%r11
 vmovdqu -8+64-128(%rcx),%ymm12
 shrq $29,%r10
 imulq 16-128(%rcx),%rdx
 addq %rdx,%r12
 addq %r10,%r11

 vpmuludq %ymm11,%ymm0,%ymm0
 vmovq %xmm10,%rbx
 vmovdqu -8+96-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm1,%ymm1
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -8+128-128(%rcx),%ymm0
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -8+160-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm3,%ymm3
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -8+192-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm4,%ymm4
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -8+224-128(%rcx),%ymm0
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -8+256-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm6,%ymm6
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -8+288-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm7,%ymm7
 vpmuludq %ymm11,%ymm12,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq %ymm11,%ymm13,%ymm13
 vpaddq %ymm13,%ymm9,%ymm9

 vmovdqu -16+32-128(%rsi),%ymm0
 movq %rbx,%rax
 imulq -128(%rsi),%rax
 addq %r11,%rax

 vmovdqu -16+64-128(%rsi),%ymm12
 movq %rax,%r11
 imull %r8d,%eax
 andl $0x1fffffff,%eax

 imulq 8-128(%rsi),%rbx
 addq %rbx,%r12
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovd %eax,%xmm11
 vmovdqu -16+96-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm1,%ymm1
 vpmuludq %ymm10,%ymm12,%ymm12
 vpbroadcastq %xmm11,%ymm11
 vmovdqu -16+128-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq %ymm10,%ymm13,%ymm13
 vmovdqu -16+160-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm3,%ymm3
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -16+192-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm4,%ymm4
 vpmuludq %ymm10,%ymm12,%ymm12
 vmovdqu -16+224-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq %ymm10,%ymm13,%ymm13
 vmovdqu -16+256-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm6,%ymm6
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -16+288-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm7,%ymm7
 vpmuludq %ymm10,%ymm12,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq %ymm10,%ymm13,%ymm13
 vpbroadcastq 24(%r13),%ymm10
 vpaddq %ymm13,%ymm9,%ymm9

 vmovdqu -16+32-128(%rcx),%ymm0
 movq %rax,%rdx
 imulq -128(%rcx),%rax
 addq %rax,%r11
 vmovdqu -16+64-128(%rcx),%ymm12
 imulq 8-128(%rcx),%rdx
 addq %rdx,%r12
 shrq $29,%r11

 vpmuludq %ymm11,%ymm0,%ymm0
 vmovq %xmm10,%rbx
 vmovdqu -16+96-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm1,%ymm1
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -16+128-128(%rcx),%ymm0
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -16+160-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm3,%ymm3
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -16+192-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm4,%ymm4
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -16+224-128(%rcx),%ymm0
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -16+256-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm6,%ymm6
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -16+288-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm7,%ymm7
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -24+32-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -24+64-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm9,%ymm9

 addq %r11,%r12
 imulq -128(%rsi),%rbx
 addq %rbx,%r12

 movq %r12,%rax
 imull %r8d,%eax
 andl $0x1fffffff,%eax

 vpmuludq %ymm10,%ymm0,%ymm0
 vmovd %eax,%xmm11
 vmovdqu -24+96-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm1,%ymm1
 vpmuludq %ymm10,%ymm12,%ymm12
 vpbroadcastq %xmm11,%ymm11
 vmovdqu -24+128-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm2,%ymm2
 vpmuludq %ymm10,%ymm13,%ymm13
 vmovdqu -24+160-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm3,%ymm3
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -24+192-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm4,%ymm4
 vpmuludq %ymm10,%ymm12,%ymm12
 vmovdqu -24+224-128(%rsi),%ymm0
 vpaddq %ymm12,%ymm5,%ymm5
 vpmuludq %ymm10,%ymm13,%ymm13
 vmovdqu -24+256-128(%rsi),%ymm12
 vpaddq %ymm13,%ymm6,%ymm6
 vpmuludq %ymm10,%ymm0,%ymm0
 vmovdqu -24+288-128(%rsi),%ymm13
 vpaddq %ymm0,%ymm7,%ymm7
 vpmuludq %ymm10,%ymm12,%ymm12
 vpaddq %ymm12,%ymm8,%ymm8
 vpmuludq %ymm10,%ymm13,%ymm13
 vpbroadcastq 32(%r13),%ymm10
 vpaddq %ymm13,%ymm9,%ymm9
 addq $32,%r13

 vmovdqu -24+32-128(%rcx),%ymm0
 imulq -128(%rcx),%rax
 addq %rax,%r12
 shrq $29,%r12

 vmovdqu -24+64-128(%rcx),%ymm12
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovq %xmm10,%rbx
 vmovdqu -24+96-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm1,%ymm0
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu %ymm0,(%rsp)
 vpaddq %ymm12,%ymm2,%ymm1
 vmovdqu -24+128-128(%rcx),%ymm0
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -24+160-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm3,%ymm2
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -24+192-128(%rcx),%ymm13
 vpaddq %ymm0,%ymm4,%ymm3
 vpmuludq %ymm11,%ymm12,%ymm12
 vmovdqu -24+224-128(%rcx),%ymm0
 vpaddq %ymm12,%ymm5,%ymm4
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovdqu -24+256-128(%rcx),%ymm12
 vpaddq %ymm13,%ymm6,%ymm5
 vpmuludq %ymm11,%ymm0,%ymm0
 vmovdqu -24+288-128(%rcx),%ymm13
 movq %r12,%r9
 vpaddq %ymm0,%ymm7,%ymm6
 vpmuludq %ymm11,%ymm12,%ymm12
 addq (%rsp),%r9
 vpaddq %ymm12,%ymm8,%ymm7
 vpmuludq %ymm11,%ymm13,%ymm13
 vmovq %r12,%xmm12
 vpaddq %ymm13,%ymm9,%ymm8

 decl %r14d
# WAS jnz .Loop_mul_1024
	jnz	.Loop_mul_1024_BCM_14
 vpaddq (%rsp),%ymm12,%ymm0

 vpsrlq $29,%ymm0,%ymm12
 vpand %ymm15,%ymm0,%ymm0
 vpsrlq $29,%ymm1,%ymm13
 vpand %ymm15,%ymm1,%ymm1
 vpsrlq $29,%ymm2,%ymm10
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm2,%ymm2
 vpsrlq $29,%ymm3,%ymm11
 vpermq $0x93,%ymm13,%ymm13
 vpand %ymm15,%ymm3,%ymm3

 vpblendd $3,%ymm14,%ymm12,%ymm9
 vpermq $0x93,%ymm10,%ymm10
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpermq $0x93,%ymm11,%ymm11
 vpaddq %ymm9,%ymm0,%ymm0
 vpblendd $3,%ymm13,%ymm10,%ymm13
 vpaddq %ymm12,%ymm1,%ymm1
 vpblendd $3,%ymm10,%ymm11,%ymm10
 vpaddq %ymm13,%ymm2,%ymm2
 vpblendd $3,%ymm11,%ymm14,%ymm11
 vpaddq %ymm10,%ymm3,%ymm3
 vpaddq %ymm11,%ymm4,%ymm4

 vpsrlq $29,%ymm0,%ymm12
 vpand %ymm15,%ymm0,%ymm0
 vpsrlq $29,%ymm1,%ymm13
 vpand %ymm15,%ymm1,%ymm1
 vpsrlq $29,%ymm2,%ymm10
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm2,%ymm2
 vpsrlq $29,%ymm3,%ymm11
 vpermq $0x93,%ymm13,%ymm13
 vpand %ymm15,%ymm3,%ymm3
 vpermq $0x93,%ymm10,%ymm10

 vpblendd $3,%ymm14,%ymm12,%ymm9
 vpermq $0x93,%ymm11,%ymm11
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm9,%ymm0,%ymm0
 vpblendd $3,%ymm13,%ymm10,%ymm13
 vpaddq %ymm12,%ymm1,%ymm1
 vpblendd $3,%ymm10,%ymm11,%ymm10
 vpaddq %ymm13,%ymm2,%ymm2
 vpblendd $3,%ymm11,%ymm14,%ymm11
 vpaddq %ymm10,%ymm3,%ymm3
 vpaddq %ymm11,%ymm4,%ymm4

 vmovdqu %ymm0,0-128(%rdi)
 vmovdqu %ymm1,32-128(%rdi)
 vmovdqu %ymm2,64-128(%rdi)
 vmovdqu %ymm3,96-128(%rdi)
 vpsrlq $29,%ymm4,%ymm12
 vpand %ymm15,%ymm4,%ymm4
 vpsrlq $29,%ymm5,%ymm13
 vpand %ymm15,%ymm5,%ymm5
 vpsrlq $29,%ymm6,%ymm10
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm6,%ymm6
 vpsrlq $29,%ymm7,%ymm11
 vpermq $0x93,%ymm13,%ymm13
 vpand %ymm15,%ymm7,%ymm7
 vpsrlq $29,%ymm8,%ymm0
 vpermq $0x93,%ymm10,%ymm10
 vpand %ymm15,%ymm8,%ymm8
 vpermq $0x93,%ymm11,%ymm11

 vpblendd $3,%ymm14,%ymm12,%ymm9
 vpermq $0x93,%ymm0,%ymm0
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm9,%ymm4,%ymm4
 vpblendd $3,%ymm13,%ymm10,%ymm13
 vpaddq %ymm12,%ymm5,%ymm5
 vpblendd $3,%ymm10,%ymm11,%ymm10
 vpaddq %ymm13,%ymm6,%ymm6
 vpblendd $3,%ymm11,%ymm0,%ymm11
 vpaddq %ymm10,%ymm7,%ymm7
 vpaddq %ymm11,%ymm8,%ymm8

 vpsrlq $29,%ymm4,%ymm12
 vpand %ymm15,%ymm4,%ymm4
 vpsrlq $29,%ymm5,%ymm13
 vpand %ymm15,%ymm5,%ymm5
 vpsrlq $29,%ymm6,%ymm10
 vpermq $0x93,%ymm12,%ymm12
 vpand %ymm15,%ymm6,%ymm6
 vpsrlq $29,%ymm7,%ymm11
 vpermq $0x93,%ymm13,%ymm13
 vpand %ymm15,%ymm7,%ymm7
 vpsrlq $29,%ymm8,%ymm0
 vpermq $0x93,%ymm10,%ymm10
 vpand %ymm15,%ymm8,%ymm8
 vpermq $0x93,%ymm11,%ymm11

 vpblendd $3,%ymm14,%ymm12,%ymm9
 vpermq $0x93,%ymm0,%ymm0
 vpblendd $3,%ymm12,%ymm13,%ymm12
 vpaddq %ymm9,%ymm4,%ymm4
 vpblendd $3,%ymm13,%ymm10,%ymm13
 vpaddq %ymm12,%ymm5,%ymm5
 vpblendd $3,%ymm10,%ymm11,%ymm10
 vpaddq %ymm13,%ymm6,%ymm6
 vpblendd $3,%ymm11,%ymm0,%ymm11
 vpaddq %ymm10,%ymm7,%ymm7
 vpaddq %ymm11,%ymm8,%ymm8

 vmovdqu %ymm4,128-128(%rdi)
 vmovdqu %ymm5,160-128(%rdi)
 vmovdqu %ymm6,192-128(%rdi)
 vmovdqu %ymm7,224-128(%rdi)
 vmovdqu %ymm8,256-128(%rdi)
 vzeroupper

 movq %rbp,%rax
.cfi_def_cfa_register %rax
 movq -48(%rax),%r15
.cfi_restore %r15
 movq -40(%rax),%r14
.cfi_restore %r14
 movq -32(%rax),%r13
.cfi_restore %r13
 movq -24(%rax),%r12
.cfi_restore %r12
 movq -16(%rax),%rbp
.cfi_restore %rbp
 movq -8(%rax),%rbx
.cfi_restore %rbx
 leaq (%rax),%rsp
.cfi_def_cfa_register %rsp
.Lmul_1024_epilogue_BCM_14:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_1024_mul_avx2,.-rsaz_1024_mul_avx2
.globl rsaz_1024_red2norm_avx2
.hidden rsaz_1024_red2norm_avx2
.type rsaz_1024_red2norm_avx2,@function
.align 32
.Lrsaz_1024_red2norm_avx2_local_target:
rsaz_1024_red2norm_avx2:
.cfi_startproc
endbr64
 subq $-128,%rsi
 xorq %rax,%rax
 movq -128(%rsi),%r8
 movq -120(%rsi),%r9
 movq -112(%rsi),%r10
 shlq $0,%r8
 shlq $29,%r9
 movq %r10,%r11
 shlq $58,%r10
 shrq $6,%r11
 addq %r8,%rax
 addq %r9,%rax
 addq %r10,%rax
 adcq $0,%r11
 movq %rax,0(%rdi)
 movq %r11,%rax
 movq -104(%rsi),%r8
 movq -96(%rsi),%r9
 shlq $23,%r8
 movq %r9,%r10
 shlq $52,%r9
 shrq $12,%r10
 addq %r8,%rax
 addq %r9,%rax
 adcq $0,%r10
 movq %rax,8(%rdi)
 movq %r10,%rax
 movq -88(%rsi),%r11
 movq -80(%rsi),%r8
 shlq $17,%r11
 movq %r8,%r9
 shlq $46,%r8
 shrq $18,%r9
 addq %r11,%rax
 addq %r8,%rax
 adcq $0,%r9
 movq %rax,16(%rdi)
 movq %r9,%rax
 movq -72(%rsi),%r10
 movq -64(%rsi),%r11
 shlq $11,%r10
 movq %r11,%r8
 shlq $40,%r11
 shrq $24,%r8
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,24(%rdi)
 movq %r8,%rax
 movq -56(%rsi),%r9
 movq -48(%rsi),%r10
 movq -40(%rsi),%r11
 shlq $5,%r9
 shlq $34,%r10
 movq %r11,%r8
 shlq $63,%r11
 shrq $1,%r8
 addq %r9,%rax
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,32(%rdi)
 movq %r8,%rax
 movq -32(%rsi),%r9
 movq -24(%rsi),%r10
 shlq $28,%r9
 movq %r10,%r11
 shlq $57,%r10
 shrq $7,%r11
 addq %r9,%rax
 addq %r10,%rax
 adcq $0,%r11
 movq %rax,40(%rdi)
 movq %r11,%rax
 movq -16(%rsi),%r8
 movq -8(%rsi),%r9
 shlq $22,%r8
 movq %r9,%r10
 shlq $51,%r9
 shrq $13,%r10
 addq %r8,%rax
 addq %r9,%rax
 adcq $0,%r10
 movq %rax,48(%rdi)
 movq %r10,%rax
 movq 0(%rsi),%r11
 movq 8(%rsi),%r8
 shlq $16,%r11
 movq %r8,%r9
 shlq $45,%r8
 shrq $19,%r9
 addq %r11,%rax
 addq %r8,%rax
 adcq $0,%r9
 movq %rax,56(%rdi)
 movq %r9,%rax
 movq 16(%rsi),%r10
 movq 24(%rsi),%r11
 shlq $10,%r10
 movq %r11,%r8
 shlq $39,%r11
 shrq $25,%r8
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,64(%rdi)
 movq %r8,%rax
 movq 32(%rsi),%r9
 movq 40(%rsi),%r10
 movq 48(%rsi),%r11
 shlq $4,%r9
 shlq $33,%r10
 movq %r11,%r8
 shlq $62,%r11
 shrq $2,%r8
 addq %r9,%rax
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,72(%rdi)
 movq %r8,%rax
 movq 56(%rsi),%r9
 movq 64(%rsi),%r10
 shlq $27,%r9
 movq %r10,%r11
 shlq $56,%r10
 shrq $8,%r11
 addq %r9,%rax
 addq %r10,%rax
 adcq $0,%r11
 movq %rax,80(%rdi)
 movq %r11,%rax
 movq 72(%rsi),%r8
 movq 80(%rsi),%r9
 shlq $21,%r8
 movq %r9,%r10
 shlq $50,%r9
 shrq $14,%r10
 addq %r8,%rax
 addq %r9,%rax
 adcq $0,%r10
 movq %rax,88(%rdi)
 movq %r10,%rax
 movq 88(%rsi),%r11
 movq 96(%rsi),%r8
 shlq $15,%r11
 movq %r8,%r9
 shlq $44,%r8
 shrq $20,%r9
 addq %r11,%rax
 addq %r8,%rax
 adcq $0,%r9
 movq %rax,96(%rdi)
 movq %r9,%rax
 movq 104(%rsi),%r10
 movq 112(%rsi),%r11
 shlq $9,%r10
 movq %r11,%r8
 shlq $38,%r11
 shrq $26,%r8
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,104(%rdi)
 movq %r8,%rax
 movq 120(%rsi),%r9
 movq 128(%rsi),%r10
 movq 136(%rsi),%r11
 shlq $3,%r9
 shlq $32,%r10
 movq %r11,%r8
 shlq $61,%r11
 shrq $3,%r8
 addq %r9,%rax
 addq %r10,%rax
 addq %r11,%rax
 adcq $0,%r8
 movq %rax,112(%rdi)
 movq %r8,%rax
 movq 144(%rsi),%r9
 movq 152(%rsi),%r10
 shlq $26,%r9
 movq %r10,%r11
 shlq $55,%r10
 shrq $9,%r11
 addq %r9,%rax
 addq %r10,%rax
 adcq $0,%r11
 movq %rax,120(%rdi)
 movq %r11,%rax
 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_1024_red2norm_avx2,.-rsaz_1024_red2norm_avx2

.globl rsaz_1024_norm2red_avx2
.hidden rsaz_1024_norm2red_avx2
.type rsaz_1024_norm2red_avx2,@function
.align 32
.Lrsaz_1024_norm2red_avx2_local_target:
rsaz_1024_norm2red_avx2:
.cfi_startproc
endbr64
 subq $-128,%rdi
 movq (%rsi),%r8
 movl $0x1fffffff,%eax
 movq 8(%rsi),%r9
 movq %r8,%r11
 shrq $0,%r11
 andq %rax,%r11
 movq %r11,-128(%rdi)
 movq %r8,%r10
 shrq $29,%r10
 andq %rax,%r10
 movq %r10,-120(%rdi)
 shrdq $58,%r9,%r8
 andq %rax,%r8
 movq %r8,-112(%rdi)
 movq 16(%rsi),%r10
 movq %r9,%r8
 shrq $23,%r8
 andq %rax,%r8
 movq %r8,-104(%rdi)
 shrdq $52,%r10,%r9
 andq %rax,%r9
 movq %r9,-96(%rdi)
 movq 24(%rsi),%r11
 movq %r10,%r9
 shrq $17,%r9
 andq %rax,%r9
 movq %r9,-88(%rdi)
 shrdq $46,%r11,%r10
 andq %rax,%r10
 movq %r10,-80(%rdi)
 movq 32(%rsi),%r8
 movq %r11,%r10
 shrq $11,%r10
 andq %rax,%r10
 movq %r10,-72(%rdi)
 shrdq $40,%r8,%r11
 andq %rax,%r11
 movq %r11,-64(%rdi)
 movq 40(%rsi),%r9
 movq %r8,%r11
 shrq $5,%r11
 andq %rax,%r11
 movq %r11,-56(%rdi)
 movq %r8,%r10
 shrq $34,%r10
 andq %rax,%r10
 movq %r10,-48(%rdi)
 shrdq $63,%r9,%r8
 andq %rax,%r8
 movq %r8,-40(%rdi)
 movq 48(%rsi),%r10
 movq %r9,%r8
 shrq $28,%r8
 andq %rax,%r8
 movq %r8,-32(%rdi)
 shrdq $57,%r10,%r9
 andq %rax,%r9
 movq %r9,-24(%rdi)
 movq 56(%rsi),%r11
 movq %r10,%r9
 shrq $22,%r9
 andq %rax,%r9
 movq %r9,-16(%rdi)
 shrdq $51,%r11,%r10
 andq %rax,%r10
 movq %r10,-8(%rdi)
 movq 64(%rsi),%r8
 movq %r11,%r10
 shrq $16,%r10
 andq %rax,%r10
 movq %r10,0(%rdi)
 shrdq $45,%r8,%r11
 andq %rax,%r11
 movq %r11,8(%rdi)
 movq 72(%rsi),%r9
 movq %r8,%r11
 shrq $10,%r11
 andq %rax,%r11
 movq %r11,16(%rdi)
 shrdq $39,%r9,%r8
 andq %rax,%r8
 movq %r8,24(%rdi)
 movq 80(%rsi),%r10
 movq %r9,%r8
 shrq $4,%r8
 andq %rax,%r8
 movq %r8,32(%rdi)
 movq %r9,%r11
 shrq $33,%r11
 andq %rax,%r11
 movq %r11,40(%rdi)
 shrdq $62,%r10,%r9
 andq %rax,%r9
 movq %r9,48(%rdi)
 movq 88(%rsi),%r11
 movq %r10,%r9
 shrq $27,%r9
 andq %rax,%r9
 movq %r9,56(%rdi)
 shrdq $56,%r11,%r10
 andq %rax,%r10
 movq %r10,64(%rdi)
 movq 96(%rsi),%r8
 movq %r11,%r10
 shrq $21,%r10
 andq %rax,%r10
 movq %r10,72(%rdi)
 shrdq $50,%r8,%r11
 andq %rax,%r11
 movq %r11,80(%rdi)
 movq 104(%rsi),%r9
 movq %r8,%r11
 shrq $15,%r11
 andq %rax,%r11
 movq %r11,88(%rdi)
 shrdq $44,%r9,%r8
 andq %rax,%r8
 movq %r8,96(%rdi)
 movq 112(%rsi),%r10
 movq %r9,%r8
 shrq $9,%r8
 andq %rax,%r8
 movq %r8,104(%rdi)
 shrdq $38,%r10,%r9
 andq %rax,%r9
 movq %r9,112(%rdi)
 movq 120(%rsi),%r11
 movq %r10,%r9
 shrq $3,%r9
 andq %rax,%r9
 movq %r9,120(%rdi)
 movq %r10,%r8
 shrq $32,%r8
 andq %rax,%r8
 movq %r8,128(%rdi)
 shrdq $61,%r11,%r10
 andq %rax,%r10
 movq %r10,136(%rdi)
 xorq %r8,%r8
 movq %r11,%r10
 shrq $26,%r10
 andq %rax,%r10
 movq %r10,144(%rdi)
 shrdq $55,%r8,%r11
 andq %rax,%r11
 movq %r11,152(%rdi)
 movq %r8,160(%rdi)
 movq %r8,168(%rdi)
 movq %r8,176(%rdi)
 movq %r8,184(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_1024_norm2red_avx2,.-rsaz_1024_norm2red_avx2
.globl rsaz_1024_scatter5_avx2
.hidden rsaz_1024_scatter5_avx2
.type rsaz_1024_scatter5_avx2,@function
.align 32
.Lrsaz_1024_scatter5_avx2_local_target:
rsaz_1024_scatter5_avx2:
.cfi_startproc
endbr64
 vzeroupper
# WAS vmovdqu .Lscatter_permd(%rip),%ymm5
	vmovdqu	.Lscatter_permd_BCM_14(%rip), %ymm5
 shll $4,%edx
 leaq (%rdi,%rdx,1),%rdi
 movl $9,%eax
# WAS jmp .Loop_scatter_1024
	jmp	.Loop_scatter_1024_BCM_14

.align 32
.Loop_scatter_1024_BCM_14:

 vmovdqu (%rsi),%ymm0
 leaq 32(%rsi),%rsi
 vpermd %ymm0,%ymm5,%ymm0
 vmovdqu %xmm0,(%rdi)
 leaq 512(%rdi),%rdi
 decl %eax
# WAS jnz .Loop_scatter_1024
	jnz	.Loop_scatter_1024_BCM_14

 vzeroupper
 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_1024_scatter5_avx2,.-rsaz_1024_scatter5_avx2

.globl rsaz_1024_gather5_avx2
.hidden rsaz_1024_gather5_avx2
.type rsaz_1024_gather5_avx2,@function
.align 32
.Lrsaz_1024_gather5_avx2_local_target:
rsaz_1024_gather5_avx2:
.cfi_startproc
endbr64
 vzeroupper
 movq %rsp,%r11
.cfi_def_cfa_register %r11
 leaq -256(%rsp),%rsp
 andq $-32,%rsp
# WAS leaq .Linc(%rip),%r10
	leaq	.Linc_BCM_14(%rip), %r10
 leaq -128(%rsp),%rax

 vmovd %edx,%xmm4
 vmovdqa (%r10),%ymm0
 vmovdqa 32(%r10),%ymm1
 vmovdqa 64(%r10),%ymm5
 vpbroadcastd %xmm4,%ymm4

 vpaddd %ymm5,%ymm0,%ymm2
 vpcmpeqd %ymm4,%ymm0,%ymm0
 vpaddd %ymm5,%ymm1,%ymm3
 vpcmpeqd %ymm4,%ymm1,%ymm1
 vmovdqa %ymm0,0+128(%rax)
 vpaddd %ymm5,%ymm2,%ymm0
 vpcmpeqd %ymm4,%ymm2,%ymm2
 vmovdqa %ymm1,32+128(%rax)
 vpaddd %ymm5,%ymm3,%ymm1
 vpcmpeqd %ymm4,%ymm3,%ymm3
 vmovdqa %ymm2,64+128(%rax)
 vpaddd %ymm5,%ymm0,%ymm2
 vpcmpeqd %ymm4,%ymm0,%ymm0
 vmovdqa %ymm3,96+128(%rax)
 vpaddd %ymm5,%ymm1,%ymm3
 vpcmpeqd %ymm4,%ymm1,%ymm1
 vmovdqa %ymm0,128+128(%rax)
 vpaddd %ymm5,%ymm2,%ymm8
 vpcmpeqd %ymm4,%ymm2,%ymm2
 vmovdqa %ymm1,160+128(%rax)
 vpaddd %ymm5,%ymm3,%ymm9
 vpcmpeqd %ymm4,%ymm3,%ymm3
 vmovdqa %ymm2,192+128(%rax)
 vpaddd %ymm5,%ymm8,%ymm10
 vpcmpeqd %ymm4,%ymm8,%ymm8
 vmovdqa %ymm3,224+128(%rax)
 vpaddd %ymm5,%ymm9,%ymm11
 vpcmpeqd %ymm4,%ymm9,%ymm9
 vpaddd %ymm5,%ymm10,%ymm12
 vpcmpeqd %ymm4,%ymm10,%ymm10
 vpaddd %ymm5,%ymm11,%ymm13
 vpcmpeqd %ymm4,%ymm11,%ymm11
 vpaddd %ymm5,%ymm12,%ymm14
 vpcmpeqd %ymm4,%ymm12,%ymm12
 vpaddd %ymm5,%ymm13,%ymm15
 vpcmpeqd %ymm4,%ymm13,%ymm13
 vpcmpeqd %ymm4,%ymm14,%ymm14
 vpcmpeqd %ymm4,%ymm15,%ymm15

 vmovdqa -32(%r10),%ymm7
 leaq 128(%rsi),%rsi
 movl $9,%edx

.Loop_gather_1024_BCM_14:

 vmovdqa 0-128(%rsi),%ymm0
 vmovdqa 32-128(%rsi),%ymm1
 vmovdqa 64-128(%rsi),%ymm2
 vmovdqa 96-128(%rsi),%ymm3
 vpand 0+128(%rax),%ymm0,%ymm0
 vpand 32+128(%rax),%ymm1,%ymm1
 vpand 64+128(%rax),%ymm2,%ymm2
 vpor %ymm0,%ymm1,%ymm4
 vpand 96+128(%rax),%ymm3,%ymm3
 vmovdqa 128-128(%rsi),%ymm0
 vmovdqa 160-128(%rsi),%ymm1
 vpor %ymm2,%ymm3,%ymm5
 vmovdqa 192-128(%rsi),%ymm2
 vmovdqa 224-128(%rsi),%ymm3
 vpand 128+128(%rax),%ymm0,%ymm0
 vpand 160+128(%rax),%ymm1,%ymm1
 vpand 192+128(%rax),%ymm2,%ymm2
 vpor %ymm0,%ymm4,%ymm4
 vpand 224+128(%rax),%ymm3,%ymm3
 vpand 256-128(%rsi),%ymm8,%ymm0
 vpor %ymm1,%ymm5,%ymm5
 vpand 288-128(%rsi),%ymm9,%ymm1
 vpor %ymm2,%ymm4,%ymm4
 vpand 320-128(%rsi),%ymm10,%ymm2
 vpor %ymm3,%ymm5,%ymm5
 vpand 352-128(%rsi),%ymm11,%ymm3
 vpor %ymm0,%ymm4,%ymm4
 vpand 384-128(%rsi),%ymm12,%ymm0
 vpor %ymm1,%ymm5,%ymm5
 vpand 416-128(%rsi),%ymm13,%ymm1
 vpor %ymm2,%ymm4,%ymm4
 vpand 448-128(%rsi),%ymm14,%ymm2
 vpor %ymm3,%ymm5,%ymm5
 vpand 480-128(%rsi),%ymm15,%ymm3
 leaq 512(%rsi),%rsi
 vpor %ymm0,%ymm4,%ymm4
 vpor %ymm1,%ymm5,%ymm5
 vpor %ymm2,%ymm4,%ymm4
 vpor %ymm3,%ymm5,%ymm5

 vpor %ymm5,%ymm4,%ymm4
 vextracti128 $1,%ymm4,%xmm5
 vpor %xmm4,%xmm5,%xmm5
 vpermd %ymm5,%ymm7,%ymm5
 vmovdqu %ymm5,(%rdi)
 leaq 32(%rdi),%rdi
 decl %edx
# WAS jnz .Loop_gather_1024
	jnz	.Loop_gather_1024_BCM_14

 vpxor %ymm0,%ymm0,%ymm0
 vmovdqu %ymm0,(%rdi)
 vzeroupper
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
 .byte 0xf3,0xc3
.cfi_endproc
.LSEH_end_rsaz_1024_gather5_BCM_14:

.size rsaz_1024_gather5_avx2,.-rsaz_1024_gather5_avx2
# WAS .section .rodata
.text
.align 64
.Land_mask_BCM_14:

.quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
.Lscatter_permd_BCM_14:

.long 0,2,4,6,7,7,7,7
.Lgather_permd_BCM_14:

.long 0,7,1,7,2,7,3,7
.Linc_BCM_14:

.long 0,0,0,0, 1,1,1,1
.long 2,2,2,2, 3,3,3,3
.long 4,4,4,4, 4,4,4,4
.align 64
.text
# 0 "rsaz-2k-avx512.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "rsaz-2k-avx512.S"



#include <openssl/asm_base.h>
# 4 "rsaz-2k-avx512.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "rsaz-2k-avx512.S" 2



.text

.globl rsaz_amm52x20_x1_ifma256
.hidden rsaz_amm52x20_x1_ifma256
.type rsaz_amm52x20_x1_ifma256,@function
.align 32
.Lrsaz_amm52x20_x1_ifma256_local_target:
rsaz_amm52x20_x1_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lrsaz_amm52x20_x1_ifma256_body_BCM_15:



 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19

 xorl %r9d,%r9d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax


 movl $5,%ebx

.align 32
.Lloop5_BCM_15:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm16
 vpmadd52luq 64(%rsi),%ymm1,%ymm17
 vpmadd52luq 96(%rsi),%ymm1,%ymm18
 vpmadd52luq 128(%rsi),%ymm1,%ymm19

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm16
 vpmadd52luq 64(%rcx),%ymm2,%ymm17
 vpmadd52luq 96(%rcx),%ymm2,%ymm18
 vpmadd52luq 128(%rcx),%ymm2,%ymm19


 valignq $1,%ymm3,%ymm16,%ymm3
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm0,%ymm19

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm16
 vpmadd52huq 64(%rsi),%ymm1,%ymm17
 vpmadd52huq 96(%rsi),%ymm1,%ymm18
 vpmadd52huq 128(%rsi),%ymm1,%ymm19

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm16
 vpmadd52huq 64(%rcx),%ymm2,%ymm17
 vpmadd52huq 96(%rcx),%ymm2,%ymm18
 vpmadd52huq 128(%rcx),%ymm2,%ymm19
 movq 8(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm16
 vpmadd52luq 64(%rsi),%ymm1,%ymm17
 vpmadd52luq 96(%rsi),%ymm1,%ymm18
 vpmadd52luq 128(%rsi),%ymm1,%ymm19

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm16
 vpmadd52luq 64(%rcx),%ymm2,%ymm17
 vpmadd52luq 96(%rcx),%ymm2,%ymm18
 vpmadd52luq 128(%rcx),%ymm2,%ymm19


 valignq $1,%ymm3,%ymm16,%ymm3
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm0,%ymm19

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm16
 vpmadd52huq 64(%rsi),%ymm1,%ymm17
 vpmadd52huq 96(%rsi),%ymm1,%ymm18
 vpmadd52huq 128(%rsi),%ymm1,%ymm19

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm16
 vpmadd52huq 64(%rcx),%ymm2,%ymm17
 vpmadd52huq 96(%rcx),%ymm2,%ymm18
 vpmadd52huq 128(%rcx),%ymm2,%ymm19
 movq 16(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm16
 vpmadd52luq 64(%rsi),%ymm1,%ymm17
 vpmadd52luq 96(%rsi),%ymm1,%ymm18
 vpmadd52luq 128(%rsi),%ymm1,%ymm19

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm16
 vpmadd52luq 64(%rcx),%ymm2,%ymm17
 vpmadd52luq 96(%rcx),%ymm2,%ymm18
 vpmadd52luq 128(%rcx),%ymm2,%ymm19


 valignq $1,%ymm3,%ymm16,%ymm3
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm0,%ymm19

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm16
 vpmadd52huq 64(%rsi),%ymm1,%ymm17
 vpmadd52huq 96(%rsi),%ymm1,%ymm18
 vpmadd52huq 128(%rsi),%ymm1,%ymm19

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm16
 vpmadd52huq 64(%rcx),%ymm2,%ymm17
 vpmadd52huq 96(%rcx),%ymm2,%ymm18
 vpmadd52huq 128(%rcx),%ymm2,%ymm19
 movq 24(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm16
 vpmadd52luq 64(%rsi),%ymm1,%ymm17
 vpmadd52luq 96(%rsi),%ymm1,%ymm18
 vpmadd52luq 128(%rsi),%ymm1,%ymm19

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm16
 vpmadd52luq 64(%rcx),%ymm2,%ymm17
 vpmadd52luq 96(%rcx),%ymm2,%ymm18
 vpmadd52luq 128(%rcx),%ymm2,%ymm19


 valignq $1,%ymm3,%ymm16,%ymm3
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm0,%ymm19

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm16
 vpmadd52huq 64(%rsi),%ymm1,%ymm17
 vpmadd52huq 96(%rsi),%ymm1,%ymm18
 vpmadd52huq 128(%rsi),%ymm1,%ymm19

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm16
 vpmadd52huq 64(%rcx),%ymm2,%ymm17
 vpmadd52huq 96(%rcx),%ymm2,%ymm18
 vpmadd52huq 128(%rcx),%ymm2,%ymm19
 leaq 32(%r11),%r11
 decl %ebx
# WAS jne .Lloop5
	jne	.Lloop5_BCM_15

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm16,%ymm1
 vpsrlq $52,%ymm17,%ymm2
 vpsrlq $52,%ymm18,%ymm25
 vpsrlq $52,%ymm19,%ymm26


 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm2,%ymm25,%ymm25
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_15(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm16,%ymm16
 vpaddq %ymm2,%ymm17,%ymm17
 vpaddq %ymm25,%ymm18,%ymm18
 vpaddq %ymm26,%ymm19,%ymm19



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm16, %k2
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k3
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm17, %k3
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k4
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm18, %k4
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k5
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm19, %k5
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 kmovb %k3,%r12d
 kmovb %k4,%r11d
 kmovb %k5,%r10d


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm16, %k2
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k3
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm17, %k3
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k4
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm18, %k4
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k5
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm19, %k5
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 kmovb %k3,%ebx
 kmovb %k4,%ecx
 kmovb %k5,%edx



 shlb $4,%r13b
 orb %r13b,%r14b
 shlb $4,%r11b
 orb %r11b,%r12b

 addb %r14b,%r14b
 adcb %r12b,%r12b
 adcb %r10b,%r10b

 shlb $4,%r8b
 orb %r8b,%r9b
 shlb $4,%cl
 orb %cl,%bl

 addb %r9b,%r14b
 adcb %bl,%r12b
 adcb %dl,%r10b

 xorb %r9b,%r14b
 xorb %bl,%r12b
 xorb %dl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r12d,%k3
 shrb $4,%r12b
 kmovb %r12d,%k4
 kmovb %r10d,%k5


# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k2}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k3}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k4}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k5}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19{%k5}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm16,32(%rdi)
 vmovdqu64 %ymm17,64(%rdi)
 vmovdqu64 %ymm18,96(%rdi)
 vmovdqu64 %ymm19,128(%rdi)

 vzeroupper
 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbp
.cfi_restore %rbp
 movq 40(%rsp),%rbx
.cfi_restore %rbx
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lrsaz_amm52x20_x1_ifma256_epilogue_BCM_15:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x20_x1_ifma256, .-rsaz_amm52x20_x1_ifma256
# WAS .section .rodata
.text
.align 32
.Lmask52x4_BCM_15:

.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.text
.text

.globl rsaz_amm52x20_x2_ifma256
.hidden rsaz_amm52x20_x2_ifma256
.type rsaz_amm52x20_x2_ifma256,@function
.align 32
.Lrsaz_amm52x20_x2_ifma256_local_target:
rsaz_amm52x20_x2_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56
.Lrsaz_amm52x20_x2_ifma256_body_BCM_15:



 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm20
 vmovdqa64 %ymm0,%ymm21
 vmovdqa64 %ymm0,%ymm22
 vmovdqa64 %ymm0,%ymm23

 xorl %r9d,%r9d
 xorl %r15d,%r15d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax

 movl $20,%ebx

.align 32
.Lloop20_BCM_15:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq (%r8),%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm16
 vpmadd52luq 64(%rsi),%ymm1,%ymm17
 vpmadd52luq 96(%rsi),%ymm1,%ymm18
 vpmadd52luq 128(%rsi),%ymm1,%ymm19

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm16
 vpmadd52luq 64(%rcx),%ymm2,%ymm17
 vpmadd52luq 96(%rcx),%ymm2,%ymm18
 vpmadd52luq 128(%rcx),%ymm2,%ymm19


 valignq $1,%ymm3,%ymm16,%ymm3
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm0,%ymm19

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm16
 vpmadd52huq 64(%rsi),%ymm1,%ymm17
 vpmadd52huq 96(%rsi),%ymm1,%ymm18
 vpmadd52huq 128(%rsi),%ymm1,%ymm19

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm16
 vpmadd52huq 64(%rcx),%ymm2,%ymm17
 vpmadd52huq 96(%rcx),%ymm2,%ymm18
 vpmadd52huq 128(%rcx),%ymm2,%ymm19
 movq 160(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 160(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 movq %r12,%r10
 adcq $0,%r10

 movq 8(%r8),%r13
 imulq %r15,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 160(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 adcq %r12,%r10

 shrq $52,%r15
 salq $12,%r10
 orq %r10,%r15

 vpmadd52luq 160(%rsi),%ymm1,%ymm4
 vpmadd52luq 192(%rsi),%ymm1,%ymm20
 vpmadd52luq 224(%rsi),%ymm1,%ymm21
 vpmadd52luq 256(%rsi),%ymm1,%ymm22
 vpmadd52luq 288(%rsi),%ymm1,%ymm23

 vpmadd52luq 160(%rcx),%ymm2,%ymm4
 vpmadd52luq 192(%rcx),%ymm2,%ymm20
 vpmadd52luq 224(%rcx),%ymm2,%ymm21
 vpmadd52luq 256(%rcx),%ymm2,%ymm22
 vpmadd52luq 288(%rcx),%ymm2,%ymm23


 valignq $1,%ymm4,%ymm20,%ymm4
 valignq $1,%ymm20,%ymm21,%ymm20
 valignq $1,%ymm21,%ymm22,%ymm21
 valignq $1,%ymm22,%ymm23,%ymm22
 valignq $1,%ymm23,%ymm0,%ymm23

 vmovq %xmm4,%r13
 addq %r13,%r15

 vpmadd52huq 160(%rsi),%ymm1,%ymm4
 vpmadd52huq 192(%rsi),%ymm1,%ymm20
 vpmadd52huq 224(%rsi),%ymm1,%ymm21
 vpmadd52huq 256(%rsi),%ymm1,%ymm22
 vpmadd52huq 288(%rsi),%ymm1,%ymm23

 vpmadd52huq 160(%rcx),%ymm2,%ymm4
 vpmadd52huq 192(%rcx),%ymm2,%ymm20
 vpmadd52huq 224(%rcx),%ymm2,%ymm21
 vpmadd52huq 256(%rcx),%ymm2,%ymm22
 vpmadd52huq 288(%rcx),%ymm2,%ymm23
 leaq 8(%r11),%r11
 decl %ebx
# WAS jne .Lloop20
	jne	.Lloop20_BCM_15

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm16,%ymm1
 vpsrlq $52,%ymm17,%ymm2
 vpsrlq $52,%ymm18,%ymm25
 vpsrlq $52,%ymm19,%ymm26


 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm2,%ymm25,%ymm25
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_15(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm16,%ymm16
 vpaddq %ymm2,%ymm17,%ymm17
 vpaddq %ymm25,%ymm18,%ymm18
 vpaddq %ymm26,%ymm19,%ymm19



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm16, %k2
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k3
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm17, %k3
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k4
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm18, %k4
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k5
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm19, %k5
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 kmovb %k3,%r12d
 kmovb %k4,%r11d
 kmovb %k5,%r10d


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm16, %k2
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k3
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm17, %k3
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k4
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm18, %k4
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k5
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm19, %k5
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 kmovb %k3,%ebx
 kmovb %k4,%ecx
 kmovb %k5,%edx



 shlb $4,%r13b
 orb %r13b,%r14b
 shlb $4,%r11b
 orb %r11b,%r12b

 addb %r14b,%r14b
 adcb %r12b,%r12b
 adcb %r10b,%r10b

 shlb $4,%r8b
 orb %r8b,%r9b
 shlb $4,%cl
 orb %cl,%bl

 addb %r9b,%r14b
 adcb %bl,%r12b
 adcb %dl,%r10b

 xorb %r9b,%r14b
 xorb %bl,%r12b
 xorb %dl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r12d,%k3
 shrb $4,%r12b
 kmovb %r12d,%k4
 kmovb %r10d,%k5


# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k2}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k3}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k4}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k5}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19{%k5}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm19, %ymm19

 vpbroadcastq %r15,%ymm0
 vpblendd $3,%ymm0,%ymm4,%ymm4



 vpsrlq $52,%ymm4,%ymm0
 vpsrlq $52,%ymm20,%ymm1
 vpsrlq $52,%ymm21,%ymm2
 vpsrlq $52,%ymm22,%ymm25
 vpsrlq $52,%ymm23,%ymm26


 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm2,%ymm25,%ymm25
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_15(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm20,%ymm20
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm20, %ymm20
# WAS vpandq .Lmask52x4(%rip),%ymm21,%ymm21
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm21, %ymm21
# WAS vpandq .Lmask52x4(%rip),%ymm22,%ymm22
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm22, %ymm22
# WAS vpandq .Lmask52x4(%rip),%ymm23,%ymm23
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm23, %ymm23


 vpaddq %ymm0,%ymm4,%ymm4
 vpaddq %ymm1,%ymm20,%ymm20
 vpaddq %ymm2,%ymm21,%ymm21
 vpaddq %ymm25,%ymm22,%ymm22
 vpaddq %ymm26,%ymm23,%ymm23



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm4, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm20,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm20, %k2
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm21,%k3
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm21, %k3
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm22,%k4
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm22, %k4
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm23,%k5
	vpcmpuq	$6, .Lmask52x4_BCM_15(%rip), %ymm23, %k5
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 kmovb %k3,%r12d
 kmovb %k4,%r11d
 kmovb %k5,%r10d


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm4, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm20,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm20, %k2
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm21,%k3
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm21, %k3
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm22,%k4
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm22, %k4
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm23,%k5
	vpcmpuq	$0, .Lmask52x4_BCM_15(%rip), %ymm23, %k5
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 kmovb %k3,%ebx
 kmovb %k4,%ecx
 kmovb %k5,%edx



 shlb $4,%r13b
 orb %r13b,%r14b
 shlb $4,%r11b
 orb %r11b,%r12b

 addb %r14b,%r14b
 adcb %r12b,%r12b
 adcb %r10b,%r10b

 shlb $4,%r8b
 orb %r8b,%r9b
 shlb $4,%cl
 orb %cl,%bl

 addb %r9b,%r14b
 adcb %bl,%r12b
 adcb %dl,%r10b

 xorb %r9b,%r14b
 xorb %bl,%r12b
 xorb %dl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r12d,%k3
 shrb $4,%r12b
 kmovb %r12d,%k4
 kmovb %r10d,%k5


# WAS vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k1}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm4, %ymm4{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm20,%ymm20{%k2}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm20, %ymm20{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm21,%ymm21{%k3}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm21, %ymm21{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm22,%ymm22{%k4}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm22, %ymm22{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm23,%ymm23{%k5}
	vpsubq	.Lmask52x4_BCM_15(%rip), %ymm23, %ymm23{%k5}

# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm20,%ymm20
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm20, %ymm20
# WAS vpandq .Lmask52x4(%rip),%ymm21,%ymm21
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm21, %ymm21
# WAS vpandq .Lmask52x4(%rip),%ymm22,%ymm22
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm22, %ymm22
# WAS vpandq .Lmask52x4(%rip),%ymm23,%ymm23
	vpandq	.Lmask52x4_BCM_15(%rip), %ymm23, %ymm23

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm16,32(%rdi)
 vmovdqu64 %ymm17,64(%rdi)
 vmovdqu64 %ymm18,96(%rdi)
 vmovdqu64 %ymm19,128(%rdi)

 vmovdqu64 %ymm4,160(%rdi)
 vmovdqu64 %ymm20,192(%rdi)
 vmovdqu64 %ymm21,224(%rdi)
 vmovdqu64 %ymm22,256(%rdi)
 vmovdqu64 %ymm23,288(%rdi)

 vzeroupper
 movq 0(%rsp),%r15
.cfi_restore %r15
 movq 8(%rsp),%r14
.cfi_restore %r14
 movq 16(%rsp),%r13
.cfi_restore %r13
 movq 24(%rsp),%r12
.cfi_restore %r12
 movq 32(%rsp),%rbp
.cfi_restore %rbp
 movq 40(%rsp),%rbx
.cfi_restore %rbx
 leaq 48(%rsp),%rsp
.cfi_adjust_cfa_offset -48
.Lrsaz_amm52x20_x2_ifma256_epilogue_BCM_15:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x20_x2_ifma256, .-rsaz_amm52x20_x2_ifma256
.text

.align 32
.globl extract_multiplier_2x20_win5
.hidden extract_multiplier_2x20_win5
.type extract_multiplier_2x20_win5,@function
.Lextract_multiplier_2x20_win5_local_target:
extract_multiplier_2x20_win5:
.cfi_startproc
.byte 243,15,30,250
# WAS vmovdqa64 .Lones(%rip),%ymm24
	vmovdqa64	.Lones_BCM_15(%rip), %ymm24
 vpbroadcastq %rdx,%ymm22
 vpbroadcastq %rcx,%ymm23
 leaq 10240(%rsi),%rax


 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %ymm0,%ymm21
 vmovdqa64 %ymm0,%ymm1
 vmovdqa64 %ymm0,%ymm2
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19

.align 32
.Lloop_BCM_15:

 vpcmpq $0,%ymm21,%ymm22,%k1
 vpcmpq $0,%ymm21,%ymm23,%k2
 vmovdqu64 0(%rsi),%ymm20
 vpblendmq %ymm20,%ymm0,%ymm0{%k1}
 vmovdqu64 32(%rsi),%ymm20
 vpblendmq %ymm20,%ymm1,%ymm1{%k1}
 vmovdqu64 64(%rsi),%ymm20
 vpblendmq %ymm20,%ymm2,%ymm2{%k1}
 vmovdqu64 96(%rsi),%ymm20
 vpblendmq %ymm20,%ymm3,%ymm3{%k1}
 vmovdqu64 128(%rsi),%ymm20
 vpblendmq %ymm20,%ymm4,%ymm4{%k1}
 vmovdqu64 160(%rsi),%ymm20
 vpblendmq %ymm20,%ymm5,%ymm5{%k2}
 vmovdqu64 192(%rsi),%ymm20
 vpblendmq %ymm20,%ymm16,%ymm16{%k2}
 vmovdqu64 224(%rsi),%ymm20
 vpblendmq %ymm20,%ymm17,%ymm17{%k2}
 vmovdqu64 256(%rsi),%ymm20
 vpblendmq %ymm20,%ymm18,%ymm18{%k2}
 vmovdqu64 288(%rsi),%ymm20
 vpblendmq %ymm20,%ymm19,%ymm19{%k2}
 vpaddq %ymm24,%ymm21,%ymm21
 addq $320,%rsi
 cmpq %rsi,%rax
# WAS jne .Lloop
	jne	.Lloop_BCM_15
 vmovdqu64 %ymm0,0(%rdi)
 vmovdqu64 %ymm1,32(%rdi)
 vmovdqu64 %ymm2,64(%rdi)
 vmovdqu64 %ymm3,96(%rdi)
 vmovdqu64 %ymm4,128(%rdi)
 vmovdqu64 %ymm5,160(%rdi)
 vmovdqu64 %ymm16,192(%rdi)
 vmovdqu64 %ymm17,224(%rdi)
 vmovdqu64 %ymm18,256(%rdi)
 vmovdqu64 %ymm19,288(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.size extract_multiplier_2x20_win5, .-extract_multiplier_2x20_win5
# WAS .section .rodata
.text
.align 32
.Lones_BCM_15:

.quad 1,1,1,1
.Lzeros_BCM_15:

.quad 0,0,0,0
.text
# 0 "rsaz-3k-avx512.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "rsaz-3k-avx512.S"



#include <openssl/asm_base.h>
# 4 "rsaz-3k-avx512.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "rsaz-3k-avx512.S" 2



.text

.globl rsaz_amm52x30_x1_ifma256
.hidden rsaz_amm52x30_x1_ifma256
.type rsaz_amm52x30_x1_ifma256,@function
.align 32
.Lrsaz_amm52x30_x1_ifma256_local_target:
rsaz_amm52x30_x1_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56

 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm6
 vmovdqa64 %ymm0,%ymm7
 vmovdqa64 %ymm0,%ymm8
 vmovdqa64 %ymm0,%ymm9
 vmovdqa64 %ymm0,%ymm10

 xorl %r9d,%r9d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax


 movl $7,%ebx

.align 32
.Lloop7_BCM_16:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 movq 8(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 movq 16(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 movq 24(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 leaq 32(%r11),%r11
 decl %ebx
# WAS jne .Lloop7
	jne	.Lloop7_BCM_16
 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 movq 8(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm4,%ymm1
 vpsrlq $52,%ymm5,%ymm2
 vpsrlq $52,%ymm6,%ymm19
 vpsrlq $52,%ymm7,%ymm20
 vpsrlq $52,%ymm8,%ymm21
 vpsrlq $52,%ymm9,%ymm22
 vpsrlq $52,%ymm10,%ymm23


 valignq $3,%ymm22,%ymm23,%ymm23
 valignq $3,%ymm21,%ymm22,%ymm22
 valignq $3,%ymm20,%ymm21,%ymm21
 valignq $3,%ymm19,%ymm20,%ymm20
 valignq $3,%ymm2,%ymm19,%ymm19
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_16(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9
# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm4,%ymm4
 vpaddq %ymm2,%ymm5,%ymm5
 vpaddq %ymm19,%ymm6,%ymm6
 vpaddq %ymm20,%ymm7,%ymm7
 vpaddq %ymm21,%ymm8,%ymm8
 vpaddq %ymm22,%ymm9,%ymm9
 vpaddq %ymm23,%ymm10,%ymm10



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm4, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm5, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm6, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm7, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm8, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm9, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm10, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm4, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm5, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm6, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm7, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm8, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm9, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm10, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9

 shrb $4,%r11b
 kmovb %r11d,%k1

# WAS vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10{%k1}

# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm4,32(%rdi)
 vmovdqu64 %ymm5,64(%rdi)
 vmovdqu64 %ymm6,96(%rdi)
 vmovdqu64 %ymm7,128(%rdi)
 vmovdqu64 %ymm8,160(%rdi)
 vmovdqu64 %ymm9,192(%rdi)
 vmovdqu64 %ymm10,224(%rdi)

 vzeroupper
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 movq 0(%rax),%r15
.cfi_restore %r15
 movq 8(%rax),%r14
.cfi_restore %r14
 movq 16(%rax),%r13
.cfi_restore %r13
 movq 24(%rax),%r12
.cfi_restore %r12
 movq 32(%rax),%rbp
.cfi_restore %rbp
 movq 40(%rax),%rbx
.cfi_restore %rbx
 leaq 48(%rax),%rsp
.cfi_def_cfa %rsp,8
.Lrsaz_amm52x30_x1_ifma256_epilogue_BCM_16:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x30_x1_ifma256, .-rsaz_amm52x30_x1_ifma256
# WAS .section .rodata
.text
.align 32
.Lmask52x4_BCM_16:

.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.text
.text

.globl rsaz_amm52x30_x2_ifma256
.hidden rsaz_amm52x30_x2_ifma256
.type rsaz_amm52x30_x2_ifma256,@function
.align 32
.Lrsaz_amm52x30_x2_ifma256_local_target:
rsaz_amm52x30_x2_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56

 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm6
 vmovdqa64 %ymm0,%ymm7
 vmovdqa64 %ymm0,%ymm8
 vmovdqa64 %ymm0,%ymm9
 vmovdqa64 %ymm0,%ymm10

 vmovdqa64 %ymm0,%ymm11
 vmovdqa64 %ymm0,%ymm12
 vmovdqa64 %ymm0,%ymm13
 vmovdqa64 %ymm0,%ymm14
 vmovdqa64 %ymm0,%ymm15
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18


 xorl %r9d,%r9d
 xorl %r15d,%r15d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax

 movl $30,%ebx

.align 32
.Lloop30_BCM_16:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq (%r8),%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm0,%ymm10

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 movq 256(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 256(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 movq %r12,%r10
 adcq $0,%r10

 movq 8(%r8),%r13
 imulq %r15,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 256(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 adcq %r12,%r10

 shrq $52,%r15
 salq $12,%r10
 orq %r10,%r15

 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12
 vpmadd52luq 320(%rsi),%ymm1,%ymm13
 vpmadd52luq 352(%rsi),%ymm1,%ymm14
 vpmadd52luq 384(%rsi),%ymm1,%ymm15
 vpmadd52luq 416(%rsi),%ymm1,%ymm16
 vpmadd52luq 448(%rsi),%ymm1,%ymm17
 vpmadd52luq 480(%rsi),%ymm1,%ymm18

 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12
 vpmadd52luq 320(%rcx),%ymm2,%ymm13
 vpmadd52luq 352(%rcx),%ymm2,%ymm14
 vpmadd52luq 384(%rcx),%ymm2,%ymm15
 vpmadd52luq 416(%rcx),%ymm2,%ymm16
 vpmadd52luq 448(%rcx),%ymm2,%ymm17
 vpmadd52luq 480(%rcx),%ymm2,%ymm18


 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm13,%ymm12
 valignq $1,%ymm13,%ymm14,%ymm13
 valignq $1,%ymm14,%ymm15,%ymm14
 valignq $1,%ymm15,%ymm16,%ymm15
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm0,%ymm18

 vmovq %xmm11,%r13
 addq %r13,%r15

 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12
 vpmadd52huq 320(%rsi),%ymm1,%ymm13
 vpmadd52huq 352(%rsi),%ymm1,%ymm14
 vpmadd52huq 384(%rsi),%ymm1,%ymm15
 vpmadd52huq 416(%rsi),%ymm1,%ymm16
 vpmadd52huq 448(%rsi),%ymm1,%ymm17
 vpmadd52huq 480(%rsi),%ymm1,%ymm18

 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 vpmadd52huq 320(%rcx),%ymm2,%ymm13
 vpmadd52huq 352(%rcx),%ymm2,%ymm14
 vpmadd52huq 384(%rcx),%ymm2,%ymm15
 vpmadd52huq 416(%rcx),%ymm2,%ymm16
 vpmadd52huq 448(%rcx),%ymm2,%ymm17
 vpmadd52huq 480(%rcx),%ymm2,%ymm18
 leaq 8(%r11),%r11
 decl %ebx
# WAS jne .Lloop30
	jne	.Lloop30_BCM_16

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm4,%ymm1
 vpsrlq $52,%ymm5,%ymm2
 vpsrlq $52,%ymm6,%ymm19
 vpsrlq $52,%ymm7,%ymm20
 vpsrlq $52,%ymm8,%ymm21
 vpsrlq $52,%ymm9,%ymm22
 vpsrlq $52,%ymm10,%ymm23


 valignq $3,%ymm22,%ymm23,%ymm23
 valignq $3,%ymm21,%ymm22,%ymm22
 valignq $3,%ymm20,%ymm21,%ymm21
 valignq $3,%ymm19,%ymm20,%ymm20
 valignq $3,%ymm2,%ymm19,%ymm19
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_16(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9
# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm4,%ymm4
 vpaddq %ymm2,%ymm5,%ymm5
 vpaddq %ymm19,%ymm6,%ymm6
 vpaddq %ymm20,%ymm7,%ymm7
 vpaddq %ymm21,%ymm8,%ymm8
 vpaddq %ymm22,%ymm9,%ymm9
 vpaddq %ymm23,%ymm10,%ymm10



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm4, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm5, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm6, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm7, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm8, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm9, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm10, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm4, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm5, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm6, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm7, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm8, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm9, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm10, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm9, %ymm9

 shrb $4,%r11b
 kmovb %r11d,%k1

# WAS vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10{%k1}

# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm10, %ymm10

 vpbroadcastq %r15,%ymm0
 vpblendd $3,%ymm0,%ymm11,%ymm11



 vpsrlq $52,%ymm11,%ymm0
 vpsrlq $52,%ymm12,%ymm1
 vpsrlq $52,%ymm13,%ymm2
 vpsrlq $52,%ymm14,%ymm19
 vpsrlq $52,%ymm15,%ymm20
 vpsrlq $52,%ymm16,%ymm21
 vpsrlq $52,%ymm17,%ymm22
 vpsrlq $52,%ymm18,%ymm23


 valignq $3,%ymm22,%ymm23,%ymm23
 valignq $3,%ymm21,%ymm22,%ymm22
 valignq $3,%ymm20,%ymm21,%ymm21
 valignq $3,%ymm19,%ymm20,%ymm20
 valignq $3,%ymm2,%ymm19,%ymm19
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_16(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm12, %ymm12
# WAS vpandq .Lmask52x4(%rip),%ymm13,%ymm13
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm13, %ymm13
# WAS vpandq .Lmask52x4(%rip),%ymm14,%ymm14
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm14, %ymm14
# WAS vpandq .Lmask52x4(%rip),%ymm15,%ymm15
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm15, %ymm15
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm18, %ymm18


 vpaddq %ymm0,%ymm11,%ymm11
 vpaddq %ymm1,%ymm12,%ymm12
 vpaddq %ymm2,%ymm13,%ymm13
 vpaddq %ymm19,%ymm14,%ymm14
 vpaddq %ymm20,%ymm15,%ymm15
 vpaddq %ymm21,%ymm16,%ymm16
 vpaddq %ymm22,%ymm17,%ymm17
 vpaddq %ymm23,%ymm18,%ymm18



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm11, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm12, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm13,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm13, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm14,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm14, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm15,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm15, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm16, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm17, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_16(%rip), %ymm18, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm11, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm12, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm13,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm13, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm14,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm14, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm15,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm15, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm16, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm17, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_16(%rip), %ymm18, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm11, %ymm11{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k2}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm12, %ymm12{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm13,%ymm13{%k3}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm13, %ymm13{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm14,%ymm14{%k4}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm14, %ymm14{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm15,%ymm15{%k5}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm15, %ymm15{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k6}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm16, %ymm16{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k7}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm17, %ymm17{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm12, %ymm12
# WAS vpandq .Lmask52x4(%rip),%ymm13,%ymm13
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm13, %ymm13
# WAS vpandq .Lmask52x4(%rip),%ymm14,%ymm14
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm14, %ymm14
# WAS vpandq .Lmask52x4(%rip),%ymm15,%ymm15
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm15, %ymm15
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm17, %ymm17

 shrb $4,%r11b
 kmovb %r11d,%k1

# WAS vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k1}
	vpsubq	.Lmask52x4_BCM_16(%rip), %ymm18, %ymm18{%k1}

# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_16(%rip), %ymm18, %ymm18

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm4,32(%rdi)
 vmovdqu64 %ymm5,64(%rdi)
 vmovdqu64 %ymm6,96(%rdi)
 vmovdqu64 %ymm7,128(%rdi)
 vmovdqu64 %ymm8,160(%rdi)
 vmovdqu64 %ymm9,192(%rdi)
 vmovdqu64 %ymm10,224(%rdi)

 vmovdqu64 %ymm11,256(%rdi)
 vmovdqu64 %ymm12,288(%rdi)
 vmovdqu64 %ymm13,320(%rdi)
 vmovdqu64 %ymm14,352(%rdi)
 vmovdqu64 %ymm15,384(%rdi)
 vmovdqu64 %ymm16,416(%rdi)
 vmovdqu64 %ymm17,448(%rdi)
 vmovdqu64 %ymm18,480(%rdi)

 vzeroupper
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 movq 0(%rax),%r15
.cfi_restore %r15
 movq 8(%rax),%r14
.cfi_restore %r14
 movq 16(%rax),%r13
.cfi_restore %r13
 movq 24(%rax),%r12
.cfi_restore %r12
 movq 32(%rax),%rbp
.cfi_restore %rbp
 movq 40(%rax),%rbx
.cfi_restore %rbx
 leaq 48(%rax),%rsp
.cfi_def_cfa %rsp,8
.Lrsaz_amm52x30_x2_ifma256_epilogue_BCM_16:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x30_x2_ifma256, .-rsaz_amm52x30_x2_ifma256
.text

.align 32
.globl extract_multiplier_2x30_win5
.hidden extract_multiplier_2x30_win5
.type extract_multiplier_2x30_win5,@function
.Lextract_multiplier_2x30_win5_local_target:
extract_multiplier_2x30_win5:
.cfi_startproc
.byte 243,15,30,250
# WAS vmovdqa64 .Lones(%rip),%ymm30
	vmovdqa64	.Lones_BCM_16(%rip), %ymm30
 vpbroadcastq %rdx,%ymm28
 vpbroadcastq %rcx,%ymm29
 leaq 16384(%rsi),%rax


 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %ymm0,%ymm27
 vmovdqa64 %ymm0,%ymm1
 vmovdqa64 %ymm0,%ymm2
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19
 vmovdqa64 %ymm0,%ymm20
 vmovdqa64 %ymm0,%ymm21
 vmovdqa64 %ymm0,%ymm22
 vmovdqa64 %ymm0,%ymm23
 vmovdqa64 %ymm0,%ymm24
 vmovdqa64 %ymm0,%ymm25

.align 32
.Lloop_BCM_16:

 vpcmpq $0,%ymm27,%ymm28,%k1
 vpcmpq $0,%ymm27,%ymm29,%k2
 vmovdqu64 0(%rsi),%ymm26
 vpblendmq %ymm26,%ymm0,%ymm0{%k1}
 vmovdqu64 32(%rsi),%ymm26
 vpblendmq %ymm26,%ymm1,%ymm1{%k1}
 vmovdqu64 64(%rsi),%ymm26
 vpblendmq %ymm26,%ymm2,%ymm2{%k1}
 vmovdqu64 96(%rsi),%ymm26
 vpblendmq %ymm26,%ymm3,%ymm3{%k1}
 vmovdqu64 128(%rsi),%ymm26
 vpblendmq %ymm26,%ymm4,%ymm4{%k1}
 vmovdqu64 160(%rsi),%ymm26
 vpblendmq %ymm26,%ymm5,%ymm5{%k1}
 vmovdqu64 192(%rsi),%ymm26
 vpblendmq %ymm26,%ymm16,%ymm16{%k1}
 vmovdqu64 224(%rsi),%ymm26
 vpblendmq %ymm26,%ymm17,%ymm17{%k1}
 vmovdqu64 256(%rsi),%ymm26
 vpblendmq %ymm26,%ymm18,%ymm18{%k2}
 vmovdqu64 288(%rsi),%ymm26
 vpblendmq %ymm26,%ymm19,%ymm19{%k2}
 vmovdqu64 320(%rsi),%ymm26
 vpblendmq %ymm26,%ymm20,%ymm20{%k2}
 vmovdqu64 352(%rsi),%ymm26
 vpblendmq %ymm26,%ymm21,%ymm21{%k2}
 vmovdqu64 384(%rsi),%ymm26
 vpblendmq %ymm26,%ymm22,%ymm22{%k2}
 vmovdqu64 416(%rsi),%ymm26
 vpblendmq %ymm26,%ymm23,%ymm23{%k2}
 vmovdqu64 448(%rsi),%ymm26
 vpblendmq %ymm26,%ymm24,%ymm24{%k2}
 vmovdqu64 480(%rsi),%ymm26
 vpblendmq %ymm26,%ymm25,%ymm25{%k2}
 vpaddq %ymm30,%ymm27,%ymm27
 addq $512,%rsi
 cmpq %rsi,%rax
# WAS jne .Lloop
	jne	.Lloop_BCM_16
 vmovdqu64 %ymm0,0(%rdi)
 vmovdqu64 %ymm1,32(%rdi)
 vmovdqu64 %ymm2,64(%rdi)
 vmovdqu64 %ymm3,96(%rdi)
 vmovdqu64 %ymm4,128(%rdi)
 vmovdqu64 %ymm5,160(%rdi)
 vmovdqu64 %ymm16,192(%rdi)
 vmovdqu64 %ymm17,224(%rdi)
 vmovdqu64 %ymm18,256(%rdi)
 vmovdqu64 %ymm19,288(%rdi)
 vmovdqu64 %ymm20,320(%rdi)
 vmovdqu64 %ymm21,352(%rdi)
 vmovdqu64 %ymm22,384(%rdi)
 vmovdqu64 %ymm23,416(%rdi)
 vmovdqu64 %ymm24,448(%rdi)
 vmovdqu64 %ymm25,480(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size extract_multiplier_2x30_win5, .-extract_multiplier_2x30_win5
# WAS .section .rodata
.text
.align 32
.Lones_BCM_16:

.quad 1,1,1,1
.Lzeros_BCM_16:

.quad 0,0,0,0
.text
# 0 "rsaz-4k-avx512.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "rsaz-4k-avx512.S"



#include <openssl/asm_base.h>
# 4 "rsaz-4k-avx512.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "rsaz-4k-avx512.S" 2



.text

.globl rsaz_amm52x40_x1_ifma256
.hidden rsaz_amm52x40_x1_ifma256
.type rsaz_amm52x40_x1_ifma256,@function
.align 32
.Lrsaz_amm52x40_x1_ifma256_local_target:
rsaz_amm52x40_x1_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56

 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm6
 vmovdqa64 %ymm0,%ymm7
 vmovdqa64 %ymm0,%ymm8
 vmovdqa64 %ymm0,%ymm9
 vmovdqa64 %ymm0,%ymm10
 vmovdqa64 %ymm0,%ymm11
 vmovdqa64 %ymm0,%ymm12

 xorl %r9d,%r9d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax


 movl $10,%ebx

.align 32
.Lloop10_BCM_17:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10
 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10
 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm11,%ymm10
 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm0,%ymm12

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10
 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 movq 8(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10
 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10
 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm11,%ymm10
 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm0,%ymm12

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10
 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 movq 16(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10
 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10
 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm11,%ymm10
 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm0,%ymm12

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10
 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 movq 24(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq %r8,%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10
 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10
 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm11,%ymm10
 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm0,%ymm12

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10
 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 leaq 32(%r11),%r11
 decl %ebx
# WAS jne .Lloop10
	jne	.Lloop10_BCM_17

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm4,%ymm1
 vpsrlq $52,%ymm5,%ymm2
 vpsrlq $52,%ymm6,%ymm23
 vpsrlq $52,%ymm7,%ymm24
 vpsrlq $52,%ymm8,%ymm25
 vpsrlq $52,%ymm9,%ymm26
 vpsrlq $52,%ymm10,%ymm27
 vpsrlq $52,%ymm11,%ymm28
 vpsrlq $52,%ymm12,%ymm29


 valignq $3,%ymm28,%ymm29,%ymm29
 valignq $3,%ymm27,%ymm28,%ymm28
 valignq $3,%ymm26,%ymm27,%ymm27
 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm24,%ymm25,%ymm25
 valignq $3,%ymm23,%ymm24,%ymm24
 valignq $3,%ymm2,%ymm23,%ymm23
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_17(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9
# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10
# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm4,%ymm4
 vpaddq %ymm2,%ymm5,%ymm5
 vpaddq %ymm23,%ymm6,%ymm6
 vpaddq %ymm24,%ymm7,%ymm7
 vpaddq %ymm25,%ymm8,%ymm8
 vpaddq %ymm26,%ymm9,%ymm9
 vpaddq %ymm27,%ymm10,%ymm10
 vpaddq %ymm28,%ymm11,%ymm11
 vpaddq %ymm29,%ymm12,%ymm12



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm4, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm5, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm6, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm7, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm8, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm9, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm10, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm11, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm12, %k2
 kmovb %k1,%r10d
 kmovb %k2,%r9d
 shlb $4,%r9b
 orb %r9b,%r10b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b
 adcb %r10b,%r10b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm4, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm5, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm6, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm7, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm8, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm9, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm10, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm11, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm12, %k2
 kmovb %k1,%ebx
 kmovb %k2,%eax
 shlb $4,%al
 orb %al,%bl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b
 adcb %bl,%r10b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b
 xorb %bl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9

 shrb $4,%r11b
 kmovb %r11d,%k1
 kmovb %r10d,%k2
 shrb $4,%r10b
 kmovb %r10d,%k3

# WAS vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12{%k3}

# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10
# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm4,32(%rdi)
 vmovdqu64 %ymm5,64(%rdi)
 vmovdqu64 %ymm6,96(%rdi)
 vmovdqu64 %ymm7,128(%rdi)
 vmovdqu64 %ymm8,160(%rdi)
 vmovdqu64 %ymm9,192(%rdi)
 vmovdqu64 %ymm10,224(%rdi)
 vmovdqu64 %ymm11,256(%rdi)
 vmovdqu64 %ymm12,288(%rdi)

 vzeroupper
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 movq 0(%rax),%r15
.cfi_restore %r15
 movq 8(%rax),%r14
.cfi_restore %r14
 movq 16(%rax),%r13
.cfi_restore %r13
 movq 24(%rax),%r12
.cfi_restore %r12
 movq 32(%rax),%rbp
.cfi_restore %rbp
 movq 40(%rax),%rbx
.cfi_restore %rbx
 leaq 48(%rax),%rsp
.cfi_def_cfa %rsp,8
.Lrsaz_amm52x40_x1_ifma256_epilogue_BCM_17:


 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x40_x1_ifma256, .-rsaz_amm52x40_x1_ifma256
# WAS .section .rodata
.text
.align 32
.Lmask52x4_BCM_17:

.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.quad 0xfffffffffffff
.text
.text

.globl rsaz_amm52x40_x2_ifma256
.hidden rsaz_amm52x40_x2_ifma256
.type rsaz_amm52x40_x2_ifma256,@function
.align 32
.Lrsaz_amm52x40_x2_ifma256_local_target:
rsaz_amm52x40_x2_ifma256:
.cfi_startproc
.byte 243,15,30,250
 pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset %rbp,-24
 pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset %r12,-32
 pushq %r13
.cfi_adjust_cfa_offset 8
.cfi_offset %r13,-40
 pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset %r14,-48
 pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset %r15,-56

 vpxord %ymm0,%ymm0,%ymm0
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm6
 vmovdqa64 %ymm0,%ymm7
 vmovdqa64 %ymm0,%ymm8
 vmovdqa64 %ymm0,%ymm9
 vmovdqa64 %ymm0,%ymm10
 vmovdqa64 %ymm0,%ymm11
 vmovdqa64 %ymm0,%ymm12

 vmovdqa64 %ymm0,%ymm13
 vmovdqa64 %ymm0,%ymm14
 vmovdqa64 %ymm0,%ymm15
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19
 vmovdqa64 %ymm0,%ymm20
 vmovdqa64 %ymm0,%ymm21
 vmovdqa64 %ymm0,%ymm22


 xorl %r9d,%r9d
 xorl %r15d,%r15d

 movq %rdx,%r11
 movq $0xfffffffffffff,%rax

 movl $40,%ebx

.align 32
.Lloop40_BCM_17:

 movq 0(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 0(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 movq %r12,%r10
 adcq $0,%r10

 movq (%r8),%r13
 imulq %r9,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 0(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r9
 adcq %r12,%r10

 shrq $52,%r9
 salq $12,%r10
 orq %r10,%r9

 vpmadd52luq 0(%rsi),%ymm1,%ymm3
 vpmadd52luq 32(%rsi),%ymm1,%ymm4
 vpmadd52luq 64(%rsi),%ymm1,%ymm5
 vpmadd52luq 96(%rsi),%ymm1,%ymm6
 vpmadd52luq 128(%rsi),%ymm1,%ymm7
 vpmadd52luq 160(%rsi),%ymm1,%ymm8
 vpmadd52luq 192(%rsi),%ymm1,%ymm9
 vpmadd52luq 224(%rsi),%ymm1,%ymm10
 vpmadd52luq 256(%rsi),%ymm1,%ymm11
 vpmadd52luq 288(%rsi),%ymm1,%ymm12

 vpmadd52luq 0(%rcx),%ymm2,%ymm3
 vpmadd52luq 32(%rcx),%ymm2,%ymm4
 vpmadd52luq 64(%rcx),%ymm2,%ymm5
 vpmadd52luq 96(%rcx),%ymm2,%ymm6
 vpmadd52luq 128(%rcx),%ymm2,%ymm7
 vpmadd52luq 160(%rcx),%ymm2,%ymm8
 vpmadd52luq 192(%rcx),%ymm2,%ymm9
 vpmadd52luq 224(%rcx),%ymm2,%ymm10
 vpmadd52luq 256(%rcx),%ymm2,%ymm11
 vpmadd52luq 288(%rcx),%ymm2,%ymm12


 valignq $1,%ymm3,%ymm4,%ymm3
 valignq $1,%ymm4,%ymm5,%ymm4
 valignq $1,%ymm5,%ymm6,%ymm5
 valignq $1,%ymm6,%ymm7,%ymm6
 valignq $1,%ymm7,%ymm8,%ymm7
 valignq $1,%ymm8,%ymm9,%ymm8
 valignq $1,%ymm9,%ymm10,%ymm9
 valignq $1,%ymm10,%ymm11,%ymm10
 valignq $1,%ymm11,%ymm12,%ymm11
 valignq $1,%ymm12,%ymm0,%ymm12

 vmovq %xmm3,%r13
 addq %r13,%r9

 vpmadd52huq 0(%rsi),%ymm1,%ymm3
 vpmadd52huq 32(%rsi),%ymm1,%ymm4
 vpmadd52huq 64(%rsi),%ymm1,%ymm5
 vpmadd52huq 96(%rsi),%ymm1,%ymm6
 vpmadd52huq 128(%rsi),%ymm1,%ymm7
 vpmadd52huq 160(%rsi),%ymm1,%ymm8
 vpmadd52huq 192(%rsi),%ymm1,%ymm9
 vpmadd52huq 224(%rsi),%ymm1,%ymm10
 vpmadd52huq 256(%rsi),%ymm1,%ymm11
 vpmadd52huq 288(%rsi),%ymm1,%ymm12

 vpmadd52huq 0(%rcx),%ymm2,%ymm3
 vpmadd52huq 32(%rcx),%ymm2,%ymm4
 vpmadd52huq 64(%rcx),%ymm2,%ymm5
 vpmadd52huq 96(%rcx),%ymm2,%ymm6
 vpmadd52huq 128(%rcx),%ymm2,%ymm7
 vpmadd52huq 160(%rcx),%ymm2,%ymm8
 vpmadd52huq 192(%rcx),%ymm2,%ymm9
 vpmadd52huq 224(%rcx),%ymm2,%ymm10
 vpmadd52huq 256(%rcx),%ymm2,%ymm11
 vpmadd52huq 288(%rcx),%ymm2,%ymm12
 movq 320(%r11),%r13

 vpbroadcastq %r13,%ymm1
 movq 320(%rsi),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 movq %r12,%r10
 adcq $0,%r10

 movq 8(%r8),%r13
 imulq %r15,%r13
 andq %rax,%r13

 vpbroadcastq %r13,%ymm2
 movq 320(%rcx),%rdx
 mulxq %r13,%r13,%r12
 addq %r13,%r15
 adcq %r12,%r10

 shrq $52,%r15
 salq $12,%r10
 orq %r10,%r15

 vpmadd52luq 320(%rsi),%ymm1,%ymm13
 vpmadd52luq 352(%rsi),%ymm1,%ymm14
 vpmadd52luq 384(%rsi),%ymm1,%ymm15
 vpmadd52luq 416(%rsi),%ymm1,%ymm16
 vpmadd52luq 448(%rsi),%ymm1,%ymm17
 vpmadd52luq 480(%rsi),%ymm1,%ymm18
 vpmadd52luq 512(%rsi),%ymm1,%ymm19
 vpmadd52luq 544(%rsi),%ymm1,%ymm20
 vpmadd52luq 576(%rsi),%ymm1,%ymm21
 vpmadd52luq 608(%rsi),%ymm1,%ymm22

 vpmadd52luq 320(%rcx),%ymm2,%ymm13
 vpmadd52luq 352(%rcx),%ymm2,%ymm14
 vpmadd52luq 384(%rcx),%ymm2,%ymm15
 vpmadd52luq 416(%rcx),%ymm2,%ymm16
 vpmadd52luq 448(%rcx),%ymm2,%ymm17
 vpmadd52luq 480(%rcx),%ymm2,%ymm18
 vpmadd52luq 512(%rcx),%ymm2,%ymm19
 vpmadd52luq 544(%rcx),%ymm2,%ymm20
 vpmadd52luq 576(%rcx),%ymm2,%ymm21
 vpmadd52luq 608(%rcx),%ymm2,%ymm22


 valignq $1,%ymm13,%ymm14,%ymm13
 valignq $1,%ymm14,%ymm15,%ymm14
 valignq $1,%ymm15,%ymm16,%ymm15
 valignq $1,%ymm16,%ymm17,%ymm16
 valignq $1,%ymm17,%ymm18,%ymm17
 valignq $1,%ymm18,%ymm19,%ymm18
 valignq $1,%ymm19,%ymm20,%ymm19
 valignq $1,%ymm20,%ymm21,%ymm20
 valignq $1,%ymm21,%ymm22,%ymm21
 valignq $1,%ymm22,%ymm0,%ymm22

 vmovq %xmm13,%r13
 addq %r13,%r15

 vpmadd52huq 320(%rsi),%ymm1,%ymm13
 vpmadd52huq 352(%rsi),%ymm1,%ymm14
 vpmadd52huq 384(%rsi),%ymm1,%ymm15
 vpmadd52huq 416(%rsi),%ymm1,%ymm16
 vpmadd52huq 448(%rsi),%ymm1,%ymm17
 vpmadd52huq 480(%rsi),%ymm1,%ymm18
 vpmadd52huq 512(%rsi),%ymm1,%ymm19
 vpmadd52huq 544(%rsi),%ymm1,%ymm20
 vpmadd52huq 576(%rsi),%ymm1,%ymm21
 vpmadd52huq 608(%rsi),%ymm1,%ymm22

 vpmadd52huq 320(%rcx),%ymm2,%ymm13
 vpmadd52huq 352(%rcx),%ymm2,%ymm14
 vpmadd52huq 384(%rcx),%ymm2,%ymm15
 vpmadd52huq 416(%rcx),%ymm2,%ymm16
 vpmadd52huq 448(%rcx),%ymm2,%ymm17
 vpmadd52huq 480(%rcx),%ymm2,%ymm18
 vpmadd52huq 512(%rcx),%ymm2,%ymm19
 vpmadd52huq 544(%rcx),%ymm2,%ymm20
 vpmadd52huq 576(%rcx),%ymm2,%ymm21
 vpmadd52huq 608(%rcx),%ymm2,%ymm22
 leaq 8(%r11),%r11
 decl %ebx
# WAS jne .Lloop40
	jne	.Lloop40_BCM_17

 vpbroadcastq %r9,%ymm0
 vpblendd $3,%ymm0,%ymm3,%ymm3



 vpsrlq $52,%ymm3,%ymm0
 vpsrlq $52,%ymm4,%ymm1
 vpsrlq $52,%ymm5,%ymm2
 vpsrlq $52,%ymm6,%ymm23
 vpsrlq $52,%ymm7,%ymm24
 vpsrlq $52,%ymm8,%ymm25
 vpsrlq $52,%ymm9,%ymm26
 vpsrlq $52,%ymm10,%ymm27
 vpsrlq $52,%ymm11,%ymm28
 vpsrlq $52,%ymm12,%ymm29


 valignq $3,%ymm28,%ymm29,%ymm29
 valignq $3,%ymm27,%ymm28,%ymm28
 valignq $3,%ymm26,%ymm27,%ymm27
 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm24,%ymm25,%ymm25
 valignq $3,%ymm23,%ymm24,%ymm24
 valignq $3,%ymm2,%ymm23,%ymm23
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_17(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9
# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10
# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12


 vpaddq %ymm0,%ymm3,%ymm3
 vpaddq %ymm1,%ymm4,%ymm4
 vpaddq %ymm2,%ymm5,%ymm5
 vpaddq %ymm23,%ymm6,%ymm6
 vpaddq %ymm24,%ymm7,%ymm7
 vpaddq %ymm25,%ymm8,%ymm8
 vpaddq %ymm26,%ymm9,%ymm9
 vpaddq %ymm27,%ymm10,%ymm10
 vpaddq %ymm28,%ymm11,%ymm11
 vpaddq %ymm29,%ymm12,%ymm12



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm3, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm4, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm5, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm6, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm7, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm8, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm9, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm10, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm11, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm12, %k2
 kmovb %k1,%r10d
 kmovb %k2,%r9d
 shlb $4,%r9b
 orb %r9b,%r10b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b
 adcb %r10b,%r10b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm3, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm4, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm5, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm6, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm7, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm8, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm9, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm10, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm11, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm12, %k2
 kmovb %k1,%ebx
 kmovb %k2,%eax
 shlb $4,%al
 orb %al,%bl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b
 adcb %bl,%r10b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b
 xorb %bl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm3,%ymm3
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm3, %ymm3
# WAS vpandq .Lmask52x4(%rip),%ymm4,%ymm4
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm4, %ymm4
# WAS vpandq .Lmask52x4(%rip),%ymm5,%ymm5
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm5, %ymm5
# WAS vpandq .Lmask52x4(%rip),%ymm6,%ymm6
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm6, %ymm6
# WAS vpandq .Lmask52x4(%rip),%ymm7,%ymm7
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm7, %ymm7
# WAS vpandq .Lmask52x4(%rip),%ymm8,%ymm8
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm8, %ymm8
# WAS vpandq .Lmask52x4(%rip),%ymm9,%ymm9
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm9, %ymm9

 shrb $4,%r11b
 kmovb %r11d,%k1
 kmovb %r10d,%k2
 shrb $4,%r10b
 kmovb %r10d,%k3

# WAS vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12{%k3}

# WAS vpandq .Lmask52x4(%rip),%ymm10,%ymm10
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm10, %ymm10
# WAS vpandq .Lmask52x4(%rip),%ymm11,%ymm11
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm11, %ymm11
# WAS vpandq .Lmask52x4(%rip),%ymm12,%ymm12
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm12, %ymm12

 vpbroadcastq %r15,%ymm0
 vpblendd $3,%ymm0,%ymm13,%ymm13



 vpsrlq $52,%ymm13,%ymm0
 vpsrlq $52,%ymm14,%ymm1
 vpsrlq $52,%ymm15,%ymm2
 vpsrlq $52,%ymm16,%ymm23
 vpsrlq $52,%ymm17,%ymm24
 vpsrlq $52,%ymm18,%ymm25
 vpsrlq $52,%ymm19,%ymm26
 vpsrlq $52,%ymm20,%ymm27
 vpsrlq $52,%ymm21,%ymm28
 vpsrlq $52,%ymm22,%ymm29


 valignq $3,%ymm28,%ymm29,%ymm29
 valignq $3,%ymm27,%ymm28,%ymm28
 valignq $3,%ymm26,%ymm27,%ymm27
 valignq $3,%ymm25,%ymm26,%ymm26
 valignq $3,%ymm24,%ymm25,%ymm25
 valignq $3,%ymm23,%ymm24,%ymm24
 valignq $3,%ymm2,%ymm23,%ymm23
 valignq $3,%ymm1,%ymm2,%ymm2
 valignq $3,%ymm0,%ymm1,%ymm1
# WAS valignq $3,.Lzeros(%rip),%ymm0,%ymm0
	valignq	$3, .Lzeros_BCM_17(%rip), %ymm0, %ymm0


# WAS vpandq .Lmask52x4(%rip),%ymm13,%ymm13
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm13, %ymm13
# WAS vpandq .Lmask52x4(%rip),%ymm14,%ymm14
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm14, %ymm14
# WAS vpandq .Lmask52x4(%rip),%ymm15,%ymm15
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm15, %ymm15
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm19, %ymm19
# WAS vpandq .Lmask52x4(%rip),%ymm20,%ymm20
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm20, %ymm20
# WAS vpandq .Lmask52x4(%rip),%ymm21,%ymm21
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm21, %ymm21
# WAS vpandq .Lmask52x4(%rip),%ymm22,%ymm22
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm22, %ymm22


 vpaddq %ymm0,%ymm13,%ymm13
 vpaddq %ymm1,%ymm14,%ymm14
 vpaddq %ymm2,%ymm15,%ymm15
 vpaddq %ymm23,%ymm16,%ymm16
 vpaddq %ymm24,%ymm17,%ymm17
 vpaddq %ymm25,%ymm18,%ymm18
 vpaddq %ymm26,%ymm19,%ymm19
 vpaddq %ymm27,%ymm20,%ymm20
 vpaddq %ymm28,%ymm21,%ymm21
 vpaddq %ymm29,%ymm22,%ymm22



# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm13,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm13, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm14,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm14, %k2
 kmovb %k1,%r14d
 kmovb %k2,%r13d
 shlb $4,%r13b
 orb %r13b,%r14b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm15,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm15, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm16, %k2
 kmovb %k1,%r13d
 kmovb %k2,%r12d
 shlb $4,%r12b
 orb %r12b,%r13b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm17, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm18, %k2
 kmovb %k1,%r12d
 kmovb %k2,%r11d
 shlb $4,%r11b
 orb %r11b,%r12b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm19,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm19, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm20,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm20, %k2
 kmovb %k1,%r11d
 kmovb %k2,%r10d
 shlb $4,%r10b
 orb %r10b,%r11b

# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm21,%k1
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm21, %k1
# WAS vpcmpuq $6,.Lmask52x4(%rip),%ymm22,%k2
	vpcmpuq	$6, .Lmask52x4_BCM_17(%rip), %ymm22, %k2
 kmovb %k1,%r10d
 kmovb %k2,%r9d
 shlb $4,%r9b
 orb %r9b,%r10b

 addb %r14b,%r14b
 adcb %r13b,%r13b
 adcb %r12b,%r12b
 adcb %r11b,%r11b
 adcb %r10b,%r10b


# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm13,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm13, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm14,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm14, %k2
 kmovb %k1,%r9d
 kmovb %k2,%r8d
 shlb $4,%r8b
 orb %r8b,%r9b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm15,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm15, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm16, %k2
 kmovb %k1,%r8d
 kmovb %k2,%edx
 shlb $4,%dl
 orb %dl,%r8b

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm17, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm18, %k2
 kmovb %k1,%edx
 kmovb %k2,%ecx
 shlb $4,%cl
 orb %cl,%dl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm19,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm19, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm20,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm20, %k2
 kmovb %k1,%ecx
 kmovb %k2,%ebx
 shlb $4,%bl
 orb %bl,%cl

# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm21,%k1
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm21, %k1
# WAS vpcmpuq $0,.Lmask52x4(%rip),%ymm22,%k2
	vpcmpuq	$0, .Lmask52x4_BCM_17(%rip), %ymm22, %k2
 kmovb %k1,%ebx
 kmovb %k2,%eax
 shlb $4,%al
 orb %al,%bl

 addb %r9b,%r14b
 adcb %r8b,%r13b
 adcb %dl,%r12b
 adcb %cl,%r11b
 adcb %bl,%r10b

 xorb %r9b,%r14b
 xorb %r8b,%r13b
 xorb %dl,%r12b
 xorb %cl,%r11b
 xorb %bl,%r10b

 kmovb %r14d,%k1
 shrb $4,%r14b
 kmovb %r14d,%k2
 kmovb %r13d,%k3
 shrb $4,%r13b
 kmovb %r13d,%k4
 kmovb %r12d,%k5
 shrb $4,%r12b
 kmovb %r12d,%k6
 kmovb %r11d,%k7

# WAS vpsubq .Lmask52x4(%rip),%ymm13,%ymm13{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm13, %ymm13{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm14,%ymm14{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm14, %ymm14{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm15,%ymm15{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm15, %ymm15{%k3}
# WAS vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k4}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm16, %ymm16{%k4}
# WAS vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k5}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm17, %ymm17{%k5}
# WAS vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k6}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm18, %ymm18{%k6}
# WAS vpsubq .Lmask52x4(%rip),%ymm19,%ymm19{%k7}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm19, %ymm19{%k7}

# WAS vpandq .Lmask52x4(%rip),%ymm13,%ymm13
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm13, %ymm13
# WAS vpandq .Lmask52x4(%rip),%ymm14,%ymm14
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm14, %ymm14
# WAS vpandq .Lmask52x4(%rip),%ymm15,%ymm15
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm15, %ymm15
# WAS vpandq .Lmask52x4(%rip),%ymm16,%ymm16
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm16, %ymm16
# WAS vpandq .Lmask52x4(%rip),%ymm17,%ymm17
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm17, %ymm17
# WAS vpandq .Lmask52x4(%rip),%ymm18,%ymm18
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm18, %ymm18
# WAS vpandq .Lmask52x4(%rip),%ymm19,%ymm19
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm19, %ymm19

 shrb $4,%r11b
 kmovb %r11d,%k1
 kmovb %r10d,%k2
 shrb $4,%r10b
 kmovb %r10d,%k3

# WAS vpsubq .Lmask52x4(%rip),%ymm20,%ymm20{%k1}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm20, %ymm20{%k1}
# WAS vpsubq .Lmask52x4(%rip),%ymm21,%ymm21{%k2}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm21, %ymm21{%k2}
# WAS vpsubq .Lmask52x4(%rip),%ymm22,%ymm22{%k3}
	vpsubq	.Lmask52x4_BCM_17(%rip), %ymm22, %ymm22{%k3}

# WAS vpandq .Lmask52x4(%rip),%ymm20,%ymm20
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm20, %ymm20
# WAS vpandq .Lmask52x4(%rip),%ymm21,%ymm21
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm21, %ymm21
# WAS vpandq .Lmask52x4(%rip),%ymm22,%ymm22
	vpandq	.Lmask52x4_BCM_17(%rip), %ymm22, %ymm22

 vmovdqu64 %ymm3,0(%rdi)
 vmovdqu64 %ymm4,32(%rdi)
 vmovdqu64 %ymm5,64(%rdi)
 vmovdqu64 %ymm6,96(%rdi)
 vmovdqu64 %ymm7,128(%rdi)
 vmovdqu64 %ymm8,160(%rdi)
 vmovdqu64 %ymm9,192(%rdi)
 vmovdqu64 %ymm10,224(%rdi)
 vmovdqu64 %ymm11,256(%rdi)
 vmovdqu64 %ymm12,288(%rdi)

 vmovdqu64 %ymm13,320(%rdi)
 vmovdqu64 %ymm14,352(%rdi)
 vmovdqu64 %ymm15,384(%rdi)
 vmovdqu64 %ymm16,416(%rdi)
 vmovdqu64 %ymm17,448(%rdi)
 vmovdqu64 %ymm18,480(%rdi)
 vmovdqu64 %ymm19,512(%rdi)
 vmovdqu64 %ymm20,544(%rdi)
 vmovdqu64 %ymm21,576(%rdi)
 vmovdqu64 %ymm22,608(%rdi)

 vzeroupper
 leaq (%rsp),%rax
.cfi_def_cfa_register %rax
 movq 0(%rax),%r15
.cfi_restore %r15
 movq 8(%rax),%r14
.cfi_restore %r14
 movq 16(%rax),%r13
.cfi_restore %r13
 movq 24(%rax),%r12
.cfi_restore %r12
 movq 32(%rax),%rbp
.cfi_restore %rbp
 movq 40(%rax),%rbx
.cfi_restore %rbx
 leaq 48(%rax),%rsp
.cfi_def_cfa %rsp,8
.Lrsaz_amm52x40_x2_ifma256_epilogue_BCM_17:

 .byte 0xf3,0xc3
.cfi_endproc
.size rsaz_amm52x40_x2_ifma256, .-rsaz_amm52x40_x2_ifma256
.text

.align 32
.globl extract_multiplier_2x40_win5
.hidden extract_multiplier_2x40_win5
.type extract_multiplier_2x40_win5,@function
.Lextract_multiplier_2x40_win5_local_target:
extract_multiplier_2x40_win5:
.cfi_startproc
.byte 243,15,30,250
# WAS vmovdqa64 .Lones(%rip),%ymm24
	vmovdqa64	.Lones_BCM_17(%rip), %ymm24
 vpbroadcastq %rdx,%ymm22
 vpbroadcastq %rcx,%ymm23
 leaq 20480(%rsi),%rax


 movq %rsi,%r10


 vpxor %xmm0,%xmm0,%xmm0
 vmovdqa64 %ymm0,%ymm1
 vmovdqa64 %ymm0,%ymm2
 vmovdqa64 %ymm0,%ymm3
 vmovdqa64 %ymm0,%ymm4
 vmovdqa64 %ymm0,%ymm5
 vmovdqa64 %ymm0,%ymm16
 vmovdqa64 %ymm0,%ymm17
 vmovdqa64 %ymm0,%ymm18
 vmovdqa64 %ymm0,%ymm19
 vpxorq %ymm21,%ymm21,%ymm21
.align 32
.Lloop_0_BCM_17:

 vpcmpq $0,%ymm21,%ymm22,%k1
 vmovdqu64 0(%rsi),%ymm20
 vpblendmq %ymm20,%ymm0,%ymm0{%k1}
 vmovdqu64 32(%rsi),%ymm20
 vpblendmq %ymm20,%ymm1,%ymm1{%k1}
 vmovdqu64 64(%rsi),%ymm20
 vpblendmq %ymm20,%ymm2,%ymm2{%k1}
 vmovdqu64 96(%rsi),%ymm20
 vpblendmq %ymm20,%ymm3,%ymm3{%k1}
 vmovdqu64 128(%rsi),%ymm20
 vpblendmq %ymm20,%ymm4,%ymm4{%k1}
 vmovdqu64 160(%rsi),%ymm20
 vpblendmq %ymm20,%ymm5,%ymm5{%k1}
 vmovdqu64 192(%rsi),%ymm20
 vpblendmq %ymm20,%ymm16,%ymm16{%k1}
 vmovdqu64 224(%rsi),%ymm20
 vpblendmq %ymm20,%ymm17,%ymm17{%k1}
 vmovdqu64 256(%rsi),%ymm20
 vpblendmq %ymm20,%ymm18,%ymm18{%k1}
 vmovdqu64 288(%rsi),%ymm20
 vpblendmq %ymm20,%ymm19,%ymm19{%k1}
 vpaddq %ymm24,%ymm21,%ymm21
 addq $640,%rsi
 cmpq %rsi,%rax
# WAS jne .Lloop_0
	jne	.Lloop_0_BCM_17
 vmovdqu64 %ymm0,0(%rdi)
 vmovdqu64 %ymm1,32(%rdi)
 vmovdqu64 %ymm2,64(%rdi)
 vmovdqu64 %ymm3,96(%rdi)
 vmovdqu64 %ymm4,128(%rdi)
 vmovdqu64 %ymm5,160(%rdi)
 vmovdqu64 %ymm16,192(%rdi)
 vmovdqu64 %ymm17,224(%rdi)
 vmovdqu64 %ymm18,256(%rdi)
 vmovdqu64 %ymm19,288(%rdi)
 movq %r10,%rsi
 vpxorq %ymm21,%ymm21,%ymm21
.align 32
.Lloop_320_BCM_17:

 vpcmpq $0,%ymm21,%ymm23,%k1
 vmovdqu64 320(%rsi),%ymm20
 vpblendmq %ymm20,%ymm0,%ymm0{%k1}
 vmovdqu64 352(%rsi),%ymm20
 vpblendmq %ymm20,%ymm1,%ymm1{%k1}
 vmovdqu64 384(%rsi),%ymm20
 vpblendmq %ymm20,%ymm2,%ymm2{%k1}
 vmovdqu64 416(%rsi),%ymm20
 vpblendmq %ymm20,%ymm3,%ymm3{%k1}
 vmovdqu64 448(%rsi),%ymm20
 vpblendmq %ymm20,%ymm4,%ymm4{%k1}
 vmovdqu64 480(%rsi),%ymm20
 vpblendmq %ymm20,%ymm5,%ymm5{%k1}
 vmovdqu64 512(%rsi),%ymm20
 vpblendmq %ymm20,%ymm16,%ymm16{%k1}
 vmovdqu64 544(%rsi),%ymm20
 vpblendmq %ymm20,%ymm17,%ymm17{%k1}
 vmovdqu64 576(%rsi),%ymm20
 vpblendmq %ymm20,%ymm18,%ymm18{%k1}
 vmovdqu64 608(%rsi),%ymm20
 vpblendmq %ymm20,%ymm19,%ymm19{%k1}
 vpaddq %ymm24,%ymm21,%ymm21
 addq $640,%rsi
 cmpq %rsi,%rax
# WAS jne .Lloop_320
	jne	.Lloop_320_BCM_17
 vmovdqu64 %ymm0,320(%rdi)
 vmovdqu64 %ymm1,352(%rdi)
 vmovdqu64 %ymm2,384(%rdi)
 vmovdqu64 %ymm3,416(%rdi)
 vmovdqu64 %ymm4,448(%rdi)
 vmovdqu64 %ymm5,480(%rdi)
 vmovdqu64 %ymm16,512(%rdi)
 vmovdqu64 %ymm17,544(%rdi)
 vmovdqu64 %ymm18,576(%rdi)
 vmovdqu64 %ymm19,608(%rdi)

 .byte 0xf3,0xc3
.cfi_endproc
.size extract_multiplier_2x40_win5, .-extract_multiplier_2x40_win5
# WAS .section .rodata
.text
.align 32
.Lones_BCM_17:

.quad 1,1,1,1
.Lzeros_BCM_17:

.quad 0,0,0,0
.text
# 0 "sha1-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "sha1-x86_64.S"



#include <openssl/asm_base.h>
# 4 "sha1-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "sha1-x86_64.S" 2


.text

.globl sha1_block_data_order_nohw
.hidden sha1_block_data_order_nohw
.type sha1_block_data_order_nohw,@function
.align 16
.Lsha1_block_data_order_nohw_local_target:
sha1_block_data_order_nohw:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 movq %rdi,%r8
 subq $72,%rsp
 movq %rsi,%r9
 andq $-64,%rsp
 movq %rdx,%r10
 movq %rax,64(%rsp)
.cfi_escape 0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08
.Lprologue_BCM_18:


 movl 0(%r8),%esi
 movl 4(%r8),%edi
 movl 8(%r8),%r11d
 movl 12(%r8),%r12d
 movl 16(%r8),%r13d
# WAS jmp .Lloop
	jmp	.Lloop_BCM_18

.align 16
.Lloop_BCM_18:

 movl 0(%r9),%edx
 bswapl %edx
 movl 4(%r9),%ebp
 movl %r12d,%eax
 movl %edx,0(%rsp)
 movl %esi,%ecx
 bswapl %ebp
 xorl %r11d,%eax
 roll $5,%ecx
 andl %edi,%eax
 leal 1518500249(%rdx,%r13,1),%r13d
 addl %ecx,%r13d
 xorl %r12d,%eax
 roll $30,%edi
 addl %eax,%r13d
 movl 8(%r9),%r14d
 movl %r11d,%eax
 movl %ebp,4(%rsp)
 movl %r13d,%ecx
 bswapl %r14d
 xorl %edi,%eax
 roll $5,%ecx
 andl %esi,%eax
 leal 1518500249(%rbp,%r12,1),%r12d
 addl %ecx,%r12d
 xorl %r11d,%eax
 roll $30,%esi
 addl %eax,%r12d
 movl 12(%r9),%edx
 movl %edi,%eax
 movl %r14d,8(%rsp)
 movl %r12d,%ecx
 bswapl %edx
 xorl %esi,%eax
 roll $5,%ecx
 andl %r13d,%eax
 leal 1518500249(%r14,%r11,1),%r11d
 addl %ecx,%r11d
 xorl %edi,%eax
 roll $30,%r13d
 addl %eax,%r11d
 movl 16(%r9),%ebp
 movl %esi,%eax
 movl %edx,12(%rsp)
 movl %r11d,%ecx
 bswapl %ebp
 xorl %r13d,%eax
 roll $5,%ecx
 andl %r12d,%eax
 leal 1518500249(%rdx,%rdi,1),%edi
 addl %ecx,%edi
 xorl %esi,%eax
 roll $30,%r12d
 addl %eax,%edi
 movl 20(%r9),%r14d
 movl %r13d,%eax
 movl %ebp,16(%rsp)
 movl %edi,%ecx
 bswapl %r14d
 xorl %r12d,%eax
 roll $5,%ecx
 andl %r11d,%eax
 leal 1518500249(%rbp,%rsi,1),%esi
 addl %ecx,%esi
 xorl %r13d,%eax
 roll $30,%r11d
 addl %eax,%esi
 movl 24(%r9),%edx
 movl %r12d,%eax
 movl %r14d,20(%rsp)
 movl %esi,%ecx
 bswapl %edx
 xorl %r11d,%eax
 roll $5,%ecx
 andl %edi,%eax
 leal 1518500249(%r14,%r13,1),%r13d
 addl %ecx,%r13d
 xorl %r12d,%eax
 roll $30,%edi
 addl %eax,%r13d
 movl 28(%r9),%ebp
 movl %r11d,%eax
 movl %edx,24(%rsp)
 movl %r13d,%ecx
 bswapl %ebp
 xorl %edi,%eax
 roll $5,%ecx
 andl %esi,%eax
 leal 1518500249(%rdx,%r12,1),%r12d
 addl %ecx,%r12d
 xorl %r11d,%eax
 roll $30,%esi
 addl %eax,%r12d
 movl 32(%r9),%r14d
 movl %edi,%eax
 movl %ebp,28(%rsp)
 movl %r12d,%ecx
 bswapl %r14d
 xorl %esi,%eax
 roll $5,%ecx
 andl %r13d,%eax
 leal 1518500249(%rbp,%r11,1),%r11d
 addl %ecx,%r11d
 xorl %edi,%eax
 roll $30,%r13d
 addl %eax,%r11d
 movl 36(%r9),%edx
 movl %esi,%eax
 movl %r14d,32(%rsp)
 movl %r11d,%ecx
 bswapl %edx
 xorl %r13d,%eax
 roll $5,%ecx
 andl %r12d,%eax
 leal 1518500249(%r14,%rdi,1),%edi
 addl %ecx,%edi
 xorl %esi,%eax
 roll $30,%r12d
 addl %eax,%edi
 movl 40(%r9),%ebp
 movl %r13d,%eax
 movl %edx,36(%rsp)
 movl %edi,%ecx
 bswapl %ebp
 xorl %r12d,%eax
 roll $5,%ecx
 andl %r11d,%eax
 leal 1518500249(%rdx,%rsi,1),%esi
 addl %ecx,%esi
 xorl %r13d,%eax
 roll $30,%r11d
 addl %eax,%esi
 movl 44(%r9),%r14d
 movl %r12d,%eax
 movl %ebp,40(%rsp)
 movl %esi,%ecx
 bswapl %r14d
 xorl %r11d,%eax
 roll $5,%ecx
 andl %edi,%eax
 leal 1518500249(%rbp,%r13,1),%r13d
 addl %ecx,%r13d
 xorl %r12d,%eax
 roll $30,%edi
 addl %eax,%r13d
 movl 48(%r9),%edx
 movl %r11d,%eax
 movl %r14d,44(%rsp)
 movl %r13d,%ecx
 bswapl %edx
 xorl %edi,%eax
 roll $5,%ecx
 andl %esi,%eax
 leal 1518500249(%r14,%r12,1),%r12d
 addl %ecx,%r12d
 xorl %r11d,%eax
 roll $30,%esi
 addl %eax,%r12d
 movl 52(%r9),%ebp
 movl %edi,%eax
 movl %edx,48(%rsp)
 movl %r12d,%ecx
 bswapl %ebp
 xorl %esi,%eax
 roll $5,%ecx
 andl %r13d,%eax
 leal 1518500249(%rdx,%r11,1),%r11d
 addl %ecx,%r11d
 xorl %edi,%eax
 roll $30,%r13d
 addl %eax,%r11d
 movl 56(%r9),%r14d
 movl %esi,%eax
 movl %ebp,52(%rsp)
 movl %r11d,%ecx
 bswapl %r14d
 xorl %r13d,%eax
 roll $5,%ecx
 andl %r12d,%eax
 leal 1518500249(%rbp,%rdi,1),%edi
 addl %ecx,%edi
 xorl %esi,%eax
 roll $30,%r12d
 addl %eax,%edi
 movl 60(%r9),%edx
 movl %r13d,%eax
 movl %r14d,56(%rsp)
 movl %edi,%ecx
 bswapl %edx
 xorl %r12d,%eax
 roll $5,%ecx
 andl %r11d,%eax
 leal 1518500249(%r14,%rsi,1),%esi
 addl %ecx,%esi
 xorl %r13d,%eax
 roll $30,%r11d
 addl %eax,%esi
 xorl 0(%rsp),%ebp
 movl %r12d,%eax
 movl %edx,60(%rsp)
 movl %esi,%ecx
 xorl 8(%rsp),%ebp
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 32(%rsp),%ebp
 andl %edi,%eax
 leal 1518500249(%rdx,%r13,1),%r13d
 roll $30,%edi
 xorl %r12d,%eax
 addl %ecx,%r13d
 roll $1,%ebp
 addl %eax,%r13d
 xorl 4(%rsp),%r14d
 movl %r11d,%eax
 movl %ebp,0(%rsp)
 movl %r13d,%ecx
 xorl 12(%rsp),%r14d
 xorl %edi,%eax
 roll $5,%ecx
 xorl 36(%rsp),%r14d
 andl %esi,%eax
 leal 1518500249(%rbp,%r12,1),%r12d
 roll $30,%esi
 xorl %r11d,%eax
 addl %ecx,%r12d
 roll $1,%r14d
 addl %eax,%r12d
 xorl 8(%rsp),%edx
 movl %edi,%eax
 movl %r14d,4(%rsp)
 movl %r12d,%ecx
 xorl 16(%rsp),%edx
 xorl %esi,%eax
 roll $5,%ecx
 xorl 40(%rsp),%edx
 andl %r13d,%eax
 leal 1518500249(%r14,%r11,1),%r11d
 roll $30,%r13d
 xorl %edi,%eax
 addl %ecx,%r11d
 roll $1,%edx
 addl %eax,%r11d
 xorl 12(%rsp),%ebp
 movl %esi,%eax
 movl %edx,8(%rsp)
 movl %r11d,%ecx
 xorl 20(%rsp),%ebp
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 44(%rsp),%ebp
 andl %r12d,%eax
 leal 1518500249(%rdx,%rdi,1),%edi
 roll $30,%r12d
 xorl %esi,%eax
 addl %ecx,%edi
 roll $1,%ebp
 addl %eax,%edi
 xorl 16(%rsp),%r14d
 movl %r13d,%eax
 movl %ebp,12(%rsp)
 movl %edi,%ecx
 xorl 24(%rsp),%r14d
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 48(%rsp),%r14d
 andl %r11d,%eax
 leal 1518500249(%rbp,%rsi,1),%esi
 roll $30,%r11d
 xorl %r13d,%eax
 addl %ecx,%esi
 roll $1,%r14d
 addl %eax,%esi
 xorl 20(%rsp),%edx
 movl %edi,%eax
 movl %r14d,16(%rsp)
 movl %esi,%ecx
 xorl 28(%rsp),%edx
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 52(%rsp),%edx
 leal 1859775393(%r14,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%edx
 xorl 24(%rsp),%ebp
 movl %esi,%eax
 movl %edx,20(%rsp)
 movl %r13d,%ecx
 xorl 32(%rsp),%ebp
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 56(%rsp),%ebp
 leal 1859775393(%rdx,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%ebp
 xorl 28(%rsp),%r14d
 movl %r13d,%eax
 movl %ebp,24(%rsp)
 movl %r12d,%ecx
 xorl 36(%rsp),%r14d
 xorl %edi,%eax
 roll $5,%ecx
 xorl 60(%rsp),%r14d
 leal 1859775393(%rbp,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%r14d
 xorl 32(%rsp),%edx
 movl %r12d,%eax
 movl %r14d,28(%rsp)
 movl %r11d,%ecx
 xorl 40(%rsp),%edx
 xorl %esi,%eax
 roll $5,%ecx
 xorl 0(%rsp),%edx
 leal 1859775393(%r14,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%edx
 xorl 36(%rsp),%ebp
 movl %r11d,%eax
 movl %edx,32(%rsp)
 movl %edi,%ecx
 xorl 44(%rsp),%ebp
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 4(%rsp),%ebp
 leal 1859775393(%rdx,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%ebp
 xorl 40(%rsp),%r14d
 movl %edi,%eax
 movl %ebp,36(%rsp)
 movl %esi,%ecx
 xorl 48(%rsp),%r14d
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 8(%rsp),%r14d
 leal 1859775393(%rbp,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%r14d
 xorl 44(%rsp),%edx
 movl %esi,%eax
 movl %r14d,40(%rsp)
 movl %r13d,%ecx
 xorl 52(%rsp),%edx
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 12(%rsp),%edx
 leal 1859775393(%r14,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%edx
 xorl 48(%rsp),%ebp
 movl %r13d,%eax
 movl %edx,44(%rsp)
 movl %r12d,%ecx
 xorl 56(%rsp),%ebp
 xorl %edi,%eax
 roll $5,%ecx
 xorl 16(%rsp),%ebp
 leal 1859775393(%rdx,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%ebp
 xorl 52(%rsp),%r14d
 movl %r12d,%eax
 movl %ebp,48(%rsp)
 movl %r11d,%ecx
 xorl 60(%rsp),%r14d
 xorl %esi,%eax
 roll $5,%ecx
 xorl 20(%rsp),%r14d
 leal 1859775393(%rbp,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%r14d
 xorl 56(%rsp),%edx
 movl %r11d,%eax
 movl %r14d,52(%rsp)
 movl %edi,%ecx
 xorl 0(%rsp),%edx
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 24(%rsp),%edx
 leal 1859775393(%r14,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%edx
 xorl 60(%rsp),%ebp
 movl %edi,%eax
 movl %edx,56(%rsp)
 movl %esi,%ecx
 xorl 4(%rsp),%ebp
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 28(%rsp),%ebp
 leal 1859775393(%rdx,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%ebp
 xorl 0(%rsp),%r14d
 movl %esi,%eax
 movl %ebp,60(%rsp)
 movl %r13d,%ecx
 xorl 8(%rsp),%r14d
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 32(%rsp),%r14d
 leal 1859775393(%rbp,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%r14d
 xorl 4(%rsp),%edx
 movl %r13d,%eax
 movl %r14d,0(%rsp)
 movl %r12d,%ecx
 xorl 12(%rsp),%edx
 xorl %edi,%eax
 roll $5,%ecx
 xorl 36(%rsp),%edx
 leal 1859775393(%r14,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%edx
 xorl 8(%rsp),%ebp
 movl %r12d,%eax
 movl %edx,4(%rsp)
 movl %r11d,%ecx
 xorl 16(%rsp),%ebp
 xorl %esi,%eax
 roll $5,%ecx
 xorl 40(%rsp),%ebp
 leal 1859775393(%rdx,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%ebp
 xorl 12(%rsp),%r14d
 movl %r11d,%eax
 movl %ebp,8(%rsp)
 movl %edi,%ecx
 xorl 20(%rsp),%r14d
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 44(%rsp),%r14d
 leal 1859775393(%rbp,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%r14d
 xorl 16(%rsp),%edx
 movl %edi,%eax
 movl %r14d,12(%rsp)
 movl %esi,%ecx
 xorl 24(%rsp),%edx
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 48(%rsp),%edx
 leal 1859775393(%r14,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%edx
 xorl 20(%rsp),%ebp
 movl %esi,%eax
 movl %edx,16(%rsp)
 movl %r13d,%ecx
 xorl 28(%rsp),%ebp
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 52(%rsp),%ebp
 leal 1859775393(%rdx,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%ebp
 xorl 24(%rsp),%r14d
 movl %r13d,%eax
 movl %ebp,20(%rsp)
 movl %r12d,%ecx
 xorl 32(%rsp),%r14d
 xorl %edi,%eax
 roll $5,%ecx
 xorl 56(%rsp),%r14d
 leal 1859775393(%rbp,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%r14d
 xorl 28(%rsp),%edx
 movl %r12d,%eax
 movl %r14d,24(%rsp)
 movl %r11d,%ecx
 xorl 36(%rsp),%edx
 xorl %esi,%eax
 roll $5,%ecx
 xorl 60(%rsp),%edx
 leal 1859775393(%r14,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%edx
 xorl 32(%rsp),%ebp
 movl %r11d,%eax
 movl %edx,28(%rsp)
 movl %edi,%ecx
 xorl 40(%rsp),%ebp
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 0(%rsp),%ebp
 leal 1859775393(%rdx,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%ebp
 xorl 36(%rsp),%r14d
 movl %r12d,%eax
 movl %ebp,32(%rsp)
 movl %r12d,%ebx
 xorl 44(%rsp),%r14d
 andl %r11d,%eax
 movl %esi,%ecx
 xorl 4(%rsp),%r14d
 leal -1894007588(%rbp,%r13,1),%r13d
 xorl %r11d,%ebx
 roll $5,%ecx
 addl %eax,%r13d
 roll $1,%r14d
 andl %edi,%ebx
 addl %ecx,%r13d
 roll $30,%edi
 addl %ebx,%r13d
 xorl 40(%rsp),%edx
 movl %r11d,%eax
 movl %r14d,36(%rsp)
 movl %r11d,%ebx
 xorl 48(%rsp),%edx
 andl %edi,%eax
 movl %r13d,%ecx
 xorl 8(%rsp),%edx
 leal -1894007588(%r14,%r12,1),%r12d
 xorl %edi,%ebx
 roll $5,%ecx
 addl %eax,%r12d
 roll $1,%edx
 andl %esi,%ebx
 addl %ecx,%r12d
 roll $30,%esi
 addl %ebx,%r12d
 xorl 44(%rsp),%ebp
 movl %edi,%eax
 movl %edx,40(%rsp)
 movl %edi,%ebx
 xorl 52(%rsp),%ebp
 andl %esi,%eax
 movl %r12d,%ecx
 xorl 12(%rsp),%ebp
 leal -1894007588(%rdx,%r11,1),%r11d
 xorl %esi,%ebx
 roll $5,%ecx
 addl %eax,%r11d
 roll $1,%ebp
 andl %r13d,%ebx
 addl %ecx,%r11d
 roll $30,%r13d
 addl %ebx,%r11d
 xorl 48(%rsp),%r14d
 movl %esi,%eax
 movl %ebp,44(%rsp)
 movl %esi,%ebx
 xorl 56(%rsp),%r14d
 andl %r13d,%eax
 movl %r11d,%ecx
 xorl 16(%rsp),%r14d
 leal -1894007588(%rbp,%rdi,1),%edi
 xorl %r13d,%ebx
 roll $5,%ecx
 addl %eax,%edi
 roll $1,%r14d
 andl %r12d,%ebx
 addl %ecx,%edi
 roll $30,%r12d
 addl %ebx,%edi
 xorl 52(%rsp),%edx
 movl %r13d,%eax
 movl %r14d,48(%rsp)
 movl %r13d,%ebx
 xorl 60(%rsp),%edx
 andl %r12d,%eax
 movl %edi,%ecx
 xorl 20(%rsp),%edx
 leal -1894007588(%r14,%rsi,1),%esi
 xorl %r12d,%ebx
 roll $5,%ecx
 addl %eax,%esi
 roll $1,%edx
 andl %r11d,%ebx
 addl %ecx,%esi
 roll $30,%r11d
 addl %ebx,%esi
 xorl 56(%rsp),%ebp
 movl %r12d,%eax
 movl %edx,52(%rsp)
 movl %r12d,%ebx
 xorl 0(%rsp),%ebp
 andl %r11d,%eax
 movl %esi,%ecx
 xorl 24(%rsp),%ebp
 leal -1894007588(%rdx,%r13,1),%r13d
 xorl %r11d,%ebx
 roll $5,%ecx
 addl %eax,%r13d
 roll $1,%ebp
 andl %edi,%ebx
 addl %ecx,%r13d
 roll $30,%edi
 addl %ebx,%r13d
 xorl 60(%rsp),%r14d
 movl %r11d,%eax
 movl %ebp,56(%rsp)
 movl %r11d,%ebx
 xorl 4(%rsp),%r14d
 andl %edi,%eax
 movl %r13d,%ecx
 xorl 28(%rsp),%r14d
 leal -1894007588(%rbp,%r12,1),%r12d
 xorl %edi,%ebx
 roll $5,%ecx
 addl %eax,%r12d
 roll $1,%r14d
 andl %esi,%ebx
 addl %ecx,%r12d
 roll $30,%esi
 addl %ebx,%r12d
 xorl 0(%rsp),%edx
 movl %edi,%eax
 movl %r14d,60(%rsp)
 movl %edi,%ebx
 xorl 8(%rsp),%edx
 andl %esi,%eax
 movl %r12d,%ecx
 xorl 32(%rsp),%edx
 leal -1894007588(%r14,%r11,1),%r11d
 xorl %esi,%ebx
 roll $5,%ecx
 addl %eax,%r11d
 roll $1,%edx
 andl %r13d,%ebx
 addl %ecx,%r11d
 roll $30,%r13d
 addl %ebx,%r11d
 xorl 4(%rsp),%ebp
 movl %esi,%eax
 movl %edx,0(%rsp)
 movl %esi,%ebx
 xorl 12(%rsp),%ebp
 andl %r13d,%eax
 movl %r11d,%ecx
 xorl 36(%rsp),%ebp
 leal -1894007588(%rdx,%rdi,1),%edi
 xorl %r13d,%ebx
 roll $5,%ecx
 addl %eax,%edi
 roll $1,%ebp
 andl %r12d,%ebx
 addl %ecx,%edi
 roll $30,%r12d
 addl %ebx,%edi
 xorl 8(%rsp),%r14d
 movl %r13d,%eax
 movl %ebp,4(%rsp)
 movl %r13d,%ebx
 xorl 16(%rsp),%r14d
 andl %r12d,%eax
 movl %edi,%ecx
 xorl 40(%rsp),%r14d
 leal -1894007588(%rbp,%rsi,1),%esi
 xorl %r12d,%ebx
 roll $5,%ecx
 addl %eax,%esi
 roll $1,%r14d
 andl %r11d,%ebx
 addl %ecx,%esi
 roll $30,%r11d
 addl %ebx,%esi
 xorl 12(%rsp),%edx
 movl %r12d,%eax
 movl %r14d,8(%rsp)
 movl %r12d,%ebx
 xorl 20(%rsp),%edx
 andl %r11d,%eax
 movl %esi,%ecx
 xorl 44(%rsp),%edx
 leal -1894007588(%r14,%r13,1),%r13d
 xorl %r11d,%ebx
 roll $5,%ecx
 addl %eax,%r13d
 roll $1,%edx
 andl %edi,%ebx
 addl %ecx,%r13d
 roll $30,%edi
 addl %ebx,%r13d
 xorl 16(%rsp),%ebp
 movl %r11d,%eax
 movl %edx,12(%rsp)
 movl %r11d,%ebx
 xorl 24(%rsp),%ebp
 andl %edi,%eax
 movl %r13d,%ecx
 xorl 48(%rsp),%ebp
 leal -1894007588(%rdx,%r12,1),%r12d
 xorl %edi,%ebx
 roll $5,%ecx
 addl %eax,%r12d
 roll $1,%ebp
 andl %esi,%ebx
 addl %ecx,%r12d
 roll $30,%esi
 addl %ebx,%r12d
 xorl 20(%rsp),%r14d
 movl %edi,%eax
 movl %ebp,16(%rsp)
 movl %edi,%ebx
 xorl 28(%rsp),%r14d
 andl %esi,%eax
 movl %r12d,%ecx
 xorl 52(%rsp),%r14d
 leal -1894007588(%rbp,%r11,1),%r11d
 xorl %esi,%ebx
 roll $5,%ecx
 addl %eax,%r11d
 roll $1,%r14d
 andl %r13d,%ebx
 addl %ecx,%r11d
 roll $30,%r13d
 addl %ebx,%r11d
 xorl 24(%rsp),%edx
 movl %esi,%eax
 movl %r14d,20(%rsp)
 movl %esi,%ebx
 xorl 32(%rsp),%edx
 andl %r13d,%eax
 movl %r11d,%ecx
 xorl 56(%rsp),%edx
 leal -1894007588(%r14,%rdi,1),%edi
 xorl %r13d,%ebx
 roll $5,%ecx
 addl %eax,%edi
 roll $1,%edx
 andl %r12d,%ebx
 addl %ecx,%edi
 roll $30,%r12d
 addl %ebx,%edi
 xorl 28(%rsp),%ebp
 movl %r13d,%eax
 movl %edx,24(%rsp)
 movl %r13d,%ebx
 xorl 36(%rsp),%ebp
 andl %r12d,%eax
 movl %edi,%ecx
 xorl 60(%rsp),%ebp
 leal -1894007588(%rdx,%rsi,1),%esi
 xorl %r12d,%ebx
 roll $5,%ecx
 addl %eax,%esi
 roll $1,%ebp
 andl %r11d,%ebx
 addl %ecx,%esi
 roll $30,%r11d
 addl %ebx,%esi
 xorl 32(%rsp),%r14d
 movl %r12d,%eax
 movl %ebp,28(%rsp)
 movl %r12d,%ebx
 xorl 40(%rsp),%r14d
 andl %r11d,%eax
 movl %esi,%ecx
 xorl 0(%rsp),%r14d
 leal -1894007588(%rbp,%r13,1),%r13d
 xorl %r11d,%ebx
 roll $5,%ecx
 addl %eax,%r13d
 roll $1,%r14d
 andl %edi,%ebx
 addl %ecx,%r13d
 roll $30,%edi
 addl %ebx,%r13d
 xorl 36(%rsp),%edx
 movl %r11d,%eax
 movl %r14d,32(%rsp)
 movl %r11d,%ebx
 xorl 44(%rsp),%edx
 andl %edi,%eax
 movl %r13d,%ecx
 xorl 4(%rsp),%edx
 leal -1894007588(%r14,%r12,1),%r12d
 xorl %edi,%ebx
 roll $5,%ecx
 addl %eax,%r12d
 roll $1,%edx
 andl %esi,%ebx
 addl %ecx,%r12d
 roll $30,%esi
 addl %ebx,%r12d
 xorl 40(%rsp),%ebp
 movl %edi,%eax
 movl %edx,36(%rsp)
 movl %edi,%ebx
 xorl 48(%rsp),%ebp
 andl %esi,%eax
 movl %r12d,%ecx
 xorl 8(%rsp),%ebp
 leal -1894007588(%rdx,%r11,1),%r11d
 xorl %esi,%ebx
 roll $5,%ecx
 addl %eax,%r11d
 roll $1,%ebp
 andl %r13d,%ebx
 addl %ecx,%r11d
 roll $30,%r13d
 addl %ebx,%r11d
 xorl 44(%rsp),%r14d
 movl %esi,%eax
 movl %ebp,40(%rsp)
 movl %esi,%ebx
 xorl 52(%rsp),%r14d
 andl %r13d,%eax
 movl %r11d,%ecx
 xorl 12(%rsp),%r14d
 leal -1894007588(%rbp,%rdi,1),%edi
 xorl %r13d,%ebx
 roll $5,%ecx
 addl %eax,%edi
 roll $1,%r14d
 andl %r12d,%ebx
 addl %ecx,%edi
 roll $30,%r12d
 addl %ebx,%edi
 xorl 48(%rsp),%edx
 movl %r13d,%eax
 movl %r14d,44(%rsp)
 movl %r13d,%ebx
 xorl 56(%rsp),%edx
 andl %r12d,%eax
 movl %edi,%ecx
 xorl 16(%rsp),%edx
 leal -1894007588(%r14,%rsi,1),%esi
 xorl %r12d,%ebx
 roll $5,%ecx
 addl %eax,%esi
 roll $1,%edx
 andl %r11d,%ebx
 addl %ecx,%esi
 roll $30,%r11d
 addl %ebx,%esi
 xorl 52(%rsp),%ebp
 movl %edi,%eax
 movl %edx,48(%rsp)
 movl %esi,%ecx
 xorl 60(%rsp),%ebp
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 20(%rsp),%ebp
 leal -899497514(%rdx,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%ebp
 xorl 56(%rsp),%r14d
 movl %esi,%eax
 movl %ebp,52(%rsp)
 movl %r13d,%ecx
 xorl 0(%rsp),%r14d
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 24(%rsp),%r14d
 leal -899497514(%rbp,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%r14d
 xorl 60(%rsp),%edx
 movl %r13d,%eax
 movl %r14d,56(%rsp)
 movl %r12d,%ecx
 xorl 4(%rsp),%edx
 xorl %edi,%eax
 roll $5,%ecx
 xorl 28(%rsp),%edx
 leal -899497514(%r14,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%edx
 xorl 0(%rsp),%ebp
 movl %r12d,%eax
 movl %edx,60(%rsp)
 movl %r11d,%ecx
 xorl 8(%rsp),%ebp
 xorl %esi,%eax
 roll $5,%ecx
 xorl 32(%rsp),%ebp
 leal -899497514(%rdx,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%ebp
 xorl 4(%rsp),%r14d
 movl %r11d,%eax
 movl %ebp,0(%rsp)
 movl %edi,%ecx
 xorl 12(%rsp),%r14d
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 36(%rsp),%r14d
 leal -899497514(%rbp,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%r14d
 xorl 8(%rsp),%edx
 movl %edi,%eax
 movl %r14d,4(%rsp)
 movl %esi,%ecx
 xorl 16(%rsp),%edx
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 40(%rsp),%edx
 leal -899497514(%r14,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%edx
 xorl 12(%rsp),%ebp
 movl %esi,%eax
 movl %edx,8(%rsp)
 movl %r13d,%ecx
 xorl 20(%rsp),%ebp
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 44(%rsp),%ebp
 leal -899497514(%rdx,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%ebp
 xorl 16(%rsp),%r14d
 movl %r13d,%eax
 movl %ebp,12(%rsp)
 movl %r12d,%ecx
 xorl 24(%rsp),%r14d
 xorl %edi,%eax
 roll $5,%ecx
 xorl 48(%rsp),%r14d
 leal -899497514(%rbp,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%r14d
 xorl 20(%rsp),%edx
 movl %r12d,%eax
 movl %r14d,16(%rsp)
 movl %r11d,%ecx
 xorl 28(%rsp),%edx
 xorl %esi,%eax
 roll $5,%ecx
 xorl 52(%rsp),%edx
 leal -899497514(%r14,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%edx
 xorl 24(%rsp),%ebp
 movl %r11d,%eax
 movl %edx,20(%rsp)
 movl %edi,%ecx
 xorl 32(%rsp),%ebp
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 56(%rsp),%ebp
 leal -899497514(%rdx,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%ebp
 xorl 28(%rsp),%r14d
 movl %edi,%eax
 movl %ebp,24(%rsp)
 movl %esi,%ecx
 xorl 36(%rsp),%r14d
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 60(%rsp),%r14d
 leal -899497514(%rbp,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%r14d
 xorl 32(%rsp),%edx
 movl %esi,%eax
 movl %r14d,28(%rsp)
 movl %r13d,%ecx
 xorl 40(%rsp),%edx
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 0(%rsp),%edx
 leal -899497514(%r14,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%edx
 xorl 36(%rsp),%ebp
 movl %r13d,%eax

 movl %r12d,%ecx
 xorl 44(%rsp),%ebp
 xorl %edi,%eax
 roll $5,%ecx
 xorl 4(%rsp),%ebp
 leal -899497514(%rdx,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%ebp
 xorl 40(%rsp),%r14d
 movl %r12d,%eax

 movl %r11d,%ecx
 xorl 48(%rsp),%r14d
 xorl %esi,%eax
 roll $5,%ecx
 xorl 8(%rsp),%r14d
 leal -899497514(%rbp,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%r14d
 xorl 44(%rsp),%edx
 movl %r11d,%eax

 movl %edi,%ecx
 xorl 52(%rsp),%edx
 xorl %r13d,%eax
 roll $5,%ecx
 xorl 12(%rsp),%edx
 leal -899497514(%r14,%rsi,1),%esi
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 roll $1,%edx
 xorl 48(%rsp),%ebp
 movl %edi,%eax

 movl %esi,%ecx
 xorl 56(%rsp),%ebp
 xorl %r12d,%eax
 roll $5,%ecx
 xorl 16(%rsp),%ebp
 leal -899497514(%rdx,%r13,1),%r13d
 xorl %r11d,%eax
 addl %ecx,%r13d
 roll $30,%edi
 addl %eax,%r13d
 roll $1,%ebp
 xorl 52(%rsp),%r14d
 movl %esi,%eax

 movl %r13d,%ecx
 xorl 60(%rsp),%r14d
 xorl %r11d,%eax
 roll $5,%ecx
 xorl 20(%rsp),%r14d
 leal -899497514(%rbp,%r12,1),%r12d
 xorl %edi,%eax
 addl %ecx,%r12d
 roll $30,%esi
 addl %eax,%r12d
 roll $1,%r14d
 xorl 56(%rsp),%edx
 movl %r13d,%eax

 movl %r12d,%ecx
 xorl 0(%rsp),%edx
 xorl %edi,%eax
 roll $5,%ecx
 xorl 24(%rsp),%edx
 leal -899497514(%r14,%r11,1),%r11d
 xorl %esi,%eax
 addl %ecx,%r11d
 roll $30,%r13d
 addl %eax,%r11d
 roll $1,%edx
 xorl 60(%rsp),%ebp
 movl %r12d,%eax

 movl %r11d,%ecx
 xorl 4(%rsp),%ebp
 xorl %esi,%eax
 roll $5,%ecx
 xorl 28(%rsp),%ebp
 leal -899497514(%rdx,%rdi,1),%edi
 xorl %r13d,%eax
 addl %ecx,%edi
 roll $30,%r12d
 addl %eax,%edi
 roll $1,%ebp
 movl %r11d,%eax
 movl %edi,%ecx
 xorl %r13d,%eax
 leal -899497514(%rbp,%rsi,1),%esi
 roll $5,%ecx
 xorl %r12d,%eax
 addl %ecx,%esi
 roll $30,%r11d
 addl %eax,%esi
 addl 0(%r8),%esi
 addl 4(%r8),%edi
 addl 8(%r8),%r11d
 addl 12(%r8),%r12d
 addl 16(%r8),%r13d
 movl %esi,0(%r8)
 movl %edi,4(%r8)
 movl %r11d,8(%r8)
 movl %r12d,12(%r8)
 movl %r13d,16(%r8)

 subq $1,%r10
 leaq 64(%r9),%r9
# WAS jnz .Lloop
	jnz	.Lloop_BCM_18

 movq 64(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_BCM_18:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha1_block_data_order_nohw,.-sha1_block_data_order_nohw
.globl sha1_block_data_order_hw
.hidden sha1_block_data_order_hw
.type sha1_block_data_order_hw,@function
.align 32
.Lsha1_block_data_order_hw_local_target:
sha1_block_data_order_hw:
.cfi_startproc
endbr64
 movdqu (%rdi),%xmm0
 movd 16(%rdi),%xmm1
# WAS movdqa K_XX_XX+160(%rip),%xmm3
	movdqa	.LK_XX_XX_local_target+160(%rip), %xmm3

 movdqu (%rsi),%xmm4
 pshufd $27,%xmm0,%xmm0
 movdqu 16(%rsi),%xmm5
 pshufd $27,%xmm1,%xmm1
 movdqu 32(%rsi),%xmm6
.byte 102,15,56,0,227
 movdqu 48(%rsi),%xmm7
.byte 102,15,56,0,235
.byte 102,15,56,0,243
 movdqa %xmm1,%xmm9
.byte 102,15,56,0,251
# WAS jmp .Loop_shaext
	jmp	.Loop_shaext_BCM_18

.align 16
.Loop_shaext_BCM_18:

 decq %rdx
 leaq 64(%rsi),%r8
 paddd %xmm4,%xmm1
 cmovneq %r8,%rsi
 prefetcht0 512(%rsi)
 movdqa %xmm0,%xmm8
.byte 15,56,201,229
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,0
.byte 15,56,200,213
 pxor %xmm6,%xmm4
.byte 15,56,201,238
.byte 15,56,202,231

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,0
.byte 15,56,200,206
 pxor %xmm7,%xmm5
.byte 15,56,202,236
.byte 15,56,201,247
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,0
.byte 15,56,200,215
 pxor %xmm4,%xmm6
.byte 15,56,201,252
.byte 15,56,202,245

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,0
.byte 15,56,200,204
 pxor %xmm5,%xmm7
.byte 15,56,202,254
.byte 15,56,201,229
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,0
.byte 15,56,200,213
 pxor %xmm6,%xmm4
.byte 15,56,201,238
.byte 15,56,202,231

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,1
.byte 15,56,200,206
 pxor %xmm7,%xmm5
.byte 15,56,202,236
.byte 15,56,201,247
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,1
.byte 15,56,200,215
 pxor %xmm4,%xmm6
.byte 15,56,201,252
.byte 15,56,202,245

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,1
.byte 15,56,200,204
 pxor %xmm5,%xmm7
.byte 15,56,202,254
.byte 15,56,201,229
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,1
.byte 15,56,200,213
 pxor %xmm6,%xmm4
.byte 15,56,201,238
.byte 15,56,202,231

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,1
.byte 15,56,200,206
 pxor %xmm7,%xmm5
.byte 15,56,202,236
.byte 15,56,201,247
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,2
.byte 15,56,200,215
 pxor %xmm4,%xmm6
.byte 15,56,201,252
.byte 15,56,202,245

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,2
.byte 15,56,200,204
 pxor %xmm5,%xmm7
.byte 15,56,202,254
.byte 15,56,201,229
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,2
.byte 15,56,200,213
 pxor %xmm6,%xmm4
.byte 15,56,201,238
.byte 15,56,202,231

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,2
.byte 15,56,200,206
 pxor %xmm7,%xmm5
.byte 15,56,202,236
.byte 15,56,201,247
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,2
.byte 15,56,200,215
 pxor %xmm4,%xmm6
.byte 15,56,201,252
.byte 15,56,202,245

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,3
.byte 15,56,200,204
 pxor %xmm5,%xmm7
.byte 15,56,202,254
 movdqu (%rsi),%xmm4
 movdqa %xmm0,%xmm2
.byte 15,58,204,193,3
.byte 15,56,200,213
 movdqu 16(%rsi),%xmm5
.byte 102,15,56,0,227

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,3
.byte 15,56,200,206
 movdqu 32(%rsi),%xmm6
.byte 102,15,56,0,235

 movdqa %xmm0,%xmm2
.byte 15,58,204,193,3
.byte 15,56,200,215
 movdqu 48(%rsi),%xmm7
.byte 102,15,56,0,243

 movdqa %xmm0,%xmm1
.byte 15,58,204,194,3
.byte 65,15,56,200,201
.byte 102,15,56,0,251

 paddd %xmm8,%xmm0
 movdqa %xmm1,%xmm9

# WAS jnz .Loop_shaext
	jnz	.Loop_shaext_BCM_18

 pshufd $27,%xmm0,%xmm0
 pshufd $27,%xmm1,%xmm1
 movdqu %xmm0,(%rdi)
 movd %xmm1,16(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.size sha1_block_data_order_hw,.-sha1_block_data_order_hw
.globl sha1_block_data_order_ssse3
.hidden sha1_block_data_order_ssse3
.type sha1_block_data_order_ssse3,@function
.align 16
.Lsha1_block_data_order_ssse3_local_target:
sha1_block_data_order_ssse3:
.cfi_startproc
endbr64
 movq %rsp,%r11
.cfi_def_cfa_register %r11
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 leaq -64(%rsp),%rsp
 andq $-64,%rsp
 movq %rdi,%r8
 movq %rsi,%r9
 movq %rdx,%r10

 shlq $6,%r10
 addq %r9,%r10
# WAS leaq K_XX_XX+64(%rip),%r14
	leaq	.LK_XX_XX_local_target+64(%rip), %r14

 movl 0(%r8),%eax
 movl 4(%r8),%ebx
 movl 8(%r8),%ecx
 movl 12(%r8),%edx
 movl %ebx,%esi
 movl 16(%r8),%ebp
 movl %ecx,%edi
 xorl %edx,%edi
 andl %edi,%esi

 movdqa 64(%r14),%xmm6
 movdqa -64(%r14),%xmm9
 movdqu 0(%r9),%xmm0
 movdqu 16(%r9),%xmm1
 movdqu 32(%r9),%xmm2
 movdqu 48(%r9),%xmm3
.byte 102,15,56,0,198
.byte 102,15,56,0,206
.byte 102,15,56,0,214
 addq $64,%r9
 paddd %xmm9,%xmm0
.byte 102,15,56,0,222
 paddd %xmm9,%xmm1
 paddd %xmm9,%xmm2
 movdqa %xmm0,0(%rsp)
 psubd %xmm9,%xmm0
 movdqa %xmm1,16(%rsp)
 psubd %xmm9,%xmm1
 movdqa %xmm2,32(%rsp)
 psubd %xmm9,%xmm2
# WAS jmp .Loop_ssse3
	jmp	.Loop_ssse3_BCM_18
.align 16
.Loop_ssse3_BCM_18:

 rorl $2,%ebx
 pshufd $238,%xmm0,%xmm4
 xorl %edx,%esi
 movdqa %xmm3,%xmm8
 paddd %xmm3,%xmm9
 movl %eax,%edi
 addl 0(%rsp),%ebp
 punpcklqdq %xmm1,%xmm4
 xorl %ecx,%ebx
 roll $5,%eax
 addl %esi,%ebp
 psrldq $4,%xmm8
 andl %ebx,%edi
 xorl %ecx,%ebx
 pxor %xmm0,%xmm4
 addl %eax,%ebp
 rorl $7,%eax
 pxor %xmm2,%xmm8
 xorl %ecx,%edi
 movl %ebp,%esi
 addl 4(%rsp),%edx
 pxor %xmm8,%xmm4
 xorl %ebx,%eax
 roll $5,%ebp
 movdqa %xmm9,48(%rsp)
 addl %edi,%edx
 andl %eax,%esi
 movdqa %xmm4,%xmm10
 xorl %ebx,%eax
 addl %ebp,%edx
 rorl $7,%ebp
 movdqa %xmm4,%xmm8
 xorl %ebx,%esi
 pslldq $12,%xmm10
 paddd %xmm4,%xmm4
 movl %edx,%edi
 addl 8(%rsp),%ecx
 psrld $31,%xmm8
 xorl %eax,%ebp
 roll $5,%edx
 addl %esi,%ecx
 movdqa %xmm10,%xmm9
 andl %ebp,%edi
 xorl %eax,%ebp
 psrld $30,%xmm10
 addl %edx,%ecx
 rorl $7,%edx
 por %xmm8,%xmm4
 xorl %eax,%edi
 movl %ecx,%esi
 addl 12(%rsp),%ebx
 pslld $2,%xmm9
 pxor %xmm10,%xmm4
 xorl %ebp,%edx
 movdqa -64(%r14),%xmm10
 roll $5,%ecx
 addl %edi,%ebx
 andl %edx,%esi
 pxor %xmm9,%xmm4
 xorl %ebp,%edx
 addl %ecx,%ebx
 rorl $7,%ecx
 pshufd $238,%xmm1,%xmm5
 xorl %ebp,%esi
 movdqa %xmm4,%xmm9
 paddd %xmm4,%xmm10
 movl %ebx,%edi
 addl 16(%rsp),%eax
 punpcklqdq %xmm2,%xmm5
 xorl %edx,%ecx
 roll $5,%ebx
 addl %esi,%eax
 psrldq $4,%xmm9
 andl %ecx,%edi
 xorl %edx,%ecx
 pxor %xmm1,%xmm5
 addl %ebx,%eax
 rorl $7,%ebx
 pxor %xmm3,%xmm9
 xorl %edx,%edi
 movl %eax,%esi
 addl 20(%rsp),%ebp
 pxor %xmm9,%xmm5
 xorl %ecx,%ebx
 roll $5,%eax
 movdqa %xmm10,0(%rsp)
 addl %edi,%ebp
 andl %ebx,%esi
 movdqa %xmm5,%xmm8
 xorl %ecx,%ebx
 addl %eax,%ebp
 rorl $7,%eax
 movdqa %xmm5,%xmm9
 xorl %ecx,%esi
 pslldq $12,%xmm8
 paddd %xmm5,%xmm5
 movl %ebp,%edi
 addl 24(%rsp),%edx
 psrld $31,%xmm9
 xorl %ebx,%eax
 roll $5,%ebp
 addl %esi,%edx
 movdqa %xmm8,%xmm10
 andl %eax,%edi
 xorl %ebx,%eax
 psrld $30,%xmm8
 addl %ebp,%edx
 rorl $7,%ebp
 por %xmm9,%xmm5
 xorl %ebx,%edi
 movl %edx,%esi
 addl 28(%rsp),%ecx
 pslld $2,%xmm10
 pxor %xmm8,%xmm5
 xorl %eax,%ebp
 movdqa -32(%r14),%xmm8
 roll $5,%edx
 addl %edi,%ecx
 andl %ebp,%esi
 pxor %xmm10,%xmm5
 xorl %eax,%ebp
 addl %edx,%ecx
 rorl $7,%edx
 pshufd $238,%xmm2,%xmm6
 xorl %eax,%esi
 movdqa %xmm5,%xmm10
 paddd %xmm5,%xmm8
 movl %ecx,%edi
 addl 32(%rsp),%ebx
 punpcklqdq %xmm3,%xmm6
 xorl %ebp,%edx
 roll $5,%ecx
 addl %esi,%ebx
 psrldq $4,%xmm10
 andl %edx,%edi
 xorl %ebp,%edx
 pxor %xmm2,%xmm6
 addl %ecx,%ebx
 rorl $7,%ecx
 pxor %xmm4,%xmm10
 xorl %ebp,%edi
 movl %ebx,%esi
 addl 36(%rsp),%eax
 pxor %xmm10,%xmm6
 xorl %edx,%ecx
 roll $5,%ebx
 movdqa %xmm8,16(%rsp)
 addl %edi,%eax
 andl %ecx,%esi
 movdqa %xmm6,%xmm9
 xorl %edx,%ecx
 addl %ebx,%eax
 rorl $7,%ebx
 movdqa %xmm6,%xmm10
 xorl %edx,%esi
 pslldq $12,%xmm9
 paddd %xmm6,%xmm6
 movl %eax,%edi
 addl 40(%rsp),%ebp
 psrld $31,%xmm10
 xorl %ecx,%ebx
 roll $5,%eax
 addl %esi,%ebp
 movdqa %xmm9,%xmm8
 andl %ebx,%edi
 xorl %ecx,%ebx
 psrld $30,%xmm9
 addl %eax,%ebp
 rorl $7,%eax
 por %xmm10,%xmm6
 xorl %ecx,%edi
 movl %ebp,%esi
 addl 44(%rsp),%edx
 pslld $2,%xmm8
 pxor %xmm9,%xmm6
 xorl %ebx,%eax
 movdqa -32(%r14),%xmm9
 roll $5,%ebp
 addl %edi,%edx
 andl %eax,%esi
 pxor %xmm8,%xmm6
 xorl %ebx,%eax
 addl %ebp,%edx
 rorl $7,%ebp
 pshufd $238,%xmm3,%xmm7
 xorl %ebx,%esi
 movdqa %xmm6,%xmm8
 paddd %xmm6,%xmm9
 movl %edx,%edi
 addl 48(%rsp),%ecx
 punpcklqdq %xmm4,%xmm7
 xorl %eax,%ebp
 roll $5,%edx
 addl %esi,%ecx
 psrldq $4,%xmm8
 andl %ebp,%edi
 xorl %eax,%ebp
 pxor %xmm3,%xmm7
 addl %edx,%ecx
 rorl $7,%edx
 pxor %xmm5,%xmm8
 xorl %eax,%edi
 movl %ecx,%esi
 addl 52(%rsp),%ebx
 pxor %xmm8,%xmm7
 xorl %ebp,%edx
 roll $5,%ecx
 movdqa %xmm9,32(%rsp)
 addl %edi,%ebx
 andl %edx,%esi
 movdqa %xmm7,%xmm10
 xorl %ebp,%edx
 addl %ecx,%ebx
 rorl $7,%ecx
 movdqa %xmm7,%xmm8
 xorl %ebp,%esi
 pslldq $12,%xmm10
 paddd %xmm7,%xmm7
 movl %ebx,%edi
 addl 56(%rsp),%eax
 psrld $31,%xmm8
 xorl %edx,%ecx
 roll $5,%ebx
 addl %esi,%eax
 movdqa %xmm10,%xmm9
 andl %ecx,%edi
 xorl %edx,%ecx
 psrld $30,%xmm10
 addl %ebx,%eax
 rorl $7,%ebx
 por %xmm8,%xmm7
 xorl %edx,%edi
 movl %eax,%esi
 addl 60(%rsp),%ebp
 pslld $2,%xmm9
 pxor %xmm10,%xmm7
 xorl %ecx,%ebx
 movdqa -32(%r14),%xmm10
 roll $5,%eax
 addl %edi,%ebp
 andl %ebx,%esi
 pxor %xmm9,%xmm7
 pshufd $238,%xmm6,%xmm9
 xorl %ecx,%ebx
 addl %eax,%ebp
 rorl $7,%eax
 pxor %xmm4,%xmm0
 xorl %ecx,%esi
 movl %ebp,%edi
 addl 0(%rsp),%edx
 punpcklqdq %xmm7,%xmm9
 xorl %ebx,%eax
 roll $5,%ebp
 pxor %xmm1,%xmm0
 addl %esi,%edx
 andl %eax,%edi
 movdqa %xmm10,%xmm8
 xorl %ebx,%eax
 paddd %xmm7,%xmm10
 addl %ebp,%edx
 pxor %xmm9,%xmm0
 rorl $7,%ebp
 xorl %ebx,%edi
 movl %edx,%esi
 addl 4(%rsp),%ecx
 movdqa %xmm0,%xmm9
 xorl %eax,%ebp
 roll $5,%edx
 movdqa %xmm10,48(%rsp)
 addl %edi,%ecx
 andl %ebp,%esi
 xorl %eax,%ebp
 pslld $2,%xmm0
 addl %edx,%ecx
 rorl $7,%edx
 psrld $30,%xmm9
 xorl %eax,%esi
 movl %ecx,%edi
 addl 8(%rsp),%ebx
 por %xmm9,%xmm0
 xorl %ebp,%edx
 roll $5,%ecx
 pshufd $238,%xmm7,%xmm10
 addl %esi,%ebx
 andl %edx,%edi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 12(%rsp),%eax
 xorl %ebp,%edi
 movl %ebx,%esi
 roll $5,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 rorl $7,%ecx
 addl %ebx,%eax
 pxor %xmm5,%xmm1
 addl 16(%rsp),%ebp
 xorl %ecx,%esi
 punpcklqdq %xmm0,%xmm10
 movl %eax,%edi
 roll $5,%eax
 pxor %xmm2,%xmm1
 addl %esi,%ebp
 xorl %ecx,%edi
 movdqa %xmm8,%xmm9
 rorl $7,%ebx
 paddd %xmm0,%xmm8
 addl %eax,%ebp
 pxor %xmm10,%xmm1
 addl 20(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 roll $5,%ebp
 movdqa %xmm1,%xmm10
 addl %edi,%edx
 xorl %ebx,%esi
 movdqa %xmm8,0(%rsp)
 rorl $7,%eax
 addl %ebp,%edx
 addl 24(%rsp),%ecx
 pslld $2,%xmm1
 xorl %eax,%esi
 movl %edx,%edi
 psrld $30,%xmm10
 roll $5,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 rorl $7,%ebp
 por %xmm10,%xmm1
 addl %edx,%ecx
 addl 28(%rsp),%ebx
 pshufd $238,%xmm0,%xmm8
 xorl %ebp,%edi
 movl %ecx,%esi
 roll $5,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 rorl $7,%edx
 addl %ecx,%ebx
 pxor %xmm6,%xmm2
 addl 32(%rsp),%eax
 xorl %edx,%esi
 punpcklqdq %xmm1,%xmm8
 movl %ebx,%edi
 roll $5,%ebx
 pxor %xmm3,%xmm2
 addl %esi,%eax
 xorl %edx,%edi
 movdqa 0(%r14),%xmm10
 rorl $7,%ecx
 paddd %xmm1,%xmm9
 addl %ebx,%eax
 pxor %xmm8,%xmm2
 addl 36(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 roll $5,%eax
 movdqa %xmm2,%xmm8
 addl %edi,%ebp
 xorl %ecx,%esi
 movdqa %xmm9,16(%rsp)
 rorl $7,%ebx
 addl %eax,%ebp
 addl 40(%rsp),%edx
 pslld $2,%xmm2
 xorl %ebx,%esi
 movl %ebp,%edi
 psrld $30,%xmm8
 roll $5,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 rorl $7,%eax
 por %xmm8,%xmm2
 addl %ebp,%edx
 addl 44(%rsp),%ecx
 pshufd $238,%xmm1,%xmm9
 xorl %eax,%edi
 movl %edx,%esi
 roll $5,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 rorl $7,%ebp
 addl %edx,%ecx
 pxor %xmm7,%xmm3
 addl 48(%rsp),%ebx
 xorl %ebp,%esi
 punpcklqdq %xmm2,%xmm9
 movl %ecx,%edi
 roll $5,%ecx
 pxor %xmm4,%xmm3
 addl %esi,%ebx
 xorl %ebp,%edi
 movdqa %xmm10,%xmm8
 rorl $7,%edx
 paddd %xmm2,%xmm10
 addl %ecx,%ebx
 pxor %xmm9,%xmm3
 addl 52(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 roll $5,%ebx
 movdqa %xmm3,%xmm9
 addl %edi,%eax
 xorl %edx,%esi
 movdqa %xmm10,32(%rsp)
 rorl $7,%ecx
 addl %ebx,%eax
 addl 56(%rsp),%ebp
 pslld $2,%xmm3
 xorl %ecx,%esi
 movl %eax,%edi
 psrld $30,%xmm9
 roll $5,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 rorl $7,%ebx
 por %xmm9,%xmm3
 addl %eax,%ebp
 addl 60(%rsp),%edx
 pshufd $238,%xmm2,%xmm10
 xorl %ebx,%edi
 movl %ebp,%esi
 roll $5,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 rorl $7,%eax
 addl %ebp,%edx
 pxor %xmm0,%xmm4
 addl 0(%rsp),%ecx
 xorl %eax,%esi
 punpcklqdq %xmm3,%xmm10
 movl %edx,%edi
 roll $5,%edx
 pxor %xmm5,%xmm4
 addl %esi,%ecx
 xorl %eax,%edi
 movdqa %xmm8,%xmm9
 rorl $7,%ebp
 paddd %xmm3,%xmm8
 addl %edx,%ecx
 pxor %xmm10,%xmm4
 addl 4(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 roll $5,%ecx
 movdqa %xmm4,%xmm10
 addl %edi,%ebx
 xorl %ebp,%esi
 movdqa %xmm8,48(%rsp)
 rorl $7,%edx
 addl %ecx,%ebx
 addl 8(%rsp),%eax
 pslld $2,%xmm4
 xorl %edx,%esi
 movl %ebx,%edi
 psrld $30,%xmm10
 roll $5,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 rorl $7,%ecx
 por %xmm10,%xmm4
 addl %ebx,%eax
 addl 12(%rsp),%ebp
 pshufd $238,%xmm3,%xmm8
 xorl %ecx,%edi
 movl %eax,%esi
 roll $5,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 rorl $7,%ebx
 addl %eax,%ebp
 pxor %xmm1,%xmm5
 addl 16(%rsp),%edx
 xorl %ebx,%esi
 punpcklqdq %xmm4,%xmm8
 movl %ebp,%edi
 roll $5,%ebp
 pxor %xmm6,%xmm5
 addl %esi,%edx
 xorl %ebx,%edi
 movdqa %xmm9,%xmm10
 rorl $7,%eax
 paddd %xmm4,%xmm9
 addl %ebp,%edx
 pxor %xmm8,%xmm5
 addl 20(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 roll $5,%edx
 movdqa %xmm5,%xmm8
 addl %edi,%ecx
 xorl %eax,%esi
 movdqa %xmm9,0(%rsp)
 rorl $7,%ebp
 addl %edx,%ecx
 addl 24(%rsp),%ebx
 pslld $2,%xmm5
 xorl %ebp,%esi
 movl %ecx,%edi
 psrld $30,%xmm8
 roll $5,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 rorl $7,%edx
 por %xmm8,%xmm5
 addl %ecx,%ebx
 addl 28(%rsp),%eax
 pshufd $238,%xmm4,%xmm9
 rorl $7,%ecx
 movl %ebx,%esi
 xorl %edx,%edi
 roll $5,%ebx
 addl %edi,%eax
 xorl %ecx,%esi
 xorl %edx,%ecx
 addl %ebx,%eax
 pxor %xmm2,%xmm6
 addl 32(%rsp),%ebp
 andl %ecx,%esi
 xorl %edx,%ecx
 rorl $7,%ebx
 punpcklqdq %xmm5,%xmm9
 movl %eax,%edi
 xorl %ecx,%esi
 pxor %xmm7,%xmm6
 roll $5,%eax
 addl %esi,%ebp
 movdqa %xmm10,%xmm8
 xorl %ebx,%edi
 paddd %xmm5,%xmm10
 xorl %ecx,%ebx
 pxor %xmm9,%xmm6
 addl %eax,%ebp
 addl 36(%rsp),%edx
 andl %ebx,%edi
 xorl %ecx,%ebx
 rorl $7,%eax
 movdqa %xmm6,%xmm9
 movl %ebp,%esi
 xorl %ebx,%edi
 movdqa %xmm10,16(%rsp)
 roll $5,%ebp
 addl %edi,%edx
 xorl %eax,%esi
 pslld $2,%xmm6
 xorl %ebx,%eax
 addl %ebp,%edx
 psrld $30,%xmm9
 addl 40(%rsp),%ecx
 andl %eax,%esi
 xorl %ebx,%eax
 por %xmm9,%xmm6
 rorl $7,%ebp
 movl %edx,%edi
 xorl %eax,%esi
 roll $5,%edx
 pshufd $238,%xmm5,%xmm10
 addl %esi,%ecx
 xorl %ebp,%edi
 xorl %eax,%ebp
 addl %edx,%ecx
 addl 44(%rsp),%ebx
 andl %ebp,%edi
 xorl %eax,%ebp
 rorl $7,%edx
 movl %ecx,%esi
 xorl %ebp,%edi
 roll $5,%ecx
 addl %edi,%ebx
 xorl %edx,%esi
 xorl %ebp,%edx
 addl %ecx,%ebx
 pxor %xmm3,%xmm7
 addl 48(%rsp),%eax
 andl %edx,%esi
 xorl %ebp,%edx
 rorl $7,%ecx
 punpcklqdq %xmm6,%xmm10
 movl %ebx,%edi
 xorl %edx,%esi
 pxor %xmm0,%xmm7
 roll $5,%ebx
 addl %esi,%eax
 movdqa 32(%r14),%xmm9
 xorl %ecx,%edi
 paddd %xmm6,%xmm8
 xorl %edx,%ecx
 pxor %xmm10,%xmm7
 addl %ebx,%eax
 addl 52(%rsp),%ebp
 andl %ecx,%edi
 xorl %edx,%ecx
 rorl $7,%ebx
 movdqa %xmm7,%xmm10
 movl %eax,%esi
 xorl %ecx,%edi
 movdqa %xmm8,32(%rsp)
 roll $5,%eax
 addl %edi,%ebp
 xorl %ebx,%esi
 pslld $2,%xmm7
 xorl %ecx,%ebx
 addl %eax,%ebp
 psrld $30,%xmm10
 addl 56(%rsp),%edx
 andl %ebx,%esi
 xorl %ecx,%ebx
 por %xmm10,%xmm7
 rorl $7,%eax
 movl %ebp,%edi
 xorl %ebx,%esi
 roll $5,%ebp
 pshufd $238,%xmm6,%xmm8
 addl %esi,%edx
 xorl %eax,%edi
 xorl %ebx,%eax
 addl %ebp,%edx
 addl 60(%rsp),%ecx
 andl %eax,%edi
 xorl %ebx,%eax
 rorl $7,%ebp
 movl %edx,%esi
 xorl %eax,%edi
 roll $5,%edx
 addl %edi,%ecx
 xorl %ebp,%esi
 xorl %eax,%ebp
 addl %edx,%ecx
 pxor %xmm4,%xmm0
 addl 0(%rsp),%ebx
 andl %ebp,%esi
 xorl %eax,%ebp
 rorl $7,%edx
 punpcklqdq %xmm7,%xmm8
 movl %ecx,%edi
 xorl %ebp,%esi
 pxor %xmm1,%xmm0
 roll $5,%ecx
 addl %esi,%ebx
 movdqa %xmm9,%xmm10
 xorl %edx,%edi
 paddd %xmm7,%xmm9
 xorl %ebp,%edx
 pxor %xmm8,%xmm0
 addl %ecx,%ebx
 addl 4(%rsp),%eax
 andl %edx,%edi
 xorl %ebp,%edx
 rorl $7,%ecx
 movdqa %xmm0,%xmm8
 movl %ebx,%esi
 xorl %edx,%edi
 movdqa %xmm9,48(%rsp)
 roll $5,%ebx
 addl %edi,%eax
 xorl %ecx,%esi
 pslld $2,%xmm0
 xorl %edx,%ecx
 addl %ebx,%eax
 psrld $30,%xmm8
 addl 8(%rsp),%ebp
 andl %ecx,%esi
 xorl %edx,%ecx
 por %xmm8,%xmm0
 rorl $7,%ebx
 movl %eax,%edi
 xorl %ecx,%esi
 roll $5,%eax
 pshufd $238,%xmm7,%xmm9
 addl %esi,%ebp
 xorl %ebx,%edi
 xorl %ecx,%ebx
 addl %eax,%ebp
 addl 12(%rsp),%edx
 andl %ebx,%edi
 xorl %ecx,%ebx
 rorl $7,%eax
 movl %ebp,%esi
 xorl %ebx,%edi
 roll $5,%ebp
 addl %edi,%edx
 xorl %eax,%esi
 xorl %ebx,%eax
 addl %ebp,%edx
 pxor %xmm5,%xmm1
 addl 16(%rsp),%ecx
 andl %eax,%esi
 xorl %ebx,%eax
 rorl $7,%ebp
 punpcklqdq %xmm0,%xmm9
 movl %edx,%edi
 xorl %eax,%esi
 pxor %xmm2,%xmm1
 roll $5,%edx
 addl %esi,%ecx
 movdqa %xmm10,%xmm8
 xorl %ebp,%edi
 paddd %xmm0,%xmm10
 xorl %eax,%ebp
 pxor %xmm9,%xmm1
 addl %edx,%ecx
 addl 20(%rsp),%ebx
 andl %ebp,%edi
 xorl %eax,%ebp
 rorl $7,%edx
 movdqa %xmm1,%xmm9
 movl %ecx,%esi
 xorl %ebp,%edi
 movdqa %xmm10,0(%rsp)
 roll $5,%ecx
 addl %edi,%ebx
 xorl %edx,%esi
 pslld $2,%xmm1
 xorl %ebp,%edx
 addl %ecx,%ebx
 psrld $30,%xmm9
 addl 24(%rsp),%eax
 andl %edx,%esi
 xorl %ebp,%edx
 por %xmm9,%xmm1
 rorl $7,%ecx
 movl %ebx,%edi
 xorl %edx,%esi
 roll $5,%ebx
 pshufd $238,%xmm0,%xmm10
 addl %esi,%eax
 xorl %ecx,%edi
 xorl %edx,%ecx
 addl %ebx,%eax
 addl 28(%rsp),%ebp
 andl %ecx,%edi
 xorl %edx,%ecx
 rorl $7,%ebx
 movl %eax,%esi
 xorl %ecx,%edi
 roll $5,%eax
 addl %edi,%ebp
 xorl %ebx,%esi
 xorl %ecx,%ebx
 addl %eax,%ebp
 pxor %xmm6,%xmm2
 addl 32(%rsp),%edx
 andl %ebx,%esi
 xorl %ecx,%ebx
 rorl $7,%eax
 punpcklqdq %xmm1,%xmm10
 movl %ebp,%edi
 xorl %ebx,%esi
 pxor %xmm3,%xmm2
 roll $5,%ebp
 addl %esi,%edx
 movdqa %xmm8,%xmm9
 xorl %eax,%edi
 paddd %xmm1,%xmm8
 xorl %ebx,%eax
 pxor %xmm10,%xmm2
 addl %ebp,%edx
 addl 36(%rsp),%ecx
 andl %eax,%edi
 xorl %ebx,%eax
 rorl $7,%ebp
 movdqa %xmm2,%xmm10
 movl %edx,%esi
 xorl %eax,%edi
 movdqa %xmm8,16(%rsp)
 roll $5,%edx
 addl %edi,%ecx
 xorl %ebp,%esi
 pslld $2,%xmm2
 xorl %eax,%ebp
 addl %edx,%ecx
 psrld $30,%xmm10
 addl 40(%rsp),%ebx
 andl %ebp,%esi
 xorl %eax,%ebp
 por %xmm10,%xmm2
 rorl $7,%edx
 movl %ecx,%edi
 xorl %ebp,%esi
 roll $5,%ecx
 pshufd $238,%xmm1,%xmm8
 addl %esi,%ebx
 xorl %edx,%edi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 44(%rsp),%eax
 andl %edx,%edi
 xorl %ebp,%edx
 rorl $7,%ecx
 movl %ebx,%esi
 xorl %edx,%edi
 roll $5,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 addl %ebx,%eax
 pxor %xmm7,%xmm3
 addl 48(%rsp),%ebp
 xorl %ecx,%esi
 punpcklqdq %xmm2,%xmm8
 movl %eax,%edi
 roll $5,%eax
 pxor %xmm4,%xmm3
 addl %esi,%ebp
 xorl %ecx,%edi
 movdqa %xmm9,%xmm10
 rorl $7,%ebx
 paddd %xmm2,%xmm9
 addl %eax,%ebp
 pxor %xmm8,%xmm3
 addl 52(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 roll $5,%ebp
 movdqa %xmm3,%xmm8
 addl %edi,%edx
 xorl %ebx,%esi
 movdqa %xmm9,32(%rsp)
 rorl $7,%eax
 addl %ebp,%edx
 addl 56(%rsp),%ecx
 pslld $2,%xmm3
 xorl %eax,%esi
 movl %edx,%edi
 psrld $30,%xmm8
 roll $5,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 rorl $7,%ebp
 por %xmm8,%xmm3
 addl %edx,%ecx
 addl 60(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 roll $5,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 rorl $7,%edx
 addl %ecx,%ebx
 addl 0(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 roll $5,%ebx
 paddd %xmm3,%xmm10
 addl %esi,%eax
 xorl %edx,%edi
 movdqa %xmm10,48(%rsp)
 rorl $7,%ecx
 addl %ebx,%eax
 addl 4(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 roll $5,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 rorl $7,%ebx
 addl %eax,%ebp
 addl 8(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 roll $5,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 rorl $7,%eax
 addl %ebp,%edx
 addl 12(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 roll $5,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 rorl $7,%ebp
 addl %edx,%ecx
 cmpq %r10,%r9
# WAS je .Ldone_ssse3
	je	.Ldone_ssse3_BCM_18
 movdqa 64(%r14),%xmm6
 movdqa -64(%r14),%xmm9
 movdqu 0(%r9),%xmm0
 movdqu 16(%r9),%xmm1
 movdqu 32(%r9),%xmm2
 movdqu 48(%r9),%xmm3
.byte 102,15,56,0,198
 addq $64,%r9
 addl 16(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
.byte 102,15,56,0,206
 roll $5,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 rorl $7,%edx
 paddd %xmm9,%xmm0
 addl %ecx,%ebx
 addl 20(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 movdqa %xmm0,0(%rsp)
 roll $5,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 rorl $7,%ecx
 psubd %xmm9,%xmm0
 addl %ebx,%eax
 addl 24(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 roll $5,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 rorl $7,%ebx
 addl %eax,%ebp
 addl 28(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 roll $5,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 rorl $7,%eax
 addl %ebp,%edx
 addl 32(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
.byte 102,15,56,0,214
 roll $5,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 rorl $7,%ebp
 paddd %xmm9,%xmm1
 addl %edx,%ecx
 addl 36(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 movdqa %xmm1,16(%rsp)
 roll $5,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 rorl $7,%edx
 psubd %xmm9,%xmm1
 addl %ecx,%ebx
 addl 40(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 roll $5,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 rorl $7,%ecx
 addl %ebx,%eax
 addl 44(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 roll $5,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 rorl $7,%ebx
 addl %eax,%ebp
 addl 48(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
.byte 102,15,56,0,222
 roll $5,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 rorl $7,%eax
 paddd %xmm9,%xmm2
 addl %ebp,%edx
 addl 52(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 movdqa %xmm2,32(%rsp)
 roll $5,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 rorl $7,%ebp
 psubd %xmm9,%xmm2
 addl %edx,%ecx
 addl 56(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 roll $5,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 rorl $7,%edx
 addl %ecx,%ebx
 addl 60(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 roll $5,%ebx
 addl %edi,%eax
 rorl $7,%ecx
 addl %ebx,%eax
 addl 0(%r8),%eax
 addl 4(%r8),%esi
 addl 8(%r8),%ecx
 addl 12(%r8),%edx
 movl %eax,0(%r8)
 addl 16(%r8),%ebp
 movl %esi,4(%r8)
 movl %esi,%ebx
 movl %ecx,8(%r8)
 movl %ecx,%edi
 movl %edx,12(%r8)
 xorl %edx,%edi
 movl %ebp,16(%r8)
 andl %edi,%esi
# WAS jmp .Loop_ssse3
	jmp	.Loop_ssse3_BCM_18

.align 16
.Ldone_ssse3_BCM_18:

 addl 16(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 roll $5,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 rorl $7,%edx
 addl %ecx,%ebx
 addl 20(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 roll $5,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 rorl $7,%ecx
 addl %ebx,%eax
 addl 24(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 roll $5,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 rorl $7,%ebx
 addl %eax,%ebp
 addl 28(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 roll $5,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 rorl $7,%eax
 addl %ebp,%edx
 addl 32(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
 roll $5,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 rorl $7,%ebp
 addl %edx,%ecx
 addl 36(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 roll $5,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 rorl $7,%edx
 addl %ecx,%ebx
 addl 40(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 roll $5,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 rorl $7,%ecx
 addl %ebx,%eax
 addl 44(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 roll $5,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 rorl $7,%ebx
 addl %eax,%ebp
 addl 48(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 roll $5,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 rorl $7,%eax
 addl %ebp,%edx
 addl 52(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 roll $5,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 rorl $7,%ebp
 addl %edx,%ecx
 addl 56(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 roll $5,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 rorl $7,%edx
 addl %ecx,%ebx
 addl 60(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 roll $5,%ebx
 addl %edi,%eax
 rorl $7,%ecx
 addl %ebx,%eax
 addl 0(%r8),%eax
 addl 4(%r8),%esi
 addl 8(%r8),%ecx
 movl %eax,0(%r8)
 addl 12(%r8),%edx
 movl %esi,4(%r8)
 addl 16(%r8),%ebp
 movl %ecx,8(%r8)
 movl %edx,12(%r8)
 movl %ebp,16(%r8)
 movq -40(%r11),%r14
.cfi_restore %r14
 movq -32(%r11),%r13
.cfi_restore %r13
 movq -24(%r11),%r12
.cfi_restore %r12
 movq -16(%r11),%rbp
.cfi_restore %rbp
 movq -8(%r11),%rbx
.cfi_restore %rbx
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_ssse3_BCM_18:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
.globl sha1_block_data_order_avx
.hidden sha1_block_data_order_avx
.type sha1_block_data_order_avx,@function
.align 16
.Lsha1_block_data_order_avx_local_target:
sha1_block_data_order_avx:
.cfi_startproc
endbr64
 movq %rsp,%r11
.cfi_def_cfa_register %r11
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 leaq -64(%rsp),%rsp
 vzeroupper
 andq $-64,%rsp
 movq %rdi,%r8
 movq %rsi,%r9
 movq %rdx,%r10

 shlq $6,%r10
 addq %r9,%r10
# WAS leaq K_XX_XX+64(%rip),%r14
	leaq	.LK_XX_XX_local_target+64(%rip), %r14

 movl 0(%r8),%eax
 movl 4(%r8),%ebx
 movl 8(%r8),%ecx
 movl 12(%r8),%edx
 movl %ebx,%esi
 movl 16(%r8),%ebp
 movl %ecx,%edi
 xorl %edx,%edi
 andl %edi,%esi

 vmovdqa 64(%r14),%xmm6
 vmovdqa -64(%r14),%xmm11
 vmovdqu 0(%r9),%xmm0
 vmovdqu 16(%r9),%xmm1
 vmovdqu 32(%r9),%xmm2
 vmovdqu 48(%r9),%xmm3
 vpshufb %xmm6,%xmm0,%xmm0
 addq $64,%r9
 vpshufb %xmm6,%xmm1,%xmm1
 vpshufb %xmm6,%xmm2,%xmm2
 vpshufb %xmm6,%xmm3,%xmm3
 vpaddd %xmm11,%xmm0,%xmm4
 vpaddd %xmm11,%xmm1,%xmm5
 vpaddd %xmm11,%xmm2,%xmm6
 vmovdqa %xmm4,0(%rsp)
 vmovdqa %xmm5,16(%rsp)
 vmovdqa %xmm6,32(%rsp)
# WAS jmp .Loop_avx
	jmp	.Loop_avx_BCM_18
.align 16
.Loop_avx_BCM_18:

 shrdl $2,%ebx,%ebx
 xorl %edx,%esi
 vpalignr $8,%xmm0,%xmm1,%xmm4
 movl %eax,%edi
 addl 0(%rsp),%ebp
 vpaddd %xmm3,%xmm11,%xmm9
 xorl %ecx,%ebx
 shldl $5,%eax,%eax
 vpsrldq $4,%xmm3,%xmm8
 addl %esi,%ebp
 andl %ebx,%edi
 vpxor %xmm0,%xmm4,%xmm4
 xorl %ecx,%ebx
 addl %eax,%ebp
 vpxor %xmm2,%xmm8,%xmm8
 shrdl $7,%eax,%eax
 xorl %ecx,%edi
 movl %ebp,%esi
 addl 4(%rsp),%edx
 vpxor %xmm8,%xmm4,%xmm4
 xorl %ebx,%eax
 shldl $5,%ebp,%ebp
 vmovdqa %xmm9,48(%rsp)
 addl %edi,%edx
 andl %eax,%esi
 vpsrld $31,%xmm4,%xmm8
 xorl %ebx,%eax
 addl %ebp,%edx
 shrdl $7,%ebp,%ebp
 xorl %ebx,%esi
 vpslldq $12,%xmm4,%xmm10
 vpaddd %xmm4,%xmm4,%xmm4
 movl %edx,%edi
 addl 8(%rsp),%ecx
 xorl %eax,%ebp
 shldl $5,%edx,%edx
 vpsrld $30,%xmm10,%xmm9
 vpor %xmm8,%xmm4,%xmm4
 addl %esi,%ecx
 andl %ebp,%edi
 xorl %eax,%ebp
 addl %edx,%ecx
 vpslld $2,%xmm10,%xmm10
 vpxor %xmm9,%xmm4,%xmm4
 shrdl $7,%edx,%edx
 xorl %eax,%edi
 movl %ecx,%esi
 addl 12(%rsp),%ebx
 vpxor %xmm10,%xmm4,%xmm4
 xorl %ebp,%edx
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 andl %edx,%esi
 xorl %ebp,%edx
 addl %ecx,%ebx
 shrdl $7,%ecx,%ecx
 xorl %ebp,%esi
 vpalignr $8,%xmm1,%xmm2,%xmm5
 movl %ebx,%edi
 addl 16(%rsp),%eax
 vpaddd %xmm4,%xmm11,%xmm9
 xorl %edx,%ecx
 shldl $5,%ebx,%ebx
 vpsrldq $4,%xmm4,%xmm8
 addl %esi,%eax
 andl %ecx,%edi
 vpxor %xmm1,%xmm5,%xmm5
 xorl %edx,%ecx
 addl %ebx,%eax
 vpxor %xmm3,%xmm8,%xmm8
 shrdl $7,%ebx,%ebx
 xorl %edx,%edi
 movl %eax,%esi
 addl 20(%rsp),%ebp
 vpxor %xmm8,%xmm5,%xmm5
 xorl %ecx,%ebx
 shldl $5,%eax,%eax
 vmovdqa %xmm9,0(%rsp)
 addl %edi,%ebp
 andl %ebx,%esi
 vpsrld $31,%xmm5,%xmm8
 xorl %ecx,%ebx
 addl %eax,%ebp
 shrdl $7,%eax,%eax
 xorl %ecx,%esi
 vpslldq $12,%xmm5,%xmm10
 vpaddd %xmm5,%xmm5,%xmm5
 movl %ebp,%edi
 addl 24(%rsp),%edx
 xorl %ebx,%eax
 shldl $5,%ebp,%ebp
 vpsrld $30,%xmm10,%xmm9
 vpor %xmm8,%xmm5,%xmm5
 addl %esi,%edx
 andl %eax,%edi
 xorl %ebx,%eax
 addl %ebp,%edx
 vpslld $2,%xmm10,%xmm10
 vpxor %xmm9,%xmm5,%xmm5
 shrdl $7,%ebp,%ebp
 xorl %ebx,%edi
 movl %edx,%esi
 addl 28(%rsp),%ecx
 vpxor %xmm10,%xmm5,%xmm5
 xorl %eax,%ebp
 shldl $5,%edx,%edx
 vmovdqa -32(%r14),%xmm11
 addl %edi,%ecx
 andl %ebp,%esi
 xorl %eax,%ebp
 addl %edx,%ecx
 shrdl $7,%edx,%edx
 xorl %eax,%esi
 vpalignr $8,%xmm2,%xmm3,%xmm6
 movl %ecx,%edi
 addl 32(%rsp),%ebx
 vpaddd %xmm5,%xmm11,%xmm9
 xorl %ebp,%edx
 shldl $5,%ecx,%ecx
 vpsrldq $4,%xmm5,%xmm8
 addl %esi,%ebx
 andl %edx,%edi
 vpxor %xmm2,%xmm6,%xmm6
 xorl %ebp,%edx
 addl %ecx,%ebx
 vpxor %xmm4,%xmm8,%xmm8
 shrdl $7,%ecx,%ecx
 xorl %ebp,%edi
 movl %ebx,%esi
 addl 36(%rsp),%eax
 vpxor %xmm8,%xmm6,%xmm6
 xorl %edx,%ecx
 shldl $5,%ebx,%ebx
 vmovdqa %xmm9,16(%rsp)
 addl %edi,%eax
 andl %ecx,%esi
 vpsrld $31,%xmm6,%xmm8
 xorl %edx,%ecx
 addl %ebx,%eax
 shrdl $7,%ebx,%ebx
 xorl %edx,%esi
 vpslldq $12,%xmm6,%xmm10
 vpaddd %xmm6,%xmm6,%xmm6
 movl %eax,%edi
 addl 40(%rsp),%ebp
 xorl %ecx,%ebx
 shldl $5,%eax,%eax
 vpsrld $30,%xmm10,%xmm9
 vpor %xmm8,%xmm6,%xmm6
 addl %esi,%ebp
 andl %ebx,%edi
 xorl %ecx,%ebx
 addl %eax,%ebp
 vpslld $2,%xmm10,%xmm10
 vpxor %xmm9,%xmm6,%xmm6
 shrdl $7,%eax,%eax
 xorl %ecx,%edi
 movl %ebp,%esi
 addl 44(%rsp),%edx
 vpxor %xmm10,%xmm6,%xmm6
 xorl %ebx,%eax
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 andl %eax,%esi
 xorl %ebx,%eax
 addl %ebp,%edx
 shrdl $7,%ebp,%ebp
 xorl %ebx,%esi
 vpalignr $8,%xmm3,%xmm4,%xmm7
 movl %edx,%edi
 addl 48(%rsp),%ecx
 vpaddd %xmm6,%xmm11,%xmm9
 xorl %eax,%ebp
 shldl $5,%edx,%edx
 vpsrldq $4,%xmm6,%xmm8
 addl %esi,%ecx
 andl %ebp,%edi
 vpxor %xmm3,%xmm7,%xmm7
 xorl %eax,%ebp
 addl %edx,%ecx
 vpxor %xmm5,%xmm8,%xmm8
 shrdl $7,%edx,%edx
 xorl %eax,%edi
 movl %ecx,%esi
 addl 52(%rsp),%ebx
 vpxor %xmm8,%xmm7,%xmm7
 xorl %ebp,%edx
 shldl $5,%ecx,%ecx
 vmovdqa %xmm9,32(%rsp)
 addl %edi,%ebx
 andl %edx,%esi
 vpsrld $31,%xmm7,%xmm8
 xorl %ebp,%edx
 addl %ecx,%ebx
 shrdl $7,%ecx,%ecx
 xorl %ebp,%esi
 vpslldq $12,%xmm7,%xmm10
 vpaddd %xmm7,%xmm7,%xmm7
 movl %ebx,%edi
 addl 56(%rsp),%eax
 xorl %edx,%ecx
 shldl $5,%ebx,%ebx
 vpsrld $30,%xmm10,%xmm9
 vpor %xmm8,%xmm7,%xmm7
 addl %esi,%eax
 andl %ecx,%edi
 xorl %edx,%ecx
 addl %ebx,%eax
 vpslld $2,%xmm10,%xmm10
 vpxor %xmm9,%xmm7,%xmm7
 shrdl $7,%ebx,%ebx
 xorl %edx,%edi
 movl %eax,%esi
 addl 60(%rsp),%ebp
 vpxor %xmm10,%xmm7,%xmm7
 xorl %ecx,%ebx
 shldl $5,%eax,%eax
 addl %edi,%ebp
 andl %ebx,%esi
 xorl %ecx,%ebx
 addl %eax,%ebp
 vpalignr $8,%xmm6,%xmm7,%xmm8
 vpxor %xmm4,%xmm0,%xmm0
 shrdl $7,%eax,%eax
 xorl %ecx,%esi
 movl %ebp,%edi
 addl 0(%rsp),%edx
 vpxor %xmm1,%xmm0,%xmm0
 xorl %ebx,%eax
 shldl $5,%ebp,%ebp
 vpaddd %xmm7,%xmm11,%xmm9
 addl %esi,%edx
 andl %eax,%edi
 vpxor %xmm8,%xmm0,%xmm0
 xorl %ebx,%eax
 addl %ebp,%edx
 shrdl $7,%ebp,%ebp
 xorl %ebx,%edi
 vpsrld $30,%xmm0,%xmm8
 vmovdqa %xmm9,48(%rsp)
 movl %edx,%esi
 addl 4(%rsp),%ecx
 xorl %eax,%ebp
 shldl $5,%edx,%edx
 vpslld $2,%xmm0,%xmm0
 addl %edi,%ecx
 andl %ebp,%esi
 xorl %eax,%ebp
 addl %edx,%ecx
 shrdl $7,%edx,%edx
 xorl %eax,%esi
 movl %ecx,%edi
 addl 8(%rsp),%ebx
 vpor %xmm8,%xmm0,%xmm0
 xorl %ebp,%edx
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 andl %edx,%edi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 12(%rsp),%eax
 xorl %ebp,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 vpalignr $8,%xmm7,%xmm0,%xmm8
 vpxor %xmm5,%xmm1,%xmm1
 addl 16(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 shldl $5,%eax,%eax
 vpxor %xmm2,%xmm1,%xmm1
 addl %esi,%ebp
 xorl %ecx,%edi
 vpaddd %xmm0,%xmm11,%xmm9
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 vpxor %xmm8,%xmm1,%xmm1
 addl 20(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 shldl $5,%ebp,%ebp
 vpsrld $30,%xmm1,%xmm8
 vmovdqa %xmm9,0(%rsp)
 addl %edi,%edx
 xorl %ebx,%esi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vpslld $2,%xmm1,%xmm1
 addl 24(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
 shldl $5,%edx,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vpor %xmm8,%xmm1,%xmm1
 addl 28(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 vpalignr $8,%xmm0,%xmm1,%xmm8
 vpxor %xmm6,%xmm2,%xmm2
 addl 32(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 shldl $5,%ebx,%ebx
 vpxor %xmm3,%xmm2,%xmm2
 addl %esi,%eax
 xorl %edx,%edi
 vpaddd %xmm1,%xmm11,%xmm9
 vmovdqa 0(%r14),%xmm11
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 vpxor %xmm8,%xmm2,%xmm2
 addl 36(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 shldl $5,%eax,%eax
 vpsrld $30,%xmm2,%xmm8
 vmovdqa %xmm9,16(%rsp)
 addl %edi,%ebp
 xorl %ecx,%esi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 vpslld $2,%xmm2,%xmm2
 addl 40(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 shldl $5,%ebp,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vpor %xmm8,%xmm2,%xmm2
 addl 44(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vpalignr $8,%xmm1,%xmm2,%xmm8
 vpxor %xmm7,%xmm3,%xmm3
 addl 48(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 vpxor %xmm4,%xmm3,%xmm3
 addl %esi,%ebx
 xorl %ebp,%edi
 vpaddd %xmm2,%xmm11,%xmm9
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 vpxor %xmm8,%xmm3,%xmm3
 addl 52(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 vpsrld $30,%xmm3,%xmm8
 vmovdqa %xmm9,32(%rsp)
 addl %edi,%eax
 xorl %edx,%esi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 vpslld $2,%xmm3,%xmm3
 addl 56(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 shldl $5,%eax,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 vpor %xmm8,%xmm3,%xmm3
 addl 60(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vpalignr $8,%xmm2,%xmm3,%xmm8
 vpxor %xmm0,%xmm4,%xmm4
 addl 0(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
 shldl $5,%edx,%edx
 vpxor %xmm5,%xmm4,%xmm4
 addl %esi,%ecx
 xorl %eax,%edi
 vpaddd %xmm3,%xmm11,%xmm9
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vpxor %xmm8,%xmm4,%xmm4
 addl 4(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 shldl $5,%ecx,%ecx
 vpsrld $30,%xmm4,%xmm8
 vmovdqa %xmm9,48(%rsp)
 addl %edi,%ebx
 xorl %ebp,%esi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 vpslld $2,%xmm4,%xmm4
 addl 8(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 vpor %xmm8,%xmm4,%xmm4
 addl 12(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 vpalignr $8,%xmm3,%xmm4,%xmm8
 vpxor %xmm1,%xmm5,%xmm5
 addl 16(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 shldl $5,%ebp,%ebp
 vpxor %xmm6,%xmm5,%xmm5
 addl %esi,%edx
 xorl %ebx,%edi
 vpaddd %xmm4,%xmm11,%xmm9
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vpxor %xmm8,%xmm5,%xmm5
 addl 20(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 shldl $5,%edx,%edx
 vpsrld $30,%xmm5,%xmm8
 vmovdqa %xmm9,0(%rsp)
 addl %edi,%ecx
 xorl %eax,%esi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vpslld $2,%xmm5,%xmm5
 addl 24(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 vpor %xmm8,%xmm5,%xmm5
 addl 28(%rsp),%eax
 shrdl $7,%ecx,%ecx
 movl %ebx,%esi
 xorl %edx,%edi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %ecx,%esi
 xorl %edx,%ecx
 addl %ebx,%eax
 vpalignr $8,%xmm4,%xmm5,%xmm8
 vpxor %xmm2,%xmm6,%xmm6
 addl 32(%rsp),%ebp
 andl %ecx,%esi
 xorl %edx,%ecx
 shrdl $7,%ebx,%ebx
 vpxor %xmm7,%xmm6,%xmm6
 movl %eax,%edi
 xorl %ecx,%esi
 vpaddd %xmm5,%xmm11,%xmm9
 shldl $5,%eax,%eax
 addl %esi,%ebp
 vpxor %xmm8,%xmm6,%xmm6
 xorl %ebx,%edi
 xorl %ecx,%ebx
 addl %eax,%ebp
 addl 36(%rsp),%edx
 vpsrld $30,%xmm6,%xmm8
 vmovdqa %xmm9,16(%rsp)
 andl %ebx,%edi
 xorl %ecx,%ebx
 shrdl $7,%eax,%eax
 movl %ebp,%esi
 vpslld $2,%xmm6,%xmm6
 xorl %ebx,%edi
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 xorl %eax,%esi
 xorl %ebx,%eax
 addl %ebp,%edx
 addl 40(%rsp),%ecx
 andl %eax,%esi
 vpor %xmm8,%xmm6,%xmm6
 xorl %ebx,%eax
 shrdl $7,%ebp,%ebp
 movl %edx,%edi
 xorl %eax,%esi
 shldl $5,%edx,%edx
 addl %esi,%ecx
 xorl %ebp,%edi
 xorl %eax,%ebp
 addl %edx,%ecx
 addl 44(%rsp),%ebx
 andl %ebp,%edi
 xorl %eax,%ebp
 shrdl $7,%edx,%edx
 movl %ecx,%esi
 xorl %ebp,%edi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %edx,%esi
 xorl %ebp,%edx
 addl %ecx,%ebx
 vpalignr $8,%xmm5,%xmm6,%xmm8
 vpxor %xmm3,%xmm7,%xmm7
 addl 48(%rsp),%eax
 andl %edx,%esi
 xorl %ebp,%edx
 shrdl $7,%ecx,%ecx
 vpxor %xmm0,%xmm7,%xmm7
 movl %ebx,%edi
 xorl %edx,%esi
 vpaddd %xmm6,%xmm11,%xmm9
 vmovdqa 32(%r14),%xmm11
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 vpxor %xmm8,%xmm7,%xmm7
 xorl %ecx,%edi
 xorl %edx,%ecx
 addl %ebx,%eax
 addl 52(%rsp),%ebp
 vpsrld $30,%xmm7,%xmm8
 vmovdqa %xmm9,32(%rsp)
 andl %ecx,%edi
 xorl %edx,%ecx
 shrdl $7,%ebx,%ebx
 movl %eax,%esi
 vpslld $2,%xmm7,%xmm7
 xorl %ecx,%edi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ebx,%esi
 xorl %ecx,%ebx
 addl %eax,%ebp
 addl 56(%rsp),%edx
 andl %ebx,%esi
 vpor %xmm8,%xmm7,%xmm7
 xorl %ecx,%ebx
 shrdl $7,%eax,%eax
 movl %ebp,%edi
 xorl %ebx,%esi
 shldl $5,%ebp,%ebp
 addl %esi,%edx
 xorl %eax,%edi
 xorl %ebx,%eax
 addl %ebp,%edx
 addl 60(%rsp),%ecx
 andl %eax,%edi
 xorl %ebx,%eax
 shrdl $7,%ebp,%ebp
 movl %edx,%esi
 xorl %eax,%edi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %ebp,%esi
 xorl %eax,%ebp
 addl %edx,%ecx
 vpalignr $8,%xmm6,%xmm7,%xmm8
 vpxor %xmm4,%xmm0,%xmm0
 addl 0(%rsp),%ebx
 andl %ebp,%esi
 xorl %eax,%ebp
 shrdl $7,%edx,%edx
 vpxor %xmm1,%xmm0,%xmm0
 movl %ecx,%edi
 xorl %ebp,%esi
 vpaddd %xmm7,%xmm11,%xmm9
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 vpxor %xmm8,%xmm0,%xmm0
 xorl %edx,%edi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 4(%rsp),%eax
 vpsrld $30,%xmm0,%xmm8
 vmovdqa %xmm9,48(%rsp)
 andl %edx,%edi
 xorl %ebp,%edx
 shrdl $7,%ecx,%ecx
 movl %ebx,%esi
 vpslld $2,%xmm0,%xmm0
 xorl %edx,%edi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %ecx,%esi
 xorl %edx,%ecx
 addl %ebx,%eax
 addl 8(%rsp),%ebp
 andl %ecx,%esi
 vpor %xmm8,%xmm0,%xmm0
 xorl %edx,%ecx
 shrdl $7,%ebx,%ebx
 movl %eax,%edi
 xorl %ecx,%esi
 shldl $5,%eax,%eax
 addl %esi,%ebp
 xorl %ebx,%edi
 xorl %ecx,%ebx
 addl %eax,%ebp
 addl 12(%rsp),%edx
 andl %ebx,%edi
 xorl %ecx,%ebx
 shrdl $7,%eax,%eax
 movl %ebp,%esi
 xorl %ebx,%edi
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 xorl %eax,%esi
 xorl %ebx,%eax
 addl %ebp,%edx
 vpalignr $8,%xmm7,%xmm0,%xmm8
 vpxor %xmm5,%xmm1,%xmm1
 addl 16(%rsp),%ecx
 andl %eax,%esi
 xorl %ebx,%eax
 shrdl $7,%ebp,%ebp
 vpxor %xmm2,%xmm1,%xmm1
 movl %edx,%edi
 xorl %eax,%esi
 vpaddd %xmm0,%xmm11,%xmm9
 shldl $5,%edx,%edx
 addl %esi,%ecx
 vpxor %xmm8,%xmm1,%xmm1
 xorl %ebp,%edi
 xorl %eax,%ebp
 addl %edx,%ecx
 addl 20(%rsp),%ebx
 vpsrld $30,%xmm1,%xmm8
 vmovdqa %xmm9,0(%rsp)
 andl %ebp,%edi
 xorl %eax,%ebp
 shrdl $7,%edx,%edx
 movl %ecx,%esi
 vpslld $2,%xmm1,%xmm1
 xorl %ebp,%edi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %edx,%esi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 24(%rsp),%eax
 andl %edx,%esi
 vpor %xmm8,%xmm1,%xmm1
 xorl %ebp,%edx
 shrdl $7,%ecx,%ecx
 movl %ebx,%edi
 xorl %edx,%esi
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 xorl %ecx,%edi
 xorl %edx,%ecx
 addl %ebx,%eax
 addl 28(%rsp),%ebp
 andl %ecx,%edi
 xorl %edx,%ecx
 shrdl $7,%ebx,%ebx
 movl %eax,%esi
 xorl %ecx,%edi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ebx,%esi
 xorl %ecx,%ebx
 addl %eax,%ebp
 vpalignr $8,%xmm0,%xmm1,%xmm8
 vpxor %xmm6,%xmm2,%xmm2
 addl 32(%rsp),%edx
 andl %ebx,%esi
 xorl %ecx,%ebx
 shrdl $7,%eax,%eax
 vpxor %xmm3,%xmm2,%xmm2
 movl %ebp,%edi
 xorl %ebx,%esi
 vpaddd %xmm1,%xmm11,%xmm9
 shldl $5,%ebp,%ebp
 addl %esi,%edx
 vpxor %xmm8,%xmm2,%xmm2
 xorl %eax,%edi
 xorl %ebx,%eax
 addl %ebp,%edx
 addl 36(%rsp),%ecx
 vpsrld $30,%xmm2,%xmm8
 vmovdqa %xmm9,16(%rsp)
 andl %eax,%edi
 xorl %ebx,%eax
 shrdl $7,%ebp,%ebp
 movl %edx,%esi
 vpslld $2,%xmm2,%xmm2
 xorl %eax,%edi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %ebp,%esi
 xorl %eax,%ebp
 addl %edx,%ecx
 addl 40(%rsp),%ebx
 andl %ebp,%esi
 vpor %xmm8,%xmm2,%xmm2
 xorl %eax,%ebp
 shrdl $7,%edx,%edx
 movl %ecx,%edi
 xorl %ebp,%esi
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 xorl %edx,%edi
 xorl %ebp,%edx
 addl %ecx,%ebx
 addl 44(%rsp),%eax
 andl %edx,%edi
 xorl %ebp,%edx
 shrdl $7,%ecx,%ecx
 movl %ebx,%esi
 xorl %edx,%edi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 addl %ebx,%eax
 vpalignr $8,%xmm1,%xmm2,%xmm8
 vpxor %xmm7,%xmm3,%xmm3
 addl 48(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 shldl $5,%eax,%eax
 vpxor %xmm4,%xmm3,%xmm3
 addl %esi,%ebp
 xorl %ecx,%edi
 vpaddd %xmm2,%xmm11,%xmm9
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 vpxor %xmm8,%xmm3,%xmm3
 addl 52(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 shldl $5,%ebp,%ebp
 vpsrld $30,%xmm3,%xmm8
 vmovdqa %xmm9,32(%rsp)
 addl %edi,%edx
 xorl %ebx,%esi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vpslld $2,%xmm3,%xmm3
 addl 56(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
 shldl $5,%edx,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vpor %xmm8,%xmm3,%xmm3
 addl 60(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 0(%rsp),%eax
 vpaddd %xmm3,%xmm11,%xmm9
 xorl %edx,%esi
 movl %ebx,%edi
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 vmovdqa %xmm9,48(%rsp)
 xorl %edx,%edi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 4(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 addl 8(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 shldl $5,%ebp,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 addl 12(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 cmpq %r10,%r9
# WAS je .Ldone_avx
	je	.Ldone_avx_BCM_18
 vmovdqa 64(%r14),%xmm6
 vmovdqa -64(%r14),%xmm11
 vmovdqu 0(%r9),%xmm0
 vmovdqu 16(%r9),%xmm1
 vmovdqu 32(%r9),%xmm2
 vmovdqu 48(%r9),%xmm3
 vpshufb %xmm6,%xmm0,%xmm0
 addq $64,%r9
 addl 16(%rsp),%ebx
 xorl %ebp,%esi
 vpshufb %xmm6,%xmm1,%xmm1
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 vpaddd %xmm11,%xmm0,%xmm4
 addl %esi,%ebx
 xorl %ebp,%edi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 vmovdqa %xmm4,0(%rsp)
 addl 20(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 24(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 shldl $5,%eax,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 addl 28(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 addl 32(%rsp),%ecx
 xorl %eax,%esi
 vpshufb %xmm6,%xmm2,%xmm2
 movl %edx,%edi
 shldl $5,%edx,%edx
 vpaddd %xmm11,%xmm1,%xmm5
 addl %esi,%ecx
 xorl %eax,%edi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 vmovdqa %xmm5,16(%rsp)
 addl 36(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 40(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 44(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 addl 48(%rsp),%edx
 xorl %ebx,%esi
 vpshufb %xmm6,%xmm3,%xmm3
 movl %ebp,%edi
 shldl $5,%ebp,%ebp
 vpaddd %xmm11,%xmm2,%xmm6
 addl %esi,%edx
 xorl %ebx,%edi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 vmovdqa %xmm6,32(%rsp)
 addl 52(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 addl 56(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 60(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 0(%r8),%eax
 addl 4(%r8),%esi
 addl 8(%r8),%ecx
 addl 12(%r8),%edx
 movl %eax,0(%r8)
 addl 16(%r8),%ebp
 movl %esi,4(%r8)
 movl %esi,%ebx
 movl %ecx,8(%r8)
 movl %ecx,%edi
 movl %edx,12(%r8)
 xorl %edx,%edi
 movl %ebp,16(%r8)
 andl %edi,%esi
# WAS jmp .Loop_avx
	jmp	.Loop_avx_BCM_18

.align 16
.Ldone_avx_BCM_18:

 addl 16(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 20(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 xorl %edx,%esi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 24(%rsp),%ebp
 xorl %ecx,%esi
 movl %eax,%edi
 shldl $5,%eax,%eax
 addl %esi,%ebp
 xorl %ecx,%edi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 addl 28(%rsp),%edx
 xorl %ebx,%edi
 movl %ebp,%esi
 shldl $5,%ebp,%ebp
 addl %edi,%edx
 xorl %ebx,%esi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 addl 32(%rsp),%ecx
 xorl %eax,%esi
 movl %edx,%edi
 shldl $5,%edx,%edx
 addl %esi,%ecx
 xorl %eax,%edi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 addl 36(%rsp),%ebx
 xorl %ebp,%edi
 movl %ecx,%esi
 shldl $5,%ecx,%ecx
 addl %edi,%ebx
 xorl %ebp,%esi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 40(%rsp),%eax
 xorl %edx,%esi
 movl %ebx,%edi
 shldl $5,%ebx,%ebx
 addl %esi,%eax
 xorl %edx,%edi
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 addl 44(%rsp),%ebp
 xorl %ecx,%edi
 movl %eax,%esi
 shldl $5,%eax,%eax
 addl %edi,%ebp
 xorl %ecx,%esi
 shrdl $7,%ebx,%ebx
 addl %eax,%ebp
 addl 48(%rsp),%edx
 xorl %ebx,%esi
 movl %ebp,%edi
 shldl $5,%ebp,%ebp
 addl %esi,%edx
 xorl %ebx,%edi
 shrdl $7,%eax,%eax
 addl %ebp,%edx
 addl 52(%rsp),%ecx
 xorl %eax,%edi
 movl %edx,%esi
 shldl $5,%edx,%edx
 addl %edi,%ecx
 xorl %eax,%esi
 shrdl $7,%ebp,%ebp
 addl %edx,%ecx
 addl 56(%rsp),%ebx
 xorl %ebp,%esi
 movl %ecx,%edi
 shldl $5,%ecx,%ecx
 addl %esi,%ebx
 xorl %ebp,%edi
 shrdl $7,%edx,%edx
 addl %ecx,%ebx
 addl 60(%rsp),%eax
 xorl %edx,%edi
 movl %ebx,%esi
 shldl $5,%ebx,%ebx
 addl %edi,%eax
 shrdl $7,%ecx,%ecx
 addl %ebx,%eax
 vzeroupper

 addl 0(%r8),%eax
 addl 4(%r8),%esi
 addl 8(%r8),%ecx
 movl %eax,0(%r8)
 addl 12(%r8),%edx
 movl %esi,4(%r8)
 addl 16(%r8),%ebp
 movl %ecx,8(%r8)
 movl %edx,12(%r8)
 movl %ebp,16(%r8)
 movq -40(%r11),%r14
.cfi_restore %r14
 movq -32(%r11),%r13
.cfi_restore %r13
 movq -24(%r11),%r12
.cfi_restore %r12
 movq -16(%r11),%rbp
.cfi_restore %rbp
 movq -8(%r11),%rbx
.cfi_restore %rbx
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_avx_BCM_18:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha1_block_data_order_avx,.-sha1_block_data_order_avx
.globl sha1_block_data_order_avx2
.hidden sha1_block_data_order_avx2
.type sha1_block_data_order_avx2,@function
.align 16
.Lsha1_block_data_order_avx2_local_target:
sha1_block_data_order_avx2:
.cfi_startproc
endbr64
 movq %rsp,%r11
.cfi_def_cfa_register %r11
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 vzeroupper
 movq %rdi,%r8
 movq %rsi,%r9
 movq %rdx,%r10

 leaq -640(%rsp),%rsp
 shlq $6,%r10
 leaq 64(%r9),%r13
 andq $-128,%rsp
 addq %r9,%r10
# WAS leaq K_XX_XX+64(%rip),%r14
	leaq	.LK_XX_XX_local_target+64(%rip), %r14

 movl 0(%r8),%eax
 cmpq %r10,%r13
 cmovaeq %r9,%r13
 movl 4(%r8),%ebp
 movl 8(%r8),%ecx
 movl 12(%r8),%edx
 movl 16(%r8),%esi
 vmovdqu 64(%r14),%ymm6

 vmovdqu (%r9),%xmm0
 vmovdqu 16(%r9),%xmm1
 vmovdqu 32(%r9),%xmm2
 vmovdqu 48(%r9),%xmm3
 leaq 64(%r9),%r9
 vinserti128 $1,(%r13),%ymm0,%ymm0
 vinserti128 $1,16(%r13),%ymm1,%ymm1
 vpshufb %ymm6,%ymm0,%ymm0
 vinserti128 $1,32(%r13),%ymm2,%ymm2
 vpshufb %ymm6,%ymm1,%ymm1
 vinserti128 $1,48(%r13),%ymm3,%ymm3
 vpshufb %ymm6,%ymm2,%ymm2
 vmovdqu -64(%r14),%ymm11
 vpshufb %ymm6,%ymm3,%ymm3

 vpaddd %ymm11,%ymm0,%ymm4
 vpaddd %ymm11,%ymm1,%ymm5
 vmovdqu %ymm4,0(%rsp)
 vpaddd %ymm11,%ymm2,%ymm6
 vmovdqu %ymm5,32(%rsp)
 vpaddd %ymm11,%ymm3,%ymm7
 vmovdqu %ymm6,64(%rsp)
 vmovdqu %ymm7,96(%rsp)
 vpalignr $8,%ymm0,%ymm1,%ymm4
 vpsrldq $4,%ymm3,%ymm8
 vpxor %ymm0,%ymm4,%ymm4
 vpxor %ymm2,%ymm8,%ymm8
 vpxor %ymm8,%ymm4,%ymm4
 vpsrld $31,%ymm4,%ymm8
 vpslldq $12,%ymm4,%ymm10
 vpaddd %ymm4,%ymm4,%ymm4
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm4,%ymm4
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm4,%ymm4
 vpxor %ymm10,%ymm4,%ymm4
 vpaddd %ymm11,%ymm4,%ymm9
 vmovdqu %ymm9,128(%rsp)
 vpalignr $8,%ymm1,%ymm2,%ymm5
 vpsrldq $4,%ymm4,%ymm8
 vpxor %ymm1,%ymm5,%ymm5
 vpxor %ymm3,%ymm8,%ymm8
 vpxor %ymm8,%ymm5,%ymm5
 vpsrld $31,%ymm5,%ymm8
 vmovdqu -32(%r14),%ymm11
 vpslldq $12,%ymm5,%ymm10
 vpaddd %ymm5,%ymm5,%ymm5
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm5,%ymm5
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm5,%ymm5
 vpxor %ymm10,%ymm5,%ymm5
 vpaddd %ymm11,%ymm5,%ymm9
 vmovdqu %ymm9,160(%rsp)
 vpalignr $8,%ymm2,%ymm3,%ymm6
 vpsrldq $4,%ymm5,%ymm8
 vpxor %ymm2,%ymm6,%ymm6
 vpxor %ymm4,%ymm8,%ymm8
 vpxor %ymm8,%ymm6,%ymm6
 vpsrld $31,%ymm6,%ymm8
 vpslldq $12,%ymm6,%ymm10
 vpaddd %ymm6,%ymm6,%ymm6
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm6,%ymm6
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm6,%ymm6
 vpxor %ymm10,%ymm6,%ymm6
 vpaddd %ymm11,%ymm6,%ymm9
 vmovdqu %ymm9,192(%rsp)
 vpalignr $8,%ymm3,%ymm4,%ymm7
 vpsrldq $4,%ymm6,%ymm8
 vpxor %ymm3,%ymm7,%ymm7
 vpxor %ymm5,%ymm8,%ymm8
 vpxor %ymm8,%ymm7,%ymm7
 vpsrld $31,%ymm7,%ymm8
 vpslldq $12,%ymm7,%ymm10
 vpaddd %ymm7,%ymm7,%ymm7
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm7,%ymm7
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm7,%ymm7
 vpxor %ymm10,%ymm7,%ymm7
 vpaddd %ymm11,%ymm7,%ymm9
 vmovdqu %ymm9,224(%rsp)
 leaq 128(%rsp),%r13
# WAS jmp .Loop_avx2
	jmp	.Loop_avx2_BCM_18
.align 32
.Loop_avx2_BCM_18:

 rorxl $2,%ebp,%ebx
 andnl %edx,%ebp,%edi
 andl %ecx,%ebp
 xorl %edi,%ebp
# WAS jmp .Lalign32_1
	jmp	.Lalign32_1_BCM_18
.align 32
.Lalign32_1_BCM_18:

 vpalignr $8,%ymm6,%ymm7,%ymm8
 vpxor %ymm4,%ymm0,%ymm0
 addl -128(%r13),%esi
 andnl %ecx,%eax,%edi
 vpxor %ymm1,%ymm0,%ymm0
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 vpxor %ymm8,%ymm0,%ymm0
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 vpsrld $30,%ymm0,%ymm8
 vpslld $2,%ymm0,%ymm0
 addl -124(%r13),%edx
 andnl %ebx,%esi,%edi
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 vpor %ymm8,%ymm0,%ymm0
 addl %r12d,%edx
 xorl %edi,%esi
 addl -120(%r13),%ecx
 andnl %ebp,%edx,%edi
 vpaddd %ymm11,%ymm0,%ymm9
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 vmovdqu %ymm9,256(%rsp)
 addl %r12d,%ecx
 xorl %edi,%edx
 addl -116(%r13),%ebx
 andnl %eax,%ecx,%edi
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 addl -96(%r13),%ebp
 andnl %esi,%ebx,%edi
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 andl %edx,%ebx
 addl %r12d,%ebp
 xorl %edi,%ebx
 vpalignr $8,%ymm7,%ymm0,%ymm8
 vpxor %ymm5,%ymm1,%ymm1
 addl -92(%r13),%eax
 andnl %edx,%ebp,%edi
 vpxor %ymm2,%ymm1,%ymm1
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 vpxor %ymm8,%ymm1,%ymm1
 andl %ecx,%ebp
 addl %r12d,%eax
 xorl %edi,%ebp
 vpsrld $30,%ymm1,%ymm8
 vpslld $2,%ymm1,%ymm1
 addl -88(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 vpor %ymm8,%ymm1,%ymm1
 addl %r12d,%esi
 xorl %edi,%eax
 addl -84(%r13),%edx
 andnl %ebx,%esi,%edi
 vpaddd %ymm11,%ymm1,%ymm9
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 vmovdqu %ymm9,288(%rsp)
 addl %r12d,%edx
 xorl %edi,%esi
 addl -64(%r13),%ecx
 andnl %ebp,%edx,%edi
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 addl %r12d,%ecx
 xorl %edi,%edx
 addl -60(%r13),%ebx
 andnl %eax,%ecx,%edi
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 vpalignr $8,%ymm0,%ymm1,%ymm8
 vpxor %ymm6,%ymm2,%ymm2
 addl -56(%r13),%ebp
 andnl %esi,%ebx,%edi
 vpxor %ymm3,%ymm2,%ymm2
 vmovdqu 0(%r14),%ymm11
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 vpxor %ymm8,%ymm2,%ymm2
 andl %edx,%ebx
 addl %r12d,%ebp
 xorl %edi,%ebx
 vpsrld $30,%ymm2,%ymm8
 vpslld $2,%ymm2,%ymm2
 addl -52(%r13),%eax
 andnl %edx,%ebp,%edi
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 andl %ecx,%ebp
 vpor %ymm8,%ymm2,%ymm2
 addl %r12d,%eax
 xorl %edi,%ebp
 addl -32(%r13),%esi
 andnl %ecx,%eax,%edi
 vpaddd %ymm11,%ymm2,%ymm9
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 vmovdqu %ymm9,320(%rsp)
 addl %r12d,%esi
 xorl %edi,%eax
 addl -28(%r13),%edx
 andnl %ebx,%esi,%edi
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 addl %r12d,%edx
 xorl %edi,%esi
 addl -24(%r13),%ecx
 andnl %ebp,%edx,%edi
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 addl %r12d,%ecx
 xorl %edi,%edx
 vpalignr $8,%ymm1,%ymm2,%ymm8
 vpxor %ymm7,%ymm3,%ymm3
 addl -20(%r13),%ebx
 andnl %eax,%ecx,%edi
 vpxor %ymm4,%ymm3,%ymm3
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 vpxor %ymm8,%ymm3,%ymm3
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 vpsrld $30,%ymm3,%ymm8
 vpslld $2,%ymm3,%ymm3
 addl 0(%r13),%ebp
 andnl %esi,%ebx,%edi
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 andl %edx,%ebx
 vpor %ymm8,%ymm3,%ymm3
 addl %r12d,%ebp
 xorl %edi,%ebx
 addl 4(%r13),%eax
 andnl %edx,%ebp,%edi
 vpaddd %ymm11,%ymm3,%ymm9
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 andl %ecx,%ebp
 vmovdqu %ymm9,352(%rsp)
 addl %r12d,%eax
 xorl %edi,%ebp
 addl 8(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 addl 12(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 vpalignr $8,%ymm2,%ymm3,%ymm8
 vpxor %ymm0,%ymm4,%ymm4
 addl 32(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 vpxor %ymm5,%ymm4,%ymm4
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 vpxor %ymm8,%ymm4,%ymm4
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl 36(%r13),%ebx
 vpsrld $30,%ymm4,%ymm8
 vpslld $2,%ymm4,%ymm4
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 vpor %ymm8,%ymm4,%ymm4
 addl 40(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 vpaddd %ymm11,%ymm4,%ymm9
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl 44(%r13),%eax
 vmovdqu %ymm9,384(%rsp)
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl 64(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 vpalignr $8,%ymm3,%ymm4,%ymm8
 vpxor %ymm1,%ymm5,%ymm5
 addl 68(%r13),%edx
 leal (%rdx,%rax,1),%edx
 vpxor %ymm6,%ymm5,%ymm5
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 vpxor %ymm8,%ymm5,%ymm5
 addl %r12d,%edx
 xorl %ebx,%esi
 addl 72(%r13),%ecx
 vpsrld $30,%ymm5,%ymm8
 vpslld $2,%ymm5,%ymm5
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 vpor %ymm8,%ymm5,%ymm5
 addl 76(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 vpaddd %ymm11,%ymm5,%ymm9
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl 96(%r13),%ebp
 vmovdqu %ymm9,416(%rsp)
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl 100(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 vpalignr $8,%ymm4,%ymm5,%ymm8
 vpxor %ymm2,%ymm6,%ymm6
 addl 104(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 vpxor %ymm7,%ymm6,%ymm6
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 vpxor %ymm8,%ymm6,%ymm6
 addl %r12d,%esi
 xorl %ecx,%eax
 addl 108(%r13),%edx
 leaq 256(%r13),%r13
 vpsrld $30,%ymm6,%ymm8
 vpslld $2,%ymm6,%ymm6
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 vpor %ymm8,%ymm6,%ymm6
 addl -128(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 vpaddd %ymm11,%ymm6,%ymm9
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -124(%r13),%ebx
 vmovdqu %ymm9,448(%rsp)
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -120(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 vpalignr $8,%ymm5,%ymm6,%ymm8
 vpxor %ymm3,%ymm7,%ymm7
 addl -116(%r13),%eax
 leal (%rax,%rbx,1),%eax
 vpxor %ymm0,%ymm7,%ymm7
 vmovdqu 32(%r14),%ymm11
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 vpxor %ymm8,%ymm7,%ymm7
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -96(%r13),%esi
 vpsrld $30,%ymm7,%ymm8
 vpslld $2,%ymm7,%ymm7
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 vpor %ymm8,%ymm7,%ymm7
 addl -92(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 vpaddd %ymm11,%ymm7,%ymm9
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl -88(%r13),%ecx
 vmovdqu %ymm9,480(%rsp)
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -84(%r13),%ebx
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 andl %edi,%ecx
# WAS jmp .Lalign32_2
	jmp	.Lalign32_2_BCM_18
.align 32
.Lalign32_2_BCM_18:

 vpalignr $8,%ymm6,%ymm7,%ymm8
 vpxor %ymm4,%ymm0,%ymm0
 addl -64(%r13),%ebp
 xorl %esi,%ecx
 vpxor %ymm1,%ymm0,%ymm0
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 vpxor %ymm8,%ymm0,%ymm0
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 vpsrld $30,%ymm0,%ymm8
 vpslld $2,%ymm0,%ymm0
 addl %r12d,%ebp
 andl %edi,%ebx
 addl -60(%r13),%eax
 xorl %edx,%ebx
 movl %ecx,%edi
 xorl %edx,%edi
 vpor %ymm8,%ymm0,%ymm0
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 vpaddd %ymm11,%ymm0,%ymm9
 addl %r12d,%eax
 andl %edi,%ebp
 addl -56(%r13),%esi
 xorl %ecx,%ebp
 vmovdqu %ymm9,512(%rsp)
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 addl -52(%r13),%edx
 xorl %ebx,%eax
 movl %ebp,%edi
 xorl %ebx,%edi
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 andl %edi,%esi
 addl -32(%r13),%ecx
 xorl %ebp,%esi
 movl %eax,%edi
 xorl %ebp,%edi
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 andl %edi,%edx
 vpalignr $8,%ymm7,%ymm0,%ymm8
 vpxor %ymm5,%ymm1,%ymm1
 addl -28(%r13),%ebx
 xorl %eax,%edx
 vpxor %ymm2,%ymm1,%ymm1
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 vpxor %ymm8,%ymm1,%ymm1
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 vpsrld $30,%ymm1,%ymm8
 vpslld $2,%ymm1,%ymm1
 addl %r12d,%ebx
 andl %edi,%ecx
 addl -24(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 vpor %ymm8,%ymm1,%ymm1
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 vpaddd %ymm11,%ymm1,%ymm9
 addl %r12d,%ebp
 andl %edi,%ebx
 addl -20(%r13),%eax
 xorl %edx,%ebx
 vmovdqu %ymm9,544(%rsp)
 movl %ecx,%edi
 xorl %edx,%edi
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 andl %edi,%ebp
 addl 0(%r13),%esi
 xorl %ecx,%ebp
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 addl 4(%r13),%edx
 xorl %ebx,%eax
 movl %ebp,%edi
 xorl %ebx,%edi
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 andl %edi,%esi
 vpalignr $8,%ymm0,%ymm1,%ymm8
 vpxor %ymm6,%ymm2,%ymm2
 addl 8(%r13),%ecx
 xorl %ebp,%esi
 vpxor %ymm3,%ymm2,%ymm2
 movl %eax,%edi
 xorl %ebp,%edi
 leal (%rcx,%rsi,1),%ecx
 vpxor %ymm8,%ymm2,%ymm2
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 vpsrld $30,%ymm2,%ymm8
 vpslld $2,%ymm2,%ymm2
 addl %r12d,%ecx
 andl %edi,%edx
 addl 12(%r13),%ebx
 xorl %eax,%edx
 movl %esi,%edi
 xorl %eax,%edi
 vpor %ymm8,%ymm2,%ymm2
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 vpaddd %ymm11,%ymm2,%ymm9
 addl %r12d,%ebx
 andl %edi,%ecx
 addl 32(%r13),%ebp
 xorl %esi,%ecx
 vmovdqu %ymm9,576(%rsp)
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl 36(%r13),%eax
 xorl %edx,%ebx
 movl %ecx,%edi
 xorl %edx,%edi
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 andl %edi,%ebp
 addl 40(%r13),%esi
 xorl %ecx,%ebp
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 vpalignr $8,%ymm1,%ymm2,%ymm8
 vpxor %ymm7,%ymm3,%ymm3
 addl 44(%r13),%edx
 xorl %ebx,%eax
 vpxor %ymm4,%ymm3,%ymm3
 movl %ebp,%edi
 xorl %ebx,%edi
 leal (%rdx,%rax,1),%edx
 vpxor %ymm8,%ymm3,%ymm3
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 vpsrld $30,%ymm3,%ymm8
 vpslld $2,%ymm3,%ymm3
 addl %r12d,%edx
 andl %edi,%esi
 addl 64(%r13),%ecx
 xorl %ebp,%esi
 movl %eax,%edi
 xorl %ebp,%edi
 vpor %ymm8,%ymm3,%ymm3
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 vpaddd %ymm11,%ymm3,%ymm9
 addl %r12d,%ecx
 andl %edi,%edx
 addl 68(%r13),%ebx
 xorl %eax,%edx
 vmovdqu %ymm9,608(%rsp)
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 andl %edi,%ecx
 addl 72(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl 76(%r13),%eax
 xorl %edx,%ebx
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl 96(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl 100(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl 104(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl 108(%r13),%ebx
 leaq 256(%r13),%r13
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -128(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl -124(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -120(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl -116(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl -96(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -92(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -88(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl -84(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -64(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl -60(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl -56(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -52(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -32(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl -28(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -24(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl -20(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 addl %r12d,%edx
 leaq 128(%r9),%r13
 leaq 128(%r9),%rdi
 cmpq %r10,%r13
 cmovaeq %r9,%r13


 addl 0(%r8),%edx
 addl 4(%r8),%esi
 addl 8(%r8),%ebp
 movl %edx,0(%r8)
 addl 12(%r8),%ebx
 movl %esi,4(%r8)
 movl %edx,%eax
 addl 16(%r8),%ecx
 movl %ebp,%r12d
 movl %ebp,8(%r8)
 movl %ebx,%edx

 movl %ebx,12(%r8)
 movl %esi,%ebp
 movl %ecx,16(%r8)

 movl %ecx,%esi
 movl %r12d,%ecx


 cmpq %r10,%r9
# WAS je .Ldone_avx2
	je	.Ldone_avx2_BCM_18
 vmovdqu 64(%r14),%ymm6
 cmpq %r10,%rdi
# WAS ja .Last_avx2
	ja	.Last_avx2_BCM_18

 vmovdqu -64(%rdi),%xmm0
 vmovdqu -48(%rdi),%xmm1
 vmovdqu -32(%rdi),%xmm2
 vmovdqu -16(%rdi),%xmm3
 vinserti128 $1,0(%r13),%ymm0,%ymm0
 vinserti128 $1,16(%r13),%ymm1,%ymm1
 vinserti128 $1,32(%r13),%ymm2,%ymm2
 vinserti128 $1,48(%r13),%ymm3,%ymm3
# WAS jmp .Last_avx2
	jmp	.Last_avx2_BCM_18

.align 32
.Last_avx2_BCM_18:

 leaq 128+16(%rsp),%r13
 rorxl $2,%ebp,%ebx
 andnl %edx,%ebp,%edi
 andl %ecx,%ebp
 xorl %edi,%ebp
 subq $-128,%r9
 addl -128(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 addl -124(%r13),%edx
 andnl %ebx,%esi,%edi
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 addl %r12d,%edx
 xorl %edi,%esi
 addl -120(%r13),%ecx
 andnl %ebp,%edx,%edi
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 addl %r12d,%ecx
 xorl %edi,%edx
 addl -116(%r13),%ebx
 andnl %eax,%ecx,%edi
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 addl -96(%r13),%ebp
 andnl %esi,%ebx,%edi
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 andl %edx,%ebx
 addl %r12d,%ebp
 xorl %edi,%ebx
 addl -92(%r13),%eax
 andnl %edx,%ebp,%edi
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 andl %ecx,%ebp
 addl %r12d,%eax
 xorl %edi,%ebp
 addl -88(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 addl -84(%r13),%edx
 andnl %ebx,%esi,%edi
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 addl %r12d,%edx
 xorl %edi,%esi
 addl -64(%r13),%ecx
 andnl %ebp,%edx,%edi
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 addl %r12d,%ecx
 xorl %edi,%edx
 addl -60(%r13),%ebx
 andnl %eax,%ecx,%edi
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 addl -56(%r13),%ebp
 andnl %esi,%ebx,%edi
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 andl %edx,%ebx
 addl %r12d,%ebp
 xorl %edi,%ebx
 addl -52(%r13),%eax
 andnl %edx,%ebp,%edi
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 andl %ecx,%ebp
 addl %r12d,%eax
 xorl %edi,%ebp
 addl -32(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 addl -28(%r13),%edx
 andnl %ebx,%esi,%edi
 addl %eax,%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 andl %ebp,%esi
 addl %r12d,%edx
 xorl %edi,%esi
 addl -24(%r13),%ecx
 andnl %ebp,%edx,%edi
 addl %esi,%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 andl %eax,%edx
 addl %r12d,%ecx
 xorl %edi,%edx
 addl -20(%r13),%ebx
 andnl %eax,%ecx,%edi
 addl %edx,%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 andl %esi,%ecx
 addl %r12d,%ebx
 xorl %edi,%ecx
 addl 0(%r13),%ebp
 andnl %esi,%ebx,%edi
 addl %ecx,%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 andl %edx,%ebx
 addl %r12d,%ebp
 xorl %edi,%ebx
 addl 4(%r13),%eax
 andnl %edx,%ebp,%edi
 addl %ebx,%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 andl %ecx,%ebp
 addl %r12d,%eax
 xorl %edi,%ebp
 addl 8(%r13),%esi
 andnl %ecx,%eax,%edi
 addl %ebp,%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 andl %ebx,%eax
 addl %r12d,%esi
 xorl %edi,%eax
 addl 12(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl 32(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl 36(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl 40(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl 44(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl 64(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 vmovdqu -64(%r14),%ymm11
 vpshufb %ymm6,%ymm0,%ymm0
 addl 68(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl 72(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl 76(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl 96(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl 100(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 vpshufb %ymm6,%ymm1,%ymm1
 vpaddd %ymm11,%ymm0,%ymm8
 addl 104(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl 108(%r13),%edx
 leaq 256(%r13),%r13
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl -128(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -124(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -120(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 vmovdqu %ymm8,0(%rsp)
 vpshufb %ymm6,%ymm2,%ymm2
 vpaddd %ymm11,%ymm1,%ymm9
 addl -116(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -96(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl -92(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 addl -88(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -84(%r13),%ebx
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 andl %edi,%ecx
 vmovdqu %ymm9,32(%rsp)
 vpshufb %ymm6,%ymm3,%ymm3
 vpaddd %ymm11,%ymm2,%ymm6
 addl -64(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl -60(%r13),%eax
 xorl %edx,%ebx
 movl %ecx,%edi
 xorl %edx,%edi
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 andl %edi,%ebp
 addl -56(%r13),%esi
 xorl %ecx,%ebp
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 addl -52(%r13),%edx
 xorl %ebx,%eax
 movl %ebp,%edi
 xorl %ebx,%edi
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 andl %edi,%esi
 addl -32(%r13),%ecx
 xorl %ebp,%esi
 movl %eax,%edi
 xorl %ebp,%edi
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 andl %edi,%edx
# WAS jmp .Lalign32_3
	jmp	.Lalign32_3_BCM_18
.align 32
.Lalign32_3_BCM_18:

 vmovdqu %ymm6,64(%rsp)
 vpaddd %ymm11,%ymm3,%ymm7
 addl -28(%r13),%ebx
 xorl %eax,%edx
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 andl %edi,%ecx
 addl -24(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl -20(%r13),%eax
 xorl %edx,%ebx
 movl %ecx,%edi
 xorl %edx,%edi
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 andl %edi,%ebp
 addl 0(%r13),%esi
 xorl %ecx,%ebp
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 addl 4(%r13),%edx
 xorl %ebx,%eax
 movl %ebp,%edi
 xorl %ebx,%edi
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 andl %edi,%esi
 vmovdqu %ymm7,96(%rsp)
 addl 8(%r13),%ecx
 xorl %ebp,%esi
 movl %eax,%edi
 xorl %ebp,%edi
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 andl %edi,%edx
 addl 12(%r13),%ebx
 xorl %eax,%edx
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 andl %edi,%ecx
 addl 32(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl 36(%r13),%eax
 xorl %edx,%ebx
 movl %ecx,%edi
 xorl %edx,%edi
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 andl %edi,%ebp
 addl 40(%r13),%esi
 xorl %ecx,%ebp
 movl %ebx,%edi
 xorl %ecx,%edi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 andl %edi,%eax
 vpalignr $8,%ymm0,%ymm1,%ymm4
 addl 44(%r13),%edx
 xorl %ebx,%eax
 movl %ebp,%edi
 xorl %ebx,%edi
 vpsrldq $4,%ymm3,%ymm8
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 vpxor %ymm0,%ymm4,%ymm4
 vpxor %ymm2,%ymm8,%ymm8
 xorl %ebp,%esi
 addl %r12d,%edx
 vpxor %ymm8,%ymm4,%ymm4
 andl %edi,%esi
 addl 64(%r13),%ecx
 xorl %ebp,%esi
 movl %eax,%edi
 vpsrld $31,%ymm4,%ymm8
 xorl %ebp,%edi
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 vpslldq $12,%ymm4,%ymm10
 vpaddd %ymm4,%ymm4,%ymm4
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm4,%ymm4
 addl %r12d,%ecx
 andl %edi,%edx
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm4,%ymm4
 addl 68(%r13),%ebx
 xorl %eax,%edx
 vpxor %ymm10,%ymm4,%ymm4
 movl %esi,%edi
 xorl %eax,%edi
 leal (%rbx,%rdx,1),%ebx
 vpaddd %ymm11,%ymm4,%ymm9
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 vmovdqu %ymm9,128(%rsp)
 addl %r12d,%ebx
 andl %edi,%ecx
 addl 72(%r13),%ebp
 xorl %esi,%ecx
 movl %edx,%edi
 xorl %esi,%edi
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 andl %edi,%ebx
 addl 76(%r13),%eax
 xorl %edx,%ebx
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 vpalignr $8,%ymm1,%ymm2,%ymm5
 addl 96(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 vpsrldq $4,%ymm4,%ymm8
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 vpxor %ymm1,%ymm5,%ymm5
 vpxor %ymm3,%ymm8,%ymm8
 addl 100(%r13),%edx
 leal (%rdx,%rax,1),%edx
 vpxor %ymm8,%ymm5,%ymm5
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 xorl %ebp,%esi
 addl %r12d,%edx
 vpsrld $31,%ymm5,%ymm8
 vmovdqu -32(%r14),%ymm11
 xorl %ebx,%esi
 addl 104(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 vpslldq $12,%ymm5,%ymm10
 vpaddd %ymm5,%ymm5,%ymm5
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm5,%ymm5
 xorl %eax,%edx
 addl %r12d,%ecx
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm5,%ymm5
 xorl %ebp,%edx
 addl 108(%r13),%ebx
 leaq 256(%r13),%r13
 vpxor %ymm10,%ymm5,%ymm5
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 vpaddd %ymm11,%ymm5,%ymm9
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 vmovdqu %ymm9,160(%rsp)
 addl -128(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 vpalignr $8,%ymm2,%ymm3,%ymm6
 addl -124(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 vpsrldq $4,%ymm5,%ymm8
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 vpxor %ymm2,%ymm6,%ymm6
 vpxor %ymm4,%ymm8,%ymm8
 addl -120(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 vpxor %ymm8,%ymm6,%ymm6
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 vpsrld $31,%ymm6,%ymm8
 xorl %ecx,%eax
 addl -116(%r13),%edx
 leal (%rdx,%rax,1),%edx
 vpslldq $12,%ymm6,%ymm10
 vpaddd %ymm6,%ymm6,%ymm6
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm6,%ymm6
 xorl %ebp,%esi
 addl %r12d,%edx
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm6,%ymm6
 xorl %ebx,%esi
 addl -96(%r13),%ecx
 vpxor %ymm10,%ymm6,%ymm6
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 vpaddd %ymm11,%ymm6,%ymm9
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 vmovdqu %ymm9,192(%rsp)
 addl -92(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 vpalignr $8,%ymm3,%ymm4,%ymm7
 addl -88(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 vpsrldq $4,%ymm6,%ymm8
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 vpxor %ymm3,%ymm7,%ymm7
 vpxor %ymm5,%ymm8,%ymm8
 addl -84(%r13),%eax
 leal (%rax,%rbx,1),%eax
 vpxor %ymm8,%ymm7,%ymm7
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 vpsrld $31,%ymm7,%ymm8
 xorl %edx,%ebp
 addl -64(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 vpslldq $12,%ymm7,%ymm10
 vpaddd %ymm7,%ymm7,%ymm7
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 vpsrld $30,%ymm10,%ymm9
 vpor %ymm8,%ymm7,%ymm7
 xorl %ebx,%eax
 addl %r12d,%esi
 vpslld $2,%ymm10,%ymm10
 vpxor %ymm9,%ymm7,%ymm7
 xorl %ecx,%eax
 addl -60(%r13),%edx
 vpxor %ymm10,%ymm7,%ymm7
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 rorxl $2,%esi,%eax
 vpaddd %ymm11,%ymm7,%ymm9
 xorl %ebp,%esi
 addl %r12d,%edx
 xorl %ebx,%esi
 vmovdqu %ymm9,224(%rsp)
 addl -56(%r13),%ecx
 leal (%rcx,%rsi,1),%ecx
 rorxl $27,%edx,%r12d
 rorxl $2,%edx,%esi
 xorl %eax,%edx
 addl %r12d,%ecx
 xorl %ebp,%edx
 addl -52(%r13),%ebx
 leal (%rbx,%rdx,1),%ebx
 rorxl $27,%ecx,%r12d
 rorxl $2,%ecx,%edx
 xorl %esi,%ecx
 addl %r12d,%ebx
 xorl %eax,%ecx
 addl -32(%r13),%ebp
 leal (%rcx,%rbp,1),%ebp
 rorxl $27,%ebx,%r12d
 rorxl $2,%ebx,%ecx
 xorl %edx,%ebx
 addl %r12d,%ebp
 xorl %esi,%ebx
 addl -28(%r13),%eax
 leal (%rax,%rbx,1),%eax
 rorxl $27,%ebp,%r12d
 rorxl $2,%ebp,%ebx
 xorl %ecx,%ebp
 addl %r12d,%eax
 xorl %edx,%ebp
 addl -24(%r13),%esi
 leal (%rsi,%rbp,1),%esi
 rorxl $27,%eax,%r12d
 rorxl $2,%eax,%ebp
 xorl %ebx,%eax
 addl %r12d,%esi
 xorl %ecx,%eax
 addl -20(%r13),%edx
 leal (%rdx,%rax,1),%edx
 rorxl $27,%esi,%r12d
 addl %r12d,%edx
 leaq 128(%rsp),%r13


 addl 0(%r8),%edx
 addl 4(%r8),%esi
 addl 8(%r8),%ebp
 movl %edx,0(%r8)
 addl 12(%r8),%ebx
 movl %esi,4(%r8)
 movl %edx,%eax
 addl 16(%r8),%ecx
 movl %ebp,%r12d
 movl %ebp,8(%r8)
 movl %ebx,%edx

 movl %ebx,12(%r8)
 movl %esi,%ebp
 movl %ecx,16(%r8)

 movl %ecx,%esi
 movl %r12d,%ecx


 cmpq %r10,%r9
# WAS jbe .Loop_avx2
	jbe	.Loop_avx2_BCM_18

.Ldone_avx2_BCM_18:

 vzeroupper
 movq -40(%r11),%r14
.cfi_restore %r14
 movq -32(%r11),%r13
.cfi_restore %r13
 movq -24(%r11),%r12
.cfi_restore %r12
 movq -16(%r11),%rbp
.cfi_restore %rbp
 movq -8(%r11),%rbx
.cfi_restore %rbx
 leaq (%r11),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_avx2_BCM_18:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
# WAS .section .rodata
.text
.align 64
.LK_XX_XX_local_target:
K_XX_XX:
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
.text
# 0 "sha256-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "sha256-x86_64.S"



#include <openssl/asm_base.h>
# 4 "sha256-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "sha256-x86_64.S" 2


.text

.globl sha256_block_data_order_nohw
.hidden sha256_block_data_order_nohw
.type sha256_block_data_order_nohw,@function
.align 16
.Lsha256_block_data_order_nohw_local_target:
sha256_block_data_order_nohw:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 shlq $4,%rdx
 subq $64+32,%rsp
 leaq (%rsi,%rdx,4),%rdx
 andq $-64,%rsp
 movq %rdi,64+0(%rsp)
 movq %rsi,64+8(%rsp)
 movq %rdx,64+16(%rsp)
 movq %rax,88(%rsp)
.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08
.Lprologue_BCM_19:


 movl 0(%rdi),%eax
 movl 4(%rdi),%ebx
 movl 8(%rdi),%ecx
 movl 12(%rdi),%edx
 movl 16(%rdi),%r8d
 movl 20(%rdi),%r9d
 movl 24(%rdi),%r10d
 movl 28(%rdi),%r11d
# WAS jmp .Lloop
	jmp	.Lloop_BCM_19

.align 16
.Lloop_BCM_19:

 movl %ebx,%edi
# WAS leaq K256(%rip),%rbp
	leaq	.LK256_local_target(%rip), %rbp
 xorl %ecx,%edi
 movl 0(%rsi),%r12d
 movl %r8d,%r13d
 movl %eax,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r9d,%r15d

 xorl %r8d,%r13d
 rorl $9,%r14d
 xorl %r10d,%r15d

 movl %r12d,0(%rsp)
 xorl %eax,%r14d
 andl %r8d,%r15d

 rorl $5,%r13d
 addl %r11d,%r12d
 xorl %r10d,%r15d

 rorl $11,%r14d
 xorl %r8d,%r13d
 addl %r15d,%r12d

 movl %eax,%r15d
 addl (%rbp),%r12d
 xorl %eax,%r14d

 xorl %ebx,%r15d
 rorl $6,%r13d
 movl %ebx,%r11d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r11d
 addl %r12d,%edx
 addl %r12d,%r11d

 leaq 4(%rbp),%rbp
 addl %r14d,%r11d
 movl 4(%rsi),%r12d
 movl %edx,%r13d
 movl %r11d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r8d,%edi

 xorl %edx,%r13d
 rorl $9,%r14d
 xorl %r9d,%edi

 movl %r12d,4(%rsp)
 xorl %r11d,%r14d
 andl %edx,%edi

 rorl $5,%r13d
 addl %r10d,%r12d
 xorl %r9d,%edi

 rorl $11,%r14d
 xorl %edx,%r13d
 addl %edi,%r12d

 movl %r11d,%edi
 addl (%rbp),%r12d
 xorl %r11d,%r14d

 xorl %eax,%edi
 rorl $6,%r13d
 movl %eax,%r10d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r10d
 addl %r12d,%ecx
 addl %r12d,%r10d

 leaq 4(%rbp),%rbp
 addl %r14d,%r10d
 movl 8(%rsi),%r12d
 movl %ecx,%r13d
 movl %r10d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %edx,%r15d

 xorl %ecx,%r13d
 rorl $9,%r14d
 xorl %r8d,%r15d

 movl %r12d,8(%rsp)
 xorl %r10d,%r14d
 andl %ecx,%r15d

 rorl $5,%r13d
 addl %r9d,%r12d
 xorl %r8d,%r15d

 rorl $11,%r14d
 xorl %ecx,%r13d
 addl %r15d,%r12d

 movl %r10d,%r15d
 addl (%rbp),%r12d
 xorl %r10d,%r14d

 xorl %r11d,%r15d
 rorl $6,%r13d
 movl %r11d,%r9d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r9d
 addl %r12d,%ebx
 addl %r12d,%r9d

 leaq 4(%rbp),%rbp
 addl %r14d,%r9d
 movl 12(%rsi),%r12d
 movl %ebx,%r13d
 movl %r9d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %ecx,%edi

 xorl %ebx,%r13d
 rorl $9,%r14d
 xorl %edx,%edi

 movl %r12d,12(%rsp)
 xorl %r9d,%r14d
 andl %ebx,%edi

 rorl $5,%r13d
 addl %r8d,%r12d
 xorl %edx,%edi

 rorl $11,%r14d
 xorl %ebx,%r13d
 addl %edi,%r12d

 movl %r9d,%edi
 addl (%rbp),%r12d
 xorl %r9d,%r14d

 xorl %r10d,%edi
 rorl $6,%r13d
 movl %r10d,%r8d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r8d
 addl %r12d,%eax
 addl %r12d,%r8d

 leaq 20(%rbp),%rbp
 addl %r14d,%r8d
 movl 16(%rsi),%r12d
 movl %eax,%r13d
 movl %r8d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %ebx,%r15d

 xorl %eax,%r13d
 rorl $9,%r14d
 xorl %ecx,%r15d

 movl %r12d,16(%rsp)
 xorl %r8d,%r14d
 andl %eax,%r15d

 rorl $5,%r13d
 addl %edx,%r12d
 xorl %ecx,%r15d

 rorl $11,%r14d
 xorl %eax,%r13d
 addl %r15d,%r12d

 movl %r8d,%r15d
 addl (%rbp),%r12d
 xorl %r8d,%r14d

 xorl %r9d,%r15d
 rorl $6,%r13d
 movl %r9d,%edx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%edx
 addl %r12d,%r11d
 addl %r12d,%edx

 leaq 4(%rbp),%rbp
 addl %r14d,%edx
 movl 20(%rsi),%r12d
 movl %r11d,%r13d
 movl %edx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %eax,%edi

 xorl %r11d,%r13d
 rorl $9,%r14d
 xorl %ebx,%edi

 movl %r12d,20(%rsp)
 xorl %edx,%r14d
 andl %r11d,%edi

 rorl $5,%r13d
 addl %ecx,%r12d
 xorl %ebx,%edi

 rorl $11,%r14d
 xorl %r11d,%r13d
 addl %edi,%r12d

 movl %edx,%edi
 addl (%rbp),%r12d
 xorl %edx,%r14d

 xorl %r8d,%edi
 rorl $6,%r13d
 movl %r8d,%ecx

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%ecx
 addl %r12d,%r10d
 addl %r12d,%ecx

 leaq 4(%rbp),%rbp
 addl %r14d,%ecx
 movl 24(%rsi),%r12d
 movl %r10d,%r13d
 movl %ecx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r11d,%r15d

 xorl %r10d,%r13d
 rorl $9,%r14d
 xorl %eax,%r15d

 movl %r12d,24(%rsp)
 xorl %ecx,%r14d
 andl %r10d,%r15d

 rorl $5,%r13d
 addl %ebx,%r12d
 xorl %eax,%r15d

 rorl $11,%r14d
 xorl %r10d,%r13d
 addl %r15d,%r12d

 movl %ecx,%r15d
 addl (%rbp),%r12d
 xorl %ecx,%r14d

 xorl %edx,%r15d
 rorl $6,%r13d
 movl %edx,%ebx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%ebx
 addl %r12d,%r9d
 addl %r12d,%ebx

 leaq 4(%rbp),%rbp
 addl %r14d,%ebx
 movl 28(%rsi),%r12d
 movl %r9d,%r13d
 movl %ebx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r10d,%edi

 xorl %r9d,%r13d
 rorl $9,%r14d
 xorl %r11d,%edi

 movl %r12d,28(%rsp)
 xorl %ebx,%r14d
 andl %r9d,%edi

 rorl $5,%r13d
 addl %eax,%r12d
 xorl %r11d,%edi

 rorl $11,%r14d
 xorl %r9d,%r13d
 addl %edi,%r12d

 movl %ebx,%edi
 addl (%rbp),%r12d
 xorl %ebx,%r14d

 xorl %ecx,%edi
 rorl $6,%r13d
 movl %ecx,%eax

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%eax
 addl %r12d,%r8d
 addl %r12d,%eax

 leaq 20(%rbp),%rbp
 addl %r14d,%eax
 movl 32(%rsi),%r12d
 movl %r8d,%r13d
 movl %eax,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r9d,%r15d

 xorl %r8d,%r13d
 rorl $9,%r14d
 xorl %r10d,%r15d

 movl %r12d,32(%rsp)
 xorl %eax,%r14d
 andl %r8d,%r15d

 rorl $5,%r13d
 addl %r11d,%r12d
 xorl %r10d,%r15d

 rorl $11,%r14d
 xorl %r8d,%r13d
 addl %r15d,%r12d

 movl %eax,%r15d
 addl (%rbp),%r12d
 xorl %eax,%r14d

 xorl %ebx,%r15d
 rorl $6,%r13d
 movl %ebx,%r11d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r11d
 addl %r12d,%edx
 addl %r12d,%r11d

 leaq 4(%rbp),%rbp
 addl %r14d,%r11d
 movl 36(%rsi),%r12d
 movl %edx,%r13d
 movl %r11d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r8d,%edi

 xorl %edx,%r13d
 rorl $9,%r14d
 xorl %r9d,%edi

 movl %r12d,36(%rsp)
 xorl %r11d,%r14d
 andl %edx,%edi

 rorl $5,%r13d
 addl %r10d,%r12d
 xorl %r9d,%edi

 rorl $11,%r14d
 xorl %edx,%r13d
 addl %edi,%r12d

 movl %r11d,%edi
 addl (%rbp),%r12d
 xorl %r11d,%r14d

 xorl %eax,%edi
 rorl $6,%r13d
 movl %eax,%r10d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r10d
 addl %r12d,%ecx
 addl %r12d,%r10d

 leaq 4(%rbp),%rbp
 addl %r14d,%r10d
 movl 40(%rsi),%r12d
 movl %ecx,%r13d
 movl %r10d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %edx,%r15d

 xorl %ecx,%r13d
 rorl $9,%r14d
 xorl %r8d,%r15d

 movl %r12d,40(%rsp)
 xorl %r10d,%r14d
 andl %ecx,%r15d

 rorl $5,%r13d
 addl %r9d,%r12d
 xorl %r8d,%r15d

 rorl $11,%r14d
 xorl %ecx,%r13d
 addl %r15d,%r12d

 movl %r10d,%r15d
 addl (%rbp),%r12d
 xorl %r10d,%r14d

 xorl %r11d,%r15d
 rorl $6,%r13d
 movl %r11d,%r9d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r9d
 addl %r12d,%ebx
 addl %r12d,%r9d

 leaq 4(%rbp),%rbp
 addl %r14d,%r9d
 movl 44(%rsi),%r12d
 movl %ebx,%r13d
 movl %r9d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %ecx,%edi

 xorl %ebx,%r13d
 rorl $9,%r14d
 xorl %edx,%edi

 movl %r12d,44(%rsp)
 xorl %r9d,%r14d
 andl %ebx,%edi

 rorl $5,%r13d
 addl %r8d,%r12d
 xorl %edx,%edi

 rorl $11,%r14d
 xorl %ebx,%r13d
 addl %edi,%r12d

 movl %r9d,%edi
 addl (%rbp),%r12d
 xorl %r9d,%r14d

 xorl %r10d,%edi
 rorl $6,%r13d
 movl %r10d,%r8d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r8d
 addl %r12d,%eax
 addl %r12d,%r8d

 leaq 20(%rbp),%rbp
 addl %r14d,%r8d
 movl 48(%rsi),%r12d
 movl %eax,%r13d
 movl %r8d,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %ebx,%r15d

 xorl %eax,%r13d
 rorl $9,%r14d
 xorl %ecx,%r15d

 movl %r12d,48(%rsp)
 xorl %r8d,%r14d
 andl %eax,%r15d

 rorl $5,%r13d
 addl %edx,%r12d
 xorl %ecx,%r15d

 rorl $11,%r14d
 xorl %eax,%r13d
 addl %r15d,%r12d

 movl %r8d,%r15d
 addl (%rbp),%r12d
 xorl %r8d,%r14d

 xorl %r9d,%r15d
 rorl $6,%r13d
 movl %r9d,%edx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%edx
 addl %r12d,%r11d
 addl %r12d,%edx

 leaq 4(%rbp),%rbp
 addl %r14d,%edx
 movl 52(%rsi),%r12d
 movl %r11d,%r13d
 movl %edx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %eax,%edi

 xorl %r11d,%r13d
 rorl $9,%r14d
 xorl %ebx,%edi

 movl %r12d,52(%rsp)
 xorl %edx,%r14d
 andl %r11d,%edi

 rorl $5,%r13d
 addl %ecx,%r12d
 xorl %ebx,%edi

 rorl $11,%r14d
 xorl %r11d,%r13d
 addl %edi,%r12d

 movl %edx,%edi
 addl (%rbp),%r12d
 xorl %edx,%r14d

 xorl %r8d,%edi
 rorl $6,%r13d
 movl %r8d,%ecx

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%ecx
 addl %r12d,%r10d
 addl %r12d,%ecx

 leaq 4(%rbp),%rbp
 addl %r14d,%ecx
 movl 56(%rsi),%r12d
 movl %r10d,%r13d
 movl %ecx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r11d,%r15d

 xorl %r10d,%r13d
 rorl $9,%r14d
 xorl %eax,%r15d

 movl %r12d,56(%rsp)
 xorl %ecx,%r14d
 andl %r10d,%r15d

 rorl $5,%r13d
 addl %ebx,%r12d
 xorl %eax,%r15d

 rorl $11,%r14d
 xorl %r10d,%r13d
 addl %r15d,%r12d

 movl %ecx,%r15d
 addl (%rbp),%r12d
 xorl %ecx,%r14d

 xorl %edx,%r15d
 rorl $6,%r13d
 movl %edx,%ebx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%ebx
 addl %r12d,%r9d
 addl %r12d,%ebx

 leaq 4(%rbp),%rbp
 addl %r14d,%ebx
 movl 60(%rsi),%r12d
 movl %r9d,%r13d
 movl %ebx,%r14d
 bswapl %r12d
 rorl $14,%r13d
 movl %r10d,%edi

 xorl %r9d,%r13d
 rorl $9,%r14d
 xorl %r11d,%edi

 movl %r12d,60(%rsp)
 xorl %ebx,%r14d
 andl %r9d,%edi

 rorl $5,%r13d
 addl %eax,%r12d
 xorl %r11d,%edi

 rorl $11,%r14d
 xorl %r9d,%r13d
 addl %edi,%r12d

 movl %ebx,%edi
 addl (%rbp),%r12d
 xorl %ebx,%r14d

 xorl %ecx,%edi
 rorl $6,%r13d
 movl %ecx,%eax

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%eax
 addl %r12d,%r8d
 addl %r12d,%eax

 leaq 20(%rbp),%rbp
# WAS jmp .Lrounds_16_xx
	jmp	.Lrounds_16_xx_BCM_19
.align 16
.Lrounds_16_xx_BCM_19:

 movl 4(%rsp),%r13d
 movl 56(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%eax
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 36(%rsp),%r12d

 addl 0(%rsp),%r12d
 movl %r8d,%r13d
 addl %r15d,%r12d
 movl %eax,%r14d
 rorl $14,%r13d
 movl %r9d,%r15d

 xorl %r8d,%r13d
 rorl $9,%r14d
 xorl %r10d,%r15d

 movl %r12d,0(%rsp)
 xorl %eax,%r14d
 andl %r8d,%r15d

 rorl $5,%r13d
 addl %r11d,%r12d
 xorl %r10d,%r15d

 rorl $11,%r14d
 xorl %r8d,%r13d
 addl %r15d,%r12d

 movl %eax,%r15d
 addl (%rbp),%r12d
 xorl %eax,%r14d

 xorl %ebx,%r15d
 rorl $6,%r13d
 movl %ebx,%r11d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r11d
 addl %r12d,%edx
 addl %r12d,%r11d

 leaq 4(%rbp),%rbp
 movl 8(%rsp),%r13d
 movl 60(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r11d
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 40(%rsp),%r12d

 addl 4(%rsp),%r12d
 movl %edx,%r13d
 addl %edi,%r12d
 movl %r11d,%r14d
 rorl $14,%r13d
 movl %r8d,%edi

 xorl %edx,%r13d
 rorl $9,%r14d
 xorl %r9d,%edi

 movl %r12d,4(%rsp)
 xorl %r11d,%r14d
 andl %edx,%edi

 rorl $5,%r13d
 addl %r10d,%r12d
 xorl %r9d,%edi

 rorl $11,%r14d
 xorl %edx,%r13d
 addl %edi,%r12d

 movl %r11d,%edi
 addl (%rbp),%r12d
 xorl %r11d,%r14d

 xorl %eax,%edi
 rorl $6,%r13d
 movl %eax,%r10d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r10d
 addl %r12d,%ecx
 addl %r12d,%r10d

 leaq 4(%rbp),%rbp
 movl 12(%rsp),%r13d
 movl 0(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r10d
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 44(%rsp),%r12d

 addl 8(%rsp),%r12d
 movl %ecx,%r13d
 addl %r15d,%r12d
 movl %r10d,%r14d
 rorl $14,%r13d
 movl %edx,%r15d

 xorl %ecx,%r13d
 rorl $9,%r14d
 xorl %r8d,%r15d

 movl %r12d,8(%rsp)
 xorl %r10d,%r14d
 andl %ecx,%r15d

 rorl $5,%r13d
 addl %r9d,%r12d
 xorl %r8d,%r15d

 rorl $11,%r14d
 xorl %ecx,%r13d
 addl %r15d,%r12d

 movl %r10d,%r15d
 addl (%rbp),%r12d
 xorl %r10d,%r14d

 xorl %r11d,%r15d
 rorl $6,%r13d
 movl %r11d,%r9d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r9d
 addl %r12d,%ebx
 addl %r12d,%r9d

 leaq 4(%rbp),%rbp
 movl 16(%rsp),%r13d
 movl 4(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r9d
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 48(%rsp),%r12d

 addl 12(%rsp),%r12d
 movl %ebx,%r13d
 addl %edi,%r12d
 movl %r9d,%r14d
 rorl $14,%r13d
 movl %ecx,%edi

 xorl %ebx,%r13d
 rorl $9,%r14d
 xorl %edx,%edi

 movl %r12d,12(%rsp)
 xorl %r9d,%r14d
 andl %ebx,%edi

 rorl $5,%r13d
 addl %r8d,%r12d
 xorl %edx,%edi

 rorl $11,%r14d
 xorl %ebx,%r13d
 addl %edi,%r12d

 movl %r9d,%edi
 addl (%rbp),%r12d
 xorl %r9d,%r14d

 xorl %r10d,%edi
 rorl $6,%r13d
 movl %r10d,%r8d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r8d
 addl %r12d,%eax
 addl %r12d,%r8d

 leaq 20(%rbp),%rbp
 movl 20(%rsp),%r13d
 movl 8(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r8d
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 52(%rsp),%r12d

 addl 16(%rsp),%r12d
 movl %eax,%r13d
 addl %r15d,%r12d
 movl %r8d,%r14d
 rorl $14,%r13d
 movl %ebx,%r15d

 xorl %eax,%r13d
 rorl $9,%r14d
 xorl %ecx,%r15d

 movl %r12d,16(%rsp)
 xorl %r8d,%r14d
 andl %eax,%r15d

 rorl $5,%r13d
 addl %edx,%r12d
 xorl %ecx,%r15d

 rorl $11,%r14d
 xorl %eax,%r13d
 addl %r15d,%r12d

 movl %r8d,%r15d
 addl (%rbp),%r12d
 xorl %r8d,%r14d

 xorl %r9d,%r15d
 rorl $6,%r13d
 movl %r9d,%edx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%edx
 addl %r12d,%r11d
 addl %r12d,%edx

 leaq 4(%rbp),%rbp
 movl 24(%rsp),%r13d
 movl 12(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%edx
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 56(%rsp),%r12d

 addl 20(%rsp),%r12d
 movl %r11d,%r13d
 addl %edi,%r12d
 movl %edx,%r14d
 rorl $14,%r13d
 movl %eax,%edi

 xorl %r11d,%r13d
 rorl $9,%r14d
 xorl %ebx,%edi

 movl %r12d,20(%rsp)
 xorl %edx,%r14d
 andl %r11d,%edi

 rorl $5,%r13d
 addl %ecx,%r12d
 xorl %ebx,%edi

 rorl $11,%r14d
 xorl %r11d,%r13d
 addl %edi,%r12d

 movl %edx,%edi
 addl (%rbp),%r12d
 xorl %edx,%r14d

 xorl %r8d,%edi
 rorl $6,%r13d
 movl %r8d,%ecx

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%ecx
 addl %r12d,%r10d
 addl %r12d,%ecx

 leaq 4(%rbp),%rbp
 movl 28(%rsp),%r13d
 movl 16(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%ecx
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 60(%rsp),%r12d

 addl 24(%rsp),%r12d
 movl %r10d,%r13d
 addl %r15d,%r12d
 movl %ecx,%r14d
 rorl $14,%r13d
 movl %r11d,%r15d

 xorl %r10d,%r13d
 rorl $9,%r14d
 xorl %eax,%r15d

 movl %r12d,24(%rsp)
 xorl %ecx,%r14d
 andl %r10d,%r15d

 rorl $5,%r13d
 addl %ebx,%r12d
 xorl %eax,%r15d

 rorl $11,%r14d
 xorl %r10d,%r13d
 addl %r15d,%r12d

 movl %ecx,%r15d
 addl (%rbp),%r12d
 xorl %ecx,%r14d

 xorl %edx,%r15d
 rorl $6,%r13d
 movl %edx,%ebx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%ebx
 addl %r12d,%r9d
 addl %r12d,%ebx

 leaq 4(%rbp),%rbp
 movl 32(%rsp),%r13d
 movl 20(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%ebx
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 0(%rsp),%r12d

 addl 28(%rsp),%r12d
 movl %r9d,%r13d
 addl %edi,%r12d
 movl %ebx,%r14d
 rorl $14,%r13d
 movl %r10d,%edi

 xorl %r9d,%r13d
 rorl $9,%r14d
 xorl %r11d,%edi

 movl %r12d,28(%rsp)
 xorl %ebx,%r14d
 andl %r9d,%edi

 rorl $5,%r13d
 addl %eax,%r12d
 xorl %r11d,%edi

 rorl $11,%r14d
 xorl %r9d,%r13d
 addl %edi,%r12d

 movl %ebx,%edi
 addl (%rbp),%r12d
 xorl %ebx,%r14d

 xorl %ecx,%edi
 rorl $6,%r13d
 movl %ecx,%eax

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%eax
 addl %r12d,%r8d
 addl %r12d,%eax

 leaq 20(%rbp),%rbp
 movl 36(%rsp),%r13d
 movl 24(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%eax
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 4(%rsp),%r12d

 addl 32(%rsp),%r12d
 movl %r8d,%r13d
 addl %r15d,%r12d
 movl %eax,%r14d
 rorl $14,%r13d
 movl %r9d,%r15d

 xorl %r8d,%r13d
 rorl $9,%r14d
 xorl %r10d,%r15d

 movl %r12d,32(%rsp)
 xorl %eax,%r14d
 andl %r8d,%r15d

 rorl $5,%r13d
 addl %r11d,%r12d
 xorl %r10d,%r15d

 rorl $11,%r14d
 xorl %r8d,%r13d
 addl %r15d,%r12d

 movl %eax,%r15d
 addl (%rbp),%r12d
 xorl %eax,%r14d

 xorl %ebx,%r15d
 rorl $6,%r13d
 movl %ebx,%r11d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r11d
 addl %r12d,%edx
 addl %r12d,%r11d

 leaq 4(%rbp),%rbp
 movl 40(%rsp),%r13d
 movl 28(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r11d
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 8(%rsp),%r12d

 addl 36(%rsp),%r12d
 movl %edx,%r13d
 addl %edi,%r12d
 movl %r11d,%r14d
 rorl $14,%r13d
 movl %r8d,%edi

 xorl %edx,%r13d
 rorl $9,%r14d
 xorl %r9d,%edi

 movl %r12d,36(%rsp)
 xorl %r11d,%r14d
 andl %edx,%edi

 rorl $5,%r13d
 addl %r10d,%r12d
 xorl %r9d,%edi

 rorl $11,%r14d
 xorl %edx,%r13d
 addl %edi,%r12d

 movl %r11d,%edi
 addl (%rbp),%r12d
 xorl %r11d,%r14d

 xorl %eax,%edi
 rorl $6,%r13d
 movl %eax,%r10d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r10d
 addl %r12d,%ecx
 addl %r12d,%r10d

 leaq 4(%rbp),%rbp
 movl 44(%rsp),%r13d
 movl 32(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r10d
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 12(%rsp),%r12d

 addl 40(%rsp),%r12d
 movl %ecx,%r13d
 addl %r15d,%r12d
 movl %r10d,%r14d
 rorl $14,%r13d
 movl %edx,%r15d

 xorl %ecx,%r13d
 rorl $9,%r14d
 xorl %r8d,%r15d

 movl %r12d,40(%rsp)
 xorl %r10d,%r14d
 andl %ecx,%r15d

 rorl $5,%r13d
 addl %r9d,%r12d
 xorl %r8d,%r15d

 rorl $11,%r14d
 xorl %ecx,%r13d
 addl %r15d,%r12d

 movl %r10d,%r15d
 addl (%rbp),%r12d
 xorl %r10d,%r14d

 xorl %r11d,%r15d
 rorl $6,%r13d
 movl %r11d,%r9d

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%r9d
 addl %r12d,%ebx
 addl %r12d,%r9d

 leaq 4(%rbp),%rbp
 movl 48(%rsp),%r13d
 movl 36(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r9d
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 16(%rsp),%r12d

 addl 44(%rsp),%r12d
 movl %ebx,%r13d
 addl %edi,%r12d
 movl %r9d,%r14d
 rorl $14,%r13d
 movl %ecx,%edi

 xorl %ebx,%r13d
 rorl $9,%r14d
 xorl %edx,%edi

 movl %r12d,44(%rsp)
 xorl %r9d,%r14d
 andl %ebx,%edi

 rorl $5,%r13d
 addl %r8d,%r12d
 xorl %edx,%edi

 rorl $11,%r14d
 xorl %ebx,%r13d
 addl %edi,%r12d

 movl %r9d,%edi
 addl (%rbp),%r12d
 xorl %r9d,%r14d

 xorl %r10d,%edi
 rorl $6,%r13d
 movl %r10d,%r8d

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%r8d
 addl %r12d,%eax
 addl %r12d,%r8d

 leaq 20(%rbp),%rbp
 movl 52(%rsp),%r13d
 movl 40(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%r8d
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 20(%rsp),%r12d

 addl 48(%rsp),%r12d
 movl %eax,%r13d
 addl %r15d,%r12d
 movl %r8d,%r14d
 rorl $14,%r13d
 movl %ebx,%r15d

 xorl %eax,%r13d
 rorl $9,%r14d
 xorl %ecx,%r15d

 movl %r12d,48(%rsp)
 xorl %r8d,%r14d
 andl %eax,%r15d

 rorl $5,%r13d
 addl %edx,%r12d
 xorl %ecx,%r15d

 rorl $11,%r14d
 xorl %eax,%r13d
 addl %r15d,%r12d

 movl %r8d,%r15d
 addl (%rbp),%r12d
 xorl %r8d,%r14d

 xorl %r9d,%r15d
 rorl $6,%r13d
 movl %r9d,%edx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%edx
 addl %r12d,%r11d
 addl %r12d,%edx

 leaq 4(%rbp),%rbp
 movl 56(%rsp),%r13d
 movl 44(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%edx
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 24(%rsp),%r12d

 addl 52(%rsp),%r12d
 movl %r11d,%r13d
 addl %edi,%r12d
 movl %edx,%r14d
 rorl $14,%r13d
 movl %eax,%edi

 xorl %r11d,%r13d
 rorl $9,%r14d
 xorl %ebx,%edi

 movl %r12d,52(%rsp)
 xorl %edx,%r14d
 andl %r11d,%edi

 rorl $5,%r13d
 addl %ecx,%r12d
 xorl %ebx,%edi

 rorl $11,%r14d
 xorl %r11d,%r13d
 addl %edi,%r12d

 movl %edx,%edi
 addl (%rbp),%r12d
 xorl %edx,%r14d

 xorl %r8d,%edi
 rorl $6,%r13d
 movl %r8d,%ecx

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%ecx
 addl %r12d,%r10d
 addl %r12d,%ecx

 leaq 4(%rbp),%rbp
 movl 60(%rsp),%r13d
 movl 48(%rsp),%r15d

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%ecx
 movl %r15d,%r14d
 rorl $2,%r15d

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%r15d
 shrl $10,%r14d

 rorl $17,%r15d
 xorl %r13d,%r12d
 xorl %r14d,%r15d
 addl 28(%rsp),%r12d

 addl 56(%rsp),%r12d
 movl %r10d,%r13d
 addl %r15d,%r12d
 movl %ecx,%r14d
 rorl $14,%r13d
 movl %r11d,%r15d

 xorl %r10d,%r13d
 rorl $9,%r14d
 xorl %eax,%r15d

 movl %r12d,56(%rsp)
 xorl %ecx,%r14d
 andl %r10d,%r15d

 rorl $5,%r13d
 addl %ebx,%r12d
 xorl %eax,%r15d

 rorl $11,%r14d
 xorl %r10d,%r13d
 addl %r15d,%r12d

 movl %ecx,%r15d
 addl (%rbp),%r12d
 xorl %ecx,%r14d

 xorl %edx,%r15d
 rorl $6,%r13d
 movl %edx,%ebx

 andl %r15d,%edi
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %edi,%ebx
 addl %r12d,%r9d
 addl %r12d,%ebx

 leaq 4(%rbp),%rbp
 movl 0(%rsp),%r13d
 movl 52(%rsp),%edi

 movl %r13d,%r12d
 rorl $11,%r13d
 addl %r14d,%ebx
 movl %edi,%r14d
 rorl $2,%edi

 xorl %r12d,%r13d
 shrl $3,%r12d
 rorl $7,%r13d
 xorl %r14d,%edi
 shrl $10,%r14d

 rorl $17,%edi
 xorl %r13d,%r12d
 xorl %r14d,%edi
 addl 32(%rsp),%r12d

 addl 60(%rsp),%r12d
 movl %r9d,%r13d
 addl %edi,%r12d
 movl %ebx,%r14d
 rorl $14,%r13d
 movl %r10d,%edi

 xorl %r9d,%r13d
 rorl $9,%r14d
 xorl %r11d,%edi

 movl %r12d,60(%rsp)
 xorl %ebx,%r14d
 andl %r9d,%edi

 rorl $5,%r13d
 addl %eax,%r12d
 xorl %r11d,%edi

 rorl $11,%r14d
 xorl %r9d,%r13d
 addl %edi,%r12d

 movl %ebx,%edi
 addl (%rbp),%r12d
 xorl %ebx,%r14d

 xorl %ecx,%edi
 rorl $6,%r13d
 movl %ecx,%eax

 andl %edi,%r15d
 rorl $2,%r14d
 addl %r13d,%r12d

 xorl %r15d,%eax
 addl %r12d,%r8d
 addl %r12d,%eax

 leaq 20(%rbp),%rbp
 cmpb $0,3(%rbp)
# WAS jnz .Lrounds_16_xx
	jnz	.Lrounds_16_xx_BCM_19

 movq 64+0(%rsp),%rdi
 addl %r14d,%eax
 leaq 64(%rsi),%rsi

 addl 0(%rdi),%eax
 addl 4(%rdi),%ebx
 addl 8(%rdi),%ecx
 addl 12(%rdi),%edx
 addl 16(%rdi),%r8d
 addl 20(%rdi),%r9d
 addl 24(%rdi),%r10d
 addl 28(%rdi),%r11d

 cmpq 64+16(%rsp),%rsi

 movl %eax,0(%rdi)
 movl %ebx,4(%rdi)
 movl %ecx,8(%rdi)
 movl %edx,12(%rdi)
 movl %r8d,16(%rdi)
 movl %r9d,20(%rdi)
 movl %r10d,24(%rdi)
 movl %r11d,28(%rdi)
# WAS jb .Lloop
	jb	.Lloop_BCM_19

 movq 88(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_BCM_19:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha256_block_data_order_nohw,.-sha256_block_data_order_nohw
# WAS .section .rodata
.text
.align 64
.type K256,@object
.LK256_local_target:
K256:
.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2

.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.text
.globl sha256_block_data_order_hw
.hidden sha256_block_data_order_hw
.type sha256_block_data_order_hw,@function
.align 64
.Lsha256_block_data_order_hw_local_target:
sha256_block_data_order_hw:
.cfi_startproc





endbr64
# WAS leaq K256+128(%rip),%rcx
	leaq	.LK256_local_target+128(%rip), %rcx
 movdqu (%rdi),%xmm1
 movdqu 16(%rdi),%xmm2
 movdqa 512-128(%rcx),%xmm7

 pshufd $0x1b,%xmm1,%xmm0
 pshufd $0xb1,%xmm1,%xmm1
 pshufd $0x1b,%xmm2,%xmm2
 movdqa %xmm7,%xmm8
.byte 102,15,58,15,202,8
 punpcklqdq %xmm0,%xmm2
# WAS jmp .Loop_shaext
	jmp	.Loop_shaext_BCM_19

.align 16
.Loop_shaext_BCM_19:

 movdqu (%rsi),%xmm3
 movdqu 16(%rsi),%xmm4
 movdqu 32(%rsi),%xmm5
.byte 102,15,56,0,223
 movdqu 48(%rsi),%xmm6

 movdqa 0-128(%rcx),%xmm0
 paddd %xmm3,%xmm0
.byte 102,15,56,0,231
 movdqa %xmm2,%xmm10
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 nop
 movdqa %xmm1,%xmm9
.byte 15,56,203,202

 movdqa 32-128(%rcx),%xmm0
 paddd %xmm4,%xmm0
.byte 102,15,56,0,239
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 leaq 64(%rsi),%rsi
.byte 15,56,204,220
.byte 15,56,203,202

 movdqa 64-128(%rcx),%xmm0
 paddd %xmm5,%xmm0
.byte 102,15,56,0,247
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm6,%xmm7
.byte 102,15,58,15,253,4
 nop
 paddd %xmm7,%xmm3
.byte 15,56,204,229
.byte 15,56,203,202

 movdqa 96-128(%rcx),%xmm0
 paddd %xmm6,%xmm0
.byte 15,56,205,222
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm3,%xmm7
.byte 102,15,58,15,254,4
 nop
 paddd %xmm7,%xmm4
.byte 15,56,204,238
.byte 15,56,203,202
 movdqa 128-128(%rcx),%xmm0
 paddd %xmm3,%xmm0
.byte 15,56,205,227
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm4,%xmm7
.byte 102,15,58,15,251,4
 nop
 paddd %xmm7,%xmm5
.byte 15,56,204,243
.byte 15,56,203,202
 movdqa 160-128(%rcx),%xmm0
 paddd %xmm4,%xmm0
.byte 15,56,205,236
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm5,%xmm7
.byte 102,15,58,15,252,4
 nop
 paddd %xmm7,%xmm6
.byte 15,56,204,220
.byte 15,56,203,202
 movdqa 192-128(%rcx),%xmm0
 paddd %xmm5,%xmm0
.byte 15,56,205,245
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm6,%xmm7
.byte 102,15,58,15,253,4
 nop
 paddd %xmm7,%xmm3
.byte 15,56,204,229
.byte 15,56,203,202
 movdqa 224-128(%rcx),%xmm0
 paddd %xmm6,%xmm0
.byte 15,56,205,222
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm3,%xmm7
.byte 102,15,58,15,254,4
 nop
 paddd %xmm7,%xmm4
.byte 15,56,204,238
.byte 15,56,203,202
 movdqa 256-128(%rcx),%xmm0
 paddd %xmm3,%xmm0
.byte 15,56,205,227
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm4,%xmm7
.byte 102,15,58,15,251,4
 nop
 paddd %xmm7,%xmm5
.byte 15,56,204,243
.byte 15,56,203,202
 movdqa 288-128(%rcx),%xmm0
 paddd %xmm4,%xmm0
.byte 15,56,205,236
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm5,%xmm7
.byte 102,15,58,15,252,4
 nop
 paddd %xmm7,%xmm6
.byte 15,56,204,220
.byte 15,56,203,202
 movdqa 320-128(%rcx),%xmm0
 paddd %xmm5,%xmm0
.byte 15,56,205,245
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm6,%xmm7
.byte 102,15,58,15,253,4
 nop
 paddd %xmm7,%xmm3
.byte 15,56,204,229
.byte 15,56,203,202
 movdqa 352-128(%rcx),%xmm0
 paddd %xmm6,%xmm0
.byte 15,56,205,222
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm3,%xmm7
.byte 102,15,58,15,254,4
 nop
 paddd %xmm7,%xmm4
.byte 15,56,204,238
.byte 15,56,203,202
 movdqa 384-128(%rcx),%xmm0
 paddd %xmm3,%xmm0
.byte 15,56,205,227
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm4,%xmm7
.byte 102,15,58,15,251,4
 nop
 paddd %xmm7,%xmm5
.byte 15,56,204,243
.byte 15,56,203,202
 movdqa 416-128(%rcx),%xmm0
 paddd %xmm4,%xmm0
.byte 15,56,205,236
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 movdqa %xmm5,%xmm7
.byte 102,15,58,15,252,4
.byte 15,56,203,202
 paddd %xmm7,%xmm6

 movdqa 448-128(%rcx),%xmm0
 paddd %xmm5,%xmm0
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
.byte 15,56,205,245
 movdqa %xmm8,%xmm7
.byte 15,56,203,202

 movdqa 480-128(%rcx),%xmm0
 paddd %xmm6,%xmm0
 nop
.byte 15,56,203,209
 pshufd $0x0e,%xmm0,%xmm0
 decq %rdx
 nop
.byte 15,56,203,202

 paddd %xmm10,%xmm2
 paddd %xmm9,%xmm1
# WAS jnz .Loop_shaext
	jnz	.Loop_shaext_BCM_19

 pshufd $0xb1,%xmm2,%xmm2
 pshufd $0x1b,%xmm1,%xmm7
 pshufd $0xb1,%xmm1,%xmm1
 punpckhqdq %xmm2,%xmm1
.byte 102,15,58,15,215,8

 movdqu %xmm1,(%rdi)
 movdqu %xmm2,16(%rdi)
 .byte 0xf3,0xc3
.cfi_endproc
.size sha256_block_data_order_hw,.-sha256_block_data_order_hw
.globl sha256_block_data_order_ssse3
.hidden sha256_block_data_order_ssse3
.type sha256_block_data_order_ssse3,@function
.align 64
.Lsha256_block_data_order_ssse3_local_target:
sha256_block_data_order_ssse3:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 shlq $4,%rdx
 subq $96,%rsp
 leaq (%rsi,%rdx,4),%rdx
 andq $-64,%rsp
 movq %rdi,64+0(%rsp)
 movq %rsi,64+8(%rsp)
 movq %rdx,64+16(%rsp)
 movq %rax,88(%rsp)
.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08
.Lprologue_ssse3_BCM_19:


 movl 0(%rdi),%eax
 movl 4(%rdi),%ebx
 movl 8(%rdi),%ecx
 movl 12(%rdi),%edx
 movl 16(%rdi),%r8d
 movl 20(%rdi),%r9d
 movl 24(%rdi),%r10d
 movl 28(%rdi),%r11d


# WAS jmp .Lloop_ssse3
	jmp	.Lloop_ssse3_BCM_19
.align 16
.Lloop_ssse3_BCM_19:

# WAS movdqa K256+512(%rip),%xmm7
	movdqa	.LK256_local_target+512(%rip), %xmm7
 movdqu 0(%rsi),%xmm0
 movdqu 16(%rsi),%xmm1
 movdqu 32(%rsi),%xmm2
.byte 102,15,56,0,199
 movdqu 48(%rsi),%xmm3
# WAS leaq K256(%rip),%rbp
	leaq	.LK256_local_target(%rip), %rbp
.byte 102,15,56,0,207
 movdqa 0(%rbp),%xmm4
 movdqa 32(%rbp),%xmm5
.byte 102,15,56,0,215
 paddd %xmm0,%xmm4
 movdqa 64(%rbp),%xmm6
.byte 102,15,56,0,223
 movdqa 96(%rbp),%xmm7
 paddd %xmm1,%xmm5
 paddd %xmm2,%xmm6
 paddd %xmm3,%xmm7
 movdqa %xmm4,0(%rsp)
 movl %eax,%r14d
 movdqa %xmm5,16(%rsp)
 movl %ebx,%edi
 movdqa %xmm6,32(%rsp)
 xorl %ecx,%edi
 movdqa %xmm7,48(%rsp)
 movl %r8d,%r13d
# WAS jmp .Lssse3_00_47
	jmp	.Lssse3_00_47_BCM_19

.align 16
.Lssse3_00_47_BCM_19:

 subq $-128,%rbp
 rorl $14,%r13d
 movdqa %xmm1,%xmm4
 movl %r14d,%eax
 movl %r9d,%r12d
 movdqa %xmm3,%xmm7
 rorl $9,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 rorl $5,%r13d
 xorl %eax,%r14d
.byte 102,15,58,15,224,4
 andl %r8d,%r12d
 xorl %r8d,%r13d
.byte 102,15,58,15,250,4
 addl 0(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 rorl $11,%r14d
 movdqa %xmm4,%xmm5
 xorl %ebx,%r15d
 addl %r12d,%r11d
 movdqa %xmm4,%xmm6
 rorl $6,%r13d
 andl %r15d,%edi
 psrld $3,%xmm4
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 paddd %xmm7,%xmm0
 rorl $2,%r14d
 addl %r11d,%edx
 psrld $7,%xmm6
 addl %edi,%r11d
 movl %edx,%r13d
 pshufd $250,%xmm3,%xmm7
 addl %r11d,%r14d
 rorl $14,%r13d
 pslld $14,%xmm5
 movl %r14d,%r11d
 movl %r8d,%r12d
 pxor %xmm6,%xmm4
 rorl $9,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 rorl $5,%r13d
 psrld $11,%xmm6
 xorl %r11d,%r14d
 pxor %xmm5,%xmm4
 andl %edx,%r12d
 xorl %edx,%r13d
 pslld $11,%xmm5
 addl 4(%rsp),%r10d
 movl %r11d,%edi
 pxor %xmm6,%xmm4
 xorl %r9d,%r12d
 rorl $11,%r14d
 movdqa %xmm7,%xmm6
 xorl %eax,%edi
 addl %r12d,%r10d
 pxor %xmm5,%xmm4
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 psrld $10,%xmm7
 addl %r13d,%r10d
 xorl %eax,%r15d
 paddd %xmm4,%xmm0
 rorl $2,%r14d
 addl %r10d,%ecx
 psrlq $17,%xmm6
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 pxor %xmm6,%xmm7
 rorl $14,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 rorl $9,%r14d
 psrlq $2,%xmm6
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 pxor %xmm6,%xmm7
 rorl $5,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 pshufd $128,%xmm7,%xmm7
 xorl %ecx,%r13d
 addl 8(%rsp),%r9d
 movl %r10d,%r15d
 psrldq $8,%xmm7
 xorl %r8d,%r12d
 rorl $11,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 rorl $6,%r13d
 paddd %xmm7,%xmm0
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 pshufd $80,%xmm0,%xmm7
 xorl %r11d,%edi
 rorl $2,%r14d
 addl %r9d,%ebx
 movdqa %xmm7,%xmm6
 addl %edi,%r9d
 movl %ebx,%r13d
 psrld $10,%xmm7
 addl %r9d,%r14d
 rorl $14,%r13d
 psrlq $17,%xmm6
 movl %r14d,%r9d
 movl %ecx,%r12d
 pxor %xmm6,%xmm7
 rorl $9,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 rorl $5,%r13d
 xorl %r9d,%r14d
 psrlq $2,%xmm6
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 12(%rsp),%r8d
 pxor %xmm6,%xmm7
 movl %r9d,%edi
 xorl %edx,%r12d
 rorl $11,%r14d
 pshufd $8,%xmm7,%xmm7
 xorl %r10d,%edi
 addl %r12d,%r8d
 movdqa 0(%rbp),%xmm6
 rorl $6,%r13d
 andl %edi,%r15d
 pslldq $8,%xmm7
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 paddd %xmm7,%xmm0
 rorl $2,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 paddd %xmm0,%xmm6
 movl %eax,%r13d
 addl %r8d,%r14d
 movdqa %xmm6,0(%rsp)
 rorl $14,%r13d
 movdqa %xmm2,%xmm4
 movl %r14d,%r8d
 movl %ebx,%r12d
 movdqa %xmm0,%xmm7
 rorl $9,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 rorl $5,%r13d
 xorl %r8d,%r14d
.byte 102,15,58,15,225,4
 andl %eax,%r12d
 xorl %eax,%r13d
.byte 102,15,58,15,251,4
 addl 16(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 rorl $11,%r14d
 movdqa %xmm4,%xmm5
 xorl %r9d,%r15d
 addl %r12d,%edx
 movdqa %xmm4,%xmm6
 rorl $6,%r13d
 andl %r15d,%edi
 psrld $3,%xmm4
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 paddd %xmm7,%xmm1
 rorl $2,%r14d
 addl %edx,%r11d
 psrld $7,%xmm6
 addl %edi,%edx
 movl %r11d,%r13d
 pshufd $250,%xmm0,%xmm7
 addl %edx,%r14d
 rorl $14,%r13d
 pslld $14,%xmm5
 movl %r14d,%edx
 movl %eax,%r12d
 pxor %xmm6,%xmm4
 rorl $9,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 rorl $5,%r13d
 psrld $11,%xmm6
 xorl %edx,%r14d
 pxor %xmm5,%xmm4
 andl %r11d,%r12d
 xorl %r11d,%r13d
 pslld $11,%xmm5
 addl 20(%rsp),%ecx
 movl %edx,%edi
 pxor %xmm6,%xmm4
 xorl %ebx,%r12d
 rorl $11,%r14d
 movdqa %xmm7,%xmm6
 xorl %r8d,%edi
 addl %r12d,%ecx
 pxor %xmm5,%xmm4
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 psrld $10,%xmm7
 addl %r13d,%ecx
 xorl %r8d,%r15d
 paddd %xmm4,%xmm1
 rorl $2,%r14d
 addl %ecx,%r10d
 psrlq $17,%xmm6
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 pxor %xmm6,%xmm7
 rorl $14,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 rorl $9,%r14d
 psrlq $2,%xmm6
 xorl %r10d,%r13d
 xorl %eax,%r12d
 pxor %xmm6,%xmm7
 rorl $5,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 pshufd $128,%xmm7,%xmm7
 xorl %r10d,%r13d
 addl 24(%rsp),%ebx
 movl %ecx,%r15d
 psrldq $8,%xmm7
 xorl %eax,%r12d
 rorl $11,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 rorl $6,%r13d
 paddd %xmm7,%xmm1
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 pshufd $80,%xmm1,%xmm7
 xorl %edx,%edi
 rorl $2,%r14d
 addl %ebx,%r9d
 movdqa %xmm7,%xmm6
 addl %edi,%ebx
 movl %r9d,%r13d
 psrld $10,%xmm7
 addl %ebx,%r14d
 rorl $14,%r13d
 psrlq $17,%xmm6
 movl %r14d,%ebx
 movl %r10d,%r12d
 pxor %xmm6,%xmm7
 rorl $9,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 rorl $5,%r13d
 xorl %ebx,%r14d
 psrlq $2,%xmm6
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 28(%rsp),%eax
 pxor %xmm6,%xmm7
 movl %ebx,%edi
 xorl %r11d,%r12d
 rorl $11,%r14d
 pshufd $8,%xmm7,%xmm7
 xorl %ecx,%edi
 addl %r12d,%eax
 movdqa 32(%rbp),%xmm6
 rorl $6,%r13d
 andl %edi,%r15d
 pslldq $8,%xmm7
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 paddd %xmm7,%xmm1
 rorl $2,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 paddd %xmm1,%xmm6
 movl %r8d,%r13d
 addl %eax,%r14d
 movdqa %xmm6,16(%rsp)
 rorl $14,%r13d
 movdqa %xmm3,%xmm4
 movl %r14d,%eax
 movl %r9d,%r12d
 movdqa %xmm1,%xmm7
 rorl $9,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 rorl $5,%r13d
 xorl %eax,%r14d
.byte 102,15,58,15,226,4
 andl %r8d,%r12d
 xorl %r8d,%r13d
.byte 102,15,58,15,248,4
 addl 32(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 rorl $11,%r14d
 movdqa %xmm4,%xmm5
 xorl %ebx,%r15d
 addl %r12d,%r11d
 movdqa %xmm4,%xmm6
 rorl $6,%r13d
 andl %r15d,%edi
 psrld $3,%xmm4
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 paddd %xmm7,%xmm2
 rorl $2,%r14d
 addl %r11d,%edx
 psrld $7,%xmm6
 addl %edi,%r11d
 movl %edx,%r13d
 pshufd $250,%xmm1,%xmm7
 addl %r11d,%r14d
 rorl $14,%r13d
 pslld $14,%xmm5
 movl %r14d,%r11d
 movl %r8d,%r12d
 pxor %xmm6,%xmm4
 rorl $9,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 rorl $5,%r13d
 psrld $11,%xmm6
 xorl %r11d,%r14d
 pxor %xmm5,%xmm4
 andl %edx,%r12d
 xorl %edx,%r13d
 pslld $11,%xmm5
 addl 36(%rsp),%r10d
 movl %r11d,%edi
 pxor %xmm6,%xmm4
 xorl %r9d,%r12d
 rorl $11,%r14d
 movdqa %xmm7,%xmm6
 xorl %eax,%edi
 addl %r12d,%r10d
 pxor %xmm5,%xmm4
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 psrld $10,%xmm7
 addl %r13d,%r10d
 xorl %eax,%r15d
 paddd %xmm4,%xmm2
 rorl $2,%r14d
 addl %r10d,%ecx
 psrlq $17,%xmm6
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 pxor %xmm6,%xmm7
 rorl $14,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 rorl $9,%r14d
 psrlq $2,%xmm6
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 pxor %xmm6,%xmm7
 rorl $5,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 pshufd $128,%xmm7,%xmm7
 xorl %ecx,%r13d
 addl 40(%rsp),%r9d
 movl %r10d,%r15d
 psrldq $8,%xmm7
 xorl %r8d,%r12d
 rorl $11,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 rorl $6,%r13d
 paddd %xmm7,%xmm2
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 pshufd $80,%xmm2,%xmm7
 xorl %r11d,%edi
 rorl $2,%r14d
 addl %r9d,%ebx
 movdqa %xmm7,%xmm6
 addl %edi,%r9d
 movl %ebx,%r13d
 psrld $10,%xmm7
 addl %r9d,%r14d
 rorl $14,%r13d
 psrlq $17,%xmm6
 movl %r14d,%r9d
 movl %ecx,%r12d
 pxor %xmm6,%xmm7
 rorl $9,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 rorl $5,%r13d
 xorl %r9d,%r14d
 psrlq $2,%xmm6
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 44(%rsp),%r8d
 pxor %xmm6,%xmm7
 movl %r9d,%edi
 xorl %edx,%r12d
 rorl $11,%r14d
 pshufd $8,%xmm7,%xmm7
 xorl %r10d,%edi
 addl %r12d,%r8d
 movdqa 64(%rbp),%xmm6
 rorl $6,%r13d
 andl %edi,%r15d
 pslldq $8,%xmm7
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 paddd %xmm7,%xmm2
 rorl $2,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 paddd %xmm2,%xmm6
 movl %eax,%r13d
 addl %r8d,%r14d
 movdqa %xmm6,32(%rsp)
 rorl $14,%r13d
 movdqa %xmm0,%xmm4
 movl %r14d,%r8d
 movl %ebx,%r12d
 movdqa %xmm2,%xmm7
 rorl $9,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 rorl $5,%r13d
 xorl %r8d,%r14d
.byte 102,15,58,15,227,4
 andl %eax,%r12d
 xorl %eax,%r13d
.byte 102,15,58,15,249,4
 addl 48(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 rorl $11,%r14d
 movdqa %xmm4,%xmm5
 xorl %r9d,%r15d
 addl %r12d,%edx
 movdqa %xmm4,%xmm6
 rorl $6,%r13d
 andl %r15d,%edi
 psrld $3,%xmm4
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 paddd %xmm7,%xmm3
 rorl $2,%r14d
 addl %edx,%r11d
 psrld $7,%xmm6
 addl %edi,%edx
 movl %r11d,%r13d
 pshufd $250,%xmm2,%xmm7
 addl %edx,%r14d
 rorl $14,%r13d
 pslld $14,%xmm5
 movl %r14d,%edx
 movl %eax,%r12d
 pxor %xmm6,%xmm4
 rorl $9,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 rorl $5,%r13d
 psrld $11,%xmm6
 xorl %edx,%r14d
 pxor %xmm5,%xmm4
 andl %r11d,%r12d
 xorl %r11d,%r13d
 pslld $11,%xmm5
 addl 52(%rsp),%ecx
 movl %edx,%edi
 pxor %xmm6,%xmm4
 xorl %ebx,%r12d
 rorl $11,%r14d
 movdqa %xmm7,%xmm6
 xorl %r8d,%edi
 addl %r12d,%ecx
 pxor %xmm5,%xmm4
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 psrld $10,%xmm7
 addl %r13d,%ecx
 xorl %r8d,%r15d
 paddd %xmm4,%xmm3
 rorl $2,%r14d
 addl %ecx,%r10d
 psrlq $17,%xmm6
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 pxor %xmm6,%xmm7
 rorl $14,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 rorl $9,%r14d
 psrlq $2,%xmm6
 xorl %r10d,%r13d
 xorl %eax,%r12d
 pxor %xmm6,%xmm7
 rorl $5,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 pshufd $128,%xmm7,%xmm7
 xorl %r10d,%r13d
 addl 56(%rsp),%ebx
 movl %ecx,%r15d
 psrldq $8,%xmm7
 xorl %eax,%r12d
 rorl $11,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 rorl $6,%r13d
 paddd %xmm7,%xmm3
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 pshufd $80,%xmm3,%xmm7
 xorl %edx,%edi
 rorl $2,%r14d
 addl %ebx,%r9d
 movdqa %xmm7,%xmm6
 addl %edi,%ebx
 movl %r9d,%r13d
 psrld $10,%xmm7
 addl %ebx,%r14d
 rorl $14,%r13d
 psrlq $17,%xmm6
 movl %r14d,%ebx
 movl %r10d,%r12d
 pxor %xmm6,%xmm7
 rorl $9,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 rorl $5,%r13d
 xorl %ebx,%r14d
 psrlq $2,%xmm6
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 60(%rsp),%eax
 pxor %xmm6,%xmm7
 movl %ebx,%edi
 xorl %r11d,%r12d
 rorl $11,%r14d
 pshufd $8,%xmm7,%xmm7
 xorl %ecx,%edi
 addl %r12d,%eax
 movdqa 96(%rbp),%xmm6
 rorl $6,%r13d
 andl %edi,%r15d
 pslldq $8,%xmm7
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 paddd %xmm7,%xmm3
 rorl $2,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 paddd %xmm3,%xmm6
 movl %r8d,%r13d
 addl %eax,%r14d
 movdqa %xmm6,48(%rsp)
 cmpb $0,131(%rbp)
# WAS jne .Lssse3_00_47
	jne	.Lssse3_00_47_BCM_19
 rorl $14,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 rorl $9,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 rorl $5,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 xorl %r8d,%r13d
 addl 0(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 rorl $11,%r14d
 xorl %ebx,%r15d
 addl %r12d,%r11d
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 rorl $2,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 movl %edx,%r13d
 addl %r11d,%r14d
 rorl $14,%r13d
 movl %r14d,%r11d
 movl %r8d,%r12d
 rorl $9,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 rorl $5,%r13d
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 addl 4(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 rorl $11,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 addl %r13d,%r10d
 xorl %eax,%r15d
 rorl $2,%r14d
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 rorl $14,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 rorl $9,%r14d
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 rorl $5,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 8(%rsp),%r9d
 movl %r10d,%r15d
 xorl %r8d,%r12d
 rorl $11,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 xorl %r11d,%edi
 rorl $2,%r14d
 addl %r9d,%ebx
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 rorl $14,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 rorl $9,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 rorl $5,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 12(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 rorl $11,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 rorl $2,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 rorl $14,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 rorl $9,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 rorl $5,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 xorl %eax,%r13d
 addl 16(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 rorl $11,%r14d
 xorl %r9d,%r15d
 addl %r12d,%edx
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 rorl $2,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 movl %r11d,%r13d
 addl %edx,%r14d
 rorl $14,%r13d
 movl %r14d,%edx
 movl %eax,%r12d
 rorl $9,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 rorl $5,%r13d
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 addl 20(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 rorl $11,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 addl %r13d,%ecx
 xorl %r8d,%r15d
 rorl $2,%r14d
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 rorl $14,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 rorl $9,%r14d
 xorl %r10d,%r13d
 xorl %eax,%r12d
 rorl $5,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 24(%rsp),%ebx
 movl %ecx,%r15d
 xorl %eax,%r12d
 rorl $11,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 xorl %edx,%edi
 rorl $2,%r14d
 addl %ebx,%r9d
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 rorl $14,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 rorl $9,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 rorl $5,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 28(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 rorl $11,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 rorl $2,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 rorl $14,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 rorl $9,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 rorl $5,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 xorl %r8d,%r13d
 addl 32(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 rorl $11,%r14d
 xorl %ebx,%r15d
 addl %r12d,%r11d
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 rorl $2,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 movl %edx,%r13d
 addl %r11d,%r14d
 rorl $14,%r13d
 movl %r14d,%r11d
 movl %r8d,%r12d
 rorl $9,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 rorl $5,%r13d
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 addl 36(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 rorl $11,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 addl %r13d,%r10d
 xorl %eax,%r15d
 rorl $2,%r14d
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 rorl $14,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 rorl $9,%r14d
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 rorl $5,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 40(%rsp),%r9d
 movl %r10d,%r15d
 xorl %r8d,%r12d
 rorl $11,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 xorl %r11d,%edi
 rorl $2,%r14d
 addl %r9d,%ebx
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 rorl $14,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 rorl $9,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 rorl $5,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 44(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 rorl $11,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 rorl $2,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 rorl $14,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 rorl $9,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 rorl $5,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 xorl %eax,%r13d
 addl 48(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 rorl $11,%r14d
 xorl %r9d,%r15d
 addl %r12d,%edx
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 rorl $2,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 movl %r11d,%r13d
 addl %edx,%r14d
 rorl $14,%r13d
 movl %r14d,%edx
 movl %eax,%r12d
 rorl $9,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 rorl $5,%r13d
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 addl 52(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 rorl $11,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 addl %r13d,%ecx
 xorl %r8d,%r15d
 rorl $2,%r14d
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 rorl $14,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 rorl $9,%r14d
 xorl %r10d,%r13d
 xorl %eax,%r12d
 rorl $5,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 56(%rsp),%ebx
 movl %ecx,%r15d
 xorl %eax,%r12d
 rorl $11,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 rorl $6,%r13d
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 xorl %edx,%edi
 rorl $2,%r14d
 addl %ebx,%r9d
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 rorl $14,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 rorl $9,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 rorl $5,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 60(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 rorl $11,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 rorl $6,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 rorl $2,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 movq 64+0(%rsp),%rdi
 movl %r14d,%eax

 addl 0(%rdi),%eax
 leaq 64(%rsi),%rsi
 addl 4(%rdi),%ebx
 addl 8(%rdi),%ecx
 addl 12(%rdi),%edx
 addl 16(%rdi),%r8d
 addl 20(%rdi),%r9d
 addl 24(%rdi),%r10d
 addl 28(%rdi),%r11d

 cmpq 64+16(%rsp),%rsi

 movl %eax,0(%rdi)
 movl %ebx,4(%rdi)
 movl %ecx,8(%rdi)
 movl %edx,12(%rdi)
 movl %r8d,16(%rdi)
 movl %r9d,20(%rdi)
 movl %r10d,24(%rdi)
 movl %r11d,28(%rdi)
# WAS jb .Lloop_ssse3
	jb	.Lloop_ssse3_BCM_19

 movq 88(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_ssse3_BCM_19:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha256_block_data_order_ssse3,.-sha256_block_data_order_ssse3
.globl sha256_block_data_order_avx
.hidden sha256_block_data_order_avx
.type sha256_block_data_order_avx,@function
.align 64
.Lsha256_block_data_order_avx_local_target:
sha256_block_data_order_avx:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 shlq $4,%rdx
 subq $96,%rsp
 leaq (%rsi,%rdx,4),%rdx
 andq $-64,%rsp
 movq %rdi,64+0(%rsp)
 movq %rsi,64+8(%rsp)
 movq %rdx,64+16(%rsp)
 movq %rax,88(%rsp)
.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08
.Lprologue_avx_BCM_19:


 vzeroupper
 movl 0(%rdi),%eax
 movl 4(%rdi),%ebx
 movl 8(%rdi),%ecx
 movl 12(%rdi),%edx
 movl 16(%rdi),%r8d
 movl 20(%rdi),%r9d
 movl 24(%rdi),%r10d
 movl 28(%rdi),%r11d
# WAS vmovdqa K256+512+32(%rip),%xmm8
	vmovdqa	.LK256_local_target+512+32(%rip), %xmm8
# WAS vmovdqa K256+512+64(%rip),%xmm9
	vmovdqa	.LK256_local_target+512+64(%rip), %xmm9
# WAS jmp .Lloop_avx
	jmp	.Lloop_avx_BCM_19
.align 16
.Lloop_avx_BCM_19:

# WAS vmovdqa K256+512(%rip),%xmm7
	vmovdqa	.LK256_local_target+512(%rip), %xmm7
 vmovdqu 0(%rsi),%xmm0
 vmovdqu 16(%rsi),%xmm1
 vmovdqu 32(%rsi),%xmm2
 vmovdqu 48(%rsi),%xmm3
 vpshufb %xmm7,%xmm0,%xmm0
# WAS leaq K256(%rip),%rbp
	leaq	.LK256_local_target(%rip), %rbp
 vpshufb %xmm7,%xmm1,%xmm1
 vpshufb %xmm7,%xmm2,%xmm2
 vpaddd 0(%rbp),%xmm0,%xmm4
 vpshufb %xmm7,%xmm3,%xmm3
 vpaddd 32(%rbp),%xmm1,%xmm5
 vpaddd 64(%rbp),%xmm2,%xmm6
 vpaddd 96(%rbp),%xmm3,%xmm7
 vmovdqa %xmm4,0(%rsp)
 movl %eax,%r14d
 vmovdqa %xmm5,16(%rsp)
 movl %ebx,%edi
 vmovdqa %xmm6,32(%rsp)
 xorl %ecx,%edi
 vmovdqa %xmm7,48(%rsp)
 movl %r8d,%r13d
# WAS jmp .Lavx_00_47
	jmp	.Lavx_00_47_BCM_19

.align 16
.Lavx_00_47_BCM_19:

 subq $-128,%rbp
 vpalignr $4,%xmm0,%xmm1,%xmm4
 shrdl $14,%r13d,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 vpalignr $4,%xmm2,%xmm3,%xmm7
 shrdl $9,%r14d,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 vpsrld $7,%xmm4,%xmm6
 shrdl $5,%r13d,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 vpaddd %xmm7,%xmm0,%xmm0
 xorl %r8d,%r13d
 addl 0(%rsp),%r11d
 movl %eax,%r15d
 vpsrld $3,%xmm4,%xmm7
 xorl %r10d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ebx,%r15d
 vpslld $14,%xmm4,%xmm5
 addl %r12d,%r11d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 vpxor %xmm6,%xmm7,%xmm4
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 vpshufd $250,%xmm3,%xmm7
 shrdl $2,%r14d,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 vpsrld $11,%xmm6,%xmm6
 movl %edx,%r13d
 addl %r11d,%r14d
 shrdl $14,%r13d,%r13d
 vpxor %xmm5,%xmm4,%xmm4
 movl %r14d,%r11d
 movl %r8d,%r12d
 shrdl $9,%r14d,%r14d
 vpslld $11,%xmm5,%xmm5
 xorl %edx,%r13d
 xorl %r9d,%r12d
 shrdl $5,%r13d,%r13d
 vpxor %xmm6,%xmm4,%xmm4
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 vpsrld $10,%xmm7,%xmm6
 addl 4(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 vpxor %xmm5,%xmm4,%xmm4
 shrdl $11,%r14d,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 vpsrlq $17,%xmm7,%xmm7
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 vpaddd %xmm4,%xmm0,%xmm0
 addl %r13d,%r10d
 xorl %eax,%r15d
 shrdl $2,%r14d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 vpsrlq $2,%xmm7,%xmm7
 addl %r10d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r10d
 vpxor %xmm7,%xmm6,%xmm6
 movl %edx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ecx,%r13d
 vpshufb %xmm8,%xmm6,%xmm6
 xorl %r8d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r10d,%r14d
 vpaddd %xmm6,%xmm0,%xmm0
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 8(%rsp),%r9d
 vpshufd $80,%xmm0,%xmm7
 movl %r10d,%r15d
 xorl %r8d,%r12d
 shrdl $11,%r14d,%r14d
 vpsrld $10,%xmm7,%xmm6
 xorl %r11d,%r15d
 addl %r12d,%r9d
 shrdl $6,%r13d,%r13d
 vpsrlq $17,%xmm7,%xmm7
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 vpxor %xmm7,%xmm6,%xmm6
 xorl %r11d,%edi
 shrdl $2,%r14d,%r14d
 addl %r9d,%ebx
 vpsrlq $2,%xmm7,%xmm7
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 shrdl $14,%r13d,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 vpshufb %xmm9,%xmm6,%xmm6
 shrdl $9,%r14d,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 vpaddd %xmm6,%xmm0,%xmm0
 shrdl $5,%r13d,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 vpaddd 0(%rbp),%xmm0,%xmm6
 xorl %ebx,%r13d
 addl 12(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 shrdl $2,%r14d,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 vmovdqa %xmm6,0(%rsp)
 vpalignr $4,%xmm1,%xmm2,%xmm4
 shrdl $14,%r13d,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 vpalignr $4,%xmm3,%xmm0,%xmm7
 shrdl $9,%r14d,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 vpsrld $7,%xmm4,%xmm6
 shrdl $5,%r13d,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 vpaddd %xmm7,%xmm1,%xmm1
 xorl %eax,%r13d
 addl 16(%rsp),%edx
 movl %r8d,%r15d
 vpsrld $3,%xmm4,%xmm7
 xorl %ecx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r9d,%r15d
 vpslld $14,%xmm4,%xmm5
 addl %r12d,%edx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 vpxor %xmm6,%xmm7,%xmm4
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 vpshufd $250,%xmm0,%xmm7
 shrdl $2,%r14d,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 vpsrld $11,%xmm6,%xmm6
 movl %r11d,%r13d
 addl %edx,%r14d
 shrdl $14,%r13d,%r13d
 vpxor %xmm5,%xmm4,%xmm4
 movl %r14d,%edx
 movl %eax,%r12d
 shrdl $9,%r14d,%r14d
 vpslld $11,%xmm5,%xmm5
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 shrdl $5,%r13d,%r13d
 vpxor %xmm6,%xmm4,%xmm4
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 vpsrld $10,%xmm7,%xmm6
 addl 20(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 vpxor %xmm5,%xmm4,%xmm4
 shrdl $11,%r14d,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 vpsrlq $17,%xmm7,%xmm7
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 vpaddd %xmm4,%xmm1,%xmm1
 addl %r13d,%ecx
 xorl %r8d,%r15d
 shrdl $2,%r14d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 vpsrlq $2,%xmm7,%xmm7
 addl %ecx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ecx
 vpxor %xmm7,%xmm6,%xmm6
 movl %r11d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r10d,%r13d
 vpshufb %xmm8,%xmm6,%xmm6
 xorl %eax,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ecx,%r14d
 vpaddd %xmm6,%xmm1,%xmm1
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 24(%rsp),%ebx
 vpshufd $80,%xmm1,%xmm7
 movl %ecx,%r15d
 xorl %eax,%r12d
 shrdl $11,%r14d,%r14d
 vpsrld $10,%xmm7,%xmm6
 xorl %edx,%r15d
 addl %r12d,%ebx
 shrdl $6,%r13d,%r13d
 vpsrlq $17,%xmm7,%xmm7
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 vpxor %xmm7,%xmm6,%xmm6
 xorl %edx,%edi
 shrdl $2,%r14d,%r14d
 addl %ebx,%r9d
 vpsrlq $2,%xmm7,%xmm7
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 shrdl $14,%r13d,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 vpshufb %xmm9,%xmm6,%xmm6
 shrdl $9,%r14d,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 vpaddd %xmm6,%xmm1,%xmm1
 shrdl $5,%r13d,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 vpaddd 32(%rbp),%xmm1,%xmm6
 xorl %r9d,%r13d
 addl 28(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 shrdl $2,%r14d,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 vmovdqa %xmm6,16(%rsp)
 vpalignr $4,%xmm2,%xmm3,%xmm4
 shrdl $14,%r13d,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 vpalignr $4,%xmm0,%xmm1,%xmm7
 shrdl $9,%r14d,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 vpsrld $7,%xmm4,%xmm6
 shrdl $5,%r13d,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 vpaddd %xmm7,%xmm2,%xmm2
 xorl %r8d,%r13d
 addl 32(%rsp),%r11d
 movl %eax,%r15d
 vpsrld $3,%xmm4,%xmm7
 xorl %r10d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ebx,%r15d
 vpslld $14,%xmm4,%xmm5
 addl %r12d,%r11d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 vpxor %xmm6,%xmm7,%xmm4
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 vpshufd $250,%xmm1,%xmm7
 shrdl $2,%r14d,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 vpsrld $11,%xmm6,%xmm6
 movl %edx,%r13d
 addl %r11d,%r14d
 shrdl $14,%r13d,%r13d
 vpxor %xmm5,%xmm4,%xmm4
 movl %r14d,%r11d
 movl %r8d,%r12d
 shrdl $9,%r14d,%r14d
 vpslld $11,%xmm5,%xmm5
 xorl %edx,%r13d
 xorl %r9d,%r12d
 shrdl $5,%r13d,%r13d
 vpxor %xmm6,%xmm4,%xmm4
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 vpsrld $10,%xmm7,%xmm6
 addl 36(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 vpxor %xmm5,%xmm4,%xmm4
 shrdl $11,%r14d,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 vpsrlq $17,%xmm7,%xmm7
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 vpaddd %xmm4,%xmm2,%xmm2
 addl %r13d,%r10d
 xorl %eax,%r15d
 shrdl $2,%r14d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 vpsrlq $2,%xmm7,%xmm7
 addl %r10d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r10d
 vpxor %xmm7,%xmm6,%xmm6
 movl %edx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ecx,%r13d
 vpshufb %xmm8,%xmm6,%xmm6
 xorl %r8d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r10d,%r14d
 vpaddd %xmm6,%xmm2,%xmm2
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 40(%rsp),%r9d
 vpshufd $80,%xmm2,%xmm7
 movl %r10d,%r15d
 xorl %r8d,%r12d
 shrdl $11,%r14d,%r14d
 vpsrld $10,%xmm7,%xmm6
 xorl %r11d,%r15d
 addl %r12d,%r9d
 shrdl $6,%r13d,%r13d
 vpsrlq $17,%xmm7,%xmm7
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 vpxor %xmm7,%xmm6,%xmm6
 xorl %r11d,%edi
 shrdl $2,%r14d,%r14d
 addl %r9d,%ebx
 vpsrlq $2,%xmm7,%xmm7
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 shrdl $14,%r13d,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 vpshufb %xmm9,%xmm6,%xmm6
 shrdl $9,%r14d,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 vpaddd %xmm6,%xmm2,%xmm2
 shrdl $5,%r13d,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 vpaddd 64(%rbp),%xmm2,%xmm6
 xorl %ebx,%r13d
 addl 44(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 shrdl $2,%r14d,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 vmovdqa %xmm6,32(%rsp)
 vpalignr $4,%xmm3,%xmm0,%xmm4
 shrdl $14,%r13d,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 vpalignr $4,%xmm1,%xmm2,%xmm7
 shrdl $9,%r14d,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 vpsrld $7,%xmm4,%xmm6
 shrdl $5,%r13d,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 vpaddd %xmm7,%xmm3,%xmm3
 xorl %eax,%r13d
 addl 48(%rsp),%edx
 movl %r8d,%r15d
 vpsrld $3,%xmm4,%xmm7
 xorl %ecx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r9d,%r15d
 vpslld $14,%xmm4,%xmm5
 addl %r12d,%edx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 vpxor %xmm6,%xmm7,%xmm4
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 vpshufd $250,%xmm2,%xmm7
 shrdl $2,%r14d,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 vpsrld $11,%xmm6,%xmm6
 movl %r11d,%r13d
 addl %edx,%r14d
 shrdl $14,%r13d,%r13d
 vpxor %xmm5,%xmm4,%xmm4
 movl %r14d,%edx
 movl %eax,%r12d
 shrdl $9,%r14d,%r14d
 vpslld $11,%xmm5,%xmm5
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 shrdl $5,%r13d,%r13d
 vpxor %xmm6,%xmm4,%xmm4
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 vpsrld $10,%xmm7,%xmm6
 addl 52(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 vpxor %xmm5,%xmm4,%xmm4
 shrdl $11,%r14d,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 vpsrlq $17,%xmm7,%xmm7
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 vpaddd %xmm4,%xmm3,%xmm3
 addl %r13d,%ecx
 xorl %r8d,%r15d
 shrdl $2,%r14d,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 vpsrlq $2,%xmm7,%xmm7
 addl %ecx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ecx
 vpxor %xmm7,%xmm6,%xmm6
 movl %r11d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r10d,%r13d
 vpshufb %xmm8,%xmm6,%xmm6
 xorl %eax,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ecx,%r14d
 vpaddd %xmm6,%xmm3,%xmm3
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 56(%rsp),%ebx
 vpshufd $80,%xmm3,%xmm7
 movl %ecx,%r15d
 xorl %eax,%r12d
 shrdl $11,%r14d,%r14d
 vpsrld $10,%xmm7,%xmm6
 xorl %edx,%r15d
 addl %r12d,%ebx
 shrdl $6,%r13d,%r13d
 vpsrlq $17,%xmm7,%xmm7
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 vpxor %xmm7,%xmm6,%xmm6
 xorl %edx,%edi
 shrdl $2,%r14d,%r14d
 addl %ebx,%r9d
 vpsrlq $2,%xmm7,%xmm7
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 vpxor %xmm7,%xmm6,%xmm6
 shrdl $14,%r13d,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 vpshufb %xmm9,%xmm6,%xmm6
 shrdl $9,%r14d,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 vpaddd %xmm6,%xmm3,%xmm3
 shrdl $5,%r13d,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 vpaddd 96(%rbp),%xmm3,%xmm6
 xorl %r9d,%r13d
 addl 60(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 shrdl $2,%r14d,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 vmovdqa %xmm6,48(%rsp)
 cmpb $0,131(%rbp)
# WAS jne .Lavx_00_47
	jne	.Lavx_00_47_BCM_19
 shrdl $14,%r13d,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 xorl %r8d,%r13d
 addl 0(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ebx,%r15d
 addl %r12d,%r11d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 shrdl $2,%r14d,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 movl %edx,%r13d
 addl %r11d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r11d
 movl %r8d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 addl 4(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 addl %r13d,%r10d
 xorl %eax,%r15d
 shrdl $2,%r14d,%r14d
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 8(%rsp),%r9d
 movl %r10d,%r15d
 xorl %r8d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 xorl %r11d,%edi
 shrdl $2,%r14d,%r14d
 addl %r9d,%ebx
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 12(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 shrdl $2,%r14d,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 xorl %eax,%r13d
 addl 16(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r9d,%r15d
 addl %r12d,%edx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 shrdl $2,%r14d,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 movl %r11d,%r13d
 addl %edx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%edx
 movl %eax,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 addl 20(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 addl %r13d,%ecx
 xorl %r8d,%r15d
 shrdl $2,%r14d,%r14d
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r10d,%r13d
 xorl %eax,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 24(%rsp),%ebx
 movl %ecx,%r15d
 xorl %eax,%r12d
 shrdl $11,%r14d,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 xorl %edx,%edi
 shrdl $2,%r14d,%r14d
 addl %ebx,%r9d
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 28(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 shrdl $2,%r14d,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%eax
 movl %r9d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r8d,%r13d
 xorl %r10d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %eax,%r14d
 andl %r8d,%r12d
 xorl %r8d,%r13d
 addl 32(%rsp),%r11d
 movl %eax,%r15d
 xorl %r10d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ebx,%r15d
 addl %r12d,%r11d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %eax,%r14d
 addl %r13d,%r11d
 xorl %ebx,%edi
 shrdl $2,%r14d,%r14d
 addl %r11d,%edx
 addl %edi,%r11d
 movl %edx,%r13d
 addl %r11d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r11d
 movl %r8d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %edx,%r13d
 xorl %r9d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r11d,%r14d
 andl %edx,%r12d
 xorl %edx,%r13d
 addl 36(%rsp),%r10d
 movl %r11d,%edi
 xorl %r9d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %eax,%edi
 addl %r12d,%r10d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r11d,%r14d
 addl %r13d,%r10d
 xorl %eax,%r15d
 shrdl $2,%r14d,%r14d
 addl %r10d,%ecx
 addl %r15d,%r10d
 movl %ecx,%r13d
 addl %r10d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r10d
 movl %edx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ecx,%r13d
 xorl %r8d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r10d,%r14d
 andl %ecx,%r12d
 xorl %ecx,%r13d
 addl 40(%rsp),%r9d
 movl %r10d,%r15d
 xorl %r8d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r11d,%r15d
 addl %r12d,%r9d
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %r10d,%r14d
 addl %r13d,%r9d
 xorl %r11d,%edi
 shrdl $2,%r14d,%r14d
 addl %r9d,%ebx
 addl %edi,%r9d
 movl %ebx,%r13d
 addl %r9d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r9d
 movl %ecx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %ebx,%r13d
 xorl %edx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r9d,%r14d
 andl %ebx,%r12d
 xorl %ebx,%r13d
 addl 44(%rsp),%r8d
 movl %r9d,%edi
 xorl %edx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r10d,%edi
 addl %r12d,%r8d
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %r9d,%r14d
 addl %r13d,%r8d
 xorl %r10d,%r15d
 shrdl $2,%r14d,%r14d
 addl %r8d,%eax
 addl %r15d,%r8d
 movl %eax,%r13d
 addl %r8d,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%r8d
 movl %ebx,%r12d
 shrdl $9,%r14d,%r14d
 xorl %eax,%r13d
 xorl %ecx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %r8d,%r14d
 andl %eax,%r12d
 xorl %eax,%r13d
 addl 48(%rsp),%edx
 movl %r8d,%r15d
 xorl %ecx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r9d,%r15d
 addl %r12d,%edx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %r8d,%r14d
 addl %r13d,%edx
 xorl %r9d,%edi
 shrdl $2,%r14d,%r14d
 addl %edx,%r11d
 addl %edi,%edx
 movl %r11d,%r13d
 addl %edx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%edx
 movl %eax,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r11d,%r13d
 xorl %ebx,%r12d
 shrdl $5,%r13d,%r13d
 xorl %edx,%r14d
 andl %r11d,%r12d
 xorl %r11d,%r13d
 addl 52(%rsp),%ecx
 movl %edx,%edi
 xorl %ebx,%r12d
 shrdl $11,%r14d,%r14d
 xorl %r8d,%edi
 addl %r12d,%ecx
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %edx,%r14d
 addl %r13d,%ecx
 xorl %r8d,%r15d
 shrdl $2,%r14d,%r14d
 addl %ecx,%r10d
 addl %r15d,%ecx
 movl %r10d,%r13d
 addl %ecx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ecx
 movl %r11d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r10d,%r13d
 xorl %eax,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ecx,%r14d
 andl %r10d,%r12d
 xorl %r10d,%r13d
 addl 56(%rsp),%ebx
 movl %ecx,%r15d
 xorl %eax,%r12d
 shrdl $11,%r14d,%r14d
 xorl %edx,%r15d
 addl %r12d,%ebx
 shrdl $6,%r13d,%r13d
 andl %r15d,%edi
 xorl %ecx,%r14d
 addl %r13d,%ebx
 xorl %edx,%edi
 shrdl $2,%r14d,%r14d
 addl %ebx,%r9d
 addl %edi,%ebx
 movl %r9d,%r13d
 addl %ebx,%r14d
 shrdl $14,%r13d,%r13d
 movl %r14d,%ebx
 movl %r10d,%r12d
 shrdl $9,%r14d,%r14d
 xorl %r9d,%r13d
 xorl %r11d,%r12d
 shrdl $5,%r13d,%r13d
 xorl %ebx,%r14d
 andl %r9d,%r12d
 xorl %r9d,%r13d
 addl 60(%rsp),%eax
 movl %ebx,%edi
 xorl %r11d,%r12d
 shrdl $11,%r14d,%r14d
 xorl %ecx,%edi
 addl %r12d,%eax
 shrdl $6,%r13d,%r13d
 andl %edi,%r15d
 xorl %ebx,%r14d
 addl %r13d,%eax
 xorl %ecx,%r15d
 shrdl $2,%r14d,%r14d
 addl %eax,%r8d
 addl %r15d,%eax
 movl %r8d,%r13d
 addl %eax,%r14d
 movq 64+0(%rsp),%rdi
 movl %r14d,%eax

 addl 0(%rdi),%eax
 leaq 64(%rsi),%rsi
 addl 4(%rdi),%ebx
 addl 8(%rdi),%ecx
 addl 12(%rdi),%edx
 addl 16(%rdi),%r8d
 addl 20(%rdi),%r9d
 addl 24(%rdi),%r10d
 addl 28(%rdi),%r11d

 cmpq 64+16(%rsp),%rsi

 movl %eax,0(%rdi)
 movl %ebx,4(%rdi)
 movl %ecx,8(%rdi)
 movl %edx,12(%rdi)
 movl %r8d,16(%rdi)
 movl %r9d,20(%rdi)
 movl %r10d,24(%rdi)
 movl %r11d,28(%rdi)
# WAS jb .Lloop_avx
	jb	.Lloop_avx_BCM_19

 movq 88(%rsp),%rsi
.cfi_def_cfa %rsi,8
 vzeroupper
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_avx_BCM_19:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha256_block_data_order_avx,.-sha256_block_data_order_avx
# 0 "sha512-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "sha512-x86_64.S"



#include <openssl/asm_base.h>
# 4 "sha512-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "sha512-x86_64.S" 2


.text

.globl sha512_block_data_order_nohw
.hidden sha512_block_data_order_nohw
.type sha512_block_data_order_nohw,@function
.align 16
.Lsha512_block_data_order_nohw_local_target:
sha512_block_data_order_nohw:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 shlq $4,%rdx
 subq $128+32,%rsp
 leaq (%rsi,%rdx,8),%rdx
 andq $-64,%rsp
 movq %rdi,128+0(%rsp)
 movq %rsi,128+8(%rsp)
 movq %rdx,128+16(%rsp)
 movq %rax,152(%rsp)
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
.Lprologue_BCM_20:


 movq 0(%rdi),%rax
 movq 8(%rdi),%rbx
 movq 16(%rdi),%rcx
 movq 24(%rdi),%rdx
 movq 32(%rdi),%r8
 movq 40(%rdi),%r9
 movq 48(%rdi),%r10
 movq 56(%rdi),%r11
# WAS jmp .Lloop
	jmp	.Lloop_BCM_20

.align 16
.Lloop_BCM_20:

 movq %rbx,%rdi
# WAS leaq K512(%rip),%rbp
	leaq	.LK512_local_target(%rip), %rbp
 xorq %rcx,%rdi
 movq 0(%rsi),%r12
 movq %r8,%r13
 movq %rax,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r9,%r15

 xorq %r8,%r13
 rorq $5,%r14
 xorq %r10,%r15

 movq %r12,0(%rsp)
 xorq %rax,%r14
 andq %r8,%r15

 rorq $4,%r13
 addq %r11,%r12
 xorq %r10,%r15

 rorq $6,%r14
 xorq %r8,%r13
 addq %r15,%r12

 movq %rax,%r15
 addq (%rbp),%r12
 xorq %rax,%r14

 xorq %rbx,%r15
 rorq $14,%r13
 movq %rbx,%r11

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r11
 addq %r12,%rdx
 addq %r12,%r11

 leaq 8(%rbp),%rbp
 addq %r14,%r11
 movq 8(%rsi),%r12
 movq %rdx,%r13
 movq %r11,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r8,%rdi

 xorq %rdx,%r13
 rorq $5,%r14
 xorq %r9,%rdi

 movq %r12,8(%rsp)
 xorq %r11,%r14
 andq %rdx,%rdi

 rorq $4,%r13
 addq %r10,%r12
 xorq %r9,%rdi

 rorq $6,%r14
 xorq %rdx,%r13
 addq %rdi,%r12

 movq %r11,%rdi
 addq (%rbp),%r12
 xorq %r11,%r14

 xorq %rax,%rdi
 rorq $14,%r13
 movq %rax,%r10

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r10
 addq %r12,%rcx
 addq %r12,%r10

 leaq 24(%rbp),%rbp
 addq %r14,%r10
 movq 16(%rsi),%r12
 movq %rcx,%r13
 movq %r10,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rdx,%r15

 xorq %rcx,%r13
 rorq $5,%r14
 xorq %r8,%r15

 movq %r12,16(%rsp)
 xorq %r10,%r14
 andq %rcx,%r15

 rorq $4,%r13
 addq %r9,%r12
 xorq %r8,%r15

 rorq $6,%r14
 xorq %rcx,%r13
 addq %r15,%r12

 movq %r10,%r15
 addq (%rbp),%r12
 xorq %r10,%r14

 xorq %r11,%r15
 rorq $14,%r13
 movq %r11,%r9

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r9
 addq %r12,%rbx
 addq %r12,%r9

 leaq 8(%rbp),%rbp
 addq %r14,%r9
 movq 24(%rsi),%r12
 movq %rbx,%r13
 movq %r9,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rcx,%rdi

 xorq %rbx,%r13
 rorq $5,%r14
 xorq %rdx,%rdi

 movq %r12,24(%rsp)
 xorq %r9,%r14
 andq %rbx,%rdi

 rorq $4,%r13
 addq %r8,%r12
 xorq %rdx,%rdi

 rorq $6,%r14
 xorq %rbx,%r13
 addq %rdi,%r12

 movq %r9,%rdi
 addq (%rbp),%r12
 xorq %r9,%r14

 xorq %r10,%rdi
 rorq $14,%r13
 movq %r10,%r8

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r8
 addq %r12,%rax
 addq %r12,%r8

 leaq 24(%rbp),%rbp
 addq %r14,%r8
 movq 32(%rsi),%r12
 movq %rax,%r13
 movq %r8,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rbx,%r15

 xorq %rax,%r13
 rorq $5,%r14
 xorq %rcx,%r15

 movq %r12,32(%rsp)
 xorq %r8,%r14
 andq %rax,%r15

 rorq $4,%r13
 addq %rdx,%r12
 xorq %rcx,%r15

 rorq $6,%r14
 xorq %rax,%r13
 addq %r15,%r12

 movq %r8,%r15
 addq (%rbp),%r12
 xorq %r8,%r14

 xorq %r9,%r15
 rorq $14,%r13
 movq %r9,%rdx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rdx
 addq %r12,%r11
 addq %r12,%rdx

 leaq 8(%rbp),%rbp
 addq %r14,%rdx
 movq 40(%rsi),%r12
 movq %r11,%r13
 movq %rdx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rax,%rdi

 xorq %r11,%r13
 rorq $5,%r14
 xorq %rbx,%rdi

 movq %r12,40(%rsp)
 xorq %rdx,%r14
 andq %r11,%rdi

 rorq $4,%r13
 addq %rcx,%r12
 xorq %rbx,%rdi

 rorq $6,%r14
 xorq %r11,%r13
 addq %rdi,%r12

 movq %rdx,%rdi
 addq (%rbp),%r12
 xorq %rdx,%r14

 xorq %r8,%rdi
 rorq $14,%r13
 movq %r8,%rcx

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rcx
 addq %r12,%r10
 addq %r12,%rcx

 leaq 24(%rbp),%rbp
 addq %r14,%rcx
 movq 48(%rsi),%r12
 movq %r10,%r13
 movq %rcx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r11,%r15

 xorq %r10,%r13
 rorq $5,%r14
 xorq %rax,%r15

 movq %r12,48(%rsp)
 xorq %rcx,%r14
 andq %r10,%r15

 rorq $4,%r13
 addq %rbx,%r12
 xorq %rax,%r15

 rorq $6,%r14
 xorq %r10,%r13
 addq %r15,%r12

 movq %rcx,%r15
 addq (%rbp),%r12
 xorq %rcx,%r14

 xorq %rdx,%r15
 rorq $14,%r13
 movq %rdx,%rbx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rbx
 addq %r12,%r9
 addq %r12,%rbx

 leaq 8(%rbp),%rbp
 addq %r14,%rbx
 movq 56(%rsi),%r12
 movq %r9,%r13
 movq %rbx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r10,%rdi

 xorq %r9,%r13
 rorq $5,%r14
 xorq %r11,%rdi

 movq %r12,56(%rsp)
 xorq %rbx,%r14
 andq %r9,%rdi

 rorq $4,%r13
 addq %rax,%r12
 xorq %r11,%rdi

 rorq $6,%r14
 xorq %r9,%r13
 addq %rdi,%r12

 movq %rbx,%rdi
 addq (%rbp),%r12
 xorq %rbx,%r14

 xorq %rcx,%rdi
 rorq $14,%r13
 movq %rcx,%rax

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rax
 addq %r12,%r8
 addq %r12,%rax

 leaq 24(%rbp),%rbp
 addq %r14,%rax
 movq 64(%rsi),%r12
 movq %r8,%r13
 movq %rax,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r9,%r15

 xorq %r8,%r13
 rorq $5,%r14
 xorq %r10,%r15

 movq %r12,64(%rsp)
 xorq %rax,%r14
 andq %r8,%r15

 rorq $4,%r13
 addq %r11,%r12
 xorq %r10,%r15

 rorq $6,%r14
 xorq %r8,%r13
 addq %r15,%r12

 movq %rax,%r15
 addq (%rbp),%r12
 xorq %rax,%r14

 xorq %rbx,%r15
 rorq $14,%r13
 movq %rbx,%r11

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r11
 addq %r12,%rdx
 addq %r12,%r11

 leaq 8(%rbp),%rbp
 addq %r14,%r11
 movq 72(%rsi),%r12
 movq %rdx,%r13
 movq %r11,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r8,%rdi

 xorq %rdx,%r13
 rorq $5,%r14
 xorq %r9,%rdi

 movq %r12,72(%rsp)
 xorq %r11,%r14
 andq %rdx,%rdi

 rorq $4,%r13
 addq %r10,%r12
 xorq %r9,%rdi

 rorq $6,%r14
 xorq %rdx,%r13
 addq %rdi,%r12

 movq %r11,%rdi
 addq (%rbp),%r12
 xorq %r11,%r14

 xorq %rax,%rdi
 rorq $14,%r13
 movq %rax,%r10

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r10
 addq %r12,%rcx
 addq %r12,%r10

 leaq 24(%rbp),%rbp
 addq %r14,%r10
 movq 80(%rsi),%r12
 movq %rcx,%r13
 movq %r10,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rdx,%r15

 xorq %rcx,%r13
 rorq $5,%r14
 xorq %r8,%r15

 movq %r12,80(%rsp)
 xorq %r10,%r14
 andq %rcx,%r15

 rorq $4,%r13
 addq %r9,%r12
 xorq %r8,%r15

 rorq $6,%r14
 xorq %rcx,%r13
 addq %r15,%r12

 movq %r10,%r15
 addq (%rbp),%r12
 xorq %r10,%r14

 xorq %r11,%r15
 rorq $14,%r13
 movq %r11,%r9

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r9
 addq %r12,%rbx
 addq %r12,%r9

 leaq 8(%rbp),%rbp
 addq %r14,%r9
 movq 88(%rsi),%r12
 movq %rbx,%r13
 movq %r9,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rcx,%rdi

 xorq %rbx,%r13
 rorq $5,%r14
 xorq %rdx,%rdi

 movq %r12,88(%rsp)
 xorq %r9,%r14
 andq %rbx,%rdi

 rorq $4,%r13
 addq %r8,%r12
 xorq %rdx,%rdi

 rorq $6,%r14
 xorq %rbx,%r13
 addq %rdi,%r12

 movq %r9,%rdi
 addq (%rbp),%r12
 xorq %r9,%r14

 xorq %r10,%rdi
 rorq $14,%r13
 movq %r10,%r8

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r8
 addq %r12,%rax
 addq %r12,%r8

 leaq 24(%rbp),%rbp
 addq %r14,%r8
 movq 96(%rsi),%r12
 movq %rax,%r13
 movq %r8,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rbx,%r15

 xorq %rax,%r13
 rorq $5,%r14
 xorq %rcx,%r15

 movq %r12,96(%rsp)
 xorq %r8,%r14
 andq %rax,%r15

 rorq $4,%r13
 addq %rdx,%r12
 xorq %rcx,%r15

 rorq $6,%r14
 xorq %rax,%r13
 addq %r15,%r12

 movq %r8,%r15
 addq (%rbp),%r12
 xorq %r8,%r14

 xorq %r9,%r15
 rorq $14,%r13
 movq %r9,%rdx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rdx
 addq %r12,%r11
 addq %r12,%rdx

 leaq 8(%rbp),%rbp
 addq %r14,%rdx
 movq 104(%rsi),%r12
 movq %r11,%r13
 movq %rdx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %rax,%rdi

 xorq %r11,%r13
 rorq $5,%r14
 xorq %rbx,%rdi

 movq %r12,104(%rsp)
 xorq %rdx,%r14
 andq %r11,%rdi

 rorq $4,%r13
 addq %rcx,%r12
 xorq %rbx,%rdi

 rorq $6,%r14
 xorq %r11,%r13
 addq %rdi,%r12

 movq %rdx,%rdi
 addq (%rbp),%r12
 xorq %rdx,%r14

 xorq %r8,%rdi
 rorq $14,%r13
 movq %r8,%rcx

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rcx
 addq %r12,%r10
 addq %r12,%rcx

 leaq 24(%rbp),%rbp
 addq %r14,%rcx
 movq 112(%rsi),%r12
 movq %r10,%r13
 movq %rcx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r11,%r15

 xorq %r10,%r13
 rorq $5,%r14
 xorq %rax,%r15

 movq %r12,112(%rsp)
 xorq %rcx,%r14
 andq %r10,%r15

 rorq $4,%r13
 addq %rbx,%r12
 xorq %rax,%r15

 rorq $6,%r14
 xorq %r10,%r13
 addq %r15,%r12

 movq %rcx,%r15
 addq (%rbp),%r12
 xorq %rcx,%r14

 xorq %rdx,%r15
 rorq $14,%r13
 movq %rdx,%rbx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rbx
 addq %r12,%r9
 addq %r12,%rbx

 leaq 8(%rbp),%rbp
 addq %r14,%rbx
 movq 120(%rsi),%r12
 movq %r9,%r13
 movq %rbx,%r14
 bswapq %r12
 rorq $23,%r13
 movq %r10,%rdi

 xorq %r9,%r13
 rorq $5,%r14
 xorq %r11,%rdi

 movq %r12,120(%rsp)
 xorq %rbx,%r14
 andq %r9,%rdi

 rorq $4,%r13
 addq %rax,%r12
 xorq %r11,%rdi

 rorq $6,%r14
 xorq %r9,%r13
 addq %rdi,%r12

 movq %rbx,%rdi
 addq (%rbp),%r12
 xorq %rbx,%r14

 xorq %rcx,%rdi
 rorq $14,%r13
 movq %rcx,%rax

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rax
 addq %r12,%r8
 addq %r12,%rax

 leaq 24(%rbp),%rbp
# WAS jmp .Lrounds_16_xx
	jmp	.Lrounds_16_xx_BCM_20
.align 16
.Lrounds_16_xx_BCM_20:

 movq 8(%rsp),%r13
 movq 112(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rax
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 72(%rsp),%r12

 addq 0(%rsp),%r12
 movq %r8,%r13
 addq %r15,%r12
 movq %rax,%r14
 rorq $23,%r13
 movq %r9,%r15

 xorq %r8,%r13
 rorq $5,%r14
 xorq %r10,%r15

 movq %r12,0(%rsp)
 xorq %rax,%r14
 andq %r8,%r15

 rorq $4,%r13
 addq %r11,%r12
 xorq %r10,%r15

 rorq $6,%r14
 xorq %r8,%r13
 addq %r15,%r12

 movq %rax,%r15
 addq (%rbp),%r12
 xorq %rax,%r14

 xorq %rbx,%r15
 rorq $14,%r13
 movq %rbx,%r11

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r11
 addq %r12,%rdx
 addq %r12,%r11

 leaq 8(%rbp),%rbp
 movq 16(%rsp),%r13
 movq 120(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r11
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 80(%rsp),%r12

 addq 8(%rsp),%r12
 movq %rdx,%r13
 addq %rdi,%r12
 movq %r11,%r14
 rorq $23,%r13
 movq %r8,%rdi

 xorq %rdx,%r13
 rorq $5,%r14
 xorq %r9,%rdi

 movq %r12,8(%rsp)
 xorq %r11,%r14
 andq %rdx,%rdi

 rorq $4,%r13
 addq %r10,%r12
 xorq %r9,%rdi

 rorq $6,%r14
 xorq %rdx,%r13
 addq %rdi,%r12

 movq %r11,%rdi
 addq (%rbp),%r12
 xorq %r11,%r14

 xorq %rax,%rdi
 rorq $14,%r13
 movq %rax,%r10

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r10
 addq %r12,%rcx
 addq %r12,%r10

 leaq 24(%rbp),%rbp
 movq 24(%rsp),%r13
 movq 0(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r10
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 88(%rsp),%r12

 addq 16(%rsp),%r12
 movq %rcx,%r13
 addq %r15,%r12
 movq %r10,%r14
 rorq $23,%r13
 movq %rdx,%r15

 xorq %rcx,%r13
 rorq $5,%r14
 xorq %r8,%r15

 movq %r12,16(%rsp)
 xorq %r10,%r14
 andq %rcx,%r15

 rorq $4,%r13
 addq %r9,%r12
 xorq %r8,%r15

 rorq $6,%r14
 xorq %rcx,%r13
 addq %r15,%r12

 movq %r10,%r15
 addq (%rbp),%r12
 xorq %r10,%r14

 xorq %r11,%r15
 rorq $14,%r13
 movq %r11,%r9

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r9
 addq %r12,%rbx
 addq %r12,%r9

 leaq 8(%rbp),%rbp
 movq 32(%rsp),%r13
 movq 8(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r9
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 96(%rsp),%r12

 addq 24(%rsp),%r12
 movq %rbx,%r13
 addq %rdi,%r12
 movq %r9,%r14
 rorq $23,%r13
 movq %rcx,%rdi

 xorq %rbx,%r13
 rorq $5,%r14
 xorq %rdx,%rdi

 movq %r12,24(%rsp)
 xorq %r9,%r14
 andq %rbx,%rdi

 rorq $4,%r13
 addq %r8,%r12
 xorq %rdx,%rdi

 rorq $6,%r14
 xorq %rbx,%r13
 addq %rdi,%r12

 movq %r9,%rdi
 addq (%rbp),%r12
 xorq %r9,%r14

 xorq %r10,%rdi
 rorq $14,%r13
 movq %r10,%r8

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r8
 addq %r12,%rax
 addq %r12,%r8

 leaq 24(%rbp),%rbp
 movq 40(%rsp),%r13
 movq 16(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r8
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 104(%rsp),%r12

 addq 32(%rsp),%r12
 movq %rax,%r13
 addq %r15,%r12
 movq %r8,%r14
 rorq $23,%r13
 movq %rbx,%r15

 xorq %rax,%r13
 rorq $5,%r14
 xorq %rcx,%r15

 movq %r12,32(%rsp)
 xorq %r8,%r14
 andq %rax,%r15

 rorq $4,%r13
 addq %rdx,%r12
 xorq %rcx,%r15

 rorq $6,%r14
 xorq %rax,%r13
 addq %r15,%r12

 movq %r8,%r15
 addq (%rbp),%r12
 xorq %r8,%r14

 xorq %r9,%r15
 rorq $14,%r13
 movq %r9,%rdx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rdx
 addq %r12,%r11
 addq %r12,%rdx

 leaq 8(%rbp),%rbp
 movq 48(%rsp),%r13
 movq 24(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rdx
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 112(%rsp),%r12

 addq 40(%rsp),%r12
 movq %r11,%r13
 addq %rdi,%r12
 movq %rdx,%r14
 rorq $23,%r13
 movq %rax,%rdi

 xorq %r11,%r13
 rorq $5,%r14
 xorq %rbx,%rdi

 movq %r12,40(%rsp)
 xorq %rdx,%r14
 andq %r11,%rdi

 rorq $4,%r13
 addq %rcx,%r12
 xorq %rbx,%rdi

 rorq $6,%r14
 xorq %r11,%r13
 addq %rdi,%r12

 movq %rdx,%rdi
 addq (%rbp),%r12
 xorq %rdx,%r14

 xorq %r8,%rdi
 rorq $14,%r13
 movq %r8,%rcx

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rcx
 addq %r12,%r10
 addq %r12,%rcx

 leaq 24(%rbp),%rbp
 movq 56(%rsp),%r13
 movq 32(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rcx
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 120(%rsp),%r12

 addq 48(%rsp),%r12
 movq %r10,%r13
 addq %r15,%r12
 movq %rcx,%r14
 rorq $23,%r13
 movq %r11,%r15

 xorq %r10,%r13
 rorq $5,%r14
 xorq %rax,%r15

 movq %r12,48(%rsp)
 xorq %rcx,%r14
 andq %r10,%r15

 rorq $4,%r13
 addq %rbx,%r12
 xorq %rax,%r15

 rorq $6,%r14
 xorq %r10,%r13
 addq %r15,%r12

 movq %rcx,%r15
 addq (%rbp),%r12
 xorq %rcx,%r14

 xorq %rdx,%r15
 rorq $14,%r13
 movq %rdx,%rbx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rbx
 addq %r12,%r9
 addq %r12,%rbx

 leaq 8(%rbp),%rbp
 movq 64(%rsp),%r13
 movq 40(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rbx
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 0(%rsp),%r12

 addq 56(%rsp),%r12
 movq %r9,%r13
 addq %rdi,%r12
 movq %rbx,%r14
 rorq $23,%r13
 movq %r10,%rdi

 xorq %r9,%r13
 rorq $5,%r14
 xorq %r11,%rdi

 movq %r12,56(%rsp)
 xorq %rbx,%r14
 andq %r9,%rdi

 rorq $4,%r13
 addq %rax,%r12
 xorq %r11,%rdi

 rorq $6,%r14
 xorq %r9,%r13
 addq %rdi,%r12

 movq %rbx,%rdi
 addq (%rbp),%r12
 xorq %rbx,%r14

 xorq %rcx,%rdi
 rorq $14,%r13
 movq %rcx,%rax

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rax
 addq %r12,%r8
 addq %r12,%rax

 leaq 24(%rbp),%rbp
 movq 72(%rsp),%r13
 movq 48(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rax
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 8(%rsp),%r12

 addq 64(%rsp),%r12
 movq %r8,%r13
 addq %r15,%r12
 movq %rax,%r14
 rorq $23,%r13
 movq %r9,%r15

 xorq %r8,%r13
 rorq $5,%r14
 xorq %r10,%r15

 movq %r12,64(%rsp)
 xorq %rax,%r14
 andq %r8,%r15

 rorq $4,%r13
 addq %r11,%r12
 xorq %r10,%r15

 rorq $6,%r14
 xorq %r8,%r13
 addq %r15,%r12

 movq %rax,%r15
 addq (%rbp),%r12
 xorq %rax,%r14

 xorq %rbx,%r15
 rorq $14,%r13
 movq %rbx,%r11

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r11
 addq %r12,%rdx
 addq %r12,%r11

 leaq 8(%rbp),%rbp
 movq 80(%rsp),%r13
 movq 56(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r11
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 16(%rsp),%r12

 addq 72(%rsp),%r12
 movq %rdx,%r13
 addq %rdi,%r12
 movq %r11,%r14
 rorq $23,%r13
 movq %r8,%rdi

 xorq %rdx,%r13
 rorq $5,%r14
 xorq %r9,%rdi

 movq %r12,72(%rsp)
 xorq %r11,%r14
 andq %rdx,%rdi

 rorq $4,%r13
 addq %r10,%r12
 xorq %r9,%rdi

 rorq $6,%r14
 xorq %rdx,%r13
 addq %rdi,%r12

 movq %r11,%rdi
 addq (%rbp),%r12
 xorq %r11,%r14

 xorq %rax,%rdi
 rorq $14,%r13
 movq %rax,%r10

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r10
 addq %r12,%rcx
 addq %r12,%r10

 leaq 24(%rbp),%rbp
 movq 88(%rsp),%r13
 movq 64(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r10
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 24(%rsp),%r12

 addq 80(%rsp),%r12
 movq %rcx,%r13
 addq %r15,%r12
 movq %r10,%r14
 rorq $23,%r13
 movq %rdx,%r15

 xorq %rcx,%r13
 rorq $5,%r14
 xorq %r8,%r15

 movq %r12,80(%rsp)
 xorq %r10,%r14
 andq %rcx,%r15

 rorq $4,%r13
 addq %r9,%r12
 xorq %r8,%r15

 rorq $6,%r14
 xorq %rcx,%r13
 addq %r15,%r12

 movq %r10,%r15
 addq (%rbp),%r12
 xorq %r10,%r14

 xorq %r11,%r15
 rorq $14,%r13
 movq %r11,%r9

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%r9
 addq %r12,%rbx
 addq %r12,%r9

 leaq 8(%rbp),%rbp
 movq 96(%rsp),%r13
 movq 72(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r9
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 32(%rsp),%r12

 addq 88(%rsp),%r12
 movq %rbx,%r13
 addq %rdi,%r12
 movq %r9,%r14
 rorq $23,%r13
 movq %rcx,%rdi

 xorq %rbx,%r13
 rorq $5,%r14
 xorq %rdx,%rdi

 movq %r12,88(%rsp)
 xorq %r9,%r14
 andq %rbx,%rdi

 rorq $4,%r13
 addq %r8,%r12
 xorq %rdx,%rdi

 rorq $6,%r14
 xorq %rbx,%r13
 addq %rdi,%r12

 movq %r9,%rdi
 addq (%rbp),%r12
 xorq %r9,%r14

 xorq %r10,%rdi
 rorq $14,%r13
 movq %r10,%r8

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%r8
 addq %r12,%rax
 addq %r12,%r8

 leaq 24(%rbp),%rbp
 movq 104(%rsp),%r13
 movq 80(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%r8
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 40(%rsp),%r12

 addq 96(%rsp),%r12
 movq %rax,%r13
 addq %r15,%r12
 movq %r8,%r14
 rorq $23,%r13
 movq %rbx,%r15

 xorq %rax,%r13
 rorq $5,%r14
 xorq %rcx,%r15

 movq %r12,96(%rsp)
 xorq %r8,%r14
 andq %rax,%r15

 rorq $4,%r13
 addq %rdx,%r12
 xorq %rcx,%r15

 rorq $6,%r14
 xorq %rax,%r13
 addq %r15,%r12

 movq %r8,%r15
 addq (%rbp),%r12
 xorq %r8,%r14

 xorq %r9,%r15
 rorq $14,%r13
 movq %r9,%rdx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rdx
 addq %r12,%r11
 addq %r12,%rdx

 leaq 8(%rbp),%rbp
 movq 112(%rsp),%r13
 movq 88(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rdx
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 48(%rsp),%r12

 addq 104(%rsp),%r12
 movq %r11,%r13
 addq %rdi,%r12
 movq %rdx,%r14
 rorq $23,%r13
 movq %rax,%rdi

 xorq %r11,%r13
 rorq $5,%r14
 xorq %rbx,%rdi

 movq %r12,104(%rsp)
 xorq %rdx,%r14
 andq %r11,%rdi

 rorq $4,%r13
 addq %rcx,%r12
 xorq %rbx,%rdi

 rorq $6,%r14
 xorq %r11,%r13
 addq %rdi,%r12

 movq %rdx,%rdi
 addq (%rbp),%r12
 xorq %rdx,%r14

 xorq %r8,%rdi
 rorq $14,%r13
 movq %r8,%rcx

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rcx
 addq %r12,%r10
 addq %r12,%rcx

 leaq 24(%rbp),%rbp
 movq 120(%rsp),%r13
 movq 96(%rsp),%r15

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rcx
 movq %r15,%r14
 rorq $42,%r15

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%r15
 shrq $6,%r14

 rorq $19,%r15
 xorq %r13,%r12
 xorq %r14,%r15
 addq 56(%rsp),%r12

 addq 112(%rsp),%r12
 movq %r10,%r13
 addq %r15,%r12
 movq %rcx,%r14
 rorq $23,%r13
 movq %r11,%r15

 xorq %r10,%r13
 rorq $5,%r14
 xorq %rax,%r15

 movq %r12,112(%rsp)
 xorq %rcx,%r14
 andq %r10,%r15

 rorq $4,%r13
 addq %rbx,%r12
 xorq %rax,%r15

 rorq $6,%r14
 xorq %r10,%r13
 addq %r15,%r12

 movq %rcx,%r15
 addq (%rbp),%r12
 xorq %rcx,%r14

 xorq %rdx,%r15
 rorq $14,%r13
 movq %rdx,%rbx

 andq %r15,%rdi
 rorq $28,%r14
 addq %r13,%r12

 xorq %rdi,%rbx
 addq %r12,%r9
 addq %r12,%rbx

 leaq 8(%rbp),%rbp
 movq 0(%rsp),%r13
 movq 104(%rsp),%rdi

 movq %r13,%r12
 rorq $7,%r13
 addq %r14,%rbx
 movq %rdi,%r14
 rorq $42,%rdi

 xorq %r12,%r13
 shrq $7,%r12
 rorq $1,%r13
 xorq %r14,%rdi
 shrq $6,%r14

 rorq $19,%rdi
 xorq %r13,%r12
 xorq %r14,%rdi
 addq 64(%rsp),%r12

 addq 120(%rsp),%r12
 movq %r9,%r13
 addq %rdi,%r12
 movq %rbx,%r14
 rorq $23,%r13
 movq %r10,%rdi

 xorq %r9,%r13
 rorq $5,%r14
 xorq %r11,%rdi

 movq %r12,120(%rsp)
 xorq %rbx,%r14
 andq %r9,%rdi

 rorq $4,%r13
 addq %rax,%r12
 xorq %r11,%rdi

 rorq $6,%r14
 xorq %r9,%r13
 addq %rdi,%r12

 movq %rbx,%rdi
 addq (%rbp),%r12
 xorq %rbx,%r14

 xorq %rcx,%rdi
 rorq $14,%r13
 movq %rcx,%rax

 andq %rdi,%r15
 rorq $28,%r14
 addq %r13,%r12

 xorq %r15,%rax
 addq %r12,%r8
 addq %r12,%rax

 leaq 24(%rbp),%rbp
 cmpb $0,7(%rbp)
# WAS jnz .Lrounds_16_xx
	jnz	.Lrounds_16_xx_BCM_20

 movq 128+0(%rsp),%rdi
 addq %r14,%rax
 leaq 128(%rsi),%rsi

 addq 0(%rdi),%rax
 addq 8(%rdi),%rbx
 addq 16(%rdi),%rcx
 addq 24(%rdi),%rdx
 addq 32(%rdi),%r8
 addq 40(%rdi),%r9
 addq 48(%rdi),%r10
 addq 56(%rdi),%r11

 cmpq 128+16(%rsp),%rsi

 movq %rax,0(%rdi)
 movq %rbx,8(%rdi)
 movq %rcx,16(%rdi)
 movq %rdx,24(%rdi)
 movq %r8,32(%rdi)
 movq %r9,40(%rdi)
 movq %r10,48(%rdi)
 movq %r11,56(%rdi)
# WAS jb .Lloop
	jb	.Lloop_BCM_20

 movq 152(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_BCM_20:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha512_block_data_order_nohw,.-sha512_block_data_order_nohw
# WAS .section .rodata
.text
.align 64
.type K512,@object
.LK512_local_target:
K512:
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad 0x3956c25bf348b538,0x59f111f1b605d019
.quad 0x3956c25bf348b538,0x59f111f1b605d019
.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
.quad 0xd807aa98a3030242,0x12835b0145706fbe
.quad 0xd807aa98a3030242,0x12835b0145706fbe
.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
.quad 0x9bdc06a725c71235,0xc19bf174cf692694
.quad 0x9bdc06a725c71235,0xc19bf174cf692694
.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
.quad 0x983e5152ee66dfab,0xa831c66d2db43210
.quad 0x983e5152ee66dfab,0xa831c66d2db43210
.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
.quad 0x06ca6351e003826f,0x142929670a0e6e70
.quad 0x06ca6351e003826f,0x142929670a0e6e70
.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
.quad 0x81c2c92e47edaee6,0x92722c851482353b
.quad 0x81c2c92e47edaee6,0x92722c851482353b
.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
.quad 0xd192e819d6ef5218,0xd69906245565a910
.quad 0xd192e819d6ef5218,0xd69906245565a910
.quad 0xf40e35855771202a,0x106aa07032bbd1b8
.quad 0xf40e35855771202a,0x106aa07032bbd1b8
.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
.quad 0x90befffa23631e28,0xa4506cebde82bde9
.quad 0x90befffa23631e28,0xa4506cebde82bde9
.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
.quad 0xca273eceea26619c,0xd186b8c721c0c207
.quad 0xca273eceea26619c,0xd186b8c721c0c207
.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
.quad 0x113f9804bef90dae,0x1b710b35131c471b
.quad 0x113f9804bef90dae,0x1b710b35131c471b
.quad 0x28db77f523047d84,0x32caab7b40c72493
.quad 0x28db77f523047d84,0x32caab7b40c72493
.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817

.quad 0x0001020304050607,0x08090a0b0c0d0e0f
.quad 0x0001020304050607,0x08090a0b0c0d0e0f
.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.text
.globl sha512_block_data_order_avx
.hidden sha512_block_data_order_avx
.type sha512_block_data_order_avx,@function
.align 64
.Lsha512_block_data_order_avx_local_target:
sha512_block_data_order_avx:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
 shlq $4,%rdx
 subq $160,%rsp
 leaq (%rsi,%rdx,8),%rdx
 andq $-64,%rsp
 movq %rdi,128+0(%rsp)
 movq %rsi,128+8(%rsp)
 movq %rdx,128+16(%rsp)
 movq %rax,152(%rsp)
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
.Lprologue_avx_BCM_20:


 vzeroupper
 movq 0(%rdi),%rax
 movq 8(%rdi),%rbx
 movq 16(%rdi),%rcx
 movq 24(%rdi),%rdx
 movq 32(%rdi),%r8
 movq 40(%rdi),%r9
 movq 48(%rdi),%r10
 movq 56(%rdi),%r11
# WAS jmp .Lloop_avx
	jmp	.Lloop_avx_BCM_20
.align 16
.Lloop_avx_BCM_20:

# WAS vmovdqa K512+1280(%rip),%xmm11
	vmovdqa	.LK512_local_target+1280(%rip), %xmm11
 vmovdqu 0(%rsi),%xmm0
# WAS leaq K512+128(%rip),%rbp
	leaq	.LK512_local_target+128(%rip), %rbp
 vmovdqu 16(%rsi),%xmm1
 vmovdqu 32(%rsi),%xmm2
 vpshufb %xmm11,%xmm0,%xmm0
 vmovdqu 48(%rsi),%xmm3
 vpshufb %xmm11,%xmm1,%xmm1
 vmovdqu 64(%rsi),%xmm4
 vpshufb %xmm11,%xmm2,%xmm2
 vmovdqu 80(%rsi),%xmm5
 vpshufb %xmm11,%xmm3,%xmm3
 vmovdqu 96(%rsi),%xmm6
 vpshufb %xmm11,%xmm4,%xmm4
 vmovdqu 112(%rsi),%xmm7
 vpshufb %xmm11,%xmm5,%xmm5
 vpaddq -128(%rbp),%xmm0,%xmm8
 vpshufb %xmm11,%xmm6,%xmm6
 vpaddq -96(%rbp),%xmm1,%xmm9
 vpshufb %xmm11,%xmm7,%xmm7
 vpaddq -64(%rbp),%xmm2,%xmm10
 vpaddq -32(%rbp),%xmm3,%xmm11
 vmovdqa %xmm8,0(%rsp)
 vpaddq 0(%rbp),%xmm4,%xmm8
 vmovdqa %xmm9,16(%rsp)
 vpaddq 32(%rbp),%xmm5,%xmm9
 vmovdqa %xmm10,32(%rsp)
 vpaddq 64(%rbp),%xmm6,%xmm10
 vmovdqa %xmm11,48(%rsp)
 vpaddq 96(%rbp),%xmm7,%xmm11
 vmovdqa %xmm8,64(%rsp)
 movq %rax,%r14
 vmovdqa %xmm9,80(%rsp)
 movq %rbx,%rdi
 vmovdqa %xmm10,96(%rsp)
 xorq %rcx,%rdi
 vmovdqa %xmm11,112(%rsp)
 movq %r8,%r13
# WAS jmp .Lavx_00_47
	jmp	.Lavx_00_47_BCM_20

.align 16
.Lavx_00_47_BCM_20:

 addq $256,%rbp
 vpalignr $8,%xmm0,%xmm1,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%rax
 vpalignr $8,%xmm4,%xmm5,%xmm11
 movq %r9,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %r8,%r13
 xorq %r10,%r12
 vpaddq %xmm11,%xmm0,%xmm0
 shrdq $4,%r13,%r13
 xorq %rax,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %r8,%r12
 xorq %r8,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 0(%rsp),%r11
 movq %rax,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %r10,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %rbx,%r15
 addq %r12,%r11
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %rax,%r14
 addq %r13,%r11
 vpxor %xmm10,%xmm8,%xmm8
 xorq %rbx,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm7,%xmm11
 addq %r11,%rdx
 addq %rdi,%r11
 vpxor %xmm9,%xmm8,%xmm8
 movq %rdx,%r13
 addq %r11,%r14
 vpsllq $3,%xmm7,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%r11
 vpaddq %xmm8,%xmm0,%xmm0
 movq %r8,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm7,%xmm9
 xorq %rdx,%r13
 xorq %r9,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %r11,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %rdx,%r12
 xorq %rdx,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 8(%rsp),%r10
 movq %r11,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %r9,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %rax,%rdi
 addq %r12,%r10
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm0,%xmm0
 xorq %r11,%r14
 addq %r13,%r10
 vpaddq -128(%rbp),%xmm0,%xmm10
 xorq %rax,%r15
 shrdq $28,%r14,%r14
 addq %r10,%rcx
 addq %r15,%r10
 movq %rcx,%r13
 addq %r10,%r14
 vmovdqa %xmm10,0(%rsp)
 vpalignr $8,%xmm1,%xmm2,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%r10
 vpalignr $8,%xmm5,%xmm6,%xmm11
 movq %rdx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %rcx,%r13
 xorq %r8,%r12
 vpaddq %xmm11,%xmm1,%xmm1
 shrdq $4,%r13,%r13
 xorq %r10,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %rcx,%r12
 xorq %rcx,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 16(%rsp),%r9
 movq %r10,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %r8,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %r11,%r15
 addq %r12,%r9
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %r10,%r14
 addq %r13,%r9
 vpxor %xmm10,%xmm8,%xmm8
 xorq %r11,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm0,%xmm11
 addq %r9,%rbx
 addq %rdi,%r9
 vpxor %xmm9,%xmm8,%xmm8
 movq %rbx,%r13
 addq %r9,%r14
 vpsllq $3,%xmm0,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%r9
 vpaddq %xmm8,%xmm1,%xmm1
 movq %rcx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm0,%xmm9
 xorq %rbx,%r13
 xorq %rdx,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %r9,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %rbx,%r12
 xorq %rbx,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 24(%rsp),%r8
 movq %r9,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %rdx,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %r10,%rdi
 addq %r12,%r8
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm1,%xmm1
 xorq %r9,%r14
 addq %r13,%r8
 vpaddq -96(%rbp),%xmm1,%xmm10
 xorq %r10,%r15
 shrdq $28,%r14,%r14
 addq %r8,%rax
 addq %r15,%r8
 movq %rax,%r13
 addq %r8,%r14
 vmovdqa %xmm10,16(%rsp)
 vpalignr $8,%xmm2,%xmm3,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%r8
 vpalignr $8,%xmm6,%xmm7,%xmm11
 movq %rbx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %rax,%r13
 xorq %rcx,%r12
 vpaddq %xmm11,%xmm2,%xmm2
 shrdq $4,%r13,%r13
 xorq %r8,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %rax,%r12
 xorq %rax,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 32(%rsp),%rdx
 movq %r8,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %rcx,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %r9,%r15
 addq %r12,%rdx
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %r8,%r14
 addq %r13,%rdx
 vpxor %xmm10,%xmm8,%xmm8
 xorq %r9,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm1,%xmm11
 addq %rdx,%r11
 addq %rdi,%rdx
 vpxor %xmm9,%xmm8,%xmm8
 movq %r11,%r13
 addq %rdx,%r14
 vpsllq $3,%xmm1,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%rdx
 vpaddq %xmm8,%xmm2,%xmm2
 movq %rax,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm1,%xmm9
 xorq %r11,%r13
 xorq %rbx,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %rdx,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %r11,%r12
 xorq %r11,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 40(%rsp),%rcx
 movq %rdx,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %rbx,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %r8,%rdi
 addq %r12,%rcx
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm2,%xmm2
 xorq %rdx,%r14
 addq %r13,%rcx
 vpaddq -64(%rbp),%xmm2,%xmm10
 xorq %r8,%r15
 shrdq $28,%r14,%r14
 addq %rcx,%r10
 addq %r15,%rcx
 movq %r10,%r13
 addq %rcx,%r14
 vmovdqa %xmm10,32(%rsp)
 vpalignr $8,%xmm3,%xmm4,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%rcx
 vpalignr $8,%xmm7,%xmm0,%xmm11
 movq %r11,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %r10,%r13
 xorq %rax,%r12
 vpaddq %xmm11,%xmm3,%xmm3
 shrdq $4,%r13,%r13
 xorq %rcx,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %r10,%r12
 xorq %r10,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 48(%rsp),%rbx
 movq %rcx,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %rax,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %rdx,%r15
 addq %r12,%rbx
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %rcx,%r14
 addq %r13,%rbx
 vpxor %xmm10,%xmm8,%xmm8
 xorq %rdx,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm2,%xmm11
 addq %rbx,%r9
 addq %rdi,%rbx
 vpxor %xmm9,%xmm8,%xmm8
 movq %r9,%r13
 addq %rbx,%r14
 vpsllq $3,%xmm2,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%rbx
 vpaddq %xmm8,%xmm3,%xmm3
 movq %r10,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm2,%xmm9
 xorq %r9,%r13
 xorq %r11,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %rbx,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %r9,%r12
 xorq %r9,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 56(%rsp),%rax
 movq %rbx,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %r11,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %rcx,%rdi
 addq %r12,%rax
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm3,%xmm3
 xorq %rbx,%r14
 addq %r13,%rax
 vpaddq -32(%rbp),%xmm3,%xmm10
 xorq %rcx,%r15
 shrdq $28,%r14,%r14
 addq %rax,%r8
 addq %r15,%rax
 movq %r8,%r13
 addq %rax,%r14
 vmovdqa %xmm10,48(%rsp)
 vpalignr $8,%xmm4,%xmm5,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%rax
 vpalignr $8,%xmm0,%xmm1,%xmm11
 movq %r9,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %r8,%r13
 xorq %r10,%r12
 vpaddq %xmm11,%xmm4,%xmm4
 shrdq $4,%r13,%r13
 xorq %rax,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %r8,%r12
 xorq %r8,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 64(%rsp),%r11
 movq %rax,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %r10,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %rbx,%r15
 addq %r12,%r11
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %rax,%r14
 addq %r13,%r11
 vpxor %xmm10,%xmm8,%xmm8
 xorq %rbx,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm3,%xmm11
 addq %r11,%rdx
 addq %rdi,%r11
 vpxor %xmm9,%xmm8,%xmm8
 movq %rdx,%r13
 addq %r11,%r14
 vpsllq $3,%xmm3,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%r11
 vpaddq %xmm8,%xmm4,%xmm4
 movq %r8,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm3,%xmm9
 xorq %rdx,%r13
 xorq %r9,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %r11,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %rdx,%r12
 xorq %rdx,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 72(%rsp),%r10
 movq %r11,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %r9,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %rax,%rdi
 addq %r12,%r10
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm4,%xmm4
 xorq %r11,%r14
 addq %r13,%r10
 vpaddq 0(%rbp),%xmm4,%xmm10
 xorq %rax,%r15
 shrdq $28,%r14,%r14
 addq %r10,%rcx
 addq %r15,%r10
 movq %rcx,%r13
 addq %r10,%r14
 vmovdqa %xmm10,64(%rsp)
 vpalignr $8,%xmm5,%xmm6,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%r10
 vpalignr $8,%xmm1,%xmm2,%xmm11
 movq %rdx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %rcx,%r13
 xorq %r8,%r12
 vpaddq %xmm11,%xmm5,%xmm5
 shrdq $4,%r13,%r13
 xorq %r10,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %rcx,%r12
 xorq %rcx,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 80(%rsp),%r9
 movq %r10,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %r8,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %r11,%r15
 addq %r12,%r9
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %r10,%r14
 addq %r13,%r9
 vpxor %xmm10,%xmm8,%xmm8
 xorq %r11,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm4,%xmm11
 addq %r9,%rbx
 addq %rdi,%r9
 vpxor %xmm9,%xmm8,%xmm8
 movq %rbx,%r13
 addq %r9,%r14
 vpsllq $3,%xmm4,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%r9
 vpaddq %xmm8,%xmm5,%xmm5
 movq %rcx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm4,%xmm9
 xorq %rbx,%r13
 xorq %rdx,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %r9,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %rbx,%r12
 xorq %rbx,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 88(%rsp),%r8
 movq %r9,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %rdx,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %r10,%rdi
 addq %r12,%r8
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm5,%xmm5
 xorq %r9,%r14
 addq %r13,%r8
 vpaddq 32(%rbp),%xmm5,%xmm10
 xorq %r10,%r15
 shrdq $28,%r14,%r14
 addq %r8,%rax
 addq %r15,%r8
 movq %rax,%r13
 addq %r8,%r14
 vmovdqa %xmm10,80(%rsp)
 vpalignr $8,%xmm6,%xmm7,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%r8
 vpalignr $8,%xmm2,%xmm3,%xmm11
 movq %rbx,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %rax,%r13
 xorq %rcx,%r12
 vpaddq %xmm11,%xmm6,%xmm6
 shrdq $4,%r13,%r13
 xorq %r8,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %rax,%r12
 xorq %rax,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 96(%rsp),%rdx
 movq %r8,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %rcx,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %r9,%r15
 addq %r12,%rdx
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %r8,%r14
 addq %r13,%rdx
 vpxor %xmm10,%xmm8,%xmm8
 xorq %r9,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm5,%xmm11
 addq %rdx,%r11
 addq %rdi,%rdx
 vpxor %xmm9,%xmm8,%xmm8
 movq %r11,%r13
 addq %rdx,%r14
 vpsllq $3,%xmm5,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%rdx
 vpaddq %xmm8,%xmm6,%xmm6
 movq %rax,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm5,%xmm9
 xorq %r11,%r13
 xorq %rbx,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %rdx,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %r11,%r12
 xorq %r11,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 104(%rsp),%rcx
 movq %rdx,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %rbx,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %r8,%rdi
 addq %r12,%rcx
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm6,%xmm6
 xorq %rdx,%r14
 addq %r13,%rcx
 vpaddq 64(%rbp),%xmm6,%xmm10
 xorq %r8,%r15
 shrdq $28,%r14,%r14
 addq %rcx,%r10
 addq %r15,%rcx
 movq %r10,%r13
 addq %rcx,%r14
 vmovdqa %xmm10,96(%rsp)
 vpalignr $8,%xmm7,%xmm0,%xmm8
 shrdq $23,%r13,%r13
 movq %r14,%rcx
 vpalignr $8,%xmm3,%xmm4,%xmm11
 movq %r11,%r12
 shrdq $5,%r14,%r14
 vpsrlq $1,%xmm8,%xmm10
 xorq %r10,%r13
 xorq %rax,%r12
 vpaddq %xmm11,%xmm7,%xmm7
 shrdq $4,%r13,%r13
 xorq %rcx,%r14
 vpsrlq $7,%xmm8,%xmm11
 andq %r10,%r12
 xorq %r10,%r13
 vpsllq $56,%xmm8,%xmm9
 addq 112(%rsp),%rbx
 movq %rcx,%r15
 vpxor %xmm10,%xmm11,%xmm8
 xorq %rax,%r12
 shrdq $6,%r14,%r14
 vpsrlq $7,%xmm10,%xmm10
 xorq %rdx,%r15
 addq %r12,%rbx
 vpxor %xmm9,%xmm8,%xmm8
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 vpsllq $7,%xmm9,%xmm9
 xorq %rcx,%r14
 addq %r13,%rbx
 vpxor %xmm10,%xmm8,%xmm8
 xorq %rdx,%rdi
 shrdq $28,%r14,%r14
 vpsrlq $6,%xmm6,%xmm11
 addq %rbx,%r9
 addq %rdi,%rbx
 vpxor %xmm9,%xmm8,%xmm8
 movq %r9,%r13
 addq %rbx,%r14
 vpsllq $3,%xmm6,%xmm10
 shrdq $23,%r13,%r13
 movq %r14,%rbx
 vpaddq %xmm8,%xmm7,%xmm7
 movq %r10,%r12
 shrdq $5,%r14,%r14
 vpsrlq $19,%xmm6,%xmm9
 xorq %r9,%r13
 xorq %r11,%r12
 vpxor %xmm10,%xmm11,%xmm11
 shrdq $4,%r13,%r13
 xorq %rbx,%r14
 vpsllq $42,%xmm10,%xmm10
 andq %r9,%r12
 xorq %r9,%r13
 vpxor %xmm9,%xmm11,%xmm11
 addq 120(%rsp),%rax
 movq %rbx,%rdi
 vpsrlq $42,%xmm9,%xmm9
 xorq %r11,%r12
 shrdq $6,%r14,%r14
 vpxor %xmm10,%xmm11,%xmm11
 xorq %rcx,%rdi
 addq %r12,%rax
 vpxor %xmm9,%xmm11,%xmm11
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 vpaddq %xmm11,%xmm7,%xmm7
 xorq %rbx,%r14
 addq %r13,%rax
 vpaddq 96(%rbp),%xmm7,%xmm10
 xorq %rcx,%r15
 shrdq $28,%r14,%r14
 addq %rax,%r8
 addq %r15,%rax
 movq %r8,%r13
 addq %rax,%r14
 vmovdqa %xmm10,112(%rsp)
 cmpb $0,135(%rbp)
# WAS jne .Lavx_00_47
	jne	.Lavx_00_47_BCM_20
 shrdq $23,%r13,%r13
 movq %r14,%rax
 movq %r9,%r12
 shrdq $5,%r14,%r14
 xorq %r8,%r13
 xorq %r10,%r12
 shrdq $4,%r13,%r13
 xorq %rax,%r14
 andq %r8,%r12
 xorq %r8,%r13
 addq 0(%rsp),%r11
 movq %rax,%r15
 xorq %r10,%r12
 shrdq $6,%r14,%r14
 xorq %rbx,%r15
 addq %r12,%r11
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %rax,%r14
 addq %r13,%r11
 xorq %rbx,%rdi
 shrdq $28,%r14,%r14
 addq %r11,%rdx
 addq %rdi,%r11
 movq %rdx,%r13
 addq %r11,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r11
 movq %r8,%r12
 shrdq $5,%r14,%r14
 xorq %rdx,%r13
 xorq %r9,%r12
 shrdq $4,%r13,%r13
 xorq %r11,%r14
 andq %rdx,%r12
 xorq %rdx,%r13
 addq 8(%rsp),%r10
 movq %r11,%rdi
 xorq %r9,%r12
 shrdq $6,%r14,%r14
 xorq %rax,%rdi
 addq %r12,%r10
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %r11,%r14
 addq %r13,%r10
 xorq %rax,%r15
 shrdq $28,%r14,%r14
 addq %r10,%rcx
 addq %r15,%r10
 movq %rcx,%r13
 addq %r10,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r10
 movq %rdx,%r12
 shrdq $5,%r14,%r14
 xorq %rcx,%r13
 xorq %r8,%r12
 shrdq $4,%r13,%r13
 xorq %r10,%r14
 andq %rcx,%r12
 xorq %rcx,%r13
 addq 16(%rsp),%r9
 movq %r10,%r15
 xorq %r8,%r12
 shrdq $6,%r14,%r14
 xorq %r11,%r15
 addq %r12,%r9
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %r10,%r14
 addq %r13,%r9
 xorq %r11,%rdi
 shrdq $28,%r14,%r14
 addq %r9,%rbx
 addq %rdi,%r9
 movq %rbx,%r13
 addq %r9,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r9
 movq %rcx,%r12
 shrdq $5,%r14,%r14
 xorq %rbx,%r13
 xorq %rdx,%r12
 shrdq $4,%r13,%r13
 xorq %r9,%r14
 andq %rbx,%r12
 xorq %rbx,%r13
 addq 24(%rsp),%r8
 movq %r9,%rdi
 xorq %rdx,%r12
 shrdq $6,%r14,%r14
 xorq %r10,%rdi
 addq %r12,%r8
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %r9,%r14
 addq %r13,%r8
 xorq %r10,%r15
 shrdq $28,%r14,%r14
 addq %r8,%rax
 addq %r15,%r8
 movq %rax,%r13
 addq %r8,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r8
 movq %rbx,%r12
 shrdq $5,%r14,%r14
 xorq %rax,%r13
 xorq %rcx,%r12
 shrdq $4,%r13,%r13
 xorq %r8,%r14
 andq %rax,%r12
 xorq %rax,%r13
 addq 32(%rsp),%rdx
 movq %r8,%r15
 xorq %rcx,%r12
 shrdq $6,%r14,%r14
 xorq %r9,%r15
 addq %r12,%rdx
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %r8,%r14
 addq %r13,%rdx
 xorq %r9,%rdi
 shrdq $28,%r14,%r14
 addq %rdx,%r11
 addq %rdi,%rdx
 movq %r11,%r13
 addq %rdx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rdx
 movq %rax,%r12
 shrdq $5,%r14,%r14
 xorq %r11,%r13
 xorq %rbx,%r12
 shrdq $4,%r13,%r13
 xorq %rdx,%r14
 andq %r11,%r12
 xorq %r11,%r13
 addq 40(%rsp),%rcx
 movq %rdx,%rdi
 xorq %rbx,%r12
 shrdq $6,%r14,%r14
 xorq %r8,%rdi
 addq %r12,%rcx
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %rdx,%r14
 addq %r13,%rcx
 xorq %r8,%r15
 shrdq $28,%r14,%r14
 addq %rcx,%r10
 addq %r15,%rcx
 movq %r10,%r13
 addq %rcx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rcx
 movq %r11,%r12
 shrdq $5,%r14,%r14
 xorq %r10,%r13
 xorq %rax,%r12
 shrdq $4,%r13,%r13
 xorq %rcx,%r14
 andq %r10,%r12
 xorq %r10,%r13
 addq 48(%rsp),%rbx
 movq %rcx,%r15
 xorq %rax,%r12
 shrdq $6,%r14,%r14
 xorq %rdx,%r15
 addq %r12,%rbx
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %rcx,%r14
 addq %r13,%rbx
 xorq %rdx,%rdi
 shrdq $28,%r14,%r14
 addq %rbx,%r9
 addq %rdi,%rbx
 movq %r9,%r13
 addq %rbx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rbx
 movq %r10,%r12
 shrdq $5,%r14,%r14
 xorq %r9,%r13
 xorq %r11,%r12
 shrdq $4,%r13,%r13
 xorq %rbx,%r14
 andq %r9,%r12
 xorq %r9,%r13
 addq 56(%rsp),%rax
 movq %rbx,%rdi
 xorq %r11,%r12
 shrdq $6,%r14,%r14
 xorq %rcx,%rdi
 addq %r12,%rax
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %rbx,%r14
 addq %r13,%rax
 xorq %rcx,%r15
 shrdq $28,%r14,%r14
 addq %rax,%r8
 addq %r15,%rax
 movq %r8,%r13
 addq %rax,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rax
 movq %r9,%r12
 shrdq $5,%r14,%r14
 xorq %r8,%r13
 xorq %r10,%r12
 shrdq $4,%r13,%r13
 xorq %rax,%r14
 andq %r8,%r12
 xorq %r8,%r13
 addq 64(%rsp),%r11
 movq %rax,%r15
 xorq %r10,%r12
 shrdq $6,%r14,%r14
 xorq %rbx,%r15
 addq %r12,%r11
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %rax,%r14
 addq %r13,%r11
 xorq %rbx,%rdi
 shrdq $28,%r14,%r14
 addq %r11,%rdx
 addq %rdi,%r11
 movq %rdx,%r13
 addq %r11,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r11
 movq %r8,%r12
 shrdq $5,%r14,%r14
 xorq %rdx,%r13
 xorq %r9,%r12
 shrdq $4,%r13,%r13
 xorq %r11,%r14
 andq %rdx,%r12
 xorq %rdx,%r13
 addq 72(%rsp),%r10
 movq %r11,%rdi
 xorq %r9,%r12
 shrdq $6,%r14,%r14
 xorq %rax,%rdi
 addq %r12,%r10
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %r11,%r14
 addq %r13,%r10
 xorq %rax,%r15
 shrdq $28,%r14,%r14
 addq %r10,%rcx
 addq %r15,%r10
 movq %rcx,%r13
 addq %r10,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r10
 movq %rdx,%r12
 shrdq $5,%r14,%r14
 xorq %rcx,%r13
 xorq %r8,%r12
 shrdq $4,%r13,%r13
 xorq %r10,%r14
 andq %rcx,%r12
 xorq %rcx,%r13
 addq 80(%rsp),%r9
 movq %r10,%r15
 xorq %r8,%r12
 shrdq $6,%r14,%r14
 xorq %r11,%r15
 addq %r12,%r9
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %r10,%r14
 addq %r13,%r9
 xorq %r11,%rdi
 shrdq $28,%r14,%r14
 addq %r9,%rbx
 addq %rdi,%r9
 movq %rbx,%r13
 addq %r9,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r9
 movq %rcx,%r12
 shrdq $5,%r14,%r14
 xorq %rbx,%r13
 xorq %rdx,%r12
 shrdq $4,%r13,%r13
 xorq %r9,%r14
 andq %rbx,%r12
 xorq %rbx,%r13
 addq 88(%rsp),%r8
 movq %r9,%rdi
 xorq %rdx,%r12
 shrdq $6,%r14,%r14
 xorq %r10,%rdi
 addq %r12,%r8
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %r9,%r14
 addq %r13,%r8
 xorq %r10,%r15
 shrdq $28,%r14,%r14
 addq %r8,%rax
 addq %r15,%r8
 movq %rax,%r13
 addq %r8,%r14
 shrdq $23,%r13,%r13
 movq %r14,%r8
 movq %rbx,%r12
 shrdq $5,%r14,%r14
 xorq %rax,%r13
 xorq %rcx,%r12
 shrdq $4,%r13,%r13
 xorq %r8,%r14
 andq %rax,%r12
 xorq %rax,%r13
 addq 96(%rsp),%rdx
 movq %r8,%r15
 xorq %rcx,%r12
 shrdq $6,%r14,%r14
 xorq %r9,%r15
 addq %r12,%rdx
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %r8,%r14
 addq %r13,%rdx
 xorq %r9,%rdi
 shrdq $28,%r14,%r14
 addq %rdx,%r11
 addq %rdi,%rdx
 movq %r11,%r13
 addq %rdx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rdx
 movq %rax,%r12
 shrdq $5,%r14,%r14
 xorq %r11,%r13
 xorq %rbx,%r12
 shrdq $4,%r13,%r13
 xorq %rdx,%r14
 andq %r11,%r12
 xorq %r11,%r13
 addq 104(%rsp),%rcx
 movq %rdx,%rdi
 xorq %rbx,%r12
 shrdq $6,%r14,%r14
 xorq %r8,%rdi
 addq %r12,%rcx
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %rdx,%r14
 addq %r13,%rcx
 xorq %r8,%r15
 shrdq $28,%r14,%r14
 addq %rcx,%r10
 addq %r15,%rcx
 movq %r10,%r13
 addq %rcx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rcx
 movq %r11,%r12
 shrdq $5,%r14,%r14
 xorq %r10,%r13
 xorq %rax,%r12
 shrdq $4,%r13,%r13
 xorq %rcx,%r14
 andq %r10,%r12
 xorq %r10,%r13
 addq 112(%rsp),%rbx
 movq %rcx,%r15
 xorq %rax,%r12
 shrdq $6,%r14,%r14
 xorq %rdx,%r15
 addq %r12,%rbx
 shrdq $14,%r13,%r13
 andq %r15,%rdi
 xorq %rcx,%r14
 addq %r13,%rbx
 xorq %rdx,%rdi
 shrdq $28,%r14,%r14
 addq %rbx,%r9
 addq %rdi,%rbx
 movq %r9,%r13
 addq %rbx,%r14
 shrdq $23,%r13,%r13
 movq %r14,%rbx
 movq %r10,%r12
 shrdq $5,%r14,%r14
 xorq %r9,%r13
 xorq %r11,%r12
 shrdq $4,%r13,%r13
 xorq %rbx,%r14
 andq %r9,%r12
 xorq %r9,%r13
 addq 120(%rsp),%rax
 movq %rbx,%rdi
 xorq %r11,%r12
 shrdq $6,%r14,%r14
 xorq %rcx,%rdi
 addq %r12,%rax
 shrdq $14,%r13,%r13
 andq %rdi,%r15
 xorq %rbx,%r14
 addq %r13,%rax
 xorq %rcx,%r15
 shrdq $28,%r14,%r14
 addq %rax,%r8
 addq %r15,%rax
 movq %r8,%r13
 addq %rax,%r14
 movq 128+0(%rsp),%rdi
 movq %r14,%rax

 addq 0(%rdi),%rax
 leaq 128(%rsi),%rsi
 addq 8(%rdi),%rbx
 addq 16(%rdi),%rcx
 addq 24(%rdi),%rdx
 addq 32(%rdi),%r8
 addq 40(%rdi),%r9
 addq 48(%rdi),%r10
 addq 56(%rdi),%r11

 cmpq 128+16(%rsp),%rsi

 movq %rax,0(%rdi)
 movq %rbx,8(%rdi)
 movq %rcx,16(%rdi)
 movq %rdx,24(%rdi)
 movq %r8,32(%rdi)
 movq %r9,40(%rdi)
 movq %r10,48(%rdi)
 movq %r11,56(%rdi)
# WAS jb .Lloop_avx
	jb	.Lloop_avx_BCM_20

 movq 152(%rsp),%rsi
.cfi_def_cfa %rsi,8
 vzeroupper
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lepilogue_avx_BCM_20:

 .byte 0xf3,0xc3
.cfi_endproc
.size sha512_block_data_order_avx,.-sha512_block_data_order_avx
# 0 "vpaes-x86_64.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "vpaes-x86_64.S"



#include <openssl/asm_base.h>
# 4 "vpaes-x86_64.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "vpaes-x86_64.S" 2


.text
# 24 "vpaes-x86_64.S"
.type _vpaes_encrypt_core,@function
.align 16
.L_vpaes_encrypt_core_local_target:
_vpaes_encrypt_core:
.cfi_startproc
 movq %rdx,%r9
 movq $16,%r11
 movl 240(%rdx),%eax
 movdqa %xmm9,%xmm1
# WAS movdqa .Lk_ipt(%rip),%xmm2
	movdqa	.Lk_ipt_BCM_21(%rip), %xmm2
 pandn %xmm0,%xmm1
 movdqu (%r9),%xmm5
 psrld $4,%xmm1
 pand %xmm9,%xmm0
.byte 102,15,56,0,208
# WAS movdqa .Lk_ipt+16(%rip),%xmm0
	movdqa	.Lk_ipt_BCM_21+16(%rip), %xmm0
.byte 102,15,56,0,193
 pxor %xmm5,%xmm2
 addq $16,%r9
 pxor %xmm2,%xmm0
# WAS leaq .Lk_mc_backward(%rip),%r10
	leaq	.Lk_mc_backward_BCM_21(%rip), %r10
# WAS jmp .Lenc_entry
	jmp	.Lenc_entry_BCM_21

.align 16
.Lenc_loop_BCM_21:


 movdqa %xmm13,%xmm4
 movdqa %xmm12,%xmm0
.byte 102,15,56,0,226
.byte 102,15,56,0,195
 pxor %xmm5,%xmm4
 movdqa %xmm15,%xmm5
 pxor %xmm4,%xmm0
 movdqa -64(%r11,%r10,1),%xmm1
.byte 102,15,56,0,234
 movdqa (%r11,%r10,1),%xmm4
 movdqa %xmm14,%xmm2
.byte 102,15,56,0,211
 movdqa %xmm0,%xmm3
 pxor %xmm5,%xmm2
.byte 102,15,56,0,193
 addq $16,%r9
 pxor %xmm2,%xmm0
.byte 102,15,56,0,220
 addq $16,%r11
 pxor %xmm0,%xmm3
.byte 102,15,56,0,193
 andq $0x30,%r11
 subq $1,%rax
 pxor %xmm3,%xmm0

.Lenc_entry_BCM_21:


 movdqa %xmm9,%xmm1
 movdqa %xmm11,%xmm5
 pandn %xmm0,%xmm1
 psrld $4,%xmm1
 pand %xmm9,%xmm0
.byte 102,15,56,0,232
 movdqa %xmm10,%xmm3
 pxor %xmm1,%xmm0
.byte 102,15,56,0,217
 movdqa %xmm10,%xmm4
 pxor %xmm5,%xmm3
.byte 102,15,56,0,224
 movdqa %xmm10,%xmm2
 pxor %xmm5,%xmm4
.byte 102,15,56,0,211
 movdqa %xmm10,%xmm3
 pxor %xmm0,%xmm2
.byte 102,15,56,0,220
 movdqu (%r9),%xmm5
 pxor %xmm1,%xmm3
# WAS jnz .Lenc_loop
	jnz	.Lenc_loop_BCM_21


 movdqa -96(%r10),%xmm4
 movdqa -80(%r10),%xmm0
.byte 102,15,56,0,226
 pxor %xmm5,%xmm4
.byte 102,15,56,0,195
 movdqa 64(%r11,%r10,1),%xmm1
 pxor %xmm4,%xmm0
.byte 102,15,56,0,193
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
# 140 "vpaes-x86_64.S"
.type _vpaes_encrypt_core_2x,@function
.align 16
.L_vpaes_encrypt_core_2x_local_target:
_vpaes_encrypt_core_2x:
.cfi_startproc
 movq %rdx,%r9
 movq $16,%r11
 movl 240(%rdx),%eax
 movdqa %xmm9,%xmm1
 movdqa %xmm9,%xmm7
# WAS movdqa .Lk_ipt(%rip),%xmm2
	movdqa	.Lk_ipt_BCM_21(%rip), %xmm2
 movdqa %xmm2,%xmm8
 pandn %xmm0,%xmm1
 pandn %xmm6,%xmm7
 movdqu (%r9),%xmm5

 psrld $4,%xmm1
 psrld $4,%xmm7
 pand %xmm9,%xmm0
 pand %xmm9,%xmm6
.byte 102,15,56,0,208
.byte 102,68,15,56,0,198
# WAS movdqa .Lk_ipt+16(%rip),%xmm0
	movdqa	.Lk_ipt_BCM_21+16(%rip), %xmm0
 movdqa %xmm0,%xmm6
.byte 102,15,56,0,193
.byte 102,15,56,0,247
 pxor %xmm5,%xmm2
 pxor %xmm5,%xmm8
 addq $16,%r9
 pxor %xmm2,%xmm0
 pxor %xmm8,%xmm6
# WAS leaq .Lk_mc_backward(%rip),%r10
	leaq	.Lk_mc_backward_BCM_21(%rip), %r10
# WAS jmp .Lenc2x_entry
	jmp	.Lenc2x_entry_BCM_21

.align 16
.Lenc2x_loop_BCM_21:


# WAS movdqa .Lk_sb1(%rip),%xmm4
	movdqa	.Lk_sb1_BCM_21(%rip), %xmm4
# WAS movdqa .Lk_sb1+16(%rip),%xmm0
	movdqa	.Lk_sb1_BCM_21+16(%rip), %xmm0
 movdqa %xmm4,%xmm12
 movdqa %xmm0,%xmm6
.byte 102,15,56,0,226
.byte 102,69,15,56,0,224
.byte 102,15,56,0,195
.byte 102,65,15,56,0,243
 pxor %xmm5,%xmm4
 pxor %xmm5,%xmm12
# WAS movdqa .Lk_sb2(%rip),%xmm5
	movdqa	.Lk_sb2_BCM_21(%rip), %xmm5
 movdqa %xmm5,%xmm13
 pxor %xmm4,%xmm0
 pxor %xmm12,%xmm6
 movdqa -64(%r11,%r10,1),%xmm1

.byte 102,15,56,0,234
.byte 102,69,15,56,0,232
 movdqa (%r11,%r10,1),%xmm4

# WAS movdqa .Lk_sb2+16(%rip),%xmm2
	movdqa	.Lk_sb2_BCM_21+16(%rip), %xmm2
 movdqa %xmm2,%xmm8
.byte 102,15,56,0,211
.byte 102,69,15,56,0,195
 movdqa %xmm0,%xmm3
 movdqa %xmm6,%xmm11
 pxor %xmm5,%xmm2
 pxor %xmm13,%xmm8
.byte 102,15,56,0,193
.byte 102,15,56,0,241
 addq $16,%r9
 pxor %xmm2,%xmm0
 pxor %xmm8,%xmm6
.byte 102,15,56,0,220
.byte 102,68,15,56,0,220
 addq $16,%r11
 pxor %xmm0,%xmm3
 pxor %xmm6,%xmm11
.byte 102,15,56,0,193
.byte 102,15,56,0,241
 andq $0x30,%r11
 subq $1,%rax
 pxor %xmm3,%xmm0
 pxor %xmm11,%xmm6

.Lenc2x_entry_BCM_21:


 movdqa %xmm9,%xmm1
 movdqa %xmm9,%xmm7
# WAS movdqa .Lk_inv+16(%rip),%xmm5
	movdqa	.Lk_inv_BCM_21+16(%rip), %xmm5
 movdqa %xmm5,%xmm13
 pandn %xmm0,%xmm1
 pandn %xmm6,%xmm7
 psrld $4,%xmm1
 psrld $4,%xmm7
 pand %xmm9,%xmm0
 pand %xmm9,%xmm6
.byte 102,15,56,0,232
.byte 102,68,15,56,0,238
 movdqa %xmm10,%xmm3
 movdqa %xmm10,%xmm11
 pxor %xmm1,%xmm0
 pxor %xmm7,%xmm6
.byte 102,15,56,0,217
.byte 102,68,15,56,0,223
 movdqa %xmm10,%xmm4
 movdqa %xmm10,%xmm12
 pxor %xmm5,%xmm3
 pxor %xmm13,%xmm11
.byte 102,15,56,0,224
.byte 102,68,15,56,0,230
 movdqa %xmm10,%xmm2
 movdqa %xmm10,%xmm8
 pxor %xmm5,%xmm4
 pxor %xmm13,%xmm12
.byte 102,15,56,0,211
.byte 102,69,15,56,0,195
 movdqa %xmm10,%xmm3
 movdqa %xmm10,%xmm11
 pxor %xmm0,%xmm2
 pxor %xmm6,%xmm8
.byte 102,15,56,0,220
.byte 102,69,15,56,0,220
 movdqu (%r9),%xmm5

 pxor %xmm1,%xmm3
 pxor %xmm7,%xmm11
# WAS jnz .Lenc2x_loop
	jnz	.Lenc2x_loop_BCM_21


 movdqa -96(%r10),%xmm4
 movdqa -80(%r10),%xmm0
 movdqa %xmm4,%xmm12
 movdqa %xmm0,%xmm6
.byte 102,15,56,0,226
.byte 102,69,15,56,0,224
 pxor %xmm5,%xmm4
 pxor %xmm5,%xmm12
.byte 102,15,56,0,195
.byte 102,65,15,56,0,243
 movdqa 64(%r11,%r10,1),%xmm1

 pxor %xmm4,%xmm0
 pxor %xmm12,%xmm6
.byte 102,15,56,0,193
.byte 102,15,56,0,241
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_encrypt_core_2x,.-_vpaes_encrypt_core_2x






.type _vpaes_decrypt_core,@function
.align 16
.L_vpaes_decrypt_core_local_target:
_vpaes_decrypt_core:
.cfi_startproc
 movq %rdx,%r9
 movl 240(%rdx),%eax
 movdqa %xmm9,%xmm1
# WAS movdqa .Lk_dipt(%rip),%xmm2
	movdqa	.Lk_dipt_BCM_21(%rip), %xmm2
 pandn %xmm0,%xmm1
 movq %rax,%r11
 psrld $4,%xmm1
 movdqu (%r9),%xmm5
 shlq $4,%r11
 pand %xmm9,%xmm0
.byte 102,15,56,0,208
# WAS movdqa .Lk_dipt+16(%rip),%xmm0
	movdqa	.Lk_dipt_BCM_21+16(%rip), %xmm0
 xorq $0x30,%r11
# WAS leaq .Lk_dsbd(%rip),%r10
	leaq	.Lk_dsbd_BCM_21(%rip), %r10
.byte 102,15,56,0,193
 andq $0x30,%r11
 pxor %xmm5,%xmm2
# WAS movdqa .Lk_mc_forward+48(%rip),%xmm5
	movdqa	.Lk_mc_forward_BCM_21+48(%rip), %xmm5
 pxor %xmm2,%xmm0
 addq $16,%r9
 addq %r10,%r11
# WAS jmp .Ldec_entry
	jmp	.Ldec_entry_BCM_21

.align 16
.Ldec_loop_BCM_21:




 movdqa -32(%r10),%xmm4
 movdqa -16(%r10),%xmm1
.byte 102,15,56,0,226
.byte 102,15,56,0,203
 pxor %xmm4,%xmm0
 movdqa 0(%r10),%xmm4
 pxor %xmm1,%xmm0
 movdqa 16(%r10),%xmm1

.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
 pxor %xmm4,%xmm0
 movdqa 32(%r10),%xmm4
 pxor %xmm1,%xmm0
 movdqa 48(%r10),%xmm1

.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
 pxor %xmm4,%xmm0
 movdqa 64(%r10),%xmm4
 pxor %xmm1,%xmm0
 movdqa 80(%r10),%xmm1

.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
 pxor %xmm4,%xmm0
 addq $16,%r9
.byte 102,15,58,15,237,12
 pxor %xmm1,%xmm0
 subq $1,%rax

.Ldec_entry_BCM_21:


 movdqa %xmm9,%xmm1
 pandn %xmm0,%xmm1
 movdqa %xmm11,%xmm2
 psrld $4,%xmm1
 pand %xmm9,%xmm0
.byte 102,15,56,0,208
 movdqa %xmm10,%xmm3
 pxor %xmm1,%xmm0
.byte 102,15,56,0,217
 movdqa %xmm10,%xmm4
 pxor %xmm2,%xmm3
.byte 102,15,56,0,224
 pxor %xmm2,%xmm4
 movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
 movdqa %xmm10,%xmm3
 pxor %xmm0,%xmm2
.byte 102,15,56,0,220
 movdqu (%r9),%xmm0
 pxor %xmm1,%xmm3
# WAS jnz .Ldec_loop
	jnz	.Ldec_loop_BCM_21


 movdqa 96(%r10),%xmm4
.byte 102,15,56,0,226
 pxor %xmm0,%xmm4
 movdqa 112(%r10),%xmm0
 movdqa -352(%r11),%xmm2
.byte 102,15,56,0,195
 pxor %xmm4,%xmm0
.byte 102,15,56,0,194
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_decrypt_core,.-_vpaes_decrypt_core






.type _vpaes_schedule_core,@function
.align 16
.L_vpaes_schedule_core_local_target:
_vpaes_schedule_core:
.cfi_startproc





# WAS call _vpaes_preheat
	call	.L_vpaes_preheat_local_target
# WAS movdqa .Lk_rcon(%rip),%xmm8
	movdqa	.Lk_rcon_BCM_21(%rip), %xmm8
 movdqu (%rdi),%xmm0


 movdqa %xmm0,%xmm3
# WAS leaq .Lk_ipt(%rip),%r11
	leaq	.Lk_ipt_BCM_21(%rip), %r11
# WAS call _vpaes_schedule_transform
	call	.L_vpaes_schedule_transform_local_target
 movdqa %xmm0,%xmm7

# WAS leaq .Lk_sr(%rip),%r10
	leaq	.Lk_sr_BCM_21(%rip), %r10
 testq %rcx,%rcx
# WAS jnz .Lschedule_am_decrypting
	jnz	.Lschedule_am_decrypting_BCM_21


 movdqu %xmm0,(%rdx)
# WAS jmp .Lschedule_go
	jmp	.Lschedule_go_BCM_21

.Lschedule_am_decrypting_BCM_21:


 movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
 movdqu %xmm3,(%rdx)
 xorq $0x30,%r8

.Lschedule_go_BCM_21:

 cmpl $192,%esi
# WAS ja .Lschedule_256
	ja	.Lschedule_256_BCM_21
# WAS je .Lschedule_192
	je	.Lschedule_192_BCM_21
# 447 "vpaes-x86_64.S"
.Lschedule_128_BCM_21:

 movl $10,%esi

.Loop_schedule_128_BCM_21:

# WAS call _vpaes_schedule_round
	call	.L_vpaes_schedule_round_local_target
 decq %rsi
# WAS jz .Lschedule_mangle_last
	jz	.Lschedule_mangle_last_BCM_21
# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target
# WAS jmp .Loop_schedule_128
	jmp	.Loop_schedule_128_BCM_21
# 472 "vpaes-x86_64.S"
.align 16
.Lschedule_192_BCM_21:

 movdqu 8(%rdi),%xmm0
# WAS call _vpaes_schedule_transform
	call	.L_vpaes_schedule_transform_local_target
 movdqa %xmm0,%xmm6
 pxor %xmm4,%xmm4
 movhlps %xmm4,%xmm6
 movl $4,%esi

.Loop_schedule_192_BCM_21:

# WAS call _vpaes_schedule_round
	call	.L_vpaes_schedule_round_local_target
.byte 102,15,58,15,198,8
# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target
# WAS call _vpaes_schedule_192_smear
	call	.L_vpaes_schedule_192_smear_local_target
# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target
# WAS call _vpaes_schedule_round
	call	.L_vpaes_schedule_round_local_target
 decq %rsi
# WAS jz .Lschedule_mangle_last
	jz	.Lschedule_mangle_last_BCM_21
# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target
# WAS call _vpaes_schedule_192_smear
	call	.L_vpaes_schedule_192_smear_local_target
# WAS jmp .Loop_schedule_192
	jmp	.Loop_schedule_192_BCM_21
# 504 "vpaes-x86_64.S"
.align 16
.Lschedule_256_BCM_21:

 movdqu 16(%rdi),%xmm0
# WAS call _vpaes_schedule_transform
	call	.L_vpaes_schedule_transform_local_target
 movl $7,%esi

.Loop_schedule_256_BCM_21:

# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target
 movdqa %xmm0,%xmm6


# WAS call _vpaes_schedule_round
	call	.L_vpaes_schedule_round_local_target
 decq %rsi
# WAS jz .Lschedule_mangle_last
	jz	.Lschedule_mangle_last_BCM_21
# WAS call _vpaes_schedule_mangle
	call	.L_vpaes_schedule_mangle_local_target


 pshufd $0xFF,%xmm0,%xmm0
 movdqa %xmm7,%xmm5
 movdqa %xmm6,%xmm7
# WAS call _vpaes_schedule_low_round
	call	.L_vpaes_schedule_low_round_local_target
 movdqa %xmm5,%xmm7

# WAS jmp .Loop_schedule_256
	jmp	.Loop_schedule_256_BCM_21
# 540 "vpaes-x86_64.S"
.align 16
.Lschedule_mangle_last_BCM_21:


# WAS leaq .Lk_deskew(%rip),%r11
	leaq	.Lk_deskew_BCM_21(%rip), %r11
 testq %rcx,%rcx
# WAS jnz .Lschedule_mangle_last_dec
	jnz	.Lschedule_mangle_last_dec_BCM_21


 movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,193
# WAS leaq .Lk_opt(%rip),%r11
	leaq	.Lk_opt_BCM_21(%rip), %r11
 addq $32,%rdx

.Lschedule_mangle_last_dec_BCM_21:

 addq $-16,%rdx
# WAS pxor .Lk_s63(%rip),%xmm0
	pxor	.Lk_s63_BCM_21(%rip), %xmm0
# WAS call _vpaes_schedule_transform
	call	.L_vpaes_schedule_transform_local_target
 movdqu %xmm0,(%rdx)


 pxor %xmm0,%xmm0
 pxor %xmm1,%xmm1
 pxor %xmm2,%xmm2
 pxor %xmm3,%xmm3
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 pxor %xmm6,%xmm6
 pxor %xmm7,%xmm7
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_schedule_core,.-_vpaes_schedule_core
# 586 "vpaes-x86_64.S"
.type _vpaes_schedule_192_smear,@function
.align 16
.L_vpaes_schedule_192_smear_local_target:
_vpaes_schedule_192_smear:
.cfi_startproc
 pshufd $0x80,%xmm6,%xmm1
 pshufd $0xFE,%xmm7,%xmm0
 pxor %xmm1,%xmm6
 pxor %xmm1,%xmm1
 pxor %xmm0,%xmm6
 movdqa %xmm6,%xmm0
 movhlps %xmm1,%xmm6
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
# 619 "vpaes-x86_64.S"
.type _vpaes_schedule_round,@function
.align 16
.L_vpaes_schedule_round_local_target:
_vpaes_schedule_round:
.cfi_startproc

 pxor %xmm1,%xmm1
.byte 102,65,15,58,15,200,15
.byte 102,69,15,58,15,192,15
 pxor %xmm1,%xmm7


 pshufd $0xFF,%xmm0,%xmm0
.byte 102,15,58,15,192,1




.L_vpaes_schedule_low_round_local_target:
_vpaes_schedule_low_round:

 movdqa %xmm7,%xmm1
 pslldq $4,%xmm7
 pxor %xmm1,%xmm7
 movdqa %xmm7,%xmm1
 pslldq $8,%xmm7
 pxor %xmm1,%xmm7
# WAS pxor .Lk_s63(%rip),%xmm7
	pxor	.Lk_s63_BCM_21(%rip), %xmm7


 movdqa %xmm9,%xmm1
 pandn %xmm0,%xmm1
 psrld $4,%xmm1
 pand %xmm9,%xmm0
 movdqa %xmm11,%xmm2
.byte 102,15,56,0,208
 pxor %xmm1,%xmm0
 movdqa %xmm10,%xmm3
.byte 102,15,56,0,217
 pxor %xmm2,%xmm3
 movdqa %xmm10,%xmm4
.byte 102,15,56,0,224
 pxor %xmm2,%xmm4
 movdqa %xmm10,%xmm2
.byte 102,15,56,0,211
 pxor %xmm0,%xmm2
 movdqa %xmm10,%xmm3
.byte 102,15,56,0,220
 pxor %xmm1,%xmm3
 movdqa %xmm13,%xmm4
.byte 102,15,56,0,226
 movdqa %xmm12,%xmm0
.byte 102,15,56,0,195
 pxor %xmm4,%xmm0


 pxor %xmm7,%xmm0
 movdqa %xmm0,%xmm7
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_schedule_round,.-_vpaes_schedule_round
# 688 "vpaes-x86_64.S"
.type _vpaes_schedule_transform,@function
.align 16
.L_vpaes_schedule_transform_local_target:
_vpaes_schedule_transform:
.cfi_startproc
 movdqa %xmm9,%xmm1
 pandn %xmm0,%xmm1
 psrld $4,%xmm1
 pand %xmm9,%xmm0
 movdqa (%r11),%xmm2
.byte 102,15,56,0,208
 movdqa 16(%r11),%xmm0
.byte 102,15,56,0,193
 pxor %xmm2,%xmm0
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
# 728 "vpaes-x86_64.S"
.type _vpaes_schedule_mangle,@function
.align 16
.L_vpaes_schedule_mangle_local_target:
_vpaes_schedule_mangle:
.cfi_startproc
 movdqa %xmm0,%xmm4
# WAS movdqa .Lk_mc_forward(%rip),%xmm5
	movdqa	.Lk_mc_forward_BCM_21(%rip), %xmm5
 testq %rcx,%rcx
# WAS jnz .Lschedule_mangle_dec
	jnz	.Lschedule_mangle_dec_BCM_21


 addq $16,%rdx
# WAS pxor .Lk_s63(%rip),%xmm4
	pxor	.Lk_s63_BCM_21(%rip), %xmm4
.byte 102,15,56,0,229
 movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
 pxor %xmm4,%xmm3
.byte 102,15,56,0,229
 pxor %xmm4,%xmm3

# WAS jmp .Lschedule_mangle_both
	jmp	.Lschedule_mangle_both_BCM_21
.align 16
.Lschedule_mangle_dec_BCM_21:


# WAS leaq .Lk_dksd(%rip),%r11
	leaq	.Lk_dksd_BCM_21(%rip), %r11
 movdqa %xmm9,%xmm1
 pandn %xmm4,%xmm1
 psrld $4,%xmm1
 pand %xmm9,%xmm4

 movdqa 0(%r11),%xmm2
.byte 102,15,56,0,212
 movdqa 16(%r11),%xmm3
.byte 102,15,56,0,217
 pxor %xmm2,%xmm3
.byte 102,15,56,0,221

 movdqa 32(%r11),%xmm2
.byte 102,15,56,0,212
 pxor %xmm3,%xmm2
 movdqa 48(%r11),%xmm3
.byte 102,15,56,0,217
 pxor %xmm2,%xmm3
.byte 102,15,56,0,221

 movdqa 64(%r11),%xmm2
.byte 102,15,56,0,212
 pxor %xmm3,%xmm2
 movdqa 80(%r11),%xmm3
.byte 102,15,56,0,217
 pxor %xmm2,%xmm3
.byte 102,15,56,0,221

 movdqa 96(%r11),%xmm2
.byte 102,15,56,0,212
 pxor %xmm3,%xmm2
 movdqa 112(%r11),%xmm3
.byte 102,15,56,0,217
 pxor %xmm2,%xmm3

 addq $-16,%rdx

.Lschedule_mangle_both_BCM_21:

 movdqa (%r8,%r10,1),%xmm1
.byte 102,15,56,0,217
 addq $-16,%r8
 andq $0x30,%r8
 movdqu %xmm3,(%rdx)
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle




.globl vpaes_set_encrypt_key
.hidden vpaes_set_encrypt_key
.type vpaes_set_encrypt_key,@function
.align 16
.Lvpaes_set_encrypt_key_local_target:
vpaes_set_encrypt_key:
.cfi_startproc
endbr64






 movl %esi,%eax
 shrl $5,%eax
 addl $5,%eax
 movl %eax,240(%rdx)

 movl $0,%ecx
 movl $0x30,%r8d
# WAS call _vpaes_schedule_core
	call	.L_vpaes_schedule_core_local_target
 xorl %eax,%eax
 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key

.globl vpaes_set_decrypt_key
.hidden vpaes_set_decrypt_key
.type vpaes_set_decrypt_key,@function
.align 16
.Lvpaes_set_decrypt_key_local_target:
vpaes_set_decrypt_key:
.cfi_startproc
endbr64
 movl %esi,%eax
 shrl $5,%eax
 addl $5,%eax
 movl %eax,240(%rdx)
 shll $4,%eax
 leaq 16(%rdx,%rax,1),%rdx

 movl $1,%ecx
 movl %esi,%r8d
 shrl $1,%r8d
 andl $32,%r8d
 xorl $32,%r8d
# WAS call _vpaes_schedule_core
	call	.L_vpaes_schedule_core_local_target
 xorl %eax,%eax
 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key

.globl vpaes_encrypt
.hidden vpaes_encrypt
.type vpaes_encrypt,@function
.align 16
.Lvpaes_encrypt_local_target:
vpaes_encrypt:
.cfi_startproc
endbr64





 movdqu (%rdi),%xmm0
# WAS call _vpaes_preheat
	call	.L_vpaes_preheat_local_target
# WAS call _vpaes_encrypt_core
	call	.L_vpaes_encrypt_core_local_target
 movdqu %xmm0,(%rsi)
 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_encrypt,.-vpaes_encrypt

.globl vpaes_decrypt
.hidden vpaes_decrypt
.type vpaes_decrypt,@function
.align 16
.Lvpaes_decrypt_local_target:
vpaes_decrypt:
.cfi_startproc
endbr64
 movdqu (%rdi),%xmm0
# WAS call _vpaes_preheat
	call	.L_vpaes_preheat_local_target
# WAS call _vpaes_decrypt_core
	call	.L_vpaes_decrypt_core_local_target
 movdqu %xmm0,(%rsi)
 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_decrypt,.-vpaes_decrypt
.globl vpaes_cbc_encrypt
.hidden vpaes_cbc_encrypt
.type vpaes_cbc_encrypt,@function
.align 16
.Lvpaes_cbc_encrypt_local_target:
vpaes_cbc_encrypt:
.cfi_startproc
endbr64
 xchgq %rcx,%rdx
 subq $16,%rcx
# WAS jc .Lcbc_abort
	jc	.Lcbc_abort_BCM_21
 movdqu (%r8),%xmm6
 subq %rdi,%rsi
# WAS call _vpaes_preheat
	call	.L_vpaes_preheat_local_target
 cmpl $0,%r9d
# WAS je .Lcbc_dec_loop
	je	.Lcbc_dec_loop_BCM_21
# WAS jmp .Lcbc_enc_loop
	jmp	.Lcbc_enc_loop_BCM_21
.align 16
.Lcbc_enc_loop_BCM_21:

 movdqu (%rdi),%xmm0
 pxor %xmm6,%xmm0
# WAS call _vpaes_encrypt_core
	call	.L_vpaes_encrypt_core_local_target
 movdqa %xmm0,%xmm6
 movdqu %xmm0,(%rsi,%rdi,1)
 leaq 16(%rdi),%rdi
 subq $16,%rcx
# WAS jnc .Lcbc_enc_loop
	jnc	.Lcbc_enc_loop_BCM_21
# WAS jmp .Lcbc_done
	jmp	.Lcbc_done_BCM_21
.align 16
.Lcbc_dec_loop_BCM_21:

 movdqu (%rdi),%xmm0
 movdqa %xmm0,%xmm7
# WAS call _vpaes_decrypt_core
	call	.L_vpaes_decrypt_core_local_target
 pxor %xmm6,%xmm0
 movdqa %xmm7,%xmm6
 movdqu %xmm0,(%rsi,%rdi,1)
 leaq 16(%rdi),%rdi
 subq $16,%rcx
# WAS jnc .Lcbc_dec_loop
	jnc	.Lcbc_dec_loop_BCM_21
.Lcbc_done_BCM_21:

 movdqu %xmm6,(%r8)
.Lcbc_abort_BCM_21:

 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
.globl vpaes_ctr32_encrypt_blocks
.hidden vpaes_ctr32_encrypt_blocks
.type vpaes_ctr32_encrypt_blocks,@function
.align 16
.Lvpaes_ctr32_encrypt_blocks_local_target:
vpaes_ctr32_encrypt_blocks:
.cfi_startproc
endbr64

 xchgq %rcx,%rdx
 testq %rcx,%rcx
# WAS jz .Lctr32_abort
	jz	.Lctr32_abort_BCM_21
 movdqu (%r8),%xmm0
# WAS movdqa .Lctr_add_one(%rip),%xmm8
	movdqa	.Lctr_add_one_BCM_21(%rip), %xmm8
 subq %rdi,%rsi
# WAS call _vpaes_preheat
	call	.L_vpaes_preheat_local_target
 movdqa %xmm0,%xmm6
# WAS pshufb .Lrev_ctr(%rip),%xmm6
	pshufb	.Lrev_ctr_BCM_21(%rip), %xmm6

 testq $1,%rcx
# WAS jz .Lctr32_prep_loop
	jz	.Lctr32_prep_loop_BCM_21



 movdqu (%rdi),%xmm7
# WAS call _vpaes_encrypt_core
	call	.L_vpaes_encrypt_core_local_target
 pxor %xmm7,%xmm0
 paddd %xmm8,%xmm6
 movdqu %xmm0,(%rsi,%rdi,1)
 subq $1,%rcx
 leaq 16(%rdi),%rdi
# WAS jz .Lctr32_done
	jz	.Lctr32_done_BCM_21

.Lctr32_prep_loop_BCM_21:



 movdqa %xmm6,%xmm14
 movdqa %xmm6,%xmm15
 paddd %xmm8,%xmm15

.Lctr32_loop_BCM_21:

# WAS movdqa .Lrev_ctr(%rip),%xmm1
	movdqa	.Lrev_ctr_BCM_21(%rip), %xmm1
 movdqa %xmm14,%xmm0
 movdqa %xmm15,%xmm6
.byte 102,15,56,0,193
.byte 102,15,56,0,241
# WAS call _vpaes_encrypt_core_2x
	call	.L_vpaes_encrypt_core_2x_local_target
 movdqu (%rdi),%xmm1
 movdqu 16(%rdi),%xmm2
# WAS movdqa .Lctr_add_two(%rip),%xmm3
	movdqa	.Lctr_add_two_BCM_21(%rip), %xmm3
 pxor %xmm1,%xmm0
 pxor %xmm2,%xmm6
 paddd %xmm3,%xmm14
 paddd %xmm3,%xmm15
 movdqu %xmm0,(%rsi,%rdi,1)
 movdqu %xmm6,16(%rsi,%rdi,1)
 subq $2,%rcx
 leaq 32(%rdi),%rdi
# WAS jnz .Lctr32_loop
	jnz	.Lctr32_loop_BCM_21

.Lctr32_done_BCM_21:

.Lctr32_abort_BCM_21:

 .byte 0xf3,0xc3
.cfi_endproc
.size vpaes_ctr32_encrypt_blocks,.-vpaes_ctr32_encrypt_blocks






.type _vpaes_preheat,@function
.align 16
.L_vpaes_preheat_local_target:
_vpaes_preheat:
.cfi_startproc
# WAS leaq .Lk_s0F(%rip),%r10
	leaq	.Lk_s0F_BCM_21(%rip), %r10
 movdqa -32(%r10),%xmm10
 movdqa -16(%r10),%xmm11
 movdqa 0(%r10),%xmm9
 movdqa 48(%r10),%xmm13
 movdqa 64(%r10),%xmm12
 movdqa 80(%r10),%xmm15
 movdqa 96(%r10),%xmm14
 .byte 0xf3,0xc3
.cfi_endproc
.size _vpaes_preheat,.-_vpaes_preheat





.type _vpaes_consts,@object
# WAS .section .rodata
.text
.align 64
.L_vpaes_consts_local_target:
_vpaes_consts:
.Lk_inv_BCM_21:

.quad 0x0E05060F0D080180, 0x040703090A0B0C02
.quad 0x01040A060F0B0780, 0x030D0E0C02050809

.Lk_s0F_BCM_21:

.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F

.Lk_ipt_BCM_21:

.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81

.Lk_sb1_BCM_21:

.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
.Lk_sb2_BCM_21:

.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
.Lk_sbo_BCM_21:

.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA

.Lk_mc_forward_BCM_21:

.quad 0x0407060500030201, 0x0C0F0E0D080B0A09
.quad 0x080B0A0904070605, 0x000302010C0F0E0D
.quad 0x0C0F0E0D080B0A09, 0x0407060500030201
.quad 0x000302010C0F0E0D, 0x080B0A0904070605

.Lk_mc_backward_BCM_21:

.quad 0x0605040702010003, 0x0E0D0C0F0A09080B
.quad 0x020100030E0D0C0F, 0x0A09080B06050407
.quad 0x0E0D0C0F0A09080B, 0x0605040702010003
.quad 0x0A09080B06050407, 0x020100030E0D0C0F

.Lk_sr_BCM_21:

.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
.quad 0x030E09040F0A0500, 0x0B06010C07020D08
.quad 0x0F060D040B020900, 0x070E050C030A0108
.quad 0x0B0E0104070A0D00, 0x0306090C0F020508

.Lk_rcon_BCM_21:

.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81

.Lk_s63_BCM_21:

.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B

.Lk_opt_BCM_21:

.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0

.Lk_deskew_BCM_21:

.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77





.Lk_dksd_BCM_21:

.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
.Lk_dksb_BCM_21:

.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
.Lk_dkse_BCM_21:

.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
.Lk_dks9_BCM_21:

.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE





.Lk_dipt_BCM_21:

.quad 0x0F505B040B545F00, 0x154A411E114E451A
.quad 0x86E383E660056500, 0x12771772F491F194

.Lk_dsb9_BCM_21:

.quad 0x851C03539A86D600, 0xCAD51F504F994CC9
.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
.Lk_dsbd_BCM_21:

.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
.Lk_dsbb_BCM_21:

.quad 0xD022649296B44200, 0x602646F6B0F2D404
.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
.Lk_dsbe_BCM_21:

.quad 0x46F2929626D4D000, 0x2242600464B4F6B0
.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
.Lk_dsbo_BCM_21:

.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C


.Lrev_ctr_BCM_21:

.quad 0x0706050403020100, 0x0c0d0e0f0b0a0908


.Lctr_add_one_BCM_21:

.quad 0x0000000000000000, 0x0000000100000000
.Lctr_add_two_BCM_21:

.quad 0x0000000000000000, 0x0000000200000000

.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
.align 64
.size _vpaes_consts,.-_vpaes_consts
.text
# 0 "x86_64-mont5.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "x86_64-mont5.S"



#include <openssl/asm_base.h>
# 4 "x86_64-mont5.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "x86_64-mont5.S" 2


.text

.extern OPENSSL_ia32cap_P
.hidden OPENSSL_ia32cap_P

.globl bn_mul_mont_gather5
.hidden bn_mul_mont_gather5
.type bn_mul_mont_gather5,@function
.align 64
.Lbn_mul_mont_gather5_local_target:
bn_mul_mont_gather5:
.cfi_startproc
endbr64
 movl %r9d,%r9d
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 testl $7,%r9d
# WAS jnz .Lmul_enter
	jnz	.Lmul_enter_BCM_22

# WAS leaq OPENSSL_ia32cap_P(%rip),%r11
	jmp	LOPENSSL_ia32cap_P_r1112
LOPENSSL_ia32cap_P_r1112_return:
 movl 8(%r11),%r11d

# WAS jmp .Lmul4x_enter
	jmp	.Lmul4x_enter_BCM_22

.align 16
.Lmul_enter_BCM_22:

 movd 8(%rsp),%xmm5
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56

 negq %r9
 movq %rsp,%r11
 leaq -280(%rsp,%r9,8),%r10
 negq %r9
 andq $-1024,%r10
# 60 "x86_64-mont5.S"
 subq %r10,%r11
 andq $-4096,%r11
 leaq (%r10,%r11,1),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul_page_walk
	ja	.Lmul_page_walk_BCM_22
# WAS jmp .Lmul_page_walk_done
	jmp	.Lmul_page_walk_done_BCM_22

.Lmul_page_walk_BCM_22:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul_page_walk
	ja	.Lmul_page_walk_BCM_22
.Lmul_page_walk_done_BCM_22:


# WAS leaq .Linc(%rip),%r10
	leaq	.Linc_BCM_22(%rip), %r10
 movq %rax,8(%rsp,%r9,8)
.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08
.Lmul_body_BCM_22:


 leaq 128(%rdx),%r12
 movdqa 0(%r10),%xmm0
 movdqa 16(%r10),%xmm1
 leaq 24-112(%rsp,%r9,8),%r10
 andq $-16,%r10

 pshufd $0,%xmm5,%xmm5
 movdqa %xmm1,%xmm4
 movdqa %xmm1,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
.byte 0x67
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,112(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,128(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,144(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,160(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,176(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,192(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,208(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,224(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,240(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,256(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,272(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,288(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,304(%r10)

 paddd %xmm2,%xmm3
.byte 0x67
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,320(%r10)

 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,336(%r10)
 pand 64(%r12),%xmm0

 pand 80(%r12),%xmm1
 pand 96(%r12),%xmm2
 movdqa %xmm3,352(%r10)
 pand 112(%r12),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -128(%r12),%xmm4
 movdqa -112(%r12),%xmm5
 movdqa -96(%r12),%xmm2
 pand 112(%r10),%xmm4
 movdqa -80(%r12),%xmm3
 pand 128(%r10),%xmm5
 por %xmm4,%xmm0
 pand 144(%r10),%xmm2
 por %xmm5,%xmm1
 pand 160(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -64(%r12),%xmm4
 movdqa -48(%r12),%xmm5
 movdqa -32(%r12),%xmm2
 pand 176(%r10),%xmm4
 movdqa -16(%r12),%xmm3
 pand 192(%r10),%xmm5
 por %xmm4,%xmm0
 pand 208(%r10),%xmm2
 por %xmm5,%xmm1
 pand 224(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa 0(%r12),%xmm4
 movdqa 16(%r12),%xmm5
 movdqa 32(%r12),%xmm2
 pand 240(%r10),%xmm4
 movdqa 48(%r12),%xmm3
 pand 256(%r10),%xmm5
 por %xmm4,%xmm0
 pand 272(%r10),%xmm2
 por %xmm5,%xmm1
 pand 288(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 por %xmm1,%xmm0

 pshufd $0x4e,%xmm0,%xmm1
 por %xmm1,%xmm0
 leaq 256(%r12),%r12
.byte 102,72,15,126,195

 movq (%r8),%r8
 movq (%rsi),%rax

 xorq %r14,%r14
 xorq %r15,%r15

 movq %r8,%rbp
 mulq %rbx
 movq %rax,%r10
 movq (%rcx),%rax

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%r13

 leaq 1(%r15),%r15
# WAS jmp .L1st_enter
	jmp	.L1st_enter_BCM_22

.align 16
.L1st_BCM_22:

 addq %rax,%r13
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%r13
 movq %r10,%r11
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13

.L1st_enter_BCM_22:

 mulq %rbx
 addq %rax,%r11
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 leaq 1(%r15),%r15
 movq %rdx,%r10

 mulq %rbp
 cmpq %r9,%r15
# WAS jne .L1st
	jne	.L1st_BCM_22


 addq %rax,%r13
 adcq $0,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r9,8)
 movq %rdx,%r13
 movq %r10,%r11

 xorq %rdx,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r9,8)
 movq %rdx,(%rsp,%r9,8)

 leaq 1(%r14),%r14
# WAS jmp .Louter
	jmp	.Louter_BCM_22
.align 16
.Louter_BCM_22:

 leaq 24+128(%rsp,%r9,8),%rdx
 andq $-16,%rdx
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 movdqa -128(%r12),%xmm0
 movdqa -112(%r12),%xmm1
 movdqa -96(%r12),%xmm2
 movdqa -80(%r12),%xmm3
 pand -128(%rdx),%xmm0
 pand -112(%rdx),%xmm1
 por %xmm0,%xmm4
 pand -96(%rdx),%xmm2
 por %xmm1,%xmm5
 pand -80(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa -64(%r12),%xmm0
 movdqa -48(%r12),%xmm1
 movdqa -32(%r12),%xmm2
 movdqa -16(%r12),%xmm3
 pand -64(%rdx),%xmm0
 pand -48(%rdx),%xmm1
 por %xmm0,%xmm4
 pand -32(%rdx),%xmm2
 por %xmm1,%xmm5
 pand -16(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 0(%r12),%xmm0
 movdqa 16(%r12),%xmm1
 movdqa 32(%r12),%xmm2
 movdqa 48(%r12),%xmm3
 pand 0(%rdx),%xmm0
 pand 16(%rdx),%xmm1
 por %xmm0,%xmm4
 pand 32(%rdx),%xmm2
 por %xmm1,%xmm5
 pand 48(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 64(%r12),%xmm0
 movdqa 80(%r12),%xmm1
 movdqa 96(%r12),%xmm2
 movdqa 112(%r12),%xmm3
 pand 64(%rdx),%xmm0
 pand 80(%rdx),%xmm1
 por %xmm0,%xmm4
 pand 96(%rdx),%xmm2
 por %xmm1,%xmm5
 pand 112(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 por %xmm5,%xmm4

 pshufd $0x4e,%xmm4,%xmm0
 por %xmm4,%xmm0
 leaq 256(%r12),%r12

 movq (%rsi),%rax
.byte 102,72,15,126,195

 xorq %r15,%r15
 movq %r8,%rbp
 movq (%rsp),%r10

 mulq %rbx
 addq %rax,%r10
 movq (%rcx),%rax
 adcq $0,%rdx

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq 8(%rsp),%r10
 movq %rdx,%r13

 leaq 1(%r15),%r15
# WAS jmp .Linner_enter
	jmp	.Linner_enter_BCM_22

.align 16
.Linner_BCM_22:

 addq %rax,%r13
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 movq (%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13

.Linner_enter_BCM_22:

 mulq %rbx
 addq %rax,%r11
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%r10
 movq %rdx,%r11
 adcq $0,%r11
 leaq 1(%r15),%r15

 mulq %rbp
 cmpq %r9,%r15
# WAS jne .Linner
	jne	.Linner_BCM_22

 addq %rax,%r13
 adcq $0,%rdx
 addq %r10,%r13
 movq (%rsp,%r9,8),%r10
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r9,8)
 movq %rdx,%r13

 xorq %rdx,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r9,8)
 movq %rdx,(%rsp,%r9,8)

 leaq 1(%r14),%r14
 cmpq %r9,%r14
# WAS jb .Louter
	jb	.Louter_BCM_22

 xorq %r14,%r14
 movq (%rsp),%rax
 leaq (%rsp),%rsi
 movq %r9,%r15
# WAS jmp .Lsub
	jmp	.Lsub_BCM_22
.align 16
.Lsub_BCM_22:
 sbbq (%rcx,%r14,8),%rax
 movq %rax,(%rdi,%r14,8)
 movq 8(%rsi,%r14,8),%rax
 leaq 1(%r14),%r14
 decq %r15
# WAS jnz .Lsub
	jnz	.Lsub_BCM_22

 sbbq $0,%rax
 movq $-1,%rbx
 xorq %rax,%rbx
 xorq %r14,%r14
 movq %r9,%r15

.Lcopy_BCM_22:

 movq (%rdi,%r14,8),%rcx
 movq (%rsp,%r14,8),%rdx
 andq %rbx,%rcx
 andq %rax,%rdx
 movq %r14,(%rsp,%r14,8)
 orq %rcx,%rdx
 movq %rdx,(%rdi,%r14,8)
 leaq 1(%r14),%r14
 subq $1,%r15
# WAS jnz .Lcopy
	jnz	.Lcopy_BCM_22

 movq 8(%rsp,%r9,8),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax

 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmul_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mul_mont_gather5,.-bn_mul_mont_gather5
.type bn_mul4x_mont_gather5,@function
.align 32
.Lbn_mul4x_mont_gather5_local_target:
bn_mul4x_mont_gather5:
.cfi_startproc
.byte 0x67
 movq %rsp,%rax
.cfi_def_cfa_register %rax
.Lmul4x_enter_BCM_22:


 andl $0x80108,%r11d
 cmpl $0x80108,%r11d
# WAS je .Lmulx4x_enter
	je	.Lmulx4x_enter_BCM_22

 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lmul4x_prologue_BCM_22:


.byte 0x67
 shll $3,%r9d
 leaq (%r9,%r9,2),%r10
 negq %r9
# 499 "x86_64-mont5.S"
 leaq -320(%rsp,%r9,2),%r11
 movq %rsp,%rbp
 subq %rdi,%r11
 andq $4095,%r11
 cmpq %r11,%r10
# WAS jb .Lmul4xsp_alt
	jb	.Lmul4xsp_alt_BCM_22
 subq %r11,%rbp
 leaq -320(%rbp,%r9,2),%rbp
# WAS jmp .Lmul4xsp_done
	jmp	.Lmul4xsp_done_BCM_22

.align 32
.Lmul4xsp_alt_BCM_22:

 leaq 4096-320(,%r9,2),%r10
 leaq -320(%rbp,%r9,2),%rbp
 subq %r10,%r11
 movq $0,%r10
 cmovcq %r10,%r11
 subq %r11,%rbp
.Lmul4xsp_done_BCM_22:

 andq $-64,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmul4x_page_walk
	ja	.Lmul4x_page_walk_BCM_22
# WAS jmp .Lmul4x_page_walk_done
	jmp	.Lmul4x_page_walk_done_BCM_22

.Lmul4x_page_walk_BCM_22:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmul4x_page_walk
	ja	.Lmul4x_page_walk_BCM_22
.Lmul4x_page_walk_done_BCM_22:


 negq %r9

 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
.Lmul4x_body_BCM_22:


# WAS call mul4x_internal
	call	.Lmul4x_internal_local_target

 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax

 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmul4x_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5

.type mul4x_internal,@function
.align 32
.Lmul4x_internal_local_target:
mul4x_internal:
.cfi_startproc
 shlq $5,%r9
 movd 8(%rax),%xmm5
# WAS leaq .Linc(%rip),%rax
	leaq	.Linc_BCM_22(%rip), %rax
 leaq 128(%rdx,%r9,1),%r13
 shrq $5,%r9
 movdqa 0(%rax),%xmm0
 movdqa 16(%rax),%xmm1
 leaq 88-112(%rsp,%r9,1),%r10
 leaq 128(%rdx),%r12

 pshufd $0,%xmm5,%xmm5
 movdqa %xmm1,%xmm4
.byte 0x67,0x67
 movdqa %xmm1,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
.byte 0x67
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,112(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,128(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,144(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,160(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,176(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,192(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,208(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,224(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,240(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,256(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,272(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,288(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,304(%r10)

 paddd %xmm2,%xmm3
.byte 0x67
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,320(%r10)

 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,336(%r10)
 pand 64(%r12),%xmm0

 pand 80(%r12),%xmm1
 pand 96(%r12),%xmm2
 movdqa %xmm3,352(%r10)
 pand 112(%r12),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -128(%r12),%xmm4
 movdqa -112(%r12),%xmm5
 movdqa -96(%r12),%xmm2
 pand 112(%r10),%xmm4
 movdqa -80(%r12),%xmm3
 pand 128(%r10),%xmm5
 por %xmm4,%xmm0
 pand 144(%r10),%xmm2
 por %xmm5,%xmm1
 pand 160(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -64(%r12),%xmm4
 movdqa -48(%r12),%xmm5
 movdqa -32(%r12),%xmm2
 pand 176(%r10),%xmm4
 movdqa -16(%r12),%xmm3
 pand 192(%r10),%xmm5
 por %xmm4,%xmm0
 pand 208(%r10),%xmm2
 por %xmm5,%xmm1
 pand 224(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa 0(%r12),%xmm4
 movdqa 16(%r12),%xmm5
 movdqa 32(%r12),%xmm2
 pand 240(%r10),%xmm4
 movdqa 48(%r12),%xmm3
 pand 256(%r10),%xmm5
 por %xmm4,%xmm0
 pand 272(%r10),%xmm2
 por %xmm5,%xmm1
 pand 288(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 por %xmm1,%xmm0

 pshufd $0x4e,%xmm0,%xmm1
 por %xmm1,%xmm0
 leaq 256(%r12),%r12
.byte 102,72,15,126,195

 movq %r13,16+8(%rsp)
 movq %rdi,56+8(%rsp)

 movq (%r8),%r8
 movq (%rsi),%rax
 leaq (%rsi,%r9,1),%rsi
 negq %r9

 movq %r8,%rbp
 mulq %rbx
 movq %rax,%r10
 movq (%rcx),%rax

 imulq %r10,%rbp
 leaq 64+8(%rsp),%r14
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi,%r9,1),%rax
 adcq $0,%rdx
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi,%r9,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 32(%r9),%r15
 leaq 32(%rcx),%rcx
 adcq $0,%rdx
 movq %rdi,(%r14)
 movq %rdx,%r13
# WAS jmp .L1st4x
	jmp	.L1st4x_BCM_22

.align 32
.L1st4x_BCM_22:

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx),%rax
 leaq 32(%r14),%r14
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%r14)
 movq %rdx,%r13

 mulq %rbx
 addq %rax,%r10
 movq 0(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq 8(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-8(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 32(%rcx),%rcx
 adcq $0,%rdx
 movq %rdi,(%r14)
 movq %rdx,%r13

 addq $32,%r15
# WAS jnz .L1st4x
	jnz	.L1st4x_BCM_22

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx),%rax
 leaq 32(%r14),%r14
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r9,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%r14)
 movq %rdx,%r13

 leaq (%rcx,%r9,1),%rcx

 xorq %rdi,%rdi
 addq %r10,%r13
 adcq $0,%rdi
 movq %r13,-8(%r14)

# WAS jmp .Louter4x
	jmp	.Louter4x_BCM_22

.align 32
.Louter4x_BCM_22:

 leaq 16+128(%r14),%rdx
 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 movdqa -128(%r12),%xmm0
 movdqa -112(%r12),%xmm1
 movdqa -96(%r12),%xmm2
 movdqa -80(%r12),%xmm3
 pand -128(%rdx),%xmm0
 pand -112(%rdx),%xmm1
 por %xmm0,%xmm4
 pand -96(%rdx),%xmm2
 por %xmm1,%xmm5
 pand -80(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa -64(%r12),%xmm0
 movdqa -48(%r12),%xmm1
 movdqa -32(%r12),%xmm2
 movdqa -16(%r12),%xmm3
 pand -64(%rdx),%xmm0
 pand -48(%rdx),%xmm1
 por %xmm0,%xmm4
 pand -32(%rdx),%xmm2
 por %xmm1,%xmm5
 pand -16(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 0(%r12),%xmm0
 movdqa 16(%r12),%xmm1
 movdqa 32(%r12),%xmm2
 movdqa 48(%r12),%xmm3
 pand 0(%rdx),%xmm0
 pand 16(%rdx),%xmm1
 por %xmm0,%xmm4
 pand 32(%rdx),%xmm2
 por %xmm1,%xmm5
 pand 48(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 64(%r12),%xmm0
 movdqa 80(%r12),%xmm1
 movdqa 96(%r12),%xmm2
 movdqa 112(%r12),%xmm3
 pand 64(%rdx),%xmm0
 pand 80(%rdx),%xmm1
 por %xmm0,%xmm4
 pand 96(%rdx),%xmm2
 por %xmm1,%xmm5
 pand 112(%rdx),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 por %xmm5,%xmm4

 pshufd $0x4e,%xmm4,%xmm0
 por %xmm4,%xmm0
 leaq 256(%r12),%r12
.byte 102,72,15,126,195

 movq (%r14,%r9,1),%r10
 movq %r8,%rbp
 mulq %rbx
 addq %rax,%r10
 movq (%rcx),%rax
 adcq $0,%rdx

 imulq %r10,%rbp
 movq %rdx,%r11
 movq %rdi,(%r14)

 leaq (%r14,%r9,1),%r14

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi,%r9,1),%rax
 adcq $0,%rdx
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 addq 8(%r14),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi,%r9,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 32(%r9),%r15
 leaq 32(%rcx),%rcx
 adcq $0,%rdx
 movq %rdx,%r13
# WAS jmp .Linner4x
	jmp	.Linner4x_BCM_22

.align 32
.Linner4x_BCM_22:

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx),%rax
 adcq $0,%rdx
 addq 16(%r14),%r10
 leaq 32(%r14),%r14
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %rdi,-32(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx),%rax
 adcq $0,%rdx
 addq -8(%r14),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %r13,-24(%r14)
 movq %rdx,%r13

 mulq %rbx
 addq %rax,%r10
 movq 0(%rcx),%rax
 adcq $0,%rdx
 addq (%r14),%r10
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq 8(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %rdi,-16(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 addq 8(%r14),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi,%r15,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 32(%rcx),%rcx
 adcq $0,%rdx
 movq %r13,-8(%r14)
 movq %rdx,%r13

 addq $32,%r15
# WAS jnz .Linner4x
	jnz	.Linner4x_BCM_22

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx),%rax
 adcq $0,%rdx
 addq 16(%r14),%r10
 leaq 32(%r14),%r14
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %rdi,-32(%r14)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq %rbp,%rax
 movq -8(%rcx),%rbp
 adcq $0,%rdx
 addq -8(%r14),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r9,1),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %r13,-24(%r14)
 movq %rdx,%r13

 movq %rdi,-16(%r14)
 leaq (%rcx,%r9,1),%rcx

 xorq %rdi,%rdi
 addq %r10,%r13
 adcq $0,%rdi
 addq (%r14),%r13
 adcq $0,%rdi
 movq %r13,-8(%r14)

 cmpq 16+8(%rsp),%r12
# WAS jb .Louter4x
	jb	.Louter4x_BCM_22
 xorq %rax,%rax
 subq %r13,%rbp
 adcq %r15,%r15
 orq %r15,%rdi
 subq %rdi,%rax
 leaq (%r14,%r9,1),%rbx
 movq (%rcx),%r12
 leaq (%rcx),%rbp
 movq %r9,%rcx
 sarq $3+2,%rcx
 movq 56+8(%rsp),%rdi
 decq %r12
 xorq %r10,%r10
 movq 8(%rbp),%r13
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
# WAS jmp .Lsqr4x_sub_entry
	jmp	.Lsqr4x_sub_entry_BCM_22
.cfi_endproc
.size mul4x_internal,.-mul4x_internal
.globl bn_power5
.hidden bn_power5
.type bn_power5,@function
.align 32
.Lbn_power5_local_target:
bn_power5:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax

# WAS leaq OPENSSL_ia32cap_P(%rip),%r11
	jmp	LOPENSSL_ia32cap_P_r1113
LOPENSSL_ia32cap_P_r1113_return:
 movl 8(%r11),%r11d
 andl $0x80108,%r11d
 cmpl $0x80108,%r11d
# WAS je .Lpowerx5_enter
	je	.Lpowerx5_enter_BCM_22

 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lpower5_prologue_BCM_22:


 shll $3,%r9d
 leal (%r9,%r9,2),%r10d
 negq %r9
 movq (%r8),%r8
# 1137 "x86_64-mont5.S"
 leaq -320(%rsp,%r9,2),%r11
 movq %rsp,%rbp
 subq %rdi,%r11
 andq $4095,%r11
 cmpq %r11,%r10
# WAS jb .Lpwr_sp_alt
	jb	.Lpwr_sp_alt_BCM_22
 subq %r11,%rbp
 leaq -320(%rbp,%r9,2),%rbp
# WAS jmp .Lpwr_sp_done
	jmp	.Lpwr_sp_done_BCM_22

.align 32
.Lpwr_sp_alt_BCM_22:

 leaq 4096-320(,%r9,2),%r10
 leaq -320(%rbp,%r9,2),%rbp
 subq %r10,%r11
 movq $0,%r10
 cmovcq %r10,%r11
 subq %r11,%rbp
.Lpwr_sp_done_BCM_22:

 andq $-64,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lpwr_page_walk
	ja	.Lpwr_page_walk_BCM_22
# WAS jmp .Lpwr_page_walk_done
	jmp	.Lpwr_page_walk_done_BCM_22

.Lpwr_page_walk_BCM_22:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lpwr_page_walk
	ja	.Lpwr_page_walk_BCM_22
.Lpwr_page_walk_done_BCM_22:


 movq %r9,%r10
 negq %r9
# 1185 "x86_64-mont5.S"
 movq %r8,32(%rsp)
 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
.Lpower5_body_BCM_22:

.byte 102,72,15,110,207
.byte 102,72,15,110,209
.byte 102,73,15,110,218
.byte 102,72,15,110,226

# WAS call __bn_sqr8x_internal
	call	.L__bn_sqr8x_internal_local_target
# WAS call __bn_post4x_internal
	call	.L__bn_post4x_internal_local_target
# WAS call __bn_sqr8x_internal
	call	.L__bn_sqr8x_internal_local_target
# WAS call __bn_post4x_internal
	call	.L__bn_post4x_internal_local_target
# WAS call __bn_sqr8x_internal
	call	.L__bn_sqr8x_internal_local_target
# WAS call __bn_post4x_internal
	call	.L__bn_post4x_internal_local_target
# WAS call __bn_sqr8x_internal
	call	.L__bn_sqr8x_internal_local_target
# WAS call __bn_post4x_internal
	call	.L__bn_post4x_internal_local_target
# WAS call __bn_sqr8x_internal
	call	.L__bn_sqr8x_internal_local_target
# WAS call __bn_post4x_internal
	call	.L__bn_post4x_internal_local_target

.byte 102,72,15,126,209
.byte 102,72,15,126,226
 movq %rsi,%rdi
 movq 40(%rsp),%rax
 leaq 32(%rsp),%r8

# WAS call mul4x_internal
	call	.Lmul4x_internal_local_target

 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpower5_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_power5,.-bn_power5

.globl bn_sqr8x_internal
.hidden bn_sqr8x_internal
.hidden bn_sqr8x_internal
.type bn_sqr8x_internal,@function
.align 32
.Lbn_sqr8x_internal_local_target:
bn_sqr8x_internal:
.L__bn_sqr8x_internal_local_target:
__bn_sqr8x_internal:
.cfi_startproc
endbr64
# 1317 "x86_64-mont5.S"
 leaq 32(%r10),%rbp
 leaq (%rsi,%r9,1),%rsi

 movq %r9,%rcx


 movq -32(%rsi,%rbp,1),%r14
 leaq 48+8(%rsp,%r9,2),%rdi
 movq -24(%rsi,%rbp,1),%rax
 leaq -32(%rdi,%rbp,1),%rdi
 movq -16(%rsi,%rbp,1),%rbx
 movq %rax,%r15

 mulq %r14
 movq %rax,%r10
 movq %rbx,%rax
 movq %rdx,%r11
 movq %r10,-24(%rdi,%rbp,1)

 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 adcq $0,%rdx
 movq %r11,-16(%rdi,%rbp,1)
 movq %rdx,%r10


 movq -8(%rsi,%rbp,1),%rbx
 mulq %r15
 movq %rax,%r12
 movq %rbx,%rax
 movq %rdx,%r13

 leaq (%rbp),%rcx
 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 movq %rdx,%r11
 adcq $0,%r11
 addq %r12,%r10
 adcq $0,%r11
 movq %r10,-8(%rdi,%rcx,1)
# WAS jmp .Lsqr4x_1st
	jmp	.Lsqr4x_1st_BCM_22

.align 32
.Lsqr4x_1st_BCM_22:

 movq (%rsi,%rcx,1),%rbx
 mulq %r15
 addq %rax,%r13
 movq %rbx,%rax
 movq %rdx,%r12
 adcq $0,%r12

 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 movq 8(%rsi,%rcx,1),%rbx
 movq %rdx,%r10
 adcq $0,%r10
 addq %r13,%r11
 adcq $0,%r10


 mulq %r15
 addq %rax,%r12
 movq %rbx,%rax
 movq %r11,(%rdi,%rcx,1)
 movq %rdx,%r13
 adcq $0,%r13

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 movq 16(%rsi,%rcx,1),%rbx
 movq %rdx,%r11
 adcq $0,%r11
 addq %r12,%r10
 adcq $0,%r11

 mulq %r15
 addq %rax,%r13
 movq %rbx,%rax
 movq %r10,8(%rdi,%rcx,1)
 movq %rdx,%r12
 adcq $0,%r12

 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 movq 24(%rsi,%rcx,1),%rbx
 movq %rdx,%r10
 adcq $0,%r10
 addq %r13,%r11
 adcq $0,%r10


 mulq %r15
 addq %rax,%r12
 movq %rbx,%rax
 movq %r11,16(%rdi,%rcx,1)
 movq %rdx,%r13
 adcq $0,%r13
 leaq 32(%rcx),%rcx

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 movq %rdx,%r11
 adcq $0,%r11
 addq %r12,%r10
 adcq $0,%r11
 movq %r10,-8(%rdi,%rcx,1)

 cmpq $0,%rcx
# WAS jne .Lsqr4x_1st
	jne	.Lsqr4x_1st_BCM_22

 mulq %r15
 addq %rax,%r13
 leaq 16(%rbp),%rbp
 adcq $0,%rdx
 addq %r11,%r13
 adcq $0,%rdx

 movq %r13,(%rdi)
 movq %rdx,%r12
 movq %rdx,8(%rdi)
# WAS jmp .Lsqr4x_outer
	jmp	.Lsqr4x_outer_BCM_22

.align 32
.Lsqr4x_outer_BCM_22:

 movq -32(%rsi,%rbp,1),%r14
 leaq 48+8(%rsp,%r9,2),%rdi
 movq -24(%rsi,%rbp,1),%rax
 leaq -32(%rdi,%rbp,1),%rdi
 movq -16(%rsi,%rbp,1),%rbx
 movq %rax,%r15

 mulq %r14
 movq -24(%rdi,%rbp,1),%r10
 addq %rax,%r10
 movq %rbx,%rax
 adcq $0,%rdx
 movq %r10,-24(%rdi,%rbp,1)
 movq %rdx,%r11

 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 adcq $0,%rdx
 addq -16(%rdi,%rbp,1),%r11
 movq %rdx,%r10
 adcq $0,%r10
 movq %r11,-16(%rdi,%rbp,1)

 xorq %r12,%r12

 movq -8(%rsi,%rbp,1),%rbx
 mulq %r15
 addq %rax,%r12
 movq %rbx,%rax
 adcq $0,%rdx
 addq -8(%rdi,%rbp,1),%r12
 movq %rdx,%r13
 adcq $0,%r13

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 adcq $0,%rdx
 addq %r12,%r10
 movq %rdx,%r11
 adcq $0,%r11
 movq %r10,-8(%rdi,%rbp,1)

 leaq (%rbp),%rcx
# WAS jmp .Lsqr4x_inner
	jmp	.Lsqr4x_inner_BCM_22

.align 32
.Lsqr4x_inner_BCM_22:

 movq (%rsi,%rcx,1),%rbx
 mulq %r15
 addq %rax,%r13
 movq %rbx,%rax
 movq %rdx,%r12
 adcq $0,%r12
 addq (%rdi,%rcx,1),%r13
 adcq $0,%r12

.byte 0x67
 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 movq 8(%rsi,%rcx,1),%rbx
 movq %rdx,%r10
 adcq $0,%r10
 addq %r13,%r11
 adcq $0,%r10

 mulq %r15
 addq %rax,%r12
 movq %r11,(%rdi,%rcx,1)
 movq %rbx,%rax
 movq %rdx,%r13
 adcq $0,%r13
 addq 8(%rdi,%rcx,1),%r12
 leaq 16(%rcx),%rcx
 adcq $0,%r13

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 adcq $0,%rdx
 addq %r12,%r10
 movq %rdx,%r11
 adcq $0,%r11
 movq %r10,-8(%rdi,%rcx,1)

 cmpq $0,%rcx
# WAS jne .Lsqr4x_inner
	jne	.Lsqr4x_inner_BCM_22

.byte 0x67
 mulq %r15
 addq %rax,%r13
 adcq $0,%rdx
 addq %r11,%r13
 adcq $0,%rdx

 movq %r13,(%rdi)
 movq %rdx,%r12
 movq %rdx,8(%rdi)

 addq $16,%rbp
# WAS jnz .Lsqr4x_outer
	jnz	.Lsqr4x_outer_BCM_22


 movq -32(%rsi),%r14
 leaq 48+8(%rsp,%r9,2),%rdi
 movq -24(%rsi),%rax
 leaq -32(%rdi,%rbp,1),%rdi
 movq -16(%rsi),%rbx
 movq %rax,%r15

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 movq %rdx,%r11
 adcq $0,%r11

 mulq %r14
 addq %rax,%r11
 movq %rbx,%rax
 movq %r10,-24(%rdi)
 movq %rdx,%r10
 adcq $0,%r10
 addq %r13,%r11
 movq -8(%rsi),%rbx
 adcq $0,%r10

 mulq %r15
 addq %rax,%r12
 movq %rbx,%rax
 movq %r11,-16(%rdi)
 movq %rdx,%r13
 adcq $0,%r13

 mulq %r14
 addq %rax,%r10
 movq %rbx,%rax
 movq %rdx,%r11
 adcq $0,%r11
 addq %r12,%r10
 adcq $0,%r11
 movq %r10,-8(%rdi)

 mulq %r15
 addq %rax,%r13
 movq -16(%rsi),%rax
 adcq $0,%rdx
 addq %r11,%r13
 adcq $0,%rdx

 movq %r13,(%rdi)
 movq %rdx,%r12
 movq %rdx,8(%rdi)

 mulq %rbx
 addq $16,%rbp
 xorq %r14,%r14
 subq %r9,%rbp
 xorq %r15,%r15

 addq %r12,%rax
 adcq $0,%rdx
 movq %rax,8(%rdi)
 movq %rdx,16(%rdi)
 movq %r15,24(%rdi)

 movq -16(%rsi,%rbp,1),%rax
 leaq 48+8(%rsp),%rdi
 xorq %r10,%r10
 movq 8(%rdi),%r11

 leaq (%r14,%r10,2),%r12
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r13
 shrq $63,%r11
 orq %r10,%r13
 movq 16(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq 24(%rdi),%r11
 adcq %rax,%r12
 movq -8(%rsi,%rbp,1),%rax
 movq %r12,(%rdi)
 adcq %rdx,%r13

 leaq (%r14,%r10,2),%rbx
 movq %r13,8(%rdi)
 sbbq %r15,%r15
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r8
 shrq $63,%r11
 orq %r10,%r8
 movq 32(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq 40(%rdi),%r11
 adcq %rax,%rbx
 movq 0(%rsi,%rbp,1),%rax
 movq %rbx,16(%rdi)
 adcq %rdx,%r8
 leaq 16(%rbp),%rbp
 movq %r8,24(%rdi)
 sbbq %r15,%r15
 leaq 64(%rdi),%rdi
# WAS jmp .Lsqr4x_shift_n_add
	jmp	.Lsqr4x_shift_n_add_BCM_22

.align 32
.Lsqr4x_shift_n_add_BCM_22:

 leaq (%r14,%r10,2),%r12
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r13
 shrq $63,%r11
 orq %r10,%r13
 movq -16(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq -8(%rdi),%r11
 adcq %rax,%r12
 movq -8(%rsi,%rbp,1),%rax
 movq %r12,-32(%rdi)
 adcq %rdx,%r13

 leaq (%r14,%r10,2),%rbx
 movq %r13,-24(%rdi)
 sbbq %r15,%r15
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r8
 shrq $63,%r11
 orq %r10,%r8
 movq 0(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq 8(%rdi),%r11
 adcq %rax,%rbx
 movq 0(%rsi,%rbp,1),%rax
 movq %rbx,-16(%rdi)
 adcq %rdx,%r8

 leaq (%r14,%r10,2),%r12
 movq %r8,-8(%rdi)
 sbbq %r15,%r15
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r13
 shrq $63,%r11
 orq %r10,%r13
 movq 16(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq 24(%rdi),%r11
 adcq %rax,%r12
 movq 8(%rsi,%rbp,1),%rax
 movq %r12,0(%rdi)
 adcq %rdx,%r13

 leaq (%r14,%r10,2),%rbx
 movq %r13,8(%rdi)
 sbbq %r15,%r15
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r8
 shrq $63,%r11
 orq %r10,%r8
 movq 32(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq 40(%rdi),%r11
 adcq %rax,%rbx
 movq 16(%rsi,%rbp,1),%rax
 movq %rbx,16(%rdi)
 adcq %rdx,%r8
 movq %r8,24(%rdi)
 sbbq %r15,%r15
 leaq 64(%rdi),%rdi
 addq $32,%rbp
# WAS jnz .Lsqr4x_shift_n_add
	jnz	.Lsqr4x_shift_n_add_BCM_22

 leaq (%r14,%r10,2),%r12
.byte 0x67
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r13
 shrq $63,%r11
 orq %r10,%r13
 movq -16(%rdi),%r10
 movq %r11,%r14
 mulq %rax
 negq %r15
 movq -8(%rdi),%r11
 adcq %rax,%r12
 movq -8(%rsi),%rax
 movq %r12,-32(%rdi)
 adcq %rdx,%r13

 leaq (%r14,%r10,2),%rbx
 movq %r13,-24(%rdi)
 sbbq %r15,%r15
 shrq $63,%r10
 leaq (%rcx,%r11,2),%r8
 shrq $63,%r11
 orq %r10,%r8
 mulq %rax
 negq %r15
 adcq %rax,%rbx
 adcq %rdx,%r8
 movq %rbx,-16(%rdi)
 movq %r8,-8(%rdi)
.byte 102,72,15,126,213
.L__bn_sqr8x_reduction_local_target:
__bn_sqr8x_reduction:
 xorq %rax,%rax
 leaq (%r9,%rbp,1),%rcx
 leaq 48+8(%rsp,%r9,2),%rdx
 movq %rcx,0+8(%rsp)
 leaq 48+8(%rsp,%r9,1),%rdi
 movq %rdx,8+8(%rsp)
 negq %r9
# WAS jmp .L8x_reduction_loop
	jmp	.L8x_reduction_loop_BCM_22

.align 32
.L8x_reduction_loop_BCM_22:

 leaq (%rdi,%r9,1),%rdi
.byte 0x66
 movq 0(%rdi),%rbx
 movq 8(%rdi),%r9
 movq 16(%rdi),%r10
 movq 24(%rdi),%r11
 movq 32(%rdi),%r12
 movq 40(%rdi),%r13
 movq 48(%rdi),%r14
 movq 56(%rdi),%r15
 movq %rax,(%rdx)
 leaq 64(%rdi),%rdi

.byte 0x67
 movq %rbx,%r8
 imulq 32+8(%rsp),%rbx
 movq 0(%rbp),%rax
 movl $8,%ecx
# WAS jmp .L8x_reduce
	jmp	.L8x_reduce_BCM_22

.align 32
.L8x_reduce_BCM_22:

 mulq %rbx
 movq 8(%rbp),%rax
 negq %r8
 movq %rdx,%r8
 adcq $0,%r8

 mulq %rbx
 addq %rax,%r9
 movq 16(%rbp),%rax
 adcq $0,%rdx
 addq %r9,%r8
 movq %rbx,48-8+8(%rsp,%rcx,8)
 movq %rdx,%r9
 adcq $0,%r9

 mulq %rbx
 addq %rax,%r10
 movq 24(%rbp),%rax
 adcq $0,%rdx
 addq %r10,%r9
 movq 32+8(%rsp),%rsi
 movq %rdx,%r10
 adcq $0,%r10

 mulq %rbx
 addq %rax,%r11
 movq 32(%rbp),%rax
 adcq $0,%rdx
 imulq %r8,%rsi
 addq %r11,%r10
 movq %rdx,%r11
 adcq $0,%r11

 mulq %rbx
 addq %rax,%r12
 movq 40(%rbp),%rax
 adcq $0,%rdx
 addq %r12,%r11
 movq %rdx,%r12
 adcq $0,%r12

 mulq %rbx
 addq %rax,%r13
 movq 48(%rbp),%rax
 adcq $0,%rdx
 addq %r13,%r12
 movq %rdx,%r13
 adcq $0,%r13

 mulq %rbx
 addq %rax,%r14
 movq 56(%rbp),%rax
 adcq $0,%rdx
 addq %r14,%r13
 movq %rdx,%r14
 adcq $0,%r14

 mulq %rbx
 movq %rsi,%rbx
 addq %rax,%r15
 movq 0(%rbp),%rax
 adcq $0,%rdx
 addq %r15,%r14
 movq %rdx,%r15
 adcq $0,%r15

 decl %ecx
# WAS jnz .L8x_reduce
	jnz	.L8x_reduce_BCM_22

 leaq 64(%rbp),%rbp
 xorq %rax,%rax
 movq 8+8(%rsp),%rdx
 cmpq 0+8(%rsp),%rbp
# WAS jae .L8x_no_tail
	jae	.L8x_no_tail_BCM_22

.byte 0x66
 addq 0(%rdi),%r8
 adcq 8(%rdi),%r9
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 sbbq %rsi,%rsi

 movq 48+56+8(%rsp),%rbx
 movl $8,%ecx
 movq 0(%rbp),%rax
# WAS jmp .L8x_tail
	jmp	.L8x_tail_BCM_22

.align 32
.L8x_tail_BCM_22:

 mulq %rbx
 addq %rax,%r8
 movq 8(%rbp),%rax
 movq %r8,(%rdi)
 movq %rdx,%r8
 adcq $0,%r8

 mulq %rbx
 addq %rax,%r9
 movq 16(%rbp),%rax
 adcq $0,%rdx
 addq %r9,%r8
 leaq 8(%rdi),%rdi
 movq %rdx,%r9
 adcq $0,%r9

 mulq %rbx
 addq %rax,%r10
 movq 24(%rbp),%rax
 adcq $0,%rdx
 addq %r10,%r9
 movq %rdx,%r10
 adcq $0,%r10

 mulq %rbx
 addq %rax,%r11
 movq 32(%rbp),%rax
 adcq $0,%rdx
 addq %r11,%r10
 movq %rdx,%r11
 adcq $0,%r11

 mulq %rbx
 addq %rax,%r12
 movq 40(%rbp),%rax
 adcq $0,%rdx
 addq %r12,%r11
 movq %rdx,%r12
 adcq $0,%r12

 mulq %rbx
 addq %rax,%r13
 movq 48(%rbp),%rax
 adcq $0,%rdx
 addq %r13,%r12
 movq %rdx,%r13
 adcq $0,%r13

 mulq %rbx
 addq %rax,%r14
 movq 56(%rbp),%rax
 adcq $0,%rdx
 addq %r14,%r13
 movq %rdx,%r14
 adcq $0,%r14

 mulq %rbx
 movq 48-16+8(%rsp,%rcx,8),%rbx
 addq %rax,%r15
 adcq $0,%rdx
 addq %r15,%r14
 movq 0(%rbp),%rax
 movq %rdx,%r15
 adcq $0,%r15

 decl %ecx
# WAS jnz .L8x_tail
	jnz	.L8x_tail_BCM_22

 leaq 64(%rbp),%rbp
 movq 8+8(%rsp),%rdx
 cmpq 0+8(%rsp),%rbp
# WAS jae .L8x_tail_done
	jae	.L8x_tail_done_BCM_22

 movq 48+56+8(%rsp),%rbx
 negq %rsi
 movq 0(%rbp),%rax
 adcq 0(%rdi),%r8
 adcq 8(%rdi),%r9
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 sbbq %rsi,%rsi

 movl $8,%ecx
# WAS jmp .L8x_tail
	jmp	.L8x_tail_BCM_22

.align 32
.L8x_tail_done_BCM_22:

 xorq %rax,%rax
 addq (%rdx),%r8
 adcq $0,%r9
 adcq $0,%r10
 adcq $0,%r11
 adcq $0,%r12
 adcq $0,%r13
 adcq $0,%r14
 adcq $0,%r15
 adcq $0,%rax

 negq %rsi
.L8x_no_tail_BCM_22:

 adcq 0(%rdi),%r8
 adcq 8(%rdi),%r9
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 adcq $0,%rax
 movq -8(%rbp),%rcx
 xorq %rsi,%rsi

.byte 102,72,15,126,213

 movq %r8,0(%rdi)
 movq %r9,8(%rdi)
.byte 102,73,15,126,217
 movq %r10,16(%rdi)
 movq %r11,24(%rdi)
 movq %r12,32(%rdi)
 movq %r13,40(%rdi)
 movq %r14,48(%rdi)
 movq %r15,56(%rdi)
 leaq 64(%rdi),%rdi

 cmpq %rdx,%rdi
# WAS jb .L8x_reduction_loop
	jb	.L8x_reduction_loop_BCM_22
 .byte 0xf3,0xc3
.cfi_endproc
.size bn_sqr8x_internal,.-bn_sqr8x_internal
.type __bn_post4x_internal,@function
.align 32
.L__bn_post4x_internal_local_target:
__bn_post4x_internal:
.cfi_startproc
 movq 0(%rbp),%r12
 leaq (%rdi,%r9,1),%rbx
 movq %r9,%rcx
.byte 102,72,15,126,207
 negq %rax
.byte 102,72,15,126,206
 sarq $3+2,%rcx
 decq %r12
 xorq %r10,%r10
 movq 8(%rbp),%r13
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
# WAS jmp .Lsqr4x_sub_entry
	jmp	.Lsqr4x_sub_entry_BCM_22

.align 16
.Lsqr4x_sub_BCM_22:

 movq 0(%rbp),%r12
 movq 8(%rbp),%r13
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
.Lsqr4x_sub_entry_BCM_22:

 leaq 32(%rbp),%rbp
 notq %r12
 notq %r13
 notq %r14
 notq %r15
 andq %rax,%r12
 andq %rax,%r13
 andq %rax,%r14
 andq %rax,%r15

 negq %r10
 adcq 0(%rbx),%r12
 adcq 8(%rbx),%r13
 adcq 16(%rbx),%r14
 adcq 24(%rbx),%r15
 movq %r12,0(%rdi)
 leaq 32(%rbx),%rbx
 movq %r13,8(%rdi)
 sbbq %r10,%r10
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)
 leaq 32(%rdi),%rdi

 incq %rcx
# WAS jnz .Lsqr4x_sub
	jnz	.Lsqr4x_sub_BCM_22

 movq %r9,%r10
 negq %r9
 .byte 0xf3,0xc3
.cfi_endproc
.size __bn_post4x_internal,.-__bn_post4x_internal

.type bn_mulx4x_mont_gather5,@function
.align 32
.Lbn_mulx4x_mont_gather5_local_target:
bn_mulx4x_mont_gather5:
.cfi_startproc
 movq %rsp,%rax
.cfi_def_cfa_register %rax
.Lmulx4x_enter_BCM_22:

 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lmulx4x_prologue_BCM_22:


 shll $3,%r9d
 leaq (%r9,%r9,2),%r10
 negq %r9
 movq (%r8),%r8
# 2112 "x86_64-mont5.S"
 leaq -320(%rsp,%r9,2),%r11
 movq %rsp,%rbp
 subq %rdi,%r11
 andq $4095,%r11
 cmpq %r11,%r10
# WAS jb .Lmulx4xsp_alt
	jb	.Lmulx4xsp_alt_BCM_22
 subq %r11,%rbp
 leaq -320(%rbp,%r9,2),%rbp
# WAS jmp .Lmulx4xsp_done
	jmp	.Lmulx4xsp_done_BCM_22

.Lmulx4xsp_alt_BCM_22:

 leaq 4096-320(,%r9,2),%r10
 leaq -320(%rbp,%r9,2),%rbp
 subq %r10,%r11
 movq $0,%r10
 cmovcq %r10,%r11
 subq %r11,%rbp
.Lmulx4xsp_done_BCM_22:

 andq $-64,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmulx4x_page_walk
	ja	.Lmulx4x_page_walk_BCM_22
# WAS jmp .Lmulx4x_page_walk_done
	jmp	.Lmulx4x_page_walk_done_BCM_22

.Lmulx4x_page_walk_BCM_22:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmulx4x_page_walk
	ja	.Lmulx4x_page_walk_BCM_22
.Lmulx4x_page_walk_done_BCM_22:

# 2159 "x86_64-mont5.S"
 movq %r8,32(%rsp)
 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
.Lmulx4x_body_BCM_22:

# WAS call mulx4x_internal
	call	.Lmulx4x_internal_local_target

 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax

 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmulx4x_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mulx4x_mont_gather5,.-bn_mulx4x_mont_gather5

.type mulx4x_internal,@function
.align 32
.Lmulx4x_internal_local_target:
mulx4x_internal:
.cfi_startproc
 movq %r9,8(%rsp)
 movq %r9,%r10
 negq %r9
 shlq $5,%r9
 negq %r10
 leaq 128(%rdx,%r9,1),%r13
 shrq $5+5,%r9
 movd 8(%rax),%xmm5
 subq $1,%r9
# WAS leaq .Linc(%rip),%rax
	leaq	.Linc_BCM_22(%rip), %rax
 movq %r13,16+8(%rsp)
 movq %r9,24+8(%rsp)
 movq %rdi,56+8(%rsp)
 movdqa 0(%rax),%xmm0
 movdqa 16(%rax),%xmm1
 leaq 88-112(%rsp,%r10,1),%r10
 leaq 128(%rdx),%rdi

 pshufd $0,%xmm5,%xmm5
 movdqa %xmm1,%xmm4
.byte 0x67
 movdqa %xmm1,%xmm2
.byte 0x67
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,112(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,128(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,144(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,160(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,176(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,192(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,208(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,224(%r10)
 movdqa %xmm4,%xmm3
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,240(%r10)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,256(%r10)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,272(%r10)
 movdqa %xmm4,%xmm2

 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,288(%r10)
 movdqa %xmm4,%xmm3
.byte 0x67
 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,304(%r10)

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,320(%r10)

 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,336(%r10)

 pand 64(%rdi),%xmm0
 pand 80(%rdi),%xmm1
 pand 96(%rdi),%xmm2
 movdqa %xmm3,352(%r10)
 pand 112(%rdi),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -128(%rdi),%xmm4
 movdqa -112(%rdi),%xmm5
 movdqa -96(%rdi),%xmm2
 pand 112(%r10),%xmm4
 movdqa -80(%rdi),%xmm3
 pand 128(%r10),%xmm5
 por %xmm4,%xmm0
 pand 144(%r10),%xmm2
 por %xmm5,%xmm1
 pand 160(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa -64(%rdi),%xmm4
 movdqa -48(%rdi),%xmm5
 movdqa -32(%rdi),%xmm2
 pand 176(%r10),%xmm4
 movdqa -16(%rdi),%xmm3
 pand 192(%r10),%xmm5
 por %xmm4,%xmm0
 pand 208(%r10),%xmm2
 por %xmm5,%xmm1
 pand 224(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 movdqa 0(%rdi),%xmm4
 movdqa 16(%rdi),%xmm5
 movdqa 32(%rdi),%xmm2
 pand 240(%r10),%xmm4
 movdqa 48(%rdi),%xmm3
 pand 256(%r10),%xmm5
 por %xmm4,%xmm0
 pand 272(%r10),%xmm2
 por %xmm5,%xmm1
 pand 288(%r10),%xmm3
 por %xmm2,%xmm0
 por %xmm3,%xmm1
 pxor %xmm1,%xmm0

 pshufd $0x4e,%xmm0,%xmm1
 por %xmm1,%xmm0
 leaq 256(%rdi),%rdi
.byte 102,72,15,126,194
 leaq 64+32+8(%rsp),%rbx

 movq %rdx,%r9
 mulxq 0(%rsi),%r8,%rax
 mulxq 8(%rsi),%r11,%r12
 addq %rax,%r11
 mulxq 16(%rsi),%rax,%r13
 adcq %rax,%r12
 adcq $0,%r13
 mulxq 24(%rsi),%rax,%r14

 movq %r8,%r15
 imulq 32+8(%rsp),%r8
 xorq %rbp,%rbp
 movq %r8,%rdx

 movq %rdi,8+8(%rsp)

 leaq 32(%rsi),%rsi
 adcxq %rax,%r13
 adcxq %rbp,%r14

 mulxq 0(%rcx),%rax,%r10
 adcxq %rax,%r15
 adoxq %r11,%r10
 mulxq 8(%rcx),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11
 mulxq 16(%rcx),%rax,%r12
 movq 24+8(%rsp),%rdi
 movq %r10,-32(%rbx)
 adcxq %rax,%r11
 adoxq %r13,%r12
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r11,-24(%rbx)
 adcxq %rax,%r12
 adoxq %rbp,%r15
 leaq 32(%rcx),%rcx
 movq %r12,-16(%rbx)
# WAS jmp .Lmulx4x_1st
	jmp	.Lmulx4x_1st_BCM_22

.align 32
.Lmulx4x_1st_BCM_22:

 adcxq %rbp,%r15
 mulxq 0(%rsi),%r10,%rax
 adcxq %r14,%r10
 mulxq 8(%rsi),%r11,%r14
 adcxq %rax,%r11
 mulxq 16(%rsi),%r12,%rax
 adcxq %r14,%r12
 mulxq 24(%rsi),%r13,%r14
.byte 0x67,0x67
 movq %r8,%rdx
 adcxq %rax,%r13
 adcxq %rbp,%r14
 leaq 32(%rsi),%rsi
 leaq 32(%rbx),%rbx

 adoxq %r15,%r10
 mulxq 0(%rcx),%rax,%r15
 adcxq %rax,%r10
 adoxq %r15,%r11
 mulxq 8(%rcx),%rax,%r15
 adcxq %rax,%r11
 adoxq %r15,%r12
 mulxq 16(%rcx),%rax,%r15
 movq %r10,-40(%rbx)
 adcxq %rax,%r12
 movq %r11,-32(%rbx)
 adoxq %r15,%r13
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r12,-24(%rbx)
 adcxq %rax,%r13
 adoxq %rbp,%r15
 leaq 32(%rcx),%rcx
 movq %r13,-16(%rbx)

 decq %rdi
# WAS jnz .Lmulx4x_1st
	jnz	.Lmulx4x_1st_BCM_22

 movq 8(%rsp),%rax
 adcq %rbp,%r15
 leaq (%rsi,%rax,1),%rsi
 addq %r15,%r14
 movq 8+8(%rsp),%rdi
 adcq %rbp,%rbp
 movq %r14,-8(%rbx)
# WAS jmp .Lmulx4x_outer
	jmp	.Lmulx4x_outer_BCM_22

.align 32
.Lmulx4x_outer_BCM_22:

 leaq 16-256(%rbx),%r10
 pxor %xmm4,%xmm4
.byte 0x67,0x67
 pxor %xmm5,%xmm5
 movdqa -128(%rdi),%xmm0
 movdqa -112(%rdi),%xmm1
 movdqa -96(%rdi),%xmm2
 pand 256(%r10),%xmm0
 movdqa -80(%rdi),%xmm3
 pand 272(%r10),%xmm1
 por %xmm0,%xmm4
 pand 288(%r10),%xmm2
 por %xmm1,%xmm5
 pand 304(%r10),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa -64(%rdi),%xmm0
 movdqa -48(%rdi),%xmm1
 movdqa -32(%rdi),%xmm2
 pand 320(%r10),%xmm0
 movdqa -16(%rdi),%xmm3
 pand 336(%r10),%xmm1
 por %xmm0,%xmm4
 pand 352(%r10),%xmm2
 por %xmm1,%xmm5
 pand 368(%r10),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 0(%rdi),%xmm0
 movdqa 16(%rdi),%xmm1
 movdqa 32(%rdi),%xmm2
 pand 384(%r10),%xmm0
 movdqa 48(%rdi),%xmm3
 pand 400(%r10),%xmm1
 por %xmm0,%xmm4
 pand 416(%r10),%xmm2
 por %xmm1,%xmm5
 pand 432(%r10),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 64(%rdi),%xmm0
 movdqa 80(%rdi),%xmm1
 movdqa 96(%rdi),%xmm2
 pand 448(%r10),%xmm0
 movdqa 112(%rdi),%xmm3
 pand 464(%r10),%xmm1
 por %xmm0,%xmm4
 pand 480(%r10),%xmm2
 por %xmm1,%xmm5
 pand 496(%r10),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 por %xmm5,%xmm4

 pshufd $0x4e,%xmm4,%xmm0
 por %xmm4,%xmm0
 leaq 256(%rdi),%rdi
.byte 102,72,15,126,194

 movq %rbp,(%rbx)
 leaq 32(%rbx,%rax,1),%rbx
 mulxq 0(%rsi),%r8,%r11
 xorq %rbp,%rbp
 movq %rdx,%r9
 mulxq 8(%rsi),%r14,%r12
 adoxq -32(%rbx),%r8
 adcxq %r14,%r11
 mulxq 16(%rsi),%r15,%r13
 adoxq -24(%rbx),%r11
 adcxq %r15,%r12
 mulxq 24(%rsi),%rdx,%r14
 adoxq -16(%rbx),%r12
 adcxq %rdx,%r13
 leaq (%rcx,%rax,1),%rcx
 leaq 32(%rsi),%rsi
 adoxq -8(%rbx),%r13
 adcxq %rbp,%r14
 adoxq %rbp,%r14

 movq %r8,%r15
 imulq 32+8(%rsp),%r8

 movq %r8,%rdx
 xorq %rbp,%rbp
 movq %rdi,8+8(%rsp)

 mulxq 0(%rcx),%rax,%r10
 adcxq %rax,%r15
 adoxq %r11,%r10
 mulxq 8(%rcx),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11
 mulxq 16(%rcx),%rax,%r12
 adcxq %rax,%r11
 adoxq %r13,%r12
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq 24+8(%rsp),%rdi
 movq %r10,-32(%rbx)
 adcxq %rax,%r12
 movq %r11,-24(%rbx)
 adoxq %rbp,%r15
 movq %r12,-16(%rbx)
 leaq 32(%rcx),%rcx
# WAS jmp .Lmulx4x_inner
	jmp	.Lmulx4x_inner_BCM_22

.align 32
.Lmulx4x_inner_BCM_22:

 mulxq 0(%rsi),%r10,%rax
 adcxq %rbp,%r15
 adoxq %r14,%r10
 mulxq 8(%rsi),%r11,%r14
 adcxq 0(%rbx),%r10
 adoxq %rax,%r11
 mulxq 16(%rsi),%r12,%rax
 adcxq 8(%rbx),%r11
 adoxq %r14,%r12
 mulxq 24(%rsi),%r13,%r14
 movq %r8,%rdx
 adcxq 16(%rbx),%r12
 adoxq %rax,%r13
 adcxq 24(%rbx),%r13
 adoxq %rbp,%r14
 leaq 32(%rsi),%rsi
 leaq 32(%rbx),%rbx
 adcxq %rbp,%r14

 adoxq %r15,%r10
 mulxq 0(%rcx),%rax,%r15
 adcxq %rax,%r10
 adoxq %r15,%r11
 mulxq 8(%rcx),%rax,%r15
 adcxq %rax,%r11
 adoxq %r15,%r12
 mulxq 16(%rcx),%rax,%r15
 movq %r10,-40(%rbx)
 adcxq %rax,%r12
 adoxq %r15,%r13
 movq %r11,-32(%rbx)
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 leaq 32(%rcx),%rcx
 movq %r12,-24(%rbx)
 adcxq %rax,%r13
 adoxq %rbp,%r15
 movq %r13,-16(%rbx)

 decq %rdi
# WAS jnz .Lmulx4x_inner
	jnz	.Lmulx4x_inner_BCM_22

 movq 0+8(%rsp),%rax
 adcq %rbp,%r15
 subq 0(%rbx),%rdi
 movq 8+8(%rsp),%rdi
 movq 16+8(%rsp),%r10
 adcq %r15,%r14
 leaq (%rsi,%rax,1),%rsi
 adcq %rbp,%rbp
 movq %r14,-8(%rbx)

 cmpq %r10,%rdi
# WAS jb .Lmulx4x_outer
	jb	.Lmulx4x_outer_BCM_22

 movq -8(%rcx),%r10
 movq %rbp,%r8
 movq (%rcx,%rax,1),%r12
 leaq (%rcx,%rax,1),%rbp
 movq %rax,%rcx
 leaq (%rbx,%rax,1),%rdi
 xorl %eax,%eax
 xorq %r15,%r15
 subq %r14,%r10
 adcq %r15,%r15
 orq %r15,%r8
 sarq $3+2,%rcx
 subq %r8,%rax
 movq 56+8(%rsp),%rdx
 decq %r12
 movq 8(%rbp),%r13
 xorq %r8,%r8
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
# WAS jmp .Lsqrx4x_sub_entry
	jmp	.Lsqrx4x_sub_entry_BCM_22
.cfi_endproc
.size mulx4x_internal,.-mulx4x_internal
.type bn_powerx5,@function
.align 32
.Lbn_powerx5_local_target:
bn_powerx5:
.cfi_startproc
 movq %rsp,%rax
.cfi_def_cfa_register %rax
.Lpowerx5_enter_BCM_22:

 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lpowerx5_prologue_BCM_22:


 shll $3,%r9d
 leaq (%r9,%r9,2),%r10
 negq %r9
 movq (%r8),%r8
# 2647 "x86_64-mont5.S"
 leaq -320(%rsp,%r9,2),%r11
 movq %rsp,%rbp
 subq %rdi,%r11
 andq $4095,%r11
 cmpq %r11,%r10
# WAS jb .Lpwrx_sp_alt
	jb	.Lpwrx_sp_alt_BCM_22
 subq %r11,%rbp
 leaq -320(%rbp,%r9,2),%rbp
# WAS jmp .Lpwrx_sp_done
	jmp	.Lpwrx_sp_done_BCM_22

.align 32
.Lpwrx_sp_alt_BCM_22:

 leaq 4096-320(,%r9,2),%r10
 leaq -320(%rbp,%r9,2),%rbp
 subq %r10,%r11
 movq $0,%r10
 cmovcq %r10,%r11
 subq %r11,%rbp
.Lpwrx_sp_done_BCM_22:

 andq $-64,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lpwrx_page_walk
	ja	.Lpwrx_page_walk_BCM_22
# WAS jmp .Lpwrx_page_walk_done
	jmp	.Lpwrx_page_walk_done_BCM_22

.Lpwrx_page_walk_BCM_22:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lpwrx_page_walk
	ja	.Lpwrx_page_walk_BCM_22
.Lpwrx_page_walk_done_BCM_22:


 movq %r9,%r10
 negq %r9
# 2697 "x86_64-mont5.S"
 pxor %xmm0,%xmm0
.byte 102,72,15,110,207
.byte 102,72,15,110,209
.byte 102,73,15,110,218
.byte 102,72,15,110,226
 movq %r8,32(%rsp)
 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
.Lpowerx5_body_BCM_22:


# WAS call __bn_sqrx8x_internal
	call	.L__bn_sqrx8x_internal_local_target
# WAS call __bn_postx4x_internal
	call	.L__bn_postx4x_internal_local_target
# WAS call __bn_sqrx8x_internal
	call	.L__bn_sqrx8x_internal_local_target
# WAS call __bn_postx4x_internal
	call	.L__bn_postx4x_internal_local_target
# WAS call __bn_sqrx8x_internal
	call	.L__bn_sqrx8x_internal_local_target
# WAS call __bn_postx4x_internal
	call	.L__bn_postx4x_internal_local_target
# WAS call __bn_sqrx8x_internal
	call	.L__bn_sqrx8x_internal_local_target
# WAS call __bn_postx4x_internal
	call	.L__bn_postx4x_internal_local_target
# WAS call __bn_sqrx8x_internal
	call	.L__bn_sqrx8x_internal_local_target
# WAS call __bn_postx4x_internal
	call	.L__bn_postx4x_internal_local_target

 movq %r10,%r9
 movq %rsi,%rdi
.byte 102,72,15,126,209
.byte 102,72,15,126,226
 movq 40(%rsp),%rax

# WAS call mulx4x_internal
	call	.Lmulx4x_internal_local_target

 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax

 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lpowerx5_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_powerx5,.-bn_powerx5

.globl bn_sqrx8x_internal
.hidden bn_sqrx8x_internal
.hidden bn_sqrx8x_internal
.type bn_sqrx8x_internal,@function
.align 32
.Lbn_sqrx8x_internal_local_target:
bn_sqrx8x_internal:
.L__bn_sqrx8x_internal_local_target:
__bn_sqrx8x_internal:
.cfi_startproc
endbr64
# 2798 "x86_64-mont5.S"
 leaq 48+8(%rsp),%rdi
 leaq (%rsi,%r9,1),%rbp
 movq %r9,0+8(%rsp)
 movq %rbp,8+8(%rsp)
# WAS jmp .Lsqr8x_zero_start
	jmp	.Lsqr8x_zero_start_BCM_22

.align 32
.byte 0x66,0x66,0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
.Lsqrx8x_zero_BCM_22:

.byte 0x3e
 movdqa %xmm0,0(%rdi)
 movdqa %xmm0,16(%rdi)
 movdqa %xmm0,32(%rdi)
 movdqa %xmm0,48(%rdi)
.Lsqr8x_zero_start_BCM_22:

 movdqa %xmm0,64(%rdi)
 movdqa %xmm0,80(%rdi)
 movdqa %xmm0,96(%rdi)
 movdqa %xmm0,112(%rdi)
 leaq 128(%rdi),%rdi
 subq $64,%r9
# WAS jnz .Lsqrx8x_zero
	jnz	.Lsqrx8x_zero_BCM_22

 movq 0(%rsi),%rdx

 xorq %r10,%r10
 xorq %r11,%r11
 xorq %r12,%r12
 xorq %r13,%r13
 xorq %r14,%r14
 xorq %r15,%r15
 leaq 48+8(%rsp),%rdi
 xorq %rbp,%rbp
# WAS jmp .Lsqrx8x_outer_loop
	jmp	.Lsqrx8x_outer_loop_BCM_22

.align 32
.Lsqrx8x_outer_loop_BCM_22:

 mulxq 8(%rsi),%r8,%rax
 adcxq %r9,%r8
 adoxq %rax,%r10
 mulxq 16(%rsi),%r9,%rax
 adcxq %r10,%r9
 adoxq %rax,%r11
.byte 0xc4,0xe2,0xab,0xf6,0x86,0x18,0x00,0x00,0x00
 adcxq %r11,%r10
 adoxq %rax,%r12
.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x20,0x00,0x00,0x00
 adcxq %r12,%r11
 adoxq %rax,%r13
 mulxq 40(%rsi),%r12,%rax
 adcxq %r13,%r12
 adoxq %rax,%r14
 mulxq 48(%rsi),%r13,%rax
 adcxq %r14,%r13
 adoxq %r15,%rax
 mulxq 56(%rsi),%r14,%r15
 movq 8(%rsi),%rdx
 adcxq %rax,%r14
 adoxq %rbp,%r15
 adcq 64(%rdi),%r15
 movq %r8,8(%rdi)
 movq %r9,16(%rdi)
 sbbq %rcx,%rcx
 xorq %rbp,%rbp


 mulxq 16(%rsi),%r8,%rbx
 mulxq 24(%rsi),%r9,%rax
 adcxq %r10,%r8
 adoxq %rbx,%r9
 mulxq 32(%rsi),%r10,%rbx
 adcxq %r11,%r9
 adoxq %rax,%r10
.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x28,0x00,0x00,0x00
 adcxq %r12,%r10
 adoxq %rbx,%r11
.byte 0xc4,0xe2,0x9b,0xf6,0x9e,0x30,0x00,0x00,0x00
 adcxq %r13,%r11
 adoxq %r14,%r12
.byte 0xc4,0x62,0x93,0xf6,0xb6,0x38,0x00,0x00,0x00
 movq 16(%rsi),%rdx
 adcxq %rax,%r12
 adoxq %rbx,%r13
 adcxq %r15,%r13
 adoxq %rbp,%r14
 adcxq %rbp,%r14

 movq %r8,24(%rdi)
 movq %r9,32(%rdi)

 mulxq 24(%rsi),%r8,%rbx
 mulxq 32(%rsi),%r9,%rax
 adcxq %r10,%r8
 adoxq %rbx,%r9
 mulxq 40(%rsi),%r10,%rbx
 adcxq %r11,%r9
 adoxq %rax,%r10
.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x30,0x00,0x00,0x00
 adcxq %r12,%r10
 adoxq %r13,%r11
.byte 0xc4,0x62,0x9b,0xf6,0xae,0x38,0x00,0x00,0x00
.byte 0x3e
 movq 24(%rsi),%rdx
 adcxq %rbx,%r11
 adoxq %rax,%r12
 adcxq %r14,%r12
 movq %r8,40(%rdi)
 movq %r9,48(%rdi)
 mulxq 32(%rsi),%r8,%rax
 adoxq %rbp,%r13
 adcxq %rbp,%r13

 mulxq 40(%rsi),%r9,%rbx
 adcxq %r10,%r8
 adoxq %rax,%r9
 mulxq 48(%rsi),%r10,%rax
 adcxq %r11,%r9
 adoxq %r12,%r10
 mulxq 56(%rsi),%r11,%r12
 movq 32(%rsi),%rdx
 movq 40(%rsi),%r14
 adcxq %rbx,%r10
 adoxq %rax,%r11
 movq 48(%rsi),%r15
 adcxq %r13,%r11
 adoxq %rbp,%r12
 adcxq %rbp,%r12

 movq %r8,56(%rdi)
 movq %r9,64(%rdi)

 mulxq %r14,%r9,%rax
 movq 56(%rsi),%r8
 adcxq %r10,%r9
 mulxq %r15,%r10,%rbx
 adoxq %rax,%r10
 adcxq %r11,%r10
 mulxq %r8,%r11,%rax
 movq %r14,%rdx
 adoxq %rbx,%r11
 adcxq %r12,%r11

 adcxq %rbp,%rax

 mulxq %r15,%r14,%rbx
 mulxq %r8,%r12,%r13
 movq %r15,%rdx
 leaq 64(%rsi),%rsi
 adcxq %r14,%r11
 adoxq %rbx,%r12
 adcxq %rax,%r12
 adoxq %rbp,%r13

.byte 0x67,0x67
 mulxq %r8,%r8,%r14
 adcxq %r8,%r13
 adcxq %rbp,%r14

 cmpq 8+8(%rsp),%rsi
# WAS je .Lsqrx8x_outer_break
	je	.Lsqrx8x_outer_break_BCM_22

 negq %rcx
 movq $-8,%rcx
 movq %rbp,%r15
 movq 64(%rdi),%r8
 adcxq 72(%rdi),%r9
 adcxq 80(%rdi),%r10
 adcxq 88(%rdi),%r11
 adcq 96(%rdi),%r12
 adcq 104(%rdi),%r13
 adcq 112(%rdi),%r14
 adcq 120(%rdi),%r15
 leaq (%rsi),%rbp
 leaq 128(%rdi),%rdi
 sbbq %rax,%rax

 movq -64(%rsi),%rdx
 movq %rax,16+8(%rsp)
 movq %rdi,24+8(%rsp)


 xorl %eax,%eax
# WAS jmp .Lsqrx8x_loop
	jmp	.Lsqrx8x_loop_BCM_22

.align 32
.Lsqrx8x_loop_BCM_22:

 movq %r8,%rbx
 mulxq 0(%rbp),%rax,%r8
 adcxq %rax,%rbx
 adoxq %r9,%r8

 mulxq 8(%rbp),%rax,%r9
 adcxq %rax,%r8
 adoxq %r10,%r9

 mulxq 16(%rbp),%rax,%r10
 adcxq %rax,%r9
 adoxq %r11,%r10

 mulxq 24(%rbp),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11

.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00
 adcxq %rax,%r11
 adoxq %r13,%r12

 mulxq 40(%rbp),%rax,%r13
 adcxq %rax,%r12
 adoxq %r14,%r13

 mulxq 48(%rbp),%rax,%r14
 movq %rbx,(%rdi,%rcx,8)
 movl $0,%ebx
 adcxq %rax,%r13
 adoxq %r15,%r14

.byte 0xc4,0x62,0xfb,0xf6,0xbd,0x38,0x00,0x00,0x00
 movq 8(%rsi,%rcx,8),%rdx
 adcxq %rax,%r14
 adoxq %rbx,%r15
 adcxq %rbx,%r15

.byte 0x67
 incq %rcx
# WAS jnz .Lsqrx8x_loop
	jnz	.Lsqrx8x_loop_BCM_22

 leaq 64(%rbp),%rbp
 movq $-8,%rcx
 cmpq 8+8(%rsp),%rbp
# WAS je .Lsqrx8x_break
	je	.Lsqrx8x_break_BCM_22

 subq 16+8(%rsp),%rbx
.byte 0x66
 movq -64(%rsi),%rdx
 adcxq 0(%rdi),%r8
 adcxq 8(%rdi),%r9
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 leaq 64(%rdi),%rdi
.byte 0x67
 sbbq %rax,%rax
 xorl %ebx,%ebx
 movq %rax,16+8(%rsp)
# WAS jmp .Lsqrx8x_loop
	jmp	.Lsqrx8x_loop_BCM_22

.align 32
.Lsqrx8x_break_BCM_22:

 xorq %rbp,%rbp
 subq 16+8(%rsp),%rbx
 adcxq %rbp,%r8
 movq 24+8(%rsp),%rcx
 adcxq %rbp,%r9
 movq 0(%rsi),%rdx
 adcq $0,%r10
 movq %r8,0(%rdi)
 adcq $0,%r11
 adcq $0,%r12
 adcq $0,%r13
 adcq $0,%r14
 adcq $0,%r15
 cmpq %rcx,%rdi
# WAS je .Lsqrx8x_outer_loop
	je	.Lsqrx8x_outer_loop_BCM_22

 movq %r9,8(%rdi)
 movq 8(%rcx),%r9
 movq %r10,16(%rdi)
 movq 16(%rcx),%r10
 movq %r11,24(%rdi)
 movq 24(%rcx),%r11
 movq %r12,32(%rdi)
 movq 32(%rcx),%r12
 movq %r13,40(%rdi)
 movq 40(%rcx),%r13
 movq %r14,48(%rdi)
 movq 48(%rcx),%r14
 movq %r15,56(%rdi)
 movq 56(%rcx),%r15
 movq %rcx,%rdi
# WAS jmp .Lsqrx8x_outer_loop
	jmp	.Lsqrx8x_outer_loop_BCM_22

.align 32
.Lsqrx8x_outer_break_BCM_22:

 movq %r9,72(%rdi)
.byte 102,72,15,126,217
 movq %r10,80(%rdi)
 movq %r11,88(%rdi)
 movq %r12,96(%rdi)
 movq %r13,104(%rdi)
 movq %r14,112(%rdi)
 leaq 48+8(%rsp),%rdi
 movq (%rsi,%rcx,1),%rdx

 movq 8(%rdi),%r11
 xorq %r10,%r10
 movq 0+8(%rsp),%r9
 adoxq %r11,%r11
 movq 16(%rdi),%r12
 movq 24(%rdi),%r13


.align 32
.Lsqrx4x_shift_n_add_BCM_22:

 mulxq %rdx,%rax,%rbx
 adoxq %r12,%r12
 adcxq %r10,%rax
.byte 0x48,0x8b,0x94,0x0e,0x08,0x00,0x00,0x00
.byte 0x4c,0x8b,0x97,0x20,0x00,0x00,0x00
 adoxq %r13,%r13
 adcxq %r11,%rbx
 movq 40(%rdi),%r11
 movq %rax,0(%rdi)
 movq %rbx,8(%rdi)

 mulxq %rdx,%rax,%rbx
 adoxq %r10,%r10
 adcxq %r12,%rax
 movq 16(%rsi,%rcx,1),%rdx
 movq 48(%rdi),%r12
 adoxq %r11,%r11
 adcxq %r13,%rbx
 movq 56(%rdi),%r13
 movq %rax,16(%rdi)
 movq %rbx,24(%rdi)

 mulxq %rdx,%rax,%rbx
 adoxq %r12,%r12
 adcxq %r10,%rax
 movq 24(%rsi,%rcx,1),%rdx
 leaq 32(%rcx),%rcx
 movq 64(%rdi),%r10
 adoxq %r13,%r13
 adcxq %r11,%rbx
 movq 72(%rdi),%r11
 movq %rax,32(%rdi)
 movq %rbx,40(%rdi)

 mulxq %rdx,%rax,%rbx
 adoxq %r10,%r10
 adcxq %r12,%rax
# WAS jrcxz .Lsqrx4x_shift_n_add_break
	jrcxz	.Lsqrx4x_shift_n_add_break_BCM_22
.byte 0x48,0x8b,0x94,0x0e,0x00,0x00,0x00,0x00
 adoxq %r11,%r11
 adcxq %r13,%rbx
 movq 80(%rdi),%r12
 movq 88(%rdi),%r13
 movq %rax,48(%rdi)
 movq %rbx,56(%rdi)
 leaq 64(%rdi),%rdi
 nop
# WAS jmp .Lsqrx4x_shift_n_add
	jmp	.Lsqrx4x_shift_n_add_BCM_22

.align 32
.Lsqrx4x_shift_n_add_break_BCM_22:

 adcxq %r13,%rbx
 movq %rax,48(%rdi)
 movq %rbx,56(%rdi)
 leaq 64(%rdi),%rdi
.byte 102,72,15,126,213
.L__bn_sqrx8x_reduction_local_target:
__bn_sqrx8x_reduction:
 xorl %eax,%eax
 movq 32+8(%rsp),%rbx
 movq 48+8(%rsp),%rdx
 leaq -64(%rbp,%r9,1),%rcx

 movq %rcx,0+8(%rsp)
 movq %rdi,8+8(%rsp)

 leaq 48+8(%rsp),%rdi
# WAS jmp .Lsqrx8x_reduction_loop
	jmp	.Lsqrx8x_reduction_loop_BCM_22

.align 32
.Lsqrx8x_reduction_loop_BCM_22:

 movq 8(%rdi),%r9
 movq 16(%rdi),%r10
 movq 24(%rdi),%r11
 movq 32(%rdi),%r12
 movq %rdx,%r8
 imulq %rbx,%rdx
 movq 40(%rdi),%r13
 movq 48(%rdi),%r14
 movq 56(%rdi),%r15
 movq %rax,24+8(%rsp)

 leaq 64(%rdi),%rdi
 xorq %rsi,%rsi
 movq $-8,%rcx
# WAS jmp .Lsqrx8x_reduce
	jmp	.Lsqrx8x_reduce_BCM_22

.align 32
.Lsqrx8x_reduce_BCM_22:

 movq %r8,%rbx
 mulxq 0(%rbp),%rax,%r8
 adcxq %rbx,%rax
 adoxq %r9,%r8

 mulxq 8(%rbp),%rbx,%r9
 adcxq %rbx,%r8
 adoxq %r10,%r9

 mulxq 16(%rbp),%rbx,%r10
 adcxq %rbx,%r9
 adoxq %r11,%r10

 mulxq 24(%rbp),%rbx,%r11
 adcxq %rbx,%r10
 adoxq %r12,%r11

.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x00
 movq %rdx,%rax
 movq %r8,%rdx
 adcxq %rbx,%r11
 adoxq %r13,%r12

 mulxq 32+8(%rsp),%rbx,%rdx
 movq %rax,%rdx
 movq %rax,64+48+8(%rsp,%rcx,8)

 mulxq 40(%rbp),%rax,%r13
 adcxq %rax,%r12
 adoxq %r14,%r13

 mulxq 48(%rbp),%rax,%r14
 adcxq %rax,%r13
 adoxq %r15,%r14

 mulxq 56(%rbp),%rax,%r15
 movq %rbx,%rdx
 adcxq %rax,%r14
 adoxq %rsi,%r15
 adcxq %rsi,%r15

.byte 0x67,0x67,0x67
 incq %rcx
# WAS jnz .Lsqrx8x_reduce
	jnz	.Lsqrx8x_reduce_BCM_22

 movq %rsi,%rax
 cmpq 0+8(%rsp),%rbp
# WAS jae .Lsqrx8x_no_tail
	jae	.Lsqrx8x_no_tail_BCM_22

 movq 48+8(%rsp),%rdx
 addq 0(%rdi),%r8
 leaq 64(%rbp),%rbp
 movq $-8,%rcx
 adcxq 8(%rdi),%r9
 adcxq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 leaq 64(%rdi),%rdi
 sbbq %rax,%rax

 xorq %rsi,%rsi
 movq %rax,16+8(%rsp)
# WAS jmp .Lsqrx8x_tail
	jmp	.Lsqrx8x_tail_BCM_22

.align 32
.Lsqrx8x_tail_BCM_22:

 movq %r8,%rbx
 mulxq 0(%rbp),%rax,%r8
 adcxq %rax,%rbx
 adoxq %r9,%r8

 mulxq 8(%rbp),%rax,%r9
 adcxq %rax,%r8
 adoxq %r10,%r9

 mulxq 16(%rbp),%rax,%r10
 adcxq %rax,%r9
 adoxq %r11,%r10

 mulxq 24(%rbp),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11

.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00
 adcxq %rax,%r11
 adoxq %r13,%r12

 mulxq 40(%rbp),%rax,%r13
 adcxq %rax,%r12
 adoxq %r14,%r13

 mulxq 48(%rbp),%rax,%r14
 adcxq %rax,%r13
 adoxq %r15,%r14

 mulxq 56(%rbp),%rax,%r15
 movq 72+48+8(%rsp,%rcx,8),%rdx
 adcxq %rax,%r14
 adoxq %rsi,%r15
 movq %rbx,(%rdi,%rcx,8)
 movq %r8,%rbx
 adcxq %rsi,%r15

 incq %rcx
# WAS jnz .Lsqrx8x_tail
	jnz	.Lsqrx8x_tail_BCM_22

 cmpq 0+8(%rsp),%rbp
# WAS jae .Lsqrx8x_tail_done
	jae	.Lsqrx8x_tail_done_BCM_22

 subq 16+8(%rsp),%rsi
 movq 48+8(%rsp),%rdx
 leaq 64(%rbp),%rbp
 adcq 0(%rdi),%r8
 adcq 8(%rdi),%r9
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 leaq 64(%rdi),%rdi
 sbbq %rax,%rax
 subq $8,%rcx

 xorq %rsi,%rsi
 movq %rax,16+8(%rsp)
# WAS jmp .Lsqrx8x_tail
	jmp	.Lsqrx8x_tail_BCM_22

.align 32
.Lsqrx8x_tail_done_BCM_22:

 xorq %rax,%rax
 addq 24+8(%rsp),%r8
 adcq $0,%r9
 adcq $0,%r10
 adcq $0,%r11
 adcq $0,%r12
 adcq $0,%r13
 adcq $0,%r14
 adcq $0,%r15
 adcq $0,%rax

 subq 16+8(%rsp),%rsi
.Lsqrx8x_no_tail_BCM_22:

 adcq 0(%rdi),%r8
.byte 102,72,15,126,217
 adcq 8(%rdi),%r9
 movq 56(%rbp),%rsi
.byte 102,72,15,126,213
 adcq 16(%rdi),%r10
 adcq 24(%rdi),%r11
 adcq 32(%rdi),%r12
 adcq 40(%rdi),%r13
 adcq 48(%rdi),%r14
 adcq 56(%rdi),%r15
 adcq $0,%rax

 movq 32+8(%rsp),%rbx
 movq 64(%rdi,%rcx,1),%rdx

 movq %r8,0(%rdi)
 leaq 64(%rdi),%r8
 movq %r9,8(%rdi)
 movq %r10,16(%rdi)
 movq %r11,24(%rdi)
 movq %r12,32(%rdi)
 movq %r13,40(%rdi)
 movq %r14,48(%rdi)
 movq %r15,56(%rdi)

 leaq 64(%rdi,%rcx,1),%rdi
 cmpq 8+8(%rsp),%r8
# WAS jb .Lsqrx8x_reduction_loop
	jb	.Lsqrx8x_reduction_loop_BCM_22
 .byte 0xf3,0xc3
.cfi_endproc
.size bn_sqrx8x_internal,.-bn_sqrx8x_internal
.align 32
.type __bn_postx4x_internal,@function
.L__bn_postx4x_internal_local_target:
__bn_postx4x_internal:
.cfi_startproc
 movq 0(%rbp),%r12
 movq %rcx,%r10
 movq %rcx,%r9
 negq %rax
 sarq $3+2,%rcx

.byte 102,72,15,126,202
.byte 102,72,15,126,206
 decq %r12
 movq 8(%rbp),%r13
 xorq %r8,%r8
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
# WAS jmp .Lsqrx4x_sub_entry
	jmp	.Lsqrx4x_sub_entry_BCM_22

.align 16
.Lsqrx4x_sub_BCM_22:

 movq 0(%rbp),%r12
 movq 8(%rbp),%r13
 movq 16(%rbp),%r14
 movq 24(%rbp),%r15
.Lsqrx4x_sub_entry_BCM_22:

 andnq %rax,%r12,%r12
 leaq 32(%rbp),%rbp
 andnq %rax,%r13,%r13
 andnq %rax,%r14,%r14
 andnq %rax,%r15,%r15

 negq %r8
 adcq 0(%rdi),%r12
 adcq 8(%rdi),%r13
 adcq 16(%rdi),%r14
 adcq 24(%rdi),%r15
 movq %r12,0(%rdx)
 leaq 32(%rdi),%rdi
 movq %r13,8(%rdx)
 sbbq %r8,%r8
 movq %r14,16(%rdx)
 movq %r15,24(%rdx)
 leaq 32(%rdx),%rdx

 incq %rcx
# WAS jnz .Lsqrx4x_sub
	jnz	.Lsqrx4x_sub_BCM_22

 negq %r9

 .byte 0xf3,0xc3
.cfi_endproc
.size __bn_postx4x_internal,.-__bn_postx4x_internal

.globl bn_scatter5
.hidden bn_scatter5
.type bn_scatter5,@function
.align 16
.Lbn_scatter5_local_target:
bn_scatter5:
.cfi_startproc
endbr64
 cmpl $0,%esi
# WAS jz .Lscatter_epilogue
	jz	.Lscatter_epilogue_BCM_22
# 3443 "x86_64-mont5.S"
 leaq (%rdx,%rcx,8),%rdx
.Lscatter_BCM_22:

 movq (%rdi),%rax
 leaq 8(%rdi),%rdi
 movq %rax,(%rdx)
 leaq 256(%rdx),%rdx
 subl $1,%esi
# WAS jnz .Lscatter
	jnz	.Lscatter_BCM_22
.Lscatter_epilogue_BCM_22:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_scatter5,.-bn_scatter5

.globl bn_gather5
.hidden bn_gather5
.type bn_gather5,@function
.align 32
.Lbn_gather5_local_target:
bn_gather5:
.cfi_startproc
.LSEH_begin_bn_gather5_BCM_22:

endbr64

.byte 0x4c,0x8d,0x14,0x24
.cfi_def_cfa_register %r10
.byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00
# WAS leaq .Linc(%rip),%rax
	leaq	.Linc_BCM_22(%rip), %rax
 andq $-16,%rsp

 movd %ecx,%xmm5
 movdqa 0(%rax),%xmm0
 movdqa 16(%rax),%xmm1
 leaq 128(%rdx),%r11
 leaq 128(%rsp),%rax

 pshufd $0,%xmm5,%xmm5
 movdqa %xmm1,%xmm4
 movdqa %xmm1,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm4,%xmm3

 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,-128(%rax)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,-112(%rax)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,-96(%rax)
 movdqa %xmm4,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,-80(%rax)
 movdqa %xmm4,%xmm3

 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,-64(%rax)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,-48(%rax)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,-32(%rax)
 movdqa %xmm4,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,-16(%rax)
 movdqa %xmm4,%xmm3

 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,0(%rax)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,16(%rax)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,32(%rax)
 movdqa %xmm4,%xmm2
 paddd %xmm0,%xmm1
 pcmpeqd %xmm5,%xmm0
 movdqa %xmm3,48(%rax)
 movdqa %xmm4,%xmm3

 paddd %xmm1,%xmm2
 pcmpeqd %xmm5,%xmm1
 movdqa %xmm0,64(%rax)
 movdqa %xmm4,%xmm0

 paddd %xmm2,%xmm3
 pcmpeqd %xmm5,%xmm2
 movdqa %xmm1,80(%rax)
 movdqa %xmm4,%xmm1

 paddd %xmm3,%xmm0
 pcmpeqd %xmm5,%xmm3
 movdqa %xmm2,96(%rax)
 movdqa %xmm4,%xmm2
 movdqa %xmm3,112(%rax)
# WAS jmp .Lgather
	jmp	.Lgather_BCM_22

.align 32
.Lgather_BCM_22:

 pxor %xmm4,%xmm4
 pxor %xmm5,%xmm5
 movdqa -128(%r11),%xmm0
 movdqa -112(%r11),%xmm1
 movdqa -96(%r11),%xmm2
 pand -128(%rax),%xmm0
 movdqa -80(%r11),%xmm3
 pand -112(%rax),%xmm1
 por %xmm0,%xmm4
 pand -96(%rax),%xmm2
 por %xmm1,%xmm5
 pand -80(%rax),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa -64(%r11),%xmm0
 movdqa -48(%r11),%xmm1
 movdqa -32(%r11),%xmm2
 pand -64(%rax),%xmm0
 movdqa -16(%r11),%xmm3
 pand -48(%rax),%xmm1
 por %xmm0,%xmm4
 pand -32(%rax),%xmm2
 por %xmm1,%xmm5
 pand -16(%rax),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 0(%r11),%xmm0
 movdqa 16(%r11),%xmm1
 movdqa 32(%r11),%xmm2
 pand 0(%rax),%xmm0
 movdqa 48(%r11),%xmm3
 pand 16(%rax),%xmm1
 por %xmm0,%xmm4
 pand 32(%rax),%xmm2
 por %xmm1,%xmm5
 pand 48(%rax),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqa 64(%r11),%xmm0
 movdqa 80(%r11),%xmm1
 movdqa 96(%r11),%xmm2
 pand 64(%rax),%xmm0
 movdqa 112(%r11),%xmm3
 pand 80(%rax),%xmm1
 por %xmm0,%xmm4
 pand 96(%rax),%xmm2
 por %xmm1,%xmm5
 pand 112(%rax),%xmm3
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 por %xmm5,%xmm4
 leaq 256(%r11),%r11

 pshufd $0x4e,%xmm4,%xmm0
 por %xmm4,%xmm0
 movq %xmm0,(%rdi)
 leaq 8(%rdi),%rdi
 subl $1,%esi
# WAS jnz .Lgather
	jnz	.Lgather_BCM_22

 leaq (%r10),%rsp
.cfi_def_cfa_register %rsp
 .byte 0xf3,0xc3
.LSEH_end_bn_gather5_BCM_22:

.cfi_endproc
.size bn_gather5,.-bn_gather5
# WAS .section .rodata
.text
.align 64
.Linc_BCM_22:

.long 0,0, 1,1
.long 2,2, 2,2
.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.text
# 0 "x86_64-mont.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "x86_64-mont.S"



#include <openssl/asm_base.h>
# 4 "x86_64-mont.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/target.h>
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/target.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <openssl/boringssl_prefix_symbols_asm.h>
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/boringssl_prefix_symbols_asm.h" 1
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2




.pushsection .note.GNU-stack, "", %progbits
.popsection
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
#include <cet.h>
# 61 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h"
# 1 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 1 3 4
# 69 "/usr/lib/gcc/x86_64-linux-gnu/13/include/cet.h" 3 4
 .pushsection ".note.gnu.property", "a"
 .p2align 3
 .long 1f - 0f
 .long 4f - 1f

 .long 5
0:

 .asciz "GNU"
1:

 .p2align 3

 .long 0xc0000002
 .long 3f - 2f
2:


 .long (0x1 | 0x2)
3:

 .p2align 3
4:

 .popsection
# 62 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/include/openssl/asm_base.h" 2
# 5 "x86_64-mont.S" 2


.text

.globl bn_mul_mont_nohw
.hidden bn_mul_mont_nohw
.type bn_mul_mont_nohw,@function
.align 16
.Lbn_mul_mont_nohw_local_target:
bn_mul_mont_nohw:
.cfi_startproc
endbr64
 movl %r9d,%r9d
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56

 negq %r9
 movq %rsp,%r11
 leaq -16(%rsp,%r9,8),%r10
 negq %r9
 andq $-1024,%r10
# 46 "x86_64-mont.S"
 subq %r10,%r11
 andq $-4096,%r11
 leaq (%r10,%r11,1),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul_page_walk
	ja	.Lmul_page_walk_BCM_23
# WAS jmp .Lmul_page_walk_done
	jmp	.Lmul_page_walk_done_BCM_23

.align 16
.Lmul_page_walk_BCM_23:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul_page_walk
	ja	.Lmul_page_walk_BCM_23
.Lmul_page_walk_done_BCM_23:


 movq %rax,8(%rsp,%r9,8)
.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08
.Lmul_body_BCM_23:

 movq %rdx,%r12
 movq (%r8),%r8
 movq (%r12),%rbx
 movq (%rsi),%rax

 xorq %r14,%r14
 xorq %r15,%r15

 movq %r8,%rbp
 mulq %rbx
 movq %rax,%r10
 movq (%rcx),%rax

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%r13

 leaq 1(%r15),%r15
# WAS jmp .L1st_enter
	jmp	.L1st_enter_BCM_23

.align 16
.L1st_BCM_23:

 addq %rax,%r13
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%r13
 movq %r10,%r11
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13

.L1st_enter_BCM_23:

 mulq %rbx
 addq %rax,%r11
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 leaq 1(%r15),%r15
 movq %rdx,%r10

 mulq %rbp
 cmpq %r9,%r15
# WAS jne .L1st
	jne	.L1st_BCM_23

 addq %rax,%r13
 movq (%rsi),%rax
 adcq $0,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13
 movq %r10,%r11

 xorq %rdx,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r9,8)
 movq %rdx,(%rsp,%r9,8)

 leaq 1(%r14),%r14
# WAS jmp .Louter
	jmp	.Louter_BCM_23
.align 16
.Louter_BCM_23:

 movq (%r12,%r14,8),%rbx
 xorq %r15,%r15
 movq %r8,%rbp
 movq (%rsp),%r10
 mulq %rbx
 addq %rax,%r10
 movq (%rcx),%rax
 adcq $0,%rdx

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq 8(%rsp),%r10
 movq %rdx,%r13

 leaq 1(%r15),%r15
# WAS jmp .Linner_enter
	jmp	.Linner_enter_BCM_23

.align 16
.Linner_BCM_23:

 addq %rax,%r13
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 movq (%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13

.Linner_enter_BCM_23:

 mulq %rbx
 addq %rax,%r11
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%r10
 movq %rdx,%r11
 adcq $0,%r11
 leaq 1(%r15),%r15

 mulq %rbp
 cmpq %r9,%r15
# WAS jne .Linner
	jne	.Linner_BCM_23

 addq %rax,%r13
 movq (%rsi),%rax
 adcq $0,%rdx
 addq %r10,%r13
 movq (%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %r13,-16(%rsp,%r15,8)
 movq %rdx,%r13

 xorq %rdx,%rdx
 addq %r11,%r13
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r9,8)
 movq %rdx,(%rsp,%r9,8)

 leaq 1(%r14),%r14
 cmpq %r9,%r14
# WAS jb .Louter
	jb	.Louter_BCM_23

 xorq %r14,%r14
 movq (%rsp),%rax
 movq %r9,%r15

.align 16
.Lsub_BCM_23:
 sbbq (%rcx,%r14,8),%rax
 movq %rax,(%rdi,%r14,8)
 movq 8(%rsp,%r14,8),%rax
 leaq 1(%r14),%r14
 decq %r15
# WAS jnz .Lsub
	jnz	.Lsub_BCM_23

 sbbq $0,%rax
 movq $-1,%rbx
 xorq %rax,%rbx
 xorq %r14,%r14
 movq %r9,%r15

.Lcopy_BCM_23:

 movq (%rdi,%r14,8),%rcx
 movq (%rsp,%r14,8),%rdx
 andq %rbx,%rcx
 andq %rax,%rdx
 movq %r9,(%rsp,%r14,8)
 orq %rcx,%rdx
 movq %rdx,(%rdi,%r14,8)
 leaq 1(%r14),%r14
 subq $1,%r15
# WAS jnz .Lcopy
	jnz	.Lcopy_BCM_23

 movq 8(%rsp,%r9,8),%rsi
.cfi_def_cfa %rsi,8
 movq $1,%rax
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmul_epilogue_BCM_23:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mul_mont_nohw,.-bn_mul_mont_nohw
.globl bn_mul4x_mont
.hidden bn_mul4x_mont
.type bn_mul4x_mont,@function
.align 16
.Lbn_mul4x_mont_local_target:
bn_mul4x_mont:
.cfi_startproc
endbr64
 movl %r9d,%r9d
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56

 negq %r9
 movq %rsp,%r11
 leaq -32(%rsp,%r9,8),%r10
 negq %r9
 andq $-1024,%r10

 subq %r10,%r11
 andq $-4096,%r11
 leaq (%r10,%r11,1),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul4x_page_walk
	ja	.Lmul4x_page_walk_BCM_23
# WAS jmp .Lmul4x_page_walk_done
	jmp	.Lmul4x_page_walk_done_BCM_23

.Lmul4x_page_walk_BCM_23:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r11
 cmpq %r10,%rsp
# WAS ja .Lmul4x_page_walk
	ja	.Lmul4x_page_walk_BCM_23
.Lmul4x_page_walk_done_BCM_23:


 movq %rax,8(%rsp,%r9,8)
.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08
.Lmul4x_body_BCM_23:

 movq %rdi,16(%rsp,%r9,8)
 movq %rdx,%r12
 movq (%r8),%r8
 movq (%r12),%rbx
 movq (%rsi),%rax

 xorq %r14,%r14
 xorq %r15,%r15

 movq %r8,%rbp
 mulq %rbx
 movq %rax,%r10
 movq (%rcx),%rax

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 4(%r15),%r15
 adcq $0,%rdx
 movq %rdi,(%rsp)
 movq %rdx,%r13
# WAS jmp .L1st4x
	jmp	.L1st4x_BCM_23
.align 16
.L1st4x_BCM_23:

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx,%r15,8),%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%rsp,%r15,8)
 movq %rdx,%r13

 mulq %rbx
 addq %rax,%r10
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq 8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 leaq 4(%r15),%r15
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq -16(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-32(%rsp,%r15,8)
 movq %rdx,%r13
 cmpq %r9,%r15
# WAS jb .L1st4x
	jb	.L1st4x_BCM_23

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx,%r15,8),%rax
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%rsp,%r15,8)
 movq %rdx,%r13

 xorq %rdi,%rdi
 addq %r10,%r13
 adcq $0,%rdi
 movq %r13,-8(%rsp,%r15,8)
 movq %rdi,(%rsp,%r15,8)

 leaq 1(%r14),%r14
.align 4
.Louter4x_BCM_23:

 movq (%r12,%r14,8),%rbx
 xorq %r15,%r15
 movq (%rsp),%r10
 movq %r8,%rbp
 mulq %rbx
 addq %rax,%r10
 movq (%rcx),%rax
 adcq $0,%rdx

 imulq %r10,%rbp
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r10
 movq 8(%rsi),%rax
 adcq $0,%rdx
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx),%rax
 adcq $0,%rdx
 addq 8(%rsp),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq 16(%rsi),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 leaq 4(%r15),%r15
 adcq $0,%rdx
 movq %rdi,(%rsp)
 movq %rdx,%r13
# WAS jmp .Linner4x
	jmp	.Linner4x_BCM_23
.align 16
.Linner4x_BCM_23:

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq -16(%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq -8(%rsp,%r15,8),%r11
 adcq $0,%rdx
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%rsp,%r15,8)
 movq %rdx,%r13

 mulq %rbx
 addq %rax,%r10
 movq (%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq (%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq 8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-8(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq 8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq 8(%rsp,%r15,8),%r11
 adcq $0,%rdx
 leaq 4(%r15),%r15
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq -16(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-32(%rsp,%r15,8)
 movq %rdx,%r13
 cmpq %r9,%r15
# WAS jb .Linner4x
	jb	.Linner4x_BCM_23

 mulq %rbx
 addq %rax,%r10
 movq -16(%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq -16(%rsp,%r15,8),%r10
 adcq $0,%rdx
 movq %rdx,%r11

 mulq %rbp
 addq %rax,%r13
 movq -8(%rsi,%r15,8),%rax
 adcq $0,%rdx
 addq %r10,%r13
 adcq $0,%rdx
 movq %r13,-24(%rsp,%r15,8)
 movq %rdx,%rdi

 mulq %rbx
 addq %rax,%r11
 movq -8(%rcx,%r15,8),%rax
 adcq $0,%rdx
 addq -8(%rsp,%r15,8),%r11
 adcq $0,%rdx
 leaq 1(%r14),%r14
 movq %rdx,%r10

 mulq %rbp
 addq %rax,%rdi
 movq (%rsi),%rax
 adcq $0,%rdx
 addq %r11,%rdi
 adcq $0,%rdx
 movq %rdi,-16(%rsp,%r15,8)
 movq %rdx,%r13

 xorq %rdi,%rdi
 addq %r10,%r13
 adcq $0,%rdi
 addq (%rsp,%r9,8),%r13
 adcq $0,%rdi
 movq %r13,-8(%rsp,%r15,8)
 movq %rdi,(%rsp,%r15,8)

 cmpq %r9,%r14
# WAS jb .Louter4x
	jb	.Louter4x_BCM_23
 movq 16(%rsp,%r9,8),%rdi
 leaq -4(%r9),%r15
 movq 0(%rsp),%rax
 movq 8(%rsp),%rdx
 shrq $2,%r15
 leaq (%rsp),%rsi
 xorq %r14,%r14

 subq 0(%rcx),%rax
 movq 16(%rsi),%rbx
 movq 24(%rsi),%rbp
 sbbq 8(%rcx),%rdx

.Lsub4x_BCM_23:

 movq %rax,0(%rdi,%r14,8)
 movq %rdx,8(%rdi,%r14,8)
 sbbq 16(%rcx,%r14,8),%rbx
 movq 32(%rsi,%r14,8),%rax
 movq 40(%rsi,%r14,8),%rdx
 sbbq 24(%rcx,%r14,8),%rbp
 movq %rbx,16(%rdi,%r14,8)
 movq %rbp,24(%rdi,%r14,8)
 sbbq 32(%rcx,%r14,8),%rax
 movq 48(%rsi,%r14,8),%rbx
 movq 56(%rsi,%r14,8),%rbp
 sbbq 40(%rcx,%r14,8),%rdx
 leaq 4(%r14),%r14
 decq %r15
# WAS jnz .Lsub4x
	jnz	.Lsub4x_BCM_23

 movq %rax,0(%rdi,%r14,8)
 movq 32(%rsi,%r14,8),%rax
 sbbq 16(%rcx,%r14,8),%rbx
 movq %rdx,8(%rdi,%r14,8)
 sbbq 24(%rcx,%r14,8),%rbp
 movq %rbx,16(%rdi,%r14,8)

 sbbq $0,%rax
 movq %rbp,24(%rdi,%r14,8)
 pxor %xmm0,%xmm0
.byte 102,72,15,110,224
 pcmpeqd %xmm5,%xmm5
 pshufd $0,%xmm4,%xmm4
 movq %r9,%r15
 pxor %xmm4,%xmm5
 shrq $2,%r15
 xorl %eax,%eax

# WAS jmp .Lcopy4x
	jmp	.Lcopy4x_BCM_23
.align 16
.Lcopy4x_BCM_23:

 movdqa (%rsp,%rax,1),%xmm1
 movdqu (%rdi,%rax,1),%xmm2
 pand %xmm4,%xmm1
 pand %xmm5,%xmm2
 movdqa 16(%rsp,%rax,1),%xmm3
 movdqa %xmm0,(%rsp,%rax,1)
 por %xmm2,%xmm1
 movdqu 16(%rdi,%rax,1),%xmm2
 movdqu %xmm1,(%rdi,%rax,1)
 pand %xmm4,%xmm3
 pand %xmm5,%xmm2
 movdqa %xmm0,16(%rsp,%rax,1)
 por %xmm2,%xmm3
 movdqu %xmm3,16(%rdi,%rax,1)
 leaq 32(%rax),%rax
 decq %r15
# WAS jnz .Lcopy4x
	jnz	.Lcopy4x_BCM_23
 movq 8(%rsp,%r9,8),%rsi
.cfi_def_cfa %rsi, 8
 movq $1,%rax
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmul4x_epilogue_BCM_23:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mul4x_mont,.-bn_mul4x_mont

.extern bn_sqrx8x_internal
.hidden bn_sqrx8x_internal

.extern bn_sqr8x_internal
.hidden bn_sqr8x_internal

.globl bn_sqr8x_mont
.hidden bn_sqr8x_mont
.type bn_sqr8x_mont,@function
.align 32
.Lbn_sqr8x_mont_local_target:
bn_sqr8x_mont:
.cfi_startproc
endbr64
 movl %r9d,%r9d
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lsqr8x_prologue_BCM_23:


 movl %r9d,%r10d
 shll $3,%r9d
 shlq $3+2,%r10
 negq %r9






 leaq -64(%rsp,%r9,2),%r11
 movq %rsp,%rbp
 movq (%r8),%r8
 subq %rsi,%r11
 andq $4095,%r11
 cmpq %r11,%r10
# WAS jb .Lsqr8x_sp_alt
	jb	.Lsqr8x_sp_alt_BCM_23
 subq %r11,%rbp
 leaq -64(%rbp,%r9,2),%rbp
# WAS jmp .Lsqr8x_sp_done
	jmp	.Lsqr8x_sp_done_BCM_23

.align 32
.Lsqr8x_sp_alt_BCM_23:

 leaq 4096-64(,%r9,2),%r10
 leaq -64(%rbp,%r9,2),%rbp
 subq %r10,%r11
 movq $0,%r10
 cmovcq %r10,%r11
 subq %r11,%rbp
.Lsqr8x_sp_done_BCM_23:

 andq $-64,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lsqr8x_page_walk
	ja	.Lsqr8x_page_walk_BCM_23
# WAS jmp .Lsqr8x_page_walk_done
	jmp	.Lsqr8x_page_walk_done_BCM_23

.align 16
.Lsqr8x_page_walk_BCM_23:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lsqr8x_page_walk
	ja	.Lsqr8x_page_walk_BCM_23
.Lsqr8x_page_walk_done_BCM_23:


 movq %r9,%r10
 negq %r9

 movq %r8,32(%rsp)
 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
.Lsqr8x_body_BCM_23:


.byte 102,72,15,110,209
 pxor %xmm0,%xmm0
.byte 102,72,15,110,207
.byte 102,73,15,110,218

 testq %rdx,%rdx
# WAS jz .Lsqr8x_nox
	jz	.Lsqr8x_nox_BCM_23

# WAS call bn_sqrx8x_internal
	call	.Lbn_sqrx8x_internal_local_target




 leaq (%r8,%rcx,1),%rbx
 movq %rcx,%r9
 movq %rcx,%rdx
.byte 102,72,15,126,207
 sarq $3+2,%rcx
# WAS jmp .Lsqr8x_sub
	jmp	.Lsqr8x_sub_BCM_23

.align 32
.Lsqr8x_nox_BCM_23:


# WAS call bn_sqr8x_internal
	call	.Lbn_sqr8x_internal_local_target




 leaq (%rdi,%r9,1),%rbx
 movq %r9,%rcx
 movq %r9,%rdx
.byte 102,72,15,126,207
 sarq $3+2,%rcx
# WAS jmp .Lsqr8x_sub
	jmp	.Lsqr8x_sub_BCM_23

.align 32
.Lsqr8x_sub_BCM_23:

 movq 0(%rbx),%r12
 movq 8(%rbx),%r13
 movq 16(%rbx),%r14
 movq 24(%rbx),%r15
 leaq 32(%rbx),%rbx
 sbbq 0(%rbp),%r12
 sbbq 8(%rbp),%r13
 sbbq 16(%rbp),%r14
 sbbq 24(%rbp),%r15
 leaq 32(%rbp),%rbp
 movq %r12,0(%rdi)
 movq %r13,8(%rdi)
 movq %r14,16(%rdi)
 movq %r15,24(%rdi)
 leaq 32(%rdi),%rdi
 incq %rcx
# WAS jnz .Lsqr8x_sub
	jnz	.Lsqr8x_sub_BCM_23

 sbbq $0,%rax
 leaq (%rbx,%r9,1),%rbx
 leaq (%rdi,%r9,1),%rdi

.byte 102,72,15,110,200
 pxor %xmm0,%xmm0
 pshufd $0,%xmm1,%xmm1
 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
# WAS jmp .Lsqr8x_cond_copy
	jmp	.Lsqr8x_cond_copy_BCM_23

.align 32
.Lsqr8x_cond_copy_BCM_23:

 movdqa 0(%rbx),%xmm2
 movdqa 16(%rbx),%xmm3
 leaq 32(%rbx),%rbx
 movdqu 0(%rdi),%xmm4
 movdqu 16(%rdi),%xmm5
 leaq 32(%rdi),%rdi
 movdqa %xmm0,-32(%rbx)
 movdqa %xmm0,-16(%rbx)
 movdqa %xmm0,-32(%rbx,%rdx,1)
 movdqa %xmm0,-16(%rbx,%rdx,1)
 pcmpeqd %xmm1,%xmm0
 pand %xmm1,%xmm2
 pand %xmm1,%xmm3
 pand %xmm0,%xmm4
 pand %xmm0,%xmm5
 pxor %xmm0,%xmm0
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqu %xmm4,-32(%rdi)
 movdqu %xmm5,-16(%rdi)
 addq $32,%r9
# WAS jnz .Lsqr8x_cond_copy
	jnz	.Lsqr8x_cond_copy_BCM_23

 movq $1,%rax
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lsqr8x_epilogue_BCM_23:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_sqr8x_mont,.-bn_sqr8x_mont

.globl bn_mulx4x_mont
.hidden bn_mulx4x_mont
.type bn_mulx4x_mont,@function
.align 32
.Lbn_mulx4x_mont_local_target:
bn_mulx4x_mont:
.cfi_startproc
endbr64
 movq %rsp,%rax
.cfi_def_cfa_register %rax
 pushq %rbx
.cfi_offset %rbx,-16
 pushq %rbp
.cfi_offset %rbp,-24
 pushq %r12
.cfi_offset %r12,-32
 pushq %r13
.cfi_offset %r13,-40
 pushq %r14
.cfi_offset %r14,-48
 pushq %r15
.cfi_offset %r15,-56
.Lmulx4x_prologue_BCM_23:


 shll $3,%r9d
 xorq %r10,%r10
 subq %r9,%r10
 movq (%r8),%r8
 leaq -72(%rsp,%r10,1),%rbp
 andq $-128,%rbp
 movq %rsp,%r11
 subq %rbp,%r11
 andq $-4096,%r11
 leaq (%r11,%rbp,1),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmulx4x_page_walk
	ja	.Lmulx4x_page_walk_BCM_23
# WAS jmp .Lmulx4x_page_walk_done
	jmp	.Lmulx4x_page_walk_done_BCM_23

.align 16
.Lmulx4x_page_walk_BCM_23:

 leaq -4096(%rsp),%rsp
 movq (%rsp),%r10
 cmpq %rbp,%rsp
# WAS ja .Lmulx4x_page_walk
	ja	.Lmulx4x_page_walk_BCM_23
.Lmulx4x_page_walk_done_BCM_23:


 leaq (%rdx,%r9,1),%r10
# 941 "x86_64-mont.S"
 movq %r9,0(%rsp)
 shrq $5,%r9
 movq %r10,16(%rsp)
 subq $1,%r9
 movq %r8,24(%rsp)
 movq %rdi,32(%rsp)
 movq %rax,40(%rsp)
.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08
 movq %r9,48(%rsp)
# WAS jmp .Lmulx4x_body
	jmp	.Lmulx4x_body_BCM_23

.align 32
.Lmulx4x_body_BCM_23:

 leaq 8(%rdx),%rdi
 movq (%rdx),%rdx
 leaq 64+32(%rsp),%rbx
 movq %rdx,%r9

 mulxq 0(%rsi),%r8,%rax
 mulxq 8(%rsi),%r11,%r14
 addq %rax,%r11
 movq %rdi,8(%rsp)
 mulxq 16(%rsi),%r12,%r13
 adcq %r14,%r12
 adcq $0,%r13

 movq %r8,%rdi
 imulq 24(%rsp),%r8
 xorq %rbp,%rbp

 mulxq 24(%rsi),%rax,%r14
 movq %r8,%rdx
 leaq 32(%rsi),%rsi
 adcxq %rax,%r13
 adcxq %rbp,%r14

 mulxq 0(%rcx),%rax,%r10
 adcxq %rax,%rdi
 adoxq %r11,%r10
 mulxq 8(%rcx),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11
.byte 0xc4,0x62,0xfb,0xf6,0xa1,0x10,0x00,0x00,0x00
 movq 48(%rsp),%rdi
 movq %r10,-32(%rbx)
 adcxq %rax,%r11
 adoxq %r13,%r12
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r11,-24(%rbx)
 adcxq %rax,%r12
 adoxq %rbp,%r15
 leaq 32(%rcx),%rcx
 movq %r12,-16(%rbx)

# WAS jmp .Lmulx4x_1st
	jmp	.Lmulx4x_1st_BCM_23

.align 32
.Lmulx4x_1st_BCM_23:

 adcxq %rbp,%r15
 mulxq 0(%rsi),%r10,%rax
 adcxq %r14,%r10
 mulxq 8(%rsi),%r11,%r14
 adcxq %rax,%r11
 mulxq 16(%rsi),%r12,%rax
 adcxq %r14,%r12
 mulxq 24(%rsi),%r13,%r14
.byte 0x67,0x67
 movq %r8,%rdx
 adcxq %rax,%r13
 adcxq %rbp,%r14
 leaq 32(%rsi),%rsi
 leaq 32(%rbx),%rbx

 adoxq %r15,%r10
 mulxq 0(%rcx),%rax,%r15
 adcxq %rax,%r10
 adoxq %r15,%r11
 mulxq 8(%rcx),%rax,%r15
 adcxq %rax,%r11
 adoxq %r15,%r12
 mulxq 16(%rcx),%rax,%r15
 movq %r10,-40(%rbx)
 adcxq %rax,%r12
 movq %r11,-32(%rbx)
 adoxq %r15,%r13
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r12,-24(%rbx)
 adcxq %rax,%r13
 adoxq %rbp,%r15
 leaq 32(%rcx),%rcx
 movq %r13,-16(%rbx)

 decq %rdi
# WAS jnz .Lmulx4x_1st
	jnz	.Lmulx4x_1st_BCM_23

 movq 0(%rsp),%rax
 movq 8(%rsp),%rdi
 adcq %rbp,%r15
 addq %r15,%r14
 sbbq %r15,%r15
 movq %r14,-8(%rbx)
# WAS jmp .Lmulx4x_outer
	jmp	.Lmulx4x_outer_BCM_23

.align 32
.Lmulx4x_outer_BCM_23:

 movq (%rdi),%rdx
 leaq 8(%rdi),%rdi
 subq %rax,%rsi
 movq %r15,(%rbx)
 leaq 64+32(%rsp),%rbx
 subq %rax,%rcx

 mulxq 0(%rsi),%r8,%r11
 xorl %ebp,%ebp
 movq %rdx,%r9
 mulxq 8(%rsi),%r14,%r12
 adoxq -32(%rbx),%r8
 adcxq %r14,%r11
 mulxq 16(%rsi),%r15,%r13
 adoxq -24(%rbx),%r11
 adcxq %r15,%r12
 adoxq -16(%rbx),%r12
 adcxq %rbp,%r13
 adoxq %rbp,%r13

 movq %rdi,8(%rsp)
 movq %r8,%r15
 imulq 24(%rsp),%r8
 xorl %ebp,%ebp

 mulxq 24(%rsi),%rax,%r14
 movq %r8,%rdx
 adcxq %rax,%r13
 adoxq -8(%rbx),%r13
 adcxq %rbp,%r14
 leaq 32(%rsi),%rsi
 adoxq %rbp,%r14

 mulxq 0(%rcx),%rax,%r10
 adcxq %rax,%r15
 adoxq %r11,%r10
 mulxq 8(%rcx),%rax,%r11
 adcxq %rax,%r10
 adoxq %r12,%r11
 mulxq 16(%rcx),%rax,%r12
 movq %r10,-32(%rbx)
 adcxq %rax,%r11
 adoxq %r13,%r12
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r11,-24(%rbx)
 leaq 32(%rcx),%rcx
 adcxq %rax,%r12
 adoxq %rbp,%r15
 movq 48(%rsp),%rdi
 movq %r12,-16(%rbx)

# WAS jmp .Lmulx4x_inner
	jmp	.Lmulx4x_inner_BCM_23

.align 32
.Lmulx4x_inner_BCM_23:

 mulxq 0(%rsi),%r10,%rax
 adcxq %rbp,%r15
 adoxq %r14,%r10
 mulxq 8(%rsi),%r11,%r14
 adcxq 0(%rbx),%r10
 adoxq %rax,%r11
 mulxq 16(%rsi),%r12,%rax
 adcxq 8(%rbx),%r11
 adoxq %r14,%r12
 mulxq 24(%rsi),%r13,%r14
 movq %r8,%rdx
 adcxq 16(%rbx),%r12
 adoxq %rax,%r13
 adcxq 24(%rbx),%r13
 adoxq %rbp,%r14
 leaq 32(%rsi),%rsi
 leaq 32(%rbx),%rbx
 adcxq %rbp,%r14

 adoxq %r15,%r10
 mulxq 0(%rcx),%rax,%r15
 adcxq %rax,%r10
 adoxq %r15,%r11
 mulxq 8(%rcx),%rax,%r15
 adcxq %rax,%r11
 adoxq %r15,%r12
 mulxq 16(%rcx),%rax,%r15
 movq %r10,-40(%rbx)
 adcxq %rax,%r12
 adoxq %r15,%r13
 mulxq 24(%rcx),%rax,%r15
 movq %r9,%rdx
 movq %r11,-32(%rbx)
 movq %r12,-24(%rbx)
 adcxq %rax,%r13
 adoxq %rbp,%r15
 leaq 32(%rcx),%rcx
 movq %r13,-16(%rbx)

 decq %rdi
# WAS jnz .Lmulx4x_inner
	jnz	.Lmulx4x_inner_BCM_23

 movq 0(%rsp),%rax
 movq 8(%rsp),%rdi
 adcq %rbp,%r15
 subq 0(%rbx),%rbp
 adcq %r15,%r14
 sbbq %r15,%r15
 movq %r14,-8(%rbx)

 cmpq 16(%rsp),%rdi
# WAS jne .Lmulx4x_outer
	jne	.Lmulx4x_outer_BCM_23

 leaq 64(%rsp),%rbx
 subq %rax,%rcx
 negq %r15
 movq %rax,%rdx
 shrq $3+2,%rax
 movq 32(%rsp),%rdi
# WAS jmp .Lmulx4x_sub
	jmp	.Lmulx4x_sub_BCM_23

.align 32
.Lmulx4x_sub_BCM_23:

 movq 0(%rbx),%r11
 movq 8(%rbx),%r12
 movq 16(%rbx),%r13
 movq 24(%rbx),%r14
 leaq 32(%rbx),%rbx
 sbbq 0(%rcx),%r11
 sbbq 8(%rcx),%r12
 sbbq 16(%rcx),%r13
 sbbq 24(%rcx),%r14
 leaq 32(%rcx),%rcx
 movq %r11,0(%rdi)
 movq %r12,8(%rdi)
 movq %r13,16(%rdi)
 movq %r14,24(%rdi)
 leaq 32(%rdi),%rdi
 decq %rax
# WAS jnz .Lmulx4x_sub
	jnz	.Lmulx4x_sub_BCM_23

 sbbq $0,%r15
 leaq 64(%rsp),%rbx
 subq %rdx,%rdi

.byte 102,73,15,110,207
 pxor %xmm0,%xmm0
 pshufd $0,%xmm1,%xmm1
 movq 40(%rsp),%rsi
.cfi_def_cfa %rsi,8
# WAS jmp .Lmulx4x_cond_copy
	jmp	.Lmulx4x_cond_copy_BCM_23

.align 32
.Lmulx4x_cond_copy_BCM_23:

 movdqa 0(%rbx),%xmm2
 movdqa 16(%rbx),%xmm3
 leaq 32(%rbx),%rbx
 movdqu 0(%rdi),%xmm4
 movdqu 16(%rdi),%xmm5
 leaq 32(%rdi),%rdi
 movdqa %xmm0,-32(%rbx)
 movdqa %xmm0,-16(%rbx)
 pcmpeqd %xmm1,%xmm0
 pand %xmm1,%xmm2
 pand %xmm1,%xmm3
 pand %xmm0,%xmm4
 pand %xmm0,%xmm5
 pxor %xmm0,%xmm0
 por %xmm2,%xmm4
 por %xmm3,%xmm5
 movdqu %xmm4,-32(%rdi)
 movdqu %xmm5,-16(%rdi)
 subq $32,%rdx
# WAS jnz .Lmulx4x_cond_copy
	jnz	.Lmulx4x_cond_copy_BCM_23

 movq %rdx,(%rbx)

 movq $1,%rax
 movq -48(%rsi),%r15
.cfi_restore %r15
 movq -40(%rsi),%r14
.cfi_restore %r14
 movq -32(%rsi),%r13
.cfi_restore %r13
 movq -24(%rsi),%r12
.cfi_restore %r12
 movq -16(%rsi),%rbp
.cfi_restore %rbp
 movq -8(%rsi),%rbx
.cfi_restore %rbx
 leaq (%rsi),%rsp
.cfi_def_cfa_register %rsp
.Lmulx4x_epilogue_BCM_23:

 .byte 0xf3,0xc3
.cfi_endproc
.size bn_mulx4x_mont,.-bn_mulx4x_mont

.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 16
# 0 "p384/bignum_add_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_add_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S" 2


        .globl bignum_add_p384
        .hidden bignum_add_p384
        .text
# 43 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S"
.Lbignum_add_p384_local_target:
bignum_add_p384:
# 56 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_add_p384.S"
        movq (%rsi), %rax
        addq (%rdx), %rax
        movq 8(%rsi), %rcx
        adcq 8(%rdx), %rcx
        movq 16(%rsi), %r8
        adcq 16(%rdx), %r8
        movq 24(%rsi), %r9
        adcq 24(%rdx), %r9
        movq 32(%rsi), %r10
        adcq 32(%rdx), %r10
        movq 40(%rsi), %r11
        adcq 40(%rdx), %r11
        movl $0, %edx
        adcq %rdx, %rdx





        movq $0xffffffff00000001, %rsi
        addq %rsi, %rax
        movl $0x00000000ffffffff, %esi
        adcq %rsi, %rcx
        adcq $1, %r8
        adcq $0, %r9
        adcq $0, %r10
        adcq $0, %r11
        adcq $-1, %rdx







        andq %rsi, %rdx
        xorq %rsi, %rsi
        subq %rdx, %rsi



        subq %rsi, %rax
        movq %rax, (%rdi)
        sbbq %rdx, %rcx
        movq %rcx, 8(%rdi)




        sbbq %rax, %rax
        andq %rsi, %rdx
        negq %rax



        sbbq %rdx, %r8
        movq %r8, 16(%rdi)
        sbbq $0, %r9
        movq %r9, 24(%rdi)
        sbbq $0, %r10
        movq %r10, 32(%rdi)
        sbbq $0, %r11
        movq %r11, 40(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_sub_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_sub_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S" 2


        .globl bignum_sub_p384
        .hidden bignum_sub_p384
        .text
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S"
.Lbignum_sub_p384_local_target:
bignum_sub_p384:
# 55 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_sub_p384.S"
        movq (%rsi), %rax
        subq (%rdx), %rax
        movq 8(%rsi), %rcx
        sbbq 8(%rdx), %rcx
        movq 16(%rsi), %r8
        sbbq 16(%rdx), %r8
        movq 24(%rsi), %r9
        sbbq 24(%rdx), %r9
        movq 32(%rsi), %r10
        sbbq 32(%rdx), %r10
        movq 40(%rsi), %r11
        sbbq 40(%rdx), %r11
        sbbq %rdx, %rdx






        movl $0x00000000ffffffff, %esi
        andq %rsi, %rdx
        xorq %rsi, %rsi
        subq %rdx, %rsi



        subq %rsi, %rax
        movq %rax, (%rdi)
        sbbq %rdx, %rcx
        movq %rcx, 8(%rdi)




        sbbq %rax, %rax
        andq %rsi, %rdx
        negq %rax



        sbbq %rdx, %r8
        movq %r8, 16(%rdi)
        sbbq $0, %r9
        movq %r9, 24(%rdi)
        sbbq $0, %r10
        movq %r10, 32(%rdi)
        sbbq $0, %r11
        movq %r11, 40(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_neg_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_neg_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S"
# 14 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S" 2


        .globl bignum_neg_p384
        .hidden bignum_neg_p384
        .text
# 33 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S"
.Lbignum_neg_p384_local_target:
bignum_neg_p384:
# 45 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_neg_p384.S"
        movq (%rsi), %rax
        orq 8(%rsi), %rax
        movq 16(%rsi), %rcx
        orq 24(%rsi), %rcx
        movq 32(%rsi), %rdx
        orq 40(%rsi), %rdx
        orq %rcx, %rax
        orq %rdx, %rax
        negq %rax
        sbbq %r10, %r10



        movl $0x00000000ffffffff, %eax
        andq %r10, %rax
        movq $0xffffffff00000000, %rcx
        andq %r10, %rcx
        movq $0xfffffffffffffffe, %rdx
        andq %r10, %rdx
        movq %r10, %r8
        movq %r10, %r9



        subq (%rsi), %rax
        sbbq 8(%rsi), %rcx
        sbbq 16(%rsi), %rdx
        sbbq 24(%rsi), %r8
        sbbq 32(%rsi), %r9
        sbbq 40(%rsi), %r10



        movq %rax, (%rdi)
        movq %rcx, 8(%rdi)
        movq %rdx, 16(%rdi)
        movq %r8, 24(%rdi)
        movq %r9, 32(%rdi)
        movq %r10, 40(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_tomont_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_tomont_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S" 2


        .globl bignum_tomont_p384
        .hidden bignum_tomont_p384
        .text
# 87 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
.Lbignum_tomont_p384_local_target:
bignum_tomont_p384:
# 102 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15





        movq $0xfffffffe00000001, %rdx
        mulxq (%rsi), %r8, %r9
        mulxq 8(%rsi), %rcx, %r10
        addq %rcx, %r9
        mulxq 16(%rsi), %rcx, %r11
        adcq %rcx, %r10
        mulxq 24(%rsi), %rcx, %r12
        adcq %rcx, %r11
        mulxq 32(%rsi), %rcx, %r13
        adcq %rcx, %r12
        mulxq 40(%rsi), %rcx, %r14
        adcq %rcx, %r13
        adcq $0, %r14



        xorq %r15, %r15
        movq %r8, %rdx
 shlq $32, %rdx
 addq %r8, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r8, %rcx
 adcq %r8, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r9
 sbbq %rcx, %r10
 sbbq %rbp, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 sbbq $0, %rdx
 addq %rdx, %r14
 adcq $0, %r15



        xorq %rbp, %rbp
        movq $0x0000000200000000, %rdx
        xorq %r8, %r8
        mulxq (%rsi), %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
        mulxq 8(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
        mulxq 16(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        adcxq %rbp, %r15
        adoxq %rbp, %r8
        adcxq %rbp, %r8



        movq %r9, %rdx
 shlq $32, %rdx
 addq %r9, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r9, %rcx
 adcq %r9, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r10
 sbbq %rcx, %r11
 sbbq %rbp, %r12
 sbbq $0, %r13
 sbbq $0, %r14
 sbbq $0, %rdx
 addq %rdx, %r15
 adcq $0, %r8



        xorq %rbp, %rbp
        movq $0xfffffffe00000000, %rdx
        xorq %r9, %r9
        mulxq (%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
        mulxq 8(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        mulxq 16(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r15
 adoxq %rcx, %r8
        adcxq %rbp, %r8
        adoxq %rbp, %r9
        adcxq %rbp, %r9



        movq %r10, %rdx
 shlq $32, %rdx
 addq %r10, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r10, %rcx
 adcq %r10, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r11
 sbbq %rcx, %r12
 sbbq %rbp, %r13
 sbbq $0, %r14
 sbbq $0, %r15
 sbbq $0, %rdx
 addq %rdx, %r8
 adcq $0, %r9



        xorq %rbp, %rbp
        movq $0x0000000200000000, %rdx
        xorq %r10, %r10
        mulxq (%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        mulxq 8(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
        mulxq 16(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r15
 adoxq %rcx, %r8
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
        adcxq %rbp, %r9
        adoxq %rbp, %r10
        adcxq %rbp, %r10



        movq %r11, %rdx
 shlq $32, %rdx
 addq %r11, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r11, %rcx
 adcq %r11, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r12
 sbbq %rcx, %r13
 sbbq %rbp, %r14
 sbbq $0, %r15
 sbbq $0, %r8
 sbbq $0, %rdx
 addq %rdx, %r9
 adcq $0, %r10




        xorq %r11, %r11
        addq (%rsi), %r12
        adcq 8(%rsi), %r13
        adcq 16(%rsi), %r14
        adcq 24(%rsi), %r15
        adcq 32(%rsi), %r8
        adcq 40(%rsi), %r9
        adcq $0, %r10
        adcq $0, %r11



        movq %r12, %rdx
 shlq $32, %rdx
 addq %r12, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r12, %rcx
 adcq %r12, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r13
 sbbq %rcx, %r14
 sbbq %rbp, %r15
 sbbq $0, %r8
 sbbq $0, %r9
 sbbq $0, %rdx
 addq %rdx, %r10
 adcq $0, %r11




        xorq %r12, %r12



        movq %r13, %rdx
 shlq $32, %rdx
 addq %r13, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r13, %rcx
 adcq %r13, %rax
 adcq %rdx, %rcx
 adcl %ebp, %ebp
 subq %rax, %r14
 sbbq %rcx, %r15
 sbbq %rbp, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 sbbq $0, %rdx
 addq %rdx, %r11
 adcq $0, %r12
# 223 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384.S"
        movq $0xffffffff00000001, %rdx
        movl $0x00000000ffffffff, %ecx
        movl $0x0000000000000001, %esi




        movq %r14, %rax
        addq %rdx, %rax
        movq %r15, %rax
        adcq %rcx, %rax
        movq %r8, %rax
        adcq %rsi, %rax
        movq %r9, %rax
        adcq $0, %rax
        movq %r10, %rax
        adcq $0, %rax
        movq %r11, %rax
        adcq $0, %rax




        adcq $0, %r12



        negq %r12



        andq %r12, %rdx
        andq %r12, %rcx
        andq %r12, %rsi

        addq %rdx, %r14
        adcq %rcx, %r15
        adcq %rsi, %r8
        adcq $0, %r9
        adcq $0, %r10
        adcq $0, %r11



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %r8, 16(%rdi)
        movq %r9, 24(%rdi)
        movq %r10, 32(%rdi)
        movq %r11, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_deamont_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_deamont_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S"
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S" 2


        .globl bignum_deamont_p384
        .hidden bignum_deamont_p384
        .text
# 73 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S"
.Lbignum_deamont_p384_local_target:
bignum_deamont_p384:
# 84 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384.S"
        pushq %r12
        pushq %r13



        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11
        movq 32(%rsi), %r12
        movq 40(%rsi), %r13



        movq %r8, %rdx
 shlq $32, %rdx
 addq %r8, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r8, %rcx
 adcq %r8, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r9
 sbbq %rcx, %r10
 sbbq %rsi, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 movq %rdx, %r8
 sbbq $0, %r8



        movq %r9, %rdx
 shlq $32, %rdx
 addq %r9, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r9, %rcx
 adcq %r9, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r10
 sbbq %rcx, %r11
 sbbq %rsi, %r12
 sbbq $0, %r13
 sbbq $0, %r8
 movq %rdx, %r9
 sbbq $0, %r9



        movq %r10, %rdx
 shlq $32, %rdx
 addq %r10, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r10, %rcx
 adcq %r10, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r11
 sbbq %rcx, %r12
 sbbq %rsi, %r13
 sbbq $0, %r8
 sbbq $0, %r9
 movq %rdx, %r10
 sbbq $0, %r10



        movq %r11, %rdx
 shlq $32, %rdx
 addq %r11, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r11, %rcx
 adcq %r11, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r12
 sbbq %rcx, %r13
 sbbq %rsi, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 movq %rdx, %r11
 sbbq $0, %r11



        movq %r12, %rdx
 shlq $32, %rdx
 addq %r12, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r12, %rcx
 adcq %r12, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r13
 sbbq %rcx, %r8
 sbbq %rsi, %r9
 sbbq $0, %r10
 sbbq $0, %r11
 movq %rdx, %r12
 sbbq $0, %r12



        movq %r13, %rdx
 shlq $32, %rdx
 addq %r13, %rdx
 xorq %rsi, %rsi
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rcx, %rax
 movl $0x00000000ffffffff, %ecx
 mulxq %rcx, %r13, %rcx
 adcq %r13, %rax
 adcq %rdx, %rcx
 adcq $0, %rsi
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rsi, %r10
 sbbq $0, %r11
 sbbq $0, %r12
 movq %rdx, %r13
 sbbq $0, %r13





        movq $0xffffffff00000001, %rax
        movl $0x00000000ffffffff, %ecx

        movq %r8, %rdx
        addq %rax, %rdx
        movq %r9, %rdx
        adcq %rcx, %rdx
        movq %r10, %rdx
        adcq $1, %rdx
        movq %r11, %rdx
        adcq $0, %rdx
        movq %r12, %rdx
        adcq $0, %rdx
        movq %r13, %rdx
        adcq $0, %rdx



        sbbq %rdx, %rdx



        andq %rdx, %rax
        andq %rdx, %rcx
        andq $1, %rdx

        addq %rax, %r8
        adcq %rcx, %r9
        adcq %rdx, %r10
        adcq $0, %r11
        adcq $0, %r12
        adcq $0, %r13



        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)
        movq %r12, 32(%rdi)
        movq %r13, 40(%rdi)



        popq %r13
        popq %r12





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_montmul_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_montmul_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S"
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 20 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S" 2


        .globl bignum_montmul_p384
        .hidden bignum_montmul_p384
        .text
# 88 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S"
.Lbignum_montmul_p384_local_target:
bignum_montmul_p384:
# 100 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15



        movq %rdx, %rcx





        movq (%rcx), %rdx
        xorl %r15d, %r15d
        mulxq (%rsi), %r8, %r9
        mulxq 8(%rsi), %rbx, %r10
        addq %rbx, %r9
        mulxq 16(%rsi), %rbx, %r11
        adcq %rbx, %r10
        mulxq 24(%rsi), %rbx, %r12
        adcq %rbx, %r11
        mulxq 32(%rsi), %rbx, %r13
        adcq %rbx, %r12
        mulxq 40(%rsi), %rbx, %r14
        adcq %rbx, %r13
        adcq %r15, %r14



        movq %r8, %rdx
 shlq $32, %rdx
 addq %r8, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r8, %rbx
 adcq %r8, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r9
 sbbq %rbx, %r10
 sbbq %rbp, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 sbbq $0, %rdx
 addq %rdx, %r14
 adcq $0, %r15



        movq 8(%rcx), %rdx
        xorl %r8d, %r8d
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        adoxq %r8, %r15
        mulxq 40(%rsi), %rax, %rbx
        adcq %rax, %r14
        adcq %rbx, %r15
        adcq %r8, %r8



        movq %r9, %rdx
 shlq $32, %rdx
 addq %r9, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r9, %rbx
 adcq %r9, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r10
 sbbq %rbx, %r11
 sbbq %rbp, %r12
 sbbq $0, %r13
 sbbq $0, %r14
 sbbq $0, %rdx
 addq %rdx, %r15
 adcq $0, %r8



        movq 16(%rcx), %rdx
        xorl %r9d, %r9d
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        adoxq %r9, %r8
        mulxq 40(%rsi), %rax, %rbx
        adcq %rax, %r15
        adcq %rbx, %r8
        adcq %r9, %r9



        movq %r10, %rdx
 shlq $32, %rdx
 addq %r10, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r10, %rbx
 adcq %r10, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r11
 sbbq %rbx, %r12
 sbbq %rbp, %r13
 sbbq $0, %r14
 sbbq $0, %r15
 sbbq $0, %rdx
 addq %rdx, %r8
 adcq $0, %r9



        movq 24(%rcx), %rdx
        xorl %r10d, %r10d
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r15
 adoxq %rbx, %r8
        adoxq %r10, %r9
        mulxq 40(%rsi), %rax, %rbx
        adcq %rax, %r8
        adcq %rbx, %r9
        adcq %r10, %r10



        movq %r11, %rdx
 shlq $32, %rdx
 addq %r11, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r11, %rbx
 adcq %r11, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r12
 sbbq %rbx, %r13
 sbbq %rbp, %r14
 sbbq $0, %r15
 sbbq $0, %r8
 sbbq $0, %rdx
 addq %rdx, %r9
 adcq $0, %r10



        movq 32(%rcx), %rdx
        xorl %r11d, %r11d
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r15
 adoxq %rbx, %r8
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
        adoxq %r11, %r10
        mulxq 40(%rsi), %rax, %rbx
        adcq %rax, %r9
        adcq %rbx, %r10
        adcq %r11, %r11



        movq %r12, %rdx
 shlq $32, %rdx
 addq %r12, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r12, %rbx
 adcq %r12, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r13
 sbbq %rbx, %r14
 sbbq %rbp, %r15
 sbbq $0, %r8
 sbbq $0, %r9
 sbbq $0, %rdx
 addq %rdx, %r10
 adcq $0, %r11



        movq 40(%rcx), %rdx
        xorl %r12d, %r12d
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r15
 adoxq %rbx, %r8
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
        adoxq %r12, %r11
        mulxq 40(%rsi), %rax, %rbx
        adcq %rax, %r10
        adcq %rbx, %r11
        adcq %r12, %r12



        movq %r13, %rdx
 shlq $32, %rdx
 addq %r13, %rdx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulxq %rax, %rbx, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %r13, %rbx
 adcq %r13, %rax
 adcq %rdx, %rbx
 adcl %ebp, %ebp
 subq %rax, %r14
 sbbq %rbx, %r15
 sbbq %rbp, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 sbbq $0, %rdx
 addq %rdx, %r11
 adcq $0, %r12






        xorl %edx, %edx
        xorl %ebp, %ebp
        xorl %r13d, %r13d

        movq $0xffffffff00000001, %rax
        addq %r14, %rax
        movl $0x00000000ffffffff, %ebx
        adcq %r15, %rbx
        movl $0x0000000000000001, %ecx
        adcq %r8, %rcx
        adcq %r9, %rdx
        adcq %r10, %rbp
        adcq %r11, %r13
        adcq $0, %r12




        cmovnzq %rax, %r14
        cmovnzq %rbx, %r15
        cmovnzq %rcx, %r8
        cmovnzq %rdx, %r9
        cmovnzq %rbp, %r10
        cmovnzq %r13, %r11



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %r8, 16(%rdi)
        movq %r9, 24(%rdi)
        movq %r10, 32(%rdi)
        movq %r11, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_montmul_p384_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_montmul_p384_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S"
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 20 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S" 2


        .globl bignum_montmul_p384_alt
        .hidden bignum_montmul_p384_alt
        .text
# 110 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S"
.Lbignum_montmul_p384_alt_local_target:
bignum_montmul_p384_alt:
# 122 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montmul_p384_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15



        movq %rdx, %rcx





        movq (%rcx), %rbx
        movq (%rsi), %rax
        mulq %rbx
        movq %rax, %r8
        movq %rdx, %r9

        movq 8(%rsi), %rax
        mulq %rbx
        xorl %r10d, %r10d
        addq %rax, %r9
        adcq %rdx, %r10

        movq 16(%rsi), %rax
        mulq %rbx
        xorl %r11d, %r11d
        addq %rax, %r10
        adcq %rdx, %r11

        movq 24(%rsi), %rax
        mulq %rbx
        xorl %r12d, %r12d
        addq %rax, %r11
        adcq %rdx, %r12

        movq 32(%rsi), %rax
        mulq %rbx
        xorl %r13d, %r13d
        addq %rax, %r12
        adcq %rdx, %r13

        movq 40(%rsi), %rax
        mulq %rbx
        xorl %r14d, %r14d
        addq %rax, %r13
        adcq %rdx, %r14

        xorl %r15d, %r15d



        movq %r8, %rbx
 shlq $32, %rbx
 addq %r8, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r8
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r8, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r9
 sbbq %rdx, %r10
 sbbq %rbp, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 sbbq $0, %rbx
 addq %rbx, %r14
 adcq $0, %r15



        movq 8(%rcx), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %r8, %r8
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %r8, %r8
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r8, %r8
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r8, %r8
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r8, %r8
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r8, %r8
        negq %r8



        movq %r9, %rbx
 shlq $32, %rbx
 addq %r9, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r9
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r9, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r10
 sbbq %rdx, %r11
 sbbq %rbp, %r12
 sbbq $0, %r13
 sbbq $0, %r14
 sbbq $0, %rbx
 addq %rbx, %r15
 adcq $0, %r8



        movq 16(%rcx), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %r9, %r9
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r9, %r9
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r9, %r9
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r9, %r9
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r9, %r9
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r9, %r9
        negq %r9



        movq %r10, %rbx
 shlq $32, %rbx
 addq %r10, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r10
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r10, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r11
 sbbq %rdx, %r12
 sbbq %rbp, %r13
 sbbq $0, %r14
 sbbq $0, %r15
 sbbq $0, %rbx
 addq %rbx, %r8
 adcq $0, %r9



        movq 24(%rcx), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r10, %r10
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r10, %r10
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r10, %r10
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r10, %r10
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r10, %r10
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %r10, %r10
        negq %r10



        movq %r11, %rbx
 shlq $32, %rbx
 addq %r11, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r11
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r11, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r12
 sbbq %rdx, %r13
 sbbq %rbp, %r14
 sbbq $0, %r15
 sbbq $0, %r8
 sbbq $0, %rbx
 addq %rbx, %r9
 adcq $0, %r10



        movq 32(%rcx), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r11, %r11
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r11, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r11, %r11
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r11, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r11, %r11
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r11, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r11, %r11
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r11, %rdx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %r11, %r11
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r11, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %r11, %r11
        negq %r11



        movq %r12, %rbx
 shlq $32, %rbx
 addq %r12, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r12
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r12, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r13
 sbbq %rdx, %r14
 sbbq %rbp, %r15
 sbbq $0, %r8
 sbbq $0, %r9
 sbbq $0, %rbx
 addq %rbx, %r10
 adcq $0, %r11



        movq 40(%rcx), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r12, %r12
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r12, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r12, %r12
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r12, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r12, %r12
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r12, %rdx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %r12, %r12
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r12, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %r12, %r12
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r12, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %r12, %r12
        negq %r12



        movq %r13, %rbx
 shlq $32, %rbx
 addq %r13, %rbx
 xorl %ebp, %ebp
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r13
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r13, %rax
 adcq %rbx, %rdx
 adcl %ebp, %ebp
 subq %rax, %r14
 sbbq %rdx, %r15
 sbbq %rbp, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 sbbq $0, %rbx
 addq %rbx, %r11
 adcq $0, %r12






        xorl %edx, %edx
        xorl %ebp, %ebp
        xorl %r13d, %r13d

        movq $0xffffffff00000001, %rax
        addq %r14, %rax
        movl $0x00000000ffffffff, %ebx
        adcq %r15, %rbx
        movl $0x0000000000000001, %ecx
        adcq %r8, %rcx
        adcq %r9, %rdx
        adcq %r10, %rbp
        adcq %r11, %r13
        adcq $0, %r12




        cmovnzq %rax, %r14
        cmovnzq %rbx, %r15
        cmovnzq %rcx, %r8
        cmovnzq %rdx, %r9
        cmovnzq %rbp, %r10
        cmovnzq %r13, %r11



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %r8, 16(%rdi)
        movq %r9, 24(%rdi)
        movq %r10, 32(%rdi)
        movq %r11, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_montsqr_p384.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_montsqr_p384.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S"
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S" 2


        .globl bignum_montsqr_p384
        .hidden bignum_montsqr_p384
        .text
# 85 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S"
.Lbignum_montsqr_p384_local_target:
bignum_montsqr_p384:
# 96 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15




        movq (%rsi), %rdx
        mulxq 8(%rsi), %r9, %r10
        mulxq 24(%rsi), %r11, %r12
        mulxq 40(%rsi), %r13, %r14
        movq 24(%rsi), %rdx
        mulxq 32(%rsi), %r15, %rcx



        xorl %ebp, %ebp




        movq 16(%rsi), %rdx
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        movq 8(%rsi), %rdx
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 40(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        adcxq %rbp, %r15
        adoxq %rbp, %rcx
        adcq %rbp, %rcx




        xorl %ebp, %ebp






        movq 32(%rsi), %rdx
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        movq 16(%rsi), %rdx
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 40(%rsi), %rax, %rdx
        adcxq %rax, %r15
        adoxq %rdx, %rcx




        movq 40(%rsi), %rdx
        mulxq 32(%rsi), %rbx, %rbp
        mulxq 24(%rsi), %rax, %rdx
        adcxq %rax, %rcx
        adoxq %rdx, %rbx
        movl $0, %eax
        adcxq %rax, %rbx
        adoxq %rax, %rbp
        adcq %rax, %rbp



        xorq %rax, %rax






        movq (%rsi), %rdx
        mulxq (%rsi), %r8, %rax
        adcxq %r9, %r9
        adoxq %rax, %r9
        movq 8(%rsi), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %r10, %r10
        adoxq %rax, %r10
        adcxq %r11, %r11
        adoxq %rdx, %r11
        movq 16(%rsi), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %r12, %r12
        adoxq %rax, %r12
        adcxq %r13, %r13
        adoxq %rdx, %r13
        movq 24(%rsi), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %r14, %r14
        adoxq %rax, %r14
        adcxq %r15, %r15
        adoxq %rdx, %r15
        movq 32(%rsi), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %rcx, %rcx
        adoxq %rax, %rcx
        adcxq %rbx, %rbx
        adoxq %rdx, %rbx
        movq 40(%rsi), %rdx
        mulxq %rdx, %rax, %rsi
        adcxq %rbp, %rbp
        adoxq %rax, %rbp
        movl $0, %eax
        adcxq %rax, %rsi
        adoxq %rax, %rsi




        movq %rbx, (%rdi)



        movq %r8, %rdx
 shlq $32, %rdx
 addq %r8, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r8, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r8
 addq %rbx, %rax
 adcq %rdx, %r8
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r9
 sbbq %r8, %r10
 sbbq %rbx, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 movq %rdx, %r8
 sbbq $0, %r8
        movq %r9, %rdx
 shlq $32, %rdx
 addq %r9, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r9, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r9
 addq %rbx, %rax
 adcq %rdx, %r9
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r10
 sbbq %r9, %r11
 sbbq %rbx, %r12
 sbbq $0, %r13
 sbbq $0, %r8
 movq %rdx, %r9
 sbbq $0, %r9
        movq %r10, %rdx
 shlq $32, %rdx
 addq %r10, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r10, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r10
 addq %rbx, %rax
 adcq %rdx, %r10
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r11
 sbbq %r10, %r12
 sbbq %rbx, %r13
 sbbq $0, %r8
 sbbq $0, %r9
 movq %rdx, %r10
 sbbq $0, %r10
        movq %r11, %rdx
 shlq $32, %rdx
 addq %r11, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r11, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r11
 addq %rbx, %rax
 adcq %rdx, %r11
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r12
 sbbq %r11, %r13
 sbbq %rbx, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 movq %rdx, %r11
 sbbq $0, %r11
        movq %r12, %rdx
 shlq $32, %rdx
 addq %r12, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r12, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r12
 addq %rbx, %rax
 adcq %rdx, %r12
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r13
 sbbq %r12, %r8
 sbbq %rbx, %r9
 sbbq $0, %r10
 sbbq $0, %r11
 movq %rdx, %r12
 sbbq $0, %r12
        movq %r13, %rdx
 shlq $32, %rdx
 addq %r13, %rdx
 movq $0xffffffff00000001, %rax
 mulxq %rax, %r13, %rax
 movl $0x00000000ffffffff, %ebx
 mulxq %rbx, %rbx, %r13
 addq %rbx, %rax
 adcq %rdx, %r13
 movl $0, %ebx
 adcq %rbx, %rbx
 subq %rax, %r8
 sbbq %r13, %r9
 sbbq %rbx, %r10
 sbbq $0, %r11
 sbbq $0, %r12
 movq %rdx, %r13
 sbbq $0, %r13



        movq (%rdi), %rbx

        addq %r8, %r14
        adcq %r9, %r15
        adcq %r10, %rcx
        adcq %r11, %rbx
        adcq %r12, %rbp
        adcq %r13, %rsi
        movl $0, %r8d
        adcq %r8, %r8






        xorq %r11, %r11
        xorq %r12, %r12
        xorq %r13, %r13
        movq $0xffffffff00000001, %rax
        addq %r14, %rax
        movl $0x00000000ffffffff, %r9d
        adcq %r15, %r9
        movl $0x0000000000000001, %r10d
        adcq %rcx, %r10
        adcq %rbx, %r11
        adcq %rbp, %r12
        adcq %rsi, %r13
        adcq $0, %r8




        cmovnzq %rax, %r14
        cmovnzq %r9, %r15
        cmovnzq %r10, %rcx
        cmovnzq %r11, %rbx
        cmovnzq %r12, %rbp
        cmovnzq %r13, %rsi



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %rcx, 16(%rdi)
        movq %rbx, 24(%rdi)
        movq %rbp, 32(%rdi)
        movq %rsi, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx




        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_montsqr_p384_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_montsqr_p384_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S" 2


        .globl bignum_montsqr_p384_alt
        .hidden bignum_montsqr_p384_alt
        .text
# 107 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
.Lbignum_montsqr_p384_alt_local_target:
bignum_montsqr_p384_alt:
# 118 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15




        movq (%rsi), %rbx
        movq 8(%rsi), %rax
        mulq %rbx
        movq %rax, %r9
        movq %rdx, %r10

        movq 24(%rsi), %rax
        mulq %rbx
        movq %rax, %r11
        movq %rdx, %r12

        movq 40(%rsi), %rax
        mulq %rbx
        movq %rax, %r13
        movq %rdx, %r14

        movq 24(%rsi), %rax
        mulq 32(%rsi)
        movq %rax, %r15
        movq %rdx, %rcx




        movq 16(%rsi), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rbp, %rbp
        movq 8(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %rbp, %rbp
        movq 8(%rsi), %rbx
        movq 24(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %rbp, %rbp
        movq 32(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %rbp, %rbp
        movq 40(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
        adcq $0, %rcx






        movq 32(%rsi), %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %rbp, %rbp
        movq 16(%rsi), %rbx
        movq 24(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %rbp, %rbp
        movq 32(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %rbp, %rbp
        movq 40(%rsi), %rax
 mulq %rbx
 subq %rbp, %rdx
 addq %rax, %r15
 adcq %rdx, %rcx
 sbbq %rbp, %rbp

        xorl %ebx, %ebx
        movq 24(%rsi), %rax
        mulq 40(%rsi)
        subq %rbp, %rdx
        xorl %ebp, %ebp
        addq %rax, %rcx
        adcq %rdx, %rbx
        adcl %ebp, %ebp
        movq 32(%rsi), %rax
        mulq 40(%rsi)
        addq %rax, %rbx
        adcq %rdx, %rbp



        xorl %r8d, %r8d
        addq %r9, %r9
        adcq %r10, %r10
        adcq %r11, %r11
        adcq %r12, %r12
        adcq %r13, %r13
        adcq %r14, %r14
        adcq %r15, %r15
        adcq %rcx, %rcx
        adcq %rbx, %rbx
        adcq %rbp, %rbp
        adcl %r8d, %r8d
# 208 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_montsqr_p384_alt.S"
        movq (%rsi), %rax
        mulq %rax
        movq %r8, (%rdi)
        movq %rax, %r8
        movq 8(%rsi), %rax
        movq %rbp, 8(%rdi)
        addq %rdx, %r9
        sbbq %rbp, %rbp

        mulq %rax
        negq %rbp
        adcq %rax, %r10
        adcq %rdx, %r11
        sbbq %rbp, %rbp

        movq 16(%rsi), %rax
        mulq %rax
        negq %rbp
        adcq %rax, %r12
        adcq %rdx, %r13
        sbbq %rbp, %rbp

        movq 24(%rsi), %rax
        mulq %rax
        negq %rbp
        adcq %rax, %r14
        adcq %rdx, %r15
        sbbq %rbp, %rbp

        movq 32(%rsi), %rax
        mulq %rax
        negq %rbp
        adcq %rax, %rcx
        adcq %rdx, %rbx
        sbbq %rbp, %rbp

        movq 40(%rsi), %rax
        mulq %rax
        negq %rbp
        adcq 8(%rdi), %rax
        adcq (%rdi), %rdx
        movq %rax, %rbp
        movq %rdx, %rsi





        movq %rbx, (%rdi)



        movq %r8, %rbx
 shlq $32, %rbx
 addq %r8, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r8
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r8
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r8, %r9
 sbbq %rdx, %r10
 sbbq %rax, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 movq %rbx, %r8
 sbbq $0, %r8
        movq %r9, %rbx
 shlq $32, %rbx
 addq %r9, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r9
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r9
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r9, %r10
 sbbq %rdx, %r11
 sbbq %rax, %r12
 sbbq $0, %r13
 sbbq $0, %r8
 movq %rbx, %r9
 sbbq $0, %r9
        movq %r10, %rbx
 shlq $32, %rbx
 addq %r10, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r10
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r10
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r10, %r11
 sbbq %rdx, %r12
 sbbq %rax, %r13
 sbbq $0, %r8
 sbbq $0, %r9
 movq %rbx, %r10
 sbbq $0, %r10
        movq %r11, %rbx
 shlq $32, %rbx
 addq %r11, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r11
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r11
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r11, %r12
 sbbq %rdx, %r13
 sbbq %rax, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 movq %rbx, %r11
 sbbq $0, %r11
        movq %r12, %rbx
 shlq $32, %rbx
 addq %r12, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r12
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r12
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r12, %r13
 sbbq %rdx, %r8
 sbbq %rax, %r9
 sbbq $0, %r10
 sbbq $0, %r11
 movq %rbx, %r12
 sbbq $0, %r12
        movq %r13, %rbx
 shlq $32, %rbx
 addq %r13, %rbx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r13
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %rax, %r13
 movl $0, %eax
 adcq %rbx, %rdx
 adcl %eax, %eax
 subq %r13, %r8
 sbbq %rdx, %r9
 sbbq %rax, %r10
 sbbq $0, %r11
 sbbq $0, %r12
 movq %rbx, %r13
 sbbq $0, %r13



        movq (%rdi), %rbx

        addq %r8, %r14
        adcq %r9, %r15
        adcq %r10, %rcx
        adcq %r11, %rbx
        adcq %r12, %rbp
        adcq %r13, %rsi
        movl $0, %r8d
        adcq %r8, %r8






        xorq %r11, %r11
        xorq %r12, %r12
        xorq %r13, %r13
        movq $0xffffffff00000001, %rax
        addq %r14, %rax
        movl $0x00000000ffffffff, %r9d
        adcq %r15, %r9
        movl $0x0000000000000001, %r10d
        adcq %rcx, %r10
        adcq %rbx, %r11
        adcq %rbp, %r12
        adcq %rsi, %r13
        adcq $0, %r8




        cmovnzq %rax, %r14
        cmovnzq %r9, %r15
        cmovnzq %r10, %rcx
        cmovnzq %r11, %rbx
        cmovnzq %r12, %rbp
        cmovnzq %r13, %rsi



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %rcx, 16(%rdi)
        movq %rbx, 24(%rdi)
        movq %rbp, 32(%rdi)
        movq %rsi, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx




        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_nonzero_6.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_nonzero_6.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S"
# 14 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S" 2


        .globl bignum_nonzero_6
        .hidden bignum_nonzero_6
        .text
# 28 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S"
.Lbignum_nonzero_6_local_target:
bignum_nonzero_6:
# 38 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_nonzero_6.S"
        movq (%rdi), %rax
        movq 8(%rdi), %rdx
        orq 16(%rdi), %rax
        orq 24(%rdi), %rdx
        orq 32(%rdi), %rax
        orq 40(%rdi), %rdx
        orq %rdx, %rax



        movl $1, %edx
        cmovnzq %rdx, %rax





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_littleendian_6.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_littleendian_6.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S"
# 26 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 27 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S" 2


        .globl bignum_littleendian_6
        .hidden bignum_littleendian_6
        .globl bignum_fromlebytes_6
        .hidden bignum_fromlebytes_6
        .globl bignum_tolebytes_6
        .hidden bignum_tolebytes_6

        .text





.Lbignum_littleendian_6_local_target:
bignum_littleendian_6:
.Lbignum_fromlebytes_6_local_target:
bignum_fromlebytes_6:
.Lbignum_tolebytes_6_local_target:
bignum_tolebytes_6:
# 53 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_littleendian_6.S"
        movq (%rsi), %rax
        movq %rax, (%rdi)

        movq 8(%rsi), %rax
        movq %rax, 8(%rdi)

        movq 16(%rsi), %rax
        movq %rax, 16(%rdi)

        movq 24(%rsi), %rax
        movq %rax, 24(%rdi)

        movq 32(%rsi), %rax
        movq %rax, 32(%rdi)

        movq 40(%rsi), %rax
        movq %rax, 40(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_add_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_add_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S" 2


        .globl bignum_add_p521
        .hidden bignum_add_p521
        .text
# 42 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S"
.Lbignum_add_p521_local_target:
bignum_add_p521:
# 54 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_add_p521.S"
        pushq %rbx
        pushq %r12




        stc
        movq (%rsi), %rax
        adcq (%rdx), %rax
        movq 8(%rsi), %rcx
        adcq 8(%rdx), %rcx
        movq 16(%rsi), %r8
        adcq 16(%rdx), %r8
        movq 24(%rsi), %r9
        adcq 24(%rdx), %r9
        movq 32(%rsi), %r10
        adcq 32(%rdx), %r10
        movq 40(%rsi), %r11
        adcq 40(%rdx), %r11
        movq 48(%rsi), %r12
        adcq 48(%rdx), %r12
        movq 56(%rsi), %rbx
        adcq 56(%rdx), %rbx
        movq 64(%rsi), %rsi
        adcq 64(%rdx), %rsi




        movq $512, %rdx
        andq %rsi, %rdx






        cmpq $512, %rdx

        sbbq $0, %rax
        movq %rax, (%rdi)
        sbbq $0, %rcx
        movq %rcx, 8(%rdi)
        sbbq $0, %r8
        movq %r8, 16(%rdi)
        sbbq $0, %r9
        movq %r9, 24(%rdi)
        sbbq $0, %r10
        movq %r10, 32(%rdi)
        sbbq $0, %r11
        movq %r11, 40(%rdi)
        sbbq $0, %r12
        movq %r12, 48(%rdi)
        sbbq $0, %rbx
        movq %rbx, 56(%rdi)
        sbbq %rdx, %rsi
        movq %rsi, 64(%rdi)



        popq %r12
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_sub_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_sub_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S" 2


        .globl bignum_sub_p521
        .hidden bignum_sub_p521
        .text
# 41 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S"
.Lbignum_sub_p521_local_target:
bignum_sub_p521:
# 53 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sub_p521.S"
        pushq %rbx
        pushq %r12



        movq (%rsi), %rax
        subq (%rdx), %rax
        movq 8(%rsi), %rcx
        sbbq 8(%rdx), %rcx
        movq 16(%rsi), %r8
        sbbq 16(%rdx), %r8
        movq 24(%rsi), %r9
        sbbq 24(%rdx), %r9
        movq 32(%rsi), %r10
        sbbq 32(%rdx), %r10
        movq 40(%rsi), %r11
        sbbq 40(%rdx), %r11
        movq 48(%rsi), %r12
        sbbq 48(%rdx), %r12
        movq 56(%rsi), %rbx
        sbbq 56(%rdx), %rbx
        movq 64(%rsi), %rsi
        sbbq 64(%rdx), %rsi






        sbbq $0, %rax
        movq %rax, (%rdi)
        sbbq $0, %rcx
        movq %rcx, 8(%rdi)
        sbbq $0, %r8
        movq %r8, 16(%rdi)
        sbbq $0, %r9
        movq %r9, 24(%rdi)
        sbbq $0, %r10
        movq %r10, 32(%rdi)
        sbbq $0, %r11
        movq %r11, 40(%rdi)
        sbbq $0, %r12
        movq %r12, 48(%rdi)
        sbbq $0, %rbx
        movq %rbx, 56(%rdi)
        sbbq $0, %rsi
        andq $0x1FF, %rsi
        movq %rsi, 64(%rdi)



        popq %r12
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_neg_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_neg_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S"
# 14 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S" 2


        .globl bignum_neg_p521
        .hidden bignum_neg_p521
        .text
# 32 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S"
.Lbignum_neg_p521_local_target:
bignum_neg_p521:
# 43 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_neg_p521.S"
        movq (%rsi), %rcx
        movq %rcx, %rax
        movq 8(%rsi), %rdx
        orq %rdx, %rax
        movq 16(%rsi), %r8
        orq %r8, %rax
        movq 24(%rsi), %r9
        orq %r9, %rax
        movq 32(%rsi), %r10
        orq %r10, %rax
        movq 40(%rsi), %r11
        orq %r11, %rax
        orq 48(%rsi), %rax
        orq 56(%rsi), %rax
        orq 64(%rsi), %rax




        negq %rax
        sbbq %rax, %rax




        xorq %rax, %rcx
        movq %rcx, (%rdi)
        xorq %rax, %rdx
        movq %rdx, 8(%rdi)
        xorq %rax, %r8
        movq %r8, 16(%rdi)
        xorq %rax, %r9
        movq %r9, 24(%rdi)
        xorq %rax, %r10
        movq %r10, 32(%rdi)
        xorq %rax, %r11
        movq %r11, 40(%rdi)
        movq 48(%rsi), %rcx
        xorq %rax, %rcx
        movq %rcx, 48(%rdi)
        movq 56(%rsi), %rdx
        xorq %rax, %rdx
        movq %rdx, 56(%rdi)
        movq 64(%rsi), %r8
        andq $0x1FF, %rax
        xorq %rax, %r8
        movq %r8, 64(%rdi)







        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_mul_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_mul_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S" 2


        .globl bignum_mul_p521
        .hidden bignum_mul_p521
        .text
# 38 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S"
.Lbignum_mul_p521_local_target:
bignum_mul_p521:
# 50 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521.S"
        pushq %rbp
        pushq %rbx
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $64, %rsp



        movq %rdx, %rcx




        xorl %ebp, %ebp
        movq (%rcx), %rdx
        mulxq (%rsi), %r8, %r9
        movq %r8, (%rsp)
        mulxq 0x8(%rsi), %rbx, %r10
        adcq %rbx, %r9
        mulxq 0x10(%rsi), %rbx, %r11
        adcq %rbx, %r10
        mulxq 0x18(%rsi), %rbx, %r12
        adcq %rbx, %r11
        mulxq 0x20(%rsi), %rbx, %r13
        adcq %rbx, %r12
        mulxq 0x28(%rsi), %rbx, %r14
        adcq %rbx, %r13
        mulxq 0x30(%rsi), %rbx, %r15
        adcq %rbx, %r14
        mulxq 0x38(%rsi), %rbx, %r8
        adcq %rbx, %r15
        adcq %rbp, %r8
        movq 0x8(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        movq %r9, 0x8(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x38(%rsi), %rax, %r9
        adcxq %rax, %r8
        adoxq %rbp, %r9
        adcq %rbp, %r9
        movq 0x10(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        movq %r10, 0x10(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x38(%rsi), %rax, %r10
        adcxq %rax, %r9
        adoxq %rbp, %r10
        adcq %rbp, %r10
        movq 0x18(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        movq %r11, 0x18(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x38(%rsi), %rax, %r11
        adcxq %rax, %r10
        adoxq %rbp, %r11
        adcq %rbp, %r11
        movq 0x20(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        movq %r12, 0x20(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x38(%rsi), %rax, %r12
        adcxq %rax, %r11
        adoxq %rbp, %r12
        adcq %rbp, %r12
        movq 0x28(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        movq %r13, 0x28(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x38(%rsi), %rax, %r13
        adcxq %rax, %r12
        adoxq %rbp, %r13
        adcq %rbp, %r13
        movq 0x30(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r14
        adoxq %rbx, %r15
        movq %r14, 0x30(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x38(%rsi), %rax, %r14
        adcxq %rax, %r13
        adoxq %rbp, %r14
        adcq %rbp, %r14
        movq 0x38(%rcx), %rdx
        xorl %ebp, %ebp
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %r8
        movq %r15, 0x38(%rsp)
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x18(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x20(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x28(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x30(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x38(%rsi), %rax, %r15
        adcxq %rax, %r14
        adoxq %rbp, %r15
        adcq %rbp, %r15



        movq 64(%rsi), %rdx
        xorl %ebp, %ebp
        mulxq (%rcx), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
        mulxq 8(%rcx), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
        mulxq 16(%rcx), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
        mulxq 24(%rcx), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        mulxq 32(%rcx), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 40(%rcx), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 48(%rcx), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 56(%rcx), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbp, %rbx
        adcq %rbx, %rbp



        movq 64(%rcx), %rdx
        xorl %eax, %eax
        mulxq (%rsi), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
        mulxq 8(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
        mulxq 16(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
        mulxq 24(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
        mulxq 32(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
        mulxq 40(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
        mulxq 48(%rsi), %rax, %rbx
 adcxq %rax, %r14
 adoxq %rbx, %r15
        mulxq 56(%rsi), %rax, %rbx
        adcxq %rax, %r15
        adoxq %rbx, %rbp
        mulxq 64(%rsi), %rax, %rbx
        adcq %rax, %rbp




        movq %r8, %rax
        andq $0x1FF, %rax
        shrdq $9, %r9, %r8
        shrdq $9, %r10, %r9
        shrdq $9, %r11, %r10
        shrdq $9, %r12, %r11
        shrdq $9, %r13, %r12
        shrdq $9, %r14, %r13
        shrdq $9, %r15, %r14
        shrdq $9, %rbp, %r15
        shrq $9, %rbp
        addq %rax, %rbp




        stc
        adcq (%rsp), %r8
        adcq 8(%rsp), %r9
        adcq 16(%rsp), %r10
        adcq 24(%rsp), %r11
        adcq 32(%rsp), %r12
        adcq 40(%rsp), %r13
        adcq 48(%rsp), %r14
        adcq 56(%rsp), %r15
        adcq $~0x1FF, %rbp







        cmc
        sbbq $0, %r8
        movq %r8, (%rdi)
        sbbq $0, %r9
        movq %r9, 8(%rdi)
        sbbq $0, %r10
        movq %r10, 16(%rdi)
        sbbq $0, %r11
        movq %r11, 24(%rdi)
        sbbq $0, %r12
        movq %r12, 32(%rdi)
        sbbq $0, %r13
        movq %r13, 40(%rdi)
        sbbq $0, %r14
        movq %r14, 48(%rdi)
        sbbq $0, %r15
        movq %r15, 56(%rdi)
        sbbq $0, %rbp
        andq $0x1FF, %rbp
        movq %rbp, 64(%rdi)



        addq $64, %rsp
        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbx
        popq %rbp





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_mul_p521_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_mul_p521_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S" 2


        .globl bignum_mul_p521_alt
        .hidden bignum_mul_p521_alt
        .text
# 55 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S"
.Lbignum_mul_p521_alt_local_target:
bignum_mul_p521_alt:
# 67 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_mul_p521_alt.S"
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $72, %rsp



        movq %rdx, %rcx





        movq (%rsi), %rax
        mulq (%rcx)

        movq %rax, (%rsp)
        movq %rdx, %r9
        xorq %r10, %r10



        xorq %r11, %r11
        movq (%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
        movq 8(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq %r11, %r11
        movq %r9, 8(%rsp)



        xorq %r12, %r12
        movq (%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
        movq 8(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 16(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq %r10, 16(%rsp)



        xorq %r13, %r13
        movq (%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
        movq 8(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 16(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 24(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq %r11, 24(%rsp)



        xorq %r14, %r14
        movq (%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
        movq 8(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 16(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 24(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 32(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq %r12, 32(%rsp)



        xorq %r15, %r15
        movq (%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
        movq 8(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 16(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 24(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 32(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 40(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq %r13, 40(%rsp)



        xorq %r8, %r8
        movq (%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq %r8, %r8
        movq 8(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 16(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 24(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 32(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 40(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 48(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq %r14, 48(%rsp)



        xorq %r9, %r9
        movq (%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq %r9, %r9
        movq 8(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 16(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 24(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 32(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 40(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 48(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq 56(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
 adcq $0, %r9
        movq %r15, 56(%rsp)



        xorq %r10, %r10
        movq (%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq %r10, %r10
        movq 8(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 16(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 24(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 32(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 40(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 48(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 56(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq 64(%rsi), %rax
 mulq (%rcx)
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq %r8, 64(%rsp)




        xorq %r11, %r11
        movq 8(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq %r11, %r11
        movq 16(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 24(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 32(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 40(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 48(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 56(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq 64(%rsi), %rax
 mulq 8(%rcx)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11



        xorq %r12, %r12
        movq 16(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
        movq 24(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 32(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 40(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 48(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 56(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq 64(%rsi), %rax
 mulq 16(%rcx)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12



        xorq %r13, %r13
        movq 24(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
        movq 32(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 40(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 48(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 56(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13
        movq 64(%rsi), %rax
 mulq 24(%rcx)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0, %r13



        xorq %r14, %r14
        movq 32(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
        movq 40(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 48(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 56(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq 64(%rsi), %rax
 mulq 32(%rcx)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14



        xorq %r15, %r15
        movq 40(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
        movq 48(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 56(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15
        movq 64(%rsi), %rax
 mulq 40(%rcx)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0, %r15



        xorq %r8, %r8
        movq 48(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq %r8, %r8
        movq 56(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 64(%rsi), %rax
 mulq 48(%rcx)
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8



        movq 56(%rsi), %rax
 mulq 64(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8
        movq 64(%rsi), %rax
 mulq 56(%rcx)
 addq %rax, %r15
 adcq %rdx, %r8



        movq 64(%rsi), %rax
        imulq 64(%rcx), %rax
        addq %r8, %rax





        movq 64(%rsp), %r8
        movq %r8, %rdx
        andq $0x1FF, %rdx
        shrdq $9, %r9, %r8
        shrdq $9, %r10, %r9
        shrdq $9, %r11, %r10
        shrdq $9, %r12, %r11
        shrdq $9, %r13, %r12
        shrdq $9, %r14, %r13
        shrdq $9, %r15, %r14
        shrdq $9, %rax, %r15
        shrq $9, %rax
        addq %rax, %rdx




        stc
        adcq (%rsp), %r8
        adcq 8(%rsp), %r9
        adcq 16(%rsp), %r10
        adcq 24(%rsp), %r11
        adcq 32(%rsp), %r12
        adcq 40(%rsp), %r13
        adcq 48(%rsp), %r14
        adcq 56(%rsp), %r15
        adcq $~0x1FF, %rdx







        cmc
        sbbq $0, %r8
        movq %r8, (%rdi)
        sbbq $0, %r9
        movq %r9, 8(%rdi)
        sbbq $0, %r10
        movq %r10, 16(%rdi)
        sbbq $0, %r11
        movq %r11, 24(%rdi)
        sbbq $0, %r12
        movq %r12, 32(%rdi)
        sbbq $0, %r13
        movq %r13, 40(%rdi)
        sbbq $0, %r14
        movq %r14, 48(%rdi)
        sbbq $0, %r15
        movq %r15, 56(%rdi)
        sbbq $0, %rdx
        andq $0x1FF, %rdx
        movq %rdx, 64(%rdi)



        addq $72, %rsp
        popq %r15
        popq %r14
        popq %r13
        popq %r12




        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_sqr_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_sqr_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S"
# 14 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S" 2


        .globl bignum_sqr_p521
        .hidden bignum_sqr_p521
        .text
# 48 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S"
.Lbignum_sqr_p521_local_target:
bignum_sqr_p521:
# 59 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521.S"
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $64, %rsp





        xorl %ebp, %ebp

        movq (%rsi), %rdx
        mulxq 8(%rsi), %r9, %rax
        movq %r9, 8(%rsp)
        mulxq 16(%rsi), %r10, %rcx
        adcxq %rax, %r10
        movq %r10, 16(%rsp)
        mulxq 24(%rsi), %r11, %rax
        adcxq %rcx, %r11
        mulxq 32(%rsi), %r12, %rcx
        adcxq %rax, %r12
        mulxq 40(%rsi), %r13, %rax
        adcxq %rcx, %r13
        mulxq 48(%rsi), %r14, %rcx
        adcxq %rax, %r14
        mulxq 56(%rsi), %r15, %r8
        adcxq %rcx, %r15
        adcxq %rbp, %r8

        xorl %ebp, %ebp
        movq 8(%rsi), %rdx
        mulxq 16(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        movq %r11, 24(%rsp)
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
        movq %r12, 32(%rsp)
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        mulxq 48(%rsi), %rax, %rcx
 adcxq %rax, %r15
 adoxq %rcx, %r8
        mulxq 56(%rsi), %rax, %r9
 adcxq %rax, %r8
 adoxq %rbp, %r9
        movq 32(%rsi), %rdx
        mulxq 40(%rsi), %rax, %r10
 adcxq %rax, %r9
 adoxq %rbp, %r10
        adcxq %rbp, %r10

        xorl %ebp, %ebp
        movq 16(%rsi), %rdx
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        movq %r13, 40(%rsp)
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        movq %r14, 48(%rsp)
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r15
 adoxq %rcx, %r8
        mulxq 48(%rsi), %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
        mulxq 56(%rsi), %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
        movq 48(%rsi), %rdx
        mulxq 32(%rsi), %rax, %r11
 adcxq %rax, %r10
 adoxq %rbp, %r11
        mulxq 40(%rsi), %rax, %r12
 adcxq %rax, %r11
 adoxq %rbp, %r12
        adcxq %rbp, %r12

        xorl %ebp, %ebp
        movq 24(%rsi), %rdx
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r15
 adoxq %rcx, %r8
        movq %r15, 56(%rsp)
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
        mulxq 48(%rsi), %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
        mulxq 56(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
        movq 56(%rsi), %rdx
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        mulxq 40(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rbp, %r13
        mulxq 48(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rbp, %r14
        adcxq %rbp, %r14

        xorl %ebp, %ebp
        movq (%rsi), %rdx
        mulxq %rdx, %rax, %rcx
        movq %rax, (%rsp)
        movq 8(%rsp), %rax
        adcxq %rax, %rax
        adoxq %rcx, %rax
        movq %rax, 8(%rsp)

        movq 16(%rsp), %rax
        movq 8(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %rax, %rax
        adoxq %rdx, %rax
        movq %rax, 16(%rsp)
        movq 24(%rsp), %rax
        adcxq %rax, %rax
        adoxq %rcx, %rax
        movq %rax, 24(%rsp)

        movq 32(%rsp), %rax
        movq 16(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %rax, %rax
        adoxq %rdx, %rax
        movq %rax, 32(%rsp)
        movq 40(%rsp), %rax
        adcxq %rax, %rax
        adoxq %rcx, %rax
        movq %rax, 40(%rsp)

        movq 48(%rsp), %rax
        movq 24(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %rax, %rax
        adoxq %rdx, %rax
        movq %rax, 48(%rsp)
        movq 56(%rsp), %rax
        adcxq %rax, %rax
        adoxq %rcx, %rax
        movq %rax, 56(%rsp)

        movq 32(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %r8, %r8
        adoxq %rdx, %r8
        adcxq %r9, %r9
        adoxq %rcx, %r9

        movq 40(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %r10, %r10
        adoxq %rdx, %r10
        adcxq %r11, %r11
        adoxq %rcx, %r11

        movq 48(%rsi), %rdx
        mulxq %rdx, %rdx, %rcx
        adcxq %r12, %r12
        adoxq %rdx, %r12
        adcxq %r13, %r13
        adoxq %rcx, %r13

        movq 56(%rsi), %rdx
        mulxq %rdx, %rdx, %r15
        adcxq %r14, %r14
        adoxq %rdx, %r14
        adcxq %rbp, %r15
        adoxq %rbp, %r15







        movq 64(%rsi), %rdx
        movq %rdx, %rbp
        imulq %rbp, %rbp
        addq %rdx, %rdx
        mulxq 0(%rsi), %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
        mulxq 8(%rsi), %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
        mulxq 16(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
        mulxq 24(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
        mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
        mulxq 40(%rsi), %rax, %rcx
 adcxq %rax, %r13
 adoxq %rcx, %r14
        mulxq 48(%rsi), %rax, %rcx
 adcxq %rax, %r14
 adoxq %rcx, %r15
        mulxq 56(%rsi), %rax, %rcx
        adcxq %rax, %r15
        adoxq %rcx, %rbp
        adcq $0, %rbp




        movq %r8, %rax
        andq $0x1FF, %rax
        shrdq $9, %r9, %r8
        shrdq $9, %r10, %r9
        shrdq $9, %r11, %r10
        shrdq $9, %r12, %r11
        shrdq $9, %r13, %r12
        shrdq $9, %r14, %r13
        shrdq $9, %r15, %r14
        shrdq $9, %rbp, %r15
        shrq $9, %rbp
        addq %rax, %rbp




        stc
        adcq (%rsp), %r8
        adcq 8(%rsp), %r9
        adcq 16(%rsp), %r10
        adcq 24(%rsp), %r11
        adcq 32(%rsp), %r12
        adcq 40(%rsp), %r13
        adcq 48(%rsp), %r14
        adcq 56(%rsp), %r15
        adcq $~0x1FF, %rbp







        cmc
        sbbq $0, %r8
        movq %r8, (%rdi)
        sbbq $0, %r9
        movq %r9, 8(%rdi)
        sbbq $0, %r10
        movq %r10, 16(%rdi)
        sbbq $0, %r11
        movq %r11, 24(%rdi)
        sbbq $0, %r12
        movq %r12, 32(%rdi)
        sbbq $0, %r13
        movq %r13, 40(%rdi)
        sbbq $0, %r14
        movq %r14, 48(%rdi)
        sbbq $0, %r15
        movq %r15, 56(%rdi)
        sbbq $0, %rbp
        andq $0x1FF, %rbp
        movq %rbp, 64(%rdi)



        addq $64, %rsp
        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_sqr_p521_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_sqr_p521_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S"
# 14 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S" 2


        .globl bignum_sqr_p521_alt
        .hidden bignum_sqr_p521_alt
        .text
# 83 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S"
.Lbignum_sqr_p521_alt_local_target:
bignum_sqr_p521_alt:
# 94 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_sqr_p521_alt.S"
        pushq %rbx
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $72, %rsp





        movq (%rsi), %rax
        mulq %rax

        movq %rax, (%rsp)
        movq %rdx, %r9
        xorq %r10, %r10



        xorq %r11, %r11
        movq (%rsi), %rax
 mulq 8(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0, %r11
        movq %r9, 8(%rsp)



        xorq %r12, %r12
        movq 8(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq (%rsi), %rax
 mulq 16(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12
        movq %r10, 16(%rsp)



        movq (%rsi), %rax
 mulq 24(%rsi)
 xorq %r13, %r13
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 16(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r13
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r13, %r13
 addq %rbx, %r11
 adcq %rcx, %r12
 adcq $0, %r13
        movq %r11, 24(%rsp)



        movq (%rsi), %rax
 mulq 32(%rsi)
 xorq %r14, %r14
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 24(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r14
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r14, %r14
 addq %rbx, %r12
 adcq %rcx, %r13
 adcq $0, %r14
        movq 16(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14
        movq %r12, 32(%rsp)



        movq (%rsi), %rax
 mulq 40(%rsi)
 xorq %r15, %r15
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 32(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r15
        movq 16(%rsi), %rax
 mulq 24(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r15
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r15, %r15
 addq %rbx, %r13
 adcq %rcx, %r14
 adcq $0, %r15
        movq %r13, 40(%rsp)



        movq (%rsi), %rax
 mulq 48(%rsi)
 xorq %r8, %r8
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 40(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r8
        movq 16(%rsi), %rax
 mulq 32(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r8
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r8, %r8
 addq %rbx, %r14
 adcq %rcx, %r15
 adcq $0, %r8
        movq 24(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq %r14, 48(%rsp)



        movq (%rsi), %rax
 mulq 56(%rsi)
 xorq %r9, %r9
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 48(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r9
        movq 16(%rsi), %rax
 mulq 40(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r9
        movq 24(%rsi), %rax
 mulq 32(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r9
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r9, %r9
 addq %rbx, %r15
 adcq %rcx, %r8
 adcq $0, %r9
        movq %r15, 56(%rsp)



        movq (%rsi), %rax
 mulq 64(%rsi)
 xorq %r10, %r10
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 8(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r10
        movq 16(%rsi), %rax
 mulq 48(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r10
        movq 24(%rsi), %rax
 mulq 40(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r10
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r10, %r10
 addq %rbx, %r8
 adcq %rcx, %r9
 adcq $0, %r10
        movq 32(%rsi), %rax
 mulq %rax
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0, %r10
        movq %r8, 64(%rsp)




        movq 8(%rsi), %rax
 mulq 64(%rsi)
 xorq %r11, %r11
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 16(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r11
        movq 24(%rsi), %rax
 mulq 48(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r11
        movq 32(%rsi), %rax
 mulq 40(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r11
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r11, %r11
 addq %rbx, %r9
 adcq %rcx, %r10
 adcq $0, %r11



        movq 16(%rsi), %rax
 mulq 64(%rsi)
 xorq %r12, %r12
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 24(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r12
        movq 32(%rsi), %rax
 mulq 48(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r12
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r12, %r12
 addq %rbx, %r10
 adcq %rcx, %r11
 adcq $0, %r12
        movq 40(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0, %r12



        movq 24(%rsi), %rax
 mulq 64(%rsi)
 xorq %r13, %r13
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 32(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r13
        movq 40(%rsi), %rax
 mulq 48(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r13
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r13, %r13
 addq %rbx, %r11
 adcq %rcx, %r12
 adcq $0, %r13



        movq 32(%rsi), %rax
 mulq 64(%rsi)
 xorq %r14, %r14
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 40(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r14
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r14, %r14
 addq %rbx, %r12
 adcq %rcx, %r13
 adcq $0, %r14
        movq 48(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0, %r14



        movq 40(%rsi), %rax
 mulq 64(%rsi)
 xorq %r15, %r15
 movq %rax, %rbx
 movq %rdx, %rcx
        movq 48(%rsi), %rax
 mulq 56(%rsi)
 addq %rax, %rbx
 adcq %rdx, %rcx
 adcq $0, %r15
        addq %rbx, %rbx
 adcq %rcx, %rcx
 adcq %r15, %r15
 addq %rbx, %r13
 adcq %rcx, %r14
 adcq $0, %r15




        xorq %r8, %r8
        movq 56(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8
        movq 48(%rsi), %rax
 mulq 64(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0, %r8
 addq %rax, %r14
 adcq %rdx, %r15
 adcq $0, %r8



        movq 56(%rsi), %rax
        mulq 64(%rsi)
        addq %rax, %rax
        adcq %rdx, %rdx
        addq %rax, %r15
        adcq %rdx, %r8



        movq 64(%rsi), %rax
        imulq %rax, %rax
        addq %r8, %rax





        movq 64(%rsp), %r8
        movq %r8, %rdx
        andq $0x1FF, %rdx
        shrdq $9, %r9, %r8
        shrdq $9, %r10, %r9
        shrdq $9, %r11, %r10
        shrdq $9, %r12, %r11
        shrdq $9, %r13, %r12
        shrdq $9, %r14, %r13
        shrdq $9, %r15, %r14
        shrdq $9, %rax, %r15
        shrq $9, %rax
        addq %rax, %rdx




        stc
        adcq (%rsp), %r8
        adcq 8(%rsp), %r9
        adcq 16(%rsp), %r10
        adcq 24(%rsp), %r11
        adcq 32(%rsp), %r12
        adcq 40(%rsp), %r13
        adcq 48(%rsp), %r14
        adcq 56(%rsp), %r15
        adcq $~0x1FF, %rdx







        cmc
        sbbq $0, %r8
        movq %r8, (%rdi)
        sbbq $0, %r9
        movq %r9, 8(%rdi)
        sbbq $0, %r10
        movq %r10, 16(%rdi)
        sbbq $0, %r11
        movq %r11, 24(%rdi)
        sbbq $0, %r12
        movq %r12, 32(%rdi)
        sbbq $0, %r13
        movq %r13, 40(%rdi)
        sbbq $0, %r14
        movq %r14, 48(%rdi)
        sbbq $0, %r15
        movq %r15, 56(%rdi)
        sbbq $0, %rdx
        andq $0x1FF, %rdx
        movq %rdx, 64(%rdi)



        addq $72, %rsp
        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbx




        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_tolebytes_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_tolebytes_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S"
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 20 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S" 2


        .globl bignum_tolebytes_p521
        .hidden bignum_tolebytes_p521
        .text





.Lbignum_tolebytes_p521_local_target:
bignum_tolebytes_p521:
# 39 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_tolebytes_p521.S"
        movq (%rsi), %rax
        movq %rax, (%rdi)

        movq 8(%rsi), %rax
        movq %rax, 8(%rdi)

        movq 16(%rsi), %rax
        movq %rax, 16(%rdi)

        movq 24(%rsi), %rax
        movq %rax, 24(%rdi)

        movq 32(%rsi), %rax
        movq %rax, 32(%rdi)

        movq 40(%rsi), %rax
        movq %rax, 40(%rdi)

        movq 48(%rsi), %rax
        movq %rax, 48(%rdi)

        movq 56(%rsi), %rax
        movq %rax, 56(%rdi)

        movq 64(%rsi), %rax
        movw %ax, 64(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p521/bignum_fromlebytes_p521.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p521/bignum_fromlebytes_p521.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S"
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 20 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S" 2


        .globl bignum_fromlebytes_p521
        .hidden bignum_fromlebytes_p521
        .text





.Lbignum_fromlebytes_p521_local_target:
bignum_fromlebytes_p521:
# 39 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p521/bignum_fromlebytes_p521.S"
        movq (%rsi), %rax
        movq %rax, (%rdi)

        movq 8(%rsi), %rax
        movq %rax, 8(%rdi)

        movq 16(%rsi), %rax
        movq %rax, 16(%rdi)

        movq 24(%rsi), %rax
        movq %rax, 24(%rdi)

        movq 32(%rsi), %rax
        movq %rax, 32(%rdi)

        movq 40(%rsi), %rax
        movq %rax, 40(%rdi)

        movq 48(%rsi), %rax
        movq %rax, 48(%rdi)

        movq 56(%rsi), %rax
        movq %rax, 56(%rdi)

        xorl %eax, %eax
        movw 64(%rsi), %ax
        movq %rax, 64(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/bignum_mod_n25519.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/bignum_mod_n25519.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S"
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S" 2


        .globl bignum_mod_n25519
        .hidden bignum_mod_n25519
        .text
# 37 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S"
.Lbignum_mod_n25519_local_target:
bignum_mod_n25519:
# 49 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S"
        pushq %rbx
        pushq %rbp
        pushq %r12



        cmpq $4, %rsi
# WAS jc shortinput
	jc	.Lshortinput_local_target




        subq $4, %rsi
        movq 24(%rdx,%rsi,8), %r11
        movq 16(%rdx,%rsi,8), %r10
        movq 8(%rdx,%rsi,8), %r9
        movq (%rdx,%rsi,8), %r8



        movq %rdx, %rcx




        movq %r11, %rbx
        shrq $60, %rbx

        shlq $4, %r11
        shrq $4, %r11



        movq $0x5812631a5cf5d3ed, %rax
        mulq %rbx
        movq %rax, %rbp
        movq %rdx, %r12

        movq $0x14def9dea2f79cd6, %rax
        mulq %rbx
        addq %rax, %r12
        adcq $0, %rdx



        subq %rbp, %r8
        sbbq %r12, %r9
        sbbq %rdx, %r10
        sbbq $0, %r11





        sbbq %rbx, %rbx

        movq $0x5812631a5cf5d3ed, %rax
        andq %rbx, %rax
        movq $0x14def9dea2f79cd6, %rdx
        andq %rbx, %rdx
        movq $0x1000000000000000, %rbx
        andq %rax, %rbx

        addq %rax, %r8
        adcq %rdx, %r9
        adcq $0, %r10
        adcq %rbx, %r11





        testq %rsi, %rsi
# WAS jz writeback
	jz	.Lwriteback_local_target

.Lloop_local_target:
loop:





        movq %r11, %rbx
        shldq $4, %r10, %rbx
        shrq $60, %r11
        subq %r11, %rbx
        shlq $4, %r10
        shrdq $4, %r11, %r10



        movq $0x5812631a5cf5d3ed, %rax
        mulq %rbx
        movq %rax, %rbp
        movq %rdx, %r11

        movq $0x14def9dea2f79cd6, %rax
        mulq %rbx
        addq %rax, %r11
        adcq $0, %rdx



        movq -8(%rcx,%rsi,8), %r12



        subq %rbp, %r12
        sbbq %r11, %r8
        sbbq %rdx, %r9
        sbbq $0, %r10





        sbbq %rbx, %rbx

        movq $0x5812631a5cf5d3ed, %rax
        andq %rbx, %rax
        movq $0x14def9dea2f79cd6, %rdx
        andq %rbx, %rdx
        movq $0x1000000000000000, %rbx
        andq %rax, %rbx

        addq %rax, %r12
        adcq %rdx, %r8
        adcq $0, %r9
        adcq %rbx, %r10



        movq %r10, %r11
        movq %r9, %r10
        movq %r8, %r9
        movq %r12, %r8

        decq %rsi
# WAS jnz loop
	jnz	.Lloop_local_target



.Lwriteback_local_target:
writeback:

        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)



        popq %r12
        popq %rbp
        popq %rbx




        ret

.Lshortinput_local_target:
shortinput:

        xorq %r8, %r8
        xorq %r9, %r9
        xorq %r10, %r10
        xorq %r11, %r11

        testq %rsi, %rsi
# WAS jz writeback
	jz	.Lwriteback_local_target
        movq (%rdx), %r8
        decq %rsi
# WAS jz writeback
	jz	.Lwriteback_local_target
        movq 8(%rdx), %r9
        decq %rsi
# WAS jz writeback
	jz	.Lwriteback_local_target
        movq 16(%rdx), %r10
# WAS jmp writeback
	jmp	.Lwriteback_local_target


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/bignum_neg_p25519.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/bignum_neg_p25519.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S" 2


        .globl bignum_neg_p25519
        .hidden bignum_neg_p25519
        .text
# 35 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S"
.Lbignum_neg_p25519_local_target:
bignum_neg_p25519:
# 46 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S"
        movq (%rsi), %rax
        movq %rax, %rdx
        movq 8(%rsi), %rcx
        orq %rcx, %rdx
        movq 16(%rsi), %r8
        orq %r8, %rdx
        movq 24(%rsi), %r9
        orq %r9, %rdx




        negq %rdx
        sbbq %rdx, %rdx
        movq $-19, %r10
        andq %rdx, %r10




        subq %rax, %r10
        movq %r10, (%rdi)
        movq %rdx, %r10
        sbbq %rcx, %r10
        movq %r10, 8(%rdi)
        movq %rdx, %r10
        sbbq %r8, %r10
        movq %r10, 16(%rdi)
        sbbq %r9, %rdx
        btr $63, %rdx
        movq %rdx, 24(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/bignum_madd_n25519.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/bignum_madd_n25519.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S"
# 21 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 22 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S" 2


        .globl bignum_madd_n25519
        .hidden bignum_madd_n25519
        .text
# 97 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S"
.Lbignum_madd_n25519_local_target:
bignum_madd_n25519:
# 110 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15







        movq (%rcx), %r8
        movq 8(%rcx), %r9
        movq 16(%rcx), %r10
        movq 24(%rcx), %r11
        movq %rdx, %rcx
        xorl %ebp, %ebp
        movq (%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x18(%rsi), %rax, %r12
        adcxq %rax, %r11
        adoxq %rbp, %r12
        adcxq %rbp, %r12
        xorl %ebp, %ebp
        movq 0x8(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x18(%rsi), %rax, %r13
        adcxq %rax, %r12
        adoxq %rbp, %r13
        adcxq %rbp, %r13
        xorl %ebp, %ebp
        movq 0x10(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x18(%rsi), %rax, %r14
        adcxq %rax, %r13
        adoxq %rbp, %r14
        adcxq %rbp, %r14
        xorl %ebp, %ebp
        movq 0x18(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        mulxq 0x18(%rsi), %rax, %r15
        adcxq %rax, %r14
        adoxq %rbp, %r15
        adcxq %rbp, %r15



        movq %r15, %rbx
 shrq $60, %rbx
 shlq $4, %r15
 shrq $4, %r15
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r12
 sbbq %rcx, %r13
 sbbq %rdx, %r14
 sbbq $0x0, %r15
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 adcq %rbx, %r15
        movq %r15, %rbx
 shldq $0x4, %r14, %rbx
 shrq $0x3c, %r15
 subq %r15, %rbx
 shlq $0x4, %r14
 shrdq $0x4, %r15, %r14
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r11
 sbbq %rcx, %r12
 sbbq %rdx, %r13
 sbbq $0x0, %r14
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 adcq %rbx, %r14
        movq %r14, %rbx
 shldq $0x4, %r13, %rbx
 shrq $0x3c, %r14
 subq %r14, %rbx
 shlq $0x4, %r13
 shrdq $0x4, %r14, %r13
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r10
 sbbq %rcx, %r11
 sbbq %rdx, %r12
 sbbq $0x0, %r13
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 adcq %rbx, %r13
        movq %r13, %rbx
 shldq $0x4, %r12, %rbx
 shrq $0x3c, %r13
 subq %r13, %rbx
 shlq $0x4, %r12
 shrdq $0x4, %r13, %r12
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r9
 sbbq %rcx, %r10
 sbbq %rdx, %r11
 sbbq $0x0, %r12
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 adcq %rbx, %r12
        movq %r12, %rbx
 shldq $0x4, %r11, %rbx
 shrq $0x3c, %r12
 subq %r12, %rbx
 shlq $0x4, %r11
 shrdq $0x4, %r12, %r11
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r8
 sbbq %rcx, %r9
 sbbq %rdx, %r10
 sbbq $0x0, %r11
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0x0, %r10
 adcq %rbx, %r11

        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/bignum_madd_n25519_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/bignum_madd_n25519_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S"
# 21 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 22 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S" 2


        .globl bignum_madd_n25519_alt
        .hidden bignum_madd_n25519_alt
        .text
# 97 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S"
.Lbignum_madd_n25519_alt_local_target:
bignum_madd_n25519_alt:
# 110 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15





        movq %rdx, %rbp
        movq (%rsi), %rax
        mulq (%rbp)
        addq (%rcx), %rax
        adcq $0, %rdx
        movq %rax, %r8
        movq %rdx, %r9
        xorq %r10, %r10
        xorq %r11, %r11
        movq (%rsi), %rax
        mulq 0x8(%rbp)
        addq 8(%rcx), %rax
        adcq $0, %rdx
        addq %rax, %r9
        adcq %rdx, %r10
        movq 0x8(%rsi), %rax
        mulq (%rbp)
        addq %rax, %r9
        adcq %rdx, %r10
        adcq $0x0, %r11
        xorq %r12, %r12
        movq (%rsi), %rax
        mulq 0x10(%rbp)
        addq 16(%rcx), %rax
        adcq $0, %rdx
        addq %rax, %r10
        adcq %rdx, %r11
        adcq %r12, %r12
        movq 0x8(%rsi), %rax
        mulq 0x8(%rbp)
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        movq 0x10(%rsi), %rax
        mulq (%rbp)
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        xorq %r13, %r13
        movq (%rsi), %rax
        mulq 0x18(%rbp)
        addq 24(%rcx), %rax
        adcq $0, %rdx
        addq %rax, %r11
        adcq %rdx, %r12
        adcq %r13, %r13
        movq 0x8(%rsi), %rax
        mulq 0x10(%rbp)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        movq 0x10(%rsi), %rax
        mulq 0x8(%rbp)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        movq 0x18(%rsi), %rax
        mulq (%rbp)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        xorq %r14, %r14
        movq 0x8(%rsi), %rax
        mulq 0x18(%rbp)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r14, %r14
        movq 0x10(%rsi), %rax
        mulq 0x10(%rbp)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        movq 0x18(%rsi), %rax
        mulq 0x8(%rbp)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        xorq %r15, %r15
        movq 0x10(%rsi), %rax
        mulq 0x18(%rbp)
        addq %rax, %r13
        adcq %rdx, %r14
        adcq %r15, %r15
        movq 0x18(%rsi), %rax
        mulq 0x10(%rbp)
        addq %rax, %r13
        adcq %rdx, %r14
        adcq $0x0, %r15
        movq 0x18(%rsi), %rax
        mulq 0x18(%rbp)
        addq %rax, %r14
        adcq %rdx, %r15




        movq %r15, %rbx
 shrq $60, %rbx
 shlq $4, %r15
 shrq $4, %r15
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r12
 sbbq %rcx, %r13
 sbbq %rdx, %r14
 sbbq $0x0, %r15
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 adcq %rbx, %r15
        movq %r15, %rbx
 shldq $0x4, %r14, %rbx
 shrq $0x3c, %r15
 subq %r15, %rbx
 shlq $0x4, %r14
 shrdq $0x4, %r15, %r14
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r11
 sbbq %rcx, %r12
 sbbq %rdx, %r13
 sbbq $0x0, %r14
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 adcq %rbx, %r14
        movq %r14, %rbx
 shldq $0x4, %r13, %rbx
 shrq $0x3c, %r14
 subq %r14, %rbx
 shlq $0x4, %r13
 shrdq $0x4, %r14, %r13
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r10
 sbbq %rcx, %r11
 sbbq %rdx, %r12
 sbbq $0x0, %r13
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 adcq %rbx, %r13
        movq %r13, %rbx
 shldq $0x4, %r12, %rbx
 shrq $0x3c, %r13
 subq %r13, %rbx
 shlq $0x4, %r12
 shrdq $0x4, %r13, %r12
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r9
 sbbq %rcx, %r10
 sbbq %rdx, %r11
 sbbq $0x0, %r12
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 adcq %rbx, %r12
        movq %r12, %rbx
 shldq $0x4, %r11, %rbx
 shrq $0x3c, %r12
 subq %r12, %rbx
 shlq $0x4, %r11
 shrdq $0x4, %r12, %r11
 movabsq $0x5812631a5cf5d3ed, %rax
 mulq %rbx
 movq %rax, %rbp
 movq %rdx, %rcx
 movabsq $0x14def9dea2f79cd6, %rax
 mulq %rbx
 addq %rax, %rcx
 adcq $0x0, %rdx
 subq %rbp, %r8
 sbbq %rcx, %r9
 sbbq %rdx, %r10
 sbbq $0x0, %r11
 sbbq %rbx, %rbx
 movabsq $0x5812631a5cf5d3ed, %rax
 andq %rbx, %rax
 movabsq $0x14def9dea2f79cd6, %rdx
 andq %rbx, %rdx
 movabsq $0x1000000000000000, %rbx
 andq %rax, %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 adcq $0x0, %r10
 adcq %rbx, %r11

        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/edwards25519_decode.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_decode.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S"
# 29 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 30 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S" 2


        .globl edwards25519_decode
        .hidden edwards25519_decode
        .text
# 71 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S"
.Ledwards25519_decode_local_target:
edwards25519_decode:
# 91 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15

        subq $(32*8), %rsp



        movq %rdi, (28*8)(%rsp)





        movq (%rsi), %rax
        movq %rax, 0(%rsp)
        movq 8(%rsi), %rbx
        movq %rbx, 0 +8(%rsp)
        xorl %ebp, %ebp
        movq 16(%rsi), %rcx
        movq %rcx, 0 +16(%rsp)
        movq 24(%rsi), %rdx
        btr $63, %rdx
        movq %rdx, 0 +24(%rsp)
        adcq %rbp, %rbp
        movq %rbp, (29*8)(%rsp)

        addq $19, %rax
        adcq $0, %rbx
        adcq $0, %rcx
        adcq $0, %rdx
        shrq $63, %rdx
        movq %rdx, (30*8)(%rsp)





        leaq (16*8)(%rsp), %rdi
        movq $1, %rsi
        leaq 0(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target
        movq (16*8)(%rsp), %rax
        subq $20, %rax
        movq (16*8)+8(%rsp), %rbx
        sbbq $0, %rbx
        movq (16*8)+16(%rsp), %rcx
        sbbq $0, %rcx
        movq (16*8)+24(%rsp), %rdx
        sbbq $0, %rdx
        btc $63, %rdx
        movq %rax, (12*8)(%rsp)
        movq %rbx, (12*8)+8(%rsp)
        movq %rcx, (12*8)+16(%rsp)
        movq %rdx, (12*8)+24(%rsp)

        movq $0x75eb4dca135978a3, %rax
        movq %rax, (20*8)(%rsp)
        movq $0x00700a4d4141d8ab, %rax
        movq %rax, (20*8)+8(%rsp)
        movq $0x8cc740797779e898, %rax
        movq %rax, (20*8)+16(%rsp)
        movq $0x52036cee2b6ffe73, %rax
        movq %rax, (20*8)+24(%rsp)
        leaq (16*8)(%rsp), %rdi
        leaq (20*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target
        movq (16*8)(%rsp), %rax
        addq $1, %rax
        movq (16*8)+8(%rsp), %rbx
        adcq $0, %rbx
        movq (16*8)+16(%rsp), %rcx
        adcq $0, %rcx
        movq (16*8)+24(%rsp), %rdx
        adcq $0, %rdx
        movq %rax, (16*8)(%rsp)
        movq %rbx, (16*8)+8(%rsp)
        movq %rcx, (16*8)+16(%rsp)
        movq %rdx, (16*8)+24(%rsp)

        leaq (20*8)(%rsp), %rdi
        leaq (12*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target




        leaq (8*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (8*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $2, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $5, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $10, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $5, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $25, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $50, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $25, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $125, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $2, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target




        leaq (16*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (4*8)(%rsp), %rdx
# WAS callq edwards25519_decode_nsqr_p25519
	callq	.Ledwards25519_decode_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (16*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target




        leaq (4*8)(%rsp), %rdi
        leaq (12*8)(%rsp), %rsi
        leaq (4*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target
        movq $0xc4ee1b274a0ea0b0, %rax
        movq %rax, (8*8)(%rsp)
        movq $0x2f431806ad2fe478, %rax
        movq %rax, (8*8)+8(%rsp)
        movq $0x2b4d00993dfbd7a7, %rax
        movq %rax, (8*8)+16(%rsp)
        movq $0x2b8324804fc1df0b, %rax
        movq %rax, (8*8)+24(%rsp)
        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_mul_p25519
	callq	.Ledwards25519_decode_mul_p25519_local_target



        movq (16*8)(%rsp), %r8
        movq (16*8)+8(%rsp), %r9
        movq (16*8)+16(%rsp), %r10
        movq (16*8)+24(%rsp), %r11
        movl $1, %eax
        notq %rax
        andq %r8, %rax
        orq %r9, %rax
        orq %r10, %rax
        orq %r11, %rax



        addq $20, %r8
        notq %r9
        notq %r10
        bts $63, %r11
        addq $1, %r11
        orq %r9, %r8
        orq %r11, %r10
        orq %r10, %r8



        testq %rax, %rax

        movq (4*8)(%rsp), %r12
        movq (8*8)(%rsp), %rbx
        cmovnzq %rbx, %r12
        movq (4*8)+8(%rsp), %r13
        movq (8*8)+8(%rsp), %rbx
        cmovnzq %rbx, %r13
        movq (4*8)+16(%rsp), %r14
        movq (8*8)+16(%rsp), %rbx
        cmovnzq %rbx, %r14
        movq (4*8)+24(%rsp), %r15
        movq (8*8)+24(%rsp), %rbx
        cmovnzq %rbx, %r15
        movq %r12, (4*8)(%rsp)
        movq %r13, (4*8)+8(%rsp)
        movq %r14, (4*8)+16(%rsp)
        movq %r15, (4*8)+24(%rsp)



        cmovzq %rax, %r8
        negq %r8
        sbbq %r8, %r8
        negq %r8
        orq %r8, (30*8)(%rsp)



        movq (4*8)(%rsp), %r8
        movq $-19, %r12
        subq %r8, %r12
        movq (4*8)+8(%rsp), %r9
        movq $-1, %r13
        sbbq %r9, %r13
        movq (4*8)+16(%rsp), %r10
        movq $-1, %r14
        sbbq %r10, %r14
        movq (4*8)+24(%rsp), %r11
        movq $0x7FFFFFFFFFFFFFFF, %r15
        sbbq %r11, %r15






        movl $1, %ecx
        andq %r8, %rcx
        xorq (29*8)(%rsp), %rcx
        movq (30*8)(%rsp), %rdx
        movq %rdx, %rsi
        orq %rcx, %rdx
        xorl %ebp, %ebp
        movq %r8, %rax
        movq %r9, %rbx
        orq %r10, %rax
        orq %r11, %rbx
        orq %rbx, %rax
        cmovzq %rbp, %rcx
        cmovnzq %rsi, %rdx



        testq %rcx, %rcx

        cmovnzq %r12, %r8
        cmovnzq %r13, %r9
        cmovnzq %r14, %r10
        cmovnzq %r15, %r11

        movq (28*8)(%rsp), %rdi
        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)
        movq 0(%rsp), %rcx
        movq %rcx, 32(%rdi)
        movq 0 +8(%rsp), %rcx
        movq %rcx, 40(%rdi)
        movq 0 +16(%rsp), %rcx
        movq %rcx, 48(%rdi)
        movq 0 +24(%rsp), %rcx
        movq %rcx, 56(%rdi)

        movq %rdx, %rax



        addq $(32*8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret





.Ledwards25519_decode_mul_p25519_local_target:
edwards25519_decode_mul_p25519:
        movq %rdx, %rcx
        xorl %ebp, %ebp
        movq (%rcx), %rdx
        mulxq (%rsi), %r8, %r9
        mulxq 0x8(%rsi), %rax, %r10
        addq %rax, %r9
        mulxq 0x10(%rsi), %rax, %r11
        adcq %rax, %r10
        mulxq 0x18(%rsi), %rax, %r12
        adcq %rax, %r11
        adcq %rbp, %r12
        xorl %ebp, %ebp
        movq 0x8(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x18(%rsi), %rax, %r13
        adcxq %rax, %r12
        adoxq %rbp, %r13
        adcq %rbp, %r13
        xorl %ebp, %ebp
        movq 0x10(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x18(%rsi), %rax, %r14
        adcxq %rax, %r13
        adoxq %rbp, %r14
        adcq %rbp, %r14
        xorl %ebp, %ebp
        movq 0x18(%rcx), %rdx
        mulxq (%rsi), %rax, %rbx
        adcxq %rax, %r11
        adoxq %rbx, %r12
        mulxq 0x18(%rsi), %rcx, %r15
        mulxq 0x8(%rsi), %rax, %rbx
        adcxq %rax, %r12
        adoxq %rbx, %r13
        mulxq 0x10(%rsi), %rax, %rbx
        adcxq %rax, %r13
        adoxq %rbx, %r14
        movl $0x26, %edx
        mulxq %r15, %rax, %rbx
        adcxq %rcx, %r14
        adoxq %rbp, %r15
        adcq %rbp, %r15
        addq %r11, %rax
        adcq %rbp, %rbx
        btq $0x3f, %rax
        adcq %rbx, %rbx
        leaq 0x1(%rbx), %rcx
        imulq $0x13, %rcx, %rcx
        xorl %ebp, %ebp
        adoxq %rcx, %r8
        mulxq %r12, %rax, %rbx
        adcxq %rax, %r8
        adoxq %rbx, %r9
        mulxq %r13, %rax, %rbx
        adcxq %rax, %r9
        adoxq %rbx, %r10
        mulxq %r14, %rax, %rbx
        adcxq %rax, %r10
        adoxq %rbx, %r11
        mulxq %r15, %rax, %rbx
        adcq %rax, %r11
        shlq $0x3f, %rcx
        cmpq %rcx, %r11
        movl $0x13, %eax
        cmovns %rbp, %rax
        subq %rax, %r8
        sbbq %rbp, %r9
        sbbq %rbp, %r10
        sbbq %rbp, %r11
        btr $0x3f, %r11
        movq %r8, (%rdi)
        movq %r9, 0x8(%rdi)
        movq %r10, 0x10(%rdi)
        movq %r11, 0x18(%rdi)
        ret





.Ledwards25519_decode_nsqr_p25519_local_target:
edwards25519_decode_nsqr_p25519:



        movq (%rdx), %rax
        movq 8(%rdx), %rbx
        movq 16(%rdx), %rcx
        movq 24(%rdx), %rdx
        movq %rax, (25*8)(%rsp)
        movq %rbx, (25*8)+8(%rsp)
        movq %rcx, (25*8)+16(%rsp)
        movq %rdx, (25*8)+24(%rsp)




.Ledwards25519_decode_loop_local_target:
edwards25519_decode_loop:
        movq (25*8)(%rsp), %rdx
        mulxq %rdx, %r8, %r15
        mulxq (25*8)+0x8(%rsp), %r9, %r10
        mulxq (25*8)+0x18(%rsp), %r11, %r12
        movq (25*8)+0x10(%rsp), %rdx
        mulxq (25*8)+0x18(%rsp), %r13, %r14
        xorl %ebx, %ebx
        mulxq (25*8)(%rsp), %rax, %rcx
        adcxq %rax, %r10
        adoxq %rcx, %r11
        mulxq (25*8)+0x8(%rsp), %rax, %rcx
        adcxq %rax, %r11
        adoxq %rcx, %r12
        movq (25*8)+0x18(%rsp), %rdx
        mulxq (25*8)+0x8(%rsp), %rax, %rcx
        adcxq %rax, %r12
        adoxq %rcx, %r13
        adcxq %rbx, %r13
        adoxq %rbx, %r14
        adcq %rbx, %r14
        xorl %ebx, %ebx
        adcxq %r9, %r9
        adoxq %r15, %r9
        movq (25*8)+0x8(%rsp), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %r10, %r10
        adoxq %rax, %r10
        adcxq %r11, %r11
        adoxq %rdx, %r11
        movq (25*8)+0x10(%rsp), %rdx
        mulxq %rdx, %rax, %rdx
        adcxq %r12, %r12
        adoxq %rax, %r12
        adcxq %r13, %r13
        adoxq %rdx, %r13
        movq (25*8)+0x18(%rsp), %rdx
        mulxq %rdx, %rax, %r15
        adcxq %r14, %r14
        adoxq %rax, %r14
        adcxq %rbx, %r15
        adoxq %rbx, %r15
        movl $0x26, %edx
        xorl %ebx, %ebx
        mulxq %r12, %rax, %rcx
        adcxq %rax, %r8
        adoxq %rcx, %r9
        mulxq %r13, %rax, %rcx
        adcxq %rax, %r9
        adoxq %rcx, %r10
        mulxq %r14, %rax, %rcx
        adcxq %rax, %r10
        adoxq %rcx, %r11
        mulxq %r15, %rax, %r12
        adcxq %rax, %r11
        adoxq %rbx, %r12
        adcxq %rbx, %r12
        shldq $0x1, %r11, %r12
        btr $0x3f, %r11
        movl $0x13, %edx
        imulq %r12, %rdx
        addq %rdx, %r8
        adcq %rbx, %r9
        adcq %rbx, %r10
        adcq %rbx, %r11
        movq %r8, (25*8)(%rsp)
        movq %r9, (25*8)+0x8(%rsp)
        movq %r10, (25*8)+0x10(%rsp)
        movq %r11, (25*8)+0x18(%rsp)



        decq %rsi
# WAS jnz edwards25519_decode_loop
	jnz	.Ledwards25519_decode_loop_local_target






        movl $19, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rdx

        cmovns %r8, %rax
        cmovns %r9, %rbx
        cmovns %r10, %rcx
        cmovns %r11, %rdx
        btr $63, %rdx
        movq %rax, (%rdi)
        movq %rbx, 8(%rdi)
        movq %rcx, 16(%rdi)
        movq %rdx, 24(%rdi)
        ret


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/edwards25519_decode_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_decode_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S"
# 29 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 30 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S" 2


        .globl edwards25519_decode_alt
        .hidden edwards25519_decode_alt
        .text
# 71 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S"
.Ledwards25519_decode_alt_local_target:
edwards25519_decode_alt:
# 91 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15

        subq $(32*8), %rsp



        movq %rdi, (28*8)(%rsp)





        movq (%rsi), %rax
        movq %rax, 0(%rsp)
        movq 8(%rsi), %rbx
        movq %rbx, 0 +8(%rsp)
        xorl %ebp, %ebp
        movq 16(%rsi), %rcx
        movq %rcx, 0 +16(%rsp)
        movq 24(%rsi), %rdx
        btr $63, %rdx
        movq %rdx, 0 +24(%rsp)
        adcq %rbp, %rbp
        movq %rbp, (29*8)(%rsp)

        addq $19, %rax
        adcq $0, %rbx
        adcq $0, %rcx
        adcq $0, %rdx
        shrq $63, %rdx
        movq %rdx, (30*8)(%rsp)





        leaq (16*8)(%rsp), %rdi
        movq $1, %rsi
        leaq 0(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target
        movq (16*8)(%rsp), %rax
        subq $20, %rax
        movq (16*8)+8(%rsp), %rbx
        sbbq $0, %rbx
        movq (16*8)+16(%rsp), %rcx
        sbbq $0, %rcx
        movq (16*8)+24(%rsp), %rdx
        sbbq $0, %rdx
        btc $63, %rdx
        movq %rax, (12*8)(%rsp)
        movq %rbx, (12*8)+8(%rsp)
        movq %rcx, (12*8)+16(%rsp)
        movq %rdx, (12*8)+24(%rsp)

        movq $0x75eb4dca135978a3, %rax
        movq %rax, (20*8)(%rsp)
        movq $0x00700a4d4141d8ab, %rax
        movq %rax, (20*8)+8(%rsp)
        movq $0x8cc740797779e898, %rax
        movq %rax, (20*8)+16(%rsp)
        movq $0x52036cee2b6ffe73, %rax
        movq %rax, (20*8)+24(%rsp)
        leaq (16*8)(%rsp), %rdi
        leaq (20*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target
        movq (16*8)(%rsp), %rax
        addq $1, %rax
        movq (16*8)+8(%rsp), %rbx
        adcq $0, %rbx
        movq (16*8)+16(%rsp), %rcx
        adcq $0, %rcx
        movq (16*8)+24(%rsp), %rdx
        adcq $0, %rdx
        movq %rax, (16*8)(%rsp)
        movq %rbx, (16*8)+8(%rsp)
        movq %rcx, (16*8)+16(%rsp)
        movq %rdx, (16*8)+24(%rsp)

        leaq (20*8)(%rsp), %rdi
        leaq (12*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target




        leaq (8*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (8*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $2, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $5, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $10, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $5, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $25, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $50, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $25, %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $125, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        movq $2, %rsi
        leaq (16*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (4*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target




        leaq (16*8)(%rsp), %rdi
        movq $1, %rsi
        leaq (4*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_nsqr_p25519
	callq	.Ledwards25519_decode_alt_nsqr_p25519_local_target

        leaq (16*8)(%rsp), %rdi
        leaq (16*8)(%rsp), %rsi
        leaq (20*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target




        leaq (4*8)(%rsp), %rdi
        leaq (12*8)(%rsp), %rsi
        leaq (4*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target
        movq $0xc4ee1b274a0ea0b0, %rax
        movq %rax, (8*8)(%rsp)
        movq $0x2f431806ad2fe478, %rax
        movq %rax, (8*8)+8(%rsp)
        movq $0x2b4d00993dfbd7a7, %rax
        movq %rax, (8*8)+16(%rsp)
        movq $0x2b8324804fc1df0b, %rax
        movq %rax, (8*8)+24(%rsp)
        leaq (8*8)(%rsp), %rdi
        leaq (4*8)(%rsp), %rsi
        leaq (8*8)(%rsp), %rdx
# WAS callq edwards25519_decode_alt_mul_p25519
	callq	.Ledwards25519_decode_alt_mul_p25519_local_target



        movq (16*8)(%rsp), %r8
        movq (16*8)+8(%rsp), %r9
        movq (16*8)+16(%rsp), %r10
        movq (16*8)+24(%rsp), %r11
        movl $1, %eax
        notq %rax
        andq %r8, %rax
        orq %r9, %rax
        orq %r10, %rax
        orq %r11, %rax



        addq $20, %r8
        notq %r9
        notq %r10
        bts $63, %r11
        addq $1, %r11
        orq %r9, %r8
        orq %r11, %r10
        orq %r10, %r8



        testq %rax, %rax

        movq (4*8)(%rsp), %r12
        movq (8*8)(%rsp), %rbx
        cmovnzq %rbx, %r12
        movq (4*8)+8(%rsp), %r13
        movq (8*8)+8(%rsp), %rbx
        cmovnzq %rbx, %r13
        movq (4*8)+16(%rsp), %r14
        movq (8*8)+16(%rsp), %rbx
        cmovnzq %rbx, %r14
        movq (4*8)+24(%rsp), %r15
        movq (8*8)+24(%rsp), %rbx
        cmovnzq %rbx, %r15
        movq %r12, (4*8)(%rsp)
        movq %r13, (4*8)+8(%rsp)
        movq %r14, (4*8)+16(%rsp)
        movq %r15, (4*8)+24(%rsp)



        cmovzq %rax, %r8
        negq %r8
        sbbq %r8, %r8
        negq %r8
        orq %r8, (30*8)(%rsp)



        movq (4*8)(%rsp), %r8
        movq $-19, %r12
        subq %r8, %r12
        movq (4*8)+8(%rsp), %r9
        movq $-1, %r13
        sbbq %r9, %r13
        movq (4*8)+16(%rsp), %r10
        movq $-1, %r14
        sbbq %r10, %r14
        movq (4*8)+24(%rsp), %r11
        movq $0x7FFFFFFFFFFFFFFF, %r15
        sbbq %r11, %r15






        movl $1, %ecx
        andq %r8, %rcx
        xorq (29*8)(%rsp), %rcx
        movq (30*8)(%rsp), %rdx
        movq %rdx, %rsi
        orq %rcx, %rdx
        xorl %ebp, %ebp
        movq %r8, %rax
        movq %r9, %rbx
        orq %r10, %rax
        orq %r11, %rbx
        orq %rbx, %rax
        cmovzq %rbp, %rcx
        cmovnzq %rsi, %rdx



        testq %rcx, %rcx

        cmovnzq %r12, %r8
        cmovnzq %r13, %r9
        cmovnzq %r14, %r10
        cmovnzq %r15, %r11

        movq (28*8)(%rsp), %rdi
        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)
        movq 0(%rsp), %rcx
        movq %rcx, 32(%rdi)
        movq 0 +8(%rsp), %rcx
        movq %rcx, 40(%rdi)
        movq 0 +16(%rsp), %rcx
        movq %rcx, 48(%rdi)
        movq 0 +24(%rsp), %rcx
        movq %rcx, 56(%rdi)

        movq %rdx, %rax



        addq $(32*8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret





.Ledwards25519_decode_alt_mul_p25519_local_target:
edwards25519_decode_alt_mul_p25519:
        movq %rdx, %rcx
        movq (%rsi), %rax
        mulq (%rcx)
        movq %rax, %r8
        movq %rdx, %r9
        xorq %r10, %r10
        xorq %r11, %r11
        movq (%rsi), %rax
        mulq 0x8(%rcx)
        addq %rax, %r9
        adcq %rdx, %r10
        movq 0x8(%rsi), %rax
        mulq (%rcx)
        addq %rax, %r9
        adcq %rdx, %r10
        adcq $0x0, %r11
        xorq %r12, %r12
        movq (%rsi), %rax
        mulq 0x10(%rcx)
        addq %rax, %r10
        adcq %rdx, %r11
        adcq %r12, %r12
        movq 0x8(%rsi), %rax
        mulq 0x8(%rcx)
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        movq 0x10(%rsi), %rax
        mulq (%rcx)
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        xorq %r13, %r13
        movq (%rsi), %rax
        mulq 0x18(%rcx)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq %r13, %r13
        movq 0x8(%rsi), %rax
        mulq 0x10(%rcx)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        movq 0x10(%rsi), %rax
        mulq 0x8(%rcx)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        movq 0x18(%rsi), %rax
        mulq (%rcx)
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        xorq %r14, %r14
        movq 0x8(%rsi), %rax
        mulq 0x18(%rcx)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r14, %r14
        movq 0x10(%rsi), %rax
        mulq 0x10(%rcx)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        movq 0x18(%rsi), %rax
        mulq 0x8(%rcx)
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        xorq %r15, %r15
        movq 0x10(%rsi), %rax
        mulq 0x18(%rcx)
        addq %rax, %r13
        adcq %rdx, %r14
        adcq %r15, %r15
        movq 0x18(%rsi), %rax
        mulq 0x10(%rcx)
        addq %rax, %r13
        adcq %rdx, %r14
        adcq $0x0, %r15
        movq 0x18(%rsi), %rax
        mulq 0x18(%rcx)
        addq %rax, %r14
        adcq %rdx, %r15
        movl $0x26, %esi
        movq %r12, %rax
        mulq %rsi
        addq %rax, %r8
        adcq %rdx, %r9
        sbbq %rcx, %rcx
        movq %r13, %rax
        mulq %rsi
        subq %rcx, %rdx
        addq %rax, %r9
        adcq %rdx, %r10
        sbbq %rcx, %rcx
        movq %r14, %rax
        mulq %rsi
        subq %rcx, %rdx
        addq %rax, %r10
        adcq %rdx, %r11
        sbbq %rcx, %rcx
        movq %r15, %rax
        mulq %rsi
        subq %rcx, %rdx
        xorq %rcx, %rcx
        addq %rax, %r11
        movq %rdx, %r12
        adcq %rcx, %r12
        shldq $0x1, %r11, %r12
        leaq 0x1(%r12), %rax
        movl $0x13, %esi
        bts $0x3f, %r11
        imulq %rsi, %rax
        addq %rax, %r8
        adcq %rcx, %r9
        adcq %rcx, %r10
        adcq %rcx, %r11
        sbbq %rax, %rax
        notq %rax
        andq %rsi, %rax
        subq %rax, %r8
        sbbq %rcx, %r9
        sbbq %rcx, %r10
        sbbq %rcx, %r11
        btr $0x3f, %r11
        movq %r8, (%rdi)
        movq %r9, 0x8(%rdi)
        movq %r10, 0x10(%rdi)
        movq %r11, 0x18(%rdi)
        ret





.Ledwards25519_decode_alt_nsqr_p25519_local_target:
edwards25519_decode_alt_nsqr_p25519:



        movq (%rdx), %rax
        movq 8(%rdx), %rbx
        movq 16(%rdx), %rcx
        movq 24(%rdx), %rdx
        movq %rax, (25*8)(%rsp)
        movq %rbx, (25*8)+8(%rsp)
        movq %rcx, (25*8)+16(%rsp)
        movq %rdx, (25*8)+24(%rsp)




.Ledwards25519_decode_alt_loop_local_target:
edwards25519_decode_alt_loop:
        movq (25*8)(%rsp), %rax
        mulq %rax
        movq %rax, %r8
        movq %rdx, %r9
        xorq %r10, %r10
        xorq %r11, %r11
        movq (25*8)(%rsp), %rax
        mulq (25*8)+0x8(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r11
        addq %rax, %r9
        adcq %rdx, %r10
        adcq $0x0, %r11
        xorq %r12, %r12
        movq (25*8)+0x8(%rsp), %rax
        mulq %rax
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        movq (25*8)(%rsp), %rax
        mulq (25*8)+0x10(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r12
        addq %rax, %r10
        adcq %rdx, %r11
        adcq $0x0, %r12
        xorq %r13, %r13
        movq (25*8)(%rsp), %rax
        mulq (25*8)+0x18(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r13
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        movq (25*8)+0x8(%rsp), %rax
        mulq (25*8)+0x10(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r13
        addq %rax, %r11
        adcq %rdx, %r12
        adcq $0x0, %r13
        xorq %r14, %r14
        movq (25*8)+0x8(%rsp), %rax
        mulq (25*8)+0x18(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r14
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        movq (25*8)+0x10(%rsp), %rax
        mulq %rax
        addq %rax, %r12
        adcq %rdx, %r13
        adcq $0x0, %r14
        xorq %r15, %r15
        movq (25*8)+0x10(%rsp), %rax
        mulq (25*8)+0x18(%rsp)
        addq %rax, %rax
        adcq %rdx, %rdx
        adcq $0x0, %r15
        addq %rax, %r13
        adcq %rdx, %r14
        adcq $0x0, %r15
        movq (25*8)+0x18(%rsp), %rax
        mulq %rax
        addq %rax, %r14
        adcq %rdx, %r15
        movl $0x26, %ebx
        movq %r12, %rax
        mulq %rbx
        addq %rax, %r8
        adcq %rdx, %r9
        sbbq %rcx, %rcx
        movq %r13, %rax
        mulq %rbx
        subq %rcx, %rdx
        addq %rax, %r9
        adcq %rdx, %r10
        sbbq %rcx, %rcx
        movq %r14, %rax
        mulq %rbx
        subq %rcx, %rdx
        addq %rax, %r10
        adcq %rdx, %r11
        sbbq %rcx, %rcx
        movq %r15, %rax
        mulq %rbx
        subq %rcx, %rdx
        xorq %rcx, %rcx
        addq %rax, %r11
        movq %rdx, %r12
        adcq %rcx, %r12
        shldq $0x1, %r11, %r12
        btr $0x3f, %r11
        movl $0x13, %edx
        imulq %r12, %rdx
        addq %rdx, %r8
        adcq %rcx, %r9
        adcq %rcx, %r10
        adcq %rcx, %r11
        movq %r8, (25*8)(%rsp)
        movq %r9, (25*8)+0x8(%rsp)
        movq %r10, (25*8)+0x10(%rsp)
        movq %r11, (25*8)+0x18(%rsp)



        decq %rsi
# WAS jnz edwards25519_decode_alt_loop
	jnz	.Ledwards25519_decode_alt_loop_local_target






        movl $19, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rdx

        cmovns %r8, %rax
        cmovns %r9, %rbx
        cmovns %r10, %rcx
        cmovns %r11, %rdx
        btr $63, %rdx
        movq %rax, (%rdi)
        movq %rbx, 8(%rdi)
        movq %rcx, 16(%rdi)
        movq %rdx, 24(%rdi)
        ret


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/edwards25519_encode.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_encode.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S"
# 28 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 29 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S" 2


        .globl edwards25519_encode
        .hidden edwards25519_encode
        .text
# 43 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S"
.Ledwards25519_encode_local_target:
edwards25519_encode:
# 54 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S"
        movq (%rsi), %r9
        movq 32(%rsi), %rax
        movq 40(%rsi), %rcx
        movq 48(%rsi), %rdx
        movq 56(%rsi), %r8



        btr $63, %r8
        shlq $63, %r9
        orq %r9, %r8



        movq %rax, (%rdi)
        movq %rcx, 8(%rdi)
        movq %rdx, 16(%rdi)
        movq %r8, 24(%rdi)





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/edwards25519_scalarmulbase.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_scalarmulbase.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
# 17 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S" 2


        .globl edwards25519_scalarmulbase
        .hidden edwards25519_scalarmulbase
        .text
# 338 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
.Ledwards25519_scalarmulbase_local_target:
edwards25519_scalarmulbase:
# 358 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(15*32 +8), %rsp



        movq %rdi, 14*32(%rsp)







        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11

        movq %r11, %rcx
        shrq $60, %rcx

        movq $0x5812631a5cf5d3ed, %rax
        mulq %rcx
        movq %rax, %r12
        movq %rdx, %r13
        movq $0x14def9dea2f79cd6, %rax
        mulq %rcx
        addq %rax, %r13
        adcq $0, %rdx
        shlq $60, %rcx

        subq %r12, %r8
        sbbq %r13, %r9
        sbbq %rdx, %r10
        sbbq %rcx, %r11







        sbbq %rax, %rax

        xorq %rax, %r8
        xorq %rax, %r9
        xorq %rax, %r10
        xorq %rax, %r11

        negq %rax
        adcq $0, %r8
        adcq $0, %r9
        adcq $0, %r10
        adcq $0, %r11

        shlq $63, %rax
        orq %rax, %r11




        movq %r8, 0(%rsp)
        movq %r9, 0 +8(%rsp)
        movq %r10, 0 +16(%rsp)
        btr $59, %r11
        movq %r11, 0 +24(%rsp)
# 439 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
# WAS leaq edwards25519_scalarmulbase_0g(%rip), %r10
	leaq	.Ledwards25519_scalarmulbase_0g_local_target(%rip), %r10
# WAS leaq edwards25519_scalarmulbase_251g(%rip), %r11
	leaq	.Ledwards25519_scalarmulbase_251g_local_target(%rip), %r11

        movq (%r10), %rax
        movq (%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)(%rsp)

        movq 8*1(%r10), %rax
        movq 8*1(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+8(%rsp)

        movq 8*2(%r10), %rax
        movq 8*2(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+16(%rsp)

        movq 8*3(%r10), %rax
        movq 8*3(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+24(%rsp)

        movq 8*4(%r10), %rax
        movq 8*4(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+32(%rsp)

        movq 8*5(%r10), %rax
        movq 8*5(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+40(%rsp)

        movq 8*6(%r10), %rax
        movq 8*6(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+48(%rsp)

        movq 8*7(%r10), %rax
        movq 8*7(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+56(%rsp)

        movl $1, %eax
        movq %rax, (10*32)+64(%rsp)
        movl $0, %eax
        movq %rax, (10*32)+72(%rsp)
        movq %rax, (10*32)+80(%rsp)
        movq %rax, (10*32)+88(%rsp)

        movq 8*8(%r10), %rax
        movq 8*8(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+96(%rsp)

        movq 8*9(%r10), %rax
        movq 8*9(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+104(%rsp)

        movq 8*10(%r10), %rax
        movq 8*10(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+112(%rsp)

        movq 8*11(%r10), %rax
        movq 8*11(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+120(%rsp)
# 522 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        movq $0, 14*32 +8(%rsp)
# WAS leaq edwards25519_scalarmulbase_gtable(%rip), %rax
	leaq	.Ledwards25519_scalarmulbase_gtable_local_target(%rip), %rax
        movq %rax, 15*32(%rsp)
        movq $0, 14*32 +16(%rsp)



.Ledwards25519_scalarmulbase_scalarloop_local_target:
edwards25519_scalarmulbase_scalarloop:





        movq 14*32 +8(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax
        addq 14*32 +16(%rsp), %rax
        movq %rax, 14*32 +24(%rsp)

        cmpq $9, 14*32 +24(%rsp)
        sbbq %rax, %rax
        incq %rax
        movq %rax, 14*32 +16(%rsp)

        movq $16, %rdi
        subq 14*32 +24(%rsp), %rdi
        cmpq $0, 14*32 +16(%rsp)
        cmovzq 14*32 +24(%rsp), %rdi
        movq %rdi, 14*32 +24(%rsp)






        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

        movq 15*32(%rsp), %rbp

        cmpq $1, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        addq $96, %rbp
        movq %rbp, 15*32(%rsp)
# 810 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        cmpq $0, 14*32 +16(%rsp)

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, (1*32)(%rsp)
        movq %r8, (1*32)+32(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, (1*32)+8(%rsp)
        movq %r9, (1*32)+40(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, (1*32)+16(%rsp)
        movq %r10, (1*32)+48(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, (1*32)+24(%rsp)
        movq %r11, (1*32)+56(%rsp)

        movq $-19, %rax
        movq $-1, %rbx
        movq $-1, %rcx
        movq $0x7fffffffffffffff, %rdx
        subq %r12, %rax
        sbbq %r13, %rbx
        sbbq %r14, %rcx
        sbbq %r15, %rdx

        movq 14*32 +24(%rsp), %r8
        movq 14*32 +16(%rsp), %r9
        testq %r8, %r8
        cmovzq %r8, %r9
        testq %r9, %r9

        cmovzq %r12, %rax
        cmovzq %r13, %rbx
        cmovzq %r14, %rcx
        cmovzq %r15, %rdx
        movq %rax, (1*32)+64(%rsp)
        movq %rbx, (1*32)+72(%rsp)
        movq %rcx, (1*32)+80(%rsp)
        movq %rdx, (1*32)+88(%rsp)
# 867 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        movq (12*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(12*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(12*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(12*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (11*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (10*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 sbbq 8+(10*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(11*32)(%rsp), %r10
 sbbq 16+(10*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %rax
 sbbq 24+(10*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)
        movq (11*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (10*32)(%rsp), %r8
 movq 0x8+(11*32)(%rsp), %r9
 adcq 0x8+(10*32)(%rsp), %r9
 movq 0x10+(11*32)(%rsp), %r10
 adcq 0x10+(10*32)(%rsp), %r10
 movq 0x18+(11*32)(%rsp), %r11
 adcq 0x18+(10*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        xorl %ecx, %ecx
 movq (3*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %r8, %r9
 mulxq 0x8+(13*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(13*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(13*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(13*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(13*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(13*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)
        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %r8, %r9
 mulxq 0x8+(5*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(5*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(5*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(5*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(5*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(5*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (2*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (8*32)(%rsp)
 movq %r9, 8+(8*32)(%rsp)
 movq %r10, 16+(8*32)(%rsp)
 movq %rax, 24+(8*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (6*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (5*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 sbbq 8+(5*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(6*32)(%rsp), %r10
 sbbq 16+(5*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %rax
 sbbq 24+(5*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (9*32)(%rsp)
 movq %r9, 8+(9*32)(%rsp)
 movq %r10, 16+(9*32)(%rsp)
 movq %rax, 24+(9*32)(%rsp)
        movq (6*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (5*32)(%rsp), %r8
 movq 0x8+(6*32)(%rsp), %r9
 adcq 0x8+(5*32)(%rsp), %r9
 movq 0x10+(6*32)(%rsp), %r10
 adcq 0x10+(5*32)(%rsp), %r10
 movq 0x18+(6*32)(%rsp), %r11
 adcq 0x18+(5*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %r8, %r9
 mulxq 0x8+(8*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(8*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(8*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(8*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(8*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(8*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (12*32)(%rsp)
 movq %r9, 0x8+(12*32)(%rsp)
 movq %r10, 0x10+(12*32)(%rsp)
 movq %r11, 0x18+(12*32)(%rsp)
        xorl %ecx, %ecx
 movq (8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %r8, %r9
 mulxq 0x8+(9*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(9*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(9*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(9*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(9*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(9*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %r8, %r9
 mulxq 0x8+(4*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(4*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(4*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(4*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(4*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(4*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %r8, %r9
 mulxq 0x8+(9*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(9*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(9*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(9*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(9*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(9*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (13*32)(%rsp)
 movq %r9, 0x8+(13*32)(%rsp)
 movq %r10, 0x10+(13*32)(%rsp)
 movq %r11, 0x18+(13*32)(%rsp)



        addq $4, 14*32 +8(%rsp)
        cmpq $252, 14*32 +8(%rsp)
# WAS jc edwards25519_scalarmulbase_scalarloop
	jc	.Ledwards25519_scalarmulbase_scalarloop_local_target
# 895 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        movq (10*32)(%rsp), %r8
        movq (10*32)+8(%rsp), %r9
        movq (10*32)+16(%rsp), %r10
        movq (10*32)+24(%rsp), %r11
        movq $0xffffffffffffffda, %r12
        subq %r8, %r12
        movq $0xffffffffffffffff, %r13
        sbbq %r9, %r13
        movq $0xffffffffffffffff, %r14
        sbbq %r10, %r14
        movq $0xffffffffffffffff, %r15
        sbbq %r11, %r15
        movq 0 +24(%rsp), %rax
        btq $63, %rax
        cmovcq %r12, %r8
        cmovcq %r13, %r9
        cmovcq %r14, %r10
        cmovcq %r15, %r11
        movq %r8, (10*32)(%rsp)
        movq %r9, (10*32)+8(%rsp)
        movq %r10, (10*32)+16(%rsp)
        movq %r11, (10*32)+24(%rsp)





        leaq (13*32)(%rsp), %rdi
        leaq (12*32)(%rsp), %rsi
# 933 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp edwards25519_scalarmulbase_midloop
	jmp	.Ledwards25519_scalarmulbase_midloop_local_target
.Ledwards25519_scalarmulbase_inverseloop_local_target:
edwards25519_scalarmulbase_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Ledwards25519_scalarmulbase_midloop_local_target:
edwards25519_scalarmulbase_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne edwards25519_scalarmulbase_inverseloop
	jne	.Ledwards25519_scalarmulbase_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)






        movq 14*32(%rsp), %rbp
        xorl %esi, %esi
 movq (13*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rsi, %r12
 xorl %esi, %esi
 movq 0x8+(13*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rsi, %r13
 adcxq %rsi, %r13
 xorl %esi, %esi
 movq 0x10+(13*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rsi, %r14
 adcxq %rsi, %r14
 xorl %esi, %esi
 movq 0x18+(13*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rsi, %r15
 adcxq %rsi, %r15
 movl $0x26, %edx
 xorl %esi, %esi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rsi, %r12
 adcxq %rsi, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rsi, %r9
 sbbq %rsi, %r10
 sbbq %rsi, %r11
 btr $63, %r11
 movq %r8, (0*32)(%rbp)
 movq %r9, 0x8+(0*32)(%rbp)
 movq %r10, 0x10+(0*32)(%rbp)
 movq %r11, 0x18+(0*32)(%rbp)
        xorl %esi, %esi
 movq (13*32)(%rsp), %rdx
 mulxq (11*32)(%rsp), %r8, %r9
 mulxq 0x8+(11*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(11*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(11*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rsi, %r12
 xorl %esi, %esi
 movq 0x8+(13*32)(%rsp), %rdx
 mulxq (11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(11*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rsi, %r13
 adcxq %rsi, %r13
 xorl %esi, %esi
 movq 0x10+(13*32)(%rsp), %rdx
 mulxq (11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(11*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rsi, %r14
 adcxq %rsi, %r14
 xorl %esi, %esi
 movq 0x18+(13*32)(%rsp), %rdx
 mulxq (11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(11*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(11*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rsi, %r15
 adcxq %rsi, %r15
 movl $0x26, %edx
 xorl %esi, %esi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rsi, %r12
 adcxq %rsi, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rsi, %r9
 sbbq %rsi, %r10
 sbbq %rsi, %r11
 btr $63, %r11
 movq %r8, (1*32)(%rbp)
 movq %r9, 0x8+(1*32)(%rbp)
 movq %r10, 0x10+(1*32)(%rbp)
 movq %r11, 0x18+(1*32)(%rbp)



        addq $(15*32 +8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret
# 2311 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S"
.Ledwards25519_scalarmulbase_0g_local_target:
edwards25519_scalarmulbase_0g:

        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

        .quad 0x0000000000000001
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

.Ledwards25519_scalarmulbase_251g_local_target:
edwards25519_scalarmulbase_251g:

        .quad 0x525f946d7c7220e7
        .quad 0x4636b0b2f1e35444
        .quad 0x796e9d70e892ae0f
        .quad 0x03dec05fa937adb1
        .quad 0x6d1c271cc6375515
        .quad 0x462588c4a4ca4f14
        .quad 0x691129fee55afc39
        .quad 0x15949f784d8472f5
        .quad 0xbd89e510afad0049
        .quad 0x4d1f08c073b9860e
        .quad 0x07716e8b2d00af9d
        .quad 0x70d685f68f859714




.Ledwards25519_scalarmulbase_gtable_local_target:
edwards25519_scalarmulbase_gtable:



        .quad 0x9d103905d740913e
        .quad 0xfd399f05d140beb3
        .quad 0xa5c18434688f8a09
        .quad 0x44fd2f9298f81267
        .quad 0x2fbc93c6f58c3b85
        .quad 0xcf932dc6fb8c0e19
        .quad 0x270b4898643d42c2
        .quad 0x07cf9d3a33d4ba65
        .quad 0xabc91205877aaa68
        .quad 0x26d9e823ccaac49e
        .quad 0x5a1b7dcbdd43598c
        .quad 0x6f117b689f0c65a8



        .quad 0x8a99a56042b4d5a8
        .quad 0x8f2b810c4e60acf6
        .quad 0xe09e236bb16e37aa
        .quad 0x6bb595a669c92555
        .quad 0x9224e7fc933c71d7
        .quad 0x9f469d967a0ff5b5
        .quad 0x5aa69a65e1d60702
        .quad 0x590c063fa87d2e2e
        .quad 0x43faa8b3a59b7a5f
        .quad 0x36c16bdd5d9acf78
        .quad 0x500fa0840b3d6a31
        .quad 0x701af5b13ea50b73



        .quad 0x56611fe8a4fcd265
        .quad 0x3bd353fde5c1ba7d
        .quad 0x8131f31a214bd6bd
        .quad 0x2ab91587555bda62
        .quad 0xaf25b0a84cee9730
        .quad 0x025a8430e8864b8a
        .quad 0xc11b50029f016732
        .quad 0x7a164e1b9a80f8f4
        .quad 0x14ae933f0dd0d889
        .quad 0x589423221c35da62
        .quad 0xd170e5458cf2db4c
        .quad 0x5a2826af12b9b4c6



        .quad 0x95fe050a056818bf
        .quad 0x327e89715660faa9
        .quad 0xc3e8e3cd06a05073
        .quad 0x27933f4c7445a49a
        .quad 0x287351b98efc099f
        .quad 0x6765c6f47dfd2538
        .quad 0xca348d3dfb0a9265
        .quad 0x680e910321e58727
        .quad 0x5a13fbe9c476ff09
        .quad 0x6e9e39457b5cc172
        .quad 0x5ddbdcf9102b4494
        .quad 0x7f9d0cbf63553e2b



        .quad 0x7f9182c3a447d6ba
        .quad 0xd50014d14b2729b7
        .quad 0xe33cf11cb864a087
        .quad 0x154a7e73eb1b55f3
        .quad 0xa212bc4408a5bb33
        .quad 0x8d5048c3c75eed02
        .quad 0xdd1beb0c5abfec44
        .quad 0x2945ccf146e206eb
        .quad 0xbcbbdbf1812a8285
        .quad 0x270e0807d0bdd1fc
        .quad 0xb41b670b1bbda72d
        .quad 0x43aabe696b3bb69a



        .quad 0x499806b67b7d8ca4
        .quad 0x575be28427d22739
        .quad 0xbb085ce7204553b9
        .quad 0x38b64c41ae417884
        .quad 0x3a0ceeeb77157131
        .quad 0x9b27158900c8af88
        .quad 0x8065b668da59a736
        .quad 0x51e57bb6a2cc38bd
        .quad 0x85ac326702ea4b71
        .quad 0xbe70e00341a1bb01
        .quad 0x53e4a24b083bc144
        .quad 0x10b8e91a9f0d61e3



        .quad 0xba6f2c9aaa3221b1
        .quad 0x6ca021533bba23a7
        .quad 0x9dea764f92192c3a
        .quad 0x1d6edd5d2e5317e0
        .quad 0x6b1a5cd0944ea3bf
        .quad 0x7470353ab39dc0d2
        .quad 0x71b2528228542e49
        .quad 0x461bea69283c927e
        .quad 0xf1836dc801b8b3a2
        .quad 0xb3035f47053ea49a
        .quad 0x529c41ba5877adf3
        .quad 0x7a9fbb1c6a0f90a7



        .quad 0xe2a75dedf39234d9
        .quad 0x963d7680e1b558f9
        .quad 0x2c2741ac6e3c23fb
        .quad 0x3a9024a1320e01c3
        .quad 0x59b7596604dd3e8f
        .quad 0x6cb30377e288702c
        .quad 0xb1339c665ed9c323
        .quad 0x0915e76061bce52f
        .quad 0xe7c1f5d9c9a2911a
        .quad 0xb8a371788bcca7d7
        .quad 0x636412190eb62a32
        .quad 0x26907c5c2ecc4e95



        .quad 0x7ec851ca553e2df3
        .quad 0xa71284cba64878b3
        .quad 0xe6b5e4193288d1e7
        .quad 0x4cf210ec5a9a8883
        .quad 0x322d04a52d9021f6
        .quad 0xb9c19f3375c6bf9c
        .quad 0x587a3a4342d20b09
        .quad 0x143b1cf8aa64fe61
        .quad 0x9f867c7d968acaab
        .quad 0x5f54258e27092729
        .quad 0xd0a7d34bea180975
        .quad 0x21b546a3374126e1



        .quad 0xa94ff858a2888343
        .quad 0xce0ed4565313ed3c
        .quad 0xf55c3dcfb5bf34fa
        .quad 0x0a653ca5c9eab371
        .quad 0x490a7a45d185218f
        .quad 0x9a15377846049335
        .quad 0x0060ea09cc31e1f6
        .quad 0x7e041577f86ee965
        .quad 0x66b2a496ce5b67f3
        .quad 0xff5492d8bd569796
        .quad 0x503cec294a592cd0
        .quad 0x566943650813acb2



        .quad 0xb818db0c26620798
        .quad 0x5d5c31d9606e354a
        .quad 0x0982fa4f00a8cdc7
        .quad 0x17e12bcd4653e2d4
        .quad 0x5672f9eb1dabb69d
        .quad 0xba70b535afe853fc
        .quad 0x47ac0f752796d66d
        .quad 0x32a5351794117275
        .quad 0xd3a644a6df648437
        .quad 0x703b6559880fbfdd
        .quad 0xcb852540ad3a1aa5
        .quad 0x0900b3f78e4c6468



        .quad 0x0a851b9f679d651b
        .quad 0xe108cb61033342f2
        .quad 0xd601f57fe88b30a3
        .quad 0x371f3acaed2dd714
        .quad 0xed280fbec816ad31
        .quad 0x52d9595bd8e6efe3
        .quad 0x0fe71772f6c623f5
        .quad 0x4314030b051e293c
        .quad 0xd560005efbf0bcad
        .quad 0x8eb70f2ed1870c5e
        .quad 0x201f9033d084e6a0
        .quad 0x4c3a5ae1ce7b6670



        .quad 0x4138a434dcb8fa95
        .quad 0x870cf67d6c96840b
        .quad 0xde388574297be82c
        .quad 0x7c814db27262a55a
        .quad 0xbaf875e4c93da0dd
        .quad 0xb93282a771b9294d
        .quad 0x80d63fb7f4c6c460
        .quad 0x6de9c73dea66c181
        .quad 0x478904d5a04df8f2
        .quad 0xfafbae4ab10142d3
        .quad 0xf6c8ac63555d0998
        .quad 0x5aac4a412f90b104



        .quad 0xc64f326b3ac92908
        .quad 0x5551b282e663e1e0
        .quad 0x476b35f54a1a4b83
        .quad 0x1b9da3fe189f68c2
        .quad 0x603a0d0abd7f5134
        .quad 0x8089c932e1d3ae46
        .quad 0xdf2591398798bd63
        .quad 0x1c145cd274ba0235
        .quad 0x32e8386475f3d743
        .quad 0x365b8baf6ae5d9ef
        .quad 0x825238b6385b681e
        .quad 0x234929c1167d65e1



        .quad 0x984decaba077ade8
        .quad 0x383f77ad19eb389d
        .quad 0xc7ec6b7e2954d794
        .quad 0x59c77b3aeb7c3a7a
        .quad 0x48145cc21d099fcf
        .quad 0x4535c192cc28d7e5
        .quad 0x80e7c1e548247e01
        .quad 0x4a5f28743b2973ee
        .quad 0xd3add725225ccf62
        .quad 0x911a3381b2152c5d
        .quad 0xd8b39fad5b08f87d
        .quad 0x6f05606b4799fe3b



        .quad 0x9ffe9e92177ba962
        .quad 0x98aee71d0de5cae1
        .quad 0x3ff4ae942d831044
        .quad 0x714de12e58533ac8
        .quad 0x5b433149f91b6483
        .quad 0xadb5dc655a2cbf62
        .quad 0x87fa8412632827b3
        .quad 0x60895e91ab49f8d8
        .quad 0xe9ecf2ed0cf86c18
        .quad 0xb46d06120735dfd4
        .quad 0xbc9da09804b96be7
        .quad 0x73e2e62fd96dc26b



        .quad 0xed5b635449aa515e
        .quad 0xa865c49f0bc6823a
        .quad 0x850c1fe95b42d1c4
        .quad 0x30d76d6f03d315b9
        .quad 0x2eccdd0e632f9c1d
        .quad 0x51d0b69676893115
        .quad 0x52dfb76ba8637a58
        .quad 0x6dd37d49a00eef39
        .quad 0x6c4444172106e4c7
        .quad 0xfb53d680928d7f69
        .quad 0xb4739ea4694d3f26
        .quad 0x10c697112e864bb0



        .quad 0x6493c4277dbe5fde
        .quad 0x265d4fad19ad7ea2
        .quad 0x0e00dfc846304590
        .quad 0x25e61cabed66fe09
        .quad 0x0ca62aa08358c805
        .quad 0x6a3d4ae37a204247
        .quad 0x7464d3a63b11eddc
        .quad 0x03bf9baf550806ef
        .quad 0x3f13e128cc586604
        .quad 0x6f5873ecb459747e
        .quad 0xa0b63dedcc1268f5
        .quad 0x566d78634586e22c



        .quad 0x1637a49f9cc10834
        .quad 0xbc8e56d5a89bc451
        .quad 0x1cb5ec0f7f7fd2db
        .quad 0x33975bca5ecc35d9
        .quad 0xa1054285c65a2fd0
        .quad 0x6c64112af31667c3
        .quad 0x680ae240731aee58
        .quad 0x14fba5f34793b22a
        .quad 0x3cd746166985f7d4
        .quad 0x593e5e84c9c80057
        .quad 0x2fc3f2b67b61131e
        .quad 0x14829cea83fc526c



        .quad 0xff437b8497dd95c2
        .quad 0x6c744e30aa4eb5a7
        .quad 0x9e0c5d613c85e88b
        .quad 0x2fd9c71e5f758173
        .quad 0x21e70b2f4e71ecb8
        .quad 0xe656ddb940a477e3
        .quad 0xbf6556cece1d4f80
        .quad 0x05fc3bc4535d7b7e
        .quad 0x24b8b3ae52afdedd
        .quad 0x3495638ced3b30cf
        .quad 0x33a4bc83a9be8195
        .quad 0x373767475c651f04



        .quad 0x2fba99fd40d1add9
        .quad 0xb307166f96f4d027
        .quad 0x4363f05215f03bae
        .quad 0x1fbea56c3b18f999
        .quad 0x634095cb14246590
        .quad 0xef12144016c15535
        .quad 0x9e38140c8910bc60
        .quad 0x6bf5905730907c8c
        .quad 0x0fa778f1e1415b8a
        .quad 0x06409ff7bac3a77e
        .quad 0x6f52d7b89aa29a50
        .quad 0x02521cf67a635a56



        .quad 0x513fee0b0a9d5294
        .quad 0x8f98e75c0fdf5a66
        .quad 0xd4618688bfe107ce
        .quad 0x3fa00a7e71382ced
        .quad 0xb1146720772f5ee4
        .quad 0xe8f894b196079ace
        .quad 0x4af8224d00ac824a
        .quad 0x001753d9f7cd6cc4
        .quad 0x3c69232d963ddb34
        .quad 0x1dde87dab4973858
        .quad 0xaad7d1f9a091f285
        .quad 0x12b5fe2fa048edb6



        .quad 0x71f0fbc496fce34d
        .quad 0x73b9826badf35bed
        .quad 0xd2047261ff28c561
        .quad 0x749b76f96fb1206f
        .quad 0xdf2b7c26ad6f1e92
        .quad 0x4b66d323504b8913
        .quad 0x8c409dc0751c8bc3
        .quad 0x6f7e93c20796c7b8
        .quad 0x1f5af604aea6ae05
        .quad 0xc12351f1bee49c99
        .quad 0x61a808b5eeff6b66
        .quad 0x0fcec10f01e02151



        .quad 0x644d58a649fe1e44
        .quad 0x21fcaea231ad777e
        .quad 0x02441c5a887fd0d2
        .quad 0x4901aa7183c511f3
        .quad 0x3df2d29dc4244e45
        .quad 0x2b020e7493d8de0a
        .quad 0x6cc8067e820c214d
        .quad 0x413779166feab90a
        .quad 0x08b1b7548c1af8f0
        .quad 0xce0f7a7c246299b4
        .quad 0xf760b0f91e06d939
        .quad 0x41bb887b726d1213



        .quad 0x9267806c567c49d8
        .quad 0x066d04ccca791e6a
        .quad 0xa69f5645e3cc394b
        .quad 0x5c95b686a0788cd2
        .quad 0x97d980e0aa39f7d2
        .quad 0x35d0384252c6b51c
        .quad 0x7d43f49307cd55aa
        .quad 0x56bd36cfb78ac362
        .quad 0x2ac519c10d14a954
        .quad 0xeaf474b494b5fa90
        .quad 0xe6af8382a9f87a5a
        .quad 0x0dea6db1879be094



        .quad 0xaa66bf547344e5ab
        .quad 0xda1258888f1b4309
        .quad 0x5e87d2b3fd564b2f
        .quad 0x5b2c78885483b1dd
        .quad 0x15baeb74d6a8797a
        .quad 0x7ef55cf1fac41732
        .quad 0x29001f5a3c8b05c5
        .quad 0x0ad7cc8752eaccfb
        .quad 0x52151362793408cf
        .quad 0xeb0f170319963d94
        .quad 0xa833b2fa883d9466
        .quad 0x093a7fa775003c78



        .quad 0xe5107de63a16d7be
        .quad 0xa377ffdc9af332cf
        .quad 0x70d5bf18440b677f
        .quad 0x6a252b19a4a31403
        .quad 0xb8e9604460a91286
        .quad 0x7f3fd8047778d3de
        .quad 0x67d01e31bf8a5e2d
        .quad 0x7b038a06c27b653e
        .quad 0x9ed919d5d36990f3
        .quad 0x5213aebbdb4eb9f2
        .quad 0xc708ea054cb99135
        .quad 0x58ded57f72260e56



        .quad 0x78e79dade9413d77
        .quad 0xf257f9d59729e67d
        .quad 0x59db910ee37aa7e6
        .quad 0x6aa11b5bbb9e039c
        .quad 0xda6d53265b0fd48b
        .quad 0x8960823193bfa988
        .quad 0xd78ac93261d57e28
        .quad 0x79f2942d3a5c8143
        .quad 0x97da2f25b6c88de9
        .quad 0x251ba7eaacf20169
        .quad 0x09b44f87ef4eb4e4
        .quad 0x7d90ab1bbc6a7da5



        .quad 0x9acca683a7016bfe
        .quad 0x90505f4df2c50b6d
        .quad 0x6b610d5fcce435aa
        .quad 0x19a10d446198ff96
        .quad 0x1a07a3f496b3c397
        .quad 0x11ceaa188f4e2532
        .quad 0x7d9498d5a7751bf0
        .quad 0x19ed161f508dd8a0
        .quad 0x560a2cd687dce6ca
        .quad 0x7f3568c48664cf4d
        .quad 0x8741e95222803a38
        .quad 0x483bdab1595653fc



        .quad 0xfa780f148734fa49
        .quad 0x106f0b70360534e0
        .quad 0x2210776fe3e307bd
        .quad 0x3286c109dde6a0fe
        .quad 0xd6cf4d0ab4da80f6
        .quad 0x82483e45f8307fe0
        .quad 0x05005269ae6f9da4
        .quad 0x1c7052909cf7877a
        .quad 0x32ee7de2874e98d4
        .quad 0x14c362e9b97e0c60
        .quad 0x5781dcde6a60a38a
        .quad 0x217dd5eaaa7aa840



        .quad 0x9db7c4d0248e1eb0
        .quad 0xe07697e14d74bf52
        .quad 0x1e6a9b173c562354
        .quad 0x7fa7c21f795a4965
        .quad 0x8bdf1fb9be8c0ec8
        .quad 0x00bae7f8e30a0282
        .quad 0x4963991dad6c4f6c
        .quad 0x07058a6e5df6f60a
        .quad 0xe9eb02c4db31f67f
        .quad 0xed25fd8910bcfb2b
        .quad 0x46c8131f5c5cddb4
        .quad 0x33b21c13a0cb9bce



        .quad 0x360692f8087d8e31
        .quad 0xf4dcc637d27163f7
        .quad 0x25a4e62065ea5963
        .quad 0x659bf72e5ac160d9
        .quad 0x9aafb9b05ee38c5b
        .quad 0xbf9d2d4e071a13c7
        .quad 0x8eee6e6de933290a
        .quad 0x1c3bab17ae109717
        .quad 0x1c9ab216c7cab7b0
        .quad 0x7d65d37407bbc3cc
        .quad 0x52744750504a58d5
        .quad 0x09f2606b131a2990



        .quad 0x40e87d44744346be
        .quad 0x1d48dad415b52b25
        .quad 0x7c3a8a18a13b603e
        .quad 0x4eb728c12fcdbdf7
        .quad 0x7e234c597c6691ae
        .quad 0x64889d3d0a85b4c8
        .quad 0xdae2c90c354afae7
        .quad 0x0a871e070c6a9e1d
        .quad 0x3301b5994bbc8989
        .quad 0x736bae3a5bdd4260
        .quad 0x0d61ade219d59e3c
        .quad 0x3ee7300f2685d464



        .quad 0xf5d255e49e7dd6b7
        .quad 0x8016115c610b1eac
        .quad 0x3c99975d92e187ca
        .quad 0x13815762979125c2
        .quad 0x43fa7947841e7518
        .quad 0xe5c6fa59639c46d7
        .quad 0xa1065e1de3052b74
        .quad 0x7d47c6a2cfb89030
        .quad 0x3fdad0148ef0d6e0
        .quad 0x9d3e749a91546f3c
        .quad 0x71ec621026bb8157
        .quad 0x148cf58d34c9ec80



        .quad 0x46a492f67934f027
        .quad 0x469984bef6840aa9
        .quad 0x5ca1bc2a89611854
        .quad 0x3ff2fa1ebd5dbbd4
        .quad 0xe2572f7d9ae4756d
        .quad 0x56c345bb88f3487f
        .quad 0x9fd10b6d6960a88d
        .quad 0x278febad4eaea1b9
        .quad 0xb1aa681f8c933966
        .quad 0x8c21949c20290c98
        .quad 0x39115291219d3c52
        .quad 0x4104dd02fe9c677b



        .quad 0x72b2bf5e1124422a
        .quad 0xa1fa0c3398a33ab5
        .quad 0x94cb6101fa52b666
        .quad 0x2c863b00afaf53d5
        .quad 0x81214e06db096ab8
        .quad 0x21a8b6c90ce44f35
        .quad 0x6524c12a409e2af5
        .quad 0x0165b5a48efca481
        .quad 0xf190a474a0846a76
        .quad 0x12eff984cd2f7cc0
        .quad 0x695e290658aa2b8f
        .quad 0x591b67d9bffec8b8



        .quad 0x312f0d1c80b49bfa
        .quad 0x5979515eabf3ec8a
        .quad 0x727033c09ef01c88
        .quad 0x3de02ec7ca8f7bcb
        .quad 0x99b9b3719f18b55d
        .quad 0xe465e5faa18c641e
        .quad 0x61081136c29f05ed
        .quad 0x489b4f867030128b
        .quad 0xd232102d3aeb92ef
        .quad 0xe16253b46116a861
        .quad 0x3d7eabe7190baa24
        .quad 0x49f5fbba496cbebf



        .quad 0x30949a108a5bcfd4
        .quad 0xdc40dd70bc6473eb
        .quad 0x92c294c1307c0d1c
        .quad 0x5604a86dcbfa6e74
        .quad 0x155d628c1e9c572e
        .quad 0x8a4d86acc5884741
        .quad 0x91a352f6515763eb
        .quad 0x06a1a6c28867515b
        .quad 0x7288d1d47c1764b6
        .quad 0x72541140e0418b51
        .quad 0x9f031a6018acf6d1
        .quad 0x20989e89fe2742c6



        .quad 0x499777fd3a2dcc7f
        .quad 0x32857c2ca54fd892
        .quad 0xa279d864d207e3a0
        .quad 0x0403ed1d0ca67e29
        .quad 0x1674278b85eaec2e
        .quad 0x5621dc077acb2bdf
        .quad 0x640a4c1661cbf45a
        .quad 0x730b9950f70595d3
        .quad 0xc94b2d35874ec552
        .quad 0xc5e6c8cf98246f8d
        .quad 0xf7cb46fa16c035ce
        .quad 0x5bd7454308303dcc



        .quad 0x7f9ad19528b24cc2
        .quad 0x7f6b54656335c181
        .quad 0x66b8b66e4fc07236
        .quad 0x133a78007380ad83
        .quad 0x85c4932115e7792a
        .quad 0xc64c89a2bdcdddc9
        .quad 0x9d1e3da8ada3d762
        .quad 0x5bb7db123067f82c
        .quad 0x0961f467c6ca62be
        .quad 0x04ec21d6211952ee
        .quad 0x182360779bd54770
        .quad 0x740dca6d58f0e0d2



        .quad 0x50b70bf5d3f0af0b
        .quad 0x4feaf48ae32e71f7
        .quad 0x60e84ed3a55bbd34
        .quad 0x00ed489b3f50d1ed
        .quad 0x3906c72aed261ae5
        .quad 0x9ab68fd988e100f7
        .quad 0xf5e9059af3360197
        .quad 0x0e53dc78bf2b6d47
        .quad 0xb90829bf7971877a
        .quad 0x5e4444636d17e631
        .quad 0x4d05c52e18276893
        .quad 0x27632d9a5a4a4af5



        .quad 0xd11ff05154b260ce
        .quad 0xd86dc38e72f95270
        .quad 0x601fcd0d267cc138
        .quad 0x2b67916429e90ccd
        .quad 0xa98285d187eaffdb
        .quad 0xa5b4fbbbd8d0a864
        .quad 0xb658f27f022663f7
        .quad 0x3bbc2b22d99ce282
        .quad 0xb917c952583c0a58
        .quad 0x653ff9b80fe4c6f3
        .quad 0x9b0da7d7bcdf3c0c
        .quad 0x43a0eeb6ab54d60e



        .quad 0x396966a46d4a5487
        .quad 0xf811a18aac2bb3ba
        .quad 0x66e4685b5628b26b
        .quad 0x70a477029d929b92
        .quad 0x3ac6322357875fe8
        .quad 0xd9d4f4ecf5fbcb8f
        .quad 0x8dee8493382bb620
        .quad 0x50c5eaa14c799fdc
        .quad 0xdd0edc8bd6f2fb3c
        .quad 0x54c63aa79cc7b7a0
        .quad 0xae0b032b2c8d9f1a
        .quad 0x6f9ce107602967fb



        .quad 0xad1054b1cde1c22a
        .quad 0xc4a8e90248eb32df
        .quad 0x5f3e7b33accdc0ea
        .quad 0x72364713fc79963e
        .quad 0x139693063520e0b5
        .quad 0x437fcf7c88ea03fe
        .quad 0xf7d4c40bd3c959bc
        .quad 0x699154d1f893ded9
        .quad 0x315d5c75b4b27526
        .quad 0xcccb842d0236daa5
        .quad 0x22f0c8a3345fee8e
        .quad 0x73975a617d39dbed



        .quad 0xe4024df96375da10
        .quad 0x78d3251a1830c870
        .quad 0x902b1948658cd91c
        .quad 0x7e18b10b29b7438a
        .quad 0x6f37f392f4433e46
        .quad 0x0e19b9a11f566b18
        .quad 0x220fb78a1fd1d662
        .quad 0x362a4258a381c94d
        .quad 0x9071d9132b6beb2f
        .quad 0x0f26e9ad28418247
        .quad 0xeab91ec9bdec925d
        .quad 0x4be65bc8f48af2de



        .quad 0x78487feba36e7028
        .quad 0x5f3f13001dd8ce34
        .quad 0x934fb12d4b30c489
        .quad 0x056c244d397f0a2b
        .quad 0x1d50fba257c26234
        .quad 0x7bd4823adeb0678b
        .quad 0xc2b0dc6ea6538af5
        .quad 0x5665eec6351da73e
        .quad 0xdb3ee00943bfb210
        .quad 0x4972018720800ac2
        .quad 0x26ab5d6173bd8667
        .quad 0x20b209c2ab204938



        .quad 0x549e342ac07fb34b
        .quad 0x02d8220821373d93
        .quad 0xbc262d70acd1f567
        .quad 0x7a92c9fdfbcac784
        .quad 0x1fcca94516bd3289
        .quad 0x448d65aa41420428
        .quad 0x59c3b7b216a55d62
        .quad 0x49992cc64e612cd8
        .quad 0x65bd1bea70f801de
        .quad 0x1befb7c0fe49e28a
        .quad 0xa86306cdb1b2ae4a
        .quad 0x3b7ac0cd265c2a09



        .quad 0x822bee438c01bcec
        .quad 0x530cb525c0fbc73b
        .quad 0x48519034c1953fe9
        .quad 0x265cc261e09a0f5b
        .quad 0xf0d54e4f22ed39a7
        .quad 0xa2aae91e5608150a
        .quad 0xf421b2e9eddae875
        .quad 0x31bc531d6b7de992
        .quad 0xdf3d134da980f971
        .quad 0x7a4fb8d1221a22a7
        .quad 0x3df7d42035aad6d8
        .quad 0x2a14edcc6a1a125e



        .quad 0xdf48ee0752cfce4e
        .quad 0xc3fffaf306ec08b7
        .quad 0x05710b2ab95459c4
        .quad 0x161d25fa963ea38d
        .quad 0x231a8c570478433c
        .quad 0xb7b5270ec281439d
        .quad 0xdbaa99eae3d9079f
        .quad 0x2c03f5256c2b03d9
        .quad 0x790f18757b53a47d
        .quad 0x307b0130cf0c5879
        .quad 0x31903d77257ef7f9
        .quad 0x699468bdbd96bbaf



        .quad 0xbd1f2f46f4dafecf
        .quad 0x7cef0114a47fd6f7
        .quad 0xd31ffdda4a47b37f
        .quad 0x525219a473905785
        .quad 0xd8dd3de66aa91948
        .quad 0x485064c22fc0d2cc
        .quad 0x9b48246634fdea2f
        .quad 0x293e1c4e6c4a2e3a
        .quad 0x376e134b925112e1
        .quad 0x703778b5dca15da0
        .quad 0xb04589af461c3111
        .quad 0x5b605c447f032823



        .quad 0xb965805920c47c89
        .quad 0xe7f0100c923b8fcc
        .quad 0x0001256502e2ef77
        .quad 0x24a76dcea8aeb3ee
        .quad 0x3be9fec6f0e7f04c
        .quad 0x866a579e75e34962
        .quad 0x5542ef161e1de61a
        .quad 0x2f12fef4cc5abdd5
        .quad 0x0a4522b2dfc0c740
        .quad 0x10d06e7f40c9a407
        .quad 0xc6cf144178cff668
        .quad 0x5e607b2518a43790



        .quad 0x58b31d8f6cdf1818
        .quad 0x35cfa74fc36258a2
        .quad 0xe1b3ff4f66e61d6e
        .quad 0x5067acab6ccdd5f7
        .quad 0xa02c431ca596cf14
        .quad 0xe3c42d40aed3e400
        .quad 0xd24526802e0f26db
        .quad 0x201f33139e457068
        .quad 0xfd527f6b08039d51
        .quad 0x18b14964017c0006
        .quad 0xd5220eb02e25a4a8
        .quad 0x397cba8862460375



        .quad 0x30c13093f05959b2
        .quad 0xe23aa18de9a97976
        .quad 0x222fd491721d5e26
        .quad 0x2339d320766e6c3a
        .quad 0x7815c3fbc81379e7
        .quad 0xa6619420dde12af1
        .quad 0xffa9c0f885a8fdd5
        .quad 0x771b4022c1e1c252
        .quad 0xd87dd986513a2fa7
        .quad 0xf5ac9b71f9d4cf08
        .quad 0xd06bc31b1ea283b3
        .quad 0x331a189219971a76



        .quad 0xf5166f45fb4f80c6
        .quad 0x9c36c7de61c775cf
        .quad 0xe3d4e81b9041d91c
        .quad 0x31167c6b83bdfe21
        .quad 0x26512f3a9d7572af
        .quad 0x5bcbe28868074a9e
        .quad 0x84edc1c11180f7c4
        .quad 0x1ac9619ff649a67b
        .quad 0xf22b3842524b1068
        .quad 0x5068343bee9ce987
        .quad 0xfc9d71844a6250c8
        .quad 0x612436341f08b111



        .quad 0xd99d41db874e898d
        .quad 0x09fea5f16c07dc20
        .quad 0x793d2c67d00f9bbc
        .quad 0x46ebe2309e5eff40
        .quad 0x8b6349e31a2d2638
        .quad 0x9ddfb7009bd3fd35
        .quad 0x7f8bf1b8a3a06ba4
        .quad 0x1522aa3178d90445
        .quad 0x2c382f5369614938
        .quad 0xdafe409ab72d6d10
        .quad 0xe8c83391b646f227
        .quad 0x45fe70f50524306c



        .quad 0xda4875a6960c0b8c
        .quad 0x5b68d076ef0e2f20
        .quad 0x07fb51cf3d0b8fd4
        .quad 0x428d1623a0e392d4
        .quad 0x62f24920c8951491
        .quad 0x05f007c83f630ca2
        .quad 0x6fbb45d2f5c9d4b8
        .quad 0x16619f6db57a2245
        .quad 0x084f4a4401a308fd
        .quad 0xa82219c376a5caac
        .quad 0xdeb8de4643d1bc7d
        .quad 0x1d81592d60bd38c6



        .quad 0xd833d7beec2a4c38
        .quad 0x2c9162830acc20ed
        .quad 0xe93a47aa92df7581
        .quad 0x702d67a3333c4a81
        .quad 0x3a4a369a2f89c8a1
        .quad 0x63137a1d7c8de80d
        .quad 0xbcac008a78eda015
        .quad 0x2cb8b3a5b483b03f
        .quad 0x36e417cbcb1b90a1
        .quad 0x33b3ddaa7f11794e
        .quad 0x3f510808885bc607
        .quad 0x24141dc0e6a8020d



        .quad 0x59f73c773fefee9d
        .quad 0xb3f1ef89c1cf989d
        .quad 0xe35dfb42e02e545f
        .quad 0x5766120b47a1b47c
        .quad 0x91925dccbd83157d
        .quad 0x3ca1205322cc8094
        .quad 0x28e57f183f90d6e4
        .quad 0x1a4714cede2e767b
        .quad 0xdb20ba0fb8b6b7ff
        .quad 0xb732c3b677511fa1
        .quad 0xa92b51c099f02d89
        .quad 0x4f3875ad489ca5f1



        .quad 0xc7fc762f4932ab22
        .quad 0x7ac0edf72f4c3c1b
        .quad 0x5f6b55aa9aa895e8
        .quad 0x3680274dad0a0081
        .quad 0x79ed13f6ee73eec0
        .quad 0xa5c6526d69110bb1
        .quad 0xe48928c38603860c
        .quad 0x722a1446fd7059f5
        .quad 0xd0959fe9a8cf8819
        .quad 0xd0a995508475a99c
        .quad 0x6eac173320b09cc5
        .quad 0x628ecf04331b1095



        .quad 0x98bcb118a9d0ddbc
        .quad 0xee449e3408b4802b
        .quad 0x87089226b8a6b104
        .quad 0x685f349a45c7915d
        .quad 0x9b41acf85c74ccf1
        .quad 0xb673318108265251
        .quad 0x99c92aed11adb147
        .quad 0x7a47d70d34ecb40f
        .quad 0x60a0c4cbcc43a4f5
        .quad 0x775c66ca3677bea9
        .quad 0xa17aa1752ff8f5ed
        .quad 0x11ded9020e01fdc0



        .quad 0x890e7809caefe704
        .quad 0x8728296de30e8c6c
        .quad 0x4c5cd2a392aeb1c9
        .quad 0x194263d15771531f
        .quad 0x471f95b03bea93b7
        .quad 0x0552d7d43313abd3
        .quad 0xbd9370e2e17e3f7b
        .quad 0x7b120f1db20e5bec
        .quad 0x17d2fb3d86502d7a
        .quad 0xb564d84450a69352
        .quad 0x7da962c8a60ed75d
        .quad 0x00d0f85b318736aa



        .quad 0x978b142e777c84fd
        .quad 0xf402644705a8c062
        .quad 0xa67ad51be7e612c7
        .quad 0x2f7b459698dd6a33
        .quad 0xa6753c1efd7621c1
        .quad 0x69c0b4a7445671f5
        .quad 0x971f527405b23c11
        .quad 0x387bc74851a8c7cd
        .quad 0x81894b4d4a52a9a8
        .quad 0xadd93e12f6b8832f
        .quad 0x184d8548b61bd638
        .quad 0x3f1c62dbd6c9f6cd



        .quad 0x2e8f1f0091910c1f
        .quad 0xa4df4fe0bff2e12c
        .quad 0x60c6560aee927438
        .quad 0x6338283facefc8fa
        .quad 0x3fad3e40148f693d
        .quad 0x052656e194eb9a72
        .quad 0x2f4dcbfd184f4e2f
        .quad 0x406f8db1c482e18b
        .quad 0x9e630d2c7f191ee4
        .quad 0x4fbf8301bc3ff670
        .quad 0x787d8e4e7afb73c4
        .quad 0x50d83d5be8f58fa5



        .quad 0x85683916c11a1897
        .quad 0x2d69a4efe506d008
        .quad 0x39af1378f664bd01
        .quad 0x65942131361517c6
        .quad 0xc0accf90b4d3b66d
        .quad 0xa7059de561732e60
        .quad 0x033d1f7870c6b0ba
        .quad 0x584161cd26d946e4
        .quad 0xbbf2b1a072d27ca2
        .quad 0xbf393c59fbdec704
        .quad 0xe98dbbcee262b81e
        .quad 0x02eebd0b3029b589



        .quad 0x61368756a60dac5f
        .quad 0x17e02f6aebabdc57
        .quad 0x7f193f2d4cce0f7d
        .quad 0x20234a7789ecdcf0
        .quad 0x8765b69f7b85c5e8
        .quad 0x6ff0678bd168bab2
        .quad 0x3a70e77c1d330f9b
        .quad 0x3a5f6d51b0af8e7c
        .quad 0x76d20db67178b252
        .quad 0x071c34f9d51ed160
        .quad 0xf62a4a20b3e41170
        .quad 0x7cd682353cffe366



        .quad 0x0be1a45bd887fab6
        .quad 0x2a846a32ba403b6e
        .quad 0xd9921012e96e6000
        .quad 0x2838c8863bdc0943
        .quad 0xa665cd6068acf4f3
        .quad 0x42d92d183cd7e3d3
        .quad 0x5759389d336025d9
        .quad 0x3ef0253b2b2cd8ff
        .quad 0xd16bb0cf4a465030
        .quad 0xfa496b4115c577ab
        .quad 0x82cfae8af4ab419d
        .quad 0x21dcb8a606a82812



        .quad 0x5c6004468c9d9fc8
        .quad 0x2540096ed42aa3cb
        .quad 0x125b4d4c12ee2f9c
        .quad 0x0bc3d08194a31dab
        .quad 0x9a8d00fabe7731ba
        .quad 0x8203607e629e1889
        .quad 0xb2cc023743f3d97f
        .quad 0x5d840dbf6c6f678b
        .quad 0x706e380d309fe18b
        .quad 0x6eb02da6b9e165c7
        .quad 0x57bbba997dae20ab
        .quad 0x3a4276232ac196dd



        .quad 0x4b42432c8a7084fa
        .quad 0x898a19e3dfb9e545
        .quad 0xbe9f00219c58e45d
        .quad 0x1ff177cea16debd1
        .quad 0x3bf8c172db447ecb
        .quad 0x5fcfc41fc6282dbd
        .quad 0x80acffc075aa15fe
        .quad 0x0770c9e824e1a9f9
        .quad 0xcf61d99a45b5b5fd
        .quad 0x860984e91b3a7924
        .quad 0xe7300919303e3e89
        .quad 0x39f264fd41500b1e



        .quad 0xa7ad3417dbe7e29c
        .quad 0xbd94376a2b9c139c
        .quad 0xa0e91b8e93597ba9
        .quad 0x1712d73468889840
        .quad 0xd19b4aabfe097be1
        .quad 0xa46dfce1dfe01929
        .quad 0xc3c908942ca6f1ff
        .quad 0x65c621272c35f14e
        .quad 0xe72b89f8ce3193dd
        .quad 0x4d103356a125c0bb
        .quad 0x0419a93d2e1cfe83
        .quad 0x22f9800ab19ce272



        .quad 0x605a368a3e9ef8cb
        .quad 0xe3e9c022a5504715
        .quad 0x553d48b05f24248f
        .quad 0x13f416cd647626e5
        .quad 0x42029fdd9a6efdac
        .quad 0xb912cebe34a54941
        .quad 0x640f64b987bdf37b
        .quad 0x4171a4d38598cab4
        .quad 0xfa2758aa99c94c8c
        .quad 0x23006f6fb000b807
        .quad 0xfbd291ddadda5392
        .quad 0x508214fa574bd1ab



        .quad 0xc20269153ed6fe4b
        .quad 0xa65a6739511d77c4
        .quad 0xcbde26462c14af94
        .quad 0x22f960ec6faba74b
        .quad 0x461a15bb53d003d6
        .quad 0xb2102888bcf3c965
        .quad 0x27c576756c683a5a
        .quad 0x3a7758a4c86cb447
        .quad 0x548111f693ae5076
        .quad 0x1dae21df1dfd54a6
        .quad 0x12248c90f3115e65
        .quad 0x5d9fd15f8de7f494



        .quad 0x031408d36d63727f
        .quad 0x6a379aefd7c7b533
        .quad 0xa9e18fc5ccaee24b
        .quad 0x332f35914f8fbed3
        .quad 0x3f244d2aeed7521e
        .quad 0x8e3a9028432e9615
        .quad 0xe164ba772e9c16d4
        .quad 0x3bc187fa47eb98d8
        .quad 0x6d470115ea86c20c
        .quad 0x998ab7cb6c46d125
        .quad 0xd77832b53a660188
        .quad 0x450d81ce906fba03



        .quad 0xf8ae4d2ad8453902
        .quad 0x7018058ee8db2d1d
        .quad 0xaab3995fc7d2c11e
        .quad 0x53b16d2324ccca79
        .quad 0x23264d66b2cae0b5
        .quad 0x7dbaed33ebca6576
        .quad 0x030ebed6f0d24ac8
        .quad 0x2a887f78f7635510
        .quad 0x2a23b9e75c012d4f
        .quad 0x0c974651cae1f2ea
        .quad 0x2fb63273675d70ca
        .quad 0x0ba7250b864403f5



        .quad 0xbb0d18fd029c6421
        .quad 0xbc2d142189298f02
        .quad 0x8347f8e68b250e96
        .quad 0x7b9f2fe8032d71c9
        .quad 0xdd63589386f86d9c
        .quad 0x61699176e13a85a4
        .quad 0x2e5111954eaa7d57
        .quad 0x32c21b57fb60bdfb
        .quad 0xd87823cd319e0780
        .quad 0xefc4cfc1897775c5
        .quad 0x4854fb129a0ab3f7
        .quad 0x12c49d417238c371



        .quad 0x0950b533ffe83769
        .quad 0x21861c1d8e1d6bd1
        .quad 0xf022d8381302e510
        .quad 0x2509200c6391cab4
        .quad 0x09b3a01783799542
        .quad 0x626dd08faad5ee3f
        .quad 0xba00bceeeb70149f
        .quad 0x1421b246a0a444c9
        .quad 0x4aa43a8e8c24a7c7
        .quad 0x04c1f540d8f05ef5
        .quad 0xadba5e0c0b3eb9dc
        .quad 0x2ab5504448a49ce3



        .quad 0x2ed227266f0f5dec
        .quad 0x9824ee415ed50824
        .quad 0x807bec7c9468d415
        .quad 0x7093bae1b521e23f
        .quad 0xdc07ac631c5d3afa
        .quad 0x58615171f9df8c6c
        .quad 0x72a079d89d73e2b0
        .quad 0x7301f4ceb4eae15d
        .quad 0x6409e759d6722c41
        .quad 0xa674e1cf72bf729b
        .quad 0xbc0a24eb3c21e569
        .quad 0x390167d24ebacb23



        .quad 0x27f58e3bba353f1c
        .quad 0x4c47764dbf6a4361
        .quad 0xafbbc4e56e562650
        .quad 0x07db2ee6aae1a45d
        .quad 0xd7bb054ba2f2120b
        .quad 0xe2b9ceaeb10589b7
        .quad 0x3fe8bac8f3c0edbe
        .quad 0x4cbd40767112cb69
        .quad 0x0b603cc029c58176
        .quad 0x5988e3825cb15d61
        .quad 0x2bb61413dcf0ad8d
        .quad 0x7b8eec6c74183287



        .quad 0xe4ca40782cd27cb0
        .quad 0xdaf9c323fbe967bd
        .quad 0xb29bd34a8ad41e9e
        .quad 0x72810497626ede4d
        .quad 0x32fee570fc386b73
        .quad 0xda8b0141da3a8cc7
        .quad 0x975ffd0ac8968359
        .quad 0x6ee809a1b132a855
        .quad 0x9444bb31fcfd863a
        .quad 0x2fe3690a3e4e48c5
        .quad 0xdc29c867d088fa25
        .quad 0x13bd1e38d173292e



        .quad 0xd32b4cd8696149b5
        .quad 0xe55937d781d8aab7
        .quad 0x0bcb2127ae122b94
        .quad 0x41e86fcfb14099b0
        .quad 0x223fb5cf1dfac521
        .quad 0x325c25316f554450
        .quad 0x030b98d7659177ac
        .quad 0x1ed018b64f88a4bd
        .quad 0x3630dfa1b802a6b0
        .quad 0x880f874742ad3bd5
        .quad 0x0af90d6ceec5a4d4
        .quad 0x746a247a37cdc5d9



        .quad 0xd531b8bd2b7b9af6
        .quad 0x5005093537fc5b51
        .quad 0x232fcf25c593546d
        .quad 0x20a365142bb40f49
        .quad 0x6eccd85278d941ed
        .quad 0x2254ae83d22f7843
        .quad 0xc522d02e7bbfcdb7
        .quad 0x681e3351bff0e4e2
        .quad 0x8b64b59d83034f45
        .quad 0x2f8b71f21fa20efb
        .quad 0x69249495ba6550e4
        .quad 0x539ef98e45d5472b



        .quad 0x6e7bb6a1a6205275
        .quad 0xaa4f21d7413c8e83
        .quad 0x6f56d155e88f5cb2
        .quad 0x2de25d4ba6345be1
        .quad 0xd074d8961cae743f
        .quad 0xf86d18f5ee1c63ed
        .quad 0x97bdc55be7f4ed29
        .quad 0x4cbad279663ab108
        .quad 0x80d19024a0d71fcd
        .quad 0xc525c20afb288af8
        .quad 0xb1a3974b5f3a6419
        .quad 0x7d7fbcefe2007233



        .quad 0xfaef1e6a266b2801
        .quad 0x866c68c4d5739f16
        .quad 0xf68a2fbc1b03762c
        .quad 0x5975435e87b75a8d
        .quad 0xcd7c5dc5f3c29094
        .quad 0xc781a29a2a9105ab
        .quad 0x80c61d36421c3058
        .quad 0x4f9cd196dcd8d4d7
        .quad 0x199297d86a7b3768
        .quad 0xd0d058241ad17a63
        .quad 0xba029cad5c1c0c17
        .quad 0x7ccdd084387a0307



        .quad 0xdca6422c6d260417
        .quad 0xae153d50948240bd
        .quad 0xa9c0c1b4fb68c677
        .quad 0x428bd0ed61d0cf53
        .quad 0x9b0c84186760cc93
        .quad 0xcdae007a1ab32a99
        .quad 0xa88dec86620bda18
        .quad 0x3593ca848190ca44
        .quad 0x9213189a5e849aa7
        .quad 0xd4d8c33565d8facd
        .quad 0x8c52545b53fdbbd1
        .quad 0x27398308da2d63e6



        .quad 0x42c38d28435ed413
        .quad 0xbd50f3603278ccc9
        .quad 0xbb07ab1a79da03ef
        .quad 0x269597aebe8c3355
        .quad 0xb9a10e4c0a702453
        .quad 0x0fa25866d57d1bde
        .quad 0xffb9d9b5cd27daf7
        .quad 0x572c2945492c33fd
        .quad 0xc77fc745d6cd30be
        .quad 0xe4dfe8d3e3baaefb
        .quad 0xa22c8830aa5dda0c
        .quad 0x7f985498c05bca80



        .quad 0x3849ce889f0be117
        .quad 0x8005ad1b7b54a288
        .quad 0x3da3c39f23fc921c
        .quad 0x76c2ec470a31f304
        .quad 0xd35615520fbf6363
        .quad 0x08045a45cf4dfba6
        .quad 0xeec24fbc873fa0c2
        .quad 0x30f2653cd69b12e7
        .quad 0x8a08c938aac10c85
        .quad 0x46179b60db276bcb
        .quad 0xa920c01e0e6fac70
        .quad 0x2f1273f1596473da



        .quad 0x4739fc7c8ae01e11
        .quad 0xfd5274904a6aab9f
        .quad 0x41d98a8287728f2e
        .quad 0x5d9e572ad85b69f2
        .quad 0x30488bd755a70bc0
        .quad 0x06d6b5a4f1d442e7
        .quad 0xead1a69ebc596162
        .quad 0x38ac1997edc5f784
        .quad 0x0666b517a751b13b
        .quad 0x747d06867e9b858c
        .quad 0xacacc011454dde49
        .quad 0x22dfcd9cbfe9e69c



        .quad 0x8ddbd2e0c30d0cd9
        .quad 0xad8e665facbb4333
        .quad 0x8f6b258c322a961f
        .quad 0x6b2916c05448c1c7
        .quad 0x56ec59b4103be0a1
        .quad 0x2ee3baecd259f969
        .quad 0x797cb29413f5cd32
        .quad 0x0fe9877824cde472
        .quad 0x7edb34d10aba913b
        .quad 0x4ea3cd822e6dac0e
        .quad 0x66083dff6578f815
        .quad 0x4c303f307ff00a17



        .quad 0xd30a3bd617b28c85
        .quad 0xc5d377b739773bea
        .quad 0xc6c6e78c1e6a5cbf
        .quad 0x0d61b8f78b2ab7c4
        .quad 0x29fc03580dd94500
        .quad 0xecd27aa46fbbec93
        .quad 0x130a155fc2e2a7f8
        .quad 0x416b151ab706a1d5
        .quad 0x56a8d7efe9c136b0
        .quad 0xbd07e5cd58e44b20
        .quad 0xafe62fda1b57e0ab
        .quad 0x191a2af74277e8d2



        .quad 0xd550095bab6f4985
        .quad 0x04f4cd5b4fbfaf1a
        .quad 0x9d8e2ed12a0c7540
        .quad 0x2bc24e04b2212286
        .quad 0x09d4b60b2fe09a14
        .quad 0xc384f0afdbb1747e
        .quad 0x58e2ea8978b5fd6e
        .quad 0x519ef577b5e09b0a
        .quad 0x1863d7d91124cca9
        .quad 0x7ac08145b88a708e
        .quad 0x2bcd7309857031f5
        .quad 0x62337a6e8ab8fae5



        .quad 0x4bcef17f06ffca16
        .quad 0xde06e1db692ae16a
        .quad 0x0753702d614f42b0
        .quad 0x5f6041b45b9212d0
        .quad 0xd1ab324e1b3a1273
        .quad 0x18947cf181055340
        .quad 0x3b5d9567a98c196e
        .quad 0x7fa00425802e1e68
        .quad 0x7d531574028c2705
        .quad 0x80317d69db0d75fe
        .quad 0x30fface8ef8c8ddd
        .quad 0x7e9de97bb6c3e998



        .quad 0x1558967b9e6585a3
        .quad 0x97c99ce098e98b92
        .quad 0x10af149b6eb3adad
        .quad 0x42181fe8f4d38cfa
        .quad 0xf004be62a24d40dd
        .quad 0xba0659910452d41f
        .quad 0x81c45ee162a44234
        .quad 0x4cb829d8a22266ef
        .quad 0x1dbcaa8407b86681
        .quad 0x081f001e8b26753b
        .quad 0x3cd7ce6a84048e81
        .quad 0x78af11633f25f22c



        .quad 0x8416ebd40b50babc
        .quad 0x1508722628208bee
        .quad 0xa3148fafb9c1c36d
        .quad 0x0d07daacd32d7d5d
        .quad 0x3241c00e7d65318c
        .quad 0xe6bee5dcd0e86de7
        .quad 0x118b2dc2fbc08c26
        .quad 0x680d04a7fc603dc3
        .quad 0xf9c2414a695aa3eb
        .quad 0xdaa42c4c05a68f21
        .quad 0x7c6c23987f93963e
        .quad 0x210e8cd30c3954e3



        .quad 0xac4201f210a71c06
        .quad 0x6a65e0aef3bfb021
        .quad 0xbc42c35c393632f7
        .quad 0x56ea8db1865f0742
        .quad 0x2b50f16137fe6c26
        .quad 0xe102bcd856e404d8
        .quad 0x12b0f1414c561f6b
        .quad 0x51b17bc8d028ec91
        .quad 0xfff5fb4bcf535119
        .quad 0xf4989d79df1108a0
        .quad 0xbdfcea659a3ba325
        .quad 0x18a11f1174d1a6f2



        .quad 0x407375ab3f6bba29
        .quad 0x9ec3b6d8991e482e
        .quad 0x99c80e82e55f92e9
        .quad 0x307c13b6fb0c0ae1
        .quad 0xfbd63cdad27a5f2c
        .quad 0xf00fc4bc8aa106d7
        .quad 0x53fb5c1a8e64a430
        .quad 0x04eaabe50c1a2e85
        .quad 0x24751021cb8ab5e7
        .quad 0xfc2344495c5010eb
        .quad 0x5f1e717b4e5610a1
        .quad 0x44da5f18c2710cd5



        .quad 0x033cc55ff1b82eb5
        .quad 0xb15ae36d411cae52
        .quad 0xba40b6198ffbacd3
        .quad 0x768edce1532e861f
        .quad 0x9156fe6b89d8eacc
        .quad 0xe6b79451e23126a1
        .quad 0xbd7463d93944eb4e
        .quad 0x726373f6767203ae
        .quad 0xe305ca72eb7ef68a
        .quad 0x662cf31f70eadb23
        .quad 0x18f026fdb4c45b68
        .quad 0x513b5384b5d2ecbd



        .quad 0x46d46280c729989e
        .quad 0x4b93fbd05368a5dd
        .quad 0x63df3f81d1765a89
        .quad 0x34cebd64b9a0a223
        .quad 0x5e2702878af34ceb
        .quad 0x900b0409b946d6ae
        .quad 0x6512ebf7dabd8512
        .quad 0x61d9b76988258f81
        .quad 0xa6c5a71349b7d94b
        .quad 0xa3f3d15823eb9446
        .quad 0x0416fbd277484834
        .quad 0x69d45e6f2c70812f



        .quad 0xce16f74bc53c1431
        .quad 0x2b9725ce2072edde
        .quad 0xb8b9c36fb5b23ee7
        .quad 0x7e2e0e450b5cc908
        .quad 0x9fe62b434f460efb
        .quad 0xded303d4a63607d6
        .quad 0xf052210eb7a0da24
        .quad 0x237e7dbe00545b93
        .quad 0x013575ed6701b430
        .quad 0x231094e69f0bfd10
        .quad 0x75320f1583e47f22
        .quad 0x71afa699b11155e3



        .quad 0x65ce6f9b3953b61d
        .quad 0xc65839eaafa141e6
        .quad 0x0f435ffda9f759fe
        .quad 0x021142e9c2b1c28e
        .quad 0xea423c1c473b50d6
        .quad 0x51e87a1f3b38ef10
        .quad 0x9b84bf5fb2c9be95
        .quad 0x00731fbc78f89a1c
        .quad 0xe430c71848f81880
        .quad 0xbf960c225ecec119
        .quad 0xb6dae0836bba15e3
        .quad 0x4c4d6f3347e15808



        .quad 0x18f7eccfc17d1fc9
        .quad 0x6c75f5a651403c14
        .quad 0xdbde712bf7ee0cdf
        .quad 0x193fddaaa7e47a22
        .quad 0x2f0cddfc988f1970
        .quad 0x6b916227b0b9f51b
        .quad 0x6ec7b6c4779176be
        .quad 0x38bf9500a88f9fa8
        .quad 0x1fd2c93c37e8876f
        .quad 0xa2f61e5a18d1462c
        .quad 0x5080f58239241276
        .quad 0x6a6fb99ebf0d4969



        .quad 0x6a46c1bb560855eb
        .quad 0x2416bb38f893f09d
        .quad 0xd71d11378f71acc1
        .quad 0x75f76914a31896ea
        .quad 0xeeb122b5b6e423c6
        .quad 0x939d7010f286ff8e
        .quad 0x90a92a831dcf5d8c
        .quad 0x136fda9f42c5eb10
        .quad 0xf94cdfb1a305bdd1
        .quad 0x0f364b9d9ff82c08
        .quad 0x2a87d8a5c3bb588a
        .quad 0x022183510be8dcba



        .quad 0x4af766385ead2d14
        .quad 0xa08ed880ca7c5830
        .quad 0x0d13a6e610211e3d
        .quad 0x6a071ce17b806c03
        .quad 0x9d5a710143307a7f
        .quad 0xb063de9ec47da45f
        .quad 0x22bbfe52be927ad3
        .quad 0x1387c441fd40426c
        .quad 0xb5d3c3d187978af8
        .quad 0x722b5a3d7f0e4413
        .quad 0x0d7b4848bb477ca0
        .quad 0x3171b26aaf1edc92



        .quad 0xa92f319097564ca8
        .quad 0xff7bb84c2275e119
        .quad 0x4f55fe37a4875150
        .quad 0x221fd4873cf0835a
        .quad 0xa60db7d8b28a47d1
        .quad 0xa6bf14d61770a4f1
        .quad 0xd4a1f89353ddbd58
        .quad 0x6c514a63344243e9
        .quad 0x2322204f3a156341
        .quad 0xfb73e0e9ba0a032d
        .quad 0xfce0dd4c410f030e
        .quad 0x48daa596fb924aaa



        .quad 0x6eca8e665ca59cc7
        .quad 0xa847254b2e38aca0
        .quad 0x31afc708d21e17ce
        .quad 0x676dd6fccad84af7
        .quad 0x14f61d5dc84c9793
        .quad 0x9941f9e3ef418206
        .quad 0xcdf5b88f346277ac
        .quad 0x58c837fa0e8a79a9
        .quad 0x0cf9688596fc9058
        .quad 0x1ddcbbf37b56a01b
        .quad 0xdcc2e77d4935d66a
        .quad 0x1c4f73f2c6a57f0a



        .quad 0x0e7a4fbd305fa0bb
        .quad 0x829d4ce054c663ad
        .quad 0xf421c3832fe33848
        .quad 0x795ac80d1bf64c42
        .quad 0xb36e706efc7c3484
        .quad 0x73dfc9b4c3c1cf61
        .quad 0xeb1d79c9781cc7e5
        .quad 0x70459adb7daf675c
        .quad 0x1b91db4991b42bb3
        .quad 0x572696234b02dcca
        .quad 0x9fdf9ee51f8c78dc
        .quad 0x5fe162848ce21fd3



        .quad 0xe2790aae4d077c41
        .quad 0x8b938270db7469a3
        .quad 0x6eb632dc8abd16a2
        .quad 0x720814ecaa064b72
        .quad 0x315c29c795115389
        .quad 0xd7e0e507862f74ce
        .quad 0x0c4a762185927432
        .quad 0x72de6c984a25a1e4
        .quad 0xae9ab553bf6aa310
        .quad 0x050a50a9806d6e1b
        .quad 0x92bb7403adff5139
        .quad 0x0394d27645be618b



        .quad 0x4d572251857eedf4
        .quad 0xe3724edde19e93c5
        .quad 0x8a71420e0b797035
        .quad 0x3b3c833687abe743
        .quad 0xf5396425b23545a4
        .quad 0x15a7a27e98fbb296
        .quad 0xab6c52bc636fdd86
        .quad 0x79d995a8419334ee
        .quad 0xcd8a8ea61195dd75
        .quad 0xa504d8a81dd9a82f
        .quad 0x540dca81a35879b6
        .quad 0x60dd16a379c86a8a



        .quad 0x35a2c8487381e559
        .quad 0x596ffea6d78082cb
        .quad 0xcb9771ebdba7b653
        .quad 0x5a08b5019b4da685
        .quad 0x3501d6f8153e47b8
        .quad 0xb7a9675414a2f60c
        .quad 0x112ee8b6455d9523
        .quad 0x4e62a3c18112ea8a
        .quad 0xc8d4ac04516ab786
        .quad 0x595af3215295b23d
        .quad 0xd6edd234db0230c1
        .quad 0x0929efe8825b41cc



        .quad 0x5f0601d1cbd0f2d3
        .quad 0x736e412f6132bb7f
        .quad 0x83604432238dde87
        .quad 0x1e3a5272f5c0753c
        .quad 0x8b3172b7ad56651d
        .quad 0x01581b7a3fabd717
        .quad 0x2dc94df6424df6e4
        .quad 0x30376e5d2c29284f
        .quad 0xd2918da78159a59c
        .quad 0x6bdc1cd93f0713f3
        .quad 0x565f7a934acd6590
        .quad 0x53daacec4cb4c128



        .quad 0x4ca73bd79cc8a7d6
        .quad 0x4d4a738f47e9a9b2
        .quad 0xf4cbf12942f5fe00
        .quad 0x01a13ff9bdbf0752
        .quad 0x99852bc3852cfdb0
        .quad 0x2cc12e9559d6ed0b
        .quad 0x70f9e2bf9b5ac27b
        .quad 0x4f3b8c117959ae99
        .quad 0x55b6c9c82ff26412
        .quad 0x1ac4a8c91fb667a8
        .quad 0xd527bfcfeb778bf2
        .quad 0x303337da7012a3be



        .quad 0x955422228c1c9d7c
        .quad 0x01fac1371a9b340f
        .quad 0x7e8d9177925b48d7
        .quad 0x53f8ad5661b3e31b
        .quad 0x976d3ccbfad2fdd1
        .quad 0xcb88839737a640a8
        .quad 0x2ff00c1d6734cb25
        .quad 0x269ff4dc789c2d2b
        .quad 0x0c003fbdc08d678d
        .quad 0x4d982fa37ead2b17
        .quad 0xc07e6bcdb2e582f1
        .quad 0x296c7291df412a44



        .quad 0x7903de2b33daf397
        .quad 0xd0ff0619c9a624b3
        .quad 0x8a1d252b555b3e18
        .quad 0x2b6d581c52e0b7c0
        .quad 0xdfb23205dab8b59e
        .quad 0x465aeaa0c8092250
        .quad 0xd133c1189a725d18
        .quad 0x2327370261f117d1
        .quad 0x3d0543d3623e7986
        .quad 0x679414c2c278a354
        .quad 0xae43f0cc726196f6
        .quad 0x7836c41f8245eaba



        .quad 0xe7a254db49e95a81
        .quad 0x5192d5d008b0ad73
        .quad 0x4d20e5b1d00afc07
        .quad 0x5d55f8012cf25f38
        .quad 0xca651e848011937c
        .quad 0xc6b0c46e6ef41a28
        .quad 0xb7021ba75f3f8d52
        .quad 0x119dff99ead7b9fd
        .quad 0x43eadfcbf4b31d4d
        .quad 0xc6503f7411148892
        .quad 0xfeee68c5060d3b17
        .quad 0x329293b3dd4a0ac8



        .quad 0x4e59214fe194961a
        .quad 0x49be7dc70d71cd4f
        .quad 0x9300cfd23b50f22d
        .quad 0x4789d446fc917232
        .quad 0x2879852d5d7cb208
        .quad 0xb8dedd70687df2e7
        .quad 0xdc0bffab21687891
        .quad 0x2b44c043677daa35
        .quad 0x1a1c87ab074eb78e
        .quad 0xfac6d18e99daf467
        .quad 0x3eacbbcd484f9067
        .quad 0x60c52eef2bb9a4e4



        .quad 0x0b5d89bc3bfd8bf1
        .quad 0xb06b9237c9f3551a
        .quad 0x0e4c16b0d53028f5
        .quad 0x10bc9c312ccfcaab
        .quad 0x702bc5c27cae6d11
        .quad 0x44c7699b54a48cab
        .quad 0xefbc4056ba492eb2
        .quad 0x70d77248d9b6676d
        .quad 0xaa8ae84b3ec2a05b
        .quad 0x98699ef4ed1781e0
        .quad 0x794513e4708e85d1
        .quad 0x63755bd3a976f413



        .quad 0xb55fa03e2ad10853
        .quad 0x356f75909ee63569
        .quad 0x9ff9f1fdbe69b890
        .quad 0x0d8cc1c48bc16f84
        .quad 0x3dc7101897f1acb7
        .quad 0x5dda7d5ec165bbd8
        .quad 0x508e5b9c0fa1020f
        .quad 0x2763751737c52a56
        .quad 0x029402d36eb419a9
        .quad 0xf0b44e7e77b460a5
        .quad 0xcfa86230d43c4956
        .quad 0x70c2dd8a7ad166e7



        .quad 0x656194509f6fec0e
        .quad 0xee2e7ea946c6518d
        .quad 0x9733c1f367e09b5c
        .quad 0x2e0fac6363948495
        .quad 0x91d4967db8ed7e13
        .quad 0x74252f0ad776817a
        .quad 0xe40982e00d852564
        .quad 0x32b8613816a53ce5
        .quad 0x79e7f7bee448cd64
        .quad 0x6ac83a67087886d0
        .quad 0xf89fd4d9a0e4db2e
        .quad 0x4179215c735a4f41



        .quad 0x8c7094e7d7dced2a
        .quad 0x97fb8ac347d39c70
        .quad 0xe13be033a906d902
        .quad 0x700344a30cd99d76
        .quad 0xe4ae33b9286bcd34
        .quad 0xb7ef7eb6559dd6dc
        .quad 0x278b141fb3d38e1f
        .quad 0x31fa85662241c286
        .quad 0xaf826c422e3622f4
        .quad 0xc12029879833502d
        .quad 0x9bc1b7e12b389123
        .quad 0x24bb2312a9952489



        .quad 0xb1a8ed1732de67c3
        .quad 0x3cb49418461b4948
        .quad 0x8ebd434376cfbcd2
        .quad 0x0fee3e871e188008
        .quad 0x41f80c2af5f85c6b
        .quad 0x687284c304fa6794
        .quad 0x8945df99a3ba1bad
        .quad 0x0d1d2af9ffeb5d16
        .quad 0xa9da8aa132621edf
        .quad 0x30b822a159226579
        .quad 0x4004197ba79ac193
        .quad 0x16acd79718531d76



        .quad 0x72df72af2d9b1d3d
        .quad 0x63462a36a432245a
        .quad 0x3ecea07916b39637
        .quad 0x123e0ef6b9302309
        .quad 0xc959c6c57887b6ad
        .quad 0x94e19ead5f90feba
        .quad 0x16e24e62a342f504
        .quad 0x164ed34b18161700
        .quad 0x487ed94c192fe69a
        .quad 0x61ae2cea3a911513
        .quad 0x877bf6d3b9a4de27
        .quad 0x78da0fc61073f3eb



        .quad 0x5bf15d28e52bc66a
        .quad 0x2c47e31870f01a8e
        .quad 0x2419afbc06c28bdd
        .quad 0x2d25deeb256b173a
        .quad 0xa29f80f1680c3a94
        .quad 0x71f77e151ae9e7e6
        .quad 0x1100f15848017973
        .quad 0x054aa4b316b38ddd
        .quad 0xdfc8468d19267cb8
        .quad 0x0b28789c66e54daf
        .quad 0x2aeb1d2a666eec17
        .quad 0x134610a6ab7da760



        .quad 0xcaf55ec27c59b23f
        .quad 0x99aeed3e154d04f2
        .quad 0x68441d72e14141f4
        .quad 0x140345133932a0a2
        .quad 0xd91430e0dc028c3c
        .quad 0x0eb955a85217c771
        .quad 0x4b09e1ed2c99a1fa
        .quad 0x42881af2bd6a743c
        .quad 0x7bfec69aab5cad3d
        .quad 0xc23e8cd34cb2cfad
        .quad 0x685dd14bfb37d6a2
        .quad 0x0ad6d64415677a18



        .quad 0x781a439e417becb5
        .quad 0x4ac5938cd10e0266
        .quad 0x5da385110692ac24
        .quad 0x11b065a2ade31233
        .quad 0x7914892847927e9f
        .quad 0x33dad6ef370aa877
        .quad 0x1f8f24fa11122703
        .quad 0x5265ac2f2adf9592
        .quad 0x405fdd309afcb346
        .quad 0xd9723d4428e63f54
        .quad 0x94c01df05f65aaae
        .quad 0x43e4dc3ae14c0809



        .quad 0xbc12c7f1a938a517
        .quad 0x473028ab3180b2e1
        .quad 0x3f78571efbcd254a
        .quad 0x74e534426ff6f90f
        .quad 0xea6f7ac3adc2c6a3
        .quad 0xd0e928f6e9717c94
        .quad 0xe2d379ead645eaf5
        .quad 0x46dd8785c51ffbbe
        .quad 0x709801be375c8898
        .quad 0x4b06dab5e3fd8348
        .quad 0x75880ced27230714
        .quad 0x2b09468fdd2f4c42



        .quad 0x97c749eeb701cb96
        .quad 0x83f438d4b6a369c3
        .quad 0x62962b8b9a402cd9
        .quad 0x6976c7509888df7b
        .quad 0x5b97946582ffa02a
        .quad 0xda096a51fea8f549
        .quad 0xa06351375f77af9b
        .quad 0x1bcfde61201d1e76
        .quad 0x4a4a5490246a59a2
        .quad 0xd63ebddee87fdd90
        .quad 0xd9437c670d2371fa
        .quad 0x69e87308d30f8ed6



        .quad 0x435a8bb15656beb0
        .quad 0xf8fac9ba4f4d5bca
        .quad 0xb9b278c41548c075
        .quad 0x3eb0ef76e892b622
        .quad 0x0f80bf028bc80303
        .quad 0x6aae16b37a18cefb
        .quad 0xdd47ea47d72cd6a3
        .quad 0x61943588f4ed39aa
        .quad 0xd26e5c3e91039f85
        .quad 0xc0e9e77df6f33aa9
        .quad 0xe8968c5570066a93
        .quad 0x3c34d1881faaaddd



        .quad 0x3f9d2b5ea09f9ec0
        .quad 0x1dab3b6fb623a890
        .quad 0xa09ba3ea72d926c4
        .quad 0x374193513fd8b36d
        .quad 0xbd5b0b8f2fffe0d9
        .quad 0x6aa254103ed24fb9
        .quad 0x2ac7d7bcb26821c4
        .quad 0x605b394b60dca36a
        .quad 0xb4e856e45a9d1ed2
        .quad 0xefe848766c97a9a2
        .quad 0xb104cf641e5eee7d
        .quad 0x2f50b81c88a71c8f



        .quad 0x31723c61fc6811bb
        .quad 0x9cb450486211800f
        .quad 0x768933d347995753
        .quad 0x3491a53502752fcd
        .quad 0x2b552ca0a7da522a
        .quad 0x3230b336449b0250
        .quad 0xf2c4c5bca4b99fb9
        .quad 0x7b2c674958074a22
        .quad 0xd55165883ed28cdf
        .quad 0x12d84fd2d362de39
        .quad 0x0a874ad3e3378e4f
        .quad 0x000d2b1f7c763e74



        .quad 0x3d420811d06d4a67
        .quad 0xbefc048590e0ffe3
        .quad 0xf870c6b7bd487bde
        .quad 0x6e2a7316319afa28
        .quad 0x9624778c3e94a8ab
        .quad 0x0ad6f3cee9a78bec
        .quad 0x948ac7810d743c4f
        .quad 0x76627935aaecfccc
        .quad 0x56a8ac24d6d59a9f
        .quad 0xc8db753e3096f006
        .quad 0x477f41e68f4c5299
        .quad 0x588d851cf6c86114



        .quad 0x51138ec78df6b0fe
        .quad 0x5397da89e575f51b
        .quad 0x09207a1d717af1b9
        .quad 0x2102fdba2b20d650
        .quad 0xcd2a65e777d1f515
        .quad 0x548991878faa60f1
        .quad 0xb1b73bbcdabc06e5
        .quad 0x654878cba97cc9fb
        .quad 0x969ee405055ce6a1
        .quad 0x36bca7681251ad29
        .quad 0x3a1af517aa7da415
        .quad 0x0ad725db29ecb2ba



        .quad 0xdc4267b1834e2457
        .quad 0xb67544b570ce1bc5
        .quad 0x1af07a0bf7d15ed7
        .quad 0x4aefcffb71a03650
        .quad 0xfec7bc0c9b056f85
        .quad 0x537d5268e7f5ffd7
        .quad 0x77afc6624312aefa
        .quad 0x4f675f5302399fd9
        .quad 0xc32d36360415171e
        .quad 0xcd2bef118998483b
        .quad 0x870a6eadd0945110
        .quad 0x0bccbb72a2a86561



        .quad 0x185e962feab1a9c8
        .quad 0x86e7e63565147dcd
        .quad 0xb092e031bb5b6df2
        .quad 0x4024f0ab59d6b73e
        .quad 0x186d5e4c50fe1296
        .quad 0xe0397b82fee89f7e
        .quad 0x3bc7f6c5507031b0
        .quad 0x6678fd69108f37c2
        .quad 0x1586fa31636863c2
        .quad 0x07f68c48572d33f2
        .quad 0x4f73cc9f789eaefc
        .quad 0x2d42e2108ead4701



        .quad 0x97f5131594dfd29b
        .quad 0x6155985d313f4c6a
        .quad 0xeba13f0708455010
        .quad 0x676b2608b8d2d322
        .quad 0x21717b0d0f537593
        .quad 0x914e690b131e064c
        .quad 0x1bb687ae752ae09f
        .quad 0x420bf3a79b423c6e
        .quad 0x8138ba651c5b2b47
        .quad 0x8671b6ec311b1b80
        .quad 0x7bff0cb1bc3135b0
        .quad 0x745d2ffa9c0cf1e0



        .quad 0xbf525a1e2bc9c8bd
        .quad 0xea5b260826479d81
        .quad 0xd511c70edf0155db
        .quad 0x1ae23ceb960cf5d0
        .quad 0x6036df5721d34e6a
        .quad 0xb1db8827997bb3d0
        .quad 0xd3c209c3c8756afa
        .quad 0x06e15be54c1dc839
        .quad 0x5b725d871932994a
        .quad 0x32351cb5ceb1dab0
        .quad 0x7dc41549dab7ca05
        .quad 0x58ded861278ec1f7



        .quad 0xd8173793f266c55c
        .quad 0xc8c976c5cc454e49
        .quad 0x5ce382f8bc26c3a8
        .quad 0x2ff39de85485f6f9
        .quad 0x2dfb5ba8b6c2c9a8
        .quad 0x48eeef8ef52c598c
        .quad 0x33809107f12d1573
        .quad 0x08ba696b531d5bd8
        .quad 0x77ed3eeec3efc57a
        .quad 0x04e05517d4ff4811
        .quad 0xea3d7a3ff1a671cb
        .quad 0x120633b4947cfe54



        .quad 0x0b94987891610042
        .quad 0x4ee7b13cecebfae8
        .quad 0x70be739594f0a4c0
        .quad 0x35d30a99b4d59185
        .quad 0x82bd31474912100a
        .quad 0xde237b6d7e6fbe06
        .quad 0xe11e761911ea79c6
        .quad 0x07433be3cb393bde
        .quad 0xff7944c05ce997f4
        .quad 0x575d3de4b05c51a3
        .quad 0x583381fd5a76847c
        .quad 0x2d873ede7af6da9f



        .quad 0x157a316443373409
        .quad 0xfab8b7eef4aa81d9
        .quad 0xb093fee6f5a64806
        .quad 0x2e773654707fa7b6
        .quad 0xaa6202e14e5df981
        .quad 0xa20d59175015e1f5
        .quad 0x18a275d3bae21d6c
        .quad 0x0543618a01600253
        .quad 0x0deabdf4974c23c1
        .quad 0xaa6f0a259dce4693
        .quad 0x04202cb8a29aba2c
        .quad 0x4b1443362d07960d



        .quad 0x47b837f753242cec
        .quad 0x256dc48cc04212f2
        .quad 0xe222fbfbe1d928c5
        .quad 0x48ea295bad8a2c07
        .quad 0x299b1c3f57c5715e
        .quad 0x96cb929e6b686d90
        .quad 0x3004806447235ab3
        .quad 0x2c435c24a44d9fe1
        .quad 0x0607c97c80f8833f
        .quad 0x0e851578ca25ec5b
        .quad 0x54f7450b161ebb6f
        .quad 0x7bcb4792a0def80e



        .quad 0x8487e3d02bc73659
        .quad 0x4baf8445059979df
        .quad 0xd17c975adcad6fbf
        .quad 0x57369f0bdefc96b6
        .quad 0x1cecd0a0045224c2
        .quad 0x757f1b1b69e53952
        .quad 0x775b7a925289f681
        .quad 0x1b6cc62016736148
        .quad 0xf1a9990175638698
        .quad 0x353dd1beeeaa60d3
        .quad 0x849471334c9ba488
        .quad 0x63fa6e6843ade311



        .quad 0xd15c20536597c168
        .quad 0x9f73740098d28789
        .quad 0x18aee7f13257ba1f
        .quad 0x3418bfda07346f14
        .quad 0x2195becdd24b5eb7
        .quad 0x5e41f18cc0cd44f9
        .quad 0xdf28074441ca9ede
        .quad 0x07073b98f35b7d67
        .quad 0xd03c676c4ce530d4
        .quad 0x0b64c0473b5df9f4
        .quad 0x065cef8b19b3a31e
        .quad 0x3084d661533102c9



        .quad 0xe1f6b79ebf8469ad
        .quad 0x15801004e2663135
        .quad 0x9a498330af74181b
        .quad 0x3ba2504f049b673c
        .quad 0x9a6ce876760321fd
        .quad 0x7fe2b5109eb63ad8
        .quad 0x00e7d4ae8ac80592
        .quad 0x73d86b7abb6f723a
        .quad 0x0b52b5606dba5ab6
        .quad 0xa9134f0fbbb1edab
        .quad 0x30a9520d9b04a635
        .quad 0x6813b8f37973e5db



        .quad 0x9854b054334127c1
        .quad 0x105d047882fbff25
        .quad 0xdb49f7f944186f4f
        .quad 0x1768e838bed0b900
        .quad 0xf194ca56f3157e29
        .quad 0x136d35705ef528a5
        .quad 0xdd4cef778b0599bc
        .quad 0x7d5472af24f833ed
        .quad 0xd0ef874daf33da47
        .quad 0x00d3be5db6e339f9
        .quad 0x3f2a8a2f9c9ceece
        .quad 0x5d1aeb792352435a



        .quad 0xf59e6bb319cd63ca
        .quad 0x670c159221d06839
        .quad 0xb06d565b2150cab6
        .quad 0x20fb199d104f12a3
        .quad 0x12c7bfaeb61ba775
        .quad 0xb84e621fe263bffd
        .quad 0x0b47a5c35c840dcf
        .quad 0x7e83be0bccaf8634
        .quad 0x61943dee6d99c120
        .quad 0x86101f2e460b9fe0
        .quad 0x6bb2f1518ee8598d
        .quad 0x76b76289fcc475cc



        .quad 0x791b4cc1756286fa
        .quad 0xdbced317d74a157c
        .quad 0x7e732421ea72bde6
        .quad 0x01fe18491131c8e9
        .quad 0x4245f1a1522ec0b3
        .quad 0x558785b22a75656d
        .quad 0x1d485a2548a1b3c0
        .quad 0x60959eccd58fe09f
        .quad 0x3ebfeb7ba8ed7a09
        .quad 0x49fdc2bbe502789c
        .quad 0x44ebce5d3c119428
        .quad 0x35e1eb55be947f4a



        .quad 0xdbdae701c5738dd3
        .quad 0xf9c6f635b26f1bee
        .quad 0x61e96a8042f15ef4
        .quad 0x3aa1d11faf60a4d8
        .quad 0x14fd6dfa726ccc74
        .quad 0x3b084cfe2f53b965
        .quad 0xf33ae4f552a2c8b4
        .quad 0x59aab07a0d40166a
        .quad 0x77bcec4c925eac25
        .quad 0x1848718460137738
        .quad 0x5b374337fea9f451
        .quad 0x1865e78ec8e6aa46



        .quad 0xccc4b7c7b66e1f7a
        .quad 0x44157e25f50c2f7e
        .quad 0x3ef06dfc713eaf1c
        .quad 0x582f446752da63f7
        .quad 0x967c54e91c529ccb
        .quad 0x30f6269264c635fb
        .quad 0x2747aff478121965
        .quad 0x17038418eaf66f5c
        .quad 0xc6317bd320324ce4
        .quad 0xa81042e8a4488bc4
        .quad 0xb21ef18b4e5a1364
        .quad 0x0c2a1c4bcda28dc9



        .quad 0xd24dc7d06f1f0447
        .quad 0xb2269e3edb87c059
        .quad 0xd15b0272fbb2d28f
        .quad 0x7c558bd1c6f64877
        .quad 0xedc4814869bd6945
        .quad 0x0d6d907dbe1c8d22
        .quad 0xc63bd212d55cc5ab
        .quad 0x5a6a9b30a314dc83
        .quad 0xd0ec1524d396463d
        .quad 0x12bb628ac35a24f0
        .quad 0xa50c3a791cbc5fa4
        .quad 0x0404a5ca0afbafc3



        .quad 0x8c1f40070aa743d6
        .quad 0xccbad0cb5b265ee8
        .quad 0x574b046b668fd2de
        .quad 0x46395bfdcadd9633
        .quad 0x62bc9e1b2a416fd1
        .quad 0xb5c6f728e350598b
        .quad 0x04343fd83d5d6967
        .quad 0x39527516e7f8ee98
        .quad 0x117fdb2d1a5d9a9c
        .quad 0x9c7745bcd1005c2a
        .quad 0xefd4bef154d56fea
        .quad 0x76579a29e822d016



        .quad 0x45b68e7e49c02a17
        .quad 0x23cd51a2bca9a37f
        .quad 0x3ed65f11ec224c1b
        .quad 0x43a384dc9e05bdb1
        .quad 0x333cb51352b434f2
        .quad 0xd832284993de80e1
        .quad 0xb5512887750d35ce
        .quad 0x02c514bb2a2777c1
        .quad 0x684bd5da8bf1b645
        .quad 0xfb8bd37ef6b54b53
        .quad 0x313916d7a9b0d253
        .quad 0x1160920961548059



        .quad 0xb44d166929dacfaa
        .quad 0xda529f4c8413598f
        .quad 0xe9ef63ca453d5559
        .quad 0x351e125bc5698e0b
        .quad 0x7a385616369b4dcd
        .quad 0x75c02ca7655c3563
        .quad 0x7dc21bf9d4f18021
        .quad 0x2f637d7491e6e042
        .quad 0xd4b49b461af67bbe
        .quad 0xd603037ac8ab8961
        .quad 0x71dee19ff9a699fb
        .quad 0x7f182d06e7ce2a9a



        .quad 0x7a7c8e64ab0168ec
        .quad 0xcb5a4a5515edc543
        .quad 0x095519d347cd0eda
        .quad 0x67d4ac8c343e93b0
        .quad 0x09454b728e217522
        .quad 0xaa58e8f4d484b8d8
        .quad 0xd358254d7f46903c
        .quad 0x44acc043241c5217
        .quad 0x1c7d6bbb4f7a5777
        .quad 0x8b35fed4918313e1
        .quad 0x4adca1c6c96b4684
        .quad 0x556d1c8312ad71bd



        .quad 0x17ef40e30c8d3982
        .quad 0x31f7073e15a3fa34
        .quad 0x4f21f3cb0773646e
        .quad 0x746c6c6d1d824eff
        .quad 0x81f06756b11be821
        .quad 0x0faff82310a3f3dd
        .quad 0xf8b2d0556a99465d
        .quad 0x097abe38cc8c7f05
        .quad 0x0c49c9877ea52da4
        .quad 0x4c4369559bdc1d43
        .quad 0x022c3809f7ccebd2
        .quad 0x577e14a34bee84bd



        .quad 0xf0e268ac61a73b0a
        .quad 0xf2fafa103791a5f5
        .quad 0xc1e13e826b6d00e9
        .quad 0x60fa7ee96fd78f42
        .quad 0x94fecebebd4dd72b
        .quad 0xf46a4fda060f2211
        .quad 0x124a5977c0c8d1ff
        .quad 0x705304b8fb009295
        .quad 0xb63d1d354d296ec6
        .quad 0xf3c3053e5fad31d8
        .quad 0x670b958cb4bd42ec
        .quad 0x21398e0ca16353fd



        .quad 0x216ab2ca8da7d2ef
        .quad 0x366ad9dd99f42827
        .quad 0xae64b9004fdd3c75
        .quad 0x403a395b53909e62
        .quad 0x86c5fc16861b7e9a
        .quad 0xf6a330476a27c451
        .quad 0x01667267a1e93597
        .quad 0x05ffb9cd6082dfeb
        .quad 0xa617fa9ff53f6139
        .quad 0x60f2b5e513e66cb6
        .quad 0xd7a8beefb3448aa4
        .quad 0x7a2932856f5ea192



        .quad 0x0b39d761b02de888
        .quad 0x5f550e7ed2414e1f
        .quad 0xa6bfa45822e1a940
        .quad 0x050a2f7dfd447b99
        .quad 0xb89c444879639302
        .quad 0x4ae4f19350c67f2c
        .quad 0xf0b35da8c81af9c6
        .quad 0x39d0003546871017
        .quad 0x437c3b33a650db77
        .quad 0x6bafe81dbac52bb2
        .quad 0xfe99402d2db7d318
        .quad 0x2b5b7eec372ba6ce



        .quad 0xb3bc4bbd83f50eef
        .quad 0x508f0c998c927866
        .quad 0x43e76587c8b7e66e
        .quad 0x0f7655a3a47f98d9
        .quad 0xa694404d613ac8f4
        .quad 0x500c3c2bfa97e72c
        .quad 0x874104d21fcec210
        .quad 0x1b205fb38604a8ee
        .quad 0x55ecad37d24b133c
        .quad 0x441e147d6038c90b
        .quad 0x656683a1d62c6fee
        .quad 0x0157d5dc87e0ecae



        .quad 0xf2a7af510354c13d
        .quad 0xd7a0b145aa372b60
        .quad 0x2869b96a05a3d470
        .quad 0x6528e42d82460173
        .quad 0x95265514d71eb524
        .quad 0xe603d8815df14593
        .quad 0x147cdf410d4de6b7
        .quad 0x5293b1730437c850
        .quad 0x23d0e0814bccf226
        .quad 0x92c745cd8196fb93
        .quad 0x8b61796c59541e5b
        .quad 0x40a44df0c021f978



        .quad 0xdaa869894f20ea6a
        .quad 0xea14a3d14c620618
        .quad 0x6001fccb090bf8be
        .quad 0x35f4e822947e9cf0
        .quad 0x86c96e514bc5d095
        .quad 0xf20d4098fca6804a
        .quad 0x27363d89c826ea5d
        .quad 0x39ca36565719cacf
        .quad 0x97506f2f6f87b75c
        .quad 0xc624aea0034ae070
        .quad 0x1ec856e3aad34dd6
        .quad 0x055b0be0e440e58f



        .quad 0x6469a17d89735d12
        .quad 0xdb6f27d5e662b9f1
        .quad 0x9fcba3286a395681
        .quad 0x363b8004d269af25
        .quad 0x4d12a04b6ea33da2
        .quad 0x57cf4c15e36126dd
        .quad 0x90ec9675ee44d967
        .quad 0x64ca348d2a985aac
        .quad 0x99588e19e4c4912d
        .quad 0xefcc3b4e1ca5ce6b
        .quad 0x4522ea60fa5b98d5
        .quad 0x7064bbab1de4a819



        .quad 0xb919e1515a770641
        .quad 0xa9a2e2c74e7f8039
        .quad 0x7527250b3df23109
        .quad 0x756a7330ac27b78b
        .quad 0xa290c06142542129
        .quad 0xf2e2c2aebe8d5b90
        .quad 0xcf2458db76abfe1b
        .quad 0x02157ade83d626bf
        .quad 0x3e46972a1b9a038b
        .quad 0x2e4ee66a7ee03fb4
        .quad 0x81a248776edbb4ca
        .quad 0x1a944ee88ecd0563



        .quad 0xd5a91d1151039372
        .quad 0x2ed377b799ca26de
        .quad 0xa17202acfd366b6b
        .quad 0x0730291bd6901995
        .quad 0xbb40a859182362d6
        .quad 0xb99f55778a4d1abb
        .quad 0x8d18b427758559f6
        .quad 0x26c20fe74d26235a
        .quad 0x648d1d9fe9cc22f5
        .quad 0x66bc561928dd577c
        .quad 0x47d3ed21652439d1
        .quad 0x49d271acedaf8b49



        .quad 0x89f5058a382b33f3
        .quad 0x5ae2ba0bad48c0b4
        .quad 0x8f93b503a53db36e
        .quad 0x5aa3ed9d95a232e6
        .quad 0x2798aaf9b4b75601
        .quad 0x5eac72135c8dad72
        .quad 0xd2ceaa6161b7a023
        .quad 0x1bbfb284e98f7d4e
        .quad 0x656777e9c7d96561
        .quad 0xcb2b125472c78036
        .quad 0x65053299d9506eee
        .quad 0x4a07e14e5e8957cc



        .quad 0x4ee412cb980df999
        .quad 0xa315d76f3c6ec771
        .quad 0xbba5edde925c77fd
        .quad 0x3f0bac391d313402
        .quad 0x240b58cdc477a49b
        .quad 0xfd38dade6447f017
        .quad 0x19928d32a7c86aad
        .quad 0x50af7aed84afa081
        .quad 0x6e4fde0115f65be5
        .quad 0x29982621216109b2
        .quad 0x780205810badd6d9
        .quad 0x1921a316baebd006



        .quad 0x89422f7edfb870fc
        .quad 0x2c296beb4f76b3bd
        .quad 0x0738f1d436c24df7
        .quad 0x6458df41e273aeb0
        .quad 0xd75aad9ad9f3c18b
        .quad 0x566a0eef60b1c19c
        .quad 0x3e9a0bac255c0ed9
        .quad 0x7b049deca062c7f5
        .quad 0xdccbe37a35444483
        .quad 0x758879330fedbe93
        .quad 0x786004c312c5dd87
        .quad 0x6093dccbc2950e64



        .quad 0x1ff39a8585e0706d
        .quad 0x36d0a5d8b3e73933
        .quad 0x43b9f2e1718f453b
        .quad 0x57d1ea084827a97c
        .quad 0x6bdeeebe6084034b
        .quad 0x3199c2b6780fb854
        .quad 0x973376abb62d0695
        .quad 0x6e3180c98b647d90
        .quad 0xee7ab6e7a128b071
        .quad 0xa4c1596d93a88baa
        .quad 0xf7b4de82b2216130
        .quad 0x363e999ddd97bd18



        .quad 0x96a843c135ee1fc4
        .quad 0x976eb35508e4c8cf
        .quad 0xb42f6801b58cd330
        .quad 0x48ee9b78693a052b
        .quad 0x2f1848dce24baec6
        .quad 0x769b7255babcaf60
        .quad 0x90cb3c6e3cefe931
        .quad 0x231f979bc6f9b355
        .quad 0x5c31de4bcc2af3c6
        .quad 0xb04bb030fe208d1f
        .quad 0xb78d7009c14fb466
        .quad 0x079bfa9b08792413



        .quad 0xe3903a51da300df4
        .quad 0x843964233da95ab0
        .quad 0xed3cf12d0b356480
        .quad 0x038c77f684817194
        .quad 0xf3c9ed80a2d54245
        .quad 0x0aa08b7877f63952
        .quad 0xd76dac63d1085475
        .quad 0x1ef4fb159470636b
        .quad 0x854e5ee65b167bec
        .quad 0x59590a4296d0cdc2
        .quad 0x72b2df3498102199
        .quad 0x575ee92a4a0bff56



        .quad 0xd4c080908a182fcf
        .quad 0x30e170c299489dbd
        .quad 0x05babd5752f733de
        .quad 0x43d4e7112cd3fd00
        .quad 0x5d46bc450aa4d801
        .quad 0xc3af1227a533b9d8
        .quad 0x389e3b262b8906c2
        .quad 0x200a1e7e382f581b
        .quad 0x518db967eaf93ac5
        .quad 0x71bc989b056652c0
        .quad 0xfe2b85d9567197f5
        .quad 0x050eca52651e4e38



        .quad 0xc3431ade453f0c9c
        .quad 0xe9f5045eff703b9b
        .quad 0xfcd97ac9ed847b3d
        .quad 0x4b0ee6c21c58f4c6
        .quad 0x97ac397660e668ea
        .quad 0x9b19bbfe153ab497
        .quad 0x4cb179b534eca79f
        .quad 0x6151c09fa131ae57
        .quad 0x3af55c0dfdf05d96
        .quad 0xdd262ee02ab4ee7a
        .quad 0x11b2bb8712171709
        .quad 0x1fef24fa800f030b



        .quad 0xb496123a6b6c6609
        .quad 0xa750fe8580ab5938
        .quad 0xf471bf39b7c27a5f
        .quad 0x507903ce77ac193c
        .quad 0xff91a66a90166220
        .quad 0xf22552ae5bf1e009
        .quad 0x7dff85d87f90df7c
        .quad 0x4f620ffe0c736fb9
        .quad 0x62f90d65dfde3e34
        .quad 0xcf28c592b9fa5fad
        .quad 0x99c86ef9c6164510
        .quad 0x25d448044a256c84



        .quad 0xbd68230ec7e9b16f
        .quad 0x0eb1b9c1c1c5795d
        .quad 0x7943c8c495b6b1ff
        .quad 0x2f9faf620bbacf5e
        .quad 0x2c7c4415c9022b55
        .quad 0x56a0d241812eb1fe
        .quad 0xf02ea1c9d7b65e0d
        .quad 0x4180512fd5323b26
        .quad 0xa4ff3e698a48a5db
        .quad 0xba6a3806bd95403b
        .quad 0x9f7ce1af47d5b65d
        .quad 0x15e087e55939d2fb



        .quad 0x12207543745c1496
        .quad 0xdaff3cfdda38610c
        .quad 0xe4e797272c71c34f
        .quad 0x39c07b1934bdede9
        .quad 0x8894186efb963f38
        .quad 0x48a00e80dc639bd5
        .quad 0xa4e8092be96c1c99
        .quad 0x5a097d54ca573661
        .quad 0x2d45892b17c9e755
        .quad 0xd033fd7289308df8
        .quad 0x6c2fe9d9525b8bd9
        .quad 0x2edbecf1c11cc079



        .quad 0x1616a4e3c715a0d2
        .quad 0x53623cb0f8341d4d
        .quad 0x96ef5329c7e899cb
        .quad 0x3d4e8dbba668baa6
        .quad 0xee0f0fddd087a25f
        .quad 0x9c7531555c3e34ee
        .quad 0x660c572e8fab3ab5
        .quad 0x0854fc44544cd3b2
        .quad 0x61eba0c555edad19
        .quad 0x24b533fef0a83de6
        .quad 0x3b77042883baa5f8
        .quad 0x678f82b898a47e8d



        .quad 0xb1491d0bd6900c54
        .quad 0x3539722c9d132636
        .quad 0x4db928920b362bc9
        .quad 0x4d7cd1fea68b69df
        .quad 0x1e09d94057775696
        .quad 0xeed1265c3cd951db
        .quad 0xfa9dac2b20bce16f
        .quad 0x0f7f76e0e8d089f4
        .quad 0x36d9ebc5d485b00c
        .quad 0xa2596492e4adb365
        .quad 0xc1659480c2119ccd
        .quad 0x45306349186e0d5f



        .quad 0x94ddd0c1a6cdff1d
        .quad 0x55f6f115e84213ae
        .quad 0x6c935f85992fcf6a
        .quad 0x067ee0f54a37f16f
        .quad 0x96a414ec2b072491
        .quad 0x1bb2218127a7b65b
        .quad 0x6d2849596e8a4af0
        .quad 0x65f3b08ccd27765f
        .quad 0xecb29fff199801f7
        .quad 0x9d361d1fa2a0f72f
        .quad 0x25f11d2375fd2f49
        .quad 0x124cefe80fe10fe2



        .quad 0x4c126cf9d18df255
        .quad 0xc1d471e9147a63b6
        .quad 0x2c6d3c73f3c93b5f
        .quad 0x6be3a6a2e3ff86a2
        .quad 0x1518e85b31b16489
        .quad 0x8faadcb7db710bfb
        .quad 0x39b0bdf4a14ae239
        .quad 0x05f4cbea503d20c1
        .quad 0xce040e9ec04145bc
        .quad 0xc71ff4e208f6834c
        .quad 0xbd546e8dab8847a3
        .quad 0x64666aa0a4d2aba5



        .quad 0x6841435a7c06d912
        .quad 0xca123c21bb3f830b
        .quad 0xd4b37b27b1cbe278
        .quad 0x1d753b84c76f5046
        .quad 0xb0c53bf73337e94c
        .quad 0x7cb5697e11e14f15
        .quad 0x4b84abac1930c750
        .quad 0x28dd4abfe0640468
        .quad 0x7dc0b64c44cb9f44
        .quad 0x18a3e1ace3925dbf
        .quad 0x7a3034862d0457c4
        .quad 0x4c498bf78a0c892e



        .quad 0x37d653fb1aa73196
        .quad 0x0f9495303fd76418
        .quad 0xad200b09fb3a17b2
        .quad 0x544d49292fc8613e
        .quad 0x22d2aff530976b86
        .quad 0x8d90b806c2d24604
        .quad 0xdca1896c4de5bae5
        .quad 0x28005fe6c8340c17
        .quad 0x6aefba9f34528688
        .quad 0x5c1bff9425107da1
        .quad 0xf75bbbcd66d94b36
        .quad 0x72e472930f316dfa



        .quad 0x2695208c9781084f
        .quad 0xb1502a0b23450ee1
        .quad 0xfd9daea603efde02
        .quad 0x5a9d2e8c2733a34c
        .quad 0x07f3f635d32a7627
        .quad 0x7aaa4d865f6566f0
        .quad 0x3c85e79728d04450
        .quad 0x1fee7f000fe06438
        .quad 0x765305da03dbf7e5
        .quad 0xa4daf2491434cdbd
        .quad 0x7b4ad5cdd24a88ec
        .quad 0x00f94051ee040543



        .quad 0x8d356b23c3d330b2
        .quad 0xf21c8b9bb0471b06
        .quad 0xb36c316c6e42b83c
        .quad 0x07d79c7e8beab10d
        .quad 0xd7ef93bb07af9753
        .quad 0x583ed0cf3db766a7
        .quad 0xce6998bf6e0b1ec5
        .quad 0x47b7ffd25dd40452
        .quad 0x87fbfb9cbc08dd12
        .quad 0x8a066b3ae1eec29b
        .quad 0x0d57242bdb1fc1bf
        .quad 0x1c3520a35ea64bb6



        .quad 0x80d253a6bccba34a
        .quad 0x3e61c3a13838219b
        .quad 0x90c3b6019882e396
        .quad 0x1c3d05775d0ee66f
        .quad 0xcda86f40216bc059
        .quad 0x1fbb231d12bcd87e
        .quad 0xb4956a9e17c70990
        .quad 0x38750c3b66d12e55
        .quad 0x692ef1409422e51a
        .quad 0xcbc0c73c2b5df671
        .quad 0x21014fe7744ce029
        .quad 0x0621e2c7d330487c



        .quad 0xaf9860cc8259838d
        .quad 0x90ea48c1c69f9adc
        .quad 0x6526483765581e30
        .quad 0x0007d6097bd3a5bc
        .quad 0xb7ae1796b0dbf0f3
        .quad 0x54dfafb9e17ce196
        .quad 0x25923071e9aaa3b4
        .quad 0x5d8e589ca1002e9d
        .quad 0xc0bf1d950842a94b
        .quad 0xb2d3c363588f2e3e
        .quad 0x0a961438bb51e2ef
        .quad 0x1583d7783c1cbf86



        .quad 0xeceea2ef5da27ae1
        .quad 0x597c3a1455670174
        .quad 0xc9a62a126609167a
        .quad 0x252a5f2e81ed8f70
        .quad 0x90034704cc9d28c7
        .quad 0x1d1b679ef72cc58f
        .quad 0x16e12b5fbe5b8726
        .quad 0x4958064e83c5580a
        .quad 0x0d2894265066e80d
        .quad 0xfcc3f785307c8c6b
        .quad 0x1b53da780c1112fd
        .quad 0x079c170bd843b388



        .quad 0x0506ece464fa6fff
        .quad 0xbee3431e6205e523
        .quad 0x3579422451b8ea42
        .quad 0x6dec05e34ac9fb00
        .quad 0xcdd6cd50c0d5d056
        .quad 0x9af7686dbb03573b
        .quad 0x3ca6723ff3c3ef48
        .quad 0x6768c0d7317b8acc
        .quad 0x94b625e5f155c1b3
        .quad 0x417bf3a7997b7b91
        .quad 0xc22cbddc6d6b2600
        .quad 0x51445e14ddcd52f4



        .quad 0x57502b4b3b144951
        .quad 0x8e67ff6b444bbcb3
        .quad 0xb8bd6927166385db
        .quad 0x13186f31e39295c8
        .quad 0x893147ab2bbea455
        .quad 0x8c53a24f92079129
        .quad 0x4b49f948be30f7a7
        .quad 0x12e990086e4fd43d
        .quad 0xf10c96b37fdfbb2e
        .quad 0x9f9a935e121ceaf9
        .quad 0xdf1136c43a5b983f
        .quad 0x77b2e3f05d3e99af



        .quad 0xfd0d75879cf12657
        .quad 0xe82fef94e53a0e29
        .quad 0xcc34a7f05bbb4be7
        .quad 0x0b251172a50c38a2
        .quad 0x9532f48fcc5cd29b
        .quad 0x2ba851bea3ce3671
        .quad 0x32dacaa051122941
        .quad 0x478d99d9350004f2
        .quad 0x1d5ad94890bb02c0
        .quad 0x50e208b10ec25115
        .quad 0xa26a22894ef21702
        .quad 0x4dc923343b524805



        .quad 0xe3828c400f8086b6
        .quad 0x3f77e6f7979f0dc8
        .quad 0x7ef6de304df42cb4
        .quad 0x5265797cb6abd784
        .quad 0x3ad3e3ebf36c4975
        .quad 0xd75d25a537862125
        .quad 0xe873943da025a516
        .quad 0x6bbc7cb4c411c847
        .quad 0x3c6f9cd1d4a50d56
        .quad 0xb6244077c6feab7e
        .quad 0x6ff9bf483580972e
        .quad 0x00375883b332acfb



        .quad 0x0001b2cd28cb0940
        .quad 0x63fb51a06f1c24c9
        .quad 0xb5ad8691dcd5ca31
        .quad 0x67238dbd8c450660
        .quad 0xc98bec856c75c99c
        .quad 0xe44184c000e33cf4
        .quad 0x0a676b9bba907634
        .quad 0x669e2cb571f379d7
        .quad 0xcb116b73a49bd308
        .quad 0x025aad6b2392729e
        .quad 0xb4793efa3f55d9b1
        .quad 0x72a1056140678bb9



        .quad 0xa2b6812b1cc9249d
        .quad 0x62866eee21211f58
        .quad 0x2cb5c5b85df10ece
        .quad 0x03a6b259e263ae00
        .quad 0x0d8d2909e2e505b6
        .quad 0x98ca78abc0291230
        .quad 0x77ef5569a9b12327
        .quad 0x7c77897b81439b47
        .quad 0xf1c1b5e2de331cb5
        .quad 0x5a9f5d8e15fca420
        .quad 0x9fa438f17bd932b1
        .quad 0x2a381bf01c6146e7



        .quad 0xac9b9879cfc811c1
        .quad 0x8b7d29813756e567
        .quad 0x50da4e607c70edfc
        .quad 0x5dbca62f884400b6
        .quad 0xf7c0be32b534166f
        .quad 0x27e6ca6419cf70d4
        .quad 0x934df7d7a957a759
        .quad 0x5701461dabdec2aa
        .quad 0x2c6747402c915c25
        .quad 0x1bdcd1a80b0d340a
        .quad 0x5e5601bd07b43f5f
        .quad 0x2555b4e05539a242



        .quad 0x6fc09f5266ddd216
        .quad 0xdce560a7c8e37048
        .quad 0xec65939da2df62fd
        .quad 0x7a869ae7e52ed192
        .quad 0x78409b1d87e463d4
        .quad 0xad4da95acdfb639d
        .quad 0xec28773755259b9c
        .quad 0x69c806e9c31230ab
        .quad 0x7b48f57414bb3f22
        .quad 0x68c7cee4aedccc88
        .quad 0xed2f936179ed80be
        .quad 0x25d70b885f77bc4b



        .quad 0x4151c3d9762bf4de
        .quad 0x083f435f2745d82b
        .quad 0x29775a2e0d23ddd5
        .quad 0x138e3a6269a5db24
        .quad 0x98459d29bb1ae4d4
        .quad 0x56b9c4c739f954ec
        .quad 0x832743f6c29b4b3e
        .quad 0x21ea8e2798b6878a
        .quad 0x87bef4b46a5a7b9c
        .quad 0xd2299d1b5fc1d062
        .quad 0x82409818dd321648
        .quad 0x5c5abeb1e5a2e03d



        .quad 0x14722af4b73c2ddb
        .quad 0xbc470c5f5a05060d
        .quad 0x00943eac2581b02e
        .quad 0x0e434b3b1f499c8f
        .quad 0x02cde6de1306a233
        .quad 0x7b5a52a2116f8ec7
        .quad 0xe1c681f4c1163b5b
        .quad 0x241d350660d32643
        .quad 0x6be4404d0ebc52c7
        .quad 0xae46233bb1a791f5
        .quad 0x2aec170ed25db42b
        .quad 0x1d8dfd966645d694



        .quad 0x296fa9c59c2ec4de
        .quad 0xbc8b61bf4f84f3cb
        .quad 0x1c7706d917a8f908
        .quad 0x63b795fc7ad3255d
        .quad 0xd598639c12ddb0a4
        .quad 0xa5d19f30c024866b
        .quad 0xd17c2f0358fce460
        .quad 0x07a195152e095e8a
        .quad 0xa8368f02389e5fc8
        .quad 0x90433b02cf8de43b
        .quad 0xafa1fd5dc5412643
        .quad 0x3e8fe83d032f0137



        .quad 0x2f8b15b90570a294
        .quad 0x94f2427067084549
        .quad 0xde1c5ae161bbfd84
        .quad 0x75ba3b797fac4007
        .quad 0x08704c8de8efd13c
        .quad 0xdfc51a8e33e03731
        .quad 0xa59d5da51260cde3
        .quad 0x22d60899a6258c86
        .quad 0x6239dbc070cdd196
        .quad 0x60fe8a8b6c7d8a9a
        .quad 0xb38847bceb401260
        .quad 0x0904d07b87779e5e



        .quad 0xb4ce1fd4ddba919c
        .quad 0xcf31db3ec74c8daa
        .quad 0x2c63cc63ad86cc51
        .quad 0x43e2143fbc1dde07
        .quad 0xf4322d6648f940b9
        .quad 0x06952f0cbd2d0c39
        .quad 0x167697ada081f931
        .quad 0x6240aacebaf72a6c
        .quad 0xf834749c5ba295a0
        .quad 0xd6947c5bca37d25a
        .quad 0x66f13ba7e7c9316a
        .quad 0x56bdaf238db40cac



        .quad 0x362ab9e3f53533eb
        .quad 0x338568d56eb93d40
        .quad 0x9e0e14521d5a5572
        .quad 0x1d24a86d83741318
        .quad 0x1310d36cc19d3bb2
        .quad 0x062a6bb7622386b9
        .quad 0x7c9b8591d7a14f5c
        .quad 0x03aa31507e1e5754
        .quad 0xf4ec7648ffd4ce1f
        .quad 0xe045eaf054ac8c1c
        .quad 0x88d225821d09357c
        .quad 0x43b261dc9aeb4859



        .quad 0xe55b1e1988bb79bb
        .quad 0xa09ed07dc17a359d
        .quad 0xb02c2ee2603dea33
        .quad 0x326055cf5b276bc2
        .quad 0x19513d8b6c951364
        .quad 0x94fe7126000bf47b
        .quad 0x028d10ddd54f9567
        .quad 0x02b4d5e242940964
        .quad 0xb4a155cb28d18df2
        .quad 0xeacc4646186ce508
        .quad 0xc49cf4936c824389
        .quad 0x27a6c809ae5d3410



        .quad 0x8ba6ebcd1f0db188
        .quad 0x37d3d73a675a5be8
        .quad 0xf22edfa315f5585a
        .quad 0x2cb67174ff60a17e
        .quad 0xcd2c270ac43d6954
        .quad 0xdd4a3e576a66cab2
        .quad 0x79fa592469d7036c
        .quad 0x221503603d8c2599
        .quad 0x59eecdf9390be1d0
        .quad 0xa9422044728ce3f1
        .quad 0x82891c667a94f0f4
        .quad 0x7b1df4b73890f436



        .quad 0xe492f2e0b3b2a224
        .quad 0x7c6c9e062b551160
        .quad 0x15eb8fe20d7f7b0e
        .quad 0x61fcef2658fc5992
        .quad 0x5f2e221807f8f58c
        .quad 0xe3555c9fd49409d4
        .quad 0xb2aaa88d1fb6a630
        .quad 0x68698245d352e03d
        .quad 0xdbb15d852a18187a
        .quad 0xf3e4aad386ddacd7
        .quad 0x44bae2810ff6c482
        .quad 0x46cf4c473daf01cf



        .quad 0x426525ed9ec4e5f9
        .quad 0x0e5eda0116903303
        .quad 0x72b1a7f2cbe5cadc
        .quad 0x29387bcd14eb5f40
        .quad 0x213c6ea7f1498140
        .quad 0x7c1e7ef8392b4854
        .quad 0x2488c38c5629ceba
        .quad 0x1065aae50d8cc5bb
        .quad 0x1c2c4525df200d57
        .quad 0x5c3b2dd6bfca674a
        .quad 0x0a07e7b1e1834030
        .quad 0x69a198e64f1ce716



        .quad 0x7afcd613efa9d697
        .quad 0x0cc45aa41c067959
        .quad 0xa56fe104c1fada96
        .quad 0x3a73b70472e40365
        .quad 0x7b26e56b9e2d4734
        .quad 0xc4c7132b81c61675
        .quad 0xef5c9525ec9cde7f
        .quad 0x39c80b16e71743ad
        .quad 0x0f196e0d1b826c68
        .quad 0xf71ff0e24960e3db
        .quad 0x6113167023b7436c
        .quad 0x0cf0ea5877da7282



        .quad 0x196c80a4ddd4ccbd
        .quad 0x22e6f55d95f2dd9d
        .quad 0xc75e33c740d6c71b
        .quad 0x7bb51279cb3c042f
        .quad 0xe332ced43ba6945a
        .quad 0xde0b1361e881c05d
        .quad 0x1ad40f095e67ed3b
        .quad 0x5da8acdab8c63d5d
        .quad 0xc4b6664a3a70159f
        .quad 0x76194f0f0a904e14
        .quad 0xa5614c39a4096c13
        .quad 0x6cd0ff50979feced



        .quad 0xc0e067e78f4428ac
        .quad 0x14835ab0a61135e3
        .quad 0xf21d14f338062935
        .quad 0x6390a4c8df04849c
        .quad 0x7fecfabdb04ba18e
        .quad 0xd0fc7bfc3bddbcf7
        .quad 0xa41d486e057a131c
        .quad 0x641a4391f2223a61
        .quad 0xc5c6b95aa606a8db
        .quad 0x914b7f9eb06825f1
        .quad 0x2a731f6b44fc9eff
        .quad 0x30ddf38562705cfc



        .quad 0x4e3dcbdad1bff7f9
        .quad 0xc9118e8220645717
        .quad 0xbacccebc0f189d56
        .quad 0x1b4822e9d4467668
        .quad 0x33bef2bd68bcd52c
        .quad 0xc649dbb069482ef2
        .quad 0xb5b6ee0c41cb1aee
        .quad 0x5c294d270212a7e5
        .quad 0xab360a7f25563781
        .quad 0x2512228a480f7958
        .quad 0xc75d05276114b4e3
        .quad 0x222d9625d976fe2a



        .quad 0x1c717f85b372ace1
        .quad 0x81930e694638bf18
        .quad 0x239cad056bc08b58
        .quad 0x0b34271c87f8fff4
        .quad 0x0f94be7e0a344f85
        .quad 0xeb2faa8c87f22c38
        .quad 0x9ce1e75e4ee16f0f
        .quad 0x43e64e5418a08dea
        .quad 0x8155e2521a35ce63
        .quad 0xbe100d4df912028e
        .quad 0xbff80bf8a57ddcec
        .quad 0x57342dc96d6bc6e4



        .quad 0xefeef065c8ce5998
        .quad 0xbf029510b5cbeaa2
        .quad 0x8c64a10620b7c458
        .quad 0x35134fb231c24855
        .quad 0xf3c3bcb71e707bf6
        .quad 0x351d9b8c7291a762
        .quad 0x00502e6edad69a33
        .quad 0x522f521f1ec8807f
        .quad 0x272c1f46f9a3902b
        .quad 0xc91ba3b799657bcc
        .quad 0xae614b304f8a1c0e
        .quad 0x7afcaad70b99017b



        .quad 0xc25ded54a4b8be41
        .quad 0x902d13e11bb0e2dd
        .quad 0x41f43233cde82ab2
        .quad 0x1085faa5c3aae7cb
        .quad 0xa88141ecef842b6b
        .quad 0x55e7b14797abe6c5
        .quad 0x8c748f9703784ffe
        .quad 0x5b50a1f7afcd00b7
        .quad 0x9b840f66f1361315
        .quad 0x18462242701003e9
        .quad 0x65ed45fae4a25080
        .quad 0x0a2862393fda7320



        .quad 0x46ab13c8347cbc9d
        .quad 0x3849e8d499c12383
        .quad 0x4cea314087d64ac9
        .quad 0x1f354134b1a29ee7
        .quad 0x960e737b6ecb9d17
        .quad 0xfaf24948d67ceae1
        .quad 0x37e7a9b4d55e1b89
        .quad 0x5cb7173cb46c59eb
        .quad 0x4a89e68b82b7abf0
        .quad 0xf41cd9279ba6b7b9
        .quad 0x16e6c210e18d876f
        .quad 0x7cacdb0f7f1b09c6



        .quad 0x9062b2e0d91a78bc
        .quad 0x47c9889cc8509667
        .quad 0x9df54a66405070b8
        .quad 0x7369e6a92493a1bf
        .quad 0xe1014434dcc5caed
        .quad 0x47ed5d963c84fb33
        .quad 0x70019576ed86a0e7
        .quad 0x25b2697bd267f9e4
        .quad 0x9d673ffb13986864
        .quad 0x3ca5fbd9415dc7b8
        .quad 0xe04ecc3bdf273b5e
        .quad 0x1420683db54e4cd2



        .quad 0xb478bd1e249dd197
        .quad 0x620c35005e58c102
        .quad 0xfb02d32fccbaac5c
        .quad 0x60b63bebf508a72d
        .quad 0x34eebb6fc1cc5ad0
        .quad 0x6a1b0ce99646ac8b
        .quad 0xd3b0da49a66bde53
        .quad 0x31e83b4161d081c1
        .quad 0x97e8c7129e062b4f
        .quad 0x49e48f4f29320ad8
        .quad 0x5bece14b6f18683f
        .quad 0x55cf1eb62d550317



        .quad 0x5879101065c23d58
        .quad 0x8b9d086d5094819c
        .quad 0xe2402fa912c55fa7
        .quad 0x669a6564570891d4
        .quad 0x3076b5e37df58c52
        .quad 0xd73ab9dde799cc36
        .quad 0xbd831ce34913ee20
        .quad 0x1a56fbaa62ba0133
        .quad 0x943e6b505c9dc9ec
        .quad 0x302557bba77c371a
        .quad 0x9873ae5641347651
        .quad 0x13c4836799c58a5c



        .quad 0x423a5d465ab3e1b9
        .quad 0xfc13c187c7f13f61
        .quad 0x19f83664ecb5b9b6
        .quad 0x66f80c93a637b607
        .quad 0xc4dcfb6a5d8bd080
        .quad 0xdeebc4ec571a4842
        .quad 0xd4b2e883b8e55365
        .quad 0x50bdc87dc8e5b827
        .quad 0x606d37836edfe111
        .quad 0x32353e15f011abd9
        .quad 0x64b03ac325b73b96
        .quad 0x1dd56444725fd5ae



        .quad 0x8fa47ff83362127d
        .quad 0xbc9f6ac471cd7c15
        .quad 0x6e71454349220c8b
        .quad 0x0e645912219f732e
        .quad 0xc297e60008bac89a
        .quad 0x7d4cea11eae1c3e0
        .quad 0xf3e38be19fe7977c
        .quad 0x3a3a450f63a305cd
        .quad 0x078f2f31d8394627
        .quad 0x389d3183de94a510
        .quad 0xd1e36c6d17996f80
        .quad 0x318c8d9393a9a87b



        .quad 0xf2745d032afffe19
        .quad 0x0c9f3c497f24db66
        .quad 0xbc98d3e3ba8598ef
        .quad 0x224c7c679a1d5314
        .quad 0x5d669e29ab1dd398
        .quad 0xfc921658342d9e3b
        .quad 0x55851dfdf35973cd
        .quad 0x509a41c325950af6
        .quad 0xbdc06edca6f925e9
        .quad 0x793ef3f4641b1f33
        .quad 0x82ec12809d833e89
        .quad 0x05bff02328a11389



        .quad 0x3632137023cae00b
        .quad 0x544acf0ad1accf59
        .quad 0x96741049d21a1c88
        .quad 0x780b8cc3fa2a44a7
        .quad 0x6881a0dd0dc512e4
        .quad 0x4fe70dc844a5fafe
        .quad 0x1f748e6b8f4a5240
        .quad 0x576277cdee01a3ea
        .quad 0x1ef38abc234f305f
        .quad 0x9a577fbd1405de08
        .quad 0x5e82a51434e62a0d
        .quad 0x5ff418726271b7a1



        .quad 0x398e080c1789db9d
        .quad 0xa7602025f3e778f5
        .quad 0xfa98894c06bd035d
        .quad 0x106a03dc25a966be
        .quad 0xe5db47e813b69540
        .quad 0xf35d2a3b432610e1
        .quad 0xac1f26e938781276
        .quad 0x29d4db8ca0a0cb69
        .quad 0xd9ad0aaf333353d0
        .quad 0x38669da5acd309e5
        .quad 0x3c57658ac888f7f0
        .quad 0x4ab38a51052cbefa



        .quad 0xdfdacbee4324c0e9
        .quad 0x054442883f955bb7
        .quad 0xdef7aaa8ea31609f
        .quad 0x68aee70642287cff
        .quad 0xf68fe2e8809de054
        .quad 0xe3bc096a9c82bad1
        .quad 0x076353d40aadbf45
        .quad 0x7b9b1fb5dea1959e
        .quad 0xf01cc8f17471cc0c
        .quad 0x95242e37579082bb
        .quad 0x27776093d3e46b5f
        .quad 0x2d13d55a28bd85fb



        .quad 0xfac5d2065b35b8da
        .quad 0xa8da8a9a85624bb7
        .quad 0xccd2ca913d21cd0f
        .quad 0x6b8341ee8bf90d58
        .quad 0xbf019cce7aee7a52
        .quad 0xa8ded2b6e454ead3
        .quad 0x3c619f0b87a8bb19
        .quad 0x3619b5d7560916d8
        .quad 0x3579f26b0282c4b2
        .quad 0x64d592f24fafefae
        .quad 0xb7cded7b28c8c7c0
        .quad 0x6a927b6b7173a8d7



        .quad 0x1f6db24f986e4656
        .quad 0x1021c02ed1e9105b
        .quad 0xf8ff3fff2cc0a375
        .quad 0x1d2a6bf8c6c82592
        .quad 0x8d7040863ece88eb
        .quad 0xf0e307a980eec08c
        .quad 0xac2250610d788fda
        .quad 0x056d92a43a0d478d
        .quad 0x1b05a196fc3da5a1
        .quad 0x77d7a8c243b59ed0
        .quad 0x06da3d6297d17918
        .quad 0x66fbb494f12353f7



        .quad 0x751a50b9d85c0fb8
        .quad 0xd1afdc258bcf097b
        .quad 0x2f16a6a38309a969
        .quad 0x14ddff9ee5b00659
        .quad 0xd6d70996f12309d6
        .quad 0xdbfb2385e9c3d539
        .quad 0x46d602b0f7552411
        .quad 0x270a0b0557843e0c
        .quad 0x61ff0640a7862bcc
        .quad 0x81cac09a5f11abfe
        .quad 0x9047830455d12abb
        .quad 0x19a4bde1945ae873



        .quad 0x9b9f26f520a6200a
        .quad 0x64804443cf13eaf8
        .quad 0x8a63673f8631edd3
        .quad 0x72bbbce11ed39dc1
        .quad 0x40c709dec076c49f
        .quad 0x657bfaf27f3e53f6
        .quad 0x40662331eca042c4
        .quad 0x14b375487eb4df04
        .quad 0xae853c94ab66dc47
        .quad 0xeb62343edf762d6e
        .quad 0xf08e0e186fb2f7d1
        .quad 0x4f0b1c02700ab37a



        .quad 0xe1706787d81951fa
        .quad 0xa10a2c8eb290c77b
        .quad 0xe7382fa03ed66773
        .quad 0x0a4d84710bcc4b54
        .quad 0x79fd21ccc1b2e23f
        .quad 0x4ae7c281453df52a
        .quad 0xc8172ec9d151486b
        .quad 0x68abe9443e0a7534
        .quad 0xda12c6c407831dcb
        .quad 0x0da230d74d5c510d
        .quad 0x4ab1531e6bd404e1
        .quad 0x4106b166bcf440ef



        .quad 0x02e57a421cd23668
        .quad 0x4ad9fb5d0eaef6fd
        .quad 0x954e6727b1244480
        .quad 0x7f792f9d2699f331
        .quad 0xa485ccd539e4ecf2
        .quad 0x5aa3f3ad0555bab5
        .quad 0x145e3439937df82d
        .quad 0x1238b51e1214283f
        .quad 0x0b886b925fd4d924
        .quad 0x60906f7a3626a80d
        .quad 0xecd367b4b98abd12
        .quad 0x2876beb1def344cf



        .quad 0xdc84e93563144691
        .quad 0x632fe8a0d61f23f4
        .quad 0x4caa800612a9a8d5
        .quad 0x48f9dbfa0e9918d3
        .quad 0xd594b3333a8a85f8
        .quad 0x4ea37689e78d7d58
        .quad 0x73bf9f455e8e351f
        .quad 0x5507d7d2bc41ebb4
        .quad 0x1ceb2903299572fc
        .quad 0x7c8ccaa29502d0ee
        .quad 0x91bfa43411cce67b
        .quad 0x5784481964a831e7



        .quad 0xda7c2b256768d593
        .quad 0x98c1c0574422ca13
        .quad 0xf1a80bd5ca0ace1d
        .quad 0x29cdd1adc088a690
        .quad 0xd6cfd1ef5fddc09c
        .quad 0xe82b3efdf7575dce
        .quad 0x25d56b5d201634c2
        .quad 0x3041c6bb04ed2b9b
        .quad 0x0ff2f2f9d956e148
        .quad 0xade797759f356b2e
        .quad 0x1a4698bb5f6c025c
        .quad 0x104bbd6814049a7b



        .quad 0x51f0fd3168f1ed67
        .quad 0x2c811dcdd86f3bc2
        .quad 0x44dc5c4304d2f2de
        .quad 0x5be8cc57092a7149
        .quad 0xa95d9a5fd67ff163
        .quad 0xe92be69d4cc75681
        .quad 0xb7f8024cde20f257
        .quad 0x204f2a20fb072df5
        .quad 0xc8143b3d30ebb079
        .quad 0x7589155abd652e30
        .quad 0x653c3c318f6d5c31
        .quad 0x2570fb17c279161f



        .quad 0x3efa367f2cb61575
        .quad 0xf5f96f761cd6026c
        .quad 0xe8c7142a65b52562
        .quad 0x3dcb65ea53030acd
        .quad 0x192ea9550bb8245a
        .quad 0xc8e6fba88f9050d1
        .quad 0x7986ea2d88a4c935
        .quad 0x241c5f91de018668
        .quad 0x28d8172940de6caa
        .quad 0x8fbf2cf022d9733a
        .quad 0x16d7fcdd235b01d1
        .quad 0x08420edd5fcdf0e5



        .quad 0xcdff20ab8362fa4a
        .quad 0x57e118d4e21a3e6e
        .quad 0xe3179617fc39e62b
        .quad 0x0d9a53efbc1769fd
        .quad 0x0358c34e04f410ce
        .quad 0xb6135b5a276e0685
        .quad 0x5d9670c7ebb91521
        .quad 0x04d654f321db889c
        .quad 0x5e7dc116ddbdb5d5
        .quad 0x2954deb68da5dd2d
        .quad 0x1cb608173334a292
        .quad 0x4a7a4f2618991ad7



        .quad 0xf4a718025fb15f95
        .quad 0x3df65f346b5c1b8f
        .quad 0xcdfcf08500e01112
        .quad 0x11b50c4cddd31848
        .quad 0x24c3b291af372a4b
        .quad 0x93da8270718147f2
        .quad 0xdd84856486899ef2
        .quad 0x4a96314223e0ee33
        .quad 0xa6e8274408a4ffd6
        .quad 0x738e177e9c1576d9
        .quad 0x773348b63d02b3f2
        .quad 0x4f4bce4dce6bcc51



        .quad 0xa71fce5ae2242584
        .quad 0x26ea725692f58a9e
        .quad 0xd21a09d71cea3cf4
        .quad 0x73fcdd14b71c01e6
        .quad 0x30e2616ec49d0b6f
        .quad 0xe456718fcaec2317
        .quad 0x48eb409bf26b4fa6
        .quad 0x3042cee561595f37
        .quad 0x427e7079449bac41
        .quad 0x855ae36dbce2310a
        .quad 0x4cae76215f841a7c
        .quad 0x389e740c9a9ce1d6



        .quad 0x64fcb3ae34dcb9ce
        .quad 0x97500323e348d0ad
        .quad 0x45b3f07d62c6381b
        .quad 0x61545379465a6788
        .quad 0xc9bd78f6570eac28
        .quad 0xe55b0b3227919ce1
        .quad 0x65fc3eaba19b91ed
        .quad 0x25c425e5d6263690
        .quad 0x3f3e06a6f1d7de6e
        .quad 0x3ef976278e062308
        .quad 0x8c14f6264e8a6c77
        .quad 0x6539a08915484759



        .quad 0xe9d21f74c3d2f773
        .quad 0xc150544125c46845
        .quad 0x624e5ce8f9b99e33
        .quad 0x11c5e4aac5cd186c
        .quad 0xddc4dbd414bb4a19
        .quad 0x19b2bc3c98424f8e
        .quad 0x48a89fd736ca7169
        .quad 0x0f65320ef019bd90
        .quad 0xd486d1b1cafde0c6
        .quad 0x4f3fe6e3163b5181
        .quad 0x59a8af0dfaf2939a
        .quad 0x4cabc7bdec33072a



        .quad 0x16faa8fb532f7428
        .quad 0xdbd42ea046a4e272
        .quad 0x5337653b8b9ea480
        .quad 0x4065947223973f03
        .quad 0xf7c0a19c1a54a044
        .quad 0x4a1c5e2477bd9fbb
        .quad 0xa6e3ca115af22972
        .quad 0x1819bb953f2e9e0d
        .quad 0x498fbb795e042e84
        .quad 0x7d0dd89a7698b714
        .quad 0x8bfb0ba427fe6295
        .quad 0x36ba82e721200524



        .quad 0xd60ecbb74245ec41
        .quad 0xfd9be89e34348716
        .quad 0xc9240afee42284de
        .quad 0x4472f648d0531db4
        .quad 0xc8d69d0a57274ed5
        .quad 0x45ba803260804b17
        .quad 0xdf3cda102255dfac
        .quad 0x77d221232709b339
        .quad 0x498a6d7064ad94d8
        .quad 0xa5b5c8fd9af62263
        .quad 0x8ca8ed0545c141f4
        .quad 0x2c63bec3662d358c



        .quad 0x7fe60d8bea787955
        .quad 0xb9dc117eb5f401b7
        .quad 0x91c7c09a19355cce
        .quad 0x22692ef59442bedf
        .quad 0x9a518b3a8586f8bf
        .quad 0x9ee71af6cbb196f0
        .quad 0xaa0625e6a2385cf2
        .quad 0x1deb2176ddd7c8d1
        .quad 0x8563d19a2066cf6c
        .quad 0x401bfd8c4dcc7cd7
        .quad 0xd976a6becd0d8f62
        .quad 0x67cfd773a278b05e



        .quad 0x8dec31faef3ee475
        .quad 0x99dbff8a9e22fd92
        .quad 0x512d11594e26cab1
        .quad 0x0cde561eec4310b9
        .quad 0x2d5fa9855a4e586a
        .quad 0x65f8f7a449beab7e
        .quad 0xaa074dddf21d33d3
        .quad 0x185cba721bcb9dee
        .quad 0x93869da3f4e3cb41
        .quad 0xbf0392f540f7977e
        .quad 0x026204fcd0463b83
        .quad 0x3ec91a769eec6eed



        .quad 0x1e9df75bf78166ad
        .quad 0x4dfda838eb0cd7af
        .quad 0xba002ed8c1eaf988
        .quad 0x13fedb3e11f33cfc
        .quad 0x0fad2fb7b0a3402f
        .quad 0x46615ecbfb69f4a8
        .quad 0xf745bcc8c5f8eaa6
        .quad 0x7a5fa8794a94e896
        .quad 0x52958faa13cd67a1
        .quad 0x965ee0818bdbb517
        .quad 0x16e58daa2e8845b3
        .quad 0x357d397d5499da8f



        .quad 0x1ebfa05fb0bace6c
        .quad 0xc934620c1caf9a1e
        .quad 0xcc771cc41d82b61a
        .quad 0x2d94a16aa5f74fec
        .quad 0x481dacb4194bfbf8
        .quad 0x4d77e3f1bae58299
        .quad 0x1ef4612e7d1372a0
        .quad 0x3a8d867e70ff69e1
        .quad 0x6f58cd5d55aff958
        .quad 0xba3eaa5c75567721
        .quad 0x75c123999165227d
        .quad 0x69be1343c2f2b35e



        .quad 0x0e091d5ee197c92a
        .quad 0x4f51019f2945119f
        .quad 0x143679b9f034e99c
        .quad 0x7d88112e4d24c696
        .quad 0x82bbbdac684b8de3
        .quad 0xa2f4c7d03fca0718
        .quad 0x337f92fbe096aaa8
        .quad 0x200d4d8c63587376
        .quad 0x208aed4b4893b32b
        .quad 0x3efbf23ebe59b964
        .quad 0xd762deb0dba5e507
        .quad 0x69607bd681bd9d94



        .quad 0xf6be021068de1ce1
        .quad 0xe8d518e70edcbc1f
        .quad 0xe3effdd01b5505a5
        .quad 0x35f63353d3ec3fd0
        .quad 0x3b7f3bd49323a902
        .quad 0x7c21b5566b2c6e53
        .quad 0xe5ba8ff53a7852a7
        .quad 0x28bc77a5838ece00
        .quad 0x63ba78a8e25d8036
        .quad 0x63651e0094333490
        .quad 0x48d82f20288ce532
        .quad 0x3a31abfa36b57524



        .quad 0x239e9624089c0a2e
        .quad 0xc748c4c03afe4738
        .quad 0x17dbed2a764fa12a
        .quad 0x639b93f0321c8582
        .quad 0xc08f788f3f78d289
        .quad 0xfe30a72ca1404d9f
        .quad 0xf2778bfccf65cc9d
        .quad 0x7ee498165acb2021
        .quad 0x7bd508e39111a1c3
        .quad 0x2b2b90d480907489
        .quad 0xe7d2aec2ae72fd19
        .quad 0x0edf493c85b602a6



        .quad 0xaecc8158599b5a68
        .quad 0xea574f0febade20e
        .quad 0x4fe41d7422b67f07
        .quad 0x403b92e3019d4fb4
        .quad 0x6767c4d284764113
        .quad 0xa090403ff7f5f835
        .quad 0x1c8fcffacae6bede
        .quad 0x04c00c54d1dfa369
        .quad 0x4dc22f818b465cf8
        .quad 0x71a0f35a1480eff8
        .quad 0xaee8bfad04c7d657
        .quad 0x355bb12ab26176f4



        .quad 0xa71e64cc7493bbf4
        .quad 0xe5bd84d9eca3b0c3
        .quad 0x0a6bc50cfa05e785
        .quad 0x0f9b8132182ec312
        .quad 0xa301dac75a8c7318
        .quad 0xed90039db3ceaa11
        .quad 0x6f077cbf3bae3f2d
        .quad 0x7518eaf8e052ad8e
        .quad 0xa48859c41b7f6c32
        .quad 0x0f2d60bcf4383298
        .quad 0x1815a929c9b1d1d9
        .quad 0x47c3871bbb1755c4



        .quad 0x5144539771ec4f48
        .quad 0xf805b17dc98c5d6e
        .quad 0xf762c11a47c3c66b
        .quad 0x00b89b85764699dc
        .quad 0xfbe65d50c85066b0
        .quad 0x62ecc4b0b3a299b0
        .quad 0xe53754ea441ae8e0
        .quad 0x08fea02ce8d48d5f
        .quad 0x824ddd7668deead0
        .quad 0xc86445204b685d23
        .quad 0xb514cfcd5d89d665
        .quad 0x473829a74f75d537



        .quad 0x82d2da754679c418
        .quad 0xe63bd7d8b2618df0
        .quad 0x355eef24ac47eb0a
        .quad 0x2078684c4833c6b4
        .quad 0x23d9533aad3902c9
        .quad 0x64c2ddceef03588f
        .quad 0x15257390cfe12fb4
        .quad 0x6c668b4d44e4d390
        .quad 0x3b48cf217a78820c
        .quad 0xf76a0ab281273e97
        .quad 0xa96c65a78c8eed7b
        .quad 0x7411a6054f8a433f



        .quad 0x4d659d32b99dc86d
        .quad 0x044cdc75603af115
        .quad 0xb34c712cdcc2e488
        .quad 0x7c136574fb8134ff
        .quad 0x579ae53d18b175b4
        .quad 0x68713159f392a102
        .quad 0x8455ecba1eef35f5
        .quad 0x1ec9a872458c398f
        .quad 0xb8e6a4d400a2509b
        .quad 0x9b81d7020bc882b4
        .quad 0x57e7cc9bf1957561
        .quad 0x3add88a5c7cd6460



        .quad 0xab895770b635dcf2
        .quad 0x02dfef6cf66c1fbc
        .quad 0x85530268beb6d187
        .quad 0x249929fccc879e74
        .quad 0x85c298d459393046
        .quad 0x8f7e35985ff659ec
        .quad 0x1d2ca22af2f66e3a
        .quad 0x61ba1131a406a720
        .quad 0xa3d0a0f116959029
        .quad 0x023b6b6cba7ebd89
        .quad 0x7bf15a3e26783307
        .quad 0x5620310cbbd8ece7



        .quad 0x528993434934d643
        .quad 0xb9dbf806a51222f5
        .quad 0x8f6d878fc3f41c22
        .quad 0x37676a2a4d9d9730
        .quad 0x6646b5f477e285d6
        .quad 0x40e8ff676c8f6193
        .quad 0xa6ec7311abb594dd
        .quad 0x7ec846f3658cec4d
        .quad 0x9b5e8f3f1da22ec7
        .quad 0x130f1d776c01cd13
        .quad 0x214c8fcfa2989fb8
        .quad 0x6daaf723399b9dd5



        .quad 0x591e4a5610628564
        .quad 0x2a4bb87ca8b4df34
        .quad 0xde2a2572e7a38e43
        .quad 0x3cbdabd9fee5046e
        .quad 0x81aebbdd2cd13070
        .quad 0x962e4325f85a0e9e
        .quad 0xde9391aacadffecb
        .quad 0x53177fda52c230e6
        .quad 0xa7bc970650b9de79
        .quad 0x3d12a7fbc301b59b
        .quad 0x02652e68d36ae38c
        .quad 0x79d739835a6199dc



        .quad 0xd9354df64131c1bd
        .quad 0x758094a186ec5822
        .quad 0x4464ee12e459f3c2
        .quad 0x6c11fce4cb133282
        .quad 0x21c9d9920d591737
        .quad 0x9bea41d2e9b46cd6
        .quad 0xe20e84200d89bfca
        .quad 0x79d99f946eae5ff8
        .quad 0xf17b483568673205
        .quad 0x387deae83caad96c
        .quad 0x61b471fd56ffe386
        .quad 0x31741195b745a599



        .quad 0xe8d10190b77a360b
        .quad 0x99b983209995e702
        .quad 0xbd4fdff8fa0247aa
        .quad 0x2772e344e0d36a87
        .quad 0x17f8ba683b02a047
        .quad 0x50212096feefb6c8
        .quad 0x70139be21556cbe2
        .quad 0x203e44a11d98915b
        .quad 0xd6863eba37b9e39f
        .quad 0x105bc169723b5a23
        .quad 0x104f6459a65c0762
        .quad 0x567951295b4d38d4



        .quad 0x535fd60613037524
        .quad 0xe210adf6b0fbc26a
        .quad 0xac8d0a9b23e990ae
        .quad 0x47204d08d72fdbf9
        .quad 0x07242eb30d4b497f
        .quad 0x1ef96306b9bccc87
        .quad 0x37950934d8116f45
        .quad 0x05468d6201405b04
        .quad 0x00f565a9f93267de
        .quad 0xcecfd78dc0d58e8a
        .quad 0xa215e2dcf318e28e
        .quad 0x4599ee919b633352



        .quad 0xd3c220ca70e0e76b
        .quad 0xb12bea58ea9f3094
        .quad 0x294ddec8c3271282
        .quad 0x0c3539e1a1d1d028
        .quad 0xac746d6b861ae579
        .quad 0x31ab0650f6aea9dc
        .quad 0x241d661140256d4c
        .quad 0x2f485e853d21a5de
        .quad 0x329744839c0833f3
        .quad 0x6fe6257fd2abc484
        .quad 0x5327d1814b358817
        .quad 0x65712585893fe9bc



        .quad 0x9c102fb732a61161
        .quad 0xe48e10dd34d520a8
        .quad 0x365c63546f9a9176
        .quad 0x32f6fe4c046f6006
        .quad 0x81c29f1bd708ee3f
        .quad 0xddcb5a05ae6407d0
        .quad 0x97aec1d7d2a3eba7
        .quad 0x1590521a91d50831
        .quad 0x40a3a11ec7910acc
        .quad 0x9013dff8f16d27ae
        .quad 0x1a9720d8abb195d4
        .quad 0x1bb9fe452ea98463



        .quad 0xe9d1d950b3d54f9e
        .quad 0x2d5f9cbee00d33c1
        .quad 0x51c2c656a04fc6ac
        .quad 0x65c091ee3c1cbcc9
        .quad 0xcf5e6c95cc36747c
        .quad 0x294201536b0bc30d
        .quad 0x453ac67cee797af0
        .quad 0x5eae6ab32a8bb3c9
        .quad 0x7083661114f118ea
        .quad 0x2b37b87b94349cad
        .quad 0x7273f51cb4e99f40
        .quad 0x78a2a95823d75698



        .quad 0xa2b072e95c8c2ace
        .quad 0x69cffc96651e9c4b
        .quad 0x44328ef842e7b42b
        .quad 0x5dd996c122aadeb3
        .quad 0xb4f23c425ef83207
        .quad 0xabf894d3c9a934b5
        .quad 0xd0708c1339fd87f7
        .quad 0x1876789117166130
        .quad 0x925b5ef0670c507c
        .quad 0x819bc842b93c33bf
        .quad 0x10792e9a70dd003f
        .quad 0x59ad4b7a6e28dc74



        .quad 0x5f3a7562eb3dbe47
        .quad 0xf7ea38548ebda0b8
        .quad 0x00c3e53145747299
        .quad 0x1304e9e71627d551
        .quad 0x583b04bfacad8ea2
        .quad 0x29b743e8148be884
        .quad 0x2b1e583b0810c5db
        .quad 0x2b5449e58eb3bbaa
        .quad 0x789814d26adc9cfe
        .quad 0x3c1bab3f8b48dd0b
        .quad 0xda0fe1fff979c60a
        .quad 0x4468de2d7c2dd693



        .quad 0x51bb355e9419469e
        .quad 0x33e6dc4c23ddc754
        .quad 0x93a5b6d6447f9962
        .quad 0x6cce7c6ffb44bd63
        .quad 0x4b9ad8c6f86307ce
        .quad 0x21113531435d0c28
        .quad 0xd4a866c5657a772c
        .quad 0x5da6427e63247352
        .quad 0x1a94c688deac22ca
        .quad 0xb9066ef7bbae1ff8
        .quad 0x88ad8c388d59580f
        .quad 0x58f29abfe79f2ca8



        .quad 0xe90ecfab8de73e68
        .quad 0x54036f9f377e76a5
        .quad 0xf0495b0bbe015982
        .quad 0x577629c4a7f41e36
        .quad 0x4b5a64bf710ecdf6
        .quad 0xb14ce538462c293c
        .quad 0x3643d056d50b3ab9
        .quad 0x6af93724185b4870
        .quad 0x3220024509c6a888
        .quad 0xd2e036134b558973
        .quad 0x83e236233c33289f
        .quad 0x701f25bb0caec18f



        .quad 0xc3a8b0f8e4616ced
        .quad 0xf700660e9e25a87d
        .quad 0x61e3061ff4bca59c
        .quad 0x2e0c92bfbdc40be9
        .quad 0x9d18f6d97cbec113
        .quad 0x844a06e674bfdbe4
        .quad 0x20f5b522ac4e60d6
        .quad 0x720a5bc050955e51
        .quad 0x0c3f09439b805a35
        .quad 0xe84e8b376242abfc
        .quad 0x691417f35c229346
        .quad 0x0e9b9cbb144ef0ec



        .quad 0xfbbad48ffb5720ad
        .quad 0xee81916bdbf90d0e
        .quad 0xd4813152635543bf
        .quad 0x221104eb3f337bd8
        .quad 0x8dee9bd55db1beee
        .quad 0xc9c3ab370a723fb9
        .quad 0x44a8f1bf1c68d791
        .quad 0x366d44191cfd3cde
        .quad 0x9e3c1743f2bc8c14
        .quad 0x2eda26fcb5856c3b
        .quad 0xccb82f0e68a7fb97
        .quad 0x4167a4e6bc593244



        .quad 0x643b9d2876f62700
        .quad 0x5d1d9d400e7668eb
        .quad 0x1b4b430321fc0684
        .quad 0x7938bb7e2255246a
        .quad 0xc2be2665f8ce8fee
        .quad 0xe967ff14e880d62c
        .quad 0xf12e6e7e2f364eee
        .quad 0x34b33370cb7ed2f6
        .quad 0xcdc591ee8681d6cc
        .quad 0xce02109ced85a753
        .quad 0xed7485c158808883
        .quad 0x1176fc6e2dfe65e4



        .quad 0xb4af6cd05b9c619b
        .quad 0x2ddfc9f4b2a58480
        .quad 0x3d4fa502ebe94dc4
        .quad 0x08fc3a4c677d5f34
        .quad 0xdb90e28949770eb8
        .quad 0x98fbcc2aacf440a3
        .quad 0x21354ffeded7879b
        .quad 0x1f6a3e54f26906b6
        .quad 0x60a4c199d30734ea
        .quad 0x40c085b631165cd6
        .quad 0xe2333e23f7598295
        .quad 0x4f2fad0116b900d1



        .quad 0x44beb24194ae4e54
        .quad 0x5f541c511857ef6c
        .quad 0xa61e6b2d368d0498
        .quad 0x445484a4972ef7ab
        .quad 0x962cd91db73bb638
        .quad 0xe60577aafc129c08
        .quad 0x6f619b39f3b61689
        .quad 0x3451995f2944ee81
        .quad 0x9152fcd09fea7d7c
        .quad 0x4a816c94b0935cf6
        .quad 0x258e9aaa47285c40
        .quad 0x10b89ca6042893b7



        .quad 0x9b2a426e3b646025
        .quad 0x32127190385ce4cf
        .quad 0xa25cffc2dd6dea45
        .quad 0x06409010bea8de75
        .quad 0xd67cded679d34aa0
        .quad 0xcc0b9ec0cc4db39f
        .quad 0xa535a456e35d190f
        .quad 0x2e05d9eaf61f6fef
        .quad 0xc447901ad61beb59
        .quad 0x661f19bce5dc880a
        .quad 0x24685482b7ca6827
        .quad 0x293c778cefe07f26



        .quad 0x86809e7007069096
        .quad 0xaad75b15e4e50189
        .quad 0x07f35715a21a0147
        .quad 0x0487f3f112815d5e
        .quad 0x16c795d6a11ff200
        .quad 0xcb70d0e2b15815c9
        .quad 0x89f293209b5395b5
        .quad 0x50b8c2d031e47b4f
        .quad 0x48350c08068a4962
        .quad 0x6ffdd05351092c9a
        .quad 0x17af4f4aaf6fc8dd
        .quad 0x4b0553b53cdba58b



        .quad 0x9c65fcbe1b32ff79
        .quad 0xeb75ea9f03b50f9b
        .quad 0xfced2a6c6c07e606
        .quad 0x35106cd551717908
        .quad 0xbf05211b27c152d4
        .quad 0x5ec26849bd1af639
        .quad 0x5e0b2caa8e6fab98
        .quad 0x054c8bdd50bd0840
        .quad 0x38a0b12f1dcf073d
        .quad 0x4b60a8a3b7f6a276
        .quad 0xfed5ac25d3404f9a
        .quad 0x72e82d5e5505c229



        .quad 0x6b0b697ff0d844c8
        .quad 0xbb12f85cd979cb49
        .quad 0xd2a541c6c1da0f1f
        .quad 0x7b7c242958ce7211
        .quad 0x00d9cdfd69771d02
        .quad 0x410276cd6cfbf17e
        .quad 0x4c45306c1cb12ec7
        .quad 0x2857bf1627500861
        .quad 0x9f21903f0101689e
        .quad 0xd779dfd3bf861005
        .quad 0xa122ee5f3deb0f1b
        .quad 0x510df84b485a00d4



        .quad 0xa54133bb9277a1fa
        .quad 0x74ec3b6263991237
        .quad 0x1a3c54dc35d2f15a
        .quad 0x2d347144e482ba3a
        .quad 0x24b3c887c70ac15e
        .quad 0xb0f3a557fb81b732
        .quad 0x9b2cde2fe578cc1b
        .quad 0x4cf7ed0703b54f8e
        .quad 0x6bd47c6598fbee0f
        .quad 0x9e4733e2ab55be2d
        .quad 0x1093f624127610c5
        .quad 0x4e05e26ad0a1eaa4



        .quad 0xda9b6b624b531f20
        .quad 0x429a760e77509abb
        .quad 0xdbe9f522e823cb80
        .quad 0x618f1856880c8f82
        .quad 0x1833c773e18fe6c0
        .quad 0xe3c4711ad3c87265
        .quad 0x3bfd3c4f0116b283
        .quad 0x1955875eb4cd4db8
        .quad 0x6da6de8f0e399799
        .quad 0x7ad61aa440fda178
        .quad 0xb32cd8105e3563dd
        .quad 0x15f6beae2ae340ae



        .quad 0x862bcb0c31ec3a62
        .quad 0x810e2b451138f3c2
        .quad 0x788ec4b839dac2a4
        .quad 0x28f76867ae2a9281
        .quad 0xba9a0f7b9245e215
        .quad 0xf368612dd98c0dbb
        .quad 0x2e84e4cbf220b020
        .quad 0x6ba92fe962d90eda
        .quad 0x3e4df9655884e2aa
        .quad 0xbd62fbdbdbd465a5
        .quad 0xd7596caa0de9e524
        .quad 0x6e8042ccb2b1b3d7



        .quad 0xf10d3c29ce28ca6e
        .quad 0xbad34540fcb6093d
        .quad 0xe7426ed7a2ea2d3f
        .quad 0x08af9d4e4ff298b9
        .quad 0x1530653616521f7e
        .quad 0x660d06b896203dba
        .quad 0x2d3989bc545f0879
        .quad 0x4b5303af78ebd7b0
        .quad 0x72f8a6c3bebcbde8
        .quad 0x4f0fca4adc3a8e89
        .quad 0x6fa9d4e8c7bfdf7a
        .quad 0x0dcf2d679b624eb7



        .quad 0x3d5947499718289c
        .quad 0x12ebf8c524533f26
        .quad 0x0262bfcb14c3ef15
        .quad 0x20b878d577b7518e
        .quad 0x753941be5a45f06e
        .quad 0xd07caeed6d9c5f65
        .quad 0x11776b9c72ff51b6
        .quad 0x17d2d1d9ef0d4da9
        .quad 0x27f2af18073f3e6a
        .quad 0xfd3fe519d7521069
        .quad 0x22e3b72c3ca60022
        .quad 0x72214f63cc65c6a7



        .quad 0xb4e37f405307a693
        .quad 0xaba714d72f336795
        .quad 0xd6fbd0a773761099
        .quad 0x5fdf48c58171cbc9
        .quad 0x1d9db7b9f43b29c9
        .quad 0xd605824a4f518f75
        .quad 0xf2c072bd312f9dc4
        .quad 0x1f24ac855a1545b0
        .quad 0x24d608328e9505aa
        .quad 0x4748c1d10c1420ee
        .quad 0xc7ffe45c06fb25a2
        .quad 0x00ba739e2ae395e6



        .quad 0x592e98de5c8790d6
        .quad 0xe5bfb7d345c2a2df
        .quad 0x115a3b60f9b49922
        .quad 0x03283a3e67ad78f3
        .quad 0xae4426f5ea88bb26
        .quad 0x360679d984973bfb
        .quad 0x5c9f030c26694e50
        .quad 0x72297de7d518d226
        .quad 0x48241dc7be0cb939
        .quad 0x32f19b4d8b633080
        .quad 0xd3dfc90d02289308
        .quad 0x05e1296846271945



        .quad 0xba82eeb32d9c495a
        .quad 0xceefc8fcf12bb97c
        .quad 0xb02dabae93b5d1e0
        .quad 0x39c00c9c13698d9b
        .quad 0xadbfbbc8242c4550
        .quad 0xbcc80cecd03081d9
        .quad 0x843566a6f5c8df92
        .quad 0x78cf25d38258ce4c
        .quad 0x15ae6b8e31489d68
        .quad 0xaa851cab9c2bf087
        .quad 0xc9a75a97f04efa05
        .quad 0x006b52076b3ff832



        .quad 0x29e0cfe19d95781c
        .quad 0xb681df18966310e2
        .quad 0x57df39d370516b39
        .quad 0x4d57e3443bc76122
        .quad 0xf5cb7e16b9ce082d
        .quad 0x3407f14c417abc29
        .quad 0xd4b36bce2bf4a7ab
        .quad 0x7de2e9561a9f75ce
        .quad 0xde70d4f4b6a55ecb
        .quad 0x4801527f5d85db99
        .quad 0xdbc9c440d3ee9a81
        .quad 0x6b2a90af1a6029ed



        .quad 0x6923f4fc9ae61e97
        .quad 0x5735281de03f5fd1
        .quad 0xa764ae43e6edd12d
        .quad 0x5fd8f4e9d12d3e4a
        .quad 0x77ebf3245bb2d80a
        .quad 0xd8301b472fb9079b
        .quad 0xc647e6f24cee7333
        .quad 0x465812c8276c2109
        .quad 0x4d43beb22a1062d9
        .quad 0x7065fb753831dc16
        .quad 0x180d4a7bde2968d7
        .quad 0x05b32c2b1cb16790



        .quad 0xc8c05eccd24da8fd
        .quad 0xa1cf1aac05dfef83
        .quad 0xdbbeeff27df9cd61
        .quad 0x3b5556a37b471e99
        .quad 0xf7fca42c7ad58195
        .quad 0x3214286e4333f3cc
        .quad 0xb6c29d0d340b979d
        .quad 0x31771a48567307e1
        .quad 0x32b0c524e14dd482
        .quad 0xedb351541a2ba4b6
        .quad 0xa3d16048282b5af3
        .quad 0x4fc079d27a7336eb



        .quad 0x51c938b089bf2f7f
        .quad 0x2497bd6502dfe9a7
        .quad 0xffffc09c7880e453
        .quad 0x124567cecaf98e92
        .quad 0xdc348b440c86c50d
        .quad 0x1337cbc9cc94e651
        .quad 0x6422f74d643e3cb9
        .quad 0x241170c2bae3cd08
        .quad 0x3ff9ab860ac473b4
        .quad 0xf0911dee0113e435
        .quad 0x4ae75060ebc6c4af
        .quad 0x3f8612966c87000d



        .quad 0x0c9c5303f7957be4
        .quad 0xa3c31a20e085c145
        .quad 0xb0721d71d0850050
        .quad 0x0aba390eab0bf2da
        .quad 0x529fdffe638c7bf3
        .quad 0xdf2b9e60388b4995
        .quad 0xe027b34f1bad0249
        .quad 0x7bc92fc9b9fa74ed
        .quad 0x9f97ef2e801ad9f9
        .quad 0x83697d5479afda3a
        .quad 0xe906b3ffbd596b50
        .quad 0x02672b37dd3fb8e0



        .quad 0x48b2ca8b260885e4
        .quad 0xa4286bec82b34c1c
        .quad 0x937e1a2617f58f74
        .quad 0x741d1fcbab2ca2a5
        .quad 0xee9ba729398ca7f5
        .quad 0xeb9ca6257a4849db
        .quad 0x29eb29ce7ec544e1
        .quad 0x232ca21ef736e2c8
        .quad 0xbf61423d253fcb17
        .quad 0x08803ceafa39eb14
        .quad 0xf18602df9851c7af
        .quad 0x0400f3a049e3414b



        .quad 0xabce0476ba61c55b
        .quad 0x36a3d6d7c4d39716
        .quad 0x6eb259d5e8d82d09
        .quad 0x0c9176e984d756fb
        .quad 0x2efba412a06e7b06
        .quad 0x146785452c8d2560
        .quad 0xdf9713ebd67a91c7
        .quad 0x32830ac7157eadf3
        .quad 0x0e782a7ab73769e8
        .quad 0x04a05d7875b18e2c
        .quad 0x29525226ebcceae1
        .quad 0x0d794f8383eba820



        .quad 0xff35f5cb9e1516f4
        .quad 0xee805bcf648aae45
        .quad 0xf0d73c2bb93a9ef3
        .quad 0x097b0bf22092a6c2
        .quad 0x7be44ce7a7a2e1ac
        .quad 0x411fd93efad1b8b7
        .quad 0x1734a1d70d5f7c9b
        .quad 0x0d6592233127db16
        .quad 0xc48bab1521a9d733
        .quad 0xa6c2eaead61abb25
        .quad 0x625c6c1cc6cb4305
        .quad 0x7fc90fea93eb3a67



        .quad 0x0408f1fe1f5c5926
        .quad 0x1a8f2f5e3b258bf4
        .quad 0x40a951a2fdc71669
        .quad 0x6598ee93c98b577e
        .quad 0xc527deb59c7cb23d
        .quad 0x955391695328404e
        .quad 0xd64392817ccf2c7a
        .quad 0x6ce97dabf7d8fa11
        .quad 0x25b5a8e50ef7c48f
        .quad 0xeb6034116f2ce532
        .quad 0xc5e75173e53de537
        .quad 0x73119fa08c12bb03



        .quad 0xed30129453f1a4cb
        .quad 0xbce621c9c8f53787
        .quad 0xfacb2b1338bee7b9
        .quad 0x3025798a9ea8428c
        .quad 0x7845b94d21f4774d
        .quad 0xbf62f16c7897b727
        .quad 0x671857c03c56522b
        .quad 0x3cd6a85295621212
        .quad 0x3fecde923aeca999
        .quad 0xbdaa5b0062e8c12f
        .quad 0x67b99dfc96988ade
        .quad 0x3f52c02852661036



        .quad 0xffeaa48e2a1351c6
        .quad 0x28624754fa7f53d7
        .quad 0x0b5ba9e57582ddf1
        .quad 0x60c0104ba696ac59
        .quad 0x9258bf99eec416c6
        .quad 0xac8a5017a9d2f671
        .quad 0x629549ab16dea4ab
        .quad 0x05d0e85c99091569
        .quad 0x051de020de9cbe97
        .quad 0xfa07fc56b50bcf74
        .quad 0x378cec9f0f11df65
        .quad 0x36853c69ab96de4d



        .quad 0x36d9b8de78f39b2d
        .quad 0x7f42ed71a847b9ec
        .quad 0x241cd1d679bd3fde
        .quad 0x6a704fec92fbce6b
        .quad 0x4433c0b0fac5e7be
        .quad 0x724bae854c08dcbe
        .quad 0xf1f24cc446978f9b
        .quad 0x4a0aff6d62825fc8
        .quad 0xe917fb9e61095301
        .quad 0xc102df9402a092f8
        .quad 0xbf09e2f5fa66190b
        .quad 0x681109bee0dcfe37



        .quad 0x559a0cc9782a0dde
        .quad 0x551dcdb2ea718385
        .quad 0x7f62865b31ef238c
        .quad 0x504aa7767973613d
        .quad 0x9c18fcfa36048d13
        .quad 0x29159db373899ddd
        .quad 0xdc9f350b9f92d0aa
        .quad 0x26f57eee878a19d4
        .quad 0x0cab2cd55687efb1
        .quad 0x5180d162247af17b
        .quad 0x85c15a344f5a2467
        .quad 0x4041943d9dba3069



        .quad 0xc3c0eeba43ebcc96
        .quad 0x8d749c9c26ea9caf
        .quad 0xd9fa95ee1c77ccc6
        .quad 0x1420a1d97684340f
        .quad 0x4b217743a26caadd
        .quad 0x47a6b424648ab7ce
        .quad 0xcb1d4f7a03fbc9e3
        .quad 0x12d931429800d019
        .quad 0x00c67799d337594f
        .quad 0x5e3c5140b23aa47b
        .quad 0x44182854e35ff395
        .quad 0x1b4f92314359a012



        .quad 0x3e5c109d89150951
        .quad 0x39cefa912de9696a
        .quad 0x20eae43f975f3020
        .quad 0x239b572a7f132dae
        .quad 0x33cf3030a49866b1
        .quad 0x251f73d2215f4859
        .quad 0xab82aa4051def4f6
        .quad 0x5ff191d56f9a23f6
        .quad 0x819ed433ac2d9068
        .quad 0x2883ab795fc98523
        .quad 0xef4572805593eb3d
        .quad 0x020c526a758f36cb



        .quad 0x779834f89ed8dbbc
        .quad 0xc8f2aaf9dc7ca46c
        .quad 0xa9524cdca3e1b074
        .quad 0x02aacc4615313877
        .quad 0xe931ef59f042cc89
        .quad 0x2c589c9d8e124bb6
        .quad 0xadc8e18aaec75997
        .quad 0x452cfe0a5602c50c
        .quad 0x86a0f7a0647877df
        .quad 0xbbc464270e607c9f
        .quad 0xab17ea25f1fb11c9
        .quad 0x4cfb7d7b304b877b



        .quad 0x72b43d6cb89b75fe
        .quad 0x54c694d99c6adc80
        .quad 0xb8c3aa373ee34c9f
        .quad 0x14b4622b39075364
        .quad 0xe28699c29789ef12
        .quad 0x2b6ecd71df57190d
        .quad 0xc343c857ecc970d0
        .quad 0x5b1d4cbc434d3ac5
        .quad 0xb6fb2615cc0a9f26
        .quad 0x3a4f0e2bb88dcce5
        .quad 0x1301498b3369a705
        .quad 0x2f98f71258592dd1



        .quad 0x0c94a74cb50f9e56
        .quad 0x5b1ff4a98e8e1320
        .quad 0x9a2acc2182300f67
        .quad 0x3a6ae249d806aaf9
        .quad 0x2e12ae444f54a701
        .quad 0xfcfe3ef0a9cbd7de
        .quad 0xcebf890d75835de0
        .quad 0x1d8062e9e7614554
        .quad 0x657ada85a9907c5a
        .quad 0x1a0ea8b591b90f62
        .quad 0x8d0e1dfbdf34b4e9
        .quad 0x298b8ce8aef25ff3



        .quad 0x2a927953eff70cb2
        .quad 0x4b89c92a79157076
        .quad 0x9418457a30a7cf6a
        .quad 0x34b8a8404d5ce485
        .quad 0x837a72ea0a2165de
        .quad 0x3fab07b40bcf79f6
        .quad 0x521636c77738ae70
        .quad 0x6ba6271803a7d7dc
        .quad 0xc26eecb583693335
        .quad 0xd5a813df63b5fefd
        .quad 0xa293aa9aa4b22573
        .quad 0x71d62bdd465e1c6a



        .quad 0x6533cc28d378df80
        .quad 0xf6db43790a0fa4b4
        .quad 0xe3645ff9f701da5a
        .quad 0x74d5f317f3172ba4
        .quad 0xcd2db5dab1f75ef5
        .quad 0xd77f95cf16b065f5
        .quad 0x14571fea3f49f085
        .quad 0x1c333621262b2b3d
        .quad 0xa86fe55467d9ca81
        .quad 0x398b7c752b298c37
        .quad 0xda6d0892e3ac623b
        .quad 0x4aebcc4547e9d98c



        .quad 0x53175a7205d21a77
        .quad 0xb0c04422d3b934d4
        .quad 0xadd9f24bdd5deadc
        .quad 0x074f46e69f10ff8c
        .quad 0x0de9b204a059a445
        .quad 0xe15cb4aa4b17ad0f
        .quad 0xe1bbec521f79c557
        .quad 0x2633f1b9d071081b
        .quad 0xc1fb4177018b9910
        .quad 0xa6ea20dc6c0fe140
        .quad 0xd661f3e74354c6ff
        .quad 0x5ecb72e6f1a3407a



        .quad 0xa515a31b2259fb4e
        .quad 0x0960f3972bcac52f
        .quad 0xedb52fec8d3454cb
        .quad 0x382e2720c476c019
        .quad 0xfeeae106e8e86997
        .quad 0x9863337f98d09383
        .quad 0x9470480eaa06ebef
        .quad 0x038b6898d4c5c2d0
        .quad 0xf391c51d8ace50a6
        .quad 0x3142d0b9ae2d2948
        .quad 0xdb4d5a1a7f24ca80
        .quad 0x21aeba8b59250ea8



        .quad 0x24f13b34cf405530
        .quad 0x3c44ea4a43088af7
        .quad 0x5dd5c5170006a482
        .quad 0x118eb8f8890b086d
        .quad 0x53853600f0087f23
        .quad 0x4c461879da7d5784
        .quad 0x6af303deb41f6860
        .quad 0x0a3c16c5c27c18ed
        .quad 0x17e49c17cc947f3d
        .quad 0xccc6eda6aac1d27b
        .quad 0xdf6092ceb0f08e56
        .quad 0x4909b3e22c67c36b



        .quad 0x9c9c85ea63fe2e89
        .quad 0xbe1baf910e9412ec
        .quad 0x8f7baa8a86fbfe7b
        .quad 0x0fb17f9fef968b6c
        .quad 0x59a16676706ff64e
        .quad 0x10b953dd0d86a53d
        .quad 0x5848e1e6ce5c0b96
        .quad 0x2d8b78e712780c68
        .quad 0x79d5c62eafc3902b
        .quad 0x773a215289e80728
        .quad 0xc38ae640e10120b9
        .quad 0x09ae23717b2b1a6d



        .quad 0xbb6a192a4e4d083c
        .quad 0x34ace0630029e192
        .quad 0x98245a59aafabaeb
        .quad 0x6d9c8a9ada97faac
        .quad 0x10ab8fa1ad32b1d0
        .quad 0xe9aced1be2778b24
        .quad 0xa8856bc0373de90f
        .quad 0x66f35ddddda53996
        .quad 0xd27d9afb24997323
        .quad 0x1bb7e07ef6f01d2e
        .quad 0x2ba7472df52ecc7f
        .quad 0x03019b4f646f9dc8



        .quad 0x04a186b5565345cd
        .quad 0xeee76610bcc4116a
        .quad 0x689c73b478fb2a45
        .quad 0x387dcbff65697512
        .quad 0xaf09b214e6b3dc6b
        .quad 0x3f7573b5ad7d2f65
        .quad 0xd019d988100a23b0
        .quad 0x392b63a58b5c35f7
        .quad 0x4093addc9c07c205
        .quad 0xc565be15f532c37e
        .quad 0x63dbecfd1583402a
        .quad 0x61722b4aef2e032e



        .quad 0x0012aafeecbd47af
        .quad 0x55a266fb1cd46309
        .quad 0xf203eb680967c72c
        .quad 0x39633944ca3c1429
        .quad 0xd6b07a5581cb0e3c
        .quad 0x290ff006d9444969
        .quad 0x08680b6a16dcda1f
        .quad 0x5568d2b75a06de59
        .quad 0x8d0cb88c1b37cfe1
        .quad 0x05b6a5a3053818f3
        .quad 0xf2e9bc04b787d959
        .quad 0x6beba1249add7f64



        .quad 0x1d06005ca5b1b143
        .quad 0x6d4c6bb87fd1cda2
        .quad 0x6ef5967653fcffe7
        .quad 0x097c29e8c1ce1ea5
        .quad 0x5c3cecb943f5a53b
        .quad 0x9cc9a61d06c08df2
        .quad 0xcfba639a85895447
        .quad 0x5a845ae80df09fd5
        .quad 0x4ce97dbe5deb94ca
        .quad 0x38d0a4388c709c48
        .quad 0xc43eced4a169d097
        .quad 0x0a1249fff7e587c3



        .quad 0x12f0071b276d01c9
        .quad 0xe7b8bac586c48c70
        .quad 0x5308129b71d6fba9
        .quad 0x5d88fbf95a3db792
        .quad 0x0b408d9e7354b610
        .quad 0x806b32535ba85b6e
        .quad 0xdbe63a034a58a207
        .quad 0x173bd9ddc9a1df2c
        .quad 0x2b500f1efe5872df
        .quad 0x58d6582ed43918c1
        .quad 0xe6ed278ec9673ae0
        .quad 0x06e1cd13b19ea319



        .quad 0x40d0ad516f166f23
        .quad 0x118e32931fab6abe
        .quad 0x3fe35e14a04d088e
        .quad 0x3080603526e16266
        .quad 0x472baf629e5b0353
        .quad 0x3baa0b90278d0447
        .quad 0x0c785f469643bf27
        .quad 0x7f3a6a1a8d837b13
        .quad 0xf7e644395d3d800b
        .quad 0x95a8d555c901edf6
        .quad 0x68cd7830592c6339
        .quad 0x30d0fded2e51307e



        .quad 0xe0594d1af21233b3
        .quad 0x1bdbe78ef0cc4d9c
        .quad 0x6965187f8f499a77
        .quad 0x0a9214202c099868
        .quad 0x9cb4971e68b84750
        .quad 0xa09572296664bbcf
        .quad 0x5c8de72672fa412b
        .quad 0x4615084351c589d9
        .quad 0xbc9019c0aeb9a02e
        .quad 0x55c7110d16034cae
        .quad 0x0e6df501659932ec
        .quad 0x3bca0d2895ca5dfe



        .quad 0x40f031bc3c5d62a4
        .quad 0x19fc8b3ecff07a60
        .quad 0x98183da2130fb545
        .quad 0x5631deddae8f13cd
        .quad 0x9c688eb69ecc01bf
        .quad 0xf0bc83ada644896f
        .quad 0xca2d955f5f7a9fe2
        .quad 0x4ea8b4038df28241
        .quad 0x2aed460af1cad202
        .quad 0x46305305a48cee83
        .quad 0x9121774549f11a5f
        .quad 0x24ce0930542ca463



        .quad 0x1fe890f5fd06c106
        .quad 0xb5c468355d8810f2
        .quad 0x827808fe6e8caf3e
        .quad 0x41d4e3c28a06d74b
        .quad 0x3fcfa155fdf30b85
        .quad 0xd2f7168e36372ea4
        .quad 0xb2e064de6492f844
        .quad 0x549928a7324f4280
        .quad 0xf26e32a763ee1a2e
        .quad 0xae91e4b7d25ffdea
        .quad 0xbc3bd33bd17f4d69
        .quad 0x491b66dec0dcff6a



        .quad 0x98f5b13dc7ea32a7
        .quad 0xe3d5f8cc7e16db98
        .quad 0xac0abf52cbf8d947
        .quad 0x08f338d0c85ee4ac
        .quad 0x75f04a8ed0da64a1
        .quad 0xed222caf67e2284b
        .quad 0x8234a3791f7b7ba4
        .quad 0x4cf6b8b0b7018b67
        .quad 0xc383a821991a73bd
        .quad 0xab27bc01df320c7a
        .quad 0xc13d331b84777063
        .quad 0x530d4a82eb078a99



        .quad 0x004c3630e1f94825
        .quad 0x7e2d78268cab535a
        .quad 0xc7482323cc84ff8b
        .quad 0x65ea753f101770b9
        .quad 0x6d6973456c9abf9e
        .quad 0x257fb2fc4900a880
        .quad 0x2bacf412c8cfb850
        .quad 0x0db3e7e00cbfbd5b
        .quad 0x3d66fc3ee2096363
        .quad 0x81d62c7f61b5cb6b
        .quad 0x0fbe044213443b1a
        .quad 0x02a4ec1921e1a1db



        .quad 0x5ce6259a3b24b8a2
        .quad 0xb8577acc45afa0b8
        .quad 0xcccbe6e88ba07037
        .quad 0x3d143c51127809bf
        .quad 0xf5c86162f1cf795f
        .quad 0x118c861926ee57f2
        .quad 0x172124851c063578
        .quad 0x36d12b5dec067fcf
        .quad 0x126d279179154557
        .quad 0xd5e48f5cfc783a0a
        .quad 0x36bdb6e8df179bac
        .quad 0x2ef517885ba82859



        .quad 0x88bd438cd11e0d4a
        .quad 0x30cb610d43ccf308
        .quad 0xe09a0e3791937bcc
        .quad 0x4559135b25b1720c
        .quad 0x1ea436837c6da1e9
        .quad 0xf9c189af1fb9bdbe
        .quad 0x303001fcce5dd155
        .quad 0x28a7c99ebc57be52
        .quad 0xb8fd9399e8d19e9d
        .quad 0x908191cb962423ff
        .quad 0xb2b948d747c742a3
        .quad 0x37f33226d7fb44c4



        .quad 0x0dae8767b55f6e08
        .quad 0x4a43b3b35b203a02
        .quad 0xe3725a6e80af8c79
        .quad 0x0f7a7fd1705fa7a3
        .quad 0x33912553c821b11d
        .quad 0x66ed42c241e301df
        .quad 0x066fcc11104222fd
        .quad 0x307a3b41c192168f
        .quad 0x8eeb5d076eb55ce0
        .quad 0x2fc536bfaa0d925a
        .quad 0xbe81830fdcb6c6e8
        .quad 0x556c7045827baf52



        .quad 0x8e2b517302e9d8b7
        .quad 0xe3e52269248714e8
        .quad 0xbd4fbd774ca960b5
        .quad 0x6f4b4199c5ecada9
        .quad 0xb94b90022bf44406
        .quad 0xabd4237eff90b534
        .quad 0x7600a960faf86d3a
        .quad 0x2f45abdac2322ee3
        .quad 0x61af4912c8ef8a6a
        .quad 0xe58fa4fe43fb6e5e
        .quad 0xb5afcc5d6fd427cf
        .quad 0x6a5393281e1e11eb



        .quad 0xf3da5139a5d1ee89
        .quad 0x8145457cff936988
        .quad 0x3f622fed00e188c4
        .quad 0x0f513815db8b5a3d
        .quad 0x0fff04fe149443cf
        .quad 0x53cac6d9865cddd7
        .quad 0x31385b03531ed1b7
        .quad 0x5846a27cacd1039d
        .quad 0x4ff5cdac1eb08717
        .quad 0x67e8b29590f2e9bc
        .quad 0x44093b5e237afa99
        .quad 0x0d414bed8708b8b2



        .quad 0xcfb68265fd0e75f6
        .quad 0xe45b3e28bb90e707
        .quad 0x7242a8de9ff92c7a
        .quad 0x685b3201933202dd
        .quad 0x81886a92294ac9e8
        .quad 0x23162b45d55547be
        .quad 0x94cfbc4403715983
        .quad 0x50eb8fdb134bc401
        .quad 0xc0b73ec6d6b330cd
        .quad 0x84e44807132faff1
        .quad 0x732b7352c4a5dee1
        .quad 0x5d7c7cf1aa7cd2d2



        .quad 0xaf3b46bf7a4aafa2
        .quad 0xb78705ec4d40d411
        .quad 0x114f0c6aca7c15e3
        .quad 0x3f364faaa9489d4d
        .quad 0x33d1013e9b73a562
        .quad 0x925cef5748ec26e1
        .quad 0xa7fce614dd468058
        .quad 0x78b0fad41e9aa438
        .quad 0xbf56a431ed05b488
        .quad 0xa533e66c9c495c7e
        .quad 0xe8652baf87f3651a
        .quad 0x0241800059d66c33



        .quad 0xceb077fea37a5be4
        .quad 0xdb642f02e5a5eeb7
        .quad 0xc2e6d0c5471270b8
        .quad 0x4771b65538e4529c
        .quad 0x28350c7dcf38ea01
        .quad 0x7c6cdbc0b2917ab6
        .quad 0xace7cfbe857082f7
        .quad 0x4d2845aba2d9a1e0
        .quad 0xbb537fe0447070de
        .quad 0xcba744436dd557df
        .quad 0xd3b5a3473600dbcb
        .quad 0x4aeabbe6f9ffd7f8



        .quad 0x4630119e40d8f78c
        .quad 0xa01a9bc53c710e11
        .quad 0x486d2b258910dd79
        .quad 0x1e6c47b3db0324e5
        .quad 0x6a2134bcc4a9c8f2
        .quad 0xfbf8fd1c8ace2e37
        .quad 0x000ae3049911a0ba
        .quad 0x046e3a616bc89b9e
        .quad 0x14e65442f03906be
        .quad 0x4a019d54e362be2a
        .quad 0x68ccdfec8dc230c7
        .quad 0x7cfb7e3faf6b861c



        .quad 0x4637974e8c58aedc
        .quad 0xb9ef22fbabf041a4
        .quad 0xe185d956e980718a
        .quad 0x2f1b78fab143a8a6
        .quad 0x96eebffb305b2f51
        .quad 0xd3f938ad889596b8
        .quad 0xf0f52dc746d5dd25
        .quad 0x57968290bb3a0095
        .quad 0xf71ab8430a20e101
        .quad 0xf393658d24f0ec47
        .quad 0xcf7509a86ee2eed1
        .quad 0x7dc43e35dc2aa3e1



        .quad 0x85966665887dd9c3
        .quad 0xc90f9b314bb05355
        .quad 0xc6e08df8ef2079b1
        .quad 0x7ef72016758cc12f
        .quad 0x5a782a5c273e9718
        .quad 0x3576c6995e4efd94
        .quad 0x0f2ed8051f237d3e
        .quad 0x044fb81d82d50a99
        .quad 0xc1df18c5a907e3d9
        .quad 0x57b3371dce4c6359
        .quad 0xca704534b201bb49
        .quad 0x7f79823f9c30dd2e



        .quad 0x8334d239a3b513e8
        .quad 0xc13670d4b91fa8d8
        .quad 0x12b54136f590bd33
        .quad 0x0a4e0373d784d9b4
        .quad 0x6a9c1ff068f587ba
        .quad 0x0827894e0050c8de
        .quad 0x3cbf99557ded5be7
        .quad 0x64a9b0431c06d6f0
        .quad 0x2eb3d6a15b7d2919
        .quad 0xb0b4f6a0d53a8235
        .quad 0x7156ce4389a45d47
        .quad 0x071a7d0ace18346c



        .quad 0xd3072daac887ba0b
        .quad 0x01262905bfa562ee
        .quad 0xcf543002c0ef768b
        .quad 0x2c3bcc7146ea7e9c
        .quad 0xcc0c355220e14431
        .quad 0x0d65950709b15141
        .quad 0x9af5621b209d5f36
        .quad 0x7c69bcf7617755d3
        .quad 0x07f0d7eb04e8295f
        .quad 0x10db18252f50f37d
        .quad 0xe951a9a3171798d7
        .quad 0x6f5a9a7322aca51d



        .quad 0x8ba1000c2f41c6c5
        .quad 0xc49f79c10cfefb9b
        .quad 0x4efa47703cc51c9f
        .quad 0x494e21a2e147afca
        .quad 0xe729d4eba3d944be
        .quad 0x8d9e09408078af9e
        .quad 0x4525567a47869c03
        .quad 0x02ab9680ee8d3b24
        .quad 0xefa48a85dde50d9a
        .quad 0x219a224e0fb9a249
        .quad 0xfa091f1dd91ef6d9
        .quad 0x6b5d76cbea46bb34



        .quad 0x8857556cec0cd994
        .quad 0x6472dc6f5cd01dba
        .quad 0xaf0169148f42b477
        .quad 0x0ae333f685277354
        .quad 0xe0f941171e782522
        .quad 0xf1e6ae74036936d3
        .quad 0x408b3ea2d0fcc746
        .quad 0x16fb869c03dd313e
        .quad 0x288e199733b60962
        .quad 0x24fc72b4d8abe133
        .quad 0x4811f7ed0991d03e
        .quad 0x3f81e38b8f70d075



        .quad 0x7f910fcc7ed9affe
        .quad 0x545cb8a12465874b
        .quad 0xa8397ed24b0c4704
        .quad 0x50510fc104f50993
        .quad 0x0adb7f355f17c824
        .quad 0x74b923c3d74299a4
        .quad 0xd57c3e8bcbf8eaf7
        .quad 0x0ad3e2d34cdedc3d
        .quad 0x6f0c0fc5336e249d
        .quad 0x745ede19c331cfd9
        .quad 0xf2d6fd0009eefe1c
        .quad 0x127c158bf0fa1ebe



        .quad 0xf6197c422e9879a2
        .quad 0xa44addd452ca3647
        .quad 0x9b413fc14b4eaccb
        .quad 0x354ef87d07ef4f68
        .quad 0xdea28fc4ae51b974
        .quad 0x1d9973d3744dfe96
        .quad 0x6240680b873848a8
        .quad 0x4ed82479d167df95
        .quad 0xfee3b52260c5d975
        .quad 0x50352efceb41b0b8
        .quad 0x8808ac30a9f6653c
        .quad 0x302d92d20539236d



        .quad 0x4c59023fcb3efb7c
        .quad 0x6c2fcb99c63c2a94
        .quad 0xba4190e2c3c7e084
        .quad 0x0e545daea51874d9
        .quad 0x957b8b8b0df53c30
        .quad 0x2a1c770a8e60f098
        .quad 0xbbc7a670345796de
        .quad 0x22a48f9a90c99bc9
        .quad 0x6b7dc0dc8d3fac58
        .quad 0x5497cd6ce6e42bfd
        .quad 0x542f7d1bf400d305
        .quad 0x4159f47f048d9136



        .quad 0x20ad660839e31e32
        .quad 0xf81e1bd58405be50
        .quad 0xf8064056f4dabc69
        .quad 0x14d23dd4ce71b975
        .quad 0x748515a8bbd24839
        .quad 0x77128347afb02b55
        .quad 0x50ba2ac649a2a17f
        .quad 0x060525513ad730f1
        .quad 0xf2398e098aa27f82
        .quad 0x6d7982bb89a1b024
        .quad 0xfa694084214dd24c
        .quad 0x71ab966fa32301c3



        .quad 0x2dcbd8e34ded02fc
        .quad 0x1151f3ec596f22aa
        .quad 0xbca255434e0328da
        .quad 0x35768fbe92411b22
        .quad 0xb1088a0702809955
        .quad 0x43b273ea0b43c391
        .quad 0xca9b67aefe0686ed
        .quad 0x605eecbf8335f4ed
        .quad 0x83200a656c340431
        .quad 0x9fcd71678ee59c2f
        .quad 0x75d4613f71300f8a
        .quad 0x7a912faf60f542f9



        .quad 0xb204585e5edc1a43
        .quad 0x9f0e16ee5897c73c
        .quad 0x5b82c0ae4e70483c
        .quad 0x624a170e2bddf9be
        .quad 0x253f4f8dfa2d5597
        .quad 0x25e49c405477130c
        .quad 0x00c052e5996b1102
        .quad 0x33cb966e33bb6c4a
        .quad 0x597028047f116909
        .quad 0x828ac41c1e564467
        .quad 0x70417dbde6217387
        .quad 0x721627aefbac4384



        .quad 0x97d03bc38736add5
        .quad 0x2f1422afc532b130
        .quad 0x3aa68a057101bbc4
        .quad 0x4c946cf7e74f9fa7
        .quad 0xfd3097bc410b2f22
        .quad 0xf1a05da7b5cfa844
        .quad 0x61289a1def57ca74
        .quad 0x245ea199bb821902
        .quad 0xaedca66978d477f8
        .quad 0x1898ba3c29117fe1
        .quad 0xcf73f983720cbd58
        .quad 0x67da12e6b8b56351



        .quad 0x7067e187b4bd6e07
        .quad 0x6e8f0203c7d1fe74
        .quad 0x93c6aa2f38c85a30
        .quad 0x76297d1f3d75a78a
        .quad 0x2b7ef3d38ec8308c
        .quad 0x828fd7ec71eb94ab
        .quad 0x807c3b36c5062abd
        .quad 0x0cb64cb831a94141
        .quad 0x3030fc33534c6378
        .quad 0xb9635c5ce541e861
        .quad 0x15d9a9bed9b2c728
        .quad 0x49233ea3f3775dcb



        .quad 0x629398fa8dbffc3a
        .quad 0xe12fe52dd54db455
        .quad 0xf3be11dfdaf25295
        .quad 0x628b140dce5e7b51
        .quad 0x7b3985fe1c9f249b
        .quad 0x4fd6b2d5a1233293
        .quad 0xceb345941adf4d62
        .quad 0x6987ff6f542de50c
        .quad 0x47e241428f83753c
        .quad 0x6317bebc866af997
        .quad 0xdabb5b433d1a9829
        .quad 0x074d8d245287fb2d



        .quad 0x8337d9cd440bfc31
        .quad 0x729d2ca1af318fd7
        .quad 0xa040a4a4772c2070
        .quad 0x46002ef03a7349be
        .quad 0x481875c6c0e31488
        .quad 0x219429b2e22034b4
        .quad 0x7223c98a31283b65
        .quad 0x3420d60b342277f9
        .quad 0xfaa23adeaffe65f7
        .quad 0x78261ed45be0764c
        .quad 0x441c0a1e2f164403
        .quad 0x5aea8e567a87d395



        .quad 0x7813c1a2bca4283d
        .quad 0xed62f091a1863dd9
        .quad 0xaec7bcb8c268fa86
        .quad 0x10e5d3b76f1cae4c
        .quad 0x2dbc6fb6e4e0f177
        .quad 0x04e1bf29a4bd6a93
        .quad 0x5e1966d4787af6e8
        .quad 0x0edc5f5eb426d060
        .quad 0x5453bfd653da8e67
        .quad 0xe9dc1eec24a9f641
        .quad 0xbf87263b03578a23
        .quad 0x45b46c51361cba72



        .quad 0xa9402abf314f7fa1
        .quad 0xe257f1dc8e8cf450
        .quad 0x1dbbd54b23a8be84
        .quad 0x2177bfa36dcb713b
        .quad 0xce9d4ddd8a7fe3e4
        .quad 0xab13645676620e30
        .quad 0x4b594f7bb30e9958
        .quad 0x5c1c0aef321229df
        .quad 0x37081bbcfa79db8f
        .quad 0x6048811ec25f59b3
        .quad 0x087a76659c832487
        .quad 0x4ae619387d8ab5bb



        .quad 0x8ddbf6aa5344a32e
        .quad 0x7d88eab4b41b4078
        .quad 0x5eb0eb974a130d60
        .quad 0x1a00d91b17bf3e03
        .quad 0x61117e44985bfb83
        .quad 0xfce0462a71963136
        .quad 0x83ac3448d425904b
        .quad 0x75685abe5ba43d64
        .quad 0x6e960933eb61f2b2
        .quad 0x543d0fa8c9ff4952
        .quad 0xdf7275107af66569
        .quad 0x135529b623b0e6aa



        .quad 0x18f0dbd7add1d518
        .quad 0x979f7888cfc11f11
        .quad 0x8732e1f07114759b
        .quad 0x79b5b81a65ca3a01
        .quad 0xf5c716bce22e83fe
        .quad 0xb42beb19e80985c1
        .quad 0xec9da63714254aae
        .quad 0x5972ea051590a613
        .quad 0x0fd4ac20dc8f7811
        .quad 0x9a9ad294ac4d4fa8
        .quad 0xc01b2d64b3360434
        .quad 0x4f7e9c95905f3bdb



        .quad 0x62674bbc5781302e
        .quad 0xd8520f3989addc0f
        .quad 0x8c2999ae53fbd9c6
        .quad 0x31993ad92e638e4c
        .quad 0x71c8443d355299fe
        .quad 0x8bcd3b1cdbebead7
        .quad 0x8092499ef1a49466
        .quad 0x1942eec4a144adc8
        .quad 0x7dac5319ae234992
        .quad 0x2c1b3d910cea3e92
        .quad 0x553ce494253c1122
        .quad 0x2a0a65314ef9ca75



        .quad 0x2db7937ff7f927c2
        .quad 0xdb741f0617d0a635
        .quad 0x5982f3a21155af76
        .quad 0x4cf6e218647c2ded
        .quad 0xcf361acd3c1c793a
        .quad 0x2f9ebcac5a35bc3b
        .quad 0x60e860e9a8cda6ab
        .quad 0x055dc39b6dea1a13
        .quad 0xb119227cc28d5bb6
        .quad 0x07e24ebc774dffab
        .quad 0xa83c78cee4a32c89
        .quad 0x121a307710aa24b6



        .quad 0xe4db5d5e9f034a97
        .quad 0xe153fc093034bc2d
        .quad 0x460546919551d3b1
        .quad 0x333fc76c7a40e52d
        .quad 0xd659713ec77483c9
        .quad 0x88bfe077b82b96af
        .quad 0x289e28231097bcd3
        .quad 0x527bb94a6ced3a9b
        .quad 0x563d992a995b482e
        .quad 0x3405d07c6e383801
        .quad 0x485035de2f64d8e5
        .quad 0x6b89069b20a7a9f7



        .quad 0x812aa0416270220d
        .quad 0x995a89faf9245b4e
        .quad 0xffadc4ce5072ef05
        .quad 0x23bc2103aa73eb73
        .quad 0x4082fa8cb5c7db77
        .quad 0x068686f8c734c155
        .quad 0x29e6c8d9f6e7a57e
        .quad 0x0473d308a7639bcf
        .quad 0xcaee792603589e05
        .quad 0x2b4b421246dcc492
        .quad 0x02a1ef74e601a94f
        .quad 0x102f73bfde04341a



        .quad 0xb5a2d50c7ec20d3e
        .quad 0xc64bdd6ea0c97263
        .quad 0x56e89052c1ff734d
        .quad 0x4929c6f72b2ffaba
        .quad 0x358ecba293a36247
        .quad 0xaf8f9862b268fd65
        .quad 0x412f7e9968a01c89
        .quad 0x5786f312cd754524
        .quad 0x337788ffca14032c
        .quad 0xf3921028447f1ee3
        .quad 0x8b14071f231bccad
        .quad 0x4c817b4bf2344783



        .quad 0x0ff853852871b96e
        .quad 0xe13e9fab60c3f1bb
        .quad 0xeefd595325344402
        .quad 0x0a37c37075b7744b
        .quad 0x413ba057a40b4484
        .quad 0xba4c2e1a4f5f6a43
        .quad 0x614ba0a5aee1d61c
        .quad 0x78a1531a8b05dc53
        .quad 0x6cbdf1703ad0562b
        .quad 0x8ecf4830c92521a3
        .quad 0xdaebd303fd8424e7
        .quad 0x72ad82a42e5ec56f



        .quad 0x3f9e8e35bafb65f6
        .quad 0x39d69ec8f27293a1
        .quad 0x6cb8cd958cf6a3d0
        .quad 0x1734778173adae6d
        .quad 0xc368939167024bc3
        .quad 0x8e69d16d49502fda
        .quad 0xfcf2ec3ce45f4b29
        .quad 0x065f669ea3b4cbc4
        .quad 0x8a00aec75532db4d
        .quad 0xb869a4e443e31bb1
        .quad 0x4a0f8552d3a7f515
        .quad 0x19adeb7c303d7c08



        .quad 0xc720cb6153ead9a3
        .quad 0x55b2c97f512b636e
        .quad 0xb1e35b5fd40290b1
        .quad 0x2fd9ccf13b530ee2
        .quad 0x9d05ba7d43c31794
        .quad 0x2470c8ff93322526
        .quad 0x8323dec816197438
        .quad 0x2852709881569b53
        .quad 0x07bd475b47f796b8
        .quad 0xd2c7b013542c8f54
        .quad 0x2dbd23f43b24f87e
        .quad 0x6551afd77b0901d6



        .quad 0x4546baaf54aac27f
        .quad 0xf6f66fecb2a45a28
        .quad 0x582d1b5b562bcfe8
        .quad 0x44b123f3920f785f
        .quad 0x68a24ce3a1d5c9ac
        .quad 0xbb77a33d10ff6461
        .quad 0x0f86ce4425d3166e
        .quad 0x56507c0950b9623b
        .quad 0x1206f0b7d1713e63
        .quad 0x353fe3d915bafc74
        .quad 0x194ceb970ad9d94d
        .quad 0x62fadd7cf9d03ad3



        .quad 0xc6b5967b5598a074
        .quad 0x5efe91ce8e493e25
        .quad 0xd4b72c4549280888
        .quad 0x20ef1149a26740c2
        .quad 0x3cd7bc61e7ce4594
        .quad 0xcd6b35a9b7dd267e
        .quad 0xa080abc84366ef27
        .quad 0x6ec7c46f59c79711
        .quad 0x2f07ad636f09a8a2
        .quad 0x8697e6ce24205e7d
        .quad 0xc0aefc05ee35a139
        .quad 0x15e80958b5f9d897



        .quad 0x25a5ef7d0c3e235b
        .quad 0x6c39c17fbe134ee7
        .quad 0xc774e1342dc5c327
        .quad 0x021354b892021f39
        .quad 0x4dd1ed355bb061c4
        .quad 0x42dc0cef941c0700
        .quad 0x61305dc1fd86340e
        .quad 0x56b2cc930e55a443
        .quad 0x1df79da6a6bfc5a2
        .quad 0x02f3a2749fde4369
        .quad 0xb323d9f2cda390a7
        .quad 0x7be0847b8774d363



        .quad 0x8c99cc5a8b3f55c3
        .quad 0x0611d7253fded2a0
        .quad 0xed2995ff36b70a36
        .quad 0x1f699a54d78a2619
        .quad 0x1466f5af5307fa11
        .quad 0x817fcc7ded6c0af2
        .quad 0x0a6de44ec3a4a3fb
        .quad 0x74071475bc927d0b
        .quad 0xe77292f373e7ea8a
        .quad 0x296537d2cb045a31
        .quad 0x1bd0653ed3274fde
        .quad 0x2f9a2c4476bd2966



        .quad 0xeb18b9ab7f5745c6
        .quad 0x023a8aee5787c690
        .quad 0xb72712da2df7afa9
        .quad 0x36597d25ea5c013d
        .quad 0xa2b4dae0b5511c9a
        .quad 0x7ac860292bffff06
        .quad 0x981f375df5504234
        .quad 0x3f6bd725da4ea12d
        .quad 0x734d8d7b106058ac
        .quad 0xd940579e6fc6905f
        .quad 0x6466f8f99202932d
        .quad 0x7b7ecc19da60d6d0



        .quad 0x78c2373c695c690d
        .quad 0xdd252e660642906e
        .quad 0x951d44444ae12bd2
        .quad 0x4235ad7601743956
        .quad 0x6dae4a51a77cfa9b
        .quad 0x82263654e7a38650
        .quad 0x09bbffcd8f2d82db
        .quad 0x03bedc661bf5caba
        .quad 0x6258cb0d078975f5
        .quad 0x492942549189f298
        .quad 0xa0cab423e2e36ee4
        .quad 0x0e7ce2b0cdf066a1



        .quad 0xc494643ac48c85a3
        .quad 0xfd361df43c6139ad
        .quad 0x09db17dd3ae94d48
        .quad 0x666e0a5d8fb4674a
        .quad 0xfea6fedfd94b70f9
        .quad 0xf130c051c1fcba2d
        .quad 0x4882d47e7f2fab89
        .quad 0x615256138aeceeb5
        .quad 0x2abbf64e4870cb0d
        .quad 0xcd65bcf0aa458b6b
        .quad 0x9abe4eba75e8985d
        .quad 0x7f0bc810d514dee4



        .quad 0xb9006ba426f4136f
        .quad 0x8d67369e57e03035
        .quad 0xcbc8dfd94f463c28
        .quad 0x0d1f8dbcf8eedbf5
        .quad 0x83ac9dad737213a0
        .quad 0x9ff6f8ba2ef72e98
        .quad 0x311e2edd43ec6957
        .quad 0x1d3a907ddec5ab75
        .quad 0xba1693313ed081dc
        .quad 0x29329fad851b3480
        .quad 0x0128013c030321cb
        .quad 0x00011b44a31bfde3



        .quad 0x3fdfa06c3fc66c0c
        .quad 0x5d40e38e4dd60dd2
        .quad 0x7ae38b38268e4d71
        .quad 0x3ac48d916e8357e1
        .quad 0x16561f696a0aa75c
        .quad 0xc1bf725c5852bd6a
        .quad 0x11a8dd7f9a7966ad
        .quad 0x63d988a2d2851026
        .quad 0x00120753afbd232e
        .quad 0xe92bceb8fdd8f683
        .quad 0xf81669b384e72b91
        .quad 0x33fad52b2368a066



        .quad 0x540649c6c5e41e16
        .quad 0x0af86430333f7735
        .quad 0xb2acfcd2f305e746
        .quad 0x16c0f429a256dca7
        .quad 0x8d2cc8d0c422cfe8
        .quad 0x072b4f7b05a13acb
        .quad 0xa3feb6e6ecf6a56f
        .quad 0x3cc355ccb90a71e2
        .quad 0xe9b69443903e9131
        .quad 0xb8a494cb7a5637ce
        .quad 0xc87cd1a4baba9244
        .quad 0x631eaf426bae7568



        .quad 0xb3e90410da66fe9f
        .quad 0x85dd4b526c16e5a6
        .quad 0xbc3d97611ef9bf83
        .quad 0x5599648b1ea919b5
        .quad 0x47d975b9a3700de8
        .quad 0x7280c5fbe2f80552
        .quad 0x53658f2732e45de1
        .quad 0x431f2c7f665f80b5
        .quad 0xd6026344858f7b19
        .quad 0x14ab352fa1ea514a
        .quad 0x8900441a2090a9d7
        .quad 0x7b04715f91253b26



        .quad 0x83edbd28acf6ae43
        .quad 0x86357c8b7d5c7ab4
        .quad 0xc0404769b7eb2c44
        .quad 0x59b37bf5c2f6583f
        .quad 0xb376c280c4e6bac6
        .quad 0x970ed3dd6d1d9b0b
        .quad 0xb09a9558450bf944
        .quad 0x48d0acfa57cde223
        .quad 0xb60f26e47dabe671
        .quad 0xf1d1a197622f3a37
        .quad 0x4208ce7ee9960394
        .quad 0x16234191336d3bdb



        .quad 0xf19aeac733a63aef
        .quad 0x2c7fba5d4442454e
        .quad 0x5da87aa04795e441
        .quad 0x413051e1a4e0b0f5
        .quad 0x852dd1fd3d578bbe
        .quad 0x2b65ce72c3286108
        .quad 0x658c07f4eace2273
        .quad 0x0933f804ec38ab40
        .quad 0xa7ab69798d496476
        .quad 0x8121aadefcb5abc8
        .quad 0xa5dc12ef7b539472
        .quad 0x07fd47065e45351a



        .quad 0xc8583c3d258d2bcd
        .quad 0x17029a4daf60b73f
        .quad 0xfa0fc9d6416a3781
        .quad 0x1c1e5fba38b3fb23
        .quad 0x304211559ae8e7c3
        .quad 0xf281b229944882a5
        .quad 0x8a13ac2e378250e4
        .quad 0x014afa0954ba48f4
        .quad 0xcb3197001bb3666c
        .quad 0x330060524bffecb9
        .quad 0x293711991a88233c
        .quad 0x291884363d4ed364



        .quad 0x033c6805dc4babfa
        .quad 0x2c15bf5e5596ecc1
        .quad 0x1bc70624b59b1d3b
        .quad 0x3ede9850a19f0ec5
        .quad 0xfb9d37c3bc1ab6eb
        .quad 0x02be14534d57a240
        .quad 0xf4d73415f8a5e1f6
        .quad 0x5964f4300ccc8188
        .quad 0xe44a23152d096800
        .quad 0x5c08c55970866996
        .quad 0xdf2db60a46affb6e
        .quad 0x579155c1f856fd89



        .quad 0x96324edd12e0c9ef
        .quad 0x468b878df2420297
        .quad 0x199a3776a4f573be
        .quad 0x1e7fbcf18e91e92a
        .quad 0xb5f16b630817e7a6
        .quad 0x808c69233c351026
        .quad 0x324a983b54cef201
        .quad 0x53c092084a485345
        .quad 0xd2d41481f1cbafbf
        .quad 0x231d2db6716174e5
        .quad 0x0b7d7656e2a55c98
        .quad 0x3e955cd82aa495f6



        .quad 0xe48f535e3ed15433
        .quad 0xd075692a0d7270a3
        .quad 0x40fbd21daade6387
        .quad 0x14264887cf4495f5
        .quad 0xab39f3ef61bb3a3f
        .quad 0x8eb400652eb9193e
        .quad 0xb5de6ecc38c11f74
        .quad 0x654d7e9626f3c49f
        .quad 0xe564cfdd5c7d2ceb
        .quad 0x82eeafded737ccb9
        .quad 0x6107db62d1f9b0ab
        .quad 0x0b6baac3b4358dbb



        .quad 0x7ae62bcb8622fe98
        .quad 0x47762256ceb891af
        .quad 0x1a5a92bcf2e406b4
        .quad 0x7d29401784e41501
        .quad 0x204abad63700a93b
        .quad 0xbe0023d3da779373
        .quad 0xd85f0346633ab709
        .quad 0x00496dc490820412
        .quad 0x1c74b88dc27e6360
        .quad 0x074854268d14850c
        .quad 0xa145fb7b3e0dcb30
        .quad 0x10843f1b43803b23



        .quad 0xc5f90455376276dd
        .quad 0xce59158dd7645cd9
        .quad 0x92f65d511d366b39
        .quad 0x11574b6e526996c4
        .quad 0xd56f672de324689b
        .quad 0xd1da8aedb394a981
        .quad 0xdd7b58fe9168cfed
        .quad 0x7ce246cd4d56c1e8
        .quad 0xb8f4308e7f80be53
        .quad 0x5f3cb8cb34a9d397
        .quad 0x18a961bd33cc2b2c
        .quad 0x710045fb3a9af671



        .quad 0x73f93d36101b95eb
        .quad 0xfaef33794f6f4486
        .quad 0x5651735f8f15e562
        .quad 0x7fa3f19058b40da1
        .quad 0xa03fc862059d699e
        .quad 0x2370cfa19a619e69
        .quad 0xc4fe3b122f823deb
        .quad 0x1d1b056fa7f0844e
        .quad 0x1bc64631e56bf61f
        .quad 0xd379ab106e5382a3
        .quad 0x4d58c57e0540168d
        .quad 0x566256628442d8e4



        .quad 0xb9e499def6267ff6
        .quad 0x7772ca7b742c0843
        .quad 0x23a0153fe9a4f2b1
        .quad 0x2cdfdfecd5d05006
        .quad 0xdd499cd61ff38640
        .quad 0x29cd9bc3063625a0
        .quad 0x51e2d8023dd73dc3
        .quad 0x4a25707a203b9231
        .quad 0x2ab7668a53f6ed6a
        .quad 0x304242581dd170a1
        .quad 0x4000144c3ae20161
        .quad 0x5721896d248e49fc



        .quad 0x0b6e5517fd181bae
        .quad 0x9022629f2bb963b4
        .quad 0x5509bce932064625
        .quad 0x578edd74f63c13da
        .quad 0x285d5091a1d0da4e
        .quad 0x4baa6fa7b5fe3e08
        .quad 0x63e5177ce19393b3
        .quad 0x03c935afc4b030fd
        .quad 0x997276c6492b0c3d
        .quad 0x47ccc2c4dfe205fc
        .quad 0xdcd29b84dd623a3c
        .quad 0x3ec2ab590288c7a2



        .quad 0xa1a0d27be4d87bb9
        .quad 0xa98b4deb61391aed
        .quad 0x99a0ddd073cb9b83
        .quad 0x2dd5c25a200fcace
        .quad 0xa7213a09ae32d1cb
        .quad 0x0f2b87df40f5c2d5
        .quad 0x0baea4c6e81eab29
        .quad 0x0e1bf66c6adbac5e
        .quad 0xe2abd5e9792c887e
        .quad 0x1a020018cb926d5d
        .quad 0xbfba69cdbaae5f1e
        .quad 0x730548b35ae88f5f



        .quad 0xc43551a3cba8b8ee
        .quad 0x65a26f1db2115f16
        .quad 0x760f4f52ab8c3850
        .quad 0x3043443b411db8ca
        .quad 0x805b094ba1d6e334
        .quad 0xbf3ef17709353f19
        .quad 0x423f06cb0622702b
        .quad 0x585a2277d87845dd
        .quad 0xa18a5f8233d48962
        .quad 0x6698c4b5ec78257f
        .quad 0xa78e6fa5373e41ff
        .quad 0x7656278950ef981f



        .quad 0x38c3cf59d51fc8c0
        .quad 0x9bedd2fd0506b6f2
        .quad 0x26bf109fab570e8f
        .quad 0x3f4160a8c1b846a6
        .quad 0xe17073a3ea86cf9d
        .quad 0x3a8cfbb707155fdc
        .quad 0x4853e7fc31838a8e
        .quad 0x28bbf484b613f616
        .quad 0xf2612f5c6f136c7c
        .quad 0xafead107f6dd11be
        .quad 0x527e9ad213de6f33
        .quad 0x1e79cb358188f75d



        .quad 0x013436c3eef7e3f1
        .quad 0x828b6a7ffe9e10f8
        .quad 0x7ff908e5bcf9defc
        .quad 0x65d7951b3a3b3831
        .quad 0x77e953d8f5e08181
        .quad 0x84a50c44299dded9
        .quad 0xdc6c2d0c864525e5
        .quad 0x478ab52d39d1f2f4
        .quad 0x66a6a4d39252d159
        .quad 0xe5dde1bc871ac807
        .quad 0xb82c6b40a6c1c96f
        .quad 0x16d87a411a212214



        .quad 0xb3bd7e5a42066215
        .quad 0x879be3cd0c5a24c1
        .quad 0x57c05db1d6f994b7
        .quad 0x28f87c8165f38ca6
        .quad 0xfba4d5e2d54e0583
        .quad 0xe21fafd72ebd99fa
        .quad 0x497ac2736ee9778f
        .quad 0x1f990b577a5a6dde
        .quad 0xa3344ead1be8f7d6
        .quad 0x7d1e50ebacea798f
        .quad 0x77c6569e520de052
        .quad 0x45882fe1534d6d3e



        .quad 0x6669345d757983d6
        .quad 0x62b6ed1117aa11a6
        .quad 0x7ddd1857985e128f
        .quad 0x688fe5b8f626f6dd
        .quad 0xd8ac9929943c6fe4
        .quad 0xb5f9f161a38392a2
        .quad 0x2699db13bec89af3
        .quad 0x7dcf843ce405f074
        .quad 0x6c90d6484a4732c0
        .quad 0xd52143fdca563299
        .quad 0xb3be28c3915dc6e1
        .quad 0x6739687e7327191b



        .quad 0x9f65c5ea200814cf
        .quad 0x840536e169a31740
        .quad 0x8b0ed13925c8b4ad
        .quad 0x0080dbafe936361d
        .quad 0x8ce5aad0c9cb971f
        .quad 0x1156aaa99fd54a29
        .quad 0x41f7247015af9b78
        .quad 0x1fe8cca8420f49aa
        .quad 0x72a1848f3c0cc82a
        .quad 0x38c560c2877c9e54
        .quad 0x5004e228ce554140
        .quad 0x042418a103429d71



        .quad 0x899dea51abf3ff5f
        .quad 0x9b93a8672fc2d8ba
        .quad 0x2c38cb97be6ebd5c
        .quad 0x114d578497263b5d
        .quad 0x58e84c6f20816247
        .quad 0x8db2b2b6e36fd793
        .quad 0x977182561d484d85
        .quad 0x0822024f8632abd7
        .quad 0xb301bb7c6b1beca3
        .quad 0x55393f6dc6eb1375
        .quad 0x910d281097b6e4eb
        .quad 0x1ad4548d9d479ea3



        .quad 0xcd5a7da0389a48fd
        .quad 0xb38fa4aa9a78371e
        .quad 0xc6d9761b2cdb8e6c
        .quad 0x35cf51dbc97e1443
        .quad 0xa06fe66d0fe9fed3
        .quad 0xa8733a401c587909
        .quad 0x30d14d800df98953
        .quad 0x41ce5876c7b30258
        .quad 0x59ac3bc5d670c022
        .quad 0xeae67c109b119406
        .quad 0x9798bdf0b3782fda
        .quad 0x651e3201fd074092



        .quad 0xd63d8483ef30c5cf
        .quad 0x4cd4b4962361cc0c
        .quad 0xee90e500a48426ac
        .quad 0x0af51d7d18c14eeb
        .quad 0xa57ba4a01efcae9e
        .quad 0x769f4beedc308a94
        .quad 0xd1f10eeb3603cb2e
        .quad 0x4099ce5e7e441278
        .quad 0x1ac98e4f8a5121e9
        .quad 0x7dae9544dbfa2fe0
        .quad 0x8320aa0dd6430df9
        .quad 0x667282652c4a2fb5



        .quad 0x874621f4d86bc9ab
        .quad 0xb54c7bbe56fe6fea
        .quad 0x077a24257fadc22c
        .quad 0x1ab53be419b90d39
        .quad 0xada8b6e02946db23
        .quad 0x1c0ce51a7b253ab7
        .quad 0x8448c85a66dd485b
        .quad 0x7f1fc025d0675adf
        .quad 0xd8ee1b18319ea6aa
        .quad 0x004d88083a21f0da
        .quad 0x3bd6aa1d883a4f4b
        .quad 0x4db9a3a6dfd9fd14



        .quad 0x8ce7b23bb99c0755
        .quad 0x35c5d6edc4f50f7a
        .quad 0x7e1e2ed2ed9b50c3
        .quad 0x36305f16e8934da1
        .quad 0xd95b00bbcbb77c68
        .quad 0xddbc846a91f17849
        .quad 0x7cf700aebe28d9b3
        .quad 0x5ce1285c85d31f3e
        .quad 0x31b6972d98b0bde8
        .quad 0x7d920706aca6de5b
        .quad 0xe67310f8908a659f
        .quad 0x50fac2a6efdf0235



        .quad 0xf3d3a9f35b880f5a
        .quad 0xedec050cdb03e7c2
        .quad 0xa896981ff9f0b1a2
        .quad 0x49a4ae2bac5e34a4
        .quad 0x295b1c86f6f449bc
        .quad 0x51b2e84a1f0ab4dd
        .quad 0xc001cb30aa8e551d
        .quad 0x6a28d35944f43662
        .quad 0x28bb12ee04a740e0
        .quad 0x14313bbd9bce8174
        .quad 0x72f5b5e4e8c10c40
        .quad 0x7cbfb19936adcd5b



        .quad 0xa311ddc26b89792d
        .quad 0x1b30b4c6da512664
        .quad 0x0ca77b4ccf150859
        .quad 0x1de443df1b009408
        .quad 0x8e793a7acc36e6e0
        .quad 0xf9fab7a37d586eed
        .quad 0x3a4f9692bae1f4e4
        .quad 0x1c14b03eff5f447e
        .quad 0x19647bd114a85291
        .quad 0x57b76cb21034d3af
        .quad 0x6329db440f9d6dfa
        .quad 0x5ef43e586a571493



        .quad 0xef782014385675a6
        .quad 0xa2649f30aafda9e8
        .quad 0x4cd1eb505cdfa8cb
        .quad 0x46115aba1d4dc0b3
        .quad 0xa66dcc9dc80c1ac0
        .quad 0x97a05cf41b38a436
        .quad 0xa7ebf3be95dbd7c6
        .quad 0x7da0b8f68d7e7dab
        .quad 0xd40f1953c3b5da76
        .quad 0x1dac6f7321119e9b
        .quad 0x03cc6021feb25960
        .quad 0x5a5f887e83674b4b



        .quad 0x8f6301cf70a13d11
        .quad 0xcfceb815350dd0c4
        .quad 0xf70297d4a4bca47e
        .quad 0x3669b656e44d1434
        .quad 0x9e9628d3a0a643b9
        .quad 0xb5c3cb00e6c32064
        .quad 0x9b5302897c2dec32
        .quad 0x43e37ae2d5d1c70c
        .quad 0x387e3f06eda6e133
        .quad 0x67301d5199a13ac0
        .quad 0xbd5ad8f836263811
        .quad 0x6a21e6cd4fd5e9be



        .quad 0xf1c6170a3046e65f
        .quad 0x58712a2a00d23524
        .quad 0x69dbbd3c8c82b755
        .quad 0x586bf9f1a195ff57
        .quad 0xef4129126699b2e3
        .quad 0x71d30847708d1301
        .quad 0x325432d01182b0bd
        .quad 0x45371b07001e8b36
        .quad 0xa6db088d5ef8790b
        .quad 0x5278f0dc610937e5
        .quad 0xac0349d261a16eb8
        .quad 0x0eafb03790e52179



        .quad 0x960555c13748042f
        .quad 0x219a41e6820baa11
        .quad 0x1c81f73873486d0c
        .quad 0x309acc675a02c661
        .quad 0x5140805e0f75ae1d
        .quad 0xec02fbe32662cc30
        .quad 0x2cebdf1eea92396d
        .quad 0x44ae3344c5435bb3
        .quad 0x9cf289b9bba543ee
        .quad 0xf3760e9d5ac97142
        .quad 0x1d82e5c64f9360aa
        .quad 0x62d5221b7f94678f



        .quad 0x524c299c18d0936d
        .quad 0xc86bb56c8a0c1a0c
        .quad 0xa375052edb4a8631
        .quad 0x5c0efde4bc754562
        .quad 0x7585d4263af77a3c
        .quad 0xdfae7b11fee9144d
        .quad 0xa506708059f7193d
        .quad 0x14f29a5383922037
        .quad 0xdf717edc25b2d7f5
        .quad 0x21f970db99b53040
        .quad 0xda9234b7c3ed4c62
        .quad 0x5e72365c7bee093e



        .quad 0x575bfc074571217f
        .quad 0x3779675d0694d95b
        .quad 0x9a0a37bbf4191e33
        .quad 0x77f1104c47b4eabc
        .quad 0x7d9339062f08b33e
        .quad 0x5b9659e5df9f32be
        .quad 0xacff3dad1f9ebdfd
        .quad 0x70b20555cb7349b7
        .quad 0xbe5113c555112c4c
        .quad 0x6688423a9a881fcd
        .quad 0x446677855e503b47
        .quad 0x0e34398f4a06404a



        .quad 0xb67d22d93ecebde8
        .quad 0x09b3e84127822f07
        .quad 0x743fa61fb05b6d8d
        .quad 0x5e5405368a362372
        .quad 0x18930b093e4b1928
        .quad 0x7de3e10e73f3f640
        .quad 0xf43217da73395d6f
        .quad 0x6f8aded6ca379c3e
        .quad 0xe340123dfdb7b29a
        .quad 0x487b97e1a21ab291
        .quad 0xf9967d02fde6949e
        .quad 0x780de72ec8d3de97



        .quad 0x0ae28545089ae7bc
        .quad 0x388ddecf1c7f4d06
        .quad 0x38ac15510a4811b8
        .quad 0x0eb28bf671928ce4
        .quad 0x671feaf300f42772
        .quad 0x8f72eb2a2a8c41aa
        .quad 0x29a17fd797373292
        .quad 0x1defc6ad32b587a6
        .quad 0xaf5bbe1aef5195a7
        .quad 0x148c1277917b15ed
        .quad 0x2991f7fb7ae5da2e
        .quad 0x467d201bf8dd2867



        .quad 0x7906ee72f7bd2e6b
        .quad 0x05d270d6109abf4e
        .quad 0x8d5cfe45b941a8a4
        .quad 0x44c218671c974287
        .quad 0x745f9d56296bc318
        .quad 0x993580d4d8152e65
        .quad 0xb0e5b13f5839e9ce
        .quad 0x51fc2b28d43921c0
        .quad 0x1b8fd11795e2a98c
        .quad 0x1c4e5ee12b6b6291
        .quad 0x5b30e7107424b572
        .quad 0x6e6b9de84c4f4ac6



        .quad 0xdff25fce4b1de151
        .quad 0xd841c0c7e11c4025
        .quad 0x2554b3c854749c87
        .quad 0x2d292459908e0df9
        .quad 0x6b7c5f10f80cb088
        .quad 0x736b54dc56e42151
        .quad 0xc2b620a5c6ef99c4
        .quad 0x5f4c802cc3a06f42
        .quad 0x9b65c8f17d0752da
        .quad 0x881ce338c77ee800
        .quad 0xc3b514f05b62f9e3
        .quad 0x66ed5dd5bec10d48



        .quad 0x7d38a1c20bb2089d
        .quad 0x808334e196ccd412
        .quad 0xc4a70b8c6c97d313
        .quad 0x2eacf8bc03007f20
        .quad 0xf0adf3c9cbca047d
        .quad 0x81c3b2cbf4552f6b
        .quad 0xcfda112d44735f93
        .quad 0x1f23a0c77e20048c
        .quad 0xf235467be5bc1570
        .quad 0x03d2d9020dbab38c
        .quad 0x27529aa2fcf9e09e
        .quad 0x0840bef29d34bc50



        .quad 0x796dfb35dc10b287
        .quad 0x27176bcd5c7ff29d
        .quad 0x7f3d43e8c7b24905
        .quad 0x0304f5a191c54276
        .quad 0xcd54e06b7f37e4eb
        .quad 0x8cc15f87f5e96cca
        .quad 0xb8248bb0d3597dce
        .quad 0x246affa06074400c
        .quad 0x37d88e68fbe45321
        .quad 0x86097548c0d75032
        .quad 0x4e9b13ef894a0d35
        .quad 0x25a83cac5753d325



        .quad 0x10222f48eed8165e
        .quad 0x623fc1234b8bcf3a
        .quad 0x1e145c09c221e8f0
        .quad 0x7ccfa59fca782630
        .quad 0x9f0f66293952b6e2
        .quad 0x33db5e0e0934267b
        .quad 0xff45252bd609fedc
        .quad 0x06be10f5c506e0c9
        .quad 0x1a9615a9b62a345f
        .quad 0x22050c564a52fecc
        .quad 0xa7a2788528bc0dfe
        .quad 0x5e82770a1a1ee71d



        .quad 0x35425183ad896a5c
        .quad 0xe8673afbe78d52f6
        .quad 0x2c66f25f92a35f64
        .quad 0x09d04f3b3b86b102
        .quad 0xe802e80a42339c74
        .quad 0x34175166a7fffae5
        .quad 0x34865d1f1c408cae
        .quad 0x2cca982c605bc5ee
        .quad 0xfd2d5d35197dbe6e
        .quad 0x207c2eea8be4ffa3
        .quad 0x2613d8db325ae918
        .quad 0x7a325d1727741d3e



        .quad 0xd036b9bbd16dfde2
        .quad 0xa2055757c497a829
        .quad 0x8e6cc966a7f12667
        .quad 0x4d3b1a791239c180
        .quad 0xecd27d017e2a076a
        .quad 0xd788689f1636495e
        .quad 0x52a61af0919233e5
        .quad 0x2a479df17bb1ae64
        .quad 0x9e5eee8e33db2710
        .quad 0x189854ded6c43ca5
        .quad 0xa41c22c592718138
        .quad 0x27ad5538a43a5e9b



        .quad 0x2746dd4b15350d61
        .quad 0xd03fcbc8ee9521b7
        .quad 0xe86e365a138672ca
        .quad 0x510e987f7e7d89e2
        .quad 0xcb5a7d638e47077c
        .quad 0x8db7536120a1c059
        .quad 0x549e1e4d8bedfdcc
        .quad 0x080153b7503b179d
        .quad 0xdda69d930a3ed3e3
        .quad 0x3d386ef1cd60a722
        .quad 0xc817ad58bdaa4ee6
        .quad 0x23be8d554fe7372a



        .quad 0x95fe919a74ef4fad
        .quad 0x3a827becf6a308a2
        .quad 0x964e01d309a47b01
        .quad 0x71c43c4f5ba3c797
        .quad 0xbc1ef4bd567ae7a9
        .quad 0x3f624cb2d64498bd
        .quad 0xe41064d22c1f4ec8
        .quad 0x2ef9c5a5ba384001
        .quad 0xb6fd6df6fa9e74cd
        .quad 0xf18278bce4af267a
        .quad 0x8255b3d0f1ef990e
        .quad 0x5a758ca390c5f293



        .quad 0xa2b72710d9462495
        .quad 0x3aa8c6d2d57d5003
        .quad 0xe3d400bfa0b487ca
        .quad 0x2dbae244b3eb72ec
        .quad 0x8ce0918b1d61dc94
        .quad 0x8ded36469a813066
        .quad 0xd4e6a829afe8aad3
        .quad 0x0a738027f639d43f
        .quad 0x980f4a2f57ffe1cc
        .quad 0x00670d0de1839843
        .quad 0x105c3f4a49fb15fd
        .quad 0x2698ca635126a69c



        .quad 0xe765318832b0ba78
        .quad 0x381831f7925cff8b
        .quad 0x08a81b91a0291fcc
        .quad 0x1fb43dcc49caeb07
        .quad 0x2e3d702f5e3dd90e
        .quad 0x9e3f0918e4d25386
        .quad 0x5e773ef6024da96a
        .quad 0x3c004b0c4afa3332
        .quad 0x9aa946ac06f4b82b
        .quad 0x1ca284a5a806c4f3
        .quad 0x3ed3265fc6cd4787
        .quad 0x6b43fd01cd1fd217



        .quad 0xc7a75d4b4697c544
        .quad 0x15fdf848df0fffbf
        .quad 0x2868b9ebaa46785a
        .quad 0x5a68d7105b52f714
        .quad 0xb5c742583e760ef3
        .quad 0x75dc52b9ee0ab990
        .quad 0xbf1427c2072b923f
        .quad 0x73420b2d6ff0d9f0
        .quad 0xaf2cf6cb9e851e06
        .quad 0x8f593913c62238c4
        .quad 0xda8ab89699fbf373
        .quad 0x3db5632fea34bc9e



        .quad 0xf46eee2bf75dd9d8
        .quad 0x0d17b1f6396759a5
        .quad 0x1bf2d131499e7273
        .quad 0x04321adf49d75f13
        .quad 0x2e4990b1829825d5
        .quad 0xedeaeb873e9a8991
        .quad 0xeef03d394c704af8
        .quad 0x59197ea495df2b0e
        .quad 0x04e16019e4e55aae
        .quad 0xe77b437a7e2f92e9
        .quad 0xc7ce2dc16f159aa4
        .quad 0x45eafdc1f4d70cc0



        .quad 0x698401858045d72b
        .quad 0x4c22faa2cf2f0651
        .quad 0x941a36656b222dc6
        .quad 0x5a5eebc80362dade
        .quad 0xb60e4624cfccb1ed
        .quad 0x59dbc292bd5c0395
        .quad 0x31a09d1ddc0481c9
        .quad 0x3f73ceea5d56d940
        .quad 0xb7a7bfd10a4e8dc6
        .quad 0xbe57007e44c9b339
        .quad 0x60c1207f1557aefa
        .quad 0x26058891266218db



        .quad 0x59f704a68360ff04
        .quad 0xc3d93fde7661e6f4
        .quad 0x831b2a7312873551
        .quad 0x54ad0c2e4e615d57
        .quad 0x4c818e3cc676e542
        .quad 0x5e422c9303ceccad
        .quad 0xec07cccab4129f08
        .quad 0x0dedfa10b24443b8
        .quad 0xee3b67d5b82b522a
        .quad 0x36f163469fa5c1eb
        .quad 0xa5b4d2f26ec19fd3
        .quad 0x62ecb2baa77a9408



        .quad 0xe5ed795261152b3d
        .quad 0x4962357d0eddd7d1
        .quad 0x7482c8d0b96b4c71
        .quad 0x2e59f919a966d8be
        .quad 0x92072836afb62874
        .quad 0x5fcd5e8579e104a5
        .quad 0x5aad01adc630a14a
        .quad 0x61913d5075663f98
        .quad 0x0dc62d361a3231da
        .quad 0xfa47583294200270
        .quad 0x02d801513f9594ce
        .quad 0x3ddbc2a131c05d5c



        .quad 0x3f50a50a4ffb81ef
        .quad 0xb1e035093bf420bf
        .quad 0x9baa8e1cc6aa2cd0
        .quad 0x32239861fa237a40
        .quad 0xfb735ac2004a35d1
        .quad 0x31de0f433a6607c3
        .quad 0x7b8591bfc528d599
        .quad 0x55be9a25f5bb050c
        .quad 0x0d005acd33db3dbf
        .quad 0x0111b37c80ac35e2
        .quad 0x4892d66c6f88ebeb
        .quad 0x770eadb16508fbcd



        .quad 0x8451f9e05e4e89dd
        .quad 0xc06302ffbc793937
        .quad 0x5d22749556a6495c
        .quad 0x09a6755ca05603fb
        .quad 0xf1d3b681a05071b9
        .quad 0x2207659a3592ff3a
        .quad 0x5f0169297881e40e
        .quad 0x16bedd0e86ba374e
        .quad 0x5ecccc4f2c2737b5
        .quad 0x43b79e0c2dccb703
        .quad 0x33e008bc4ec43df3
        .quad 0x06c1b840f07566c0



        .quad 0x7688a5c6a388f877
        .quad 0x02a96c14deb2b6ac
        .quad 0x64c9f3431b8c2af8
        .quad 0x3628435554a1eed6
        .quad 0x69ee9e7f9b02805c
        .quad 0xcbff828a547d1640
        .quad 0x3d93a869b2430968
        .quad 0x46b7b8cd3fe26972
        .quad 0xe9812086fe7eebe0
        .quad 0x4cba6be72f515437
        .quad 0x1d04168b516efae9
        .quad 0x5ea1391043982cb9



        .quad 0x49125c9cf4702ee1
        .quad 0x4520b71f8b25b32d
        .quad 0x33193026501fef7e
        .quad 0x656d8997c8d2eb2b
        .quad 0x6f2b3be4d5d3b002
        .quad 0xafec33d96a09c880
        .quad 0x035f73a4a8bcc4cc
        .quad 0x22c5b9284662198b
        .quad 0xcb58c8fe433d8939
        .quad 0x89a0cb2e6a8d7e50
        .quad 0x79ca955309fbbe5a
        .quad 0x0c626616cd7fc106



        .quad 0x1ffeb80a4879b61f
        .quad 0x6396726e4ada21ed
        .quad 0x33c7b093368025ba
        .quad 0x471aa0c6f3c31788
        .quad 0x8fdfc379fbf454b1
        .quad 0x45a5a970f1a4b771
        .quad 0xac921ef7bad35915
        .quad 0x42d088dca81c2192
        .quad 0x8fda0f37a0165199
        .quad 0x0adadb77c8a0e343
        .quad 0x20fbfdfcc875e820
        .quad 0x1cf2bea80c2206e7



        .quad 0xc2ddf1deb36202ac
        .quad 0x92a5fe09d2e27aa5
        .quad 0x7d1648f6fc09f1d3
        .quad 0x74c2cc0513bc4959
        .quad 0x982d6e1a02c0412f
        .quad 0x90fa4c83db58e8fe
        .quad 0x01c2f5bcdcb18bc0
        .quad 0x686e0c90216abc66
        .quad 0x1fadbadba54395a7
        .quad 0xb41a02a0ae0da66a
        .quad 0xbf19f598bba37c07
        .quad 0x6a12b8acde48430d



        .quad 0xf8daea1f39d495d9
        .quad 0x592c190e525f1dfc
        .quad 0xdb8cbd04c9991d1b
        .quad 0x11f7fda3d88f0cb7
        .quad 0x793bdd801aaeeb5f
        .quad 0x00a2a0aac1518871
        .quad 0xe8a373a31f2136b4
        .quad 0x48aab888fc91ef19
        .quad 0x041f7e925830f40e
        .quad 0x002d6ca979661c06
        .quad 0x86dc9ff92b046a2e
        .quad 0x760360928b0493d1



        .quad 0x21bb41c6120cf9c6
        .quad 0xeab2aa12decda59b
        .quad 0xc1a72d020aa48b34
        .quad 0x215d4d27e87d3b68
        .quad 0xb43108e5695a0b05
        .quad 0x6cb00ee8ad37a38b
        .quad 0x5edad6eea3537381
        .quad 0x3f2602d4b6dc3224
        .quad 0xc8b247b65bcaf19c
        .quad 0x49779dc3b1b2c652
        .quad 0x89a180bbd5ece2e2
        .quad 0x13f098a3cec8e039



        .quad 0x9adc0ff9ce5ec54b
        .quad 0x039c2a6b8c2f130d
        .quad 0x028007c7f0f89515
        .quad 0x78968314ac04b36b
        .quad 0xf3aa57a22796bb14
        .quad 0x883abab79b07da21
        .quad 0xe54be21831a0391c
        .quad 0x5ee7fb38d83205f9
        .quad 0x538dfdcb41446a8e
        .quad 0xa5acfda9434937f9
        .quad 0x46af908d263c8c78
        .quad 0x61d0633c9bca0d09



        .quad 0x63744935ffdb2566
        .quad 0xc5bd6b89780b68bb
        .quad 0x6f1b3280553eec03
        .quad 0x6e965fd847aed7f5
        .quad 0xada328bcf8fc73df
        .quad 0xee84695da6f037fc
        .quad 0x637fb4db38c2a909
        .quad 0x5b23ac2df8067bdc
        .quad 0x9ad2b953ee80527b
        .quad 0xe88f19aafade6d8d
        .quad 0x0e711704150e82cf
        .quad 0x79b9bbb9dd95dedc



        .quad 0xebb355406a3126c2
        .quad 0xd26383a868c8c393
        .quad 0x6c0c6429e5b97a82
        .quad 0x5065f158c9fd2147
        .quad 0xd1997dae8e9f7374
        .quad 0xa032a2f8cfbb0816
        .quad 0xcd6cba126d445f0a
        .quad 0x1ba811460accb834
        .quad 0x708169fb0c429954
        .quad 0xe14600acd76ecf67
        .quad 0x2eaab98a70e645ba
        .quad 0x3981f39e58a4faf2



        .quad 0x18fb8a7559230a93
        .quad 0x1d168f6960e6f45d
        .quad 0x3a85a94514a93cb5
        .quad 0x38dc083705acd0fd
        .quad 0xc845dfa56de66fde
        .quad 0xe152a5002c40483a
        .quad 0xe9d2e163c7b4f632
        .quad 0x30f4452edcbc1b65
        .quad 0x856d2782c5759740
        .quad 0xfa134569f99cbecc
        .quad 0x8844fc73c0ea4e71
        .quad 0x632d9a1a593f2469



        .quad 0xf6bb6b15b807cba6
        .quad 0x1823c7dfbc54f0d7
        .quad 0xbb1d97036e29670b
        .quad 0x0b24f48847ed4a57
        .quad 0xbf09fd11ed0c84a7
        .quad 0x63f071810d9f693a
        .quad 0x21908c2d57cf8779
        .quad 0x3a5a7df28af64ba2
        .quad 0xdcdad4be511beac7
        .quad 0xa4538075ed26ccf2
        .quad 0xe19cff9f005f9a65
        .quad 0x34fcf74475481f63



        .quad 0xc197e04c789767ca
        .quad 0xb8714dcb38d9467d
        .quad 0x55de888283f95fa8
        .quad 0x3d3bdc164dfa63f7
        .quad 0xa5bb1dab78cfaa98
        .quad 0x5ceda267190b72f2
        .quad 0x9309c9110a92608e
        .quad 0x0119a3042fb374b0
        .quad 0x67a2d89ce8c2177d
        .quad 0x669da5f66895d0c1
        .quad 0xf56598e5b282a2b0
        .quad 0x56c088f1ede20a73



        .quad 0x336d3d1110a86e17
        .quad 0xd7f388320b75b2fa
        .quad 0xf915337625072988
        .quad 0x09674c6b99108b87
        .quad 0x581b5fac24f38f02
        .quad 0xa90be9febae30cbd
        .quad 0x9a2169028acf92f0
        .quad 0x038b7ea48359038f
        .quad 0x9f4ef82199316ff8
        .quad 0x2f49d282eaa78d4f
        .quad 0x0971a5ab5aef3174
        .quad 0x6e5e31025969eb65



        .quad 0xb16c62f587e593fb
        .quad 0x4999eddeca5d3e71
        .quad 0xb491c1e014cc3e6d
        .quad 0x08f5114789a8dba8
        .quad 0x3304fb0e63066222
        .quad 0xfb35068987acba3f
        .quad 0xbd1924778c1061a3
        .quad 0x3058ad43d1838620
        .quad 0x323c0ffde57663d0
        .quad 0x05c3df38a22ea610
        .quad 0xbdc78abdac994f9a
        .quad 0x26549fa4efe3dc99



        .quad 0x738b38d787ce8f89
        .quad 0xb62658e24179a88d
        .quad 0x30738c9cf151316d
        .quad 0x49128c7f727275c9
        .quad 0x04dbbc17f75396b9
        .quad 0x69e6a2d7d2f86746
        .quad 0xc6409d99f53eabc6
        .quad 0x606175f6332e25d2
        .quad 0x4021370ef540e7dd
        .quad 0x0910d6f5a1f1d0a5
        .quad 0x4634aacd5b06b807
        .quad 0x6a39e6356944f235



        .quad 0x96cd5640df90f3e7
        .quad 0x6c3a760edbfa25ea
        .quad 0x24f3ef0959e33cc4
        .quad 0x42889e7e530d2e58
        .quad 0x1da1965774049e9d
        .quad 0xfbcd6ea198fe352b
        .quad 0xb1cbcd50cc5236a6
        .quad 0x1f5ec83d3f9846e2
        .quad 0x8efb23c3328ccb75
        .quad 0xaf42a207dd876ee9
        .quad 0x20fbdadc5dfae796
        .quad 0x241e246b06bf9f51



        .quad 0x29e68e57ad6e98f6
        .quad 0x4c9260c80b462065
        .quad 0x3f00862ea51ebb4b
        .quad 0x5bc2c77fb38d9097
        .quad 0x7eaafc9a6280bbb8
        .quad 0x22a70f12f403d809
        .quad 0x31ce40bb1bfc8d20
        .quad 0x2bc65635e8bd53ee
        .quad 0xe8d5dc9fa96bad93
        .quad 0xe58fb17dde1947dc
        .quad 0x681532ea65185fa3
        .quad 0x1fdd6c3b034a7830



        .quad 0x0a64e28c55dc18fe
        .quad 0xe3df9e993399ebdd
        .quad 0x79ac432370e2e652
        .quad 0x35ff7fc33ae4cc0e
        .quad 0x9c13a6a52dd8f7a9
        .quad 0x2dbb1f8c3efdcabf
        .quad 0x961e32405e08f7b5
        .quad 0x48c8a121bbe6c9e5
        .quad 0xfc415a7c59646445
        .quad 0xd224b2d7c128b615
        .quad 0x6035c9c905fbb912
        .quad 0x42d7a91274429fab



        .quad 0x4e6213e3eaf72ed3
        .quad 0x6794981a43acd4e7
        .quad 0xff547cde6eb508cb
        .quad 0x6fed19dd10fcb532
        .quad 0xa9a48947933da5bc
        .quad 0x4a58920ec2e979ec
        .quad 0x96d8800013e5ac4c
        .quad 0x453692d74b48b147
        .quad 0xdd775d99a8559c6f
        .quad 0xf42a2140df003e24
        .quad 0x5223e229da928a66
        .quad 0x063f46ba6d38f22c



        .quad 0xd2d242895f536694
        .quad 0xca33a2c542939b2c
        .quad 0x986fada6c7ddb95c
        .quad 0x5a152c042f712d5d
        .quad 0x39843cb737346921
        .quad 0xa747fb0738c89447
        .quad 0xcb8d8031a245307e
        .quad 0x67810f8e6d82f068
        .quad 0x3eeb8fbcd2287db4
        .quad 0x72c7d3a301a03e93
        .quad 0x5473e88cbd98265a
        .quad 0x7324aa515921b403



        .quad 0x857942f46c3cbe8e
        .quad 0xa1d364b14730c046
        .quad 0x1c8ed914d23c41bf
        .quad 0x0838e161eef6d5d2
        .quad 0xad23f6dae82354cb
        .quad 0x6962502ab6571a6d
        .quad 0x9b651636e38e37d1
        .quad 0x5cac5005d1a3312f
        .quad 0x8cc154cce9e39904
        .quad 0x5b3a040b84de6846
        .quad 0xc4d8a61cb1be5d6e
        .quad 0x40fb897bd8861f02



        .quad 0x84c5aa9062de37a1
        .quad 0x421da5000d1d96e1
        .quad 0x788286306a9242d9
        .quad 0x3c5e464a690d10da
        .quad 0xe57ed8475ab10761
        .quad 0x71435e206fd13746
        .quad 0x342f824ecd025632
        .quad 0x4b16281ea8791e7b
        .quad 0xd1c101d50b813381
        .quad 0xdee60f1176ee6828
        .quad 0x0cb68893383f6409
        .quad 0x6183c565f6ff484a



        .quad 0x741d5a461e6bf9d6
        .quad 0x2305b3fc7777a581
        .quad 0xd45574a26474d3d9
        .quad 0x1926e1dc6401e0ff
        .quad 0xdb468549af3f666e
        .quad 0xd77fcf04f14a0ea5
        .quad 0x3df23ff7a4ba0c47
        .quad 0x3a10dfe132ce3c85
        .quad 0xe07f4e8aea17cea0
        .quad 0x2fd515463a1fc1fd
        .quad 0x175322fd31f2c0f1
        .quad 0x1fa1d01d861e5d15



        .quad 0xcc8055947d599832
        .quad 0x1e4656da37f15520
        .quad 0x99f6f7744e059320
        .quad 0x773563bc6a75cf33
        .quad 0x38dcac00d1df94ab
        .quad 0x2e712bddd1080de9
        .quad 0x7f13e93efdd5e262
        .quad 0x73fced18ee9a01e5
        .quad 0x06b1e90863139cb3
        .quad 0xa493da67c5a03ecd
        .quad 0x8d77cec8ad638932
        .quad 0x1f426b701b864f44



        .quad 0xefc9264c41911c01
        .quad 0xf1a3b7b817a22c25
        .quad 0x5875da6bf30f1447
        .quad 0x4e1af5271d31b090
        .quad 0xf17e35c891a12552
        .quad 0xb76b8153575e9c76
        .quad 0xfa83406f0d9b723e
        .quad 0x0b76bb1b3fa7e438
        .quad 0x08b8c1f97f92939b
        .quad 0xbe6771cbd444ab6e
        .quad 0x22e5646399bb8017
        .quad 0x7b6dd61eb772a955



        .quad 0xb7adc1e850f33d92
        .quad 0x7998fa4f608cd5cf
        .quad 0xad962dbd8dfc5bdb
        .quad 0x703e9bceaf1d2f4f
        .quad 0x5730abf9ab01d2c7
        .quad 0x16fb76dc40143b18
        .quad 0x866cbe65a0cbb281
        .quad 0x53fa9b659bff6afe
        .quad 0x6c14c8e994885455
        .quad 0x843a5d6665aed4e5
        .quad 0x181bb73ebcd65af1
        .quad 0x398d93e5c4c61f50



        .quad 0x1c4bd16733e248f3
        .quad 0xbd9e128715bf0a5f
        .quad 0xd43f8cf0a10b0376
        .quad 0x53b09b5ddf191b13
        .quad 0xc3877c60d2e7e3f2
        .quad 0x3b34aaa030828bb1
        .quad 0x283e26e7739ef138
        .quad 0x699c9c9002c30577
        .quad 0xf306a7235946f1cc
        .quad 0x921718b5cce5d97d
        .quad 0x28cdd24781b4e975
        .quad 0x51caf30c6fcdd907



        .quad 0xa60ba7427674e00a
        .quad 0x630e8570a17a7bf3
        .quad 0x3758563dcf3324cc
        .quad 0x5504aa292383fdaa
        .quad 0x737af99a18ac54c7
        .quad 0x903378dcc51cb30f
        .quad 0x2b89bc334ce10cc7
        .quad 0x12ae29c189f8e99a
        .quad 0xa99ec0cb1f0d01cf
        .quad 0x0dd1efcc3a34f7ae
        .quad 0x55ca7521d09c4e22
        .quad 0x5fd14fe958eba5ea



        .quad 0xb5dc2ddf2845ab2c
        .quad 0x069491b10a7fe993
        .quad 0x4daaf3d64002e346
        .quad 0x093ff26e586474d1
        .quad 0x3c42fe5ebf93cb8e
        .quad 0xbedfa85136d4565f
        .quad 0xe0f0859e884220e8
        .quad 0x7dd73f960725d128
        .quad 0xb10d24fe68059829
        .quad 0x75730672dbaf23e5
        .quad 0x1367253ab457ac29
        .quad 0x2f59bcbc86b470a4



        .quad 0x83847d429917135f
        .quad 0xad1b911f567d03d7
        .quad 0x7e7748d9be77aad1
        .quad 0x5458b42e2e51af4a
        .quad 0x7041d560b691c301
        .quad 0x85201b3fadd7e71e
        .quad 0x16c2e16311335585
        .quad 0x2aa55e3d010828b1
        .quad 0xed5192e60c07444f
        .quad 0x42c54e2d74421d10
        .quad 0x352b4c82fdb5c864
        .quad 0x13e9004a8a768664



        .quad 0xcbb5b5556c032bff
        .quad 0xdf7191b729297a3a
        .quad 0xc1ff7326aded81bb
        .quad 0x71ade8bb68be03f5
        .quad 0x1e6284c5806b467c
        .quad 0xc5f6997be75d607b
        .quad 0x8b67d958b378d262
        .quad 0x3d88d66a81cd8b70
        .quad 0x8b767a93204ed789
        .quad 0x762fcacb9fa0ae2a
        .quad 0x771febcc6dce4887
        .quad 0x343062158ff05fb3



        .quad 0xe05da1a7e1f5bf49
        .quad 0x26457d6dd4736092
        .quad 0x77dcb07773cc32f6
        .quad 0x0a5d94969cdd5fcd
        .quad 0xfce219072a7b31b4
        .quad 0x4d7adc75aa578016
        .quad 0x0ec276a687479324
        .quad 0x6d6d9d5d1fda4beb
        .quad 0x22b1a58ae9b08183
        .quad 0xfd95d071c15c388b
        .quad 0xa9812376850a0517
        .quad 0x33384cbabb7f335e



        .quad 0x3c6fa2680ca2c7b5
        .quad 0x1b5082046fb64fda
        .quad 0xeb53349c5431d6de
        .quad 0x5278b38f6b879c89
        .quad 0x33bc627a26218b8d
        .quad 0xea80b21fc7a80c61
        .quad 0x9458b12b173e9ee6
        .quad 0x076247be0e2f3059
        .quad 0x52e105f61416375a
        .quad 0xec97af3685abeba4
        .quad 0x26e6b50623a67c36
        .quad 0x5cf0e856f3d4fb01



        .quad 0xf6c968731ae8cab4
        .quad 0x5e20741ecb4f92c5
        .quad 0x2da53be58ccdbc3e
        .quad 0x2dddfea269970df7
        .quad 0xbeaece313db342a8
        .quad 0xcba3635b842db7ee
        .quad 0xe88c6620817f13ef
        .quad 0x1b9438aa4e76d5c6
        .quad 0x8a50777e166f031a
        .quad 0x067b39f10fb7a328
        .quad 0x1925c9a6010fbd76
        .quad 0x6df9b575cc740905



        .quad 0x42c1192927f6bdcf
        .quad 0x8f91917a403d61ca
        .quad 0xdc1c5a668b9e1f61
        .quad 0x1596047804ec0f8d
        .quad 0xecdfc35b48cade41
        .quad 0x6a88471fb2328270
        .quad 0x740a4a2440a01b6a
        .quad 0x471e5796003b5f29
        .quad 0xda96bbb3aced37ac
        .quad 0x7a2423b5e9208cea
        .quad 0x24cc5c3038aebae2
        .quad 0x50c356afdc5dae2f



        .quad 0x09dcbf4341c30318
        .quad 0xeeba061183181dce
        .quad 0xc179c0cedc1e29a1
        .quad 0x1dbf7b89073f35b0
        .quad 0xcfed9cdf1b31b964
        .quad 0xf486a9858ca51af3
        .quad 0x14897265ea8c1f84
        .quad 0x784a53dd932acc00
        .quad 0x2d99f9df14fc4920
        .quad 0x76ccb60cc4499fe5
        .quad 0xa4132cbbe5cf0003
        .quad 0x3f93d82354f000ea



        .quad 0x8183e7689e04ce85
        .quad 0x678fb71e04465341
        .quad 0xad92058f6688edac
        .quad 0x5da350d3532b099a
        .quad 0xeaac12d179e14978
        .quad 0xff923ff3bbebff5e
        .quad 0x4af663e40663ce27
        .quad 0x0fd381a811a5f5ff
        .quad 0xf256aceca436df54
        .quad 0x108b6168ae69d6e8
        .quad 0x20d986cb6b5d036c
        .quad 0x655957b9fee2af50



        .quad 0xaea8b07fa902030f
        .quad 0xf88c766af463d143
        .quad 0x15b083663c787a60
        .quad 0x08eab1148267a4a8
        .quad 0xbdc1409bd002d0ac
        .quad 0x66660245b5ccd9a6
        .quad 0x82317dc4fade85ec
        .quad 0x02fe934b6ad7df0d
        .quad 0xef5cf100cfb7ea74
        .quad 0x22897633a1cb42ac
        .quad 0xd4ce0c54cef285e2
        .quad 0x30408c048a146a55



        .quad 0x739d8845832fcedb
        .quad 0xfa38d6c9ae6bf863
        .quad 0x32bc0dcab74ffef7
        .quad 0x73937e8814bce45e
        .quad 0xbb2e00c9193b877f
        .quad 0xece3a890e0dc506b
        .quad 0xecf3b7c036de649f
        .quad 0x5f46040898de9e1a
        .quad 0xb9037116297bf48d
        .quad 0xa9d13b22d4f06834
        .quad 0xe19715574696bdc6
        .quad 0x2cf8a4e891d5e835



        .quad 0x6d93fd8707110f67
        .quad 0xdd4c09d37c38b549
        .quad 0x7cb16a4cc2736a86
        .quad 0x2049bd6e58252a09
        .quad 0x2cb5487e17d06ba2
        .quad 0x24d2381c3950196b
        .quad 0xd7659c8185978a30
        .quad 0x7a6f7f2891d6a4f6
        .quad 0x7d09fd8d6a9aef49
        .quad 0xf0ee60be5b3db90b
        .quad 0x4c21b52c519ebfd4
        .quad 0x6011aadfc545941d



        .quad 0x5f67926dcf95f83c
        .quad 0x7c7e856171289071
        .quad 0xd6a1e7f3998f7a5b
        .quad 0x6fc5cc1b0b62f9e0
        .quad 0x63ded0c802cbf890
        .quad 0xfbd098ca0dff6aaa
        .quad 0x624d0afdb9b6ed99
        .quad 0x69ce18b779340b1e
        .quad 0xd1ef5528b29879cb
        .quad 0xdd1aae3cd47e9092
        .quad 0x127e0442189f2352
        .quad 0x15596b3ae57101f1



        .quad 0x462739d23f9179a2
        .quad 0xff83123197d6ddcf
        .quad 0x1307deb553f2148a
        .quad 0x0d2237687b5f4dda
        .quad 0x09ff31167e5124ca
        .quad 0x0be4158bd9c745df
        .quad 0x292b7d227ef556e5
        .quad 0x3aa4e241afb6d138
        .quad 0x2cc138bf2a3305f5
        .quad 0x48583f8fa2e926c3
        .quad 0x083ab1a25549d2eb
        .quad 0x32fcaa6e4687a36c



        .quad 0x7bc56e8dc57d9af5
        .quad 0x3e0bd2ed9df0bdf2
        .quad 0xaac014de22efe4a3
        .quad 0x4627e9cefebd6a5c
        .quad 0x3207a4732787ccdf
        .quad 0x17e31908f213e3f8
        .quad 0xd5b2ecd7f60d964e
        .quad 0x746f6336c2600be9
        .quad 0x3f4af345ab6c971c
        .quad 0xe288eb729943731f
        .quad 0x33596a8a0344186d
        .quad 0x7b4917007ed66293



        .quad 0x2d85fb5cab84b064
        .quad 0x497810d289f3bc14
        .quad 0x476adc447b15ce0c
        .quad 0x122ba376f844fd7b
        .quad 0x54341b28dd53a2dd
        .quad 0xaa17905bdf42fc3f
        .quad 0x0ff592d94dd2f8f4
        .quad 0x1d03620fe08cd37d
        .quad 0xc20232cda2b4e554
        .quad 0x9ed0fd42115d187f
        .quad 0x2eabb4be7dd479d9
        .quad 0x02c70bf52b68ec4c



        .quad 0xa287ec4b5d0b2fbb
        .quad 0x415c5790074882ca
        .quad 0xe044a61ec1d0815c
        .quad 0x26334f0a409ef5e0
        .quad 0xace532bf458d72e1
        .quad 0x5be768e07cb73cb5
        .quad 0x56cf7d94ee8bbde7
        .quad 0x6b0697e3feb43a03
        .quad 0xb6c8f04adf62a3c0
        .quad 0x3ef000ef076da45d
        .quad 0x9c9cb95849f0d2a9
        .quad 0x1cc37f43441b2fae



        .quad 0x508f565a5cc7324f
        .quad 0xd061c4c0e506a922
        .quad 0xfb18abdb5c45ac19
        .quad 0x6c6809c10380314a
        .quad 0xd76656f1c9ceaeb9
        .quad 0x1c5b15f818e5656a
        .quad 0x26e72832844c2334
        .quad 0x3a346f772f196838
        .quad 0xd2d55112e2da6ac8
        .quad 0xe9bd0331b1e851ed
        .quad 0x960746dd8ec67262
        .quad 0x05911b9f6ef7c5d0



        .quad 0xe9dcd756b637ff2d
        .quad 0xec4c348fc987f0c4
        .quad 0xced59285f3fbc7b7
        .quad 0x3305354793e1ea87
        .quad 0x01c18980c5fe9f94
        .quad 0xcd656769716fd5c8
        .quad 0x816045c3d195a086
        .quad 0x6e2b7f3266cc7982
        .quad 0xcc802468f7c3568f
        .quad 0x9de9ba8219974cb3
        .quad 0xabb7229cb5b81360
        .quad 0x44e2017a6fbeba62



        .quad 0xc4c2a74354dab774
        .quad 0x8e5d4c3c4eaf031a
        .quad 0xb76c23d242838f17
        .quad 0x749a098f68dce4ea
        .quad 0x87f82cf3b6ca6ecd
        .quad 0x580f893e18f4a0c2
        .quad 0x058930072604e557
        .quad 0x6cab6ac256d19c1d
        .quad 0xdcdfe0a02cc1de60
        .quad 0x032665ff51c5575b
        .quad 0x2c0c32f1073abeeb
        .quad 0x6a882014cd7b8606



        .quad 0xa52a92fea4747fb5
        .quad 0xdc12a4491fa5ab89
        .quad 0xd82da94bb847a4ce
        .quad 0x4d77edce9512cc4e
        .quad 0xd111d17caf4feb6e
        .quad 0x050bba42b33aa4a3
        .quad 0x17514c3ceeb46c30
        .quad 0x54bedb8b1bc27d75
        .quad 0x77c8e14577e2189c
        .quad 0xa3e46f6aff99c445
        .quad 0x3144dfc86d335343
        .quad 0x3a96559e7c4216a9



        .quad 0x12550d37f42ad2ee
        .quad 0x8b78e00498a1fbf5
        .quad 0x5d53078233894cb2
        .quad 0x02c84e4e3e498d0c
        .quad 0x4493896880baaa52
        .quad 0x4c98afc4f285940e
        .quad 0xef4aa79ba45448b6
        .quad 0x5278c510a57aae7f
        .quad 0xa54dd074294c0b94
        .quad 0xf55d46b8df18ffb6
        .quad 0xf06fecc58dae8366
        .quad 0x588657668190d165



        .quad 0xd47712311aef7117
        .quad 0x50343101229e92c7
        .quad 0x7a95e1849d159b97
        .quad 0x2449959b8b5d29c9
        .quad 0xbf5834f03de25cc3
        .quad 0xb887c8aed6815496
        .quad 0x5105221a9481e892
        .quad 0x6760ed19f7723f93
        .quad 0x669ba3b7ac35e160
        .quad 0x2eccf73fba842056
        .quad 0x1aec1f17c0804f07
        .quad 0x0d96bc031856f4e7



        .quad 0x3318be7775c52d82
        .quad 0x4cb764b554d0aab9
        .quad 0xabcf3d27cc773d91
        .quad 0x3bf4d1848123288a
        .quad 0xb1d534b0cc7505e1
        .quad 0x32cd003416c35288
        .quad 0xcb36a5800762c29d
        .quad 0x5bfe69b9237a0bf8
        .quad 0x183eab7e78a151ab
        .quad 0xbbe990c999093763
        .quad 0xff717d6e4ac7e335
        .quad 0x4c5cddb325f39f88



        .quad 0xc0f6b74d6190a6eb
        .quad 0x20ea81a42db8f4e4
        .quad 0xa8bd6f7d97315760
        .quad 0x33b1d60262ac7c21
        .quad 0x57750967e7a9f902
        .quad 0x2c37fdfc4f5b467e
        .quad 0xb261663a3177ba46
        .quad 0x3a375e78dc2d532b
        .quad 0x8141e72f2d4dddea
        .quad 0xe6eafe9862c607c8
        .quad 0x23c28458573cafd0
        .quad 0x46b9476f4ff97346



        .quad 0x0c1ffea44f901e5c
        .quad 0x2b0b6fb72184b782
        .quad 0xe587ff910114db88
        .quad 0x37130f364785a142
        .quad 0x1215505c0d58359f
        .quad 0x2a2013c7fc28c46b
        .quad 0x24a0a1af89ea664e
        .quad 0x4400b638a1130e1f
        .quad 0x3a01b76496ed19c3
        .quad 0x31e00ab0ed327230
        .quad 0x520a885783ca15b1
        .quad 0x06aab9875accbec7



        .quad 0xc1339983f5df0ebb
        .quad 0xc0f3758f512c4cac
        .quad 0x2cf1130a0bb398e1
        .quad 0x6b3cecf9aa270c62
        .quad 0x5349acf3512eeaef
        .quad 0x20c141d31cc1cb49
        .quad 0x24180c07a99a688d
        .quad 0x555ef9d1c64b2d17
        .quad 0x36a770ba3b73bd08
        .quad 0x624aef08a3afbf0c
        .quad 0x5737ff98b40946f2
        .quad 0x675f4de13381749d



        .quad 0x0e2c52036b1782fc
        .quad 0x64816c816cad83b4
        .quad 0xd0dcbdd96964073e
        .quad 0x13d99df70164c520
        .quad 0xa12ff6d93bdab31d
        .quad 0x0725d80f9d652dfe
        .quad 0x019c4ff39abe9487
        .quad 0x60f450b882cd3c43
        .quad 0x014b5ec321e5c0ca
        .quad 0x4fcb69c9d719bfa2
        .quad 0x4e5f1c18750023a0
        .quad 0x1c06de9e55edac80



        .quad 0x990f7ad6a33ec4e2
        .quad 0x6608f938be2ee08e
        .quad 0x9ca143c563284515
        .quad 0x4cf38a1fec2db60d
        .quad 0xffd52b40ff6d69aa
        .quad 0x34530b18dc4049bb
        .quad 0x5e4a5c2fa34d9897
        .quad 0x78096f8e7d32ba2d
        .quad 0xa0aaaa650dfa5ce7
        .quad 0xf9c49e2a48b5478c
        .quad 0x4f09cc7d7003725b
        .quad 0x373cad3a26091abe



        .quad 0xb294634d82c9f57c
        .quad 0x1fcbfde124934536
        .quad 0x9e9c4db3418cdb5a
        .quad 0x0040f3d9454419fc
        .quad 0xf1bea8fb89ddbbad
        .quad 0x3bcb2cbc61aeaecb
        .quad 0x8f58a7bb1f9b8d9d
        .quad 0x21547eda5112a686
        .quad 0xdefde939fd5986d3
        .quad 0xf4272c89510a380c
        .quad 0xb72ba407bb3119b9
        .quad 0x63550a334a254df4



        .quad 0x6507d6edb569cf37
        .quad 0x178429b00ca52ee1
        .quad 0xea7c0090eb6bd65d
        .quad 0x3eea62c7daf78f51
        .quad 0x9bba584572547b49
        .quad 0xf305c6fae2c408e0
        .quad 0x60e8fa69c734f18d
        .quad 0x39a92bafaa7d767a
        .quad 0x9d24c713e693274e
        .quad 0x5f63857768dbd375
        .quad 0x70525560eb8ab39a
        .quad 0x68436a0665c9c4cd



        .quad 0xbc0235e8202f3f27
        .quad 0xc75c00e264f975b0
        .quad 0x91a4e9d5a38c2416
        .quad 0x17b6e7f68ab789f9
        .quad 0x1e56d317e820107c
        .quad 0xc5266844840ae965
        .quad 0xc1e0a1c6320ffc7a
        .quad 0x5373669c91611472
        .quad 0x5d2814ab9a0e5257
        .quad 0x908f2084c9cab3fc
        .quad 0xafcaf5885b2d1eca
        .quad 0x1cb4b5a678f87d11



        .quad 0xb664c06b394afc6c
        .quad 0x0c88de2498da5fb1
        .quad 0x4f8d03164bcad834
        .quad 0x330bca78de7434a2
        .quad 0x6b74aa62a2a007e7
        .quad 0xf311e0b0f071c7b1
        .quad 0x5707e438000be223
        .quad 0x2dc0fd2d82ef6eac
        .quad 0x982eff841119744e
        .quad 0xf9695e962b074724
        .quad 0xc58ac14fbfc953fb
        .quad 0x3c31be1b369f1cf5



        .quad 0xb0f4864d08948aee
        .quad 0x07dc19ee91ba1c6f
        .quad 0x7975cdaea6aca158
        .quad 0x330b61134262d4bb
        .quad 0xc168bc93f9cb4272
        .quad 0xaeb8711fc7cedb98
        .quad 0x7f0e52aa34ac8d7a
        .quad 0x41cec1097e7d55bb
        .quad 0xf79619d7a26d808a
        .quad 0xbb1fd49e1d9e156d
        .quad 0x73d7c36cdba1df27
        .quad 0x26b44cd91f28777d



        .quad 0x300a9035393aa6d8
        .quad 0x2b501131a12bb1cd
        .quad 0x7b1ff677f093c222
        .quad 0x4309c1f8cab82bad
        .quad 0xaf44842db0285f37
        .quad 0x8753189047efc8df
        .quad 0x9574e091f820979a
        .quad 0x0e378d6069615579
        .quad 0xd9fa917183075a55
        .quad 0x4bdb5ad26b009fdc
        .quad 0x7829ad2cd63def0e
        .quad 0x078fc54975fd3877



        .quad 0x87dfbd1428878f2d
        .quad 0x134636dd1e9421a1
        .quad 0x4f17c951257341a3
        .quad 0x5df98d4bad296cb8
        .quad 0xe2004b5bb833a98a
        .quad 0x44775dec2d4c3330
        .quad 0x3aa244067eace913
        .quad 0x272630e3d58e00a9
        .quad 0xf3678fd0ecc90b54
        .quad 0xf001459b12043599
        .quad 0x26725fbc3758b89b
        .quad 0x4325e4aa73a719ae



        .quad 0x657dc6ef433c3493
        .quad 0x65375e9f80dbf8c3
        .quad 0x47fd2d465b372dae
        .quad 0x4966ab79796e7947
        .quad 0xed24629acf69f59d
        .quad 0x2a4a1ccedd5abbf4
        .quad 0x3535ca1f56b2d67b
        .quad 0x5d8c68d043b1b42d
        .quad 0xee332d4de3b42b0a
        .quad 0xd84e5a2b16a4601c
        .quad 0x78243877078ba3e4
        .quad 0x77ed1eb4184ee437



        .quad 0xbfd4e13f201839a0
        .quad 0xaeefffe23e3df161
        .quad 0xb65b04f06b5d1fe3
        .quad 0x52e085fb2b62fbc0
        .quad 0x185d43f89e92ed1a
        .quad 0xb04a1eeafe4719c6
        .quad 0x499fbe88a6f03f4f
        .quad 0x5d8b0d2f3c859bdd
        .quad 0x124079eaa54cf2ba
        .quad 0xd72465eb001b26e7
        .quad 0x6843bcfdc97af7fd
        .quad 0x0524b42b55eacd02



        .quad 0xfd0d5dbee45447b0
        .quad 0x6cec351a092005ee
        .quad 0x99a47844567579cb
        .quad 0x59d242a216e7fa45
        .quad 0xbc18dcad9b829eac
        .quad 0x23ae7d28b5f579d0
        .quad 0xc346122a69384233
        .quad 0x1a6110b2e7d4ac89
        .quad 0x4f833f6ae66997ac
        .quad 0x6849762a361839a4
        .quad 0x6985dec1970ab525
        .quad 0x53045e89dcb1f546



        .quad 0xcb8bb346d75353db
        .quad 0xfcfcb24bae511e22
        .quad 0xcba48d40d50ae6ef
        .quad 0x26e3bae5f4f7cb5d
        .quad 0x84da3cde8d45fe12
        .quad 0xbd42c218e444e2d2
        .quad 0xa85196781f7e3598
        .quad 0x7642c93f5616e2b2
        .quad 0x2323daa74595f8e4
        .quad 0xde688c8b857abeb4
        .quad 0x3fc48e961c59326e
        .quad 0x0b2e73ca15c9b8ba



        .quad 0xd6bb4428c17f5026
        .quad 0x9eb27223fb5a9ca7
        .quad 0xe37ba5031919c644
        .quad 0x21ce380db59a6602
        .quad 0x0e3fbfaf79c03a55
        .quad 0x3077af054cbb5acf
        .quad 0xd5c55245db3de39f
        .quad 0x015e68c1476a4af7
        .quad 0xc1d5285220066a38
        .quad 0x95603e523570aef3
        .quad 0x832659a7226b8a4d
        .quad 0x5dd689091f8eedc9



        .quad 0xcbac84debfd3c856
        .quad 0x1624c348b35ff244
        .quad 0xb7f88dca5d9cad07
        .quad 0x3b0e574da2c2ebe8
        .quad 0x1d022591a5313084
        .quad 0xca2d4aaed6270872
        .quad 0x86a12b852f0bfd20
        .quad 0x56e6c439ad7da748
        .quad 0xc704ff4942bdbae6
        .quad 0x5e21ade2b2de1f79
        .quad 0xe95db3f35652fad8
        .quad 0x0822b5378f08ebc1



        .quad 0x51f048478f387475
        .quad 0xb25dbcf49cbecb3c
        .quad 0x9aab1244d99f2055
        .quad 0x2c709e6c1c10a5d6
        .quad 0xe1b7f29362730383
        .quad 0x4b5279ffebca8a2c
        .quad 0xdafc778abfd41314
        .quad 0x7deb10149c72610f
        .quad 0xcb62af6a8766ee7a
        .quad 0x66cbec045553cd0e
        .quad 0x588001380f0be4b5
        .quad 0x08e68e9ff62ce2ea



        .quad 0x34ad500a4bc130ad
        .quad 0x8d38db493d0bd49c
        .quad 0xa25c3d98500a89be
        .quad 0x2f1f3f87eeba3b09
        .quad 0x2f2d09d50ab8f2f9
        .quad 0xacb9218dc55923df
        .quad 0x4a8f342673766cb9
        .quad 0x4cb13bd738f719f5
        .quad 0xf7848c75e515b64a
        .quad 0xa59501badb4a9038
        .quad 0xc20d313f3f751b50
        .quad 0x19a1e353c0ae2ee8



        .quad 0x7d1c7560bafa05c3
        .quad 0xb3e1a0a0c6e55e61
        .quad 0xe3529718c0d66473
        .quad 0x41546b11c20c3486
        .quad 0xb42172cdd596bdbd
        .quad 0x93e0454398eefc40
        .quad 0x9fb15347b44109b5
        .quad 0x736bd3990266ae34
        .quad 0x85532d509334b3b4
        .quad 0x46fd114b60816573
        .quad 0xcc5f5f30425c8375
        .quad 0x412295a2b87fab5c



        .quad 0x19c99b88f57ed6e9
        .quad 0x5393cb266df8c825
        .quad 0x5cee3213b30ad273
        .quad 0x14e153ebb52d2e34
        .quad 0x2e655261e293eac6
        .quad 0x845a92032133acdb
        .quad 0x460975cb7900996b
        .quad 0x0760bb8d195add80
        .quad 0x413e1a17cde6818a
        .quad 0x57156da9ed69a084
        .quad 0x2cbf268f46caccb1
        .quad 0x6b34be9bc33ac5f2



        .quad 0xf3df2f643a78c0b2
        .quad 0x4c3e971ef22e027c
        .quad 0xec7d1c5e49c1b5a3
        .quad 0x2012c18f0922dd2d
        .quad 0x11fc69656571f2d3
        .quad 0xc6c9e845530e737a
        .quad 0xe33ae7a2d4fe5035
        .quad 0x01b9c7b62e6dd30b
        .quad 0x880b55e55ac89d29
        .quad 0x1483241f45a0a763
        .quad 0x3d36efdfc2e76c1f
        .quad 0x08af5b784e4bade8



        .quad 0x283499dc881f2533
        .quad 0x9d0525da779323b6
        .quad 0x897addfb673441f4
        .quad 0x32b79d71163a168d
        .quad 0xe27314d289cc2c4b
        .quad 0x4be4bd11a287178d
        .quad 0x18d528d6fa3364ce
        .quad 0x6423c1d5afd9826e
        .quad 0xcc85f8d9edfcb36a
        .quad 0x22bcc28f3746e5f9
        .quad 0xe49de338f9e5d3cd
        .quad 0x480a5efbc13e2dcc



        .quad 0x0b51e70b01622071
        .quad 0x06b505cf8b1dafc5
        .quad 0x2c6bb061ef5aabcd
        .quad 0x47aa27600cb7bf31
        .quad 0xb6614ce442ce221f
        .quad 0x6e199dcc4c053928
        .quad 0x663fb4a4dc1cbe03
        .quad 0x24b31d47691c8e06
        .quad 0x2a541eedc015f8c3
        .quad 0x11a4fe7e7c693f7c
        .quad 0xf0af66134ea278d6
        .quad 0x545b585d14dda094



        .quad 0x67bf275ea0d43a0f
        .quad 0xade68e34089beebe
        .quad 0x4289134cd479e72e
        .quad 0x0f62f9c332ba5454
        .quad 0x6204e4d0e3b321e1
        .quad 0x3baa637a28ff1e95
        .quad 0x0b0ccffd5b99bd9e
        .quad 0x4d22dc3e64c8d071
        .quad 0xfcb46589d63b5f39
        .quad 0x5cae6a3f57cbcf61
        .quad 0xfebac2d2953afa05
        .quad 0x1c0fa01a36371436



        .quad 0xe7547449bc7cd692
        .quad 0x0f9abeaae6f73ddf
        .quad 0x4af01ca700837e29
        .quad 0x63ab1b5d3f1bc183
        .quad 0xc11ee5e854c53fae
        .quad 0x6a0b06c12b4f3ff4
        .quad 0x33540f80e0b67a72
        .quad 0x15f18fc3cd07e3ef
        .quad 0x32750763b028f48c
        .quad 0x06020740556a065f
        .quad 0xd53bd812c3495b58
        .quad 0x08706c9b865f508d



        .quad 0xf37ca2ab3d343dff
        .quad 0x1a8c6a2d80abc617
        .quad 0x8e49e035d4ccffca
        .quad 0x48b46beebaa1d1b9
        .quad 0xcc991b4138b41246
        .quad 0x243b9c526f9ac26b
        .quad 0xb9ef494db7cbabbd
        .quad 0x5fba433dd082ed00
        .quad 0x9c49e355c9941ad0
        .quad 0xb9734ade74498f84
        .quad 0x41c3fed066663e5c
        .quad 0x0ecfedf8e8e710b3



        .quad 0x76430f9f9cd470d9
        .quad 0xb62acc9ba42f6008
        .quad 0x1898297c59adad5e
        .quad 0x7789dd2db78c5080
        .quad 0x744f7463e9403762
        .quad 0xf79a8dee8dfcc9c9
        .quad 0x163a649655e4cde3
        .quad 0x3b61788db284f435
        .quad 0xb22228190d6ef6b2
        .quad 0xa94a66b246ce4bfa
        .quad 0x46c1a77a4f0b6cc7
        .quad 0x4236ccffeb7338cf



        .quad 0x8497404d0d55e274
        .quad 0x6c6663d9c4ad2b53
        .quad 0xec2fb0d9ada95734
        .quad 0x2617e120cdb8f73c
        .quad 0x3bd82dbfda777df6
        .quad 0x71b177cc0b98369e
        .quad 0x1d0e8463850c3699
        .quad 0x5a71945b48e2d1f1
        .quad 0x6f203dd5405b4b42
        .quad 0x327ec60410b24509
        .quad 0x9c347230ac2a8846
        .quad 0x77de29fc11ffeb6a



        .quad 0xb0ac57c983b778a8
        .quad 0x53cdcca9d7fe912c
        .quad 0x61c2b854ff1f59dc
        .quad 0x3a1a2cf0f0de7dac
        .quad 0x835e138fecced2ca
        .quad 0x8c9eaf13ea963b9a
        .quad 0xc95fbfc0b2160ea6
        .quad 0x575e66f3ad877892
        .quad 0x99803a27c88fcb3a
        .quad 0x345a6789275ec0b0
        .quad 0x459789d0ff6c2be5
        .quad 0x62f882651e70a8b2



        .quad 0x085ae2c759ff1be4
        .quad 0x149145c93b0e40b7
        .quad 0xc467e7fa7ff27379
        .quad 0x4eeecf0ad5c73a95
        .quad 0x6d822986698a19e0
        .quad 0xdc9821e174d78a71
        .quad 0x41a85f31f6cb1f47
        .quad 0x352721c2bcda9c51
        .quad 0x48329952213fc985
        .quad 0x1087cf0d368a1746
        .quad 0x8e5261b166c15aa5
        .quad 0x2d5b2d842ed24c21



        .quad 0x02cfebd9ebd3ded1
        .quad 0xd45b217739021974
        .quad 0x7576f813fe30a1b7
        .quad 0x5691b6f9a34ef6c2
        .quad 0x5eb7d13d196ac533
        .quad 0x377234ecdb80be2b
        .quad 0xe144cffc7cf5ae24
        .quad 0x5226bcf9c441acec
        .quad 0x79ee6c7223e5b547
        .quad 0x6f5f50768330d679
        .quad 0xed73e1e96d8adce9
        .quad 0x27c3da1e1d8ccc03



        .quad 0x7eb9efb23fe24c74
        .quad 0x3e50f49f1651be01
        .quad 0x3ea732dc21858dea
        .quad 0x17377bd75bb810f9
        .quad 0x28302e71630ef9f6
        .quad 0xc2d4a2032b64cee0
        .quad 0x090820304b6292be
        .quad 0x5fca747aa82adf18
        .quad 0x232a03c35c258ea5
        .quad 0x86f23a2c6bcb0cf1
        .quad 0x3dad8d0d2e442166
        .quad 0x04a8933cab76862b



        .quad 0xd2c604b622943dff
        .quad 0xbc8cbece44cfb3a0
        .quad 0x5d254ff397808678
        .quad 0x0fa3614f3b1ca6bf
        .quad 0x69082b0e8c936a50
        .quad 0xf9c9a035c1dac5b6
        .quad 0x6fb73e54c4dfb634
        .quad 0x4005419b1d2bc140
        .quad 0xa003febdb9be82f0
        .quad 0x2089c1af3a44ac90
        .quad 0xf8499f911954fa8e
        .quad 0x1fba218aef40ab42



        .quad 0xab549448fac8f53e
        .quad 0x81f6e89a7ba63741
        .quad 0x74fd6c7d6c2b5e01
        .quad 0x392e3acaa8c86e42
        .quad 0x4f3e57043e7b0194
        .quad 0xa81d3eee08daaf7f
        .quad 0xc839c6ab99dcdef1
        .quad 0x6c535d13ff7761d5
        .quad 0x4cbd34e93e8a35af
        .quad 0x2e0781445887e816
        .quad 0x19319c76f29ab0ab
        .quad 0x25e17fe4d50ac13b



        .quad 0x0a289bd71e04f676
        .quad 0x208e1c52d6420f95
        .quad 0x5186d8b034691fab
        .quad 0x255751442a9fb351
        .quad 0x915f7ff576f121a7
        .quad 0xc34a32272fcd87e3
        .quad 0xccba2fde4d1be526
        .quad 0x6bba828f8969899b
        .quad 0xe2d1bc6690fe3901
        .quad 0x4cb54a18a0997ad5
        .quad 0x971d6914af8460d4
        .quad 0x559d504f7f6b7be4



        .quad 0xa7738378b3eb54d5
        .quad 0x1d69d366a5553c7c
        .quad 0x0a26cf62f92800ba
        .quad 0x01ab12d5807e3217
        .quad 0x9c4891e7f6d266fd
        .quad 0x0744a19b0307781b
        .quad 0x88388f1d6061e23b
        .quad 0x123ea6a3354bd50e
        .quad 0x118d189041e32d96
        .quad 0xb9ede3c2d8315848
        .quad 0x1eab4271d83245d9
        .quad 0x4a3961e2c918a154



        .quad 0x71dc3be0f8e6bba0
        .quad 0xd6cef8347effe30a
        .quad 0xa992425fe13a476a
        .quad 0x2cd6bce3fb1db763
        .quad 0x0327d644f3233f1e
        .quad 0x499a260e34fcf016
        .quad 0x83b5a716f2dab979
        .quad 0x68aceead9bd4111f
        .quad 0x38b4c90ef3d7c210
        .quad 0x308e6e24b7ad040c
        .quad 0x3860d9f1b7e73e23
        .quad 0x595760d5b508f597



        .quad 0x6129bfe104aa6397
        .quad 0x8f960008a4a7fccb
        .quad 0x3f8bc0897d909458
        .quad 0x709fa43edcb291a9
        .quad 0x882acbebfd022790
        .quad 0x89af3305c4115760
        .quad 0x65f492e37d3473f4
        .quad 0x2cb2c5df54515a2b
        .quad 0xeb0a5d8c63fd2aca
        .quad 0xd22bc1662e694eff
        .quad 0x2723f36ef8cbb03a
        .quad 0x70f029ecf0c8131f



        .quad 0x461307b32eed3e33
        .quad 0xae042f33a45581e7
        .quad 0xc94449d3195f0366
        .quad 0x0b7d5d8a6c314858
        .quad 0x2a6aafaa5e10b0b9
        .quad 0x78f0a370ef041aa9
        .quad 0x773efb77aa3ad61f
        .quad 0x44eca5a2a74bd9e1
        .quad 0x25d448327b95d543
        .quad 0x70d38300a3340f1d
        .quad 0xde1c531c60e1c52b
        .quad 0x272224512c7de9e4



        .quad 0x1abc92af49c5342e
        .quad 0xffeed811b2e6fad0
        .quad 0xefa28c8dfcc84e29
        .quad 0x11b5df18a44cc543
        .quad 0xbf7bbb8a42a975fc
        .quad 0x8c5c397796ada358
        .quad 0xe27fc76fcdedaa48
        .quad 0x19735fd7f6bc20a6
        .quad 0xe3ab90d042c84266
        .quad 0xeb848e0f7f19547e
        .quad 0x2503a1d065a497b9
        .quad 0x0fef911191df895f


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/edwards25519_scalarmulbase_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_scalarmulbase_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
# 17 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S" 2


        .globl edwards25519_scalarmulbase_alt
        .hidden edwards25519_scalarmulbase_alt
        .text
# 414 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
.Ledwards25519_scalarmulbase_alt_local_target:
edwards25519_scalarmulbase_alt:
# 434 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(15*32 +8), %rsp



        movq %rdi, 14*32(%rsp)







        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11

        movq %r11, %rcx
        shrq $60, %rcx

        movq $0x5812631a5cf5d3ed, %rax
        mulq %rcx
        movq %rax, %r12
        movq %rdx, %r13
        movq $0x14def9dea2f79cd6, %rax
        mulq %rcx
        addq %rax, %r13
        adcq $0, %rdx
        shlq $60, %rcx

        subq %r12, %r8
        sbbq %r13, %r9
        sbbq %rdx, %r10
        sbbq %rcx, %r11







        sbbq %rax, %rax

        xorq %rax, %r8
        xorq %rax, %r9
        xorq %rax, %r10
        xorq %rax, %r11

        negq %rax
        adcq $0, %r8
        adcq $0, %r9
        adcq $0, %r10
        adcq $0, %r11

        shlq $63, %rax
        orq %rax, %r11




        movq %r8, 0(%rsp)
        movq %r9, 0 +8(%rsp)
        movq %r10, 0 +16(%rsp)
        btr $59, %r11
        movq %r11, 0 +24(%rsp)
# 515 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
# WAS leaq edwards25519_scalarmulbase_alt_0g(%rip), %r10
	leaq	.Ledwards25519_scalarmulbase_alt_0g_local_target(%rip), %r10
# WAS leaq edwards25519_scalarmulbase_alt_251g(%rip), %r11
	leaq	.Ledwards25519_scalarmulbase_alt_251g_local_target(%rip), %r11

        movq (%r10), %rax
        movq (%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)(%rsp)

        movq 8*1(%r10), %rax
        movq 8*1(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+8(%rsp)

        movq 8*2(%r10), %rax
        movq 8*2(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+16(%rsp)

        movq 8*3(%r10), %rax
        movq 8*3(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+24(%rsp)

        movq 8*4(%r10), %rax
        movq 8*4(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+32(%rsp)

        movq 8*5(%r10), %rax
        movq 8*5(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+40(%rsp)

        movq 8*6(%r10), %rax
        movq 8*6(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+48(%rsp)

        movq 8*7(%r10), %rax
        movq 8*7(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+56(%rsp)

        movl $1, %eax
        movq %rax, (10*32)+64(%rsp)
        movl $0, %eax
        movq %rax, (10*32)+72(%rsp)
        movq %rax, (10*32)+80(%rsp)
        movq %rax, (10*32)+88(%rsp)

        movq 8*8(%r10), %rax
        movq 8*8(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+96(%rsp)

        movq 8*9(%r10), %rax
        movq 8*9(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+104(%rsp)

        movq 8*10(%r10), %rax
        movq 8*10(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+112(%rsp)

        movq 8*11(%r10), %rax
        movq 8*11(%r11), %rcx
        cmovcq %rcx, %rax
        movq %rax, (10*32)+120(%rsp)
# 598 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        movq $0, 14*32 +8(%rsp)
# WAS leaq edwards25519_scalarmulbase_alt_gtable(%rip), %rax
	leaq	.Ledwards25519_scalarmulbase_alt_gtable_local_target(%rip), %rax
        movq %rax, 15*32(%rsp)
        movq $0, 14*32 +16(%rsp)



.Ledwards25519_scalarmulbase_alt_scalarloop_local_target:
edwards25519_scalarmulbase_alt_scalarloop:





        movq 14*32 +8(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax
        addq 14*32 +16(%rsp), %rax
        movq %rax, 14*32 +24(%rsp)

        cmpq $9, 14*32 +24(%rsp)
        sbbq %rax, %rax
        incq %rax
        movq %rax, 14*32 +16(%rsp)

        movq $16, %rdi
        subq 14*32 +24(%rsp), %rdi
        cmpq $0, 14*32 +16(%rsp)
        cmovzq 14*32 +24(%rsp), %rdi
        movq %rdi, 14*32 +24(%rsp)






        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

        movq 15*32(%rsp), %rbp

        cmpq $1, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        addq $96, %rbp
        movq %rbp, 15*32(%rsp)
# 886 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        cmpq $0, 14*32 +16(%rsp)

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, (1*32)(%rsp)
        movq %r8, (1*32)+32(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, (1*32)+8(%rsp)
        movq %r9, (1*32)+40(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, (1*32)+16(%rsp)
        movq %r10, (1*32)+48(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, (1*32)+24(%rsp)
        movq %r11, (1*32)+56(%rsp)

        movq $-19, %rax
        movq $-1, %rbx
        movq $-1, %rcx
        movq $0x7fffffffffffffff, %rdx
        subq %r12, %rax
        sbbq %r13, %rbx
        sbbq %r14, %rcx
        sbbq %r15, %rdx

        movq 14*32 +24(%rsp), %r8
        movq 14*32 +16(%rsp), %r9
        testq %r8, %r8
        cmovzq %r8, %r9
        testq %r9, %r9

        cmovzq %r12, %rax
        cmovzq %r13, %rbx
        cmovzq %r14, %rcx
        cmovzq %r15, %rdx
        movq %rax, (1*32)+64(%rsp)
        movq %rbx, (1*32)+72(%rsp)
        movq %rcx, (1*32)+80(%rsp)
        movq %rdx, (1*32)+88(%rsp)
# 943 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        movq (12*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(12*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(12*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(12*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (11*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (10*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 sbbq 8+(10*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(11*32)(%rsp), %r10
 sbbq 16+(10*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %rax
 sbbq 24+(10*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)
        movq (11*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (10*32)(%rsp), %r8
 movq 0x8+(11*32)(%rsp), %r9
 adcq 0x8+(10*32)(%rsp), %r9
 movq 0x10+(11*32)(%rsp), %r10
 adcq 0x10+(10*32)(%rsp), %r10
 movq 0x18+(11*32)(%rsp), %r11
 adcq 0x18+(10*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        movq (13*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (13*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(13*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (13*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(13*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (13*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(13*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)
        movq (5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (6*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (8*32)(%rsp)
 movq %r9, 8+(8*32)(%rsp)
 movq %r10, 16+(8*32)(%rsp)
 movq %rax, 24+(8*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (6*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (5*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 sbbq 8+(5*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(6*32)(%rsp), %r10
 sbbq 16+(5*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %rax
 sbbq 24+(5*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (9*32)(%rsp)
 movq %r9, 8+(9*32)(%rsp)
 movq %r10, 16+(9*32)(%rsp)
 movq %rax, 24+(9*32)(%rsp)
        movq (6*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (5*32)(%rsp), %r8
 movq 0x8+(6*32)(%rsp), %r9
 adcq 0x8+(5*32)(%rsp), %r9
 movq 0x10+(6*32)(%rsp), %r10
 adcq 0x10+(5*32)(%rsp), %r10
 movq 0x18+(6*32)(%rsp), %r11
 adcq 0x18+(5*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (8*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (8*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(8*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (8*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(8*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (8*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(8*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (12*32)(%rsp)
 movq %r9, 0x8+(12*32)(%rsp)
 movq %r10, 0x10+(12*32)(%rsp)
 movq %r11, 0x18+(12*32)(%rsp)
        movq (9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (4*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (4*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(4*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (4*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(4*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (4*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(4*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (9*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (9*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(9*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (9*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(9*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (9*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(9*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (13*32)(%rsp)
 movq %r9, 0x8+(13*32)(%rsp)
 movq %r10, 0x10+(13*32)(%rsp)
 movq %r11, 0x18+(13*32)(%rsp)



        addq $4, 14*32 +8(%rsp)
        cmpq $252, 14*32 +8(%rsp)
# WAS jc edwards25519_scalarmulbase_alt_scalarloop
	jc	.Ledwards25519_scalarmulbase_alt_scalarloop_local_target
# 971 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        movq (10*32)(%rsp), %r8
        movq (10*32)+8(%rsp), %r9
        movq (10*32)+16(%rsp), %r10
        movq (10*32)+24(%rsp), %r11
        movq $0xffffffffffffffda, %r12
        subq %r8, %r12
        movq $0xffffffffffffffff, %r13
        sbbq %r9, %r13
        movq $0xffffffffffffffff, %r14
        sbbq %r10, %r14
        movq $0xffffffffffffffff, %r15
        sbbq %r11, %r15
        movq 0 +24(%rsp), %rax
        btq $63, %rax
        cmovcq %r12, %r8
        cmovcq %r13, %r9
        cmovcq %r14, %r10
        cmovcq %r15, %r11
        movq %r8, (10*32)(%rsp)
        movq %r9, (10*32)+8(%rsp)
        movq %r10, (10*32)+16(%rsp)
        movq %r11, (10*32)+24(%rsp)





        leaq (13*32)(%rsp), %rdi
        leaq (12*32)(%rsp), %rsi
# 1009 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp edwards25519_scalarmulbase_alt_midloop
	jmp	.Ledwards25519_scalarmulbase_alt_midloop_local_target
.Ledwards25519_scalarmulbase_alt_inverseloop_local_target:
edwards25519_scalarmulbase_alt_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Ledwards25519_scalarmulbase_alt_midloop_local_target:
edwards25519_scalarmulbase_alt_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne edwards25519_scalarmulbase_alt_inverseloop
	jne	.Ledwards25519_scalarmulbase_alt_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)






        movq 14*32(%rsp), %rbp
        movq (10*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, (0*32)(%rbp)
 movq %r9, 0x8+(0*32)(%rbp)
 movq %r10, 0x10+(0*32)(%rbp)
 movq %r11, 0x18+(0*32)(%rbp)
        movq (11*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(11*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(11*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(11*32)(%rsp), %rax
 mulq (13*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(11*32)(%rsp), %rax
 mulq 0x8+(13*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq 0x10+(13*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq 0x18+(13*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, (1*32)(%rbp)
 movq %r9, 0x8+(1*32)(%rbp)
 movq %r10, 0x10+(1*32)(%rbp)
 movq %r11, 0x18+(1*32)(%rbp)



        addq $(15*32 +8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret
# 2387 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S"
.Ledwards25519_scalarmulbase_alt_0g_local_target:
edwards25519_scalarmulbase_alt_0g:

        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

        .quad 0x0000000000000001
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000
        .quad 0x0000000000000000

.Ledwards25519_scalarmulbase_alt_251g_local_target:
edwards25519_scalarmulbase_alt_251g:

        .quad 0x525f946d7c7220e7
        .quad 0x4636b0b2f1e35444
        .quad 0x796e9d70e892ae0f
        .quad 0x03dec05fa937adb1
        .quad 0x6d1c271cc6375515
        .quad 0x462588c4a4ca4f14
        .quad 0x691129fee55afc39
        .quad 0x15949f784d8472f5
        .quad 0xbd89e510afad0049
        .quad 0x4d1f08c073b9860e
        .quad 0x07716e8b2d00af9d
        .quad 0x70d685f68f859714




.Ledwards25519_scalarmulbase_alt_gtable_local_target:
edwards25519_scalarmulbase_alt_gtable:



        .quad 0x9d103905d740913e
        .quad 0xfd399f05d140beb3
        .quad 0xa5c18434688f8a09
        .quad 0x44fd2f9298f81267
        .quad 0x2fbc93c6f58c3b85
        .quad 0xcf932dc6fb8c0e19
        .quad 0x270b4898643d42c2
        .quad 0x07cf9d3a33d4ba65
        .quad 0xabc91205877aaa68
        .quad 0x26d9e823ccaac49e
        .quad 0x5a1b7dcbdd43598c
        .quad 0x6f117b689f0c65a8



        .quad 0x8a99a56042b4d5a8
        .quad 0x8f2b810c4e60acf6
        .quad 0xe09e236bb16e37aa
        .quad 0x6bb595a669c92555
        .quad 0x9224e7fc933c71d7
        .quad 0x9f469d967a0ff5b5
        .quad 0x5aa69a65e1d60702
        .quad 0x590c063fa87d2e2e
        .quad 0x43faa8b3a59b7a5f
        .quad 0x36c16bdd5d9acf78
        .quad 0x500fa0840b3d6a31
        .quad 0x701af5b13ea50b73



        .quad 0x56611fe8a4fcd265
        .quad 0x3bd353fde5c1ba7d
        .quad 0x8131f31a214bd6bd
        .quad 0x2ab91587555bda62
        .quad 0xaf25b0a84cee9730
        .quad 0x025a8430e8864b8a
        .quad 0xc11b50029f016732
        .quad 0x7a164e1b9a80f8f4
        .quad 0x14ae933f0dd0d889
        .quad 0x589423221c35da62
        .quad 0xd170e5458cf2db4c
        .quad 0x5a2826af12b9b4c6



        .quad 0x95fe050a056818bf
        .quad 0x327e89715660faa9
        .quad 0xc3e8e3cd06a05073
        .quad 0x27933f4c7445a49a
        .quad 0x287351b98efc099f
        .quad 0x6765c6f47dfd2538
        .quad 0xca348d3dfb0a9265
        .quad 0x680e910321e58727
        .quad 0x5a13fbe9c476ff09
        .quad 0x6e9e39457b5cc172
        .quad 0x5ddbdcf9102b4494
        .quad 0x7f9d0cbf63553e2b



        .quad 0x7f9182c3a447d6ba
        .quad 0xd50014d14b2729b7
        .quad 0xe33cf11cb864a087
        .quad 0x154a7e73eb1b55f3
        .quad 0xa212bc4408a5bb33
        .quad 0x8d5048c3c75eed02
        .quad 0xdd1beb0c5abfec44
        .quad 0x2945ccf146e206eb
        .quad 0xbcbbdbf1812a8285
        .quad 0x270e0807d0bdd1fc
        .quad 0xb41b670b1bbda72d
        .quad 0x43aabe696b3bb69a



        .quad 0x499806b67b7d8ca4
        .quad 0x575be28427d22739
        .quad 0xbb085ce7204553b9
        .quad 0x38b64c41ae417884
        .quad 0x3a0ceeeb77157131
        .quad 0x9b27158900c8af88
        .quad 0x8065b668da59a736
        .quad 0x51e57bb6a2cc38bd
        .quad 0x85ac326702ea4b71
        .quad 0xbe70e00341a1bb01
        .quad 0x53e4a24b083bc144
        .quad 0x10b8e91a9f0d61e3



        .quad 0xba6f2c9aaa3221b1
        .quad 0x6ca021533bba23a7
        .quad 0x9dea764f92192c3a
        .quad 0x1d6edd5d2e5317e0
        .quad 0x6b1a5cd0944ea3bf
        .quad 0x7470353ab39dc0d2
        .quad 0x71b2528228542e49
        .quad 0x461bea69283c927e
        .quad 0xf1836dc801b8b3a2
        .quad 0xb3035f47053ea49a
        .quad 0x529c41ba5877adf3
        .quad 0x7a9fbb1c6a0f90a7



        .quad 0xe2a75dedf39234d9
        .quad 0x963d7680e1b558f9
        .quad 0x2c2741ac6e3c23fb
        .quad 0x3a9024a1320e01c3
        .quad 0x59b7596604dd3e8f
        .quad 0x6cb30377e288702c
        .quad 0xb1339c665ed9c323
        .quad 0x0915e76061bce52f
        .quad 0xe7c1f5d9c9a2911a
        .quad 0xb8a371788bcca7d7
        .quad 0x636412190eb62a32
        .quad 0x26907c5c2ecc4e95



        .quad 0x7ec851ca553e2df3
        .quad 0xa71284cba64878b3
        .quad 0xe6b5e4193288d1e7
        .quad 0x4cf210ec5a9a8883
        .quad 0x322d04a52d9021f6
        .quad 0xb9c19f3375c6bf9c
        .quad 0x587a3a4342d20b09
        .quad 0x143b1cf8aa64fe61
        .quad 0x9f867c7d968acaab
        .quad 0x5f54258e27092729
        .quad 0xd0a7d34bea180975
        .quad 0x21b546a3374126e1



        .quad 0xa94ff858a2888343
        .quad 0xce0ed4565313ed3c
        .quad 0xf55c3dcfb5bf34fa
        .quad 0x0a653ca5c9eab371
        .quad 0x490a7a45d185218f
        .quad 0x9a15377846049335
        .quad 0x0060ea09cc31e1f6
        .quad 0x7e041577f86ee965
        .quad 0x66b2a496ce5b67f3
        .quad 0xff5492d8bd569796
        .quad 0x503cec294a592cd0
        .quad 0x566943650813acb2



        .quad 0xb818db0c26620798
        .quad 0x5d5c31d9606e354a
        .quad 0x0982fa4f00a8cdc7
        .quad 0x17e12bcd4653e2d4
        .quad 0x5672f9eb1dabb69d
        .quad 0xba70b535afe853fc
        .quad 0x47ac0f752796d66d
        .quad 0x32a5351794117275
        .quad 0xd3a644a6df648437
        .quad 0x703b6559880fbfdd
        .quad 0xcb852540ad3a1aa5
        .quad 0x0900b3f78e4c6468



        .quad 0x0a851b9f679d651b
        .quad 0xe108cb61033342f2
        .quad 0xd601f57fe88b30a3
        .quad 0x371f3acaed2dd714
        .quad 0xed280fbec816ad31
        .quad 0x52d9595bd8e6efe3
        .quad 0x0fe71772f6c623f5
        .quad 0x4314030b051e293c
        .quad 0xd560005efbf0bcad
        .quad 0x8eb70f2ed1870c5e
        .quad 0x201f9033d084e6a0
        .quad 0x4c3a5ae1ce7b6670



        .quad 0x4138a434dcb8fa95
        .quad 0x870cf67d6c96840b
        .quad 0xde388574297be82c
        .quad 0x7c814db27262a55a
        .quad 0xbaf875e4c93da0dd
        .quad 0xb93282a771b9294d
        .quad 0x80d63fb7f4c6c460
        .quad 0x6de9c73dea66c181
        .quad 0x478904d5a04df8f2
        .quad 0xfafbae4ab10142d3
        .quad 0xf6c8ac63555d0998
        .quad 0x5aac4a412f90b104



        .quad 0xc64f326b3ac92908
        .quad 0x5551b282e663e1e0
        .quad 0x476b35f54a1a4b83
        .quad 0x1b9da3fe189f68c2
        .quad 0x603a0d0abd7f5134
        .quad 0x8089c932e1d3ae46
        .quad 0xdf2591398798bd63
        .quad 0x1c145cd274ba0235
        .quad 0x32e8386475f3d743
        .quad 0x365b8baf6ae5d9ef
        .quad 0x825238b6385b681e
        .quad 0x234929c1167d65e1



        .quad 0x984decaba077ade8
        .quad 0x383f77ad19eb389d
        .quad 0xc7ec6b7e2954d794
        .quad 0x59c77b3aeb7c3a7a
        .quad 0x48145cc21d099fcf
        .quad 0x4535c192cc28d7e5
        .quad 0x80e7c1e548247e01
        .quad 0x4a5f28743b2973ee
        .quad 0xd3add725225ccf62
        .quad 0x911a3381b2152c5d
        .quad 0xd8b39fad5b08f87d
        .quad 0x6f05606b4799fe3b



        .quad 0x9ffe9e92177ba962
        .quad 0x98aee71d0de5cae1
        .quad 0x3ff4ae942d831044
        .quad 0x714de12e58533ac8
        .quad 0x5b433149f91b6483
        .quad 0xadb5dc655a2cbf62
        .quad 0x87fa8412632827b3
        .quad 0x60895e91ab49f8d8
        .quad 0xe9ecf2ed0cf86c18
        .quad 0xb46d06120735dfd4
        .quad 0xbc9da09804b96be7
        .quad 0x73e2e62fd96dc26b



        .quad 0xed5b635449aa515e
        .quad 0xa865c49f0bc6823a
        .quad 0x850c1fe95b42d1c4
        .quad 0x30d76d6f03d315b9
        .quad 0x2eccdd0e632f9c1d
        .quad 0x51d0b69676893115
        .quad 0x52dfb76ba8637a58
        .quad 0x6dd37d49a00eef39
        .quad 0x6c4444172106e4c7
        .quad 0xfb53d680928d7f69
        .quad 0xb4739ea4694d3f26
        .quad 0x10c697112e864bb0



        .quad 0x6493c4277dbe5fde
        .quad 0x265d4fad19ad7ea2
        .quad 0x0e00dfc846304590
        .quad 0x25e61cabed66fe09
        .quad 0x0ca62aa08358c805
        .quad 0x6a3d4ae37a204247
        .quad 0x7464d3a63b11eddc
        .quad 0x03bf9baf550806ef
        .quad 0x3f13e128cc586604
        .quad 0x6f5873ecb459747e
        .quad 0xa0b63dedcc1268f5
        .quad 0x566d78634586e22c



        .quad 0x1637a49f9cc10834
        .quad 0xbc8e56d5a89bc451
        .quad 0x1cb5ec0f7f7fd2db
        .quad 0x33975bca5ecc35d9
        .quad 0xa1054285c65a2fd0
        .quad 0x6c64112af31667c3
        .quad 0x680ae240731aee58
        .quad 0x14fba5f34793b22a
        .quad 0x3cd746166985f7d4
        .quad 0x593e5e84c9c80057
        .quad 0x2fc3f2b67b61131e
        .quad 0x14829cea83fc526c



        .quad 0xff437b8497dd95c2
        .quad 0x6c744e30aa4eb5a7
        .quad 0x9e0c5d613c85e88b
        .quad 0x2fd9c71e5f758173
        .quad 0x21e70b2f4e71ecb8
        .quad 0xe656ddb940a477e3
        .quad 0xbf6556cece1d4f80
        .quad 0x05fc3bc4535d7b7e
        .quad 0x24b8b3ae52afdedd
        .quad 0x3495638ced3b30cf
        .quad 0x33a4bc83a9be8195
        .quad 0x373767475c651f04



        .quad 0x2fba99fd40d1add9
        .quad 0xb307166f96f4d027
        .quad 0x4363f05215f03bae
        .quad 0x1fbea56c3b18f999
        .quad 0x634095cb14246590
        .quad 0xef12144016c15535
        .quad 0x9e38140c8910bc60
        .quad 0x6bf5905730907c8c
        .quad 0x0fa778f1e1415b8a
        .quad 0x06409ff7bac3a77e
        .quad 0x6f52d7b89aa29a50
        .quad 0x02521cf67a635a56



        .quad 0x513fee0b0a9d5294
        .quad 0x8f98e75c0fdf5a66
        .quad 0xd4618688bfe107ce
        .quad 0x3fa00a7e71382ced
        .quad 0xb1146720772f5ee4
        .quad 0xe8f894b196079ace
        .quad 0x4af8224d00ac824a
        .quad 0x001753d9f7cd6cc4
        .quad 0x3c69232d963ddb34
        .quad 0x1dde87dab4973858
        .quad 0xaad7d1f9a091f285
        .quad 0x12b5fe2fa048edb6



        .quad 0x71f0fbc496fce34d
        .quad 0x73b9826badf35bed
        .quad 0xd2047261ff28c561
        .quad 0x749b76f96fb1206f
        .quad 0xdf2b7c26ad6f1e92
        .quad 0x4b66d323504b8913
        .quad 0x8c409dc0751c8bc3
        .quad 0x6f7e93c20796c7b8
        .quad 0x1f5af604aea6ae05
        .quad 0xc12351f1bee49c99
        .quad 0x61a808b5eeff6b66
        .quad 0x0fcec10f01e02151



        .quad 0x644d58a649fe1e44
        .quad 0x21fcaea231ad777e
        .quad 0x02441c5a887fd0d2
        .quad 0x4901aa7183c511f3
        .quad 0x3df2d29dc4244e45
        .quad 0x2b020e7493d8de0a
        .quad 0x6cc8067e820c214d
        .quad 0x413779166feab90a
        .quad 0x08b1b7548c1af8f0
        .quad 0xce0f7a7c246299b4
        .quad 0xf760b0f91e06d939
        .quad 0x41bb887b726d1213



        .quad 0x9267806c567c49d8
        .quad 0x066d04ccca791e6a
        .quad 0xa69f5645e3cc394b
        .quad 0x5c95b686a0788cd2
        .quad 0x97d980e0aa39f7d2
        .quad 0x35d0384252c6b51c
        .quad 0x7d43f49307cd55aa
        .quad 0x56bd36cfb78ac362
        .quad 0x2ac519c10d14a954
        .quad 0xeaf474b494b5fa90
        .quad 0xe6af8382a9f87a5a
        .quad 0x0dea6db1879be094



        .quad 0xaa66bf547344e5ab
        .quad 0xda1258888f1b4309
        .quad 0x5e87d2b3fd564b2f
        .quad 0x5b2c78885483b1dd
        .quad 0x15baeb74d6a8797a
        .quad 0x7ef55cf1fac41732
        .quad 0x29001f5a3c8b05c5
        .quad 0x0ad7cc8752eaccfb
        .quad 0x52151362793408cf
        .quad 0xeb0f170319963d94
        .quad 0xa833b2fa883d9466
        .quad 0x093a7fa775003c78



        .quad 0xe5107de63a16d7be
        .quad 0xa377ffdc9af332cf
        .quad 0x70d5bf18440b677f
        .quad 0x6a252b19a4a31403
        .quad 0xb8e9604460a91286
        .quad 0x7f3fd8047778d3de
        .quad 0x67d01e31bf8a5e2d
        .quad 0x7b038a06c27b653e
        .quad 0x9ed919d5d36990f3
        .quad 0x5213aebbdb4eb9f2
        .quad 0xc708ea054cb99135
        .quad 0x58ded57f72260e56



        .quad 0x78e79dade9413d77
        .quad 0xf257f9d59729e67d
        .quad 0x59db910ee37aa7e6
        .quad 0x6aa11b5bbb9e039c
        .quad 0xda6d53265b0fd48b
        .quad 0x8960823193bfa988
        .quad 0xd78ac93261d57e28
        .quad 0x79f2942d3a5c8143
        .quad 0x97da2f25b6c88de9
        .quad 0x251ba7eaacf20169
        .quad 0x09b44f87ef4eb4e4
        .quad 0x7d90ab1bbc6a7da5



        .quad 0x9acca683a7016bfe
        .quad 0x90505f4df2c50b6d
        .quad 0x6b610d5fcce435aa
        .quad 0x19a10d446198ff96
        .quad 0x1a07a3f496b3c397
        .quad 0x11ceaa188f4e2532
        .quad 0x7d9498d5a7751bf0
        .quad 0x19ed161f508dd8a0
        .quad 0x560a2cd687dce6ca
        .quad 0x7f3568c48664cf4d
        .quad 0x8741e95222803a38
        .quad 0x483bdab1595653fc



        .quad 0xfa780f148734fa49
        .quad 0x106f0b70360534e0
        .quad 0x2210776fe3e307bd
        .quad 0x3286c109dde6a0fe
        .quad 0xd6cf4d0ab4da80f6
        .quad 0x82483e45f8307fe0
        .quad 0x05005269ae6f9da4
        .quad 0x1c7052909cf7877a
        .quad 0x32ee7de2874e98d4
        .quad 0x14c362e9b97e0c60
        .quad 0x5781dcde6a60a38a
        .quad 0x217dd5eaaa7aa840



        .quad 0x9db7c4d0248e1eb0
        .quad 0xe07697e14d74bf52
        .quad 0x1e6a9b173c562354
        .quad 0x7fa7c21f795a4965
        .quad 0x8bdf1fb9be8c0ec8
        .quad 0x00bae7f8e30a0282
        .quad 0x4963991dad6c4f6c
        .quad 0x07058a6e5df6f60a
        .quad 0xe9eb02c4db31f67f
        .quad 0xed25fd8910bcfb2b
        .quad 0x46c8131f5c5cddb4
        .quad 0x33b21c13a0cb9bce



        .quad 0x360692f8087d8e31
        .quad 0xf4dcc637d27163f7
        .quad 0x25a4e62065ea5963
        .quad 0x659bf72e5ac160d9
        .quad 0x9aafb9b05ee38c5b
        .quad 0xbf9d2d4e071a13c7
        .quad 0x8eee6e6de933290a
        .quad 0x1c3bab17ae109717
        .quad 0x1c9ab216c7cab7b0
        .quad 0x7d65d37407bbc3cc
        .quad 0x52744750504a58d5
        .quad 0x09f2606b131a2990



        .quad 0x40e87d44744346be
        .quad 0x1d48dad415b52b25
        .quad 0x7c3a8a18a13b603e
        .quad 0x4eb728c12fcdbdf7
        .quad 0x7e234c597c6691ae
        .quad 0x64889d3d0a85b4c8
        .quad 0xdae2c90c354afae7
        .quad 0x0a871e070c6a9e1d
        .quad 0x3301b5994bbc8989
        .quad 0x736bae3a5bdd4260
        .quad 0x0d61ade219d59e3c
        .quad 0x3ee7300f2685d464



        .quad 0xf5d255e49e7dd6b7
        .quad 0x8016115c610b1eac
        .quad 0x3c99975d92e187ca
        .quad 0x13815762979125c2
        .quad 0x43fa7947841e7518
        .quad 0xe5c6fa59639c46d7
        .quad 0xa1065e1de3052b74
        .quad 0x7d47c6a2cfb89030
        .quad 0x3fdad0148ef0d6e0
        .quad 0x9d3e749a91546f3c
        .quad 0x71ec621026bb8157
        .quad 0x148cf58d34c9ec80



        .quad 0x46a492f67934f027
        .quad 0x469984bef6840aa9
        .quad 0x5ca1bc2a89611854
        .quad 0x3ff2fa1ebd5dbbd4
        .quad 0xe2572f7d9ae4756d
        .quad 0x56c345bb88f3487f
        .quad 0x9fd10b6d6960a88d
        .quad 0x278febad4eaea1b9
        .quad 0xb1aa681f8c933966
        .quad 0x8c21949c20290c98
        .quad 0x39115291219d3c52
        .quad 0x4104dd02fe9c677b



        .quad 0x72b2bf5e1124422a
        .quad 0xa1fa0c3398a33ab5
        .quad 0x94cb6101fa52b666
        .quad 0x2c863b00afaf53d5
        .quad 0x81214e06db096ab8
        .quad 0x21a8b6c90ce44f35
        .quad 0x6524c12a409e2af5
        .quad 0x0165b5a48efca481
        .quad 0xf190a474a0846a76
        .quad 0x12eff984cd2f7cc0
        .quad 0x695e290658aa2b8f
        .quad 0x591b67d9bffec8b8



        .quad 0x312f0d1c80b49bfa
        .quad 0x5979515eabf3ec8a
        .quad 0x727033c09ef01c88
        .quad 0x3de02ec7ca8f7bcb
        .quad 0x99b9b3719f18b55d
        .quad 0xe465e5faa18c641e
        .quad 0x61081136c29f05ed
        .quad 0x489b4f867030128b
        .quad 0xd232102d3aeb92ef
        .quad 0xe16253b46116a861
        .quad 0x3d7eabe7190baa24
        .quad 0x49f5fbba496cbebf



        .quad 0x30949a108a5bcfd4
        .quad 0xdc40dd70bc6473eb
        .quad 0x92c294c1307c0d1c
        .quad 0x5604a86dcbfa6e74
        .quad 0x155d628c1e9c572e
        .quad 0x8a4d86acc5884741
        .quad 0x91a352f6515763eb
        .quad 0x06a1a6c28867515b
        .quad 0x7288d1d47c1764b6
        .quad 0x72541140e0418b51
        .quad 0x9f031a6018acf6d1
        .quad 0x20989e89fe2742c6



        .quad 0x499777fd3a2dcc7f
        .quad 0x32857c2ca54fd892
        .quad 0xa279d864d207e3a0
        .quad 0x0403ed1d0ca67e29
        .quad 0x1674278b85eaec2e
        .quad 0x5621dc077acb2bdf
        .quad 0x640a4c1661cbf45a
        .quad 0x730b9950f70595d3
        .quad 0xc94b2d35874ec552
        .quad 0xc5e6c8cf98246f8d
        .quad 0xf7cb46fa16c035ce
        .quad 0x5bd7454308303dcc



        .quad 0x7f9ad19528b24cc2
        .quad 0x7f6b54656335c181
        .quad 0x66b8b66e4fc07236
        .quad 0x133a78007380ad83
        .quad 0x85c4932115e7792a
        .quad 0xc64c89a2bdcdddc9
        .quad 0x9d1e3da8ada3d762
        .quad 0x5bb7db123067f82c
        .quad 0x0961f467c6ca62be
        .quad 0x04ec21d6211952ee
        .quad 0x182360779bd54770
        .quad 0x740dca6d58f0e0d2



        .quad 0x50b70bf5d3f0af0b
        .quad 0x4feaf48ae32e71f7
        .quad 0x60e84ed3a55bbd34
        .quad 0x00ed489b3f50d1ed
        .quad 0x3906c72aed261ae5
        .quad 0x9ab68fd988e100f7
        .quad 0xf5e9059af3360197
        .quad 0x0e53dc78bf2b6d47
        .quad 0xb90829bf7971877a
        .quad 0x5e4444636d17e631
        .quad 0x4d05c52e18276893
        .quad 0x27632d9a5a4a4af5



        .quad 0xd11ff05154b260ce
        .quad 0xd86dc38e72f95270
        .quad 0x601fcd0d267cc138
        .quad 0x2b67916429e90ccd
        .quad 0xa98285d187eaffdb
        .quad 0xa5b4fbbbd8d0a864
        .quad 0xb658f27f022663f7
        .quad 0x3bbc2b22d99ce282
        .quad 0xb917c952583c0a58
        .quad 0x653ff9b80fe4c6f3
        .quad 0x9b0da7d7bcdf3c0c
        .quad 0x43a0eeb6ab54d60e



        .quad 0x396966a46d4a5487
        .quad 0xf811a18aac2bb3ba
        .quad 0x66e4685b5628b26b
        .quad 0x70a477029d929b92
        .quad 0x3ac6322357875fe8
        .quad 0xd9d4f4ecf5fbcb8f
        .quad 0x8dee8493382bb620
        .quad 0x50c5eaa14c799fdc
        .quad 0xdd0edc8bd6f2fb3c
        .quad 0x54c63aa79cc7b7a0
        .quad 0xae0b032b2c8d9f1a
        .quad 0x6f9ce107602967fb



        .quad 0xad1054b1cde1c22a
        .quad 0xc4a8e90248eb32df
        .quad 0x5f3e7b33accdc0ea
        .quad 0x72364713fc79963e
        .quad 0x139693063520e0b5
        .quad 0x437fcf7c88ea03fe
        .quad 0xf7d4c40bd3c959bc
        .quad 0x699154d1f893ded9
        .quad 0x315d5c75b4b27526
        .quad 0xcccb842d0236daa5
        .quad 0x22f0c8a3345fee8e
        .quad 0x73975a617d39dbed



        .quad 0xe4024df96375da10
        .quad 0x78d3251a1830c870
        .quad 0x902b1948658cd91c
        .quad 0x7e18b10b29b7438a
        .quad 0x6f37f392f4433e46
        .quad 0x0e19b9a11f566b18
        .quad 0x220fb78a1fd1d662
        .quad 0x362a4258a381c94d
        .quad 0x9071d9132b6beb2f
        .quad 0x0f26e9ad28418247
        .quad 0xeab91ec9bdec925d
        .quad 0x4be65bc8f48af2de



        .quad 0x78487feba36e7028
        .quad 0x5f3f13001dd8ce34
        .quad 0x934fb12d4b30c489
        .quad 0x056c244d397f0a2b
        .quad 0x1d50fba257c26234
        .quad 0x7bd4823adeb0678b
        .quad 0xc2b0dc6ea6538af5
        .quad 0x5665eec6351da73e
        .quad 0xdb3ee00943bfb210
        .quad 0x4972018720800ac2
        .quad 0x26ab5d6173bd8667
        .quad 0x20b209c2ab204938



        .quad 0x549e342ac07fb34b
        .quad 0x02d8220821373d93
        .quad 0xbc262d70acd1f567
        .quad 0x7a92c9fdfbcac784
        .quad 0x1fcca94516bd3289
        .quad 0x448d65aa41420428
        .quad 0x59c3b7b216a55d62
        .quad 0x49992cc64e612cd8
        .quad 0x65bd1bea70f801de
        .quad 0x1befb7c0fe49e28a
        .quad 0xa86306cdb1b2ae4a
        .quad 0x3b7ac0cd265c2a09



        .quad 0x822bee438c01bcec
        .quad 0x530cb525c0fbc73b
        .quad 0x48519034c1953fe9
        .quad 0x265cc261e09a0f5b
        .quad 0xf0d54e4f22ed39a7
        .quad 0xa2aae91e5608150a
        .quad 0xf421b2e9eddae875
        .quad 0x31bc531d6b7de992
        .quad 0xdf3d134da980f971
        .quad 0x7a4fb8d1221a22a7
        .quad 0x3df7d42035aad6d8
        .quad 0x2a14edcc6a1a125e



        .quad 0xdf48ee0752cfce4e
        .quad 0xc3fffaf306ec08b7
        .quad 0x05710b2ab95459c4
        .quad 0x161d25fa963ea38d
        .quad 0x231a8c570478433c
        .quad 0xb7b5270ec281439d
        .quad 0xdbaa99eae3d9079f
        .quad 0x2c03f5256c2b03d9
        .quad 0x790f18757b53a47d
        .quad 0x307b0130cf0c5879
        .quad 0x31903d77257ef7f9
        .quad 0x699468bdbd96bbaf



        .quad 0xbd1f2f46f4dafecf
        .quad 0x7cef0114a47fd6f7
        .quad 0xd31ffdda4a47b37f
        .quad 0x525219a473905785
        .quad 0xd8dd3de66aa91948
        .quad 0x485064c22fc0d2cc
        .quad 0x9b48246634fdea2f
        .quad 0x293e1c4e6c4a2e3a
        .quad 0x376e134b925112e1
        .quad 0x703778b5dca15da0
        .quad 0xb04589af461c3111
        .quad 0x5b605c447f032823



        .quad 0xb965805920c47c89
        .quad 0xe7f0100c923b8fcc
        .quad 0x0001256502e2ef77
        .quad 0x24a76dcea8aeb3ee
        .quad 0x3be9fec6f0e7f04c
        .quad 0x866a579e75e34962
        .quad 0x5542ef161e1de61a
        .quad 0x2f12fef4cc5abdd5
        .quad 0x0a4522b2dfc0c740
        .quad 0x10d06e7f40c9a407
        .quad 0xc6cf144178cff668
        .quad 0x5e607b2518a43790



        .quad 0x58b31d8f6cdf1818
        .quad 0x35cfa74fc36258a2
        .quad 0xe1b3ff4f66e61d6e
        .quad 0x5067acab6ccdd5f7
        .quad 0xa02c431ca596cf14
        .quad 0xe3c42d40aed3e400
        .quad 0xd24526802e0f26db
        .quad 0x201f33139e457068
        .quad 0xfd527f6b08039d51
        .quad 0x18b14964017c0006
        .quad 0xd5220eb02e25a4a8
        .quad 0x397cba8862460375



        .quad 0x30c13093f05959b2
        .quad 0xe23aa18de9a97976
        .quad 0x222fd491721d5e26
        .quad 0x2339d320766e6c3a
        .quad 0x7815c3fbc81379e7
        .quad 0xa6619420dde12af1
        .quad 0xffa9c0f885a8fdd5
        .quad 0x771b4022c1e1c252
        .quad 0xd87dd986513a2fa7
        .quad 0xf5ac9b71f9d4cf08
        .quad 0xd06bc31b1ea283b3
        .quad 0x331a189219971a76



        .quad 0xf5166f45fb4f80c6
        .quad 0x9c36c7de61c775cf
        .quad 0xe3d4e81b9041d91c
        .quad 0x31167c6b83bdfe21
        .quad 0x26512f3a9d7572af
        .quad 0x5bcbe28868074a9e
        .quad 0x84edc1c11180f7c4
        .quad 0x1ac9619ff649a67b
        .quad 0xf22b3842524b1068
        .quad 0x5068343bee9ce987
        .quad 0xfc9d71844a6250c8
        .quad 0x612436341f08b111



        .quad 0xd99d41db874e898d
        .quad 0x09fea5f16c07dc20
        .quad 0x793d2c67d00f9bbc
        .quad 0x46ebe2309e5eff40
        .quad 0x8b6349e31a2d2638
        .quad 0x9ddfb7009bd3fd35
        .quad 0x7f8bf1b8a3a06ba4
        .quad 0x1522aa3178d90445
        .quad 0x2c382f5369614938
        .quad 0xdafe409ab72d6d10
        .quad 0xe8c83391b646f227
        .quad 0x45fe70f50524306c



        .quad 0xda4875a6960c0b8c
        .quad 0x5b68d076ef0e2f20
        .quad 0x07fb51cf3d0b8fd4
        .quad 0x428d1623a0e392d4
        .quad 0x62f24920c8951491
        .quad 0x05f007c83f630ca2
        .quad 0x6fbb45d2f5c9d4b8
        .quad 0x16619f6db57a2245
        .quad 0x084f4a4401a308fd
        .quad 0xa82219c376a5caac
        .quad 0xdeb8de4643d1bc7d
        .quad 0x1d81592d60bd38c6



        .quad 0xd833d7beec2a4c38
        .quad 0x2c9162830acc20ed
        .quad 0xe93a47aa92df7581
        .quad 0x702d67a3333c4a81
        .quad 0x3a4a369a2f89c8a1
        .quad 0x63137a1d7c8de80d
        .quad 0xbcac008a78eda015
        .quad 0x2cb8b3a5b483b03f
        .quad 0x36e417cbcb1b90a1
        .quad 0x33b3ddaa7f11794e
        .quad 0x3f510808885bc607
        .quad 0x24141dc0e6a8020d



        .quad 0x59f73c773fefee9d
        .quad 0xb3f1ef89c1cf989d
        .quad 0xe35dfb42e02e545f
        .quad 0x5766120b47a1b47c
        .quad 0x91925dccbd83157d
        .quad 0x3ca1205322cc8094
        .quad 0x28e57f183f90d6e4
        .quad 0x1a4714cede2e767b
        .quad 0xdb20ba0fb8b6b7ff
        .quad 0xb732c3b677511fa1
        .quad 0xa92b51c099f02d89
        .quad 0x4f3875ad489ca5f1



        .quad 0xc7fc762f4932ab22
        .quad 0x7ac0edf72f4c3c1b
        .quad 0x5f6b55aa9aa895e8
        .quad 0x3680274dad0a0081
        .quad 0x79ed13f6ee73eec0
        .quad 0xa5c6526d69110bb1
        .quad 0xe48928c38603860c
        .quad 0x722a1446fd7059f5
        .quad 0xd0959fe9a8cf8819
        .quad 0xd0a995508475a99c
        .quad 0x6eac173320b09cc5
        .quad 0x628ecf04331b1095



        .quad 0x98bcb118a9d0ddbc
        .quad 0xee449e3408b4802b
        .quad 0x87089226b8a6b104
        .quad 0x685f349a45c7915d
        .quad 0x9b41acf85c74ccf1
        .quad 0xb673318108265251
        .quad 0x99c92aed11adb147
        .quad 0x7a47d70d34ecb40f
        .quad 0x60a0c4cbcc43a4f5
        .quad 0x775c66ca3677bea9
        .quad 0xa17aa1752ff8f5ed
        .quad 0x11ded9020e01fdc0



        .quad 0x890e7809caefe704
        .quad 0x8728296de30e8c6c
        .quad 0x4c5cd2a392aeb1c9
        .quad 0x194263d15771531f
        .quad 0x471f95b03bea93b7
        .quad 0x0552d7d43313abd3
        .quad 0xbd9370e2e17e3f7b
        .quad 0x7b120f1db20e5bec
        .quad 0x17d2fb3d86502d7a
        .quad 0xb564d84450a69352
        .quad 0x7da962c8a60ed75d
        .quad 0x00d0f85b318736aa



        .quad 0x978b142e777c84fd
        .quad 0xf402644705a8c062
        .quad 0xa67ad51be7e612c7
        .quad 0x2f7b459698dd6a33
        .quad 0xa6753c1efd7621c1
        .quad 0x69c0b4a7445671f5
        .quad 0x971f527405b23c11
        .quad 0x387bc74851a8c7cd
        .quad 0x81894b4d4a52a9a8
        .quad 0xadd93e12f6b8832f
        .quad 0x184d8548b61bd638
        .quad 0x3f1c62dbd6c9f6cd



        .quad 0x2e8f1f0091910c1f
        .quad 0xa4df4fe0bff2e12c
        .quad 0x60c6560aee927438
        .quad 0x6338283facefc8fa
        .quad 0x3fad3e40148f693d
        .quad 0x052656e194eb9a72
        .quad 0x2f4dcbfd184f4e2f
        .quad 0x406f8db1c482e18b
        .quad 0x9e630d2c7f191ee4
        .quad 0x4fbf8301bc3ff670
        .quad 0x787d8e4e7afb73c4
        .quad 0x50d83d5be8f58fa5



        .quad 0x85683916c11a1897
        .quad 0x2d69a4efe506d008
        .quad 0x39af1378f664bd01
        .quad 0x65942131361517c6
        .quad 0xc0accf90b4d3b66d
        .quad 0xa7059de561732e60
        .quad 0x033d1f7870c6b0ba
        .quad 0x584161cd26d946e4
        .quad 0xbbf2b1a072d27ca2
        .quad 0xbf393c59fbdec704
        .quad 0xe98dbbcee262b81e
        .quad 0x02eebd0b3029b589



        .quad 0x61368756a60dac5f
        .quad 0x17e02f6aebabdc57
        .quad 0x7f193f2d4cce0f7d
        .quad 0x20234a7789ecdcf0
        .quad 0x8765b69f7b85c5e8
        .quad 0x6ff0678bd168bab2
        .quad 0x3a70e77c1d330f9b
        .quad 0x3a5f6d51b0af8e7c
        .quad 0x76d20db67178b252
        .quad 0x071c34f9d51ed160
        .quad 0xf62a4a20b3e41170
        .quad 0x7cd682353cffe366



        .quad 0x0be1a45bd887fab6
        .quad 0x2a846a32ba403b6e
        .quad 0xd9921012e96e6000
        .quad 0x2838c8863bdc0943
        .quad 0xa665cd6068acf4f3
        .quad 0x42d92d183cd7e3d3
        .quad 0x5759389d336025d9
        .quad 0x3ef0253b2b2cd8ff
        .quad 0xd16bb0cf4a465030
        .quad 0xfa496b4115c577ab
        .quad 0x82cfae8af4ab419d
        .quad 0x21dcb8a606a82812



        .quad 0x5c6004468c9d9fc8
        .quad 0x2540096ed42aa3cb
        .quad 0x125b4d4c12ee2f9c
        .quad 0x0bc3d08194a31dab
        .quad 0x9a8d00fabe7731ba
        .quad 0x8203607e629e1889
        .quad 0xb2cc023743f3d97f
        .quad 0x5d840dbf6c6f678b
        .quad 0x706e380d309fe18b
        .quad 0x6eb02da6b9e165c7
        .quad 0x57bbba997dae20ab
        .quad 0x3a4276232ac196dd



        .quad 0x4b42432c8a7084fa
        .quad 0x898a19e3dfb9e545
        .quad 0xbe9f00219c58e45d
        .quad 0x1ff177cea16debd1
        .quad 0x3bf8c172db447ecb
        .quad 0x5fcfc41fc6282dbd
        .quad 0x80acffc075aa15fe
        .quad 0x0770c9e824e1a9f9
        .quad 0xcf61d99a45b5b5fd
        .quad 0x860984e91b3a7924
        .quad 0xe7300919303e3e89
        .quad 0x39f264fd41500b1e



        .quad 0xa7ad3417dbe7e29c
        .quad 0xbd94376a2b9c139c
        .quad 0xa0e91b8e93597ba9
        .quad 0x1712d73468889840
        .quad 0xd19b4aabfe097be1
        .quad 0xa46dfce1dfe01929
        .quad 0xc3c908942ca6f1ff
        .quad 0x65c621272c35f14e
        .quad 0xe72b89f8ce3193dd
        .quad 0x4d103356a125c0bb
        .quad 0x0419a93d2e1cfe83
        .quad 0x22f9800ab19ce272



        .quad 0x605a368a3e9ef8cb
        .quad 0xe3e9c022a5504715
        .quad 0x553d48b05f24248f
        .quad 0x13f416cd647626e5
        .quad 0x42029fdd9a6efdac
        .quad 0xb912cebe34a54941
        .quad 0x640f64b987bdf37b
        .quad 0x4171a4d38598cab4
        .quad 0xfa2758aa99c94c8c
        .quad 0x23006f6fb000b807
        .quad 0xfbd291ddadda5392
        .quad 0x508214fa574bd1ab



        .quad 0xc20269153ed6fe4b
        .quad 0xa65a6739511d77c4
        .quad 0xcbde26462c14af94
        .quad 0x22f960ec6faba74b
        .quad 0x461a15bb53d003d6
        .quad 0xb2102888bcf3c965
        .quad 0x27c576756c683a5a
        .quad 0x3a7758a4c86cb447
        .quad 0x548111f693ae5076
        .quad 0x1dae21df1dfd54a6
        .quad 0x12248c90f3115e65
        .quad 0x5d9fd15f8de7f494



        .quad 0x031408d36d63727f
        .quad 0x6a379aefd7c7b533
        .quad 0xa9e18fc5ccaee24b
        .quad 0x332f35914f8fbed3
        .quad 0x3f244d2aeed7521e
        .quad 0x8e3a9028432e9615
        .quad 0xe164ba772e9c16d4
        .quad 0x3bc187fa47eb98d8
        .quad 0x6d470115ea86c20c
        .quad 0x998ab7cb6c46d125
        .quad 0xd77832b53a660188
        .quad 0x450d81ce906fba03



        .quad 0xf8ae4d2ad8453902
        .quad 0x7018058ee8db2d1d
        .quad 0xaab3995fc7d2c11e
        .quad 0x53b16d2324ccca79
        .quad 0x23264d66b2cae0b5
        .quad 0x7dbaed33ebca6576
        .quad 0x030ebed6f0d24ac8
        .quad 0x2a887f78f7635510
        .quad 0x2a23b9e75c012d4f
        .quad 0x0c974651cae1f2ea
        .quad 0x2fb63273675d70ca
        .quad 0x0ba7250b864403f5



        .quad 0xbb0d18fd029c6421
        .quad 0xbc2d142189298f02
        .quad 0x8347f8e68b250e96
        .quad 0x7b9f2fe8032d71c9
        .quad 0xdd63589386f86d9c
        .quad 0x61699176e13a85a4
        .quad 0x2e5111954eaa7d57
        .quad 0x32c21b57fb60bdfb
        .quad 0xd87823cd319e0780
        .quad 0xefc4cfc1897775c5
        .quad 0x4854fb129a0ab3f7
        .quad 0x12c49d417238c371



        .quad 0x0950b533ffe83769
        .quad 0x21861c1d8e1d6bd1
        .quad 0xf022d8381302e510
        .quad 0x2509200c6391cab4
        .quad 0x09b3a01783799542
        .quad 0x626dd08faad5ee3f
        .quad 0xba00bceeeb70149f
        .quad 0x1421b246a0a444c9
        .quad 0x4aa43a8e8c24a7c7
        .quad 0x04c1f540d8f05ef5
        .quad 0xadba5e0c0b3eb9dc
        .quad 0x2ab5504448a49ce3



        .quad 0x2ed227266f0f5dec
        .quad 0x9824ee415ed50824
        .quad 0x807bec7c9468d415
        .quad 0x7093bae1b521e23f
        .quad 0xdc07ac631c5d3afa
        .quad 0x58615171f9df8c6c
        .quad 0x72a079d89d73e2b0
        .quad 0x7301f4ceb4eae15d
        .quad 0x6409e759d6722c41
        .quad 0xa674e1cf72bf729b
        .quad 0xbc0a24eb3c21e569
        .quad 0x390167d24ebacb23



        .quad 0x27f58e3bba353f1c
        .quad 0x4c47764dbf6a4361
        .quad 0xafbbc4e56e562650
        .quad 0x07db2ee6aae1a45d
        .quad 0xd7bb054ba2f2120b
        .quad 0xe2b9ceaeb10589b7
        .quad 0x3fe8bac8f3c0edbe
        .quad 0x4cbd40767112cb69
        .quad 0x0b603cc029c58176
        .quad 0x5988e3825cb15d61
        .quad 0x2bb61413dcf0ad8d
        .quad 0x7b8eec6c74183287



        .quad 0xe4ca40782cd27cb0
        .quad 0xdaf9c323fbe967bd
        .quad 0xb29bd34a8ad41e9e
        .quad 0x72810497626ede4d
        .quad 0x32fee570fc386b73
        .quad 0xda8b0141da3a8cc7
        .quad 0x975ffd0ac8968359
        .quad 0x6ee809a1b132a855
        .quad 0x9444bb31fcfd863a
        .quad 0x2fe3690a3e4e48c5
        .quad 0xdc29c867d088fa25
        .quad 0x13bd1e38d173292e



        .quad 0xd32b4cd8696149b5
        .quad 0xe55937d781d8aab7
        .quad 0x0bcb2127ae122b94
        .quad 0x41e86fcfb14099b0
        .quad 0x223fb5cf1dfac521
        .quad 0x325c25316f554450
        .quad 0x030b98d7659177ac
        .quad 0x1ed018b64f88a4bd
        .quad 0x3630dfa1b802a6b0
        .quad 0x880f874742ad3bd5
        .quad 0x0af90d6ceec5a4d4
        .quad 0x746a247a37cdc5d9



        .quad 0xd531b8bd2b7b9af6
        .quad 0x5005093537fc5b51
        .quad 0x232fcf25c593546d
        .quad 0x20a365142bb40f49
        .quad 0x6eccd85278d941ed
        .quad 0x2254ae83d22f7843
        .quad 0xc522d02e7bbfcdb7
        .quad 0x681e3351bff0e4e2
        .quad 0x8b64b59d83034f45
        .quad 0x2f8b71f21fa20efb
        .quad 0x69249495ba6550e4
        .quad 0x539ef98e45d5472b



        .quad 0x6e7bb6a1a6205275
        .quad 0xaa4f21d7413c8e83
        .quad 0x6f56d155e88f5cb2
        .quad 0x2de25d4ba6345be1
        .quad 0xd074d8961cae743f
        .quad 0xf86d18f5ee1c63ed
        .quad 0x97bdc55be7f4ed29
        .quad 0x4cbad279663ab108
        .quad 0x80d19024a0d71fcd
        .quad 0xc525c20afb288af8
        .quad 0xb1a3974b5f3a6419
        .quad 0x7d7fbcefe2007233



        .quad 0xfaef1e6a266b2801
        .quad 0x866c68c4d5739f16
        .quad 0xf68a2fbc1b03762c
        .quad 0x5975435e87b75a8d
        .quad 0xcd7c5dc5f3c29094
        .quad 0xc781a29a2a9105ab
        .quad 0x80c61d36421c3058
        .quad 0x4f9cd196dcd8d4d7
        .quad 0x199297d86a7b3768
        .quad 0xd0d058241ad17a63
        .quad 0xba029cad5c1c0c17
        .quad 0x7ccdd084387a0307



        .quad 0xdca6422c6d260417
        .quad 0xae153d50948240bd
        .quad 0xa9c0c1b4fb68c677
        .quad 0x428bd0ed61d0cf53
        .quad 0x9b0c84186760cc93
        .quad 0xcdae007a1ab32a99
        .quad 0xa88dec86620bda18
        .quad 0x3593ca848190ca44
        .quad 0x9213189a5e849aa7
        .quad 0xd4d8c33565d8facd
        .quad 0x8c52545b53fdbbd1
        .quad 0x27398308da2d63e6



        .quad 0x42c38d28435ed413
        .quad 0xbd50f3603278ccc9
        .quad 0xbb07ab1a79da03ef
        .quad 0x269597aebe8c3355
        .quad 0xb9a10e4c0a702453
        .quad 0x0fa25866d57d1bde
        .quad 0xffb9d9b5cd27daf7
        .quad 0x572c2945492c33fd
        .quad 0xc77fc745d6cd30be
        .quad 0xe4dfe8d3e3baaefb
        .quad 0xa22c8830aa5dda0c
        .quad 0x7f985498c05bca80



        .quad 0x3849ce889f0be117
        .quad 0x8005ad1b7b54a288
        .quad 0x3da3c39f23fc921c
        .quad 0x76c2ec470a31f304
        .quad 0xd35615520fbf6363
        .quad 0x08045a45cf4dfba6
        .quad 0xeec24fbc873fa0c2
        .quad 0x30f2653cd69b12e7
        .quad 0x8a08c938aac10c85
        .quad 0x46179b60db276bcb
        .quad 0xa920c01e0e6fac70
        .quad 0x2f1273f1596473da



        .quad 0x4739fc7c8ae01e11
        .quad 0xfd5274904a6aab9f
        .quad 0x41d98a8287728f2e
        .quad 0x5d9e572ad85b69f2
        .quad 0x30488bd755a70bc0
        .quad 0x06d6b5a4f1d442e7
        .quad 0xead1a69ebc596162
        .quad 0x38ac1997edc5f784
        .quad 0x0666b517a751b13b
        .quad 0x747d06867e9b858c
        .quad 0xacacc011454dde49
        .quad 0x22dfcd9cbfe9e69c



        .quad 0x8ddbd2e0c30d0cd9
        .quad 0xad8e665facbb4333
        .quad 0x8f6b258c322a961f
        .quad 0x6b2916c05448c1c7
        .quad 0x56ec59b4103be0a1
        .quad 0x2ee3baecd259f969
        .quad 0x797cb29413f5cd32
        .quad 0x0fe9877824cde472
        .quad 0x7edb34d10aba913b
        .quad 0x4ea3cd822e6dac0e
        .quad 0x66083dff6578f815
        .quad 0x4c303f307ff00a17



        .quad 0xd30a3bd617b28c85
        .quad 0xc5d377b739773bea
        .quad 0xc6c6e78c1e6a5cbf
        .quad 0x0d61b8f78b2ab7c4
        .quad 0x29fc03580dd94500
        .quad 0xecd27aa46fbbec93
        .quad 0x130a155fc2e2a7f8
        .quad 0x416b151ab706a1d5
        .quad 0x56a8d7efe9c136b0
        .quad 0xbd07e5cd58e44b20
        .quad 0xafe62fda1b57e0ab
        .quad 0x191a2af74277e8d2



        .quad 0xd550095bab6f4985
        .quad 0x04f4cd5b4fbfaf1a
        .quad 0x9d8e2ed12a0c7540
        .quad 0x2bc24e04b2212286
        .quad 0x09d4b60b2fe09a14
        .quad 0xc384f0afdbb1747e
        .quad 0x58e2ea8978b5fd6e
        .quad 0x519ef577b5e09b0a
        .quad 0x1863d7d91124cca9
        .quad 0x7ac08145b88a708e
        .quad 0x2bcd7309857031f5
        .quad 0x62337a6e8ab8fae5



        .quad 0x4bcef17f06ffca16
        .quad 0xde06e1db692ae16a
        .quad 0x0753702d614f42b0
        .quad 0x5f6041b45b9212d0
        .quad 0xd1ab324e1b3a1273
        .quad 0x18947cf181055340
        .quad 0x3b5d9567a98c196e
        .quad 0x7fa00425802e1e68
        .quad 0x7d531574028c2705
        .quad 0x80317d69db0d75fe
        .quad 0x30fface8ef8c8ddd
        .quad 0x7e9de97bb6c3e998



        .quad 0x1558967b9e6585a3
        .quad 0x97c99ce098e98b92
        .quad 0x10af149b6eb3adad
        .quad 0x42181fe8f4d38cfa
        .quad 0xf004be62a24d40dd
        .quad 0xba0659910452d41f
        .quad 0x81c45ee162a44234
        .quad 0x4cb829d8a22266ef
        .quad 0x1dbcaa8407b86681
        .quad 0x081f001e8b26753b
        .quad 0x3cd7ce6a84048e81
        .quad 0x78af11633f25f22c



        .quad 0x8416ebd40b50babc
        .quad 0x1508722628208bee
        .quad 0xa3148fafb9c1c36d
        .quad 0x0d07daacd32d7d5d
        .quad 0x3241c00e7d65318c
        .quad 0xe6bee5dcd0e86de7
        .quad 0x118b2dc2fbc08c26
        .quad 0x680d04a7fc603dc3
        .quad 0xf9c2414a695aa3eb
        .quad 0xdaa42c4c05a68f21
        .quad 0x7c6c23987f93963e
        .quad 0x210e8cd30c3954e3



        .quad 0xac4201f210a71c06
        .quad 0x6a65e0aef3bfb021
        .quad 0xbc42c35c393632f7
        .quad 0x56ea8db1865f0742
        .quad 0x2b50f16137fe6c26
        .quad 0xe102bcd856e404d8
        .quad 0x12b0f1414c561f6b
        .quad 0x51b17bc8d028ec91
        .quad 0xfff5fb4bcf535119
        .quad 0xf4989d79df1108a0
        .quad 0xbdfcea659a3ba325
        .quad 0x18a11f1174d1a6f2



        .quad 0x407375ab3f6bba29
        .quad 0x9ec3b6d8991e482e
        .quad 0x99c80e82e55f92e9
        .quad 0x307c13b6fb0c0ae1
        .quad 0xfbd63cdad27a5f2c
        .quad 0xf00fc4bc8aa106d7
        .quad 0x53fb5c1a8e64a430
        .quad 0x04eaabe50c1a2e85
        .quad 0x24751021cb8ab5e7
        .quad 0xfc2344495c5010eb
        .quad 0x5f1e717b4e5610a1
        .quad 0x44da5f18c2710cd5



        .quad 0x033cc55ff1b82eb5
        .quad 0xb15ae36d411cae52
        .quad 0xba40b6198ffbacd3
        .quad 0x768edce1532e861f
        .quad 0x9156fe6b89d8eacc
        .quad 0xe6b79451e23126a1
        .quad 0xbd7463d93944eb4e
        .quad 0x726373f6767203ae
        .quad 0xe305ca72eb7ef68a
        .quad 0x662cf31f70eadb23
        .quad 0x18f026fdb4c45b68
        .quad 0x513b5384b5d2ecbd



        .quad 0x46d46280c729989e
        .quad 0x4b93fbd05368a5dd
        .quad 0x63df3f81d1765a89
        .quad 0x34cebd64b9a0a223
        .quad 0x5e2702878af34ceb
        .quad 0x900b0409b946d6ae
        .quad 0x6512ebf7dabd8512
        .quad 0x61d9b76988258f81
        .quad 0xa6c5a71349b7d94b
        .quad 0xa3f3d15823eb9446
        .quad 0x0416fbd277484834
        .quad 0x69d45e6f2c70812f



        .quad 0xce16f74bc53c1431
        .quad 0x2b9725ce2072edde
        .quad 0xb8b9c36fb5b23ee7
        .quad 0x7e2e0e450b5cc908
        .quad 0x9fe62b434f460efb
        .quad 0xded303d4a63607d6
        .quad 0xf052210eb7a0da24
        .quad 0x237e7dbe00545b93
        .quad 0x013575ed6701b430
        .quad 0x231094e69f0bfd10
        .quad 0x75320f1583e47f22
        .quad 0x71afa699b11155e3



        .quad 0x65ce6f9b3953b61d
        .quad 0xc65839eaafa141e6
        .quad 0x0f435ffda9f759fe
        .quad 0x021142e9c2b1c28e
        .quad 0xea423c1c473b50d6
        .quad 0x51e87a1f3b38ef10
        .quad 0x9b84bf5fb2c9be95
        .quad 0x00731fbc78f89a1c
        .quad 0xe430c71848f81880
        .quad 0xbf960c225ecec119
        .quad 0xb6dae0836bba15e3
        .quad 0x4c4d6f3347e15808



        .quad 0x18f7eccfc17d1fc9
        .quad 0x6c75f5a651403c14
        .quad 0xdbde712bf7ee0cdf
        .quad 0x193fddaaa7e47a22
        .quad 0x2f0cddfc988f1970
        .quad 0x6b916227b0b9f51b
        .quad 0x6ec7b6c4779176be
        .quad 0x38bf9500a88f9fa8
        .quad 0x1fd2c93c37e8876f
        .quad 0xa2f61e5a18d1462c
        .quad 0x5080f58239241276
        .quad 0x6a6fb99ebf0d4969



        .quad 0x6a46c1bb560855eb
        .quad 0x2416bb38f893f09d
        .quad 0xd71d11378f71acc1
        .quad 0x75f76914a31896ea
        .quad 0xeeb122b5b6e423c6
        .quad 0x939d7010f286ff8e
        .quad 0x90a92a831dcf5d8c
        .quad 0x136fda9f42c5eb10
        .quad 0xf94cdfb1a305bdd1
        .quad 0x0f364b9d9ff82c08
        .quad 0x2a87d8a5c3bb588a
        .quad 0x022183510be8dcba



        .quad 0x4af766385ead2d14
        .quad 0xa08ed880ca7c5830
        .quad 0x0d13a6e610211e3d
        .quad 0x6a071ce17b806c03
        .quad 0x9d5a710143307a7f
        .quad 0xb063de9ec47da45f
        .quad 0x22bbfe52be927ad3
        .quad 0x1387c441fd40426c
        .quad 0xb5d3c3d187978af8
        .quad 0x722b5a3d7f0e4413
        .quad 0x0d7b4848bb477ca0
        .quad 0x3171b26aaf1edc92



        .quad 0xa92f319097564ca8
        .quad 0xff7bb84c2275e119
        .quad 0x4f55fe37a4875150
        .quad 0x221fd4873cf0835a
        .quad 0xa60db7d8b28a47d1
        .quad 0xa6bf14d61770a4f1
        .quad 0xd4a1f89353ddbd58
        .quad 0x6c514a63344243e9
        .quad 0x2322204f3a156341
        .quad 0xfb73e0e9ba0a032d
        .quad 0xfce0dd4c410f030e
        .quad 0x48daa596fb924aaa



        .quad 0x6eca8e665ca59cc7
        .quad 0xa847254b2e38aca0
        .quad 0x31afc708d21e17ce
        .quad 0x676dd6fccad84af7
        .quad 0x14f61d5dc84c9793
        .quad 0x9941f9e3ef418206
        .quad 0xcdf5b88f346277ac
        .quad 0x58c837fa0e8a79a9
        .quad 0x0cf9688596fc9058
        .quad 0x1ddcbbf37b56a01b
        .quad 0xdcc2e77d4935d66a
        .quad 0x1c4f73f2c6a57f0a



        .quad 0x0e7a4fbd305fa0bb
        .quad 0x829d4ce054c663ad
        .quad 0xf421c3832fe33848
        .quad 0x795ac80d1bf64c42
        .quad 0xb36e706efc7c3484
        .quad 0x73dfc9b4c3c1cf61
        .quad 0xeb1d79c9781cc7e5
        .quad 0x70459adb7daf675c
        .quad 0x1b91db4991b42bb3
        .quad 0x572696234b02dcca
        .quad 0x9fdf9ee51f8c78dc
        .quad 0x5fe162848ce21fd3



        .quad 0xe2790aae4d077c41
        .quad 0x8b938270db7469a3
        .quad 0x6eb632dc8abd16a2
        .quad 0x720814ecaa064b72
        .quad 0x315c29c795115389
        .quad 0xd7e0e507862f74ce
        .quad 0x0c4a762185927432
        .quad 0x72de6c984a25a1e4
        .quad 0xae9ab553bf6aa310
        .quad 0x050a50a9806d6e1b
        .quad 0x92bb7403adff5139
        .quad 0x0394d27645be618b



        .quad 0x4d572251857eedf4
        .quad 0xe3724edde19e93c5
        .quad 0x8a71420e0b797035
        .quad 0x3b3c833687abe743
        .quad 0xf5396425b23545a4
        .quad 0x15a7a27e98fbb296
        .quad 0xab6c52bc636fdd86
        .quad 0x79d995a8419334ee
        .quad 0xcd8a8ea61195dd75
        .quad 0xa504d8a81dd9a82f
        .quad 0x540dca81a35879b6
        .quad 0x60dd16a379c86a8a



        .quad 0x35a2c8487381e559
        .quad 0x596ffea6d78082cb
        .quad 0xcb9771ebdba7b653
        .quad 0x5a08b5019b4da685
        .quad 0x3501d6f8153e47b8
        .quad 0xb7a9675414a2f60c
        .quad 0x112ee8b6455d9523
        .quad 0x4e62a3c18112ea8a
        .quad 0xc8d4ac04516ab786
        .quad 0x595af3215295b23d
        .quad 0xd6edd234db0230c1
        .quad 0x0929efe8825b41cc



        .quad 0x5f0601d1cbd0f2d3
        .quad 0x736e412f6132bb7f
        .quad 0x83604432238dde87
        .quad 0x1e3a5272f5c0753c
        .quad 0x8b3172b7ad56651d
        .quad 0x01581b7a3fabd717
        .quad 0x2dc94df6424df6e4
        .quad 0x30376e5d2c29284f
        .quad 0xd2918da78159a59c
        .quad 0x6bdc1cd93f0713f3
        .quad 0x565f7a934acd6590
        .quad 0x53daacec4cb4c128



        .quad 0x4ca73bd79cc8a7d6
        .quad 0x4d4a738f47e9a9b2
        .quad 0xf4cbf12942f5fe00
        .quad 0x01a13ff9bdbf0752
        .quad 0x99852bc3852cfdb0
        .quad 0x2cc12e9559d6ed0b
        .quad 0x70f9e2bf9b5ac27b
        .quad 0x4f3b8c117959ae99
        .quad 0x55b6c9c82ff26412
        .quad 0x1ac4a8c91fb667a8
        .quad 0xd527bfcfeb778bf2
        .quad 0x303337da7012a3be



        .quad 0x955422228c1c9d7c
        .quad 0x01fac1371a9b340f
        .quad 0x7e8d9177925b48d7
        .quad 0x53f8ad5661b3e31b
        .quad 0x976d3ccbfad2fdd1
        .quad 0xcb88839737a640a8
        .quad 0x2ff00c1d6734cb25
        .quad 0x269ff4dc789c2d2b
        .quad 0x0c003fbdc08d678d
        .quad 0x4d982fa37ead2b17
        .quad 0xc07e6bcdb2e582f1
        .quad 0x296c7291df412a44



        .quad 0x7903de2b33daf397
        .quad 0xd0ff0619c9a624b3
        .quad 0x8a1d252b555b3e18
        .quad 0x2b6d581c52e0b7c0
        .quad 0xdfb23205dab8b59e
        .quad 0x465aeaa0c8092250
        .quad 0xd133c1189a725d18
        .quad 0x2327370261f117d1
        .quad 0x3d0543d3623e7986
        .quad 0x679414c2c278a354
        .quad 0xae43f0cc726196f6
        .quad 0x7836c41f8245eaba



        .quad 0xe7a254db49e95a81
        .quad 0x5192d5d008b0ad73
        .quad 0x4d20e5b1d00afc07
        .quad 0x5d55f8012cf25f38
        .quad 0xca651e848011937c
        .quad 0xc6b0c46e6ef41a28
        .quad 0xb7021ba75f3f8d52
        .quad 0x119dff99ead7b9fd
        .quad 0x43eadfcbf4b31d4d
        .quad 0xc6503f7411148892
        .quad 0xfeee68c5060d3b17
        .quad 0x329293b3dd4a0ac8



        .quad 0x4e59214fe194961a
        .quad 0x49be7dc70d71cd4f
        .quad 0x9300cfd23b50f22d
        .quad 0x4789d446fc917232
        .quad 0x2879852d5d7cb208
        .quad 0xb8dedd70687df2e7
        .quad 0xdc0bffab21687891
        .quad 0x2b44c043677daa35
        .quad 0x1a1c87ab074eb78e
        .quad 0xfac6d18e99daf467
        .quad 0x3eacbbcd484f9067
        .quad 0x60c52eef2bb9a4e4



        .quad 0x0b5d89bc3bfd8bf1
        .quad 0xb06b9237c9f3551a
        .quad 0x0e4c16b0d53028f5
        .quad 0x10bc9c312ccfcaab
        .quad 0x702bc5c27cae6d11
        .quad 0x44c7699b54a48cab
        .quad 0xefbc4056ba492eb2
        .quad 0x70d77248d9b6676d
        .quad 0xaa8ae84b3ec2a05b
        .quad 0x98699ef4ed1781e0
        .quad 0x794513e4708e85d1
        .quad 0x63755bd3a976f413



        .quad 0xb55fa03e2ad10853
        .quad 0x356f75909ee63569
        .quad 0x9ff9f1fdbe69b890
        .quad 0x0d8cc1c48bc16f84
        .quad 0x3dc7101897f1acb7
        .quad 0x5dda7d5ec165bbd8
        .quad 0x508e5b9c0fa1020f
        .quad 0x2763751737c52a56
        .quad 0x029402d36eb419a9
        .quad 0xf0b44e7e77b460a5
        .quad 0xcfa86230d43c4956
        .quad 0x70c2dd8a7ad166e7



        .quad 0x656194509f6fec0e
        .quad 0xee2e7ea946c6518d
        .quad 0x9733c1f367e09b5c
        .quad 0x2e0fac6363948495
        .quad 0x91d4967db8ed7e13
        .quad 0x74252f0ad776817a
        .quad 0xe40982e00d852564
        .quad 0x32b8613816a53ce5
        .quad 0x79e7f7bee448cd64
        .quad 0x6ac83a67087886d0
        .quad 0xf89fd4d9a0e4db2e
        .quad 0x4179215c735a4f41



        .quad 0x8c7094e7d7dced2a
        .quad 0x97fb8ac347d39c70
        .quad 0xe13be033a906d902
        .quad 0x700344a30cd99d76
        .quad 0xe4ae33b9286bcd34
        .quad 0xb7ef7eb6559dd6dc
        .quad 0x278b141fb3d38e1f
        .quad 0x31fa85662241c286
        .quad 0xaf826c422e3622f4
        .quad 0xc12029879833502d
        .quad 0x9bc1b7e12b389123
        .quad 0x24bb2312a9952489



        .quad 0xb1a8ed1732de67c3
        .quad 0x3cb49418461b4948
        .quad 0x8ebd434376cfbcd2
        .quad 0x0fee3e871e188008
        .quad 0x41f80c2af5f85c6b
        .quad 0x687284c304fa6794
        .quad 0x8945df99a3ba1bad
        .quad 0x0d1d2af9ffeb5d16
        .quad 0xa9da8aa132621edf
        .quad 0x30b822a159226579
        .quad 0x4004197ba79ac193
        .quad 0x16acd79718531d76



        .quad 0x72df72af2d9b1d3d
        .quad 0x63462a36a432245a
        .quad 0x3ecea07916b39637
        .quad 0x123e0ef6b9302309
        .quad 0xc959c6c57887b6ad
        .quad 0x94e19ead5f90feba
        .quad 0x16e24e62a342f504
        .quad 0x164ed34b18161700
        .quad 0x487ed94c192fe69a
        .quad 0x61ae2cea3a911513
        .quad 0x877bf6d3b9a4de27
        .quad 0x78da0fc61073f3eb



        .quad 0x5bf15d28e52bc66a
        .quad 0x2c47e31870f01a8e
        .quad 0x2419afbc06c28bdd
        .quad 0x2d25deeb256b173a
        .quad 0xa29f80f1680c3a94
        .quad 0x71f77e151ae9e7e6
        .quad 0x1100f15848017973
        .quad 0x054aa4b316b38ddd
        .quad 0xdfc8468d19267cb8
        .quad 0x0b28789c66e54daf
        .quad 0x2aeb1d2a666eec17
        .quad 0x134610a6ab7da760



        .quad 0xcaf55ec27c59b23f
        .quad 0x99aeed3e154d04f2
        .quad 0x68441d72e14141f4
        .quad 0x140345133932a0a2
        .quad 0xd91430e0dc028c3c
        .quad 0x0eb955a85217c771
        .quad 0x4b09e1ed2c99a1fa
        .quad 0x42881af2bd6a743c
        .quad 0x7bfec69aab5cad3d
        .quad 0xc23e8cd34cb2cfad
        .quad 0x685dd14bfb37d6a2
        .quad 0x0ad6d64415677a18



        .quad 0x781a439e417becb5
        .quad 0x4ac5938cd10e0266
        .quad 0x5da385110692ac24
        .quad 0x11b065a2ade31233
        .quad 0x7914892847927e9f
        .quad 0x33dad6ef370aa877
        .quad 0x1f8f24fa11122703
        .quad 0x5265ac2f2adf9592
        .quad 0x405fdd309afcb346
        .quad 0xd9723d4428e63f54
        .quad 0x94c01df05f65aaae
        .quad 0x43e4dc3ae14c0809



        .quad 0xbc12c7f1a938a517
        .quad 0x473028ab3180b2e1
        .quad 0x3f78571efbcd254a
        .quad 0x74e534426ff6f90f
        .quad 0xea6f7ac3adc2c6a3
        .quad 0xd0e928f6e9717c94
        .quad 0xe2d379ead645eaf5
        .quad 0x46dd8785c51ffbbe
        .quad 0x709801be375c8898
        .quad 0x4b06dab5e3fd8348
        .quad 0x75880ced27230714
        .quad 0x2b09468fdd2f4c42



        .quad 0x97c749eeb701cb96
        .quad 0x83f438d4b6a369c3
        .quad 0x62962b8b9a402cd9
        .quad 0x6976c7509888df7b
        .quad 0x5b97946582ffa02a
        .quad 0xda096a51fea8f549
        .quad 0xa06351375f77af9b
        .quad 0x1bcfde61201d1e76
        .quad 0x4a4a5490246a59a2
        .quad 0xd63ebddee87fdd90
        .quad 0xd9437c670d2371fa
        .quad 0x69e87308d30f8ed6



        .quad 0x435a8bb15656beb0
        .quad 0xf8fac9ba4f4d5bca
        .quad 0xb9b278c41548c075
        .quad 0x3eb0ef76e892b622
        .quad 0x0f80bf028bc80303
        .quad 0x6aae16b37a18cefb
        .quad 0xdd47ea47d72cd6a3
        .quad 0x61943588f4ed39aa
        .quad 0xd26e5c3e91039f85
        .quad 0xc0e9e77df6f33aa9
        .quad 0xe8968c5570066a93
        .quad 0x3c34d1881faaaddd



        .quad 0x3f9d2b5ea09f9ec0
        .quad 0x1dab3b6fb623a890
        .quad 0xa09ba3ea72d926c4
        .quad 0x374193513fd8b36d
        .quad 0xbd5b0b8f2fffe0d9
        .quad 0x6aa254103ed24fb9
        .quad 0x2ac7d7bcb26821c4
        .quad 0x605b394b60dca36a
        .quad 0xb4e856e45a9d1ed2
        .quad 0xefe848766c97a9a2
        .quad 0xb104cf641e5eee7d
        .quad 0x2f50b81c88a71c8f



        .quad 0x31723c61fc6811bb
        .quad 0x9cb450486211800f
        .quad 0x768933d347995753
        .quad 0x3491a53502752fcd
        .quad 0x2b552ca0a7da522a
        .quad 0x3230b336449b0250
        .quad 0xf2c4c5bca4b99fb9
        .quad 0x7b2c674958074a22
        .quad 0xd55165883ed28cdf
        .quad 0x12d84fd2d362de39
        .quad 0x0a874ad3e3378e4f
        .quad 0x000d2b1f7c763e74



        .quad 0x3d420811d06d4a67
        .quad 0xbefc048590e0ffe3
        .quad 0xf870c6b7bd487bde
        .quad 0x6e2a7316319afa28
        .quad 0x9624778c3e94a8ab
        .quad 0x0ad6f3cee9a78bec
        .quad 0x948ac7810d743c4f
        .quad 0x76627935aaecfccc
        .quad 0x56a8ac24d6d59a9f
        .quad 0xc8db753e3096f006
        .quad 0x477f41e68f4c5299
        .quad 0x588d851cf6c86114



        .quad 0x51138ec78df6b0fe
        .quad 0x5397da89e575f51b
        .quad 0x09207a1d717af1b9
        .quad 0x2102fdba2b20d650
        .quad 0xcd2a65e777d1f515
        .quad 0x548991878faa60f1
        .quad 0xb1b73bbcdabc06e5
        .quad 0x654878cba97cc9fb
        .quad 0x969ee405055ce6a1
        .quad 0x36bca7681251ad29
        .quad 0x3a1af517aa7da415
        .quad 0x0ad725db29ecb2ba



        .quad 0xdc4267b1834e2457
        .quad 0xb67544b570ce1bc5
        .quad 0x1af07a0bf7d15ed7
        .quad 0x4aefcffb71a03650
        .quad 0xfec7bc0c9b056f85
        .quad 0x537d5268e7f5ffd7
        .quad 0x77afc6624312aefa
        .quad 0x4f675f5302399fd9
        .quad 0xc32d36360415171e
        .quad 0xcd2bef118998483b
        .quad 0x870a6eadd0945110
        .quad 0x0bccbb72a2a86561



        .quad 0x185e962feab1a9c8
        .quad 0x86e7e63565147dcd
        .quad 0xb092e031bb5b6df2
        .quad 0x4024f0ab59d6b73e
        .quad 0x186d5e4c50fe1296
        .quad 0xe0397b82fee89f7e
        .quad 0x3bc7f6c5507031b0
        .quad 0x6678fd69108f37c2
        .quad 0x1586fa31636863c2
        .quad 0x07f68c48572d33f2
        .quad 0x4f73cc9f789eaefc
        .quad 0x2d42e2108ead4701



        .quad 0x97f5131594dfd29b
        .quad 0x6155985d313f4c6a
        .quad 0xeba13f0708455010
        .quad 0x676b2608b8d2d322
        .quad 0x21717b0d0f537593
        .quad 0x914e690b131e064c
        .quad 0x1bb687ae752ae09f
        .quad 0x420bf3a79b423c6e
        .quad 0x8138ba651c5b2b47
        .quad 0x8671b6ec311b1b80
        .quad 0x7bff0cb1bc3135b0
        .quad 0x745d2ffa9c0cf1e0



        .quad 0xbf525a1e2bc9c8bd
        .quad 0xea5b260826479d81
        .quad 0xd511c70edf0155db
        .quad 0x1ae23ceb960cf5d0
        .quad 0x6036df5721d34e6a
        .quad 0xb1db8827997bb3d0
        .quad 0xd3c209c3c8756afa
        .quad 0x06e15be54c1dc839
        .quad 0x5b725d871932994a
        .quad 0x32351cb5ceb1dab0
        .quad 0x7dc41549dab7ca05
        .quad 0x58ded861278ec1f7



        .quad 0xd8173793f266c55c
        .quad 0xc8c976c5cc454e49
        .quad 0x5ce382f8bc26c3a8
        .quad 0x2ff39de85485f6f9
        .quad 0x2dfb5ba8b6c2c9a8
        .quad 0x48eeef8ef52c598c
        .quad 0x33809107f12d1573
        .quad 0x08ba696b531d5bd8
        .quad 0x77ed3eeec3efc57a
        .quad 0x04e05517d4ff4811
        .quad 0xea3d7a3ff1a671cb
        .quad 0x120633b4947cfe54



        .quad 0x0b94987891610042
        .quad 0x4ee7b13cecebfae8
        .quad 0x70be739594f0a4c0
        .quad 0x35d30a99b4d59185
        .quad 0x82bd31474912100a
        .quad 0xde237b6d7e6fbe06
        .quad 0xe11e761911ea79c6
        .quad 0x07433be3cb393bde
        .quad 0xff7944c05ce997f4
        .quad 0x575d3de4b05c51a3
        .quad 0x583381fd5a76847c
        .quad 0x2d873ede7af6da9f



        .quad 0x157a316443373409
        .quad 0xfab8b7eef4aa81d9
        .quad 0xb093fee6f5a64806
        .quad 0x2e773654707fa7b6
        .quad 0xaa6202e14e5df981
        .quad 0xa20d59175015e1f5
        .quad 0x18a275d3bae21d6c
        .quad 0x0543618a01600253
        .quad 0x0deabdf4974c23c1
        .quad 0xaa6f0a259dce4693
        .quad 0x04202cb8a29aba2c
        .quad 0x4b1443362d07960d



        .quad 0x47b837f753242cec
        .quad 0x256dc48cc04212f2
        .quad 0xe222fbfbe1d928c5
        .quad 0x48ea295bad8a2c07
        .quad 0x299b1c3f57c5715e
        .quad 0x96cb929e6b686d90
        .quad 0x3004806447235ab3
        .quad 0x2c435c24a44d9fe1
        .quad 0x0607c97c80f8833f
        .quad 0x0e851578ca25ec5b
        .quad 0x54f7450b161ebb6f
        .quad 0x7bcb4792a0def80e



        .quad 0x8487e3d02bc73659
        .quad 0x4baf8445059979df
        .quad 0xd17c975adcad6fbf
        .quad 0x57369f0bdefc96b6
        .quad 0x1cecd0a0045224c2
        .quad 0x757f1b1b69e53952
        .quad 0x775b7a925289f681
        .quad 0x1b6cc62016736148
        .quad 0xf1a9990175638698
        .quad 0x353dd1beeeaa60d3
        .quad 0x849471334c9ba488
        .quad 0x63fa6e6843ade311



        .quad 0xd15c20536597c168
        .quad 0x9f73740098d28789
        .quad 0x18aee7f13257ba1f
        .quad 0x3418bfda07346f14
        .quad 0x2195becdd24b5eb7
        .quad 0x5e41f18cc0cd44f9
        .quad 0xdf28074441ca9ede
        .quad 0x07073b98f35b7d67
        .quad 0xd03c676c4ce530d4
        .quad 0x0b64c0473b5df9f4
        .quad 0x065cef8b19b3a31e
        .quad 0x3084d661533102c9



        .quad 0xe1f6b79ebf8469ad
        .quad 0x15801004e2663135
        .quad 0x9a498330af74181b
        .quad 0x3ba2504f049b673c
        .quad 0x9a6ce876760321fd
        .quad 0x7fe2b5109eb63ad8
        .quad 0x00e7d4ae8ac80592
        .quad 0x73d86b7abb6f723a
        .quad 0x0b52b5606dba5ab6
        .quad 0xa9134f0fbbb1edab
        .quad 0x30a9520d9b04a635
        .quad 0x6813b8f37973e5db



        .quad 0x9854b054334127c1
        .quad 0x105d047882fbff25
        .quad 0xdb49f7f944186f4f
        .quad 0x1768e838bed0b900
        .quad 0xf194ca56f3157e29
        .quad 0x136d35705ef528a5
        .quad 0xdd4cef778b0599bc
        .quad 0x7d5472af24f833ed
        .quad 0xd0ef874daf33da47
        .quad 0x00d3be5db6e339f9
        .quad 0x3f2a8a2f9c9ceece
        .quad 0x5d1aeb792352435a



        .quad 0xf59e6bb319cd63ca
        .quad 0x670c159221d06839
        .quad 0xb06d565b2150cab6
        .quad 0x20fb199d104f12a3
        .quad 0x12c7bfaeb61ba775
        .quad 0xb84e621fe263bffd
        .quad 0x0b47a5c35c840dcf
        .quad 0x7e83be0bccaf8634
        .quad 0x61943dee6d99c120
        .quad 0x86101f2e460b9fe0
        .quad 0x6bb2f1518ee8598d
        .quad 0x76b76289fcc475cc



        .quad 0x791b4cc1756286fa
        .quad 0xdbced317d74a157c
        .quad 0x7e732421ea72bde6
        .quad 0x01fe18491131c8e9
        .quad 0x4245f1a1522ec0b3
        .quad 0x558785b22a75656d
        .quad 0x1d485a2548a1b3c0
        .quad 0x60959eccd58fe09f
        .quad 0x3ebfeb7ba8ed7a09
        .quad 0x49fdc2bbe502789c
        .quad 0x44ebce5d3c119428
        .quad 0x35e1eb55be947f4a



        .quad 0xdbdae701c5738dd3
        .quad 0xf9c6f635b26f1bee
        .quad 0x61e96a8042f15ef4
        .quad 0x3aa1d11faf60a4d8
        .quad 0x14fd6dfa726ccc74
        .quad 0x3b084cfe2f53b965
        .quad 0xf33ae4f552a2c8b4
        .quad 0x59aab07a0d40166a
        .quad 0x77bcec4c925eac25
        .quad 0x1848718460137738
        .quad 0x5b374337fea9f451
        .quad 0x1865e78ec8e6aa46



        .quad 0xccc4b7c7b66e1f7a
        .quad 0x44157e25f50c2f7e
        .quad 0x3ef06dfc713eaf1c
        .quad 0x582f446752da63f7
        .quad 0x967c54e91c529ccb
        .quad 0x30f6269264c635fb
        .quad 0x2747aff478121965
        .quad 0x17038418eaf66f5c
        .quad 0xc6317bd320324ce4
        .quad 0xa81042e8a4488bc4
        .quad 0xb21ef18b4e5a1364
        .quad 0x0c2a1c4bcda28dc9



        .quad 0xd24dc7d06f1f0447
        .quad 0xb2269e3edb87c059
        .quad 0xd15b0272fbb2d28f
        .quad 0x7c558bd1c6f64877
        .quad 0xedc4814869bd6945
        .quad 0x0d6d907dbe1c8d22
        .quad 0xc63bd212d55cc5ab
        .quad 0x5a6a9b30a314dc83
        .quad 0xd0ec1524d396463d
        .quad 0x12bb628ac35a24f0
        .quad 0xa50c3a791cbc5fa4
        .quad 0x0404a5ca0afbafc3



        .quad 0x8c1f40070aa743d6
        .quad 0xccbad0cb5b265ee8
        .quad 0x574b046b668fd2de
        .quad 0x46395bfdcadd9633
        .quad 0x62bc9e1b2a416fd1
        .quad 0xb5c6f728e350598b
        .quad 0x04343fd83d5d6967
        .quad 0x39527516e7f8ee98
        .quad 0x117fdb2d1a5d9a9c
        .quad 0x9c7745bcd1005c2a
        .quad 0xefd4bef154d56fea
        .quad 0x76579a29e822d016



        .quad 0x45b68e7e49c02a17
        .quad 0x23cd51a2bca9a37f
        .quad 0x3ed65f11ec224c1b
        .quad 0x43a384dc9e05bdb1
        .quad 0x333cb51352b434f2
        .quad 0xd832284993de80e1
        .quad 0xb5512887750d35ce
        .quad 0x02c514bb2a2777c1
        .quad 0x684bd5da8bf1b645
        .quad 0xfb8bd37ef6b54b53
        .quad 0x313916d7a9b0d253
        .quad 0x1160920961548059



        .quad 0xb44d166929dacfaa
        .quad 0xda529f4c8413598f
        .quad 0xe9ef63ca453d5559
        .quad 0x351e125bc5698e0b
        .quad 0x7a385616369b4dcd
        .quad 0x75c02ca7655c3563
        .quad 0x7dc21bf9d4f18021
        .quad 0x2f637d7491e6e042
        .quad 0xd4b49b461af67bbe
        .quad 0xd603037ac8ab8961
        .quad 0x71dee19ff9a699fb
        .quad 0x7f182d06e7ce2a9a



        .quad 0x7a7c8e64ab0168ec
        .quad 0xcb5a4a5515edc543
        .quad 0x095519d347cd0eda
        .quad 0x67d4ac8c343e93b0
        .quad 0x09454b728e217522
        .quad 0xaa58e8f4d484b8d8
        .quad 0xd358254d7f46903c
        .quad 0x44acc043241c5217
        .quad 0x1c7d6bbb4f7a5777
        .quad 0x8b35fed4918313e1
        .quad 0x4adca1c6c96b4684
        .quad 0x556d1c8312ad71bd



        .quad 0x17ef40e30c8d3982
        .quad 0x31f7073e15a3fa34
        .quad 0x4f21f3cb0773646e
        .quad 0x746c6c6d1d824eff
        .quad 0x81f06756b11be821
        .quad 0x0faff82310a3f3dd
        .quad 0xf8b2d0556a99465d
        .quad 0x097abe38cc8c7f05
        .quad 0x0c49c9877ea52da4
        .quad 0x4c4369559bdc1d43
        .quad 0x022c3809f7ccebd2
        .quad 0x577e14a34bee84bd



        .quad 0xf0e268ac61a73b0a
        .quad 0xf2fafa103791a5f5
        .quad 0xc1e13e826b6d00e9
        .quad 0x60fa7ee96fd78f42
        .quad 0x94fecebebd4dd72b
        .quad 0xf46a4fda060f2211
        .quad 0x124a5977c0c8d1ff
        .quad 0x705304b8fb009295
        .quad 0xb63d1d354d296ec6
        .quad 0xf3c3053e5fad31d8
        .quad 0x670b958cb4bd42ec
        .quad 0x21398e0ca16353fd



        .quad 0x216ab2ca8da7d2ef
        .quad 0x366ad9dd99f42827
        .quad 0xae64b9004fdd3c75
        .quad 0x403a395b53909e62
        .quad 0x86c5fc16861b7e9a
        .quad 0xf6a330476a27c451
        .quad 0x01667267a1e93597
        .quad 0x05ffb9cd6082dfeb
        .quad 0xa617fa9ff53f6139
        .quad 0x60f2b5e513e66cb6
        .quad 0xd7a8beefb3448aa4
        .quad 0x7a2932856f5ea192



        .quad 0x0b39d761b02de888
        .quad 0x5f550e7ed2414e1f
        .quad 0xa6bfa45822e1a940
        .quad 0x050a2f7dfd447b99
        .quad 0xb89c444879639302
        .quad 0x4ae4f19350c67f2c
        .quad 0xf0b35da8c81af9c6
        .quad 0x39d0003546871017
        .quad 0x437c3b33a650db77
        .quad 0x6bafe81dbac52bb2
        .quad 0xfe99402d2db7d318
        .quad 0x2b5b7eec372ba6ce



        .quad 0xb3bc4bbd83f50eef
        .quad 0x508f0c998c927866
        .quad 0x43e76587c8b7e66e
        .quad 0x0f7655a3a47f98d9
        .quad 0xa694404d613ac8f4
        .quad 0x500c3c2bfa97e72c
        .quad 0x874104d21fcec210
        .quad 0x1b205fb38604a8ee
        .quad 0x55ecad37d24b133c
        .quad 0x441e147d6038c90b
        .quad 0x656683a1d62c6fee
        .quad 0x0157d5dc87e0ecae



        .quad 0xf2a7af510354c13d
        .quad 0xd7a0b145aa372b60
        .quad 0x2869b96a05a3d470
        .quad 0x6528e42d82460173
        .quad 0x95265514d71eb524
        .quad 0xe603d8815df14593
        .quad 0x147cdf410d4de6b7
        .quad 0x5293b1730437c850
        .quad 0x23d0e0814bccf226
        .quad 0x92c745cd8196fb93
        .quad 0x8b61796c59541e5b
        .quad 0x40a44df0c021f978



        .quad 0xdaa869894f20ea6a
        .quad 0xea14a3d14c620618
        .quad 0x6001fccb090bf8be
        .quad 0x35f4e822947e9cf0
        .quad 0x86c96e514bc5d095
        .quad 0xf20d4098fca6804a
        .quad 0x27363d89c826ea5d
        .quad 0x39ca36565719cacf
        .quad 0x97506f2f6f87b75c
        .quad 0xc624aea0034ae070
        .quad 0x1ec856e3aad34dd6
        .quad 0x055b0be0e440e58f



        .quad 0x6469a17d89735d12
        .quad 0xdb6f27d5e662b9f1
        .quad 0x9fcba3286a395681
        .quad 0x363b8004d269af25
        .quad 0x4d12a04b6ea33da2
        .quad 0x57cf4c15e36126dd
        .quad 0x90ec9675ee44d967
        .quad 0x64ca348d2a985aac
        .quad 0x99588e19e4c4912d
        .quad 0xefcc3b4e1ca5ce6b
        .quad 0x4522ea60fa5b98d5
        .quad 0x7064bbab1de4a819



        .quad 0xb919e1515a770641
        .quad 0xa9a2e2c74e7f8039
        .quad 0x7527250b3df23109
        .quad 0x756a7330ac27b78b
        .quad 0xa290c06142542129
        .quad 0xf2e2c2aebe8d5b90
        .quad 0xcf2458db76abfe1b
        .quad 0x02157ade83d626bf
        .quad 0x3e46972a1b9a038b
        .quad 0x2e4ee66a7ee03fb4
        .quad 0x81a248776edbb4ca
        .quad 0x1a944ee88ecd0563



        .quad 0xd5a91d1151039372
        .quad 0x2ed377b799ca26de
        .quad 0xa17202acfd366b6b
        .quad 0x0730291bd6901995
        .quad 0xbb40a859182362d6
        .quad 0xb99f55778a4d1abb
        .quad 0x8d18b427758559f6
        .quad 0x26c20fe74d26235a
        .quad 0x648d1d9fe9cc22f5
        .quad 0x66bc561928dd577c
        .quad 0x47d3ed21652439d1
        .quad 0x49d271acedaf8b49



        .quad 0x89f5058a382b33f3
        .quad 0x5ae2ba0bad48c0b4
        .quad 0x8f93b503a53db36e
        .quad 0x5aa3ed9d95a232e6
        .quad 0x2798aaf9b4b75601
        .quad 0x5eac72135c8dad72
        .quad 0xd2ceaa6161b7a023
        .quad 0x1bbfb284e98f7d4e
        .quad 0x656777e9c7d96561
        .quad 0xcb2b125472c78036
        .quad 0x65053299d9506eee
        .quad 0x4a07e14e5e8957cc



        .quad 0x4ee412cb980df999
        .quad 0xa315d76f3c6ec771
        .quad 0xbba5edde925c77fd
        .quad 0x3f0bac391d313402
        .quad 0x240b58cdc477a49b
        .quad 0xfd38dade6447f017
        .quad 0x19928d32a7c86aad
        .quad 0x50af7aed84afa081
        .quad 0x6e4fde0115f65be5
        .quad 0x29982621216109b2
        .quad 0x780205810badd6d9
        .quad 0x1921a316baebd006



        .quad 0x89422f7edfb870fc
        .quad 0x2c296beb4f76b3bd
        .quad 0x0738f1d436c24df7
        .quad 0x6458df41e273aeb0
        .quad 0xd75aad9ad9f3c18b
        .quad 0x566a0eef60b1c19c
        .quad 0x3e9a0bac255c0ed9
        .quad 0x7b049deca062c7f5
        .quad 0xdccbe37a35444483
        .quad 0x758879330fedbe93
        .quad 0x786004c312c5dd87
        .quad 0x6093dccbc2950e64



        .quad 0x1ff39a8585e0706d
        .quad 0x36d0a5d8b3e73933
        .quad 0x43b9f2e1718f453b
        .quad 0x57d1ea084827a97c
        .quad 0x6bdeeebe6084034b
        .quad 0x3199c2b6780fb854
        .quad 0x973376abb62d0695
        .quad 0x6e3180c98b647d90
        .quad 0xee7ab6e7a128b071
        .quad 0xa4c1596d93a88baa
        .quad 0xf7b4de82b2216130
        .quad 0x363e999ddd97bd18



        .quad 0x96a843c135ee1fc4
        .quad 0x976eb35508e4c8cf
        .quad 0xb42f6801b58cd330
        .quad 0x48ee9b78693a052b
        .quad 0x2f1848dce24baec6
        .quad 0x769b7255babcaf60
        .quad 0x90cb3c6e3cefe931
        .quad 0x231f979bc6f9b355
        .quad 0x5c31de4bcc2af3c6
        .quad 0xb04bb030fe208d1f
        .quad 0xb78d7009c14fb466
        .quad 0x079bfa9b08792413



        .quad 0xe3903a51da300df4
        .quad 0x843964233da95ab0
        .quad 0xed3cf12d0b356480
        .quad 0x038c77f684817194
        .quad 0xf3c9ed80a2d54245
        .quad 0x0aa08b7877f63952
        .quad 0xd76dac63d1085475
        .quad 0x1ef4fb159470636b
        .quad 0x854e5ee65b167bec
        .quad 0x59590a4296d0cdc2
        .quad 0x72b2df3498102199
        .quad 0x575ee92a4a0bff56



        .quad 0xd4c080908a182fcf
        .quad 0x30e170c299489dbd
        .quad 0x05babd5752f733de
        .quad 0x43d4e7112cd3fd00
        .quad 0x5d46bc450aa4d801
        .quad 0xc3af1227a533b9d8
        .quad 0x389e3b262b8906c2
        .quad 0x200a1e7e382f581b
        .quad 0x518db967eaf93ac5
        .quad 0x71bc989b056652c0
        .quad 0xfe2b85d9567197f5
        .quad 0x050eca52651e4e38



        .quad 0xc3431ade453f0c9c
        .quad 0xe9f5045eff703b9b
        .quad 0xfcd97ac9ed847b3d
        .quad 0x4b0ee6c21c58f4c6
        .quad 0x97ac397660e668ea
        .quad 0x9b19bbfe153ab497
        .quad 0x4cb179b534eca79f
        .quad 0x6151c09fa131ae57
        .quad 0x3af55c0dfdf05d96
        .quad 0xdd262ee02ab4ee7a
        .quad 0x11b2bb8712171709
        .quad 0x1fef24fa800f030b



        .quad 0xb496123a6b6c6609
        .quad 0xa750fe8580ab5938
        .quad 0xf471bf39b7c27a5f
        .quad 0x507903ce77ac193c
        .quad 0xff91a66a90166220
        .quad 0xf22552ae5bf1e009
        .quad 0x7dff85d87f90df7c
        .quad 0x4f620ffe0c736fb9
        .quad 0x62f90d65dfde3e34
        .quad 0xcf28c592b9fa5fad
        .quad 0x99c86ef9c6164510
        .quad 0x25d448044a256c84



        .quad 0xbd68230ec7e9b16f
        .quad 0x0eb1b9c1c1c5795d
        .quad 0x7943c8c495b6b1ff
        .quad 0x2f9faf620bbacf5e
        .quad 0x2c7c4415c9022b55
        .quad 0x56a0d241812eb1fe
        .quad 0xf02ea1c9d7b65e0d
        .quad 0x4180512fd5323b26
        .quad 0xa4ff3e698a48a5db
        .quad 0xba6a3806bd95403b
        .quad 0x9f7ce1af47d5b65d
        .quad 0x15e087e55939d2fb



        .quad 0x12207543745c1496
        .quad 0xdaff3cfdda38610c
        .quad 0xe4e797272c71c34f
        .quad 0x39c07b1934bdede9
        .quad 0x8894186efb963f38
        .quad 0x48a00e80dc639bd5
        .quad 0xa4e8092be96c1c99
        .quad 0x5a097d54ca573661
        .quad 0x2d45892b17c9e755
        .quad 0xd033fd7289308df8
        .quad 0x6c2fe9d9525b8bd9
        .quad 0x2edbecf1c11cc079



        .quad 0x1616a4e3c715a0d2
        .quad 0x53623cb0f8341d4d
        .quad 0x96ef5329c7e899cb
        .quad 0x3d4e8dbba668baa6
        .quad 0xee0f0fddd087a25f
        .quad 0x9c7531555c3e34ee
        .quad 0x660c572e8fab3ab5
        .quad 0x0854fc44544cd3b2
        .quad 0x61eba0c555edad19
        .quad 0x24b533fef0a83de6
        .quad 0x3b77042883baa5f8
        .quad 0x678f82b898a47e8d



        .quad 0xb1491d0bd6900c54
        .quad 0x3539722c9d132636
        .quad 0x4db928920b362bc9
        .quad 0x4d7cd1fea68b69df
        .quad 0x1e09d94057775696
        .quad 0xeed1265c3cd951db
        .quad 0xfa9dac2b20bce16f
        .quad 0x0f7f76e0e8d089f4
        .quad 0x36d9ebc5d485b00c
        .quad 0xa2596492e4adb365
        .quad 0xc1659480c2119ccd
        .quad 0x45306349186e0d5f



        .quad 0x94ddd0c1a6cdff1d
        .quad 0x55f6f115e84213ae
        .quad 0x6c935f85992fcf6a
        .quad 0x067ee0f54a37f16f
        .quad 0x96a414ec2b072491
        .quad 0x1bb2218127a7b65b
        .quad 0x6d2849596e8a4af0
        .quad 0x65f3b08ccd27765f
        .quad 0xecb29fff199801f7
        .quad 0x9d361d1fa2a0f72f
        .quad 0x25f11d2375fd2f49
        .quad 0x124cefe80fe10fe2



        .quad 0x4c126cf9d18df255
        .quad 0xc1d471e9147a63b6
        .quad 0x2c6d3c73f3c93b5f
        .quad 0x6be3a6a2e3ff86a2
        .quad 0x1518e85b31b16489
        .quad 0x8faadcb7db710bfb
        .quad 0x39b0bdf4a14ae239
        .quad 0x05f4cbea503d20c1
        .quad 0xce040e9ec04145bc
        .quad 0xc71ff4e208f6834c
        .quad 0xbd546e8dab8847a3
        .quad 0x64666aa0a4d2aba5



        .quad 0x6841435a7c06d912
        .quad 0xca123c21bb3f830b
        .quad 0xd4b37b27b1cbe278
        .quad 0x1d753b84c76f5046
        .quad 0xb0c53bf73337e94c
        .quad 0x7cb5697e11e14f15
        .quad 0x4b84abac1930c750
        .quad 0x28dd4abfe0640468
        .quad 0x7dc0b64c44cb9f44
        .quad 0x18a3e1ace3925dbf
        .quad 0x7a3034862d0457c4
        .quad 0x4c498bf78a0c892e



        .quad 0x37d653fb1aa73196
        .quad 0x0f9495303fd76418
        .quad 0xad200b09fb3a17b2
        .quad 0x544d49292fc8613e
        .quad 0x22d2aff530976b86
        .quad 0x8d90b806c2d24604
        .quad 0xdca1896c4de5bae5
        .quad 0x28005fe6c8340c17
        .quad 0x6aefba9f34528688
        .quad 0x5c1bff9425107da1
        .quad 0xf75bbbcd66d94b36
        .quad 0x72e472930f316dfa



        .quad 0x2695208c9781084f
        .quad 0xb1502a0b23450ee1
        .quad 0xfd9daea603efde02
        .quad 0x5a9d2e8c2733a34c
        .quad 0x07f3f635d32a7627
        .quad 0x7aaa4d865f6566f0
        .quad 0x3c85e79728d04450
        .quad 0x1fee7f000fe06438
        .quad 0x765305da03dbf7e5
        .quad 0xa4daf2491434cdbd
        .quad 0x7b4ad5cdd24a88ec
        .quad 0x00f94051ee040543



        .quad 0x8d356b23c3d330b2
        .quad 0xf21c8b9bb0471b06
        .quad 0xb36c316c6e42b83c
        .quad 0x07d79c7e8beab10d
        .quad 0xd7ef93bb07af9753
        .quad 0x583ed0cf3db766a7
        .quad 0xce6998bf6e0b1ec5
        .quad 0x47b7ffd25dd40452
        .quad 0x87fbfb9cbc08dd12
        .quad 0x8a066b3ae1eec29b
        .quad 0x0d57242bdb1fc1bf
        .quad 0x1c3520a35ea64bb6



        .quad 0x80d253a6bccba34a
        .quad 0x3e61c3a13838219b
        .quad 0x90c3b6019882e396
        .quad 0x1c3d05775d0ee66f
        .quad 0xcda86f40216bc059
        .quad 0x1fbb231d12bcd87e
        .quad 0xb4956a9e17c70990
        .quad 0x38750c3b66d12e55
        .quad 0x692ef1409422e51a
        .quad 0xcbc0c73c2b5df671
        .quad 0x21014fe7744ce029
        .quad 0x0621e2c7d330487c



        .quad 0xaf9860cc8259838d
        .quad 0x90ea48c1c69f9adc
        .quad 0x6526483765581e30
        .quad 0x0007d6097bd3a5bc
        .quad 0xb7ae1796b0dbf0f3
        .quad 0x54dfafb9e17ce196
        .quad 0x25923071e9aaa3b4
        .quad 0x5d8e589ca1002e9d
        .quad 0xc0bf1d950842a94b
        .quad 0xb2d3c363588f2e3e
        .quad 0x0a961438bb51e2ef
        .quad 0x1583d7783c1cbf86



        .quad 0xeceea2ef5da27ae1
        .quad 0x597c3a1455670174
        .quad 0xc9a62a126609167a
        .quad 0x252a5f2e81ed8f70
        .quad 0x90034704cc9d28c7
        .quad 0x1d1b679ef72cc58f
        .quad 0x16e12b5fbe5b8726
        .quad 0x4958064e83c5580a
        .quad 0x0d2894265066e80d
        .quad 0xfcc3f785307c8c6b
        .quad 0x1b53da780c1112fd
        .quad 0x079c170bd843b388



        .quad 0x0506ece464fa6fff
        .quad 0xbee3431e6205e523
        .quad 0x3579422451b8ea42
        .quad 0x6dec05e34ac9fb00
        .quad 0xcdd6cd50c0d5d056
        .quad 0x9af7686dbb03573b
        .quad 0x3ca6723ff3c3ef48
        .quad 0x6768c0d7317b8acc
        .quad 0x94b625e5f155c1b3
        .quad 0x417bf3a7997b7b91
        .quad 0xc22cbddc6d6b2600
        .quad 0x51445e14ddcd52f4



        .quad 0x57502b4b3b144951
        .quad 0x8e67ff6b444bbcb3
        .quad 0xb8bd6927166385db
        .quad 0x13186f31e39295c8
        .quad 0x893147ab2bbea455
        .quad 0x8c53a24f92079129
        .quad 0x4b49f948be30f7a7
        .quad 0x12e990086e4fd43d
        .quad 0xf10c96b37fdfbb2e
        .quad 0x9f9a935e121ceaf9
        .quad 0xdf1136c43a5b983f
        .quad 0x77b2e3f05d3e99af



        .quad 0xfd0d75879cf12657
        .quad 0xe82fef94e53a0e29
        .quad 0xcc34a7f05bbb4be7
        .quad 0x0b251172a50c38a2
        .quad 0x9532f48fcc5cd29b
        .quad 0x2ba851bea3ce3671
        .quad 0x32dacaa051122941
        .quad 0x478d99d9350004f2
        .quad 0x1d5ad94890bb02c0
        .quad 0x50e208b10ec25115
        .quad 0xa26a22894ef21702
        .quad 0x4dc923343b524805



        .quad 0xe3828c400f8086b6
        .quad 0x3f77e6f7979f0dc8
        .quad 0x7ef6de304df42cb4
        .quad 0x5265797cb6abd784
        .quad 0x3ad3e3ebf36c4975
        .quad 0xd75d25a537862125
        .quad 0xe873943da025a516
        .quad 0x6bbc7cb4c411c847
        .quad 0x3c6f9cd1d4a50d56
        .quad 0xb6244077c6feab7e
        .quad 0x6ff9bf483580972e
        .quad 0x00375883b332acfb



        .quad 0x0001b2cd28cb0940
        .quad 0x63fb51a06f1c24c9
        .quad 0xb5ad8691dcd5ca31
        .quad 0x67238dbd8c450660
        .quad 0xc98bec856c75c99c
        .quad 0xe44184c000e33cf4
        .quad 0x0a676b9bba907634
        .quad 0x669e2cb571f379d7
        .quad 0xcb116b73a49bd308
        .quad 0x025aad6b2392729e
        .quad 0xb4793efa3f55d9b1
        .quad 0x72a1056140678bb9



        .quad 0xa2b6812b1cc9249d
        .quad 0x62866eee21211f58
        .quad 0x2cb5c5b85df10ece
        .quad 0x03a6b259e263ae00
        .quad 0x0d8d2909e2e505b6
        .quad 0x98ca78abc0291230
        .quad 0x77ef5569a9b12327
        .quad 0x7c77897b81439b47
        .quad 0xf1c1b5e2de331cb5
        .quad 0x5a9f5d8e15fca420
        .quad 0x9fa438f17bd932b1
        .quad 0x2a381bf01c6146e7



        .quad 0xac9b9879cfc811c1
        .quad 0x8b7d29813756e567
        .quad 0x50da4e607c70edfc
        .quad 0x5dbca62f884400b6
        .quad 0xf7c0be32b534166f
        .quad 0x27e6ca6419cf70d4
        .quad 0x934df7d7a957a759
        .quad 0x5701461dabdec2aa
        .quad 0x2c6747402c915c25
        .quad 0x1bdcd1a80b0d340a
        .quad 0x5e5601bd07b43f5f
        .quad 0x2555b4e05539a242



        .quad 0x6fc09f5266ddd216
        .quad 0xdce560a7c8e37048
        .quad 0xec65939da2df62fd
        .quad 0x7a869ae7e52ed192
        .quad 0x78409b1d87e463d4
        .quad 0xad4da95acdfb639d
        .quad 0xec28773755259b9c
        .quad 0x69c806e9c31230ab
        .quad 0x7b48f57414bb3f22
        .quad 0x68c7cee4aedccc88
        .quad 0xed2f936179ed80be
        .quad 0x25d70b885f77bc4b



        .quad 0x4151c3d9762bf4de
        .quad 0x083f435f2745d82b
        .quad 0x29775a2e0d23ddd5
        .quad 0x138e3a6269a5db24
        .quad 0x98459d29bb1ae4d4
        .quad 0x56b9c4c739f954ec
        .quad 0x832743f6c29b4b3e
        .quad 0x21ea8e2798b6878a
        .quad 0x87bef4b46a5a7b9c
        .quad 0xd2299d1b5fc1d062
        .quad 0x82409818dd321648
        .quad 0x5c5abeb1e5a2e03d



        .quad 0x14722af4b73c2ddb
        .quad 0xbc470c5f5a05060d
        .quad 0x00943eac2581b02e
        .quad 0x0e434b3b1f499c8f
        .quad 0x02cde6de1306a233
        .quad 0x7b5a52a2116f8ec7
        .quad 0xe1c681f4c1163b5b
        .quad 0x241d350660d32643
        .quad 0x6be4404d0ebc52c7
        .quad 0xae46233bb1a791f5
        .quad 0x2aec170ed25db42b
        .quad 0x1d8dfd966645d694



        .quad 0x296fa9c59c2ec4de
        .quad 0xbc8b61bf4f84f3cb
        .quad 0x1c7706d917a8f908
        .quad 0x63b795fc7ad3255d
        .quad 0xd598639c12ddb0a4
        .quad 0xa5d19f30c024866b
        .quad 0xd17c2f0358fce460
        .quad 0x07a195152e095e8a
        .quad 0xa8368f02389e5fc8
        .quad 0x90433b02cf8de43b
        .quad 0xafa1fd5dc5412643
        .quad 0x3e8fe83d032f0137



        .quad 0x2f8b15b90570a294
        .quad 0x94f2427067084549
        .quad 0xde1c5ae161bbfd84
        .quad 0x75ba3b797fac4007
        .quad 0x08704c8de8efd13c
        .quad 0xdfc51a8e33e03731
        .quad 0xa59d5da51260cde3
        .quad 0x22d60899a6258c86
        .quad 0x6239dbc070cdd196
        .quad 0x60fe8a8b6c7d8a9a
        .quad 0xb38847bceb401260
        .quad 0x0904d07b87779e5e



        .quad 0xb4ce1fd4ddba919c
        .quad 0xcf31db3ec74c8daa
        .quad 0x2c63cc63ad86cc51
        .quad 0x43e2143fbc1dde07
        .quad 0xf4322d6648f940b9
        .quad 0x06952f0cbd2d0c39
        .quad 0x167697ada081f931
        .quad 0x6240aacebaf72a6c
        .quad 0xf834749c5ba295a0
        .quad 0xd6947c5bca37d25a
        .quad 0x66f13ba7e7c9316a
        .quad 0x56bdaf238db40cac



        .quad 0x362ab9e3f53533eb
        .quad 0x338568d56eb93d40
        .quad 0x9e0e14521d5a5572
        .quad 0x1d24a86d83741318
        .quad 0x1310d36cc19d3bb2
        .quad 0x062a6bb7622386b9
        .quad 0x7c9b8591d7a14f5c
        .quad 0x03aa31507e1e5754
        .quad 0xf4ec7648ffd4ce1f
        .quad 0xe045eaf054ac8c1c
        .quad 0x88d225821d09357c
        .quad 0x43b261dc9aeb4859



        .quad 0xe55b1e1988bb79bb
        .quad 0xa09ed07dc17a359d
        .quad 0xb02c2ee2603dea33
        .quad 0x326055cf5b276bc2
        .quad 0x19513d8b6c951364
        .quad 0x94fe7126000bf47b
        .quad 0x028d10ddd54f9567
        .quad 0x02b4d5e242940964
        .quad 0xb4a155cb28d18df2
        .quad 0xeacc4646186ce508
        .quad 0xc49cf4936c824389
        .quad 0x27a6c809ae5d3410



        .quad 0x8ba6ebcd1f0db188
        .quad 0x37d3d73a675a5be8
        .quad 0xf22edfa315f5585a
        .quad 0x2cb67174ff60a17e
        .quad 0xcd2c270ac43d6954
        .quad 0xdd4a3e576a66cab2
        .quad 0x79fa592469d7036c
        .quad 0x221503603d8c2599
        .quad 0x59eecdf9390be1d0
        .quad 0xa9422044728ce3f1
        .quad 0x82891c667a94f0f4
        .quad 0x7b1df4b73890f436



        .quad 0xe492f2e0b3b2a224
        .quad 0x7c6c9e062b551160
        .quad 0x15eb8fe20d7f7b0e
        .quad 0x61fcef2658fc5992
        .quad 0x5f2e221807f8f58c
        .quad 0xe3555c9fd49409d4
        .quad 0xb2aaa88d1fb6a630
        .quad 0x68698245d352e03d
        .quad 0xdbb15d852a18187a
        .quad 0xf3e4aad386ddacd7
        .quad 0x44bae2810ff6c482
        .quad 0x46cf4c473daf01cf



        .quad 0x426525ed9ec4e5f9
        .quad 0x0e5eda0116903303
        .quad 0x72b1a7f2cbe5cadc
        .quad 0x29387bcd14eb5f40
        .quad 0x213c6ea7f1498140
        .quad 0x7c1e7ef8392b4854
        .quad 0x2488c38c5629ceba
        .quad 0x1065aae50d8cc5bb
        .quad 0x1c2c4525df200d57
        .quad 0x5c3b2dd6bfca674a
        .quad 0x0a07e7b1e1834030
        .quad 0x69a198e64f1ce716



        .quad 0x7afcd613efa9d697
        .quad 0x0cc45aa41c067959
        .quad 0xa56fe104c1fada96
        .quad 0x3a73b70472e40365
        .quad 0x7b26e56b9e2d4734
        .quad 0xc4c7132b81c61675
        .quad 0xef5c9525ec9cde7f
        .quad 0x39c80b16e71743ad
        .quad 0x0f196e0d1b826c68
        .quad 0xf71ff0e24960e3db
        .quad 0x6113167023b7436c
        .quad 0x0cf0ea5877da7282



        .quad 0x196c80a4ddd4ccbd
        .quad 0x22e6f55d95f2dd9d
        .quad 0xc75e33c740d6c71b
        .quad 0x7bb51279cb3c042f
        .quad 0xe332ced43ba6945a
        .quad 0xde0b1361e881c05d
        .quad 0x1ad40f095e67ed3b
        .quad 0x5da8acdab8c63d5d
        .quad 0xc4b6664a3a70159f
        .quad 0x76194f0f0a904e14
        .quad 0xa5614c39a4096c13
        .quad 0x6cd0ff50979feced



        .quad 0xc0e067e78f4428ac
        .quad 0x14835ab0a61135e3
        .quad 0xf21d14f338062935
        .quad 0x6390a4c8df04849c
        .quad 0x7fecfabdb04ba18e
        .quad 0xd0fc7bfc3bddbcf7
        .quad 0xa41d486e057a131c
        .quad 0x641a4391f2223a61
        .quad 0xc5c6b95aa606a8db
        .quad 0x914b7f9eb06825f1
        .quad 0x2a731f6b44fc9eff
        .quad 0x30ddf38562705cfc



        .quad 0x4e3dcbdad1bff7f9
        .quad 0xc9118e8220645717
        .quad 0xbacccebc0f189d56
        .quad 0x1b4822e9d4467668
        .quad 0x33bef2bd68bcd52c
        .quad 0xc649dbb069482ef2
        .quad 0xb5b6ee0c41cb1aee
        .quad 0x5c294d270212a7e5
        .quad 0xab360a7f25563781
        .quad 0x2512228a480f7958
        .quad 0xc75d05276114b4e3
        .quad 0x222d9625d976fe2a



        .quad 0x1c717f85b372ace1
        .quad 0x81930e694638bf18
        .quad 0x239cad056bc08b58
        .quad 0x0b34271c87f8fff4
        .quad 0x0f94be7e0a344f85
        .quad 0xeb2faa8c87f22c38
        .quad 0x9ce1e75e4ee16f0f
        .quad 0x43e64e5418a08dea
        .quad 0x8155e2521a35ce63
        .quad 0xbe100d4df912028e
        .quad 0xbff80bf8a57ddcec
        .quad 0x57342dc96d6bc6e4



        .quad 0xefeef065c8ce5998
        .quad 0xbf029510b5cbeaa2
        .quad 0x8c64a10620b7c458
        .quad 0x35134fb231c24855
        .quad 0xf3c3bcb71e707bf6
        .quad 0x351d9b8c7291a762
        .quad 0x00502e6edad69a33
        .quad 0x522f521f1ec8807f
        .quad 0x272c1f46f9a3902b
        .quad 0xc91ba3b799657bcc
        .quad 0xae614b304f8a1c0e
        .quad 0x7afcaad70b99017b



        .quad 0xc25ded54a4b8be41
        .quad 0x902d13e11bb0e2dd
        .quad 0x41f43233cde82ab2
        .quad 0x1085faa5c3aae7cb
        .quad 0xa88141ecef842b6b
        .quad 0x55e7b14797abe6c5
        .quad 0x8c748f9703784ffe
        .quad 0x5b50a1f7afcd00b7
        .quad 0x9b840f66f1361315
        .quad 0x18462242701003e9
        .quad 0x65ed45fae4a25080
        .quad 0x0a2862393fda7320



        .quad 0x46ab13c8347cbc9d
        .quad 0x3849e8d499c12383
        .quad 0x4cea314087d64ac9
        .quad 0x1f354134b1a29ee7
        .quad 0x960e737b6ecb9d17
        .quad 0xfaf24948d67ceae1
        .quad 0x37e7a9b4d55e1b89
        .quad 0x5cb7173cb46c59eb
        .quad 0x4a89e68b82b7abf0
        .quad 0xf41cd9279ba6b7b9
        .quad 0x16e6c210e18d876f
        .quad 0x7cacdb0f7f1b09c6



        .quad 0x9062b2e0d91a78bc
        .quad 0x47c9889cc8509667
        .quad 0x9df54a66405070b8
        .quad 0x7369e6a92493a1bf
        .quad 0xe1014434dcc5caed
        .quad 0x47ed5d963c84fb33
        .quad 0x70019576ed86a0e7
        .quad 0x25b2697bd267f9e4
        .quad 0x9d673ffb13986864
        .quad 0x3ca5fbd9415dc7b8
        .quad 0xe04ecc3bdf273b5e
        .quad 0x1420683db54e4cd2



        .quad 0xb478bd1e249dd197
        .quad 0x620c35005e58c102
        .quad 0xfb02d32fccbaac5c
        .quad 0x60b63bebf508a72d
        .quad 0x34eebb6fc1cc5ad0
        .quad 0x6a1b0ce99646ac8b
        .quad 0xd3b0da49a66bde53
        .quad 0x31e83b4161d081c1
        .quad 0x97e8c7129e062b4f
        .quad 0x49e48f4f29320ad8
        .quad 0x5bece14b6f18683f
        .quad 0x55cf1eb62d550317



        .quad 0x5879101065c23d58
        .quad 0x8b9d086d5094819c
        .quad 0xe2402fa912c55fa7
        .quad 0x669a6564570891d4
        .quad 0x3076b5e37df58c52
        .quad 0xd73ab9dde799cc36
        .quad 0xbd831ce34913ee20
        .quad 0x1a56fbaa62ba0133
        .quad 0x943e6b505c9dc9ec
        .quad 0x302557bba77c371a
        .quad 0x9873ae5641347651
        .quad 0x13c4836799c58a5c



        .quad 0x423a5d465ab3e1b9
        .quad 0xfc13c187c7f13f61
        .quad 0x19f83664ecb5b9b6
        .quad 0x66f80c93a637b607
        .quad 0xc4dcfb6a5d8bd080
        .quad 0xdeebc4ec571a4842
        .quad 0xd4b2e883b8e55365
        .quad 0x50bdc87dc8e5b827
        .quad 0x606d37836edfe111
        .quad 0x32353e15f011abd9
        .quad 0x64b03ac325b73b96
        .quad 0x1dd56444725fd5ae



        .quad 0x8fa47ff83362127d
        .quad 0xbc9f6ac471cd7c15
        .quad 0x6e71454349220c8b
        .quad 0x0e645912219f732e
        .quad 0xc297e60008bac89a
        .quad 0x7d4cea11eae1c3e0
        .quad 0xf3e38be19fe7977c
        .quad 0x3a3a450f63a305cd
        .quad 0x078f2f31d8394627
        .quad 0x389d3183de94a510
        .quad 0xd1e36c6d17996f80
        .quad 0x318c8d9393a9a87b



        .quad 0xf2745d032afffe19
        .quad 0x0c9f3c497f24db66
        .quad 0xbc98d3e3ba8598ef
        .quad 0x224c7c679a1d5314
        .quad 0x5d669e29ab1dd398
        .quad 0xfc921658342d9e3b
        .quad 0x55851dfdf35973cd
        .quad 0x509a41c325950af6
        .quad 0xbdc06edca6f925e9
        .quad 0x793ef3f4641b1f33
        .quad 0x82ec12809d833e89
        .quad 0x05bff02328a11389



        .quad 0x3632137023cae00b
        .quad 0x544acf0ad1accf59
        .quad 0x96741049d21a1c88
        .quad 0x780b8cc3fa2a44a7
        .quad 0x6881a0dd0dc512e4
        .quad 0x4fe70dc844a5fafe
        .quad 0x1f748e6b8f4a5240
        .quad 0x576277cdee01a3ea
        .quad 0x1ef38abc234f305f
        .quad 0x9a577fbd1405de08
        .quad 0x5e82a51434e62a0d
        .quad 0x5ff418726271b7a1



        .quad 0x398e080c1789db9d
        .quad 0xa7602025f3e778f5
        .quad 0xfa98894c06bd035d
        .quad 0x106a03dc25a966be
        .quad 0xe5db47e813b69540
        .quad 0xf35d2a3b432610e1
        .quad 0xac1f26e938781276
        .quad 0x29d4db8ca0a0cb69
        .quad 0xd9ad0aaf333353d0
        .quad 0x38669da5acd309e5
        .quad 0x3c57658ac888f7f0
        .quad 0x4ab38a51052cbefa



        .quad 0xdfdacbee4324c0e9
        .quad 0x054442883f955bb7
        .quad 0xdef7aaa8ea31609f
        .quad 0x68aee70642287cff
        .quad 0xf68fe2e8809de054
        .quad 0xe3bc096a9c82bad1
        .quad 0x076353d40aadbf45
        .quad 0x7b9b1fb5dea1959e
        .quad 0xf01cc8f17471cc0c
        .quad 0x95242e37579082bb
        .quad 0x27776093d3e46b5f
        .quad 0x2d13d55a28bd85fb



        .quad 0xfac5d2065b35b8da
        .quad 0xa8da8a9a85624bb7
        .quad 0xccd2ca913d21cd0f
        .quad 0x6b8341ee8bf90d58
        .quad 0xbf019cce7aee7a52
        .quad 0xa8ded2b6e454ead3
        .quad 0x3c619f0b87a8bb19
        .quad 0x3619b5d7560916d8
        .quad 0x3579f26b0282c4b2
        .quad 0x64d592f24fafefae
        .quad 0xb7cded7b28c8c7c0
        .quad 0x6a927b6b7173a8d7



        .quad 0x1f6db24f986e4656
        .quad 0x1021c02ed1e9105b
        .quad 0xf8ff3fff2cc0a375
        .quad 0x1d2a6bf8c6c82592
        .quad 0x8d7040863ece88eb
        .quad 0xf0e307a980eec08c
        .quad 0xac2250610d788fda
        .quad 0x056d92a43a0d478d
        .quad 0x1b05a196fc3da5a1
        .quad 0x77d7a8c243b59ed0
        .quad 0x06da3d6297d17918
        .quad 0x66fbb494f12353f7



        .quad 0x751a50b9d85c0fb8
        .quad 0xd1afdc258bcf097b
        .quad 0x2f16a6a38309a969
        .quad 0x14ddff9ee5b00659
        .quad 0xd6d70996f12309d6
        .quad 0xdbfb2385e9c3d539
        .quad 0x46d602b0f7552411
        .quad 0x270a0b0557843e0c
        .quad 0x61ff0640a7862bcc
        .quad 0x81cac09a5f11abfe
        .quad 0x9047830455d12abb
        .quad 0x19a4bde1945ae873



        .quad 0x9b9f26f520a6200a
        .quad 0x64804443cf13eaf8
        .quad 0x8a63673f8631edd3
        .quad 0x72bbbce11ed39dc1
        .quad 0x40c709dec076c49f
        .quad 0x657bfaf27f3e53f6
        .quad 0x40662331eca042c4
        .quad 0x14b375487eb4df04
        .quad 0xae853c94ab66dc47
        .quad 0xeb62343edf762d6e
        .quad 0xf08e0e186fb2f7d1
        .quad 0x4f0b1c02700ab37a



        .quad 0xe1706787d81951fa
        .quad 0xa10a2c8eb290c77b
        .quad 0xe7382fa03ed66773
        .quad 0x0a4d84710bcc4b54
        .quad 0x79fd21ccc1b2e23f
        .quad 0x4ae7c281453df52a
        .quad 0xc8172ec9d151486b
        .quad 0x68abe9443e0a7534
        .quad 0xda12c6c407831dcb
        .quad 0x0da230d74d5c510d
        .quad 0x4ab1531e6bd404e1
        .quad 0x4106b166bcf440ef



        .quad 0x02e57a421cd23668
        .quad 0x4ad9fb5d0eaef6fd
        .quad 0x954e6727b1244480
        .quad 0x7f792f9d2699f331
        .quad 0xa485ccd539e4ecf2
        .quad 0x5aa3f3ad0555bab5
        .quad 0x145e3439937df82d
        .quad 0x1238b51e1214283f
        .quad 0x0b886b925fd4d924
        .quad 0x60906f7a3626a80d
        .quad 0xecd367b4b98abd12
        .quad 0x2876beb1def344cf



        .quad 0xdc84e93563144691
        .quad 0x632fe8a0d61f23f4
        .quad 0x4caa800612a9a8d5
        .quad 0x48f9dbfa0e9918d3
        .quad 0xd594b3333a8a85f8
        .quad 0x4ea37689e78d7d58
        .quad 0x73bf9f455e8e351f
        .quad 0x5507d7d2bc41ebb4
        .quad 0x1ceb2903299572fc
        .quad 0x7c8ccaa29502d0ee
        .quad 0x91bfa43411cce67b
        .quad 0x5784481964a831e7



        .quad 0xda7c2b256768d593
        .quad 0x98c1c0574422ca13
        .quad 0xf1a80bd5ca0ace1d
        .quad 0x29cdd1adc088a690
        .quad 0xd6cfd1ef5fddc09c
        .quad 0xe82b3efdf7575dce
        .quad 0x25d56b5d201634c2
        .quad 0x3041c6bb04ed2b9b
        .quad 0x0ff2f2f9d956e148
        .quad 0xade797759f356b2e
        .quad 0x1a4698bb5f6c025c
        .quad 0x104bbd6814049a7b



        .quad 0x51f0fd3168f1ed67
        .quad 0x2c811dcdd86f3bc2
        .quad 0x44dc5c4304d2f2de
        .quad 0x5be8cc57092a7149
        .quad 0xa95d9a5fd67ff163
        .quad 0xe92be69d4cc75681
        .quad 0xb7f8024cde20f257
        .quad 0x204f2a20fb072df5
        .quad 0xc8143b3d30ebb079
        .quad 0x7589155abd652e30
        .quad 0x653c3c318f6d5c31
        .quad 0x2570fb17c279161f



        .quad 0x3efa367f2cb61575
        .quad 0xf5f96f761cd6026c
        .quad 0xe8c7142a65b52562
        .quad 0x3dcb65ea53030acd
        .quad 0x192ea9550bb8245a
        .quad 0xc8e6fba88f9050d1
        .quad 0x7986ea2d88a4c935
        .quad 0x241c5f91de018668
        .quad 0x28d8172940de6caa
        .quad 0x8fbf2cf022d9733a
        .quad 0x16d7fcdd235b01d1
        .quad 0x08420edd5fcdf0e5



        .quad 0xcdff20ab8362fa4a
        .quad 0x57e118d4e21a3e6e
        .quad 0xe3179617fc39e62b
        .quad 0x0d9a53efbc1769fd
        .quad 0x0358c34e04f410ce
        .quad 0xb6135b5a276e0685
        .quad 0x5d9670c7ebb91521
        .quad 0x04d654f321db889c
        .quad 0x5e7dc116ddbdb5d5
        .quad 0x2954deb68da5dd2d
        .quad 0x1cb608173334a292
        .quad 0x4a7a4f2618991ad7



        .quad 0xf4a718025fb15f95
        .quad 0x3df65f346b5c1b8f
        .quad 0xcdfcf08500e01112
        .quad 0x11b50c4cddd31848
        .quad 0x24c3b291af372a4b
        .quad 0x93da8270718147f2
        .quad 0xdd84856486899ef2
        .quad 0x4a96314223e0ee33
        .quad 0xa6e8274408a4ffd6
        .quad 0x738e177e9c1576d9
        .quad 0x773348b63d02b3f2
        .quad 0x4f4bce4dce6bcc51



        .quad 0xa71fce5ae2242584
        .quad 0x26ea725692f58a9e
        .quad 0xd21a09d71cea3cf4
        .quad 0x73fcdd14b71c01e6
        .quad 0x30e2616ec49d0b6f
        .quad 0xe456718fcaec2317
        .quad 0x48eb409bf26b4fa6
        .quad 0x3042cee561595f37
        .quad 0x427e7079449bac41
        .quad 0x855ae36dbce2310a
        .quad 0x4cae76215f841a7c
        .quad 0x389e740c9a9ce1d6



        .quad 0x64fcb3ae34dcb9ce
        .quad 0x97500323e348d0ad
        .quad 0x45b3f07d62c6381b
        .quad 0x61545379465a6788
        .quad 0xc9bd78f6570eac28
        .quad 0xe55b0b3227919ce1
        .quad 0x65fc3eaba19b91ed
        .quad 0x25c425e5d6263690
        .quad 0x3f3e06a6f1d7de6e
        .quad 0x3ef976278e062308
        .quad 0x8c14f6264e8a6c77
        .quad 0x6539a08915484759



        .quad 0xe9d21f74c3d2f773
        .quad 0xc150544125c46845
        .quad 0x624e5ce8f9b99e33
        .quad 0x11c5e4aac5cd186c
        .quad 0xddc4dbd414bb4a19
        .quad 0x19b2bc3c98424f8e
        .quad 0x48a89fd736ca7169
        .quad 0x0f65320ef019bd90
        .quad 0xd486d1b1cafde0c6
        .quad 0x4f3fe6e3163b5181
        .quad 0x59a8af0dfaf2939a
        .quad 0x4cabc7bdec33072a



        .quad 0x16faa8fb532f7428
        .quad 0xdbd42ea046a4e272
        .quad 0x5337653b8b9ea480
        .quad 0x4065947223973f03
        .quad 0xf7c0a19c1a54a044
        .quad 0x4a1c5e2477bd9fbb
        .quad 0xa6e3ca115af22972
        .quad 0x1819bb953f2e9e0d
        .quad 0x498fbb795e042e84
        .quad 0x7d0dd89a7698b714
        .quad 0x8bfb0ba427fe6295
        .quad 0x36ba82e721200524



        .quad 0xd60ecbb74245ec41
        .quad 0xfd9be89e34348716
        .quad 0xc9240afee42284de
        .quad 0x4472f648d0531db4
        .quad 0xc8d69d0a57274ed5
        .quad 0x45ba803260804b17
        .quad 0xdf3cda102255dfac
        .quad 0x77d221232709b339
        .quad 0x498a6d7064ad94d8
        .quad 0xa5b5c8fd9af62263
        .quad 0x8ca8ed0545c141f4
        .quad 0x2c63bec3662d358c



        .quad 0x7fe60d8bea787955
        .quad 0xb9dc117eb5f401b7
        .quad 0x91c7c09a19355cce
        .quad 0x22692ef59442bedf
        .quad 0x9a518b3a8586f8bf
        .quad 0x9ee71af6cbb196f0
        .quad 0xaa0625e6a2385cf2
        .quad 0x1deb2176ddd7c8d1
        .quad 0x8563d19a2066cf6c
        .quad 0x401bfd8c4dcc7cd7
        .quad 0xd976a6becd0d8f62
        .quad 0x67cfd773a278b05e



        .quad 0x8dec31faef3ee475
        .quad 0x99dbff8a9e22fd92
        .quad 0x512d11594e26cab1
        .quad 0x0cde561eec4310b9
        .quad 0x2d5fa9855a4e586a
        .quad 0x65f8f7a449beab7e
        .quad 0xaa074dddf21d33d3
        .quad 0x185cba721bcb9dee
        .quad 0x93869da3f4e3cb41
        .quad 0xbf0392f540f7977e
        .quad 0x026204fcd0463b83
        .quad 0x3ec91a769eec6eed



        .quad 0x1e9df75bf78166ad
        .quad 0x4dfda838eb0cd7af
        .quad 0xba002ed8c1eaf988
        .quad 0x13fedb3e11f33cfc
        .quad 0x0fad2fb7b0a3402f
        .quad 0x46615ecbfb69f4a8
        .quad 0xf745bcc8c5f8eaa6
        .quad 0x7a5fa8794a94e896
        .quad 0x52958faa13cd67a1
        .quad 0x965ee0818bdbb517
        .quad 0x16e58daa2e8845b3
        .quad 0x357d397d5499da8f



        .quad 0x1ebfa05fb0bace6c
        .quad 0xc934620c1caf9a1e
        .quad 0xcc771cc41d82b61a
        .quad 0x2d94a16aa5f74fec
        .quad 0x481dacb4194bfbf8
        .quad 0x4d77e3f1bae58299
        .quad 0x1ef4612e7d1372a0
        .quad 0x3a8d867e70ff69e1
        .quad 0x6f58cd5d55aff958
        .quad 0xba3eaa5c75567721
        .quad 0x75c123999165227d
        .quad 0x69be1343c2f2b35e



        .quad 0x0e091d5ee197c92a
        .quad 0x4f51019f2945119f
        .quad 0x143679b9f034e99c
        .quad 0x7d88112e4d24c696
        .quad 0x82bbbdac684b8de3
        .quad 0xa2f4c7d03fca0718
        .quad 0x337f92fbe096aaa8
        .quad 0x200d4d8c63587376
        .quad 0x208aed4b4893b32b
        .quad 0x3efbf23ebe59b964
        .quad 0xd762deb0dba5e507
        .quad 0x69607bd681bd9d94



        .quad 0xf6be021068de1ce1
        .quad 0xe8d518e70edcbc1f
        .quad 0xe3effdd01b5505a5
        .quad 0x35f63353d3ec3fd0
        .quad 0x3b7f3bd49323a902
        .quad 0x7c21b5566b2c6e53
        .quad 0xe5ba8ff53a7852a7
        .quad 0x28bc77a5838ece00
        .quad 0x63ba78a8e25d8036
        .quad 0x63651e0094333490
        .quad 0x48d82f20288ce532
        .quad 0x3a31abfa36b57524



        .quad 0x239e9624089c0a2e
        .quad 0xc748c4c03afe4738
        .quad 0x17dbed2a764fa12a
        .quad 0x639b93f0321c8582
        .quad 0xc08f788f3f78d289
        .quad 0xfe30a72ca1404d9f
        .quad 0xf2778bfccf65cc9d
        .quad 0x7ee498165acb2021
        .quad 0x7bd508e39111a1c3
        .quad 0x2b2b90d480907489
        .quad 0xe7d2aec2ae72fd19
        .quad 0x0edf493c85b602a6



        .quad 0xaecc8158599b5a68
        .quad 0xea574f0febade20e
        .quad 0x4fe41d7422b67f07
        .quad 0x403b92e3019d4fb4
        .quad 0x6767c4d284764113
        .quad 0xa090403ff7f5f835
        .quad 0x1c8fcffacae6bede
        .quad 0x04c00c54d1dfa369
        .quad 0x4dc22f818b465cf8
        .quad 0x71a0f35a1480eff8
        .quad 0xaee8bfad04c7d657
        .quad 0x355bb12ab26176f4



        .quad 0xa71e64cc7493bbf4
        .quad 0xe5bd84d9eca3b0c3
        .quad 0x0a6bc50cfa05e785
        .quad 0x0f9b8132182ec312
        .quad 0xa301dac75a8c7318
        .quad 0xed90039db3ceaa11
        .quad 0x6f077cbf3bae3f2d
        .quad 0x7518eaf8e052ad8e
        .quad 0xa48859c41b7f6c32
        .quad 0x0f2d60bcf4383298
        .quad 0x1815a929c9b1d1d9
        .quad 0x47c3871bbb1755c4



        .quad 0x5144539771ec4f48
        .quad 0xf805b17dc98c5d6e
        .quad 0xf762c11a47c3c66b
        .quad 0x00b89b85764699dc
        .quad 0xfbe65d50c85066b0
        .quad 0x62ecc4b0b3a299b0
        .quad 0xe53754ea441ae8e0
        .quad 0x08fea02ce8d48d5f
        .quad 0x824ddd7668deead0
        .quad 0xc86445204b685d23
        .quad 0xb514cfcd5d89d665
        .quad 0x473829a74f75d537



        .quad 0x82d2da754679c418
        .quad 0xe63bd7d8b2618df0
        .quad 0x355eef24ac47eb0a
        .quad 0x2078684c4833c6b4
        .quad 0x23d9533aad3902c9
        .quad 0x64c2ddceef03588f
        .quad 0x15257390cfe12fb4
        .quad 0x6c668b4d44e4d390
        .quad 0x3b48cf217a78820c
        .quad 0xf76a0ab281273e97
        .quad 0xa96c65a78c8eed7b
        .quad 0x7411a6054f8a433f



        .quad 0x4d659d32b99dc86d
        .quad 0x044cdc75603af115
        .quad 0xb34c712cdcc2e488
        .quad 0x7c136574fb8134ff
        .quad 0x579ae53d18b175b4
        .quad 0x68713159f392a102
        .quad 0x8455ecba1eef35f5
        .quad 0x1ec9a872458c398f
        .quad 0xb8e6a4d400a2509b
        .quad 0x9b81d7020bc882b4
        .quad 0x57e7cc9bf1957561
        .quad 0x3add88a5c7cd6460



        .quad 0xab895770b635dcf2
        .quad 0x02dfef6cf66c1fbc
        .quad 0x85530268beb6d187
        .quad 0x249929fccc879e74
        .quad 0x85c298d459393046
        .quad 0x8f7e35985ff659ec
        .quad 0x1d2ca22af2f66e3a
        .quad 0x61ba1131a406a720
        .quad 0xa3d0a0f116959029
        .quad 0x023b6b6cba7ebd89
        .quad 0x7bf15a3e26783307
        .quad 0x5620310cbbd8ece7



        .quad 0x528993434934d643
        .quad 0xb9dbf806a51222f5
        .quad 0x8f6d878fc3f41c22
        .quad 0x37676a2a4d9d9730
        .quad 0x6646b5f477e285d6
        .quad 0x40e8ff676c8f6193
        .quad 0xa6ec7311abb594dd
        .quad 0x7ec846f3658cec4d
        .quad 0x9b5e8f3f1da22ec7
        .quad 0x130f1d776c01cd13
        .quad 0x214c8fcfa2989fb8
        .quad 0x6daaf723399b9dd5



        .quad 0x591e4a5610628564
        .quad 0x2a4bb87ca8b4df34
        .quad 0xde2a2572e7a38e43
        .quad 0x3cbdabd9fee5046e
        .quad 0x81aebbdd2cd13070
        .quad 0x962e4325f85a0e9e
        .quad 0xde9391aacadffecb
        .quad 0x53177fda52c230e6
        .quad 0xa7bc970650b9de79
        .quad 0x3d12a7fbc301b59b
        .quad 0x02652e68d36ae38c
        .quad 0x79d739835a6199dc



        .quad 0xd9354df64131c1bd
        .quad 0x758094a186ec5822
        .quad 0x4464ee12e459f3c2
        .quad 0x6c11fce4cb133282
        .quad 0x21c9d9920d591737
        .quad 0x9bea41d2e9b46cd6
        .quad 0xe20e84200d89bfca
        .quad 0x79d99f946eae5ff8
        .quad 0xf17b483568673205
        .quad 0x387deae83caad96c
        .quad 0x61b471fd56ffe386
        .quad 0x31741195b745a599



        .quad 0xe8d10190b77a360b
        .quad 0x99b983209995e702
        .quad 0xbd4fdff8fa0247aa
        .quad 0x2772e344e0d36a87
        .quad 0x17f8ba683b02a047
        .quad 0x50212096feefb6c8
        .quad 0x70139be21556cbe2
        .quad 0x203e44a11d98915b
        .quad 0xd6863eba37b9e39f
        .quad 0x105bc169723b5a23
        .quad 0x104f6459a65c0762
        .quad 0x567951295b4d38d4



        .quad 0x535fd60613037524
        .quad 0xe210adf6b0fbc26a
        .quad 0xac8d0a9b23e990ae
        .quad 0x47204d08d72fdbf9
        .quad 0x07242eb30d4b497f
        .quad 0x1ef96306b9bccc87
        .quad 0x37950934d8116f45
        .quad 0x05468d6201405b04
        .quad 0x00f565a9f93267de
        .quad 0xcecfd78dc0d58e8a
        .quad 0xa215e2dcf318e28e
        .quad 0x4599ee919b633352



        .quad 0xd3c220ca70e0e76b
        .quad 0xb12bea58ea9f3094
        .quad 0x294ddec8c3271282
        .quad 0x0c3539e1a1d1d028
        .quad 0xac746d6b861ae579
        .quad 0x31ab0650f6aea9dc
        .quad 0x241d661140256d4c
        .quad 0x2f485e853d21a5de
        .quad 0x329744839c0833f3
        .quad 0x6fe6257fd2abc484
        .quad 0x5327d1814b358817
        .quad 0x65712585893fe9bc



        .quad 0x9c102fb732a61161
        .quad 0xe48e10dd34d520a8
        .quad 0x365c63546f9a9176
        .quad 0x32f6fe4c046f6006
        .quad 0x81c29f1bd708ee3f
        .quad 0xddcb5a05ae6407d0
        .quad 0x97aec1d7d2a3eba7
        .quad 0x1590521a91d50831
        .quad 0x40a3a11ec7910acc
        .quad 0x9013dff8f16d27ae
        .quad 0x1a9720d8abb195d4
        .quad 0x1bb9fe452ea98463



        .quad 0xe9d1d950b3d54f9e
        .quad 0x2d5f9cbee00d33c1
        .quad 0x51c2c656a04fc6ac
        .quad 0x65c091ee3c1cbcc9
        .quad 0xcf5e6c95cc36747c
        .quad 0x294201536b0bc30d
        .quad 0x453ac67cee797af0
        .quad 0x5eae6ab32a8bb3c9
        .quad 0x7083661114f118ea
        .quad 0x2b37b87b94349cad
        .quad 0x7273f51cb4e99f40
        .quad 0x78a2a95823d75698



        .quad 0xa2b072e95c8c2ace
        .quad 0x69cffc96651e9c4b
        .quad 0x44328ef842e7b42b
        .quad 0x5dd996c122aadeb3
        .quad 0xb4f23c425ef83207
        .quad 0xabf894d3c9a934b5
        .quad 0xd0708c1339fd87f7
        .quad 0x1876789117166130
        .quad 0x925b5ef0670c507c
        .quad 0x819bc842b93c33bf
        .quad 0x10792e9a70dd003f
        .quad 0x59ad4b7a6e28dc74



        .quad 0x5f3a7562eb3dbe47
        .quad 0xf7ea38548ebda0b8
        .quad 0x00c3e53145747299
        .quad 0x1304e9e71627d551
        .quad 0x583b04bfacad8ea2
        .quad 0x29b743e8148be884
        .quad 0x2b1e583b0810c5db
        .quad 0x2b5449e58eb3bbaa
        .quad 0x789814d26adc9cfe
        .quad 0x3c1bab3f8b48dd0b
        .quad 0xda0fe1fff979c60a
        .quad 0x4468de2d7c2dd693



        .quad 0x51bb355e9419469e
        .quad 0x33e6dc4c23ddc754
        .quad 0x93a5b6d6447f9962
        .quad 0x6cce7c6ffb44bd63
        .quad 0x4b9ad8c6f86307ce
        .quad 0x21113531435d0c28
        .quad 0xd4a866c5657a772c
        .quad 0x5da6427e63247352
        .quad 0x1a94c688deac22ca
        .quad 0xb9066ef7bbae1ff8
        .quad 0x88ad8c388d59580f
        .quad 0x58f29abfe79f2ca8



        .quad 0xe90ecfab8de73e68
        .quad 0x54036f9f377e76a5
        .quad 0xf0495b0bbe015982
        .quad 0x577629c4a7f41e36
        .quad 0x4b5a64bf710ecdf6
        .quad 0xb14ce538462c293c
        .quad 0x3643d056d50b3ab9
        .quad 0x6af93724185b4870
        .quad 0x3220024509c6a888
        .quad 0xd2e036134b558973
        .quad 0x83e236233c33289f
        .quad 0x701f25bb0caec18f



        .quad 0xc3a8b0f8e4616ced
        .quad 0xf700660e9e25a87d
        .quad 0x61e3061ff4bca59c
        .quad 0x2e0c92bfbdc40be9
        .quad 0x9d18f6d97cbec113
        .quad 0x844a06e674bfdbe4
        .quad 0x20f5b522ac4e60d6
        .quad 0x720a5bc050955e51
        .quad 0x0c3f09439b805a35
        .quad 0xe84e8b376242abfc
        .quad 0x691417f35c229346
        .quad 0x0e9b9cbb144ef0ec



        .quad 0xfbbad48ffb5720ad
        .quad 0xee81916bdbf90d0e
        .quad 0xd4813152635543bf
        .quad 0x221104eb3f337bd8
        .quad 0x8dee9bd55db1beee
        .quad 0xc9c3ab370a723fb9
        .quad 0x44a8f1bf1c68d791
        .quad 0x366d44191cfd3cde
        .quad 0x9e3c1743f2bc8c14
        .quad 0x2eda26fcb5856c3b
        .quad 0xccb82f0e68a7fb97
        .quad 0x4167a4e6bc593244



        .quad 0x643b9d2876f62700
        .quad 0x5d1d9d400e7668eb
        .quad 0x1b4b430321fc0684
        .quad 0x7938bb7e2255246a
        .quad 0xc2be2665f8ce8fee
        .quad 0xe967ff14e880d62c
        .quad 0xf12e6e7e2f364eee
        .quad 0x34b33370cb7ed2f6
        .quad 0xcdc591ee8681d6cc
        .quad 0xce02109ced85a753
        .quad 0xed7485c158808883
        .quad 0x1176fc6e2dfe65e4



        .quad 0xb4af6cd05b9c619b
        .quad 0x2ddfc9f4b2a58480
        .quad 0x3d4fa502ebe94dc4
        .quad 0x08fc3a4c677d5f34
        .quad 0xdb90e28949770eb8
        .quad 0x98fbcc2aacf440a3
        .quad 0x21354ffeded7879b
        .quad 0x1f6a3e54f26906b6
        .quad 0x60a4c199d30734ea
        .quad 0x40c085b631165cd6
        .quad 0xe2333e23f7598295
        .quad 0x4f2fad0116b900d1



        .quad 0x44beb24194ae4e54
        .quad 0x5f541c511857ef6c
        .quad 0xa61e6b2d368d0498
        .quad 0x445484a4972ef7ab
        .quad 0x962cd91db73bb638
        .quad 0xe60577aafc129c08
        .quad 0x6f619b39f3b61689
        .quad 0x3451995f2944ee81
        .quad 0x9152fcd09fea7d7c
        .quad 0x4a816c94b0935cf6
        .quad 0x258e9aaa47285c40
        .quad 0x10b89ca6042893b7



        .quad 0x9b2a426e3b646025
        .quad 0x32127190385ce4cf
        .quad 0xa25cffc2dd6dea45
        .quad 0x06409010bea8de75
        .quad 0xd67cded679d34aa0
        .quad 0xcc0b9ec0cc4db39f
        .quad 0xa535a456e35d190f
        .quad 0x2e05d9eaf61f6fef
        .quad 0xc447901ad61beb59
        .quad 0x661f19bce5dc880a
        .quad 0x24685482b7ca6827
        .quad 0x293c778cefe07f26



        .quad 0x86809e7007069096
        .quad 0xaad75b15e4e50189
        .quad 0x07f35715a21a0147
        .quad 0x0487f3f112815d5e
        .quad 0x16c795d6a11ff200
        .quad 0xcb70d0e2b15815c9
        .quad 0x89f293209b5395b5
        .quad 0x50b8c2d031e47b4f
        .quad 0x48350c08068a4962
        .quad 0x6ffdd05351092c9a
        .quad 0x17af4f4aaf6fc8dd
        .quad 0x4b0553b53cdba58b



        .quad 0x9c65fcbe1b32ff79
        .quad 0xeb75ea9f03b50f9b
        .quad 0xfced2a6c6c07e606
        .quad 0x35106cd551717908
        .quad 0xbf05211b27c152d4
        .quad 0x5ec26849bd1af639
        .quad 0x5e0b2caa8e6fab98
        .quad 0x054c8bdd50bd0840
        .quad 0x38a0b12f1dcf073d
        .quad 0x4b60a8a3b7f6a276
        .quad 0xfed5ac25d3404f9a
        .quad 0x72e82d5e5505c229



        .quad 0x6b0b697ff0d844c8
        .quad 0xbb12f85cd979cb49
        .quad 0xd2a541c6c1da0f1f
        .quad 0x7b7c242958ce7211
        .quad 0x00d9cdfd69771d02
        .quad 0x410276cd6cfbf17e
        .quad 0x4c45306c1cb12ec7
        .quad 0x2857bf1627500861
        .quad 0x9f21903f0101689e
        .quad 0xd779dfd3bf861005
        .quad 0xa122ee5f3deb0f1b
        .quad 0x510df84b485a00d4



        .quad 0xa54133bb9277a1fa
        .quad 0x74ec3b6263991237
        .quad 0x1a3c54dc35d2f15a
        .quad 0x2d347144e482ba3a
        .quad 0x24b3c887c70ac15e
        .quad 0xb0f3a557fb81b732
        .quad 0x9b2cde2fe578cc1b
        .quad 0x4cf7ed0703b54f8e
        .quad 0x6bd47c6598fbee0f
        .quad 0x9e4733e2ab55be2d
        .quad 0x1093f624127610c5
        .quad 0x4e05e26ad0a1eaa4



        .quad 0xda9b6b624b531f20
        .quad 0x429a760e77509abb
        .quad 0xdbe9f522e823cb80
        .quad 0x618f1856880c8f82
        .quad 0x1833c773e18fe6c0
        .quad 0xe3c4711ad3c87265
        .quad 0x3bfd3c4f0116b283
        .quad 0x1955875eb4cd4db8
        .quad 0x6da6de8f0e399799
        .quad 0x7ad61aa440fda178
        .quad 0xb32cd8105e3563dd
        .quad 0x15f6beae2ae340ae



        .quad 0x862bcb0c31ec3a62
        .quad 0x810e2b451138f3c2
        .quad 0x788ec4b839dac2a4
        .quad 0x28f76867ae2a9281
        .quad 0xba9a0f7b9245e215
        .quad 0xf368612dd98c0dbb
        .quad 0x2e84e4cbf220b020
        .quad 0x6ba92fe962d90eda
        .quad 0x3e4df9655884e2aa
        .quad 0xbd62fbdbdbd465a5
        .quad 0xd7596caa0de9e524
        .quad 0x6e8042ccb2b1b3d7



        .quad 0xf10d3c29ce28ca6e
        .quad 0xbad34540fcb6093d
        .quad 0xe7426ed7a2ea2d3f
        .quad 0x08af9d4e4ff298b9
        .quad 0x1530653616521f7e
        .quad 0x660d06b896203dba
        .quad 0x2d3989bc545f0879
        .quad 0x4b5303af78ebd7b0
        .quad 0x72f8a6c3bebcbde8
        .quad 0x4f0fca4adc3a8e89
        .quad 0x6fa9d4e8c7bfdf7a
        .quad 0x0dcf2d679b624eb7



        .quad 0x3d5947499718289c
        .quad 0x12ebf8c524533f26
        .quad 0x0262bfcb14c3ef15
        .quad 0x20b878d577b7518e
        .quad 0x753941be5a45f06e
        .quad 0xd07caeed6d9c5f65
        .quad 0x11776b9c72ff51b6
        .quad 0x17d2d1d9ef0d4da9
        .quad 0x27f2af18073f3e6a
        .quad 0xfd3fe519d7521069
        .quad 0x22e3b72c3ca60022
        .quad 0x72214f63cc65c6a7



        .quad 0xb4e37f405307a693
        .quad 0xaba714d72f336795
        .quad 0xd6fbd0a773761099
        .quad 0x5fdf48c58171cbc9
        .quad 0x1d9db7b9f43b29c9
        .quad 0xd605824a4f518f75
        .quad 0xf2c072bd312f9dc4
        .quad 0x1f24ac855a1545b0
        .quad 0x24d608328e9505aa
        .quad 0x4748c1d10c1420ee
        .quad 0xc7ffe45c06fb25a2
        .quad 0x00ba739e2ae395e6



        .quad 0x592e98de5c8790d6
        .quad 0xe5bfb7d345c2a2df
        .quad 0x115a3b60f9b49922
        .quad 0x03283a3e67ad78f3
        .quad 0xae4426f5ea88bb26
        .quad 0x360679d984973bfb
        .quad 0x5c9f030c26694e50
        .quad 0x72297de7d518d226
        .quad 0x48241dc7be0cb939
        .quad 0x32f19b4d8b633080
        .quad 0xd3dfc90d02289308
        .quad 0x05e1296846271945



        .quad 0xba82eeb32d9c495a
        .quad 0xceefc8fcf12bb97c
        .quad 0xb02dabae93b5d1e0
        .quad 0x39c00c9c13698d9b
        .quad 0xadbfbbc8242c4550
        .quad 0xbcc80cecd03081d9
        .quad 0x843566a6f5c8df92
        .quad 0x78cf25d38258ce4c
        .quad 0x15ae6b8e31489d68
        .quad 0xaa851cab9c2bf087
        .quad 0xc9a75a97f04efa05
        .quad 0x006b52076b3ff832



        .quad 0x29e0cfe19d95781c
        .quad 0xb681df18966310e2
        .quad 0x57df39d370516b39
        .quad 0x4d57e3443bc76122
        .quad 0xf5cb7e16b9ce082d
        .quad 0x3407f14c417abc29
        .quad 0xd4b36bce2bf4a7ab
        .quad 0x7de2e9561a9f75ce
        .quad 0xde70d4f4b6a55ecb
        .quad 0x4801527f5d85db99
        .quad 0xdbc9c440d3ee9a81
        .quad 0x6b2a90af1a6029ed



        .quad 0x6923f4fc9ae61e97
        .quad 0x5735281de03f5fd1
        .quad 0xa764ae43e6edd12d
        .quad 0x5fd8f4e9d12d3e4a
        .quad 0x77ebf3245bb2d80a
        .quad 0xd8301b472fb9079b
        .quad 0xc647e6f24cee7333
        .quad 0x465812c8276c2109
        .quad 0x4d43beb22a1062d9
        .quad 0x7065fb753831dc16
        .quad 0x180d4a7bde2968d7
        .quad 0x05b32c2b1cb16790



        .quad 0xc8c05eccd24da8fd
        .quad 0xa1cf1aac05dfef83
        .quad 0xdbbeeff27df9cd61
        .quad 0x3b5556a37b471e99
        .quad 0xf7fca42c7ad58195
        .quad 0x3214286e4333f3cc
        .quad 0xb6c29d0d340b979d
        .quad 0x31771a48567307e1
        .quad 0x32b0c524e14dd482
        .quad 0xedb351541a2ba4b6
        .quad 0xa3d16048282b5af3
        .quad 0x4fc079d27a7336eb



        .quad 0x51c938b089bf2f7f
        .quad 0x2497bd6502dfe9a7
        .quad 0xffffc09c7880e453
        .quad 0x124567cecaf98e92
        .quad 0xdc348b440c86c50d
        .quad 0x1337cbc9cc94e651
        .quad 0x6422f74d643e3cb9
        .quad 0x241170c2bae3cd08
        .quad 0x3ff9ab860ac473b4
        .quad 0xf0911dee0113e435
        .quad 0x4ae75060ebc6c4af
        .quad 0x3f8612966c87000d



        .quad 0x0c9c5303f7957be4
        .quad 0xa3c31a20e085c145
        .quad 0xb0721d71d0850050
        .quad 0x0aba390eab0bf2da
        .quad 0x529fdffe638c7bf3
        .quad 0xdf2b9e60388b4995
        .quad 0xe027b34f1bad0249
        .quad 0x7bc92fc9b9fa74ed
        .quad 0x9f97ef2e801ad9f9
        .quad 0x83697d5479afda3a
        .quad 0xe906b3ffbd596b50
        .quad 0x02672b37dd3fb8e0



        .quad 0x48b2ca8b260885e4
        .quad 0xa4286bec82b34c1c
        .quad 0x937e1a2617f58f74
        .quad 0x741d1fcbab2ca2a5
        .quad 0xee9ba729398ca7f5
        .quad 0xeb9ca6257a4849db
        .quad 0x29eb29ce7ec544e1
        .quad 0x232ca21ef736e2c8
        .quad 0xbf61423d253fcb17
        .quad 0x08803ceafa39eb14
        .quad 0xf18602df9851c7af
        .quad 0x0400f3a049e3414b



        .quad 0xabce0476ba61c55b
        .quad 0x36a3d6d7c4d39716
        .quad 0x6eb259d5e8d82d09
        .quad 0x0c9176e984d756fb
        .quad 0x2efba412a06e7b06
        .quad 0x146785452c8d2560
        .quad 0xdf9713ebd67a91c7
        .quad 0x32830ac7157eadf3
        .quad 0x0e782a7ab73769e8
        .quad 0x04a05d7875b18e2c
        .quad 0x29525226ebcceae1
        .quad 0x0d794f8383eba820



        .quad 0xff35f5cb9e1516f4
        .quad 0xee805bcf648aae45
        .quad 0xf0d73c2bb93a9ef3
        .quad 0x097b0bf22092a6c2
        .quad 0x7be44ce7a7a2e1ac
        .quad 0x411fd93efad1b8b7
        .quad 0x1734a1d70d5f7c9b
        .quad 0x0d6592233127db16
        .quad 0xc48bab1521a9d733
        .quad 0xa6c2eaead61abb25
        .quad 0x625c6c1cc6cb4305
        .quad 0x7fc90fea93eb3a67



        .quad 0x0408f1fe1f5c5926
        .quad 0x1a8f2f5e3b258bf4
        .quad 0x40a951a2fdc71669
        .quad 0x6598ee93c98b577e
        .quad 0xc527deb59c7cb23d
        .quad 0x955391695328404e
        .quad 0xd64392817ccf2c7a
        .quad 0x6ce97dabf7d8fa11
        .quad 0x25b5a8e50ef7c48f
        .quad 0xeb6034116f2ce532
        .quad 0xc5e75173e53de537
        .quad 0x73119fa08c12bb03



        .quad 0xed30129453f1a4cb
        .quad 0xbce621c9c8f53787
        .quad 0xfacb2b1338bee7b9
        .quad 0x3025798a9ea8428c
        .quad 0x7845b94d21f4774d
        .quad 0xbf62f16c7897b727
        .quad 0x671857c03c56522b
        .quad 0x3cd6a85295621212
        .quad 0x3fecde923aeca999
        .quad 0xbdaa5b0062e8c12f
        .quad 0x67b99dfc96988ade
        .quad 0x3f52c02852661036



        .quad 0xffeaa48e2a1351c6
        .quad 0x28624754fa7f53d7
        .quad 0x0b5ba9e57582ddf1
        .quad 0x60c0104ba696ac59
        .quad 0x9258bf99eec416c6
        .quad 0xac8a5017a9d2f671
        .quad 0x629549ab16dea4ab
        .quad 0x05d0e85c99091569
        .quad 0x051de020de9cbe97
        .quad 0xfa07fc56b50bcf74
        .quad 0x378cec9f0f11df65
        .quad 0x36853c69ab96de4d



        .quad 0x36d9b8de78f39b2d
        .quad 0x7f42ed71a847b9ec
        .quad 0x241cd1d679bd3fde
        .quad 0x6a704fec92fbce6b
        .quad 0x4433c0b0fac5e7be
        .quad 0x724bae854c08dcbe
        .quad 0xf1f24cc446978f9b
        .quad 0x4a0aff6d62825fc8
        .quad 0xe917fb9e61095301
        .quad 0xc102df9402a092f8
        .quad 0xbf09e2f5fa66190b
        .quad 0x681109bee0dcfe37



        .quad 0x559a0cc9782a0dde
        .quad 0x551dcdb2ea718385
        .quad 0x7f62865b31ef238c
        .quad 0x504aa7767973613d
        .quad 0x9c18fcfa36048d13
        .quad 0x29159db373899ddd
        .quad 0xdc9f350b9f92d0aa
        .quad 0x26f57eee878a19d4
        .quad 0x0cab2cd55687efb1
        .quad 0x5180d162247af17b
        .quad 0x85c15a344f5a2467
        .quad 0x4041943d9dba3069



        .quad 0xc3c0eeba43ebcc96
        .quad 0x8d749c9c26ea9caf
        .quad 0xd9fa95ee1c77ccc6
        .quad 0x1420a1d97684340f
        .quad 0x4b217743a26caadd
        .quad 0x47a6b424648ab7ce
        .quad 0xcb1d4f7a03fbc9e3
        .quad 0x12d931429800d019
        .quad 0x00c67799d337594f
        .quad 0x5e3c5140b23aa47b
        .quad 0x44182854e35ff395
        .quad 0x1b4f92314359a012



        .quad 0x3e5c109d89150951
        .quad 0x39cefa912de9696a
        .quad 0x20eae43f975f3020
        .quad 0x239b572a7f132dae
        .quad 0x33cf3030a49866b1
        .quad 0x251f73d2215f4859
        .quad 0xab82aa4051def4f6
        .quad 0x5ff191d56f9a23f6
        .quad 0x819ed433ac2d9068
        .quad 0x2883ab795fc98523
        .quad 0xef4572805593eb3d
        .quad 0x020c526a758f36cb



        .quad 0x779834f89ed8dbbc
        .quad 0xc8f2aaf9dc7ca46c
        .quad 0xa9524cdca3e1b074
        .quad 0x02aacc4615313877
        .quad 0xe931ef59f042cc89
        .quad 0x2c589c9d8e124bb6
        .quad 0xadc8e18aaec75997
        .quad 0x452cfe0a5602c50c
        .quad 0x86a0f7a0647877df
        .quad 0xbbc464270e607c9f
        .quad 0xab17ea25f1fb11c9
        .quad 0x4cfb7d7b304b877b



        .quad 0x72b43d6cb89b75fe
        .quad 0x54c694d99c6adc80
        .quad 0xb8c3aa373ee34c9f
        .quad 0x14b4622b39075364
        .quad 0xe28699c29789ef12
        .quad 0x2b6ecd71df57190d
        .quad 0xc343c857ecc970d0
        .quad 0x5b1d4cbc434d3ac5
        .quad 0xb6fb2615cc0a9f26
        .quad 0x3a4f0e2bb88dcce5
        .quad 0x1301498b3369a705
        .quad 0x2f98f71258592dd1



        .quad 0x0c94a74cb50f9e56
        .quad 0x5b1ff4a98e8e1320
        .quad 0x9a2acc2182300f67
        .quad 0x3a6ae249d806aaf9
        .quad 0x2e12ae444f54a701
        .quad 0xfcfe3ef0a9cbd7de
        .quad 0xcebf890d75835de0
        .quad 0x1d8062e9e7614554
        .quad 0x657ada85a9907c5a
        .quad 0x1a0ea8b591b90f62
        .quad 0x8d0e1dfbdf34b4e9
        .quad 0x298b8ce8aef25ff3



        .quad 0x2a927953eff70cb2
        .quad 0x4b89c92a79157076
        .quad 0x9418457a30a7cf6a
        .quad 0x34b8a8404d5ce485
        .quad 0x837a72ea0a2165de
        .quad 0x3fab07b40bcf79f6
        .quad 0x521636c77738ae70
        .quad 0x6ba6271803a7d7dc
        .quad 0xc26eecb583693335
        .quad 0xd5a813df63b5fefd
        .quad 0xa293aa9aa4b22573
        .quad 0x71d62bdd465e1c6a



        .quad 0x6533cc28d378df80
        .quad 0xf6db43790a0fa4b4
        .quad 0xe3645ff9f701da5a
        .quad 0x74d5f317f3172ba4
        .quad 0xcd2db5dab1f75ef5
        .quad 0xd77f95cf16b065f5
        .quad 0x14571fea3f49f085
        .quad 0x1c333621262b2b3d
        .quad 0xa86fe55467d9ca81
        .quad 0x398b7c752b298c37
        .quad 0xda6d0892e3ac623b
        .quad 0x4aebcc4547e9d98c



        .quad 0x53175a7205d21a77
        .quad 0xb0c04422d3b934d4
        .quad 0xadd9f24bdd5deadc
        .quad 0x074f46e69f10ff8c
        .quad 0x0de9b204a059a445
        .quad 0xe15cb4aa4b17ad0f
        .quad 0xe1bbec521f79c557
        .quad 0x2633f1b9d071081b
        .quad 0xc1fb4177018b9910
        .quad 0xa6ea20dc6c0fe140
        .quad 0xd661f3e74354c6ff
        .quad 0x5ecb72e6f1a3407a



        .quad 0xa515a31b2259fb4e
        .quad 0x0960f3972bcac52f
        .quad 0xedb52fec8d3454cb
        .quad 0x382e2720c476c019
        .quad 0xfeeae106e8e86997
        .quad 0x9863337f98d09383
        .quad 0x9470480eaa06ebef
        .quad 0x038b6898d4c5c2d0
        .quad 0xf391c51d8ace50a6
        .quad 0x3142d0b9ae2d2948
        .quad 0xdb4d5a1a7f24ca80
        .quad 0x21aeba8b59250ea8



        .quad 0x24f13b34cf405530
        .quad 0x3c44ea4a43088af7
        .quad 0x5dd5c5170006a482
        .quad 0x118eb8f8890b086d
        .quad 0x53853600f0087f23
        .quad 0x4c461879da7d5784
        .quad 0x6af303deb41f6860
        .quad 0x0a3c16c5c27c18ed
        .quad 0x17e49c17cc947f3d
        .quad 0xccc6eda6aac1d27b
        .quad 0xdf6092ceb0f08e56
        .quad 0x4909b3e22c67c36b



        .quad 0x9c9c85ea63fe2e89
        .quad 0xbe1baf910e9412ec
        .quad 0x8f7baa8a86fbfe7b
        .quad 0x0fb17f9fef968b6c
        .quad 0x59a16676706ff64e
        .quad 0x10b953dd0d86a53d
        .quad 0x5848e1e6ce5c0b96
        .quad 0x2d8b78e712780c68
        .quad 0x79d5c62eafc3902b
        .quad 0x773a215289e80728
        .quad 0xc38ae640e10120b9
        .quad 0x09ae23717b2b1a6d



        .quad 0xbb6a192a4e4d083c
        .quad 0x34ace0630029e192
        .quad 0x98245a59aafabaeb
        .quad 0x6d9c8a9ada97faac
        .quad 0x10ab8fa1ad32b1d0
        .quad 0xe9aced1be2778b24
        .quad 0xa8856bc0373de90f
        .quad 0x66f35ddddda53996
        .quad 0xd27d9afb24997323
        .quad 0x1bb7e07ef6f01d2e
        .quad 0x2ba7472df52ecc7f
        .quad 0x03019b4f646f9dc8



        .quad 0x04a186b5565345cd
        .quad 0xeee76610bcc4116a
        .quad 0x689c73b478fb2a45
        .quad 0x387dcbff65697512
        .quad 0xaf09b214e6b3dc6b
        .quad 0x3f7573b5ad7d2f65
        .quad 0xd019d988100a23b0
        .quad 0x392b63a58b5c35f7
        .quad 0x4093addc9c07c205
        .quad 0xc565be15f532c37e
        .quad 0x63dbecfd1583402a
        .quad 0x61722b4aef2e032e



        .quad 0x0012aafeecbd47af
        .quad 0x55a266fb1cd46309
        .quad 0xf203eb680967c72c
        .quad 0x39633944ca3c1429
        .quad 0xd6b07a5581cb0e3c
        .quad 0x290ff006d9444969
        .quad 0x08680b6a16dcda1f
        .quad 0x5568d2b75a06de59
        .quad 0x8d0cb88c1b37cfe1
        .quad 0x05b6a5a3053818f3
        .quad 0xf2e9bc04b787d959
        .quad 0x6beba1249add7f64



        .quad 0x1d06005ca5b1b143
        .quad 0x6d4c6bb87fd1cda2
        .quad 0x6ef5967653fcffe7
        .quad 0x097c29e8c1ce1ea5
        .quad 0x5c3cecb943f5a53b
        .quad 0x9cc9a61d06c08df2
        .quad 0xcfba639a85895447
        .quad 0x5a845ae80df09fd5
        .quad 0x4ce97dbe5deb94ca
        .quad 0x38d0a4388c709c48
        .quad 0xc43eced4a169d097
        .quad 0x0a1249fff7e587c3



        .quad 0x12f0071b276d01c9
        .quad 0xe7b8bac586c48c70
        .quad 0x5308129b71d6fba9
        .quad 0x5d88fbf95a3db792
        .quad 0x0b408d9e7354b610
        .quad 0x806b32535ba85b6e
        .quad 0xdbe63a034a58a207
        .quad 0x173bd9ddc9a1df2c
        .quad 0x2b500f1efe5872df
        .quad 0x58d6582ed43918c1
        .quad 0xe6ed278ec9673ae0
        .quad 0x06e1cd13b19ea319



        .quad 0x40d0ad516f166f23
        .quad 0x118e32931fab6abe
        .quad 0x3fe35e14a04d088e
        .quad 0x3080603526e16266
        .quad 0x472baf629e5b0353
        .quad 0x3baa0b90278d0447
        .quad 0x0c785f469643bf27
        .quad 0x7f3a6a1a8d837b13
        .quad 0xf7e644395d3d800b
        .quad 0x95a8d555c901edf6
        .quad 0x68cd7830592c6339
        .quad 0x30d0fded2e51307e



        .quad 0xe0594d1af21233b3
        .quad 0x1bdbe78ef0cc4d9c
        .quad 0x6965187f8f499a77
        .quad 0x0a9214202c099868
        .quad 0x9cb4971e68b84750
        .quad 0xa09572296664bbcf
        .quad 0x5c8de72672fa412b
        .quad 0x4615084351c589d9
        .quad 0xbc9019c0aeb9a02e
        .quad 0x55c7110d16034cae
        .quad 0x0e6df501659932ec
        .quad 0x3bca0d2895ca5dfe



        .quad 0x40f031bc3c5d62a4
        .quad 0x19fc8b3ecff07a60
        .quad 0x98183da2130fb545
        .quad 0x5631deddae8f13cd
        .quad 0x9c688eb69ecc01bf
        .quad 0xf0bc83ada644896f
        .quad 0xca2d955f5f7a9fe2
        .quad 0x4ea8b4038df28241
        .quad 0x2aed460af1cad202
        .quad 0x46305305a48cee83
        .quad 0x9121774549f11a5f
        .quad 0x24ce0930542ca463



        .quad 0x1fe890f5fd06c106
        .quad 0xb5c468355d8810f2
        .quad 0x827808fe6e8caf3e
        .quad 0x41d4e3c28a06d74b
        .quad 0x3fcfa155fdf30b85
        .quad 0xd2f7168e36372ea4
        .quad 0xb2e064de6492f844
        .quad 0x549928a7324f4280
        .quad 0xf26e32a763ee1a2e
        .quad 0xae91e4b7d25ffdea
        .quad 0xbc3bd33bd17f4d69
        .quad 0x491b66dec0dcff6a



        .quad 0x98f5b13dc7ea32a7
        .quad 0xe3d5f8cc7e16db98
        .quad 0xac0abf52cbf8d947
        .quad 0x08f338d0c85ee4ac
        .quad 0x75f04a8ed0da64a1
        .quad 0xed222caf67e2284b
        .quad 0x8234a3791f7b7ba4
        .quad 0x4cf6b8b0b7018b67
        .quad 0xc383a821991a73bd
        .quad 0xab27bc01df320c7a
        .quad 0xc13d331b84777063
        .quad 0x530d4a82eb078a99



        .quad 0x004c3630e1f94825
        .quad 0x7e2d78268cab535a
        .quad 0xc7482323cc84ff8b
        .quad 0x65ea753f101770b9
        .quad 0x6d6973456c9abf9e
        .quad 0x257fb2fc4900a880
        .quad 0x2bacf412c8cfb850
        .quad 0x0db3e7e00cbfbd5b
        .quad 0x3d66fc3ee2096363
        .quad 0x81d62c7f61b5cb6b
        .quad 0x0fbe044213443b1a
        .quad 0x02a4ec1921e1a1db



        .quad 0x5ce6259a3b24b8a2
        .quad 0xb8577acc45afa0b8
        .quad 0xcccbe6e88ba07037
        .quad 0x3d143c51127809bf
        .quad 0xf5c86162f1cf795f
        .quad 0x118c861926ee57f2
        .quad 0x172124851c063578
        .quad 0x36d12b5dec067fcf
        .quad 0x126d279179154557
        .quad 0xd5e48f5cfc783a0a
        .quad 0x36bdb6e8df179bac
        .quad 0x2ef517885ba82859



        .quad 0x88bd438cd11e0d4a
        .quad 0x30cb610d43ccf308
        .quad 0xe09a0e3791937bcc
        .quad 0x4559135b25b1720c
        .quad 0x1ea436837c6da1e9
        .quad 0xf9c189af1fb9bdbe
        .quad 0x303001fcce5dd155
        .quad 0x28a7c99ebc57be52
        .quad 0xb8fd9399e8d19e9d
        .quad 0x908191cb962423ff
        .quad 0xb2b948d747c742a3
        .quad 0x37f33226d7fb44c4



        .quad 0x0dae8767b55f6e08
        .quad 0x4a43b3b35b203a02
        .quad 0xe3725a6e80af8c79
        .quad 0x0f7a7fd1705fa7a3
        .quad 0x33912553c821b11d
        .quad 0x66ed42c241e301df
        .quad 0x066fcc11104222fd
        .quad 0x307a3b41c192168f
        .quad 0x8eeb5d076eb55ce0
        .quad 0x2fc536bfaa0d925a
        .quad 0xbe81830fdcb6c6e8
        .quad 0x556c7045827baf52



        .quad 0x8e2b517302e9d8b7
        .quad 0xe3e52269248714e8
        .quad 0xbd4fbd774ca960b5
        .quad 0x6f4b4199c5ecada9
        .quad 0xb94b90022bf44406
        .quad 0xabd4237eff90b534
        .quad 0x7600a960faf86d3a
        .quad 0x2f45abdac2322ee3
        .quad 0x61af4912c8ef8a6a
        .quad 0xe58fa4fe43fb6e5e
        .quad 0xb5afcc5d6fd427cf
        .quad 0x6a5393281e1e11eb



        .quad 0xf3da5139a5d1ee89
        .quad 0x8145457cff936988
        .quad 0x3f622fed00e188c4
        .quad 0x0f513815db8b5a3d
        .quad 0x0fff04fe149443cf
        .quad 0x53cac6d9865cddd7
        .quad 0x31385b03531ed1b7
        .quad 0x5846a27cacd1039d
        .quad 0x4ff5cdac1eb08717
        .quad 0x67e8b29590f2e9bc
        .quad 0x44093b5e237afa99
        .quad 0x0d414bed8708b8b2



        .quad 0xcfb68265fd0e75f6
        .quad 0xe45b3e28bb90e707
        .quad 0x7242a8de9ff92c7a
        .quad 0x685b3201933202dd
        .quad 0x81886a92294ac9e8
        .quad 0x23162b45d55547be
        .quad 0x94cfbc4403715983
        .quad 0x50eb8fdb134bc401
        .quad 0xc0b73ec6d6b330cd
        .quad 0x84e44807132faff1
        .quad 0x732b7352c4a5dee1
        .quad 0x5d7c7cf1aa7cd2d2



        .quad 0xaf3b46bf7a4aafa2
        .quad 0xb78705ec4d40d411
        .quad 0x114f0c6aca7c15e3
        .quad 0x3f364faaa9489d4d
        .quad 0x33d1013e9b73a562
        .quad 0x925cef5748ec26e1
        .quad 0xa7fce614dd468058
        .quad 0x78b0fad41e9aa438
        .quad 0xbf56a431ed05b488
        .quad 0xa533e66c9c495c7e
        .quad 0xe8652baf87f3651a
        .quad 0x0241800059d66c33



        .quad 0xceb077fea37a5be4
        .quad 0xdb642f02e5a5eeb7
        .quad 0xc2e6d0c5471270b8
        .quad 0x4771b65538e4529c
        .quad 0x28350c7dcf38ea01
        .quad 0x7c6cdbc0b2917ab6
        .quad 0xace7cfbe857082f7
        .quad 0x4d2845aba2d9a1e0
        .quad 0xbb537fe0447070de
        .quad 0xcba744436dd557df
        .quad 0xd3b5a3473600dbcb
        .quad 0x4aeabbe6f9ffd7f8



        .quad 0x4630119e40d8f78c
        .quad 0xa01a9bc53c710e11
        .quad 0x486d2b258910dd79
        .quad 0x1e6c47b3db0324e5
        .quad 0x6a2134bcc4a9c8f2
        .quad 0xfbf8fd1c8ace2e37
        .quad 0x000ae3049911a0ba
        .quad 0x046e3a616bc89b9e
        .quad 0x14e65442f03906be
        .quad 0x4a019d54e362be2a
        .quad 0x68ccdfec8dc230c7
        .quad 0x7cfb7e3faf6b861c



        .quad 0x4637974e8c58aedc
        .quad 0xb9ef22fbabf041a4
        .quad 0xe185d956e980718a
        .quad 0x2f1b78fab143a8a6
        .quad 0x96eebffb305b2f51
        .quad 0xd3f938ad889596b8
        .quad 0xf0f52dc746d5dd25
        .quad 0x57968290bb3a0095
        .quad 0xf71ab8430a20e101
        .quad 0xf393658d24f0ec47
        .quad 0xcf7509a86ee2eed1
        .quad 0x7dc43e35dc2aa3e1



        .quad 0x85966665887dd9c3
        .quad 0xc90f9b314bb05355
        .quad 0xc6e08df8ef2079b1
        .quad 0x7ef72016758cc12f
        .quad 0x5a782a5c273e9718
        .quad 0x3576c6995e4efd94
        .quad 0x0f2ed8051f237d3e
        .quad 0x044fb81d82d50a99
        .quad 0xc1df18c5a907e3d9
        .quad 0x57b3371dce4c6359
        .quad 0xca704534b201bb49
        .quad 0x7f79823f9c30dd2e



        .quad 0x8334d239a3b513e8
        .quad 0xc13670d4b91fa8d8
        .quad 0x12b54136f590bd33
        .quad 0x0a4e0373d784d9b4
        .quad 0x6a9c1ff068f587ba
        .quad 0x0827894e0050c8de
        .quad 0x3cbf99557ded5be7
        .quad 0x64a9b0431c06d6f0
        .quad 0x2eb3d6a15b7d2919
        .quad 0xb0b4f6a0d53a8235
        .quad 0x7156ce4389a45d47
        .quad 0x071a7d0ace18346c



        .quad 0xd3072daac887ba0b
        .quad 0x01262905bfa562ee
        .quad 0xcf543002c0ef768b
        .quad 0x2c3bcc7146ea7e9c
        .quad 0xcc0c355220e14431
        .quad 0x0d65950709b15141
        .quad 0x9af5621b209d5f36
        .quad 0x7c69bcf7617755d3
        .quad 0x07f0d7eb04e8295f
        .quad 0x10db18252f50f37d
        .quad 0xe951a9a3171798d7
        .quad 0x6f5a9a7322aca51d



        .quad 0x8ba1000c2f41c6c5
        .quad 0xc49f79c10cfefb9b
        .quad 0x4efa47703cc51c9f
        .quad 0x494e21a2e147afca
        .quad 0xe729d4eba3d944be
        .quad 0x8d9e09408078af9e
        .quad 0x4525567a47869c03
        .quad 0x02ab9680ee8d3b24
        .quad 0xefa48a85dde50d9a
        .quad 0x219a224e0fb9a249
        .quad 0xfa091f1dd91ef6d9
        .quad 0x6b5d76cbea46bb34



        .quad 0x8857556cec0cd994
        .quad 0x6472dc6f5cd01dba
        .quad 0xaf0169148f42b477
        .quad 0x0ae333f685277354
        .quad 0xe0f941171e782522
        .quad 0xf1e6ae74036936d3
        .quad 0x408b3ea2d0fcc746
        .quad 0x16fb869c03dd313e
        .quad 0x288e199733b60962
        .quad 0x24fc72b4d8abe133
        .quad 0x4811f7ed0991d03e
        .quad 0x3f81e38b8f70d075



        .quad 0x7f910fcc7ed9affe
        .quad 0x545cb8a12465874b
        .quad 0xa8397ed24b0c4704
        .quad 0x50510fc104f50993
        .quad 0x0adb7f355f17c824
        .quad 0x74b923c3d74299a4
        .quad 0xd57c3e8bcbf8eaf7
        .quad 0x0ad3e2d34cdedc3d
        .quad 0x6f0c0fc5336e249d
        .quad 0x745ede19c331cfd9
        .quad 0xf2d6fd0009eefe1c
        .quad 0x127c158bf0fa1ebe



        .quad 0xf6197c422e9879a2
        .quad 0xa44addd452ca3647
        .quad 0x9b413fc14b4eaccb
        .quad 0x354ef87d07ef4f68
        .quad 0xdea28fc4ae51b974
        .quad 0x1d9973d3744dfe96
        .quad 0x6240680b873848a8
        .quad 0x4ed82479d167df95
        .quad 0xfee3b52260c5d975
        .quad 0x50352efceb41b0b8
        .quad 0x8808ac30a9f6653c
        .quad 0x302d92d20539236d



        .quad 0x4c59023fcb3efb7c
        .quad 0x6c2fcb99c63c2a94
        .quad 0xba4190e2c3c7e084
        .quad 0x0e545daea51874d9
        .quad 0x957b8b8b0df53c30
        .quad 0x2a1c770a8e60f098
        .quad 0xbbc7a670345796de
        .quad 0x22a48f9a90c99bc9
        .quad 0x6b7dc0dc8d3fac58
        .quad 0x5497cd6ce6e42bfd
        .quad 0x542f7d1bf400d305
        .quad 0x4159f47f048d9136



        .quad 0x20ad660839e31e32
        .quad 0xf81e1bd58405be50
        .quad 0xf8064056f4dabc69
        .quad 0x14d23dd4ce71b975
        .quad 0x748515a8bbd24839
        .quad 0x77128347afb02b55
        .quad 0x50ba2ac649a2a17f
        .quad 0x060525513ad730f1
        .quad 0xf2398e098aa27f82
        .quad 0x6d7982bb89a1b024
        .quad 0xfa694084214dd24c
        .quad 0x71ab966fa32301c3



        .quad 0x2dcbd8e34ded02fc
        .quad 0x1151f3ec596f22aa
        .quad 0xbca255434e0328da
        .quad 0x35768fbe92411b22
        .quad 0xb1088a0702809955
        .quad 0x43b273ea0b43c391
        .quad 0xca9b67aefe0686ed
        .quad 0x605eecbf8335f4ed
        .quad 0x83200a656c340431
        .quad 0x9fcd71678ee59c2f
        .quad 0x75d4613f71300f8a
        .quad 0x7a912faf60f542f9



        .quad 0xb204585e5edc1a43
        .quad 0x9f0e16ee5897c73c
        .quad 0x5b82c0ae4e70483c
        .quad 0x624a170e2bddf9be
        .quad 0x253f4f8dfa2d5597
        .quad 0x25e49c405477130c
        .quad 0x00c052e5996b1102
        .quad 0x33cb966e33bb6c4a
        .quad 0x597028047f116909
        .quad 0x828ac41c1e564467
        .quad 0x70417dbde6217387
        .quad 0x721627aefbac4384



        .quad 0x97d03bc38736add5
        .quad 0x2f1422afc532b130
        .quad 0x3aa68a057101bbc4
        .quad 0x4c946cf7e74f9fa7
        .quad 0xfd3097bc410b2f22
        .quad 0xf1a05da7b5cfa844
        .quad 0x61289a1def57ca74
        .quad 0x245ea199bb821902
        .quad 0xaedca66978d477f8
        .quad 0x1898ba3c29117fe1
        .quad 0xcf73f983720cbd58
        .quad 0x67da12e6b8b56351



        .quad 0x7067e187b4bd6e07
        .quad 0x6e8f0203c7d1fe74
        .quad 0x93c6aa2f38c85a30
        .quad 0x76297d1f3d75a78a
        .quad 0x2b7ef3d38ec8308c
        .quad 0x828fd7ec71eb94ab
        .quad 0x807c3b36c5062abd
        .quad 0x0cb64cb831a94141
        .quad 0x3030fc33534c6378
        .quad 0xb9635c5ce541e861
        .quad 0x15d9a9bed9b2c728
        .quad 0x49233ea3f3775dcb



        .quad 0x629398fa8dbffc3a
        .quad 0xe12fe52dd54db455
        .quad 0xf3be11dfdaf25295
        .quad 0x628b140dce5e7b51
        .quad 0x7b3985fe1c9f249b
        .quad 0x4fd6b2d5a1233293
        .quad 0xceb345941adf4d62
        .quad 0x6987ff6f542de50c
        .quad 0x47e241428f83753c
        .quad 0x6317bebc866af997
        .quad 0xdabb5b433d1a9829
        .quad 0x074d8d245287fb2d



        .quad 0x8337d9cd440bfc31
        .quad 0x729d2ca1af318fd7
        .quad 0xa040a4a4772c2070
        .quad 0x46002ef03a7349be
        .quad 0x481875c6c0e31488
        .quad 0x219429b2e22034b4
        .quad 0x7223c98a31283b65
        .quad 0x3420d60b342277f9
        .quad 0xfaa23adeaffe65f7
        .quad 0x78261ed45be0764c
        .quad 0x441c0a1e2f164403
        .quad 0x5aea8e567a87d395



        .quad 0x7813c1a2bca4283d
        .quad 0xed62f091a1863dd9
        .quad 0xaec7bcb8c268fa86
        .quad 0x10e5d3b76f1cae4c
        .quad 0x2dbc6fb6e4e0f177
        .quad 0x04e1bf29a4bd6a93
        .quad 0x5e1966d4787af6e8
        .quad 0x0edc5f5eb426d060
        .quad 0x5453bfd653da8e67
        .quad 0xe9dc1eec24a9f641
        .quad 0xbf87263b03578a23
        .quad 0x45b46c51361cba72



        .quad 0xa9402abf314f7fa1
        .quad 0xe257f1dc8e8cf450
        .quad 0x1dbbd54b23a8be84
        .quad 0x2177bfa36dcb713b
        .quad 0xce9d4ddd8a7fe3e4
        .quad 0xab13645676620e30
        .quad 0x4b594f7bb30e9958
        .quad 0x5c1c0aef321229df
        .quad 0x37081bbcfa79db8f
        .quad 0x6048811ec25f59b3
        .quad 0x087a76659c832487
        .quad 0x4ae619387d8ab5bb



        .quad 0x8ddbf6aa5344a32e
        .quad 0x7d88eab4b41b4078
        .quad 0x5eb0eb974a130d60
        .quad 0x1a00d91b17bf3e03
        .quad 0x61117e44985bfb83
        .quad 0xfce0462a71963136
        .quad 0x83ac3448d425904b
        .quad 0x75685abe5ba43d64
        .quad 0x6e960933eb61f2b2
        .quad 0x543d0fa8c9ff4952
        .quad 0xdf7275107af66569
        .quad 0x135529b623b0e6aa



        .quad 0x18f0dbd7add1d518
        .quad 0x979f7888cfc11f11
        .quad 0x8732e1f07114759b
        .quad 0x79b5b81a65ca3a01
        .quad 0xf5c716bce22e83fe
        .quad 0xb42beb19e80985c1
        .quad 0xec9da63714254aae
        .quad 0x5972ea051590a613
        .quad 0x0fd4ac20dc8f7811
        .quad 0x9a9ad294ac4d4fa8
        .quad 0xc01b2d64b3360434
        .quad 0x4f7e9c95905f3bdb



        .quad 0x62674bbc5781302e
        .quad 0xd8520f3989addc0f
        .quad 0x8c2999ae53fbd9c6
        .quad 0x31993ad92e638e4c
        .quad 0x71c8443d355299fe
        .quad 0x8bcd3b1cdbebead7
        .quad 0x8092499ef1a49466
        .quad 0x1942eec4a144adc8
        .quad 0x7dac5319ae234992
        .quad 0x2c1b3d910cea3e92
        .quad 0x553ce494253c1122
        .quad 0x2a0a65314ef9ca75



        .quad 0x2db7937ff7f927c2
        .quad 0xdb741f0617d0a635
        .quad 0x5982f3a21155af76
        .quad 0x4cf6e218647c2ded
        .quad 0xcf361acd3c1c793a
        .quad 0x2f9ebcac5a35bc3b
        .quad 0x60e860e9a8cda6ab
        .quad 0x055dc39b6dea1a13
        .quad 0xb119227cc28d5bb6
        .quad 0x07e24ebc774dffab
        .quad 0xa83c78cee4a32c89
        .quad 0x121a307710aa24b6



        .quad 0xe4db5d5e9f034a97
        .quad 0xe153fc093034bc2d
        .quad 0x460546919551d3b1
        .quad 0x333fc76c7a40e52d
        .quad 0xd659713ec77483c9
        .quad 0x88bfe077b82b96af
        .quad 0x289e28231097bcd3
        .quad 0x527bb94a6ced3a9b
        .quad 0x563d992a995b482e
        .quad 0x3405d07c6e383801
        .quad 0x485035de2f64d8e5
        .quad 0x6b89069b20a7a9f7



        .quad 0x812aa0416270220d
        .quad 0x995a89faf9245b4e
        .quad 0xffadc4ce5072ef05
        .quad 0x23bc2103aa73eb73
        .quad 0x4082fa8cb5c7db77
        .quad 0x068686f8c734c155
        .quad 0x29e6c8d9f6e7a57e
        .quad 0x0473d308a7639bcf
        .quad 0xcaee792603589e05
        .quad 0x2b4b421246dcc492
        .quad 0x02a1ef74e601a94f
        .quad 0x102f73bfde04341a



        .quad 0xb5a2d50c7ec20d3e
        .quad 0xc64bdd6ea0c97263
        .quad 0x56e89052c1ff734d
        .quad 0x4929c6f72b2ffaba
        .quad 0x358ecba293a36247
        .quad 0xaf8f9862b268fd65
        .quad 0x412f7e9968a01c89
        .quad 0x5786f312cd754524
        .quad 0x337788ffca14032c
        .quad 0xf3921028447f1ee3
        .quad 0x8b14071f231bccad
        .quad 0x4c817b4bf2344783



        .quad 0x0ff853852871b96e
        .quad 0xe13e9fab60c3f1bb
        .quad 0xeefd595325344402
        .quad 0x0a37c37075b7744b
        .quad 0x413ba057a40b4484
        .quad 0xba4c2e1a4f5f6a43
        .quad 0x614ba0a5aee1d61c
        .quad 0x78a1531a8b05dc53
        .quad 0x6cbdf1703ad0562b
        .quad 0x8ecf4830c92521a3
        .quad 0xdaebd303fd8424e7
        .quad 0x72ad82a42e5ec56f



        .quad 0x3f9e8e35bafb65f6
        .quad 0x39d69ec8f27293a1
        .quad 0x6cb8cd958cf6a3d0
        .quad 0x1734778173adae6d
        .quad 0xc368939167024bc3
        .quad 0x8e69d16d49502fda
        .quad 0xfcf2ec3ce45f4b29
        .quad 0x065f669ea3b4cbc4
        .quad 0x8a00aec75532db4d
        .quad 0xb869a4e443e31bb1
        .quad 0x4a0f8552d3a7f515
        .quad 0x19adeb7c303d7c08



        .quad 0xc720cb6153ead9a3
        .quad 0x55b2c97f512b636e
        .quad 0xb1e35b5fd40290b1
        .quad 0x2fd9ccf13b530ee2
        .quad 0x9d05ba7d43c31794
        .quad 0x2470c8ff93322526
        .quad 0x8323dec816197438
        .quad 0x2852709881569b53
        .quad 0x07bd475b47f796b8
        .quad 0xd2c7b013542c8f54
        .quad 0x2dbd23f43b24f87e
        .quad 0x6551afd77b0901d6



        .quad 0x4546baaf54aac27f
        .quad 0xf6f66fecb2a45a28
        .quad 0x582d1b5b562bcfe8
        .quad 0x44b123f3920f785f
        .quad 0x68a24ce3a1d5c9ac
        .quad 0xbb77a33d10ff6461
        .quad 0x0f86ce4425d3166e
        .quad 0x56507c0950b9623b
        .quad 0x1206f0b7d1713e63
        .quad 0x353fe3d915bafc74
        .quad 0x194ceb970ad9d94d
        .quad 0x62fadd7cf9d03ad3



        .quad 0xc6b5967b5598a074
        .quad 0x5efe91ce8e493e25
        .quad 0xd4b72c4549280888
        .quad 0x20ef1149a26740c2
        .quad 0x3cd7bc61e7ce4594
        .quad 0xcd6b35a9b7dd267e
        .quad 0xa080abc84366ef27
        .quad 0x6ec7c46f59c79711
        .quad 0x2f07ad636f09a8a2
        .quad 0x8697e6ce24205e7d
        .quad 0xc0aefc05ee35a139
        .quad 0x15e80958b5f9d897



        .quad 0x25a5ef7d0c3e235b
        .quad 0x6c39c17fbe134ee7
        .quad 0xc774e1342dc5c327
        .quad 0x021354b892021f39
        .quad 0x4dd1ed355bb061c4
        .quad 0x42dc0cef941c0700
        .quad 0x61305dc1fd86340e
        .quad 0x56b2cc930e55a443
        .quad 0x1df79da6a6bfc5a2
        .quad 0x02f3a2749fde4369
        .quad 0xb323d9f2cda390a7
        .quad 0x7be0847b8774d363



        .quad 0x8c99cc5a8b3f55c3
        .quad 0x0611d7253fded2a0
        .quad 0xed2995ff36b70a36
        .quad 0x1f699a54d78a2619
        .quad 0x1466f5af5307fa11
        .quad 0x817fcc7ded6c0af2
        .quad 0x0a6de44ec3a4a3fb
        .quad 0x74071475bc927d0b
        .quad 0xe77292f373e7ea8a
        .quad 0x296537d2cb045a31
        .quad 0x1bd0653ed3274fde
        .quad 0x2f9a2c4476bd2966



        .quad 0xeb18b9ab7f5745c6
        .quad 0x023a8aee5787c690
        .quad 0xb72712da2df7afa9
        .quad 0x36597d25ea5c013d
        .quad 0xa2b4dae0b5511c9a
        .quad 0x7ac860292bffff06
        .quad 0x981f375df5504234
        .quad 0x3f6bd725da4ea12d
        .quad 0x734d8d7b106058ac
        .quad 0xd940579e6fc6905f
        .quad 0x6466f8f99202932d
        .quad 0x7b7ecc19da60d6d0



        .quad 0x78c2373c695c690d
        .quad 0xdd252e660642906e
        .quad 0x951d44444ae12bd2
        .quad 0x4235ad7601743956
        .quad 0x6dae4a51a77cfa9b
        .quad 0x82263654e7a38650
        .quad 0x09bbffcd8f2d82db
        .quad 0x03bedc661bf5caba
        .quad 0x6258cb0d078975f5
        .quad 0x492942549189f298
        .quad 0xa0cab423e2e36ee4
        .quad 0x0e7ce2b0cdf066a1



        .quad 0xc494643ac48c85a3
        .quad 0xfd361df43c6139ad
        .quad 0x09db17dd3ae94d48
        .quad 0x666e0a5d8fb4674a
        .quad 0xfea6fedfd94b70f9
        .quad 0xf130c051c1fcba2d
        .quad 0x4882d47e7f2fab89
        .quad 0x615256138aeceeb5
        .quad 0x2abbf64e4870cb0d
        .quad 0xcd65bcf0aa458b6b
        .quad 0x9abe4eba75e8985d
        .quad 0x7f0bc810d514dee4



        .quad 0xb9006ba426f4136f
        .quad 0x8d67369e57e03035
        .quad 0xcbc8dfd94f463c28
        .quad 0x0d1f8dbcf8eedbf5
        .quad 0x83ac9dad737213a0
        .quad 0x9ff6f8ba2ef72e98
        .quad 0x311e2edd43ec6957
        .quad 0x1d3a907ddec5ab75
        .quad 0xba1693313ed081dc
        .quad 0x29329fad851b3480
        .quad 0x0128013c030321cb
        .quad 0x00011b44a31bfde3



        .quad 0x3fdfa06c3fc66c0c
        .quad 0x5d40e38e4dd60dd2
        .quad 0x7ae38b38268e4d71
        .quad 0x3ac48d916e8357e1
        .quad 0x16561f696a0aa75c
        .quad 0xc1bf725c5852bd6a
        .quad 0x11a8dd7f9a7966ad
        .quad 0x63d988a2d2851026
        .quad 0x00120753afbd232e
        .quad 0xe92bceb8fdd8f683
        .quad 0xf81669b384e72b91
        .quad 0x33fad52b2368a066



        .quad 0x540649c6c5e41e16
        .quad 0x0af86430333f7735
        .quad 0xb2acfcd2f305e746
        .quad 0x16c0f429a256dca7
        .quad 0x8d2cc8d0c422cfe8
        .quad 0x072b4f7b05a13acb
        .quad 0xa3feb6e6ecf6a56f
        .quad 0x3cc355ccb90a71e2
        .quad 0xe9b69443903e9131
        .quad 0xb8a494cb7a5637ce
        .quad 0xc87cd1a4baba9244
        .quad 0x631eaf426bae7568



        .quad 0xb3e90410da66fe9f
        .quad 0x85dd4b526c16e5a6
        .quad 0xbc3d97611ef9bf83
        .quad 0x5599648b1ea919b5
        .quad 0x47d975b9a3700de8
        .quad 0x7280c5fbe2f80552
        .quad 0x53658f2732e45de1
        .quad 0x431f2c7f665f80b5
        .quad 0xd6026344858f7b19
        .quad 0x14ab352fa1ea514a
        .quad 0x8900441a2090a9d7
        .quad 0x7b04715f91253b26



        .quad 0x83edbd28acf6ae43
        .quad 0x86357c8b7d5c7ab4
        .quad 0xc0404769b7eb2c44
        .quad 0x59b37bf5c2f6583f
        .quad 0xb376c280c4e6bac6
        .quad 0x970ed3dd6d1d9b0b
        .quad 0xb09a9558450bf944
        .quad 0x48d0acfa57cde223
        .quad 0xb60f26e47dabe671
        .quad 0xf1d1a197622f3a37
        .quad 0x4208ce7ee9960394
        .quad 0x16234191336d3bdb



        .quad 0xf19aeac733a63aef
        .quad 0x2c7fba5d4442454e
        .quad 0x5da87aa04795e441
        .quad 0x413051e1a4e0b0f5
        .quad 0x852dd1fd3d578bbe
        .quad 0x2b65ce72c3286108
        .quad 0x658c07f4eace2273
        .quad 0x0933f804ec38ab40
        .quad 0xa7ab69798d496476
        .quad 0x8121aadefcb5abc8
        .quad 0xa5dc12ef7b539472
        .quad 0x07fd47065e45351a



        .quad 0xc8583c3d258d2bcd
        .quad 0x17029a4daf60b73f
        .quad 0xfa0fc9d6416a3781
        .quad 0x1c1e5fba38b3fb23
        .quad 0x304211559ae8e7c3
        .quad 0xf281b229944882a5
        .quad 0x8a13ac2e378250e4
        .quad 0x014afa0954ba48f4
        .quad 0xcb3197001bb3666c
        .quad 0x330060524bffecb9
        .quad 0x293711991a88233c
        .quad 0x291884363d4ed364



        .quad 0x033c6805dc4babfa
        .quad 0x2c15bf5e5596ecc1
        .quad 0x1bc70624b59b1d3b
        .quad 0x3ede9850a19f0ec5
        .quad 0xfb9d37c3bc1ab6eb
        .quad 0x02be14534d57a240
        .quad 0xf4d73415f8a5e1f6
        .quad 0x5964f4300ccc8188
        .quad 0xe44a23152d096800
        .quad 0x5c08c55970866996
        .quad 0xdf2db60a46affb6e
        .quad 0x579155c1f856fd89



        .quad 0x96324edd12e0c9ef
        .quad 0x468b878df2420297
        .quad 0x199a3776a4f573be
        .quad 0x1e7fbcf18e91e92a
        .quad 0xb5f16b630817e7a6
        .quad 0x808c69233c351026
        .quad 0x324a983b54cef201
        .quad 0x53c092084a485345
        .quad 0xd2d41481f1cbafbf
        .quad 0x231d2db6716174e5
        .quad 0x0b7d7656e2a55c98
        .quad 0x3e955cd82aa495f6



        .quad 0xe48f535e3ed15433
        .quad 0xd075692a0d7270a3
        .quad 0x40fbd21daade6387
        .quad 0x14264887cf4495f5
        .quad 0xab39f3ef61bb3a3f
        .quad 0x8eb400652eb9193e
        .quad 0xb5de6ecc38c11f74
        .quad 0x654d7e9626f3c49f
        .quad 0xe564cfdd5c7d2ceb
        .quad 0x82eeafded737ccb9
        .quad 0x6107db62d1f9b0ab
        .quad 0x0b6baac3b4358dbb



        .quad 0x7ae62bcb8622fe98
        .quad 0x47762256ceb891af
        .quad 0x1a5a92bcf2e406b4
        .quad 0x7d29401784e41501
        .quad 0x204abad63700a93b
        .quad 0xbe0023d3da779373
        .quad 0xd85f0346633ab709
        .quad 0x00496dc490820412
        .quad 0x1c74b88dc27e6360
        .quad 0x074854268d14850c
        .quad 0xa145fb7b3e0dcb30
        .quad 0x10843f1b43803b23



        .quad 0xc5f90455376276dd
        .quad 0xce59158dd7645cd9
        .quad 0x92f65d511d366b39
        .quad 0x11574b6e526996c4
        .quad 0xd56f672de324689b
        .quad 0xd1da8aedb394a981
        .quad 0xdd7b58fe9168cfed
        .quad 0x7ce246cd4d56c1e8
        .quad 0xb8f4308e7f80be53
        .quad 0x5f3cb8cb34a9d397
        .quad 0x18a961bd33cc2b2c
        .quad 0x710045fb3a9af671



        .quad 0x73f93d36101b95eb
        .quad 0xfaef33794f6f4486
        .quad 0x5651735f8f15e562
        .quad 0x7fa3f19058b40da1
        .quad 0xa03fc862059d699e
        .quad 0x2370cfa19a619e69
        .quad 0xc4fe3b122f823deb
        .quad 0x1d1b056fa7f0844e
        .quad 0x1bc64631e56bf61f
        .quad 0xd379ab106e5382a3
        .quad 0x4d58c57e0540168d
        .quad 0x566256628442d8e4



        .quad 0xb9e499def6267ff6
        .quad 0x7772ca7b742c0843
        .quad 0x23a0153fe9a4f2b1
        .quad 0x2cdfdfecd5d05006
        .quad 0xdd499cd61ff38640
        .quad 0x29cd9bc3063625a0
        .quad 0x51e2d8023dd73dc3
        .quad 0x4a25707a203b9231
        .quad 0x2ab7668a53f6ed6a
        .quad 0x304242581dd170a1
        .quad 0x4000144c3ae20161
        .quad 0x5721896d248e49fc



        .quad 0x0b6e5517fd181bae
        .quad 0x9022629f2bb963b4
        .quad 0x5509bce932064625
        .quad 0x578edd74f63c13da
        .quad 0x285d5091a1d0da4e
        .quad 0x4baa6fa7b5fe3e08
        .quad 0x63e5177ce19393b3
        .quad 0x03c935afc4b030fd
        .quad 0x997276c6492b0c3d
        .quad 0x47ccc2c4dfe205fc
        .quad 0xdcd29b84dd623a3c
        .quad 0x3ec2ab590288c7a2



        .quad 0xa1a0d27be4d87bb9
        .quad 0xa98b4deb61391aed
        .quad 0x99a0ddd073cb9b83
        .quad 0x2dd5c25a200fcace
        .quad 0xa7213a09ae32d1cb
        .quad 0x0f2b87df40f5c2d5
        .quad 0x0baea4c6e81eab29
        .quad 0x0e1bf66c6adbac5e
        .quad 0xe2abd5e9792c887e
        .quad 0x1a020018cb926d5d
        .quad 0xbfba69cdbaae5f1e
        .quad 0x730548b35ae88f5f



        .quad 0xc43551a3cba8b8ee
        .quad 0x65a26f1db2115f16
        .quad 0x760f4f52ab8c3850
        .quad 0x3043443b411db8ca
        .quad 0x805b094ba1d6e334
        .quad 0xbf3ef17709353f19
        .quad 0x423f06cb0622702b
        .quad 0x585a2277d87845dd
        .quad 0xa18a5f8233d48962
        .quad 0x6698c4b5ec78257f
        .quad 0xa78e6fa5373e41ff
        .quad 0x7656278950ef981f



        .quad 0x38c3cf59d51fc8c0
        .quad 0x9bedd2fd0506b6f2
        .quad 0x26bf109fab570e8f
        .quad 0x3f4160a8c1b846a6
        .quad 0xe17073a3ea86cf9d
        .quad 0x3a8cfbb707155fdc
        .quad 0x4853e7fc31838a8e
        .quad 0x28bbf484b613f616
        .quad 0xf2612f5c6f136c7c
        .quad 0xafead107f6dd11be
        .quad 0x527e9ad213de6f33
        .quad 0x1e79cb358188f75d



        .quad 0x013436c3eef7e3f1
        .quad 0x828b6a7ffe9e10f8
        .quad 0x7ff908e5bcf9defc
        .quad 0x65d7951b3a3b3831
        .quad 0x77e953d8f5e08181
        .quad 0x84a50c44299dded9
        .quad 0xdc6c2d0c864525e5
        .quad 0x478ab52d39d1f2f4
        .quad 0x66a6a4d39252d159
        .quad 0xe5dde1bc871ac807
        .quad 0xb82c6b40a6c1c96f
        .quad 0x16d87a411a212214



        .quad 0xb3bd7e5a42066215
        .quad 0x879be3cd0c5a24c1
        .quad 0x57c05db1d6f994b7
        .quad 0x28f87c8165f38ca6
        .quad 0xfba4d5e2d54e0583
        .quad 0xe21fafd72ebd99fa
        .quad 0x497ac2736ee9778f
        .quad 0x1f990b577a5a6dde
        .quad 0xa3344ead1be8f7d6
        .quad 0x7d1e50ebacea798f
        .quad 0x77c6569e520de052
        .quad 0x45882fe1534d6d3e



        .quad 0x6669345d757983d6
        .quad 0x62b6ed1117aa11a6
        .quad 0x7ddd1857985e128f
        .quad 0x688fe5b8f626f6dd
        .quad 0xd8ac9929943c6fe4
        .quad 0xb5f9f161a38392a2
        .quad 0x2699db13bec89af3
        .quad 0x7dcf843ce405f074
        .quad 0x6c90d6484a4732c0
        .quad 0xd52143fdca563299
        .quad 0xb3be28c3915dc6e1
        .quad 0x6739687e7327191b



        .quad 0x9f65c5ea200814cf
        .quad 0x840536e169a31740
        .quad 0x8b0ed13925c8b4ad
        .quad 0x0080dbafe936361d
        .quad 0x8ce5aad0c9cb971f
        .quad 0x1156aaa99fd54a29
        .quad 0x41f7247015af9b78
        .quad 0x1fe8cca8420f49aa
        .quad 0x72a1848f3c0cc82a
        .quad 0x38c560c2877c9e54
        .quad 0x5004e228ce554140
        .quad 0x042418a103429d71



        .quad 0x899dea51abf3ff5f
        .quad 0x9b93a8672fc2d8ba
        .quad 0x2c38cb97be6ebd5c
        .quad 0x114d578497263b5d
        .quad 0x58e84c6f20816247
        .quad 0x8db2b2b6e36fd793
        .quad 0x977182561d484d85
        .quad 0x0822024f8632abd7
        .quad 0xb301bb7c6b1beca3
        .quad 0x55393f6dc6eb1375
        .quad 0x910d281097b6e4eb
        .quad 0x1ad4548d9d479ea3



        .quad 0xcd5a7da0389a48fd
        .quad 0xb38fa4aa9a78371e
        .quad 0xc6d9761b2cdb8e6c
        .quad 0x35cf51dbc97e1443
        .quad 0xa06fe66d0fe9fed3
        .quad 0xa8733a401c587909
        .quad 0x30d14d800df98953
        .quad 0x41ce5876c7b30258
        .quad 0x59ac3bc5d670c022
        .quad 0xeae67c109b119406
        .quad 0x9798bdf0b3782fda
        .quad 0x651e3201fd074092



        .quad 0xd63d8483ef30c5cf
        .quad 0x4cd4b4962361cc0c
        .quad 0xee90e500a48426ac
        .quad 0x0af51d7d18c14eeb
        .quad 0xa57ba4a01efcae9e
        .quad 0x769f4beedc308a94
        .quad 0xd1f10eeb3603cb2e
        .quad 0x4099ce5e7e441278
        .quad 0x1ac98e4f8a5121e9
        .quad 0x7dae9544dbfa2fe0
        .quad 0x8320aa0dd6430df9
        .quad 0x667282652c4a2fb5



        .quad 0x874621f4d86bc9ab
        .quad 0xb54c7bbe56fe6fea
        .quad 0x077a24257fadc22c
        .quad 0x1ab53be419b90d39
        .quad 0xada8b6e02946db23
        .quad 0x1c0ce51a7b253ab7
        .quad 0x8448c85a66dd485b
        .quad 0x7f1fc025d0675adf
        .quad 0xd8ee1b18319ea6aa
        .quad 0x004d88083a21f0da
        .quad 0x3bd6aa1d883a4f4b
        .quad 0x4db9a3a6dfd9fd14



        .quad 0x8ce7b23bb99c0755
        .quad 0x35c5d6edc4f50f7a
        .quad 0x7e1e2ed2ed9b50c3
        .quad 0x36305f16e8934da1
        .quad 0xd95b00bbcbb77c68
        .quad 0xddbc846a91f17849
        .quad 0x7cf700aebe28d9b3
        .quad 0x5ce1285c85d31f3e
        .quad 0x31b6972d98b0bde8
        .quad 0x7d920706aca6de5b
        .quad 0xe67310f8908a659f
        .quad 0x50fac2a6efdf0235



        .quad 0xf3d3a9f35b880f5a
        .quad 0xedec050cdb03e7c2
        .quad 0xa896981ff9f0b1a2
        .quad 0x49a4ae2bac5e34a4
        .quad 0x295b1c86f6f449bc
        .quad 0x51b2e84a1f0ab4dd
        .quad 0xc001cb30aa8e551d
        .quad 0x6a28d35944f43662
        .quad 0x28bb12ee04a740e0
        .quad 0x14313bbd9bce8174
        .quad 0x72f5b5e4e8c10c40
        .quad 0x7cbfb19936adcd5b



        .quad 0xa311ddc26b89792d
        .quad 0x1b30b4c6da512664
        .quad 0x0ca77b4ccf150859
        .quad 0x1de443df1b009408
        .quad 0x8e793a7acc36e6e0
        .quad 0xf9fab7a37d586eed
        .quad 0x3a4f9692bae1f4e4
        .quad 0x1c14b03eff5f447e
        .quad 0x19647bd114a85291
        .quad 0x57b76cb21034d3af
        .quad 0x6329db440f9d6dfa
        .quad 0x5ef43e586a571493



        .quad 0xef782014385675a6
        .quad 0xa2649f30aafda9e8
        .quad 0x4cd1eb505cdfa8cb
        .quad 0x46115aba1d4dc0b3
        .quad 0xa66dcc9dc80c1ac0
        .quad 0x97a05cf41b38a436
        .quad 0xa7ebf3be95dbd7c6
        .quad 0x7da0b8f68d7e7dab
        .quad 0xd40f1953c3b5da76
        .quad 0x1dac6f7321119e9b
        .quad 0x03cc6021feb25960
        .quad 0x5a5f887e83674b4b



        .quad 0x8f6301cf70a13d11
        .quad 0xcfceb815350dd0c4
        .quad 0xf70297d4a4bca47e
        .quad 0x3669b656e44d1434
        .quad 0x9e9628d3a0a643b9
        .quad 0xb5c3cb00e6c32064
        .quad 0x9b5302897c2dec32
        .quad 0x43e37ae2d5d1c70c
        .quad 0x387e3f06eda6e133
        .quad 0x67301d5199a13ac0
        .quad 0xbd5ad8f836263811
        .quad 0x6a21e6cd4fd5e9be



        .quad 0xf1c6170a3046e65f
        .quad 0x58712a2a00d23524
        .quad 0x69dbbd3c8c82b755
        .quad 0x586bf9f1a195ff57
        .quad 0xef4129126699b2e3
        .quad 0x71d30847708d1301
        .quad 0x325432d01182b0bd
        .quad 0x45371b07001e8b36
        .quad 0xa6db088d5ef8790b
        .quad 0x5278f0dc610937e5
        .quad 0xac0349d261a16eb8
        .quad 0x0eafb03790e52179



        .quad 0x960555c13748042f
        .quad 0x219a41e6820baa11
        .quad 0x1c81f73873486d0c
        .quad 0x309acc675a02c661
        .quad 0x5140805e0f75ae1d
        .quad 0xec02fbe32662cc30
        .quad 0x2cebdf1eea92396d
        .quad 0x44ae3344c5435bb3
        .quad 0x9cf289b9bba543ee
        .quad 0xf3760e9d5ac97142
        .quad 0x1d82e5c64f9360aa
        .quad 0x62d5221b7f94678f



        .quad 0x524c299c18d0936d
        .quad 0xc86bb56c8a0c1a0c
        .quad 0xa375052edb4a8631
        .quad 0x5c0efde4bc754562
        .quad 0x7585d4263af77a3c
        .quad 0xdfae7b11fee9144d
        .quad 0xa506708059f7193d
        .quad 0x14f29a5383922037
        .quad 0xdf717edc25b2d7f5
        .quad 0x21f970db99b53040
        .quad 0xda9234b7c3ed4c62
        .quad 0x5e72365c7bee093e



        .quad 0x575bfc074571217f
        .quad 0x3779675d0694d95b
        .quad 0x9a0a37bbf4191e33
        .quad 0x77f1104c47b4eabc
        .quad 0x7d9339062f08b33e
        .quad 0x5b9659e5df9f32be
        .quad 0xacff3dad1f9ebdfd
        .quad 0x70b20555cb7349b7
        .quad 0xbe5113c555112c4c
        .quad 0x6688423a9a881fcd
        .quad 0x446677855e503b47
        .quad 0x0e34398f4a06404a



        .quad 0xb67d22d93ecebde8
        .quad 0x09b3e84127822f07
        .quad 0x743fa61fb05b6d8d
        .quad 0x5e5405368a362372
        .quad 0x18930b093e4b1928
        .quad 0x7de3e10e73f3f640
        .quad 0xf43217da73395d6f
        .quad 0x6f8aded6ca379c3e
        .quad 0xe340123dfdb7b29a
        .quad 0x487b97e1a21ab291
        .quad 0xf9967d02fde6949e
        .quad 0x780de72ec8d3de97



        .quad 0x0ae28545089ae7bc
        .quad 0x388ddecf1c7f4d06
        .quad 0x38ac15510a4811b8
        .quad 0x0eb28bf671928ce4
        .quad 0x671feaf300f42772
        .quad 0x8f72eb2a2a8c41aa
        .quad 0x29a17fd797373292
        .quad 0x1defc6ad32b587a6
        .quad 0xaf5bbe1aef5195a7
        .quad 0x148c1277917b15ed
        .quad 0x2991f7fb7ae5da2e
        .quad 0x467d201bf8dd2867



        .quad 0x7906ee72f7bd2e6b
        .quad 0x05d270d6109abf4e
        .quad 0x8d5cfe45b941a8a4
        .quad 0x44c218671c974287
        .quad 0x745f9d56296bc318
        .quad 0x993580d4d8152e65
        .quad 0xb0e5b13f5839e9ce
        .quad 0x51fc2b28d43921c0
        .quad 0x1b8fd11795e2a98c
        .quad 0x1c4e5ee12b6b6291
        .quad 0x5b30e7107424b572
        .quad 0x6e6b9de84c4f4ac6



        .quad 0xdff25fce4b1de151
        .quad 0xd841c0c7e11c4025
        .quad 0x2554b3c854749c87
        .quad 0x2d292459908e0df9
        .quad 0x6b7c5f10f80cb088
        .quad 0x736b54dc56e42151
        .quad 0xc2b620a5c6ef99c4
        .quad 0x5f4c802cc3a06f42
        .quad 0x9b65c8f17d0752da
        .quad 0x881ce338c77ee800
        .quad 0xc3b514f05b62f9e3
        .quad 0x66ed5dd5bec10d48



        .quad 0x7d38a1c20bb2089d
        .quad 0x808334e196ccd412
        .quad 0xc4a70b8c6c97d313
        .quad 0x2eacf8bc03007f20
        .quad 0xf0adf3c9cbca047d
        .quad 0x81c3b2cbf4552f6b
        .quad 0xcfda112d44735f93
        .quad 0x1f23a0c77e20048c
        .quad 0xf235467be5bc1570
        .quad 0x03d2d9020dbab38c
        .quad 0x27529aa2fcf9e09e
        .quad 0x0840bef29d34bc50



        .quad 0x796dfb35dc10b287
        .quad 0x27176bcd5c7ff29d
        .quad 0x7f3d43e8c7b24905
        .quad 0x0304f5a191c54276
        .quad 0xcd54e06b7f37e4eb
        .quad 0x8cc15f87f5e96cca
        .quad 0xb8248bb0d3597dce
        .quad 0x246affa06074400c
        .quad 0x37d88e68fbe45321
        .quad 0x86097548c0d75032
        .quad 0x4e9b13ef894a0d35
        .quad 0x25a83cac5753d325



        .quad 0x10222f48eed8165e
        .quad 0x623fc1234b8bcf3a
        .quad 0x1e145c09c221e8f0
        .quad 0x7ccfa59fca782630
        .quad 0x9f0f66293952b6e2
        .quad 0x33db5e0e0934267b
        .quad 0xff45252bd609fedc
        .quad 0x06be10f5c506e0c9
        .quad 0x1a9615a9b62a345f
        .quad 0x22050c564a52fecc
        .quad 0xa7a2788528bc0dfe
        .quad 0x5e82770a1a1ee71d



        .quad 0x35425183ad896a5c
        .quad 0xe8673afbe78d52f6
        .quad 0x2c66f25f92a35f64
        .quad 0x09d04f3b3b86b102
        .quad 0xe802e80a42339c74
        .quad 0x34175166a7fffae5
        .quad 0x34865d1f1c408cae
        .quad 0x2cca982c605bc5ee
        .quad 0xfd2d5d35197dbe6e
        .quad 0x207c2eea8be4ffa3
        .quad 0x2613d8db325ae918
        .quad 0x7a325d1727741d3e



        .quad 0xd036b9bbd16dfde2
        .quad 0xa2055757c497a829
        .quad 0x8e6cc966a7f12667
        .quad 0x4d3b1a791239c180
        .quad 0xecd27d017e2a076a
        .quad 0xd788689f1636495e
        .quad 0x52a61af0919233e5
        .quad 0x2a479df17bb1ae64
        .quad 0x9e5eee8e33db2710
        .quad 0x189854ded6c43ca5
        .quad 0xa41c22c592718138
        .quad 0x27ad5538a43a5e9b



        .quad 0x2746dd4b15350d61
        .quad 0xd03fcbc8ee9521b7
        .quad 0xe86e365a138672ca
        .quad 0x510e987f7e7d89e2
        .quad 0xcb5a7d638e47077c
        .quad 0x8db7536120a1c059
        .quad 0x549e1e4d8bedfdcc
        .quad 0x080153b7503b179d
        .quad 0xdda69d930a3ed3e3
        .quad 0x3d386ef1cd60a722
        .quad 0xc817ad58bdaa4ee6
        .quad 0x23be8d554fe7372a



        .quad 0x95fe919a74ef4fad
        .quad 0x3a827becf6a308a2
        .quad 0x964e01d309a47b01
        .quad 0x71c43c4f5ba3c797
        .quad 0xbc1ef4bd567ae7a9
        .quad 0x3f624cb2d64498bd
        .quad 0xe41064d22c1f4ec8
        .quad 0x2ef9c5a5ba384001
        .quad 0xb6fd6df6fa9e74cd
        .quad 0xf18278bce4af267a
        .quad 0x8255b3d0f1ef990e
        .quad 0x5a758ca390c5f293



        .quad 0xa2b72710d9462495
        .quad 0x3aa8c6d2d57d5003
        .quad 0xe3d400bfa0b487ca
        .quad 0x2dbae244b3eb72ec
        .quad 0x8ce0918b1d61dc94
        .quad 0x8ded36469a813066
        .quad 0xd4e6a829afe8aad3
        .quad 0x0a738027f639d43f
        .quad 0x980f4a2f57ffe1cc
        .quad 0x00670d0de1839843
        .quad 0x105c3f4a49fb15fd
        .quad 0x2698ca635126a69c



        .quad 0xe765318832b0ba78
        .quad 0x381831f7925cff8b
        .quad 0x08a81b91a0291fcc
        .quad 0x1fb43dcc49caeb07
        .quad 0x2e3d702f5e3dd90e
        .quad 0x9e3f0918e4d25386
        .quad 0x5e773ef6024da96a
        .quad 0x3c004b0c4afa3332
        .quad 0x9aa946ac06f4b82b
        .quad 0x1ca284a5a806c4f3
        .quad 0x3ed3265fc6cd4787
        .quad 0x6b43fd01cd1fd217



        .quad 0xc7a75d4b4697c544
        .quad 0x15fdf848df0fffbf
        .quad 0x2868b9ebaa46785a
        .quad 0x5a68d7105b52f714
        .quad 0xb5c742583e760ef3
        .quad 0x75dc52b9ee0ab990
        .quad 0xbf1427c2072b923f
        .quad 0x73420b2d6ff0d9f0
        .quad 0xaf2cf6cb9e851e06
        .quad 0x8f593913c62238c4
        .quad 0xda8ab89699fbf373
        .quad 0x3db5632fea34bc9e



        .quad 0xf46eee2bf75dd9d8
        .quad 0x0d17b1f6396759a5
        .quad 0x1bf2d131499e7273
        .quad 0x04321adf49d75f13
        .quad 0x2e4990b1829825d5
        .quad 0xedeaeb873e9a8991
        .quad 0xeef03d394c704af8
        .quad 0x59197ea495df2b0e
        .quad 0x04e16019e4e55aae
        .quad 0xe77b437a7e2f92e9
        .quad 0xc7ce2dc16f159aa4
        .quad 0x45eafdc1f4d70cc0



        .quad 0x698401858045d72b
        .quad 0x4c22faa2cf2f0651
        .quad 0x941a36656b222dc6
        .quad 0x5a5eebc80362dade
        .quad 0xb60e4624cfccb1ed
        .quad 0x59dbc292bd5c0395
        .quad 0x31a09d1ddc0481c9
        .quad 0x3f73ceea5d56d940
        .quad 0xb7a7bfd10a4e8dc6
        .quad 0xbe57007e44c9b339
        .quad 0x60c1207f1557aefa
        .quad 0x26058891266218db



        .quad 0x59f704a68360ff04
        .quad 0xc3d93fde7661e6f4
        .quad 0x831b2a7312873551
        .quad 0x54ad0c2e4e615d57
        .quad 0x4c818e3cc676e542
        .quad 0x5e422c9303ceccad
        .quad 0xec07cccab4129f08
        .quad 0x0dedfa10b24443b8
        .quad 0xee3b67d5b82b522a
        .quad 0x36f163469fa5c1eb
        .quad 0xa5b4d2f26ec19fd3
        .quad 0x62ecb2baa77a9408



        .quad 0xe5ed795261152b3d
        .quad 0x4962357d0eddd7d1
        .quad 0x7482c8d0b96b4c71
        .quad 0x2e59f919a966d8be
        .quad 0x92072836afb62874
        .quad 0x5fcd5e8579e104a5
        .quad 0x5aad01adc630a14a
        .quad 0x61913d5075663f98
        .quad 0x0dc62d361a3231da
        .quad 0xfa47583294200270
        .quad 0x02d801513f9594ce
        .quad 0x3ddbc2a131c05d5c



        .quad 0x3f50a50a4ffb81ef
        .quad 0xb1e035093bf420bf
        .quad 0x9baa8e1cc6aa2cd0
        .quad 0x32239861fa237a40
        .quad 0xfb735ac2004a35d1
        .quad 0x31de0f433a6607c3
        .quad 0x7b8591bfc528d599
        .quad 0x55be9a25f5bb050c
        .quad 0x0d005acd33db3dbf
        .quad 0x0111b37c80ac35e2
        .quad 0x4892d66c6f88ebeb
        .quad 0x770eadb16508fbcd



        .quad 0x8451f9e05e4e89dd
        .quad 0xc06302ffbc793937
        .quad 0x5d22749556a6495c
        .quad 0x09a6755ca05603fb
        .quad 0xf1d3b681a05071b9
        .quad 0x2207659a3592ff3a
        .quad 0x5f0169297881e40e
        .quad 0x16bedd0e86ba374e
        .quad 0x5ecccc4f2c2737b5
        .quad 0x43b79e0c2dccb703
        .quad 0x33e008bc4ec43df3
        .quad 0x06c1b840f07566c0



        .quad 0x7688a5c6a388f877
        .quad 0x02a96c14deb2b6ac
        .quad 0x64c9f3431b8c2af8
        .quad 0x3628435554a1eed6
        .quad 0x69ee9e7f9b02805c
        .quad 0xcbff828a547d1640
        .quad 0x3d93a869b2430968
        .quad 0x46b7b8cd3fe26972
        .quad 0xe9812086fe7eebe0
        .quad 0x4cba6be72f515437
        .quad 0x1d04168b516efae9
        .quad 0x5ea1391043982cb9



        .quad 0x49125c9cf4702ee1
        .quad 0x4520b71f8b25b32d
        .quad 0x33193026501fef7e
        .quad 0x656d8997c8d2eb2b
        .quad 0x6f2b3be4d5d3b002
        .quad 0xafec33d96a09c880
        .quad 0x035f73a4a8bcc4cc
        .quad 0x22c5b9284662198b
        .quad 0xcb58c8fe433d8939
        .quad 0x89a0cb2e6a8d7e50
        .quad 0x79ca955309fbbe5a
        .quad 0x0c626616cd7fc106



        .quad 0x1ffeb80a4879b61f
        .quad 0x6396726e4ada21ed
        .quad 0x33c7b093368025ba
        .quad 0x471aa0c6f3c31788
        .quad 0x8fdfc379fbf454b1
        .quad 0x45a5a970f1a4b771
        .quad 0xac921ef7bad35915
        .quad 0x42d088dca81c2192
        .quad 0x8fda0f37a0165199
        .quad 0x0adadb77c8a0e343
        .quad 0x20fbfdfcc875e820
        .quad 0x1cf2bea80c2206e7



        .quad 0xc2ddf1deb36202ac
        .quad 0x92a5fe09d2e27aa5
        .quad 0x7d1648f6fc09f1d3
        .quad 0x74c2cc0513bc4959
        .quad 0x982d6e1a02c0412f
        .quad 0x90fa4c83db58e8fe
        .quad 0x01c2f5bcdcb18bc0
        .quad 0x686e0c90216abc66
        .quad 0x1fadbadba54395a7
        .quad 0xb41a02a0ae0da66a
        .quad 0xbf19f598bba37c07
        .quad 0x6a12b8acde48430d



        .quad 0xf8daea1f39d495d9
        .quad 0x592c190e525f1dfc
        .quad 0xdb8cbd04c9991d1b
        .quad 0x11f7fda3d88f0cb7
        .quad 0x793bdd801aaeeb5f
        .quad 0x00a2a0aac1518871
        .quad 0xe8a373a31f2136b4
        .quad 0x48aab888fc91ef19
        .quad 0x041f7e925830f40e
        .quad 0x002d6ca979661c06
        .quad 0x86dc9ff92b046a2e
        .quad 0x760360928b0493d1



        .quad 0x21bb41c6120cf9c6
        .quad 0xeab2aa12decda59b
        .quad 0xc1a72d020aa48b34
        .quad 0x215d4d27e87d3b68
        .quad 0xb43108e5695a0b05
        .quad 0x6cb00ee8ad37a38b
        .quad 0x5edad6eea3537381
        .quad 0x3f2602d4b6dc3224
        .quad 0xc8b247b65bcaf19c
        .quad 0x49779dc3b1b2c652
        .quad 0x89a180bbd5ece2e2
        .quad 0x13f098a3cec8e039



        .quad 0x9adc0ff9ce5ec54b
        .quad 0x039c2a6b8c2f130d
        .quad 0x028007c7f0f89515
        .quad 0x78968314ac04b36b
        .quad 0xf3aa57a22796bb14
        .quad 0x883abab79b07da21
        .quad 0xe54be21831a0391c
        .quad 0x5ee7fb38d83205f9
        .quad 0x538dfdcb41446a8e
        .quad 0xa5acfda9434937f9
        .quad 0x46af908d263c8c78
        .quad 0x61d0633c9bca0d09



        .quad 0x63744935ffdb2566
        .quad 0xc5bd6b89780b68bb
        .quad 0x6f1b3280553eec03
        .quad 0x6e965fd847aed7f5
        .quad 0xada328bcf8fc73df
        .quad 0xee84695da6f037fc
        .quad 0x637fb4db38c2a909
        .quad 0x5b23ac2df8067bdc
        .quad 0x9ad2b953ee80527b
        .quad 0xe88f19aafade6d8d
        .quad 0x0e711704150e82cf
        .quad 0x79b9bbb9dd95dedc



        .quad 0xebb355406a3126c2
        .quad 0xd26383a868c8c393
        .quad 0x6c0c6429e5b97a82
        .quad 0x5065f158c9fd2147
        .quad 0xd1997dae8e9f7374
        .quad 0xa032a2f8cfbb0816
        .quad 0xcd6cba126d445f0a
        .quad 0x1ba811460accb834
        .quad 0x708169fb0c429954
        .quad 0xe14600acd76ecf67
        .quad 0x2eaab98a70e645ba
        .quad 0x3981f39e58a4faf2



        .quad 0x18fb8a7559230a93
        .quad 0x1d168f6960e6f45d
        .quad 0x3a85a94514a93cb5
        .quad 0x38dc083705acd0fd
        .quad 0xc845dfa56de66fde
        .quad 0xe152a5002c40483a
        .quad 0xe9d2e163c7b4f632
        .quad 0x30f4452edcbc1b65
        .quad 0x856d2782c5759740
        .quad 0xfa134569f99cbecc
        .quad 0x8844fc73c0ea4e71
        .quad 0x632d9a1a593f2469



        .quad 0xf6bb6b15b807cba6
        .quad 0x1823c7dfbc54f0d7
        .quad 0xbb1d97036e29670b
        .quad 0x0b24f48847ed4a57
        .quad 0xbf09fd11ed0c84a7
        .quad 0x63f071810d9f693a
        .quad 0x21908c2d57cf8779
        .quad 0x3a5a7df28af64ba2
        .quad 0xdcdad4be511beac7
        .quad 0xa4538075ed26ccf2
        .quad 0xe19cff9f005f9a65
        .quad 0x34fcf74475481f63



        .quad 0xc197e04c789767ca
        .quad 0xb8714dcb38d9467d
        .quad 0x55de888283f95fa8
        .quad 0x3d3bdc164dfa63f7
        .quad 0xa5bb1dab78cfaa98
        .quad 0x5ceda267190b72f2
        .quad 0x9309c9110a92608e
        .quad 0x0119a3042fb374b0
        .quad 0x67a2d89ce8c2177d
        .quad 0x669da5f66895d0c1
        .quad 0xf56598e5b282a2b0
        .quad 0x56c088f1ede20a73



        .quad 0x336d3d1110a86e17
        .quad 0xd7f388320b75b2fa
        .quad 0xf915337625072988
        .quad 0x09674c6b99108b87
        .quad 0x581b5fac24f38f02
        .quad 0xa90be9febae30cbd
        .quad 0x9a2169028acf92f0
        .quad 0x038b7ea48359038f
        .quad 0x9f4ef82199316ff8
        .quad 0x2f49d282eaa78d4f
        .quad 0x0971a5ab5aef3174
        .quad 0x6e5e31025969eb65



        .quad 0xb16c62f587e593fb
        .quad 0x4999eddeca5d3e71
        .quad 0xb491c1e014cc3e6d
        .quad 0x08f5114789a8dba8
        .quad 0x3304fb0e63066222
        .quad 0xfb35068987acba3f
        .quad 0xbd1924778c1061a3
        .quad 0x3058ad43d1838620
        .quad 0x323c0ffde57663d0
        .quad 0x05c3df38a22ea610
        .quad 0xbdc78abdac994f9a
        .quad 0x26549fa4efe3dc99



        .quad 0x738b38d787ce8f89
        .quad 0xb62658e24179a88d
        .quad 0x30738c9cf151316d
        .quad 0x49128c7f727275c9
        .quad 0x04dbbc17f75396b9
        .quad 0x69e6a2d7d2f86746
        .quad 0xc6409d99f53eabc6
        .quad 0x606175f6332e25d2
        .quad 0x4021370ef540e7dd
        .quad 0x0910d6f5a1f1d0a5
        .quad 0x4634aacd5b06b807
        .quad 0x6a39e6356944f235



        .quad 0x96cd5640df90f3e7
        .quad 0x6c3a760edbfa25ea
        .quad 0x24f3ef0959e33cc4
        .quad 0x42889e7e530d2e58
        .quad 0x1da1965774049e9d
        .quad 0xfbcd6ea198fe352b
        .quad 0xb1cbcd50cc5236a6
        .quad 0x1f5ec83d3f9846e2
        .quad 0x8efb23c3328ccb75
        .quad 0xaf42a207dd876ee9
        .quad 0x20fbdadc5dfae796
        .quad 0x241e246b06bf9f51



        .quad 0x29e68e57ad6e98f6
        .quad 0x4c9260c80b462065
        .quad 0x3f00862ea51ebb4b
        .quad 0x5bc2c77fb38d9097
        .quad 0x7eaafc9a6280bbb8
        .quad 0x22a70f12f403d809
        .quad 0x31ce40bb1bfc8d20
        .quad 0x2bc65635e8bd53ee
        .quad 0xe8d5dc9fa96bad93
        .quad 0xe58fb17dde1947dc
        .quad 0x681532ea65185fa3
        .quad 0x1fdd6c3b034a7830



        .quad 0x0a64e28c55dc18fe
        .quad 0xe3df9e993399ebdd
        .quad 0x79ac432370e2e652
        .quad 0x35ff7fc33ae4cc0e
        .quad 0x9c13a6a52dd8f7a9
        .quad 0x2dbb1f8c3efdcabf
        .quad 0x961e32405e08f7b5
        .quad 0x48c8a121bbe6c9e5
        .quad 0xfc415a7c59646445
        .quad 0xd224b2d7c128b615
        .quad 0x6035c9c905fbb912
        .quad 0x42d7a91274429fab



        .quad 0x4e6213e3eaf72ed3
        .quad 0x6794981a43acd4e7
        .quad 0xff547cde6eb508cb
        .quad 0x6fed19dd10fcb532
        .quad 0xa9a48947933da5bc
        .quad 0x4a58920ec2e979ec
        .quad 0x96d8800013e5ac4c
        .quad 0x453692d74b48b147
        .quad 0xdd775d99a8559c6f
        .quad 0xf42a2140df003e24
        .quad 0x5223e229da928a66
        .quad 0x063f46ba6d38f22c



        .quad 0xd2d242895f536694
        .quad 0xca33a2c542939b2c
        .quad 0x986fada6c7ddb95c
        .quad 0x5a152c042f712d5d
        .quad 0x39843cb737346921
        .quad 0xa747fb0738c89447
        .quad 0xcb8d8031a245307e
        .quad 0x67810f8e6d82f068
        .quad 0x3eeb8fbcd2287db4
        .quad 0x72c7d3a301a03e93
        .quad 0x5473e88cbd98265a
        .quad 0x7324aa515921b403



        .quad 0x857942f46c3cbe8e
        .quad 0xa1d364b14730c046
        .quad 0x1c8ed914d23c41bf
        .quad 0x0838e161eef6d5d2
        .quad 0xad23f6dae82354cb
        .quad 0x6962502ab6571a6d
        .quad 0x9b651636e38e37d1
        .quad 0x5cac5005d1a3312f
        .quad 0x8cc154cce9e39904
        .quad 0x5b3a040b84de6846
        .quad 0xc4d8a61cb1be5d6e
        .quad 0x40fb897bd8861f02



        .quad 0x84c5aa9062de37a1
        .quad 0x421da5000d1d96e1
        .quad 0x788286306a9242d9
        .quad 0x3c5e464a690d10da
        .quad 0xe57ed8475ab10761
        .quad 0x71435e206fd13746
        .quad 0x342f824ecd025632
        .quad 0x4b16281ea8791e7b
        .quad 0xd1c101d50b813381
        .quad 0xdee60f1176ee6828
        .quad 0x0cb68893383f6409
        .quad 0x6183c565f6ff484a



        .quad 0x741d5a461e6bf9d6
        .quad 0x2305b3fc7777a581
        .quad 0xd45574a26474d3d9
        .quad 0x1926e1dc6401e0ff
        .quad 0xdb468549af3f666e
        .quad 0xd77fcf04f14a0ea5
        .quad 0x3df23ff7a4ba0c47
        .quad 0x3a10dfe132ce3c85
        .quad 0xe07f4e8aea17cea0
        .quad 0x2fd515463a1fc1fd
        .quad 0x175322fd31f2c0f1
        .quad 0x1fa1d01d861e5d15



        .quad 0xcc8055947d599832
        .quad 0x1e4656da37f15520
        .quad 0x99f6f7744e059320
        .quad 0x773563bc6a75cf33
        .quad 0x38dcac00d1df94ab
        .quad 0x2e712bddd1080de9
        .quad 0x7f13e93efdd5e262
        .quad 0x73fced18ee9a01e5
        .quad 0x06b1e90863139cb3
        .quad 0xa493da67c5a03ecd
        .quad 0x8d77cec8ad638932
        .quad 0x1f426b701b864f44



        .quad 0xefc9264c41911c01
        .quad 0xf1a3b7b817a22c25
        .quad 0x5875da6bf30f1447
        .quad 0x4e1af5271d31b090
        .quad 0xf17e35c891a12552
        .quad 0xb76b8153575e9c76
        .quad 0xfa83406f0d9b723e
        .quad 0x0b76bb1b3fa7e438
        .quad 0x08b8c1f97f92939b
        .quad 0xbe6771cbd444ab6e
        .quad 0x22e5646399bb8017
        .quad 0x7b6dd61eb772a955



        .quad 0xb7adc1e850f33d92
        .quad 0x7998fa4f608cd5cf
        .quad 0xad962dbd8dfc5bdb
        .quad 0x703e9bceaf1d2f4f
        .quad 0x5730abf9ab01d2c7
        .quad 0x16fb76dc40143b18
        .quad 0x866cbe65a0cbb281
        .quad 0x53fa9b659bff6afe
        .quad 0x6c14c8e994885455
        .quad 0x843a5d6665aed4e5
        .quad 0x181bb73ebcd65af1
        .quad 0x398d93e5c4c61f50



        .quad 0x1c4bd16733e248f3
        .quad 0xbd9e128715bf0a5f
        .quad 0xd43f8cf0a10b0376
        .quad 0x53b09b5ddf191b13
        .quad 0xc3877c60d2e7e3f2
        .quad 0x3b34aaa030828bb1
        .quad 0x283e26e7739ef138
        .quad 0x699c9c9002c30577
        .quad 0xf306a7235946f1cc
        .quad 0x921718b5cce5d97d
        .quad 0x28cdd24781b4e975
        .quad 0x51caf30c6fcdd907



        .quad 0xa60ba7427674e00a
        .quad 0x630e8570a17a7bf3
        .quad 0x3758563dcf3324cc
        .quad 0x5504aa292383fdaa
        .quad 0x737af99a18ac54c7
        .quad 0x903378dcc51cb30f
        .quad 0x2b89bc334ce10cc7
        .quad 0x12ae29c189f8e99a
        .quad 0xa99ec0cb1f0d01cf
        .quad 0x0dd1efcc3a34f7ae
        .quad 0x55ca7521d09c4e22
        .quad 0x5fd14fe958eba5ea



        .quad 0xb5dc2ddf2845ab2c
        .quad 0x069491b10a7fe993
        .quad 0x4daaf3d64002e346
        .quad 0x093ff26e586474d1
        .quad 0x3c42fe5ebf93cb8e
        .quad 0xbedfa85136d4565f
        .quad 0xe0f0859e884220e8
        .quad 0x7dd73f960725d128
        .quad 0xb10d24fe68059829
        .quad 0x75730672dbaf23e5
        .quad 0x1367253ab457ac29
        .quad 0x2f59bcbc86b470a4



        .quad 0x83847d429917135f
        .quad 0xad1b911f567d03d7
        .quad 0x7e7748d9be77aad1
        .quad 0x5458b42e2e51af4a
        .quad 0x7041d560b691c301
        .quad 0x85201b3fadd7e71e
        .quad 0x16c2e16311335585
        .quad 0x2aa55e3d010828b1
        .quad 0xed5192e60c07444f
        .quad 0x42c54e2d74421d10
        .quad 0x352b4c82fdb5c864
        .quad 0x13e9004a8a768664



        .quad 0xcbb5b5556c032bff
        .quad 0xdf7191b729297a3a
        .quad 0xc1ff7326aded81bb
        .quad 0x71ade8bb68be03f5
        .quad 0x1e6284c5806b467c
        .quad 0xc5f6997be75d607b
        .quad 0x8b67d958b378d262
        .quad 0x3d88d66a81cd8b70
        .quad 0x8b767a93204ed789
        .quad 0x762fcacb9fa0ae2a
        .quad 0x771febcc6dce4887
        .quad 0x343062158ff05fb3



        .quad 0xe05da1a7e1f5bf49
        .quad 0x26457d6dd4736092
        .quad 0x77dcb07773cc32f6
        .quad 0x0a5d94969cdd5fcd
        .quad 0xfce219072a7b31b4
        .quad 0x4d7adc75aa578016
        .quad 0x0ec276a687479324
        .quad 0x6d6d9d5d1fda4beb
        .quad 0x22b1a58ae9b08183
        .quad 0xfd95d071c15c388b
        .quad 0xa9812376850a0517
        .quad 0x33384cbabb7f335e



        .quad 0x3c6fa2680ca2c7b5
        .quad 0x1b5082046fb64fda
        .quad 0xeb53349c5431d6de
        .quad 0x5278b38f6b879c89
        .quad 0x33bc627a26218b8d
        .quad 0xea80b21fc7a80c61
        .quad 0x9458b12b173e9ee6
        .quad 0x076247be0e2f3059
        .quad 0x52e105f61416375a
        .quad 0xec97af3685abeba4
        .quad 0x26e6b50623a67c36
        .quad 0x5cf0e856f3d4fb01



        .quad 0xf6c968731ae8cab4
        .quad 0x5e20741ecb4f92c5
        .quad 0x2da53be58ccdbc3e
        .quad 0x2dddfea269970df7
        .quad 0xbeaece313db342a8
        .quad 0xcba3635b842db7ee
        .quad 0xe88c6620817f13ef
        .quad 0x1b9438aa4e76d5c6
        .quad 0x8a50777e166f031a
        .quad 0x067b39f10fb7a328
        .quad 0x1925c9a6010fbd76
        .quad 0x6df9b575cc740905



        .quad 0x42c1192927f6bdcf
        .quad 0x8f91917a403d61ca
        .quad 0xdc1c5a668b9e1f61
        .quad 0x1596047804ec0f8d
        .quad 0xecdfc35b48cade41
        .quad 0x6a88471fb2328270
        .quad 0x740a4a2440a01b6a
        .quad 0x471e5796003b5f29
        .quad 0xda96bbb3aced37ac
        .quad 0x7a2423b5e9208cea
        .quad 0x24cc5c3038aebae2
        .quad 0x50c356afdc5dae2f



        .quad 0x09dcbf4341c30318
        .quad 0xeeba061183181dce
        .quad 0xc179c0cedc1e29a1
        .quad 0x1dbf7b89073f35b0
        .quad 0xcfed9cdf1b31b964
        .quad 0xf486a9858ca51af3
        .quad 0x14897265ea8c1f84
        .quad 0x784a53dd932acc00
        .quad 0x2d99f9df14fc4920
        .quad 0x76ccb60cc4499fe5
        .quad 0xa4132cbbe5cf0003
        .quad 0x3f93d82354f000ea



        .quad 0x8183e7689e04ce85
        .quad 0x678fb71e04465341
        .quad 0xad92058f6688edac
        .quad 0x5da350d3532b099a
        .quad 0xeaac12d179e14978
        .quad 0xff923ff3bbebff5e
        .quad 0x4af663e40663ce27
        .quad 0x0fd381a811a5f5ff
        .quad 0xf256aceca436df54
        .quad 0x108b6168ae69d6e8
        .quad 0x20d986cb6b5d036c
        .quad 0x655957b9fee2af50



        .quad 0xaea8b07fa902030f
        .quad 0xf88c766af463d143
        .quad 0x15b083663c787a60
        .quad 0x08eab1148267a4a8
        .quad 0xbdc1409bd002d0ac
        .quad 0x66660245b5ccd9a6
        .quad 0x82317dc4fade85ec
        .quad 0x02fe934b6ad7df0d
        .quad 0xef5cf100cfb7ea74
        .quad 0x22897633a1cb42ac
        .quad 0xd4ce0c54cef285e2
        .quad 0x30408c048a146a55



        .quad 0x739d8845832fcedb
        .quad 0xfa38d6c9ae6bf863
        .quad 0x32bc0dcab74ffef7
        .quad 0x73937e8814bce45e
        .quad 0xbb2e00c9193b877f
        .quad 0xece3a890e0dc506b
        .quad 0xecf3b7c036de649f
        .quad 0x5f46040898de9e1a
        .quad 0xb9037116297bf48d
        .quad 0xa9d13b22d4f06834
        .quad 0xe19715574696bdc6
        .quad 0x2cf8a4e891d5e835



        .quad 0x6d93fd8707110f67
        .quad 0xdd4c09d37c38b549
        .quad 0x7cb16a4cc2736a86
        .quad 0x2049bd6e58252a09
        .quad 0x2cb5487e17d06ba2
        .quad 0x24d2381c3950196b
        .quad 0xd7659c8185978a30
        .quad 0x7a6f7f2891d6a4f6
        .quad 0x7d09fd8d6a9aef49
        .quad 0xf0ee60be5b3db90b
        .quad 0x4c21b52c519ebfd4
        .quad 0x6011aadfc545941d



        .quad 0x5f67926dcf95f83c
        .quad 0x7c7e856171289071
        .quad 0xd6a1e7f3998f7a5b
        .quad 0x6fc5cc1b0b62f9e0
        .quad 0x63ded0c802cbf890
        .quad 0xfbd098ca0dff6aaa
        .quad 0x624d0afdb9b6ed99
        .quad 0x69ce18b779340b1e
        .quad 0xd1ef5528b29879cb
        .quad 0xdd1aae3cd47e9092
        .quad 0x127e0442189f2352
        .quad 0x15596b3ae57101f1



        .quad 0x462739d23f9179a2
        .quad 0xff83123197d6ddcf
        .quad 0x1307deb553f2148a
        .quad 0x0d2237687b5f4dda
        .quad 0x09ff31167e5124ca
        .quad 0x0be4158bd9c745df
        .quad 0x292b7d227ef556e5
        .quad 0x3aa4e241afb6d138
        .quad 0x2cc138bf2a3305f5
        .quad 0x48583f8fa2e926c3
        .quad 0x083ab1a25549d2eb
        .quad 0x32fcaa6e4687a36c



        .quad 0x7bc56e8dc57d9af5
        .quad 0x3e0bd2ed9df0bdf2
        .quad 0xaac014de22efe4a3
        .quad 0x4627e9cefebd6a5c
        .quad 0x3207a4732787ccdf
        .quad 0x17e31908f213e3f8
        .quad 0xd5b2ecd7f60d964e
        .quad 0x746f6336c2600be9
        .quad 0x3f4af345ab6c971c
        .quad 0xe288eb729943731f
        .quad 0x33596a8a0344186d
        .quad 0x7b4917007ed66293



        .quad 0x2d85fb5cab84b064
        .quad 0x497810d289f3bc14
        .quad 0x476adc447b15ce0c
        .quad 0x122ba376f844fd7b
        .quad 0x54341b28dd53a2dd
        .quad 0xaa17905bdf42fc3f
        .quad 0x0ff592d94dd2f8f4
        .quad 0x1d03620fe08cd37d
        .quad 0xc20232cda2b4e554
        .quad 0x9ed0fd42115d187f
        .quad 0x2eabb4be7dd479d9
        .quad 0x02c70bf52b68ec4c



        .quad 0xa287ec4b5d0b2fbb
        .quad 0x415c5790074882ca
        .quad 0xe044a61ec1d0815c
        .quad 0x26334f0a409ef5e0
        .quad 0xace532bf458d72e1
        .quad 0x5be768e07cb73cb5
        .quad 0x56cf7d94ee8bbde7
        .quad 0x6b0697e3feb43a03
        .quad 0xb6c8f04adf62a3c0
        .quad 0x3ef000ef076da45d
        .quad 0x9c9cb95849f0d2a9
        .quad 0x1cc37f43441b2fae



        .quad 0x508f565a5cc7324f
        .quad 0xd061c4c0e506a922
        .quad 0xfb18abdb5c45ac19
        .quad 0x6c6809c10380314a
        .quad 0xd76656f1c9ceaeb9
        .quad 0x1c5b15f818e5656a
        .quad 0x26e72832844c2334
        .quad 0x3a346f772f196838
        .quad 0xd2d55112e2da6ac8
        .quad 0xe9bd0331b1e851ed
        .quad 0x960746dd8ec67262
        .quad 0x05911b9f6ef7c5d0



        .quad 0xe9dcd756b637ff2d
        .quad 0xec4c348fc987f0c4
        .quad 0xced59285f3fbc7b7
        .quad 0x3305354793e1ea87
        .quad 0x01c18980c5fe9f94
        .quad 0xcd656769716fd5c8
        .quad 0x816045c3d195a086
        .quad 0x6e2b7f3266cc7982
        .quad 0xcc802468f7c3568f
        .quad 0x9de9ba8219974cb3
        .quad 0xabb7229cb5b81360
        .quad 0x44e2017a6fbeba62



        .quad 0xc4c2a74354dab774
        .quad 0x8e5d4c3c4eaf031a
        .quad 0xb76c23d242838f17
        .quad 0x749a098f68dce4ea
        .quad 0x87f82cf3b6ca6ecd
        .quad 0x580f893e18f4a0c2
        .quad 0x058930072604e557
        .quad 0x6cab6ac256d19c1d
        .quad 0xdcdfe0a02cc1de60
        .quad 0x032665ff51c5575b
        .quad 0x2c0c32f1073abeeb
        .quad 0x6a882014cd7b8606



        .quad 0xa52a92fea4747fb5
        .quad 0xdc12a4491fa5ab89
        .quad 0xd82da94bb847a4ce
        .quad 0x4d77edce9512cc4e
        .quad 0xd111d17caf4feb6e
        .quad 0x050bba42b33aa4a3
        .quad 0x17514c3ceeb46c30
        .quad 0x54bedb8b1bc27d75
        .quad 0x77c8e14577e2189c
        .quad 0xa3e46f6aff99c445
        .quad 0x3144dfc86d335343
        .quad 0x3a96559e7c4216a9



        .quad 0x12550d37f42ad2ee
        .quad 0x8b78e00498a1fbf5
        .quad 0x5d53078233894cb2
        .quad 0x02c84e4e3e498d0c
        .quad 0x4493896880baaa52
        .quad 0x4c98afc4f285940e
        .quad 0xef4aa79ba45448b6
        .quad 0x5278c510a57aae7f
        .quad 0xa54dd074294c0b94
        .quad 0xf55d46b8df18ffb6
        .quad 0xf06fecc58dae8366
        .quad 0x588657668190d165



        .quad 0xd47712311aef7117
        .quad 0x50343101229e92c7
        .quad 0x7a95e1849d159b97
        .quad 0x2449959b8b5d29c9
        .quad 0xbf5834f03de25cc3
        .quad 0xb887c8aed6815496
        .quad 0x5105221a9481e892
        .quad 0x6760ed19f7723f93
        .quad 0x669ba3b7ac35e160
        .quad 0x2eccf73fba842056
        .quad 0x1aec1f17c0804f07
        .quad 0x0d96bc031856f4e7



        .quad 0x3318be7775c52d82
        .quad 0x4cb764b554d0aab9
        .quad 0xabcf3d27cc773d91
        .quad 0x3bf4d1848123288a
        .quad 0xb1d534b0cc7505e1
        .quad 0x32cd003416c35288
        .quad 0xcb36a5800762c29d
        .quad 0x5bfe69b9237a0bf8
        .quad 0x183eab7e78a151ab
        .quad 0xbbe990c999093763
        .quad 0xff717d6e4ac7e335
        .quad 0x4c5cddb325f39f88



        .quad 0xc0f6b74d6190a6eb
        .quad 0x20ea81a42db8f4e4
        .quad 0xa8bd6f7d97315760
        .quad 0x33b1d60262ac7c21
        .quad 0x57750967e7a9f902
        .quad 0x2c37fdfc4f5b467e
        .quad 0xb261663a3177ba46
        .quad 0x3a375e78dc2d532b
        .quad 0x8141e72f2d4dddea
        .quad 0xe6eafe9862c607c8
        .quad 0x23c28458573cafd0
        .quad 0x46b9476f4ff97346



        .quad 0x0c1ffea44f901e5c
        .quad 0x2b0b6fb72184b782
        .quad 0xe587ff910114db88
        .quad 0x37130f364785a142
        .quad 0x1215505c0d58359f
        .quad 0x2a2013c7fc28c46b
        .quad 0x24a0a1af89ea664e
        .quad 0x4400b638a1130e1f
        .quad 0x3a01b76496ed19c3
        .quad 0x31e00ab0ed327230
        .quad 0x520a885783ca15b1
        .quad 0x06aab9875accbec7



        .quad 0xc1339983f5df0ebb
        .quad 0xc0f3758f512c4cac
        .quad 0x2cf1130a0bb398e1
        .quad 0x6b3cecf9aa270c62
        .quad 0x5349acf3512eeaef
        .quad 0x20c141d31cc1cb49
        .quad 0x24180c07a99a688d
        .quad 0x555ef9d1c64b2d17
        .quad 0x36a770ba3b73bd08
        .quad 0x624aef08a3afbf0c
        .quad 0x5737ff98b40946f2
        .quad 0x675f4de13381749d



        .quad 0x0e2c52036b1782fc
        .quad 0x64816c816cad83b4
        .quad 0xd0dcbdd96964073e
        .quad 0x13d99df70164c520
        .quad 0xa12ff6d93bdab31d
        .quad 0x0725d80f9d652dfe
        .quad 0x019c4ff39abe9487
        .quad 0x60f450b882cd3c43
        .quad 0x014b5ec321e5c0ca
        .quad 0x4fcb69c9d719bfa2
        .quad 0x4e5f1c18750023a0
        .quad 0x1c06de9e55edac80



        .quad 0x990f7ad6a33ec4e2
        .quad 0x6608f938be2ee08e
        .quad 0x9ca143c563284515
        .quad 0x4cf38a1fec2db60d
        .quad 0xffd52b40ff6d69aa
        .quad 0x34530b18dc4049bb
        .quad 0x5e4a5c2fa34d9897
        .quad 0x78096f8e7d32ba2d
        .quad 0xa0aaaa650dfa5ce7
        .quad 0xf9c49e2a48b5478c
        .quad 0x4f09cc7d7003725b
        .quad 0x373cad3a26091abe



        .quad 0xb294634d82c9f57c
        .quad 0x1fcbfde124934536
        .quad 0x9e9c4db3418cdb5a
        .quad 0x0040f3d9454419fc
        .quad 0xf1bea8fb89ddbbad
        .quad 0x3bcb2cbc61aeaecb
        .quad 0x8f58a7bb1f9b8d9d
        .quad 0x21547eda5112a686
        .quad 0xdefde939fd5986d3
        .quad 0xf4272c89510a380c
        .quad 0xb72ba407bb3119b9
        .quad 0x63550a334a254df4



        .quad 0x6507d6edb569cf37
        .quad 0x178429b00ca52ee1
        .quad 0xea7c0090eb6bd65d
        .quad 0x3eea62c7daf78f51
        .quad 0x9bba584572547b49
        .quad 0xf305c6fae2c408e0
        .quad 0x60e8fa69c734f18d
        .quad 0x39a92bafaa7d767a
        .quad 0x9d24c713e693274e
        .quad 0x5f63857768dbd375
        .quad 0x70525560eb8ab39a
        .quad 0x68436a0665c9c4cd



        .quad 0xbc0235e8202f3f27
        .quad 0xc75c00e264f975b0
        .quad 0x91a4e9d5a38c2416
        .quad 0x17b6e7f68ab789f9
        .quad 0x1e56d317e820107c
        .quad 0xc5266844840ae965
        .quad 0xc1e0a1c6320ffc7a
        .quad 0x5373669c91611472
        .quad 0x5d2814ab9a0e5257
        .quad 0x908f2084c9cab3fc
        .quad 0xafcaf5885b2d1eca
        .quad 0x1cb4b5a678f87d11



        .quad 0xb664c06b394afc6c
        .quad 0x0c88de2498da5fb1
        .quad 0x4f8d03164bcad834
        .quad 0x330bca78de7434a2
        .quad 0x6b74aa62a2a007e7
        .quad 0xf311e0b0f071c7b1
        .quad 0x5707e438000be223
        .quad 0x2dc0fd2d82ef6eac
        .quad 0x982eff841119744e
        .quad 0xf9695e962b074724
        .quad 0xc58ac14fbfc953fb
        .quad 0x3c31be1b369f1cf5



        .quad 0xb0f4864d08948aee
        .quad 0x07dc19ee91ba1c6f
        .quad 0x7975cdaea6aca158
        .quad 0x330b61134262d4bb
        .quad 0xc168bc93f9cb4272
        .quad 0xaeb8711fc7cedb98
        .quad 0x7f0e52aa34ac8d7a
        .quad 0x41cec1097e7d55bb
        .quad 0xf79619d7a26d808a
        .quad 0xbb1fd49e1d9e156d
        .quad 0x73d7c36cdba1df27
        .quad 0x26b44cd91f28777d



        .quad 0x300a9035393aa6d8
        .quad 0x2b501131a12bb1cd
        .quad 0x7b1ff677f093c222
        .quad 0x4309c1f8cab82bad
        .quad 0xaf44842db0285f37
        .quad 0x8753189047efc8df
        .quad 0x9574e091f820979a
        .quad 0x0e378d6069615579
        .quad 0xd9fa917183075a55
        .quad 0x4bdb5ad26b009fdc
        .quad 0x7829ad2cd63def0e
        .quad 0x078fc54975fd3877



        .quad 0x87dfbd1428878f2d
        .quad 0x134636dd1e9421a1
        .quad 0x4f17c951257341a3
        .quad 0x5df98d4bad296cb8
        .quad 0xe2004b5bb833a98a
        .quad 0x44775dec2d4c3330
        .quad 0x3aa244067eace913
        .quad 0x272630e3d58e00a9
        .quad 0xf3678fd0ecc90b54
        .quad 0xf001459b12043599
        .quad 0x26725fbc3758b89b
        .quad 0x4325e4aa73a719ae



        .quad 0x657dc6ef433c3493
        .quad 0x65375e9f80dbf8c3
        .quad 0x47fd2d465b372dae
        .quad 0x4966ab79796e7947
        .quad 0xed24629acf69f59d
        .quad 0x2a4a1ccedd5abbf4
        .quad 0x3535ca1f56b2d67b
        .quad 0x5d8c68d043b1b42d
        .quad 0xee332d4de3b42b0a
        .quad 0xd84e5a2b16a4601c
        .quad 0x78243877078ba3e4
        .quad 0x77ed1eb4184ee437



        .quad 0xbfd4e13f201839a0
        .quad 0xaeefffe23e3df161
        .quad 0xb65b04f06b5d1fe3
        .quad 0x52e085fb2b62fbc0
        .quad 0x185d43f89e92ed1a
        .quad 0xb04a1eeafe4719c6
        .quad 0x499fbe88a6f03f4f
        .quad 0x5d8b0d2f3c859bdd
        .quad 0x124079eaa54cf2ba
        .quad 0xd72465eb001b26e7
        .quad 0x6843bcfdc97af7fd
        .quad 0x0524b42b55eacd02



        .quad 0xfd0d5dbee45447b0
        .quad 0x6cec351a092005ee
        .quad 0x99a47844567579cb
        .quad 0x59d242a216e7fa45
        .quad 0xbc18dcad9b829eac
        .quad 0x23ae7d28b5f579d0
        .quad 0xc346122a69384233
        .quad 0x1a6110b2e7d4ac89
        .quad 0x4f833f6ae66997ac
        .quad 0x6849762a361839a4
        .quad 0x6985dec1970ab525
        .quad 0x53045e89dcb1f546



        .quad 0xcb8bb346d75353db
        .quad 0xfcfcb24bae511e22
        .quad 0xcba48d40d50ae6ef
        .quad 0x26e3bae5f4f7cb5d
        .quad 0x84da3cde8d45fe12
        .quad 0xbd42c218e444e2d2
        .quad 0xa85196781f7e3598
        .quad 0x7642c93f5616e2b2
        .quad 0x2323daa74595f8e4
        .quad 0xde688c8b857abeb4
        .quad 0x3fc48e961c59326e
        .quad 0x0b2e73ca15c9b8ba



        .quad 0xd6bb4428c17f5026
        .quad 0x9eb27223fb5a9ca7
        .quad 0xe37ba5031919c644
        .quad 0x21ce380db59a6602
        .quad 0x0e3fbfaf79c03a55
        .quad 0x3077af054cbb5acf
        .quad 0xd5c55245db3de39f
        .quad 0x015e68c1476a4af7
        .quad 0xc1d5285220066a38
        .quad 0x95603e523570aef3
        .quad 0x832659a7226b8a4d
        .quad 0x5dd689091f8eedc9



        .quad 0xcbac84debfd3c856
        .quad 0x1624c348b35ff244
        .quad 0xb7f88dca5d9cad07
        .quad 0x3b0e574da2c2ebe8
        .quad 0x1d022591a5313084
        .quad 0xca2d4aaed6270872
        .quad 0x86a12b852f0bfd20
        .quad 0x56e6c439ad7da748
        .quad 0xc704ff4942bdbae6
        .quad 0x5e21ade2b2de1f79
        .quad 0xe95db3f35652fad8
        .quad 0x0822b5378f08ebc1



        .quad 0x51f048478f387475
        .quad 0xb25dbcf49cbecb3c
        .quad 0x9aab1244d99f2055
        .quad 0x2c709e6c1c10a5d6
        .quad 0xe1b7f29362730383
        .quad 0x4b5279ffebca8a2c
        .quad 0xdafc778abfd41314
        .quad 0x7deb10149c72610f
        .quad 0xcb62af6a8766ee7a
        .quad 0x66cbec045553cd0e
        .quad 0x588001380f0be4b5
        .quad 0x08e68e9ff62ce2ea



        .quad 0x34ad500a4bc130ad
        .quad 0x8d38db493d0bd49c
        .quad 0xa25c3d98500a89be
        .quad 0x2f1f3f87eeba3b09
        .quad 0x2f2d09d50ab8f2f9
        .quad 0xacb9218dc55923df
        .quad 0x4a8f342673766cb9
        .quad 0x4cb13bd738f719f5
        .quad 0xf7848c75e515b64a
        .quad 0xa59501badb4a9038
        .quad 0xc20d313f3f751b50
        .quad 0x19a1e353c0ae2ee8



        .quad 0x7d1c7560bafa05c3
        .quad 0xb3e1a0a0c6e55e61
        .quad 0xe3529718c0d66473
        .quad 0x41546b11c20c3486
        .quad 0xb42172cdd596bdbd
        .quad 0x93e0454398eefc40
        .quad 0x9fb15347b44109b5
        .quad 0x736bd3990266ae34
        .quad 0x85532d509334b3b4
        .quad 0x46fd114b60816573
        .quad 0xcc5f5f30425c8375
        .quad 0x412295a2b87fab5c



        .quad 0x19c99b88f57ed6e9
        .quad 0x5393cb266df8c825
        .quad 0x5cee3213b30ad273
        .quad 0x14e153ebb52d2e34
        .quad 0x2e655261e293eac6
        .quad 0x845a92032133acdb
        .quad 0x460975cb7900996b
        .quad 0x0760bb8d195add80
        .quad 0x413e1a17cde6818a
        .quad 0x57156da9ed69a084
        .quad 0x2cbf268f46caccb1
        .quad 0x6b34be9bc33ac5f2



        .quad 0xf3df2f643a78c0b2
        .quad 0x4c3e971ef22e027c
        .quad 0xec7d1c5e49c1b5a3
        .quad 0x2012c18f0922dd2d
        .quad 0x11fc69656571f2d3
        .quad 0xc6c9e845530e737a
        .quad 0xe33ae7a2d4fe5035
        .quad 0x01b9c7b62e6dd30b
        .quad 0x880b55e55ac89d29
        .quad 0x1483241f45a0a763
        .quad 0x3d36efdfc2e76c1f
        .quad 0x08af5b784e4bade8



        .quad 0x283499dc881f2533
        .quad 0x9d0525da779323b6
        .quad 0x897addfb673441f4
        .quad 0x32b79d71163a168d
        .quad 0xe27314d289cc2c4b
        .quad 0x4be4bd11a287178d
        .quad 0x18d528d6fa3364ce
        .quad 0x6423c1d5afd9826e
        .quad 0xcc85f8d9edfcb36a
        .quad 0x22bcc28f3746e5f9
        .quad 0xe49de338f9e5d3cd
        .quad 0x480a5efbc13e2dcc



        .quad 0x0b51e70b01622071
        .quad 0x06b505cf8b1dafc5
        .quad 0x2c6bb061ef5aabcd
        .quad 0x47aa27600cb7bf31
        .quad 0xb6614ce442ce221f
        .quad 0x6e199dcc4c053928
        .quad 0x663fb4a4dc1cbe03
        .quad 0x24b31d47691c8e06
        .quad 0x2a541eedc015f8c3
        .quad 0x11a4fe7e7c693f7c
        .quad 0xf0af66134ea278d6
        .quad 0x545b585d14dda094



        .quad 0x67bf275ea0d43a0f
        .quad 0xade68e34089beebe
        .quad 0x4289134cd479e72e
        .quad 0x0f62f9c332ba5454
        .quad 0x6204e4d0e3b321e1
        .quad 0x3baa637a28ff1e95
        .quad 0x0b0ccffd5b99bd9e
        .quad 0x4d22dc3e64c8d071
        .quad 0xfcb46589d63b5f39
        .quad 0x5cae6a3f57cbcf61
        .quad 0xfebac2d2953afa05
        .quad 0x1c0fa01a36371436



        .quad 0xe7547449bc7cd692
        .quad 0x0f9abeaae6f73ddf
        .quad 0x4af01ca700837e29
        .quad 0x63ab1b5d3f1bc183
        .quad 0xc11ee5e854c53fae
        .quad 0x6a0b06c12b4f3ff4
        .quad 0x33540f80e0b67a72
        .quad 0x15f18fc3cd07e3ef
        .quad 0x32750763b028f48c
        .quad 0x06020740556a065f
        .quad 0xd53bd812c3495b58
        .quad 0x08706c9b865f508d



        .quad 0xf37ca2ab3d343dff
        .quad 0x1a8c6a2d80abc617
        .quad 0x8e49e035d4ccffca
        .quad 0x48b46beebaa1d1b9
        .quad 0xcc991b4138b41246
        .quad 0x243b9c526f9ac26b
        .quad 0xb9ef494db7cbabbd
        .quad 0x5fba433dd082ed00
        .quad 0x9c49e355c9941ad0
        .quad 0xb9734ade74498f84
        .quad 0x41c3fed066663e5c
        .quad 0x0ecfedf8e8e710b3



        .quad 0x76430f9f9cd470d9
        .quad 0xb62acc9ba42f6008
        .quad 0x1898297c59adad5e
        .quad 0x7789dd2db78c5080
        .quad 0x744f7463e9403762
        .quad 0xf79a8dee8dfcc9c9
        .quad 0x163a649655e4cde3
        .quad 0x3b61788db284f435
        .quad 0xb22228190d6ef6b2
        .quad 0xa94a66b246ce4bfa
        .quad 0x46c1a77a4f0b6cc7
        .quad 0x4236ccffeb7338cf



        .quad 0x8497404d0d55e274
        .quad 0x6c6663d9c4ad2b53
        .quad 0xec2fb0d9ada95734
        .quad 0x2617e120cdb8f73c
        .quad 0x3bd82dbfda777df6
        .quad 0x71b177cc0b98369e
        .quad 0x1d0e8463850c3699
        .quad 0x5a71945b48e2d1f1
        .quad 0x6f203dd5405b4b42
        .quad 0x327ec60410b24509
        .quad 0x9c347230ac2a8846
        .quad 0x77de29fc11ffeb6a



        .quad 0xb0ac57c983b778a8
        .quad 0x53cdcca9d7fe912c
        .quad 0x61c2b854ff1f59dc
        .quad 0x3a1a2cf0f0de7dac
        .quad 0x835e138fecced2ca
        .quad 0x8c9eaf13ea963b9a
        .quad 0xc95fbfc0b2160ea6
        .quad 0x575e66f3ad877892
        .quad 0x99803a27c88fcb3a
        .quad 0x345a6789275ec0b0
        .quad 0x459789d0ff6c2be5
        .quad 0x62f882651e70a8b2



        .quad 0x085ae2c759ff1be4
        .quad 0x149145c93b0e40b7
        .quad 0xc467e7fa7ff27379
        .quad 0x4eeecf0ad5c73a95
        .quad 0x6d822986698a19e0
        .quad 0xdc9821e174d78a71
        .quad 0x41a85f31f6cb1f47
        .quad 0x352721c2bcda9c51
        .quad 0x48329952213fc985
        .quad 0x1087cf0d368a1746
        .quad 0x8e5261b166c15aa5
        .quad 0x2d5b2d842ed24c21



        .quad 0x02cfebd9ebd3ded1
        .quad 0xd45b217739021974
        .quad 0x7576f813fe30a1b7
        .quad 0x5691b6f9a34ef6c2
        .quad 0x5eb7d13d196ac533
        .quad 0x377234ecdb80be2b
        .quad 0xe144cffc7cf5ae24
        .quad 0x5226bcf9c441acec
        .quad 0x79ee6c7223e5b547
        .quad 0x6f5f50768330d679
        .quad 0xed73e1e96d8adce9
        .quad 0x27c3da1e1d8ccc03



        .quad 0x7eb9efb23fe24c74
        .quad 0x3e50f49f1651be01
        .quad 0x3ea732dc21858dea
        .quad 0x17377bd75bb810f9
        .quad 0x28302e71630ef9f6
        .quad 0xc2d4a2032b64cee0
        .quad 0x090820304b6292be
        .quad 0x5fca747aa82adf18
        .quad 0x232a03c35c258ea5
        .quad 0x86f23a2c6bcb0cf1
        .quad 0x3dad8d0d2e442166
        .quad 0x04a8933cab76862b



        .quad 0xd2c604b622943dff
        .quad 0xbc8cbece44cfb3a0
        .quad 0x5d254ff397808678
        .quad 0x0fa3614f3b1ca6bf
        .quad 0x69082b0e8c936a50
        .quad 0xf9c9a035c1dac5b6
        .quad 0x6fb73e54c4dfb634
        .quad 0x4005419b1d2bc140
        .quad 0xa003febdb9be82f0
        .quad 0x2089c1af3a44ac90
        .quad 0xf8499f911954fa8e
        .quad 0x1fba218aef40ab42



        .quad 0xab549448fac8f53e
        .quad 0x81f6e89a7ba63741
        .quad 0x74fd6c7d6c2b5e01
        .quad 0x392e3acaa8c86e42
        .quad 0x4f3e57043e7b0194
        .quad 0xa81d3eee08daaf7f
        .quad 0xc839c6ab99dcdef1
        .quad 0x6c535d13ff7761d5
        .quad 0x4cbd34e93e8a35af
        .quad 0x2e0781445887e816
        .quad 0x19319c76f29ab0ab
        .quad 0x25e17fe4d50ac13b



        .quad 0x0a289bd71e04f676
        .quad 0x208e1c52d6420f95
        .quad 0x5186d8b034691fab
        .quad 0x255751442a9fb351
        .quad 0x915f7ff576f121a7
        .quad 0xc34a32272fcd87e3
        .quad 0xccba2fde4d1be526
        .quad 0x6bba828f8969899b
        .quad 0xe2d1bc6690fe3901
        .quad 0x4cb54a18a0997ad5
        .quad 0x971d6914af8460d4
        .quad 0x559d504f7f6b7be4



        .quad 0xa7738378b3eb54d5
        .quad 0x1d69d366a5553c7c
        .quad 0x0a26cf62f92800ba
        .quad 0x01ab12d5807e3217
        .quad 0x9c4891e7f6d266fd
        .quad 0x0744a19b0307781b
        .quad 0x88388f1d6061e23b
        .quad 0x123ea6a3354bd50e
        .quad 0x118d189041e32d96
        .quad 0xb9ede3c2d8315848
        .quad 0x1eab4271d83245d9
        .quad 0x4a3961e2c918a154



        .quad 0x71dc3be0f8e6bba0
        .quad 0xd6cef8347effe30a
        .quad 0xa992425fe13a476a
        .quad 0x2cd6bce3fb1db763
        .quad 0x0327d644f3233f1e
        .quad 0x499a260e34fcf016
        .quad 0x83b5a716f2dab979
        .quad 0x68aceead9bd4111f
        .quad 0x38b4c90ef3d7c210
        .quad 0x308e6e24b7ad040c
        .quad 0x3860d9f1b7e73e23
        .quad 0x595760d5b508f597



        .quad 0x6129bfe104aa6397
        .quad 0x8f960008a4a7fccb
        .quad 0x3f8bc0897d909458
        .quad 0x709fa43edcb291a9
        .quad 0x882acbebfd022790
        .quad 0x89af3305c4115760
        .quad 0x65f492e37d3473f4
        .quad 0x2cb2c5df54515a2b
        .quad 0xeb0a5d8c63fd2aca
        .quad 0xd22bc1662e694eff
        .quad 0x2723f36ef8cbb03a
        .quad 0x70f029ecf0c8131f



        .quad 0x461307b32eed3e33
        .quad 0xae042f33a45581e7
        .quad 0xc94449d3195f0366
        .quad 0x0b7d5d8a6c314858
        .quad 0x2a6aafaa5e10b0b9
        .quad 0x78f0a370ef041aa9
        .quad 0x773efb77aa3ad61f
        .quad 0x44eca5a2a74bd9e1
        .quad 0x25d448327b95d543
        .quad 0x70d38300a3340f1d
        .quad 0xde1c531c60e1c52b
        .quad 0x272224512c7de9e4



        .quad 0x1abc92af49c5342e
        .quad 0xffeed811b2e6fad0
        .quad 0xefa28c8dfcc84e29
        .quad 0x11b5df18a44cc543
        .quad 0xbf7bbb8a42a975fc
        .quad 0x8c5c397796ada358
        .quad 0xe27fc76fcdedaa48
        .quad 0x19735fd7f6bc20a6
        .quad 0xe3ab90d042c84266
        .quad 0xeb848e0f7f19547e
        .quad 0x2503a1d065a497b9
        .quad 0x0fef911191df895f


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/edwards25519_scalarmuldouble.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_scalarmuldouble.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
# 25 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 26 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S" 2


        .globl edwards25519_scalarmuldouble
        .hidden edwards25519_scalarmuldouble
        .text
# 436 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
.Ledwards25519_scalarmuldouble_local_target:
edwards25519_scalarmuldouble:
# 458 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(46*32), %rsp



        movq %rdi, 45*32 +24(%rsp)
# 486 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
        movq (%rcx), %r8
        movq 8(%rcx), %r9
        movq 16(%rcx), %r10
        movq 24(%rcx), %r11
        movq $0xc7f56fb5a0d9e920, %r12
        movq $0xe190b99370cba1d5, %r13
        movq $0x8888888888888887, %r14
        movq $0x8888888888888888, %r15
        movq $0x8000000000000000, %rax
        movq $0x0888888888888888, %rbx
        cmpq %r11, %rax
        cmovncq %r15, %r12
        cmovncq %r15, %r13
        cmovncq %r15, %r14
        cmovncq %rbx, %r15
        addq %r12, %r8
        adcq %r13, %r9
        adcq %r14, %r10
        adcq %r15, %r11
        movq %r8, (1*32)(%rsp)
        movq %r9, (1*32)+8(%rsp)
        movq %r10, (1*32)+16(%rsp)
        movq %r11, (1*32)+24(%rsp)

        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11
        movq $0xc7f56fb5a0d9e920, %r12
        movq $0xe190b99370cba1d5, %r13
        movq $0x8888888888888887, %r14
        movq $0x8888888888888888, %r15
        movq $0x8000000000000000, %rax
        movq $0x0888888888888888, %rbx
        cmpq %r11, %rax
        cmovncq %r15, %r12
        cmovncq %r15, %r13
        cmovncq %r15, %r14
        cmovncq %rbx, %r15
        addq %r12, %r8
        adcq %r13, %r9
        adcq %r14, %r10
        adcq %r15, %r11
        movq %r8, (0*32)(%rsp)
        movq %r9, (0*32)+8(%rsp)
        movq %r10, (0*32)+16(%rsp)
        movq %r11, (0*32)+24(%rsp)







        movl $38, %eax
        movq (%rdx), %r8
        xorl %ebx, %ebx
        movq 8(%rdx), %r9
        xorl %ecx, %ecx
        movq 16(%rdx), %r10
        xorl %esi, %esi
        movq 24(%rdx), %r11
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rsi
        cmovncq %r8, %rax
        movq %rax, (13*32)(%rsp)
        cmovncq %r9, %rbx
        movq %rbx, (13*32)+8(%rsp)
        cmovncq %r10, %rcx
        movq %rcx, (13*32)+16(%rsp)
        cmovncq %r11, %rsi
        movq %rsi, (13*32)+24(%rsp)

        movl $38, %eax
        movq 32(%rdx), %r8
        xorl %ebx, %ebx
        movq 40(%rdx), %r9
        xorl %ecx, %ecx
        movq 48(%rdx), %r10
        xorl %esi, %esi
        movq 56(%rdx), %r11
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rsi
        cmovncq %r8, %rax
        movq %rax, (13*32)+32(%rsp)
        cmovncq %r9, %rbx
        movq %rbx, (13*32)+40(%rsp)
        cmovncq %r10, %rcx
        movq %rcx, (13*32)+48(%rsp)
        cmovncq %r11, %rsi
        movq %rsi, (13*32)+56(%rsp)

        movl $1, %eax
        movq %rax, (13*32)+64(%rsp)
        xorl %eax, %eax
        movq %rax, (13*32)+72(%rsp)
        movq %rax, (13*32)+80(%rsp)
        movq %rax, (13*32)+88(%rsp)

        leaq (13*32)+96(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+32(%rsp), %rbp
        xorl %ecx, %ecx
 movq 0(%rbp), %rdx
 mulxq 0(%rsi), %r8, %r9
 mulxq 0x8+0(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+0(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+0(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+0(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+0(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+0(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)



        leaq (13*32)+1*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_epdouble
	callq	.Ledwards25519_scalarmuldouble_epdouble_local_target



        leaq (13*32)+2*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+1*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_epadd
	callq	.Ledwards25519_scalarmuldouble_epadd_local_target



        leaq (13*32)+3*128(%rsp), %rdi
        leaq (13*32)+1*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_epdouble
	callq	.Ledwards25519_scalarmuldouble_epdouble_local_target



        leaq (13*32)+4*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+3*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_epadd
	callq	.Ledwards25519_scalarmuldouble_epadd_local_target



        leaq (13*32)+5*128(%rsp), %rdi
        leaq (13*32)+2*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_epdouble
	callq	.Ledwards25519_scalarmuldouble_epdouble_local_target



        leaq (13*32)+6*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+5*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_epadd
	callq	.Ledwards25519_scalarmuldouble_epadd_local_target



        leaq (13*32)+7*128(%rsp), %rdi
        leaq (13*32)+3*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_epdouble
	callq	.Ledwards25519_scalarmuldouble_epdouble_local_target





        movq $252, %rax
        movq %rax, 45*32 +16(%rsp)



        movq (1*32)+24(%rsp), %rax
        shrq $60, %rax
        movq %rax, 45*32(%rsp)



        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

# WAS leaq edwards25519_scalarmuldouble_table(%rip), %rbp
	leaq	.Ledwards25519_scalarmuldouble_table_local_target(%rip), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        movq %rax, (6*32)(%rsp)
        movq %rbx, (6*32)+8(%rsp)
        movq %rcx, (6*32)+16(%rsp)
        movq %rdx, (6*32)+24(%rsp)
        movq %r8, (6*32)+32(%rsp)
        movq %r9, (6*32)+40(%rsp)
        movq %r10, (6*32)+48(%rsp)
        movq %r11, (6*32)+56(%rsp)
        movq %r12, (6*32)+64(%rsp)
        movq %r13, (6*32)+72(%rsp)
        movq %r14, (6*32)+80(%rsp)
        movq %r15, (6*32)+88(%rsp)



        movq (0*32)+24(%rsp), %rax
        shrq $60, %rax
        movq %rax, 45*32(%rsp)




        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        leaq (13*32)+32(%rsp), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)+32(%rsp)
        movq %rbx, (2*32)+40(%rsp)
        movq %rcx, (2*32)+48(%rsp)
        movq %rdx, (2*32)+56(%rsp)
        movq %r8, (2*32)+64(%rsp)
        movq %r9, (2*32)+72(%rsp)
        movq %r10, (2*32)+80(%rsp)
        movq %r11, (2*32)+88(%rsp)



        leaq (13*32)(%rsp), %rbp

        xorl %eax, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        xorl %r8d, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)(%rsp)
        movq %rbx, (2*32)+8(%rsp)
        movq %rcx, (2*32)+16(%rsp)
        movq %rdx, (2*32)+24(%rsp)
        movq %r8, (2*32)+96(%rsp)
        movq %r9, (2*32)+104(%rsp)
        movq %r10, (2*32)+112(%rsp)
        movq %r11, (2*32)+120(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (2*32)(%rsp), %rsi
        leaq (6*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_pepadd
	callq	.Ledwards25519_scalarmuldouble_pepadd_local_target




.Ledwards25519_scalarmuldouble_loop_local_target:
edwards25519_scalarmuldouble_loop:

        movq 45*32 +16(%rsp), %rax
        subq $4, %rax
        movq %rax, 45*32 +16(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_pdouble
	callq	.Ledwards25519_scalarmuldouble_pdouble_local_target



        movq 45*32 +16(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq 32(%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax

        subq $8, %rax
        sbbq %rcx, %rcx
        xorq %rcx, %rax
        subq %rcx, %rax
        movq %rcx, 45*32 +8(%rsp)
        movq %rax, 45*32(%rsp)



        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

# WAS leaq edwards25519_scalarmuldouble_table(%rip), %rbp
	leaq	.Ledwards25519_scalarmuldouble_table_local_target(%rip), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
# 1534 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
        movq 45*32 +8(%rsp), %rdi
        testq %rdi, %rdi

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, (6*32)(%rsp)
        movq %r8, (6*32)+32(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, (6*32)+8(%rsp)
        movq %r9, (6*32)+40(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, (6*32)+16(%rsp)
        movq %r10, (6*32)+48(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, (6*32)+24(%rsp)
        movq %r11, (6*32)+56(%rsp)

        xorq %rdi, %r12
        xorq %rdi, %r13
        xorq %rdi, %r14
        xorq %rdi, %r15
        andq $37, %rdi
        subq %rdi, %r12
        sbbq $0, %r13
        sbbq $0, %r14
        sbbq $0, %r15
        movq %r12, (6*32)+64(%rsp)
        movq %r13, (6*32)+72(%rsp)
        movq %r14, (6*32)+80(%rsp)
        movq %r15, (6*32)+88(%rsp)



        movq 45*32 +16(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax

        subq $8, %rax
        sbbq %rcx, %rcx
        xorq %rcx, %rax
        subq %rcx, %rax
        movq %rcx, 45*32 +8(%rsp)
        movq %rax, 45*32(%rsp)





        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        leaq (13*32)+32(%rsp), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)+32(%rsp)
        movq %rbx, (2*32)+40(%rsp)
        movq %rcx, (2*32)+48(%rsp)
        movq %rdx, (2*32)+56(%rsp)
        movq %r8, (2*32)+64(%rsp)
        movq %r9, (2*32)+72(%rsp)
        movq %r10, (2*32)+80(%rsp)
        movq %r11, (2*32)+88(%rsp)



        leaq (13*32)(%rsp), %rbp

        xorl %eax, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        xorl %r8d, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
# 1943 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
        movq 45*32 +8(%rsp), %rdi

        xorq %rdi, %rax
        xorq %rdi, %rbx
        xorq %rdi, %rcx
        xorq %rdi, %rdx

        xorq %rdi, %r8
        xorq %rdi, %r9
        xorq %rdi, %r10
        xorq %rdi, %r11

        andq $37, %rdi

        subq %rdi, %rax
        sbbq $0, %rbx
        sbbq $0, %rcx
        sbbq $0, %rdx

        movq %rax, (2*32)(%rsp)
        movq %rbx, (2*32)+8(%rsp)
        movq %rcx, (2*32)+16(%rsp)
        movq %rdx, (2*32)+24(%rsp)

        subq %rdi, %r8
        sbbq $0, %r9
        sbbq $0, %r10
        sbbq $0, %r11

        movq %r8, (2*32)+96(%rsp)
        movq %r9, (2*32)+104(%rsp)
        movq %r10, (2*32)+112(%rsp)
        movq %r11, (2*32)+120(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_pdouble
	callq	.Ledwards25519_scalarmuldouble_pdouble_local_target



        leaq (2*32)(%rsp), %rdi
        leaq (2*32)(%rsp), %rsi
        leaq (6*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_pepadd
	callq	.Ledwards25519_scalarmuldouble_pepadd_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_pdouble
	callq	.Ledwards25519_scalarmuldouble_pdouble_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_epdouble
	callq	.Ledwards25519_scalarmuldouble_epdouble_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
        leaq (2*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_epadd
	callq	.Ledwards25519_scalarmuldouble_epadd_local_target



        movq 45*32 +16(%rsp), %rax
        testq %rax, %rax
# WAS jnz edwards25519_scalarmuldouble_loop
	jnz	.Ledwards25519_scalarmuldouble_loop_local_target



        leaq (13*32)(%rsp), %rdi
        leaq (9*32)+64(%rsp), %rsi
# 2027 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp edwards25519_scalarmuldouble_midloop
	jmp	.Ledwards25519_scalarmuldouble_midloop_local_target
.Ledwards25519_scalarmuldouble_inverseloop_local_target:
edwards25519_scalarmuldouble_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Ledwards25519_scalarmuldouble_midloop_local_target:
edwards25519_scalarmuldouble_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne edwards25519_scalarmuldouble_inverseloop
	jne	.Ledwards25519_scalarmuldouble_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)



        movq 45*32 +24(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
        leaq (13*32)(%rsp), %rbp
        xorl %ecx, %ecx
 movq 0(%rbp), %rdx
 mulxq 0(%rsi), %r8, %r9
 mulxq 0x8+0(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+0(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+0(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+0(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+0(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+0(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)

        movq 45*32 +24(%rsp), %rdi
        addq $32, %rdi
        leaq (9*32)+32(%rsp), %rsi
        leaq (13*32)(%rsp), %rbp
        xorl %ecx, %ecx
 movq 0(%rbp), %rdx
 mulxq 0(%rsi), %r8, %r9
 mulxq 0x8+0(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+0(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+0(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+0(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+0(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+0(%rbp), %rdx
 mulxq 0(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+0(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+0(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+0(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)



        addq $(46*32), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret







.Ledwards25519_scalarmuldouble_epdouble_local_target:
edwards25519_scalarmuldouble_epdouble:
        sub $(5*32), %rsp
        movq 0(%rsi), %r8
 xorl %ecx, %ecx
 addq 32(%rsi), %r8
 movq 0x8+0(%rsi), %r9
 adcq 0x8+32(%rsi), %r9
 movq 0x10+0(%rsi), %r10
 adcq 0x10+32(%rsi), %r10
 movq 0x18+0(%rsi), %r11
 adcq 0x18+32(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(2*32)(%rsi), %r9, %r10
 mulxq 0x18+(2*32)(%rsi), %r11, %r12
 movq 0x10+(2*32)(%rsi), %rdx
 mulxq 0x18+(2*32)(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq (2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(2*32)(%rsi), %rdx
 mulxq 0x8+(2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq 0(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+0(%rsi), %r9, %r10
 mulxq 0x18+0(%rsi), %r11, %r12
 movq 0x10+0(%rsi), %rdx
 mulxq 0x18+0(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq 0(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+0(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+0(%rsi), %rdx
 mulxq 0x8+0(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+0(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+0(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+0(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        movq 32(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+32(%rsi), %r9, %r10
 mulxq 0x18+32(%rsi), %r11, %r12
 movq 0x10+32(%rsi), %rdx
 mulxq 0x18+32(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+32(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+32(%rsi), %rdx
 mulxq 0x8+32(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+32(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+32(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+32(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq (0*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(0*32)(%rsp), %r9, %r10
 mulxq 0x18+(0*32)(%rsp), %r11, %r12
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq 0x18+(0*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq 0x8+(0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (0*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(0*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(0*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(0*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %r8, %r9
 mulxq 0x8+(2*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(2*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(2*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(2*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(2*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(2*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        xorl %ecx, %ecx
 movq (2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)
        xorl %ecx, %ecx
 movq (3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        add $(5*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_pdouble_local_target:
edwards25519_scalarmuldouble_pdouble:
        sub $(5*32), %rsp
        movq 0(%rsi), %r8
 xorl %ecx, %ecx
 addq 32(%rsi), %r8
 movq 0x8+0(%rsi), %r9
 adcq 0x8+32(%rsi), %r9
 movq 0x10+0(%rsi), %r10
 adcq 0x10+32(%rsi), %r10
 movq 0x18+0(%rsi), %r11
 adcq 0x18+32(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(2*32)(%rsi), %r9, %r10
 mulxq 0x18+(2*32)(%rsi), %r11, %r12
 movq 0x10+(2*32)(%rsi), %rdx
 mulxq 0x18+(2*32)(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq (2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(2*32)(%rsi), %rdx
 mulxq 0x8+(2*32)(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(2*32)(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq 0(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+0(%rsi), %r9, %r10
 mulxq 0x18+0(%rsi), %r11, %r12
 movq 0x10+0(%rsi), %rdx
 mulxq 0x18+0(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq 0(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+0(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+0(%rsi), %rdx
 mulxq 0x8+0(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+0(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+0(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+0(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        movq 32(%rsi), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+32(%rsi), %r9, %r10
 mulxq 0x18+32(%rsi), %r11, %r12
 movq 0x10+32(%rsi), %rdx
 mulxq 0x18+32(%rsi), %r13, %r14
 xorl %ebx, %ebx
 mulxq 32(%rsi), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+32(%rsi), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+32(%rsi), %rdx
 mulxq 0x8+32(%rsi), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+32(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+32(%rsi), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+32(%rsi), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq (0*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(0*32)(%rsp), %r9, %r10
 mulxq 0x18+(0*32)(%rsp), %r11, %r12
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq 0x18+(0*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq 0x8+(0*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (0*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(0*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(0*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(0*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %r8, %r9
 mulxq 0x8+(2*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(2*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(2*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(2*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(2*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(2*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        xorl %ecx, %ecx
 movq (2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        xorl %ecx, %ecx
 movq (3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        add $(5*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_epadd_local_target:
edwards25519_scalarmuldouble_epadd:
        sub $(6*32), %rsp
        xorl %ecx, %ecx
 movq (3*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %r8, %r9
 mulxq 0x8+(3*32)(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq 32(%rsi), %r8
 xorl %ebx, %ebx
 subq 0(%rsi), %r8
 movq 8+32(%rsi), %r9
 sbbq 8+0(%rsi), %r9
 movl $38, %ecx
 movq 16+32(%rsi), %r10
 sbbq 16+0(%rsi), %r10
 movq 24+32(%rsi), %rax
 sbbq 24+0(%rsi), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq 32(%rbp), %r8
 xorl %ebx, %ebx
 subq 0(%rbp), %r8
 movq 8+32(%rbp), %r9
 sbbq 8+0(%rbp), %r9
 movl $38, %ecx
 movq 16+32(%rbp), %r10
 sbbq 16+0(%rbp), %r10
 movq 24+32(%rbp), %rax
 sbbq 24+0(%rbp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq 32(%rsi), %r8
 xorl %ecx, %ecx
 addq 0(%rsi), %r8
 movq 0x8+32(%rsi), %r9
 adcq 0x8+0(%rsi), %r9
 movq 0x10+32(%rsi), %r10
 adcq 0x10+0(%rsi), %r10
 movq 0x18+32(%rsi), %r11
 adcq 0x18+0(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq 32(%rbp), %r8
 xorl %ecx, %ecx
 addq 0(%rbp), %r8
 movq 0x8+32(%rbp), %r9
 adcq 0x8+0(%rbp), %r9
 movq 0x10+32(%rbp), %r10
 adcq 0x10+0(%rbp), %r10
 movq 0x18+32(%rbp), %r11
 adcq 0x18+0(%rbp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rbp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(2*32)(%rbp), %r9
 adcq %r9, %r9
 movq 0x10+(2*32)(%rbp), %r10
 adcq %r10, %r10
 movq 0x18+(2*32)(%rbp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (2*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq $0xebd69b9426b2f159, %rax
 movq %rax, (2*32)(%rsp)
 movq $0x00e0149a8283b156, %rax
 movq %rax, 8+(2*32)(%rsp)
 movq $0x198e80f2eef3d130, %rax
 movq %rax, 16+(2*32)(%rsp)
 movq $0x2406d9dc56dffce7, %rax
 movq %rax, 24+(2*32)(%rsp)
        xorl %ecx, %ecx
 movq (0*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %r8, %r9
 mulxq 0x8+(2*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(2*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(2*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(0*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(2*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(2*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(2*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (2*32)(%rsi), %r8, %r9
 mulxq 0x8+(2*32)(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(2*32)(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(2*32)(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(2*32)(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(2*32)(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(2*32)(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(2*32)(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (3*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (1*32)(%rsp), %r8
 movq 8+(3*32)(%rsp), %r9
 sbbq 8+(1*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(3*32)(%rsp), %r10
 sbbq 16+(1*32)(%rsp), %r10
 movq 24+(3*32)(%rsp), %rax
 sbbq 24+(1*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (0*32)(%rsp)
 movq %r9, 8+(0*32)(%rsp)
 movq %r10, 16+(0*32)(%rsp)
 movq %rax, 24+(0*32)(%rsp)
        movq (3*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (1*32)(%rsp), %r8
 movq 0x8+(3*32)(%rsp), %r9
 adcq 0x8+(1*32)(%rsp), %r9
 movq 0x10+(3*32)(%rsp), %r10
 adcq 0x10+(1*32)(%rsp), %r10
 movq 0x18+(3*32)(%rsp), %r11
 adcq 0x18+(1*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (2*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(2*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(2*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(2*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %r8, %r9
 mulxq 0x8+(0*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(0*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(0*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(0*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(0*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(0*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)
        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %r8, %r9
 mulxq 0x8+(0*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(0*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(0*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(0*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(0*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(0*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        xorl %ecx, %ecx
 movq (3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        add $(6*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_pepadd_local_target:
edwards25519_scalarmuldouble_pepadd:
        sub $(6*32), %rsp
        movq (2*32)(%rsi), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(2*32)(%rsi), %r9
 adcq %r9, %r9
 movq 0x10+(2*32)(%rsi), %r10
 adcq %r10, %r10
 movq 0x18+(2*32)(%rsi), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)

        movq 32(%rsi), %r8
 xorl %ebx, %ebx
 subq 0(%rsi), %r8
 movq 8+32(%rsi), %r9
 sbbq 8+0(%rsi), %r9
 movl $38, %ecx
 movq 16+32(%rsi), %r10
 sbbq 16+0(%rsi), %r10
 movq 24+32(%rsi), %rax
 sbbq 24+0(%rsi), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)

        movq 32(%rsi), %r8
 xorl %ecx, %ecx
 addq 0(%rsi), %r8
 movq 0x8+32(%rsi), %r9
 adcq 0x8+0(%rsi), %r9
 movq 0x10+32(%rsi), %r10
 adcq 0x10+0(%rsi), %r10
 movq 0x18+32(%rsi), %r11
 adcq 0x18+0(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)

        xorl %ecx, %ecx
 movq (2*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %r8, %r9
 mulxq 0x8+(3*32)(%rsi), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsi), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsi), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsi), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsi), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rbp), %rdx
 mulxq (3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsi), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsi), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)

        xorl %ecx, %ecx
 movq 0(%rbp), %rdx
 mulxq (1*32)(%rsp), %r8, %r9
 mulxq 0x8+(1*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(1*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(1*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+0(%rbp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(1*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+0(%rbp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(1*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+0(%rbp), %rdx
 mulxq (1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(1*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(1*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)

        xorl %ecx, %ecx
 movq 32(%rbp), %rdx
 mulxq (2*32)(%rsp), %r8, %r9
 mulxq 0x8+(2*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(2*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(2*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+32(%rbp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(2*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+32(%rbp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(2*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+32(%rbp), %rdx
 mulxq (2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(2*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(2*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)

        movq (0*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(0*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(0*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(0*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (4*32)(%rsp)
 movq %r9, 8+(4*32)(%rsp)
 movq %r10, 16+(4*32)(%rsp)
 movq %rax, 24+(4*32)(%rsp)

        movq (0*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(0*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(0*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(0*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)

        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (1*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(1*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(1*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(1*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)

        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (1*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(1*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(1*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(1*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)

        xorl %ecx, %ecx
 movq (0*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %r8, %r9
 mulxq 0x8+(4*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(4*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(4*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(0*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(4*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(0*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(4*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(0*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(4*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)

        xorl %ecx, %ecx
 movq (4*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %r8, %r9
 mulxq 0x8+(5*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(5*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(5*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(4*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(5*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(4*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(5*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(4*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(5*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)

        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %r8, %r9
 mulxq 0x8+(0*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(0*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(0*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(0*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(0*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(0*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(0*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)

        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %r8, %r9
 mulxq 0x8+(5*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(5*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(5*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(5*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(5*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(5*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(5*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)

        add $(6*32), %rsp
        ret
# 3495 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S"
.Ledwards25519_scalarmuldouble_table_local_target:
edwards25519_scalarmuldouble_table:



        .quad 0x9d103905d740913e
        .quad 0xfd399f05d140beb3
        .quad 0xa5c18434688f8a09
        .quad 0x44fd2f9298f81267
        .quad 0x2fbc93c6f58c3b85
        .quad 0xcf932dc6fb8c0e19
        .quad 0x270b4898643d42c2
        .quad 0x07cf9d3a33d4ba65
        .quad 0xabc91205877aaa68
        .quad 0x26d9e823ccaac49e
        .quad 0x5a1b7dcbdd43598c
        .quad 0x6f117b689f0c65a8



        .quad 0x8a99a56042b4d5a8
        .quad 0x8f2b810c4e60acf6
        .quad 0xe09e236bb16e37aa
        .quad 0x6bb595a669c92555
        .quad 0x9224e7fc933c71d7
        .quad 0x9f469d967a0ff5b5
        .quad 0x5aa69a65e1d60702
        .quad 0x590c063fa87d2e2e
        .quad 0x43faa8b3a59b7a5f
        .quad 0x36c16bdd5d9acf78
        .quad 0x500fa0840b3d6a31
        .quad 0x701af5b13ea50b73



        .quad 0x56611fe8a4fcd265
        .quad 0x3bd353fde5c1ba7d
        .quad 0x8131f31a214bd6bd
        .quad 0x2ab91587555bda62
        .quad 0xaf25b0a84cee9730
        .quad 0x025a8430e8864b8a
        .quad 0xc11b50029f016732
        .quad 0x7a164e1b9a80f8f4
        .quad 0x14ae933f0dd0d889
        .quad 0x589423221c35da62
        .quad 0xd170e5458cf2db4c
        .quad 0x5a2826af12b9b4c6



        .quad 0x95fe050a056818bf
        .quad 0x327e89715660faa9
        .quad 0xc3e8e3cd06a05073
        .quad 0x27933f4c7445a49a
        .quad 0x287351b98efc099f
        .quad 0x6765c6f47dfd2538
        .quad 0xca348d3dfb0a9265
        .quad 0x680e910321e58727
        .quad 0x5a13fbe9c476ff09
        .quad 0x6e9e39457b5cc172
        .quad 0x5ddbdcf9102b4494
        .quad 0x7f9d0cbf63553e2b



        .quad 0x7f9182c3a447d6ba
        .quad 0xd50014d14b2729b7
        .quad 0xe33cf11cb864a087
        .quad 0x154a7e73eb1b55f3
        .quad 0xa212bc4408a5bb33
        .quad 0x8d5048c3c75eed02
        .quad 0xdd1beb0c5abfec44
        .quad 0x2945ccf146e206eb
        .quad 0xbcbbdbf1812a8285
        .quad 0x270e0807d0bdd1fc
        .quad 0xb41b670b1bbda72d
        .quad 0x43aabe696b3bb69a



        .quad 0x499806b67b7d8ca4
        .quad 0x575be28427d22739
        .quad 0xbb085ce7204553b9
        .quad 0x38b64c41ae417884
        .quad 0x3a0ceeeb77157131
        .quad 0x9b27158900c8af88
        .quad 0x8065b668da59a736
        .quad 0x51e57bb6a2cc38bd
        .quad 0x85ac326702ea4b71
        .quad 0xbe70e00341a1bb01
        .quad 0x53e4a24b083bc144
        .quad 0x10b8e91a9f0d61e3



        .quad 0xba6f2c9aaa3221b1
        .quad 0x6ca021533bba23a7
        .quad 0x9dea764f92192c3a
        .quad 0x1d6edd5d2e5317e0
        .quad 0x6b1a5cd0944ea3bf
        .quad 0x7470353ab39dc0d2
        .quad 0x71b2528228542e49
        .quad 0x461bea69283c927e
        .quad 0xf1836dc801b8b3a2
        .quad 0xb3035f47053ea49a
        .quad 0x529c41ba5877adf3
        .quad 0x7a9fbb1c6a0f90a7



        .quad 0xe2a75dedf39234d9
        .quad 0x963d7680e1b558f9
        .quad 0x2c2741ac6e3c23fb
        .quad 0x3a9024a1320e01c3
        .quad 0x59b7596604dd3e8f
        .quad 0x6cb30377e288702c
        .quad 0xb1339c665ed9c323
        .quad 0x0915e76061bce52f
        .quad 0xe7c1f5d9c9a2911a
        .quad 0xb8a371788bcca7d7
        .quad 0x636412190eb62a32
        .quad 0x26907c5c2ecc4e95


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/edwards25519_scalarmuldouble_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/edwards25519_scalarmuldouble_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
# 25 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 26 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S" 2


        .globl edwards25519_scalarmuldouble_alt
        .hidden edwards25519_scalarmuldouble_alt
        .text
# 553 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
.Ledwards25519_scalarmuldouble_alt_local_target:
edwards25519_scalarmuldouble_alt:
# 575 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(46*32), %rsp



        movq %rdi, 45*32 +24(%rsp)
# 603 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
        movq (%rcx), %r8
        movq 8(%rcx), %r9
        movq 16(%rcx), %r10
        movq 24(%rcx), %r11
        movq $0xc7f56fb5a0d9e920, %r12
        movq $0xe190b99370cba1d5, %r13
        movq $0x8888888888888887, %r14
        movq $0x8888888888888888, %r15
        movq $0x8000000000000000, %rax
        movq $0x0888888888888888, %rbx
        cmpq %r11, %rax
        cmovncq %r15, %r12
        cmovncq %r15, %r13
        cmovncq %r15, %r14
        cmovncq %rbx, %r15
        addq %r12, %r8
        adcq %r13, %r9
        adcq %r14, %r10
        adcq %r15, %r11
        movq %r8, (1*32)(%rsp)
        movq %r9, (1*32)+8(%rsp)
        movq %r10, (1*32)+16(%rsp)
        movq %r11, (1*32)+24(%rsp)

        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11
        movq $0xc7f56fb5a0d9e920, %r12
        movq $0xe190b99370cba1d5, %r13
        movq $0x8888888888888887, %r14
        movq $0x8888888888888888, %r15
        movq $0x8000000000000000, %rax
        movq $0x0888888888888888, %rbx
        cmpq %r11, %rax
        cmovncq %r15, %r12
        cmovncq %r15, %r13
        cmovncq %r15, %r14
        cmovncq %rbx, %r15
        addq %r12, %r8
        adcq %r13, %r9
        adcq %r14, %r10
        adcq %r15, %r11
        movq %r8, (0*32)(%rsp)
        movq %r9, (0*32)+8(%rsp)
        movq %r10, (0*32)+16(%rsp)
        movq %r11, (0*32)+24(%rsp)







        movl $38, %eax
        movq (%rdx), %r8
        xorl %ebx, %ebx
        movq 8(%rdx), %r9
        xorl %ecx, %ecx
        movq 16(%rdx), %r10
        xorl %esi, %esi
        movq 24(%rdx), %r11
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rsi
        cmovncq %r8, %rax
        movq %rax, (13*32)(%rsp)
        cmovncq %r9, %rbx
        movq %rbx, (13*32)+8(%rsp)
        cmovncq %r10, %rcx
        movq %rcx, (13*32)+16(%rsp)
        cmovncq %r11, %rsi
        movq %rsi, (13*32)+24(%rsp)

        movl $38, %eax
        movq 32(%rdx), %r8
        xorl %ebx, %ebx
        movq 40(%rdx), %r9
        xorl %ecx, %ecx
        movq 48(%rdx), %r10
        xorl %esi, %esi
        movq 56(%rdx), %r11
        addq %r8, %rax
        adcq %r9, %rbx
        adcq %r10, %rcx
        adcq %r11, %rsi
        cmovncq %r8, %rax
        movq %rax, (13*32)+32(%rsp)
        cmovncq %r9, %rbx
        movq %rbx, (13*32)+40(%rsp)
        cmovncq %r10, %rcx
        movq %rcx, (13*32)+48(%rsp)
        cmovncq %r11, %rsi
        movq %rsi, (13*32)+56(%rsp)

        movl $1, %eax
        movq %rax, (13*32)+64(%rsp)
        xorl %eax, %eax
        movq %rax, (13*32)+72(%rsp)
        movq %rax, (13*32)+80(%rsp)
        movq %rax, (13*32)+88(%rsp)

        leaq (13*32)+96(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+32(%rsp), %rbp
        movq 0(%rsi), %rax
 mulq 0(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)



        leaq (13*32)+1*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_epdouble
	callq	.Ledwards25519_scalarmuldouble_alt_epdouble_local_target



        leaq (13*32)+2*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+1*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_epadd
	callq	.Ledwards25519_scalarmuldouble_alt_epadd_local_target



        leaq (13*32)+3*128(%rsp), %rdi
        leaq (13*32)+1*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_epdouble
	callq	.Ledwards25519_scalarmuldouble_alt_epdouble_local_target



        leaq (13*32)+4*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+3*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_epadd
	callq	.Ledwards25519_scalarmuldouble_alt_epadd_local_target



        leaq (13*32)+5*128(%rsp), %rdi
        leaq (13*32)+2*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_epdouble
	callq	.Ledwards25519_scalarmuldouble_alt_epdouble_local_target



        leaq (13*32)+6*128(%rsp), %rdi
        leaq (13*32)(%rsp), %rsi
        leaq (13*32)+5*128(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_epadd
	callq	.Ledwards25519_scalarmuldouble_alt_epadd_local_target



        leaq (13*32)+7*128(%rsp), %rdi
        leaq (13*32)+3*128(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_epdouble
	callq	.Ledwards25519_scalarmuldouble_alt_epdouble_local_target





        movq $252, %rax
        movq %rax, 45*32 +16(%rsp)



        movq (1*32)+24(%rsp), %rax
        shrq $60, %rax
        movq %rax, 45*32(%rsp)



        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

# WAS leaq edwards25519_scalarmuldouble_alt_table(%rip), %rbp
	leaq	.Ledwards25519_scalarmuldouble_alt_table_local_target(%rip), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        movq %rax, (6*32)(%rsp)
        movq %rbx, (6*32)+8(%rsp)
        movq %rcx, (6*32)+16(%rsp)
        movq %rdx, (6*32)+24(%rsp)
        movq %r8, (6*32)+32(%rsp)
        movq %r9, (6*32)+40(%rsp)
        movq %r10, (6*32)+48(%rsp)
        movq %r11, (6*32)+56(%rsp)
        movq %r12, (6*32)+64(%rsp)
        movq %r13, (6*32)+72(%rsp)
        movq %r14, (6*32)+80(%rsp)
        movq %r15, (6*32)+88(%rsp)



        movq (0*32)+24(%rsp), %rax
        shrq $60, %rax
        movq %rax, 45*32(%rsp)




        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        leaq (13*32)+32(%rsp), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)+32(%rsp)
        movq %rbx, (2*32)+40(%rsp)
        movq %rcx, (2*32)+48(%rsp)
        movq %rdx, (2*32)+56(%rsp)
        movq %r8, (2*32)+64(%rsp)
        movq %r9, (2*32)+72(%rsp)
        movq %r10, (2*32)+80(%rsp)
        movq %r11, (2*32)+88(%rsp)



        leaq (13*32)(%rsp), %rbp

        xorl %eax, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        xorl %r8d, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)(%rsp)
        movq %rbx, (2*32)+8(%rsp)
        movq %rcx, (2*32)+16(%rsp)
        movq %rdx, (2*32)+24(%rsp)
        movq %r8, (2*32)+96(%rsp)
        movq %r9, (2*32)+104(%rsp)
        movq %r10, (2*32)+112(%rsp)
        movq %r11, (2*32)+120(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (2*32)(%rsp), %rsi
        leaq (6*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_pepadd
	callq	.Ledwards25519_scalarmuldouble_alt_pepadd_local_target




.Ledwards25519_scalarmuldouble_alt_loop_local_target:
edwards25519_scalarmuldouble_alt_loop:

        movq 45*32 +16(%rsp), %rax
        subq $4, %rax
        movq %rax, 45*32 +16(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_pdouble
	callq	.Ledwards25519_scalarmuldouble_alt_pdouble_local_target



        movq 45*32 +16(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq 32(%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax

        subq $8, %rax
        sbbq %rcx, %rcx
        xorq %rcx, %rax
        subq %rcx, %rax
        movq %rcx, 45*32 +8(%rsp)
        movq %rax, 45*32(%rsp)



        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

# WAS leaq edwards25519_scalarmuldouble_alt_table(%rip), %rbp
	leaq	.Ledwards25519_scalarmuldouble_alt_table_local_target(%rip), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
# 1651 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
        movq 45*32 +8(%rsp), %rdi
        testq %rdi, %rdi

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, (6*32)(%rsp)
        movq %r8, (6*32)+32(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, (6*32)+8(%rsp)
        movq %r9, (6*32)+40(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, (6*32)+16(%rsp)
        movq %r10, (6*32)+48(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, (6*32)+24(%rsp)
        movq %r11, (6*32)+56(%rsp)

        xorq %rdi, %r12
        xorq %rdi, %r13
        xorq %rdi, %r14
        xorq %rdi, %r15
        andq $37, %rdi
        subq %rdi, %r12
        sbbq $0, %r13
        sbbq $0, %r14
        sbbq $0, %r15
        movq %r12, (6*32)+64(%rsp)
        movq %r13, (6*32)+72(%rsp)
        movq %r14, (6*32)+80(%rsp)
        movq %r15, (6*32)+88(%rsp)



        movq 45*32 +16(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax

        subq $8, %rax
        sbbq %rcx, %rcx
        xorq %rcx, %rax
        subq %rcx, %rax
        movq %rcx, 45*32 +8(%rsp)
        movq %rax, 45*32(%rsp)





        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        leaq (13*32)+32(%rsp), %rbp

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11

        movq %rax, (2*32)+32(%rsp)
        movq %rbx, (2*32)+40(%rsp)
        movq %rcx, (2*32)+48(%rsp)
        movq %rdx, (2*32)+56(%rsp)
        movq %r8, (2*32)+64(%rsp)
        movq %r9, (2*32)+72(%rsp)
        movq %r10, (2*32)+80(%rsp)
        movq %r11, (2*32)+88(%rsp)



        leaq (13*32)(%rsp), %rbp

        xorl %eax, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        xorl %r8d, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d

        cmpq $1, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $2, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $3, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $4, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $5, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $6, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $7, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
        addq $128, %rbp

        cmpq $8, 45*32(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 96(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 104(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 112(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 120(%rbp), %rsi
        cmovzq %rsi, %r11
# 2060 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
        movq 45*32 +8(%rsp), %rdi

        xorq %rdi, %rax
        xorq %rdi, %rbx
        xorq %rdi, %rcx
        xorq %rdi, %rdx

        xorq %rdi, %r8
        xorq %rdi, %r9
        xorq %rdi, %r10
        xorq %rdi, %r11

        andq $37, %rdi

        subq %rdi, %rax
        sbbq $0, %rbx
        sbbq $0, %rcx
        sbbq $0, %rdx

        movq %rax, (2*32)(%rsp)
        movq %rbx, (2*32)+8(%rsp)
        movq %rcx, (2*32)+16(%rsp)
        movq %rdx, (2*32)+24(%rsp)

        subq %rdi, %r8
        sbbq $0, %r9
        sbbq $0, %r10
        sbbq $0, %r11

        movq %r8, (2*32)+96(%rsp)
        movq %r9, (2*32)+104(%rsp)
        movq %r10, (2*32)+112(%rsp)
        movq %r11, (2*32)+120(%rsp)



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_pdouble
	callq	.Ledwards25519_scalarmuldouble_alt_pdouble_local_target



        leaq (2*32)(%rsp), %rdi
        leaq (2*32)(%rsp), %rsi
        leaq (6*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_pepadd
	callq	.Ledwards25519_scalarmuldouble_alt_pepadd_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_pdouble
	callq	.Ledwards25519_scalarmuldouble_alt_pdouble_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
# WAS callq edwards25519_scalarmuldouble_alt_epdouble
	callq	.Ledwards25519_scalarmuldouble_alt_epdouble_local_target



        leaq (9*32)(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
        leaq (2*32)(%rsp), %rbp
# WAS callq edwards25519_scalarmuldouble_alt_epadd
	callq	.Ledwards25519_scalarmuldouble_alt_epadd_local_target



        movq 45*32 +16(%rsp), %rax
        testq %rax, %rax
# WAS jnz edwards25519_scalarmuldouble_alt_loop
	jnz	.Ledwards25519_scalarmuldouble_alt_loop_local_target



        leaq (13*32)(%rsp), %rdi
        leaq (9*32)+64(%rsp), %rsi
# 2144 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp edwards25519_scalarmuldouble_alt_midloop
	jmp	.Ledwards25519_scalarmuldouble_alt_midloop_local_target
.Ledwards25519_scalarmuldouble_alt_inverseloop_local_target:
edwards25519_scalarmuldouble_alt_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Ledwards25519_scalarmuldouble_alt_midloop_local_target:
edwards25519_scalarmuldouble_alt_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne edwards25519_scalarmuldouble_alt_inverseloop
	jne	.Ledwards25519_scalarmuldouble_alt_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)



        movq 45*32 +24(%rsp), %rdi
        leaq (9*32)(%rsp), %rsi
        leaq (13*32)(%rsp), %rbp
        movq 0(%rsi), %rax
 mulq 0(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)

        movq 45*32 +24(%rsp), %rdi
        addq $32, %rdi
        leaq (9*32)+32(%rsp), %rsi
        leaq (13*32)(%rsp), %rbp
        movq 0(%rsi), %rax
 mulq 0(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+0(%rsi), %rax
 mulq 0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+0(%rsi), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+0(%rsi), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)



        addq $(46*32), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret







.Ledwards25519_scalarmuldouble_alt_epdouble_local_target:
edwards25519_scalarmuldouble_alt_epdouble:
        sub $(5*32), %rsp
        movq 0(%rsi), %r8
 xorl %ecx, %ecx
 addq 32(%rsi), %r8
 movq 0x8+0(%rsi), %r9
 adcq 0x8+32(%rsi), %r9
 movq 0x10+0(%rsi), %r10
 adcq 0x10+32(%rsi), %r10
 movq 0x18+0(%rsi), %r11
 adcq 0x18+32(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (2*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq 0(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 0(%rsi), %rax
 mulq 0x8+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+0(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0(%rsi), %rax
 mulq 0x10+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+0(%rsi), %rax
 mulq 0x10+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+0(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+0(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        movq 32(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 32(%rsi), %rax
 mulq 0x8+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+32(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 32(%rsi), %rax
 mulq 0x10+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+32(%rsi), %rax
 mulq 0x10+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+32(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+32(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq (0*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (0*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (0*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (0*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(0*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(0*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(0*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq (2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        movq (3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        movq (1*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)
        movq (1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        add $(5*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_alt_pdouble_local_target:
edwards25519_scalarmuldouble_alt_pdouble:
        sub $(5*32), %rsp
        movq 0(%rsi), %r8
 xorl %ecx, %ecx
 addq 32(%rsi), %r8
 movq 0x8+0(%rsi), %r9
 adcq 0x8+32(%rsi), %r9
 movq 0x10+0(%rsi), %r10
 adcq 0x10+32(%rsi), %r10
 movq 0x18+0(%rsi), %r11
 adcq 0x18+32(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (2*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq 0(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 0(%rsi), %rax
 mulq 0x8+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+0(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0(%rsi), %rax
 mulq 0x10+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+0(%rsi), %rax
 mulq 0x10+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+0(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+0(%rsi), %rax
 mulq 0x18+0(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+0(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        movq 32(%rsi), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq 32(%rsi), %rax
 mulq 0x8+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+32(%rsi), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 32(%rsi), %rax
 mulq 0x10+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq 32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+32(%rsi), %rax
 mulq 0x10+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+32(%rsi), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+32(%rsi), %rax
 mulq 0x18+32(%rsi)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+32(%rsi), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq (0*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (0*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (0*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (1*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(1*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(1*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(1*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (0*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(0*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(0*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(0*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq (2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(2*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        movq (3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        movq (1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        add $(5*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_alt_epadd_local_target:
edwards25519_scalarmuldouble_alt_epadd:
        sub $(6*32), %rsp
        movq (3*32)(%rsi), %rax
 mulq (3*32)(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsi), %rax
 mulq 0x8+(3*32)(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsi), %rax
 mulq (3*32)(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsi), %rax
 mulq 0x10+(3*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x8+(3*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsi), %rax
 mulq (3*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsi), %rax
 mulq 0x18+(3*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x10+(3*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x8+(3*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsi), %rax
 mulq (3*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x18+(3*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x10+(3*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x8+(3*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x18+(3*32)(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x10+(3*32)(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x18+(3*32)(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)
        movq 32(%rsi), %r8
 xorl %ebx, %ebx
 subq 0(%rsi), %r8
 movq 8+32(%rsi), %r9
 sbbq 8+0(%rsi), %r9
 movl $38, %ecx
 movq 16+32(%rsi), %r10
 sbbq 16+0(%rsi), %r10
 movq 24+32(%rsi), %rax
 sbbq 24+0(%rsi), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq 32(%rbp), %r8
 xorl %ebx, %ebx
 subq 0(%rbp), %r8
 movq 8+32(%rbp), %r9
 sbbq 8+0(%rbp), %r9
 movl $38, %ecx
 movq 16+32(%rbp), %r10
 sbbq 16+0(%rbp), %r10
 movq 24+32(%rbp), %rax
 sbbq 24+0(%rbp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq 32(%rsi), %r8
 xorl %ecx, %ecx
 addq 0(%rsi), %r8
 movq 0x8+32(%rsi), %r9
 adcq 0x8+0(%rsi), %r9
 movq 0x10+32(%rsi), %r10
 adcq 0x10+0(%rsi), %r10
 movq 0x18+32(%rsi), %r11
 adcq 0x18+0(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq 32(%rbp), %r8
 xorl %ecx, %ecx
 addq 0(%rbp), %r8
 movq 0x8+32(%rbp), %r9
 adcq 0x8+0(%rbp), %r9
 movq 0x10+32(%rbp), %r10
 adcq 0x10+0(%rbp), %r10
 movq 0x18+32(%rbp), %r11
 adcq 0x18+0(%rbp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (2*32)(%rbp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(2*32)(%rbp), %r9
 adcq %r9, %r9
 movq 0x10+(2*32)(%rbp), %r10
 adcq %r10, %r10
 movq 0x18+(2*32)(%rbp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (1*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)
        movq (3*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq $0xebd69b9426b2f159, %rax
 movq %rax, (2*32)(%rsp)
 movq $0x00e0149a8283b156, %rax
 movq %rax, 8+(2*32)(%rsp)
 movq $0x198e80f2eef3d130, %rax
 movq %rax, 16+(2*32)(%rsp)
 movq $0x2406d9dc56dffce7, %rax
 movq %rax, 24+(2*32)(%rsp)
        movq (2*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(2*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (2*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(2*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(2*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)
        movq (2*32)(%rsi), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsi), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(2*32)(%rsi), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (2*32)(%rsi), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(2*32)(%rsi), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsi), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(2*32)(%rsi), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(2*32)(%rsi), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsi), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(2*32)(%rsi), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(2*32)(%rsi), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsi), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(2*32)(%rsi), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsi), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (3*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (1*32)(%rsp), %r8
 movq 8+(3*32)(%rsp), %r9
 sbbq 8+(1*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(3*32)(%rsp), %r10
 sbbq 16+(1*32)(%rsp), %r10
 movq 24+(3*32)(%rsp), %rax
 sbbq 24+(1*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (0*32)(%rsp)
 movq %r9, 8+(0*32)(%rsp)
 movq %r10, 16+(0*32)(%rsp)
 movq %rax, 24+(0*32)(%rsp)
        movq (3*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (1*32)(%rsp), %r8
 movq 0x8+(3*32)(%rsp), %r9
 adcq 0x8+(1*32)(%rsp), %r9
 movq 0x10+(3*32)(%rsp), %r10
 adcq 0x10+(1*32)(%rsp), %r10
 movq 0x18+(3*32)(%rsp), %r11
 adcq 0x18+(1*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (2*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(2*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(2*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(2*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (2*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(2*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(2*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(2*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (0*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (0*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(0*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (0*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(0*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (0*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(0*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)
        movq (0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)
        movq (3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)
        movq (1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)
        add $(6*32), %rsp
        ret

.Ledwards25519_scalarmuldouble_alt_pepadd_local_target:
edwards25519_scalarmuldouble_alt_pepadd:
        sub $(6*32), %rsp
        movq (2*32)(%rsi), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(2*32)(%rsi), %r9
 adcq %r9, %r9
 movq 0x10+(2*32)(%rsi), %r10
 adcq %r10, %r10
 movq 0x18+(2*32)(%rsi), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)

        movq 32(%rsi), %r8
 xorl %ebx, %ebx
 subq 0(%rsi), %r8
 movq 8+32(%rsi), %r9
 sbbq 8+0(%rsi), %r9
 movl $38, %ecx
 movq 16+32(%rsi), %r10
 sbbq 16+0(%rsi), %r10
 movq 24+32(%rsi), %rax
 sbbq 24+0(%rsi), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (1*32)(%rsp)
 movq %r9, 8+(1*32)(%rsp)
 movq %r10, 16+(1*32)(%rsp)
 movq %rax, 24+(1*32)(%rsp)

        movq 32(%rsi), %r8
 xorl %ecx, %ecx
 addq 0(%rsi), %r8
 movq 0x8+32(%rsi), %r9
 adcq 0x8+0(%rsi), %r9
 movq 0x10+32(%rsi), %r10
 adcq 0x10+0(%rsi), %r10
 movq 0x18+32(%rsi), %r11
 adcq 0x18+0(%rsi), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)

        movq (3*32)(%rsi), %rax
 mulq (2*32)(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsi), %rax
 mulq (2*32)(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsi), %rax
 mulq (2*32)(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsi), %rax
 mulq (2*32)(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x8+(2*32)(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x10+(2*32)(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsi), %rax
 mulq 0x18+(2*32)(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)

        movq (1*32)(%rsp), %rax
 mulq 0(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (1*32)(%rsp), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (1*32)(%rsp), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (1*32)(%rsp), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(1*32)(%rsp), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x8+0(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(1*32)(%rsp), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x10+0(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(1*32)(%rsp), %rax
 mulq 0x18+0(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)

        movq (2*32)(%rsp), %rax
 mulq 32(%rbp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (2*32)(%rsp), %rax
 mulq 0x8+32(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(2*32)(%rsp), %rax
 mulq 32(%rbp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (2*32)(%rsp), %rax
 mulq 0x10+32(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x8+32(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(2*32)(%rsp), %rax
 mulq 32(%rbp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (2*32)(%rsp), %rax
 mulq 0x18+32(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x10+32(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x8+32(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(2*32)(%rsp), %rax
 mulq 32(%rbp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(2*32)(%rsp), %rax
 mulq 0x18+32(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x10+32(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x8+32(%rbp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(2*32)(%rsp), %rax
 mulq 0x18+32(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x10+32(%rbp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(2*32)(%rsp), %rax
 mulq 0x18+32(%rbp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rsp)
 movq %r9, 0x8+(2*32)(%rsp)
 movq %r10, 0x10+(2*32)(%rsp)
 movq %r11, 0x18+(2*32)(%rsp)

        movq (0*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(0*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(0*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(0*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (4*32)(%rsp)
 movq %r9, 8+(4*32)(%rsp)
 movq %r10, 16+(4*32)(%rsp)
 movq %rax, 24+(4*32)(%rsp)

        movq (0*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(0*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(0*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(0*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (0*32)(%rsp)
 movq %r9, 0x8+(0*32)(%rsp)
 movq %r10, 0x10+(0*32)(%rsp)
 movq %r11, 0x18+(0*32)(%rsp)

        movq (2*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (1*32)(%rsp), %r8
 movq 8+(2*32)(%rsp), %r9
 sbbq 8+(1*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(2*32)(%rsp), %r10
 sbbq 16+(1*32)(%rsp), %r10
 movq 24+(2*32)(%rsp), %rax
 sbbq 24+(1*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)

        movq (2*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (1*32)(%rsp), %r8
 movq 0x8+(2*32)(%rsp), %r9
 adcq 0x8+(1*32)(%rsp), %r9
 movq 0x10+(2*32)(%rsp), %r10
 adcq 0x10+(1*32)(%rsp), %r10
 movq 0x18+(2*32)(%rsp), %r11
 adcq 0x18+(1*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (1*32)(%rsp)
 movq %r9, 0x8+(1*32)(%rsp)
 movq %r10, 0x10+(1*32)(%rsp)
 movq %r11, 0x18+(1*32)(%rsp)

        movq (4*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (4*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(4*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (4*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(4*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (4*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(4*32)(%rsp), %rax
 mulq (0*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x8+(0*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x10+(0*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x18+(0*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (2*32)(%rdi)
 movq %r9, 0x8+(2*32)(%rdi)
 movq %r10, 0x10+(2*32)(%rdi)
 movq %r11, 0x18+(2*32)(%rdi)

        movq (5*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (5*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(5*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (5*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(5*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (5*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(5*32)(%rsp), %rax
 mulq (4*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x8+(4*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x10+(4*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x18+(4*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 0(%rdi)
 movq %r9, 0x8+0(%rdi)
 movq %r10, 0x10+0(%rdi)
 movq %r11, 0x18+0(%rdi)

        movq (0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(0*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(0*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, 32(%rdi)
 movq %r9, 0x8+32(%rdi)
 movq %r10, 0x10+32(%rdi)
 movq %r11, 0x18+32(%rdi)

        movq (5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(5*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(5*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rdi)
 movq %r9, 0x8+(3*32)(%rdi)
 movq %r10, 0x10+(3*32)(%rdi)
 movq %r11, 0x18+(3*32)(%rdi)

        add $(6*32), %rsp
        ret
# 3612 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S"
.Ledwards25519_scalarmuldouble_alt_table_local_target:
edwards25519_scalarmuldouble_alt_table:



        .quad 0x9d103905d740913e
        .quad 0xfd399f05d140beb3
        .quad 0xa5c18434688f8a09
        .quad 0x44fd2f9298f81267
        .quad 0x2fbc93c6f58c3b85
        .quad 0xcf932dc6fb8c0e19
        .quad 0x270b4898643d42c2
        .quad 0x07cf9d3a33d4ba65
        .quad 0xabc91205877aaa68
        .quad 0x26d9e823ccaac49e
        .quad 0x5a1b7dcbdd43598c
        .quad 0x6f117b689f0c65a8



        .quad 0x8a99a56042b4d5a8
        .quad 0x8f2b810c4e60acf6
        .quad 0xe09e236bb16e37aa
        .quad 0x6bb595a669c92555
        .quad 0x9224e7fc933c71d7
        .quad 0x9f469d967a0ff5b5
        .quad 0x5aa69a65e1d60702
        .quad 0x590c063fa87d2e2e
        .quad 0x43faa8b3a59b7a5f
        .quad 0x36c16bdd5d9acf78
        .quad 0x500fa0840b3d6a31
        .quad 0x701af5b13ea50b73



        .quad 0x56611fe8a4fcd265
        .quad 0x3bd353fde5c1ba7d
        .quad 0x8131f31a214bd6bd
        .quad 0x2ab91587555bda62
        .quad 0xaf25b0a84cee9730
        .quad 0x025a8430e8864b8a
        .quad 0xc11b50029f016732
        .quad 0x7a164e1b9a80f8f4
        .quad 0x14ae933f0dd0d889
        .quad 0x589423221c35da62
        .quad 0xd170e5458cf2db4c
        .quad 0x5a2826af12b9b4c6



        .quad 0x95fe050a056818bf
        .quad 0x327e89715660faa9
        .quad 0xc3e8e3cd06a05073
        .quad 0x27933f4c7445a49a
        .quad 0x287351b98efc099f
        .quad 0x6765c6f47dfd2538
        .quad 0xca348d3dfb0a9265
        .quad 0x680e910321e58727
        .quad 0x5a13fbe9c476ff09
        .quad 0x6e9e39457b5cc172
        .quad 0x5ddbdcf9102b4494
        .quad 0x7f9d0cbf63553e2b



        .quad 0x7f9182c3a447d6ba
        .quad 0xd50014d14b2729b7
        .quad 0xe33cf11cb864a087
        .quad 0x154a7e73eb1b55f3
        .quad 0xa212bc4408a5bb33
        .quad 0x8d5048c3c75eed02
        .quad 0xdd1beb0c5abfec44
        .quad 0x2945ccf146e206eb
        .quad 0xbcbbdbf1812a8285
        .quad 0x270e0807d0bdd1fc
        .quad 0xb41b670b1bbda72d
        .quad 0x43aabe696b3bb69a



        .quad 0x499806b67b7d8ca4
        .quad 0x575be28427d22739
        .quad 0xbb085ce7204553b9
        .quad 0x38b64c41ae417884
        .quad 0x3a0ceeeb77157131
        .quad 0x9b27158900c8af88
        .quad 0x8065b668da59a736
        .quad 0x51e57bb6a2cc38bd
        .quad 0x85ac326702ea4b71
        .quad 0xbe70e00341a1bb01
        .quad 0x53e4a24b083bc144
        .quad 0x10b8e91a9f0d61e3



        .quad 0xba6f2c9aaa3221b1
        .quad 0x6ca021533bba23a7
        .quad 0x9dea764f92192c3a
        .quad 0x1d6edd5d2e5317e0
        .quad 0x6b1a5cd0944ea3bf
        .quad 0x7470353ab39dc0d2
        .quad 0x71b2528228542e49
        .quad 0x461bea69283c927e
        .quad 0xf1836dc801b8b3a2
        .quad 0xb3035f47053ea49a
        .quad 0x529c41ba5877adf3
        .quad 0x7a9fbb1c6a0f90a7



        .quad 0xe2a75dedf39234d9
        .quad 0x963d7680e1b558f9
        .quad 0x2c2741ac6e3c23fb
        .quad 0x3a9024a1320e01c3
        .quad 0x59b7596604dd3e8f
        .quad 0x6cb30377e288702c
        .quad 0xb1339c665ed9c323
        .quad 0x0915e76061bce52f
        .quad 0xe7c1f5d9c9a2911a
        .quad 0xb8a371788bcca7d7
        .quad 0x636412190eb62a32
        .quad 0x26907c5c2ecc4e95


.section .note.GNU-stack, "", %progbits
# 0 "p384/bignum_tomont_p384_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_tomont_p384_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
# 15 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 16 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S" 2


        .globl bignum_tomont_p384_alt
        .hidden bignum_tomont_p384_alt
        .text
# 105 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
.Lbignum_tomont_p384_alt_local_target:
bignum_tomont_p384_alt:
# 120 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
        pushq %rbx
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15





        movq $0xfffffffe00000001, %rbx
        movq (%rsi), %rax
        mulq %rbx
        movq %rax, %r8
        movq %rdx, %r9

        movq 8(%rsi), %rax
        mulq %rbx
        xorl %r10d, %r10d
        addq %rax, %r9
        adcq %rdx, %r10

        movq 16(%rsi), %rax
        mulq %rbx
        xorl %r11d, %r11d
        addq %rax, %r10
        adcq %rdx, %r11

        movq 24(%rsi), %rax
        mulq %rbx
        xorl %r12d, %r12d
        addq %rax, %r11
        adcq %rdx, %r12

        movq 32(%rsi), %rax
        mulq %rbx
        xorl %r13d, %r13d
        addq %rax, %r12
        adcq %rdx, %r13

        movq 40(%rsi), %rax
        mulq %rbx
        xorl %r14d, %r14d
        addq %rax, %r13
        adcq %rdx, %r14

        xorl %r15d, %r15d



        movq %r8, %rbx
 shlq $32, %rbx
 addq %r8, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r8
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r8, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r9
 sbbq %rdx, %r10
 sbbq %rcx, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 sbbq $0, %rbx
 addq %rbx, %r14
 adcq $0, %r15



        movq $0x0000000200000000, %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %r8, %r8
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %r8, %r8
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r8, %r8
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r8, %r8
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r8, %r8
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r8, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r8, %r8
        negq %r8



        movq %r9, %rbx
 shlq $32, %rbx
 addq %r9, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r9
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r9, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r10
 sbbq %rdx, %r11
 sbbq %rcx, %r12
 sbbq $0, %r13
 sbbq $0, %r14
 sbbq $0, %rbx
 addq %rbx, %r15
 adcq $0, %r8



        movq $0xfffffffe00000000, %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %r9, %r9
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r9, %r9
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r9, %r9
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r9, %r9
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r9, %r9
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r9, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r9, %r9
        negq %r9



        movq %r10, %rbx
 shlq $32, %rbx
 addq %r10, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r10
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r10, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r11
 sbbq %rdx, %r12
 sbbq %rcx, %r13
 sbbq $0, %r14
 sbbq $0, %r15
 sbbq $0, %rbx
 addq %rbx, %r8
 adcq $0, %r9



        movq $0x0000000200000000, %rbx
        movq (%rsi), %rax
 mulq %rbx
 addq %rax, %r11
 adcq %rdx, %r12
 sbbq %r10, %r10
        movq 8(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r12
 adcq %rdx, %r13
 sbbq %r10, %r10
        movq 16(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r13
 adcq %rdx, %r14
 sbbq %r10, %r10
        movq 24(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r14
 adcq %rdx, %r15
 sbbq %r10, %r10
        movq 32(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r15
 adcq %rdx, %r8
 sbbq %r10, %r10
        movq 40(%rsi), %rax
 mulq %rbx
 subq %r10, %rdx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %r10, %r10
        negq %r10



        movq %r11, %rbx
 shlq $32, %rbx
 addq %r11, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r11
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r11, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r12
 sbbq %rdx, %r13
 sbbq %rcx, %r14
 sbbq $0, %r15
 sbbq $0, %r8
 sbbq $0, %rbx
 addq %rbx, %r9
 adcq $0, %r10




        xorq %r11, %r11
        addq (%rsi), %r12
        adcq 8(%rsi), %r13
        adcq 16(%rsi), %r14
        adcq 24(%rsi), %r15
        adcq 32(%rsi), %r8
        adcq 40(%rsi), %r9
        adcq %r11, %r10
        adcq %r11, %r11



        movq %r12, %rbx
 shlq $32, %rbx
 addq %r12, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r12
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r12, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r13
 sbbq %rdx, %r14
 sbbq %rcx, %r15
 sbbq $0, %r8
 sbbq $0, %r9
 sbbq $0, %rbx
 addq %rbx, %r10
 adcq $0, %r11




        xorq %r12, %r12



        movq %r13, %rbx
 shlq $32, %rbx
 addq %r13, %rbx
 xorl %ecx, %ecx
 movq $0xffffffff00000001, %rax
 mulq %rbx
 movq %rdx, %r13
 movq $0x00000000ffffffff, %rax
 mulq %rbx
 addq %r13, %rax
 adcq %rbx, %rdx
 adcl %ecx, %ecx
 subq %rax, %r14
 sbbq %rdx, %r15
 sbbq %rcx, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 sbbq $0, %rbx
 addq %rbx, %r11
 adcq $0, %r12
# 252 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_tomont_p384_alt.S"
        movq $0xffffffff00000001, %rdx
        movl $0x00000000ffffffff, %ecx
        movl $0x0000000000000001, %esi




        movq %r14, %rax
        addq %rdx, %rax
        movq %r15, %rax
        adcq %rcx, %rax
        movq %r8, %rax
        adcq %rsi, %rax
        movq %r9, %rax
        adcq $0, %rax
        movq %r10, %rax
        adcq $0, %rax
        movq %r11, %rax
        adcq $0, %rax




        adcq $0, %r12



        negq %r12



        andq %r12, %rdx
        andq %r12, %rcx
        andq %r12, %rsi

        addq %rdx, %r14
        adcq %rcx, %r15
        adcq %rsi, %r8
        adcq $0, %r9
        adcq $0, %r10
        adcq $0, %r11



        movq %r14, (%rdi)
        movq %r15, 8(%rdi)
        movq %r8, 16(%rdi)
        movq %r9, 24(%rdi)
        movq %r10, 32(%rdi)
        movq %r11, 40(%rdi)



        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbx





        ret


.section .note.GNU-stack,"",%progbits
# 0 "p384/bignum_deamont_p384_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "p384/bignum_deamont_p384_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S"
# 18 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 19 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S" 2


        .globl bignum_deamont_p384_alt
        .hidden bignum_deamont_p384_alt
        .text
# 73 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S"
.Lbignum_deamont_p384_alt_local_target:
bignum_deamont_p384_alt:
# 84 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/p384/bignum_deamont_p384_alt.S"
        pushq %r12
        pushq %r13



        movq (%rsi), %r8
        movq 8(%rsi), %r9
        movq 16(%rsi), %r10
        movq 24(%rsi), %r11
        movq 32(%rsi), %r12
        movq 40(%rsi), %r13



        movq %r8, %rcx
 shlq $32, %rcx
 addq %r8, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r8
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r8
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r8, %r9
 sbbq %rdx, %r10
 sbbq %rax, %r11
 sbbq $0, %r12
 sbbq $0, %r13
 movq %rcx, %r8
 sbbq $0, %r8



        movq %r9, %rcx
 shlq $32, %rcx
 addq %r9, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r9
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r9
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r9, %r10
 sbbq %rdx, %r11
 sbbq %rax, %r12
 sbbq $0, %r13
 sbbq $0, %r8
 movq %rcx, %r9
 sbbq $0, %r9



        movq %r10, %rcx
 shlq $32, %rcx
 addq %r10, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r10
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r10
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r10, %r11
 sbbq %rdx, %r12
 sbbq %rax, %r13
 sbbq $0, %r8
 sbbq $0, %r9
 movq %rcx, %r10
 sbbq $0, %r10



        movq %r11, %rcx
 shlq $32, %rcx
 addq %r11, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r11
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r11
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r11, %r12
 sbbq %rdx, %r13
 sbbq %rax, %r8
 sbbq $0, %r9
 sbbq $0, %r10
 movq %rcx, %r11
 sbbq $0, %r11



        movq %r12, %rcx
 shlq $32, %rcx
 addq %r12, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r12
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r12
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r12, %r13
 sbbq %rdx, %r8
 sbbq %rax, %r9
 sbbq $0, %r10
 sbbq $0, %r11
 movq %rcx, %r12
 sbbq $0, %r12



        movq %r13, %rcx
 shlq $32, %rcx
 addq %r13, %rcx
 movq $0xffffffff00000001, %rax
 mulq %rcx
 movq %rdx, %r13
 movq $0x00000000ffffffff, %rax
 mulq %rcx
 addq %rax, %r13
 movl $0, %eax
 adcq %rcx, %rdx
 adcl %eax, %eax
 subq %r13, %r8
 sbbq %rdx, %r9
 sbbq %rax, %r10
 sbbq $0, %r11
 sbbq $0, %r12
 movq %rcx, %r13
 sbbq $0, %r13





        movq $0xffffffff00000001, %rax
        movl $0x00000000ffffffff, %ecx

        movq %r8, %rdx
        addq %rax, %rdx
        movq %r9, %rdx
        adcq %rcx, %rdx
        movq %r10, %rdx
        adcq $1, %rdx
        movq %r11, %rdx
        adcq $0, %rdx
        movq %r12, %rdx
        adcq $0, %rdx
        movq %r13, %rdx
        adcq $0, %rdx



        sbbq %rdx, %rdx



        andq %rdx, %rax
        andq %rdx, %rcx
        andq $1, %rdx

        addq %rax, %r8
        adcq %rcx, %r9
        adcq %rdx, %r10
        adcq $0, %r11
        adcq $0, %r12
        adcq $0, %r13



        movq %r8, (%rdi)
        movq %r9, 8(%rdi)
        movq %r10, 16(%rdi)
        movq %r11, 24(%rdi)
        movq %r12, 32(%rdi)
        movq %r13, 40(%rdi)



        popq %r13
        popq %r12





        ret


.section .note.GNU-stack,"",%progbits
# 0 "curve25519/curve25519_x25519.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/curve25519_x25519.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
# 29 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 30 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S" 2


        .globl curve25519_x25519
        .hidden curve25519_x25519
        .globl curve25519_x25519_byte
        .hidden curve25519_x25519_byte
        .text
# 596 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
.Lcurve25519_x25519_local_target:
curve25519_x25519:
.Lcurve25519_x25519_byte_local_target:
curve25519_x25519_byte:
# 609 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(13*32), %rsp



        movq %rdi, 12*32(%rsp)
# 630 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
        movq (%rsi), %rax
        movq %rax, (%rsp)
        movq 8(%rsi), %rax
        movq %rax, 8(%rsp)
        movq 16(%rsi), %rax
        movq %rax, 16(%rsp)
        movq 24(%rsi), %rax
        movq %rax, 24(%rsp)

        movq (%rdx), %r8
        movq 8(%rdx), %r9
        movq 16(%rdx), %r10
        movq 24(%rdx), %r11
        btr $63, %r11
        movq %r8, 32(%rsp)
        movq %r9, 40(%rsp)
        movq %r10, 48(%rsp)
        movq %r11, 56(%rsp)
# 656 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
        movl $1, %eax
        movq %rax, 12*32 +16(%rsp)
        movq %r8, 256(%rsp)
        movq %rax, 96(%rsp)
        xorl %eax, %eax
        movq %r9, 264(%rsp)
        movq %rax, 104(%rsp)
        movq %r10, 272(%rsp)
        movq %rax, 112(%rsp)
        movq %r11, 280(%rsp)
        movq %rax, 120(%rsp)

        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(11*32)(%rsp), %r9, %r10
 mulxq 0x18+(11*32)(%rsp), %r11, %r12
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq 0x18+(11*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(10*32)(%rsp), %r9, %r10
 mulxq 0x18+(10*32)(%rsp), %r11, %r12
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq 0x18+(10*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq (11*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 movq 16+(11*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %r11
 xorl %edi, %edi
 movq $0x1db42, %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq 8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 16+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 24+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rdi, %rbx
 adcxq %rdi, %rbx
 shldq $0x1, %r11, %rbx
 btr $63, %r11
 movl $0x13, %edx
 imulq %rdx, %rbx
 addq %rbx, %r8
 adcq %rdi, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)





        movl $253, %eax
        movq %rax, 12*32 +8(%rsp)

.Lcurve25519_x25519_scalarloop_local_target:
curve25519_x25519_scalarloop:



        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq 12*32 +8(%rsp), %rdx
        movq %rdx, %rcx
        shrq $6, %rdx
        movq (%rsp,%rdx,8), %rdx
        shrq %cl, %rdx
        andq $1, %rdx
        cmpq 12*32 +16(%rsp), %rdx
        movq %rdx, 12*32 +16(%rsp)
        movq (2*32)(%rsp), %rax
 movq (5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (11*32)(%rsp)
 movq 8+(2*32)(%rsp), %rax
 movq 8+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(11*32)(%rsp)
 movq 16+(2*32)(%rsp), %rax
 movq 16+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(11*32)(%rsp)
 movq 24+(2*32)(%rsp), %rax
 movq 24+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(11*32)(%rsp)
        movq (3*32)(%rsp), %rax
 movq (4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (10*32)(%rsp)
 movq 8+(3*32)(%rsp), %rax
 movq 8+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(10*32)(%rsp)
 movq 16+(3*32)(%rsp), %rax
 movq 16+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(10*32)(%rsp)
 movq 24+(3*32)(%rsp), %rax
 movq 24+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(10*32)(%rsp)



        xorl %edi, %edi
 movq (5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rdi, %r12
 xorl %edi, %edi
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rdi, %r13
 adcxq %rdi, %r13
 xorl %edi, %edi
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rdi, %r14
 adcxq %rdi, %r14
 xorl %edi, %edi
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rdi, %r15
 adcxq %rdi, %r15
 movl $0x26, %edx
 xorl %edi, %edi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rdi, %r12
 adcxq %rdi, %r12
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
 movq %r12, 0x20+(8*32)(%rsp)
        xorl %edi, %edi
 movq (2*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %r8, %r9
 mulxq 0x8+(4*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(4*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(4*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rdi, %r12
 xorl %edi, %edi
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(4*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rdi, %r13
 adcxq %rdi, %r13
 xorl %edi, %edi
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(4*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rdi, %r14
 adcxq %rdi, %r14
 xorl %edi, %edi
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(4*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(4*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rdi, %r15
 adcxq %rdi, %r15
 movl $0x26, %edx
 xorl %edi, %edi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rdi, %r12
 adcxq %rdi, %r12
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
 movq %r12, 0x20+(6*32)(%rsp)



        movq (11*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(11*32)(%rsp), %r9, %r10
 mulxq 0x18+(11*32)(%rsp), %r11, %r12
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq 0x18+(11*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)




        movq (6*32)(%rsp), %r8
 subq (8*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 sbbq 8+(8*32)(%rsp), %r9
 movq 16+(6*32)(%rsp), %r10
 sbbq 16+(8*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %r11
 sbbq 24+(8*32)(%rsp), %r11
 movq 32+(6*32)(%rsp), %r12
 sbbq 32+(8*32)(%rsp), %r12
 xorl %ebx, %ebx
 subq $19000, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %r11
 sbbq %rbx, %r12
 addq $500, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (6*32)(%rsp), %r8
 addq (8*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 adcq 8+(8*32)(%rsp), %r9
 movq 16+(6*32)(%rsp), %r10
 adcq 16+(8*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %r11
 adcq 24+(8*32)(%rsp), %r11
 movq 32+(6*32)(%rsp), %r12
 adcq 32+(8*32)(%rsp), %r12
 xorl %ebx, %ebx
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (10*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(10*32)(%rsp), %r9, %r10
 mulxq 0x18+(10*32)(%rsp), %r11, %r12
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq 0x18+(10*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (3*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(3*32)(%rsp), %r9, %r10
 mulxq 0x18+(3*32)(%rsp), %r11, %r12
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq 0x18+(3*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (3*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq 0x8+(3*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)



        movq (8*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(8*32)(%rsp), %r9, %r10
 mulxq 0x18+(8*32)(%rsp), %r11, %r12
 movq 0x10+(8*32)(%rsp), %rdx
 mulxq 0x18+(8*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (8*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(8*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(8*32)(%rsp), %rdx
 mulxq 0x8+(8*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(8*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(8*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(8*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)



        movq (11*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 movq 16+(11*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %r11
 xorl %edi, %edi
 movq $0x1db42, %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq 8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 16+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 24+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rdi, %rbx
 adcxq %rdi, %rbx
 shldq $0x1, %r11, %rbx
 btr $63, %r11
 movl $0x13, %edx
 imulq %rdx, %rbx
 addq %rbx, %r8
 adcq %rdi, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)



        xorl %ecx, %ecx
 movq (11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)




        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)



        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %r8, %r9
 mulxq 0x8+(3*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(3*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(3*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(3*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(3*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(3*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(3*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq 12*32 +8(%rsp), %rax
        subq $1, %rax
        movq %rax, 12*32 +8(%rsp)
        cmpq $3, %rax
# WAS jnc curve25519_x25519_scalarloop
	jnc	.Lcurve25519_x25519_scalarloop_local_target





        movq 12*32 +16(%rsp), %rdx
        testq %rdx, %rdx
        movq (8*32)(%rsp), %rax
 movq (10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (10*32)(%rsp)
 movq 8+(8*32)(%rsp), %rax
 movq 8+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(10*32)(%rsp)
 movq 16+(8*32)(%rsp), %rax
 movq 16+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(10*32)(%rsp)
 movq 24+(8*32)(%rsp), %rax
 movq 24+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(10*32)(%rsp)
        movq (3*32)(%rsp), %rax
 movq (7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (7*32)(%rsp)
 movq 8+(3*32)(%rsp), %rax
 movq 8+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(7*32)(%rsp)
 movq 16+(3*32)(%rsp), %rax
 movq 16+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(7*32)(%rsp)
 movq 24+(3*32)(%rsp), %rax
 movq 24+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(11*32)(%rsp), %r9, %r10
 mulxq 0x18+(11*32)(%rsp), %r11, %r12
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq 0x18+(11*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(10*32)(%rsp), %r9, %r10
 mulxq 0x18+(10*32)(%rsp), %r11, %r12
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq 0x18+(10*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq (11*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 movq 16+(11*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %r11
 xorl %edi, %edi
 movq $0x1db42, %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq 8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 16+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 24+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rdi, %rbx
 adcxq %rdi, %rbx
 shldq $0x1, %r11, %rbx
 btr $63, %r11
 movl $0x13, %edx
 imulq %rdx, %rbx
 addq %rbx, %r8
 adcq %rdi, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(11*32)(%rsp), %r9, %r10
 mulxq 0x18+(11*32)(%rsp), %r11, %r12
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq 0x18+(11*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(10*32)(%rsp), %r9, %r10
 mulxq 0x18+(10*32)(%rsp), %r11, %r12
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq 0x18+(10*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq (11*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 movq 16+(11*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %r11
 xorl %edi, %edi
 movq $0x1db42, %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq 8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 16+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 24+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rdi, %rbx
 adcxq %rdi, %rbx
 shldq $0x1, %r11, %rbx
 btr $63, %r11
 movl $0x13, %edx
 imulq %rdx, %rbx
 addq %rbx, %r8
 adcq %rdi, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(11*32)(%rsp), %r9, %r10
 mulxq 0x18+(11*32)(%rsp), %r11, %r12
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq 0x18+(11*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq 0x8+(11*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rdx
 mulxq %rdx, %r8, %r15
 mulxq 0x8+(10*32)(%rsp), %r9, %r10
 mulxq 0x18+(10*32)(%rsp), %r11, %r12
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq 0x18+(10*32)(%rsp), %r13, %r14
 xorl %ebx, %ebx
 mulxq (10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r11
 adoxq %rcx, %r12
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq 0x8+(10*32)(%rsp), %rax, %rcx
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rbx, %r13
 adoxq %rbx, %r14
 adcq %rbx, %r14
 xorl %ebx, %ebx
 adcxq %r9, %r9
 adoxq %r15, %r9
 movq 0x8+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r10, %r10
 adoxq %rax, %r10
 adcxq %r11, %r11
 adoxq %rdx, %r11
 movq 0x10+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %rdx
 adcxq %r12, %r12
 adoxq %rax, %r12
 adcxq %r13, %r13
 adoxq %rdx, %r13
 movq 0x18+(10*32)(%rsp), %rdx
 mulxq %rdx, %rax, %r15
 adcxq %r14, %r14
 adoxq %rax, %r14
 adcxq %rbx, %r15
 adoxq %rbx, %r15
 movl $0x26, %edx
 xorl %ebx, %ebx
 mulxq %r12, %rax, %rcx
 adcxq %rax, %r8
 adoxq %rcx, %r9
 mulxq %r13, %rax, %rcx
 adcxq %rax, %r9
 adoxq %rcx, %r10
 mulxq %r14, %rax, %rcx
 adcxq %rax, %r10
 adoxq %rcx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rbx, %r12
 adcxq %rbx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq (11*32)(%rsp), %r8
 movq 8+(11*32)(%rsp), %r9
 movq 16+(11*32)(%rsp), %r10
 movq 24+(11*32)(%rsp), %r11
 xorl %edi, %edi
 movq $0x1db42, %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq 8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 16+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 24+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rdi, %rbx
 adcxq %rdi, %rbx
 shldq $0x1, %r11, %rbx
 btr $63, %r11
 movl $0x13, %edx
 imulq %rdx, %rbx
 addq %rbx, %r8
 adcq %rdi, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(11*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %r8, %r9
 mulxq 0x8+(6*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(6*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(6*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(6*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(6*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(5*32)(%rsp), %rdx
 mulxq (6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(6*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(6*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)




        leaq 224(%rsp), %rdi
        leaq 224(%rsp), %rsi
# 805 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp curve25519_x25519_midloop
	jmp	.Lcurve25519_x25519_midloop_local_target
.Lcurve25519_x25519_inverseloop_local_target:
curve25519_x25519_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Lcurve25519_x25519_midloop_local_target:
curve25519_x25519_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne curve25519_x25519_inverseloop
	jne	.Lcurve25519_x25519_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)







        movq 12*32(%rsp), %rbp
        xorl %edi, %edi
 movq (7*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rdi, %r12
 xorl %edi, %edi
 movq 0x8+(7*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rdi, %r13
 adcxq %rdi, %r13
 xorl %edi, %edi
 movq 0x10+(7*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rdi, %r14
 adcxq %rdi, %r14
 xorl %edi, %edi
 movq 0x18+(7*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rdi, %r15
 adcxq %rdi, %r15
 movl $0x26, %edx
 xorl %edi, %edi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rdi, %r12
 adcxq %rdi, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rdi, %r10
 adcq %rdi, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rdi, %r9
 sbbq %rdi, %r10
 sbbq %rdi, %r11
 btr $63, %r11
 movq %r8, 0(%rbp)
 movq %r9, 0x8+0(%rbp)
 movq %r10, 0x10+0(%rbp)
 movq %r11, 0x18+0(%rbp)



        addq $(13*32), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/curve25519_x25519_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/curve25519_x25519_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
# 29 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 30 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S" 2


        .globl curve25519_x25519_alt
        .hidden curve25519_x25519_alt
        .globl curve25519_x25519_byte_alt
        .hidden curve25519_x25519_byte_alt
        .text
# 757 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
.Lcurve25519_x25519_alt_local_target:
curve25519_x25519_alt:
.Lcurve25519_x25519_byte_alt_local_target:
curve25519_x25519_byte_alt:
# 770 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(13*32), %rsp



        movq %rdi, 12*32(%rsp)
# 791 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
        movq (%rsi), %rax
        movq %rax, (%rsp)
        movq 8(%rsi), %rax
        movq %rax, 8(%rsp)
        movq 16(%rsi), %rax
        movq %rax, 16(%rsp)
        movq 24(%rsi), %rax
        movq %rax, 24(%rsp)

        movq (%rdx), %r8
        movq 8(%rdx), %r9
        movq 16(%rdx), %r10
        movq 24(%rdx), %r11
        btr $63, %r11
        movq %r8, 32(%rsp)
        movq %r9, 40(%rsp)
        movq %r10, 48(%rsp)
        movq %r11, 56(%rsp)
# 817 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
        movl $1, %eax
        movq %rax, 12*32 +16(%rsp)
        movq %r8, 256(%rsp)
        movq %rax, 96(%rsp)
        xorl %eax, %eax
        movq %r9, 264(%rsp)
        movq %rax, 104(%rsp)
        movq %r10, 272(%rsp)
        movq %rax, 112(%rsp)
        movq %r11, 280(%rsp)
        movq %rax, 120(%rsp)

        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq $0x1db42, %rsi
 movq (6*32)(%rsp), %rax
 mulq %rsi
 movq %rax, %r8
 movq %rdx, %r9
 movq 0x8+(6*32)(%rsp), %rax
 xorq %r10, %r10
 mulq %rsi
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x10+(6*32)(%rsp), %rax
 mulq %rsi
 addq %rax, %r10
 adcq $0x0, %rdx
 movq 0x18+(6*32)(%rsp), %rax
 movq %rdx, %r11
 mulq %rsi
 xorl %esi, %esi
 addq %rax, %r11
 adcq %rsi, %rdx
 addq (11*32)(%rsp), %r8
 adcq 0x8+(11*32)(%rsp), %r9
 adcq 0x10+(11*32)(%rsp), %r10
 adcq 0x18+(11*32)(%rsp), %r11
 adcq %rsi, %rdx
 shldq $0x1, %r11, %rdx
 btr $63, %r11
 movl $0x13, %ebx
 imulq %rbx, %rdx
 addq %rdx, %r8
 adcq %rsi, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)





        movl $253, %eax
        movq %rax, 12*32 +8(%rsp)

.Lcurve25519_x25519_alt_scalarloop_local_target:
curve25519_x25519_alt_scalarloop:



        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (3*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(3*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(3*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(3*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (2*32)(%rsp)
 movq %r9, 8+(2*32)(%rsp)
 movq %r10, 16+(2*32)(%rsp)
 movq %rax, 24+(2*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (5*32)(%rsp)
 movq %r9, 8+(5*32)(%rsp)
 movq %r10, 16+(5*32)(%rsp)
 movq %rax, 24+(5*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (3*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(3*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(3*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(3*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq 12*32 +8(%rsp), %rdx
        movq %rdx, %rcx
        shrq $6, %rdx
        movq (%rsp,%rdx,8), %rdx
        shrq %cl, %rdx
        andq $1, %rdx
        cmpq 12*32 +16(%rsp), %rdx
        movq %rdx, 12*32 +16(%rsp)
        movq (2*32)(%rsp), %rax
 movq (5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (11*32)(%rsp)
 movq 8+(2*32)(%rsp), %rax
 movq 8+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(11*32)(%rsp)
 movq 16+(2*32)(%rsp), %rax
 movq 16+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(11*32)(%rsp)
 movq 24+(2*32)(%rsp), %rax
 movq 24+(5*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(11*32)(%rsp)
        movq (3*32)(%rsp), %rax
 movq (4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (10*32)(%rsp)
 movq 8+(3*32)(%rsp), %rax
 movq 8+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(10*32)(%rsp)
 movq 16+(3*32)(%rsp), %rax
 movq 16+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(10*32)(%rsp)
 movq 24+(3*32)(%rsp), %rax
 movq 24+(4*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(10*32)(%rsp)



        movq (3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
 movq %r12, 0x20+(8*32)(%rsp)
        movq (4*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (4*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(4*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (4*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(4*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (4*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(4*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(4*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(4*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(4*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
 movq %r12, 0x20+(6*32)(%rsp)



        movq (11*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)




        movq (6*32)(%rsp), %r8
 subq (8*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 sbbq 8+(8*32)(%rsp), %r9
 movq 16+(6*32)(%rsp), %r10
 sbbq 16+(8*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %r11
 sbbq 24+(8*32)(%rsp), %r11
 movq 32+(6*32)(%rsp), %r12
 sbbq 32+(8*32)(%rsp), %r12
 xorl %ebx, %ebx
 subq $19000, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %r11
 sbbq %rbx, %r12
 addq $500, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)
        movq (6*32)(%rsp), %r8
 addq (8*32)(%rsp), %r8
 movq 8+(6*32)(%rsp), %r9
 adcq 8+(8*32)(%rsp), %r9
 movq 16+(6*32)(%rsp), %r10
 adcq 16+(8*32)(%rsp), %r10
 movq 24+(6*32)(%rsp), %r11
 adcq 24+(8*32)(%rsp), %r11
 movq 32+(6*32)(%rsp), %r12
 adcq 32+(8*32)(%rsp), %r12
 xorl %ebx, %ebx
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rbx, %r9
 adcq %rbx, %r10
 adcq %rbx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (3*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)



        movq (8*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (8*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(8*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (8*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (8*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(8*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(8*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)



        movq $0x1db42, %rsi
 movq (6*32)(%rsp), %rax
 mulq %rsi
 movq %rax, %r8
 movq %rdx, %r9
 movq 0x8+(6*32)(%rsp), %rax
 xorq %r10, %r10
 mulq %rsi
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x10+(6*32)(%rsp), %rax
 mulq %rsi
 addq %rax, %r10
 adcq $0x0, %rdx
 movq 0x18+(6*32)(%rsp), %rax
 movq %rdx, %r11
 mulq %rsi
 xorl %esi, %esi
 addq %rax, %r11
 adcq %rsi, %rdx
 addq (11*32)(%rsp), %r8
 adcq 0x8+(11*32)(%rsp), %r9
 adcq 0x10+(11*32)(%rsp), %r10
 adcq 0x18+(11*32)(%rsp), %r11
 adcq %rsi, %rdx
 shldq $0x1, %r11, %rdx
 btr $63, %r11
 movl $0x13, %ebx
 imulq %rbx, %rdx
 addq %rdx, %r8
 adcq %rsi, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)



        movq (10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)




        movq (6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)



        movq (3*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (3*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(3*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (3*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(3*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (3*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(3*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(3*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(3*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(3*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (3*32)(%rsp)
 movq %r9, 0x8+(3*32)(%rsp)
 movq %r10, 0x10+(3*32)(%rsp)
 movq %r11, 0x18+(3*32)(%rsp)



        movq 12*32 +8(%rsp), %rax
        subq $1, %rax
        movq %rax, 12*32 +8(%rsp)
        cmpq $3, %rax
# WAS jnc curve25519_x25519_alt_scalarloop
	jnc	.Lcurve25519_x25519_alt_scalarloop_local_target





        movq 12*32 +16(%rsp), %rdx
        testq %rdx, %rdx
        movq (8*32)(%rsp), %rax
 movq (10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (10*32)(%rsp)
 movq 8+(8*32)(%rsp), %rax
 movq 8+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(10*32)(%rsp)
 movq 16+(8*32)(%rsp), %rax
 movq 16+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(10*32)(%rsp)
 movq 24+(8*32)(%rsp), %rax
 movq 24+(10*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(10*32)(%rsp)
        movq (3*32)(%rsp), %rax
 movq (7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, (7*32)(%rsp)
 movq 8+(3*32)(%rsp), %rax
 movq 8+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 8+(7*32)(%rsp)
 movq 16+(3*32)(%rsp), %rax
 movq 16+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 16+(7*32)(%rsp)
 movq 24+(3*32)(%rsp), %rax
 movq 24+(7*32)(%rsp), %rcx
 cmovzq %rcx, %rax
 movq %rax, 24+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq $0x1db42, %rsi
 movq (6*32)(%rsp), %rax
 mulq %rsi
 movq %rax, %r8
 movq %rdx, %r9
 movq 0x8+(6*32)(%rsp), %rax
 xorq %r10, %r10
 mulq %rsi
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x10+(6*32)(%rsp), %rax
 mulq %rsi
 addq %rax, %r10
 adcq $0x0, %rdx
 movq 0x18+(6*32)(%rsp), %rax
 movq %rdx, %r11
 mulq %rsi
 xorl %esi, %esi
 addq %rax, %r11
 adcq %rsi, %rdx
 addq (11*32)(%rsp), %r8
 adcq 0x8+(11*32)(%rsp), %r9
 adcq 0x10+(11*32)(%rsp), %r10
 adcq 0x18+(11*32)(%rsp), %r11
 adcq %rsi, %rdx
 shldq $0x1, %r11, %rdx
 btr $63, %r11
 movl $0x13, %ebx
 imulq %rbx, %rdx
 addq %rdx, %r8
 adcq %rsi, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq $0x1db42, %rsi
 movq (6*32)(%rsp), %rax
 mulq %rsi
 movq %rax, %r8
 movq %rdx, %r9
 movq 0x8+(6*32)(%rsp), %rax
 xorq %r10, %r10
 mulq %rsi
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x10+(6*32)(%rsp), %rax
 mulq %rsi
 addq %rax, %r10
 adcq $0x0, %rdx
 movq 0x18+(6*32)(%rsp), %rax
 movq %rdx, %r11
 mulq %rsi
 xorl %esi, %esi
 addq %rax, %r11
 adcq %rsi, %rdx
 addq (11*32)(%rsp), %r8
 adcq 0x8+(11*32)(%rsp), %r9
 adcq 0x10+(11*32)(%rsp), %r10
 adcq 0x18+(11*32)(%rsp), %r11
 adcq %rsi, %rdx
 shldq $0x1, %r11, %rdx
 btr $63, %r11
 movl $0x13, %ebx
 imulq %rbx, %rdx
 addq %rdx, %r8
 adcq %rsi, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)

        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (11*32)(%rsp)
 movq %r9, 8+(11*32)(%rsp)
 movq %r10, 16+(11*32)(%rsp)
 movq %rax, 24+(11*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (11*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (11*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(11*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(11*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq %rax
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r11
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r12
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r13
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r14
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(10*32)(%rsp)
 addq %rax, %rax
 adcq %rdx, %rdx
 adcq $0x0, %r15
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq %rax
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (6*32)(%rsp)
 movq %r9, 8+(6*32)(%rsp)
 movq %r10, 16+(6*32)(%rsp)
 movq %rax, 24+(6*32)(%rsp)
        movq $0x1db42, %rsi
 movq (6*32)(%rsp), %rax
 mulq %rsi
 movq %rax, %r8
 movq %rdx, %r9
 movq 0x8+(6*32)(%rsp), %rax
 xorq %r10, %r10
 mulq %rsi
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x10+(6*32)(%rsp), %rax
 mulq %rsi
 addq %rax, %r10
 adcq $0x0, %rdx
 movq 0x18+(6*32)(%rsp), %rax
 movq %rdx, %r11
 mulq %rsi
 xorl %esi, %esi
 addq %rax, %r11
 adcq %rsi, %rdx
 addq (11*32)(%rsp), %r8
 adcq 0x8+(11*32)(%rsp), %r9
 adcq 0x10+(11*32)(%rsp), %r10
 adcq 0x18+(11*32)(%rsp), %r11
 adcq %rsi, %rdx
 shldq $0x1, %r11, %rdx
 btr $63, %r11
 movl $0x13, %ebx
 imulq %rbx, %rdx
 addq %rdx, %r8
 adcq %rsi, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (11*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(11*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(11*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(11*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(6*32)(%rsp), %rax
 mulq (5*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x8+(5*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x10+(5*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(6*32)(%rsp), %rax
 mulq 0x18+(5*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)




        leaq 224(%rsp), %rdi
        leaq 224(%rsp), %rsi
# 966 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp curve25519_x25519_alt_midloop
	jmp	.Lcurve25519_x25519_alt_midloop_local_target
.Lcurve25519_x25519_alt_inverseloop_local_target:
curve25519_x25519_alt_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Lcurve25519_x25519_alt_midloop_local_target:
curve25519_x25519_alt_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne curve25519_x25519_alt_inverseloop
	jne	.Lcurve25519_x25519_alt_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)







        movq 12*32(%rsp), %rbp
        movq (10*32)(%rsp), %rax
 mulq (7*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(7*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (7*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(7*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(7*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (7*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(7*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(7*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(7*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (7*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(7*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(7*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(7*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(7*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(7*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(7*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, 0(%rbp)
 movq %r9, 0x8+0(%rbp)
 movq %r10, 0x10+0(%rbp)
 movq %r11, 0x18+0(%rbp)



        addq $(13*32), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx





        ret


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/curve25519_x25519base.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/curve25519_x25519base.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
# 25 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 26 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S" 2


        .globl curve25519_x25519base
        .hidden curve25519_x25519base
        .globl curve25519_x25519base_byte
        .hidden curve25519_x25519base_byte
        .text
# 339 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
.Lcurve25519_x25519base_local_target:
curve25519_x25519base:
.Lcurve25519_x25519base_byte_local_target:
curve25519_x25519base_byte:
# 360 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(15*32 +8), %rsp



        movq %rdi, 14*32(%rsp)







        movq (%rsi), %rax
        movq %rax, (%rsp)
        movq 8(%rsi), %rax
        movq %rax, 8(%rsp)
        movq 16(%rsi), %rax
        movq %rax, 16(%rsp)
        movq $0x3fffffffffffffff, %rax
        andq 24(%rsi), %rax
        movq %rax, 24(%rsp)
# 399 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        movq (%rsp), %rax
        andq $8, %rax

# WAS leaq curve25519_x25519base_edwards25519_0g(%rip), %r10
	leaq	.Lcurve25519_x25519base_edwards25519_0g_local_target(%rip), %r10
# WAS leaq curve25519_x25519base_edwards25519_8g(%rip), %r11
	leaq	.Lcurve25519_x25519base_edwards25519_8g_local_target(%rip), %r11

        movq (%r10), %rax
        movq (%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*16(%rsp)

        movq 8*1(%r10), %rax
        movq 8*1(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*17(%rsp)

        movq 8*2(%r10), %rax
        movq 8*2(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*18(%rsp)

        movq 8*3(%r10), %rax
        movq 8*3(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*19(%rsp)

        movq 8*4(%r10), %rax
        movq 8*4(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*20(%rsp)

        movq 8*5(%r10), %rax
        movq 8*5(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*21(%rsp)

        movq 8*6(%r10), %rax
        movq 8*6(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*22(%rsp)

        movq 8*7(%r10), %rax
        movq 8*7(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*23(%rsp)

        movl $1, %eax
        movq %rax, 8*24(%rsp)
        movl $0, %eax
        movq %rax, 8*25(%rsp)
        movq %rax, 8*26(%rsp)
        movq %rax, 8*27(%rsp)

        movq 8*8(%r10), %rax
        movq 8*8(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*28(%rsp)

        movq 8*9(%r10), %rax
        movq 8*9(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*29(%rsp)

        movq 8*10(%r10), %rax
        movq 8*10(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*30(%rsp)

        movq 8*11(%r10), %rax
        movq 8*11(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*31(%rsp)
# 486 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        movq $4, 14*32 +8(%rsp)
# WAS leaq curve25519_x25519base_edwards25519_gtable(%rip), %rax
	leaq	.Lcurve25519_x25519base_edwards25519_gtable_local_target(%rip), %rax
        movq %rax, 15*32(%rsp)
        movq $0, 14*32 +16(%rsp)



.Lcurve25519_x25519base_scalarloop_local_target:
curve25519_x25519base_scalarloop:





        movq 14*32 +8(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax
        addq 14*32 +16(%rsp), %rax
        movq %rax, 14*32 +24(%rsp)

        cmpq $9, 14*32 +24(%rsp)
        sbbq %rax, %rax
        incq %rax
        movq %rax, 14*32 +16(%rsp)

        movq $16, %rdi
        subq 14*32 +24(%rsp), %rdi
        cmpq $0, 14*32 +16(%rsp)
        cmovzq 14*32 +24(%rsp), %rdi
        movq %rdi, 14*32 +24(%rsp)






        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

        movq 15*32(%rsp), %rbp

        cmpq $1, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        addq $96, %rbp
        movq %rbp, 15*32(%rsp)
# 774 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        cmpq $0, 14*32 +16(%rsp)

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, 32(%rsp)
        movq %r8, 64(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, 40(%rsp)
        movq %r9, 72(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, 48(%rsp)
        movq %r10, 80(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, 56(%rsp)
        movq %r11, 88(%rsp)

        movq $-19, %rax
        movq $-1, %rbx
        movq $-1, %rcx
        movq $0x7fffffffffffffff, %rdx
        subq %r12, %rax
        sbbq %r13, %rbx
        sbbq %r14, %rcx
        sbbq %r15, %rdx

        movq 14*32 +24(%rsp), %r8
        movq 14*32 +16(%rsp), %r9
        testq %r8, %r8
        cmovzq %r8, %r9
        testq %r9, %r9

        cmovzq %r12, %rax
        cmovzq %r13, %rbx
        cmovzq %r14, %rcx
        cmovzq %r15, %rdx
        movq %rax, 96(%rsp)
        movq %rbx, 104(%rsp)
        movq %rcx, 112(%rsp)
        movq %rdx, 120(%rsp)
# 831 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        movq (6*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(6*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(6*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(6*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (5*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (4*32)(%rsp), %r8
 movq 8+(5*32)(%rsp), %r9
 sbbq 8+(4*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(5*32)(%rsp), %r10
 sbbq 16+(4*32)(%rsp), %r10
 movq 24+(5*32)(%rsp), %rax
 sbbq 24+(4*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (9*32)(%rsp)
 movq %r9, 8+(9*32)(%rsp)
 movq %r10, 16+(9*32)(%rsp)
 movq %rax, 24+(9*32)(%rsp)
        movq (5*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (4*32)(%rsp), %r8
 movq 0x8+(5*32)(%rsp), %r9
 adcq 0x8+(4*32)(%rsp), %r9
 movq 0x10+(5*32)(%rsp), %r10
 adcq 0x10+(4*32)(%rsp), %r10
 movq 0x18+(5*32)(%rsp), %r11
 adcq 0x18+(4*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        xorl %ecx, %ecx
 movq (3*32)(%rsp), %rdx
 mulxq (7*32)(%rsp), %r8, %r9
 mulxq 0x8+(7*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(7*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(7*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(3*32)(%rsp), %rdx
 mulxq (7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(7*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(3*32)(%rsp), %rdx
 mulxq (7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(7*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(3*32)(%rsp), %rdx
 mulxq (7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(7*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(7*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        xorl %ecx, %ecx
 movq (1*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %r8, %r9
 mulxq 0x8+(9*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(9*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(9*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(1*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(9*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(1*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(9*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(1*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(9*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        xorl %ecx, %ecx
 movq (2*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %r8, %r9
 mulxq 0x8+(10*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(10*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(10*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(2*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(10*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(2*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(10*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(2*32)(%rsp), %rdx
 mulxq (10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(10*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(10*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (12*32)(%rsp)
 movq %r9, 8+(12*32)(%rsp)
 movq %r10, 16+(12*32)(%rsp)
 movq %rax, 24+(12*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (11*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(11*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(11*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(11*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (9*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(9*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(9*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(9*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (13*32)(%rsp)
 movq %r9, 8+(13*32)(%rsp)
 movq %r10, 16+(13*32)(%rsp)
 movq %rax, 24+(13*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (9*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(9*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(9*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(9*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        xorl %ecx, %ecx
 movq (8*32)(%rsp), %rdx
 mulxq (12*32)(%rsp), %r8, %r9
 mulxq 0x8+(12*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(12*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(12*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(8*32)(%rsp), %rdx
 mulxq (12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(12*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(8*32)(%rsp), %rdx
 mulxq (12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(12*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(8*32)(%rsp), %rdx
 mulxq (12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(12*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(12*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        xorl %ecx, %ecx
 movq (12*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %r8, %r9
 mulxq 0x8+(13*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(13*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(13*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(12*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(13*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(12*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(13*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(12*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(13*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        xorl %ecx, %ecx
 movq (9*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %r8, %r9
 mulxq 0x8+(8*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(8*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(8*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(9*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(8*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(9*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(8*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(9*32)(%rsp), %rdx
 mulxq (8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(8*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(8*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        xorl %ecx, %ecx
 movq (9*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %r8, %r9
 mulxq 0x8+(13*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(13*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(13*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rcx, %r12
 xorl %ecx, %ecx
 movq 0x8+(9*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(13*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rcx, %r13
 adcxq %rcx, %r13
 xorl %ecx, %ecx
 movq 0x10+(9*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(13*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rcx, %r14
 adcxq %rcx, %r14
 xorl %ecx, %ecx
 movq 0x18+(9*32)(%rsp), %rdx
 mulxq (13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(13*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(13*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rcx, %r15
 adcxq %rcx, %r15
 movl $0x26, %edx
 xorl %ecx, %ecx
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rcx, %r12
 adcxq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)



        addq $4, 14*32 +8(%rsp)
        cmpq $256, 14*32 +8(%rsp)
# WAS jc curve25519_x25519base_scalarloop
	jc	.Lcurve25519_x25519base_scalarloop_local_target
# 877 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (10*32)(%rsp)
 movq %r9, 8+(10*32)(%rsp)
 movq %r10, 16+(10*32)(%rsp)
 movq %rax, 24+(10*32)(%rsp)





        leaq 256(%rsp), %rdi
        leaq 320(%rsp), %rsi
# 894 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp curve25519_x25519base_midloop
	jmp	.Lcurve25519_x25519base_midloop_local_target
.Lcurve25519_x25519base_inverseloop_local_target:
curve25519_x25519base_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Lcurve25519_x25519base_midloop_local_target:
curve25519_x25519base_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne curve25519_x25519base_inverseloop
	jne	.Lcurve25519_x25519base_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)






        movq 14*32(%rsp), %rbp
        xorl %esi, %esi
 movq (8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %r8, %r9
 mulxq 0x8+(9*32)(%rsp), %rax, %r10
 addq %rax, %r9
 mulxq 0x10+(9*32)(%rsp), %rax, %r11
 adcq %rax, %r10
 mulxq 0x18+(9*32)(%rsp), %rax, %r12
 adcq %rax, %r11
 adcq %rsi, %r12
 xorl %esi, %esi
 movq 0x8+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x18+(9*32)(%rsp), %rax, %r13
 adcxq %rax, %r12
 adoxq %rsi, %r13
 adcxq %rsi, %r13
 xorl %esi, %esi
 movq 0x10+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x18+(9*32)(%rsp), %rax, %r14
 adcxq %rax, %r13
 adoxq %rsi, %r14
 adcxq %rsi, %r14
 xorl %esi, %esi
 movq 0x18+(8*32)(%rsp), %rdx
 mulxq (9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r11
 adoxq %rbx, %r12
 mulxq 0x8+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r12
 adoxq %rbx, %r13
 mulxq 0x10+(9*32)(%rsp), %rax, %rbx
 adcxq %rax, %r13
 adoxq %rbx, %r14
 mulxq 0x18+(9*32)(%rsp), %rax, %r15
 adcxq %rax, %r14
 adoxq %rsi, %r15
 adcxq %rsi, %r15
 movl $0x26, %edx
 xorl %esi, %esi
 mulxq %r12, %rax, %rbx
 adcxq %rax, %r8
 adoxq %rbx, %r9
 mulxq %r13, %rax, %rbx
 adcxq %rax, %r9
 adoxq %rbx, %r10
 mulxq %r14, %rax, %rbx
 adcxq %rax, %r10
 adoxq %rbx, %r11
 mulxq %r15, %rax, %r12
 adcxq %rax, %r11
 adoxq %rsi, %r12
 adcxq %rsi, %r12
 shldq $0x1, %r11, %r12
 movl $0x13, %edx
 incq %r12
 bts $63, %r11
 mulxq %r12, %rax, %rbx
 addq %rax, %r8
 adcq %rbx, %r9
 adcq %rsi, %r10
 adcq %rsi, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rdx, %rax
 subq %rax, %r8
 sbbq %rsi, %r9
 sbbq %rsi, %r10
 sbbq %rsi, %r11
 btr $63, %r11
 movq %r8, (0*32)(%rbp)
 movq %r9, 0x8+(0*32)(%rbp)
 movq %r10, 0x10+(0*32)(%rbp)
 movq %r11, 0x18+(0*32)(%rbp)



        addq $(15*32 +8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret
# 2271 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S"
.Lcurve25519_x25519base_edwards25519_0g_local_target:
curve25519_x25519base_edwards25519_0g:

        .quad 0x251037f7cf4e861d
        .quad 0x10ede0fb19fb128f
        .quad 0x96c033b175f5e2c8
        .quad 0x055f070d6c15fb0d

        .quad 0x7c52af2c97473e69
        .quad 0x022f82391bad8378
        .quad 0x9991e1b02adb476f
        .quad 0x511144a03a99b855

        .quad 0x5fafc3b88ff2e4ae
        .quad 0x855e4ff0de1230ff
        .quad 0x72e302a348492870
        .quad 0x1253c19e53dbe1bc

.Lcurve25519_x25519base_edwards25519_8g_local_target:
curve25519_x25519base_edwards25519_8g:

        .quad 0x331d086e0d9abcaa
        .quad 0x1e23c96d311a10c9
        .quad 0x96d0f95e58c13478
        .quad 0x2f72f7384fcfcc59

        .quad 0x39a6cd1cfd7d87c9
        .quad 0x9867a0abd8ae153a
        .quad 0xa49d2a5f35986745
        .quad 0x57012940cdfe82e1

        .quad 0x5046a6532ec5544a
        .quad 0x6d674004739ff6c9
        .quad 0x9bbaa44b234a70e3
        .quad 0x5e6d8901138cf386




.Lcurve25519_x25519base_edwards25519_gtable_local_target:
curve25519_x25519base_edwards25519_gtable:



        .quad 0x7ec851ca553e2df3
        .quad 0xa71284cba64878b3
        .quad 0xe6b5e4193288d1e7
        .quad 0x4cf210ec5a9a8883
        .quad 0x322d04a52d9021f6
        .quad 0xb9c19f3375c6bf9c
        .quad 0x587a3a4342d20b09
        .quad 0x143b1cf8aa64fe61
        .quad 0x9f867c7d968acaab
        .quad 0x5f54258e27092729
        .quad 0xd0a7d34bea180975
        .quad 0x21b546a3374126e1



        .quad 0xa94ff858a2888343
        .quad 0xce0ed4565313ed3c
        .quad 0xf55c3dcfb5bf34fa
        .quad 0x0a653ca5c9eab371
        .quad 0x490a7a45d185218f
        .quad 0x9a15377846049335
        .quad 0x0060ea09cc31e1f6
        .quad 0x7e041577f86ee965
        .quad 0x66b2a496ce5b67f3
        .quad 0xff5492d8bd569796
        .quad 0x503cec294a592cd0
        .quad 0x566943650813acb2



        .quad 0xb818db0c26620798
        .quad 0x5d5c31d9606e354a
        .quad 0x0982fa4f00a8cdc7
        .quad 0x17e12bcd4653e2d4
        .quad 0x5672f9eb1dabb69d
        .quad 0xba70b535afe853fc
        .quad 0x47ac0f752796d66d
        .quad 0x32a5351794117275
        .quad 0xd3a644a6df648437
        .quad 0x703b6559880fbfdd
        .quad 0xcb852540ad3a1aa5
        .quad 0x0900b3f78e4c6468



        .quad 0x0a851b9f679d651b
        .quad 0xe108cb61033342f2
        .quad 0xd601f57fe88b30a3
        .quad 0x371f3acaed2dd714
        .quad 0xed280fbec816ad31
        .quad 0x52d9595bd8e6efe3
        .quad 0x0fe71772f6c623f5
        .quad 0x4314030b051e293c
        .quad 0xd560005efbf0bcad
        .quad 0x8eb70f2ed1870c5e
        .quad 0x201f9033d084e6a0
        .quad 0x4c3a5ae1ce7b6670



        .quad 0x4138a434dcb8fa95
        .quad 0x870cf67d6c96840b
        .quad 0xde388574297be82c
        .quad 0x7c814db27262a55a
        .quad 0xbaf875e4c93da0dd
        .quad 0xb93282a771b9294d
        .quad 0x80d63fb7f4c6c460
        .quad 0x6de9c73dea66c181
        .quad 0x478904d5a04df8f2
        .quad 0xfafbae4ab10142d3
        .quad 0xf6c8ac63555d0998
        .quad 0x5aac4a412f90b104



        .quad 0xc64f326b3ac92908
        .quad 0x5551b282e663e1e0
        .quad 0x476b35f54a1a4b83
        .quad 0x1b9da3fe189f68c2
        .quad 0x603a0d0abd7f5134
        .quad 0x8089c932e1d3ae46
        .quad 0xdf2591398798bd63
        .quad 0x1c145cd274ba0235
        .quad 0x32e8386475f3d743
        .quad 0x365b8baf6ae5d9ef
        .quad 0x825238b6385b681e
        .quad 0x234929c1167d65e1



        .quad 0x984decaba077ade8
        .quad 0x383f77ad19eb389d
        .quad 0xc7ec6b7e2954d794
        .quad 0x59c77b3aeb7c3a7a
        .quad 0x48145cc21d099fcf
        .quad 0x4535c192cc28d7e5
        .quad 0x80e7c1e548247e01
        .quad 0x4a5f28743b2973ee
        .quad 0xd3add725225ccf62
        .quad 0x911a3381b2152c5d
        .quad 0xd8b39fad5b08f87d
        .quad 0x6f05606b4799fe3b



        .quad 0x9ffe9e92177ba962
        .quad 0x98aee71d0de5cae1
        .quad 0x3ff4ae942d831044
        .quad 0x714de12e58533ac8
        .quad 0x5b433149f91b6483
        .quad 0xadb5dc655a2cbf62
        .quad 0x87fa8412632827b3
        .quad 0x60895e91ab49f8d8
        .quad 0xe9ecf2ed0cf86c18
        .quad 0xb46d06120735dfd4
        .quad 0xbc9da09804b96be7
        .quad 0x73e2e62fd96dc26b



        .quad 0xed5b635449aa515e
        .quad 0xa865c49f0bc6823a
        .quad 0x850c1fe95b42d1c4
        .quad 0x30d76d6f03d315b9
        .quad 0x2eccdd0e632f9c1d
        .quad 0x51d0b69676893115
        .quad 0x52dfb76ba8637a58
        .quad 0x6dd37d49a00eef39
        .quad 0x6c4444172106e4c7
        .quad 0xfb53d680928d7f69
        .quad 0xb4739ea4694d3f26
        .quad 0x10c697112e864bb0



        .quad 0x6493c4277dbe5fde
        .quad 0x265d4fad19ad7ea2
        .quad 0x0e00dfc846304590
        .quad 0x25e61cabed66fe09
        .quad 0x0ca62aa08358c805
        .quad 0x6a3d4ae37a204247
        .quad 0x7464d3a63b11eddc
        .quad 0x03bf9baf550806ef
        .quad 0x3f13e128cc586604
        .quad 0x6f5873ecb459747e
        .quad 0xa0b63dedcc1268f5
        .quad 0x566d78634586e22c



        .quad 0x1637a49f9cc10834
        .quad 0xbc8e56d5a89bc451
        .quad 0x1cb5ec0f7f7fd2db
        .quad 0x33975bca5ecc35d9
        .quad 0xa1054285c65a2fd0
        .quad 0x6c64112af31667c3
        .quad 0x680ae240731aee58
        .quad 0x14fba5f34793b22a
        .quad 0x3cd746166985f7d4
        .quad 0x593e5e84c9c80057
        .quad 0x2fc3f2b67b61131e
        .quad 0x14829cea83fc526c



        .quad 0xff437b8497dd95c2
        .quad 0x6c744e30aa4eb5a7
        .quad 0x9e0c5d613c85e88b
        .quad 0x2fd9c71e5f758173
        .quad 0x21e70b2f4e71ecb8
        .quad 0xe656ddb940a477e3
        .quad 0xbf6556cece1d4f80
        .quad 0x05fc3bc4535d7b7e
        .quad 0x24b8b3ae52afdedd
        .quad 0x3495638ced3b30cf
        .quad 0x33a4bc83a9be8195
        .quad 0x373767475c651f04



        .quad 0x2fba99fd40d1add9
        .quad 0xb307166f96f4d027
        .quad 0x4363f05215f03bae
        .quad 0x1fbea56c3b18f999
        .quad 0x634095cb14246590
        .quad 0xef12144016c15535
        .quad 0x9e38140c8910bc60
        .quad 0x6bf5905730907c8c
        .quad 0x0fa778f1e1415b8a
        .quad 0x06409ff7bac3a77e
        .quad 0x6f52d7b89aa29a50
        .quad 0x02521cf67a635a56



        .quad 0x513fee0b0a9d5294
        .quad 0x8f98e75c0fdf5a66
        .quad 0xd4618688bfe107ce
        .quad 0x3fa00a7e71382ced
        .quad 0xb1146720772f5ee4
        .quad 0xe8f894b196079ace
        .quad 0x4af8224d00ac824a
        .quad 0x001753d9f7cd6cc4
        .quad 0x3c69232d963ddb34
        .quad 0x1dde87dab4973858
        .quad 0xaad7d1f9a091f285
        .quad 0x12b5fe2fa048edb6



        .quad 0x71f0fbc496fce34d
        .quad 0x73b9826badf35bed
        .quad 0xd2047261ff28c561
        .quad 0x749b76f96fb1206f
        .quad 0xdf2b7c26ad6f1e92
        .quad 0x4b66d323504b8913
        .quad 0x8c409dc0751c8bc3
        .quad 0x6f7e93c20796c7b8
        .quad 0x1f5af604aea6ae05
        .quad 0xc12351f1bee49c99
        .quad 0x61a808b5eeff6b66
        .quad 0x0fcec10f01e02151



        .quad 0x644d58a649fe1e44
        .quad 0x21fcaea231ad777e
        .quad 0x02441c5a887fd0d2
        .quad 0x4901aa7183c511f3
        .quad 0x3df2d29dc4244e45
        .quad 0x2b020e7493d8de0a
        .quad 0x6cc8067e820c214d
        .quad 0x413779166feab90a
        .quad 0x08b1b7548c1af8f0
        .quad 0xce0f7a7c246299b4
        .quad 0xf760b0f91e06d939
        .quad 0x41bb887b726d1213



        .quad 0x9267806c567c49d8
        .quad 0x066d04ccca791e6a
        .quad 0xa69f5645e3cc394b
        .quad 0x5c95b686a0788cd2
        .quad 0x97d980e0aa39f7d2
        .quad 0x35d0384252c6b51c
        .quad 0x7d43f49307cd55aa
        .quad 0x56bd36cfb78ac362
        .quad 0x2ac519c10d14a954
        .quad 0xeaf474b494b5fa90
        .quad 0xe6af8382a9f87a5a
        .quad 0x0dea6db1879be094



        .quad 0xaa66bf547344e5ab
        .quad 0xda1258888f1b4309
        .quad 0x5e87d2b3fd564b2f
        .quad 0x5b2c78885483b1dd
        .quad 0x15baeb74d6a8797a
        .quad 0x7ef55cf1fac41732
        .quad 0x29001f5a3c8b05c5
        .quad 0x0ad7cc8752eaccfb
        .quad 0x52151362793408cf
        .quad 0xeb0f170319963d94
        .quad 0xa833b2fa883d9466
        .quad 0x093a7fa775003c78



        .quad 0xe5107de63a16d7be
        .quad 0xa377ffdc9af332cf
        .quad 0x70d5bf18440b677f
        .quad 0x6a252b19a4a31403
        .quad 0xb8e9604460a91286
        .quad 0x7f3fd8047778d3de
        .quad 0x67d01e31bf8a5e2d
        .quad 0x7b038a06c27b653e
        .quad 0x9ed919d5d36990f3
        .quad 0x5213aebbdb4eb9f2
        .quad 0xc708ea054cb99135
        .quad 0x58ded57f72260e56



        .quad 0x78e79dade9413d77
        .quad 0xf257f9d59729e67d
        .quad 0x59db910ee37aa7e6
        .quad 0x6aa11b5bbb9e039c
        .quad 0xda6d53265b0fd48b
        .quad 0x8960823193bfa988
        .quad 0xd78ac93261d57e28
        .quad 0x79f2942d3a5c8143
        .quad 0x97da2f25b6c88de9
        .quad 0x251ba7eaacf20169
        .quad 0x09b44f87ef4eb4e4
        .quad 0x7d90ab1bbc6a7da5



        .quad 0x9acca683a7016bfe
        .quad 0x90505f4df2c50b6d
        .quad 0x6b610d5fcce435aa
        .quad 0x19a10d446198ff96
        .quad 0x1a07a3f496b3c397
        .quad 0x11ceaa188f4e2532
        .quad 0x7d9498d5a7751bf0
        .quad 0x19ed161f508dd8a0
        .quad 0x560a2cd687dce6ca
        .quad 0x7f3568c48664cf4d
        .quad 0x8741e95222803a38
        .quad 0x483bdab1595653fc



        .quad 0xfa780f148734fa49
        .quad 0x106f0b70360534e0
        .quad 0x2210776fe3e307bd
        .quad 0x3286c109dde6a0fe
        .quad 0xd6cf4d0ab4da80f6
        .quad 0x82483e45f8307fe0
        .quad 0x05005269ae6f9da4
        .quad 0x1c7052909cf7877a
        .quad 0x32ee7de2874e98d4
        .quad 0x14c362e9b97e0c60
        .quad 0x5781dcde6a60a38a
        .quad 0x217dd5eaaa7aa840



        .quad 0x9db7c4d0248e1eb0
        .quad 0xe07697e14d74bf52
        .quad 0x1e6a9b173c562354
        .quad 0x7fa7c21f795a4965
        .quad 0x8bdf1fb9be8c0ec8
        .quad 0x00bae7f8e30a0282
        .quad 0x4963991dad6c4f6c
        .quad 0x07058a6e5df6f60a
        .quad 0xe9eb02c4db31f67f
        .quad 0xed25fd8910bcfb2b
        .quad 0x46c8131f5c5cddb4
        .quad 0x33b21c13a0cb9bce



        .quad 0x360692f8087d8e31
        .quad 0xf4dcc637d27163f7
        .quad 0x25a4e62065ea5963
        .quad 0x659bf72e5ac160d9
        .quad 0x9aafb9b05ee38c5b
        .quad 0xbf9d2d4e071a13c7
        .quad 0x8eee6e6de933290a
        .quad 0x1c3bab17ae109717
        .quad 0x1c9ab216c7cab7b0
        .quad 0x7d65d37407bbc3cc
        .quad 0x52744750504a58d5
        .quad 0x09f2606b131a2990



        .quad 0x40e87d44744346be
        .quad 0x1d48dad415b52b25
        .quad 0x7c3a8a18a13b603e
        .quad 0x4eb728c12fcdbdf7
        .quad 0x7e234c597c6691ae
        .quad 0x64889d3d0a85b4c8
        .quad 0xdae2c90c354afae7
        .quad 0x0a871e070c6a9e1d
        .quad 0x3301b5994bbc8989
        .quad 0x736bae3a5bdd4260
        .quad 0x0d61ade219d59e3c
        .quad 0x3ee7300f2685d464



        .quad 0xf5d255e49e7dd6b7
        .quad 0x8016115c610b1eac
        .quad 0x3c99975d92e187ca
        .quad 0x13815762979125c2
        .quad 0x43fa7947841e7518
        .quad 0xe5c6fa59639c46d7
        .quad 0xa1065e1de3052b74
        .quad 0x7d47c6a2cfb89030
        .quad 0x3fdad0148ef0d6e0
        .quad 0x9d3e749a91546f3c
        .quad 0x71ec621026bb8157
        .quad 0x148cf58d34c9ec80



        .quad 0x46a492f67934f027
        .quad 0x469984bef6840aa9
        .quad 0x5ca1bc2a89611854
        .quad 0x3ff2fa1ebd5dbbd4
        .quad 0xe2572f7d9ae4756d
        .quad 0x56c345bb88f3487f
        .quad 0x9fd10b6d6960a88d
        .quad 0x278febad4eaea1b9
        .quad 0xb1aa681f8c933966
        .quad 0x8c21949c20290c98
        .quad 0x39115291219d3c52
        .quad 0x4104dd02fe9c677b



        .quad 0x72b2bf5e1124422a
        .quad 0xa1fa0c3398a33ab5
        .quad 0x94cb6101fa52b666
        .quad 0x2c863b00afaf53d5
        .quad 0x81214e06db096ab8
        .quad 0x21a8b6c90ce44f35
        .quad 0x6524c12a409e2af5
        .quad 0x0165b5a48efca481
        .quad 0xf190a474a0846a76
        .quad 0x12eff984cd2f7cc0
        .quad 0x695e290658aa2b8f
        .quad 0x591b67d9bffec8b8



        .quad 0x312f0d1c80b49bfa
        .quad 0x5979515eabf3ec8a
        .quad 0x727033c09ef01c88
        .quad 0x3de02ec7ca8f7bcb
        .quad 0x99b9b3719f18b55d
        .quad 0xe465e5faa18c641e
        .quad 0x61081136c29f05ed
        .quad 0x489b4f867030128b
        .quad 0xd232102d3aeb92ef
        .quad 0xe16253b46116a861
        .quad 0x3d7eabe7190baa24
        .quad 0x49f5fbba496cbebf



        .quad 0x30949a108a5bcfd4
        .quad 0xdc40dd70bc6473eb
        .quad 0x92c294c1307c0d1c
        .quad 0x5604a86dcbfa6e74
        .quad 0x155d628c1e9c572e
        .quad 0x8a4d86acc5884741
        .quad 0x91a352f6515763eb
        .quad 0x06a1a6c28867515b
        .quad 0x7288d1d47c1764b6
        .quad 0x72541140e0418b51
        .quad 0x9f031a6018acf6d1
        .quad 0x20989e89fe2742c6



        .quad 0x499777fd3a2dcc7f
        .quad 0x32857c2ca54fd892
        .quad 0xa279d864d207e3a0
        .quad 0x0403ed1d0ca67e29
        .quad 0x1674278b85eaec2e
        .quad 0x5621dc077acb2bdf
        .quad 0x640a4c1661cbf45a
        .quad 0x730b9950f70595d3
        .quad 0xc94b2d35874ec552
        .quad 0xc5e6c8cf98246f8d
        .quad 0xf7cb46fa16c035ce
        .quad 0x5bd7454308303dcc



        .quad 0x7f9ad19528b24cc2
        .quad 0x7f6b54656335c181
        .quad 0x66b8b66e4fc07236
        .quad 0x133a78007380ad83
        .quad 0x85c4932115e7792a
        .quad 0xc64c89a2bdcdddc9
        .quad 0x9d1e3da8ada3d762
        .quad 0x5bb7db123067f82c
        .quad 0x0961f467c6ca62be
        .quad 0x04ec21d6211952ee
        .quad 0x182360779bd54770
        .quad 0x740dca6d58f0e0d2



        .quad 0x50b70bf5d3f0af0b
        .quad 0x4feaf48ae32e71f7
        .quad 0x60e84ed3a55bbd34
        .quad 0x00ed489b3f50d1ed
        .quad 0x3906c72aed261ae5
        .quad 0x9ab68fd988e100f7
        .quad 0xf5e9059af3360197
        .quad 0x0e53dc78bf2b6d47
        .quad 0xb90829bf7971877a
        .quad 0x5e4444636d17e631
        .quad 0x4d05c52e18276893
        .quad 0x27632d9a5a4a4af5



        .quad 0xd11ff05154b260ce
        .quad 0xd86dc38e72f95270
        .quad 0x601fcd0d267cc138
        .quad 0x2b67916429e90ccd
        .quad 0xa98285d187eaffdb
        .quad 0xa5b4fbbbd8d0a864
        .quad 0xb658f27f022663f7
        .quad 0x3bbc2b22d99ce282
        .quad 0xb917c952583c0a58
        .quad 0x653ff9b80fe4c6f3
        .quad 0x9b0da7d7bcdf3c0c
        .quad 0x43a0eeb6ab54d60e



        .quad 0x396966a46d4a5487
        .quad 0xf811a18aac2bb3ba
        .quad 0x66e4685b5628b26b
        .quad 0x70a477029d929b92
        .quad 0x3ac6322357875fe8
        .quad 0xd9d4f4ecf5fbcb8f
        .quad 0x8dee8493382bb620
        .quad 0x50c5eaa14c799fdc
        .quad 0xdd0edc8bd6f2fb3c
        .quad 0x54c63aa79cc7b7a0
        .quad 0xae0b032b2c8d9f1a
        .quad 0x6f9ce107602967fb



        .quad 0xad1054b1cde1c22a
        .quad 0xc4a8e90248eb32df
        .quad 0x5f3e7b33accdc0ea
        .quad 0x72364713fc79963e
        .quad 0x139693063520e0b5
        .quad 0x437fcf7c88ea03fe
        .quad 0xf7d4c40bd3c959bc
        .quad 0x699154d1f893ded9
        .quad 0x315d5c75b4b27526
        .quad 0xcccb842d0236daa5
        .quad 0x22f0c8a3345fee8e
        .quad 0x73975a617d39dbed



        .quad 0xe4024df96375da10
        .quad 0x78d3251a1830c870
        .quad 0x902b1948658cd91c
        .quad 0x7e18b10b29b7438a
        .quad 0x6f37f392f4433e46
        .quad 0x0e19b9a11f566b18
        .quad 0x220fb78a1fd1d662
        .quad 0x362a4258a381c94d
        .quad 0x9071d9132b6beb2f
        .quad 0x0f26e9ad28418247
        .quad 0xeab91ec9bdec925d
        .quad 0x4be65bc8f48af2de



        .quad 0x78487feba36e7028
        .quad 0x5f3f13001dd8ce34
        .quad 0x934fb12d4b30c489
        .quad 0x056c244d397f0a2b
        .quad 0x1d50fba257c26234
        .quad 0x7bd4823adeb0678b
        .quad 0xc2b0dc6ea6538af5
        .quad 0x5665eec6351da73e
        .quad 0xdb3ee00943bfb210
        .quad 0x4972018720800ac2
        .quad 0x26ab5d6173bd8667
        .quad 0x20b209c2ab204938



        .quad 0x549e342ac07fb34b
        .quad 0x02d8220821373d93
        .quad 0xbc262d70acd1f567
        .quad 0x7a92c9fdfbcac784
        .quad 0x1fcca94516bd3289
        .quad 0x448d65aa41420428
        .quad 0x59c3b7b216a55d62
        .quad 0x49992cc64e612cd8
        .quad 0x65bd1bea70f801de
        .quad 0x1befb7c0fe49e28a
        .quad 0xa86306cdb1b2ae4a
        .quad 0x3b7ac0cd265c2a09



        .quad 0x822bee438c01bcec
        .quad 0x530cb525c0fbc73b
        .quad 0x48519034c1953fe9
        .quad 0x265cc261e09a0f5b
        .quad 0xf0d54e4f22ed39a7
        .quad 0xa2aae91e5608150a
        .quad 0xf421b2e9eddae875
        .quad 0x31bc531d6b7de992
        .quad 0xdf3d134da980f971
        .quad 0x7a4fb8d1221a22a7
        .quad 0x3df7d42035aad6d8
        .quad 0x2a14edcc6a1a125e



        .quad 0xdf48ee0752cfce4e
        .quad 0xc3fffaf306ec08b7
        .quad 0x05710b2ab95459c4
        .quad 0x161d25fa963ea38d
        .quad 0x231a8c570478433c
        .quad 0xb7b5270ec281439d
        .quad 0xdbaa99eae3d9079f
        .quad 0x2c03f5256c2b03d9
        .quad 0x790f18757b53a47d
        .quad 0x307b0130cf0c5879
        .quad 0x31903d77257ef7f9
        .quad 0x699468bdbd96bbaf



        .quad 0xbd1f2f46f4dafecf
        .quad 0x7cef0114a47fd6f7
        .quad 0xd31ffdda4a47b37f
        .quad 0x525219a473905785
        .quad 0xd8dd3de66aa91948
        .quad 0x485064c22fc0d2cc
        .quad 0x9b48246634fdea2f
        .quad 0x293e1c4e6c4a2e3a
        .quad 0x376e134b925112e1
        .quad 0x703778b5dca15da0
        .quad 0xb04589af461c3111
        .quad 0x5b605c447f032823



        .quad 0xb965805920c47c89
        .quad 0xe7f0100c923b8fcc
        .quad 0x0001256502e2ef77
        .quad 0x24a76dcea8aeb3ee
        .quad 0x3be9fec6f0e7f04c
        .quad 0x866a579e75e34962
        .quad 0x5542ef161e1de61a
        .quad 0x2f12fef4cc5abdd5
        .quad 0x0a4522b2dfc0c740
        .quad 0x10d06e7f40c9a407
        .quad 0xc6cf144178cff668
        .quad 0x5e607b2518a43790



        .quad 0x58b31d8f6cdf1818
        .quad 0x35cfa74fc36258a2
        .quad 0xe1b3ff4f66e61d6e
        .quad 0x5067acab6ccdd5f7
        .quad 0xa02c431ca596cf14
        .quad 0xe3c42d40aed3e400
        .quad 0xd24526802e0f26db
        .quad 0x201f33139e457068
        .quad 0xfd527f6b08039d51
        .quad 0x18b14964017c0006
        .quad 0xd5220eb02e25a4a8
        .quad 0x397cba8862460375



        .quad 0x30c13093f05959b2
        .quad 0xe23aa18de9a97976
        .quad 0x222fd491721d5e26
        .quad 0x2339d320766e6c3a
        .quad 0x7815c3fbc81379e7
        .quad 0xa6619420dde12af1
        .quad 0xffa9c0f885a8fdd5
        .quad 0x771b4022c1e1c252
        .quad 0xd87dd986513a2fa7
        .quad 0xf5ac9b71f9d4cf08
        .quad 0xd06bc31b1ea283b3
        .quad 0x331a189219971a76



        .quad 0xf5166f45fb4f80c6
        .quad 0x9c36c7de61c775cf
        .quad 0xe3d4e81b9041d91c
        .quad 0x31167c6b83bdfe21
        .quad 0x26512f3a9d7572af
        .quad 0x5bcbe28868074a9e
        .quad 0x84edc1c11180f7c4
        .quad 0x1ac9619ff649a67b
        .quad 0xf22b3842524b1068
        .quad 0x5068343bee9ce987
        .quad 0xfc9d71844a6250c8
        .quad 0x612436341f08b111



        .quad 0xd99d41db874e898d
        .quad 0x09fea5f16c07dc20
        .quad 0x793d2c67d00f9bbc
        .quad 0x46ebe2309e5eff40
        .quad 0x8b6349e31a2d2638
        .quad 0x9ddfb7009bd3fd35
        .quad 0x7f8bf1b8a3a06ba4
        .quad 0x1522aa3178d90445
        .quad 0x2c382f5369614938
        .quad 0xdafe409ab72d6d10
        .quad 0xe8c83391b646f227
        .quad 0x45fe70f50524306c



        .quad 0xda4875a6960c0b8c
        .quad 0x5b68d076ef0e2f20
        .quad 0x07fb51cf3d0b8fd4
        .quad 0x428d1623a0e392d4
        .quad 0x62f24920c8951491
        .quad 0x05f007c83f630ca2
        .quad 0x6fbb45d2f5c9d4b8
        .quad 0x16619f6db57a2245
        .quad 0x084f4a4401a308fd
        .quad 0xa82219c376a5caac
        .quad 0xdeb8de4643d1bc7d
        .quad 0x1d81592d60bd38c6



        .quad 0xd833d7beec2a4c38
        .quad 0x2c9162830acc20ed
        .quad 0xe93a47aa92df7581
        .quad 0x702d67a3333c4a81
        .quad 0x3a4a369a2f89c8a1
        .quad 0x63137a1d7c8de80d
        .quad 0xbcac008a78eda015
        .quad 0x2cb8b3a5b483b03f
        .quad 0x36e417cbcb1b90a1
        .quad 0x33b3ddaa7f11794e
        .quad 0x3f510808885bc607
        .quad 0x24141dc0e6a8020d



        .quad 0x59f73c773fefee9d
        .quad 0xb3f1ef89c1cf989d
        .quad 0xe35dfb42e02e545f
        .quad 0x5766120b47a1b47c
        .quad 0x91925dccbd83157d
        .quad 0x3ca1205322cc8094
        .quad 0x28e57f183f90d6e4
        .quad 0x1a4714cede2e767b
        .quad 0xdb20ba0fb8b6b7ff
        .quad 0xb732c3b677511fa1
        .quad 0xa92b51c099f02d89
        .quad 0x4f3875ad489ca5f1



        .quad 0xc7fc762f4932ab22
        .quad 0x7ac0edf72f4c3c1b
        .quad 0x5f6b55aa9aa895e8
        .quad 0x3680274dad0a0081
        .quad 0x79ed13f6ee73eec0
        .quad 0xa5c6526d69110bb1
        .quad 0xe48928c38603860c
        .quad 0x722a1446fd7059f5
        .quad 0xd0959fe9a8cf8819
        .quad 0xd0a995508475a99c
        .quad 0x6eac173320b09cc5
        .quad 0x628ecf04331b1095



        .quad 0x98bcb118a9d0ddbc
        .quad 0xee449e3408b4802b
        .quad 0x87089226b8a6b104
        .quad 0x685f349a45c7915d
        .quad 0x9b41acf85c74ccf1
        .quad 0xb673318108265251
        .quad 0x99c92aed11adb147
        .quad 0x7a47d70d34ecb40f
        .quad 0x60a0c4cbcc43a4f5
        .quad 0x775c66ca3677bea9
        .quad 0xa17aa1752ff8f5ed
        .quad 0x11ded9020e01fdc0



        .quad 0x890e7809caefe704
        .quad 0x8728296de30e8c6c
        .quad 0x4c5cd2a392aeb1c9
        .quad 0x194263d15771531f
        .quad 0x471f95b03bea93b7
        .quad 0x0552d7d43313abd3
        .quad 0xbd9370e2e17e3f7b
        .quad 0x7b120f1db20e5bec
        .quad 0x17d2fb3d86502d7a
        .quad 0xb564d84450a69352
        .quad 0x7da962c8a60ed75d
        .quad 0x00d0f85b318736aa



        .quad 0x978b142e777c84fd
        .quad 0xf402644705a8c062
        .quad 0xa67ad51be7e612c7
        .quad 0x2f7b459698dd6a33
        .quad 0xa6753c1efd7621c1
        .quad 0x69c0b4a7445671f5
        .quad 0x971f527405b23c11
        .quad 0x387bc74851a8c7cd
        .quad 0x81894b4d4a52a9a8
        .quad 0xadd93e12f6b8832f
        .quad 0x184d8548b61bd638
        .quad 0x3f1c62dbd6c9f6cd



        .quad 0x2e8f1f0091910c1f
        .quad 0xa4df4fe0bff2e12c
        .quad 0x60c6560aee927438
        .quad 0x6338283facefc8fa
        .quad 0x3fad3e40148f693d
        .quad 0x052656e194eb9a72
        .quad 0x2f4dcbfd184f4e2f
        .quad 0x406f8db1c482e18b
        .quad 0x9e630d2c7f191ee4
        .quad 0x4fbf8301bc3ff670
        .quad 0x787d8e4e7afb73c4
        .quad 0x50d83d5be8f58fa5



        .quad 0x85683916c11a1897
        .quad 0x2d69a4efe506d008
        .quad 0x39af1378f664bd01
        .quad 0x65942131361517c6
        .quad 0xc0accf90b4d3b66d
        .quad 0xa7059de561732e60
        .quad 0x033d1f7870c6b0ba
        .quad 0x584161cd26d946e4
        .quad 0xbbf2b1a072d27ca2
        .quad 0xbf393c59fbdec704
        .quad 0xe98dbbcee262b81e
        .quad 0x02eebd0b3029b589



        .quad 0x61368756a60dac5f
        .quad 0x17e02f6aebabdc57
        .quad 0x7f193f2d4cce0f7d
        .quad 0x20234a7789ecdcf0
        .quad 0x8765b69f7b85c5e8
        .quad 0x6ff0678bd168bab2
        .quad 0x3a70e77c1d330f9b
        .quad 0x3a5f6d51b0af8e7c
        .quad 0x76d20db67178b252
        .quad 0x071c34f9d51ed160
        .quad 0xf62a4a20b3e41170
        .quad 0x7cd682353cffe366



        .quad 0x0be1a45bd887fab6
        .quad 0x2a846a32ba403b6e
        .quad 0xd9921012e96e6000
        .quad 0x2838c8863bdc0943
        .quad 0xa665cd6068acf4f3
        .quad 0x42d92d183cd7e3d3
        .quad 0x5759389d336025d9
        .quad 0x3ef0253b2b2cd8ff
        .quad 0xd16bb0cf4a465030
        .quad 0xfa496b4115c577ab
        .quad 0x82cfae8af4ab419d
        .quad 0x21dcb8a606a82812



        .quad 0x5c6004468c9d9fc8
        .quad 0x2540096ed42aa3cb
        .quad 0x125b4d4c12ee2f9c
        .quad 0x0bc3d08194a31dab
        .quad 0x9a8d00fabe7731ba
        .quad 0x8203607e629e1889
        .quad 0xb2cc023743f3d97f
        .quad 0x5d840dbf6c6f678b
        .quad 0x706e380d309fe18b
        .quad 0x6eb02da6b9e165c7
        .quad 0x57bbba997dae20ab
        .quad 0x3a4276232ac196dd



        .quad 0x4b42432c8a7084fa
        .quad 0x898a19e3dfb9e545
        .quad 0xbe9f00219c58e45d
        .quad 0x1ff177cea16debd1
        .quad 0x3bf8c172db447ecb
        .quad 0x5fcfc41fc6282dbd
        .quad 0x80acffc075aa15fe
        .quad 0x0770c9e824e1a9f9
        .quad 0xcf61d99a45b5b5fd
        .quad 0x860984e91b3a7924
        .quad 0xe7300919303e3e89
        .quad 0x39f264fd41500b1e



        .quad 0xa7ad3417dbe7e29c
        .quad 0xbd94376a2b9c139c
        .quad 0xa0e91b8e93597ba9
        .quad 0x1712d73468889840
        .quad 0xd19b4aabfe097be1
        .quad 0xa46dfce1dfe01929
        .quad 0xc3c908942ca6f1ff
        .quad 0x65c621272c35f14e
        .quad 0xe72b89f8ce3193dd
        .quad 0x4d103356a125c0bb
        .quad 0x0419a93d2e1cfe83
        .quad 0x22f9800ab19ce272



        .quad 0x605a368a3e9ef8cb
        .quad 0xe3e9c022a5504715
        .quad 0x553d48b05f24248f
        .quad 0x13f416cd647626e5
        .quad 0x42029fdd9a6efdac
        .quad 0xb912cebe34a54941
        .quad 0x640f64b987bdf37b
        .quad 0x4171a4d38598cab4
        .quad 0xfa2758aa99c94c8c
        .quad 0x23006f6fb000b807
        .quad 0xfbd291ddadda5392
        .quad 0x508214fa574bd1ab



        .quad 0xc20269153ed6fe4b
        .quad 0xa65a6739511d77c4
        .quad 0xcbde26462c14af94
        .quad 0x22f960ec6faba74b
        .quad 0x461a15bb53d003d6
        .quad 0xb2102888bcf3c965
        .quad 0x27c576756c683a5a
        .quad 0x3a7758a4c86cb447
        .quad 0x548111f693ae5076
        .quad 0x1dae21df1dfd54a6
        .quad 0x12248c90f3115e65
        .quad 0x5d9fd15f8de7f494



        .quad 0x031408d36d63727f
        .quad 0x6a379aefd7c7b533
        .quad 0xa9e18fc5ccaee24b
        .quad 0x332f35914f8fbed3
        .quad 0x3f244d2aeed7521e
        .quad 0x8e3a9028432e9615
        .quad 0xe164ba772e9c16d4
        .quad 0x3bc187fa47eb98d8
        .quad 0x6d470115ea86c20c
        .quad 0x998ab7cb6c46d125
        .quad 0xd77832b53a660188
        .quad 0x450d81ce906fba03



        .quad 0xf8ae4d2ad8453902
        .quad 0x7018058ee8db2d1d
        .quad 0xaab3995fc7d2c11e
        .quad 0x53b16d2324ccca79
        .quad 0x23264d66b2cae0b5
        .quad 0x7dbaed33ebca6576
        .quad 0x030ebed6f0d24ac8
        .quad 0x2a887f78f7635510
        .quad 0x2a23b9e75c012d4f
        .quad 0x0c974651cae1f2ea
        .quad 0x2fb63273675d70ca
        .quad 0x0ba7250b864403f5



        .quad 0xbb0d18fd029c6421
        .quad 0xbc2d142189298f02
        .quad 0x8347f8e68b250e96
        .quad 0x7b9f2fe8032d71c9
        .quad 0xdd63589386f86d9c
        .quad 0x61699176e13a85a4
        .quad 0x2e5111954eaa7d57
        .quad 0x32c21b57fb60bdfb
        .quad 0xd87823cd319e0780
        .quad 0xefc4cfc1897775c5
        .quad 0x4854fb129a0ab3f7
        .quad 0x12c49d417238c371



        .quad 0x0950b533ffe83769
        .quad 0x21861c1d8e1d6bd1
        .quad 0xf022d8381302e510
        .quad 0x2509200c6391cab4
        .quad 0x09b3a01783799542
        .quad 0x626dd08faad5ee3f
        .quad 0xba00bceeeb70149f
        .quad 0x1421b246a0a444c9
        .quad 0x4aa43a8e8c24a7c7
        .quad 0x04c1f540d8f05ef5
        .quad 0xadba5e0c0b3eb9dc
        .quad 0x2ab5504448a49ce3



        .quad 0x2ed227266f0f5dec
        .quad 0x9824ee415ed50824
        .quad 0x807bec7c9468d415
        .quad 0x7093bae1b521e23f
        .quad 0xdc07ac631c5d3afa
        .quad 0x58615171f9df8c6c
        .quad 0x72a079d89d73e2b0
        .quad 0x7301f4ceb4eae15d
        .quad 0x6409e759d6722c41
        .quad 0xa674e1cf72bf729b
        .quad 0xbc0a24eb3c21e569
        .quad 0x390167d24ebacb23



        .quad 0x27f58e3bba353f1c
        .quad 0x4c47764dbf6a4361
        .quad 0xafbbc4e56e562650
        .quad 0x07db2ee6aae1a45d
        .quad 0xd7bb054ba2f2120b
        .quad 0xe2b9ceaeb10589b7
        .quad 0x3fe8bac8f3c0edbe
        .quad 0x4cbd40767112cb69
        .quad 0x0b603cc029c58176
        .quad 0x5988e3825cb15d61
        .quad 0x2bb61413dcf0ad8d
        .quad 0x7b8eec6c74183287



        .quad 0xe4ca40782cd27cb0
        .quad 0xdaf9c323fbe967bd
        .quad 0xb29bd34a8ad41e9e
        .quad 0x72810497626ede4d
        .quad 0x32fee570fc386b73
        .quad 0xda8b0141da3a8cc7
        .quad 0x975ffd0ac8968359
        .quad 0x6ee809a1b132a855
        .quad 0x9444bb31fcfd863a
        .quad 0x2fe3690a3e4e48c5
        .quad 0xdc29c867d088fa25
        .quad 0x13bd1e38d173292e



        .quad 0xd32b4cd8696149b5
        .quad 0xe55937d781d8aab7
        .quad 0x0bcb2127ae122b94
        .quad 0x41e86fcfb14099b0
        .quad 0x223fb5cf1dfac521
        .quad 0x325c25316f554450
        .quad 0x030b98d7659177ac
        .quad 0x1ed018b64f88a4bd
        .quad 0x3630dfa1b802a6b0
        .quad 0x880f874742ad3bd5
        .quad 0x0af90d6ceec5a4d4
        .quad 0x746a247a37cdc5d9



        .quad 0xd531b8bd2b7b9af6
        .quad 0x5005093537fc5b51
        .quad 0x232fcf25c593546d
        .quad 0x20a365142bb40f49
        .quad 0x6eccd85278d941ed
        .quad 0x2254ae83d22f7843
        .quad 0xc522d02e7bbfcdb7
        .quad 0x681e3351bff0e4e2
        .quad 0x8b64b59d83034f45
        .quad 0x2f8b71f21fa20efb
        .quad 0x69249495ba6550e4
        .quad 0x539ef98e45d5472b



        .quad 0x6e7bb6a1a6205275
        .quad 0xaa4f21d7413c8e83
        .quad 0x6f56d155e88f5cb2
        .quad 0x2de25d4ba6345be1
        .quad 0xd074d8961cae743f
        .quad 0xf86d18f5ee1c63ed
        .quad 0x97bdc55be7f4ed29
        .quad 0x4cbad279663ab108
        .quad 0x80d19024a0d71fcd
        .quad 0xc525c20afb288af8
        .quad 0xb1a3974b5f3a6419
        .quad 0x7d7fbcefe2007233



        .quad 0xfaef1e6a266b2801
        .quad 0x866c68c4d5739f16
        .quad 0xf68a2fbc1b03762c
        .quad 0x5975435e87b75a8d
        .quad 0xcd7c5dc5f3c29094
        .quad 0xc781a29a2a9105ab
        .quad 0x80c61d36421c3058
        .quad 0x4f9cd196dcd8d4d7
        .quad 0x199297d86a7b3768
        .quad 0xd0d058241ad17a63
        .quad 0xba029cad5c1c0c17
        .quad 0x7ccdd084387a0307



        .quad 0xdca6422c6d260417
        .quad 0xae153d50948240bd
        .quad 0xa9c0c1b4fb68c677
        .quad 0x428bd0ed61d0cf53
        .quad 0x9b0c84186760cc93
        .quad 0xcdae007a1ab32a99
        .quad 0xa88dec86620bda18
        .quad 0x3593ca848190ca44
        .quad 0x9213189a5e849aa7
        .quad 0xd4d8c33565d8facd
        .quad 0x8c52545b53fdbbd1
        .quad 0x27398308da2d63e6



        .quad 0x42c38d28435ed413
        .quad 0xbd50f3603278ccc9
        .quad 0xbb07ab1a79da03ef
        .quad 0x269597aebe8c3355
        .quad 0xb9a10e4c0a702453
        .quad 0x0fa25866d57d1bde
        .quad 0xffb9d9b5cd27daf7
        .quad 0x572c2945492c33fd
        .quad 0xc77fc745d6cd30be
        .quad 0xe4dfe8d3e3baaefb
        .quad 0xa22c8830aa5dda0c
        .quad 0x7f985498c05bca80



        .quad 0x3849ce889f0be117
        .quad 0x8005ad1b7b54a288
        .quad 0x3da3c39f23fc921c
        .quad 0x76c2ec470a31f304
        .quad 0xd35615520fbf6363
        .quad 0x08045a45cf4dfba6
        .quad 0xeec24fbc873fa0c2
        .quad 0x30f2653cd69b12e7
        .quad 0x8a08c938aac10c85
        .quad 0x46179b60db276bcb
        .quad 0xa920c01e0e6fac70
        .quad 0x2f1273f1596473da



        .quad 0x4739fc7c8ae01e11
        .quad 0xfd5274904a6aab9f
        .quad 0x41d98a8287728f2e
        .quad 0x5d9e572ad85b69f2
        .quad 0x30488bd755a70bc0
        .quad 0x06d6b5a4f1d442e7
        .quad 0xead1a69ebc596162
        .quad 0x38ac1997edc5f784
        .quad 0x0666b517a751b13b
        .quad 0x747d06867e9b858c
        .quad 0xacacc011454dde49
        .quad 0x22dfcd9cbfe9e69c



        .quad 0x8ddbd2e0c30d0cd9
        .quad 0xad8e665facbb4333
        .quad 0x8f6b258c322a961f
        .quad 0x6b2916c05448c1c7
        .quad 0x56ec59b4103be0a1
        .quad 0x2ee3baecd259f969
        .quad 0x797cb29413f5cd32
        .quad 0x0fe9877824cde472
        .quad 0x7edb34d10aba913b
        .quad 0x4ea3cd822e6dac0e
        .quad 0x66083dff6578f815
        .quad 0x4c303f307ff00a17



        .quad 0xd30a3bd617b28c85
        .quad 0xc5d377b739773bea
        .quad 0xc6c6e78c1e6a5cbf
        .quad 0x0d61b8f78b2ab7c4
        .quad 0x29fc03580dd94500
        .quad 0xecd27aa46fbbec93
        .quad 0x130a155fc2e2a7f8
        .quad 0x416b151ab706a1d5
        .quad 0x56a8d7efe9c136b0
        .quad 0xbd07e5cd58e44b20
        .quad 0xafe62fda1b57e0ab
        .quad 0x191a2af74277e8d2



        .quad 0xd550095bab6f4985
        .quad 0x04f4cd5b4fbfaf1a
        .quad 0x9d8e2ed12a0c7540
        .quad 0x2bc24e04b2212286
        .quad 0x09d4b60b2fe09a14
        .quad 0xc384f0afdbb1747e
        .quad 0x58e2ea8978b5fd6e
        .quad 0x519ef577b5e09b0a
        .quad 0x1863d7d91124cca9
        .quad 0x7ac08145b88a708e
        .quad 0x2bcd7309857031f5
        .quad 0x62337a6e8ab8fae5



        .quad 0x4bcef17f06ffca16
        .quad 0xde06e1db692ae16a
        .quad 0x0753702d614f42b0
        .quad 0x5f6041b45b9212d0
        .quad 0xd1ab324e1b3a1273
        .quad 0x18947cf181055340
        .quad 0x3b5d9567a98c196e
        .quad 0x7fa00425802e1e68
        .quad 0x7d531574028c2705
        .quad 0x80317d69db0d75fe
        .quad 0x30fface8ef8c8ddd
        .quad 0x7e9de97bb6c3e998



        .quad 0x1558967b9e6585a3
        .quad 0x97c99ce098e98b92
        .quad 0x10af149b6eb3adad
        .quad 0x42181fe8f4d38cfa
        .quad 0xf004be62a24d40dd
        .quad 0xba0659910452d41f
        .quad 0x81c45ee162a44234
        .quad 0x4cb829d8a22266ef
        .quad 0x1dbcaa8407b86681
        .quad 0x081f001e8b26753b
        .quad 0x3cd7ce6a84048e81
        .quad 0x78af11633f25f22c



        .quad 0x8416ebd40b50babc
        .quad 0x1508722628208bee
        .quad 0xa3148fafb9c1c36d
        .quad 0x0d07daacd32d7d5d
        .quad 0x3241c00e7d65318c
        .quad 0xe6bee5dcd0e86de7
        .quad 0x118b2dc2fbc08c26
        .quad 0x680d04a7fc603dc3
        .quad 0xf9c2414a695aa3eb
        .quad 0xdaa42c4c05a68f21
        .quad 0x7c6c23987f93963e
        .quad 0x210e8cd30c3954e3



        .quad 0xac4201f210a71c06
        .quad 0x6a65e0aef3bfb021
        .quad 0xbc42c35c393632f7
        .quad 0x56ea8db1865f0742
        .quad 0x2b50f16137fe6c26
        .quad 0xe102bcd856e404d8
        .quad 0x12b0f1414c561f6b
        .quad 0x51b17bc8d028ec91
        .quad 0xfff5fb4bcf535119
        .quad 0xf4989d79df1108a0
        .quad 0xbdfcea659a3ba325
        .quad 0x18a11f1174d1a6f2



        .quad 0x407375ab3f6bba29
        .quad 0x9ec3b6d8991e482e
        .quad 0x99c80e82e55f92e9
        .quad 0x307c13b6fb0c0ae1
        .quad 0xfbd63cdad27a5f2c
        .quad 0xf00fc4bc8aa106d7
        .quad 0x53fb5c1a8e64a430
        .quad 0x04eaabe50c1a2e85
        .quad 0x24751021cb8ab5e7
        .quad 0xfc2344495c5010eb
        .quad 0x5f1e717b4e5610a1
        .quad 0x44da5f18c2710cd5



        .quad 0x033cc55ff1b82eb5
        .quad 0xb15ae36d411cae52
        .quad 0xba40b6198ffbacd3
        .quad 0x768edce1532e861f
        .quad 0x9156fe6b89d8eacc
        .quad 0xe6b79451e23126a1
        .quad 0xbd7463d93944eb4e
        .quad 0x726373f6767203ae
        .quad 0xe305ca72eb7ef68a
        .quad 0x662cf31f70eadb23
        .quad 0x18f026fdb4c45b68
        .quad 0x513b5384b5d2ecbd



        .quad 0x46d46280c729989e
        .quad 0x4b93fbd05368a5dd
        .quad 0x63df3f81d1765a89
        .quad 0x34cebd64b9a0a223
        .quad 0x5e2702878af34ceb
        .quad 0x900b0409b946d6ae
        .quad 0x6512ebf7dabd8512
        .quad 0x61d9b76988258f81
        .quad 0xa6c5a71349b7d94b
        .quad 0xa3f3d15823eb9446
        .quad 0x0416fbd277484834
        .quad 0x69d45e6f2c70812f



        .quad 0xce16f74bc53c1431
        .quad 0x2b9725ce2072edde
        .quad 0xb8b9c36fb5b23ee7
        .quad 0x7e2e0e450b5cc908
        .quad 0x9fe62b434f460efb
        .quad 0xded303d4a63607d6
        .quad 0xf052210eb7a0da24
        .quad 0x237e7dbe00545b93
        .quad 0x013575ed6701b430
        .quad 0x231094e69f0bfd10
        .quad 0x75320f1583e47f22
        .quad 0x71afa699b11155e3



        .quad 0x65ce6f9b3953b61d
        .quad 0xc65839eaafa141e6
        .quad 0x0f435ffda9f759fe
        .quad 0x021142e9c2b1c28e
        .quad 0xea423c1c473b50d6
        .quad 0x51e87a1f3b38ef10
        .quad 0x9b84bf5fb2c9be95
        .quad 0x00731fbc78f89a1c
        .quad 0xe430c71848f81880
        .quad 0xbf960c225ecec119
        .quad 0xb6dae0836bba15e3
        .quad 0x4c4d6f3347e15808



        .quad 0x18f7eccfc17d1fc9
        .quad 0x6c75f5a651403c14
        .quad 0xdbde712bf7ee0cdf
        .quad 0x193fddaaa7e47a22
        .quad 0x2f0cddfc988f1970
        .quad 0x6b916227b0b9f51b
        .quad 0x6ec7b6c4779176be
        .quad 0x38bf9500a88f9fa8
        .quad 0x1fd2c93c37e8876f
        .quad 0xa2f61e5a18d1462c
        .quad 0x5080f58239241276
        .quad 0x6a6fb99ebf0d4969



        .quad 0x6a46c1bb560855eb
        .quad 0x2416bb38f893f09d
        .quad 0xd71d11378f71acc1
        .quad 0x75f76914a31896ea
        .quad 0xeeb122b5b6e423c6
        .quad 0x939d7010f286ff8e
        .quad 0x90a92a831dcf5d8c
        .quad 0x136fda9f42c5eb10
        .quad 0xf94cdfb1a305bdd1
        .quad 0x0f364b9d9ff82c08
        .quad 0x2a87d8a5c3bb588a
        .quad 0x022183510be8dcba



        .quad 0x4af766385ead2d14
        .quad 0xa08ed880ca7c5830
        .quad 0x0d13a6e610211e3d
        .quad 0x6a071ce17b806c03
        .quad 0x9d5a710143307a7f
        .quad 0xb063de9ec47da45f
        .quad 0x22bbfe52be927ad3
        .quad 0x1387c441fd40426c
        .quad 0xb5d3c3d187978af8
        .quad 0x722b5a3d7f0e4413
        .quad 0x0d7b4848bb477ca0
        .quad 0x3171b26aaf1edc92



        .quad 0xa92f319097564ca8
        .quad 0xff7bb84c2275e119
        .quad 0x4f55fe37a4875150
        .quad 0x221fd4873cf0835a
        .quad 0xa60db7d8b28a47d1
        .quad 0xa6bf14d61770a4f1
        .quad 0xd4a1f89353ddbd58
        .quad 0x6c514a63344243e9
        .quad 0x2322204f3a156341
        .quad 0xfb73e0e9ba0a032d
        .quad 0xfce0dd4c410f030e
        .quad 0x48daa596fb924aaa



        .quad 0x6eca8e665ca59cc7
        .quad 0xa847254b2e38aca0
        .quad 0x31afc708d21e17ce
        .quad 0x676dd6fccad84af7
        .quad 0x14f61d5dc84c9793
        .quad 0x9941f9e3ef418206
        .quad 0xcdf5b88f346277ac
        .quad 0x58c837fa0e8a79a9
        .quad 0x0cf9688596fc9058
        .quad 0x1ddcbbf37b56a01b
        .quad 0xdcc2e77d4935d66a
        .quad 0x1c4f73f2c6a57f0a



        .quad 0x0e7a4fbd305fa0bb
        .quad 0x829d4ce054c663ad
        .quad 0xf421c3832fe33848
        .quad 0x795ac80d1bf64c42
        .quad 0xb36e706efc7c3484
        .quad 0x73dfc9b4c3c1cf61
        .quad 0xeb1d79c9781cc7e5
        .quad 0x70459adb7daf675c
        .quad 0x1b91db4991b42bb3
        .quad 0x572696234b02dcca
        .quad 0x9fdf9ee51f8c78dc
        .quad 0x5fe162848ce21fd3



        .quad 0xe2790aae4d077c41
        .quad 0x8b938270db7469a3
        .quad 0x6eb632dc8abd16a2
        .quad 0x720814ecaa064b72
        .quad 0x315c29c795115389
        .quad 0xd7e0e507862f74ce
        .quad 0x0c4a762185927432
        .quad 0x72de6c984a25a1e4
        .quad 0xae9ab553bf6aa310
        .quad 0x050a50a9806d6e1b
        .quad 0x92bb7403adff5139
        .quad 0x0394d27645be618b



        .quad 0x4d572251857eedf4
        .quad 0xe3724edde19e93c5
        .quad 0x8a71420e0b797035
        .quad 0x3b3c833687abe743
        .quad 0xf5396425b23545a4
        .quad 0x15a7a27e98fbb296
        .quad 0xab6c52bc636fdd86
        .quad 0x79d995a8419334ee
        .quad 0xcd8a8ea61195dd75
        .quad 0xa504d8a81dd9a82f
        .quad 0x540dca81a35879b6
        .quad 0x60dd16a379c86a8a



        .quad 0x35a2c8487381e559
        .quad 0x596ffea6d78082cb
        .quad 0xcb9771ebdba7b653
        .quad 0x5a08b5019b4da685
        .quad 0x3501d6f8153e47b8
        .quad 0xb7a9675414a2f60c
        .quad 0x112ee8b6455d9523
        .quad 0x4e62a3c18112ea8a
        .quad 0xc8d4ac04516ab786
        .quad 0x595af3215295b23d
        .quad 0xd6edd234db0230c1
        .quad 0x0929efe8825b41cc



        .quad 0x5f0601d1cbd0f2d3
        .quad 0x736e412f6132bb7f
        .quad 0x83604432238dde87
        .quad 0x1e3a5272f5c0753c
        .quad 0x8b3172b7ad56651d
        .quad 0x01581b7a3fabd717
        .quad 0x2dc94df6424df6e4
        .quad 0x30376e5d2c29284f
        .quad 0xd2918da78159a59c
        .quad 0x6bdc1cd93f0713f3
        .quad 0x565f7a934acd6590
        .quad 0x53daacec4cb4c128



        .quad 0x4ca73bd79cc8a7d6
        .quad 0x4d4a738f47e9a9b2
        .quad 0xf4cbf12942f5fe00
        .quad 0x01a13ff9bdbf0752
        .quad 0x99852bc3852cfdb0
        .quad 0x2cc12e9559d6ed0b
        .quad 0x70f9e2bf9b5ac27b
        .quad 0x4f3b8c117959ae99
        .quad 0x55b6c9c82ff26412
        .quad 0x1ac4a8c91fb667a8
        .quad 0xd527bfcfeb778bf2
        .quad 0x303337da7012a3be



        .quad 0x955422228c1c9d7c
        .quad 0x01fac1371a9b340f
        .quad 0x7e8d9177925b48d7
        .quad 0x53f8ad5661b3e31b
        .quad 0x976d3ccbfad2fdd1
        .quad 0xcb88839737a640a8
        .quad 0x2ff00c1d6734cb25
        .quad 0x269ff4dc789c2d2b
        .quad 0x0c003fbdc08d678d
        .quad 0x4d982fa37ead2b17
        .quad 0xc07e6bcdb2e582f1
        .quad 0x296c7291df412a44



        .quad 0x7903de2b33daf397
        .quad 0xd0ff0619c9a624b3
        .quad 0x8a1d252b555b3e18
        .quad 0x2b6d581c52e0b7c0
        .quad 0xdfb23205dab8b59e
        .quad 0x465aeaa0c8092250
        .quad 0xd133c1189a725d18
        .quad 0x2327370261f117d1
        .quad 0x3d0543d3623e7986
        .quad 0x679414c2c278a354
        .quad 0xae43f0cc726196f6
        .quad 0x7836c41f8245eaba



        .quad 0xe7a254db49e95a81
        .quad 0x5192d5d008b0ad73
        .quad 0x4d20e5b1d00afc07
        .quad 0x5d55f8012cf25f38
        .quad 0xca651e848011937c
        .quad 0xc6b0c46e6ef41a28
        .quad 0xb7021ba75f3f8d52
        .quad 0x119dff99ead7b9fd
        .quad 0x43eadfcbf4b31d4d
        .quad 0xc6503f7411148892
        .quad 0xfeee68c5060d3b17
        .quad 0x329293b3dd4a0ac8



        .quad 0x4e59214fe194961a
        .quad 0x49be7dc70d71cd4f
        .quad 0x9300cfd23b50f22d
        .quad 0x4789d446fc917232
        .quad 0x2879852d5d7cb208
        .quad 0xb8dedd70687df2e7
        .quad 0xdc0bffab21687891
        .quad 0x2b44c043677daa35
        .quad 0x1a1c87ab074eb78e
        .quad 0xfac6d18e99daf467
        .quad 0x3eacbbcd484f9067
        .quad 0x60c52eef2bb9a4e4



        .quad 0x0b5d89bc3bfd8bf1
        .quad 0xb06b9237c9f3551a
        .quad 0x0e4c16b0d53028f5
        .quad 0x10bc9c312ccfcaab
        .quad 0x702bc5c27cae6d11
        .quad 0x44c7699b54a48cab
        .quad 0xefbc4056ba492eb2
        .quad 0x70d77248d9b6676d
        .quad 0xaa8ae84b3ec2a05b
        .quad 0x98699ef4ed1781e0
        .quad 0x794513e4708e85d1
        .quad 0x63755bd3a976f413



        .quad 0xb55fa03e2ad10853
        .quad 0x356f75909ee63569
        .quad 0x9ff9f1fdbe69b890
        .quad 0x0d8cc1c48bc16f84
        .quad 0x3dc7101897f1acb7
        .quad 0x5dda7d5ec165bbd8
        .quad 0x508e5b9c0fa1020f
        .quad 0x2763751737c52a56
        .quad 0x029402d36eb419a9
        .quad 0xf0b44e7e77b460a5
        .quad 0xcfa86230d43c4956
        .quad 0x70c2dd8a7ad166e7



        .quad 0x656194509f6fec0e
        .quad 0xee2e7ea946c6518d
        .quad 0x9733c1f367e09b5c
        .quad 0x2e0fac6363948495
        .quad 0x91d4967db8ed7e13
        .quad 0x74252f0ad776817a
        .quad 0xe40982e00d852564
        .quad 0x32b8613816a53ce5
        .quad 0x79e7f7bee448cd64
        .quad 0x6ac83a67087886d0
        .quad 0xf89fd4d9a0e4db2e
        .quad 0x4179215c735a4f41



        .quad 0x8c7094e7d7dced2a
        .quad 0x97fb8ac347d39c70
        .quad 0xe13be033a906d902
        .quad 0x700344a30cd99d76
        .quad 0xe4ae33b9286bcd34
        .quad 0xb7ef7eb6559dd6dc
        .quad 0x278b141fb3d38e1f
        .quad 0x31fa85662241c286
        .quad 0xaf826c422e3622f4
        .quad 0xc12029879833502d
        .quad 0x9bc1b7e12b389123
        .quad 0x24bb2312a9952489



        .quad 0xb1a8ed1732de67c3
        .quad 0x3cb49418461b4948
        .quad 0x8ebd434376cfbcd2
        .quad 0x0fee3e871e188008
        .quad 0x41f80c2af5f85c6b
        .quad 0x687284c304fa6794
        .quad 0x8945df99a3ba1bad
        .quad 0x0d1d2af9ffeb5d16
        .quad 0xa9da8aa132621edf
        .quad 0x30b822a159226579
        .quad 0x4004197ba79ac193
        .quad 0x16acd79718531d76



        .quad 0x72df72af2d9b1d3d
        .quad 0x63462a36a432245a
        .quad 0x3ecea07916b39637
        .quad 0x123e0ef6b9302309
        .quad 0xc959c6c57887b6ad
        .quad 0x94e19ead5f90feba
        .quad 0x16e24e62a342f504
        .quad 0x164ed34b18161700
        .quad 0x487ed94c192fe69a
        .quad 0x61ae2cea3a911513
        .quad 0x877bf6d3b9a4de27
        .quad 0x78da0fc61073f3eb



        .quad 0x5bf15d28e52bc66a
        .quad 0x2c47e31870f01a8e
        .quad 0x2419afbc06c28bdd
        .quad 0x2d25deeb256b173a
        .quad 0xa29f80f1680c3a94
        .quad 0x71f77e151ae9e7e6
        .quad 0x1100f15848017973
        .quad 0x054aa4b316b38ddd
        .quad 0xdfc8468d19267cb8
        .quad 0x0b28789c66e54daf
        .quad 0x2aeb1d2a666eec17
        .quad 0x134610a6ab7da760



        .quad 0xcaf55ec27c59b23f
        .quad 0x99aeed3e154d04f2
        .quad 0x68441d72e14141f4
        .quad 0x140345133932a0a2
        .quad 0xd91430e0dc028c3c
        .quad 0x0eb955a85217c771
        .quad 0x4b09e1ed2c99a1fa
        .quad 0x42881af2bd6a743c
        .quad 0x7bfec69aab5cad3d
        .quad 0xc23e8cd34cb2cfad
        .quad 0x685dd14bfb37d6a2
        .quad 0x0ad6d64415677a18



        .quad 0x781a439e417becb5
        .quad 0x4ac5938cd10e0266
        .quad 0x5da385110692ac24
        .quad 0x11b065a2ade31233
        .quad 0x7914892847927e9f
        .quad 0x33dad6ef370aa877
        .quad 0x1f8f24fa11122703
        .quad 0x5265ac2f2adf9592
        .quad 0x405fdd309afcb346
        .quad 0xd9723d4428e63f54
        .quad 0x94c01df05f65aaae
        .quad 0x43e4dc3ae14c0809



        .quad 0xbc12c7f1a938a517
        .quad 0x473028ab3180b2e1
        .quad 0x3f78571efbcd254a
        .quad 0x74e534426ff6f90f
        .quad 0xea6f7ac3adc2c6a3
        .quad 0xd0e928f6e9717c94
        .quad 0xe2d379ead645eaf5
        .quad 0x46dd8785c51ffbbe
        .quad 0x709801be375c8898
        .quad 0x4b06dab5e3fd8348
        .quad 0x75880ced27230714
        .quad 0x2b09468fdd2f4c42



        .quad 0x97c749eeb701cb96
        .quad 0x83f438d4b6a369c3
        .quad 0x62962b8b9a402cd9
        .quad 0x6976c7509888df7b
        .quad 0x5b97946582ffa02a
        .quad 0xda096a51fea8f549
        .quad 0xa06351375f77af9b
        .quad 0x1bcfde61201d1e76
        .quad 0x4a4a5490246a59a2
        .quad 0xd63ebddee87fdd90
        .quad 0xd9437c670d2371fa
        .quad 0x69e87308d30f8ed6



        .quad 0x435a8bb15656beb0
        .quad 0xf8fac9ba4f4d5bca
        .quad 0xb9b278c41548c075
        .quad 0x3eb0ef76e892b622
        .quad 0x0f80bf028bc80303
        .quad 0x6aae16b37a18cefb
        .quad 0xdd47ea47d72cd6a3
        .quad 0x61943588f4ed39aa
        .quad 0xd26e5c3e91039f85
        .quad 0xc0e9e77df6f33aa9
        .quad 0xe8968c5570066a93
        .quad 0x3c34d1881faaaddd



        .quad 0x3f9d2b5ea09f9ec0
        .quad 0x1dab3b6fb623a890
        .quad 0xa09ba3ea72d926c4
        .quad 0x374193513fd8b36d
        .quad 0xbd5b0b8f2fffe0d9
        .quad 0x6aa254103ed24fb9
        .quad 0x2ac7d7bcb26821c4
        .quad 0x605b394b60dca36a
        .quad 0xb4e856e45a9d1ed2
        .quad 0xefe848766c97a9a2
        .quad 0xb104cf641e5eee7d
        .quad 0x2f50b81c88a71c8f



        .quad 0x31723c61fc6811bb
        .quad 0x9cb450486211800f
        .quad 0x768933d347995753
        .quad 0x3491a53502752fcd
        .quad 0x2b552ca0a7da522a
        .quad 0x3230b336449b0250
        .quad 0xf2c4c5bca4b99fb9
        .quad 0x7b2c674958074a22
        .quad 0xd55165883ed28cdf
        .quad 0x12d84fd2d362de39
        .quad 0x0a874ad3e3378e4f
        .quad 0x000d2b1f7c763e74



        .quad 0x3d420811d06d4a67
        .quad 0xbefc048590e0ffe3
        .quad 0xf870c6b7bd487bde
        .quad 0x6e2a7316319afa28
        .quad 0x9624778c3e94a8ab
        .quad 0x0ad6f3cee9a78bec
        .quad 0x948ac7810d743c4f
        .quad 0x76627935aaecfccc
        .quad 0x56a8ac24d6d59a9f
        .quad 0xc8db753e3096f006
        .quad 0x477f41e68f4c5299
        .quad 0x588d851cf6c86114



        .quad 0x51138ec78df6b0fe
        .quad 0x5397da89e575f51b
        .quad 0x09207a1d717af1b9
        .quad 0x2102fdba2b20d650
        .quad 0xcd2a65e777d1f515
        .quad 0x548991878faa60f1
        .quad 0xb1b73bbcdabc06e5
        .quad 0x654878cba97cc9fb
        .quad 0x969ee405055ce6a1
        .quad 0x36bca7681251ad29
        .quad 0x3a1af517aa7da415
        .quad 0x0ad725db29ecb2ba



        .quad 0xdc4267b1834e2457
        .quad 0xb67544b570ce1bc5
        .quad 0x1af07a0bf7d15ed7
        .quad 0x4aefcffb71a03650
        .quad 0xfec7bc0c9b056f85
        .quad 0x537d5268e7f5ffd7
        .quad 0x77afc6624312aefa
        .quad 0x4f675f5302399fd9
        .quad 0xc32d36360415171e
        .quad 0xcd2bef118998483b
        .quad 0x870a6eadd0945110
        .quad 0x0bccbb72a2a86561



        .quad 0x185e962feab1a9c8
        .quad 0x86e7e63565147dcd
        .quad 0xb092e031bb5b6df2
        .quad 0x4024f0ab59d6b73e
        .quad 0x186d5e4c50fe1296
        .quad 0xe0397b82fee89f7e
        .quad 0x3bc7f6c5507031b0
        .quad 0x6678fd69108f37c2
        .quad 0x1586fa31636863c2
        .quad 0x07f68c48572d33f2
        .quad 0x4f73cc9f789eaefc
        .quad 0x2d42e2108ead4701



        .quad 0x97f5131594dfd29b
        .quad 0x6155985d313f4c6a
        .quad 0xeba13f0708455010
        .quad 0x676b2608b8d2d322
        .quad 0x21717b0d0f537593
        .quad 0x914e690b131e064c
        .quad 0x1bb687ae752ae09f
        .quad 0x420bf3a79b423c6e
        .quad 0x8138ba651c5b2b47
        .quad 0x8671b6ec311b1b80
        .quad 0x7bff0cb1bc3135b0
        .quad 0x745d2ffa9c0cf1e0



        .quad 0xbf525a1e2bc9c8bd
        .quad 0xea5b260826479d81
        .quad 0xd511c70edf0155db
        .quad 0x1ae23ceb960cf5d0
        .quad 0x6036df5721d34e6a
        .quad 0xb1db8827997bb3d0
        .quad 0xd3c209c3c8756afa
        .quad 0x06e15be54c1dc839
        .quad 0x5b725d871932994a
        .quad 0x32351cb5ceb1dab0
        .quad 0x7dc41549dab7ca05
        .quad 0x58ded861278ec1f7



        .quad 0xd8173793f266c55c
        .quad 0xc8c976c5cc454e49
        .quad 0x5ce382f8bc26c3a8
        .quad 0x2ff39de85485f6f9
        .quad 0x2dfb5ba8b6c2c9a8
        .quad 0x48eeef8ef52c598c
        .quad 0x33809107f12d1573
        .quad 0x08ba696b531d5bd8
        .quad 0x77ed3eeec3efc57a
        .quad 0x04e05517d4ff4811
        .quad 0xea3d7a3ff1a671cb
        .quad 0x120633b4947cfe54



        .quad 0x0b94987891610042
        .quad 0x4ee7b13cecebfae8
        .quad 0x70be739594f0a4c0
        .quad 0x35d30a99b4d59185
        .quad 0x82bd31474912100a
        .quad 0xde237b6d7e6fbe06
        .quad 0xe11e761911ea79c6
        .quad 0x07433be3cb393bde
        .quad 0xff7944c05ce997f4
        .quad 0x575d3de4b05c51a3
        .quad 0x583381fd5a76847c
        .quad 0x2d873ede7af6da9f



        .quad 0x157a316443373409
        .quad 0xfab8b7eef4aa81d9
        .quad 0xb093fee6f5a64806
        .quad 0x2e773654707fa7b6
        .quad 0xaa6202e14e5df981
        .quad 0xa20d59175015e1f5
        .quad 0x18a275d3bae21d6c
        .quad 0x0543618a01600253
        .quad 0x0deabdf4974c23c1
        .quad 0xaa6f0a259dce4693
        .quad 0x04202cb8a29aba2c
        .quad 0x4b1443362d07960d



        .quad 0x47b837f753242cec
        .quad 0x256dc48cc04212f2
        .quad 0xe222fbfbe1d928c5
        .quad 0x48ea295bad8a2c07
        .quad 0x299b1c3f57c5715e
        .quad 0x96cb929e6b686d90
        .quad 0x3004806447235ab3
        .quad 0x2c435c24a44d9fe1
        .quad 0x0607c97c80f8833f
        .quad 0x0e851578ca25ec5b
        .quad 0x54f7450b161ebb6f
        .quad 0x7bcb4792a0def80e



        .quad 0x8487e3d02bc73659
        .quad 0x4baf8445059979df
        .quad 0xd17c975adcad6fbf
        .quad 0x57369f0bdefc96b6
        .quad 0x1cecd0a0045224c2
        .quad 0x757f1b1b69e53952
        .quad 0x775b7a925289f681
        .quad 0x1b6cc62016736148
        .quad 0xf1a9990175638698
        .quad 0x353dd1beeeaa60d3
        .quad 0x849471334c9ba488
        .quad 0x63fa6e6843ade311



        .quad 0xd15c20536597c168
        .quad 0x9f73740098d28789
        .quad 0x18aee7f13257ba1f
        .quad 0x3418bfda07346f14
        .quad 0x2195becdd24b5eb7
        .quad 0x5e41f18cc0cd44f9
        .quad 0xdf28074441ca9ede
        .quad 0x07073b98f35b7d67
        .quad 0xd03c676c4ce530d4
        .quad 0x0b64c0473b5df9f4
        .quad 0x065cef8b19b3a31e
        .quad 0x3084d661533102c9



        .quad 0xe1f6b79ebf8469ad
        .quad 0x15801004e2663135
        .quad 0x9a498330af74181b
        .quad 0x3ba2504f049b673c
        .quad 0x9a6ce876760321fd
        .quad 0x7fe2b5109eb63ad8
        .quad 0x00e7d4ae8ac80592
        .quad 0x73d86b7abb6f723a
        .quad 0x0b52b5606dba5ab6
        .quad 0xa9134f0fbbb1edab
        .quad 0x30a9520d9b04a635
        .quad 0x6813b8f37973e5db



        .quad 0x9854b054334127c1
        .quad 0x105d047882fbff25
        .quad 0xdb49f7f944186f4f
        .quad 0x1768e838bed0b900
        .quad 0xf194ca56f3157e29
        .quad 0x136d35705ef528a5
        .quad 0xdd4cef778b0599bc
        .quad 0x7d5472af24f833ed
        .quad 0xd0ef874daf33da47
        .quad 0x00d3be5db6e339f9
        .quad 0x3f2a8a2f9c9ceece
        .quad 0x5d1aeb792352435a



        .quad 0xf59e6bb319cd63ca
        .quad 0x670c159221d06839
        .quad 0xb06d565b2150cab6
        .quad 0x20fb199d104f12a3
        .quad 0x12c7bfaeb61ba775
        .quad 0xb84e621fe263bffd
        .quad 0x0b47a5c35c840dcf
        .quad 0x7e83be0bccaf8634
        .quad 0x61943dee6d99c120
        .quad 0x86101f2e460b9fe0
        .quad 0x6bb2f1518ee8598d
        .quad 0x76b76289fcc475cc



        .quad 0x791b4cc1756286fa
        .quad 0xdbced317d74a157c
        .quad 0x7e732421ea72bde6
        .quad 0x01fe18491131c8e9
        .quad 0x4245f1a1522ec0b3
        .quad 0x558785b22a75656d
        .quad 0x1d485a2548a1b3c0
        .quad 0x60959eccd58fe09f
        .quad 0x3ebfeb7ba8ed7a09
        .quad 0x49fdc2bbe502789c
        .quad 0x44ebce5d3c119428
        .quad 0x35e1eb55be947f4a



        .quad 0xdbdae701c5738dd3
        .quad 0xf9c6f635b26f1bee
        .quad 0x61e96a8042f15ef4
        .quad 0x3aa1d11faf60a4d8
        .quad 0x14fd6dfa726ccc74
        .quad 0x3b084cfe2f53b965
        .quad 0xf33ae4f552a2c8b4
        .quad 0x59aab07a0d40166a
        .quad 0x77bcec4c925eac25
        .quad 0x1848718460137738
        .quad 0x5b374337fea9f451
        .quad 0x1865e78ec8e6aa46



        .quad 0xccc4b7c7b66e1f7a
        .quad 0x44157e25f50c2f7e
        .quad 0x3ef06dfc713eaf1c
        .quad 0x582f446752da63f7
        .quad 0x967c54e91c529ccb
        .quad 0x30f6269264c635fb
        .quad 0x2747aff478121965
        .quad 0x17038418eaf66f5c
        .quad 0xc6317bd320324ce4
        .quad 0xa81042e8a4488bc4
        .quad 0xb21ef18b4e5a1364
        .quad 0x0c2a1c4bcda28dc9



        .quad 0xd24dc7d06f1f0447
        .quad 0xb2269e3edb87c059
        .quad 0xd15b0272fbb2d28f
        .quad 0x7c558bd1c6f64877
        .quad 0xedc4814869bd6945
        .quad 0x0d6d907dbe1c8d22
        .quad 0xc63bd212d55cc5ab
        .quad 0x5a6a9b30a314dc83
        .quad 0xd0ec1524d396463d
        .quad 0x12bb628ac35a24f0
        .quad 0xa50c3a791cbc5fa4
        .quad 0x0404a5ca0afbafc3



        .quad 0x8c1f40070aa743d6
        .quad 0xccbad0cb5b265ee8
        .quad 0x574b046b668fd2de
        .quad 0x46395bfdcadd9633
        .quad 0x62bc9e1b2a416fd1
        .quad 0xb5c6f728e350598b
        .quad 0x04343fd83d5d6967
        .quad 0x39527516e7f8ee98
        .quad 0x117fdb2d1a5d9a9c
        .quad 0x9c7745bcd1005c2a
        .quad 0xefd4bef154d56fea
        .quad 0x76579a29e822d016



        .quad 0x45b68e7e49c02a17
        .quad 0x23cd51a2bca9a37f
        .quad 0x3ed65f11ec224c1b
        .quad 0x43a384dc9e05bdb1
        .quad 0x333cb51352b434f2
        .quad 0xd832284993de80e1
        .quad 0xb5512887750d35ce
        .quad 0x02c514bb2a2777c1
        .quad 0x684bd5da8bf1b645
        .quad 0xfb8bd37ef6b54b53
        .quad 0x313916d7a9b0d253
        .quad 0x1160920961548059



        .quad 0xb44d166929dacfaa
        .quad 0xda529f4c8413598f
        .quad 0xe9ef63ca453d5559
        .quad 0x351e125bc5698e0b
        .quad 0x7a385616369b4dcd
        .quad 0x75c02ca7655c3563
        .quad 0x7dc21bf9d4f18021
        .quad 0x2f637d7491e6e042
        .quad 0xd4b49b461af67bbe
        .quad 0xd603037ac8ab8961
        .quad 0x71dee19ff9a699fb
        .quad 0x7f182d06e7ce2a9a



        .quad 0x7a7c8e64ab0168ec
        .quad 0xcb5a4a5515edc543
        .quad 0x095519d347cd0eda
        .quad 0x67d4ac8c343e93b0
        .quad 0x09454b728e217522
        .quad 0xaa58e8f4d484b8d8
        .quad 0xd358254d7f46903c
        .quad 0x44acc043241c5217
        .quad 0x1c7d6bbb4f7a5777
        .quad 0x8b35fed4918313e1
        .quad 0x4adca1c6c96b4684
        .quad 0x556d1c8312ad71bd



        .quad 0x17ef40e30c8d3982
        .quad 0x31f7073e15a3fa34
        .quad 0x4f21f3cb0773646e
        .quad 0x746c6c6d1d824eff
        .quad 0x81f06756b11be821
        .quad 0x0faff82310a3f3dd
        .quad 0xf8b2d0556a99465d
        .quad 0x097abe38cc8c7f05
        .quad 0x0c49c9877ea52da4
        .quad 0x4c4369559bdc1d43
        .quad 0x022c3809f7ccebd2
        .quad 0x577e14a34bee84bd



        .quad 0xf0e268ac61a73b0a
        .quad 0xf2fafa103791a5f5
        .quad 0xc1e13e826b6d00e9
        .quad 0x60fa7ee96fd78f42
        .quad 0x94fecebebd4dd72b
        .quad 0xf46a4fda060f2211
        .quad 0x124a5977c0c8d1ff
        .quad 0x705304b8fb009295
        .quad 0xb63d1d354d296ec6
        .quad 0xf3c3053e5fad31d8
        .quad 0x670b958cb4bd42ec
        .quad 0x21398e0ca16353fd



        .quad 0x216ab2ca8da7d2ef
        .quad 0x366ad9dd99f42827
        .quad 0xae64b9004fdd3c75
        .quad 0x403a395b53909e62
        .quad 0x86c5fc16861b7e9a
        .quad 0xf6a330476a27c451
        .quad 0x01667267a1e93597
        .quad 0x05ffb9cd6082dfeb
        .quad 0xa617fa9ff53f6139
        .quad 0x60f2b5e513e66cb6
        .quad 0xd7a8beefb3448aa4
        .quad 0x7a2932856f5ea192



        .quad 0x0b39d761b02de888
        .quad 0x5f550e7ed2414e1f
        .quad 0xa6bfa45822e1a940
        .quad 0x050a2f7dfd447b99
        .quad 0xb89c444879639302
        .quad 0x4ae4f19350c67f2c
        .quad 0xf0b35da8c81af9c6
        .quad 0x39d0003546871017
        .quad 0x437c3b33a650db77
        .quad 0x6bafe81dbac52bb2
        .quad 0xfe99402d2db7d318
        .quad 0x2b5b7eec372ba6ce



        .quad 0xb3bc4bbd83f50eef
        .quad 0x508f0c998c927866
        .quad 0x43e76587c8b7e66e
        .quad 0x0f7655a3a47f98d9
        .quad 0xa694404d613ac8f4
        .quad 0x500c3c2bfa97e72c
        .quad 0x874104d21fcec210
        .quad 0x1b205fb38604a8ee
        .quad 0x55ecad37d24b133c
        .quad 0x441e147d6038c90b
        .quad 0x656683a1d62c6fee
        .quad 0x0157d5dc87e0ecae



        .quad 0xf2a7af510354c13d
        .quad 0xd7a0b145aa372b60
        .quad 0x2869b96a05a3d470
        .quad 0x6528e42d82460173
        .quad 0x95265514d71eb524
        .quad 0xe603d8815df14593
        .quad 0x147cdf410d4de6b7
        .quad 0x5293b1730437c850
        .quad 0x23d0e0814bccf226
        .quad 0x92c745cd8196fb93
        .quad 0x8b61796c59541e5b
        .quad 0x40a44df0c021f978



        .quad 0xdaa869894f20ea6a
        .quad 0xea14a3d14c620618
        .quad 0x6001fccb090bf8be
        .quad 0x35f4e822947e9cf0
        .quad 0x86c96e514bc5d095
        .quad 0xf20d4098fca6804a
        .quad 0x27363d89c826ea5d
        .quad 0x39ca36565719cacf
        .quad 0x97506f2f6f87b75c
        .quad 0xc624aea0034ae070
        .quad 0x1ec856e3aad34dd6
        .quad 0x055b0be0e440e58f



        .quad 0x6469a17d89735d12
        .quad 0xdb6f27d5e662b9f1
        .quad 0x9fcba3286a395681
        .quad 0x363b8004d269af25
        .quad 0x4d12a04b6ea33da2
        .quad 0x57cf4c15e36126dd
        .quad 0x90ec9675ee44d967
        .quad 0x64ca348d2a985aac
        .quad 0x99588e19e4c4912d
        .quad 0xefcc3b4e1ca5ce6b
        .quad 0x4522ea60fa5b98d5
        .quad 0x7064bbab1de4a819



        .quad 0xb919e1515a770641
        .quad 0xa9a2e2c74e7f8039
        .quad 0x7527250b3df23109
        .quad 0x756a7330ac27b78b
        .quad 0xa290c06142542129
        .quad 0xf2e2c2aebe8d5b90
        .quad 0xcf2458db76abfe1b
        .quad 0x02157ade83d626bf
        .quad 0x3e46972a1b9a038b
        .quad 0x2e4ee66a7ee03fb4
        .quad 0x81a248776edbb4ca
        .quad 0x1a944ee88ecd0563



        .quad 0xd5a91d1151039372
        .quad 0x2ed377b799ca26de
        .quad 0xa17202acfd366b6b
        .quad 0x0730291bd6901995
        .quad 0xbb40a859182362d6
        .quad 0xb99f55778a4d1abb
        .quad 0x8d18b427758559f6
        .quad 0x26c20fe74d26235a
        .quad 0x648d1d9fe9cc22f5
        .quad 0x66bc561928dd577c
        .quad 0x47d3ed21652439d1
        .quad 0x49d271acedaf8b49



        .quad 0x89f5058a382b33f3
        .quad 0x5ae2ba0bad48c0b4
        .quad 0x8f93b503a53db36e
        .quad 0x5aa3ed9d95a232e6
        .quad 0x2798aaf9b4b75601
        .quad 0x5eac72135c8dad72
        .quad 0xd2ceaa6161b7a023
        .quad 0x1bbfb284e98f7d4e
        .quad 0x656777e9c7d96561
        .quad 0xcb2b125472c78036
        .quad 0x65053299d9506eee
        .quad 0x4a07e14e5e8957cc



        .quad 0x4ee412cb980df999
        .quad 0xa315d76f3c6ec771
        .quad 0xbba5edde925c77fd
        .quad 0x3f0bac391d313402
        .quad 0x240b58cdc477a49b
        .quad 0xfd38dade6447f017
        .quad 0x19928d32a7c86aad
        .quad 0x50af7aed84afa081
        .quad 0x6e4fde0115f65be5
        .quad 0x29982621216109b2
        .quad 0x780205810badd6d9
        .quad 0x1921a316baebd006



        .quad 0x89422f7edfb870fc
        .quad 0x2c296beb4f76b3bd
        .quad 0x0738f1d436c24df7
        .quad 0x6458df41e273aeb0
        .quad 0xd75aad9ad9f3c18b
        .quad 0x566a0eef60b1c19c
        .quad 0x3e9a0bac255c0ed9
        .quad 0x7b049deca062c7f5
        .quad 0xdccbe37a35444483
        .quad 0x758879330fedbe93
        .quad 0x786004c312c5dd87
        .quad 0x6093dccbc2950e64



        .quad 0x1ff39a8585e0706d
        .quad 0x36d0a5d8b3e73933
        .quad 0x43b9f2e1718f453b
        .quad 0x57d1ea084827a97c
        .quad 0x6bdeeebe6084034b
        .quad 0x3199c2b6780fb854
        .quad 0x973376abb62d0695
        .quad 0x6e3180c98b647d90
        .quad 0xee7ab6e7a128b071
        .quad 0xa4c1596d93a88baa
        .quad 0xf7b4de82b2216130
        .quad 0x363e999ddd97bd18



        .quad 0x96a843c135ee1fc4
        .quad 0x976eb35508e4c8cf
        .quad 0xb42f6801b58cd330
        .quad 0x48ee9b78693a052b
        .quad 0x2f1848dce24baec6
        .quad 0x769b7255babcaf60
        .quad 0x90cb3c6e3cefe931
        .quad 0x231f979bc6f9b355
        .quad 0x5c31de4bcc2af3c6
        .quad 0xb04bb030fe208d1f
        .quad 0xb78d7009c14fb466
        .quad 0x079bfa9b08792413



        .quad 0xe3903a51da300df4
        .quad 0x843964233da95ab0
        .quad 0xed3cf12d0b356480
        .quad 0x038c77f684817194
        .quad 0xf3c9ed80a2d54245
        .quad 0x0aa08b7877f63952
        .quad 0xd76dac63d1085475
        .quad 0x1ef4fb159470636b
        .quad 0x854e5ee65b167bec
        .quad 0x59590a4296d0cdc2
        .quad 0x72b2df3498102199
        .quad 0x575ee92a4a0bff56



        .quad 0xd4c080908a182fcf
        .quad 0x30e170c299489dbd
        .quad 0x05babd5752f733de
        .quad 0x43d4e7112cd3fd00
        .quad 0x5d46bc450aa4d801
        .quad 0xc3af1227a533b9d8
        .quad 0x389e3b262b8906c2
        .quad 0x200a1e7e382f581b
        .quad 0x518db967eaf93ac5
        .quad 0x71bc989b056652c0
        .quad 0xfe2b85d9567197f5
        .quad 0x050eca52651e4e38



        .quad 0xc3431ade453f0c9c
        .quad 0xe9f5045eff703b9b
        .quad 0xfcd97ac9ed847b3d
        .quad 0x4b0ee6c21c58f4c6
        .quad 0x97ac397660e668ea
        .quad 0x9b19bbfe153ab497
        .quad 0x4cb179b534eca79f
        .quad 0x6151c09fa131ae57
        .quad 0x3af55c0dfdf05d96
        .quad 0xdd262ee02ab4ee7a
        .quad 0x11b2bb8712171709
        .quad 0x1fef24fa800f030b



        .quad 0xb496123a6b6c6609
        .quad 0xa750fe8580ab5938
        .quad 0xf471bf39b7c27a5f
        .quad 0x507903ce77ac193c
        .quad 0xff91a66a90166220
        .quad 0xf22552ae5bf1e009
        .quad 0x7dff85d87f90df7c
        .quad 0x4f620ffe0c736fb9
        .quad 0x62f90d65dfde3e34
        .quad 0xcf28c592b9fa5fad
        .quad 0x99c86ef9c6164510
        .quad 0x25d448044a256c84



        .quad 0xbd68230ec7e9b16f
        .quad 0x0eb1b9c1c1c5795d
        .quad 0x7943c8c495b6b1ff
        .quad 0x2f9faf620bbacf5e
        .quad 0x2c7c4415c9022b55
        .quad 0x56a0d241812eb1fe
        .quad 0xf02ea1c9d7b65e0d
        .quad 0x4180512fd5323b26
        .quad 0xa4ff3e698a48a5db
        .quad 0xba6a3806bd95403b
        .quad 0x9f7ce1af47d5b65d
        .quad 0x15e087e55939d2fb



        .quad 0x12207543745c1496
        .quad 0xdaff3cfdda38610c
        .quad 0xe4e797272c71c34f
        .quad 0x39c07b1934bdede9
        .quad 0x8894186efb963f38
        .quad 0x48a00e80dc639bd5
        .quad 0xa4e8092be96c1c99
        .quad 0x5a097d54ca573661
        .quad 0x2d45892b17c9e755
        .quad 0xd033fd7289308df8
        .quad 0x6c2fe9d9525b8bd9
        .quad 0x2edbecf1c11cc079



        .quad 0x1616a4e3c715a0d2
        .quad 0x53623cb0f8341d4d
        .quad 0x96ef5329c7e899cb
        .quad 0x3d4e8dbba668baa6
        .quad 0xee0f0fddd087a25f
        .quad 0x9c7531555c3e34ee
        .quad 0x660c572e8fab3ab5
        .quad 0x0854fc44544cd3b2
        .quad 0x61eba0c555edad19
        .quad 0x24b533fef0a83de6
        .quad 0x3b77042883baa5f8
        .quad 0x678f82b898a47e8d



        .quad 0xb1491d0bd6900c54
        .quad 0x3539722c9d132636
        .quad 0x4db928920b362bc9
        .quad 0x4d7cd1fea68b69df
        .quad 0x1e09d94057775696
        .quad 0xeed1265c3cd951db
        .quad 0xfa9dac2b20bce16f
        .quad 0x0f7f76e0e8d089f4
        .quad 0x36d9ebc5d485b00c
        .quad 0xa2596492e4adb365
        .quad 0xc1659480c2119ccd
        .quad 0x45306349186e0d5f



        .quad 0x94ddd0c1a6cdff1d
        .quad 0x55f6f115e84213ae
        .quad 0x6c935f85992fcf6a
        .quad 0x067ee0f54a37f16f
        .quad 0x96a414ec2b072491
        .quad 0x1bb2218127a7b65b
        .quad 0x6d2849596e8a4af0
        .quad 0x65f3b08ccd27765f
        .quad 0xecb29fff199801f7
        .quad 0x9d361d1fa2a0f72f
        .quad 0x25f11d2375fd2f49
        .quad 0x124cefe80fe10fe2



        .quad 0x4c126cf9d18df255
        .quad 0xc1d471e9147a63b6
        .quad 0x2c6d3c73f3c93b5f
        .quad 0x6be3a6a2e3ff86a2
        .quad 0x1518e85b31b16489
        .quad 0x8faadcb7db710bfb
        .quad 0x39b0bdf4a14ae239
        .quad 0x05f4cbea503d20c1
        .quad 0xce040e9ec04145bc
        .quad 0xc71ff4e208f6834c
        .quad 0xbd546e8dab8847a3
        .quad 0x64666aa0a4d2aba5



        .quad 0x6841435a7c06d912
        .quad 0xca123c21bb3f830b
        .quad 0xd4b37b27b1cbe278
        .quad 0x1d753b84c76f5046
        .quad 0xb0c53bf73337e94c
        .quad 0x7cb5697e11e14f15
        .quad 0x4b84abac1930c750
        .quad 0x28dd4abfe0640468
        .quad 0x7dc0b64c44cb9f44
        .quad 0x18a3e1ace3925dbf
        .quad 0x7a3034862d0457c4
        .quad 0x4c498bf78a0c892e



        .quad 0x37d653fb1aa73196
        .quad 0x0f9495303fd76418
        .quad 0xad200b09fb3a17b2
        .quad 0x544d49292fc8613e
        .quad 0x22d2aff530976b86
        .quad 0x8d90b806c2d24604
        .quad 0xdca1896c4de5bae5
        .quad 0x28005fe6c8340c17
        .quad 0x6aefba9f34528688
        .quad 0x5c1bff9425107da1
        .quad 0xf75bbbcd66d94b36
        .quad 0x72e472930f316dfa



        .quad 0x2695208c9781084f
        .quad 0xb1502a0b23450ee1
        .quad 0xfd9daea603efde02
        .quad 0x5a9d2e8c2733a34c
        .quad 0x07f3f635d32a7627
        .quad 0x7aaa4d865f6566f0
        .quad 0x3c85e79728d04450
        .quad 0x1fee7f000fe06438
        .quad 0x765305da03dbf7e5
        .quad 0xa4daf2491434cdbd
        .quad 0x7b4ad5cdd24a88ec
        .quad 0x00f94051ee040543



        .quad 0x8d356b23c3d330b2
        .quad 0xf21c8b9bb0471b06
        .quad 0xb36c316c6e42b83c
        .quad 0x07d79c7e8beab10d
        .quad 0xd7ef93bb07af9753
        .quad 0x583ed0cf3db766a7
        .quad 0xce6998bf6e0b1ec5
        .quad 0x47b7ffd25dd40452
        .quad 0x87fbfb9cbc08dd12
        .quad 0x8a066b3ae1eec29b
        .quad 0x0d57242bdb1fc1bf
        .quad 0x1c3520a35ea64bb6



        .quad 0x80d253a6bccba34a
        .quad 0x3e61c3a13838219b
        .quad 0x90c3b6019882e396
        .quad 0x1c3d05775d0ee66f
        .quad 0xcda86f40216bc059
        .quad 0x1fbb231d12bcd87e
        .quad 0xb4956a9e17c70990
        .quad 0x38750c3b66d12e55
        .quad 0x692ef1409422e51a
        .quad 0xcbc0c73c2b5df671
        .quad 0x21014fe7744ce029
        .quad 0x0621e2c7d330487c



        .quad 0xaf9860cc8259838d
        .quad 0x90ea48c1c69f9adc
        .quad 0x6526483765581e30
        .quad 0x0007d6097bd3a5bc
        .quad 0xb7ae1796b0dbf0f3
        .quad 0x54dfafb9e17ce196
        .quad 0x25923071e9aaa3b4
        .quad 0x5d8e589ca1002e9d
        .quad 0xc0bf1d950842a94b
        .quad 0xb2d3c363588f2e3e
        .quad 0x0a961438bb51e2ef
        .quad 0x1583d7783c1cbf86



        .quad 0xeceea2ef5da27ae1
        .quad 0x597c3a1455670174
        .quad 0xc9a62a126609167a
        .quad 0x252a5f2e81ed8f70
        .quad 0x90034704cc9d28c7
        .quad 0x1d1b679ef72cc58f
        .quad 0x16e12b5fbe5b8726
        .quad 0x4958064e83c5580a
        .quad 0x0d2894265066e80d
        .quad 0xfcc3f785307c8c6b
        .quad 0x1b53da780c1112fd
        .quad 0x079c170bd843b388



        .quad 0x0506ece464fa6fff
        .quad 0xbee3431e6205e523
        .quad 0x3579422451b8ea42
        .quad 0x6dec05e34ac9fb00
        .quad 0xcdd6cd50c0d5d056
        .quad 0x9af7686dbb03573b
        .quad 0x3ca6723ff3c3ef48
        .quad 0x6768c0d7317b8acc
        .quad 0x94b625e5f155c1b3
        .quad 0x417bf3a7997b7b91
        .quad 0xc22cbddc6d6b2600
        .quad 0x51445e14ddcd52f4



        .quad 0x57502b4b3b144951
        .quad 0x8e67ff6b444bbcb3
        .quad 0xb8bd6927166385db
        .quad 0x13186f31e39295c8
        .quad 0x893147ab2bbea455
        .quad 0x8c53a24f92079129
        .quad 0x4b49f948be30f7a7
        .quad 0x12e990086e4fd43d
        .quad 0xf10c96b37fdfbb2e
        .quad 0x9f9a935e121ceaf9
        .quad 0xdf1136c43a5b983f
        .quad 0x77b2e3f05d3e99af



        .quad 0xfd0d75879cf12657
        .quad 0xe82fef94e53a0e29
        .quad 0xcc34a7f05bbb4be7
        .quad 0x0b251172a50c38a2
        .quad 0x9532f48fcc5cd29b
        .quad 0x2ba851bea3ce3671
        .quad 0x32dacaa051122941
        .quad 0x478d99d9350004f2
        .quad 0x1d5ad94890bb02c0
        .quad 0x50e208b10ec25115
        .quad 0xa26a22894ef21702
        .quad 0x4dc923343b524805



        .quad 0xe3828c400f8086b6
        .quad 0x3f77e6f7979f0dc8
        .quad 0x7ef6de304df42cb4
        .quad 0x5265797cb6abd784
        .quad 0x3ad3e3ebf36c4975
        .quad 0xd75d25a537862125
        .quad 0xe873943da025a516
        .quad 0x6bbc7cb4c411c847
        .quad 0x3c6f9cd1d4a50d56
        .quad 0xb6244077c6feab7e
        .quad 0x6ff9bf483580972e
        .quad 0x00375883b332acfb



        .quad 0x0001b2cd28cb0940
        .quad 0x63fb51a06f1c24c9
        .quad 0xb5ad8691dcd5ca31
        .quad 0x67238dbd8c450660
        .quad 0xc98bec856c75c99c
        .quad 0xe44184c000e33cf4
        .quad 0x0a676b9bba907634
        .quad 0x669e2cb571f379d7
        .quad 0xcb116b73a49bd308
        .quad 0x025aad6b2392729e
        .quad 0xb4793efa3f55d9b1
        .quad 0x72a1056140678bb9



        .quad 0xa2b6812b1cc9249d
        .quad 0x62866eee21211f58
        .quad 0x2cb5c5b85df10ece
        .quad 0x03a6b259e263ae00
        .quad 0x0d8d2909e2e505b6
        .quad 0x98ca78abc0291230
        .quad 0x77ef5569a9b12327
        .quad 0x7c77897b81439b47
        .quad 0xf1c1b5e2de331cb5
        .quad 0x5a9f5d8e15fca420
        .quad 0x9fa438f17bd932b1
        .quad 0x2a381bf01c6146e7



        .quad 0xac9b9879cfc811c1
        .quad 0x8b7d29813756e567
        .quad 0x50da4e607c70edfc
        .quad 0x5dbca62f884400b6
        .quad 0xf7c0be32b534166f
        .quad 0x27e6ca6419cf70d4
        .quad 0x934df7d7a957a759
        .quad 0x5701461dabdec2aa
        .quad 0x2c6747402c915c25
        .quad 0x1bdcd1a80b0d340a
        .quad 0x5e5601bd07b43f5f
        .quad 0x2555b4e05539a242



        .quad 0x6fc09f5266ddd216
        .quad 0xdce560a7c8e37048
        .quad 0xec65939da2df62fd
        .quad 0x7a869ae7e52ed192
        .quad 0x78409b1d87e463d4
        .quad 0xad4da95acdfb639d
        .quad 0xec28773755259b9c
        .quad 0x69c806e9c31230ab
        .quad 0x7b48f57414bb3f22
        .quad 0x68c7cee4aedccc88
        .quad 0xed2f936179ed80be
        .quad 0x25d70b885f77bc4b



        .quad 0x4151c3d9762bf4de
        .quad 0x083f435f2745d82b
        .quad 0x29775a2e0d23ddd5
        .quad 0x138e3a6269a5db24
        .quad 0x98459d29bb1ae4d4
        .quad 0x56b9c4c739f954ec
        .quad 0x832743f6c29b4b3e
        .quad 0x21ea8e2798b6878a
        .quad 0x87bef4b46a5a7b9c
        .quad 0xd2299d1b5fc1d062
        .quad 0x82409818dd321648
        .quad 0x5c5abeb1e5a2e03d



        .quad 0x14722af4b73c2ddb
        .quad 0xbc470c5f5a05060d
        .quad 0x00943eac2581b02e
        .quad 0x0e434b3b1f499c8f
        .quad 0x02cde6de1306a233
        .quad 0x7b5a52a2116f8ec7
        .quad 0xe1c681f4c1163b5b
        .quad 0x241d350660d32643
        .quad 0x6be4404d0ebc52c7
        .quad 0xae46233bb1a791f5
        .quad 0x2aec170ed25db42b
        .quad 0x1d8dfd966645d694



        .quad 0x296fa9c59c2ec4de
        .quad 0xbc8b61bf4f84f3cb
        .quad 0x1c7706d917a8f908
        .quad 0x63b795fc7ad3255d
        .quad 0xd598639c12ddb0a4
        .quad 0xa5d19f30c024866b
        .quad 0xd17c2f0358fce460
        .quad 0x07a195152e095e8a
        .quad 0xa8368f02389e5fc8
        .quad 0x90433b02cf8de43b
        .quad 0xafa1fd5dc5412643
        .quad 0x3e8fe83d032f0137



        .quad 0x2f8b15b90570a294
        .quad 0x94f2427067084549
        .quad 0xde1c5ae161bbfd84
        .quad 0x75ba3b797fac4007
        .quad 0x08704c8de8efd13c
        .quad 0xdfc51a8e33e03731
        .quad 0xa59d5da51260cde3
        .quad 0x22d60899a6258c86
        .quad 0x6239dbc070cdd196
        .quad 0x60fe8a8b6c7d8a9a
        .quad 0xb38847bceb401260
        .quad 0x0904d07b87779e5e



        .quad 0xb4ce1fd4ddba919c
        .quad 0xcf31db3ec74c8daa
        .quad 0x2c63cc63ad86cc51
        .quad 0x43e2143fbc1dde07
        .quad 0xf4322d6648f940b9
        .quad 0x06952f0cbd2d0c39
        .quad 0x167697ada081f931
        .quad 0x6240aacebaf72a6c
        .quad 0xf834749c5ba295a0
        .quad 0xd6947c5bca37d25a
        .quad 0x66f13ba7e7c9316a
        .quad 0x56bdaf238db40cac



        .quad 0x362ab9e3f53533eb
        .quad 0x338568d56eb93d40
        .quad 0x9e0e14521d5a5572
        .quad 0x1d24a86d83741318
        .quad 0x1310d36cc19d3bb2
        .quad 0x062a6bb7622386b9
        .quad 0x7c9b8591d7a14f5c
        .quad 0x03aa31507e1e5754
        .quad 0xf4ec7648ffd4ce1f
        .quad 0xe045eaf054ac8c1c
        .quad 0x88d225821d09357c
        .quad 0x43b261dc9aeb4859



        .quad 0xe55b1e1988bb79bb
        .quad 0xa09ed07dc17a359d
        .quad 0xb02c2ee2603dea33
        .quad 0x326055cf5b276bc2
        .quad 0x19513d8b6c951364
        .quad 0x94fe7126000bf47b
        .quad 0x028d10ddd54f9567
        .quad 0x02b4d5e242940964
        .quad 0xb4a155cb28d18df2
        .quad 0xeacc4646186ce508
        .quad 0xc49cf4936c824389
        .quad 0x27a6c809ae5d3410



        .quad 0x8ba6ebcd1f0db188
        .quad 0x37d3d73a675a5be8
        .quad 0xf22edfa315f5585a
        .quad 0x2cb67174ff60a17e
        .quad 0xcd2c270ac43d6954
        .quad 0xdd4a3e576a66cab2
        .quad 0x79fa592469d7036c
        .quad 0x221503603d8c2599
        .quad 0x59eecdf9390be1d0
        .quad 0xa9422044728ce3f1
        .quad 0x82891c667a94f0f4
        .quad 0x7b1df4b73890f436



        .quad 0xe492f2e0b3b2a224
        .quad 0x7c6c9e062b551160
        .quad 0x15eb8fe20d7f7b0e
        .quad 0x61fcef2658fc5992
        .quad 0x5f2e221807f8f58c
        .quad 0xe3555c9fd49409d4
        .quad 0xb2aaa88d1fb6a630
        .quad 0x68698245d352e03d
        .quad 0xdbb15d852a18187a
        .quad 0xf3e4aad386ddacd7
        .quad 0x44bae2810ff6c482
        .quad 0x46cf4c473daf01cf



        .quad 0x426525ed9ec4e5f9
        .quad 0x0e5eda0116903303
        .quad 0x72b1a7f2cbe5cadc
        .quad 0x29387bcd14eb5f40
        .quad 0x213c6ea7f1498140
        .quad 0x7c1e7ef8392b4854
        .quad 0x2488c38c5629ceba
        .quad 0x1065aae50d8cc5bb
        .quad 0x1c2c4525df200d57
        .quad 0x5c3b2dd6bfca674a
        .quad 0x0a07e7b1e1834030
        .quad 0x69a198e64f1ce716



        .quad 0x7afcd613efa9d697
        .quad 0x0cc45aa41c067959
        .quad 0xa56fe104c1fada96
        .quad 0x3a73b70472e40365
        .quad 0x7b26e56b9e2d4734
        .quad 0xc4c7132b81c61675
        .quad 0xef5c9525ec9cde7f
        .quad 0x39c80b16e71743ad
        .quad 0x0f196e0d1b826c68
        .quad 0xf71ff0e24960e3db
        .quad 0x6113167023b7436c
        .quad 0x0cf0ea5877da7282



        .quad 0x196c80a4ddd4ccbd
        .quad 0x22e6f55d95f2dd9d
        .quad 0xc75e33c740d6c71b
        .quad 0x7bb51279cb3c042f
        .quad 0xe332ced43ba6945a
        .quad 0xde0b1361e881c05d
        .quad 0x1ad40f095e67ed3b
        .quad 0x5da8acdab8c63d5d
        .quad 0xc4b6664a3a70159f
        .quad 0x76194f0f0a904e14
        .quad 0xa5614c39a4096c13
        .quad 0x6cd0ff50979feced



        .quad 0xc0e067e78f4428ac
        .quad 0x14835ab0a61135e3
        .quad 0xf21d14f338062935
        .quad 0x6390a4c8df04849c
        .quad 0x7fecfabdb04ba18e
        .quad 0xd0fc7bfc3bddbcf7
        .quad 0xa41d486e057a131c
        .quad 0x641a4391f2223a61
        .quad 0xc5c6b95aa606a8db
        .quad 0x914b7f9eb06825f1
        .quad 0x2a731f6b44fc9eff
        .quad 0x30ddf38562705cfc



        .quad 0x4e3dcbdad1bff7f9
        .quad 0xc9118e8220645717
        .quad 0xbacccebc0f189d56
        .quad 0x1b4822e9d4467668
        .quad 0x33bef2bd68bcd52c
        .quad 0xc649dbb069482ef2
        .quad 0xb5b6ee0c41cb1aee
        .quad 0x5c294d270212a7e5
        .quad 0xab360a7f25563781
        .quad 0x2512228a480f7958
        .quad 0xc75d05276114b4e3
        .quad 0x222d9625d976fe2a



        .quad 0x1c717f85b372ace1
        .quad 0x81930e694638bf18
        .quad 0x239cad056bc08b58
        .quad 0x0b34271c87f8fff4
        .quad 0x0f94be7e0a344f85
        .quad 0xeb2faa8c87f22c38
        .quad 0x9ce1e75e4ee16f0f
        .quad 0x43e64e5418a08dea
        .quad 0x8155e2521a35ce63
        .quad 0xbe100d4df912028e
        .quad 0xbff80bf8a57ddcec
        .quad 0x57342dc96d6bc6e4



        .quad 0xefeef065c8ce5998
        .quad 0xbf029510b5cbeaa2
        .quad 0x8c64a10620b7c458
        .quad 0x35134fb231c24855
        .quad 0xf3c3bcb71e707bf6
        .quad 0x351d9b8c7291a762
        .quad 0x00502e6edad69a33
        .quad 0x522f521f1ec8807f
        .quad 0x272c1f46f9a3902b
        .quad 0xc91ba3b799657bcc
        .quad 0xae614b304f8a1c0e
        .quad 0x7afcaad70b99017b



        .quad 0xc25ded54a4b8be41
        .quad 0x902d13e11bb0e2dd
        .quad 0x41f43233cde82ab2
        .quad 0x1085faa5c3aae7cb
        .quad 0xa88141ecef842b6b
        .quad 0x55e7b14797abe6c5
        .quad 0x8c748f9703784ffe
        .quad 0x5b50a1f7afcd00b7
        .quad 0x9b840f66f1361315
        .quad 0x18462242701003e9
        .quad 0x65ed45fae4a25080
        .quad 0x0a2862393fda7320



        .quad 0x46ab13c8347cbc9d
        .quad 0x3849e8d499c12383
        .quad 0x4cea314087d64ac9
        .quad 0x1f354134b1a29ee7
        .quad 0x960e737b6ecb9d17
        .quad 0xfaf24948d67ceae1
        .quad 0x37e7a9b4d55e1b89
        .quad 0x5cb7173cb46c59eb
        .quad 0x4a89e68b82b7abf0
        .quad 0xf41cd9279ba6b7b9
        .quad 0x16e6c210e18d876f
        .quad 0x7cacdb0f7f1b09c6



        .quad 0x9062b2e0d91a78bc
        .quad 0x47c9889cc8509667
        .quad 0x9df54a66405070b8
        .quad 0x7369e6a92493a1bf
        .quad 0xe1014434dcc5caed
        .quad 0x47ed5d963c84fb33
        .quad 0x70019576ed86a0e7
        .quad 0x25b2697bd267f9e4
        .quad 0x9d673ffb13986864
        .quad 0x3ca5fbd9415dc7b8
        .quad 0xe04ecc3bdf273b5e
        .quad 0x1420683db54e4cd2



        .quad 0xb478bd1e249dd197
        .quad 0x620c35005e58c102
        .quad 0xfb02d32fccbaac5c
        .quad 0x60b63bebf508a72d
        .quad 0x34eebb6fc1cc5ad0
        .quad 0x6a1b0ce99646ac8b
        .quad 0xd3b0da49a66bde53
        .quad 0x31e83b4161d081c1
        .quad 0x97e8c7129e062b4f
        .quad 0x49e48f4f29320ad8
        .quad 0x5bece14b6f18683f
        .quad 0x55cf1eb62d550317



        .quad 0x5879101065c23d58
        .quad 0x8b9d086d5094819c
        .quad 0xe2402fa912c55fa7
        .quad 0x669a6564570891d4
        .quad 0x3076b5e37df58c52
        .quad 0xd73ab9dde799cc36
        .quad 0xbd831ce34913ee20
        .quad 0x1a56fbaa62ba0133
        .quad 0x943e6b505c9dc9ec
        .quad 0x302557bba77c371a
        .quad 0x9873ae5641347651
        .quad 0x13c4836799c58a5c



        .quad 0x423a5d465ab3e1b9
        .quad 0xfc13c187c7f13f61
        .quad 0x19f83664ecb5b9b6
        .quad 0x66f80c93a637b607
        .quad 0xc4dcfb6a5d8bd080
        .quad 0xdeebc4ec571a4842
        .quad 0xd4b2e883b8e55365
        .quad 0x50bdc87dc8e5b827
        .quad 0x606d37836edfe111
        .quad 0x32353e15f011abd9
        .quad 0x64b03ac325b73b96
        .quad 0x1dd56444725fd5ae



        .quad 0x8fa47ff83362127d
        .quad 0xbc9f6ac471cd7c15
        .quad 0x6e71454349220c8b
        .quad 0x0e645912219f732e
        .quad 0xc297e60008bac89a
        .quad 0x7d4cea11eae1c3e0
        .quad 0xf3e38be19fe7977c
        .quad 0x3a3a450f63a305cd
        .quad 0x078f2f31d8394627
        .quad 0x389d3183de94a510
        .quad 0xd1e36c6d17996f80
        .quad 0x318c8d9393a9a87b



        .quad 0xf2745d032afffe19
        .quad 0x0c9f3c497f24db66
        .quad 0xbc98d3e3ba8598ef
        .quad 0x224c7c679a1d5314
        .quad 0x5d669e29ab1dd398
        .quad 0xfc921658342d9e3b
        .quad 0x55851dfdf35973cd
        .quad 0x509a41c325950af6
        .quad 0xbdc06edca6f925e9
        .quad 0x793ef3f4641b1f33
        .quad 0x82ec12809d833e89
        .quad 0x05bff02328a11389



        .quad 0x3632137023cae00b
        .quad 0x544acf0ad1accf59
        .quad 0x96741049d21a1c88
        .quad 0x780b8cc3fa2a44a7
        .quad 0x6881a0dd0dc512e4
        .quad 0x4fe70dc844a5fafe
        .quad 0x1f748e6b8f4a5240
        .quad 0x576277cdee01a3ea
        .quad 0x1ef38abc234f305f
        .quad 0x9a577fbd1405de08
        .quad 0x5e82a51434e62a0d
        .quad 0x5ff418726271b7a1



        .quad 0x398e080c1789db9d
        .quad 0xa7602025f3e778f5
        .quad 0xfa98894c06bd035d
        .quad 0x106a03dc25a966be
        .quad 0xe5db47e813b69540
        .quad 0xf35d2a3b432610e1
        .quad 0xac1f26e938781276
        .quad 0x29d4db8ca0a0cb69
        .quad 0xd9ad0aaf333353d0
        .quad 0x38669da5acd309e5
        .quad 0x3c57658ac888f7f0
        .quad 0x4ab38a51052cbefa



        .quad 0xdfdacbee4324c0e9
        .quad 0x054442883f955bb7
        .quad 0xdef7aaa8ea31609f
        .quad 0x68aee70642287cff
        .quad 0xf68fe2e8809de054
        .quad 0xe3bc096a9c82bad1
        .quad 0x076353d40aadbf45
        .quad 0x7b9b1fb5dea1959e
        .quad 0xf01cc8f17471cc0c
        .quad 0x95242e37579082bb
        .quad 0x27776093d3e46b5f
        .quad 0x2d13d55a28bd85fb



        .quad 0xfac5d2065b35b8da
        .quad 0xa8da8a9a85624bb7
        .quad 0xccd2ca913d21cd0f
        .quad 0x6b8341ee8bf90d58
        .quad 0xbf019cce7aee7a52
        .quad 0xa8ded2b6e454ead3
        .quad 0x3c619f0b87a8bb19
        .quad 0x3619b5d7560916d8
        .quad 0x3579f26b0282c4b2
        .quad 0x64d592f24fafefae
        .quad 0xb7cded7b28c8c7c0
        .quad 0x6a927b6b7173a8d7



        .quad 0x1f6db24f986e4656
        .quad 0x1021c02ed1e9105b
        .quad 0xf8ff3fff2cc0a375
        .quad 0x1d2a6bf8c6c82592
        .quad 0x8d7040863ece88eb
        .quad 0xf0e307a980eec08c
        .quad 0xac2250610d788fda
        .quad 0x056d92a43a0d478d
        .quad 0x1b05a196fc3da5a1
        .quad 0x77d7a8c243b59ed0
        .quad 0x06da3d6297d17918
        .quad 0x66fbb494f12353f7



        .quad 0x751a50b9d85c0fb8
        .quad 0xd1afdc258bcf097b
        .quad 0x2f16a6a38309a969
        .quad 0x14ddff9ee5b00659
        .quad 0xd6d70996f12309d6
        .quad 0xdbfb2385e9c3d539
        .quad 0x46d602b0f7552411
        .quad 0x270a0b0557843e0c
        .quad 0x61ff0640a7862bcc
        .quad 0x81cac09a5f11abfe
        .quad 0x9047830455d12abb
        .quad 0x19a4bde1945ae873



        .quad 0x9b9f26f520a6200a
        .quad 0x64804443cf13eaf8
        .quad 0x8a63673f8631edd3
        .quad 0x72bbbce11ed39dc1
        .quad 0x40c709dec076c49f
        .quad 0x657bfaf27f3e53f6
        .quad 0x40662331eca042c4
        .quad 0x14b375487eb4df04
        .quad 0xae853c94ab66dc47
        .quad 0xeb62343edf762d6e
        .quad 0xf08e0e186fb2f7d1
        .quad 0x4f0b1c02700ab37a



        .quad 0xe1706787d81951fa
        .quad 0xa10a2c8eb290c77b
        .quad 0xe7382fa03ed66773
        .quad 0x0a4d84710bcc4b54
        .quad 0x79fd21ccc1b2e23f
        .quad 0x4ae7c281453df52a
        .quad 0xc8172ec9d151486b
        .quad 0x68abe9443e0a7534
        .quad 0xda12c6c407831dcb
        .quad 0x0da230d74d5c510d
        .quad 0x4ab1531e6bd404e1
        .quad 0x4106b166bcf440ef



        .quad 0x02e57a421cd23668
        .quad 0x4ad9fb5d0eaef6fd
        .quad 0x954e6727b1244480
        .quad 0x7f792f9d2699f331
        .quad 0xa485ccd539e4ecf2
        .quad 0x5aa3f3ad0555bab5
        .quad 0x145e3439937df82d
        .quad 0x1238b51e1214283f
        .quad 0x0b886b925fd4d924
        .quad 0x60906f7a3626a80d
        .quad 0xecd367b4b98abd12
        .quad 0x2876beb1def344cf



        .quad 0xdc84e93563144691
        .quad 0x632fe8a0d61f23f4
        .quad 0x4caa800612a9a8d5
        .quad 0x48f9dbfa0e9918d3
        .quad 0xd594b3333a8a85f8
        .quad 0x4ea37689e78d7d58
        .quad 0x73bf9f455e8e351f
        .quad 0x5507d7d2bc41ebb4
        .quad 0x1ceb2903299572fc
        .quad 0x7c8ccaa29502d0ee
        .quad 0x91bfa43411cce67b
        .quad 0x5784481964a831e7



        .quad 0xda7c2b256768d593
        .quad 0x98c1c0574422ca13
        .quad 0xf1a80bd5ca0ace1d
        .quad 0x29cdd1adc088a690
        .quad 0xd6cfd1ef5fddc09c
        .quad 0xe82b3efdf7575dce
        .quad 0x25d56b5d201634c2
        .quad 0x3041c6bb04ed2b9b
        .quad 0x0ff2f2f9d956e148
        .quad 0xade797759f356b2e
        .quad 0x1a4698bb5f6c025c
        .quad 0x104bbd6814049a7b



        .quad 0x51f0fd3168f1ed67
        .quad 0x2c811dcdd86f3bc2
        .quad 0x44dc5c4304d2f2de
        .quad 0x5be8cc57092a7149
        .quad 0xa95d9a5fd67ff163
        .quad 0xe92be69d4cc75681
        .quad 0xb7f8024cde20f257
        .quad 0x204f2a20fb072df5
        .quad 0xc8143b3d30ebb079
        .quad 0x7589155abd652e30
        .quad 0x653c3c318f6d5c31
        .quad 0x2570fb17c279161f



        .quad 0x3efa367f2cb61575
        .quad 0xf5f96f761cd6026c
        .quad 0xe8c7142a65b52562
        .quad 0x3dcb65ea53030acd
        .quad 0x192ea9550bb8245a
        .quad 0xc8e6fba88f9050d1
        .quad 0x7986ea2d88a4c935
        .quad 0x241c5f91de018668
        .quad 0x28d8172940de6caa
        .quad 0x8fbf2cf022d9733a
        .quad 0x16d7fcdd235b01d1
        .quad 0x08420edd5fcdf0e5



        .quad 0xcdff20ab8362fa4a
        .quad 0x57e118d4e21a3e6e
        .quad 0xe3179617fc39e62b
        .quad 0x0d9a53efbc1769fd
        .quad 0x0358c34e04f410ce
        .quad 0xb6135b5a276e0685
        .quad 0x5d9670c7ebb91521
        .quad 0x04d654f321db889c
        .quad 0x5e7dc116ddbdb5d5
        .quad 0x2954deb68da5dd2d
        .quad 0x1cb608173334a292
        .quad 0x4a7a4f2618991ad7



        .quad 0xf4a718025fb15f95
        .quad 0x3df65f346b5c1b8f
        .quad 0xcdfcf08500e01112
        .quad 0x11b50c4cddd31848
        .quad 0x24c3b291af372a4b
        .quad 0x93da8270718147f2
        .quad 0xdd84856486899ef2
        .quad 0x4a96314223e0ee33
        .quad 0xa6e8274408a4ffd6
        .quad 0x738e177e9c1576d9
        .quad 0x773348b63d02b3f2
        .quad 0x4f4bce4dce6bcc51



        .quad 0xa71fce5ae2242584
        .quad 0x26ea725692f58a9e
        .quad 0xd21a09d71cea3cf4
        .quad 0x73fcdd14b71c01e6
        .quad 0x30e2616ec49d0b6f
        .quad 0xe456718fcaec2317
        .quad 0x48eb409bf26b4fa6
        .quad 0x3042cee561595f37
        .quad 0x427e7079449bac41
        .quad 0x855ae36dbce2310a
        .quad 0x4cae76215f841a7c
        .quad 0x389e740c9a9ce1d6



        .quad 0x64fcb3ae34dcb9ce
        .quad 0x97500323e348d0ad
        .quad 0x45b3f07d62c6381b
        .quad 0x61545379465a6788
        .quad 0xc9bd78f6570eac28
        .quad 0xe55b0b3227919ce1
        .quad 0x65fc3eaba19b91ed
        .quad 0x25c425e5d6263690
        .quad 0x3f3e06a6f1d7de6e
        .quad 0x3ef976278e062308
        .quad 0x8c14f6264e8a6c77
        .quad 0x6539a08915484759



        .quad 0xe9d21f74c3d2f773
        .quad 0xc150544125c46845
        .quad 0x624e5ce8f9b99e33
        .quad 0x11c5e4aac5cd186c
        .quad 0xddc4dbd414bb4a19
        .quad 0x19b2bc3c98424f8e
        .quad 0x48a89fd736ca7169
        .quad 0x0f65320ef019bd90
        .quad 0xd486d1b1cafde0c6
        .quad 0x4f3fe6e3163b5181
        .quad 0x59a8af0dfaf2939a
        .quad 0x4cabc7bdec33072a



        .quad 0x16faa8fb532f7428
        .quad 0xdbd42ea046a4e272
        .quad 0x5337653b8b9ea480
        .quad 0x4065947223973f03
        .quad 0xf7c0a19c1a54a044
        .quad 0x4a1c5e2477bd9fbb
        .quad 0xa6e3ca115af22972
        .quad 0x1819bb953f2e9e0d
        .quad 0x498fbb795e042e84
        .quad 0x7d0dd89a7698b714
        .quad 0x8bfb0ba427fe6295
        .quad 0x36ba82e721200524



        .quad 0xd60ecbb74245ec41
        .quad 0xfd9be89e34348716
        .quad 0xc9240afee42284de
        .quad 0x4472f648d0531db4
        .quad 0xc8d69d0a57274ed5
        .quad 0x45ba803260804b17
        .quad 0xdf3cda102255dfac
        .quad 0x77d221232709b339
        .quad 0x498a6d7064ad94d8
        .quad 0xa5b5c8fd9af62263
        .quad 0x8ca8ed0545c141f4
        .quad 0x2c63bec3662d358c



        .quad 0x7fe60d8bea787955
        .quad 0xb9dc117eb5f401b7
        .quad 0x91c7c09a19355cce
        .quad 0x22692ef59442bedf
        .quad 0x9a518b3a8586f8bf
        .quad 0x9ee71af6cbb196f0
        .quad 0xaa0625e6a2385cf2
        .quad 0x1deb2176ddd7c8d1
        .quad 0x8563d19a2066cf6c
        .quad 0x401bfd8c4dcc7cd7
        .quad 0xd976a6becd0d8f62
        .quad 0x67cfd773a278b05e



        .quad 0x8dec31faef3ee475
        .quad 0x99dbff8a9e22fd92
        .quad 0x512d11594e26cab1
        .quad 0x0cde561eec4310b9
        .quad 0x2d5fa9855a4e586a
        .quad 0x65f8f7a449beab7e
        .quad 0xaa074dddf21d33d3
        .quad 0x185cba721bcb9dee
        .quad 0x93869da3f4e3cb41
        .quad 0xbf0392f540f7977e
        .quad 0x026204fcd0463b83
        .quad 0x3ec91a769eec6eed



        .quad 0x1e9df75bf78166ad
        .quad 0x4dfda838eb0cd7af
        .quad 0xba002ed8c1eaf988
        .quad 0x13fedb3e11f33cfc
        .quad 0x0fad2fb7b0a3402f
        .quad 0x46615ecbfb69f4a8
        .quad 0xf745bcc8c5f8eaa6
        .quad 0x7a5fa8794a94e896
        .quad 0x52958faa13cd67a1
        .quad 0x965ee0818bdbb517
        .quad 0x16e58daa2e8845b3
        .quad 0x357d397d5499da8f



        .quad 0x1ebfa05fb0bace6c
        .quad 0xc934620c1caf9a1e
        .quad 0xcc771cc41d82b61a
        .quad 0x2d94a16aa5f74fec
        .quad 0x481dacb4194bfbf8
        .quad 0x4d77e3f1bae58299
        .quad 0x1ef4612e7d1372a0
        .quad 0x3a8d867e70ff69e1
        .quad 0x6f58cd5d55aff958
        .quad 0xba3eaa5c75567721
        .quad 0x75c123999165227d
        .quad 0x69be1343c2f2b35e



        .quad 0x0e091d5ee197c92a
        .quad 0x4f51019f2945119f
        .quad 0x143679b9f034e99c
        .quad 0x7d88112e4d24c696
        .quad 0x82bbbdac684b8de3
        .quad 0xa2f4c7d03fca0718
        .quad 0x337f92fbe096aaa8
        .quad 0x200d4d8c63587376
        .quad 0x208aed4b4893b32b
        .quad 0x3efbf23ebe59b964
        .quad 0xd762deb0dba5e507
        .quad 0x69607bd681bd9d94



        .quad 0xf6be021068de1ce1
        .quad 0xe8d518e70edcbc1f
        .quad 0xe3effdd01b5505a5
        .quad 0x35f63353d3ec3fd0
        .quad 0x3b7f3bd49323a902
        .quad 0x7c21b5566b2c6e53
        .quad 0xe5ba8ff53a7852a7
        .quad 0x28bc77a5838ece00
        .quad 0x63ba78a8e25d8036
        .quad 0x63651e0094333490
        .quad 0x48d82f20288ce532
        .quad 0x3a31abfa36b57524



        .quad 0x239e9624089c0a2e
        .quad 0xc748c4c03afe4738
        .quad 0x17dbed2a764fa12a
        .quad 0x639b93f0321c8582
        .quad 0xc08f788f3f78d289
        .quad 0xfe30a72ca1404d9f
        .quad 0xf2778bfccf65cc9d
        .quad 0x7ee498165acb2021
        .quad 0x7bd508e39111a1c3
        .quad 0x2b2b90d480907489
        .quad 0xe7d2aec2ae72fd19
        .quad 0x0edf493c85b602a6



        .quad 0xaecc8158599b5a68
        .quad 0xea574f0febade20e
        .quad 0x4fe41d7422b67f07
        .quad 0x403b92e3019d4fb4
        .quad 0x6767c4d284764113
        .quad 0xa090403ff7f5f835
        .quad 0x1c8fcffacae6bede
        .quad 0x04c00c54d1dfa369
        .quad 0x4dc22f818b465cf8
        .quad 0x71a0f35a1480eff8
        .quad 0xaee8bfad04c7d657
        .quad 0x355bb12ab26176f4



        .quad 0xa71e64cc7493bbf4
        .quad 0xe5bd84d9eca3b0c3
        .quad 0x0a6bc50cfa05e785
        .quad 0x0f9b8132182ec312
        .quad 0xa301dac75a8c7318
        .quad 0xed90039db3ceaa11
        .quad 0x6f077cbf3bae3f2d
        .quad 0x7518eaf8e052ad8e
        .quad 0xa48859c41b7f6c32
        .quad 0x0f2d60bcf4383298
        .quad 0x1815a929c9b1d1d9
        .quad 0x47c3871bbb1755c4



        .quad 0x5144539771ec4f48
        .quad 0xf805b17dc98c5d6e
        .quad 0xf762c11a47c3c66b
        .quad 0x00b89b85764699dc
        .quad 0xfbe65d50c85066b0
        .quad 0x62ecc4b0b3a299b0
        .quad 0xe53754ea441ae8e0
        .quad 0x08fea02ce8d48d5f
        .quad 0x824ddd7668deead0
        .quad 0xc86445204b685d23
        .quad 0xb514cfcd5d89d665
        .quad 0x473829a74f75d537



        .quad 0x82d2da754679c418
        .quad 0xe63bd7d8b2618df0
        .quad 0x355eef24ac47eb0a
        .quad 0x2078684c4833c6b4
        .quad 0x23d9533aad3902c9
        .quad 0x64c2ddceef03588f
        .quad 0x15257390cfe12fb4
        .quad 0x6c668b4d44e4d390
        .quad 0x3b48cf217a78820c
        .quad 0xf76a0ab281273e97
        .quad 0xa96c65a78c8eed7b
        .quad 0x7411a6054f8a433f



        .quad 0x4d659d32b99dc86d
        .quad 0x044cdc75603af115
        .quad 0xb34c712cdcc2e488
        .quad 0x7c136574fb8134ff
        .quad 0x579ae53d18b175b4
        .quad 0x68713159f392a102
        .quad 0x8455ecba1eef35f5
        .quad 0x1ec9a872458c398f
        .quad 0xb8e6a4d400a2509b
        .quad 0x9b81d7020bc882b4
        .quad 0x57e7cc9bf1957561
        .quad 0x3add88a5c7cd6460



        .quad 0xab895770b635dcf2
        .quad 0x02dfef6cf66c1fbc
        .quad 0x85530268beb6d187
        .quad 0x249929fccc879e74
        .quad 0x85c298d459393046
        .quad 0x8f7e35985ff659ec
        .quad 0x1d2ca22af2f66e3a
        .quad 0x61ba1131a406a720
        .quad 0xa3d0a0f116959029
        .quad 0x023b6b6cba7ebd89
        .quad 0x7bf15a3e26783307
        .quad 0x5620310cbbd8ece7



        .quad 0x528993434934d643
        .quad 0xb9dbf806a51222f5
        .quad 0x8f6d878fc3f41c22
        .quad 0x37676a2a4d9d9730
        .quad 0x6646b5f477e285d6
        .quad 0x40e8ff676c8f6193
        .quad 0xa6ec7311abb594dd
        .quad 0x7ec846f3658cec4d
        .quad 0x9b5e8f3f1da22ec7
        .quad 0x130f1d776c01cd13
        .quad 0x214c8fcfa2989fb8
        .quad 0x6daaf723399b9dd5



        .quad 0x591e4a5610628564
        .quad 0x2a4bb87ca8b4df34
        .quad 0xde2a2572e7a38e43
        .quad 0x3cbdabd9fee5046e
        .quad 0x81aebbdd2cd13070
        .quad 0x962e4325f85a0e9e
        .quad 0xde9391aacadffecb
        .quad 0x53177fda52c230e6
        .quad 0xa7bc970650b9de79
        .quad 0x3d12a7fbc301b59b
        .quad 0x02652e68d36ae38c
        .quad 0x79d739835a6199dc



        .quad 0xd9354df64131c1bd
        .quad 0x758094a186ec5822
        .quad 0x4464ee12e459f3c2
        .quad 0x6c11fce4cb133282
        .quad 0x21c9d9920d591737
        .quad 0x9bea41d2e9b46cd6
        .quad 0xe20e84200d89bfca
        .quad 0x79d99f946eae5ff8
        .quad 0xf17b483568673205
        .quad 0x387deae83caad96c
        .quad 0x61b471fd56ffe386
        .quad 0x31741195b745a599



        .quad 0xe8d10190b77a360b
        .quad 0x99b983209995e702
        .quad 0xbd4fdff8fa0247aa
        .quad 0x2772e344e0d36a87
        .quad 0x17f8ba683b02a047
        .quad 0x50212096feefb6c8
        .quad 0x70139be21556cbe2
        .quad 0x203e44a11d98915b
        .quad 0xd6863eba37b9e39f
        .quad 0x105bc169723b5a23
        .quad 0x104f6459a65c0762
        .quad 0x567951295b4d38d4



        .quad 0x535fd60613037524
        .quad 0xe210adf6b0fbc26a
        .quad 0xac8d0a9b23e990ae
        .quad 0x47204d08d72fdbf9
        .quad 0x07242eb30d4b497f
        .quad 0x1ef96306b9bccc87
        .quad 0x37950934d8116f45
        .quad 0x05468d6201405b04
        .quad 0x00f565a9f93267de
        .quad 0xcecfd78dc0d58e8a
        .quad 0xa215e2dcf318e28e
        .quad 0x4599ee919b633352



        .quad 0xd3c220ca70e0e76b
        .quad 0xb12bea58ea9f3094
        .quad 0x294ddec8c3271282
        .quad 0x0c3539e1a1d1d028
        .quad 0xac746d6b861ae579
        .quad 0x31ab0650f6aea9dc
        .quad 0x241d661140256d4c
        .quad 0x2f485e853d21a5de
        .quad 0x329744839c0833f3
        .quad 0x6fe6257fd2abc484
        .quad 0x5327d1814b358817
        .quad 0x65712585893fe9bc



        .quad 0x9c102fb732a61161
        .quad 0xe48e10dd34d520a8
        .quad 0x365c63546f9a9176
        .quad 0x32f6fe4c046f6006
        .quad 0x81c29f1bd708ee3f
        .quad 0xddcb5a05ae6407d0
        .quad 0x97aec1d7d2a3eba7
        .quad 0x1590521a91d50831
        .quad 0x40a3a11ec7910acc
        .quad 0x9013dff8f16d27ae
        .quad 0x1a9720d8abb195d4
        .quad 0x1bb9fe452ea98463



        .quad 0xe9d1d950b3d54f9e
        .quad 0x2d5f9cbee00d33c1
        .quad 0x51c2c656a04fc6ac
        .quad 0x65c091ee3c1cbcc9
        .quad 0xcf5e6c95cc36747c
        .quad 0x294201536b0bc30d
        .quad 0x453ac67cee797af0
        .quad 0x5eae6ab32a8bb3c9
        .quad 0x7083661114f118ea
        .quad 0x2b37b87b94349cad
        .quad 0x7273f51cb4e99f40
        .quad 0x78a2a95823d75698



        .quad 0xa2b072e95c8c2ace
        .quad 0x69cffc96651e9c4b
        .quad 0x44328ef842e7b42b
        .quad 0x5dd996c122aadeb3
        .quad 0xb4f23c425ef83207
        .quad 0xabf894d3c9a934b5
        .quad 0xd0708c1339fd87f7
        .quad 0x1876789117166130
        .quad 0x925b5ef0670c507c
        .quad 0x819bc842b93c33bf
        .quad 0x10792e9a70dd003f
        .quad 0x59ad4b7a6e28dc74



        .quad 0x5f3a7562eb3dbe47
        .quad 0xf7ea38548ebda0b8
        .quad 0x00c3e53145747299
        .quad 0x1304e9e71627d551
        .quad 0x583b04bfacad8ea2
        .quad 0x29b743e8148be884
        .quad 0x2b1e583b0810c5db
        .quad 0x2b5449e58eb3bbaa
        .quad 0x789814d26adc9cfe
        .quad 0x3c1bab3f8b48dd0b
        .quad 0xda0fe1fff979c60a
        .quad 0x4468de2d7c2dd693



        .quad 0x51bb355e9419469e
        .quad 0x33e6dc4c23ddc754
        .quad 0x93a5b6d6447f9962
        .quad 0x6cce7c6ffb44bd63
        .quad 0x4b9ad8c6f86307ce
        .quad 0x21113531435d0c28
        .quad 0xd4a866c5657a772c
        .quad 0x5da6427e63247352
        .quad 0x1a94c688deac22ca
        .quad 0xb9066ef7bbae1ff8
        .quad 0x88ad8c388d59580f
        .quad 0x58f29abfe79f2ca8



        .quad 0xe90ecfab8de73e68
        .quad 0x54036f9f377e76a5
        .quad 0xf0495b0bbe015982
        .quad 0x577629c4a7f41e36
        .quad 0x4b5a64bf710ecdf6
        .quad 0xb14ce538462c293c
        .quad 0x3643d056d50b3ab9
        .quad 0x6af93724185b4870
        .quad 0x3220024509c6a888
        .quad 0xd2e036134b558973
        .quad 0x83e236233c33289f
        .quad 0x701f25bb0caec18f



        .quad 0xc3a8b0f8e4616ced
        .quad 0xf700660e9e25a87d
        .quad 0x61e3061ff4bca59c
        .quad 0x2e0c92bfbdc40be9
        .quad 0x9d18f6d97cbec113
        .quad 0x844a06e674bfdbe4
        .quad 0x20f5b522ac4e60d6
        .quad 0x720a5bc050955e51
        .quad 0x0c3f09439b805a35
        .quad 0xe84e8b376242abfc
        .quad 0x691417f35c229346
        .quad 0x0e9b9cbb144ef0ec



        .quad 0xfbbad48ffb5720ad
        .quad 0xee81916bdbf90d0e
        .quad 0xd4813152635543bf
        .quad 0x221104eb3f337bd8
        .quad 0x8dee9bd55db1beee
        .quad 0xc9c3ab370a723fb9
        .quad 0x44a8f1bf1c68d791
        .quad 0x366d44191cfd3cde
        .quad 0x9e3c1743f2bc8c14
        .quad 0x2eda26fcb5856c3b
        .quad 0xccb82f0e68a7fb97
        .quad 0x4167a4e6bc593244



        .quad 0x643b9d2876f62700
        .quad 0x5d1d9d400e7668eb
        .quad 0x1b4b430321fc0684
        .quad 0x7938bb7e2255246a
        .quad 0xc2be2665f8ce8fee
        .quad 0xe967ff14e880d62c
        .quad 0xf12e6e7e2f364eee
        .quad 0x34b33370cb7ed2f6
        .quad 0xcdc591ee8681d6cc
        .quad 0xce02109ced85a753
        .quad 0xed7485c158808883
        .quad 0x1176fc6e2dfe65e4



        .quad 0xb4af6cd05b9c619b
        .quad 0x2ddfc9f4b2a58480
        .quad 0x3d4fa502ebe94dc4
        .quad 0x08fc3a4c677d5f34
        .quad 0xdb90e28949770eb8
        .quad 0x98fbcc2aacf440a3
        .quad 0x21354ffeded7879b
        .quad 0x1f6a3e54f26906b6
        .quad 0x60a4c199d30734ea
        .quad 0x40c085b631165cd6
        .quad 0xe2333e23f7598295
        .quad 0x4f2fad0116b900d1



        .quad 0x44beb24194ae4e54
        .quad 0x5f541c511857ef6c
        .quad 0xa61e6b2d368d0498
        .quad 0x445484a4972ef7ab
        .quad 0x962cd91db73bb638
        .quad 0xe60577aafc129c08
        .quad 0x6f619b39f3b61689
        .quad 0x3451995f2944ee81
        .quad 0x9152fcd09fea7d7c
        .quad 0x4a816c94b0935cf6
        .quad 0x258e9aaa47285c40
        .quad 0x10b89ca6042893b7



        .quad 0x9b2a426e3b646025
        .quad 0x32127190385ce4cf
        .quad 0xa25cffc2dd6dea45
        .quad 0x06409010bea8de75
        .quad 0xd67cded679d34aa0
        .quad 0xcc0b9ec0cc4db39f
        .quad 0xa535a456e35d190f
        .quad 0x2e05d9eaf61f6fef
        .quad 0xc447901ad61beb59
        .quad 0x661f19bce5dc880a
        .quad 0x24685482b7ca6827
        .quad 0x293c778cefe07f26



        .quad 0x86809e7007069096
        .quad 0xaad75b15e4e50189
        .quad 0x07f35715a21a0147
        .quad 0x0487f3f112815d5e
        .quad 0x16c795d6a11ff200
        .quad 0xcb70d0e2b15815c9
        .quad 0x89f293209b5395b5
        .quad 0x50b8c2d031e47b4f
        .quad 0x48350c08068a4962
        .quad 0x6ffdd05351092c9a
        .quad 0x17af4f4aaf6fc8dd
        .quad 0x4b0553b53cdba58b



        .quad 0x9c65fcbe1b32ff79
        .quad 0xeb75ea9f03b50f9b
        .quad 0xfced2a6c6c07e606
        .quad 0x35106cd551717908
        .quad 0xbf05211b27c152d4
        .quad 0x5ec26849bd1af639
        .quad 0x5e0b2caa8e6fab98
        .quad 0x054c8bdd50bd0840
        .quad 0x38a0b12f1dcf073d
        .quad 0x4b60a8a3b7f6a276
        .quad 0xfed5ac25d3404f9a
        .quad 0x72e82d5e5505c229



        .quad 0x6b0b697ff0d844c8
        .quad 0xbb12f85cd979cb49
        .quad 0xd2a541c6c1da0f1f
        .quad 0x7b7c242958ce7211
        .quad 0x00d9cdfd69771d02
        .quad 0x410276cd6cfbf17e
        .quad 0x4c45306c1cb12ec7
        .quad 0x2857bf1627500861
        .quad 0x9f21903f0101689e
        .quad 0xd779dfd3bf861005
        .quad 0xa122ee5f3deb0f1b
        .quad 0x510df84b485a00d4



        .quad 0xa54133bb9277a1fa
        .quad 0x74ec3b6263991237
        .quad 0x1a3c54dc35d2f15a
        .quad 0x2d347144e482ba3a
        .quad 0x24b3c887c70ac15e
        .quad 0xb0f3a557fb81b732
        .quad 0x9b2cde2fe578cc1b
        .quad 0x4cf7ed0703b54f8e
        .quad 0x6bd47c6598fbee0f
        .quad 0x9e4733e2ab55be2d
        .quad 0x1093f624127610c5
        .quad 0x4e05e26ad0a1eaa4



        .quad 0xda9b6b624b531f20
        .quad 0x429a760e77509abb
        .quad 0xdbe9f522e823cb80
        .quad 0x618f1856880c8f82
        .quad 0x1833c773e18fe6c0
        .quad 0xe3c4711ad3c87265
        .quad 0x3bfd3c4f0116b283
        .quad 0x1955875eb4cd4db8
        .quad 0x6da6de8f0e399799
        .quad 0x7ad61aa440fda178
        .quad 0xb32cd8105e3563dd
        .quad 0x15f6beae2ae340ae



        .quad 0x862bcb0c31ec3a62
        .quad 0x810e2b451138f3c2
        .quad 0x788ec4b839dac2a4
        .quad 0x28f76867ae2a9281
        .quad 0xba9a0f7b9245e215
        .quad 0xf368612dd98c0dbb
        .quad 0x2e84e4cbf220b020
        .quad 0x6ba92fe962d90eda
        .quad 0x3e4df9655884e2aa
        .quad 0xbd62fbdbdbd465a5
        .quad 0xd7596caa0de9e524
        .quad 0x6e8042ccb2b1b3d7



        .quad 0xf10d3c29ce28ca6e
        .quad 0xbad34540fcb6093d
        .quad 0xe7426ed7a2ea2d3f
        .quad 0x08af9d4e4ff298b9
        .quad 0x1530653616521f7e
        .quad 0x660d06b896203dba
        .quad 0x2d3989bc545f0879
        .quad 0x4b5303af78ebd7b0
        .quad 0x72f8a6c3bebcbde8
        .quad 0x4f0fca4adc3a8e89
        .quad 0x6fa9d4e8c7bfdf7a
        .quad 0x0dcf2d679b624eb7



        .quad 0x3d5947499718289c
        .quad 0x12ebf8c524533f26
        .quad 0x0262bfcb14c3ef15
        .quad 0x20b878d577b7518e
        .quad 0x753941be5a45f06e
        .quad 0xd07caeed6d9c5f65
        .quad 0x11776b9c72ff51b6
        .quad 0x17d2d1d9ef0d4da9
        .quad 0x27f2af18073f3e6a
        .quad 0xfd3fe519d7521069
        .quad 0x22e3b72c3ca60022
        .quad 0x72214f63cc65c6a7



        .quad 0xb4e37f405307a693
        .quad 0xaba714d72f336795
        .quad 0xd6fbd0a773761099
        .quad 0x5fdf48c58171cbc9
        .quad 0x1d9db7b9f43b29c9
        .quad 0xd605824a4f518f75
        .quad 0xf2c072bd312f9dc4
        .quad 0x1f24ac855a1545b0
        .quad 0x24d608328e9505aa
        .quad 0x4748c1d10c1420ee
        .quad 0xc7ffe45c06fb25a2
        .quad 0x00ba739e2ae395e6



        .quad 0x592e98de5c8790d6
        .quad 0xe5bfb7d345c2a2df
        .quad 0x115a3b60f9b49922
        .quad 0x03283a3e67ad78f3
        .quad 0xae4426f5ea88bb26
        .quad 0x360679d984973bfb
        .quad 0x5c9f030c26694e50
        .quad 0x72297de7d518d226
        .quad 0x48241dc7be0cb939
        .quad 0x32f19b4d8b633080
        .quad 0xd3dfc90d02289308
        .quad 0x05e1296846271945



        .quad 0xba82eeb32d9c495a
        .quad 0xceefc8fcf12bb97c
        .quad 0xb02dabae93b5d1e0
        .quad 0x39c00c9c13698d9b
        .quad 0xadbfbbc8242c4550
        .quad 0xbcc80cecd03081d9
        .quad 0x843566a6f5c8df92
        .quad 0x78cf25d38258ce4c
        .quad 0x15ae6b8e31489d68
        .quad 0xaa851cab9c2bf087
        .quad 0xc9a75a97f04efa05
        .quad 0x006b52076b3ff832



        .quad 0x29e0cfe19d95781c
        .quad 0xb681df18966310e2
        .quad 0x57df39d370516b39
        .quad 0x4d57e3443bc76122
        .quad 0xf5cb7e16b9ce082d
        .quad 0x3407f14c417abc29
        .quad 0xd4b36bce2bf4a7ab
        .quad 0x7de2e9561a9f75ce
        .quad 0xde70d4f4b6a55ecb
        .quad 0x4801527f5d85db99
        .quad 0xdbc9c440d3ee9a81
        .quad 0x6b2a90af1a6029ed



        .quad 0x6923f4fc9ae61e97
        .quad 0x5735281de03f5fd1
        .quad 0xa764ae43e6edd12d
        .quad 0x5fd8f4e9d12d3e4a
        .quad 0x77ebf3245bb2d80a
        .quad 0xd8301b472fb9079b
        .quad 0xc647e6f24cee7333
        .quad 0x465812c8276c2109
        .quad 0x4d43beb22a1062d9
        .quad 0x7065fb753831dc16
        .quad 0x180d4a7bde2968d7
        .quad 0x05b32c2b1cb16790



        .quad 0xc8c05eccd24da8fd
        .quad 0xa1cf1aac05dfef83
        .quad 0xdbbeeff27df9cd61
        .quad 0x3b5556a37b471e99
        .quad 0xf7fca42c7ad58195
        .quad 0x3214286e4333f3cc
        .quad 0xb6c29d0d340b979d
        .quad 0x31771a48567307e1
        .quad 0x32b0c524e14dd482
        .quad 0xedb351541a2ba4b6
        .quad 0xa3d16048282b5af3
        .quad 0x4fc079d27a7336eb



        .quad 0x51c938b089bf2f7f
        .quad 0x2497bd6502dfe9a7
        .quad 0xffffc09c7880e453
        .quad 0x124567cecaf98e92
        .quad 0xdc348b440c86c50d
        .quad 0x1337cbc9cc94e651
        .quad 0x6422f74d643e3cb9
        .quad 0x241170c2bae3cd08
        .quad 0x3ff9ab860ac473b4
        .quad 0xf0911dee0113e435
        .quad 0x4ae75060ebc6c4af
        .quad 0x3f8612966c87000d



        .quad 0x0c9c5303f7957be4
        .quad 0xa3c31a20e085c145
        .quad 0xb0721d71d0850050
        .quad 0x0aba390eab0bf2da
        .quad 0x529fdffe638c7bf3
        .quad 0xdf2b9e60388b4995
        .quad 0xe027b34f1bad0249
        .quad 0x7bc92fc9b9fa74ed
        .quad 0x9f97ef2e801ad9f9
        .quad 0x83697d5479afda3a
        .quad 0xe906b3ffbd596b50
        .quad 0x02672b37dd3fb8e0



        .quad 0x48b2ca8b260885e4
        .quad 0xa4286bec82b34c1c
        .quad 0x937e1a2617f58f74
        .quad 0x741d1fcbab2ca2a5
        .quad 0xee9ba729398ca7f5
        .quad 0xeb9ca6257a4849db
        .quad 0x29eb29ce7ec544e1
        .quad 0x232ca21ef736e2c8
        .quad 0xbf61423d253fcb17
        .quad 0x08803ceafa39eb14
        .quad 0xf18602df9851c7af
        .quad 0x0400f3a049e3414b



        .quad 0xabce0476ba61c55b
        .quad 0x36a3d6d7c4d39716
        .quad 0x6eb259d5e8d82d09
        .quad 0x0c9176e984d756fb
        .quad 0x2efba412a06e7b06
        .quad 0x146785452c8d2560
        .quad 0xdf9713ebd67a91c7
        .quad 0x32830ac7157eadf3
        .quad 0x0e782a7ab73769e8
        .quad 0x04a05d7875b18e2c
        .quad 0x29525226ebcceae1
        .quad 0x0d794f8383eba820



        .quad 0xff35f5cb9e1516f4
        .quad 0xee805bcf648aae45
        .quad 0xf0d73c2bb93a9ef3
        .quad 0x097b0bf22092a6c2
        .quad 0x7be44ce7a7a2e1ac
        .quad 0x411fd93efad1b8b7
        .quad 0x1734a1d70d5f7c9b
        .quad 0x0d6592233127db16
        .quad 0xc48bab1521a9d733
        .quad 0xa6c2eaead61abb25
        .quad 0x625c6c1cc6cb4305
        .quad 0x7fc90fea93eb3a67



        .quad 0x0408f1fe1f5c5926
        .quad 0x1a8f2f5e3b258bf4
        .quad 0x40a951a2fdc71669
        .quad 0x6598ee93c98b577e
        .quad 0xc527deb59c7cb23d
        .quad 0x955391695328404e
        .quad 0xd64392817ccf2c7a
        .quad 0x6ce97dabf7d8fa11
        .quad 0x25b5a8e50ef7c48f
        .quad 0xeb6034116f2ce532
        .quad 0xc5e75173e53de537
        .quad 0x73119fa08c12bb03



        .quad 0xed30129453f1a4cb
        .quad 0xbce621c9c8f53787
        .quad 0xfacb2b1338bee7b9
        .quad 0x3025798a9ea8428c
        .quad 0x7845b94d21f4774d
        .quad 0xbf62f16c7897b727
        .quad 0x671857c03c56522b
        .quad 0x3cd6a85295621212
        .quad 0x3fecde923aeca999
        .quad 0xbdaa5b0062e8c12f
        .quad 0x67b99dfc96988ade
        .quad 0x3f52c02852661036



        .quad 0xffeaa48e2a1351c6
        .quad 0x28624754fa7f53d7
        .quad 0x0b5ba9e57582ddf1
        .quad 0x60c0104ba696ac59
        .quad 0x9258bf99eec416c6
        .quad 0xac8a5017a9d2f671
        .quad 0x629549ab16dea4ab
        .quad 0x05d0e85c99091569
        .quad 0x051de020de9cbe97
        .quad 0xfa07fc56b50bcf74
        .quad 0x378cec9f0f11df65
        .quad 0x36853c69ab96de4d



        .quad 0x36d9b8de78f39b2d
        .quad 0x7f42ed71a847b9ec
        .quad 0x241cd1d679bd3fde
        .quad 0x6a704fec92fbce6b
        .quad 0x4433c0b0fac5e7be
        .quad 0x724bae854c08dcbe
        .quad 0xf1f24cc446978f9b
        .quad 0x4a0aff6d62825fc8
        .quad 0xe917fb9e61095301
        .quad 0xc102df9402a092f8
        .quad 0xbf09e2f5fa66190b
        .quad 0x681109bee0dcfe37



        .quad 0x559a0cc9782a0dde
        .quad 0x551dcdb2ea718385
        .quad 0x7f62865b31ef238c
        .quad 0x504aa7767973613d
        .quad 0x9c18fcfa36048d13
        .quad 0x29159db373899ddd
        .quad 0xdc9f350b9f92d0aa
        .quad 0x26f57eee878a19d4
        .quad 0x0cab2cd55687efb1
        .quad 0x5180d162247af17b
        .quad 0x85c15a344f5a2467
        .quad 0x4041943d9dba3069



        .quad 0xc3c0eeba43ebcc96
        .quad 0x8d749c9c26ea9caf
        .quad 0xd9fa95ee1c77ccc6
        .quad 0x1420a1d97684340f
        .quad 0x4b217743a26caadd
        .quad 0x47a6b424648ab7ce
        .quad 0xcb1d4f7a03fbc9e3
        .quad 0x12d931429800d019
        .quad 0x00c67799d337594f
        .quad 0x5e3c5140b23aa47b
        .quad 0x44182854e35ff395
        .quad 0x1b4f92314359a012



        .quad 0x3e5c109d89150951
        .quad 0x39cefa912de9696a
        .quad 0x20eae43f975f3020
        .quad 0x239b572a7f132dae
        .quad 0x33cf3030a49866b1
        .quad 0x251f73d2215f4859
        .quad 0xab82aa4051def4f6
        .quad 0x5ff191d56f9a23f6
        .quad 0x819ed433ac2d9068
        .quad 0x2883ab795fc98523
        .quad 0xef4572805593eb3d
        .quad 0x020c526a758f36cb



        .quad 0x779834f89ed8dbbc
        .quad 0xc8f2aaf9dc7ca46c
        .quad 0xa9524cdca3e1b074
        .quad 0x02aacc4615313877
        .quad 0xe931ef59f042cc89
        .quad 0x2c589c9d8e124bb6
        .quad 0xadc8e18aaec75997
        .quad 0x452cfe0a5602c50c
        .quad 0x86a0f7a0647877df
        .quad 0xbbc464270e607c9f
        .quad 0xab17ea25f1fb11c9
        .quad 0x4cfb7d7b304b877b



        .quad 0x72b43d6cb89b75fe
        .quad 0x54c694d99c6adc80
        .quad 0xb8c3aa373ee34c9f
        .quad 0x14b4622b39075364
        .quad 0xe28699c29789ef12
        .quad 0x2b6ecd71df57190d
        .quad 0xc343c857ecc970d0
        .quad 0x5b1d4cbc434d3ac5
        .quad 0xb6fb2615cc0a9f26
        .quad 0x3a4f0e2bb88dcce5
        .quad 0x1301498b3369a705
        .quad 0x2f98f71258592dd1



        .quad 0x0c94a74cb50f9e56
        .quad 0x5b1ff4a98e8e1320
        .quad 0x9a2acc2182300f67
        .quad 0x3a6ae249d806aaf9
        .quad 0x2e12ae444f54a701
        .quad 0xfcfe3ef0a9cbd7de
        .quad 0xcebf890d75835de0
        .quad 0x1d8062e9e7614554
        .quad 0x657ada85a9907c5a
        .quad 0x1a0ea8b591b90f62
        .quad 0x8d0e1dfbdf34b4e9
        .quad 0x298b8ce8aef25ff3



        .quad 0x2a927953eff70cb2
        .quad 0x4b89c92a79157076
        .quad 0x9418457a30a7cf6a
        .quad 0x34b8a8404d5ce485
        .quad 0x837a72ea0a2165de
        .quad 0x3fab07b40bcf79f6
        .quad 0x521636c77738ae70
        .quad 0x6ba6271803a7d7dc
        .quad 0xc26eecb583693335
        .quad 0xd5a813df63b5fefd
        .quad 0xa293aa9aa4b22573
        .quad 0x71d62bdd465e1c6a



        .quad 0x6533cc28d378df80
        .quad 0xf6db43790a0fa4b4
        .quad 0xe3645ff9f701da5a
        .quad 0x74d5f317f3172ba4
        .quad 0xcd2db5dab1f75ef5
        .quad 0xd77f95cf16b065f5
        .quad 0x14571fea3f49f085
        .quad 0x1c333621262b2b3d
        .quad 0xa86fe55467d9ca81
        .quad 0x398b7c752b298c37
        .quad 0xda6d0892e3ac623b
        .quad 0x4aebcc4547e9d98c



        .quad 0x53175a7205d21a77
        .quad 0xb0c04422d3b934d4
        .quad 0xadd9f24bdd5deadc
        .quad 0x074f46e69f10ff8c
        .quad 0x0de9b204a059a445
        .quad 0xe15cb4aa4b17ad0f
        .quad 0xe1bbec521f79c557
        .quad 0x2633f1b9d071081b
        .quad 0xc1fb4177018b9910
        .quad 0xa6ea20dc6c0fe140
        .quad 0xd661f3e74354c6ff
        .quad 0x5ecb72e6f1a3407a



        .quad 0xa515a31b2259fb4e
        .quad 0x0960f3972bcac52f
        .quad 0xedb52fec8d3454cb
        .quad 0x382e2720c476c019
        .quad 0xfeeae106e8e86997
        .quad 0x9863337f98d09383
        .quad 0x9470480eaa06ebef
        .quad 0x038b6898d4c5c2d0
        .quad 0xf391c51d8ace50a6
        .quad 0x3142d0b9ae2d2948
        .quad 0xdb4d5a1a7f24ca80
        .quad 0x21aeba8b59250ea8



        .quad 0x24f13b34cf405530
        .quad 0x3c44ea4a43088af7
        .quad 0x5dd5c5170006a482
        .quad 0x118eb8f8890b086d
        .quad 0x53853600f0087f23
        .quad 0x4c461879da7d5784
        .quad 0x6af303deb41f6860
        .quad 0x0a3c16c5c27c18ed
        .quad 0x17e49c17cc947f3d
        .quad 0xccc6eda6aac1d27b
        .quad 0xdf6092ceb0f08e56
        .quad 0x4909b3e22c67c36b



        .quad 0x9c9c85ea63fe2e89
        .quad 0xbe1baf910e9412ec
        .quad 0x8f7baa8a86fbfe7b
        .quad 0x0fb17f9fef968b6c
        .quad 0x59a16676706ff64e
        .quad 0x10b953dd0d86a53d
        .quad 0x5848e1e6ce5c0b96
        .quad 0x2d8b78e712780c68
        .quad 0x79d5c62eafc3902b
        .quad 0x773a215289e80728
        .quad 0xc38ae640e10120b9
        .quad 0x09ae23717b2b1a6d



        .quad 0xbb6a192a4e4d083c
        .quad 0x34ace0630029e192
        .quad 0x98245a59aafabaeb
        .quad 0x6d9c8a9ada97faac
        .quad 0x10ab8fa1ad32b1d0
        .quad 0xe9aced1be2778b24
        .quad 0xa8856bc0373de90f
        .quad 0x66f35ddddda53996
        .quad 0xd27d9afb24997323
        .quad 0x1bb7e07ef6f01d2e
        .quad 0x2ba7472df52ecc7f
        .quad 0x03019b4f646f9dc8



        .quad 0x04a186b5565345cd
        .quad 0xeee76610bcc4116a
        .quad 0x689c73b478fb2a45
        .quad 0x387dcbff65697512
        .quad 0xaf09b214e6b3dc6b
        .quad 0x3f7573b5ad7d2f65
        .quad 0xd019d988100a23b0
        .quad 0x392b63a58b5c35f7
        .quad 0x4093addc9c07c205
        .quad 0xc565be15f532c37e
        .quad 0x63dbecfd1583402a
        .quad 0x61722b4aef2e032e



        .quad 0x0012aafeecbd47af
        .quad 0x55a266fb1cd46309
        .quad 0xf203eb680967c72c
        .quad 0x39633944ca3c1429
        .quad 0xd6b07a5581cb0e3c
        .quad 0x290ff006d9444969
        .quad 0x08680b6a16dcda1f
        .quad 0x5568d2b75a06de59
        .quad 0x8d0cb88c1b37cfe1
        .quad 0x05b6a5a3053818f3
        .quad 0xf2e9bc04b787d959
        .quad 0x6beba1249add7f64



        .quad 0x1d06005ca5b1b143
        .quad 0x6d4c6bb87fd1cda2
        .quad 0x6ef5967653fcffe7
        .quad 0x097c29e8c1ce1ea5
        .quad 0x5c3cecb943f5a53b
        .quad 0x9cc9a61d06c08df2
        .quad 0xcfba639a85895447
        .quad 0x5a845ae80df09fd5
        .quad 0x4ce97dbe5deb94ca
        .quad 0x38d0a4388c709c48
        .quad 0xc43eced4a169d097
        .quad 0x0a1249fff7e587c3



        .quad 0x12f0071b276d01c9
        .quad 0xe7b8bac586c48c70
        .quad 0x5308129b71d6fba9
        .quad 0x5d88fbf95a3db792
        .quad 0x0b408d9e7354b610
        .quad 0x806b32535ba85b6e
        .quad 0xdbe63a034a58a207
        .quad 0x173bd9ddc9a1df2c
        .quad 0x2b500f1efe5872df
        .quad 0x58d6582ed43918c1
        .quad 0xe6ed278ec9673ae0
        .quad 0x06e1cd13b19ea319



        .quad 0x40d0ad516f166f23
        .quad 0x118e32931fab6abe
        .quad 0x3fe35e14a04d088e
        .quad 0x3080603526e16266
        .quad 0x472baf629e5b0353
        .quad 0x3baa0b90278d0447
        .quad 0x0c785f469643bf27
        .quad 0x7f3a6a1a8d837b13
        .quad 0xf7e644395d3d800b
        .quad 0x95a8d555c901edf6
        .quad 0x68cd7830592c6339
        .quad 0x30d0fded2e51307e



        .quad 0xe0594d1af21233b3
        .quad 0x1bdbe78ef0cc4d9c
        .quad 0x6965187f8f499a77
        .quad 0x0a9214202c099868
        .quad 0x9cb4971e68b84750
        .quad 0xa09572296664bbcf
        .quad 0x5c8de72672fa412b
        .quad 0x4615084351c589d9
        .quad 0xbc9019c0aeb9a02e
        .quad 0x55c7110d16034cae
        .quad 0x0e6df501659932ec
        .quad 0x3bca0d2895ca5dfe



        .quad 0x40f031bc3c5d62a4
        .quad 0x19fc8b3ecff07a60
        .quad 0x98183da2130fb545
        .quad 0x5631deddae8f13cd
        .quad 0x9c688eb69ecc01bf
        .quad 0xf0bc83ada644896f
        .quad 0xca2d955f5f7a9fe2
        .quad 0x4ea8b4038df28241
        .quad 0x2aed460af1cad202
        .quad 0x46305305a48cee83
        .quad 0x9121774549f11a5f
        .quad 0x24ce0930542ca463



        .quad 0x1fe890f5fd06c106
        .quad 0xb5c468355d8810f2
        .quad 0x827808fe6e8caf3e
        .quad 0x41d4e3c28a06d74b
        .quad 0x3fcfa155fdf30b85
        .quad 0xd2f7168e36372ea4
        .quad 0xb2e064de6492f844
        .quad 0x549928a7324f4280
        .quad 0xf26e32a763ee1a2e
        .quad 0xae91e4b7d25ffdea
        .quad 0xbc3bd33bd17f4d69
        .quad 0x491b66dec0dcff6a



        .quad 0x98f5b13dc7ea32a7
        .quad 0xe3d5f8cc7e16db98
        .quad 0xac0abf52cbf8d947
        .quad 0x08f338d0c85ee4ac
        .quad 0x75f04a8ed0da64a1
        .quad 0xed222caf67e2284b
        .quad 0x8234a3791f7b7ba4
        .quad 0x4cf6b8b0b7018b67
        .quad 0xc383a821991a73bd
        .quad 0xab27bc01df320c7a
        .quad 0xc13d331b84777063
        .quad 0x530d4a82eb078a99



        .quad 0x004c3630e1f94825
        .quad 0x7e2d78268cab535a
        .quad 0xc7482323cc84ff8b
        .quad 0x65ea753f101770b9
        .quad 0x6d6973456c9abf9e
        .quad 0x257fb2fc4900a880
        .quad 0x2bacf412c8cfb850
        .quad 0x0db3e7e00cbfbd5b
        .quad 0x3d66fc3ee2096363
        .quad 0x81d62c7f61b5cb6b
        .quad 0x0fbe044213443b1a
        .quad 0x02a4ec1921e1a1db



        .quad 0x5ce6259a3b24b8a2
        .quad 0xb8577acc45afa0b8
        .quad 0xcccbe6e88ba07037
        .quad 0x3d143c51127809bf
        .quad 0xf5c86162f1cf795f
        .quad 0x118c861926ee57f2
        .quad 0x172124851c063578
        .quad 0x36d12b5dec067fcf
        .quad 0x126d279179154557
        .quad 0xd5e48f5cfc783a0a
        .quad 0x36bdb6e8df179bac
        .quad 0x2ef517885ba82859



        .quad 0x88bd438cd11e0d4a
        .quad 0x30cb610d43ccf308
        .quad 0xe09a0e3791937bcc
        .quad 0x4559135b25b1720c
        .quad 0x1ea436837c6da1e9
        .quad 0xf9c189af1fb9bdbe
        .quad 0x303001fcce5dd155
        .quad 0x28a7c99ebc57be52
        .quad 0xb8fd9399e8d19e9d
        .quad 0x908191cb962423ff
        .quad 0xb2b948d747c742a3
        .quad 0x37f33226d7fb44c4



        .quad 0x0dae8767b55f6e08
        .quad 0x4a43b3b35b203a02
        .quad 0xe3725a6e80af8c79
        .quad 0x0f7a7fd1705fa7a3
        .quad 0x33912553c821b11d
        .quad 0x66ed42c241e301df
        .quad 0x066fcc11104222fd
        .quad 0x307a3b41c192168f
        .quad 0x8eeb5d076eb55ce0
        .quad 0x2fc536bfaa0d925a
        .quad 0xbe81830fdcb6c6e8
        .quad 0x556c7045827baf52



        .quad 0x8e2b517302e9d8b7
        .quad 0xe3e52269248714e8
        .quad 0xbd4fbd774ca960b5
        .quad 0x6f4b4199c5ecada9
        .quad 0xb94b90022bf44406
        .quad 0xabd4237eff90b534
        .quad 0x7600a960faf86d3a
        .quad 0x2f45abdac2322ee3
        .quad 0x61af4912c8ef8a6a
        .quad 0xe58fa4fe43fb6e5e
        .quad 0xb5afcc5d6fd427cf
        .quad 0x6a5393281e1e11eb



        .quad 0xf3da5139a5d1ee89
        .quad 0x8145457cff936988
        .quad 0x3f622fed00e188c4
        .quad 0x0f513815db8b5a3d
        .quad 0x0fff04fe149443cf
        .quad 0x53cac6d9865cddd7
        .quad 0x31385b03531ed1b7
        .quad 0x5846a27cacd1039d
        .quad 0x4ff5cdac1eb08717
        .quad 0x67e8b29590f2e9bc
        .quad 0x44093b5e237afa99
        .quad 0x0d414bed8708b8b2



        .quad 0xcfb68265fd0e75f6
        .quad 0xe45b3e28bb90e707
        .quad 0x7242a8de9ff92c7a
        .quad 0x685b3201933202dd
        .quad 0x81886a92294ac9e8
        .quad 0x23162b45d55547be
        .quad 0x94cfbc4403715983
        .quad 0x50eb8fdb134bc401
        .quad 0xc0b73ec6d6b330cd
        .quad 0x84e44807132faff1
        .quad 0x732b7352c4a5dee1
        .quad 0x5d7c7cf1aa7cd2d2



        .quad 0xaf3b46bf7a4aafa2
        .quad 0xb78705ec4d40d411
        .quad 0x114f0c6aca7c15e3
        .quad 0x3f364faaa9489d4d
        .quad 0x33d1013e9b73a562
        .quad 0x925cef5748ec26e1
        .quad 0xa7fce614dd468058
        .quad 0x78b0fad41e9aa438
        .quad 0xbf56a431ed05b488
        .quad 0xa533e66c9c495c7e
        .quad 0xe8652baf87f3651a
        .quad 0x0241800059d66c33



        .quad 0xceb077fea37a5be4
        .quad 0xdb642f02e5a5eeb7
        .quad 0xc2e6d0c5471270b8
        .quad 0x4771b65538e4529c
        .quad 0x28350c7dcf38ea01
        .quad 0x7c6cdbc0b2917ab6
        .quad 0xace7cfbe857082f7
        .quad 0x4d2845aba2d9a1e0
        .quad 0xbb537fe0447070de
        .quad 0xcba744436dd557df
        .quad 0xd3b5a3473600dbcb
        .quad 0x4aeabbe6f9ffd7f8



        .quad 0x4630119e40d8f78c
        .quad 0xa01a9bc53c710e11
        .quad 0x486d2b258910dd79
        .quad 0x1e6c47b3db0324e5
        .quad 0x6a2134bcc4a9c8f2
        .quad 0xfbf8fd1c8ace2e37
        .quad 0x000ae3049911a0ba
        .quad 0x046e3a616bc89b9e
        .quad 0x14e65442f03906be
        .quad 0x4a019d54e362be2a
        .quad 0x68ccdfec8dc230c7
        .quad 0x7cfb7e3faf6b861c



        .quad 0x4637974e8c58aedc
        .quad 0xb9ef22fbabf041a4
        .quad 0xe185d956e980718a
        .quad 0x2f1b78fab143a8a6
        .quad 0x96eebffb305b2f51
        .quad 0xd3f938ad889596b8
        .quad 0xf0f52dc746d5dd25
        .quad 0x57968290bb3a0095
        .quad 0xf71ab8430a20e101
        .quad 0xf393658d24f0ec47
        .quad 0xcf7509a86ee2eed1
        .quad 0x7dc43e35dc2aa3e1



        .quad 0x85966665887dd9c3
        .quad 0xc90f9b314bb05355
        .quad 0xc6e08df8ef2079b1
        .quad 0x7ef72016758cc12f
        .quad 0x5a782a5c273e9718
        .quad 0x3576c6995e4efd94
        .quad 0x0f2ed8051f237d3e
        .quad 0x044fb81d82d50a99
        .quad 0xc1df18c5a907e3d9
        .quad 0x57b3371dce4c6359
        .quad 0xca704534b201bb49
        .quad 0x7f79823f9c30dd2e



        .quad 0x8334d239a3b513e8
        .quad 0xc13670d4b91fa8d8
        .quad 0x12b54136f590bd33
        .quad 0x0a4e0373d784d9b4
        .quad 0x6a9c1ff068f587ba
        .quad 0x0827894e0050c8de
        .quad 0x3cbf99557ded5be7
        .quad 0x64a9b0431c06d6f0
        .quad 0x2eb3d6a15b7d2919
        .quad 0xb0b4f6a0d53a8235
        .quad 0x7156ce4389a45d47
        .quad 0x071a7d0ace18346c



        .quad 0xd3072daac887ba0b
        .quad 0x01262905bfa562ee
        .quad 0xcf543002c0ef768b
        .quad 0x2c3bcc7146ea7e9c
        .quad 0xcc0c355220e14431
        .quad 0x0d65950709b15141
        .quad 0x9af5621b209d5f36
        .quad 0x7c69bcf7617755d3
        .quad 0x07f0d7eb04e8295f
        .quad 0x10db18252f50f37d
        .quad 0xe951a9a3171798d7
        .quad 0x6f5a9a7322aca51d



        .quad 0x8ba1000c2f41c6c5
        .quad 0xc49f79c10cfefb9b
        .quad 0x4efa47703cc51c9f
        .quad 0x494e21a2e147afca
        .quad 0xe729d4eba3d944be
        .quad 0x8d9e09408078af9e
        .quad 0x4525567a47869c03
        .quad 0x02ab9680ee8d3b24
        .quad 0xefa48a85dde50d9a
        .quad 0x219a224e0fb9a249
        .quad 0xfa091f1dd91ef6d9
        .quad 0x6b5d76cbea46bb34



        .quad 0x8857556cec0cd994
        .quad 0x6472dc6f5cd01dba
        .quad 0xaf0169148f42b477
        .quad 0x0ae333f685277354
        .quad 0xe0f941171e782522
        .quad 0xf1e6ae74036936d3
        .quad 0x408b3ea2d0fcc746
        .quad 0x16fb869c03dd313e
        .quad 0x288e199733b60962
        .quad 0x24fc72b4d8abe133
        .quad 0x4811f7ed0991d03e
        .quad 0x3f81e38b8f70d075



        .quad 0x7f910fcc7ed9affe
        .quad 0x545cb8a12465874b
        .quad 0xa8397ed24b0c4704
        .quad 0x50510fc104f50993
        .quad 0x0adb7f355f17c824
        .quad 0x74b923c3d74299a4
        .quad 0xd57c3e8bcbf8eaf7
        .quad 0x0ad3e2d34cdedc3d
        .quad 0x6f0c0fc5336e249d
        .quad 0x745ede19c331cfd9
        .quad 0xf2d6fd0009eefe1c
        .quad 0x127c158bf0fa1ebe



        .quad 0xf6197c422e9879a2
        .quad 0xa44addd452ca3647
        .quad 0x9b413fc14b4eaccb
        .quad 0x354ef87d07ef4f68
        .quad 0xdea28fc4ae51b974
        .quad 0x1d9973d3744dfe96
        .quad 0x6240680b873848a8
        .quad 0x4ed82479d167df95
        .quad 0xfee3b52260c5d975
        .quad 0x50352efceb41b0b8
        .quad 0x8808ac30a9f6653c
        .quad 0x302d92d20539236d



        .quad 0x4c59023fcb3efb7c
        .quad 0x6c2fcb99c63c2a94
        .quad 0xba4190e2c3c7e084
        .quad 0x0e545daea51874d9
        .quad 0x957b8b8b0df53c30
        .quad 0x2a1c770a8e60f098
        .quad 0xbbc7a670345796de
        .quad 0x22a48f9a90c99bc9
        .quad 0x6b7dc0dc8d3fac58
        .quad 0x5497cd6ce6e42bfd
        .quad 0x542f7d1bf400d305
        .quad 0x4159f47f048d9136



        .quad 0x20ad660839e31e32
        .quad 0xf81e1bd58405be50
        .quad 0xf8064056f4dabc69
        .quad 0x14d23dd4ce71b975
        .quad 0x748515a8bbd24839
        .quad 0x77128347afb02b55
        .quad 0x50ba2ac649a2a17f
        .quad 0x060525513ad730f1
        .quad 0xf2398e098aa27f82
        .quad 0x6d7982bb89a1b024
        .quad 0xfa694084214dd24c
        .quad 0x71ab966fa32301c3



        .quad 0x2dcbd8e34ded02fc
        .quad 0x1151f3ec596f22aa
        .quad 0xbca255434e0328da
        .quad 0x35768fbe92411b22
        .quad 0xb1088a0702809955
        .quad 0x43b273ea0b43c391
        .quad 0xca9b67aefe0686ed
        .quad 0x605eecbf8335f4ed
        .quad 0x83200a656c340431
        .quad 0x9fcd71678ee59c2f
        .quad 0x75d4613f71300f8a
        .quad 0x7a912faf60f542f9



        .quad 0xb204585e5edc1a43
        .quad 0x9f0e16ee5897c73c
        .quad 0x5b82c0ae4e70483c
        .quad 0x624a170e2bddf9be
        .quad 0x253f4f8dfa2d5597
        .quad 0x25e49c405477130c
        .quad 0x00c052e5996b1102
        .quad 0x33cb966e33bb6c4a
        .quad 0x597028047f116909
        .quad 0x828ac41c1e564467
        .quad 0x70417dbde6217387
        .quad 0x721627aefbac4384



        .quad 0x97d03bc38736add5
        .quad 0x2f1422afc532b130
        .quad 0x3aa68a057101bbc4
        .quad 0x4c946cf7e74f9fa7
        .quad 0xfd3097bc410b2f22
        .quad 0xf1a05da7b5cfa844
        .quad 0x61289a1def57ca74
        .quad 0x245ea199bb821902
        .quad 0xaedca66978d477f8
        .quad 0x1898ba3c29117fe1
        .quad 0xcf73f983720cbd58
        .quad 0x67da12e6b8b56351



        .quad 0x7067e187b4bd6e07
        .quad 0x6e8f0203c7d1fe74
        .quad 0x93c6aa2f38c85a30
        .quad 0x76297d1f3d75a78a
        .quad 0x2b7ef3d38ec8308c
        .quad 0x828fd7ec71eb94ab
        .quad 0x807c3b36c5062abd
        .quad 0x0cb64cb831a94141
        .quad 0x3030fc33534c6378
        .quad 0xb9635c5ce541e861
        .quad 0x15d9a9bed9b2c728
        .quad 0x49233ea3f3775dcb



        .quad 0x629398fa8dbffc3a
        .quad 0xe12fe52dd54db455
        .quad 0xf3be11dfdaf25295
        .quad 0x628b140dce5e7b51
        .quad 0x7b3985fe1c9f249b
        .quad 0x4fd6b2d5a1233293
        .quad 0xceb345941adf4d62
        .quad 0x6987ff6f542de50c
        .quad 0x47e241428f83753c
        .quad 0x6317bebc866af997
        .quad 0xdabb5b433d1a9829
        .quad 0x074d8d245287fb2d



        .quad 0x8337d9cd440bfc31
        .quad 0x729d2ca1af318fd7
        .quad 0xa040a4a4772c2070
        .quad 0x46002ef03a7349be
        .quad 0x481875c6c0e31488
        .quad 0x219429b2e22034b4
        .quad 0x7223c98a31283b65
        .quad 0x3420d60b342277f9
        .quad 0xfaa23adeaffe65f7
        .quad 0x78261ed45be0764c
        .quad 0x441c0a1e2f164403
        .quad 0x5aea8e567a87d395



        .quad 0x7813c1a2bca4283d
        .quad 0xed62f091a1863dd9
        .quad 0xaec7bcb8c268fa86
        .quad 0x10e5d3b76f1cae4c
        .quad 0x2dbc6fb6e4e0f177
        .quad 0x04e1bf29a4bd6a93
        .quad 0x5e1966d4787af6e8
        .quad 0x0edc5f5eb426d060
        .quad 0x5453bfd653da8e67
        .quad 0xe9dc1eec24a9f641
        .quad 0xbf87263b03578a23
        .quad 0x45b46c51361cba72



        .quad 0xa9402abf314f7fa1
        .quad 0xe257f1dc8e8cf450
        .quad 0x1dbbd54b23a8be84
        .quad 0x2177bfa36dcb713b
        .quad 0xce9d4ddd8a7fe3e4
        .quad 0xab13645676620e30
        .quad 0x4b594f7bb30e9958
        .quad 0x5c1c0aef321229df
        .quad 0x37081bbcfa79db8f
        .quad 0x6048811ec25f59b3
        .quad 0x087a76659c832487
        .quad 0x4ae619387d8ab5bb



        .quad 0x8ddbf6aa5344a32e
        .quad 0x7d88eab4b41b4078
        .quad 0x5eb0eb974a130d60
        .quad 0x1a00d91b17bf3e03
        .quad 0x61117e44985bfb83
        .quad 0xfce0462a71963136
        .quad 0x83ac3448d425904b
        .quad 0x75685abe5ba43d64
        .quad 0x6e960933eb61f2b2
        .quad 0x543d0fa8c9ff4952
        .quad 0xdf7275107af66569
        .quad 0x135529b623b0e6aa



        .quad 0x18f0dbd7add1d518
        .quad 0x979f7888cfc11f11
        .quad 0x8732e1f07114759b
        .quad 0x79b5b81a65ca3a01
        .quad 0xf5c716bce22e83fe
        .quad 0xb42beb19e80985c1
        .quad 0xec9da63714254aae
        .quad 0x5972ea051590a613
        .quad 0x0fd4ac20dc8f7811
        .quad 0x9a9ad294ac4d4fa8
        .quad 0xc01b2d64b3360434
        .quad 0x4f7e9c95905f3bdb



        .quad 0x62674bbc5781302e
        .quad 0xd8520f3989addc0f
        .quad 0x8c2999ae53fbd9c6
        .quad 0x31993ad92e638e4c
        .quad 0x71c8443d355299fe
        .quad 0x8bcd3b1cdbebead7
        .quad 0x8092499ef1a49466
        .quad 0x1942eec4a144adc8
        .quad 0x7dac5319ae234992
        .quad 0x2c1b3d910cea3e92
        .quad 0x553ce494253c1122
        .quad 0x2a0a65314ef9ca75



        .quad 0x2db7937ff7f927c2
        .quad 0xdb741f0617d0a635
        .quad 0x5982f3a21155af76
        .quad 0x4cf6e218647c2ded
        .quad 0xcf361acd3c1c793a
        .quad 0x2f9ebcac5a35bc3b
        .quad 0x60e860e9a8cda6ab
        .quad 0x055dc39b6dea1a13
        .quad 0xb119227cc28d5bb6
        .quad 0x07e24ebc774dffab
        .quad 0xa83c78cee4a32c89
        .quad 0x121a307710aa24b6



        .quad 0xe4db5d5e9f034a97
        .quad 0xe153fc093034bc2d
        .quad 0x460546919551d3b1
        .quad 0x333fc76c7a40e52d
        .quad 0xd659713ec77483c9
        .quad 0x88bfe077b82b96af
        .quad 0x289e28231097bcd3
        .quad 0x527bb94a6ced3a9b
        .quad 0x563d992a995b482e
        .quad 0x3405d07c6e383801
        .quad 0x485035de2f64d8e5
        .quad 0x6b89069b20a7a9f7



        .quad 0x812aa0416270220d
        .quad 0x995a89faf9245b4e
        .quad 0xffadc4ce5072ef05
        .quad 0x23bc2103aa73eb73
        .quad 0x4082fa8cb5c7db77
        .quad 0x068686f8c734c155
        .quad 0x29e6c8d9f6e7a57e
        .quad 0x0473d308a7639bcf
        .quad 0xcaee792603589e05
        .quad 0x2b4b421246dcc492
        .quad 0x02a1ef74e601a94f
        .quad 0x102f73bfde04341a



        .quad 0xb5a2d50c7ec20d3e
        .quad 0xc64bdd6ea0c97263
        .quad 0x56e89052c1ff734d
        .quad 0x4929c6f72b2ffaba
        .quad 0x358ecba293a36247
        .quad 0xaf8f9862b268fd65
        .quad 0x412f7e9968a01c89
        .quad 0x5786f312cd754524
        .quad 0x337788ffca14032c
        .quad 0xf3921028447f1ee3
        .quad 0x8b14071f231bccad
        .quad 0x4c817b4bf2344783



        .quad 0x0ff853852871b96e
        .quad 0xe13e9fab60c3f1bb
        .quad 0xeefd595325344402
        .quad 0x0a37c37075b7744b
        .quad 0x413ba057a40b4484
        .quad 0xba4c2e1a4f5f6a43
        .quad 0x614ba0a5aee1d61c
        .quad 0x78a1531a8b05dc53
        .quad 0x6cbdf1703ad0562b
        .quad 0x8ecf4830c92521a3
        .quad 0xdaebd303fd8424e7
        .quad 0x72ad82a42e5ec56f



        .quad 0x3f9e8e35bafb65f6
        .quad 0x39d69ec8f27293a1
        .quad 0x6cb8cd958cf6a3d0
        .quad 0x1734778173adae6d
        .quad 0xc368939167024bc3
        .quad 0x8e69d16d49502fda
        .quad 0xfcf2ec3ce45f4b29
        .quad 0x065f669ea3b4cbc4
        .quad 0x8a00aec75532db4d
        .quad 0xb869a4e443e31bb1
        .quad 0x4a0f8552d3a7f515
        .quad 0x19adeb7c303d7c08



        .quad 0xc720cb6153ead9a3
        .quad 0x55b2c97f512b636e
        .quad 0xb1e35b5fd40290b1
        .quad 0x2fd9ccf13b530ee2
        .quad 0x9d05ba7d43c31794
        .quad 0x2470c8ff93322526
        .quad 0x8323dec816197438
        .quad 0x2852709881569b53
        .quad 0x07bd475b47f796b8
        .quad 0xd2c7b013542c8f54
        .quad 0x2dbd23f43b24f87e
        .quad 0x6551afd77b0901d6



        .quad 0x4546baaf54aac27f
        .quad 0xf6f66fecb2a45a28
        .quad 0x582d1b5b562bcfe8
        .quad 0x44b123f3920f785f
        .quad 0x68a24ce3a1d5c9ac
        .quad 0xbb77a33d10ff6461
        .quad 0x0f86ce4425d3166e
        .quad 0x56507c0950b9623b
        .quad 0x1206f0b7d1713e63
        .quad 0x353fe3d915bafc74
        .quad 0x194ceb970ad9d94d
        .quad 0x62fadd7cf9d03ad3



        .quad 0xc6b5967b5598a074
        .quad 0x5efe91ce8e493e25
        .quad 0xd4b72c4549280888
        .quad 0x20ef1149a26740c2
        .quad 0x3cd7bc61e7ce4594
        .quad 0xcd6b35a9b7dd267e
        .quad 0xa080abc84366ef27
        .quad 0x6ec7c46f59c79711
        .quad 0x2f07ad636f09a8a2
        .quad 0x8697e6ce24205e7d
        .quad 0xc0aefc05ee35a139
        .quad 0x15e80958b5f9d897



        .quad 0x25a5ef7d0c3e235b
        .quad 0x6c39c17fbe134ee7
        .quad 0xc774e1342dc5c327
        .quad 0x021354b892021f39
        .quad 0x4dd1ed355bb061c4
        .quad 0x42dc0cef941c0700
        .quad 0x61305dc1fd86340e
        .quad 0x56b2cc930e55a443
        .quad 0x1df79da6a6bfc5a2
        .quad 0x02f3a2749fde4369
        .quad 0xb323d9f2cda390a7
        .quad 0x7be0847b8774d363



        .quad 0x8c99cc5a8b3f55c3
        .quad 0x0611d7253fded2a0
        .quad 0xed2995ff36b70a36
        .quad 0x1f699a54d78a2619
        .quad 0x1466f5af5307fa11
        .quad 0x817fcc7ded6c0af2
        .quad 0x0a6de44ec3a4a3fb
        .quad 0x74071475bc927d0b
        .quad 0xe77292f373e7ea8a
        .quad 0x296537d2cb045a31
        .quad 0x1bd0653ed3274fde
        .quad 0x2f9a2c4476bd2966



        .quad 0xeb18b9ab7f5745c6
        .quad 0x023a8aee5787c690
        .quad 0xb72712da2df7afa9
        .quad 0x36597d25ea5c013d
        .quad 0xa2b4dae0b5511c9a
        .quad 0x7ac860292bffff06
        .quad 0x981f375df5504234
        .quad 0x3f6bd725da4ea12d
        .quad 0x734d8d7b106058ac
        .quad 0xd940579e6fc6905f
        .quad 0x6466f8f99202932d
        .quad 0x7b7ecc19da60d6d0



        .quad 0x78c2373c695c690d
        .quad 0xdd252e660642906e
        .quad 0x951d44444ae12bd2
        .quad 0x4235ad7601743956
        .quad 0x6dae4a51a77cfa9b
        .quad 0x82263654e7a38650
        .quad 0x09bbffcd8f2d82db
        .quad 0x03bedc661bf5caba
        .quad 0x6258cb0d078975f5
        .quad 0x492942549189f298
        .quad 0xa0cab423e2e36ee4
        .quad 0x0e7ce2b0cdf066a1



        .quad 0xc494643ac48c85a3
        .quad 0xfd361df43c6139ad
        .quad 0x09db17dd3ae94d48
        .quad 0x666e0a5d8fb4674a
        .quad 0xfea6fedfd94b70f9
        .quad 0xf130c051c1fcba2d
        .quad 0x4882d47e7f2fab89
        .quad 0x615256138aeceeb5
        .quad 0x2abbf64e4870cb0d
        .quad 0xcd65bcf0aa458b6b
        .quad 0x9abe4eba75e8985d
        .quad 0x7f0bc810d514dee4



        .quad 0xb9006ba426f4136f
        .quad 0x8d67369e57e03035
        .quad 0xcbc8dfd94f463c28
        .quad 0x0d1f8dbcf8eedbf5
        .quad 0x83ac9dad737213a0
        .quad 0x9ff6f8ba2ef72e98
        .quad 0x311e2edd43ec6957
        .quad 0x1d3a907ddec5ab75
        .quad 0xba1693313ed081dc
        .quad 0x29329fad851b3480
        .quad 0x0128013c030321cb
        .quad 0x00011b44a31bfde3



        .quad 0x3fdfa06c3fc66c0c
        .quad 0x5d40e38e4dd60dd2
        .quad 0x7ae38b38268e4d71
        .quad 0x3ac48d916e8357e1
        .quad 0x16561f696a0aa75c
        .quad 0xc1bf725c5852bd6a
        .quad 0x11a8dd7f9a7966ad
        .quad 0x63d988a2d2851026
        .quad 0x00120753afbd232e
        .quad 0xe92bceb8fdd8f683
        .quad 0xf81669b384e72b91
        .quad 0x33fad52b2368a066



        .quad 0x540649c6c5e41e16
        .quad 0x0af86430333f7735
        .quad 0xb2acfcd2f305e746
        .quad 0x16c0f429a256dca7
        .quad 0x8d2cc8d0c422cfe8
        .quad 0x072b4f7b05a13acb
        .quad 0xa3feb6e6ecf6a56f
        .quad 0x3cc355ccb90a71e2
        .quad 0xe9b69443903e9131
        .quad 0xb8a494cb7a5637ce
        .quad 0xc87cd1a4baba9244
        .quad 0x631eaf426bae7568



        .quad 0xb3e90410da66fe9f
        .quad 0x85dd4b526c16e5a6
        .quad 0xbc3d97611ef9bf83
        .quad 0x5599648b1ea919b5
        .quad 0x47d975b9a3700de8
        .quad 0x7280c5fbe2f80552
        .quad 0x53658f2732e45de1
        .quad 0x431f2c7f665f80b5
        .quad 0xd6026344858f7b19
        .quad 0x14ab352fa1ea514a
        .quad 0x8900441a2090a9d7
        .quad 0x7b04715f91253b26



        .quad 0x83edbd28acf6ae43
        .quad 0x86357c8b7d5c7ab4
        .quad 0xc0404769b7eb2c44
        .quad 0x59b37bf5c2f6583f
        .quad 0xb376c280c4e6bac6
        .quad 0x970ed3dd6d1d9b0b
        .quad 0xb09a9558450bf944
        .quad 0x48d0acfa57cde223
        .quad 0xb60f26e47dabe671
        .quad 0xf1d1a197622f3a37
        .quad 0x4208ce7ee9960394
        .quad 0x16234191336d3bdb



        .quad 0xf19aeac733a63aef
        .quad 0x2c7fba5d4442454e
        .quad 0x5da87aa04795e441
        .quad 0x413051e1a4e0b0f5
        .quad 0x852dd1fd3d578bbe
        .quad 0x2b65ce72c3286108
        .quad 0x658c07f4eace2273
        .quad 0x0933f804ec38ab40
        .quad 0xa7ab69798d496476
        .quad 0x8121aadefcb5abc8
        .quad 0xa5dc12ef7b539472
        .quad 0x07fd47065e45351a



        .quad 0xc8583c3d258d2bcd
        .quad 0x17029a4daf60b73f
        .quad 0xfa0fc9d6416a3781
        .quad 0x1c1e5fba38b3fb23
        .quad 0x304211559ae8e7c3
        .quad 0xf281b229944882a5
        .quad 0x8a13ac2e378250e4
        .quad 0x014afa0954ba48f4
        .quad 0xcb3197001bb3666c
        .quad 0x330060524bffecb9
        .quad 0x293711991a88233c
        .quad 0x291884363d4ed364



        .quad 0x033c6805dc4babfa
        .quad 0x2c15bf5e5596ecc1
        .quad 0x1bc70624b59b1d3b
        .quad 0x3ede9850a19f0ec5
        .quad 0xfb9d37c3bc1ab6eb
        .quad 0x02be14534d57a240
        .quad 0xf4d73415f8a5e1f6
        .quad 0x5964f4300ccc8188
        .quad 0xe44a23152d096800
        .quad 0x5c08c55970866996
        .quad 0xdf2db60a46affb6e
        .quad 0x579155c1f856fd89



        .quad 0x96324edd12e0c9ef
        .quad 0x468b878df2420297
        .quad 0x199a3776a4f573be
        .quad 0x1e7fbcf18e91e92a
        .quad 0xb5f16b630817e7a6
        .quad 0x808c69233c351026
        .quad 0x324a983b54cef201
        .quad 0x53c092084a485345
        .quad 0xd2d41481f1cbafbf
        .quad 0x231d2db6716174e5
        .quad 0x0b7d7656e2a55c98
        .quad 0x3e955cd82aa495f6



        .quad 0xe48f535e3ed15433
        .quad 0xd075692a0d7270a3
        .quad 0x40fbd21daade6387
        .quad 0x14264887cf4495f5
        .quad 0xab39f3ef61bb3a3f
        .quad 0x8eb400652eb9193e
        .quad 0xb5de6ecc38c11f74
        .quad 0x654d7e9626f3c49f
        .quad 0xe564cfdd5c7d2ceb
        .quad 0x82eeafded737ccb9
        .quad 0x6107db62d1f9b0ab
        .quad 0x0b6baac3b4358dbb



        .quad 0x7ae62bcb8622fe98
        .quad 0x47762256ceb891af
        .quad 0x1a5a92bcf2e406b4
        .quad 0x7d29401784e41501
        .quad 0x204abad63700a93b
        .quad 0xbe0023d3da779373
        .quad 0xd85f0346633ab709
        .quad 0x00496dc490820412
        .quad 0x1c74b88dc27e6360
        .quad 0x074854268d14850c
        .quad 0xa145fb7b3e0dcb30
        .quad 0x10843f1b43803b23



        .quad 0xc5f90455376276dd
        .quad 0xce59158dd7645cd9
        .quad 0x92f65d511d366b39
        .quad 0x11574b6e526996c4
        .quad 0xd56f672de324689b
        .quad 0xd1da8aedb394a981
        .quad 0xdd7b58fe9168cfed
        .quad 0x7ce246cd4d56c1e8
        .quad 0xb8f4308e7f80be53
        .quad 0x5f3cb8cb34a9d397
        .quad 0x18a961bd33cc2b2c
        .quad 0x710045fb3a9af671



        .quad 0x73f93d36101b95eb
        .quad 0xfaef33794f6f4486
        .quad 0x5651735f8f15e562
        .quad 0x7fa3f19058b40da1
        .quad 0xa03fc862059d699e
        .quad 0x2370cfa19a619e69
        .quad 0xc4fe3b122f823deb
        .quad 0x1d1b056fa7f0844e
        .quad 0x1bc64631e56bf61f
        .quad 0xd379ab106e5382a3
        .quad 0x4d58c57e0540168d
        .quad 0x566256628442d8e4



        .quad 0xb9e499def6267ff6
        .quad 0x7772ca7b742c0843
        .quad 0x23a0153fe9a4f2b1
        .quad 0x2cdfdfecd5d05006
        .quad 0xdd499cd61ff38640
        .quad 0x29cd9bc3063625a0
        .quad 0x51e2d8023dd73dc3
        .quad 0x4a25707a203b9231
        .quad 0x2ab7668a53f6ed6a
        .quad 0x304242581dd170a1
        .quad 0x4000144c3ae20161
        .quad 0x5721896d248e49fc



        .quad 0x0b6e5517fd181bae
        .quad 0x9022629f2bb963b4
        .quad 0x5509bce932064625
        .quad 0x578edd74f63c13da
        .quad 0x285d5091a1d0da4e
        .quad 0x4baa6fa7b5fe3e08
        .quad 0x63e5177ce19393b3
        .quad 0x03c935afc4b030fd
        .quad 0x997276c6492b0c3d
        .quad 0x47ccc2c4dfe205fc
        .quad 0xdcd29b84dd623a3c
        .quad 0x3ec2ab590288c7a2



        .quad 0xa1a0d27be4d87bb9
        .quad 0xa98b4deb61391aed
        .quad 0x99a0ddd073cb9b83
        .quad 0x2dd5c25a200fcace
        .quad 0xa7213a09ae32d1cb
        .quad 0x0f2b87df40f5c2d5
        .quad 0x0baea4c6e81eab29
        .quad 0x0e1bf66c6adbac5e
        .quad 0xe2abd5e9792c887e
        .quad 0x1a020018cb926d5d
        .quad 0xbfba69cdbaae5f1e
        .quad 0x730548b35ae88f5f



        .quad 0xc43551a3cba8b8ee
        .quad 0x65a26f1db2115f16
        .quad 0x760f4f52ab8c3850
        .quad 0x3043443b411db8ca
        .quad 0x805b094ba1d6e334
        .quad 0xbf3ef17709353f19
        .quad 0x423f06cb0622702b
        .quad 0x585a2277d87845dd
        .quad 0xa18a5f8233d48962
        .quad 0x6698c4b5ec78257f
        .quad 0xa78e6fa5373e41ff
        .quad 0x7656278950ef981f



        .quad 0x38c3cf59d51fc8c0
        .quad 0x9bedd2fd0506b6f2
        .quad 0x26bf109fab570e8f
        .quad 0x3f4160a8c1b846a6
        .quad 0xe17073a3ea86cf9d
        .quad 0x3a8cfbb707155fdc
        .quad 0x4853e7fc31838a8e
        .quad 0x28bbf484b613f616
        .quad 0xf2612f5c6f136c7c
        .quad 0xafead107f6dd11be
        .quad 0x527e9ad213de6f33
        .quad 0x1e79cb358188f75d



        .quad 0x013436c3eef7e3f1
        .quad 0x828b6a7ffe9e10f8
        .quad 0x7ff908e5bcf9defc
        .quad 0x65d7951b3a3b3831
        .quad 0x77e953d8f5e08181
        .quad 0x84a50c44299dded9
        .quad 0xdc6c2d0c864525e5
        .quad 0x478ab52d39d1f2f4
        .quad 0x66a6a4d39252d159
        .quad 0xe5dde1bc871ac807
        .quad 0xb82c6b40a6c1c96f
        .quad 0x16d87a411a212214



        .quad 0xb3bd7e5a42066215
        .quad 0x879be3cd0c5a24c1
        .quad 0x57c05db1d6f994b7
        .quad 0x28f87c8165f38ca6
        .quad 0xfba4d5e2d54e0583
        .quad 0xe21fafd72ebd99fa
        .quad 0x497ac2736ee9778f
        .quad 0x1f990b577a5a6dde
        .quad 0xa3344ead1be8f7d6
        .quad 0x7d1e50ebacea798f
        .quad 0x77c6569e520de052
        .quad 0x45882fe1534d6d3e



        .quad 0x6669345d757983d6
        .quad 0x62b6ed1117aa11a6
        .quad 0x7ddd1857985e128f
        .quad 0x688fe5b8f626f6dd
        .quad 0xd8ac9929943c6fe4
        .quad 0xb5f9f161a38392a2
        .quad 0x2699db13bec89af3
        .quad 0x7dcf843ce405f074
        .quad 0x6c90d6484a4732c0
        .quad 0xd52143fdca563299
        .quad 0xb3be28c3915dc6e1
        .quad 0x6739687e7327191b



        .quad 0x9f65c5ea200814cf
        .quad 0x840536e169a31740
        .quad 0x8b0ed13925c8b4ad
        .quad 0x0080dbafe936361d
        .quad 0x8ce5aad0c9cb971f
        .quad 0x1156aaa99fd54a29
        .quad 0x41f7247015af9b78
        .quad 0x1fe8cca8420f49aa
        .quad 0x72a1848f3c0cc82a
        .quad 0x38c560c2877c9e54
        .quad 0x5004e228ce554140
        .quad 0x042418a103429d71



        .quad 0x899dea51abf3ff5f
        .quad 0x9b93a8672fc2d8ba
        .quad 0x2c38cb97be6ebd5c
        .quad 0x114d578497263b5d
        .quad 0x58e84c6f20816247
        .quad 0x8db2b2b6e36fd793
        .quad 0x977182561d484d85
        .quad 0x0822024f8632abd7
        .quad 0xb301bb7c6b1beca3
        .quad 0x55393f6dc6eb1375
        .quad 0x910d281097b6e4eb
        .quad 0x1ad4548d9d479ea3



        .quad 0xcd5a7da0389a48fd
        .quad 0xb38fa4aa9a78371e
        .quad 0xc6d9761b2cdb8e6c
        .quad 0x35cf51dbc97e1443
        .quad 0xa06fe66d0fe9fed3
        .quad 0xa8733a401c587909
        .quad 0x30d14d800df98953
        .quad 0x41ce5876c7b30258
        .quad 0x59ac3bc5d670c022
        .quad 0xeae67c109b119406
        .quad 0x9798bdf0b3782fda
        .quad 0x651e3201fd074092



        .quad 0xd63d8483ef30c5cf
        .quad 0x4cd4b4962361cc0c
        .quad 0xee90e500a48426ac
        .quad 0x0af51d7d18c14eeb
        .quad 0xa57ba4a01efcae9e
        .quad 0x769f4beedc308a94
        .quad 0xd1f10eeb3603cb2e
        .quad 0x4099ce5e7e441278
        .quad 0x1ac98e4f8a5121e9
        .quad 0x7dae9544dbfa2fe0
        .quad 0x8320aa0dd6430df9
        .quad 0x667282652c4a2fb5



        .quad 0x874621f4d86bc9ab
        .quad 0xb54c7bbe56fe6fea
        .quad 0x077a24257fadc22c
        .quad 0x1ab53be419b90d39
        .quad 0xada8b6e02946db23
        .quad 0x1c0ce51a7b253ab7
        .quad 0x8448c85a66dd485b
        .quad 0x7f1fc025d0675adf
        .quad 0xd8ee1b18319ea6aa
        .quad 0x004d88083a21f0da
        .quad 0x3bd6aa1d883a4f4b
        .quad 0x4db9a3a6dfd9fd14



        .quad 0x8ce7b23bb99c0755
        .quad 0x35c5d6edc4f50f7a
        .quad 0x7e1e2ed2ed9b50c3
        .quad 0x36305f16e8934da1
        .quad 0xd95b00bbcbb77c68
        .quad 0xddbc846a91f17849
        .quad 0x7cf700aebe28d9b3
        .quad 0x5ce1285c85d31f3e
        .quad 0x31b6972d98b0bde8
        .quad 0x7d920706aca6de5b
        .quad 0xe67310f8908a659f
        .quad 0x50fac2a6efdf0235



        .quad 0xf3d3a9f35b880f5a
        .quad 0xedec050cdb03e7c2
        .quad 0xa896981ff9f0b1a2
        .quad 0x49a4ae2bac5e34a4
        .quad 0x295b1c86f6f449bc
        .quad 0x51b2e84a1f0ab4dd
        .quad 0xc001cb30aa8e551d
        .quad 0x6a28d35944f43662
        .quad 0x28bb12ee04a740e0
        .quad 0x14313bbd9bce8174
        .quad 0x72f5b5e4e8c10c40
        .quad 0x7cbfb19936adcd5b



        .quad 0xa311ddc26b89792d
        .quad 0x1b30b4c6da512664
        .quad 0x0ca77b4ccf150859
        .quad 0x1de443df1b009408
        .quad 0x8e793a7acc36e6e0
        .quad 0xf9fab7a37d586eed
        .quad 0x3a4f9692bae1f4e4
        .quad 0x1c14b03eff5f447e
        .quad 0x19647bd114a85291
        .quad 0x57b76cb21034d3af
        .quad 0x6329db440f9d6dfa
        .quad 0x5ef43e586a571493



        .quad 0xef782014385675a6
        .quad 0xa2649f30aafda9e8
        .quad 0x4cd1eb505cdfa8cb
        .quad 0x46115aba1d4dc0b3
        .quad 0xa66dcc9dc80c1ac0
        .quad 0x97a05cf41b38a436
        .quad 0xa7ebf3be95dbd7c6
        .quad 0x7da0b8f68d7e7dab
        .quad 0xd40f1953c3b5da76
        .quad 0x1dac6f7321119e9b
        .quad 0x03cc6021feb25960
        .quad 0x5a5f887e83674b4b



        .quad 0x8f6301cf70a13d11
        .quad 0xcfceb815350dd0c4
        .quad 0xf70297d4a4bca47e
        .quad 0x3669b656e44d1434
        .quad 0x9e9628d3a0a643b9
        .quad 0xb5c3cb00e6c32064
        .quad 0x9b5302897c2dec32
        .quad 0x43e37ae2d5d1c70c
        .quad 0x387e3f06eda6e133
        .quad 0x67301d5199a13ac0
        .quad 0xbd5ad8f836263811
        .quad 0x6a21e6cd4fd5e9be



        .quad 0xf1c6170a3046e65f
        .quad 0x58712a2a00d23524
        .quad 0x69dbbd3c8c82b755
        .quad 0x586bf9f1a195ff57
        .quad 0xef4129126699b2e3
        .quad 0x71d30847708d1301
        .quad 0x325432d01182b0bd
        .quad 0x45371b07001e8b36
        .quad 0xa6db088d5ef8790b
        .quad 0x5278f0dc610937e5
        .quad 0xac0349d261a16eb8
        .quad 0x0eafb03790e52179



        .quad 0x960555c13748042f
        .quad 0x219a41e6820baa11
        .quad 0x1c81f73873486d0c
        .quad 0x309acc675a02c661
        .quad 0x5140805e0f75ae1d
        .quad 0xec02fbe32662cc30
        .quad 0x2cebdf1eea92396d
        .quad 0x44ae3344c5435bb3
        .quad 0x9cf289b9bba543ee
        .quad 0xf3760e9d5ac97142
        .quad 0x1d82e5c64f9360aa
        .quad 0x62d5221b7f94678f



        .quad 0x524c299c18d0936d
        .quad 0xc86bb56c8a0c1a0c
        .quad 0xa375052edb4a8631
        .quad 0x5c0efde4bc754562
        .quad 0x7585d4263af77a3c
        .quad 0xdfae7b11fee9144d
        .quad 0xa506708059f7193d
        .quad 0x14f29a5383922037
        .quad 0xdf717edc25b2d7f5
        .quad 0x21f970db99b53040
        .quad 0xda9234b7c3ed4c62
        .quad 0x5e72365c7bee093e



        .quad 0x575bfc074571217f
        .quad 0x3779675d0694d95b
        .quad 0x9a0a37bbf4191e33
        .quad 0x77f1104c47b4eabc
        .quad 0x7d9339062f08b33e
        .quad 0x5b9659e5df9f32be
        .quad 0xacff3dad1f9ebdfd
        .quad 0x70b20555cb7349b7
        .quad 0xbe5113c555112c4c
        .quad 0x6688423a9a881fcd
        .quad 0x446677855e503b47
        .quad 0x0e34398f4a06404a



        .quad 0xb67d22d93ecebde8
        .quad 0x09b3e84127822f07
        .quad 0x743fa61fb05b6d8d
        .quad 0x5e5405368a362372
        .quad 0x18930b093e4b1928
        .quad 0x7de3e10e73f3f640
        .quad 0xf43217da73395d6f
        .quad 0x6f8aded6ca379c3e
        .quad 0xe340123dfdb7b29a
        .quad 0x487b97e1a21ab291
        .quad 0xf9967d02fde6949e
        .quad 0x780de72ec8d3de97



        .quad 0x0ae28545089ae7bc
        .quad 0x388ddecf1c7f4d06
        .quad 0x38ac15510a4811b8
        .quad 0x0eb28bf671928ce4
        .quad 0x671feaf300f42772
        .quad 0x8f72eb2a2a8c41aa
        .quad 0x29a17fd797373292
        .quad 0x1defc6ad32b587a6
        .quad 0xaf5bbe1aef5195a7
        .quad 0x148c1277917b15ed
        .quad 0x2991f7fb7ae5da2e
        .quad 0x467d201bf8dd2867



        .quad 0x7906ee72f7bd2e6b
        .quad 0x05d270d6109abf4e
        .quad 0x8d5cfe45b941a8a4
        .quad 0x44c218671c974287
        .quad 0x745f9d56296bc318
        .quad 0x993580d4d8152e65
        .quad 0xb0e5b13f5839e9ce
        .quad 0x51fc2b28d43921c0
        .quad 0x1b8fd11795e2a98c
        .quad 0x1c4e5ee12b6b6291
        .quad 0x5b30e7107424b572
        .quad 0x6e6b9de84c4f4ac6



        .quad 0xdff25fce4b1de151
        .quad 0xd841c0c7e11c4025
        .quad 0x2554b3c854749c87
        .quad 0x2d292459908e0df9
        .quad 0x6b7c5f10f80cb088
        .quad 0x736b54dc56e42151
        .quad 0xc2b620a5c6ef99c4
        .quad 0x5f4c802cc3a06f42
        .quad 0x9b65c8f17d0752da
        .quad 0x881ce338c77ee800
        .quad 0xc3b514f05b62f9e3
        .quad 0x66ed5dd5bec10d48



        .quad 0x7d38a1c20bb2089d
        .quad 0x808334e196ccd412
        .quad 0xc4a70b8c6c97d313
        .quad 0x2eacf8bc03007f20
        .quad 0xf0adf3c9cbca047d
        .quad 0x81c3b2cbf4552f6b
        .quad 0xcfda112d44735f93
        .quad 0x1f23a0c77e20048c
        .quad 0xf235467be5bc1570
        .quad 0x03d2d9020dbab38c
        .quad 0x27529aa2fcf9e09e
        .quad 0x0840bef29d34bc50



        .quad 0x796dfb35dc10b287
        .quad 0x27176bcd5c7ff29d
        .quad 0x7f3d43e8c7b24905
        .quad 0x0304f5a191c54276
        .quad 0xcd54e06b7f37e4eb
        .quad 0x8cc15f87f5e96cca
        .quad 0xb8248bb0d3597dce
        .quad 0x246affa06074400c
        .quad 0x37d88e68fbe45321
        .quad 0x86097548c0d75032
        .quad 0x4e9b13ef894a0d35
        .quad 0x25a83cac5753d325



        .quad 0x10222f48eed8165e
        .quad 0x623fc1234b8bcf3a
        .quad 0x1e145c09c221e8f0
        .quad 0x7ccfa59fca782630
        .quad 0x9f0f66293952b6e2
        .quad 0x33db5e0e0934267b
        .quad 0xff45252bd609fedc
        .quad 0x06be10f5c506e0c9
        .quad 0x1a9615a9b62a345f
        .quad 0x22050c564a52fecc
        .quad 0xa7a2788528bc0dfe
        .quad 0x5e82770a1a1ee71d



        .quad 0x35425183ad896a5c
        .quad 0xe8673afbe78d52f6
        .quad 0x2c66f25f92a35f64
        .quad 0x09d04f3b3b86b102
        .quad 0xe802e80a42339c74
        .quad 0x34175166a7fffae5
        .quad 0x34865d1f1c408cae
        .quad 0x2cca982c605bc5ee
        .quad 0xfd2d5d35197dbe6e
        .quad 0x207c2eea8be4ffa3
        .quad 0x2613d8db325ae918
        .quad 0x7a325d1727741d3e



        .quad 0xd036b9bbd16dfde2
        .quad 0xa2055757c497a829
        .quad 0x8e6cc966a7f12667
        .quad 0x4d3b1a791239c180
        .quad 0xecd27d017e2a076a
        .quad 0xd788689f1636495e
        .quad 0x52a61af0919233e5
        .quad 0x2a479df17bb1ae64
        .quad 0x9e5eee8e33db2710
        .quad 0x189854ded6c43ca5
        .quad 0xa41c22c592718138
        .quad 0x27ad5538a43a5e9b



        .quad 0x2746dd4b15350d61
        .quad 0xd03fcbc8ee9521b7
        .quad 0xe86e365a138672ca
        .quad 0x510e987f7e7d89e2
        .quad 0xcb5a7d638e47077c
        .quad 0x8db7536120a1c059
        .quad 0x549e1e4d8bedfdcc
        .quad 0x080153b7503b179d
        .quad 0xdda69d930a3ed3e3
        .quad 0x3d386ef1cd60a722
        .quad 0xc817ad58bdaa4ee6
        .quad 0x23be8d554fe7372a



        .quad 0x95fe919a74ef4fad
        .quad 0x3a827becf6a308a2
        .quad 0x964e01d309a47b01
        .quad 0x71c43c4f5ba3c797
        .quad 0xbc1ef4bd567ae7a9
        .quad 0x3f624cb2d64498bd
        .quad 0xe41064d22c1f4ec8
        .quad 0x2ef9c5a5ba384001
        .quad 0xb6fd6df6fa9e74cd
        .quad 0xf18278bce4af267a
        .quad 0x8255b3d0f1ef990e
        .quad 0x5a758ca390c5f293



        .quad 0xa2b72710d9462495
        .quad 0x3aa8c6d2d57d5003
        .quad 0xe3d400bfa0b487ca
        .quad 0x2dbae244b3eb72ec
        .quad 0x8ce0918b1d61dc94
        .quad 0x8ded36469a813066
        .quad 0xd4e6a829afe8aad3
        .quad 0x0a738027f639d43f
        .quad 0x980f4a2f57ffe1cc
        .quad 0x00670d0de1839843
        .quad 0x105c3f4a49fb15fd
        .quad 0x2698ca635126a69c



        .quad 0xe765318832b0ba78
        .quad 0x381831f7925cff8b
        .quad 0x08a81b91a0291fcc
        .quad 0x1fb43dcc49caeb07
        .quad 0x2e3d702f5e3dd90e
        .quad 0x9e3f0918e4d25386
        .quad 0x5e773ef6024da96a
        .quad 0x3c004b0c4afa3332
        .quad 0x9aa946ac06f4b82b
        .quad 0x1ca284a5a806c4f3
        .quad 0x3ed3265fc6cd4787
        .quad 0x6b43fd01cd1fd217



        .quad 0xc7a75d4b4697c544
        .quad 0x15fdf848df0fffbf
        .quad 0x2868b9ebaa46785a
        .quad 0x5a68d7105b52f714
        .quad 0xb5c742583e760ef3
        .quad 0x75dc52b9ee0ab990
        .quad 0xbf1427c2072b923f
        .quad 0x73420b2d6ff0d9f0
        .quad 0xaf2cf6cb9e851e06
        .quad 0x8f593913c62238c4
        .quad 0xda8ab89699fbf373
        .quad 0x3db5632fea34bc9e



        .quad 0xf46eee2bf75dd9d8
        .quad 0x0d17b1f6396759a5
        .quad 0x1bf2d131499e7273
        .quad 0x04321adf49d75f13
        .quad 0x2e4990b1829825d5
        .quad 0xedeaeb873e9a8991
        .quad 0xeef03d394c704af8
        .quad 0x59197ea495df2b0e
        .quad 0x04e16019e4e55aae
        .quad 0xe77b437a7e2f92e9
        .quad 0xc7ce2dc16f159aa4
        .quad 0x45eafdc1f4d70cc0



        .quad 0x698401858045d72b
        .quad 0x4c22faa2cf2f0651
        .quad 0x941a36656b222dc6
        .quad 0x5a5eebc80362dade
        .quad 0xb60e4624cfccb1ed
        .quad 0x59dbc292bd5c0395
        .quad 0x31a09d1ddc0481c9
        .quad 0x3f73ceea5d56d940
        .quad 0xb7a7bfd10a4e8dc6
        .quad 0xbe57007e44c9b339
        .quad 0x60c1207f1557aefa
        .quad 0x26058891266218db



        .quad 0x59f704a68360ff04
        .quad 0xc3d93fde7661e6f4
        .quad 0x831b2a7312873551
        .quad 0x54ad0c2e4e615d57
        .quad 0x4c818e3cc676e542
        .quad 0x5e422c9303ceccad
        .quad 0xec07cccab4129f08
        .quad 0x0dedfa10b24443b8
        .quad 0xee3b67d5b82b522a
        .quad 0x36f163469fa5c1eb
        .quad 0xa5b4d2f26ec19fd3
        .quad 0x62ecb2baa77a9408



        .quad 0xe5ed795261152b3d
        .quad 0x4962357d0eddd7d1
        .quad 0x7482c8d0b96b4c71
        .quad 0x2e59f919a966d8be
        .quad 0x92072836afb62874
        .quad 0x5fcd5e8579e104a5
        .quad 0x5aad01adc630a14a
        .quad 0x61913d5075663f98
        .quad 0x0dc62d361a3231da
        .quad 0xfa47583294200270
        .quad 0x02d801513f9594ce
        .quad 0x3ddbc2a131c05d5c



        .quad 0x3f50a50a4ffb81ef
        .quad 0xb1e035093bf420bf
        .quad 0x9baa8e1cc6aa2cd0
        .quad 0x32239861fa237a40
        .quad 0xfb735ac2004a35d1
        .quad 0x31de0f433a6607c3
        .quad 0x7b8591bfc528d599
        .quad 0x55be9a25f5bb050c
        .quad 0x0d005acd33db3dbf
        .quad 0x0111b37c80ac35e2
        .quad 0x4892d66c6f88ebeb
        .quad 0x770eadb16508fbcd



        .quad 0x8451f9e05e4e89dd
        .quad 0xc06302ffbc793937
        .quad 0x5d22749556a6495c
        .quad 0x09a6755ca05603fb
        .quad 0xf1d3b681a05071b9
        .quad 0x2207659a3592ff3a
        .quad 0x5f0169297881e40e
        .quad 0x16bedd0e86ba374e
        .quad 0x5ecccc4f2c2737b5
        .quad 0x43b79e0c2dccb703
        .quad 0x33e008bc4ec43df3
        .quad 0x06c1b840f07566c0



        .quad 0x7688a5c6a388f877
        .quad 0x02a96c14deb2b6ac
        .quad 0x64c9f3431b8c2af8
        .quad 0x3628435554a1eed6
        .quad 0x69ee9e7f9b02805c
        .quad 0xcbff828a547d1640
        .quad 0x3d93a869b2430968
        .quad 0x46b7b8cd3fe26972
        .quad 0xe9812086fe7eebe0
        .quad 0x4cba6be72f515437
        .quad 0x1d04168b516efae9
        .quad 0x5ea1391043982cb9



        .quad 0x49125c9cf4702ee1
        .quad 0x4520b71f8b25b32d
        .quad 0x33193026501fef7e
        .quad 0x656d8997c8d2eb2b
        .quad 0x6f2b3be4d5d3b002
        .quad 0xafec33d96a09c880
        .quad 0x035f73a4a8bcc4cc
        .quad 0x22c5b9284662198b
        .quad 0xcb58c8fe433d8939
        .quad 0x89a0cb2e6a8d7e50
        .quad 0x79ca955309fbbe5a
        .quad 0x0c626616cd7fc106



        .quad 0x1ffeb80a4879b61f
        .quad 0x6396726e4ada21ed
        .quad 0x33c7b093368025ba
        .quad 0x471aa0c6f3c31788
        .quad 0x8fdfc379fbf454b1
        .quad 0x45a5a970f1a4b771
        .quad 0xac921ef7bad35915
        .quad 0x42d088dca81c2192
        .quad 0x8fda0f37a0165199
        .quad 0x0adadb77c8a0e343
        .quad 0x20fbfdfcc875e820
        .quad 0x1cf2bea80c2206e7



        .quad 0xc2ddf1deb36202ac
        .quad 0x92a5fe09d2e27aa5
        .quad 0x7d1648f6fc09f1d3
        .quad 0x74c2cc0513bc4959
        .quad 0x982d6e1a02c0412f
        .quad 0x90fa4c83db58e8fe
        .quad 0x01c2f5bcdcb18bc0
        .quad 0x686e0c90216abc66
        .quad 0x1fadbadba54395a7
        .quad 0xb41a02a0ae0da66a
        .quad 0xbf19f598bba37c07
        .quad 0x6a12b8acde48430d



        .quad 0xf8daea1f39d495d9
        .quad 0x592c190e525f1dfc
        .quad 0xdb8cbd04c9991d1b
        .quad 0x11f7fda3d88f0cb7
        .quad 0x793bdd801aaeeb5f
        .quad 0x00a2a0aac1518871
        .quad 0xe8a373a31f2136b4
        .quad 0x48aab888fc91ef19
        .quad 0x041f7e925830f40e
        .quad 0x002d6ca979661c06
        .quad 0x86dc9ff92b046a2e
        .quad 0x760360928b0493d1



        .quad 0x21bb41c6120cf9c6
        .quad 0xeab2aa12decda59b
        .quad 0xc1a72d020aa48b34
        .quad 0x215d4d27e87d3b68
        .quad 0xb43108e5695a0b05
        .quad 0x6cb00ee8ad37a38b
        .quad 0x5edad6eea3537381
        .quad 0x3f2602d4b6dc3224
        .quad 0xc8b247b65bcaf19c
        .quad 0x49779dc3b1b2c652
        .quad 0x89a180bbd5ece2e2
        .quad 0x13f098a3cec8e039



        .quad 0x9adc0ff9ce5ec54b
        .quad 0x039c2a6b8c2f130d
        .quad 0x028007c7f0f89515
        .quad 0x78968314ac04b36b
        .quad 0xf3aa57a22796bb14
        .quad 0x883abab79b07da21
        .quad 0xe54be21831a0391c
        .quad 0x5ee7fb38d83205f9
        .quad 0x538dfdcb41446a8e
        .quad 0xa5acfda9434937f9
        .quad 0x46af908d263c8c78
        .quad 0x61d0633c9bca0d09



        .quad 0x63744935ffdb2566
        .quad 0xc5bd6b89780b68bb
        .quad 0x6f1b3280553eec03
        .quad 0x6e965fd847aed7f5
        .quad 0xada328bcf8fc73df
        .quad 0xee84695da6f037fc
        .quad 0x637fb4db38c2a909
        .quad 0x5b23ac2df8067bdc
        .quad 0x9ad2b953ee80527b
        .quad 0xe88f19aafade6d8d
        .quad 0x0e711704150e82cf
        .quad 0x79b9bbb9dd95dedc



        .quad 0xebb355406a3126c2
        .quad 0xd26383a868c8c393
        .quad 0x6c0c6429e5b97a82
        .quad 0x5065f158c9fd2147
        .quad 0xd1997dae8e9f7374
        .quad 0xa032a2f8cfbb0816
        .quad 0xcd6cba126d445f0a
        .quad 0x1ba811460accb834
        .quad 0x708169fb0c429954
        .quad 0xe14600acd76ecf67
        .quad 0x2eaab98a70e645ba
        .quad 0x3981f39e58a4faf2



        .quad 0x18fb8a7559230a93
        .quad 0x1d168f6960e6f45d
        .quad 0x3a85a94514a93cb5
        .quad 0x38dc083705acd0fd
        .quad 0xc845dfa56de66fde
        .quad 0xe152a5002c40483a
        .quad 0xe9d2e163c7b4f632
        .quad 0x30f4452edcbc1b65
        .quad 0x856d2782c5759740
        .quad 0xfa134569f99cbecc
        .quad 0x8844fc73c0ea4e71
        .quad 0x632d9a1a593f2469



        .quad 0xf6bb6b15b807cba6
        .quad 0x1823c7dfbc54f0d7
        .quad 0xbb1d97036e29670b
        .quad 0x0b24f48847ed4a57
        .quad 0xbf09fd11ed0c84a7
        .quad 0x63f071810d9f693a
        .quad 0x21908c2d57cf8779
        .quad 0x3a5a7df28af64ba2
        .quad 0xdcdad4be511beac7
        .quad 0xa4538075ed26ccf2
        .quad 0xe19cff9f005f9a65
        .quad 0x34fcf74475481f63



        .quad 0xc197e04c789767ca
        .quad 0xb8714dcb38d9467d
        .quad 0x55de888283f95fa8
        .quad 0x3d3bdc164dfa63f7
        .quad 0xa5bb1dab78cfaa98
        .quad 0x5ceda267190b72f2
        .quad 0x9309c9110a92608e
        .quad 0x0119a3042fb374b0
        .quad 0x67a2d89ce8c2177d
        .quad 0x669da5f66895d0c1
        .quad 0xf56598e5b282a2b0
        .quad 0x56c088f1ede20a73



        .quad 0x336d3d1110a86e17
        .quad 0xd7f388320b75b2fa
        .quad 0xf915337625072988
        .quad 0x09674c6b99108b87
        .quad 0x581b5fac24f38f02
        .quad 0xa90be9febae30cbd
        .quad 0x9a2169028acf92f0
        .quad 0x038b7ea48359038f
        .quad 0x9f4ef82199316ff8
        .quad 0x2f49d282eaa78d4f
        .quad 0x0971a5ab5aef3174
        .quad 0x6e5e31025969eb65



        .quad 0xb16c62f587e593fb
        .quad 0x4999eddeca5d3e71
        .quad 0xb491c1e014cc3e6d
        .quad 0x08f5114789a8dba8
        .quad 0x3304fb0e63066222
        .quad 0xfb35068987acba3f
        .quad 0xbd1924778c1061a3
        .quad 0x3058ad43d1838620
        .quad 0x323c0ffde57663d0
        .quad 0x05c3df38a22ea610
        .quad 0xbdc78abdac994f9a
        .quad 0x26549fa4efe3dc99



        .quad 0x738b38d787ce8f89
        .quad 0xb62658e24179a88d
        .quad 0x30738c9cf151316d
        .quad 0x49128c7f727275c9
        .quad 0x04dbbc17f75396b9
        .quad 0x69e6a2d7d2f86746
        .quad 0xc6409d99f53eabc6
        .quad 0x606175f6332e25d2
        .quad 0x4021370ef540e7dd
        .quad 0x0910d6f5a1f1d0a5
        .quad 0x4634aacd5b06b807
        .quad 0x6a39e6356944f235



        .quad 0x96cd5640df90f3e7
        .quad 0x6c3a760edbfa25ea
        .quad 0x24f3ef0959e33cc4
        .quad 0x42889e7e530d2e58
        .quad 0x1da1965774049e9d
        .quad 0xfbcd6ea198fe352b
        .quad 0xb1cbcd50cc5236a6
        .quad 0x1f5ec83d3f9846e2
        .quad 0x8efb23c3328ccb75
        .quad 0xaf42a207dd876ee9
        .quad 0x20fbdadc5dfae796
        .quad 0x241e246b06bf9f51



        .quad 0x29e68e57ad6e98f6
        .quad 0x4c9260c80b462065
        .quad 0x3f00862ea51ebb4b
        .quad 0x5bc2c77fb38d9097
        .quad 0x7eaafc9a6280bbb8
        .quad 0x22a70f12f403d809
        .quad 0x31ce40bb1bfc8d20
        .quad 0x2bc65635e8bd53ee
        .quad 0xe8d5dc9fa96bad93
        .quad 0xe58fb17dde1947dc
        .quad 0x681532ea65185fa3
        .quad 0x1fdd6c3b034a7830



        .quad 0x0a64e28c55dc18fe
        .quad 0xe3df9e993399ebdd
        .quad 0x79ac432370e2e652
        .quad 0x35ff7fc33ae4cc0e
        .quad 0x9c13a6a52dd8f7a9
        .quad 0x2dbb1f8c3efdcabf
        .quad 0x961e32405e08f7b5
        .quad 0x48c8a121bbe6c9e5
        .quad 0xfc415a7c59646445
        .quad 0xd224b2d7c128b615
        .quad 0x6035c9c905fbb912
        .quad 0x42d7a91274429fab



        .quad 0x4e6213e3eaf72ed3
        .quad 0x6794981a43acd4e7
        .quad 0xff547cde6eb508cb
        .quad 0x6fed19dd10fcb532
        .quad 0xa9a48947933da5bc
        .quad 0x4a58920ec2e979ec
        .quad 0x96d8800013e5ac4c
        .quad 0x453692d74b48b147
        .quad 0xdd775d99a8559c6f
        .quad 0xf42a2140df003e24
        .quad 0x5223e229da928a66
        .quad 0x063f46ba6d38f22c



        .quad 0xd2d242895f536694
        .quad 0xca33a2c542939b2c
        .quad 0x986fada6c7ddb95c
        .quad 0x5a152c042f712d5d
        .quad 0x39843cb737346921
        .quad 0xa747fb0738c89447
        .quad 0xcb8d8031a245307e
        .quad 0x67810f8e6d82f068
        .quad 0x3eeb8fbcd2287db4
        .quad 0x72c7d3a301a03e93
        .quad 0x5473e88cbd98265a
        .quad 0x7324aa515921b403



        .quad 0x857942f46c3cbe8e
        .quad 0xa1d364b14730c046
        .quad 0x1c8ed914d23c41bf
        .quad 0x0838e161eef6d5d2
        .quad 0xad23f6dae82354cb
        .quad 0x6962502ab6571a6d
        .quad 0x9b651636e38e37d1
        .quad 0x5cac5005d1a3312f
        .quad 0x8cc154cce9e39904
        .quad 0x5b3a040b84de6846
        .quad 0xc4d8a61cb1be5d6e
        .quad 0x40fb897bd8861f02



        .quad 0x84c5aa9062de37a1
        .quad 0x421da5000d1d96e1
        .quad 0x788286306a9242d9
        .quad 0x3c5e464a690d10da
        .quad 0xe57ed8475ab10761
        .quad 0x71435e206fd13746
        .quad 0x342f824ecd025632
        .quad 0x4b16281ea8791e7b
        .quad 0xd1c101d50b813381
        .quad 0xdee60f1176ee6828
        .quad 0x0cb68893383f6409
        .quad 0x6183c565f6ff484a



        .quad 0x741d5a461e6bf9d6
        .quad 0x2305b3fc7777a581
        .quad 0xd45574a26474d3d9
        .quad 0x1926e1dc6401e0ff
        .quad 0xdb468549af3f666e
        .quad 0xd77fcf04f14a0ea5
        .quad 0x3df23ff7a4ba0c47
        .quad 0x3a10dfe132ce3c85
        .quad 0xe07f4e8aea17cea0
        .quad 0x2fd515463a1fc1fd
        .quad 0x175322fd31f2c0f1
        .quad 0x1fa1d01d861e5d15



        .quad 0xcc8055947d599832
        .quad 0x1e4656da37f15520
        .quad 0x99f6f7744e059320
        .quad 0x773563bc6a75cf33
        .quad 0x38dcac00d1df94ab
        .quad 0x2e712bddd1080de9
        .quad 0x7f13e93efdd5e262
        .quad 0x73fced18ee9a01e5
        .quad 0x06b1e90863139cb3
        .quad 0xa493da67c5a03ecd
        .quad 0x8d77cec8ad638932
        .quad 0x1f426b701b864f44



        .quad 0xefc9264c41911c01
        .quad 0xf1a3b7b817a22c25
        .quad 0x5875da6bf30f1447
        .quad 0x4e1af5271d31b090
        .quad 0xf17e35c891a12552
        .quad 0xb76b8153575e9c76
        .quad 0xfa83406f0d9b723e
        .quad 0x0b76bb1b3fa7e438
        .quad 0x08b8c1f97f92939b
        .quad 0xbe6771cbd444ab6e
        .quad 0x22e5646399bb8017
        .quad 0x7b6dd61eb772a955



        .quad 0xb7adc1e850f33d92
        .quad 0x7998fa4f608cd5cf
        .quad 0xad962dbd8dfc5bdb
        .quad 0x703e9bceaf1d2f4f
        .quad 0x5730abf9ab01d2c7
        .quad 0x16fb76dc40143b18
        .quad 0x866cbe65a0cbb281
        .quad 0x53fa9b659bff6afe
        .quad 0x6c14c8e994885455
        .quad 0x843a5d6665aed4e5
        .quad 0x181bb73ebcd65af1
        .quad 0x398d93e5c4c61f50



        .quad 0x1c4bd16733e248f3
        .quad 0xbd9e128715bf0a5f
        .quad 0xd43f8cf0a10b0376
        .quad 0x53b09b5ddf191b13
        .quad 0xc3877c60d2e7e3f2
        .quad 0x3b34aaa030828bb1
        .quad 0x283e26e7739ef138
        .quad 0x699c9c9002c30577
        .quad 0xf306a7235946f1cc
        .quad 0x921718b5cce5d97d
        .quad 0x28cdd24781b4e975
        .quad 0x51caf30c6fcdd907



        .quad 0xa60ba7427674e00a
        .quad 0x630e8570a17a7bf3
        .quad 0x3758563dcf3324cc
        .quad 0x5504aa292383fdaa
        .quad 0x737af99a18ac54c7
        .quad 0x903378dcc51cb30f
        .quad 0x2b89bc334ce10cc7
        .quad 0x12ae29c189f8e99a
        .quad 0xa99ec0cb1f0d01cf
        .quad 0x0dd1efcc3a34f7ae
        .quad 0x55ca7521d09c4e22
        .quad 0x5fd14fe958eba5ea



        .quad 0xb5dc2ddf2845ab2c
        .quad 0x069491b10a7fe993
        .quad 0x4daaf3d64002e346
        .quad 0x093ff26e586474d1
        .quad 0x3c42fe5ebf93cb8e
        .quad 0xbedfa85136d4565f
        .quad 0xe0f0859e884220e8
        .quad 0x7dd73f960725d128
        .quad 0xb10d24fe68059829
        .quad 0x75730672dbaf23e5
        .quad 0x1367253ab457ac29
        .quad 0x2f59bcbc86b470a4



        .quad 0x83847d429917135f
        .quad 0xad1b911f567d03d7
        .quad 0x7e7748d9be77aad1
        .quad 0x5458b42e2e51af4a
        .quad 0x7041d560b691c301
        .quad 0x85201b3fadd7e71e
        .quad 0x16c2e16311335585
        .quad 0x2aa55e3d010828b1
        .quad 0xed5192e60c07444f
        .quad 0x42c54e2d74421d10
        .quad 0x352b4c82fdb5c864
        .quad 0x13e9004a8a768664



        .quad 0xcbb5b5556c032bff
        .quad 0xdf7191b729297a3a
        .quad 0xc1ff7326aded81bb
        .quad 0x71ade8bb68be03f5
        .quad 0x1e6284c5806b467c
        .quad 0xc5f6997be75d607b
        .quad 0x8b67d958b378d262
        .quad 0x3d88d66a81cd8b70
        .quad 0x8b767a93204ed789
        .quad 0x762fcacb9fa0ae2a
        .quad 0x771febcc6dce4887
        .quad 0x343062158ff05fb3



        .quad 0xe05da1a7e1f5bf49
        .quad 0x26457d6dd4736092
        .quad 0x77dcb07773cc32f6
        .quad 0x0a5d94969cdd5fcd
        .quad 0xfce219072a7b31b4
        .quad 0x4d7adc75aa578016
        .quad 0x0ec276a687479324
        .quad 0x6d6d9d5d1fda4beb
        .quad 0x22b1a58ae9b08183
        .quad 0xfd95d071c15c388b
        .quad 0xa9812376850a0517
        .quad 0x33384cbabb7f335e



        .quad 0x3c6fa2680ca2c7b5
        .quad 0x1b5082046fb64fda
        .quad 0xeb53349c5431d6de
        .quad 0x5278b38f6b879c89
        .quad 0x33bc627a26218b8d
        .quad 0xea80b21fc7a80c61
        .quad 0x9458b12b173e9ee6
        .quad 0x076247be0e2f3059
        .quad 0x52e105f61416375a
        .quad 0xec97af3685abeba4
        .quad 0x26e6b50623a67c36
        .quad 0x5cf0e856f3d4fb01



        .quad 0xf6c968731ae8cab4
        .quad 0x5e20741ecb4f92c5
        .quad 0x2da53be58ccdbc3e
        .quad 0x2dddfea269970df7
        .quad 0xbeaece313db342a8
        .quad 0xcba3635b842db7ee
        .quad 0xe88c6620817f13ef
        .quad 0x1b9438aa4e76d5c6
        .quad 0x8a50777e166f031a
        .quad 0x067b39f10fb7a328
        .quad 0x1925c9a6010fbd76
        .quad 0x6df9b575cc740905



        .quad 0x42c1192927f6bdcf
        .quad 0x8f91917a403d61ca
        .quad 0xdc1c5a668b9e1f61
        .quad 0x1596047804ec0f8d
        .quad 0xecdfc35b48cade41
        .quad 0x6a88471fb2328270
        .quad 0x740a4a2440a01b6a
        .quad 0x471e5796003b5f29
        .quad 0xda96bbb3aced37ac
        .quad 0x7a2423b5e9208cea
        .quad 0x24cc5c3038aebae2
        .quad 0x50c356afdc5dae2f



        .quad 0x09dcbf4341c30318
        .quad 0xeeba061183181dce
        .quad 0xc179c0cedc1e29a1
        .quad 0x1dbf7b89073f35b0
        .quad 0xcfed9cdf1b31b964
        .quad 0xf486a9858ca51af3
        .quad 0x14897265ea8c1f84
        .quad 0x784a53dd932acc00
        .quad 0x2d99f9df14fc4920
        .quad 0x76ccb60cc4499fe5
        .quad 0xa4132cbbe5cf0003
        .quad 0x3f93d82354f000ea



        .quad 0x8183e7689e04ce85
        .quad 0x678fb71e04465341
        .quad 0xad92058f6688edac
        .quad 0x5da350d3532b099a
        .quad 0xeaac12d179e14978
        .quad 0xff923ff3bbebff5e
        .quad 0x4af663e40663ce27
        .quad 0x0fd381a811a5f5ff
        .quad 0xf256aceca436df54
        .quad 0x108b6168ae69d6e8
        .quad 0x20d986cb6b5d036c
        .quad 0x655957b9fee2af50



        .quad 0xaea8b07fa902030f
        .quad 0xf88c766af463d143
        .quad 0x15b083663c787a60
        .quad 0x08eab1148267a4a8
        .quad 0xbdc1409bd002d0ac
        .quad 0x66660245b5ccd9a6
        .quad 0x82317dc4fade85ec
        .quad 0x02fe934b6ad7df0d
        .quad 0xef5cf100cfb7ea74
        .quad 0x22897633a1cb42ac
        .quad 0xd4ce0c54cef285e2
        .quad 0x30408c048a146a55



        .quad 0x739d8845832fcedb
        .quad 0xfa38d6c9ae6bf863
        .quad 0x32bc0dcab74ffef7
        .quad 0x73937e8814bce45e
        .quad 0xbb2e00c9193b877f
        .quad 0xece3a890e0dc506b
        .quad 0xecf3b7c036de649f
        .quad 0x5f46040898de9e1a
        .quad 0xb9037116297bf48d
        .quad 0xa9d13b22d4f06834
        .quad 0xe19715574696bdc6
        .quad 0x2cf8a4e891d5e835



        .quad 0x6d93fd8707110f67
        .quad 0xdd4c09d37c38b549
        .quad 0x7cb16a4cc2736a86
        .quad 0x2049bd6e58252a09
        .quad 0x2cb5487e17d06ba2
        .quad 0x24d2381c3950196b
        .quad 0xd7659c8185978a30
        .quad 0x7a6f7f2891d6a4f6
        .quad 0x7d09fd8d6a9aef49
        .quad 0xf0ee60be5b3db90b
        .quad 0x4c21b52c519ebfd4
        .quad 0x6011aadfc545941d



        .quad 0x5f67926dcf95f83c
        .quad 0x7c7e856171289071
        .quad 0xd6a1e7f3998f7a5b
        .quad 0x6fc5cc1b0b62f9e0
        .quad 0x63ded0c802cbf890
        .quad 0xfbd098ca0dff6aaa
        .quad 0x624d0afdb9b6ed99
        .quad 0x69ce18b779340b1e
        .quad 0xd1ef5528b29879cb
        .quad 0xdd1aae3cd47e9092
        .quad 0x127e0442189f2352
        .quad 0x15596b3ae57101f1



        .quad 0x462739d23f9179a2
        .quad 0xff83123197d6ddcf
        .quad 0x1307deb553f2148a
        .quad 0x0d2237687b5f4dda
        .quad 0x09ff31167e5124ca
        .quad 0x0be4158bd9c745df
        .quad 0x292b7d227ef556e5
        .quad 0x3aa4e241afb6d138
        .quad 0x2cc138bf2a3305f5
        .quad 0x48583f8fa2e926c3
        .quad 0x083ab1a25549d2eb
        .quad 0x32fcaa6e4687a36c



        .quad 0x7bc56e8dc57d9af5
        .quad 0x3e0bd2ed9df0bdf2
        .quad 0xaac014de22efe4a3
        .quad 0x4627e9cefebd6a5c
        .quad 0x3207a4732787ccdf
        .quad 0x17e31908f213e3f8
        .quad 0xd5b2ecd7f60d964e
        .quad 0x746f6336c2600be9
        .quad 0x3f4af345ab6c971c
        .quad 0xe288eb729943731f
        .quad 0x33596a8a0344186d
        .quad 0x7b4917007ed66293



        .quad 0x2d85fb5cab84b064
        .quad 0x497810d289f3bc14
        .quad 0x476adc447b15ce0c
        .quad 0x122ba376f844fd7b
        .quad 0x54341b28dd53a2dd
        .quad 0xaa17905bdf42fc3f
        .quad 0x0ff592d94dd2f8f4
        .quad 0x1d03620fe08cd37d
        .quad 0xc20232cda2b4e554
        .quad 0x9ed0fd42115d187f
        .quad 0x2eabb4be7dd479d9
        .quad 0x02c70bf52b68ec4c



        .quad 0xa287ec4b5d0b2fbb
        .quad 0x415c5790074882ca
        .quad 0xe044a61ec1d0815c
        .quad 0x26334f0a409ef5e0
        .quad 0xace532bf458d72e1
        .quad 0x5be768e07cb73cb5
        .quad 0x56cf7d94ee8bbde7
        .quad 0x6b0697e3feb43a03
        .quad 0xb6c8f04adf62a3c0
        .quad 0x3ef000ef076da45d
        .quad 0x9c9cb95849f0d2a9
        .quad 0x1cc37f43441b2fae



        .quad 0x508f565a5cc7324f
        .quad 0xd061c4c0e506a922
        .quad 0xfb18abdb5c45ac19
        .quad 0x6c6809c10380314a
        .quad 0xd76656f1c9ceaeb9
        .quad 0x1c5b15f818e5656a
        .quad 0x26e72832844c2334
        .quad 0x3a346f772f196838
        .quad 0xd2d55112e2da6ac8
        .quad 0xe9bd0331b1e851ed
        .quad 0x960746dd8ec67262
        .quad 0x05911b9f6ef7c5d0



        .quad 0xe9dcd756b637ff2d
        .quad 0xec4c348fc987f0c4
        .quad 0xced59285f3fbc7b7
        .quad 0x3305354793e1ea87
        .quad 0x01c18980c5fe9f94
        .quad 0xcd656769716fd5c8
        .quad 0x816045c3d195a086
        .quad 0x6e2b7f3266cc7982
        .quad 0xcc802468f7c3568f
        .quad 0x9de9ba8219974cb3
        .quad 0xabb7229cb5b81360
        .quad 0x44e2017a6fbeba62



        .quad 0xc4c2a74354dab774
        .quad 0x8e5d4c3c4eaf031a
        .quad 0xb76c23d242838f17
        .quad 0x749a098f68dce4ea
        .quad 0x87f82cf3b6ca6ecd
        .quad 0x580f893e18f4a0c2
        .quad 0x058930072604e557
        .quad 0x6cab6ac256d19c1d
        .quad 0xdcdfe0a02cc1de60
        .quad 0x032665ff51c5575b
        .quad 0x2c0c32f1073abeeb
        .quad 0x6a882014cd7b8606



        .quad 0xa52a92fea4747fb5
        .quad 0xdc12a4491fa5ab89
        .quad 0xd82da94bb847a4ce
        .quad 0x4d77edce9512cc4e
        .quad 0xd111d17caf4feb6e
        .quad 0x050bba42b33aa4a3
        .quad 0x17514c3ceeb46c30
        .quad 0x54bedb8b1bc27d75
        .quad 0x77c8e14577e2189c
        .quad 0xa3e46f6aff99c445
        .quad 0x3144dfc86d335343
        .quad 0x3a96559e7c4216a9



        .quad 0x12550d37f42ad2ee
        .quad 0x8b78e00498a1fbf5
        .quad 0x5d53078233894cb2
        .quad 0x02c84e4e3e498d0c
        .quad 0x4493896880baaa52
        .quad 0x4c98afc4f285940e
        .quad 0xef4aa79ba45448b6
        .quad 0x5278c510a57aae7f
        .quad 0xa54dd074294c0b94
        .quad 0xf55d46b8df18ffb6
        .quad 0xf06fecc58dae8366
        .quad 0x588657668190d165



        .quad 0xd47712311aef7117
        .quad 0x50343101229e92c7
        .quad 0x7a95e1849d159b97
        .quad 0x2449959b8b5d29c9
        .quad 0xbf5834f03de25cc3
        .quad 0xb887c8aed6815496
        .quad 0x5105221a9481e892
        .quad 0x6760ed19f7723f93
        .quad 0x669ba3b7ac35e160
        .quad 0x2eccf73fba842056
        .quad 0x1aec1f17c0804f07
        .quad 0x0d96bc031856f4e7



        .quad 0x3318be7775c52d82
        .quad 0x4cb764b554d0aab9
        .quad 0xabcf3d27cc773d91
        .quad 0x3bf4d1848123288a
        .quad 0xb1d534b0cc7505e1
        .quad 0x32cd003416c35288
        .quad 0xcb36a5800762c29d
        .quad 0x5bfe69b9237a0bf8
        .quad 0x183eab7e78a151ab
        .quad 0xbbe990c999093763
        .quad 0xff717d6e4ac7e335
        .quad 0x4c5cddb325f39f88



        .quad 0xc0f6b74d6190a6eb
        .quad 0x20ea81a42db8f4e4
        .quad 0xa8bd6f7d97315760
        .quad 0x33b1d60262ac7c21
        .quad 0x57750967e7a9f902
        .quad 0x2c37fdfc4f5b467e
        .quad 0xb261663a3177ba46
        .quad 0x3a375e78dc2d532b
        .quad 0x8141e72f2d4dddea
        .quad 0xe6eafe9862c607c8
        .quad 0x23c28458573cafd0
        .quad 0x46b9476f4ff97346



        .quad 0x0c1ffea44f901e5c
        .quad 0x2b0b6fb72184b782
        .quad 0xe587ff910114db88
        .quad 0x37130f364785a142
        .quad 0x1215505c0d58359f
        .quad 0x2a2013c7fc28c46b
        .quad 0x24a0a1af89ea664e
        .quad 0x4400b638a1130e1f
        .quad 0x3a01b76496ed19c3
        .quad 0x31e00ab0ed327230
        .quad 0x520a885783ca15b1
        .quad 0x06aab9875accbec7



        .quad 0xc1339983f5df0ebb
        .quad 0xc0f3758f512c4cac
        .quad 0x2cf1130a0bb398e1
        .quad 0x6b3cecf9aa270c62
        .quad 0x5349acf3512eeaef
        .quad 0x20c141d31cc1cb49
        .quad 0x24180c07a99a688d
        .quad 0x555ef9d1c64b2d17
        .quad 0x36a770ba3b73bd08
        .quad 0x624aef08a3afbf0c
        .quad 0x5737ff98b40946f2
        .quad 0x675f4de13381749d



        .quad 0x0e2c52036b1782fc
        .quad 0x64816c816cad83b4
        .quad 0xd0dcbdd96964073e
        .quad 0x13d99df70164c520
        .quad 0xa12ff6d93bdab31d
        .quad 0x0725d80f9d652dfe
        .quad 0x019c4ff39abe9487
        .quad 0x60f450b882cd3c43
        .quad 0x014b5ec321e5c0ca
        .quad 0x4fcb69c9d719bfa2
        .quad 0x4e5f1c18750023a0
        .quad 0x1c06de9e55edac80



        .quad 0x990f7ad6a33ec4e2
        .quad 0x6608f938be2ee08e
        .quad 0x9ca143c563284515
        .quad 0x4cf38a1fec2db60d
        .quad 0xffd52b40ff6d69aa
        .quad 0x34530b18dc4049bb
        .quad 0x5e4a5c2fa34d9897
        .quad 0x78096f8e7d32ba2d
        .quad 0xa0aaaa650dfa5ce7
        .quad 0xf9c49e2a48b5478c
        .quad 0x4f09cc7d7003725b
        .quad 0x373cad3a26091abe



        .quad 0xb294634d82c9f57c
        .quad 0x1fcbfde124934536
        .quad 0x9e9c4db3418cdb5a
        .quad 0x0040f3d9454419fc
        .quad 0xf1bea8fb89ddbbad
        .quad 0x3bcb2cbc61aeaecb
        .quad 0x8f58a7bb1f9b8d9d
        .quad 0x21547eda5112a686
        .quad 0xdefde939fd5986d3
        .quad 0xf4272c89510a380c
        .quad 0xb72ba407bb3119b9
        .quad 0x63550a334a254df4



        .quad 0x6507d6edb569cf37
        .quad 0x178429b00ca52ee1
        .quad 0xea7c0090eb6bd65d
        .quad 0x3eea62c7daf78f51
        .quad 0x9bba584572547b49
        .quad 0xf305c6fae2c408e0
        .quad 0x60e8fa69c734f18d
        .quad 0x39a92bafaa7d767a
        .quad 0x9d24c713e693274e
        .quad 0x5f63857768dbd375
        .quad 0x70525560eb8ab39a
        .quad 0x68436a0665c9c4cd



        .quad 0xbc0235e8202f3f27
        .quad 0xc75c00e264f975b0
        .quad 0x91a4e9d5a38c2416
        .quad 0x17b6e7f68ab789f9
        .quad 0x1e56d317e820107c
        .quad 0xc5266844840ae965
        .quad 0xc1e0a1c6320ffc7a
        .quad 0x5373669c91611472
        .quad 0x5d2814ab9a0e5257
        .quad 0x908f2084c9cab3fc
        .quad 0xafcaf5885b2d1eca
        .quad 0x1cb4b5a678f87d11



        .quad 0xb664c06b394afc6c
        .quad 0x0c88de2498da5fb1
        .quad 0x4f8d03164bcad834
        .quad 0x330bca78de7434a2
        .quad 0x6b74aa62a2a007e7
        .quad 0xf311e0b0f071c7b1
        .quad 0x5707e438000be223
        .quad 0x2dc0fd2d82ef6eac
        .quad 0x982eff841119744e
        .quad 0xf9695e962b074724
        .quad 0xc58ac14fbfc953fb
        .quad 0x3c31be1b369f1cf5



        .quad 0xb0f4864d08948aee
        .quad 0x07dc19ee91ba1c6f
        .quad 0x7975cdaea6aca158
        .quad 0x330b61134262d4bb
        .quad 0xc168bc93f9cb4272
        .quad 0xaeb8711fc7cedb98
        .quad 0x7f0e52aa34ac8d7a
        .quad 0x41cec1097e7d55bb
        .quad 0xf79619d7a26d808a
        .quad 0xbb1fd49e1d9e156d
        .quad 0x73d7c36cdba1df27
        .quad 0x26b44cd91f28777d



        .quad 0x300a9035393aa6d8
        .quad 0x2b501131a12bb1cd
        .quad 0x7b1ff677f093c222
        .quad 0x4309c1f8cab82bad
        .quad 0xaf44842db0285f37
        .quad 0x8753189047efc8df
        .quad 0x9574e091f820979a
        .quad 0x0e378d6069615579
        .quad 0xd9fa917183075a55
        .quad 0x4bdb5ad26b009fdc
        .quad 0x7829ad2cd63def0e
        .quad 0x078fc54975fd3877



        .quad 0x87dfbd1428878f2d
        .quad 0x134636dd1e9421a1
        .quad 0x4f17c951257341a3
        .quad 0x5df98d4bad296cb8
        .quad 0xe2004b5bb833a98a
        .quad 0x44775dec2d4c3330
        .quad 0x3aa244067eace913
        .quad 0x272630e3d58e00a9
        .quad 0xf3678fd0ecc90b54
        .quad 0xf001459b12043599
        .quad 0x26725fbc3758b89b
        .quad 0x4325e4aa73a719ae



        .quad 0x657dc6ef433c3493
        .quad 0x65375e9f80dbf8c3
        .quad 0x47fd2d465b372dae
        .quad 0x4966ab79796e7947
        .quad 0xed24629acf69f59d
        .quad 0x2a4a1ccedd5abbf4
        .quad 0x3535ca1f56b2d67b
        .quad 0x5d8c68d043b1b42d
        .quad 0xee332d4de3b42b0a
        .quad 0xd84e5a2b16a4601c
        .quad 0x78243877078ba3e4
        .quad 0x77ed1eb4184ee437



        .quad 0xbfd4e13f201839a0
        .quad 0xaeefffe23e3df161
        .quad 0xb65b04f06b5d1fe3
        .quad 0x52e085fb2b62fbc0
        .quad 0x185d43f89e92ed1a
        .quad 0xb04a1eeafe4719c6
        .quad 0x499fbe88a6f03f4f
        .quad 0x5d8b0d2f3c859bdd
        .quad 0x124079eaa54cf2ba
        .quad 0xd72465eb001b26e7
        .quad 0x6843bcfdc97af7fd
        .quad 0x0524b42b55eacd02



        .quad 0xfd0d5dbee45447b0
        .quad 0x6cec351a092005ee
        .quad 0x99a47844567579cb
        .quad 0x59d242a216e7fa45
        .quad 0xbc18dcad9b829eac
        .quad 0x23ae7d28b5f579d0
        .quad 0xc346122a69384233
        .quad 0x1a6110b2e7d4ac89
        .quad 0x4f833f6ae66997ac
        .quad 0x6849762a361839a4
        .quad 0x6985dec1970ab525
        .quad 0x53045e89dcb1f546



        .quad 0xcb8bb346d75353db
        .quad 0xfcfcb24bae511e22
        .quad 0xcba48d40d50ae6ef
        .quad 0x26e3bae5f4f7cb5d
        .quad 0x84da3cde8d45fe12
        .quad 0xbd42c218e444e2d2
        .quad 0xa85196781f7e3598
        .quad 0x7642c93f5616e2b2
        .quad 0x2323daa74595f8e4
        .quad 0xde688c8b857abeb4
        .quad 0x3fc48e961c59326e
        .quad 0x0b2e73ca15c9b8ba



        .quad 0xd6bb4428c17f5026
        .quad 0x9eb27223fb5a9ca7
        .quad 0xe37ba5031919c644
        .quad 0x21ce380db59a6602
        .quad 0x0e3fbfaf79c03a55
        .quad 0x3077af054cbb5acf
        .quad 0xd5c55245db3de39f
        .quad 0x015e68c1476a4af7
        .quad 0xc1d5285220066a38
        .quad 0x95603e523570aef3
        .quad 0x832659a7226b8a4d
        .quad 0x5dd689091f8eedc9



        .quad 0xcbac84debfd3c856
        .quad 0x1624c348b35ff244
        .quad 0xb7f88dca5d9cad07
        .quad 0x3b0e574da2c2ebe8
        .quad 0x1d022591a5313084
        .quad 0xca2d4aaed6270872
        .quad 0x86a12b852f0bfd20
        .quad 0x56e6c439ad7da748
        .quad 0xc704ff4942bdbae6
        .quad 0x5e21ade2b2de1f79
        .quad 0xe95db3f35652fad8
        .quad 0x0822b5378f08ebc1



        .quad 0x51f048478f387475
        .quad 0xb25dbcf49cbecb3c
        .quad 0x9aab1244d99f2055
        .quad 0x2c709e6c1c10a5d6
        .quad 0xe1b7f29362730383
        .quad 0x4b5279ffebca8a2c
        .quad 0xdafc778abfd41314
        .quad 0x7deb10149c72610f
        .quad 0xcb62af6a8766ee7a
        .quad 0x66cbec045553cd0e
        .quad 0x588001380f0be4b5
        .quad 0x08e68e9ff62ce2ea



        .quad 0x34ad500a4bc130ad
        .quad 0x8d38db493d0bd49c
        .quad 0xa25c3d98500a89be
        .quad 0x2f1f3f87eeba3b09
        .quad 0x2f2d09d50ab8f2f9
        .quad 0xacb9218dc55923df
        .quad 0x4a8f342673766cb9
        .quad 0x4cb13bd738f719f5
        .quad 0xf7848c75e515b64a
        .quad 0xa59501badb4a9038
        .quad 0xc20d313f3f751b50
        .quad 0x19a1e353c0ae2ee8



        .quad 0x7d1c7560bafa05c3
        .quad 0xb3e1a0a0c6e55e61
        .quad 0xe3529718c0d66473
        .quad 0x41546b11c20c3486
        .quad 0xb42172cdd596bdbd
        .quad 0x93e0454398eefc40
        .quad 0x9fb15347b44109b5
        .quad 0x736bd3990266ae34
        .quad 0x85532d509334b3b4
        .quad 0x46fd114b60816573
        .quad 0xcc5f5f30425c8375
        .quad 0x412295a2b87fab5c



        .quad 0x19c99b88f57ed6e9
        .quad 0x5393cb266df8c825
        .quad 0x5cee3213b30ad273
        .quad 0x14e153ebb52d2e34
        .quad 0x2e655261e293eac6
        .quad 0x845a92032133acdb
        .quad 0x460975cb7900996b
        .quad 0x0760bb8d195add80
        .quad 0x413e1a17cde6818a
        .quad 0x57156da9ed69a084
        .quad 0x2cbf268f46caccb1
        .quad 0x6b34be9bc33ac5f2



        .quad 0xf3df2f643a78c0b2
        .quad 0x4c3e971ef22e027c
        .quad 0xec7d1c5e49c1b5a3
        .quad 0x2012c18f0922dd2d
        .quad 0x11fc69656571f2d3
        .quad 0xc6c9e845530e737a
        .quad 0xe33ae7a2d4fe5035
        .quad 0x01b9c7b62e6dd30b
        .quad 0x880b55e55ac89d29
        .quad 0x1483241f45a0a763
        .quad 0x3d36efdfc2e76c1f
        .quad 0x08af5b784e4bade8



        .quad 0x283499dc881f2533
        .quad 0x9d0525da779323b6
        .quad 0x897addfb673441f4
        .quad 0x32b79d71163a168d
        .quad 0xe27314d289cc2c4b
        .quad 0x4be4bd11a287178d
        .quad 0x18d528d6fa3364ce
        .quad 0x6423c1d5afd9826e
        .quad 0xcc85f8d9edfcb36a
        .quad 0x22bcc28f3746e5f9
        .quad 0xe49de338f9e5d3cd
        .quad 0x480a5efbc13e2dcc



        .quad 0x0b51e70b01622071
        .quad 0x06b505cf8b1dafc5
        .quad 0x2c6bb061ef5aabcd
        .quad 0x47aa27600cb7bf31
        .quad 0xb6614ce442ce221f
        .quad 0x6e199dcc4c053928
        .quad 0x663fb4a4dc1cbe03
        .quad 0x24b31d47691c8e06
        .quad 0x2a541eedc015f8c3
        .quad 0x11a4fe7e7c693f7c
        .quad 0xf0af66134ea278d6
        .quad 0x545b585d14dda094



        .quad 0x67bf275ea0d43a0f
        .quad 0xade68e34089beebe
        .quad 0x4289134cd479e72e
        .quad 0x0f62f9c332ba5454
        .quad 0x6204e4d0e3b321e1
        .quad 0x3baa637a28ff1e95
        .quad 0x0b0ccffd5b99bd9e
        .quad 0x4d22dc3e64c8d071
        .quad 0xfcb46589d63b5f39
        .quad 0x5cae6a3f57cbcf61
        .quad 0xfebac2d2953afa05
        .quad 0x1c0fa01a36371436



        .quad 0xe7547449bc7cd692
        .quad 0x0f9abeaae6f73ddf
        .quad 0x4af01ca700837e29
        .quad 0x63ab1b5d3f1bc183
        .quad 0xc11ee5e854c53fae
        .quad 0x6a0b06c12b4f3ff4
        .quad 0x33540f80e0b67a72
        .quad 0x15f18fc3cd07e3ef
        .quad 0x32750763b028f48c
        .quad 0x06020740556a065f
        .quad 0xd53bd812c3495b58
        .quad 0x08706c9b865f508d



        .quad 0xf37ca2ab3d343dff
        .quad 0x1a8c6a2d80abc617
        .quad 0x8e49e035d4ccffca
        .quad 0x48b46beebaa1d1b9
        .quad 0xcc991b4138b41246
        .quad 0x243b9c526f9ac26b
        .quad 0xb9ef494db7cbabbd
        .quad 0x5fba433dd082ed00
        .quad 0x9c49e355c9941ad0
        .quad 0xb9734ade74498f84
        .quad 0x41c3fed066663e5c
        .quad 0x0ecfedf8e8e710b3



        .quad 0x76430f9f9cd470d9
        .quad 0xb62acc9ba42f6008
        .quad 0x1898297c59adad5e
        .quad 0x7789dd2db78c5080
        .quad 0x744f7463e9403762
        .quad 0xf79a8dee8dfcc9c9
        .quad 0x163a649655e4cde3
        .quad 0x3b61788db284f435
        .quad 0xb22228190d6ef6b2
        .quad 0xa94a66b246ce4bfa
        .quad 0x46c1a77a4f0b6cc7
        .quad 0x4236ccffeb7338cf



        .quad 0x8497404d0d55e274
        .quad 0x6c6663d9c4ad2b53
        .quad 0xec2fb0d9ada95734
        .quad 0x2617e120cdb8f73c
        .quad 0x3bd82dbfda777df6
        .quad 0x71b177cc0b98369e
        .quad 0x1d0e8463850c3699
        .quad 0x5a71945b48e2d1f1
        .quad 0x6f203dd5405b4b42
        .quad 0x327ec60410b24509
        .quad 0x9c347230ac2a8846
        .quad 0x77de29fc11ffeb6a



        .quad 0xb0ac57c983b778a8
        .quad 0x53cdcca9d7fe912c
        .quad 0x61c2b854ff1f59dc
        .quad 0x3a1a2cf0f0de7dac
        .quad 0x835e138fecced2ca
        .quad 0x8c9eaf13ea963b9a
        .quad 0xc95fbfc0b2160ea6
        .quad 0x575e66f3ad877892
        .quad 0x99803a27c88fcb3a
        .quad 0x345a6789275ec0b0
        .quad 0x459789d0ff6c2be5
        .quad 0x62f882651e70a8b2



        .quad 0x085ae2c759ff1be4
        .quad 0x149145c93b0e40b7
        .quad 0xc467e7fa7ff27379
        .quad 0x4eeecf0ad5c73a95
        .quad 0x6d822986698a19e0
        .quad 0xdc9821e174d78a71
        .quad 0x41a85f31f6cb1f47
        .quad 0x352721c2bcda9c51
        .quad 0x48329952213fc985
        .quad 0x1087cf0d368a1746
        .quad 0x8e5261b166c15aa5
        .quad 0x2d5b2d842ed24c21



        .quad 0x02cfebd9ebd3ded1
        .quad 0xd45b217739021974
        .quad 0x7576f813fe30a1b7
        .quad 0x5691b6f9a34ef6c2
        .quad 0x5eb7d13d196ac533
        .quad 0x377234ecdb80be2b
        .quad 0xe144cffc7cf5ae24
        .quad 0x5226bcf9c441acec
        .quad 0x79ee6c7223e5b547
        .quad 0x6f5f50768330d679
        .quad 0xed73e1e96d8adce9
        .quad 0x27c3da1e1d8ccc03



        .quad 0x7eb9efb23fe24c74
        .quad 0x3e50f49f1651be01
        .quad 0x3ea732dc21858dea
        .quad 0x17377bd75bb810f9
        .quad 0x28302e71630ef9f6
        .quad 0xc2d4a2032b64cee0
        .quad 0x090820304b6292be
        .quad 0x5fca747aa82adf18
        .quad 0x232a03c35c258ea5
        .quad 0x86f23a2c6bcb0cf1
        .quad 0x3dad8d0d2e442166
        .quad 0x04a8933cab76862b



        .quad 0xd2c604b622943dff
        .quad 0xbc8cbece44cfb3a0
        .quad 0x5d254ff397808678
        .quad 0x0fa3614f3b1ca6bf
        .quad 0x69082b0e8c936a50
        .quad 0xf9c9a035c1dac5b6
        .quad 0x6fb73e54c4dfb634
        .quad 0x4005419b1d2bc140
        .quad 0xa003febdb9be82f0
        .quad 0x2089c1af3a44ac90
        .quad 0xf8499f911954fa8e
        .quad 0x1fba218aef40ab42



        .quad 0xab549448fac8f53e
        .quad 0x81f6e89a7ba63741
        .quad 0x74fd6c7d6c2b5e01
        .quad 0x392e3acaa8c86e42
        .quad 0x4f3e57043e7b0194
        .quad 0xa81d3eee08daaf7f
        .quad 0xc839c6ab99dcdef1
        .quad 0x6c535d13ff7761d5
        .quad 0x4cbd34e93e8a35af
        .quad 0x2e0781445887e816
        .quad 0x19319c76f29ab0ab
        .quad 0x25e17fe4d50ac13b



        .quad 0x0a289bd71e04f676
        .quad 0x208e1c52d6420f95
        .quad 0x5186d8b034691fab
        .quad 0x255751442a9fb351
        .quad 0x915f7ff576f121a7
        .quad 0xc34a32272fcd87e3
        .quad 0xccba2fde4d1be526
        .quad 0x6bba828f8969899b
        .quad 0xe2d1bc6690fe3901
        .quad 0x4cb54a18a0997ad5
        .quad 0x971d6914af8460d4
        .quad 0x559d504f7f6b7be4



        .quad 0xa7738378b3eb54d5
        .quad 0x1d69d366a5553c7c
        .quad 0x0a26cf62f92800ba
        .quad 0x01ab12d5807e3217
        .quad 0x9c4891e7f6d266fd
        .quad 0x0744a19b0307781b
        .quad 0x88388f1d6061e23b
        .quad 0x123ea6a3354bd50e
        .quad 0x118d189041e32d96
        .quad 0xb9ede3c2d8315848
        .quad 0x1eab4271d83245d9
        .quad 0x4a3961e2c918a154



        .quad 0x71dc3be0f8e6bba0
        .quad 0xd6cef8347effe30a
        .quad 0xa992425fe13a476a
        .quad 0x2cd6bce3fb1db763
        .quad 0x0327d644f3233f1e
        .quad 0x499a260e34fcf016
        .quad 0x83b5a716f2dab979
        .quad 0x68aceead9bd4111f
        .quad 0x38b4c90ef3d7c210
        .quad 0x308e6e24b7ad040c
        .quad 0x3860d9f1b7e73e23
        .quad 0x595760d5b508f597



        .quad 0x6129bfe104aa6397
        .quad 0x8f960008a4a7fccb
        .quad 0x3f8bc0897d909458
        .quad 0x709fa43edcb291a9
        .quad 0x882acbebfd022790
        .quad 0x89af3305c4115760
        .quad 0x65f492e37d3473f4
        .quad 0x2cb2c5df54515a2b
        .quad 0xeb0a5d8c63fd2aca
        .quad 0xd22bc1662e694eff
        .quad 0x2723f36ef8cbb03a
        .quad 0x70f029ecf0c8131f



        .quad 0x461307b32eed3e33
        .quad 0xae042f33a45581e7
        .quad 0xc94449d3195f0366
        .quad 0x0b7d5d8a6c314858
        .quad 0x2a6aafaa5e10b0b9
        .quad 0x78f0a370ef041aa9
        .quad 0x773efb77aa3ad61f
        .quad 0x44eca5a2a74bd9e1
        .quad 0x25d448327b95d543
        .quad 0x70d38300a3340f1d
        .quad 0xde1c531c60e1c52b
        .quad 0x272224512c7de9e4



        .quad 0x1abc92af49c5342e
        .quad 0xffeed811b2e6fad0
        .quad 0xefa28c8dfcc84e29
        .quad 0x11b5df18a44cc543
        .quad 0xbf7bbb8a42a975fc
        .quad 0x8c5c397796ada358
        .quad 0xe27fc76fcdedaa48
        .quad 0x19735fd7f6bc20a6
        .quad 0xe3ab90d042c84266
        .quad 0xeb848e0f7f19547e
        .quad 0x2503a1d065a497b9
        .quad 0x0fef911191df895f



        .quad 0xb1507ca1ab1c6eb9
        .quad 0xbd448f3e16b687b3
        .quad 0x3455fb7f2c7a91ab
        .quad 0x7579229e2f2adec1
        .quad 0x6ab5dcb85b1c16b7
        .quad 0x94c0fce83c7b27a5
        .quad 0xa4b11c1a735517be
        .quad 0x499238d0ba0eafaa
        .quad 0xecf46e527aba8b57
        .quad 0x15a08c478bd1647b
        .quad 0x7af1c6a65f706fef
        .quad 0x6345fa78f03a30d5



        .quad 0xdf02f95f1015e7a1
        .quad 0x790ec41da9b40263
        .quad 0x4d3a0ea133ea1107
        .quad 0x54f70be7e33af8c9
        .quad 0x93d3cbe9bdd8f0a4
        .quad 0xdb152c1bfd177302
        .quad 0x7dbddc6d7f17a875
        .quad 0x3e1a71cc8f426efe
        .quad 0xc83ca3e390babd62
        .quad 0x80ede3670291c833
        .quad 0xc88038ccd37900c4
        .quad 0x2c5fc0231ec31fa1



        .quad 0xfeba911717038b4f
        .quad 0xe5123721c9deef81
        .quad 0x1c97e4e75d0d8834
        .quad 0x68afae7a23dc3bc6
        .quad 0xc422e4d102456e65
        .quad 0x87414ac1cad47b91
        .quad 0x1592e2bba2b6ffdd
        .quad 0x75d9d2bff5c2100f
        .quad 0x5bd9b4763626e81c
        .quad 0x89966936bca02edd
        .quad 0x0a41193d61f077b3
        .quad 0x3097a24200ce5471



        .quad 0x57427734c7f8b84c
        .quad 0xf141a13e01b270e9
        .quad 0x02d1adfeb4e564a6
        .quad 0x4bb23d92ce83bd48
        .quad 0xa162e7246695c486
        .quad 0x131d633435a89607
        .quad 0x30521561a0d12a37
        .quad 0x56704bada6afb363
        .quad 0xaf6c4aa752f912b9
        .quad 0x5e665f6cd86770c8
        .quad 0x4c35ac83a3c8cd58
        .quad 0x2b7a29c010a58a7e



        .quad 0xc4007f77d0c1cec3
        .quad 0x8d1020b6bac492f8
        .quad 0x32ec29d57e69daaf
        .quad 0x599408759d95fce0
        .quad 0x33810a23bf00086e
        .quad 0xafce925ee736ff7c
        .quad 0x3d60e670e24922d4
        .quad 0x11ce9e714f96061b
        .quad 0x219ef713d815bac1
        .quad 0xf141465d485be25c
        .quad 0x6d5447cc4e513c51
        .quad 0x174926be5ef44393



        .quad 0xb5deb2f9fc5bd5bb
        .quad 0x92daa72ae1d810e1
        .quad 0xafc4cfdcb72a1c59
        .quad 0x497d78813fc22a24
        .quad 0x3ef5d41593ea022e
        .quad 0x5cbcc1a20ed0eed6
        .quad 0x8fd24ecf07382c8c
        .quad 0x6fa42ead06d8e1ad
        .quad 0xe276824a1f73371f
        .quad 0x7f7cf01c4f5b6736
        .quad 0x7e201fe304fa46e7
        .quad 0x785a36a357808c96



        .quad 0x825fbdfd63014d2b
        .quad 0xc852369c6ca7578b
        .quad 0x5b2fcd285c0b5df0
        .quad 0x12ab214c58048c8f
        .quad 0x070442985d517bc3
        .quad 0x6acd56c7ae653678
        .quad 0x00a27983985a7763
        .quad 0x5167effae512662b
        .quad 0xbd4ea9e10f53c4b6
        .quad 0x1673dc5f8ac91a14
        .quad 0xa8f81a4e2acc1aba
        .quad 0x33a92a7924332a25



        .quad 0x9dd1f49927996c02
        .quad 0x0cb3b058e04d1752
        .quad 0x1f7e88967fd02c3e
        .quad 0x2f964268cb8b3eb1
        .quad 0x7ba95ba0218f2ada
        .quad 0xcff42287330fb9ca
        .quad 0xdada496d56c6d907
        .quad 0x5380c296f4beee54
        .quad 0x9d4f270466898d0a
        .quad 0x3d0987990aff3f7a
        .quad 0xd09ef36267daba45
        .quad 0x7761455e7b1c669c


.section .note.GNU-stack, "", %progbits
# 0 "curve25519/curve25519_x25519base_alt.S.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "curve25519/curve25519_x25519base_alt.S.S"
# 0 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
# 25 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
# 1 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/include/_internal_s2n_bignum.h" 1
# 26 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S" 2


        .globl curve25519_x25519base_alt
        .hidden curve25519_x25519base_alt
        .globl curve25519_x25519base_byte_alt
        .hidden curve25519_x25519base_byte_alt
        .text
# 415 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
.Lcurve25519_x25519base_alt_local_target:
curve25519_x25519base_alt:
.Lcurve25519_x25519base_byte_alt_local_target:
curve25519_x25519base_byte_alt:
# 436 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        pushq %rbx
        pushq %rbp
        pushq %r12
        pushq %r13
        pushq %r14
        pushq %r15
        subq $(15*32 +8), %rsp



        movq %rdi, 14*32(%rsp)







        movq (%rsi), %rax
        movq %rax, (%rsp)
        movq 8(%rsi), %rax
        movq %rax, 8(%rsp)
        movq 16(%rsi), %rax
        movq %rax, 16(%rsp)
        movq $0x3fffffffffffffff, %rax
        andq 24(%rsi), %rax
        movq %rax, 24(%rsp)
# 475 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        movq (%rsp), %rax
        andq $8, %rax

# WAS leaq curve25519_x25519base_alt_edwards25519_0g(%rip), %r10
	leaq	.Lcurve25519_x25519base_alt_edwards25519_0g_local_target(%rip), %r10
# WAS leaq curve25519_x25519base_alt_edwards25519_8g(%rip), %r11
	leaq	.Lcurve25519_x25519base_alt_edwards25519_8g_local_target(%rip), %r11

        movq (%r10), %rax
        movq (%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*16(%rsp)

        movq 8*1(%r10), %rax
        movq 8*1(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*17(%rsp)

        movq 8*2(%r10), %rax
        movq 8*2(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*18(%rsp)

        movq 8*3(%r10), %rax
        movq 8*3(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*19(%rsp)

        movq 8*4(%r10), %rax
        movq 8*4(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*20(%rsp)

        movq 8*5(%r10), %rax
        movq 8*5(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*21(%rsp)

        movq 8*6(%r10), %rax
        movq 8*6(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*22(%rsp)

        movq 8*7(%r10), %rax
        movq 8*7(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*23(%rsp)

        movl $1, %eax
        movq %rax, 8*24(%rsp)
        movl $0, %eax
        movq %rax, 8*25(%rsp)
        movq %rax, 8*26(%rsp)
        movq %rax, 8*27(%rsp)

        movq 8*8(%r10), %rax
        movq 8*8(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*28(%rsp)

        movq 8*9(%r10), %rax
        movq 8*9(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*29(%rsp)

        movq 8*10(%r10), %rax
        movq 8*10(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*30(%rsp)

        movq 8*11(%r10), %rax
        movq 8*11(%r11), %rcx
        cmovnzq %rcx, %rax
        movq %rax, 8*31(%rsp)
# 562 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        movq $4, 14*32 +8(%rsp)
# WAS leaq curve25519_x25519base_alt_edwards25519_gtable(%rip), %rax
	leaq	.Lcurve25519_x25519base_alt_edwards25519_gtable_local_target(%rip), %rax
        movq %rax, 15*32(%rsp)
        movq $0, 14*32 +16(%rsp)



.Lcurve25519_x25519base_alt_scalarloop_local_target:
curve25519_x25519base_alt_scalarloop:





        movq 14*32 +8(%rsp), %rax
        movq %rax, %rcx
        shrq $6, %rax
        movq (%rsp,%rax,8), %rax
        shrq %cl, %rax
        andq $15, %rax
        addq 14*32 +16(%rsp), %rax
        movq %rax, 14*32 +24(%rsp)

        cmpq $9, 14*32 +24(%rsp)
        sbbq %rax, %rax
        incq %rax
        movq %rax, 14*32 +16(%rsp)

        movq $16, %rdi
        subq 14*32 +24(%rsp), %rdi
        cmpq $0, 14*32 +16(%rsp)
        cmovzq 14*32 +24(%rsp), %rdi
        movq %rdi, 14*32 +24(%rsp)






        movl $1, %eax
        xorl %ebx, %ebx
        xorl %ecx, %ecx
        xorl %edx, %edx
        movl $1, %r8d
        xorl %r9d, %r9d
        xorl %r10d, %r10d
        xorl %r11d, %r11d
        xorl %r12d, %r12d
        xorl %r13d, %r13d
        xorl %r14d, %r14d
        xorl %r15d, %r15d

        movq 15*32(%rsp), %rbp

        cmpq $1, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $2, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $3, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $4, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $5, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $6, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $7, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15
        addq $96, %rbp

        cmpq $8, 14*32 +24(%rsp)
        movq (%rbp), %rsi
        cmovzq %rsi, %rax
        movq 8(%rbp), %rsi
        cmovzq %rsi, %rbx
        movq 16(%rbp), %rsi
        cmovzq %rsi, %rcx
        movq 24(%rbp), %rsi
        cmovzq %rsi, %rdx
        movq 32(%rbp), %rsi
        cmovzq %rsi, %r8
        movq 40(%rbp), %rsi
        cmovzq %rsi, %r9
        movq 48(%rbp), %rsi
        cmovzq %rsi, %r10
        movq 56(%rbp), %rsi
        cmovzq %rsi, %r11
        movq 64(%rbp), %rsi
        cmovzq %rsi, %r12
        movq 72(%rbp), %rsi
        cmovzq %rsi, %r13
        movq 80(%rbp), %rsi
        cmovzq %rsi, %r14
        movq 88(%rbp), %rsi
        cmovzq %rsi, %r15

        addq $96, %rbp
        movq %rbp, 15*32(%rsp)
# 850 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        cmpq $0, 14*32 +16(%rsp)

        movq %rax, %rsi
        cmovnzq %r8, %rsi
        cmovnzq %rax, %r8
        movq %rsi, 32(%rsp)
        movq %r8, 64(%rsp)

        movq %rbx, %rsi
        cmovnzq %r9, %rsi
        cmovnzq %rbx, %r9
        movq %rsi, 40(%rsp)
        movq %r9, 72(%rsp)

        movq %rcx, %rsi
        cmovnzq %r10, %rsi
        cmovnzq %rcx, %r10
        movq %rsi, 48(%rsp)
        movq %r10, 80(%rsp)

        movq %rdx, %rsi
        cmovnzq %r11, %rsi
        cmovnzq %rdx, %r11
        movq %rsi, 56(%rsp)
        movq %r11, 88(%rsp)

        movq $-19, %rax
        movq $-1, %rbx
        movq $-1, %rcx
        movq $0x7fffffffffffffff, %rdx
        subq %r12, %rax
        sbbq %r13, %rbx
        sbbq %r14, %rcx
        sbbq %r15, %rdx

        movq 14*32 +24(%rsp), %r8
        movq 14*32 +16(%rsp), %r9
        testq %r8, %r8
        cmovzq %r8, %r9
        testq %r9, %r9

        cmovzq %r12, %rax
        cmovzq %r13, %rbx
        cmovzq %r14, %rcx
        cmovzq %r15, %rdx
        movq %rax, 96(%rsp)
        movq %rbx, 104(%rsp)
        movq %rcx, 112(%rsp)
        movq %rdx, 120(%rsp)
# 907 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        movq (6*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq %r8, %r8
 movq 0x8+(6*32)(%rsp), %r9
 adcq %r9, %r9
 movq 0x10+(6*32)(%rsp), %r10
 adcq %r10, %r10
 movq 0x18+(6*32)(%rsp), %r11
 adcq %r11, %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (5*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (4*32)(%rsp), %r8
 movq 8+(5*32)(%rsp), %r9
 sbbq 8+(4*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(5*32)(%rsp), %r10
 sbbq 16+(4*32)(%rsp), %r10
 movq 24+(5*32)(%rsp), %rax
 sbbq 24+(4*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (9*32)(%rsp)
 movq %r9, 8+(9*32)(%rsp)
 movq %r10, 16+(9*32)(%rsp)
 movq %rax, 24+(9*32)(%rsp)
        movq (5*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (4*32)(%rsp), %r8
 movq 0x8+(5*32)(%rsp), %r9
 adcq 0x8+(4*32)(%rsp), %r9
 movq 0x10+(5*32)(%rsp), %r10
 adcq 0x10+(4*32)(%rsp), %r10
 movq 0x18+(5*32)(%rsp), %r11
 adcq 0x18+(4*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (7*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (7*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(7*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (7*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(7*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(7*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (7*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(7*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(7*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(7*32)(%rsp), %rax
 mulq (3*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(7*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(7*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(7*32)(%rsp), %rax
 mulq 0x8+(3*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(7*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(7*32)(%rsp), %rax
 mulq 0x10+(3*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(7*32)(%rsp), %rax
 mulq 0x18+(3*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (11*32)(%rsp)
 movq %r9, 0x8+(11*32)(%rsp)
 movq %r10, 0x10+(11*32)(%rsp)
 movq %r11, 0x18+(11*32)(%rsp)
        movq (9*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (9*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(9*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (9*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(9*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (9*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(9*32)(%rsp), %rax
 mulq (1*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x8+(1*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x10+(1*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x18+(1*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        movq (10*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (10*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(10*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (10*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(10*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (10*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(10*32)(%rsp), %rax
 mulq (2*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(10*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x8+(2*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(10*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x10+(2*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(10*32)(%rsp), %rax
 mulq 0x18+(2*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (10*32)(%rsp)
 movq %r9, 0x8+(10*32)(%rsp)
 movq %r10, 0x10+(10*32)(%rsp)
 movq %r11, 0x18+(10*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (11*32)(%rsp), %r8
 movq 8+(8*32)(%rsp), %r9
 sbbq 8+(11*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(8*32)(%rsp), %r10
 sbbq 16+(11*32)(%rsp), %r10
 movq 24+(8*32)(%rsp), %rax
 sbbq 24+(11*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (12*32)(%rsp)
 movq %r9, 8+(12*32)(%rsp)
 movq %r10, 16+(12*32)(%rsp)
 movq %rax, 24+(12*32)(%rsp)
        movq (8*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (11*32)(%rsp), %r8
 movq 0x8+(8*32)(%rsp), %r9
 adcq 0x8+(11*32)(%rsp), %r9
 movq 0x10+(8*32)(%rsp), %r10
 adcq 0x10+(11*32)(%rsp), %r10
 movq 0x18+(8*32)(%rsp), %r11
 adcq 0x18+(11*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (8*32)(%rsp)
 movq %r9, 0x8+(8*32)(%rsp)
 movq %r10, 0x10+(8*32)(%rsp)
 movq %r11, 0x18+(8*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (9*32)(%rsp), %r8
 movq 8+(10*32)(%rsp), %r9
 sbbq 8+(9*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(10*32)(%rsp), %r10
 sbbq 16+(9*32)(%rsp), %r10
 movq 24+(10*32)(%rsp), %rax
 sbbq 24+(9*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (13*32)(%rsp)
 movq %r9, 8+(13*32)(%rsp)
 movq %r10, 16+(13*32)(%rsp)
 movq %rax, 24+(13*32)(%rsp)
        movq (10*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (9*32)(%rsp), %r8
 movq 0x8+(10*32)(%rsp), %r9
 adcq 0x8+(9*32)(%rsp), %r9
 movq 0x10+(10*32)(%rsp), %r10
 adcq 0x10+(9*32)(%rsp), %r10
 movq 0x18+(10*32)(%rsp), %r11
 adcq 0x18+(9*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        movq (12*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (12*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(12*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (12*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(12*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(12*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (12*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(12*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(12*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(12*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(12*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(12*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(12*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(12*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(12*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(12*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (6*32)(%rsp)
 movq %r9, 0x8+(6*32)(%rsp)
 movq %r10, 0x10+(6*32)(%rsp)
 movq %r11, 0x18+(6*32)(%rsp)
        movq (13*32)(%rsp), %rax
 mulq (12*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (13*32)(%rsp), %rax
 mulq 0x8+(12*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(13*32)(%rsp), %rax
 mulq (12*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (13*32)(%rsp), %rax
 mulq 0x10+(12*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x8+(12*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(13*32)(%rsp), %rax
 mulq (12*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (13*32)(%rsp), %rax
 mulq 0x18+(12*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x10+(12*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x8+(12*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(13*32)(%rsp), %rax
 mulq (12*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x18+(12*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x10+(12*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x8+(12*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x18+(12*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x10+(12*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x18+(12*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (4*32)(%rsp)
 movq %r9, 0x8+(4*32)(%rsp)
 movq %r10, 0x10+(4*32)(%rsp)
 movq %r11, 0x18+(4*32)(%rsp)
        movq (8*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (8*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(8*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (8*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(8*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (8*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(8*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(8*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(8*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(8*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (5*32)(%rsp)
 movq %r9, 0x8+(5*32)(%rsp)
 movq %r10, 0x10+(5*32)(%rsp)
 movq %r11, 0x18+(5*32)(%rsp)
        movq (13*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (13*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(13*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (13*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(13*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (13*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(13*32)(%rsp), %rax
 mulq (9*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(13*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x8+(9*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(13*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x10+(9*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(13*32)(%rsp), %rax
 mulq 0x18+(9*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %ebx
 movq %r12, %rax
 mulq %rbx
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rbx
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rbx
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 btr $0x3f, %r11
 movl $0x13, %edx
 imulq %r12, %rdx
 addq %rdx, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (7*32)(%rsp)
 movq %r9, 0x8+(7*32)(%rsp)
 movq %r10, 0x10+(7*32)(%rsp)
 movq %r11, 0x18+(7*32)(%rsp)



        addq $4, 14*32 +8(%rsp)
        cmpq $256, 14*32 +8(%rsp)
# WAS jc curve25519_x25519base_alt_scalarloop
	jc	.Lcurve25519_x25519base_alt_scalarloop_local_target
# 953 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        movq (4*32)(%rsp), %r8
 xorl %ecx, %ecx
 addq (7*32)(%rsp), %r8
 movq 0x8+(4*32)(%rsp), %r9
 adcq 0x8+(7*32)(%rsp), %r9
 movq 0x10+(4*32)(%rsp), %r10
 adcq 0x10+(7*32)(%rsp), %r10
 movq 0x18+(4*32)(%rsp), %r11
 adcq 0x18+(7*32)(%rsp), %r11
 movl $38, %eax
 cmovncq %rcx, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 movq %r8, (9*32)(%rsp)
 movq %r9, 0x8+(9*32)(%rsp)
 movq %r10, 0x10+(9*32)(%rsp)
 movq %r11, 0x18+(9*32)(%rsp)
        movq (4*32)(%rsp), %r8
 xorl %ebx, %ebx
 subq (7*32)(%rsp), %r8
 movq 8+(4*32)(%rsp), %r9
 sbbq 8+(7*32)(%rsp), %r9
 movl $38, %ecx
 movq 16+(4*32)(%rsp), %r10
 sbbq 16+(7*32)(%rsp), %r10
 movq 24+(4*32)(%rsp), %rax
 sbbq 24+(7*32)(%rsp), %rax
 cmovncq %rbx, %rcx
 subq %rcx, %r8
 sbbq %rbx, %r9
 sbbq %rbx, %r10
 sbbq %rbx, %rax
 movq %r8, (10*32)(%rsp)
 movq %r9, 8+(10*32)(%rsp)
 movq %r10, 16+(10*32)(%rsp)
 movq %rax, 24+(10*32)(%rsp)





        leaq 256(%rsp), %rdi
        leaq 320(%rsp), %rsi
# 970 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
        movq %rdi, 0xc0(%rsp)
        xorl %eax, %eax
        leaq -0x13(%rax), %rcx
        notq %rax
        movq %rcx, (%rsp)
        movq %rax, 0x8(%rsp)
        movq %rax, 0x10(%rsp)
        btr $0x3f, %rax
        movq %rax, 0x18(%rsp)
        movq (%rsi), %rdx
        movq 0x8(%rsi), %rcx
        movq 0x10(%rsi), %r8
        movq 0x18(%rsi), %r9
        movl $0x1, %eax
        xorl %r10d, %r10d
        bts $0x3f, %r9
        adcq %r10, %rax
        imulq $0x13, %rax, %rax
        addq %rax, %rdx
        adcq %r10, %rcx
        adcq %r10, %r8
        adcq %r10, %r9
        movl $0x13, %eax
        cmovbq %r10, %rax
        subq %rax, %rdx
        sbbq %r10, %rcx
        sbbq %r10, %r8
        sbbq %r10, %r9
        btr $0x3f, %r9
        movq %rdx, 0x20(%rsp)
        movq %rcx, 0x28(%rsp)
        movq %r8, 0x30(%rsp)
        movq %r9, 0x38(%rsp)
        xorl %eax, %eax
        movq %rax, 0x40(%rsp)
        movq %rax, 0x48(%rsp)
        movq %rax, 0x50(%rsp)
        movq %rax, 0x58(%rsp)
        movabsq $0xa0f99e2375022099, %rax
        movq %rax, 0x60(%rsp)
        movabsq $0xa8c68f3f1d132595, %rax
        movq %rax, 0x68(%rsp)
        movabsq $0x6c6c893805ac5242, %rax
        movq %rax, 0x70(%rsp)
        movabsq $0x276508b241770615, %rax
        movq %rax, 0x78(%rsp)
        movq $0xa, 0x90(%rsp)
        movq $0x1, 0x98(%rsp)
# WAS jmp curve25519_x25519base_alt_midloop
	jmp	.Lcurve25519_x25519base_alt_midloop_local_target
.Lcurve25519_x25519base_alt_inverseloop_local_target:
curve25519_x25519base_alt_inverseloop:
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %rdi
        andq %r11, %rdi
        addq %rax, %rdi
        movq %rdi, 0x80(%rsp)
        movq %r12, %rax
        andq %r13, %rax
        movq %r14, %rsi
        andq %r15, %rsi
        addq %rax, %rsi
        movq %rsi, 0x88(%rsp)
        xorl %ebx, %ebx
        movq (%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x20(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rdi
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq (%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x20(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        xorl %ecx, %ecx
        movq 0x8(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x28(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, (%rsp)
        xorl %edi, %edi
        movq 0x8(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rbp
        adcq %rdx, %rdi
        movq 0x28(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rdi
        shrdq $0x3b, %rbp, %rsi
        movq %rsi, 0x20(%rsp)
        xorl %esi, %esi
        movq 0x10(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rsi
        movq 0x30(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rsi
        shrdq $0x3b, %rcx, %rbx
        movq %rbx, 0x8(%rsp)
        xorl %ebx, %ebx
        movq 0x10(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        addq %rax, %rdi
        adcq %rdx, %rbx
        movq 0x30(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rdi
        adcq %rdx, %rbx
        shrdq $0x3b, %rdi, %rbp
        movq %rbp, 0x28(%rsp)
        movq 0x18(%rsp), %rax
        xorq %r9, %rax
        movq %rax, %rbp
        sarq $0x3f, %rbp
        andq %r8, %rbp
        negq %rbp
        mulq %r8
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x38(%rsp), %rax
        xorq %r11, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r10, %rdx
        subq %rdx, %rbp
        mulq %r10
        addq %rax, %rsi
        adcq %rdx, %rbp
        shrdq $0x3b, %rsi, %rcx
        movq %rcx, 0x10(%rsp)
        shrdq $0x3b, %rbp, %rsi
        movq 0x18(%rsp), %rax
        movq %rsi, 0x18(%rsp)
        xorq %r13, %rax
        movq %rax, %rsi
        sarq $0x3f, %rsi
        andq %r12, %rsi
        negq %rsi
        mulq %r12
        addq %rax, %rbx
        adcq %rdx, %rsi
        movq 0x38(%rsp), %rax
        xorq %r15, %rax
        movq %rax, %rdx
        sarq $0x3f, %rdx
        andq %r14, %rdx
        subq %rdx, %rsi
        mulq %r14
        addq %rax, %rbx
        adcq %rdx, %rsi
        shrdq $0x3b, %rbx, %rdi
        movq %rdi, 0x30(%rsp)
        shrdq $0x3b, %rsi, %rbx
        movq %rbx, 0x38(%rsp)
        movq 0x80(%rsp), %rbx
        movq 0x88(%rsp), %rbp
        xorl %ecx, %ecx
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x40(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x40(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x60(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x60(%rsp)
        xorl %ebx, %ebx
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rcx
        adcq %rdx, %rbx
        xorl %ebp, %ebp
        movq 0x48(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rcx, 0x48(%rsp)
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq 0x68(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rsi
        adcq %rdx, %rbp
        movq %rsi, 0x68(%rsp)
        xorl %ecx, %ecx
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %rbx
        adcq %rdx, %rcx
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %rbx
        adcq %rdx, %rcx
        xorl %esi, %esi
        movq 0x50(%rsp), %rax
        xorq %r13, %rax
        mulq %r12
        movq %rbx, 0x50(%rsp)
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq 0x70(%rsp), %rax
        xorq %r15, %rax
        mulq %r14
        addq %rax, %rbp
        adcq %rdx, %rsi
        movq %rbp, 0x70(%rsp)
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        movq %r9, %rbx
        andq %r8, %rbx
        negq %rbx
        mulq %r8
        addq %rax, %rcx
        adcq %rdx, %rbx
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %rbx
        mulq %r10
        addq %rax, %rcx
        adcq %rbx, %rdx
        movq %rdx, %rbx
        shldq $0x1, %rcx, %rdx
        sarq $0x3f, %rbx
        addq %rbx, %rdx
        movl $0x13, %eax
        imulq %rdx
        movq 0x40(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x40(%rsp)
        movq 0x48(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x48(%rsp)
        movq 0x50(%rsp), %r8
        adcq %rbx, %r8
        movq %r8, 0x50(%rsp)
        adcq %rbx, %rcx
        shlq $0x3f, %rax
        addq %rax, %rcx
        movq 0x58(%rsp), %rax
        movq %rcx, 0x58(%rsp)
        xorq %r13, %rax
        movq %r13, %rcx
        andq %r12, %rcx
        negq %rcx
        mulq %r12
        addq %rax, %rsi
        adcq %rdx, %rcx
        movq 0x78(%rsp), %rax
        xorq %r15, %rax
        movq %r15, %rdx
        andq %r14, %rdx
        subq %rdx, %rcx
        mulq %r14
        addq %rax, %rsi
        adcq %rcx, %rdx
        movq %rdx, %rcx
        shldq $0x1, %rsi, %rdx
        sarq $0x3f, %rcx
        movl $0x13, %eax
        addq %rcx, %rdx
        imulq %rdx
        movq 0x60(%rsp), %r8
        addq %rax, %r8
        movq %r8, 0x60(%rsp)
        movq 0x68(%rsp), %r8
        adcq %rdx, %r8
        movq %r8, 0x68(%rsp)
        movq 0x70(%rsp), %r8
        adcq %rcx, %r8
        movq %r8, 0x70(%rsp)
        adcq %rcx, %rsi
        shlq $0x3f, %rax
        addq %rax, %rsi
        movq %rsi, 0x78(%rsp)
.Lcurve25519_x25519base_alt_midloop_local_target:
curve25519_x25519base_alt_midloop:
        movq 0x98(%rsp), %rsi
        movq (%rsp), %rdx
        movq 0x20(%rsp), %rcx
        movq %rdx, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        xorl %ebp, %ebp
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %rdx
        leaq (%rcx,%rax), %rdi
        shlq $0x16, %rdx
        shlq $0x16, %rdi
        sarq $0x2b, %rdx
        sarq $0x2b, %rdi
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %rbx
        leaq (%rcx,%rax), %rcx
        sarq $0x2a, %rbx
        sarq $0x2a, %rcx
        movq %rdx, 0xa0(%rsp)
        movq %rbx, 0xa8(%rsp)
        movq %rdi, 0xb0(%rsp)
        movq %rcx, 0xb8(%rsp)
        movq (%rsp), %r12
        imulq %r12, %rdi
        imulq %rdx, %r12
        movq 0x20(%rsp), %r13
        imulq %r13, %rbx
        imulq %rcx, %r13
        addq %rbx, %r12
        addq %rdi, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r10
        shlq $0x16, %r8
        shlq $0x16, %r10
        sarq $0x2b, %r8
        sarq $0x2b, %r10
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r15
        leaq (%rcx,%rax), %r11
        sarq $0x2a, %r15
        sarq $0x2a, %r11
        movq %r13, %rbx
        movq %r12, %rcx
        imulq %r8, %r12
        imulq %r15, %rbx
        addq %rbx, %r12
        imulq %r11, %r13
        imulq %r10, %rcx
        addq %rcx, %r13
        sarq $0x14, %r12
        sarq $0x14, %r13
        movq %r12, %rbx
        andq $0xfffff, %rbx
        movabsq $0xfffffe0000000000, %rax
        orq %rax, %rbx
        movq %r13, %rcx
        andq $0xfffff, %rcx
        movabsq $0xc000000000000000, %rax
        orq %rax, %rcx
        movq 0xa0(%rsp), %rax
        imulq %r8, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r15, %rdx
        imulq 0xa8(%rsp), %r8
        imulq 0xb8(%rsp), %r15
        addq %r8, %r15
        leaq (%rax,%rdx), %r9
        movq 0xa0(%rsp), %rax
        imulq %r10, %rax
        movq 0xb0(%rsp), %rdx
        imulq %r11, %rdx
        imulq 0xa8(%rsp), %r10
        imulq 0xb8(%rsp), %r11
        addq %r10, %r11
        leaq (%rax,%rdx), %r13
        movq $0xfffffffffffffffe, %rax
        movl $0x2, %edx
        movq %rbx, %rdi
        movq %rax, %r8
        testq %rsi, %rsi
        cmovs %rbp, %r8
        testq $0x1, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        cmovs %rbp, %r8
        movq %rbx, %rdi
        testq %rdx, %rcx
        cmoveq %rbp, %r8
        cmoveq %rbp, %rdi
        sarq $1, %rcx
        xorq %r8, %rdi
        xorq %r8, %rsi
        btq $0x3f, %r8
        cmovbq %rcx, %rbx
        movq %rax, %r8
        subq %rax, %rsi
        leaq (%rcx,%rdi), %rcx
        sarq $1, %rcx
        movl $0x100000, %eax
        leaq (%rbx,%rax), %r8
        leaq (%rcx,%rax), %r12
        shlq $0x15, %r8
        shlq $0x15, %r12
        sarq $0x2b, %r8
        sarq $0x2b, %r12
        movabsq $0x20000100000, %rax
        leaq (%rbx,%rax), %r10
        leaq (%rcx,%rax), %r14
        sarq $0x2b, %r10
        sarq $0x2b, %r14
        movq %r9, %rax
        imulq %r8, %rax
        movq %r13, %rdx
        imulq %r10, %rdx
        imulq %r15, %r8
        imulq %r11, %r10
        addq %r8, %r10
        leaq (%rax,%rdx), %r8
        movq %r9, %rax
        imulq %r12, %rax
        movq %r13, %rdx
        imulq %r14, %rdx
        imulq %r15, %r12
        imulq %r11, %r14
        addq %r12, %r14
        leaq (%rax,%rdx), %r12
        movq %rsi, 0x98(%rsp)
        decq 0x90(%rsp)
# WAS jne curve25519_x25519base_alt_inverseloop
	jne	.Lcurve25519_x25519base_alt_inverseloop_local_target
        movq (%rsp), %rax
        movq 0x20(%rsp), %rcx
        imulq %r8, %rax
        imulq %r10, %rcx
        addq %rcx, %rax
        sarq $0x3f, %rax
        movq %r8, %r9
        sarq $0x3f, %r9
        xorq %r9, %r8
        subq %r9, %r8
        xorq %rax, %r9
        movq %r10, %r11
        sarq $0x3f, %r11
        xorq %r11, %r10
        subq %r11, %r10
        xorq %rax, %r11
        movq %r12, %r13
        sarq $0x3f, %r13
        xorq %r13, %r12
        subq %r13, %r12
        xorq %rax, %r13
        movq %r14, %r15
        sarq $0x3f, %r15
        xorq %r15, %r14
        subq %r15, %r14
        xorq %rax, %r15
        movq %r8, %rax
        andq %r9, %rax
        movq %r10, %r12
        andq %r11, %r12
        addq %rax, %r12
        xorl %r13d, %r13d
        movq 0x40(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r12
        adcq %rdx, %r13
        movq 0x60(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r12
        adcq %rdx, %r13
        xorl %r14d, %r14d
        movq 0x48(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r13
        adcq %rdx, %r14
        movq 0x68(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r13
        adcq %rdx, %r14
        xorl %r15d, %r15d
        movq 0x50(%rsp), %rax
        xorq %r9, %rax
        mulq %r8
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x70(%rsp), %rax
        xorq %r11, %rax
        mulq %r10
        addq %rax, %r14
        adcq %rdx, %r15
        movq 0x58(%rsp), %rax
        xorq %r9, %rax
        andq %r8, %r9
        negq %r9
        mulq %r8
        addq %rax, %r15
        adcq %rdx, %r9
        movq 0x78(%rsp), %rax
        xorq %r11, %rax
        movq %r11, %rdx
        andq %r10, %rdx
        subq %rdx, %r9
        mulq %r10
        addq %rax, %r15
        adcq %rdx, %r9
        movq %r9, %rax
        shldq $0x1, %r15, %rax
        sarq $0x3f, %r9
        movl $0x13, %ebx
        leaq 0x1(%rax,%r9,1), %rax
        imulq %rbx
        xorl %ebp, %ebp
        addq %rax, %r12
        adcq %rdx, %r13
        adcq %r9, %r14
        adcq %r9, %r15
        shlq $0x3f, %rax
        addq %rax, %r15
        cmovns %rbp, %rbx
        subq %rbx, %r12
        sbbq %rbp, %r13
        sbbq %rbp, %r14
        sbbq %rbp, %r15
        btr $0x3f, %r15
        movq 0xc0(%rsp), %rdi
        movq %r12, (%rdi)
        movq %r13, 0x8(%rdi)
        movq %r14, 0x10(%rdi)
        movq %r15, 0x18(%rdi)






        movq 14*32(%rsp), %rbp
        movq (9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 movq %rax, %r8
 movq %rdx, %r9
 xorq %r10, %r10
 xorq %r11, %r11
 movq (9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 movq 0x8+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r9
 adcq %rdx, %r10
 adcq $0x0, %r11
 xorq %r12, %r12
 movq (9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq %r12, %r12
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 movq 0x10+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r10
 adcq %rdx, %r11
 adcq $0x0, %r12
 xorq %r13, %r13
 movq (9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq %r13, %r13
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 movq 0x18+(9*32)(%rsp), %rax
 mulq (8*32)(%rsp)
 addq %rax, %r11
 adcq %rdx, %r12
 adcq $0x0, %r13
 xorq %r14, %r14
 movq 0x8+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq %r14, %r14
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x8+(8*32)(%rsp)
 addq %rax, %r12
 adcq %rdx, %r13
 adcq $0x0, %r14
 xorq %r15, %r15
 movq 0x10+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq %r15, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x10+(8*32)(%rsp)
 addq %rax, %r13
 adcq %rdx, %r14
 adcq $0x0, %r15
 movq 0x18+(9*32)(%rsp), %rax
 mulq 0x18+(8*32)(%rsp)
 addq %rax, %r14
 adcq %rdx, %r15
 movl $0x26, %esi
 movq %r12, %rax
 mulq %rsi
 addq %rax, %r8
 adcq %rdx, %r9
 sbbq %rcx, %rcx
 movq %r13, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r9
 adcq %rdx, %r10
 sbbq %rcx, %rcx
 movq %r14, %rax
 mulq %rsi
 subq %rcx, %rdx
 addq %rax, %r10
 adcq %rdx, %r11
 sbbq %rcx, %rcx
 movq %r15, %rax
 mulq %rsi
 subq %rcx, %rdx
 xorq %rcx, %rcx
 addq %rax, %r11
 movq %rdx, %r12
 adcq %rcx, %r12
 shldq $0x1, %r11, %r12
 leaq 0x1(%r12), %rax
 movl $0x13, %esi
 bts $63, %r11
 imulq %rsi, %rax
 addq %rax, %r8
 adcq %rcx, %r9
 adcq %rcx, %r10
 adcq %rcx, %r11
 sbbq %rax, %rax
 notq %rax
 andq %rsi, %rax
 subq %rax, %r8
 sbbq %rcx, %r9
 sbbq %rcx, %r10
 sbbq %rcx, %r11
 btr $63, %r11
 movq %r8, (0*32)(%rbp)
 movq %r9, 0x8+(0*32)(%rbp)
 movq %r10, 0x10+(0*32)(%rbp)
 movq %r11, 0x18+(0*32)(%rbp)



        addq $(15*32 +8), %rsp

        popq %r15
        popq %r14
        popq %r13
        popq %r12
        popq %rbp
        popq %rbx
        ret
# 2347 "/home/ubuntu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-fips-sys-0.13.14/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S"
.Lcurve25519_x25519base_alt_edwards25519_0g_local_target:
curve25519_x25519base_alt_edwards25519_0g:

        .quad 0x251037f7cf4e861d
        .quad 0x10ede0fb19fb128f
        .quad 0x96c033b175f5e2c8
        .quad 0x055f070d6c15fb0d

        .quad 0x7c52af2c97473e69
        .quad 0x022f82391bad8378
        .quad 0x9991e1b02adb476f
        .quad 0x511144a03a99b855

        .quad 0x5fafc3b88ff2e4ae
        .quad 0x855e4ff0de1230ff
        .quad 0x72e302a348492870
        .quad 0x1253c19e53dbe1bc

.Lcurve25519_x25519base_alt_edwards25519_8g_local_target:
curve25519_x25519base_alt_edwards25519_8g:

        .quad 0x331d086e0d9abcaa
        .quad 0x1e23c96d311a10c9
        .quad 0x96d0f95e58c13478
        .quad 0x2f72f7384fcfcc59

        .quad 0x39a6cd1cfd7d87c9
        .quad 0x9867a0abd8ae153a
        .quad 0xa49d2a5f35986745
        .quad 0x57012940cdfe82e1

        .quad 0x5046a6532ec5544a
        .quad 0x6d674004739ff6c9
        .quad 0x9bbaa44b234a70e3
        .quad 0x5e6d8901138cf386




.Lcurve25519_x25519base_alt_edwards25519_gtable_local_target:
curve25519_x25519base_alt_edwards25519_gtable:



        .quad 0x7ec851ca553e2df3
        .quad 0xa71284cba64878b3
        .quad 0xe6b5e4193288d1e7
        .quad 0x4cf210ec5a9a8883
        .quad 0x322d04a52d9021f6
        .quad 0xb9c19f3375c6bf9c
        .quad 0x587a3a4342d20b09
        .quad 0x143b1cf8aa64fe61
        .quad 0x9f867c7d968acaab
        .quad 0x5f54258e27092729
        .quad 0xd0a7d34bea180975
        .quad 0x21b546a3374126e1



        .quad 0xa94ff858a2888343
        .quad 0xce0ed4565313ed3c
        .quad 0xf55c3dcfb5bf34fa
        .quad 0x0a653ca5c9eab371
        .quad 0x490a7a45d185218f
        .quad 0x9a15377846049335
        .quad 0x0060ea09cc31e1f6
        .quad 0x7e041577f86ee965
        .quad 0x66b2a496ce5b67f3
        .quad 0xff5492d8bd569796
        .quad 0x503cec294a592cd0
        .quad 0x566943650813acb2



        .quad 0xb818db0c26620798
        .quad 0x5d5c31d9606e354a
        .quad 0x0982fa4f00a8cdc7
        .quad 0x17e12bcd4653e2d4
        .quad 0x5672f9eb1dabb69d
        .quad 0xba70b535afe853fc
        .quad 0x47ac0f752796d66d
        .quad 0x32a5351794117275
        .quad 0xd3a644a6df648437
        .quad 0x703b6559880fbfdd
        .quad 0xcb852540ad3a1aa5
        .quad 0x0900b3f78e4c6468



        .quad 0x0a851b9f679d651b
        .quad 0xe108cb61033342f2
        .quad 0xd601f57fe88b30a3
        .quad 0x371f3acaed2dd714
        .quad 0xed280fbec816ad31
        .quad 0x52d9595bd8e6efe3
        .quad 0x0fe71772f6c623f5
        .quad 0x4314030b051e293c
        .quad 0xd560005efbf0bcad
        .quad 0x8eb70f2ed1870c5e
        .quad 0x201f9033d084e6a0
        .quad 0x4c3a5ae1ce7b6670



        .quad 0x4138a434dcb8fa95
        .quad 0x870cf67d6c96840b
        .quad 0xde388574297be82c
        .quad 0x7c814db27262a55a
        .quad 0xbaf875e4c93da0dd
        .quad 0xb93282a771b9294d
        .quad 0x80d63fb7f4c6c460
        .quad 0x6de9c73dea66c181
        .quad 0x478904d5a04df8f2
        .quad 0xfafbae4ab10142d3
        .quad 0xf6c8ac63555d0998
        .quad 0x5aac4a412f90b104



        .quad 0xc64f326b3ac92908
        .quad 0x5551b282e663e1e0
        .quad 0x476b35f54a1a4b83
        .quad 0x1b9da3fe189f68c2
        .quad 0x603a0d0abd7f5134
        .quad 0x8089c932e1d3ae46
        .quad 0xdf2591398798bd63
        .quad 0x1c145cd274ba0235
        .quad 0x32e8386475f3d743
        .quad 0x365b8baf6ae5d9ef
        .quad 0x825238b6385b681e
        .quad 0x234929c1167d65e1



        .quad 0x984decaba077ade8
        .quad 0x383f77ad19eb389d
        .quad 0xc7ec6b7e2954d794
        .quad 0x59c77b3aeb7c3a7a
        .quad 0x48145cc21d099fcf
        .quad 0x4535c192cc28d7e5
        .quad 0x80e7c1e548247e01
        .quad 0x4a5f28743b2973ee
        .quad 0xd3add725225ccf62
        .quad 0x911a3381b2152c5d
        .quad 0xd8b39fad5b08f87d
        .quad 0x6f05606b4799fe3b



        .quad 0x9ffe9e92177ba962
        .quad 0x98aee71d0de5cae1
        .quad 0x3ff4ae942d831044
        .quad 0x714de12e58533ac8
        .quad 0x5b433149f91b6483
        .quad 0xadb5dc655a2cbf62
        .quad 0x87fa8412632827b3
        .quad 0x60895e91ab49f8d8
        .quad 0xe9ecf2ed0cf86c18
        .quad 0xb46d06120735dfd4
        .quad 0xbc9da09804b96be7
        .quad 0x73e2e62fd96dc26b



        .quad 0xed5b635449aa515e
        .quad 0xa865c49f0bc6823a
        .quad 0x850c1fe95b42d1c4
        .quad 0x30d76d6f03d315b9
        .quad 0x2eccdd0e632f9c1d
        .quad 0x51d0b69676893115
        .quad 0x52dfb76ba8637a58
        .quad 0x6dd37d49a00eef39
        .quad 0x6c4444172106e4c7
        .quad 0xfb53d680928d7f69
        .quad 0xb4739ea4694d3f26
        .quad 0x10c697112e864bb0



        .quad 0x6493c4277dbe5fde
        .quad 0x265d4fad19ad7ea2
        .quad 0x0e00dfc846304590
        .quad 0x25e61cabed66fe09
        .quad 0x0ca62aa08358c805
        .quad 0x6a3d4ae37a204247
        .quad 0x7464d3a63b11eddc
        .quad 0x03bf9baf550806ef
        .quad 0x3f13e128cc586604
        .quad 0x6f5873ecb459747e
        .quad 0xa0b63dedcc1268f5
        .quad 0x566d78634586e22c



        .quad 0x1637a49f9cc10834
        .quad 0xbc8e56d5a89bc451
        .quad 0x1cb5ec0f7f7fd2db
        .quad 0x33975bca5ecc35d9
        .quad 0xa1054285c65a2fd0
        .quad 0x6c64112af31667c3
        .quad 0x680ae240731aee58
        .quad 0x14fba5f34793b22a
        .quad 0x3cd746166985f7d4
        .quad 0x593e5e84c9c80057
        .quad 0x2fc3f2b67b61131e
        .quad 0x14829cea83fc526c



        .quad 0xff437b8497dd95c2
        .quad 0x6c744e30aa4eb5a7
        .quad 0x9e0c5d613c85e88b
        .quad 0x2fd9c71e5f758173
        .quad 0x21e70b2f4e71ecb8
        .quad 0xe656ddb940a477e3
        .quad 0xbf6556cece1d4f80
        .quad 0x05fc3bc4535d7b7e
        .quad 0x24b8b3ae52afdedd
        .quad 0x3495638ced3b30cf
        .quad 0x33a4bc83a9be8195
        .quad 0x373767475c651f04



        .quad 0x2fba99fd40d1add9
        .quad 0xb307166f96f4d027
        .quad 0x4363f05215f03bae
        .quad 0x1fbea56c3b18f999
        .quad 0x634095cb14246590
        .quad 0xef12144016c15535
        .quad 0x9e38140c8910bc60
        .quad 0x6bf5905730907c8c
        .quad 0x0fa778f1e1415b8a
        .quad 0x06409ff7bac3a77e
        .quad 0x6f52d7b89aa29a50
        .quad 0x02521cf67a635a56



        .quad 0x513fee0b0a9d5294
        .quad 0x8f98e75c0fdf5a66
        .quad 0xd4618688bfe107ce
        .quad 0x3fa00a7e71382ced
        .quad 0xb1146720772f5ee4
        .quad 0xe8f894b196079ace
        .quad 0x4af8224d00ac824a
        .quad 0x001753d9f7cd6cc4
        .quad 0x3c69232d963ddb34
        .quad 0x1dde87dab4973858
        .quad 0xaad7d1f9a091f285
        .quad 0x12b5fe2fa048edb6



        .quad 0x71f0fbc496fce34d
        .quad 0x73b9826badf35bed
        .quad 0xd2047261ff28c561
        .quad 0x749b76f96fb1206f
        .quad 0xdf2b7c26ad6f1e92
        .quad 0x4b66d323504b8913
        .quad 0x8c409dc0751c8bc3
        .quad 0x6f7e93c20796c7b8
        .quad 0x1f5af604aea6ae05
        .quad 0xc12351f1bee49c99
        .quad 0x61a808b5eeff6b66
        .quad 0x0fcec10f01e02151



        .quad 0x644d58a649fe1e44
        .quad 0x21fcaea231ad777e
        .quad 0x02441c5a887fd0d2
        .quad 0x4901aa7183c511f3
        .quad 0x3df2d29dc4244e45
        .quad 0x2b020e7493d8de0a
        .quad 0x6cc8067e820c214d
        .quad 0x413779166feab90a
        .quad 0x08b1b7548c1af8f0
        .quad 0xce0f7a7c246299b4
        .quad 0xf760b0f91e06d939
        .quad 0x41bb887b726d1213



        .quad 0x9267806c567c49d8
        .quad 0x066d04ccca791e6a
        .quad 0xa69f5645e3cc394b
        .quad 0x5c95b686a0788cd2
        .quad 0x97d980e0aa39f7d2
        .quad 0x35d0384252c6b51c
        .quad 0x7d43f49307cd55aa
        .quad 0x56bd36cfb78ac362
        .quad 0x2ac519c10d14a954
        .quad 0xeaf474b494b5fa90
        .quad 0xe6af8382a9f87a5a
        .quad 0x0dea6db1879be094



        .quad 0xaa66bf547344e5ab
        .quad 0xda1258888f1b4309
        .quad 0x5e87d2b3fd564b2f
        .quad 0x5b2c78885483b1dd
        .quad 0x15baeb74d6a8797a
        .quad 0x7ef55cf1fac41732
        .quad 0x29001f5a3c8b05c5
        .quad 0x0ad7cc8752eaccfb
        .quad 0x52151362793408cf
        .quad 0xeb0f170319963d94
        .quad 0xa833b2fa883d9466
        .quad 0x093a7fa775003c78



        .quad 0xe5107de63a16d7be
        .quad 0xa377ffdc9af332cf
        .quad 0x70d5bf18440b677f
        .quad 0x6a252b19a4a31403
        .quad 0xb8e9604460a91286
        .quad 0x7f3fd8047778d3de
        .quad 0x67d01e31bf8a5e2d
        .quad 0x7b038a06c27b653e
        .quad 0x9ed919d5d36990f3
        .quad 0x5213aebbdb4eb9f2
        .quad 0xc708ea054cb99135
        .quad 0x58ded57f72260e56



        .quad 0x78e79dade9413d77
        .quad 0xf257f9d59729e67d
        .quad 0x59db910ee37aa7e6
        .quad 0x6aa11b5bbb9e039c
        .quad 0xda6d53265b0fd48b
        .quad 0x8960823193bfa988
        .quad 0xd78ac93261d57e28
        .quad 0x79f2942d3a5c8143
        .quad 0x97da2f25b6c88de9
        .quad 0x251ba7eaacf20169
        .quad 0x09b44f87ef4eb4e4
        .quad 0x7d90ab1bbc6a7da5



        .quad 0x9acca683a7016bfe
        .quad 0x90505f4df2c50b6d
        .quad 0x6b610d5fcce435aa
        .quad 0x19a10d446198ff96
        .quad 0x1a07a3f496b3c397
        .quad 0x11ceaa188f4e2532
        .quad 0x7d9498d5a7751bf0
        .quad 0x19ed161f508dd8a0
        .quad 0x560a2cd687dce6ca
        .quad 0x7f3568c48664cf4d
        .quad 0x8741e95222803a38
        .quad 0x483bdab1595653fc



        .quad 0xfa780f148734fa49
        .quad 0x106f0b70360534e0
        .quad 0x2210776fe3e307bd
        .quad 0x3286c109dde6a0fe
        .quad 0xd6cf4d0ab4da80f6
        .quad 0x82483e45f8307fe0
        .quad 0x05005269ae6f9da4
        .quad 0x1c7052909cf7877a
        .quad 0x32ee7de2874e98d4
        .quad 0x14c362e9b97e0c60
        .quad 0x5781dcde6a60a38a
        .quad 0x217dd5eaaa7aa840



        .quad 0x9db7c4d0248e1eb0
        .quad 0xe07697e14d74bf52
        .quad 0x1e6a9b173c562354
        .quad 0x7fa7c21f795a4965
        .quad 0x8bdf1fb9be8c0ec8
        .quad 0x00bae7f8e30a0282
        .quad 0x4963991dad6c4f6c
        .quad 0x07058a6e5df6f60a
        .quad 0xe9eb02c4db31f67f
        .quad 0xed25fd8910bcfb2b
        .quad 0x46c8131f5c5cddb4
        .quad 0x33b21c13a0cb9bce



        .quad 0x360692f8087d8e31
        .quad 0xf4dcc637d27163f7
        .quad 0x25a4e62065ea5963
        .quad 0x659bf72e5ac160d9
        .quad 0x9aafb9b05ee38c5b
        .quad 0xbf9d2d4e071a13c7
        .quad 0x8eee6e6de933290a
        .quad 0x1c3bab17ae109717
        .quad 0x1c9ab216c7cab7b0
        .quad 0x7d65d37407bbc3cc
        .quad 0x52744750504a58d5
        .quad 0x09f2606b131a2990



        .quad 0x40e87d44744346be
        .quad 0x1d48dad415b52b25
        .quad 0x7c3a8a18a13b603e
        .quad 0x4eb728c12fcdbdf7
        .quad 0x7e234c597c6691ae
        .quad 0x64889d3d0a85b4c8
        .quad 0xdae2c90c354afae7
        .quad 0x0a871e070c6a9e1d
        .quad 0x3301b5994bbc8989
        .quad 0x736bae3a5bdd4260
        .quad 0x0d61ade219d59e3c
        .quad 0x3ee7300f2685d464



        .quad 0xf5d255e49e7dd6b7
        .quad 0x8016115c610b1eac
        .quad 0x3c99975d92e187ca
        .quad 0x13815762979125c2
        .quad 0x43fa7947841e7518
        .quad 0xe5c6fa59639c46d7
        .quad 0xa1065e1de3052b74
        .quad 0x7d47c6a2cfb89030
        .quad 0x3fdad0148ef0d6e0
        .quad 0x9d3e749a91546f3c
        .quad 0x71ec621026bb8157
        .quad 0x148cf58d34c9ec80



        .quad 0x46a492f67934f027
        .quad 0x469984bef6840aa9
        .quad 0x5ca1bc2a89611854
        .quad 0x3ff2fa1ebd5dbbd4
        .quad 0xe2572f7d9ae4756d
        .quad 0x56c345bb88f3487f
        .quad 0x9fd10b6d6960a88d
        .quad 0x278febad4eaea1b9
        .quad 0xb1aa681f8c933966
        .quad 0x8c21949c20290c98
        .quad 0x39115291219d3c52
        .quad 0x4104dd02fe9c677b



        .quad 0x72b2bf5e1124422a
        .quad 0xa1fa0c3398a33ab5
        .quad 0x94cb6101fa52b666
        .quad 0x2c863b00afaf53d5
        .quad 0x81214e06db096ab8
        .quad 0x21a8b6c90ce44f35
        .quad 0x6524c12a409e2af5
        .quad 0x0165b5a48efca481
        .quad 0xf190a474a0846a76
        .quad 0x12eff984cd2f7cc0
        .quad 0x695e290658aa2b8f
        .quad 0x591b67d9bffec8b8



        .quad 0x312f0d1c80b49bfa
        .quad 0x5979515eabf3ec8a
        .quad 0x727033c09ef01c88
        .quad 0x3de02ec7ca8f7bcb
        .quad 0x99b9b3719f18b55d
        .quad 0xe465e5faa18c641e
        .quad 0x61081136c29f05ed
        .quad 0x489b4f867030128b
        .quad 0xd232102d3aeb92ef
        .quad 0xe16253b46116a861
        .quad 0x3d7eabe7190baa24
        .quad 0x49f5fbba496cbebf



        .quad 0x30949a108a5bcfd4
        .quad 0xdc40dd70bc6473eb
        .quad 0x92c294c1307c0d1c
        .quad 0x5604a86dcbfa6e74
        .quad 0x155d628c1e9c572e
        .quad 0x8a4d86acc5884741
        .quad 0x91a352f6515763eb
        .quad 0x06a1a6c28867515b
        .quad 0x7288d1d47c1764b6
        .quad 0x72541140e0418b51
        .quad 0x9f031a6018acf6d1
        .quad 0x20989e89fe2742c6



        .quad 0x499777fd3a2dcc7f
        .quad 0x32857c2ca54fd892
        .quad 0xa279d864d207e3a0
        .quad 0x0403ed1d0ca67e29
        .quad 0x1674278b85eaec2e
        .quad 0x5621dc077acb2bdf
        .quad 0x640a4c1661cbf45a
        .quad 0x730b9950f70595d3
        .quad 0xc94b2d35874ec552
        .quad 0xc5e6c8cf98246f8d
        .quad 0xf7cb46fa16c035ce
        .quad 0x5bd7454308303dcc



        .quad 0x7f9ad19528b24cc2
        .quad 0x7f6b54656335c181
        .quad 0x66b8b66e4fc07236
        .quad 0x133a78007380ad83
        .quad 0x85c4932115e7792a
        .quad 0xc64c89a2bdcdddc9
        .quad 0x9d1e3da8ada3d762
        .quad 0x5bb7db123067f82c
        .quad 0x0961f467c6ca62be
        .quad 0x04ec21d6211952ee
        .quad 0x182360779bd54770
        .quad 0x740dca6d58f0e0d2



        .quad 0x50b70bf5d3f0af0b
        .quad 0x4feaf48ae32e71f7
        .quad 0x60e84ed3a55bbd34
        .quad 0x00ed489b3f50d1ed
        .quad 0x3906c72aed261ae5
        .quad 0x9ab68fd988e100f7
        .quad 0xf5e9059af3360197
        .quad 0x0e53dc78bf2b6d47
        .quad 0xb90829bf7971877a
        .quad 0x5e4444636d17e631
        .quad 0x4d05c52e18276893
        .quad 0x27632d9a5a4a4af5



        .quad 0xd11ff05154b260ce
        .quad 0xd86dc38e72f95270
        .quad 0x601fcd0d267cc138
        .quad 0x2b67916429e90ccd
        .quad 0xa98285d187eaffdb
        .quad 0xa5b4fbbbd8d0a864
        .quad 0xb658f27f022663f7
        .quad 0x3bbc2b22d99ce282
        .quad 0xb917c952583c0a58
        .quad 0x653ff9b80fe4c6f3
        .quad 0x9b0da7d7bcdf3c0c
        .quad 0x43a0eeb6ab54d60e



        .quad 0x396966a46d4a5487
        .quad 0xf811a18aac2bb3ba
        .quad 0x66e4685b5628b26b
        .quad 0x70a477029d929b92
        .quad 0x3ac6322357875fe8
        .quad 0xd9d4f4ecf5fbcb8f
        .quad 0x8dee8493382bb620
        .quad 0x50c5eaa14c799fdc
        .quad 0xdd0edc8bd6f2fb3c
        .quad 0x54c63aa79cc7b7a0
        .quad 0xae0b032b2c8d9f1a
        .quad 0x6f9ce107602967fb



        .quad 0xad1054b1cde1c22a
        .quad 0xc4a8e90248eb32df
        .quad 0x5f3e7b33accdc0ea
        .quad 0x72364713fc79963e
        .quad 0x139693063520e0b5
        .quad 0x437fcf7c88ea03fe
        .quad 0xf7d4c40bd3c959bc
        .quad 0x699154d1f893ded9
        .quad 0x315d5c75b4b27526
        .quad 0xcccb842d0236daa5
        .quad 0x22f0c8a3345fee8e
        .quad 0x73975a617d39dbed



        .quad 0xe4024df96375da10
        .quad 0x78d3251a1830c870
        .quad 0x902b1948658cd91c
        .quad 0x7e18b10b29b7438a
        .quad 0x6f37f392f4433e46
        .quad 0x0e19b9a11f566b18
        .quad 0x220fb78a1fd1d662
        .quad 0x362a4258a381c94d
        .quad 0x9071d9132b6beb2f
        .quad 0x0f26e9ad28418247
        .quad 0xeab91ec9bdec925d
        .quad 0x4be65bc8f48af2de



        .quad 0x78487feba36e7028
        .quad 0x5f3f13001dd8ce34
        .quad 0x934fb12d4b30c489
        .quad 0x056c244d397f0a2b
        .quad 0x1d50fba257c26234
        .quad 0x7bd4823adeb0678b
        .quad 0xc2b0dc6ea6538af5
        .quad 0x5665eec6351da73e
        .quad 0xdb3ee00943bfb210
        .quad 0x4972018720800ac2
        .quad 0x26ab5d6173bd8667
        .quad 0x20b209c2ab204938



        .quad 0x549e342ac07fb34b
        .quad 0x02d8220821373d93
        .quad 0xbc262d70acd1f567
        .quad 0x7a92c9fdfbcac784
        .quad 0x1fcca94516bd3289
        .quad 0x448d65aa41420428
        .quad 0x59c3b7b216a55d62
        .quad 0x49992cc64e612cd8
        .quad 0x65bd1bea70f801de
        .quad 0x1befb7c0fe49e28a
        .quad 0xa86306cdb1b2ae4a
        .quad 0x3b7ac0cd265c2a09



        .quad 0x822bee438c01bcec
        .quad 0x530cb525c0fbc73b
        .quad 0x48519034c1953fe9
        .quad 0x265cc261e09a0f5b
        .quad 0xf0d54e4f22ed39a7
        .quad 0xa2aae91e5608150a
        .quad 0xf421b2e9eddae875
        .quad 0x31bc531d6b7de992
        .quad 0xdf3d134da980f971
        .quad 0x7a4fb8d1221a22a7
        .quad 0x3df7d42035aad6d8
        .quad 0x2a14edcc6a1a125e



        .quad 0xdf48ee0752cfce4e
        .quad 0xc3fffaf306ec08b7
        .quad 0x05710b2ab95459c4
        .quad 0x161d25fa963ea38d
        .quad 0x231a8c570478433c
        .quad 0xb7b5270ec281439d
        .quad 0xdbaa99eae3d9079f
        .quad 0x2c03f5256c2b03d9
        .quad 0x790f18757b53a47d
        .quad 0x307b0130cf0c5879
        .quad 0x31903d77257ef7f9
        .quad 0x699468bdbd96bbaf



        .quad 0xbd1f2f46f4dafecf
        .quad 0x7cef0114a47fd6f7
        .quad 0xd31ffdda4a47b37f
        .quad 0x525219a473905785
        .quad 0xd8dd3de66aa91948
        .quad 0x485064c22fc0d2cc
        .quad 0x9b48246634fdea2f
        .quad 0x293e1c4e6c4a2e3a
        .quad 0x376e134b925112e1
        .quad 0x703778b5dca15da0
        .quad 0xb04589af461c3111
        .quad 0x5b605c447f032823



        .quad 0xb965805920c47c89
        .quad 0xe7f0100c923b8fcc
        .quad 0x0001256502e2ef77
        .quad 0x24a76dcea8aeb3ee
        .quad 0x3be9fec6f0e7f04c
        .quad 0x866a579e75e34962
        .quad 0x5542ef161e1de61a
        .quad 0x2f12fef4cc5abdd5
        .quad 0x0a4522b2dfc0c740
        .quad 0x10d06e7f40c9a407
        .quad 0xc6cf144178cff668
        .quad 0x5e607b2518a43790



        .quad 0x58b31d8f6cdf1818
        .quad 0x35cfa74fc36258a2
        .quad 0xe1b3ff4f66e61d6e
        .quad 0x5067acab6ccdd5f7
        .quad 0xa02c431ca596cf14
        .quad 0xe3c42d40aed3e400
        .quad 0xd24526802e0f26db
        .quad 0x201f33139e457068
        .quad 0xfd527f6b08039d51
        .quad 0x18b14964017c0006
        .quad 0xd5220eb02e25a4a8
        .quad 0x397cba8862460375



        .quad 0x30c13093f05959b2
        .quad 0xe23aa18de9a97976
        .quad 0x222fd491721d5e26
        .quad 0x2339d320766e6c3a
        .quad 0x7815c3fbc81379e7
        .quad 0xa6619420dde12af1
        .quad 0xffa9c0f885a8fdd5
        .quad 0x771b4022c1e1c252
        .quad 0xd87dd986513a2fa7
        .quad 0xf5ac9b71f9d4cf08
        .quad 0xd06bc31b1ea283b3
        .quad 0x331a189219971a76



        .quad 0xf5166f45fb4f80c6
        .quad 0x9c36c7de61c775cf
        .quad 0xe3d4e81b9041d91c
        .quad 0x31167c6b83bdfe21
        .quad 0x26512f3a9d7572af
        .quad 0x5bcbe28868074a9e
        .quad 0x84edc1c11180f7c4
        .quad 0x1ac9619ff649a67b
        .quad 0xf22b3842524b1068
        .quad 0x5068343bee9ce987
        .quad 0xfc9d71844a6250c8
        .quad 0x612436341f08b111



        .quad 0xd99d41db874e898d
        .quad 0x09fea5f16c07dc20
        .quad 0x793d2c67d00f9bbc
        .quad 0x46ebe2309e5eff40
        .quad 0x8b6349e31a2d2638
        .quad 0x9ddfb7009bd3fd35
        .quad 0x7f8bf1b8a3a06ba4
        .quad 0x1522aa3178d90445
        .quad 0x2c382f5369614938
        .quad 0xdafe409ab72d6d10
        .quad 0xe8c83391b646f227
        .quad 0x45fe70f50524306c



        .quad 0xda4875a6960c0b8c
        .quad 0x5b68d076ef0e2f20
        .quad 0x07fb51cf3d0b8fd4
        .quad 0x428d1623a0e392d4
        .quad 0x62f24920c8951491
        .quad 0x05f007c83f630ca2
        .quad 0x6fbb45d2f5c9d4b8
        .quad 0x16619f6db57a2245
        .quad 0x084f4a4401a308fd
        .quad 0xa82219c376a5caac
        .quad 0xdeb8de4643d1bc7d
        .quad 0x1d81592d60bd38c6



        .quad 0xd833d7beec2a4c38
        .quad 0x2c9162830acc20ed
        .quad 0xe93a47aa92df7581
        .quad 0x702d67a3333c4a81
        .quad 0x3a4a369a2f89c8a1
        .quad 0x63137a1d7c8de80d
        .quad 0xbcac008a78eda015
        .quad 0x2cb8b3a5b483b03f
        .quad 0x36e417cbcb1b90a1
        .quad 0x33b3ddaa7f11794e
        .quad 0x3f510808885bc607
        .quad 0x24141dc0e6a8020d



        .quad 0x59f73c773fefee9d
        .quad 0xb3f1ef89c1cf989d
        .quad 0xe35dfb42e02e545f
        .quad 0x5766120b47a1b47c
        .quad 0x91925dccbd83157d
        .quad 0x3ca1205322cc8094
        .quad 0x28e57f183f90d6e4
        .quad 0x1a4714cede2e767b
        .quad 0xdb20ba0fb8b6b7ff
        .quad 0xb732c3b677511fa1
        .quad 0xa92b51c099f02d89
        .quad 0x4f3875ad489ca5f1



        .quad 0xc7fc762f4932ab22
        .quad 0x7ac0edf72f4c3c1b
        .quad 0x5f6b55aa9aa895e8
        .quad 0x3680274dad0a0081
        .quad 0x79ed13f6ee73eec0
        .quad 0xa5c6526d69110bb1
        .quad 0xe48928c38603860c
        .quad 0x722a1446fd7059f5
        .quad 0xd0959fe9a8cf8819
        .quad 0xd0a995508475a99c
        .quad 0x6eac173320b09cc5
        .quad 0x628ecf04331b1095



        .quad 0x98bcb118a9d0ddbc
        .quad 0xee449e3408b4802b
        .quad 0x87089226b8a6b104
        .quad 0x685f349a45c7915d
        .quad 0x9b41acf85c74ccf1
        .quad 0xb673318108265251
        .quad 0x99c92aed11adb147
        .quad 0x7a47d70d34ecb40f
        .quad 0x60a0c4cbcc43a4f5
        .quad 0x775c66ca3677bea9
        .quad 0xa17aa1752ff8f5ed
        .quad 0x11ded9020e01fdc0



        .quad 0x890e7809caefe704
        .quad 0x8728296de30e8c6c
        .quad 0x4c5cd2a392aeb1c9
        .quad 0x194263d15771531f
        .quad 0x471f95b03bea93b7
        .quad 0x0552d7d43313abd3
        .quad 0xbd9370e2e17e3f7b
        .quad 0x7b120f1db20e5bec
        .quad 0x17d2fb3d86502d7a
        .quad 0xb564d84450a69352
        .quad 0x7da962c8a60ed75d
        .quad 0x00d0f85b318736aa



        .quad 0x978b142e777c84fd
        .quad 0xf402644705a8c062
        .quad 0xa67ad51be7e612c7
        .quad 0x2f7b459698dd6a33
        .quad 0xa6753c1efd7621c1
        .quad 0x69c0b4a7445671f5
        .quad 0x971f527405b23c11
        .quad 0x387bc74851a8c7cd
        .quad 0x81894b4d4a52a9a8
        .quad 0xadd93e12f6b8832f
        .quad 0x184d8548b61bd638
        .quad 0x3f1c62dbd6c9f6cd



        .quad 0x2e8f1f0091910c1f
        .quad 0xa4df4fe0bff2e12c
        .quad 0x60c6560aee927438
        .quad 0x6338283facefc8fa
        .quad 0x3fad3e40148f693d
        .quad 0x052656e194eb9a72
        .quad 0x2f4dcbfd184f4e2f
        .quad 0x406f8db1c482e18b
        .quad 0x9e630d2c7f191ee4
        .quad 0x4fbf8301bc3ff670
        .quad 0x787d8e4e7afb73c4
        .quad 0x50d83d5be8f58fa5



        .quad 0x85683916c11a1897
        .quad 0x2d69a4efe506d008
        .quad 0x39af1378f664bd01
        .quad 0x65942131361517c6
        .quad 0xc0accf90b4d3b66d
        .quad 0xa7059de561732e60
        .quad 0x033d1f7870c6b0ba
        .quad 0x584161cd26d946e4
        .quad 0xbbf2b1a072d27ca2
        .quad 0xbf393c59fbdec704
        .quad 0xe98dbbcee262b81e
        .quad 0x02eebd0b3029b589



        .quad 0x61368756a60dac5f
        .quad 0x17e02f6aebabdc57
        .quad 0x7f193f2d4cce0f7d
        .quad 0x20234a7789ecdcf0
        .quad 0x8765b69f7b85c5e8
        .quad 0x6ff0678bd168bab2
        .quad 0x3a70e77c1d330f9b
        .quad 0x3a5f6d51b0af8e7c
        .quad 0x76d20db67178b252
        .quad 0x071c34f9d51ed160
        .quad 0xf62a4a20b3e41170
        .quad 0x7cd682353cffe366



        .quad 0x0be1a45bd887fab6
        .quad 0x2a846a32ba403b6e
        .quad 0xd9921012e96e6000
        .quad 0x2838c8863bdc0943
        .quad 0xa665cd6068acf4f3
        .quad 0x42d92d183cd7e3d3
        .quad 0x5759389d336025d9
        .quad 0x3ef0253b2b2cd8ff
        .quad 0xd16bb0cf4a465030
        .quad 0xfa496b4115c577ab
        .quad 0x82cfae8af4ab419d
        .quad 0x21dcb8a606a82812



        .quad 0x5c6004468c9d9fc8
        .quad 0x2540096ed42aa3cb
        .quad 0x125b4d4c12ee2f9c
        .quad 0x0bc3d08194a31dab
        .quad 0x9a8d00fabe7731ba
        .quad 0x8203607e629e1889
        .quad 0xb2cc023743f3d97f
        .quad 0x5d840dbf6c6f678b
        .quad 0x706e380d309fe18b
        .quad 0x6eb02da6b9e165c7
        .quad 0x57bbba997dae20ab
        .quad 0x3a4276232ac196dd



        .quad 0x4b42432c8a7084fa
        .quad 0x898a19e3dfb9e545
        .quad 0xbe9f00219c58e45d
        .quad 0x1ff177cea16debd1
        .quad 0x3bf8c172db447ecb
        .quad 0x5fcfc41fc6282dbd
        .quad 0x80acffc075aa15fe
        .quad 0x0770c9e824e1a9f9
        .quad 0xcf61d99a45b5b5fd
        .quad 0x860984e91b3a7924
        .quad 0xe7300919303e3e89
        .quad 0x39f264fd41500b1e



        .quad 0xa7ad3417dbe7e29c
        .quad 0xbd94376a2b9c139c
        .quad 0xa0e91b8e93597ba9
        .quad 0x1712d73468889840
        .quad 0xd19b4aabfe097be1
        .quad 0xa46dfce1dfe01929
        .quad 0xc3c908942ca6f1ff
        .quad 0x65c621272c35f14e
        .quad 0xe72b89f8ce3193dd
        .quad 0x4d103356a125c0bb
        .quad 0x0419a93d2e1cfe83
        .quad 0x22f9800ab19ce272



        .quad 0x605a368a3e9ef8cb
        .quad 0xe3e9c022a5504715
        .quad 0x553d48b05f24248f
        .quad 0x13f416cd647626e5
        .quad 0x42029fdd9a6efdac
        .quad 0xb912cebe34a54941
        .quad 0x640f64b987bdf37b
        .quad 0x4171a4d38598cab4
        .quad 0xfa2758aa99c94c8c
        .quad 0x23006f6fb000b807
        .quad 0xfbd291ddadda5392
        .quad 0x508214fa574bd1ab



        .quad 0xc20269153ed6fe4b
        .quad 0xa65a6739511d77c4
        .quad 0xcbde26462c14af94
        .quad 0x22f960ec6faba74b
        .quad 0x461a15bb53d003d6
        .quad 0xb2102888bcf3c965
        .quad 0x27c576756c683a5a
        .quad 0x3a7758a4c86cb447
        .quad 0x548111f693ae5076
        .quad 0x1dae21df1dfd54a6
        .quad 0x12248c90f3115e65
        .quad 0x5d9fd15f8de7f494



        .quad 0x031408d36d63727f
        .quad 0x6a379aefd7c7b533
        .quad 0xa9e18fc5ccaee24b
        .quad 0x332f35914f8fbed3
        .quad 0x3f244d2aeed7521e
        .quad 0x8e3a9028432e9615
        .quad 0xe164ba772e9c16d4
        .quad 0x3bc187fa47eb98d8
        .quad 0x6d470115ea86c20c
        .quad 0x998ab7cb6c46d125
        .quad 0xd77832b53a660188
        .quad 0x450d81ce906fba03



        .quad 0xf8ae4d2ad8453902
        .quad 0x7018058ee8db2d1d
        .quad 0xaab3995fc7d2c11e
        .quad 0x53b16d2324ccca79
        .quad 0x23264d66b2cae0b5
        .quad 0x7dbaed33ebca6576
        .quad 0x030ebed6f0d24ac8
        .quad 0x2a887f78f7635510
        .quad 0x2a23b9e75c012d4f
        .quad 0x0c974651cae1f2ea
        .quad 0x2fb63273675d70ca
        .quad 0x0ba7250b864403f5



        .quad 0xbb0d18fd029c6421
        .quad 0xbc2d142189298f02
        .quad 0x8347f8e68b250e96
        .quad 0x7b9f2fe8032d71c9
        .quad 0xdd63589386f86d9c
        .quad 0x61699176e13a85a4
        .quad 0x2e5111954eaa7d57
        .quad 0x32c21b57fb60bdfb
        .quad 0xd87823cd319e0780
        .quad 0xefc4cfc1897775c5
        .quad 0x4854fb129a0ab3f7
        .quad 0x12c49d417238c371



        .quad 0x0950b533ffe83769
        .quad 0x21861c1d8e1d6bd1
        .quad 0xf022d8381302e510
        .quad 0x2509200c6391cab4
        .quad 0x09b3a01783799542
        .quad 0x626dd08faad5ee3f
        .quad 0xba00bceeeb70149f
        .quad 0x1421b246a0a444c9
        .quad 0x4aa43a8e8c24a7c7
        .quad 0x04c1f540d8f05ef5
        .quad 0xadba5e0c0b3eb9dc
        .quad 0x2ab5504448a49ce3



        .quad 0x2ed227266f0f5dec
        .quad 0x9824ee415ed50824
        .quad 0x807bec7c9468d415
        .quad 0x7093bae1b521e23f
        .quad 0xdc07ac631c5d3afa
        .quad 0x58615171f9df8c6c
        .quad 0x72a079d89d73e2b0
        .quad 0x7301f4ceb4eae15d
        .quad 0x6409e759d6722c41
        .quad 0xa674e1cf72bf729b
        .quad 0xbc0a24eb3c21e569
        .quad 0x390167d24ebacb23



        .quad 0x27f58e3bba353f1c
        .quad 0x4c47764dbf6a4361
        .quad 0xafbbc4e56e562650
        .quad 0x07db2ee6aae1a45d
        .quad 0xd7bb054ba2f2120b
        .quad 0xe2b9ceaeb10589b7
        .quad 0x3fe8bac8f3c0edbe
        .quad 0x4cbd40767112cb69
        .quad 0x0b603cc029c58176
        .quad 0x5988e3825cb15d61
        .quad 0x2bb61413dcf0ad8d
        .quad 0x7b8eec6c74183287



        .quad 0xe4ca40782cd27cb0
        .quad 0xdaf9c323fbe967bd
        .quad 0xb29bd34a8ad41e9e
        .quad 0x72810497626ede4d
        .quad 0x32fee570fc386b73
        .quad 0xda8b0141da3a8cc7
        .quad 0x975ffd0ac8968359
        .quad 0x6ee809a1b132a855
        .quad 0x9444bb31fcfd863a
        .quad 0x2fe3690a3e4e48c5
        .quad 0xdc29c867d088fa25
        .quad 0x13bd1e38d173292e



        .quad 0xd32b4cd8696149b5
        .quad 0xe55937d781d8aab7
        .quad 0x0bcb2127ae122b94
        .quad 0x41e86fcfb14099b0
        .quad 0x223fb5cf1dfac521
        .quad 0x325c25316f554450
        .quad 0x030b98d7659177ac
        .quad 0x1ed018b64f88a4bd
        .quad 0x3630dfa1b802a6b0
        .quad 0x880f874742ad3bd5
        .quad 0x0af90d6ceec5a4d4
        .quad 0x746a247a37cdc5d9



        .quad 0xd531b8bd2b7b9af6
        .quad 0x5005093537fc5b51
        .quad 0x232fcf25c593546d
        .quad 0x20a365142bb40f49
        .quad 0x6eccd85278d941ed
        .quad 0x2254ae83d22f7843
        .quad 0xc522d02e7bbfcdb7
        .quad 0x681e3351bff0e4e2
        .quad 0x8b64b59d83034f45
        .quad 0x2f8b71f21fa20efb
        .quad 0x69249495ba6550e4
        .quad 0x539ef98e45d5472b



        .quad 0x6e7bb6a1a6205275
        .quad 0xaa4f21d7413c8e83
        .quad 0x6f56d155e88f5cb2
        .quad 0x2de25d4ba6345be1
        .quad 0xd074d8961cae743f
        .quad 0xf86d18f5ee1c63ed
        .quad 0x97bdc55be7f4ed29
        .quad 0x4cbad279663ab108
        .quad 0x80d19024a0d71fcd
        .quad 0xc525c20afb288af8
        .quad 0xb1a3974b5f3a6419
        .quad 0x7d7fbcefe2007233



        .quad 0xfaef1e6a266b2801
        .quad 0x866c68c4d5739f16
        .quad 0xf68a2fbc1b03762c
        .quad 0x5975435e87b75a8d
        .quad 0xcd7c5dc5f3c29094
        .quad 0xc781a29a2a9105ab
        .quad 0x80c61d36421c3058
        .quad 0x4f9cd196dcd8d4d7
        .quad 0x199297d86a7b3768
        .quad 0xd0d058241ad17a63
        .quad 0xba029cad5c1c0c17
        .quad 0x7ccdd084387a0307



        .quad 0xdca6422c6d260417
        .quad 0xae153d50948240bd
        .quad 0xa9c0c1b4fb68c677
        .quad 0x428bd0ed61d0cf53
        .quad 0x9b0c84186760cc93
        .quad 0xcdae007a1ab32a99
        .quad 0xa88dec86620bda18
        .quad 0x3593ca848190ca44
        .quad 0x9213189a5e849aa7
        .quad 0xd4d8c33565d8facd
        .quad 0x8c52545b53fdbbd1
        .quad 0x27398308da2d63e6



        .quad 0x42c38d28435ed413
        .quad 0xbd50f3603278ccc9
        .quad 0xbb07ab1a79da03ef
        .quad 0x269597aebe8c3355
        .quad 0xb9a10e4c0a702453
        .quad 0x0fa25866d57d1bde
        .quad 0xffb9d9b5cd27daf7
        .quad 0x572c2945492c33fd
        .quad 0xc77fc745d6cd30be
        .quad 0xe4dfe8d3e3baaefb
        .quad 0xa22c8830aa5dda0c
        .quad 0x7f985498c05bca80



        .quad 0x3849ce889f0be117
        .quad 0x8005ad1b7b54a288
        .quad 0x3da3c39f23fc921c
        .quad 0x76c2ec470a31f304
        .quad 0xd35615520fbf6363
        .quad 0x08045a45cf4dfba6
        .quad 0xeec24fbc873fa0c2
        .quad 0x30f2653cd69b12e7
        .quad 0x8a08c938aac10c85
        .quad 0x46179b60db276bcb
        .quad 0xa920c01e0e6fac70
        .quad 0x2f1273f1596473da



        .quad 0x4739fc7c8ae01e11
        .quad 0xfd5274904a6aab9f
        .quad 0x41d98a8287728f2e
        .quad 0x5d9e572ad85b69f2
        .quad 0x30488bd755a70bc0
        .quad 0x06d6b5a4f1d442e7
        .quad 0xead1a69ebc596162
        .quad 0x38ac1997edc5f784
        .quad 0x0666b517a751b13b
        .quad 0x747d06867e9b858c
        .quad 0xacacc011454dde49
        .quad 0x22dfcd9cbfe9e69c



        .quad 0x8ddbd2e0c30d0cd9
        .quad 0xad8e665facbb4333
        .quad 0x8f6b258c322a961f
        .quad 0x6b2916c05448c1c7
        .quad 0x56ec59b4103be0a1
        .quad 0x2ee3baecd259f969
        .quad 0x797cb29413f5cd32
        .quad 0x0fe9877824cde472
        .quad 0x7edb34d10aba913b
        .quad 0x4ea3cd822e6dac0e
        .quad 0x66083dff6578f815
        .quad 0x4c303f307ff00a17



        .quad 0xd30a3bd617b28c85
        .quad 0xc5d377b739773bea
        .quad 0xc6c6e78c1e6a5cbf
        .quad 0x0d61b8f78b2ab7c4
        .quad 0x29fc03580dd94500
        .quad 0xecd27aa46fbbec93
        .quad 0x130a155fc2e2a7f8
        .quad 0x416b151ab706a1d5
        .quad 0x56a8d7efe9c136b0
        .quad 0xbd07e5cd58e44b20
        .quad 0xafe62fda1b57e0ab
        .quad 0x191a2af74277e8d2



        .quad 0xd550095bab6f4985
        .quad 0x04f4cd5b4fbfaf1a
        .quad 0x9d8e2ed12a0c7540
        .quad 0x2bc24e04b2212286
        .quad 0x09d4b60b2fe09a14
        .quad 0xc384f0afdbb1747e
        .quad 0x58e2ea8978b5fd6e
        .quad 0x519ef577b5e09b0a
        .quad 0x1863d7d91124cca9
        .quad 0x7ac08145b88a708e
        .quad 0x2bcd7309857031f5
        .quad 0x62337a6e8ab8fae5



        .quad 0x4bcef17f06ffca16
        .quad 0xde06e1db692ae16a
        .quad 0x0753702d614f42b0
        .quad 0x5f6041b45b9212d0
        .quad 0xd1ab324e1b3a1273
        .quad 0x18947cf181055340
        .quad 0x3b5d9567a98c196e
        .quad 0x7fa00425802e1e68
        .quad 0x7d531574028c2705
        .quad 0x80317d69db0d75fe
        .quad 0x30fface8ef8c8ddd
        .quad 0x7e9de97bb6c3e998



        .quad 0x1558967b9e6585a3
        .quad 0x97c99ce098e98b92
        .quad 0x10af149b6eb3adad
        .quad 0x42181fe8f4d38cfa
        .quad 0xf004be62a24d40dd
        .quad 0xba0659910452d41f
        .quad 0x81c45ee162a44234
        .quad 0x4cb829d8a22266ef
        .quad 0x1dbcaa8407b86681
        .quad 0x081f001e8b26753b
        .quad 0x3cd7ce6a84048e81
        .quad 0x78af11633f25f22c



        .quad 0x8416ebd40b50babc
        .quad 0x1508722628208bee
        .quad 0xa3148fafb9c1c36d
        .quad 0x0d07daacd32d7d5d
        .quad 0x3241c00e7d65318c
        .quad 0xe6bee5dcd0e86de7
        .quad 0x118b2dc2fbc08c26
        .quad 0x680d04a7fc603dc3
        .quad 0xf9c2414a695aa3eb
        .quad 0xdaa42c4c05a68f21
        .quad 0x7c6c23987f93963e
        .quad 0x210e8cd30c3954e3



        .quad 0xac4201f210a71c06
        .quad 0x6a65e0aef3bfb021
        .quad 0xbc42c35c393632f7
        .quad 0x56ea8db1865f0742
        .quad 0x2b50f16137fe6c26
        .quad 0xe102bcd856e404d8
        .quad 0x12b0f1414c561f6b
        .quad 0x51b17bc8d028ec91
        .quad 0xfff5fb4bcf535119
        .quad 0xf4989d79df1108a0
        .quad 0xbdfcea659a3ba325
        .quad 0x18a11f1174d1a6f2



        .quad 0x407375ab3f6bba29
        .quad 0x9ec3b6d8991e482e
        .quad 0x99c80e82e55f92e9
        .quad 0x307c13b6fb0c0ae1
        .quad 0xfbd63cdad27a5f2c
        .quad 0xf00fc4bc8aa106d7
        .quad 0x53fb5c1a8e64a430
        .quad 0x04eaabe50c1a2e85
        .quad 0x24751021cb8ab5e7
        .quad 0xfc2344495c5010eb
        .quad 0x5f1e717b4e5610a1
        .quad 0x44da5f18c2710cd5



        .quad 0x033cc55ff1b82eb5
        .quad 0xb15ae36d411cae52
        .quad 0xba40b6198ffbacd3
        .quad 0x768edce1532e861f
        .quad 0x9156fe6b89d8eacc
        .quad 0xe6b79451e23126a1
        .quad 0xbd7463d93944eb4e
        .quad 0x726373f6767203ae
        .quad 0xe305ca72eb7ef68a
        .quad 0x662cf31f70eadb23
        .quad 0x18f026fdb4c45b68
        .quad 0x513b5384b5d2ecbd



        .quad 0x46d46280c729989e
        .quad 0x4b93fbd05368a5dd
        .quad 0x63df3f81d1765a89
        .quad 0x34cebd64b9a0a223
        .quad 0x5e2702878af34ceb
        .quad 0x900b0409b946d6ae
        .quad 0x6512ebf7dabd8512
        .quad 0x61d9b76988258f81
        .quad 0xa6c5a71349b7d94b
        .quad 0xa3f3d15823eb9446
        .quad 0x0416fbd277484834
        .quad 0x69d45e6f2c70812f



        .quad 0xce16f74bc53c1431
        .quad 0x2b9725ce2072edde
        .quad 0xb8b9c36fb5b23ee7
        .quad 0x7e2e0e450b5cc908
        .quad 0x9fe62b434f460efb
        .quad 0xded303d4a63607d6
        .quad 0xf052210eb7a0da24
        .quad 0x237e7dbe00545b93
        .quad 0x013575ed6701b430
        .quad 0x231094e69f0bfd10
        .quad 0x75320f1583e47f22
        .quad 0x71afa699b11155e3



        .quad 0x65ce6f9b3953b61d
        .quad 0xc65839eaafa141e6
        .quad 0x0f435ffda9f759fe
        .quad 0x021142e9c2b1c28e
        .quad 0xea423c1c473b50d6
        .quad 0x51e87a1f3b38ef10
        .quad 0x9b84bf5fb2c9be95
        .quad 0x00731fbc78f89a1c
        .quad 0xe430c71848f81880
        .quad 0xbf960c225ecec119
        .quad 0xb6dae0836bba15e3
        .quad 0x4c4d6f3347e15808



        .quad 0x18f7eccfc17d1fc9
        .quad 0x6c75f5a651403c14
        .quad 0xdbde712bf7ee0cdf
        .quad 0x193fddaaa7e47a22
        .quad 0x2f0cddfc988f1970
        .quad 0x6b916227b0b9f51b
        .quad 0x6ec7b6c4779176be
        .quad 0x38bf9500a88f9fa8
        .quad 0x1fd2c93c37e8876f
        .quad 0xa2f61e5a18d1462c
        .quad 0x5080f58239241276
        .quad 0x6a6fb99ebf0d4969



        .quad 0x6a46c1bb560855eb
        .quad 0x2416bb38f893f09d
        .quad 0xd71d11378f71acc1
        .quad 0x75f76914a31896ea
        .quad 0xeeb122b5b6e423c6
        .quad 0x939d7010f286ff8e
        .quad 0x90a92a831dcf5d8c
        .quad 0x136fda9f42c5eb10
        .quad 0xf94cdfb1a305bdd1
        .quad 0x0f364b9d9ff82c08
        .quad 0x2a87d8a5c3bb588a
        .quad 0x022183510be8dcba



        .quad 0x4af766385ead2d14
        .quad 0xa08ed880ca7c5830
        .quad 0x0d13a6e610211e3d
        .quad 0x6a071ce17b806c03
        .quad 0x9d5a710143307a7f
        .quad 0xb063de9ec47da45f
        .quad 0x22bbfe52be927ad3
        .quad 0x1387c441fd40426c
        .quad 0xb5d3c3d187978af8
        .quad 0x722b5a3d7f0e4413
        .quad 0x0d7b4848bb477ca0
        .quad 0x3171b26aaf1edc92



        .quad 0xa92f319097564ca8
        .quad 0xff7bb84c2275e119
        .quad 0x4f55fe37a4875150
        .quad 0x221fd4873cf0835a
        .quad 0xa60db7d8b28a47d1
        .quad 0xa6bf14d61770a4f1
        .quad 0xd4a1f89353ddbd58
        .quad 0x6c514a63344243e9
        .quad 0x2322204f3a156341
        .quad 0xfb73e0e9ba0a032d
        .quad 0xfce0dd4c410f030e
        .quad 0x48daa596fb924aaa



        .quad 0x6eca8e665ca59cc7
        .quad 0xa847254b2e38aca0
        .quad 0x31afc708d21e17ce
        .quad 0x676dd6fccad84af7
        .quad 0x14f61d5dc84c9793
        .quad 0x9941f9e3ef418206
        .quad 0xcdf5b88f346277ac
        .quad 0x58c837fa0e8a79a9
        .quad 0x0cf9688596fc9058
        .quad 0x1ddcbbf37b56a01b
        .quad 0xdcc2e77d4935d66a
        .quad 0x1c4f73f2c6a57f0a



        .quad 0x0e7a4fbd305fa0bb
        .quad 0x829d4ce054c663ad
        .quad 0xf421c3832fe33848
        .quad 0x795ac80d1bf64c42
        .quad 0xb36e706efc7c3484
        .quad 0x73dfc9b4c3c1cf61
        .quad 0xeb1d79c9781cc7e5
        .quad 0x70459adb7daf675c
        .quad 0x1b91db4991b42bb3
        .quad 0x572696234b02dcca
        .quad 0x9fdf9ee51f8c78dc
        .quad 0x5fe162848ce21fd3



        .quad 0xe2790aae4d077c41
        .quad 0x8b938270db7469a3
        .quad 0x6eb632dc8abd16a2
        .quad 0x720814ecaa064b72
        .quad 0x315c29c795115389
        .quad 0xd7e0e507862f74ce
        .quad 0x0c4a762185927432
        .quad 0x72de6c984a25a1e4
        .quad 0xae9ab553bf6aa310
        .quad 0x050a50a9806d6e1b
        .quad 0x92bb7403adff5139
        .quad 0x0394d27645be618b



        .quad 0x4d572251857eedf4
        .quad 0xe3724edde19e93c5
        .quad 0x8a71420e0b797035
        .quad 0x3b3c833687abe743
        .quad 0xf5396425b23545a4
        .quad 0x15a7a27e98fbb296
        .quad 0xab6c52bc636fdd86
        .quad 0x79d995a8419334ee
        .quad 0xcd8a8ea61195dd75
        .quad 0xa504d8a81dd9a82f
        .quad 0x540dca81a35879b6
        .quad 0x60dd16a379c86a8a



        .quad 0x35a2c8487381e559
        .quad 0x596ffea6d78082cb
        .quad 0xcb9771ebdba7b653
        .quad 0x5a08b5019b4da685
        .quad 0x3501d6f8153e47b8
        .quad 0xb7a9675414a2f60c
        .quad 0x112ee8b6455d9523
        .quad 0x4e62a3c18112ea8a
        .quad 0xc8d4ac04516ab786
        .quad 0x595af3215295b23d
        .quad 0xd6edd234db0230c1
        .quad 0x0929efe8825b41cc



        .quad 0x5f0601d1cbd0f2d3
        .quad 0x736e412f6132bb7f
        .quad 0x83604432238dde87
        .quad 0x1e3a5272f5c0753c
        .quad 0x8b3172b7ad56651d
        .quad 0x01581b7a3fabd717
        .quad 0x2dc94df6424df6e4
        .quad 0x30376e5d2c29284f
        .quad 0xd2918da78159a59c
        .quad 0x6bdc1cd93f0713f3
        .quad 0x565f7a934acd6590
        .quad 0x53daacec4cb4c128



        .quad 0x4ca73bd79cc8a7d6
        .quad 0x4d4a738f47e9a9b2
        .quad 0xf4cbf12942f5fe00
        .quad 0x01a13ff9bdbf0752
        .quad 0x99852bc3852cfdb0
        .quad 0x2cc12e9559d6ed0b
        .quad 0x70f9e2bf9b5ac27b
        .quad 0x4f3b8c117959ae99
        .quad 0x55b6c9c82ff26412
        .quad 0x1ac4a8c91fb667a8
        .quad 0xd527bfcfeb778bf2
        .quad 0x303337da7012a3be



        .quad 0x955422228c1c9d7c
        .quad 0x01fac1371a9b340f
        .quad 0x7e8d9177925b48d7
        .quad 0x53f8ad5661b3e31b
        .quad 0x976d3ccbfad2fdd1
        .quad 0xcb88839737a640a8
        .quad 0x2ff00c1d6734cb25
        .quad 0x269ff4dc789c2d2b
        .quad 0x0c003fbdc08d678d
        .quad 0x4d982fa37ead2b17
        .quad 0xc07e6bcdb2e582f1
        .quad 0x296c7291df412a44



        .quad 0x7903de2b33daf397
        .quad 0xd0ff0619c9a624b3
        .quad 0x8a1d252b555b3e18
        .quad 0x2b6d581c52e0b7c0
        .quad 0xdfb23205dab8b59e
        .quad 0x465aeaa0c8092250
        .quad 0xd133c1189a725d18
        .quad 0x2327370261f117d1
        .quad 0x3d0543d3623e7986
        .quad 0x679414c2c278a354
        .quad 0xae43f0cc726196f6
        .quad 0x7836c41f8245eaba



        .quad 0xe7a254db49e95a81
        .quad 0x5192d5d008b0ad73
        .quad 0x4d20e5b1d00afc07
        .quad 0x5d55f8012cf25f38
        .quad 0xca651e848011937c
        .quad 0xc6b0c46e6ef41a28
        .quad 0xb7021ba75f3f8d52
        .quad 0x119dff99ead7b9fd
        .quad 0x43eadfcbf4b31d4d
        .quad 0xc6503f7411148892
        .quad 0xfeee68c5060d3b17
        .quad 0x329293b3dd4a0ac8



        .quad 0x4e59214fe194961a
        .quad 0x49be7dc70d71cd4f
        .quad 0x9300cfd23b50f22d
        .quad 0x4789d446fc917232
        .quad 0x2879852d5d7cb208
        .quad 0xb8dedd70687df2e7
        .quad 0xdc0bffab21687891
        .quad 0x2b44c043677daa35
        .quad 0x1a1c87ab074eb78e
        .quad 0xfac6d18e99daf467
        .quad 0x3eacbbcd484f9067
        .quad 0x60c52eef2bb9a4e4



        .quad 0x0b5d89bc3bfd8bf1
        .quad 0xb06b9237c9f3551a
        .quad 0x0e4c16b0d53028f5
        .quad 0x10bc9c312ccfcaab
        .quad 0x702bc5c27cae6d11
        .quad 0x44c7699b54a48cab
        .quad 0xefbc4056ba492eb2
        .quad 0x70d77248d9b6676d
        .quad 0xaa8ae84b3ec2a05b
        .quad 0x98699ef4ed1781e0
        .quad 0x794513e4708e85d1
        .quad 0x63755bd3a976f413



        .quad 0xb55fa03e2ad10853
        .quad 0x356f75909ee63569
        .quad 0x9ff9f1fdbe69b890
        .quad 0x0d8cc1c48bc16f84
        .quad 0x3dc7101897f1acb7
        .quad 0x5dda7d5ec165bbd8
        .quad 0x508e5b9c0fa1020f
        .quad 0x2763751737c52a56
        .quad 0x029402d36eb419a9
        .quad 0xf0b44e7e77b460a5
        .quad 0xcfa86230d43c4956
        .quad 0x70c2dd8a7ad166e7



        .quad 0x656194509f6fec0e
        .quad 0xee2e7ea946c6518d
        .quad 0x9733c1f367e09b5c
        .quad 0x2e0fac6363948495
        .quad 0x91d4967db8ed7e13
        .quad 0x74252f0ad776817a
        .quad 0xe40982e00d852564
        .quad 0x32b8613816a53ce5
        .quad 0x79e7f7bee448cd64
        .quad 0x6ac83a67087886d0
        .quad 0xf89fd4d9a0e4db2e
        .quad 0x4179215c735a4f41



        .quad 0x8c7094e7d7dced2a
        .quad 0x97fb8ac347d39c70
        .quad 0xe13be033a906d902
        .quad 0x700344a30cd99d76
        .quad 0xe4ae33b9286bcd34
        .quad 0xb7ef7eb6559dd6dc
        .quad 0x278b141fb3d38e1f
        .quad 0x31fa85662241c286
        .quad 0xaf826c422e3622f4
        .quad 0xc12029879833502d
        .quad 0x9bc1b7e12b389123
        .quad 0x24bb2312a9952489



        .quad 0xb1a8ed1732de67c3
        .quad 0x3cb49418461b4948
        .quad 0x8ebd434376cfbcd2
        .quad 0x0fee3e871e188008
        .quad 0x41f80c2af5f85c6b
        .quad 0x687284c304fa6794
        .quad 0x8945df99a3ba1bad
        .quad 0x0d1d2af9ffeb5d16
        .quad 0xa9da8aa132621edf
        .quad 0x30b822a159226579
        .quad 0x4004197ba79ac193
        .quad 0x16acd79718531d76



        .quad 0x72df72af2d9b1d3d
        .quad 0x63462a36a432245a
        .quad 0x3ecea07916b39637
        .quad 0x123e0ef6b9302309
        .quad 0xc959c6c57887b6ad
        .quad 0x94e19ead5f90feba
        .quad 0x16e24e62a342f504
        .quad 0x164ed34b18161700
        .quad 0x487ed94c192fe69a
        .quad 0x61ae2cea3a911513
        .quad 0x877bf6d3b9a4de27
        .quad 0x78da0fc61073f3eb



        .quad 0x5bf15d28e52bc66a
        .quad 0x2c47e31870f01a8e
        .quad 0x2419afbc06c28bdd
        .quad 0x2d25deeb256b173a
        .quad 0xa29f80f1680c3a94
        .quad 0x71f77e151ae9e7e6
        .quad 0x1100f15848017973
        .quad 0x054aa4b316b38ddd
        .quad 0xdfc8468d19267cb8
        .quad 0x0b28789c66e54daf
        .quad 0x2aeb1d2a666eec17
        .quad 0x134610a6ab7da760



        .quad 0xcaf55ec27c59b23f
        .quad 0x99aeed3e154d04f2
        .quad 0x68441d72e14141f4
        .quad 0x140345133932a0a2
        .quad 0xd91430e0dc028c3c
        .quad 0x0eb955a85217c771
        .quad 0x4b09e1ed2c99a1fa
        .quad 0x42881af2bd6a743c
        .quad 0x7bfec69aab5cad3d
        .quad 0xc23e8cd34cb2cfad
        .quad 0x685dd14bfb37d6a2
        .quad 0x0ad6d64415677a18



        .quad 0x781a439e417becb5
        .quad 0x4ac5938cd10e0266
        .quad 0x5da385110692ac24
        .quad 0x11b065a2ade31233
        .quad 0x7914892847927e9f
        .quad 0x33dad6ef370aa877
        .quad 0x1f8f24fa11122703
        .quad 0x5265ac2f2adf9592
        .quad 0x405fdd309afcb346
        .quad 0xd9723d4428e63f54
        .quad 0x94c01df05f65aaae
        .quad 0x43e4dc3ae14c0809



        .quad 0xbc12c7f1a938a517
        .quad 0x473028ab3180b2e1
        .quad 0x3f78571efbcd254a
        .quad 0x74e534426ff6f90f
        .quad 0xea6f7ac3adc2c6a3
        .quad 0xd0e928f6e9717c94
        .quad 0xe2d379ead645eaf5
        .quad 0x46dd8785c51ffbbe
        .quad 0x709801be375c8898
        .quad 0x4b06dab5e3fd8348
        .quad 0x75880ced27230714
        .quad 0x2b09468fdd2f4c42



        .quad 0x97c749eeb701cb96
        .quad 0x83f438d4b6a369c3
        .quad 0x62962b8b9a402cd9
        .quad 0x6976c7509888df7b
        .quad 0x5b97946582ffa02a
        .quad 0xda096a51fea8f549
        .quad 0xa06351375f77af9b
        .quad 0x1bcfde61201d1e76
        .quad 0x4a4a5490246a59a2
        .quad 0xd63ebddee87fdd90
        .quad 0xd9437c670d2371fa
        .quad 0x69e87308d30f8ed6



        .quad 0x435a8bb15656beb0
        .quad 0xf8fac9ba4f4d5bca
        .quad 0xb9b278c41548c075
        .quad 0x3eb0ef76e892b622
        .quad 0x0f80bf028bc80303
        .quad 0x6aae16b37a18cefb
        .quad 0xdd47ea47d72cd6a3
        .quad 0x61943588f4ed39aa
        .quad 0xd26e5c3e91039f85
        .quad 0xc0e9e77df6f33aa9
        .quad 0xe8968c5570066a93
        .quad 0x3c34d1881faaaddd



        .quad 0x3f9d2b5ea09f9ec0
        .quad 0x1dab3b6fb623a890
        .quad 0xa09ba3ea72d926c4
        .quad 0x374193513fd8b36d
        .quad 0xbd5b0b8f2fffe0d9
        .quad 0x6aa254103ed24fb9
        .quad 0x2ac7d7bcb26821c4
        .quad 0x605b394b60dca36a
        .quad 0xb4e856e45a9d1ed2
        .quad 0xefe848766c97a9a2
        .quad 0xb104cf641e5eee7d
        .quad 0x2f50b81c88a71c8f



        .quad 0x31723c61fc6811bb
        .quad 0x9cb450486211800f
        .quad 0x768933d347995753
        .quad 0x3491a53502752fcd
        .quad 0x2b552ca0a7da522a
        .quad 0x3230b336449b0250
        .quad 0xf2c4c5bca4b99fb9
        .quad 0x7b2c674958074a22
        .quad 0xd55165883ed28cdf
        .quad 0x12d84fd2d362de39
        .quad 0x0a874ad3e3378e4f
        .quad 0x000d2b1f7c763e74



        .quad 0x3d420811d06d4a67
        .quad 0xbefc048590e0ffe3
        .quad 0xf870c6b7bd487bde
        .quad 0x6e2a7316319afa28
        .quad 0x9624778c3e94a8ab
        .quad 0x0ad6f3cee9a78bec
        .quad 0x948ac7810d743c4f
        .quad 0x76627935aaecfccc
        .quad 0x56a8ac24d6d59a9f
        .quad 0xc8db753e3096f006
        .quad 0x477f41e68f4c5299
        .quad 0x588d851cf6c86114



        .quad 0x51138ec78df6b0fe
        .quad 0x5397da89e575f51b
        .quad 0x09207a1d717af1b9
        .quad 0x2102fdba2b20d650
        .quad 0xcd2a65e777d1f515
        .quad 0x548991878faa60f1
        .quad 0xb1b73bbcdabc06e5
        .quad 0x654878cba97cc9fb
        .quad 0x969ee405055ce6a1
        .quad 0x36bca7681251ad29
        .quad 0x3a1af517aa7da415
        .quad 0x0ad725db29ecb2ba



        .quad 0xdc4267b1834e2457
        .quad 0xb67544b570ce1bc5
        .quad 0x1af07a0bf7d15ed7
        .quad 0x4aefcffb71a03650
        .quad 0xfec7bc0c9b056f85
        .quad 0x537d5268e7f5ffd7
        .quad 0x77afc6624312aefa
        .quad 0x4f675f5302399fd9
        .quad 0xc32d36360415171e
        .quad 0xcd2bef118998483b
        .quad 0x870a6eadd0945110
        .quad 0x0bccbb72a2a86561



        .quad 0x185e962feab1a9c8
        .quad 0x86e7e63565147dcd
        .quad 0xb092e031bb5b6df2
        .quad 0x4024f0ab59d6b73e
        .quad 0x186d5e4c50fe1296
        .quad 0xe0397b82fee89f7e
        .quad 0x3bc7f6c5507031b0
        .quad 0x6678fd69108f37c2
        .quad 0x1586fa31636863c2
        .quad 0x07f68c48572d33f2
        .quad 0x4f73cc9f789eaefc
        .quad 0x2d42e2108ead4701



        .quad 0x97f5131594dfd29b
        .quad 0x6155985d313f4c6a
        .quad 0xeba13f0708455010
        .quad 0x676b2608b8d2d322
        .quad 0x21717b0d0f537593
        .quad 0x914e690b131e064c
        .quad 0x1bb687ae752ae09f
        .quad 0x420bf3a79b423c6e
        .quad 0x8138ba651c5b2b47
        .quad 0x8671b6ec311b1b80
        .quad 0x7bff0cb1bc3135b0
        .quad 0x745d2ffa9c0cf1e0



        .quad 0xbf525a1e2bc9c8bd
        .quad 0xea5b260826479d81
        .quad 0xd511c70edf0155db
        .quad 0x1ae23ceb960cf5d0
        .quad 0x6036df5721d34e6a
        .quad 0xb1db8827997bb3d0
        .quad 0xd3c209c3c8756afa
        .quad 0x06e15be54c1dc839
        .quad 0x5b725d871932994a
        .quad 0x32351cb5ceb1dab0
        .quad 0x7dc41549dab7ca05
        .quad 0x58ded861278ec1f7



        .quad 0xd8173793f266c55c
        .quad 0xc8c976c5cc454e49
        .quad 0x5ce382f8bc26c3a8
        .quad 0x2ff39de85485f6f9
        .quad 0x2dfb5ba8b6c2c9a8
        .quad 0x48eeef8ef52c598c
        .quad 0x33809107f12d1573
        .quad 0x08ba696b531d5bd8
        .quad 0x77ed3eeec3efc57a
        .quad 0x04e05517d4ff4811
        .quad 0xea3d7a3ff1a671cb
        .quad 0x120633b4947cfe54



        .quad 0x0b94987891610042
        .quad 0x4ee7b13cecebfae8
        .quad 0x70be739594f0a4c0
        .quad 0x35d30a99b4d59185
        .quad 0x82bd31474912100a
        .quad 0xde237b6d7e6fbe06
        .quad 0xe11e761911ea79c6
        .quad 0x07433be3cb393bde
        .quad 0xff7944c05ce997f4
        .quad 0x575d3de4b05c51a3
        .quad 0x583381fd5a76847c
        .quad 0x2d873ede7af6da9f



        .quad 0x157a316443373409
        .quad 0xfab8b7eef4aa81d9
        .quad 0xb093fee6f5a64806
        .quad 0x2e773654707fa7b6
        .quad 0xaa6202e14e5df981
        .quad 0xa20d59175015e1f5
        .quad 0x18a275d3bae21d6c
        .quad 0x0543618a01600253
        .quad 0x0deabdf4974c23c1
        .quad 0xaa6f0a259dce4693
        .quad 0x04202cb8a29aba2c
        .quad 0x4b1443362d07960d



        .quad 0x47b837f753242cec
        .quad 0x256dc48cc04212f2
        .quad 0xe222fbfbe1d928c5
        .quad 0x48ea295bad8a2c07
        .quad 0x299b1c3f57c5715e
        .quad 0x96cb929e6b686d90
        .quad 0x3004806447235ab3
        .quad 0x2c435c24a44d9fe1
        .quad 0x0607c97c80f8833f
        .quad 0x0e851578ca25ec5b
        .quad 0x54f7450b161ebb6f
        .quad 0x7bcb4792a0def80e



        .quad 0x8487e3d02bc73659
        .quad 0x4baf8445059979df
        .quad 0xd17c975adcad6fbf
        .quad 0x57369f0bdefc96b6
        .quad 0x1cecd0a0045224c2
        .quad 0x757f1b1b69e53952
        .quad 0x775b7a925289f681
        .quad 0x1b6cc62016736148
        .quad 0xf1a9990175638698
        .quad 0x353dd1beeeaa60d3
        .quad 0x849471334c9ba488
        .quad 0x63fa6e6843ade311



        .quad 0xd15c20536597c168
        .quad 0x9f73740098d28789
        .quad 0x18aee7f13257ba1f
        .quad 0x3418bfda07346f14
        .quad 0x2195becdd24b5eb7
        .quad 0x5e41f18cc0cd44f9
        .quad 0xdf28074441ca9ede
        .quad 0x07073b98f35b7d67
        .quad 0xd03c676c4ce530d4
        .quad 0x0b64c0473b5df9f4
        .quad 0x065cef8b19b3a31e
        .quad 0x3084d661533102c9



        .quad 0xe1f6b79ebf8469ad
        .quad 0x15801004e2663135
        .quad 0x9a498330af74181b
        .quad 0x3ba2504f049b673c
        .quad 0x9a6ce876760321fd
        .quad 0x7fe2b5109eb63ad8
        .quad 0x00e7d4ae8ac80592
        .quad 0x73d86b7abb6f723a
        .quad 0x0b52b5606dba5ab6
        .quad 0xa9134f0fbbb1edab
        .quad 0x30a9520d9b04a635
        .quad 0x6813b8f37973e5db



        .quad 0x9854b054334127c1
        .quad 0x105d047882fbff25
        .quad 0xdb49f7f944186f4f
        .quad 0x1768e838bed0b900
        .quad 0xf194ca56f3157e29
        .quad 0x136d35705ef528a5
        .quad 0xdd4cef778b0599bc
        .quad 0x7d5472af24f833ed
        .quad 0xd0ef874daf33da47
        .quad 0x00d3be5db6e339f9
        .quad 0x3f2a8a2f9c9ceece
        .quad 0x5d1aeb792352435a



        .quad 0xf59e6bb319cd63ca
        .quad 0x670c159221d06839
        .quad 0xb06d565b2150cab6
        .quad 0x20fb199d104f12a3
        .quad 0x12c7bfaeb61ba775
        .quad 0xb84e621fe263bffd
        .quad 0x0b47a5c35c840dcf
        .quad 0x7e83be0bccaf8634
        .quad 0x61943dee6d99c120
        .quad 0x86101f2e460b9fe0
        .quad 0x6bb2f1518ee8598d
        .quad 0x76b76289fcc475cc



        .quad 0x791b4cc1756286fa
        .quad 0xdbced317d74a157c
        .quad 0x7e732421ea72bde6
        .quad 0x01fe18491131c8e9
        .quad 0x4245f1a1522ec0b3
        .quad 0x558785b22a75656d
        .quad 0x1d485a2548a1b3c0
        .quad 0x60959eccd58fe09f
        .quad 0x3ebfeb7ba8ed7a09
        .quad 0x49fdc2bbe502789c
        .quad 0x44ebce5d3c119428
        .quad 0x35e1eb55be947f4a



        .quad 0xdbdae701c5738dd3
        .quad 0xf9c6f635b26f1bee
        .quad 0x61e96a8042f15ef4
        .quad 0x3aa1d11faf60a4d8
        .quad 0x14fd6dfa726ccc74
        .quad 0x3b084cfe2f53b965
        .quad 0xf33ae4f552a2c8b4
        .quad 0x59aab07a0d40166a
        .quad 0x77bcec4c925eac25
        .quad 0x1848718460137738
        .quad 0x5b374337fea9f451
        .quad 0x1865e78ec8e6aa46



        .quad 0xccc4b7c7b66e1f7a
        .quad 0x44157e25f50c2f7e
        .quad 0x3ef06dfc713eaf1c
        .quad 0x582f446752da63f7
        .quad 0x967c54e91c529ccb
        .quad 0x30f6269264c635fb
        .quad 0x2747aff478121965
        .quad 0x17038418eaf66f5c
        .quad 0xc6317bd320324ce4
        .quad 0xa81042e8a4488bc4
        .quad 0xb21ef18b4e5a1364
        .quad 0x0c2a1c4bcda28dc9



        .quad 0xd24dc7d06f1f0447
        .quad 0xb2269e3edb87c059
        .quad 0xd15b0272fbb2d28f
        .quad 0x7c558bd1c6f64877
        .quad 0xedc4814869bd6945
        .quad 0x0d6d907dbe1c8d22
        .quad 0xc63bd212d55cc5ab
        .quad 0x5a6a9b30a314dc83
        .quad 0xd0ec1524d396463d
        .quad 0x12bb628ac35a24f0
        .quad 0xa50c3a791cbc5fa4
        .quad 0x0404a5ca0afbafc3



        .quad 0x8c1f40070aa743d6
        .quad 0xccbad0cb5b265ee8
        .quad 0x574b046b668fd2de
        .quad 0x46395bfdcadd9633
        .quad 0x62bc9e1b2a416fd1
        .quad 0xb5c6f728e350598b
        .quad 0x04343fd83d5d6967
        .quad 0x39527516e7f8ee98
        .quad 0x117fdb2d1a5d9a9c
        .quad 0x9c7745bcd1005c2a
        .quad 0xefd4bef154d56fea
        .quad 0x76579a29e822d016



        .quad 0x45b68e7e49c02a17
        .quad 0x23cd51a2bca9a37f
        .quad 0x3ed65f11ec224c1b
        .quad 0x43a384dc9e05bdb1
        .quad 0x333cb51352b434f2
        .quad 0xd832284993de80e1
        .quad 0xb5512887750d35ce
        .quad 0x02c514bb2a2777c1
        .quad 0x684bd5da8bf1b645
        .quad 0xfb8bd37ef6b54b53
        .quad 0x313916d7a9b0d253
        .quad 0x1160920961548059



        .quad 0xb44d166929dacfaa
        .quad 0xda529f4c8413598f
        .quad 0xe9ef63ca453d5559
        .quad 0x351e125bc5698e0b
        .quad 0x7a385616369b4dcd
        .quad 0x75c02ca7655c3563
        .quad 0x7dc21bf9d4f18021
        .quad 0x2f637d7491e6e042
        .quad 0xd4b49b461af67bbe
        .quad 0xd603037ac8ab8961
        .quad 0x71dee19ff9a699fb
        .quad 0x7f182d06e7ce2a9a



        .quad 0x7a7c8e64ab0168ec
        .quad 0xcb5a4a5515edc543
        .quad 0x095519d347cd0eda
        .quad 0x67d4ac8c343e93b0
        .quad 0x09454b728e217522
        .quad 0xaa58e8f4d484b8d8
        .quad 0xd358254d7f46903c
        .quad 0x44acc043241c5217
        .quad 0x1c7d6bbb4f7a5777
        .quad 0x8b35fed4918313e1
        .quad 0x4adca1c6c96b4684
        .quad 0x556d1c8312ad71bd



        .quad 0x17ef40e30c8d3982
        .quad 0x31f7073e15a3fa34
        .quad 0x4f21f3cb0773646e
        .quad 0x746c6c6d1d824eff
        .quad 0x81f06756b11be821
        .quad 0x0faff82310a3f3dd
        .quad 0xf8b2d0556a99465d
        .quad 0x097abe38cc8c7f05
        .quad 0x0c49c9877ea52da4
        .quad 0x4c4369559bdc1d43
        .quad 0x022c3809f7ccebd2
        .quad 0x577e14a34bee84bd



        .quad 0xf0e268ac61a73b0a
        .quad 0xf2fafa103791a5f5
        .quad 0xc1e13e826b6d00e9
        .quad 0x60fa7ee96fd78f42
        .quad 0x94fecebebd4dd72b
        .quad 0xf46a4fda060f2211
        .quad 0x124a5977c0c8d1ff
        .quad 0x705304b8fb009295
        .quad 0xb63d1d354d296ec6
        .quad 0xf3c3053e5fad31d8
        .quad 0x670b958cb4bd42ec
        .quad 0x21398e0ca16353fd



        .quad 0x216ab2ca8da7d2ef
        .quad 0x366ad9dd99f42827
        .quad 0xae64b9004fdd3c75
        .quad 0x403a395b53909e62
        .quad 0x86c5fc16861b7e9a
        .quad 0xf6a330476a27c451
        .quad 0x01667267a1e93597
        .quad 0x05ffb9cd6082dfeb
        .quad 0xa617fa9ff53f6139
        .quad 0x60f2b5e513e66cb6
        .quad 0xd7a8beefb3448aa4
        .quad 0x7a2932856f5ea192



        .quad 0x0b39d761b02de888
        .quad 0x5f550e7ed2414e1f
        .quad 0xa6bfa45822e1a940
        .quad 0x050a2f7dfd447b99
        .quad 0xb89c444879639302
        .quad 0x4ae4f19350c67f2c
        .quad 0xf0b35da8c81af9c6
        .quad 0x39d0003546871017
        .quad 0x437c3b33a650db77
        .quad 0x6bafe81dbac52bb2
        .quad 0xfe99402d2db7d318
        .quad 0x2b5b7eec372ba6ce



        .quad 0xb3bc4bbd83f50eef
        .quad 0x508f0c998c927866
        .quad 0x43e76587c8b7e66e
        .quad 0x0f7655a3a47f98d9
        .quad 0xa694404d613ac8f4
        .quad 0x500c3c2bfa97e72c
        .quad 0x874104d21fcec210
        .quad 0x1b205fb38604a8ee
        .quad 0x55ecad37d24b133c
        .quad 0x441e147d6038c90b
        .quad 0x656683a1d62c6fee
        .quad 0x0157d5dc87e0ecae



        .quad 0xf2a7af510354c13d
        .quad 0xd7a0b145aa372b60
        .quad 0x2869b96a05a3d470
        .quad 0x6528e42d82460173
        .quad 0x95265514d71eb524
        .quad 0xe603d8815df14593
        .quad 0x147cdf410d4de6b7
        .quad 0x5293b1730437c850
        .quad 0x23d0e0814bccf226
        .quad 0x92c745cd8196fb93
        .quad 0x8b61796c59541e5b
        .quad 0x40a44df0c021f978



        .quad 0xdaa869894f20ea6a
        .quad 0xea14a3d14c620618
        .quad 0x6001fccb090bf8be
        .quad 0x35f4e822947e9cf0
        .quad 0x86c96e514bc5d095
        .quad 0xf20d4098fca6804a
        .quad 0x27363d89c826ea5d
        .quad 0x39ca36565719cacf
        .quad 0x97506f2f6f87b75c
        .quad 0xc624aea0034ae070
        .quad 0x1ec856e3aad34dd6
        .quad 0x055b0be0e440e58f



        .quad 0x6469a17d89735d12
        .quad 0xdb6f27d5e662b9f1
        .quad 0x9fcba3286a395681
        .quad 0x363b8004d269af25
        .quad 0x4d12a04b6ea33da2
        .quad 0x57cf4c15e36126dd
        .quad 0x90ec9675ee44d967
        .quad 0x64ca348d2a985aac
        .quad 0x99588e19e4c4912d
        .quad 0xefcc3b4e1ca5ce6b
        .quad 0x4522ea60fa5b98d5
        .quad 0x7064bbab1de4a819



        .quad 0xb919e1515a770641
        .quad 0xa9a2e2c74e7f8039
        .quad 0x7527250b3df23109
        .quad 0x756a7330ac27b78b
        .quad 0xa290c06142542129
        .quad 0xf2e2c2aebe8d5b90
        .quad 0xcf2458db76abfe1b
        .quad 0x02157ade83d626bf
        .quad 0x3e46972a1b9a038b
        .quad 0x2e4ee66a7ee03fb4
        .quad 0x81a248776edbb4ca
        .quad 0x1a944ee88ecd0563



        .quad 0xd5a91d1151039372
        .quad 0x2ed377b799ca26de
        .quad 0xa17202acfd366b6b
        .quad 0x0730291bd6901995
        .quad 0xbb40a859182362d6
        .quad 0xb99f55778a4d1abb
        .quad 0x8d18b427758559f6
        .quad 0x26c20fe74d26235a
        .quad 0x648d1d9fe9cc22f5
        .quad 0x66bc561928dd577c
        .quad 0x47d3ed21652439d1
        .quad 0x49d271acedaf8b49



        .quad 0x89f5058a382b33f3
        .quad 0x5ae2ba0bad48c0b4
        .quad 0x8f93b503a53db36e
        .quad 0x5aa3ed9d95a232e6
        .quad 0x2798aaf9b4b75601
        .quad 0x5eac72135c8dad72
        .quad 0xd2ceaa6161b7a023
        .quad 0x1bbfb284e98f7d4e
        .quad 0x656777e9c7d96561
        .quad 0xcb2b125472c78036
        .quad 0x65053299d9506eee
        .quad 0x4a07e14e5e8957cc



        .quad 0x4ee412cb980df999
        .quad 0xa315d76f3c6ec771
        .quad 0xbba5edde925c77fd
        .quad 0x3f0bac391d313402
        .quad 0x240b58cdc477a49b
        .quad 0xfd38dade6447f017
        .quad 0x19928d32a7c86aad
        .quad 0x50af7aed84afa081
        .quad 0x6e4fde0115f65be5
        .quad 0x29982621216109b2
        .quad 0x780205810badd6d9
        .quad 0x1921a316baebd006



        .quad 0x89422f7edfb870fc
        .quad 0x2c296beb4f76b3bd
        .quad 0x0738f1d436c24df7
        .quad 0x6458df41e273aeb0
        .quad 0xd75aad9ad9f3c18b
        .quad 0x566a0eef60b1c19c
        .quad 0x3e9a0bac255c0ed9
        .quad 0x7b049deca062c7f5
        .quad 0xdccbe37a35444483
        .quad 0x758879330fedbe93
        .quad 0x786004c312c5dd87
        .quad 0x6093dccbc2950e64



        .quad 0x1ff39a8585e0706d
        .quad 0x36d0a5d8b3e73933
        .quad 0x43b9f2e1718f453b
        .quad 0x57d1ea084827a97c
        .quad 0x6bdeeebe6084034b
        .quad 0x3199c2b6780fb854
        .quad 0x973376abb62d0695
        .quad 0x6e3180c98b647d90
        .quad 0xee7ab6e7a128b071
        .quad 0xa4c1596d93a88baa
        .quad 0xf7b4de82b2216130
        .quad 0x363e999ddd97bd18



        .quad 0x96a843c135ee1fc4
        .quad 0x976eb35508e4c8cf
        .quad 0xb42f6801b58cd330
        .quad 0x48ee9b78693a052b
        .quad 0x2f1848dce24baec6
        .quad 0x769b7255babcaf60
        .quad 0x90cb3c6e3cefe931
        .quad 0x231f979bc6f9b355
        .quad 0x5c31de4bcc2af3c6
        .quad 0xb04bb030fe208d1f
        .quad 0xb78d7009c14fb466
        .quad 0x079bfa9b08792413



        .quad 0xe3903a51da300df4
        .quad 0x843964233da95ab0
        .quad 0xed3cf12d0b356480
        .quad 0x038c77f684817194
        .quad 0xf3c9ed80a2d54245
        .quad 0x0aa08b7877f63952
        .quad 0xd76dac63d1085475
        .quad 0x1ef4fb159470636b
        .quad 0x854e5ee65b167bec
        .quad 0x59590a4296d0cdc2
        .quad 0x72b2df3498102199
        .quad 0x575ee92a4a0bff56



        .quad 0xd4c080908a182fcf
        .quad 0x30e170c299489dbd
        .quad 0x05babd5752f733de
        .quad 0x43d4e7112cd3fd00
        .quad 0x5d46bc450aa4d801
        .quad 0xc3af1227a533b9d8
        .quad 0x389e3b262b8906c2
        .quad 0x200a1e7e382f581b
        .quad 0x518db967eaf93ac5
        .quad 0x71bc989b056652c0
        .quad 0xfe2b85d9567197f5
        .quad 0x050eca52651e4e38



        .quad 0xc3431ade453f0c9c
        .quad 0xe9f5045eff703b9b
        .quad 0xfcd97ac9ed847b3d
        .quad 0x4b0ee6c21c58f4c6
        .quad 0x97ac397660e668ea
        .quad 0x9b19bbfe153ab497
        .quad 0x4cb179b534eca79f
        .quad 0x6151c09fa131ae57
        .quad 0x3af55c0dfdf05d96
        .quad 0xdd262ee02ab4ee7a
        .quad 0x11b2bb8712171709
        .quad 0x1fef24fa800f030b



        .quad 0xb496123a6b6c6609
        .quad 0xa750fe8580ab5938
        .quad 0xf471bf39b7c27a5f
        .quad 0x507903ce77ac193c
        .quad 0xff91a66a90166220
        .quad 0xf22552ae5bf1e009
        .quad 0x7dff85d87f90df7c
        .quad 0x4f620ffe0c736fb9
        .quad 0x62f90d65dfde3e34
        .quad 0xcf28c592b9fa5fad
        .quad 0x99c86ef9c6164510
        .quad 0x25d448044a256c84



        .quad 0xbd68230ec7e9b16f
        .quad 0x0eb1b9c1c1c5795d
        .quad 0x7943c8c495b6b1ff
        .quad 0x2f9faf620bbacf5e
        .quad 0x2c7c4415c9022b55
        .quad 0x56a0d241812eb1fe
        .quad 0xf02ea1c9d7b65e0d
        .quad 0x4180512fd5323b26
        .quad 0xa4ff3e698a48a5db
        .quad 0xba6a3806bd95403b
        .quad 0x9f7ce1af47d5b65d
        .quad 0x15e087e55939d2fb



        .quad 0x12207543745c1496
        .quad 0xdaff3cfdda38610c
        .quad 0xe4e797272c71c34f
        .quad 0x39c07b1934bdede9
        .quad 0x8894186efb963f38
        .quad 0x48a00e80dc639bd5
        .quad 0xa4e8092be96c1c99
        .quad 0x5a097d54ca573661
        .quad 0x2d45892b17c9e755
        .quad 0xd033fd7289308df8
        .quad 0x6c2fe9d9525b8bd9
        .quad 0x2edbecf1c11cc079



        .quad 0x1616a4e3c715a0d2
        .quad 0x53623cb0f8341d4d
        .quad 0x96ef5329c7e899cb
        .quad 0x3d4e8dbba668baa6
        .quad 0xee0f0fddd087a25f
        .quad 0x9c7531555c3e34ee
        .quad 0x660c572e8fab3ab5
        .quad 0x0854fc44544cd3b2
        .quad 0x61eba0c555edad19
        .quad 0x24b533fef0a83de6
        .quad 0x3b77042883baa5f8
        .quad 0x678f82b898a47e8d



        .quad 0xb1491d0bd6900c54
        .quad 0x3539722c9d132636
        .quad 0x4db928920b362bc9
        .quad 0x4d7cd1fea68b69df
        .quad 0x1e09d94057775696
        .quad 0xeed1265c3cd951db
        .quad 0xfa9dac2b20bce16f
        .quad 0x0f7f76e0e8d089f4
        .quad 0x36d9ebc5d485b00c
        .quad 0xa2596492e4adb365
        .quad 0xc1659480c2119ccd
        .quad 0x45306349186e0d5f



        .quad 0x94ddd0c1a6cdff1d
        .quad 0x55f6f115e84213ae
        .quad 0x6c935f85992fcf6a
        .quad 0x067ee0f54a37f16f
        .quad 0x96a414ec2b072491
        .quad 0x1bb2218127a7b65b
        .quad 0x6d2849596e8a4af0
        .quad 0x65f3b08ccd27765f
        .quad 0xecb29fff199801f7
        .quad 0x9d361d1fa2a0f72f
        .quad 0x25f11d2375fd2f49
        .quad 0x124cefe80fe10fe2



        .quad 0x4c126cf9d18df255
        .quad 0xc1d471e9147a63b6
        .quad 0x2c6d3c73f3c93b5f
        .quad 0x6be3a6a2e3ff86a2
        .quad 0x1518e85b31b16489
        .quad 0x8faadcb7db710bfb
        .quad 0x39b0bdf4a14ae239
        .quad 0x05f4cbea503d20c1
        .quad 0xce040e9ec04145bc
        .quad 0xc71ff4e208f6834c
        .quad 0xbd546e8dab8847a3
        .quad 0x64666aa0a4d2aba5



        .quad 0x6841435a7c06d912
        .quad 0xca123c21bb3f830b
        .quad 0xd4b37b27b1cbe278
        .quad 0x1d753b84c76f5046
        .quad 0xb0c53bf73337e94c
        .quad 0x7cb5697e11e14f15
        .quad 0x4b84abac1930c750
        .quad 0x28dd4abfe0640468
        .quad 0x7dc0b64c44cb9f44
        .quad 0x18a3e1ace3925dbf
        .quad 0x7a3034862d0457c4
        .quad 0x4c498bf78a0c892e



        .quad 0x37d653fb1aa73196
        .quad 0x0f9495303fd76418
        .quad 0xad200b09fb3a17b2
        .quad 0x544d49292fc8613e
        .quad 0x22d2aff530976b86
        .quad 0x8d90b806c2d24604
        .quad 0xdca1896c4de5bae5
        .quad 0x28005fe6c8340c17
        .quad 0x6aefba9f34528688
        .quad 0x5c1bff9425107da1
        .quad 0xf75bbbcd66d94b36
        .quad 0x72e472930f316dfa



        .quad 0x2695208c9781084f
        .quad 0xb1502a0b23450ee1
        .quad 0xfd9daea603efde02
        .quad 0x5a9d2e8c2733a34c
        .quad 0x07f3f635d32a7627
        .quad 0x7aaa4d865f6566f0
        .quad 0x3c85e79728d04450
        .quad 0x1fee7f000fe06438
        .quad 0x765305da03dbf7e5
        .quad 0xa4daf2491434cdbd
        .quad 0x7b4ad5cdd24a88ec
        .quad 0x00f94051ee040543



        .quad 0x8d356b23c3d330b2
        .quad 0xf21c8b9bb0471b06
        .quad 0xb36c316c6e42b83c
        .quad 0x07d79c7e8beab10d
        .quad 0xd7ef93bb07af9753
        .quad 0x583ed0cf3db766a7
        .quad 0xce6998bf6e0b1ec5
        .quad 0x47b7ffd25dd40452
        .quad 0x87fbfb9cbc08dd12
        .quad 0x8a066b3ae1eec29b
        .quad 0x0d57242bdb1fc1bf
        .quad 0x1c3520a35ea64bb6



        .quad 0x80d253a6bccba34a
        .quad 0x3e61c3a13838219b
        .quad 0x90c3b6019882e396
        .quad 0x1c3d05775d0ee66f
        .quad 0xcda86f40216bc059
        .quad 0x1fbb231d12bcd87e
        .quad 0xb4956a9e17c70990
        .quad 0x38750c3b66d12e55
        .quad 0x692ef1409422e51a
        .quad 0xcbc0c73c2b5df671
        .quad 0x21014fe7744ce029
        .quad 0x0621e2c7d330487c



        .quad 0xaf9860cc8259838d
        .quad 0x90ea48c1c69f9adc
        .quad 0x6526483765581e30
        .quad 0x0007d6097bd3a5bc
        .quad 0xb7ae1796b0dbf0f3
        .quad 0x54dfafb9e17ce196
        .quad 0x25923071e9aaa3b4
        .quad 0x5d8e589ca1002e9d
        .quad 0xc0bf1d950842a94b
        .quad 0xb2d3c363588f2e3e
        .quad 0x0a961438bb51e2ef
        .quad 0x1583d7783c1cbf86



        .quad 0xeceea2ef5da27ae1
        .quad 0x597c3a1455670174
        .quad 0xc9a62a126609167a
        .quad 0x252a5f2e81ed8f70
        .quad 0x90034704cc9d28c7
        .quad 0x1d1b679ef72cc58f
        .quad 0x16e12b5fbe5b8726
        .quad 0x4958064e83c5580a
        .quad 0x0d2894265066e80d
        .quad 0xfcc3f785307c8c6b
        .quad 0x1b53da780c1112fd
        .quad 0x079c170bd843b388



        .quad 0x0506ece464fa6fff
        .quad 0xbee3431e6205e523
        .quad 0x3579422451b8ea42
        .quad 0x6dec05e34ac9fb00
        .quad 0xcdd6cd50c0d5d056
        .quad 0x9af7686dbb03573b
        .quad 0x3ca6723ff3c3ef48
        .quad 0x6768c0d7317b8acc
        .quad 0x94b625e5f155c1b3
        .quad 0x417bf3a7997b7b91
        .quad 0xc22cbddc6d6b2600
        .quad 0x51445e14ddcd52f4



        .quad 0x57502b4b3b144951
        .quad 0x8e67ff6b444bbcb3
        .quad 0xb8bd6927166385db
        .quad 0x13186f31e39295c8
        .quad 0x893147ab2bbea455
        .quad 0x8c53a24f92079129
        .quad 0x4b49f948be30f7a7
        .quad 0x12e990086e4fd43d
        .quad 0xf10c96b37fdfbb2e
        .quad 0x9f9a935e121ceaf9
        .quad 0xdf1136c43a5b983f
        .quad 0x77b2e3f05d3e99af



        .quad 0xfd0d75879cf12657
        .quad 0xe82fef94e53a0e29
        .quad 0xcc34a7f05bbb4be7
        .quad 0x0b251172a50c38a2
        .quad 0x9532f48fcc5cd29b
        .quad 0x2ba851bea3ce3671
        .quad 0x32dacaa051122941
        .quad 0x478d99d9350004f2
        .quad 0x1d5ad94890bb02c0
        .quad 0x50e208b10ec25115
        .quad 0xa26a22894ef21702
        .quad 0x4dc923343b524805



        .quad 0xe3828c400f8086b6
        .quad 0x3f77e6f7979f0dc8
        .quad 0x7ef6de304df42cb4
        .quad 0x5265797cb6abd784
        .quad 0x3ad3e3ebf36c4975
        .quad 0xd75d25a537862125
        .quad 0xe873943da025a516
        .quad 0x6bbc7cb4c411c847
        .quad 0x3c6f9cd1d4a50d56
        .quad 0xb6244077c6feab7e
        .quad 0x6ff9bf483580972e
        .quad 0x00375883b332acfb



        .quad 0x0001b2cd28cb0940
        .quad 0x63fb51a06f1c24c9
        .quad 0xb5ad8691dcd5ca31
        .quad 0x67238dbd8c450660
        .quad 0xc98bec856c75c99c
        .quad 0xe44184c000e33cf4
        .quad 0x0a676b9bba907634
        .quad 0x669e2cb571f379d7
        .quad 0xcb116b73a49bd308
        .quad 0x025aad6b2392729e
        .quad 0xb4793efa3f55d9b1
        .quad 0x72a1056140678bb9



        .quad 0xa2b6812b1cc9249d
        .quad 0x62866eee21211f58
        .quad 0x2cb5c5b85df10ece
        .quad 0x03a6b259e263ae00
        .quad 0x0d8d2909e2e505b6
        .quad 0x98ca78abc0291230
        .quad 0x77ef5569a9b12327
        .quad 0x7c77897b81439b47
        .quad 0xf1c1b5e2de331cb5
        .quad 0x5a9f5d8e15fca420
        .quad 0x9fa438f17bd932b1
        .quad 0x2a381bf01c6146e7



        .quad 0xac9b9879cfc811c1
        .quad 0x8b7d29813756e567
        .quad 0x50da4e607c70edfc
        .quad 0x5dbca62f884400b6
        .quad 0xf7c0be32b534166f
        .quad 0x27e6ca6419cf70d4
        .quad 0x934df7d7a957a759
        .quad 0x5701461dabdec2aa
        .quad 0x2c6747402c915c25
        .quad 0x1bdcd1a80b0d340a
        .quad 0x5e5601bd07b43f5f
        .quad 0x2555b4e05539a242



        .quad 0x6fc09f5266ddd216
        .quad 0xdce560a7c8e37048
        .quad 0xec65939da2df62fd
        .quad 0x7a869ae7e52ed192
        .quad 0x78409b1d87e463d4
        .quad 0xad4da95acdfb639d
        .quad 0xec28773755259b9c
        .quad 0x69c806e9c31230ab
        .quad 0x7b48f57414bb3f22
        .quad 0x68c7cee4aedccc88
        .quad 0xed2f936179ed80be
        .quad 0x25d70b885f77bc4b



        .quad 0x4151c3d9762bf4de
        .quad 0x083f435f2745d82b
        .quad 0x29775a2e0d23ddd5
        .quad 0x138e3a6269a5db24
        .quad 0x98459d29bb1ae4d4
        .quad 0x56b9c4c739f954ec
        .quad 0x832743f6c29b4b3e
        .quad 0x21ea8e2798b6878a
        .quad 0x87bef4b46a5a7b9c
        .quad 0xd2299d1b5fc1d062
        .quad 0x82409818dd321648
        .quad 0x5c5abeb1e5a2e03d



        .quad 0x14722af4b73c2ddb
        .quad 0xbc470c5f5a05060d
        .quad 0x00943eac2581b02e
        .quad 0x0e434b3b1f499c8f
        .quad 0x02cde6de1306a233
        .quad 0x7b5a52a2116f8ec7
        .quad 0xe1c681f4c1163b5b
        .quad 0x241d350660d32643
        .quad 0x6be4404d0ebc52c7
        .quad 0xae46233bb1a791f5
        .quad 0x2aec170ed25db42b
        .quad 0x1d8dfd966645d694



        .quad 0x296fa9c59c2ec4de
        .quad 0xbc8b61bf4f84f3cb
        .quad 0x1c7706d917a8f908
        .quad 0x63b795fc7ad3255d
        .quad 0xd598639c12ddb0a4
        .quad 0xa5d19f30c024866b
        .quad 0xd17c2f0358fce460
        .quad 0x07a195152e095e8a
        .quad 0xa8368f02389e5fc8
        .quad 0x90433b02cf8de43b
        .quad 0xafa1fd5dc5412643
        .quad 0x3e8fe83d032f0137



        .quad 0x2f8b15b90570a294
        .quad 0x94f2427067084549
        .quad 0xde1c5ae161bbfd84
        .quad 0x75ba3b797fac4007
        .quad 0x08704c8de8efd13c
        .quad 0xdfc51a8e33e03731
        .quad 0xa59d5da51260cde3
        .quad 0x22d60899a6258c86
        .quad 0x6239dbc070cdd196
        .quad 0x60fe8a8b6c7d8a9a
        .quad 0xb38847bceb401260
        .quad 0x0904d07b87779e5e



        .quad 0xb4ce1fd4ddba919c
        .quad 0xcf31db3ec74c8daa
        .quad 0x2c63cc63ad86cc51
        .quad 0x43e2143fbc1dde07
        .quad 0xf4322d6648f940b9
        .quad 0x06952f0cbd2d0c39
        .quad 0x167697ada081f931
        .quad 0x6240aacebaf72a6c
        .quad 0xf834749c5ba295a0
        .quad 0xd6947c5bca37d25a
        .quad 0x66f13ba7e7c9316a
        .quad 0x56bdaf238db40cac



        .quad 0x362ab9e3f53533eb
        .quad 0x338568d56eb93d40
        .quad 0x9e0e14521d5a5572
        .quad 0x1d24a86d83741318
        .quad 0x1310d36cc19d3bb2
        .quad 0x062a6bb7622386b9
        .quad 0x7c9b8591d7a14f5c
        .quad 0x03aa31507e1e5754
        .quad 0xf4ec7648ffd4ce1f
        .quad 0xe045eaf054ac8c1c
        .quad 0x88d225821d09357c
        .quad 0x43b261dc9aeb4859



        .quad 0xe55b1e1988bb79bb
        .quad 0xa09ed07dc17a359d
        .quad 0xb02c2ee2603dea33
        .quad 0x326055cf5b276bc2
        .quad 0x19513d8b6c951364
        .quad 0x94fe7126000bf47b
        .quad 0x028d10ddd54f9567
        .quad 0x02b4d5e242940964
        .quad 0xb4a155cb28d18df2
        .quad 0xeacc4646186ce508
        .quad 0xc49cf4936c824389
        .quad 0x27a6c809ae5d3410



        .quad 0x8ba6ebcd1f0db188
        .quad 0x37d3d73a675a5be8
        .quad 0xf22edfa315f5585a
        .quad 0x2cb67174ff60a17e
        .quad 0xcd2c270ac43d6954
        .quad 0xdd4a3e576a66cab2
        .quad 0x79fa592469d7036c
        .quad 0x221503603d8c2599
        .quad 0x59eecdf9390be1d0
        .quad 0xa9422044728ce3f1
        .quad 0x82891c667a94f0f4
        .quad 0x7b1df4b73890f436



        .quad 0xe492f2e0b3b2a224
        .quad 0x7c6c9e062b551160
        .quad 0x15eb8fe20d7f7b0e
        .quad 0x61fcef2658fc5992
        .quad 0x5f2e221807f8f58c
        .quad 0xe3555c9fd49409d4
        .quad 0xb2aaa88d1fb6a630
        .quad 0x68698245d352e03d
        .quad 0xdbb15d852a18187a
        .quad 0xf3e4aad386ddacd7
        .quad 0x44bae2810ff6c482
        .quad 0x46cf4c473daf01cf



        .quad 0x426525ed9ec4e5f9
        .quad 0x0e5eda0116903303
        .quad 0x72b1a7f2cbe5cadc
        .quad 0x29387bcd14eb5f40
        .quad 0x213c6ea7f1498140
        .quad 0x7c1e7ef8392b4854
        .quad 0x2488c38c5629ceba
        .quad 0x1065aae50d8cc5bb
        .quad 0x1c2c4525df200d57
        .quad 0x5c3b2dd6bfca674a
        .quad 0x0a07e7b1e1834030
        .quad 0x69a198e64f1ce716



        .quad 0x7afcd613efa9d697
        .quad 0x0cc45aa41c067959
        .quad 0xa56fe104c1fada96
        .quad 0x3a73b70472e40365
        .quad 0x7b26e56b9e2d4734
        .quad 0xc4c7132b81c61675
        .quad 0xef5c9525ec9cde7f
        .quad 0x39c80b16e71743ad
        .quad 0x0f196e0d1b826c68
        .quad 0xf71ff0e24960e3db
        .quad 0x6113167023b7436c
        .quad 0x0cf0ea5877da7282



        .quad 0x196c80a4ddd4ccbd
        .quad 0x22e6f55d95f2dd9d
        .quad 0xc75e33c740d6c71b
        .quad 0x7bb51279cb3c042f
        .quad 0xe332ced43ba6945a
        .quad 0xde0b1361e881c05d
        .quad 0x1ad40f095e67ed3b
        .quad 0x5da8acdab8c63d5d
        .quad 0xc4b6664a3a70159f
        .quad 0x76194f0f0a904e14
        .quad 0xa5614c39a4096c13
        .quad 0x6cd0ff50979feced



        .quad 0xc0e067e78f4428ac
        .quad 0x14835ab0a61135e3
        .quad 0xf21d14f338062935
        .quad 0x6390a4c8df04849c
        .quad 0x7fecfabdb04ba18e
        .quad 0xd0fc7bfc3bddbcf7
        .quad 0xa41d486e057a131c
        .quad 0x641a4391f2223a61
        .quad 0xc5c6b95aa606a8db
        .quad 0x914b7f9eb06825f1
        .quad 0x2a731f6b44fc9eff
        .quad 0x30ddf38562705cfc



        .quad 0x4e3dcbdad1bff7f9
        .quad 0xc9118e8220645717
        .quad 0xbacccebc0f189d56
        .quad 0x1b4822e9d4467668
        .quad 0x33bef2bd68bcd52c
        .quad 0xc649dbb069482ef2
        .quad 0xb5b6ee0c41cb1aee
        .quad 0x5c294d270212a7e5
        .quad 0xab360a7f25563781
        .quad 0x2512228a480f7958
        .quad 0xc75d05276114b4e3
        .quad 0x222d9625d976fe2a



        .quad 0x1c717f85b372ace1
        .quad 0x81930e694638bf18
        .quad 0x239cad056bc08b58
        .quad 0x0b34271c87f8fff4
        .quad 0x0f94be7e0a344f85
        .quad 0xeb2faa8c87f22c38
        .quad 0x9ce1e75e4ee16f0f
        .quad 0x43e64e5418a08dea
        .quad 0x8155e2521a35ce63
        .quad 0xbe100d4df912028e
        .quad 0xbff80bf8a57ddcec
        .quad 0x57342dc96d6bc6e4



        .quad 0xefeef065c8ce5998
        .quad 0xbf029510b5cbeaa2
        .quad 0x8c64a10620b7c458
        .quad 0x35134fb231c24855
        .quad 0xf3c3bcb71e707bf6
        .quad 0x351d9b8c7291a762
        .quad 0x00502e6edad69a33
        .quad 0x522f521f1ec8807f
        .quad 0x272c1f46f9a3902b
        .quad 0xc91ba3b799657bcc
        .quad 0xae614b304f8a1c0e
        .quad 0x7afcaad70b99017b



        .quad 0xc25ded54a4b8be41
        .quad 0x902d13e11bb0e2dd
        .quad 0x41f43233cde82ab2
        .quad 0x1085faa5c3aae7cb
        .quad 0xa88141ecef842b6b
        .quad 0x55e7b14797abe6c5
        .quad 0x8c748f9703784ffe
        .quad 0x5b50a1f7afcd00b7
        .quad 0x9b840f66f1361315
        .quad 0x18462242701003e9
        .quad 0x65ed45fae4a25080
        .quad 0x0a2862393fda7320



        .quad 0x46ab13c8347cbc9d
        .quad 0x3849e8d499c12383
        .quad 0x4cea314087d64ac9
        .quad 0x1f354134b1a29ee7
        .quad 0x960e737b6ecb9d17
        .quad 0xfaf24948d67ceae1
        .quad 0x37e7a9b4d55e1b89
        .quad 0x5cb7173cb46c59eb
        .quad 0x4a89e68b82b7abf0
        .quad 0xf41cd9279ba6b7b9
        .quad 0x16e6c210e18d876f
        .quad 0x7cacdb0f7f1b09c6



        .quad 0x9062b2e0d91a78bc
        .quad 0x47c9889cc8509667
        .quad 0x9df54a66405070b8
        .quad 0x7369e6a92493a1bf
        .quad 0xe1014434dcc5caed
        .quad 0x47ed5d963c84fb33
        .quad 0x70019576ed86a0e7
        .quad 0x25b2697bd267f9e4
        .quad 0x9d673ffb13986864
        .quad 0x3ca5fbd9415dc7b8
        .quad 0xe04ecc3bdf273b5e
        .quad 0x1420683db54e4cd2



        .quad 0xb478bd1e249dd197
        .quad 0x620c35005e58c102
        .quad 0xfb02d32fccbaac5c
        .quad 0x60b63bebf508a72d
        .quad 0x34eebb6fc1cc5ad0
        .quad 0x6a1b0ce99646ac8b
        .quad 0xd3b0da49a66bde53
        .quad 0x31e83b4161d081c1
        .quad 0x97e8c7129e062b4f
        .quad 0x49e48f4f29320ad8
        .quad 0x5bece14b6f18683f
        .quad 0x55cf1eb62d550317



        .quad 0x5879101065c23d58
        .quad 0x8b9d086d5094819c
        .quad 0xe2402fa912c55fa7
        .quad 0x669a6564570891d4
        .quad 0x3076b5e37df58c52
        .quad 0xd73ab9dde799cc36
        .quad 0xbd831ce34913ee20
        .quad 0x1a56fbaa62ba0133
        .quad 0x943e6b505c9dc9ec
        .quad 0x302557bba77c371a
        .quad 0x9873ae5641347651
        .quad 0x13c4836799c58a5c



        .quad 0x423a5d465ab3e1b9
        .quad 0xfc13c187c7f13f61
        .quad 0x19f83664ecb5b9b6
        .quad 0x66f80c93a637b607
        .quad 0xc4dcfb6a5d8bd080
        .quad 0xdeebc4ec571a4842
        .quad 0xd4b2e883b8e55365
        .quad 0x50bdc87dc8e5b827
        .quad 0x606d37836edfe111
        .quad 0x32353e15f011abd9
        .quad 0x64b03ac325b73b96
        .quad 0x1dd56444725fd5ae



        .quad 0x8fa47ff83362127d
        .quad 0xbc9f6ac471cd7c15
        .quad 0x6e71454349220c8b
        .quad 0x0e645912219f732e
        .quad 0xc297e60008bac89a
        .quad 0x7d4cea11eae1c3e0
        .quad 0xf3e38be19fe7977c
        .quad 0x3a3a450f63a305cd
        .quad 0x078f2f31d8394627
        .quad 0x389d3183de94a510
        .quad 0xd1e36c6d17996f80
        .quad 0x318c8d9393a9a87b



        .quad 0xf2745d032afffe19
        .quad 0x0c9f3c497f24db66
        .quad 0xbc98d3e3ba8598ef
        .quad 0x224c7c679a1d5314
        .quad 0x5d669e29ab1dd398
        .quad 0xfc921658342d9e3b
        .quad 0x55851dfdf35973cd
        .quad 0x509a41c325950af6
        .quad 0xbdc06edca6f925e9
        .quad 0x793ef3f4641b1f33
        .quad 0x82ec12809d833e89
        .quad 0x05bff02328a11389



        .quad 0x3632137023cae00b
        .quad 0x544acf0ad1accf59
        .quad 0x96741049d21a1c88
        .quad 0x780b8cc3fa2a44a7
        .quad 0x6881a0dd0dc512e4
        .quad 0x4fe70dc844a5fafe
        .quad 0x1f748e6b8f4a5240
        .quad 0x576277cdee01a3ea
        .quad 0x1ef38abc234f305f
        .quad 0x9a577fbd1405de08
        .quad 0x5e82a51434e62a0d
        .quad 0x5ff418726271b7a1



        .quad 0x398e080c1789db9d
        .quad 0xa7602025f3e778f5
        .quad 0xfa98894c06bd035d
        .quad 0x106a03dc25a966be
        .quad 0xe5db47e813b69540
        .quad 0xf35d2a3b432610e1
        .quad 0xac1f26e938781276
        .quad 0x29d4db8ca0a0cb69
        .quad 0xd9ad0aaf333353d0
        .quad 0x38669da5acd309e5
        .quad 0x3c57658ac888f7f0
        .quad 0x4ab38a51052cbefa



        .quad 0xdfdacbee4324c0e9
        .quad 0x054442883f955bb7
        .quad 0xdef7aaa8ea31609f
        .quad 0x68aee70642287cff
        .quad 0xf68fe2e8809de054
        .quad 0xe3bc096a9c82bad1
        .quad 0x076353d40aadbf45
        .quad 0x7b9b1fb5dea1959e
        .quad 0xf01cc8f17471cc0c
        .quad 0x95242e37579082bb
        .quad 0x27776093d3e46b5f
        .quad 0x2d13d55a28bd85fb



        .quad 0xfac5d2065b35b8da
        .quad 0xa8da8a9a85624bb7
        .quad 0xccd2ca913d21cd0f
        .quad 0x6b8341ee8bf90d58
        .quad 0xbf019cce7aee7a52
        .quad 0xa8ded2b6e454ead3
        .quad 0x3c619f0b87a8bb19
        .quad 0x3619b5d7560916d8
        .quad 0x3579f26b0282c4b2
        .quad 0x64d592f24fafefae
        .quad 0xb7cded7b28c8c7c0
        .quad 0x6a927b6b7173a8d7



        .quad 0x1f6db24f986e4656
        .quad 0x1021c02ed1e9105b
        .quad 0xf8ff3fff2cc0a375
        .quad 0x1d2a6bf8c6c82592
        .quad 0x8d7040863ece88eb
        .quad 0xf0e307a980eec08c
        .quad 0xac2250610d788fda
        .quad 0x056d92a43a0d478d
        .quad 0x1b05a196fc3da5a1
        .quad 0x77d7a8c243b59ed0
        .quad 0x06da3d6297d17918
        .quad 0x66fbb494f12353f7



        .quad 0x751a50b9d85c0fb8
        .quad 0xd1afdc258bcf097b
        .quad 0x2f16a6a38309a969
        .quad 0x14ddff9ee5b00659
        .quad 0xd6d70996f12309d6
        .quad 0xdbfb2385e9c3d539
        .quad 0x46d602b0f7552411
        .quad 0x270a0b0557843e0c
        .quad 0x61ff0640a7862bcc
        .quad 0x81cac09a5f11abfe
        .quad 0x9047830455d12abb
        .quad 0x19a4bde1945ae873



        .quad 0x9b9f26f520a6200a
        .quad 0x64804443cf13eaf8
        .quad 0x8a63673f8631edd3
        .quad 0x72bbbce11ed39dc1
        .quad 0x40c709dec076c49f
        .quad 0x657bfaf27f3e53f6
        .quad 0x40662331eca042c4
        .quad 0x14b375487eb4df04
        .quad 0xae853c94ab66dc47
        .quad 0xeb62343edf762d6e
        .quad 0xf08e0e186fb2f7d1
        .quad 0x4f0b1c02700ab37a



        .quad 0xe1706787d81951fa
        .quad 0xa10a2c8eb290c77b
        .quad 0xe7382fa03ed66773
        .quad 0x0a4d84710bcc4b54
        .quad 0x79fd21ccc1b2e23f
        .quad 0x4ae7c281453df52a
        .quad 0xc8172ec9d151486b
        .quad 0x68abe9443e0a7534
        .quad 0xda12c6c407831dcb
        .quad 0x0da230d74d5c510d
        .quad 0x4ab1531e6bd404e1
        .quad 0x4106b166bcf440ef



        .quad 0x02e57a421cd23668
        .quad 0x4ad9fb5d0eaef6fd
        .quad 0x954e6727b1244480
        .quad 0x7f792f9d2699f331
        .quad 0xa485ccd539e4ecf2
        .quad 0x5aa3f3ad0555bab5
        .quad 0x145e3439937df82d
        .quad 0x1238b51e1214283f
        .quad 0x0b886b925fd4d924
        .quad 0x60906f7a3626a80d
        .quad 0xecd367b4b98abd12
        .quad 0x2876beb1def344cf



        .quad 0xdc84e93563144691
        .quad 0x632fe8a0d61f23f4
        .quad 0x4caa800612a9a8d5
        .quad 0x48f9dbfa0e9918d3
        .quad 0xd594b3333a8a85f8
        .quad 0x4ea37689e78d7d58
        .quad 0x73bf9f455e8e351f
        .quad 0x5507d7d2bc41ebb4
        .quad 0x1ceb2903299572fc
        .quad 0x7c8ccaa29502d0ee
        .quad 0x91bfa43411cce67b
        .quad 0x5784481964a831e7



        .quad 0xda7c2b256768d593
        .quad 0x98c1c0574422ca13
        .quad 0xf1a80bd5ca0ace1d
        .quad 0x29cdd1adc088a690
        .quad 0xd6cfd1ef5fddc09c
        .quad 0xe82b3efdf7575dce
        .quad 0x25d56b5d201634c2
        .quad 0x3041c6bb04ed2b9b
        .quad 0x0ff2f2f9d956e148
        .quad 0xade797759f356b2e
        .quad 0x1a4698bb5f6c025c
        .quad 0x104bbd6814049a7b



        .quad 0x51f0fd3168f1ed67
        .quad 0x2c811dcdd86f3bc2
        .quad 0x44dc5c4304d2f2de
        .quad 0x5be8cc57092a7149
        .quad 0xa95d9a5fd67ff163
        .quad 0xe92be69d4cc75681
        .quad 0xb7f8024cde20f257
        .quad 0x204f2a20fb072df5
        .quad 0xc8143b3d30ebb079
        .quad 0x7589155abd652e30
        .quad 0x653c3c318f6d5c31
        .quad 0x2570fb17c279161f



        .quad 0x3efa367f2cb61575
        .quad 0xf5f96f761cd6026c
        .quad 0xe8c7142a65b52562
        .quad 0x3dcb65ea53030acd
        .quad 0x192ea9550bb8245a
        .quad 0xc8e6fba88f9050d1
        .quad 0x7986ea2d88a4c935
        .quad 0x241c5f91de018668
        .quad 0x28d8172940de6caa
        .quad 0x8fbf2cf022d9733a
        .quad 0x16d7fcdd235b01d1
        .quad 0x08420edd5fcdf0e5



        .quad 0xcdff20ab8362fa4a
        .quad 0x57e118d4e21a3e6e
        .quad 0xe3179617fc39e62b
        .quad 0x0d9a53efbc1769fd
        .quad 0x0358c34e04f410ce
        .quad 0xb6135b5a276e0685
        .quad 0x5d9670c7ebb91521
        .quad 0x04d654f321db889c
        .quad 0x5e7dc116ddbdb5d5
        .quad 0x2954deb68da5dd2d
        .quad 0x1cb608173334a292
        .quad 0x4a7a4f2618991ad7



        .quad 0xf4a718025fb15f95
        .quad 0x3df65f346b5c1b8f
        .quad 0xcdfcf08500e01112
        .quad 0x11b50c4cddd31848
        .quad 0x24c3b291af372a4b
        .quad 0x93da8270718147f2
        .quad 0xdd84856486899ef2
        .quad 0x4a96314223e0ee33
        .quad 0xa6e8274408a4ffd6
        .quad 0x738e177e9c1576d9
        .quad 0x773348b63d02b3f2
        .quad 0x4f4bce4dce6bcc51



        .quad 0xa71fce5ae2242584
        .quad 0x26ea725692f58a9e
        .quad 0xd21a09d71cea3cf4
        .quad 0x73fcdd14b71c01e6
        .quad 0x30e2616ec49d0b6f
        .quad 0xe456718fcaec2317
        .quad 0x48eb409bf26b4fa6
        .quad 0x3042cee561595f37
        .quad 0x427e7079449bac41
        .quad 0x855ae36dbce2310a
        .quad 0x4cae76215f841a7c
        .quad 0x389e740c9a9ce1d6



        .quad 0x64fcb3ae34dcb9ce
        .quad 0x97500323e348d0ad
        .quad 0x45b3f07d62c6381b
        .quad 0x61545379465a6788
        .quad 0xc9bd78f6570eac28
        .quad 0xe55b0b3227919ce1
        .quad 0x65fc3eaba19b91ed
        .quad 0x25c425e5d6263690
        .quad 0x3f3e06a6f1d7de6e
        .quad 0x3ef976278e062308
        .quad 0x8c14f6264e8a6c77
        .quad 0x6539a08915484759



        .quad 0xe9d21f74c3d2f773
        .quad 0xc150544125c46845
        .quad 0x624e5ce8f9b99e33
        .quad 0x11c5e4aac5cd186c
        .quad 0xddc4dbd414bb4a19
        .quad 0x19b2bc3c98424f8e
        .quad 0x48a89fd736ca7169
        .quad 0x0f65320ef019bd90
        .quad 0xd486d1b1cafde0c6
        .quad 0x4f3fe6e3163b5181
        .quad 0x59a8af0dfaf2939a
        .quad 0x4cabc7bdec33072a



        .quad 0x16faa8fb532f7428
        .quad 0xdbd42ea046a4e272
        .quad 0x5337653b8b9ea480
        .quad 0x4065947223973f03
        .quad 0xf7c0a19c1a54a044
        .quad 0x4a1c5e2477bd9fbb
        .quad 0xa6e3ca115af22972
        .quad 0x1819bb953f2e9e0d
        .quad 0x498fbb795e042e84
        .quad 0x7d0dd89a7698b714
        .quad 0x8bfb0ba427fe6295
        .quad 0x36ba82e721200524



        .quad 0xd60ecbb74245ec41
        .quad 0xfd9be89e34348716
        .quad 0xc9240afee42284de
        .quad 0x4472f648d0531db4
        .quad 0xc8d69d0a57274ed5
        .quad 0x45ba803260804b17
        .quad 0xdf3cda102255dfac
        .quad 0x77d221232709b339
        .quad 0x498a6d7064ad94d8
        .quad 0xa5b5c8fd9af62263
        .quad 0x8ca8ed0545c141f4
        .quad 0x2c63bec3662d358c



        .quad 0x7fe60d8bea787955
        .quad 0xb9dc117eb5f401b7
        .quad 0x91c7c09a19355cce
        .quad 0x22692ef59442bedf
        .quad 0x9a518b3a8586f8bf
        .quad 0x9ee71af6cbb196f0
        .quad 0xaa0625e6a2385cf2
        .quad 0x1deb2176ddd7c8d1
        .quad 0x8563d19a2066cf6c
        .quad 0x401bfd8c4dcc7cd7
        .quad 0xd976a6becd0d8f62
        .quad 0x67cfd773a278b05e



        .quad 0x8dec31faef3ee475
        .quad 0x99dbff8a9e22fd92
        .quad 0x512d11594e26cab1
        .quad 0x0cde561eec4310b9
        .quad 0x2d5fa9855a4e586a
        .quad 0x65f8f7a449beab7e
        .quad 0xaa074dddf21d33d3
        .quad 0x185cba721bcb9dee
        .quad 0x93869da3f4e3cb41
        .quad 0xbf0392f540f7977e
        .quad 0x026204fcd0463b83
        .quad 0x3ec91a769eec6eed



        .quad 0x1e9df75bf78166ad
        .quad 0x4dfda838eb0cd7af
        .quad 0xba002ed8c1eaf988
        .quad 0x13fedb3e11f33cfc
        .quad 0x0fad2fb7b0a3402f
        .quad 0x46615ecbfb69f4a8
        .quad 0xf745bcc8c5f8eaa6
        .quad 0x7a5fa8794a94e896
        .quad 0x52958faa13cd67a1
        .quad 0x965ee0818bdbb517
        .quad 0x16e58daa2e8845b3
        .quad 0x357d397d5499da8f



        .quad 0x1ebfa05fb0bace6c
        .quad 0xc934620c1caf9a1e
        .quad 0xcc771cc41d82b61a
        .quad 0x2d94a16aa5f74fec
        .quad 0x481dacb4194bfbf8
        .quad 0x4d77e3f1bae58299
        .quad 0x1ef4612e7d1372a0
        .quad 0x3a8d867e70ff69e1
        .quad 0x6f58cd5d55aff958
        .quad 0xba3eaa5c75567721
        .quad 0x75c123999165227d
        .quad 0x69be1343c2f2b35e



        .quad 0x0e091d5ee197c92a
        .quad 0x4f51019f2945119f
        .quad 0x143679b9f034e99c
        .quad 0x7d88112e4d24c696
        .quad 0x82bbbdac684b8de3
        .quad 0xa2f4c7d03fca0718
        .quad 0x337f92fbe096aaa8
        .quad 0x200d4d8c63587376
        .quad 0x208aed4b4893b32b
        .quad 0x3efbf23ebe59b964
        .quad 0xd762deb0dba5e507
        .quad 0x69607bd681bd9d94



        .quad 0xf6be021068de1ce1
        .quad 0xe8d518e70edcbc1f
        .quad 0xe3effdd01b5505a5
        .quad 0x35f63353d3ec3fd0
        .quad 0x3b7f3bd49323a902
        .quad 0x7c21b5566b2c6e53
        .quad 0xe5ba8ff53a7852a7
        .quad 0x28bc77a5838ece00
        .quad 0x63ba78a8e25d8036
        .quad 0x63651e0094333490
        .quad 0x48d82f20288ce532
        .quad 0x3a31abfa36b57524



        .quad 0x239e9624089c0a2e
        .quad 0xc748c4c03afe4738
        .quad 0x17dbed2a764fa12a
        .quad 0x639b93f0321c8582
        .quad 0xc08f788f3f78d289
        .quad 0xfe30a72ca1404d9f
        .quad 0xf2778bfccf65cc9d
        .quad 0x7ee498165acb2021
        .quad 0x7bd508e39111a1c3
        .quad 0x2b2b90d480907489
        .quad 0xe7d2aec2ae72fd19
        .quad 0x0edf493c85b602a6



        .quad 0xaecc8158599b5a68
        .quad 0xea574f0febade20e
        .quad 0x4fe41d7422b67f07
        .quad 0x403b92e3019d4fb4
        .quad 0x6767c4d284764113
        .quad 0xa090403ff7f5f835
        .quad 0x1c8fcffacae6bede
        .quad 0x04c00c54d1dfa369
        .quad 0x4dc22f818b465cf8
        .quad 0x71a0f35a1480eff8
        .quad 0xaee8bfad04c7d657
        .quad 0x355bb12ab26176f4



        .quad 0xa71e64cc7493bbf4
        .quad 0xe5bd84d9eca3b0c3
        .quad 0x0a6bc50cfa05e785
        .quad 0x0f9b8132182ec312
        .quad 0xa301dac75a8c7318
        .quad 0xed90039db3ceaa11
        .quad 0x6f077cbf3bae3f2d
        .quad 0x7518eaf8e052ad8e
        .quad 0xa48859c41b7f6c32
        .quad 0x0f2d60bcf4383298
        .quad 0x1815a929c9b1d1d9
        .quad 0x47c3871bbb1755c4



        .quad 0x5144539771ec4f48
        .quad 0xf805b17dc98c5d6e
        .quad 0xf762c11a47c3c66b
        .quad 0x00b89b85764699dc
        .quad 0xfbe65d50c85066b0
        .quad 0x62ecc4b0b3a299b0
        .quad 0xe53754ea441ae8e0
        .quad 0x08fea02ce8d48d5f
        .quad 0x824ddd7668deead0
        .quad 0xc86445204b685d23
        .quad 0xb514cfcd5d89d665
        .quad 0x473829a74f75d537



        .quad 0x82d2da754679c418
        .quad 0xe63bd7d8b2618df0
        .quad 0x355eef24ac47eb0a
        .quad 0x2078684c4833c6b4
        .quad 0x23d9533aad3902c9
        .quad 0x64c2ddceef03588f
        .quad 0x15257390cfe12fb4
        .quad 0x6c668b4d44e4d390
        .quad 0x3b48cf217a78820c
        .quad 0xf76a0ab281273e97
        .quad 0xa96c65a78c8eed7b
        .quad 0x7411a6054f8a433f



        .quad 0x4d659d32b99dc86d
        .quad 0x044cdc75603af115
        .quad 0xb34c712cdcc2e488
        .quad 0x7c136574fb8134ff
        .quad 0x579ae53d18b175b4
        .quad 0x68713159f392a102
        .quad 0x8455ecba1eef35f5
        .quad 0x1ec9a872458c398f
        .quad 0xb8e6a4d400a2509b
        .quad 0x9b81d7020bc882b4
        .quad 0x57e7cc9bf1957561
        .quad 0x3add88a5c7cd6460



        .quad 0xab895770b635dcf2
        .quad 0x02dfef6cf66c1fbc
        .quad 0x85530268beb6d187
        .quad 0x249929fccc879e74
        .quad 0x85c298d459393046
        .quad 0x8f7e35985ff659ec
        .quad 0x1d2ca22af2f66e3a
        .quad 0x61ba1131a406a720
        .quad 0xa3d0a0f116959029
        .quad 0x023b6b6cba7ebd89
        .quad 0x7bf15a3e26783307
        .quad 0x5620310cbbd8ece7



        .quad 0x528993434934d643
        .quad 0xb9dbf806a51222f5
        .quad 0x8f6d878fc3f41c22
        .quad 0x37676a2a4d9d9730
        .quad 0x6646b5f477e285d6
        .quad 0x40e8ff676c8f6193
        .quad 0xa6ec7311abb594dd
        .quad 0x7ec846f3658cec4d
        .quad 0x9b5e8f3f1da22ec7
        .quad 0x130f1d776c01cd13
        .quad 0x214c8fcfa2989fb8
        .quad 0x6daaf723399b9dd5



        .quad 0x591e4a5610628564
        .quad 0x2a4bb87ca8b4df34
        .quad 0xde2a2572e7a38e43
        .quad 0x3cbdabd9fee5046e
        .quad 0x81aebbdd2cd13070
        .quad 0x962e4325f85a0e9e
        .quad 0xde9391aacadffecb
        .quad 0x53177fda52c230e6
        .quad 0xa7bc970650b9de79
        .quad 0x3d12a7fbc301b59b
        .quad 0x02652e68d36ae38c
        .quad 0x79d739835a6199dc



        .quad 0xd9354df64131c1bd
        .quad 0x758094a186ec5822
        .quad 0x4464ee12e459f3c2
        .quad 0x6c11fce4cb133282
        .quad 0x21c9d9920d591737
        .quad 0x9bea41d2e9b46cd6
        .quad 0xe20e84200d89bfca
        .quad 0x79d99f946eae5ff8
        .quad 0xf17b483568673205
        .quad 0x387deae83caad96c
        .quad 0x61b471fd56ffe386
        .quad 0x31741195b745a599



        .quad 0xe8d10190b77a360b
        .quad 0x99b983209995e702
        .quad 0xbd4fdff8fa0247aa
        .quad 0x2772e344e0d36a87
        .quad 0x17f8ba683b02a047
        .quad 0x50212096feefb6c8
        .quad 0x70139be21556cbe2
        .quad 0x203e44a11d98915b
        .quad 0xd6863eba37b9e39f
        .quad 0x105bc169723b5a23
        .quad 0x104f6459a65c0762
        .quad 0x567951295b4d38d4



        .quad 0x535fd60613037524
        .quad 0xe210adf6b0fbc26a
        .quad 0xac8d0a9b23e990ae
        .quad 0x47204d08d72fdbf9
        .quad 0x07242eb30d4b497f
        .quad 0x1ef96306b9bccc87
        .quad 0x37950934d8116f45
        .quad 0x05468d6201405b04
        .quad 0x00f565a9f93267de
        .quad 0xcecfd78dc0d58e8a
        .quad 0xa215e2dcf318e28e
        .quad 0x4599ee919b633352



        .quad 0xd3c220ca70e0e76b
        .quad 0xb12bea58ea9f3094
        .quad 0x294ddec8c3271282
        .quad 0x0c3539e1a1d1d028
        .quad 0xac746d6b861ae579
        .quad 0x31ab0650f6aea9dc
        .quad 0x241d661140256d4c
        .quad 0x2f485e853d21a5de
        .quad 0x329744839c0833f3
        .quad 0x6fe6257fd2abc484
        .quad 0x5327d1814b358817
        .quad 0x65712585893fe9bc



        .quad 0x9c102fb732a61161
        .quad 0xe48e10dd34d520a8
        .quad 0x365c63546f9a9176
        .quad 0x32f6fe4c046f6006
        .quad 0x81c29f1bd708ee3f
        .quad 0xddcb5a05ae6407d0
        .quad 0x97aec1d7d2a3eba7
        .quad 0x1590521a91d50831
        .quad 0x40a3a11ec7910acc
        .quad 0x9013dff8f16d27ae
        .quad 0x1a9720d8abb195d4
        .quad 0x1bb9fe452ea98463



        .quad 0xe9d1d950b3d54f9e
        .quad 0x2d5f9cbee00d33c1
        .quad 0x51c2c656a04fc6ac
        .quad 0x65c091ee3c1cbcc9
        .quad 0xcf5e6c95cc36747c
        .quad 0x294201536b0bc30d
        .quad 0x453ac67cee797af0
        .quad 0x5eae6ab32a8bb3c9
        .quad 0x7083661114f118ea
        .quad 0x2b37b87b94349cad
        .quad 0x7273f51cb4e99f40
        .quad 0x78a2a95823d75698



        .quad 0xa2b072e95c8c2ace
        .quad 0x69cffc96651e9c4b
        .quad 0x44328ef842e7b42b
        .quad 0x5dd996c122aadeb3
        .quad 0xb4f23c425ef83207
        .quad 0xabf894d3c9a934b5
        .quad 0xd0708c1339fd87f7
        .quad 0x1876789117166130
        .quad 0x925b5ef0670c507c
        .quad 0x819bc842b93c33bf
        .quad 0x10792e9a70dd003f
        .quad 0x59ad4b7a6e28dc74



        .quad 0x5f3a7562eb3dbe47
        .quad 0xf7ea38548ebda0b8
        .quad 0x00c3e53145747299
        .quad 0x1304e9e71627d551
        .quad 0x583b04bfacad8ea2
        .quad 0x29b743e8148be884
        .quad 0x2b1e583b0810c5db
        .quad 0x2b5449e58eb3bbaa
        .quad 0x789814d26adc9cfe
        .quad 0x3c1bab3f8b48dd0b
        .quad 0xda0fe1fff979c60a
        .quad 0x4468de2d7c2dd693



        .quad 0x51bb355e9419469e
        .quad 0x33e6dc4c23ddc754
        .quad 0x93a5b6d6447f9962
        .quad 0x6cce7c6ffb44bd63
        .quad 0x4b9ad8c6f86307ce
        .quad 0x21113531435d0c28
        .quad 0xd4a866c5657a772c
        .quad 0x5da6427e63247352
        .quad 0x1a94c688deac22ca
        .quad 0xb9066ef7bbae1ff8
        .quad 0x88ad8c388d59580f
        .quad 0x58f29abfe79f2ca8



        .quad 0xe90ecfab8de73e68
        .quad 0x54036f9f377e76a5
        .quad 0xf0495b0bbe015982
        .quad 0x577629c4a7f41e36
        .quad 0x4b5a64bf710ecdf6
        .quad 0xb14ce538462c293c
        .quad 0x3643d056d50b3ab9
        .quad 0x6af93724185b4870
        .quad 0x3220024509c6a888
        .quad 0xd2e036134b558973
        .quad 0x83e236233c33289f
        .quad 0x701f25bb0caec18f



        .quad 0xc3a8b0f8e4616ced
        .quad 0xf700660e9e25a87d
        .quad 0x61e3061ff4bca59c
        .quad 0x2e0c92bfbdc40be9
        .quad 0x9d18f6d97cbec113
        .quad 0x844a06e674bfdbe4
        .quad 0x20f5b522ac4e60d6
        .quad 0x720a5bc050955e51
        .quad 0x0c3f09439b805a35
        .quad 0xe84e8b376242abfc
        .quad 0x691417f35c229346
        .quad 0x0e9b9cbb144ef0ec



        .quad 0xfbbad48ffb5720ad
        .quad 0xee81916bdbf90d0e
        .quad 0xd4813152635543bf
        .quad 0x221104eb3f337bd8
        .quad 0x8dee9bd55db1beee
        .quad 0xc9c3ab370a723fb9
        .quad 0x44a8f1bf1c68d791
        .quad 0x366d44191cfd3cde
        .quad 0x9e3c1743f2bc8c14
        .quad 0x2eda26fcb5856c3b
        .quad 0xccb82f0e68a7fb97
        .quad 0x4167a4e6bc593244



        .quad 0x643b9d2876f62700
        .quad 0x5d1d9d400e7668eb
        .quad 0x1b4b430321fc0684
        .quad 0x7938bb7e2255246a
        .quad 0xc2be2665f8ce8fee
        .quad 0xe967ff14e880d62c
        .quad 0xf12e6e7e2f364eee
        .quad 0x34b33370cb7ed2f6
        .quad 0xcdc591ee8681d6cc
        .quad 0xce02109ced85a753
        .quad 0xed7485c158808883
        .quad 0x1176fc6e2dfe65e4



        .quad 0xb4af6cd05b9c619b
        .quad 0x2ddfc9f4b2a58480
        .quad 0x3d4fa502ebe94dc4
        .quad 0x08fc3a4c677d5f34
        .quad 0xdb90e28949770eb8
        .quad 0x98fbcc2aacf440a3
        .quad 0x21354ffeded7879b
        .quad 0x1f6a3e54f26906b6
        .quad 0x60a4c199d30734ea
        .quad 0x40c085b631165cd6
        .quad 0xe2333e23f7598295
        .quad 0x4f2fad0116b900d1



        .quad 0x44beb24194ae4e54
        .quad 0x5f541c511857ef6c
        .quad 0xa61e6b2d368d0498
        .quad 0x445484a4972ef7ab
        .quad 0x962cd91db73bb638
        .quad 0xe60577aafc129c08
        .quad 0x6f619b39f3b61689
        .quad 0x3451995f2944ee81
        .quad 0x9152fcd09fea7d7c
        .quad 0x4a816c94b0935cf6
        .quad 0x258e9aaa47285c40
        .quad 0x10b89ca6042893b7



        .quad 0x9b2a426e3b646025
        .quad 0x32127190385ce4cf
        .quad 0xa25cffc2dd6dea45
        .quad 0x06409010bea8de75
        .quad 0xd67cded679d34aa0
        .quad 0xcc0b9ec0cc4db39f
        .quad 0xa535a456e35d190f
        .quad 0x2e05d9eaf61f6fef
        .quad 0xc447901ad61beb59
        .quad 0x661f19bce5dc880a
        .quad 0x24685482b7ca6827
        .quad 0x293c778cefe07f26



        .quad 0x86809e7007069096
        .quad 0xaad75b15e4e50189
        .quad 0x07f35715a21a0147
        .quad 0x0487f3f112815d5e
        .quad 0x16c795d6a11ff200
        .quad 0xcb70d0e2b15815c9
        .quad 0x89f293209b5395b5
        .quad 0x50b8c2d031e47b4f
        .quad 0x48350c08068a4962
        .quad 0x6ffdd05351092c9a
        .quad 0x17af4f4aaf6fc8dd
        .quad 0x4b0553b53cdba58b



        .quad 0x9c65fcbe1b32ff79
        .quad 0xeb75ea9f03b50f9b
        .quad 0xfced2a6c6c07e606
        .quad 0x35106cd551717908
        .quad 0xbf05211b27c152d4
        .quad 0x5ec26849bd1af639
        .quad 0x5e0b2caa8e6fab98
        .quad 0x054c8bdd50bd0840
        .quad 0x38a0b12f1dcf073d
        .quad 0x4b60a8a3b7f6a276
        .quad 0xfed5ac25d3404f9a
        .quad 0x72e82d5e5505c229



        .quad 0x6b0b697ff0d844c8
        .quad 0xbb12f85cd979cb49
        .quad 0xd2a541c6c1da0f1f
        .quad 0x7b7c242958ce7211
        .quad 0x00d9cdfd69771d02
        .quad 0x410276cd6cfbf17e
        .quad 0x4c45306c1cb12ec7
        .quad 0x2857bf1627500861
        .quad 0x9f21903f0101689e
        .quad 0xd779dfd3bf861005
        .quad 0xa122ee5f3deb0f1b
        .quad 0x510df84b485a00d4



        .quad 0xa54133bb9277a1fa
        .quad 0x74ec3b6263991237
        .quad 0x1a3c54dc35d2f15a
        .quad 0x2d347144e482ba3a
        .quad 0x24b3c887c70ac15e
        .quad 0xb0f3a557fb81b732
        .quad 0x9b2cde2fe578cc1b
        .quad 0x4cf7ed0703b54f8e
        .quad 0x6bd47c6598fbee0f
        .quad 0x9e4733e2ab55be2d
        .quad 0x1093f624127610c5
        .quad 0x4e05e26ad0a1eaa4



        .quad 0xda9b6b624b531f20
        .quad 0x429a760e77509abb
        .quad 0xdbe9f522e823cb80
        .quad 0x618f1856880c8f82
        .quad 0x1833c773e18fe6c0
        .quad 0xe3c4711ad3c87265
        .quad 0x3bfd3c4f0116b283
        .quad 0x1955875eb4cd4db8
        .quad 0x6da6de8f0e399799
        .quad 0x7ad61aa440fda178
        .quad 0xb32cd8105e3563dd
        .quad 0x15f6beae2ae340ae



        .quad 0x862bcb0c31ec3a62
        .quad 0x810e2b451138f3c2
        .quad 0x788ec4b839dac2a4
        .quad 0x28f76867ae2a9281
        .quad 0xba9a0f7b9245e215
        .quad 0xf368612dd98c0dbb
        .quad 0x2e84e4cbf220b020
        .quad 0x6ba92fe962d90eda
        .quad 0x3e4df9655884e2aa
        .quad 0xbd62fbdbdbd465a5
        .quad 0xd7596caa0de9e524
        .quad 0x6e8042ccb2b1b3d7



        .quad 0xf10d3c29ce28ca6e
        .quad 0xbad34540fcb6093d
        .quad 0xe7426ed7a2ea2d3f
        .quad 0x08af9d4e4ff298b9
        .quad 0x1530653616521f7e
        .quad 0x660d06b896203dba
        .quad 0x2d3989bc545f0879
        .quad 0x4b5303af78ebd7b0
        .quad 0x72f8a6c3bebcbde8
        .quad 0x4f0fca4adc3a8e89
        .quad 0x6fa9d4e8c7bfdf7a
        .quad 0x0dcf2d679b624eb7



        .quad 0x3d5947499718289c
        .quad 0x12ebf8c524533f26
        .quad 0x0262bfcb14c3ef15
        .quad 0x20b878d577b7518e
        .quad 0x753941be5a45f06e
        .quad 0xd07caeed6d9c5f65
        .quad 0x11776b9c72ff51b6
        .quad 0x17d2d1d9ef0d4da9
        .quad 0x27f2af18073f3e6a
        .quad 0xfd3fe519d7521069
        .quad 0x22e3b72c3ca60022
        .quad 0x72214f63cc65c6a7



        .quad 0xb4e37f405307a693
        .quad 0xaba714d72f336795
        .quad 0xd6fbd0a773761099
        .quad 0x5fdf48c58171cbc9
        .quad 0x1d9db7b9f43b29c9
        .quad 0xd605824a4f518f75
        .quad 0xf2c072bd312f9dc4
        .quad 0x1f24ac855a1545b0
        .quad 0x24d608328e9505aa
        .quad 0x4748c1d10c1420ee
        .quad 0xc7ffe45c06fb25a2
        .quad 0x00ba739e2ae395e6



        .quad 0x592e98de5c8790d6
        .quad 0xe5bfb7d345c2a2df
        .quad 0x115a3b60f9b49922
        .quad 0x03283a3e67ad78f3
        .quad 0xae4426f5ea88bb26
        .quad 0x360679d984973bfb
        .quad 0x5c9f030c26694e50
        .quad 0x72297de7d518d226
        .quad 0x48241dc7be0cb939
        .quad 0x32f19b4d8b633080
        .quad 0xd3dfc90d02289308
        .quad 0x05e1296846271945



        .quad 0xba82eeb32d9c495a
        .quad 0xceefc8fcf12bb97c
        .quad 0xb02dabae93b5d1e0
        .quad 0x39c00c9c13698d9b
        .quad 0xadbfbbc8242c4550
        .quad 0xbcc80cecd03081d9
        .quad 0x843566a6f5c8df92
        .quad 0x78cf25d38258ce4c
        .quad 0x15ae6b8e31489d68
        .quad 0xaa851cab9c2bf087
        .quad 0xc9a75a97f04efa05
        .quad 0x006b52076b3ff832



        .quad 0x29e0cfe19d95781c
        .quad 0xb681df18966310e2
        .quad 0x57df39d370516b39
        .quad 0x4d57e3443bc76122
        .quad 0xf5cb7e16b9ce082d
        .quad 0x3407f14c417abc29
        .quad 0xd4b36bce2bf4a7ab
        .quad 0x7de2e9561a9f75ce
        .quad 0xde70d4f4b6a55ecb
        .quad 0x4801527f5d85db99
        .quad 0xdbc9c440d3ee9a81
        .quad 0x6b2a90af1a6029ed



        .quad 0x6923f4fc9ae61e97
        .quad 0x5735281de03f5fd1
        .quad 0xa764ae43e6edd12d
        .quad 0x5fd8f4e9d12d3e4a
        .quad 0x77ebf3245bb2d80a
        .quad 0xd8301b472fb9079b
        .quad 0xc647e6f24cee7333
        .quad 0x465812c8276c2109
        .quad 0x4d43beb22a1062d9
        .quad 0x7065fb753831dc16
        .quad 0x180d4a7bde2968d7
        .quad 0x05b32c2b1cb16790



        .quad 0xc8c05eccd24da8fd
        .quad 0xa1cf1aac05dfef83
        .quad 0xdbbeeff27df9cd61
        .quad 0x3b5556a37b471e99
        .quad 0xf7fca42c7ad58195
        .quad 0x3214286e4333f3cc
        .quad 0xb6c29d0d340b979d
        .quad 0x31771a48567307e1
        .quad 0x32b0c524e14dd482
        .quad 0xedb351541a2ba4b6
        .quad 0xa3d16048282b5af3
        .quad 0x4fc079d27a7336eb



        .quad 0x51c938b089bf2f7f
        .quad 0x2497bd6502dfe9a7
        .quad 0xffffc09c7880e453
        .quad 0x124567cecaf98e92
        .quad 0xdc348b440c86c50d
        .quad 0x1337cbc9cc94e651
        .quad 0x6422f74d643e3cb9
        .quad 0x241170c2bae3cd08
        .quad 0x3ff9ab860ac473b4
        .quad 0xf0911dee0113e435
        .quad 0x4ae75060ebc6c4af
        .quad 0x3f8612966c87000d



        .quad 0x0c9c5303f7957be4
        .quad 0xa3c31a20e085c145
        .quad 0xb0721d71d0850050
        .quad 0x0aba390eab0bf2da
        .quad 0x529fdffe638c7bf3
        .quad 0xdf2b9e60388b4995
        .quad 0xe027b34f1bad0249
        .quad 0x7bc92fc9b9fa74ed
        .quad 0x9f97ef2e801ad9f9
        .quad 0x83697d5479afda3a
        .quad 0xe906b3ffbd596b50
        .quad 0x02672b37dd3fb8e0



        .quad 0x48b2ca8b260885e4
        .quad 0xa4286bec82b34c1c
        .quad 0x937e1a2617f58f74
        .quad 0x741d1fcbab2ca2a5
        .quad 0xee9ba729398ca7f5
        .quad 0xeb9ca6257a4849db
        .quad 0x29eb29ce7ec544e1
        .quad 0x232ca21ef736e2c8
        .quad 0xbf61423d253fcb17
        .quad 0x08803ceafa39eb14
        .quad 0xf18602df9851c7af
        .quad 0x0400f3a049e3414b



        .quad 0xabce0476ba61c55b
        .quad 0x36a3d6d7c4d39716
        .quad 0x6eb259d5e8d82d09
        .quad 0x0c9176e984d756fb
        .quad 0x2efba412a06e7b06
        .quad 0x146785452c8d2560
        .quad 0xdf9713ebd67a91c7
        .quad 0x32830ac7157eadf3
        .quad 0x0e782a7ab73769e8
        .quad 0x04a05d7875b18e2c
        .quad 0x29525226ebcceae1
        .quad 0x0d794f8383eba820



        .quad 0xff35f5cb9e1516f4
        .quad 0xee805bcf648aae45
        .quad 0xf0d73c2bb93a9ef3
        .quad 0x097b0bf22092a6c2
        .quad 0x7be44ce7a7a2e1ac
        .quad 0x411fd93efad1b8b7
        .quad 0x1734a1d70d5f7c9b
        .quad 0x0d6592233127db16
        .quad 0xc48bab1521a9d733
        .quad 0xa6c2eaead61abb25
        .quad 0x625c6c1cc6cb4305
        .quad 0x7fc90fea93eb3a67



        .quad 0x0408f1fe1f5c5926
        .quad 0x1a8f2f5e3b258bf4
        .quad 0x40a951a2fdc71669
        .quad 0x6598ee93c98b577e
        .quad 0xc527deb59c7cb23d
        .quad 0x955391695328404e
        .quad 0xd64392817ccf2c7a
        .quad 0x6ce97dabf7d8fa11
        .quad 0x25b5a8e50ef7c48f
        .quad 0xeb6034116f2ce532
        .quad 0xc5e75173e53de537
        .quad 0x73119fa08c12bb03



        .quad 0xed30129453f1a4cb
        .quad 0xbce621c9c8f53787
        .quad 0xfacb2b1338bee7b9
        .quad 0x3025798a9ea8428c
        .quad 0x7845b94d21f4774d
        .quad 0xbf62f16c7897b727
        .quad 0x671857c03c56522b
        .quad 0x3cd6a85295621212
        .quad 0x3fecde923aeca999
        .quad 0xbdaa5b0062e8c12f
        .quad 0x67b99dfc96988ade
        .quad 0x3f52c02852661036



        .quad 0xffeaa48e2a1351c6
        .quad 0x28624754fa7f53d7
        .quad 0x0b5ba9e57582ddf1
        .quad 0x60c0104ba696ac59
        .quad 0x9258bf99eec416c6
        .quad 0xac8a5017a9d2f671
        .quad 0x629549ab16dea4ab
        .quad 0x05d0e85c99091569
        .quad 0x051de020de9cbe97
        .quad 0xfa07fc56b50bcf74
        .quad 0x378cec9f0f11df65
        .quad 0x36853c69ab96de4d



        .quad 0x36d9b8de78f39b2d
        .quad 0x7f42ed71a847b9ec
        .quad 0x241cd1d679bd3fde
        .quad 0x6a704fec92fbce6b
        .quad 0x4433c0b0fac5e7be
        .quad 0x724bae854c08dcbe
        .quad 0xf1f24cc446978f9b
        .quad 0x4a0aff6d62825fc8
        .quad 0xe917fb9e61095301
        .quad 0xc102df9402a092f8
        .quad 0xbf09e2f5fa66190b
        .quad 0x681109bee0dcfe37



        .quad 0x559a0cc9782a0dde
        .quad 0x551dcdb2ea718385
        .quad 0x7f62865b31ef238c
        .quad 0x504aa7767973613d
        .quad 0x9c18fcfa36048d13
        .quad 0x29159db373899ddd
        .quad 0xdc9f350b9f92d0aa
        .quad 0x26f57eee878a19d4
        .quad 0x0cab2cd55687efb1
        .quad 0x5180d162247af17b
        .quad 0x85c15a344f5a2467
        .quad 0x4041943d9dba3069



        .quad 0xc3c0eeba43ebcc96
        .quad 0x8d749c9c26ea9caf
        .quad 0xd9fa95ee1c77ccc6
        .quad 0x1420a1d97684340f
        .quad 0x4b217743a26caadd
        .quad 0x47a6b424648ab7ce
        .quad 0xcb1d4f7a03fbc9e3
        .quad 0x12d931429800d019
        .quad 0x00c67799d337594f
        .quad 0x5e3c5140b23aa47b
        .quad 0x44182854e35ff395
        .quad 0x1b4f92314359a012



        .quad 0x3e5c109d89150951
        .quad 0x39cefa912de9696a
        .quad 0x20eae43f975f3020
        .quad 0x239b572a7f132dae
        .quad 0x33cf3030a49866b1
        .quad 0x251f73d2215f4859
        .quad 0xab82aa4051def4f6
        .quad 0x5ff191d56f9a23f6
        .quad 0x819ed433ac2d9068
        .quad 0x2883ab795fc98523
        .quad 0xef4572805593eb3d
        .quad 0x020c526a758f36cb



        .quad 0x779834f89ed8dbbc
        .quad 0xc8f2aaf9dc7ca46c
        .quad 0xa9524cdca3e1b074
        .quad 0x02aacc4615313877
        .quad 0xe931ef59f042cc89
        .quad 0x2c589c9d8e124bb6
        .quad 0xadc8e18aaec75997
        .quad 0x452cfe0a5602c50c
        .quad 0x86a0f7a0647877df
        .quad 0xbbc464270e607c9f
        .quad 0xab17ea25f1fb11c9
        .quad 0x4cfb7d7b304b877b



        .quad 0x72b43d6cb89b75fe
        .quad 0x54c694d99c6adc80
        .quad 0xb8c3aa373ee34c9f
        .quad 0x14b4622b39075364
        .quad 0xe28699c29789ef12
        .quad 0x2b6ecd71df57190d
        .quad 0xc343c857ecc970d0
        .quad 0x5b1d4cbc434d3ac5
        .quad 0xb6fb2615cc0a9f26
        .quad 0x3a4f0e2bb88dcce5
        .quad 0x1301498b3369a705
        .quad 0x2f98f71258592dd1



        .quad 0x0c94a74cb50f9e56
        .quad 0x5b1ff4a98e8e1320
        .quad 0x9a2acc2182300f67
        .quad 0x3a6ae249d806aaf9
        .quad 0x2e12ae444f54a701
        .quad 0xfcfe3ef0a9cbd7de
        .quad 0xcebf890d75835de0
        .quad 0x1d8062e9e7614554
        .quad 0x657ada85a9907c5a
        .quad 0x1a0ea8b591b90f62
        .quad 0x8d0e1dfbdf34b4e9
        .quad 0x298b8ce8aef25ff3



        .quad 0x2a927953eff70cb2
        .quad 0x4b89c92a79157076
        .quad 0x9418457a30a7cf6a
        .quad 0x34b8a8404d5ce485
        .quad 0x837a72ea0a2165de
        .quad 0x3fab07b40bcf79f6
        .quad 0x521636c77738ae70
        .quad 0x6ba6271803a7d7dc
        .quad 0xc26eecb583693335
        .quad 0xd5a813df63b5fefd
        .quad 0xa293aa9aa4b22573
        .quad 0x71d62bdd465e1c6a



        .quad 0x6533cc28d378df80
        .quad 0xf6db43790a0fa4b4
        .quad 0xe3645ff9f701da5a
        .quad 0x74d5f317f3172ba4
        .quad 0xcd2db5dab1f75ef5
        .quad 0xd77f95cf16b065f5
        .quad 0x14571fea3f49f085
        .quad 0x1c333621262b2b3d
        .quad 0xa86fe55467d9ca81
        .quad 0x398b7c752b298c37
        .quad 0xda6d0892e3ac623b
        .quad 0x4aebcc4547e9d98c



        .quad 0x53175a7205d21a77
        .quad 0xb0c04422d3b934d4
        .quad 0xadd9f24bdd5deadc
        .quad 0x074f46e69f10ff8c
        .quad 0x0de9b204a059a445
        .quad 0xe15cb4aa4b17ad0f
        .quad 0xe1bbec521f79c557
        .quad 0x2633f1b9d071081b
        .quad 0xc1fb4177018b9910
        .quad 0xa6ea20dc6c0fe140
        .quad 0xd661f3e74354c6ff
        .quad 0x5ecb72e6f1a3407a



        .quad 0xa515a31b2259fb4e
        .quad 0x0960f3972bcac52f
        .quad 0xedb52fec8d3454cb
        .quad 0x382e2720c476c019
        .quad 0xfeeae106e8e86997
        .quad 0x9863337f98d09383
        .quad 0x9470480eaa06ebef
        .quad 0x038b6898d4c5c2d0
        .quad 0xf391c51d8ace50a6
        .quad 0x3142d0b9ae2d2948
        .quad 0xdb4d5a1a7f24ca80
        .quad 0x21aeba8b59250ea8



        .quad 0x24f13b34cf405530
        .quad 0x3c44ea4a43088af7
        .quad 0x5dd5c5170006a482
        .quad 0x118eb8f8890b086d
        .quad 0x53853600f0087f23
        .quad 0x4c461879da7d5784
        .quad 0x6af303deb41f6860
        .quad 0x0a3c16c5c27c18ed
        .quad 0x17e49c17cc947f3d
        .quad 0xccc6eda6aac1d27b
        .quad 0xdf6092ceb0f08e56
        .quad 0x4909b3e22c67c36b



        .quad 0x9c9c85ea63fe2e89
        .quad 0xbe1baf910e9412ec
        .quad 0x8f7baa8a86fbfe7b
        .quad 0x0fb17f9fef968b6c
        .quad 0x59a16676706ff64e
        .quad 0x10b953dd0d86a53d
        .quad 0x5848e1e6ce5c0b96
        .quad 0x2d8b78e712780c68
        .quad 0x79d5c62eafc3902b
        .quad 0x773a215289e80728
        .quad 0xc38ae640e10120b9
        .quad 0x09ae23717b2b1a6d



        .quad 0xbb6a192a4e4d083c
        .quad 0x34ace0630029e192
        .quad 0x98245a59aafabaeb
        .quad 0x6d9c8a9ada97faac
        .quad 0x10ab8fa1ad32b1d0
        .quad 0xe9aced1be2778b24
        .quad 0xa8856bc0373de90f
        .quad 0x66f35ddddda53996
        .quad 0xd27d9afb24997323
        .quad 0x1bb7e07ef6f01d2e
        .quad 0x2ba7472df52ecc7f
        .quad 0x03019b4f646f9dc8



        .quad 0x04a186b5565345cd
        .quad 0xeee76610bcc4116a
        .quad 0x689c73b478fb2a45
        .quad 0x387dcbff65697512
        .quad 0xaf09b214e6b3dc6b
        .quad 0x3f7573b5ad7d2f65
        .quad 0xd019d988100a23b0
        .quad 0x392b63a58b5c35f7
        .quad 0x4093addc9c07c205
        .quad 0xc565be15f532c37e
        .quad 0x63dbecfd1583402a
        .quad 0x61722b4aef2e032e



        .quad 0x0012aafeecbd47af
        .quad 0x55a266fb1cd46309
        .quad 0xf203eb680967c72c
        .quad 0x39633944ca3c1429
        .quad 0xd6b07a5581cb0e3c
        .quad 0x290ff006d9444969
        .quad 0x08680b6a16dcda1f
        .quad 0x5568d2b75a06de59
        .quad 0x8d0cb88c1b37cfe1
        .quad 0x05b6a5a3053818f3
        .quad 0xf2e9bc04b787d959
        .quad 0x6beba1249add7f64



        .quad 0x1d06005ca5b1b143
        .quad 0x6d4c6bb87fd1cda2
        .quad 0x6ef5967653fcffe7
        .quad 0x097c29e8c1ce1ea5
        .quad 0x5c3cecb943f5a53b
        .quad 0x9cc9a61d06c08df2
        .quad 0xcfba639a85895447
        .quad 0x5a845ae80df09fd5
        .quad 0x4ce97dbe5deb94ca
        .quad 0x38d0a4388c709c48
        .quad 0xc43eced4a169d097
        .quad 0x0a1249fff7e587c3



        .quad 0x12f0071b276d01c9
        .quad 0xe7b8bac586c48c70
        .quad 0x5308129b71d6fba9
        .quad 0x5d88fbf95a3db792
        .quad 0x0b408d9e7354b610
        .quad 0x806b32535ba85b6e
        .quad 0xdbe63a034a58a207
        .quad 0x173bd9ddc9a1df2c
        .quad 0x2b500f1efe5872df
        .quad 0x58d6582ed43918c1
        .quad 0xe6ed278ec9673ae0
        .quad 0x06e1cd13b19ea319



        .quad 0x40d0ad516f166f23
        .quad 0x118e32931fab6abe
        .quad 0x3fe35e14a04d088e
        .quad 0x3080603526e16266
        .quad 0x472baf629e5b0353
        .quad 0x3baa0b90278d0447
        .quad 0x0c785f469643bf27
        .quad 0x7f3a6a1a8d837b13
        .quad 0xf7e644395d3d800b
        .quad 0x95a8d555c901edf6
        .quad 0x68cd7830592c6339
        .quad 0x30d0fded2e51307e



        .quad 0xe0594d1af21233b3
        .quad 0x1bdbe78ef0cc4d9c
        .quad 0x6965187f8f499a77
        .quad 0x0a9214202c099868
        .quad 0x9cb4971e68b84750
        .quad 0xa09572296664bbcf
        .quad 0x5c8de72672fa412b
        .quad 0x4615084351c589d9
        .quad 0xbc9019c0aeb9a02e
        .quad 0x55c7110d16034cae
        .quad 0x0e6df501659932ec
        .quad 0x3bca0d2895ca5dfe



        .quad 0x40f031bc3c5d62a4
        .quad 0x19fc8b3ecff07a60
        .quad 0x98183da2130fb545
        .quad 0x5631deddae8f13cd
        .quad 0x9c688eb69ecc01bf
        .quad 0xf0bc83ada644896f
        .quad 0xca2d955f5f7a9fe2
        .quad 0x4ea8b4038df28241
        .quad 0x2aed460af1cad202
        .quad 0x46305305a48cee83
        .quad 0x9121774549f11a5f
        .quad 0x24ce0930542ca463



        .quad 0x1fe890f5fd06c106
        .quad 0xb5c468355d8810f2
        .quad 0x827808fe6e8caf3e
        .quad 0x41d4e3c28a06d74b
        .quad 0x3fcfa155fdf30b85
        .quad 0xd2f7168e36372ea4
        .quad 0xb2e064de6492f844
        .quad 0x549928a7324f4280
        .quad 0xf26e32a763ee1a2e
        .quad 0xae91e4b7d25ffdea
        .quad 0xbc3bd33bd17f4d69
        .quad 0x491b66dec0dcff6a



        .quad 0x98f5b13dc7ea32a7
        .quad 0xe3d5f8cc7e16db98
        .quad 0xac0abf52cbf8d947
        .quad 0x08f338d0c85ee4ac
        .quad 0x75f04a8ed0da64a1
        .quad 0xed222caf67e2284b
        .quad 0x8234a3791f7b7ba4
        .quad 0x4cf6b8b0b7018b67
        .quad 0xc383a821991a73bd
        .quad 0xab27bc01df320c7a
        .quad 0xc13d331b84777063
        .quad 0x530d4a82eb078a99



        .quad 0x004c3630e1f94825
        .quad 0x7e2d78268cab535a
        .quad 0xc7482323cc84ff8b
        .quad 0x65ea753f101770b9
        .quad 0x6d6973456c9abf9e
        .quad 0x257fb2fc4900a880
        .quad 0x2bacf412c8cfb850
        .quad 0x0db3e7e00cbfbd5b
        .quad 0x3d66fc3ee2096363
        .quad 0x81d62c7f61b5cb6b
        .quad 0x0fbe044213443b1a
        .quad 0x02a4ec1921e1a1db



        .quad 0x5ce6259a3b24b8a2
        .quad 0xb8577acc45afa0b8
        .quad 0xcccbe6e88ba07037
        .quad 0x3d143c51127809bf
        .quad 0xf5c86162f1cf795f
        .quad 0x118c861926ee57f2
        .quad 0x172124851c063578
        .quad 0x36d12b5dec067fcf
        .quad 0x126d279179154557
        .quad 0xd5e48f5cfc783a0a
        .quad 0x36bdb6e8df179bac
        .quad 0x2ef517885ba82859



        .quad 0x88bd438cd11e0d4a
        .quad 0x30cb610d43ccf308
        .quad 0xe09a0e3791937bcc
        .quad 0x4559135b25b1720c
        .quad 0x1ea436837c6da1e9
        .quad 0xf9c189af1fb9bdbe
        .quad 0x303001fcce5dd155
        .quad 0x28a7c99ebc57be52
        .quad 0xb8fd9399e8d19e9d
        .quad 0x908191cb962423ff
        .quad 0xb2b948d747c742a3
        .quad 0x37f33226d7fb44c4



        .quad 0x0dae8767b55f6e08
        .quad 0x4a43b3b35b203a02
        .quad 0xe3725a6e80af8c79
        .quad 0x0f7a7fd1705fa7a3
        .quad 0x33912553c821b11d
        .quad 0x66ed42c241e301df
        .quad 0x066fcc11104222fd
        .quad 0x307a3b41c192168f
        .quad 0x8eeb5d076eb55ce0
        .quad 0x2fc536bfaa0d925a
        .quad 0xbe81830fdcb6c6e8
        .quad 0x556c7045827baf52



        .quad 0x8e2b517302e9d8b7
        .quad 0xe3e52269248714e8
        .quad 0xbd4fbd774ca960b5
        .quad 0x6f4b4199c5ecada9
        .quad 0xb94b90022bf44406
        .quad 0xabd4237eff90b534
        .quad 0x7600a960faf86d3a
        .quad 0x2f45abdac2322ee3
        .quad 0x61af4912c8ef8a6a
        .quad 0xe58fa4fe43fb6e5e
        .quad 0xb5afcc5d6fd427cf
        .quad 0x6a5393281e1e11eb



        .quad 0xf3da5139a5d1ee89
        .quad 0x8145457cff936988
        .quad 0x3f622fed00e188c4
        .quad 0x0f513815db8b5a3d
        .quad 0x0fff04fe149443cf
        .quad 0x53cac6d9865cddd7
        .quad 0x31385b03531ed1b7
        .quad 0x5846a27cacd1039d
        .quad 0x4ff5cdac1eb08717
        .quad 0x67e8b29590f2e9bc
        .quad 0x44093b5e237afa99
        .quad 0x0d414bed8708b8b2



        .quad 0xcfb68265fd0e75f6
        .quad 0xe45b3e28bb90e707
        .quad 0x7242a8de9ff92c7a
        .quad 0x685b3201933202dd
        .quad 0x81886a92294ac9e8
        .quad 0x23162b45d55547be
        .quad 0x94cfbc4403715983
        .quad 0x50eb8fdb134bc401
        .quad 0xc0b73ec6d6b330cd
        .quad 0x84e44807132faff1
        .quad 0x732b7352c4a5dee1
        .quad 0x5d7c7cf1aa7cd2d2



        .quad 0xaf3b46bf7a4aafa2
        .quad 0xb78705ec4d40d411
        .quad 0x114f0c6aca7c15e3
        .quad 0x3f364faaa9489d4d
        .quad 0x33d1013e9b73a562
        .quad 0x925cef5748ec26e1
        .quad 0xa7fce614dd468058
        .quad 0x78b0fad41e9aa438
        .quad 0xbf56a431ed05b488
        .quad 0xa533e66c9c495c7e
        .quad 0xe8652baf87f3651a
        .quad 0x0241800059d66c33



        .quad 0xceb077fea37a5be4
        .quad 0xdb642f02e5a5eeb7
        .quad 0xc2e6d0c5471270b8
        .quad 0x4771b65538e4529c
        .quad 0x28350c7dcf38ea01
        .quad 0x7c6cdbc0b2917ab6
        .quad 0xace7cfbe857082f7
        .quad 0x4d2845aba2d9a1e0
        .quad 0xbb537fe0447070de
        .quad 0xcba744436dd557df
        .quad 0xd3b5a3473600dbcb
        .quad 0x4aeabbe6f9ffd7f8



        .quad 0x4630119e40d8f78c
        .quad 0xa01a9bc53c710e11
        .quad 0x486d2b258910dd79
        .quad 0x1e6c47b3db0324e5
        .quad 0x6a2134bcc4a9c8f2
        .quad 0xfbf8fd1c8ace2e37
        .quad 0x000ae3049911a0ba
        .quad 0x046e3a616bc89b9e
        .quad 0x14e65442f03906be
        .quad 0x4a019d54e362be2a
        .quad 0x68ccdfec8dc230c7
        .quad 0x7cfb7e3faf6b861c



        .quad 0x4637974e8c58aedc
        .quad 0xb9ef22fbabf041a4
        .quad 0xe185d956e980718a
        .quad 0x2f1b78fab143a8a6
        .quad 0x96eebffb305b2f51
        .quad 0xd3f938ad889596b8
        .quad 0xf0f52dc746d5dd25
        .quad 0x57968290bb3a0095
        .quad 0xf71ab8430a20e101
        .quad 0xf393658d24f0ec47
        .quad 0xcf7509a86ee2eed1
        .quad 0x7dc43e35dc2aa3e1



        .quad 0x85966665887dd9c3
        .quad 0xc90f9b314bb05355
        .quad 0xc6e08df8ef2079b1
        .quad 0x7ef72016758cc12f
        .quad 0x5a782a5c273e9718
        .quad 0x3576c6995e4efd94
        .quad 0x0f2ed8051f237d3e
        .quad 0x044fb81d82d50a99
        .quad 0xc1df18c5a907e3d9
        .quad 0x57b3371dce4c6359
        .quad 0xca704534b201bb49
        .quad 0x7f79823f9c30dd2e



        .quad 0x8334d239a3b513e8
        .quad 0xc13670d4b91fa8d8
        .quad 0x12b54136f590bd33
        .quad 0x0a4e0373d784d9b4
        .quad 0x6a9c1ff068f587ba
        .quad 0x0827894e0050c8de
        .quad 0x3cbf99557ded5be7
        .quad 0x64a9b0431c06d6f0
        .quad 0x2eb3d6a15b7d2919
        .quad 0xb0b4f6a0d53a8235
        .quad 0x7156ce4389a45d47
        .quad 0x071a7d0ace18346c



        .quad 0xd3072daac887ba0b
        .quad 0x01262905bfa562ee
        .quad 0xcf543002c0ef768b
        .quad 0x2c3bcc7146ea7e9c
        .quad 0xcc0c355220e14431
        .quad 0x0d65950709b15141
        .quad 0x9af5621b209d5f36
        .quad 0x7c69bcf7617755d3
        .quad 0x07f0d7eb04e8295f
        .quad 0x10db18252f50f37d
        .quad 0xe951a9a3171798d7
        .quad 0x6f5a9a7322aca51d



        .quad 0x8ba1000c2f41c6c5
        .quad 0xc49f79c10cfefb9b
        .quad 0x4efa47703cc51c9f
        .quad 0x494e21a2e147afca
        .quad 0xe729d4eba3d944be
        .quad 0x8d9e09408078af9e
        .quad 0x4525567a47869c03
        .quad 0x02ab9680ee8d3b24
        .quad 0xefa48a85dde50d9a
        .quad 0x219a224e0fb9a249
        .quad 0xfa091f1dd91ef6d9
        .quad 0x6b5d76cbea46bb34



        .quad 0x8857556cec0cd994
        .quad 0x6472dc6f5cd01dba
        .quad 0xaf0169148f42b477
        .quad 0x0ae333f685277354
        .quad 0xe0f941171e782522
        .quad 0xf1e6ae74036936d3
        .quad 0x408b3ea2d0fcc746
        .quad 0x16fb869c03dd313e
        .quad 0x288e199733b60962
        .quad 0x24fc72b4d8abe133
        .quad 0x4811f7ed0991d03e
        .quad 0x3f81e38b8f70d075



        .quad 0x7f910fcc7ed9affe
        .quad 0x545cb8a12465874b
        .quad 0xa8397ed24b0c4704
        .quad 0x50510fc104f50993
        .quad 0x0adb7f355f17c824
        .quad 0x74b923c3d74299a4
        .quad 0xd57c3e8bcbf8eaf7
        .quad 0x0ad3e2d34cdedc3d
        .quad 0x6f0c0fc5336e249d
        .quad 0x745ede19c331cfd9
        .quad 0xf2d6fd0009eefe1c
        .quad 0x127c158bf0fa1ebe



        .quad 0xf6197c422e9879a2
        .quad 0xa44addd452ca3647
        .quad 0x9b413fc14b4eaccb
        .quad 0x354ef87d07ef4f68
        .quad 0xdea28fc4ae51b974
        .quad 0x1d9973d3744dfe96
        .quad 0x6240680b873848a8
        .quad 0x4ed82479d167df95
        .quad 0xfee3b52260c5d975
        .quad 0x50352efceb41b0b8
        .quad 0x8808ac30a9f6653c
        .quad 0x302d92d20539236d



        .quad 0x4c59023fcb3efb7c
        .quad 0x6c2fcb99c63c2a94
        .quad 0xba4190e2c3c7e084
        .quad 0x0e545daea51874d9
        .quad 0x957b8b8b0df53c30
        .quad 0x2a1c770a8e60f098
        .quad 0xbbc7a670345796de
        .quad 0x22a48f9a90c99bc9
        .quad 0x6b7dc0dc8d3fac58
        .quad 0x5497cd6ce6e42bfd
        .quad 0x542f7d1bf400d305
        .quad 0x4159f47f048d9136



        .quad 0x20ad660839e31e32
        .quad 0xf81e1bd58405be50
        .quad 0xf8064056f4dabc69
        .quad 0x14d23dd4ce71b975
        .quad 0x748515a8bbd24839
        .quad 0x77128347afb02b55
        .quad 0x50ba2ac649a2a17f
        .quad 0x060525513ad730f1
        .quad 0xf2398e098aa27f82
        .quad 0x6d7982bb89a1b024
        .quad 0xfa694084214dd24c
        .quad 0x71ab966fa32301c3



        .quad 0x2dcbd8e34ded02fc
        .quad 0x1151f3ec596f22aa
        .quad 0xbca255434e0328da
        .quad 0x35768fbe92411b22
        .quad 0xb1088a0702809955
        .quad 0x43b273ea0b43c391
        .quad 0xca9b67aefe0686ed
        .quad 0x605eecbf8335f4ed
        .quad 0x83200a656c340431
        .quad 0x9fcd71678ee59c2f
        .quad 0x75d4613f71300f8a
        .quad 0x7a912faf60f542f9



        .quad 0xb204585e5edc1a43
        .quad 0x9f0e16ee5897c73c
        .quad 0x5b82c0ae4e70483c
        .quad 0x624a170e2bddf9be
        .quad 0x253f4f8dfa2d5597
        .quad 0x25e49c405477130c
        .quad 0x00c052e5996b1102
        .quad 0x33cb966e33bb6c4a
        .quad 0x597028047f116909
        .quad 0x828ac41c1e564467
        .quad 0x70417dbde6217387
        .quad 0x721627aefbac4384



        .quad 0x97d03bc38736add5
        .quad 0x2f1422afc532b130
        .quad 0x3aa68a057101bbc4
        .quad 0x4c946cf7e74f9fa7
        .quad 0xfd3097bc410b2f22
        .quad 0xf1a05da7b5cfa844
        .quad 0x61289a1def57ca74
        .quad 0x245ea199bb821902
        .quad 0xaedca66978d477f8
        .quad 0x1898ba3c29117fe1
        .quad 0xcf73f983720cbd58
        .quad 0x67da12e6b8b56351



        .quad 0x7067e187b4bd6e07
        .quad 0x6e8f0203c7d1fe74
        .quad 0x93c6aa2f38c85a30
        .quad 0x76297d1f3d75a78a
        .quad 0x2b7ef3d38ec8308c
        .quad 0x828fd7ec71eb94ab
        .quad 0x807c3b36c5062abd
        .quad 0x0cb64cb831a94141
        .quad 0x3030fc33534c6378
        .quad 0xb9635c5ce541e861
        .quad 0x15d9a9bed9b2c728
        .quad 0x49233ea3f3775dcb



        .quad 0x629398fa8dbffc3a
        .quad 0xe12fe52dd54db455
        .quad 0xf3be11dfdaf25295
        .quad 0x628b140dce5e7b51
        .quad 0x7b3985fe1c9f249b
        .quad 0x4fd6b2d5a1233293
        .quad 0xceb345941adf4d62
        .quad 0x6987ff6f542de50c
        .quad 0x47e241428f83753c
        .quad 0x6317bebc866af997
        .quad 0xdabb5b433d1a9829
        .quad 0x074d8d245287fb2d



        .quad 0x8337d9cd440bfc31
        .quad 0x729d2ca1af318fd7
        .quad 0xa040a4a4772c2070
        .quad 0x46002ef03a7349be
        .quad 0x481875c6c0e31488
        .quad 0x219429b2e22034b4
        .quad 0x7223c98a31283b65
        .quad 0x3420d60b342277f9
        .quad 0xfaa23adeaffe65f7
        .quad 0x78261ed45be0764c
        .quad 0x441c0a1e2f164403
        .quad 0x5aea8e567a87d395



        .quad 0x7813c1a2bca4283d
        .quad 0xed62f091a1863dd9
        .quad 0xaec7bcb8c268fa86
        .quad 0x10e5d3b76f1cae4c
        .quad 0x2dbc6fb6e4e0f177
        .quad 0x04e1bf29a4bd6a93
        .quad 0x5e1966d4787af6e8
        .quad 0x0edc5f5eb426d060
        .quad 0x5453bfd653da8e67
        .quad 0xe9dc1eec24a9f641
        .quad 0xbf87263b03578a23
        .quad 0x45b46c51361cba72



        .quad 0xa9402abf314f7fa1
        .quad 0xe257f1dc8e8cf450
        .quad 0x1dbbd54b23a8be84
        .quad 0x2177bfa36dcb713b
        .quad 0xce9d4ddd8a7fe3e4
        .quad 0xab13645676620e30
        .quad 0x4b594f7bb30e9958
        .quad 0x5c1c0aef321229df
        .quad 0x37081bbcfa79db8f
        .quad 0x6048811ec25f59b3
        .quad 0x087a76659c832487
        .quad 0x4ae619387d8ab5bb



        .quad 0x8ddbf6aa5344a32e
        .quad 0x7d88eab4b41b4078
        .quad 0x5eb0eb974a130d60
        .quad 0x1a00d91b17bf3e03
        .quad 0x61117e44985bfb83
        .quad 0xfce0462a71963136
        .quad 0x83ac3448d425904b
        .quad 0x75685abe5ba43d64
        .quad 0x6e960933eb61f2b2
        .quad 0x543d0fa8c9ff4952
        .quad 0xdf7275107af66569
        .quad 0x135529b623b0e6aa



        .quad 0x18f0dbd7add1d518
        .quad 0x979f7888cfc11f11
        .quad 0x8732e1f07114759b
        .quad 0x79b5b81a65ca3a01
        .quad 0xf5c716bce22e83fe
        .quad 0xb42beb19e80985c1
        .quad 0xec9da63714254aae
        .quad 0x5972ea051590a613
        .quad 0x0fd4ac20dc8f7811
        .quad 0x9a9ad294ac4d4fa8
        .quad 0xc01b2d64b3360434
        .quad 0x4f7e9c95905f3bdb



        .quad 0x62674bbc5781302e
        .quad 0xd8520f3989addc0f
        .quad 0x8c2999ae53fbd9c6
        .quad 0x31993ad92e638e4c
        .quad 0x71c8443d355299fe
        .quad 0x8bcd3b1cdbebead7
        .quad 0x8092499ef1a49466
        .quad 0x1942eec4a144adc8
        .quad 0x7dac5319ae234992
        .quad 0x2c1b3d910cea3e92
        .quad 0x553ce494253c1122
        .quad 0x2a0a65314ef9ca75



        .quad 0x2db7937ff7f927c2
        .quad 0xdb741f0617d0a635
        .quad 0x5982f3a21155af76
        .quad 0x4cf6e218647c2ded
        .quad 0xcf361acd3c1c793a
        .quad 0x2f9ebcac5a35bc3b
        .quad 0x60e860e9a8cda6ab
        .quad 0x055dc39b6dea1a13
        .quad 0xb119227cc28d5bb6
        .quad 0x07e24ebc774dffab
        .quad 0xa83c78cee4a32c89
        .quad 0x121a307710aa24b6



        .quad 0xe4db5d5e9f034a97
        .quad 0xe153fc093034bc2d
        .quad 0x460546919551d3b1
        .quad 0x333fc76c7a40e52d
        .quad 0xd659713ec77483c9
        .quad 0x88bfe077b82b96af
        .quad 0x289e28231097bcd3
        .quad 0x527bb94a6ced3a9b
        .quad 0x563d992a995b482e
        .quad 0x3405d07c6e383801
        .quad 0x485035de2f64d8e5
        .quad 0x6b89069b20a7a9f7



        .quad 0x812aa0416270220d
        .quad 0x995a89faf9245b4e
        .quad 0xffadc4ce5072ef05
        .quad 0x23bc2103aa73eb73
        .quad 0x4082fa8cb5c7db77
        .quad 0x068686f8c734c155
        .quad 0x29e6c8d9f6e7a57e
        .quad 0x0473d308a7639bcf
        .quad 0xcaee792603589e05
        .quad 0x2b4b421246dcc492
        .quad 0x02a1ef74e601a94f
        .quad 0x102f73bfde04341a



        .quad 0xb5a2d50c7ec20d3e
        .quad 0xc64bdd6ea0c97263
        .quad 0x56e89052c1ff734d
        .quad 0x4929c6f72b2ffaba
        .quad 0x358ecba293a36247
        .quad 0xaf8f9862b268fd65
        .quad 0x412f7e9968a01c89
        .quad 0x5786f312cd754524
        .quad 0x337788ffca14032c
        .quad 0xf3921028447f1ee3
        .quad 0x8b14071f231bccad
        .quad 0x4c817b4bf2344783



        .quad 0x0ff853852871b96e
        .quad 0xe13e9fab60c3f1bb
        .quad 0xeefd595325344402
        .quad 0x0a37c37075b7744b
        .quad 0x413ba057a40b4484
        .quad 0xba4c2e1a4f5f6a43
        .quad 0x614ba0a5aee1d61c
        .quad 0x78a1531a8b05dc53
        .quad 0x6cbdf1703ad0562b
        .quad 0x8ecf4830c92521a3
        .quad 0xdaebd303fd8424e7
        .quad 0x72ad82a42e5ec56f



        .quad 0x3f9e8e35bafb65f6
        .quad 0x39d69ec8f27293a1
        .quad 0x6cb8cd958cf6a3d0
        .quad 0x1734778173adae6d
        .quad 0xc368939167024bc3
        .quad 0x8e69d16d49502fda
        .quad 0xfcf2ec3ce45f4b29
        .quad 0x065f669ea3b4cbc4
        .quad 0x8a00aec75532db4d
        .quad 0xb869a4e443e31bb1
        .quad 0x4a0f8552d3a7f515
        .quad 0x19adeb7c303d7c08



        .quad 0xc720cb6153ead9a3
        .quad 0x55b2c97f512b636e
        .quad 0xb1e35b5fd40290b1
        .quad 0x2fd9ccf13b530ee2
        .quad 0x9d05ba7d43c31794
        .quad 0x2470c8ff93322526
        .quad 0x8323dec816197438
        .quad 0x2852709881569b53
        .quad 0x07bd475b47f796b8
        .quad 0xd2c7b013542c8f54
        .quad 0x2dbd23f43b24f87e
        .quad 0x6551afd77b0901d6



        .quad 0x4546baaf54aac27f
        .quad 0xf6f66fecb2a45a28
        .quad 0x582d1b5b562bcfe8
        .quad 0x44b123f3920f785f
        .quad 0x68a24ce3a1d5c9ac
        .quad 0xbb77a33d10ff6461
        .quad 0x0f86ce4425d3166e
        .quad 0x56507c0950b9623b
        .quad 0x1206f0b7d1713e63
        .quad 0x353fe3d915bafc74
        .quad 0x194ceb970ad9d94d
        .quad 0x62fadd7cf9d03ad3



        .quad 0xc6b5967b5598a074
        .quad 0x5efe91ce8e493e25
        .quad 0xd4b72c4549280888
        .quad 0x20ef1149a26740c2
        .quad 0x3cd7bc61e7ce4594
        .quad 0xcd6b35a9b7dd267e
        .quad 0xa080abc84366ef27
        .quad 0x6ec7c46f59c79711
        .quad 0x2f07ad636f09a8a2
        .quad 0x8697e6ce24205e7d
        .quad 0xc0aefc05ee35a139
        .quad 0x15e80958b5f9d897



        .quad 0x25a5ef7d0c3e235b
        .quad 0x6c39c17fbe134ee7
        .quad 0xc774e1342dc5c327
        .quad 0x021354b892021f39
        .quad 0x4dd1ed355bb061c4
        .quad 0x42dc0cef941c0700
        .quad 0x61305dc1fd86340e
        .quad 0x56b2cc930e55a443
        .quad 0x1df79da6a6bfc5a2
        .quad 0x02f3a2749fde4369
        .quad 0xb323d9f2cda390a7
        .quad 0x7be0847b8774d363



        .quad 0x8c99cc5a8b3f55c3
        .quad 0x0611d7253fded2a0
        .quad 0xed2995ff36b70a36
        .quad 0x1f699a54d78a2619
        .quad 0x1466f5af5307fa11
        .quad 0x817fcc7ded6c0af2
        .quad 0x0a6de44ec3a4a3fb
        .quad 0x74071475bc927d0b
        .quad 0xe77292f373e7ea8a
        .quad 0x296537d2cb045a31
        .quad 0x1bd0653ed3274fde
        .quad 0x2f9a2c4476bd2966



        .quad 0xeb18b9ab7f5745c6
        .quad 0x023a8aee5787c690
        .quad 0xb72712da2df7afa9
        .quad 0x36597d25ea5c013d
        .quad 0xa2b4dae0b5511c9a
        .quad 0x7ac860292bffff06
        .quad 0x981f375df5504234
        .quad 0x3f6bd725da4ea12d
        .quad 0x734d8d7b106058ac
        .quad 0xd940579e6fc6905f
        .quad 0x6466f8f99202932d
        .quad 0x7b7ecc19da60d6d0



        .quad 0x78c2373c695c690d
        .quad 0xdd252e660642906e
        .quad 0x951d44444ae12bd2
        .quad 0x4235ad7601743956
        .quad 0x6dae4a51a77cfa9b
        .quad 0x82263654e7a38650
        .quad 0x09bbffcd8f2d82db
        .quad 0x03bedc661bf5caba
        .quad 0x6258cb0d078975f5
        .quad 0x492942549189f298
        .quad 0xa0cab423e2e36ee4
        .quad 0x0e7ce2b0cdf066a1



        .quad 0xc494643ac48c85a3
        .quad 0xfd361df43c6139ad
        .quad 0x09db17dd3ae94d48
        .quad 0x666e0a5d8fb4674a
        .quad 0xfea6fedfd94b70f9
        .quad 0xf130c051c1fcba2d
        .quad 0x4882d47e7f2fab89
        .quad 0x615256138aeceeb5
        .quad 0x2abbf64e4870cb0d
        .quad 0xcd65bcf0aa458b6b
        .quad 0x9abe4eba75e8985d
        .quad 0x7f0bc810d514dee4



        .quad 0xb9006ba426f4136f
        .quad 0x8d67369e57e03035
        .quad 0xcbc8dfd94f463c28
        .quad 0x0d1f8dbcf8eedbf5
        .quad 0x83ac9dad737213a0
        .quad 0x9ff6f8ba2ef72e98
        .quad 0x311e2edd43ec6957
        .quad 0x1d3a907ddec5ab75
        .quad 0xba1693313ed081dc
        .quad 0x29329fad851b3480
        .quad 0x0128013c030321cb
        .quad 0x00011b44a31bfde3



        .quad 0x3fdfa06c3fc66c0c
        .quad 0x5d40e38e4dd60dd2
        .quad 0x7ae38b38268e4d71
        .quad 0x3ac48d916e8357e1
        .quad 0x16561f696a0aa75c
        .quad 0xc1bf725c5852bd6a
        .quad 0x11a8dd7f9a7966ad
        .quad 0x63d988a2d2851026
        .quad 0x00120753afbd232e
        .quad 0xe92bceb8fdd8f683
        .quad 0xf81669b384e72b91
        .quad 0x33fad52b2368a066



        .quad 0x540649c6c5e41e16
        .quad 0x0af86430333f7735
        .quad 0xb2acfcd2f305e746
        .quad 0x16c0f429a256dca7
        .quad 0x8d2cc8d0c422cfe8
        .quad 0x072b4f7b05a13acb
        .quad 0xa3feb6e6ecf6a56f
        .quad 0x3cc355ccb90a71e2
        .quad 0xe9b69443903e9131
        .quad 0xb8a494cb7a5637ce
        .quad 0xc87cd1a4baba9244
        .quad 0x631eaf426bae7568



        .quad 0xb3e90410da66fe9f
        .quad 0x85dd4b526c16e5a6
        .quad 0xbc3d97611ef9bf83
        .quad 0x5599648b1ea919b5
        .quad 0x47d975b9a3700de8
        .quad 0x7280c5fbe2f80552
        .quad 0x53658f2732e45de1
        .quad 0x431f2c7f665f80b5
        .quad 0xd6026344858f7b19
        .quad 0x14ab352fa1ea514a
        .quad 0x8900441a2090a9d7
        .quad 0x7b04715f91253b26



        .quad 0x83edbd28acf6ae43
        .quad 0x86357c8b7d5c7ab4
        .quad 0xc0404769b7eb2c44
        .quad 0x59b37bf5c2f6583f
        .quad 0xb376c280c4e6bac6
        .quad 0x970ed3dd6d1d9b0b
        .quad 0xb09a9558450bf944
        .quad 0x48d0acfa57cde223
        .quad 0xb60f26e47dabe671
        .quad 0xf1d1a197622f3a37
        .quad 0x4208ce7ee9960394
        .quad 0x16234191336d3bdb



        .quad 0xf19aeac733a63aef
        .quad 0x2c7fba5d4442454e
        .quad 0x5da87aa04795e441
        .quad 0x413051e1a4e0b0f5
        .quad 0x852dd1fd3d578bbe
        .quad 0x2b65ce72c3286108
        .quad 0x658c07f4eace2273
        .quad 0x0933f804ec38ab40
        .quad 0xa7ab69798d496476
        .quad 0x8121aadefcb5abc8
        .quad 0xa5dc12ef7b539472
        .quad 0x07fd47065e45351a



        .quad 0xc8583c3d258d2bcd
        .quad 0x17029a4daf60b73f
        .quad 0xfa0fc9d6416a3781
        .quad 0x1c1e5fba38b3fb23
        .quad 0x304211559ae8e7c3
        .quad 0xf281b229944882a5
        .quad 0x8a13ac2e378250e4
        .quad 0x014afa0954ba48f4
        .quad 0xcb3197001bb3666c
        .quad 0x330060524bffecb9
        .quad 0x293711991a88233c
        .quad 0x291884363d4ed364



        .quad 0x033c6805dc4babfa
        .quad 0x2c15bf5e5596ecc1
        .quad 0x1bc70624b59b1d3b
        .quad 0x3ede9850a19f0ec5
        .quad 0xfb9d37c3bc1ab6eb
        .quad 0x02be14534d57a240
        .quad 0xf4d73415f8a5e1f6
        .quad 0x5964f4300ccc8188
        .quad 0xe44a23152d096800
        .quad 0x5c08c55970866996
        .quad 0xdf2db60a46affb6e
        .quad 0x579155c1f856fd89



        .quad 0x96324edd12e0c9ef
        .quad 0x468b878df2420297
        .quad 0x199a3776a4f573be
        .quad 0x1e7fbcf18e91e92a
        .quad 0xb5f16b630817e7a6
        .quad 0x808c69233c351026
        .quad 0x324a983b54cef201
        .quad 0x53c092084a485345
        .quad 0xd2d41481f1cbafbf
        .quad 0x231d2db6716174e5
        .quad 0x0b7d7656e2a55c98
        .quad 0x3e955cd82aa495f6



        .quad 0xe48f535e3ed15433
        .quad 0xd075692a0d7270a3
        .quad 0x40fbd21daade6387
        .quad 0x14264887cf4495f5
        .quad 0xab39f3ef61bb3a3f
        .quad 0x8eb400652eb9193e
        .quad 0xb5de6ecc38c11f74
        .quad 0x654d7e9626f3c49f
        .quad 0xe564cfdd5c7d2ceb
        .quad 0x82eeafded737ccb9
        .quad 0x6107db62d1f9b0ab
        .quad 0x0b6baac3b4358dbb



        .quad 0x7ae62bcb8622fe98
        .quad 0x47762256ceb891af
        .quad 0x1a5a92bcf2e406b4
        .quad 0x7d29401784e41501
        .quad 0x204abad63700a93b
        .quad 0xbe0023d3da779373
        .quad 0xd85f0346633ab709
        .quad 0x00496dc490820412
        .quad 0x1c74b88dc27e6360
        .quad 0x074854268d14850c
        .quad 0xa145fb7b3e0dcb30
        .quad 0x10843f1b43803b23



        .quad 0xc5f90455376276dd
        .quad 0xce59158dd7645cd9
        .quad 0x92f65d511d366b39
        .quad 0x11574b6e526996c4
        .quad 0xd56f672de324689b
        .quad 0xd1da8aedb394a981
        .quad 0xdd7b58fe9168cfed
        .quad 0x7ce246cd4d56c1e8
        .quad 0xb8f4308e7f80be53
        .quad 0x5f3cb8cb34a9d397
        .quad 0x18a961bd33cc2b2c
        .quad 0x710045fb3a9af671



        .quad 0x73f93d36101b95eb
        .quad 0xfaef33794f6f4486
        .quad 0x5651735f8f15e562
        .quad 0x7fa3f19058b40da1
        .quad 0xa03fc862059d699e
        .quad 0x2370cfa19a619e69
        .quad 0xc4fe3b122f823deb
        .quad 0x1d1b056fa7f0844e
        .quad 0x1bc64631e56bf61f
        .quad 0xd379ab106e5382a3
        .quad 0x4d58c57e0540168d
        .quad 0x566256628442d8e4



        .quad 0xb9e499def6267ff6
        .quad 0x7772ca7b742c0843
        .quad 0x23a0153fe9a4f2b1
        .quad 0x2cdfdfecd5d05006
        .quad 0xdd499cd61ff38640
        .quad 0x29cd9bc3063625a0
        .quad 0x51e2d8023dd73dc3
        .quad 0x4a25707a203b9231
        .quad 0x2ab7668a53f6ed6a
        .quad 0x304242581dd170a1
        .quad 0x4000144c3ae20161
        .quad 0x5721896d248e49fc



        .quad 0x0b6e5517fd181bae
        .quad 0x9022629f2bb963b4
        .quad 0x5509bce932064625
        .quad 0x578edd74f63c13da
        .quad 0x285d5091a1d0da4e
        .quad 0x4baa6fa7b5fe3e08
        .quad 0x63e5177ce19393b3
        .quad 0x03c935afc4b030fd
        .quad 0x997276c6492b0c3d
        .quad 0x47ccc2c4dfe205fc
        .quad 0xdcd29b84dd623a3c
        .quad 0x3ec2ab590288c7a2



        .quad 0xa1a0d27be4d87bb9
        .quad 0xa98b4deb61391aed
        .quad 0x99a0ddd073cb9b83
        .quad 0x2dd5c25a200fcace
        .quad 0xa7213a09ae32d1cb
        .quad 0x0f2b87df40f5c2d5
        .quad 0x0baea4c6e81eab29
        .quad 0x0e1bf66c6adbac5e
        .quad 0xe2abd5e9792c887e
        .quad 0x1a020018cb926d5d
        .quad 0xbfba69cdbaae5f1e
        .quad 0x730548b35ae88f5f



        .quad 0xc43551a3cba8b8ee
        .quad 0x65a26f1db2115f16
        .quad 0x760f4f52ab8c3850
        .quad 0x3043443b411db8ca
        .quad 0x805b094ba1d6e334
        .quad 0xbf3ef17709353f19
        .quad 0x423f06cb0622702b
        .quad 0x585a2277d87845dd
        .quad 0xa18a5f8233d48962
        .quad 0x6698c4b5ec78257f
        .quad 0xa78e6fa5373e41ff
        .quad 0x7656278950ef981f



        .quad 0x38c3cf59d51fc8c0
        .quad 0x9bedd2fd0506b6f2
        .quad 0x26bf109fab570e8f
        .quad 0x3f4160a8c1b846a6
        .quad 0xe17073a3ea86cf9d
        .quad 0x3a8cfbb707155fdc
        .quad 0x4853e7fc31838a8e
        .quad 0x28bbf484b613f616
        .quad 0xf2612f5c6f136c7c
        .quad 0xafead107f6dd11be
        .quad 0x527e9ad213de6f33
        .quad 0x1e79cb358188f75d



        .quad 0x013436c3eef7e3f1
        .quad 0x828b6a7ffe9e10f8
        .quad 0x7ff908e5bcf9defc
        .quad 0x65d7951b3a3b3831
        .quad 0x77e953d8f5e08181
        .quad 0x84a50c44299dded9
        .quad 0xdc6c2d0c864525e5
        .quad 0x478ab52d39d1f2f4
        .quad 0x66a6a4d39252d159
        .quad 0xe5dde1bc871ac807
        .quad 0xb82c6b40a6c1c96f
        .quad 0x16d87a411a212214



        .quad 0xb3bd7e5a42066215
        .quad 0x879be3cd0c5a24c1
        .quad 0x57c05db1d6f994b7
        .quad 0x28f87c8165f38ca6
        .quad 0xfba4d5e2d54e0583
        .quad 0xe21fafd72ebd99fa
        .quad 0x497ac2736ee9778f
        .quad 0x1f990b577a5a6dde
        .quad 0xa3344ead1be8f7d6
        .quad 0x7d1e50ebacea798f
        .quad 0x77c6569e520de052
        .quad 0x45882fe1534d6d3e



        .quad 0x6669345d757983d6
        .quad 0x62b6ed1117aa11a6
        .quad 0x7ddd1857985e128f
        .quad 0x688fe5b8f626f6dd
        .quad 0xd8ac9929943c6fe4
        .quad 0xb5f9f161a38392a2
        .quad 0x2699db13bec89af3
        .quad 0x7dcf843ce405f074
        .quad 0x6c90d6484a4732c0
        .quad 0xd52143fdca563299
        .quad 0xb3be28c3915dc6e1
        .quad 0x6739687e7327191b



        .quad 0x9f65c5ea200814cf
        .quad 0x840536e169a31740
        .quad 0x8b0ed13925c8b4ad
        .quad 0x0080dbafe936361d
        .quad 0x8ce5aad0c9cb971f
        .quad 0x1156aaa99fd54a29
        .quad 0x41f7247015af9b78
        .quad 0x1fe8cca8420f49aa
        .quad 0x72a1848f3c0cc82a
        .quad 0x38c560c2877c9e54
        .quad 0x5004e228ce554140
        .quad 0x042418a103429d71



        .quad 0x899dea51abf3ff5f
        .quad 0x9b93a8672fc2d8ba
        .quad 0x2c38cb97be6ebd5c
        .quad 0x114d578497263b5d
        .quad 0x58e84c6f20816247
        .quad 0x8db2b2b6e36fd793
        .quad 0x977182561d484d85
        .quad 0x0822024f8632abd7
        .quad 0xb301bb7c6b1beca3
        .quad 0x55393f6dc6eb1375
        .quad 0x910d281097b6e4eb
        .quad 0x1ad4548d9d479ea3



        .quad 0xcd5a7da0389a48fd
        .quad 0xb38fa4aa9a78371e
        .quad 0xc6d9761b2cdb8e6c
        .quad 0x35cf51dbc97e1443
        .quad 0xa06fe66d0fe9fed3
        .quad 0xa8733a401c587909
        .quad 0x30d14d800df98953
        .quad 0x41ce5876c7b30258
        .quad 0x59ac3bc5d670c022
        .quad 0xeae67c109b119406
        .quad 0x9798bdf0b3782fda
        .quad 0x651e3201fd074092



        .quad 0xd63d8483ef30c5cf
        .quad 0x4cd4b4962361cc0c
        .quad 0xee90e500a48426ac
        .quad 0x0af51d7d18c14eeb
        .quad 0xa57ba4a01efcae9e
        .quad 0x769f4beedc308a94
        .quad 0xd1f10eeb3603cb2e
        .quad 0x4099ce5e7e441278
        .quad 0x1ac98e4f8a5121e9
        .quad 0x7dae9544dbfa2fe0
        .quad 0x8320aa0dd6430df9
        .quad 0x667282652c4a2fb5



        .quad 0x874621f4d86bc9ab
        .quad 0xb54c7bbe56fe6fea
        .quad 0x077a24257fadc22c
        .quad 0x1ab53be419b90d39
        .quad 0xada8b6e02946db23
        .quad 0x1c0ce51a7b253ab7
        .quad 0x8448c85a66dd485b
        .quad 0x7f1fc025d0675adf
        .quad 0xd8ee1b18319ea6aa
        .quad 0x004d88083a21f0da
        .quad 0x3bd6aa1d883a4f4b
        .quad 0x4db9a3a6dfd9fd14



        .quad 0x8ce7b23bb99c0755
        .quad 0x35c5d6edc4f50f7a
        .quad 0x7e1e2ed2ed9b50c3
        .quad 0x36305f16e8934da1
        .quad 0xd95b00bbcbb77c68
        .quad 0xddbc846a91f17849
        .quad 0x7cf700aebe28d9b3
        .quad 0x5ce1285c85d31f3e
        .quad 0x31b6972d98b0bde8
        .quad 0x7d920706aca6de5b
        .quad 0xe67310f8908a659f
        .quad 0x50fac2a6efdf0235



        .quad 0xf3d3a9f35b880f5a
        .quad 0xedec050cdb03e7c2
        .quad 0xa896981ff9f0b1a2
        .quad 0x49a4ae2bac5e34a4
        .quad 0x295b1c86f6f449bc
        .quad 0x51b2e84a1f0ab4dd
        .quad 0xc001cb30aa8e551d
        .quad 0x6a28d35944f43662
        .quad 0x28bb12ee04a740e0
        .quad 0x14313bbd9bce8174
        .quad 0x72f5b5e4e8c10c40
        .quad 0x7cbfb19936adcd5b



        .quad 0xa311ddc26b89792d
        .quad 0x1b30b4c6da512664
        .quad 0x0ca77b4ccf150859
        .quad 0x1de443df1b009408
        .quad 0x8e793a7acc36e6e0
        .quad 0xf9fab7a37d586eed
        .quad 0x3a4f9692bae1f4e4
        .quad 0x1c14b03eff5f447e
        .quad 0x19647bd114a85291
        .quad 0x57b76cb21034d3af
        .quad 0x6329db440f9d6dfa
        .quad 0x5ef43e586a571493



        .quad 0xef782014385675a6
        .quad 0xa2649f30aafda9e8
        .quad 0x4cd1eb505cdfa8cb
        .quad 0x46115aba1d4dc0b3
        .quad 0xa66dcc9dc80c1ac0
        .quad 0x97a05cf41b38a436
        .quad 0xa7ebf3be95dbd7c6
        .quad 0x7da0b8f68d7e7dab
        .quad 0xd40f1953c3b5da76
        .quad 0x1dac6f7321119e9b
        .quad 0x03cc6021feb25960
        .quad 0x5a5f887e83674b4b



        .quad 0x8f6301cf70a13d11
        .quad 0xcfceb815350dd0c4
        .quad 0xf70297d4a4bca47e
        .quad 0x3669b656e44d1434
        .quad 0x9e9628d3a0a643b9
        .quad 0xb5c3cb00e6c32064
        .quad 0x9b5302897c2dec32
        .quad 0x43e37ae2d5d1c70c
        .quad 0x387e3f06eda6e133
        .quad 0x67301d5199a13ac0
        .quad 0xbd5ad8f836263811
        .quad 0x6a21e6cd4fd5e9be



        .quad 0xf1c6170a3046e65f
        .quad 0x58712a2a00d23524
        .quad 0x69dbbd3c8c82b755
        .quad 0x586bf9f1a195ff57
        .quad 0xef4129126699b2e3
        .quad 0x71d30847708d1301
        .quad 0x325432d01182b0bd
        .quad 0x45371b07001e8b36
        .quad 0xa6db088d5ef8790b
        .quad 0x5278f0dc610937e5
        .quad 0xac0349d261a16eb8
        .quad 0x0eafb03790e52179



        .quad 0x960555c13748042f
        .quad 0x219a41e6820baa11
        .quad 0x1c81f73873486d0c
        .quad 0x309acc675a02c661
        .quad 0x5140805e0f75ae1d
        .quad 0xec02fbe32662cc30
        .quad 0x2cebdf1eea92396d
        .quad 0x44ae3344c5435bb3
        .quad 0x9cf289b9bba543ee
        .quad 0xf3760e9d5ac97142
        .quad 0x1d82e5c64f9360aa
        .quad 0x62d5221b7f94678f



        .quad 0x524c299c18d0936d
        .quad 0xc86bb56c8a0c1a0c
        .quad 0xa375052edb4a8631
        .quad 0x5c0efde4bc754562
        .quad 0x7585d4263af77a3c
        .quad 0xdfae7b11fee9144d
        .quad 0xa506708059f7193d
        .quad 0x14f29a5383922037
        .quad 0xdf717edc25b2d7f5
        .quad 0x21f970db99b53040
        .quad 0xda9234b7c3ed4c62
        .quad 0x5e72365c7bee093e



        .quad 0x575bfc074571217f
        .quad 0x3779675d0694d95b
        .quad 0x9a0a37bbf4191e33
        .quad 0x77f1104c47b4eabc
        .quad 0x7d9339062f08b33e
        .quad 0x5b9659e5df9f32be
        .quad 0xacff3dad1f9ebdfd
        .quad 0x70b20555cb7349b7
        .quad 0xbe5113c555112c4c
        .quad 0x6688423a9a881fcd
        .quad 0x446677855e503b47
        .quad 0x0e34398f4a06404a



        .quad 0xb67d22d93ecebde8
        .quad 0x09b3e84127822f07
        .quad 0x743fa61fb05b6d8d
        .quad 0x5e5405368a362372
        .quad 0x18930b093e4b1928
        .quad 0x7de3e10e73f3f640
        .quad 0xf43217da73395d6f
        .quad 0x6f8aded6ca379c3e
        .quad 0xe340123dfdb7b29a
        .quad 0x487b97e1a21ab291
        .quad 0xf9967d02fde6949e
        .quad 0x780de72ec8d3de97



        .quad 0x0ae28545089ae7bc
        .quad 0x388ddecf1c7f4d06
        .quad 0x38ac15510a4811b8
        .quad 0x0eb28bf671928ce4
        .quad 0x671feaf300f42772
        .quad 0x8f72eb2a2a8c41aa
        .quad 0x29a17fd797373292
        .quad 0x1defc6ad32b587a6
        .quad 0xaf5bbe1aef5195a7
        .quad 0x148c1277917b15ed
        .quad 0x2991f7fb7ae5da2e
        .quad 0x467d201bf8dd2867



        .quad 0x7906ee72f7bd2e6b
        .quad 0x05d270d6109abf4e
        .quad 0x8d5cfe45b941a8a4
        .quad 0x44c218671c974287
        .quad 0x745f9d56296bc318
        .quad 0x993580d4d8152e65
        .quad 0xb0e5b13f5839e9ce
        .quad 0x51fc2b28d43921c0
        .quad 0x1b8fd11795e2a98c
        .quad 0x1c4e5ee12b6b6291
        .quad 0x5b30e7107424b572
        .quad 0x6e6b9de84c4f4ac6



        .quad 0xdff25fce4b1de151
        .quad 0xd841c0c7e11c4025
        .quad 0x2554b3c854749c87
        .quad 0x2d292459908e0df9
        .quad 0x6b7c5f10f80cb088
        .quad 0x736b54dc56e42151
        .quad 0xc2b620a5c6ef99c4
        .quad 0x5f4c802cc3a06f42
        .quad 0x9b65c8f17d0752da
        .quad 0x881ce338c77ee800
        .quad 0xc3b514f05b62f9e3
        .quad 0x66ed5dd5bec10d48



        .quad 0x7d38a1c20bb2089d
        .quad 0x808334e196ccd412
        .quad 0xc4a70b8c6c97d313
        .quad 0x2eacf8bc03007f20
        .quad 0xf0adf3c9cbca047d
        .quad 0x81c3b2cbf4552f6b
        .quad 0xcfda112d44735f93
        .quad 0x1f23a0c77e20048c
        .quad 0xf235467be5bc1570
        .quad 0x03d2d9020dbab38c
        .quad 0x27529aa2fcf9e09e
        .quad 0x0840bef29d34bc50



        .quad 0x796dfb35dc10b287
        .quad 0x27176bcd5c7ff29d
        .quad 0x7f3d43e8c7b24905
        .quad 0x0304f5a191c54276
        .quad 0xcd54e06b7f37e4eb
        .quad 0x8cc15f87f5e96cca
        .quad 0xb8248bb0d3597dce
        .quad 0x246affa06074400c
        .quad 0x37d88e68fbe45321
        .quad 0x86097548c0d75032
        .quad 0x4e9b13ef894a0d35
        .quad 0x25a83cac5753d325



        .quad 0x10222f48eed8165e
        .quad 0x623fc1234b8bcf3a
        .quad 0x1e145c09c221e8f0
        .quad 0x7ccfa59fca782630
        .quad 0x9f0f66293952b6e2
        .quad 0x33db5e0e0934267b
        .quad 0xff45252bd609fedc
        .quad 0x06be10f5c506e0c9
        .quad 0x1a9615a9b62a345f
        .quad 0x22050c564a52fecc
        .quad 0xa7a2788528bc0dfe
        .quad 0x5e82770a1a1ee71d



        .quad 0x35425183ad896a5c
        .quad 0xe8673afbe78d52f6
        .quad 0x2c66f25f92a35f64
        .quad 0x09d04f3b3b86b102
        .quad 0xe802e80a42339c74
        .quad 0x34175166a7fffae5
        .quad 0x34865d1f1c408cae
        .quad 0x2cca982c605bc5ee
        .quad 0xfd2d5d35197dbe6e
        .quad 0x207c2eea8be4ffa3
        .quad 0x2613d8db325ae918
        .quad 0x7a325d1727741d3e



        .quad 0xd036b9bbd16dfde2
        .quad 0xa2055757c497a829
        .quad 0x8e6cc966a7f12667
        .quad 0x4d3b1a791239c180
        .quad 0xecd27d017e2a076a
        .quad 0xd788689f1636495e
        .quad 0x52a61af0919233e5
        .quad 0x2a479df17bb1ae64
        .quad 0x9e5eee8e33db2710
        .quad 0x189854ded6c43ca5
        .quad 0xa41c22c592718138
        .quad 0x27ad5538a43a5e9b



        .quad 0x2746dd4b15350d61
        .quad 0xd03fcbc8ee9521b7
        .quad 0xe86e365a138672ca
        .quad 0x510e987f7e7d89e2
        .quad 0xcb5a7d638e47077c
        .quad 0x8db7536120a1c059
        .quad 0x549e1e4d8bedfdcc
        .quad 0x080153b7503b179d
        .quad 0xdda69d930a3ed3e3
        .quad 0x3d386ef1cd60a722
        .quad 0xc817ad58bdaa4ee6
        .quad 0x23be8d554fe7372a



        .quad 0x95fe919a74ef4fad
        .quad 0x3a827becf6a308a2
        .quad 0x964e01d309a47b01
        .quad 0x71c43c4f5ba3c797
        .quad 0xbc1ef4bd567ae7a9
        .quad 0x3f624cb2d64498bd
        .quad 0xe41064d22c1f4ec8
        .quad 0x2ef9c5a5ba384001
        .quad 0xb6fd6df6fa9e74cd
        .quad 0xf18278bce4af267a
        .quad 0x8255b3d0f1ef990e
        .quad 0x5a758ca390c5f293



        .quad 0xa2b72710d9462495
        .quad 0x3aa8c6d2d57d5003
        .quad 0xe3d400bfa0b487ca
        .quad 0x2dbae244b3eb72ec
        .quad 0x8ce0918b1d61dc94
        .quad 0x8ded36469a813066
        .quad 0xd4e6a829afe8aad3
        .quad 0x0a738027f639d43f
        .quad 0x980f4a2f57ffe1cc
        .quad 0x00670d0de1839843
        .quad 0x105c3f4a49fb15fd
        .quad 0x2698ca635126a69c



        .quad 0xe765318832b0ba78
        .quad 0x381831f7925cff8b
        .quad 0x08a81b91a0291fcc
        .quad 0x1fb43dcc49caeb07
        .quad 0x2e3d702f5e3dd90e
        .quad 0x9e3f0918e4d25386
        .quad 0x5e773ef6024da96a
        .quad 0x3c004b0c4afa3332
        .quad 0x9aa946ac06f4b82b
        .quad 0x1ca284a5a806c4f3
        .quad 0x3ed3265fc6cd4787
        .quad 0x6b43fd01cd1fd217



        .quad 0xc7a75d4b4697c544
        .quad 0x15fdf848df0fffbf
        .quad 0x2868b9ebaa46785a
        .quad 0x5a68d7105b52f714
        .quad 0xb5c742583e760ef3
        .quad 0x75dc52b9ee0ab990
        .quad 0xbf1427c2072b923f
        .quad 0x73420b2d6ff0d9f0
        .quad 0xaf2cf6cb9e851e06
        .quad 0x8f593913c62238c4
        .quad 0xda8ab89699fbf373
        .quad 0x3db5632fea34bc9e



        .quad 0xf46eee2bf75dd9d8
        .quad 0x0d17b1f6396759a5
        .quad 0x1bf2d131499e7273
        .quad 0x04321adf49d75f13
        .quad 0x2e4990b1829825d5
        .quad 0xedeaeb873e9a8991
        .quad 0xeef03d394c704af8
        .quad 0x59197ea495df2b0e
        .quad 0x04e16019e4e55aae
        .quad 0xe77b437a7e2f92e9
        .quad 0xc7ce2dc16f159aa4
        .quad 0x45eafdc1f4d70cc0



        .quad 0x698401858045d72b
        .quad 0x4c22faa2cf2f0651
        .quad 0x941a36656b222dc6
        .quad 0x5a5eebc80362dade
        .quad 0xb60e4624cfccb1ed
        .quad 0x59dbc292bd5c0395
        .quad 0x31a09d1ddc0481c9
        .quad 0x3f73ceea5d56d940
        .quad 0xb7a7bfd10a4e8dc6
        .quad 0xbe57007e44c9b339
        .quad 0x60c1207f1557aefa
        .quad 0x26058891266218db



        .quad 0x59f704a68360ff04
        .quad 0xc3d93fde7661e6f4
        .quad 0x831b2a7312873551
        .quad 0x54ad0c2e4e615d57
        .quad 0x4c818e3cc676e542
        .quad 0x5e422c9303ceccad
        .quad 0xec07cccab4129f08
        .quad 0x0dedfa10b24443b8
        .quad 0xee3b67d5b82b522a
        .quad 0x36f163469fa5c1eb
        .quad 0xa5b4d2f26ec19fd3
        .quad 0x62ecb2baa77a9408



        .quad 0xe5ed795261152b3d
        .quad 0x4962357d0eddd7d1
        .quad 0x7482c8d0b96b4c71
        .quad 0x2e59f919a966d8be
        .quad 0x92072836afb62874
        .quad 0x5fcd5e8579e104a5
        .quad 0x5aad01adc630a14a
        .quad 0x61913d5075663f98
        .quad 0x0dc62d361a3231da
        .quad 0xfa47583294200270
        .quad 0x02d801513f9594ce
        .quad 0x3ddbc2a131c05d5c



        .quad 0x3f50a50a4ffb81ef
        .quad 0xb1e035093bf420bf
        .quad 0x9baa8e1cc6aa2cd0
        .quad 0x32239861fa237a40
        .quad 0xfb735ac2004a35d1
        .quad 0x31de0f433a6607c3
        .quad 0x7b8591bfc528d599
        .quad 0x55be9a25f5bb050c
        .quad 0x0d005acd33db3dbf
        .quad 0x0111b37c80ac35e2
        .quad 0x4892d66c6f88ebeb
        .quad 0x770eadb16508fbcd



        .quad 0x8451f9e05e4e89dd
        .quad 0xc06302ffbc793937
        .quad 0x5d22749556a6495c
        .quad 0x09a6755ca05603fb
        .quad 0xf1d3b681a05071b9
        .quad 0x2207659a3592ff3a
        .quad 0x5f0169297881e40e
        .quad 0x16bedd0e86ba374e
        .quad 0x5ecccc4f2c2737b5
        .quad 0x43b79e0c2dccb703
        .quad 0x33e008bc4ec43df3
        .quad 0x06c1b840f07566c0



        .quad 0x7688a5c6a388f877
        .quad 0x02a96c14deb2b6ac
        .quad 0x64c9f3431b8c2af8
        .quad 0x3628435554a1eed6
        .quad 0x69ee9e7f9b02805c
        .quad 0xcbff828a547d1640
        .quad 0x3d93a869b2430968
        .quad 0x46b7b8cd3fe26972
        .quad 0xe9812086fe7eebe0
        .quad 0x4cba6be72f515437
        .quad 0x1d04168b516efae9
        .quad 0x5ea1391043982cb9



        .quad 0x49125c9cf4702ee1
        .quad 0x4520b71f8b25b32d
        .quad 0x33193026501fef7e
        .quad 0x656d8997c8d2eb2b
        .quad 0x6f2b3be4d5d3b002
        .quad 0xafec33d96a09c880
        .quad 0x035f73a4a8bcc4cc
        .quad 0x22c5b9284662198b
        .quad 0xcb58c8fe433d8939
        .quad 0x89a0cb2e6a8d7e50
        .quad 0x79ca955309fbbe5a
        .quad 0x0c626616cd7fc106



        .quad 0x1ffeb80a4879b61f
        .quad 0x6396726e4ada21ed
        .quad 0x33c7b093368025ba
        .quad 0x471aa0c6f3c31788
        .quad 0x8fdfc379fbf454b1
        .quad 0x45a5a970f1a4b771
        .quad 0xac921ef7bad35915
        .quad 0x42d088dca81c2192
        .quad 0x8fda0f37a0165199
        .quad 0x0adadb77c8a0e343
        .quad 0x20fbfdfcc875e820
        .quad 0x1cf2bea80c2206e7



        .quad 0xc2ddf1deb36202ac
        .quad 0x92a5fe09d2e27aa5
        .quad 0x7d1648f6fc09f1d3
        .quad 0x74c2cc0513bc4959
        .quad 0x982d6e1a02c0412f
        .quad 0x90fa4c83db58e8fe
        .quad 0x01c2f5bcdcb18bc0
        .quad 0x686e0c90216abc66
        .quad 0x1fadbadba54395a7
        .quad 0xb41a02a0ae0da66a
        .quad 0xbf19f598bba37c07
        .quad 0x6a12b8acde48430d



        .quad 0xf8daea1f39d495d9
        .quad 0x592c190e525f1dfc
        .quad 0xdb8cbd04c9991d1b
        .quad 0x11f7fda3d88f0cb7
        .quad 0x793bdd801aaeeb5f
        .quad 0x00a2a0aac1518871
        .quad 0xe8a373a31f2136b4
        .quad 0x48aab888fc91ef19
        .quad 0x041f7e925830f40e
        .quad 0x002d6ca979661c06
        .quad 0x86dc9ff92b046a2e
        .quad 0x760360928b0493d1



        .quad 0x21bb41c6120cf9c6
        .quad 0xeab2aa12decda59b
        .quad 0xc1a72d020aa48b34
        .quad 0x215d4d27e87d3b68
        .quad 0xb43108e5695a0b05
        .quad 0x6cb00ee8ad37a38b
        .quad 0x5edad6eea3537381
        .quad 0x3f2602d4b6dc3224
        .quad 0xc8b247b65bcaf19c
        .quad 0x49779dc3b1b2c652
        .quad 0x89a180bbd5ece2e2
        .quad 0x13f098a3cec8e039



        .quad 0x9adc0ff9ce5ec54b
        .quad 0x039c2a6b8c2f130d
        .quad 0x028007c7f0f89515
        .quad 0x78968314ac04b36b
        .quad 0xf3aa57a22796bb14
        .quad 0x883abab79b07da21
        .quad 0xe54be21831a0391c
        .quad 0x5ee7fb38d83205f9
        .quad 0x538dfdcb41446a8e
        .quad 0xa5acfda9434937f9
        .quad 0x46af908d263c8c78
        .quad 0x61d0633c9bca0d09



        .quad 0x63744935ffdb2566
        .quad 0xc5bd6b89780b68bb
        .quad 0x6f1b3280553eec03
        .quad 0x6e965fd847aed7f5
        .quad 0xada328bcf8fc73df
        .quad 0xee84695da6f037fc
        .quad 0x637fb4db38c2a909
        .quad 0x5b23ac2df8067bdc
        .quad 0x9ad2b953ee80527b
        .quad 0xe88f19aafade6d8d
        .quad 0x0e711704150e82cf
        .quad 0x79b9bbb9dd95dedc



        .quad 0xebb355406a3126c2
        .quad 0xd26383a868c8c393
        .quad 0x6c0c6429e5b97a82
        .quad 0x5065f158c9fd2147
        .quad 0xd1997dae8e9f7374
        .quad 0xa032a2f8cfbb0816
        .quad 0xcd6cba126d445f0a
        .quad 0x1ba811460accb834
        .quad 0x708169fb0c429954
        .quad 0xe14600acd76ecf67
        .quad 0x2eaab98a70e645ba
        .quad 0x3981f39e58a4faf2



        .quad 0x18fb8a7559230a93
        .quad 0x1d168f6960e6f45d
        .quad 0x3a85a94514a93cb5
        .quad 0x38dc083705acd0fd
        .quad 0xc845dfa56de66fde
        .quad 0xe152a5002c40483a
        .quad 0xe9d2e163c7b4f632
        .quad 0x30f4452edcbc1b65
        .quad 0x856d2782c5759740
        .quad 0xfa134569f99cbecc
        .quad 0x8844fc73c0ea4e71
        .quad 0x632d9a1a593f2469



        .quad 0xf6bb6b15b807cba6
        .quad 0x1823c7dfbc54f0d7
        .quad 0xbb1d97036e29670b
        .quad 0x0b24f48847ed4a57
        .quad 0xbf09fd11ed0c84a7
        .quad 0x63f071810d9f693a
        .quad 0x21908c2d57cf8779
        .quad 0x3a5a7df28af64ba2
        .quad 0xdcdad4be511beac7
        .quad 0xa4538075ed26ccf2
        .quad 0xe19cff9f005f9a65
        .quad 0x34fcf74475481f63



        .quad 0xc197e04c789767ca
        .quad 0xb8714dcb38d9467d
        .quad 0x55de888283f95fa8
        .quad 0x3d3bdc164dfa63f7
        .quad 0xa5bb1dab78cfaa98
        .quad 0x5ceda267190b72f2
        .quad 0x9309c9110a92608e
        .quad 0x0119a3042fb374b0
        .quad 0x67a2d89ce8c2177d
        .quad 0x669da5f66895d0c1
        .quad 0xf56598e5b282a2b0
        .quad 0x56c088f1ede20a73



        .quad 0x336d3d1110a86e17
        .quad 0xd7f388320b75b2fa
        .quad 0xf915337625072988
        .quad 0x09674c6b99108b87
        .quad 0x581b5fac24f38f02
        .quad 0xa90be9febae30cbd
        .quad 0x9a2169028acf92f0
        .quad 0x038b7ea48359038f
        .quad 0x9f4ef82199316ff8
        .quad 0x2f49d282eaa78d4f
        .quad 0x0971a5ab5aef3174
        .quad 0x6e5e31025969eb65



        .quad 0xb16c62f587e593fb
        .quad 0x4999eddeca5d3e71
        .quad 0xb491c1e014cc3e6d
        .quad 0x08f5114789a8dba8
        .quad 0x3304fb0e63066222
        .quad 0xfb35068987acba3f
        .quad 0xbd1924778c1061a3
        .quad 0x3058ad43d1838620
        .quad 0x323c0ffde57663d0
        .quad 0x05c3df38a22ea610
        .quad 0xbdc78abdac994f9a
        .quad 0x26549fa4efe3dc99



        .quad 0x738b38d787ce8f89
        .quad 0xb62658e24179a88d
        .quad 0x30738c9cf151316d
        .quad 0x49128c7f727275c9
        .quad 0x04dbbc17f75396b9
        .quad 0x69e6a2d7d2f86746
        .quad 0xc6409d99f53eabc6
        .quad 0x606175f6332e25d2
        .quad 0x4021370ef540e7dd
        .quad 0x0910d6f5a1f1d0a5
        .quad 0x4634aacd5b06b807
        .quad 0x6a39e6356944f235



        .quad 0x96cd5640df90f3e7
        .quad 0x6c3a760edbfa25ea
        .quad 0x24f3ef0959e33cc4
        .quad 0x42889e7e530d2e58
        .quad 0x1da1965774049e9d
        .quad 0xfbcd6ea198fe352b
        .quad 0xb1cbcd50cc5236a6
        .quad 0x1f5ec83d3f9846e2
        .quad 0x8efb23c3328ccb75
        .quad 0xaf42a207dd876ee9
        .quad 0x20fbdadc5dfae796
        .quad 0x241e246b06bf9f51



        .quad 0x29e68e57ad6e98f6
        .quad 0x4c9260c80b462065
        .quad 0x3f00862ea51ebb4b
        .quad 0x5bc2c77fb38d9097
        .quad 0x7eaafc9a6280bbb8
        .quad 0x22a70f12f403d809
        .quad 0x31ce40bb1bfc8d20
        .quad 0x2bc65635e8bd53ee
        .quad 0xe8d5dc9fa96bad93
        .quad 0xe58fb17dde1947dc
        .quad 0x681532ea65185fa3
        .quad 0x1fdd6c3b034a7830



        .quad 0x0a64e28c55dc18fe
        .quad 0xe3df9e993399ebdd
        .quad 0x79ac432370e2e652
        .quad 0x35ff7fc33ae4cc0e
        .quad 0x9c13a6a52dd8f7a9
        .quad 0x2dbb1f8c3efdcabf
        .quad 0x961e32405e08f7b5
        .quad 0x48c8a121bbe6c9e5
        .quad 0xfc415a7c59646445
        .quad 0xd224b2d7c128b615
        .quad 0x6035c9c905fbb912
        .quad 0x42d7a91274429fab



        .quad 0x4e6213e3eaf72ed3
        .quad 0x6794981a43acd4e7
        .quad 0xff547cde6eb508cb
        .quad 0x6fed19dd10fcb532
        .quad 0xa9a48947933da5bc
        .quad 0x4a58920ec2e979ec
        .quad 0x96d8800013e5ac4c
        .quad 0x453692d74b48b147
        .quad 0xdd775d99a8559c6f
        .quad 0xf42a2140df003e24
        .quad 0x5223e229da928a66
        .quad 0x063f46ba6d38f22c



        .quad 0xd2d242895f536694
        .quad 0xca33a2c542939b2c
        .quad 0x986fada6c7ddb95c
        .quad 0x5a152c042f712d5d
        .quad 0x39843cb737346921
        .quad 0xa747fb0738c89447
        .quad 0xcb8d8031a245307e
        .quad 0x67810f8e6d82f068
        .quad 0x3eeb8fbcd2287db4
        .quad 0x72c7d3a301a03e93
        .quad 0x5473e88cbd98265a
        .quad 0x7324aa515921b403



        .quad 0x857942f46c3cbe8e
        .quad 0xa1d364b14730c046
        .quad 0x1c8ed914d23c41bf
        .quad 0x0838e161eef6d5d2
        .quad 0xad23f6dae82354cb
        .quad 0x6962502ab6571a6d
        .quad 0x9b651636e38e37d1
        .quad 0x5cac5005d1a3312f
        .quad 0x8cc154cce9e39904
        .quad 0x5b3a040b84de6846
        .quad 0xc4d8a61cb1be5d6e
        .quad 0x40fb897bd8861f02



        .quad 0x84c5aa9062de37a1
        .quad 0x421da5000d1d96e1
        .quad 0x788286306a9242d9
        .quad 0x3c5e464a690d10da
        .quad 0xe57ed8475ab10761
        .quad 0x71435e206fd13746
        .quad 0x342f824ecd025632
        .quad 0x4b16281ea8791e7b
        .quad 0xd1c101d50b813381
        .quad 0xdee60f1176ee6828
        .quad 0x0cb68893383f6409
        .quad 0x6183c565f6ff484a



        .quad 0x741d5a461e6bf9d6
        .quad 0x2305b3fc7777a581
        .quad 0xd45574a26474d3d9
        .quad 0x1926e1dc6401e0ff
        .quad 0xdb468549af3f666e
        .quad 0xd77fcf04f14a0ea5
        .quad 0x3df23ff7a4ba0c47
        .quad 0x3a10dfe132ce3c85
        .quad 0xe07f4e8aea17cea0
        .quad 0x2fd515463a1fc1fd
        .quad 0x175322fd31f2c0f1
        .quad 0x1fa1d01d861e5d15



        .quad 0xcc8055947d599832
        .quad 0x1e4656da37f15520
        .quad 0x99f6f7744e059320
        .quad 0x773563bc6a75cf33
        .quad 0x38dcac00d1df94ab
        .quad 0x2e712bddd1080de9
        .quad 0x7f13e93efdd5e262
        .quad 0x73fced18ee9a01e5
        .quad 0x06b1e90863139cb3
        .quad 0xa493da67c5a03ecd
        .quad 0x8d77cec8ad638932
        .quad 0x1f426b701b864f44



        .quad 0xefc9264c41911c01
        .quad 0xf1a3b7b817a22c25
        .quad 0x5875da6bf30f1447
        .quad 0x4e1af5271d31b090
        .quad 0xf17e35c891a12552
        .quad 0xb76b8153575e9c76
        .quad 0xfa83406f0d9b723e
        .quad 0x0b76bb1b3fa7e438
        .quad 0x08b8c1f97f92939b
        .quad 0xbe6771cbd444ab6e
        .quad 0x22e5646399bb8017
        .quad 0x7b6dd61eb772a955



        .quad 0xb7adc1e850f33d92
        .quad 0x7998fa4f608cd5cf
        .quad 0xad962dbd8dfc5bdb
        .quad 0x703e9bceaf1d2f4f
        .quad 0x5730abf9ab01d2c7
        .quad 0x16fb76dc40143b18
        .quad 0x866cbe65a0cbb281
        .quad 0x53fa9b659bff6afe
        .quad 0x6c14c8e994885455
        .quad 0x843a5d6665aed4e5
        .quad 0x181bb73ebcd65af1
        .quad 0x398d93e5c4c61f50



        .quad 0x1c4bd16733e248f3
        .quad 0xbd9e128715bf0a5f
        .quad 0xd43f8cf0a10b0376
        .quad 0x53b09b5ddf191b13
        .quad 0xc3877c60d2e7e3f2
        .quad 0x3b34aaa030828bb1
        .quad 0x283e26e7739ef138
        .quad 0x699c9c9002c30577
        .quad 0xf306a7235946f1cc
        .quad 0x921718b5cce5d97d
        .quad 0x28cdd24781b4e975
        .quad 0x51caf30c6fcdd907



        .quad 0xa60ba7427674e00a
        .quad 0x630e8570a17a7bf3
        .quad 0x3758563dcf3324cc
        .quad 0x5504aa292383fdaa
        .quad 0x737af99a18ac54c7
        .quad 0x903378dcc51cb30f
        .quad 0x2b89bc334ce10cc7
        .quad 0x12ae29c189f8e99a
        .quad 0xa99ec0cb1f0d01cf
        .quad 0x0dd1efcc3a34f7ae
        .quad 0x55ca7521d09c4e22
        .quad 0x5fd14fe958eba5ea



        .quad 0xb5dc2ddf2845ab2c
        .quad 0x069491b10a7fe993
        .quad 0x4daaf3d64002e346
        .quad 0x093ff26e586474d1
        .quad 0x3c42fe5ebf93cb8e
        .quad 0xbedfa85136d4565f
        .quad 0xe0f0859e884220e8
        .quad 0x7dd73f960725d128
        .quad 0xb10d24fe68059829
        .quad 0x75730672dbaf23e5
        .quad 0x1367253ab457ac29
        .quad 0x2f59bcbc86b470a4



        .quad 0x83847d429917135f
        .quad 0xad1b911f567d03d7
        .quad 0x7e7748d9be77aad1
        .quad 0x5458b42e2e51af4a
        .quad 0x7041d560b691c301
        .quad 0x85201b3fadd7e71e
        .quad 0x16c2e16311335585
        .quad 0x2aa55e3d010828b1
        .quad 0xed5192e60c07444f
        .quad 0x42c54e2d74421d10
        .quad 0x352b4c82fdb5c864
        .quad 0x13e9004a8a768664



        .quad 0xcbb5b5556c032bff
        .quad 0xdf7191b729297a3a
        .quad 0xc1ff7326aded81bb
        .quad 0x71ade8bb68be03f5
        .quad 0x1e6284c5806b467c
        .quad 0xc5f6997be75d607b
        .quad 0x8b67d958b378d262
        .quad 0x3d88d66a81cd8b70
        .quad 0x8b767a93204ed789
        .quad 0x762fcacb9fa0ae2a
        .quad 0x771febcc6dce4887
        .quad 0x343062158ff05fb3



        .quad 0xe05da1a7e1f5bf49
        .quad 0x26457d6dd4736092
        .quad 0x77dcb07773cc32f6
        .quad 0x0a5d94969cdd5fcd
        .quad 0xfce219072a7b31b4
        .quad 0x4d7adc75aa578016
        .quad 0x0ec276a687479324
        .quad 0x6d6d9d5d1fda4beb
        .quad 0x22b1a58ae9b08183
        .quad 0xfd95d071c15c388b
        .quad 0xa9812376850a0517
        .quad 0x33384cbabb7f335e



        .quad 0x3c6fa2680ca2c7b5
        .quad 0x1b5082046fb64fda
        .quad 0xeb53349c5431d6de
        .quad 0x5278b38f6b879c89
        .quad 0x33bc627a26218b8d
        .quad 0xea80b21fc7a80c61
        .quad 0x9458b12b173e9ee6
        .quad 0x076247be0e2f3059
        .quad 0x52e105f61416375a
        .quad 0xec97af3685abeba4
        .quad 0x26e6b50623a67c36
        .quad 0x5cf0e856f3d4fb01



        .quad 0xf6c968731ae8cab4
        .quad 0x5e20741ecb4f92c5
        .quad 0x2da53be58ccdbc3e
        .quad 0x2dddfea269970df7
        .quad 0xbeaece313db342a8
        .quad 0xcba3635b842db7ee
        .quad 0xe88c6620817f13ef
        .quad 0x1b9438aa4e76d5c6
        .quad 0x8a50777e166f031a
        .quad 0x067b39f10fb7a328
        .quad 0x1925c9a6010fbd76
        .quad 0x6df9b575cc740905



        .quad 0x42c1192927f6bdcf
        .quad 0x8f91917a403d61ca
        .quad 0xdc1c5a668b9e1f61
        .quad 0x1596047804ec0f8d
        .quad 0xecdfc35b48cade41
        .quad 0x6a88471fb2328270
        .quad 0x740a4a2440a01b6a
        .quad 0x471e5796003b5f29
        .quad 0xda96bbb3aced37ac
        .quad 0x7a2423b5e9208cea
        .quad 0x24cc5c3038aebae2
        .quad 0x50c356afdc5dae2f



        .quad 0x09dcbf4341c30318
        .quad 0xeeba061183181dce
        .quad 0xc179c0cedc1e29a1
        .quad 0x1dbf7b89073f35b0
        .quad 0xcfed9cdf1b31b964
        .quad 0xf486a9858ca51af3
        .quad 0x14897265ea8c1f84
        .quad 0x784a53dd932acc00
        .quad 0x2d99f9df14fc4920
        .quad 0x76ccb60cc4499fe5
        .quad 0xa4132cbbe5cf0003
        .quad 0x3f93d82354f000ea



        .quad 0x8183e7689e04ce85
        .quad 0x678fb71e04465341
        .quad 0xad92058f6688edac
        .quad 0x5da350d3532b099a
        .quad 0xeaac12d179e14978
        .quad 0xff923ff3bbebff5e
        .quad 0x4af663e40663ce27
        .quad 0x0fd381a811a5f5ff
        .quad 0xf256aceca436df54
        .quad 0x108b6168ae69d6e8
        .quad 0x20d986cb6b5d036c
        .quad 0x655957b9fee2af50



        .quad 0xaea8b07fa902030f
        .quad 0xf88c766af463d143
        .quad 0x15b083663c787a60
        .quad 0x08eab1148267a4a8
        .quad 0xbdc1409bd002d0ac
        .quad 0x66660245b5ccd9a6
        .quad 0x82317dc4fade85ec
        .quad 0x02fe934b6ad7df0d
        .quad 0xef5cf100cfb7ea74
        .quad 0x22897633a1cb42ac
        .quad 0xd4ce0c54cef285e2
        .quad 0x30408c048a146a55



        .quad 0x739d8845832fcedb
        .quad 0xfa38d6c9ae6bf863
        .quad 0x32bc0dcab74ffef7
        .quad 0x73937e8814bce45e
        .quad 0xbb2e00c9193b877f
        .quad 0xece3a890e0dc506b
        .quad 0xecf3b7c036de649f
        .quad 0x5f46040898de9e1a
        .quad 0xb9037116297bf48d
        .quad 0xa9d13b22d4f06834
        .quad 0xe19715574696bdc6
        .quad 0x2cf8a4e891d5e835



        .quad 0x6d93fd8707110f67
        .quad 0xdd4c09d37c38b549
        .quad 0x7cb16a4cc2736a86
        .quad 0x2049bd6e58252a09
        .quad 0x2cb5487e17d06ba2
        .quad 0x24d2381c3950196b
        .quad 0xd7659c8185978a30
        .quad 0x7a6f7f2891d6a4f6
        .quad 0x7d09fd8d6a9aef49
        .quad 0xf0ee60be5b3db90b
        .quad 0x4c21b52c519ebfd4
        .quad 0x6011aadfc545941d



        .quad 0x5f67926dcf95f83c
        .quad 0x7c7e856171289071
        .quad 0xd6a1e7f3998f7a5b
        .quad 0x6fc5cc1b0b62f9e0
        .quad 0x63ded0c802cbf890
        .quad 0xfbd098ca0dff6aaa
        .quad 0x624d0afdb9b6ed99
        .quad 0x69ce18b779340b1e
        .quad 0xd1ef5528b29879cb
        .quad 0xdd1aae3cd47e9092
        .quad 0x127e0442189f2352
        .quad 0x15596b3ae57101f1



        .quad 0x462739d23f9179a2
        .quad 0xff83123197d6ddcf
        .quad 0x1307deb553f2148a
        .quad 0x0d2237687b5f4dda
        .quad 0x09ff31167e5124ca
        .quad 0x0be4158bd9c745df
        .quad 0x292b7d227ef556e5
        .quad 0x3aa4e241afb6d138
        .quad 0x2cc138bf2a3305f5
        .quad 0x48583f8fa2e926c3
        .quad 0x083ab1a25549d2eb
        .quad 0x32fcaa6e4687a36c



        .quad 0x7bc56e8dc57d9af5
        .quad 0x3e0bd2ed9df0bdf2
        .quad 0xaac014de22efe4a3
        .quad 0x4627e9cefebd6a5c
        .quad 0x3207a4732787ccdf
        .quad 0x17e31908f213e3f8
        .quad 0xd5b2ecd7f60d964e
        .quad 0x746f6336c2600be9
        .quad 0x3f4af345ab6c971c
        .quad 0xe288eb729943731f
        .quad 0x33596a8a0344186d
        .quad 0x7b4917007ed66293



        .quad 0x2d85fb5cab84b064
        .quad 0x497810d289f3bc14
        .quad 0x476adc447b15ce0c
        .quad 0x122ba376f844fd7b
        .quad 0x54341b28dd53a2dd
        .quad 0xaa17905bdf42fc3f
        .quad 0x0ff592d94dd2f8f4
        .quad 0x1d03620fe08cd37d
        .quad 0xc20232cda2b4e554
        .quad 0x9ed0fd42115d187f
        .quad 0x2eabb4be7dd479d9
        .quad 0x02c70bf52b68ec4c



        .quad 0xa287ec4b5d0b2fbb
        .quad 0x415c5790074882ca
        .quad 0xe044a61ec1d0815c
        .quad 0x26334f0a409ef5e0
        .quad 0xace532bf458d72e1
        .quad 0x5be768e07cb73cb5
        .quad 0x56cf7d94ee8bbde7
        .quad 0x6b0697e3feb43a03
        .quad 0xb6c8f04adf62a3c0
        .quad 0x3ef000ef076da45d
        .quad 0x9c9cb95849f0d2a9
        .quad 0x1cc37f43441b2fae



        .quad 0x508f565a5cc7324f
        .quad 0xd061c4c0e506a922
        .quad 0xfb18abdb5c45ac19
        .quad 0x6c6809c10380314a
        .quad 0xd76656f1c9ceaeb9
        .quad 0x1c5b15f818e5656a
        .quad 0x26e72832844c2334
        .quad 0x3a346f772f196838
        .quad 0xd2d55112e2da6ac8
        .quad 0xe9bd0331b1e851ed
        .quad 0x960746dd8ec67262
        .quad 0x05911b9f6ef7c5d0



        .quad 0xe9dcd756b637ff2d
        .quad 0xec4c348fc987f0c4
        .quad 0xced59285f3fbc7b7
        .quad 0x3305354793e1ea87
        .quad 0x01c18980c5fe9f94
        .quad 0xcd656769716fd5c8
        .quad 0x816045c3d195a086
        .quad 0x6e2b7f3266cc7982
        .quad 0xcc802468f7c3568f
        .quad 0x9de9ba8219974cb3
        .quad 0xabb7229cb5b81360
        .quad 0x44e2017a6fbeba62



        .quad 0xc4c2a74354dab774
        .quad 0x8e5d4c3c4eaf031a
        .quad 0xb76c23d242838f17
        .quad 0x749a098f68dce4ea
        .quad 0x87f82cf3b6ca6ecd
        .quad 0x580f893e18f4a0c2
        .quad 0x058930072604e557
        .quad 0x6cab6ac256d19c1d
        .quad 0xdcdfe0a02cc1de60
        .quad 0x032665ff51c5575b
        .quad 0x2c0c32f1073abeeb
        .quad 0x6a882014cd7b8606



        .quad 0xa52a92fea4747fb5
        .quad 0xdc12a4491fa5ab89
        .quad 0xd82da94bb847a4ce
        .quad 0x4d77edce9512cc4e
        .quad 0xd111d17caf4feb6e
        .quad 0x050bba42b33aa4a3
        .quad 0x17514c3ceeb46c30
        .quad 0x54bedb8b1bc27d75
        .quad 0x77c8e14577e2189c
        .quad 0xa3e46f6aff99c445
        .quad 0x3144dfc86d335343
        .quad 0x3a96559e7c4216a9



        .quad 0x12550d37f42ad2ee
        .quad 0x8b78e00498a1fbf5
        .quad 0x5d53078233894cb2
        .quad 0x02c84e4e3e498d0c
        .quad 0x4493896880baaa52
        .quad 0x4c98afc4f285940e
        .quad 0xef4aa79ba45448b6
        .quad 0x5278c510a57aae7f
        .quad 0xa54dd074294c0b94
        .quad 0xf55d46b8df18ffb6
        .quad 0xf06fecc58dae8366
        .quad 0x588657668190d165



        .quad 0xd47712311aef7117
        .quad 0x50343101229e92c7
        .quad 0x7a95e1849d159b97
        .quad 0x2449959b8b5d29c9
        .quad 0xbf5834f03de25cc3
        .quad 0xb887c8aed6815496
        .quad 0x5105221a9481e892
        .quad 0x6760ed19f7723f93
        .quad 0x669ba3b7ac35e160
        .quad 0x2eccf73fba842056
        .quad 0x1aec1f17c0804f07
        .quad 0x0d96bc031856f4e7



        .quad 0x3318be7775c52d82
        .quad 0x4cb764b554d0aab9
        .quad 0xabcf3d27cc773d91
        .quad 0x3bf4d1848123288a
        .quad 0xb1d534b0cc7505e1
        .quad 0x32cd003416c35288
        .quad 0xcb36a5800762c29d
        .quad 0x5bfe69b9237a0bf8
        .quad 0x183eab7e78a151ab
        .quad 0xbbe990c999093763
        .quad 0xff717d6e4ac7e335
        .quad 0x4c5cddb325f39f88



        .quad 0xc0f6b74d6190a6eb
        .quad 0x20ea81a42db8f4e4
        .quad 0xa8bd6f7d97315760
        .quad 0x33b1d60262ac7c21
        .quad 0x57750967e7a9f902
        .quad 0x2c37fdfc4f5b467e
        .quad 0xb261663a3177ba46
        .quad 0x3a375e78dc2d532b
        .quad 0x8141e72f2d4dddea
        .quad 0xe6eafe9862c607c8
        .quad 0x23c28458573cafd0
        .quad 0x46b9476f4ff97346



        .quad 0x0c1ffea44f901e5c
        .quad 0x2b0b6fb72184b782
        .quad 0xe587ff910114db88
        .quad 0x37130f364785a142
        .quad 0x1215505c0d58359f
        .quad 0x2a2013c7fc28c46b
        .quad 0x24a0a1af89ea664e
        .quad 0x4400b638a1130e1f
        .quad 0x3a01b76496ed19c3
        .quad 0x31e00ab0ed327230
        .quad 0x520a885783ca15b1
        .quad 0x06aab9875accbec7



        .quad 0xc1339983f5df0ebb
        .quad 0xc0f3758f512c4cac
        .quad 0x2cf1130a0bb398e1
        .quad 0x6b3cecf9aa270c62
        .quad 0x5349acf3512eeaef
        .quad 0x20c141d31cc1cb49
        .quad 0x24180c07a99a688d
        .quad 0x555ef9d1c64b2d17
        .quad 0x36a770ba3b73bd08
        .quad 0x624aef08a3afbf0c
        .quad 0x5737ff98b40946f2
        .quad 0x675f4de13381749d



        .quad 0x0e2c52036b1782fc
        .quad 0x64816c816cad83b4
        .quad 0xd0dcbdd96964073e
        .quad 0x13d99df70164c520
        .quad 0xa12ff6d93bdab31d
        .quad 0x0725d80f9d652dfe
        .quad 0x019c4ff39abe9487
        .quad 0x60f450b882cd3c43
        .quad 0x014b5ec321e5c0ca
        .quad 0x4fcb69c9d719bfa2
        .quad 0x4e5f1c18750023a0
        .quad 0x1c06de9e55edac80



        .quad 0x990f7ad6a33ec4e2
        .quad 0x6608f938be2ee08e
        .quad 0x9ca143c563284515
        .quad 0x4cf38a1fec2db60d
        .quad 0xffd52b40ff6d69aa
        .quad 0x34530b18dc4049bb
        .quad 0x5e4a5c2fa34d9897
        .quad 0x78096f8e7d32ba2d
        .quad 0xa0aaaa650dfa5ce7
        .quad 0xf9c49e2a48b5478c
        .quad 0x4f09cc7d7003725b
        .quad 0x373cad3a26091abe



        .quad 0xb294634d82c9f57c
        .quad 0x1fcbfde124934536
        .quad 0x9e9c4db3418cdb5a
        .quad 0x0040f3d9454419fc
        .quad 0xf1bea8fb89ddbbad
        .quad 0x3bcb2cbc61aeaecb
        .quad 0x8f58a7bb1f9b8d9d
        .quad 0x21547eda5112a686
        .quad 0xdefde939fd5986d3
        .quad 0xf4272c89510a380c
        .quad 0xb72ba407bb3119b9
        .quad 0x63550a334a254df4



        .quad 0x6507d6edb569cf37
        .quad 0x178429b00ca52ee1
        .quad 0xea7c0090eb6bd65d
        .quad 0x3eea62c7daf78f51
        .quad 0x9bba584572547b49
        .quad 0xf305c6fae2c408e0
        .quad 0x60e8fa69c734f18d
        .quad 0x39a92bafaa7d767a
        .quad 0x9d24c713e693274e
        .quad 0x5f63857768dbd375
        .quad 0x70525560eb8ab39a
        .quad 0x68436a0665c9c4cd



        .quad 0xbc0235e8202f3f27
        .quad 0xc75c00e264f975b0
        .quad 0x91a4e9d5a38c2416
        .quad 0x17b6e7f68ab789f9
        .quad 0x1e56d317e820107c
        .quad 0xc5266844840ae965
        .quad 0xc1e0a1c6320ffc7a
        .quad 0x5373669c91611472
        .quad 0x5d2814ab9a0e5257
        .quad 0x908f2084c9cab3fc
        .quad 0xafcaf5885b2d1eca
        .quad 0x1cb4b5a678f87d11



        .quad 0xb664c06b394afc6c
        .quad 0x0c88de2498da5fb1
        .quad 0x4f8d03164bcad834
        .quad 0x330bca78de7434a2
        .quad 0x6b74aa62a2a007e7
        .quad 0xf311e0b0f071c7b1
        .quad 0x5707e438000be223
        .quad 0x2dc0fd2d82ef6eac
        .quad 0x982eff841119744e
        .quad 0xf9695e962b074724
        .quad 0xc58ac14fbfc953fb
        .quad 0x3c31be1b369f1cf5



        .quad 0xb0f4864d08948aee
        .quad 0x07dc19ee91ba1c6f
        .quad 0x7975cdaea6aca158
        .quad 0x330b61134262d4bb
        .quad 0xc168bc93f9cb4272
        .quad 0xaeb8711fc7cedb98
        .quad 0x7f0e52aa34ac8d7a
        .quad 0x41cec1097e7d55bb
        .quad 0xf79619d7a26d808a
        .quad 0xbb1fd49e1d9e156d
        .quad 0x73d7c36cdba1df27
        .quad 0x26b44cd91f28777d



        .quad 0x300a9035393aa6d8
        .quad 0x2b501131a12bb1cd
        .quad 0x7b1ff677f093c222
        .quad 0x4309c1f8cab82bad
        .quad 0xaf44842db0285f37
        .quad 0x8753189047efc8df
        .quad 0x9574e091f820979a
        .quad 0x0e378d6069615579
        .quad 0xd9fa917183075a55
        .quad 0x4bdb5ad26b009fdc
        .quad 0x7829ad2cd63def0e
        .quad 0x078fc54975fd3877



        .quad 0x87dfbd1428878f2d
        .quad 0x134636dd1e9421a1
        .quad 0x4f17c951257341a3
        .quad 0x5df98d4bad296cb8
        .quad 0xe2004b5bb833a98a
        .quad 0x44775dec2d4c3330
        .quad 0x3aa244067eace913
        .quad 0x272630e3d58e00a9
        .quad 0xf3678fd0ecc90b54
        .quad 0xf001459b12043599
        .quad 0x26725fbc3758b89b
        .quad 0x4325e4aa73a719ae



        .quad 0x657dc6ef433c3493
        .quad 0x65375e9f80dbf8c3
        .quad 0x47fd2d465b372dae
        .quad 0x4966ab79796e7947
        .quad 0xed24629acf69f59d
        .quad 0x2a4a1ccedd5abbf4
        .quad 0x3535ca1f56b2d67b
        .quad 0x5d8c68d043b1b42d
        .quad 0xee332d4de3b42b0a
        .quad 0xd84e5a2b16a4601c
        .quad 0x78243877078ba3e4
        .quad 0x77ed1eb4184ee437



        .quad 0xbfd4e13f201839a0
        .quad 0xaeefffe23e3df161
        .quad 0xb65b04f06b5d1fe3
        .quad 0x52e085fb2b62fbc0
        .quad 0x185d43f89e92ed1a
        .quad 0xb04a1eeafe4719c6
        .quad 0x499fbe88a6f03f4f
        .quad 0x5d8b0d2f3c859bdd
        .quad 0x124079eaa54cf2ba
        .quad 0xd72465eb001b26e7
        .quad 0x6843bcfdc97af7fd
        .quad 0x0524b42b55eacd02



        .quad 0xfd0d5dbee45447b0
        .quad 0x6cec351a092005ee
        .quad 0x99a47844567579cb
        .quad 0x59d242a216e7fa45
        .quad 0xbc18dcad9b829eac
        .quad 0x23ae7d28b5f579d0
        .quad 0xc346122a69384233
        .quad 0x1a6110b2e7d4ac89
        .quad 0x4f833f6ae66997ac
        .quad 0x6849762a361839a4
        .quad 0x6985dec1970ab525
        .quad 0x53045e89dcb1f546



        .quad 0xcb8bb346d75353db
        .quad 0xfcfcb24bae511e22
        .quad 0xcba48d40d50ae6ef
        .quad 0x26e3bae5f4f7cb5d
        .quad 0x84da3cde8d45fe12
        .quad 0xbd42c218e444e2d2
        .quad 0xa85196781f7e3598
        .quad 0x7642c93f5616e2b2
        .quad 0x2323daa74595f8e4
        .quad 0xde688c8b857abeb4
        .quad 0x3fc48e961c59326e
        .quad 0x0b2e73ca15c9b8ba



        .quad 0xd6bb4428c17f5026
        .quad 0x9eb27223fb5a9ca7
        .quad 0xe37ba5031919c644
        .quad 0x21ce380db59a6602
        .quad 0x0e3fbfaf79c03a55
        .quad 0x3077af054cbb5acf
        .quad 0xd5c55245db3de39f
        .quad 0x015e68c1476a4af7
        .quad 0xc1d5285220066a38
        .quad 0x95603e523570aef3
        .quad 0x832659a7226b8a4d
        .quad 0x5dd689091f8eedc9



        .quad 0xcbac84debfd3c856
        .quad 0x1624c348b35ff244
        .quad 0xb7f88dca5d9cad07
        .quad 0x3b0e574da2c2ebe8
        .quad 0x1d022591a5313084
        .quad 0xca2d4aaed6270872
        .quad 0x86a12b852f0bfd20
        .quad 0x56e6c439ad7da748
        .quad 0xc704ff4942bdbae6
        .quad 0x5e21ade2b2de1f79
        .quad 0xe95db3f35652fad8
        .quad 0x0822b5378f08ebc1



        .quad 0x51f048478f387475
        .quad 0xb25dbcf49cbecb3c
        .quad 0x9aab1244d99f2055
        .quad 0x2c709e6c1c10a5d6
        .quad 0xe1b7f29362730383
        .quad 0x4b5279ffebca8a2c
        .quad 0xdafc778abfd41314
        .quad 0x7deb10149c72610f
        .quad 0xcb62af6a8766ee7a
        .quad 0x66cbec045553cd0e
        .quad 0x588001380f0be4b5
        .quad 0x08e68e9ff62ce2ea



        .quad 0x34ad500a4bc130ad
        .quad 0x8d38db493d0bd49c
        .quad 0xa25c3d98500a89be
        .quad 0x2f1f3f87eeba3b09
        .quad 0x2f2d09d50ab8f2f9
        .quad 0xacb9218dc55923df
        .quad 0x4a8f342673766cb9
        .quad 0x4cb13bd738f719f5
        .quad 0xf7848c75e515b64a
        .quad 0xa59501badb4a9038
        .quad 0xc20d313f3f751b50
        .quad 0x19a1e353c0ae2ee8



        .quad 0x7d1c7560bafa05c3
        .quad 0xb3e1a0a0c6e55e61
        .quad 0xe3529718c0d66473
        .quad 0x41546b11c20c3486
        .quad 0xb42172cdd596bdbd
        .quad 0x93e0454398eefc40
        .quad 0x9fb15347b44109b5
        .quad 0x736bd3990266ae34
        .quad 0x85532d509334b3b4
        .quad 0x46fd114b60816573
        .quad 0xcc5f5f30425c8375
        .quad 0x412295a2b87fab5c



        .quad 0x19c99b88f57ed6e9
        .quad 0x5393cb266df8c825
        .quad 0x5cee3213b30ad273
        .quad 0x14e153ebb52d2e34
        .quad 0x2e655261e293eac6
        .quad 0x845a92032133acdb
        .quad 0x460975cb7900996b
        .quad 0x0760bb8d195add80
        .quad 0x413e1a17cde6818a
        .quad 0x57156da9ed69a084
        .quad 0x2cbf268f46caccb1
        .quad 0x6b34be9bc33ac5f2



        .quad 0xf3df2f643a78c0b2
        .quad 0x4c3e971ef22e027c
        .quad 0xec7d1c5e49c1b5a3
        .quad 0x2012c18f0922dd2d
        .quad 0x11fc69656571f2d3
        .quad 0xc6c9e845530e737a
        .quad 0xe33ae7a2d4fe5035
        .quad 0x01b9c7b62e6dd30b
        .quad 0x880b55e55ac89d29
        .quad 0x1483241f45a0a763
        .quad 0x3d36efdfc2e76c1f
        .quad 0x08af5b784e4bade8



        .quad 0x283499dc881f2533
        .quad 0x9d0525da779323b6
        .quad 0x897addfb673441f4
        .quad 0x32b79d71163a168d
        .quad 0xe27314d289cc2c4b
        .quad 0x4be4bd11a287178d
        .quad 0x18d528d6fa3364ce
        .quad 0x6423c1d5afd9826e
        .quad 0xcc85f8d9edfcb36a
        .quad 0x22bcc28f3746e5f9
        .quad 0xe49de338f9e5d3cd
        .quad 0x480a5efbc13e2dcc



        .quad 0x0b51e70b01622071
        .quad 0x06b505cf8b1dafc5
        .quad 0x2c6bb061ef5aabcd
        .quad 0x47aa27600cb7bf31
        .quad 0xb6614ce442ce221f
        .quad 0x6e199dcc4c053928
        .quad 0x663fb4a4dc1cbe03
        .quad 0x24b31d47691c8e06
        .quad 0x2a541eedc015f8c3
        .quad 0x11a4fe7e7c693f7c
        .quad 0xf0af66134ea278d6
        .quad 0x545b585d14dda094



        .quad 0x67bf275ea0d43a0f
        .quad 0xade68e34089beebe
        .quad 0x4289134cd479e72e
        .quad 0x0f62f9c332ba5454
        .quad 0x6204e4d0e3b321e1
        .quad 0x3baa637a28ff1e95
        .quad 0x0b0ccffd5b99bd9e
        .quad 0x4d22dc3e64c8d071
        .quad 0xfcb46589d63b5f39
        .quad 0x5cae6a3f57cbcf61
        .quad 0xfebac2d2953afa05
        .quad 0x1c0fa01a36371436



        .quad 0xe7547449bc7cd692
        .quad 0x0f9abeaae6f73ddf
        .quad 0x4af01ca700837e29
        .quad 0x63ab1b5d3f1bc183
        .quad 0xc11ee5e854c53fae
        .quad 0x6a0b06c12b4f3ff4
        .quad 0x33540f80e0b67a72
        .quad 0x15f18fc3cd07e3ef
        .quad 0x32750763b028f48c
        .quad 0x06020740556a065f
        .quad 0xd53bd812c3495b58
        .quad 0x08706c9b865f508d



        .quad 0xf37ca2ab3d343dff
        .quad 0x1a8c6a2d80abc617
        .quad 0x8e49e035d4ccffca
        .quad 0x48b46beebaa1d1b9
        .quad 0xcc991b4138b41246
        .quad 0x243b9c526f9ac26b
        .quad 0xb9ef494db7cbabbd
        .quad 0x5fba433dd082ed00
        .quad 0x9c49e355c9941ad0
        .quad 0xb9734ade74498f84
        .quad 0x41c3fed066663e5c
        .quad 0x0ecfedf8e8e710b3



        .quad 0x76430f9f9cd470d9
        .quad 0xb62acc9ba42f6008
        .quad 0x1898297c59adad5e
        .quad 0x7789dd2db78c5080
        .quad 0x744f7463e9403762
        .quad 0xf79a8dee8dfcc9c9
        .quad 0x163a649655e4cde3
        .quad 0x3b61788db284f435
        .quad 0xb22228190d6ef6b2
        .quad 0xa94a66b246ce4bfa
        .quad 0x46c1a77a4f0b6cc7
        .quad 0x4236ccffeb7338cf



        .quad 0x8497404d0d55e274
        .quad 0x6c6663d9c4ad2b53
        .quad 0xec2fb0d9ada95734
        .quad 0x2617e120cdb8f73c
        .quad 0x3bd82dbfda777df6
        .quad 0x71b177cc0b98369e
        .quad 0x1d0e8463850c3699
        .quad 0x5a71945b48e2d1f1
        .quad 0x6f203dd5405b4b42
        .quad 0x327ec60410b24509
        .quad 0x9c347230ac2a8846
        .quad 0x77de29fc11ffeb6a



        .quad 0xb0ac57c983b778a8
        .quad 0x53cdcca9d7fe912c
        .quad 0x61c2b854ff1f59dc
        .quad 0x3a1a2cf0f0de7dac
        .quad 0x835e138fecced2ca
        .quad 0x8c9eaf13ea963b9a
        .quad 0xc95fbfc0b2160ea6
        .quad 0x575e66f3ad877892
        .quad 0x99803a27c88fcb3a
        .quad 0x345a6789275ec0b0
        .quad 0x459789d0ff6c2be5
        .quad 0x62f882651e70a8b2



        .quad 0x085ae2c759ff1be4
        .quad 0x149145c93b0e40b7
        .quad 0xc467e7fa7ff27379
        .quad 0x4eeecf0ad5c73a95
        .quad 0x6d822986698a19e0
        .quad 0xdc9821e174d78a71
        .quad 0x41a85f31f6cb1f47
        .quad 0x352721c2bcda9c51
        .quad 0x48329952213fc985
        .quad 0x1087cf0d368a1746
        .quad 0x8e5261b166c15aa5
        .quad 0x2d5b2d842ed24c21



        .quad 0x02cfebd9ebd3ded1
        .quad 0xd45b217739021974
        .quad 0x7576f813fe30a1b7
        .quad 0x5691b6f9a34ef6c2
        .quad 0x5eb7d13d196ac533
        .quad 0x377234ecdb80be2b
        .quad 0xe144cffc7cf5ae24
        .quad 0x5226bcf9c441acec
        .quad 0x79ee6c7223e5b547
        .quad 0x6f5f50768330d679
        .quad 0xed73e1e96d8adce9
        .quad 0x27c3da1e1d8ccc03



        .quad 0x7eb9efb23fe24c74
        .quad 0x3e50f49f1651be01
        .quad 0x3ea732dc21858dea
        .quad 0x17377bd75bb810f9
        .quad 0x28302e71630ef9f6
        .quad 0xc2d4a2032b64cee0
        .quad 0x090820304b6292be
        .quad 0x5fca747aa82adf18
        .quad 0x232a03c35c258ea5
        .quad 0x86f23a2c6bcb0cf1
        .quad 0x3dad8d0d2e442166
        .quad 0x04a8933cab76862b



        .quad 0xd2c604b622943dff
        .quad 0xbc8cbece44cfb3a0
        .quad 0x5d254ff397808678
        .quad 0x0fa3614f3b1ca6bf
        .quad 0x69082b0e8c936a50
        .quad 0xf9c9a035c1dac5b6
        .quad 0x6fb73e54c4dfb634
        .quad 0x4005419b1d2bc140
        .quad 0xa003febdb9be82f0
        .quad 0x2089c1af3a44ac90
        .quad 0xf8499f911954fa8e
        .quad 0x1fba218aef40ab42



        .quad 0xab549448fac8f53e
        .quad 0x81f6e89a7ba63741
        .quad 0x74fd6c7d6c2b5e01
        .quad 0x392e3acaa8c86e42
        .quad 0x4f3e57043e7b0194
        .quad 0xa81d3eee08daaf7f
        .quad 0xc839c6ab99dcdef1
        .quad 0x6c535d13ff7761d5
        .quad 0x4cbd34e93e8a35af
        .quad 0x2e0781445887e816
        .quad 0x19319c76f29ab0ab
        .quad 0x25e17fe4d50ac13b



        .quad 0x0a289bd71e04f676
        .quad 0x208e1c52d6420f95
        .quad 0x5186d8b034691fab
        .quad 0x255751442a9fb351
        .quad 0x915f7ff576f121a7
        .quad 0xc34a32272fcd87e3
        .quad 0xccba2fde4d1be526
        .quad 0x6bba828f8969899b
        .quad 0xe2d1bc6690fe3901
        .quad 0x4cb54a18a0997ad5
        .quad 0x971d6914af8460d4
        .quad 0x559d504f7f6b7be4



        .quad 0xa7738378b3eb54d5
        .quad 0x1d69d366a5553c7c
        .quad 0x0a26cf62f92800ba
        .quad 0x01ab12d5807e3217
        .quad 0x9c4891e7f6d266fd
        .quad 0x0744a19b0307781b
        .quad 0x88388f1d6061e23b
        .quad 0x123ea6a3354bd50e
        .quad 0x118d189041e32d96
        .quad 0xb9ede3c2d8315848
        .quad 0x1eab4271d83245d9
        .quad 0x4a3961e2c918a154



        .quad 0x71dc3be0f8e6bba0
        .quad 0xd6cef8347effe30a
        .quad 0xa992425fe13a476a
        .quad 0x2cd6bce3fb1db763
        .quad 0x0327d644f3233f1e
        .quad 0x499a260e34fcf016
        .quad 0x83b5a716f2dab979
        .quad 0x68aceead9bd4111f
        .quad 0x38b4c90ef3d7c210
        .quad 0x308e6e24b7ad040c
        .quad 0x3860d9f1b7e73e23
        .quad 0x595760d5b508f597



        .quad 0x6129bfe104aa6397
        .quad 0x8f960008a4a7fccb
        .quad 0x3f8bc0897d909458
        .quad 0x709fa43edcb291a9
        .quad 0x882acbebfd022790
        .quad 0x89af3305c4115760
        .quad 0x65f492e37d3473f4
        .quad 0x2cb2c5df54515a2b
        .quad 0xeb0a5d8c63fd2aca
        .quad 0xd22bc1662e694eff
        .quad 0x2723f36ef8cbb03a
        .quad 0x70f029ecf0c8131f



        .quad 0x461307b32eed3e33
        .quad 0xae042f33a45581e7
        .quad 0xc94449d3195f0366
        .quad 0x0b7d5d8a6c314858
        .quad 0x2a6aafaa5e10b0b9
        .quad 0x78f0a370ef041aa9
        .quad 0x773efb77aa3ad61f
        .quad 0x44eca5a2a74bd9e1
        .quad 0x25d448327b95d543
        .quad 0x70d38300a3340f1d
        .quad 0xde1c531c60e1c52b
        .quad 0x272224512c7de9e4



        .quad 0x1abc92af49c5342e
        .quad 0xffeed811b2e6fad0
        .quad 0xefa28c8dfcc84e29
        .quad 0x11b5df18a44cc543
        .quad 0xbf7bbb8a42a975fc
        .quad 0x8c5c397796ada358
        .quad 0xe27fc76fcdedaa48
        .quad 0x19735fd7f6bc20a6
        .quad 0xe3ab90d042c84266
        .quad 0xeb848e0f7f19547e
        .quad 0x2503a1d065a497b9
        .quad 0x0fef911191df895f



        .quad 0xb1507ca1ab1c6eb9
        .quad 0xbd448f3e16b687b3
        .quad 0x3455fb7f2c7a91ab
        .quad 0x7579229e2f2adec1
        .quad 0x6ab5dcb85b1c16b7
        .quad 0x94c0fce83c7b27a5
        .quad 0xa4b11c1a735517be
        .quad 0x499238d0ba0eafaa
        .quad 0xecf46e527aba8b57
        .quad 0x15a08c478bd1647b
        .quad 0x7af1c6a65f706fef
        .quad 0x6345fa78f03a30d5



        .quad 0xdf02f95f1015e7a1
        .quad 0x790ec41da9b40263
        .quad 0x4d3a0ea133ea1107
        .quad 0x54f70be7e33af8c9
        .quad 0x93d3cbe9bdd8f0a4
        .quad 0xdb152c1bfd177302
        .quad 0x7dbddc6d7f17a875
        .quad 0x3e1a71cc8f426efe
        .quad 0xc83ca3e390babd62
        .quad 0x80ede3670291c833
        .quad 0xc88038ccd37900c4
        .quad 0x2c5fc0231ec31fa1



        .quad 0xfeba911717038b4f
        .quad 0xe5123721c9deef81
        .quad 0x1c97e4e75d0d8834
        .quad 0x68afae7a23dc3bc6
        .quad 0xc422e4d102456e65
        .quad 0x87414ac1cad47b91
        .quad 0x1592e2bba2b6ffdd
        .quad 0x75d9d2bff5c2100f
        .quad 0x5bd9b4763626e81c
        .quad 0x89966936bca02edd
        .quad 0x0a41193d61f077b3
        .quad 0x3097a24200ce5471



        .quad 0x57427734c7f8b84c
        .quad 0xf141a13e01b270e9
        .quad 0x02d1adfeb4e564a6
        .quad 0x4bb23d92ce83bd48
        .quad 0xa162e7246695c486
        .quad 0x131d633435a89607
        .quad 0x30521561a0d12a37
        .quad 0x56704bada6afb363
        .quad 0xaf6c4aa752f912b9
        .quad 0x5e665f6cd86770c8
        .quad 0x4c35ac83a3c8cd58
        .quad 0x2b7a29c010a58a7e



        .quad 0xc4007f77d0c1cec3
        .quad 0x8d1020b6bac492f8
        .quad 0x32ec29d57e69daaf
        .quad 0x599408759d95fce0
        .quad 0x33810a23bf00086e
        .quad 0xafce925ee736ff7c
        .quad 0x3d60e670e24922d4
        .quad 0x11ce9e714f96061b
        .quad 0x219ef713d815bac1
        .quad 0xf141465d485be25c
        .quad 0x6d5447cc4e513c51
        .quad 0x174926be5ef44393



        .quad 0xb5deb2f9fc5bd5bb
        .quad 0x92daa72ae1d810e1
        .quad 0xafc4cfdcb72a1c59
        .quad 0x497d78813fc22a24
        .quad 0x3ef5d41593ea022e
        .quad 0x5cbcc1a20ed0eed6
        .quad 0x8fd24ecf07382c8c
        .quad 0x6fa42ead06d8e1ad
        .quad 0xe276824a1f73371f
        .quad 0x7f7cf01c4f5b6736
        .quad 0x7e201fe304fa46e7
        .quad 0x785a36a357808c96



        .quad 0x825fbdfd63014d2b
        .quad 0xc852369c6ca7578b
        .quad 0x5b2fcd285c0b5df0
        .quad 0x12ab214c58048c8f
        .quad 0x070442985d517bc3
        .quad 0x6acd56c7ae653678
        .quad 0x00a27983985a7763
        .quad 0x5167effae512662b
        .quad 0xbd4ea9e10f53c4b6
        .quad 0x1673dc5f8ac91a14
        .quad 0xa8f81a4e2acc1aba
        .quad 0x33a92a7924332a25



        .quad 0x9dd1f49927996c02
        .quad 0x0cb3b058e04d1752
        .quad 0x1f7e88967fd02c3e
        .quad 0x2f964268cb8b3eb1
        .quad 0x7ba95ba0218f2ada
        .quad 0xcff42287330fb9ca
        .quad 0xdada496d56c6d907
        .quad 0x5380c296f4beee54
        .quad 0x9d4f270466898d0a
        .quad 0x3d0987990aff3f7a
        .quad 0xd09ef36267daba45
        .quad 0x7761455e7b1c669c


.section .note.GNU-stack, "", %progbits
.text
.loc 1 2 0
BORINGSSL_bcm_text_end:
.type .Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods, @function
.Lbcm_redirector_AWSLC_non_fips_pkey_evp_asn1_methods:
	jmp	AWSLC_non_fips_pkey_evp_asn1_methods@PLT
.type .Lbcm_redirector_AWSLC_non_fips_pkey_evp_methods, @function
.Lbcm_redirector_AWSLC_non_fips_pkey_evp_methods:
	jmp	AWSLC_non_fips_pkey_evp_methods@PLT
.type .Lbcm_redirector_BN_asc2bn, @function
.Lbcm_redirector_BN_asc2bn:
	jmp	BN_asc2bn@PLT
.type .Lbcm_redirector_CBB_add_asn1, @function
.Lbcm_redirector_CBB_add_asn1:
	jmp	CBB_add_asn1@PLT
.type .Lbcm_redirector_CBB_add_asn1_bool, @function
.Lbcm_redirector_CBB_add_asn1_bool:
	jmp	CBB_add_asn1_bool@PLT
.type .Lbcm_redirector_CBB_add_asn1_octet_string, @function
.Lbcm_redirector_CBB_add_asn1_octet_string:
	jmp	CBB_add_asn1_octet_string@PLT
.type .Lbcm_redirector_CBB_add_asn1_uint64, @function
.Lbcm_redirector_CBB_add_asn1_uint64:
	jmp	CBB_add_asn1_uint64@PLT
.type .Lbcm_redirector_CBB_add_bytes, @function
.Lbcm_redirector_CBB_add_bytes:
	jmp	CBB_add_bytes@PLT
.type .Lbcm_redirector_CBB_cleanup, @function
.Lbcm_redirector_CBB_cleanup:
	jmp	CBB_cleanup@PLT
.type .Lbcm_redirector_CBB_data, @function
.Lbcm_redirector_CBB_data:
	jmp	CBB_data@PLT
.type .Lbcm_redirector_CBB_finish, @function
.Lbcm_redirector_CBB_finish:
	jmp	CBB_finish@PLT
.type .Lbcm_redirector_CBB_flush, @function
.Lbcm_redirector_CBB_flush:
	jmp	CBB_flush@PLT
.type .Lbcm_redirector_CBB_init, @function
.Lbcm_redirector_CBB_init:
	jmp	CBB_init@PLT
.type .Lbcm_redirector_CBB_init_fixed, @function
.Lbcm_redirector_CBB_init_fixed:
	jmp	CBB_init_fixed@PLT
.type .Lbcm_redirector_CBB_len, @function
.Lbcm_redirector_CBB_len:
	jmp	CBB_len@PLT
.type .Lbcm_redirector_CBS_data, @function
.Lbcm_redirector_CBS_data:
	jmp	CBS_data@PLT
.type .Lbcm_redirector_CBS_get_asn1, @function
.Lbcm_redirector_CBS_get_asn1:
	jmp	CBS_get_asn1@PLT
.type .Lbcm_redirector_CBS_get_asn1_bool, @function
.Lbcm_redirector_CBS_get_asn1_bool:
	jmp	CBS_get_asn1_bool@PLT
.type .Lbcm_redirector_CBS_get_asn1_uint64, @function
.Lbcm_redirector_CBS_get_asn1_uint64:
	jmp	CBS_get_asn1_uint64@PLT
.type .Lbcm_redirector_CBS_init, @function
.Lbcm_redirector_CBS_init:
	jmp	CBS_init@PLT
.type .Lbcm_redirector_CBS_len, @function
.Lbcm_redirector_CBS_len:
	jmp	CBS_len@PLT
.type .Lbcm_redirector_CBS_stow, @function
.Lbcm_redirector_CBS_stow:
	jmp	CBS_stow@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_cleanup, @function
.Lbcm_redirector_CRYPTO_MUTEX_cleanup:
	jmp	CRYPTO_MUTEX_cleanup@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_init, @function
.Lbcm_redirector_CRYPTO_MUTEX_init:
	jmp	CRYPTO_MUTEX_init@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_lock_read, @function
.Lbcm_redirector_CRYPTO_MUTEX_lock_read:
	jmp	CRYPTO_MUTEX_lock_read@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_lock_write, @function
.Lbcm_redirector_CRYPTO_MUTEX_lock_write:
	jmp	CRYPTO_MUTEX_lock_write@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_unlock_read, @function
.Lbcm_redirector_CRYPTO_MUTEX_unlock_read:
	jmp	CRYPTO_MUTEX_unlock_read@PLT
.type .Lbcm_redirector_CRYPTO_MUTEX_unlock_write, @function
.Lbcm_redirector_CRYPTO_MUTEX_unlock_write:
	jmp	CRYPTO_MUTEX_unlock_write@PLT
.type .Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_read, @function
.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_read:
	jmp	CRYPTO_STATIC_MUTEX_lock_read@PLT
.type .Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write, @function
.Lbcm_redirector_CRYPTO_STATIC_MUTEX_lock_write:
	jmp	CRYPTO_STATIC_MUTEX_lock_write@PLT
.type .Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_read, @function
.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_read:
	jmp	CRYPTO_STATIC_MUTEX_unlock_read@PLT
.type .Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write, @function
.Lbcm_redirector_CRYPTO_STATIC_MUTEX_unlock_write:
	jmp	CRYPTO_STATIC_MUTEX_unlock_write@PLT
.type .Lbcm_redirector_CRYPTO_free_ex_data, @function
.Lbcm_redirector_CRYPTO_free_ex_data:
	jmp	CRYPTO_free_ex_data@PLT
.type .Lbcm_redirector_CRYPTO_get_ex_data, @function
.Lbcm_redirector_CRYPTO_get_ex_data:
	jmp	CRYPTO_get_ex_data@PLT
.type .Lbcm_redirector_CRYPTO_get_ex_new_index, @function
.Lbcm_redirector_CRYPTO_get_ex_new_index:
	jmp	CRYPTO_get_ex_new_index@PLT
.type .Lbcm_redirector_CRYPTO_get_thread_local, @function
.Lbcm_redirector_CRYPTO_get_thread_local:
	jmp	CRYPTO_get_thread_local@PLT
.type .Lbcm_redirector_CRYPTO_memcmp, @function
.Lbcm_redirector_CRYPTO_memcmp:
	jmp	CRYPTO_memcmp@PLT
.type .Lbcm_redirector_CRYPTO_new_ex_data, @function
.Lbcm_redirector_CRYPTO_new_ex_data:
	jmp	CRYPTO_new_ex_data@PLT
.type .Lbcm_redirector_CRYPTO_once, @function
.Lbcm_redirector_CRYPTO_once:
	jmp	CRYPTO_once@PLT
.type .Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero, @function
.Lbcm_redirector_CRYPTO_refcount_dec_and_test_zero:
	jmp	CRYPTO_refcount_dec_and_test_zero@PLT
.type .Lbcm_redirector_CRYPTO_refcount_inc, @function
.Lbcm_redirector_CRYPTO_refcount_inc:
	jmp	CRYPTO_refcount_inc@PLT
.type .Lbcm_redirector_CRYPTO_set_ex_data, @function
.Lbcm_redirector_CRYPTO_set_ex_data:
	jmp	CRYPTO_set_ex_data@PLT
.type .Lbcm_redirector_CRYPTO_set_thread_local, @function
.Lbcm_redirector_CRYPTO_set_thread_local:
	jmp	CRYPTO_set_thread_local@PLT
.type .Lbcm_redirector_DSA_up_ref, @function
.Lbcm_redirector_DSA_up_ref:
	jmp	DSA_up_ref@PLT
.type .Lbcm_redirector_ECDSA_SIG_from_bytes, @function
.Lbcm_redirector_ECDSA_SIG_from_bytes:
	jmp	ECDSA_SIG_from_bytes@PLT
.type .Lbcm_redirector_ECDSA_SIG_marshal, @function
.Lbcm_redirector_ECDSA_SIG_marshal:
	jmp	ECDSA_SIG_marshal@PLT
.type .Lbcm_redirector_ECDSA_SIG_to_bytes, @function
.Lbcm_redirector_ECDSA_SIG_to_bytes:
	jmp	ECDSA_SIG_to_bytes@PLT
.type .Lbcm_redirector_ECDSA_size, @function
.Lbcm_redirector_ECDSA_size:
	jmp	ECDSA_size@PLT
.type .Lbcm_redirector_ENGINE_get_EC, @function
.Lbcm_redirector_ENGINE_get_EC:
	jmp	ENGINE_get_EC@PLT
.type .Lbcm_redirector_ENGINE_get_RSA, @function
.Lbcm_redirector_ENGINE_get_RSA:
	jmp	ENGINE_get_RSA@PLT
.type .Lbcm_redirector_ERR_add_error_dataf, @function
.Lbcm_redirector_ERR_add_error_dataf:
	jmp	ERR_add_error_dataf@PLT
.type .Lbcm_redirector_ERR_clear_error, @function
.Lbcm_redirector_ERR_clear_error:
	jmp	ERR_clear_error@PLT
.type .Lbcm_redirector_ERR_peek_error, @function
.Lbcm_redirector_ERR_peek_error:
	jmp	ERR_peek_error@PLT
.type .Lbcm_redirector_ERR_peek_last_error, @function
.Lbcm_redirector_ERR_peek_last_error:
	jmp	ERR_peek_last_error@PLT
.type .Lbcm_redirector_ERR_put_error, @function
.Lbcm_redirector_ERR_put_error:
	jmp	ERR_put_error@PLT
.type .Lbcm_redirector_EVP_PKEY_assign_DH, @function
.Lbcm_redirector_EVP_PKEY_assign_DH:
	jmp	EVP_PKEY_assign_DH@PLT
.type .Lbcm_redirector_EVP_get_digestbyname, @function
.Lbcm_redirector_EVP_get_digestbyname:
	jmp	EVP_get_digestbyname@PLT
.type .Lbcm_redirector_OBJ_find_sigid_by_algs, @function
.Lbcm_redirector_OBJ_find_sigid_by_algs:
	jmp	OBJ_find_sigid_by_algs@PLT
.type .Lbcm_redirector_OBJ_ln2nid, @function
.Lbcm_redirector_OBJ_ln2nid:
	jmp	OBJ_ln2nid@PLT
.type .Lbcm_redirector_OBJ_nid2sn, @function
.Lbcm_redirector_OBJ_nid2sn:
	jmp	OBJ_nid2sn@PLT
.type .Lbcm_redirector_OBJ_sn2nid, @function
.Lbcm_redirector_OBJ_sn2nid:
	jmp	OBJ_sn2nid@PLT
.type .Lbcm_redirector_OPENSSL_calloc, @function
.Lbcm_redirector_OPENSSL_calloc:
	jmp	OPENSSL_calloc@PLT
.type .Lbcm_redirector_OPENSSL_cleanse, @function
.Lbcm_redirector_OPENSSL_cleanse:
	jmp	OPENSSL_cleanse@PLT
.type .Lbcm_redirector_OPENSSL_free, @function
.Lbcm_redirector_OPENSSL_free:
	jmp	OPENSSL_free@PLT
.type .Lbcm_redirector_OPENSSL_hexstr2buf, @function
.Lbcm_redirector_OPENSSL_hexstr2buf:
	jmp	OPENSSL_hexstr2buf@PLT
.type .Lbcm_redirector_OPENSSL_malloc, @function
.Lbcm_redirector_OPENSSL_malloc:
	jmp	OPENSSL_malloc@PLT
.type .Lbcm_redirector_OPENSSL_memdup, @function
.Lbcm_redirector_OPENSSL_memdup:
	jmp	OPENSSL_memdup@PLT
.type .Lbcm_redirector_OPENSSL_realloc, @function
.Lbcm_redirector_OPENSSL_realloc:
	jmp	OPENSSL_realloc@PLT
.type .Lbcm_redirector_OPENSSL_sk_new_null, @function
.Lbcm_redirector_OPENSSL_sk_new_null:
	jmp	OPENSSL_sk_new_null@PLT
.type .Lbcm_redirector_OPENSSL_sk_num, @function
.Lbcm_redirector_OPENSSL_sk_num:
	jmp	OPENSSL_sk_num@PLT
.type .Lbcm_redirector_OPENSSL_sk_pop_free_ex, @function
.Lbcm_redirector_OPENSSL_sk_pop_free_ex:
	jmp	OPENSSL_sk_pop_free_ex@PLT
.type .Lbcm_redirector_OPENSSL_sk_push, @function
.Lbcm_redirector_OPENSSL_sk_push:
	jmp	OPENSSL_sk_push@PLT
.type .Lbcm_redirector_OPENSSL_sk_value, @function
.Lbcm_redirector_OPENSSL_sk_value:
	jmp	OPENSSL_sk_value@PLT
.type .Lbcm_redirector_OPENSSL_strnlen, @function
.Lbcm_redirector_OPENSSL_strnlen:
	jmp	OPENSSL_strnlen@PLT
.type .Lbcm_redirector_OPENSSL_zalloc, @function
.Lbcm_redirector_OPENSSL_zalloc:
	jmp	OPENSSL_zalloc@PLT
.type .Lbcm_redirector_RAND_module_entropy_depleted, @function
.Lbcm_redirector_RAND_module_entropy_depleted:
	jmp	RAND_module_entropy_depleted@PLT
.type .Lbcm_redirector_RIPEMD160_Final, @function
.Lbcm_redirector_RIPEMD160_Final:
	jmp	RIPEMD160_Final@PLT
.type .Lbcm_redirector_RIPEMD160_Init, @function
.Lbcm_redirector_RIPEMD160_Init:
	jmp	RIPEMD160_Init@PLT
.type .Lbcm_redirector_RIPEMD160_Update, @function
.Lbcm_redirector_RIPEMD160_Update:
	jmp	RIPEMD160_Update@PLT
.type .Lbcm_redirector_RSASSA_PSS_PARAMS_create, @function
.Lbcm_redirector_RSASSA_PSS_PARAMS_create:
	jmp	RSASSA_PSS_PARAMS_create@PLT
.type .Lbcm_redirector_RSASSA_PSS_PARAMS_free, @function
.Lbcm_redirector_RSASSA_PSS_PARAMS_free:
	jmp	RSASSA_PSS_PARAMS_free@PLT
.type .Lbcm_redirector_RSASSA_PSS_PARAMS_get, @function
.Lbcm_redirector_RSASSA_PSS_PARAMS_get:
	jmp	RSASSA_PSS_PARAMS_get@PLT
.type .Lbcm_redirector_RSA_decrypt, @function
.Lbcm_redirector_RSA_decrypt:
	jmp	RSA_decrypt@PLT
.type .Lbcm_redirector_RSA_encrypt, @function
.Lbcm_redirector_RSA_encrypt:
	jmp	RSA_encrypt@PLT
.type .Lbcm_redirector_RSA_padding_add_PKCS1_OAEP_mgf1, @function
.Lbcm_redirector_RSA_padding_add_PKCS1_OAEP_mgf1:
	jmp	RSA_padding_add_PKCS1_OAEP_mgf1@PLT
.type .Lbcm_redirector_RSA_padding_check_PKCS1_OAEP_mgf1, @function
.Lbcm_redirector_RSA_padding_check_PKCS1_OAEP_mgf1:
	jmp	RSA_padding_check_PKCS1_OAEP_mgf1@PLT
.type .Lbcm_redirector___errno_location, @function
.Lbcm_redirector___errno_location:
	jmp	__errno_location@PLT
.type .Lbcm_redirector___fprintf_chk, @function
.Lbcm_redirector___fprintf_chk:
	jmp	__fprintf_chk@PLT
.type .Lbcm_redirector___isoc23_sscanf, @function
.Lbcm_redirector___isoc23_sscanf:
	jmp	__isoc23_sscanf@PLT
.type .Lbcm_redirector___isoc23_strtol, @function
.Lbcm_redirector___isoc23_strtol:
	jmp	__isoc23_strtol@PLT
.type .Lbcm_redirector___memcpy_chk, @function
.Lbcm_redirector___memcpy_chk:
	jmp	__memcpy_chk@PLT
.type .Lbcm_redirector___stack_chk_fail, @function
.Lbcm_redirector___stack_chk_fail:
	jmp	__stack_chk_fail@PLT
.type .Lbcm_redirector___umodti3, @function
.Lbcm_redirector___umodti3:
	jmp	__umodti3@PLT
.type .Lbcm_redirector_abort, @function
.Lbcm_redirector_abort:
	jmp	abort@PLT
.type .Lbcm_redirector_access, @function
.Lbcm_redirector_access:
	jmp	access@PLT
.type .Lbcm_redirector_calloc, @function
.Lbcm_redirector_calloc:
	jmp	calloc@PLT
.type .Lbcm_redirector_close, @function
.Lbcm_redirector_close:
	jmp	close@PLT
.type .Lbcm_redirector_fcntl, @function
.Lbcm_redirector_fcntl:
	jmp	fcntl@PLT
.type .Lbcm_redirector_fflush, @function
.Lbcm_redirector_fflush:
	jmp	fflush@PLT
.type .Lbcm_redirector_fputc, @function
.Lbcm_redirector_fputc:
	jmp	fputc@PLT
.type .Lbcm_redirector_free, @function
.Lbcm_redirector_free:
	jmp	free@PLT
.type .Lbcm_redirector_fwrite, @function
.Lbcm_redirector_fwrite:
	jmp	fwrite@PLT
.type .Lbcm_redirector_get_legacy_kem_kyber1024_r3, @function
.Lbcm_redirector_get_legacy_kem_kyber1024_r3:
	jmp	get_legacy_kem_kyber1024_r3@PLT
.type .Lbcm_redirector_get_legacy_kem_kyber512_r3, @function
.Lbcm_redirector_get_legacy_kem_kyber512_r3:
	jmp	get_legacy_kem_kyber512_r3@PLT
.type .Lbcm_redirector_get_legacy_kem_kyber768_r3, @function
.Lbcm_redirector_get_legacy_kem_kyber768_r3:
	jmp	get_legacy_kem_kyber768_r3@PLT
.type .Lbcm_redirector_getauxval, @function
.Lbcm_redirector_getauxval:
	jmp	getauxval@PLT
.type .Lbcm_redirector_getenv, @function
.Lbcm_redirector_getenv:
	jmp	getenv@PLT
.type .Lbcm_redirector_ioctl, @function
.Lbcm_redirector_ioctl:
	jmp	ioctl@PLT
.type .Lbcm_redirector_madvise, @function
.Lbcm_redirector_madvise:
	jmp	madvise@PLT
.type .Lbcm_redirector_malloc, @function
.Lbcm_redirector_malloc:
	jmp	malloc@PLT
.type .Lbcm_redirector_memchr, @function
.Lbcm_redirector_memchr:
	jmp	memchr@PLT
.type .Lbcm_redirector_memcmp, @function
.Lbcm_redirector_memcmp:
	jmp	memcmp@PLT
.type .Lbcm_redirector_memcpy, @function
.Lbcm_redirector_memcpy:
	jmp	memcpy@PLT
.type .Lbcm_redirector_memmove, @function
.Lbcm_redirector_memmove:
	jmp	memmove@PLT
.type .Lbcm_redirector_memset, @function
.Lbcm_redirector_memset:
	jmp	memset@PLT
.type .Lbcm_redirector_mmap, @function
.Lbcm_redirector_mmap:
	jmp	mmap@PLT
.type .Lbcm_redirector_munmap, @function
.Lbcm_redirector_munmap:
	jmp	munmap@PLT
.type .Lbcm_redirector_nanosleep, @function
.Lbcm_redirector_nanosleep:
	jmp	nanosleep@PLT
.type .Lbcm_redirector_open, @function
.Lbcm_redirector_open:
	jmp	open@PLT
.type .Lbcm_redirector_perror, @function
.Lbcm_redirector_perror:
	jmp	perror@PLT
.type .Lbcm_redirector_rand_fork_unsafe_buffering_enabled, @function
.Lbcm_redirector_rand_fork_unsafe_buffering_enabled:
	jmp	rand_fork_unsafe_buffering_enabled@PLT
.type .Lbcm_redirector_read, @function
.Lbcm_redirector_read:
	jmp	read@PLT
.type .Lbcm_redirector_strchr, @function
.Lbcm_redirector_strchr:
	jmp	strchr@PLT
.type .Lbcm_redirector_strcmp, @function
.Lbcm_redirector_strcmp:
	jmp	strcmp@PLT
.type .Lbcm_redirector_syscall, @function
.Lbcm_redirector_syscall:
	jmp	syscall@PLT
.type .Lbcm_redirector_sysconf, @function
.Lbcm_redirector_sysconf:
	jmp	sysconf@PLT
.type AWSLC_fips_evp_pkey_methods_once_bss_get, @function
AWSLC_fips_evp_pkey_methods_once_bss_get:
	leaq	.LAWSLC_fips_evp_pkey_methods_once_local_target(%rip), %rax
	ret
.type AWSLC_fips_evp_pkey_methods_storage_bss_get, @function
AWSLC_fips_evp_pkey_methods_storage_bss_get:
	leaq	.LAWSLC_fips_evp_pkey_methods_storage_local_target(%rip), %rax
	ret
.type AWSLC_hmac_in_place_methods_once_bss_get, @function
AWSLC_hmac_in_place_methods_once_bss_get:
	leaq	.LAWSLC_hmac_in_place_methods_once_local_target(%rip), %rax
	ret
.type AWSLC_hmac_in_place_methods_storage_bss_get, @function
AWSLC_hmac_in_place_methods_storage_bss_get:
	leaq	.LAWSLC_hmac_in_place_methods_storage_local_target(%rip), %rax
	ret
.type BN_value_one_once_bss_get, @function
BN_value_one_once_bss_get:
	leaq	.LBN_value_one_once_local_target(%rip), %rax
	ret
.type BN_value_one_storage_bss_get, @function
BN_value_one_storage_bss_get:
	leaq	.LBN_value_one_storage_local_target(%rip), %rax
	ret
.type EC_GFp_mont_method_once_bss_get, @function
EC_GFp_mont_method_once_bss_get:
	leaq	.LEC_GFp_mont_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_mont_method_storage_bss_get, @function
EC_GFp_mont_method_storage_bss_get:
	leaq	.LEC_GFp_mont_method_storage_local_target(%rip), %rax
	ret
.type EC_GFp_nistp224_method_once_bss_get, @function
EC_GFp_nistp224_method_once_bss_get:
	leaq	.LEC_GFp_nistp224_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_nistp224_method_storage_bss_get, @function
EC_GFp_nistp224_method_storage_bss_get:
	leaq	.LEC_GFp_nistp224_method_storage_local_target(%rip), %rax
	ret
.type EC_GFp_nistp256_method_once_bss_get, @function
EC_GFp_nistp256_method_once_bss_get:
	leaq	.LEC_GFp_nistp256_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_nistp256_method_storage_bss_get, @function
EC_GFp_nistp256_method_storage_bss_get:
	leaq	.LEC_GFp_nistp256_method_storage_local_target(%rip), %rax
	ret
.type EC_GFp_nistp384_method_once_bss_get, @function
EC_GFp_nistp384_method_once_bss_get:
	leaq	.LEC_GFp_nistp384_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_nistp384_method_storage_bss_get, @function
EC_GFp_nistp384_method_storage_bss_get:
	leaq	.LEC_GFp_nistp384_method_storage_local_target(%rip), %rax
	ret
.type EC_GFp_nistp521_method_once_bss_get, @function
EC_GFp_nistp521_method_once_bss_get:
	leaq	.LEC_GFp_nistp521_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_nistp521_method_storage_bss_get, @function
EC_GFp_nistp521_method_storage_bss_get:
	leaq	.LEC_GFp_nistp521_method_storage_local_target(%rip), %rax
	ret
.type EC_GFp_nistz256_method_once_bss_get, @function
EC_GFp_nistz256_method_once_bss_get:
	leaq	.LEC_GFp_nistz256_method_once_local_target(%rip), %rax
	ret
.type EC_GFp_nistz256_method_storage_bss_get, @function
EC_GFp_nistz256_method_storage_bss_get:
	leaq	.LEC_GFp_nistz256_method_storage_local_target(%rip), %rax
	ret
.type EC_KEY_OpenSSL_once_bss_get, @function
EC_KEY_OpenSSL_once_bss_get:
	leaq	.LEC_KEY_OpenSSL_once_local_target(%rip), %rax
	ret
.type EC_KEY_OpenSSL_storage_bss_get, @function
EC_KEY_OpenSSL_storage_bss_get:
	leaq	.LEC_KEY_OpenSSL_storage_local_target(%rip), %rax
	ret
.type EC_group_p224_once_bss_get, @function
EC_group_p224_once_bss_get:
	leaq	.LEC_group_p224_once_local_target(%rip), %rax
	ret
.type EC_group_p224_storage_bss_get, @function
EC_group_p224_storage_bss_get:
	leaq	.LEC_group_p224_storage_local_target(%rip), %rax
	ret
.type EC_group_p256_once_bss_get, @function
EC_group_p256_once_bss_get:
	leaq	.LEC_group_p256_once_local_target(%rip), %rax
	ret
.type EC_group_p256_storage_bss_get, @function
EC_group_p256_storage_bss_get:
	leaq	.LEC_group_p256_storage_local_target(%rip), %rax
	ret
.type EC_group_p384_once_bss_get, @function
EC_group_p384_once_bss_get:
	leaq	.LEC_group_p384_once_local_target(%rip), %rax
	ret
.type EC_group_p384_storage_bss_get, @function
EC_group_p384_storage_bss_get:
	leaq	.LEC_group_p384_storage_local_target(%rip), %rax
	ret
.type EC_group_p521_once_bss_get, @function
EC_group_p521_once_bss_get:
	leaq	.LEC_group_p521_once_local_target(%rip), %rax
	ret
.type EC_group_p521_storage_bss_get, @function
EC_group_p521_storage_bss_get:
	leaq	.LEC_group_p521_storage_local_target(%rip), %rax
	ret
.type EC_group_secp256k1_once_bss_get, @function
EC_group_secp256k1_once_bss_get:
	leaq	.LEC_group_secp256k1_once_local_target(%rip), %rax
	ret
.type EC_group_secp256k1_storage_bss_get, @function
EC_group_secp256k1_storage_bss_get:
	leaq	.LEC_group_secp256k1_storage_local_target(%rip), %rax
	ret
.type EVP_MD_pctx_ops_once_bss_get, @function
EVP_MD_pctx_ops_once_bss_get:
	leaq	.LEVP_MD_pctx_ops_once_local_target(%rip), %rax
	ret
.type EVP_MD_pctx_ops_storage_bss_get, @function
EVP_MD_pctx_ops_storage_bss_get:
	leaq	.LEVP_MD_pctx_ops_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_ec_pkey_meth_once_bss_get, @function
EVP_PKEY_ec_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_ec_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_ec_pkey_meth_storage_bss_get, @function
EVP_PKEY_ec_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_ec_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_ed25519_pkey_meth_once_bss_get, @function
EVP_PKEY_ed25519_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_ed25519_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_ed25519_pkey_meth_storage_bss_get, @function
EVP_PKEY_ed25519_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_ed25519_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_hkdf_pkey_meth_once_bss_get, @function
EVP_PKEY_hkdf_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_hkdf_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_hkdf_pkey_meth_storage_bss_get, @function
EVP_PKEY_hkdf_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_hkdf_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_hmac_pkey_meth_once_bss_get, @function
EVP_PKEY_hmac_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_hmac_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_hmac_pkey_meth_storage_bss_get, @function
EVP_PKEY_hmac_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_hmac_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_kem_pkey_meth_once_bss_get, @function
EVP_PKEY_kem_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_kem_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_kem_pkey_meth_storage_bss_get, @function
EVP_PKEY_kem_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_kem_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_rsa_pkey_meth_once_bss_get, @function
EVP_PKEY_rsa_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_rsa_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_rsa_pkey_meth_storage_bss_get, @function
EVP_PKEY_rsa_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_rsa_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_PKEY_rsa_pss_pkey_meth_once_bss_get, @function
EVP_PKEY_rsa_pss_pkey_meth_once_bss_get:
	leaq	.LEVP_PKEY_rsa_pss_pkey_meth_once_local_target(%rip), %rax
	ret
.type EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get, @function
EVP_PKEY_rsa_pss_pkey_meth_storage_bss_get:
	leaq	.LEVP_PKEY_rsa_pss_pkey_meth_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_bluetooth_8_once_bss_get, @function
EVP_aead_aes_128_ccm_bluetooth_8_once_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_8_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get, @function
EVP_aead_aes_128_ccm_bluetooth_8_storage_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_8_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_bluetooth_once_bss_get, @function
EVP_aead_aes_128_ccm_bluetooth_once_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_bluetooth_storage_bss_get, @function
EVP_aead_aes_128_ccm_bluetooth_storage_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_bluetooth_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_matter_once_bss_get, @function
EVP_aead_aes_128_ccm_matter_once_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_matter_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_ccm_matter_storage_bss_get, @function
EVP_aead_aes_128_ccm_matter_storage_bss_get:
	leaq	.LEVP_aead_aes_128_ccm_matter_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_once_bss_get, @function
EVP_aead_aes_128_gcm_once_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_randnonce_once_bss_get, @function
EVP_aead_aes_128_gcm_randnonce_once_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_randnonce_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_randnonce_storage_bss_get, @function
EVP_aead_aes_128_gcm_randnonce_storage_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_randnonce_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_storage_bss_get, @function
EVP_aead_aes_128_gcm_storage_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_tls12_once_bss_get, @function
EVP_aead_aes_128_gcm_tls12_once_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_tls12_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_tls12_storage_bss_get, @function
EVP_aead_aes_128_gcm_tls12_storage_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_tls12_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_tls13_once_bss_get, @function
EVP_aead_aes_128_gcm_tls13_once_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_tls13_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_128_gcm_tls13_storage_bss_get, @function
EVP_aead_aes_128_gcm_tls13_storage_bss_get:
	leaq	.LEVP_aead_aes_128_gcm_tls13_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_192_gcm_once_bss_get, @function
EVP_aead_aes_192_gcm_once_bss_get:
	leaq	.LEVP_aead_aes_192_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_192_gcm_storage_bss_get, @function
EVP_aead_aes_192_gcm_storage_bss_get:
	leaq	.LEVP_aead_aes_192_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_once_bss_get, @function
EVP_aead_aes_256_gcm_once_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_randnonce_once_bss_get, @function
EVP_aead_aes_256_gcm_randnonce_once_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_randnonce_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_randnonce_storage_bss_get, @function
EVP_aead_aes_256_gcm_randnonce_storage_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_randnonce_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_storage_bss_get, @function
EVP_aead_aes_256_gcm_storage_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_tls12_once_bss_get, @function
EVP_aead_aes_256_gcm_tls12_once_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_tls12_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_tls12_storage_bss_get, @function
EVP_aead_aes_256_gcm_tls12_storage_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_tls12_storage_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_tls13_once_bss_get, @function
EVP_aead_aes_256_gcm_tls13_once_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_tls13_once_local_target(%rip), %rax
	ret
.type EVP_aead_aes_256_gcm_tls13_storage_bss_get, @function
EVP_aead_aes_256_gcm_tls13_storage_bss_get:
	leaq	.LEVP_aead_aes_256_gcm_tls13_storage_local_target(%rip), %rax
	ret
.type EVP_aes_128_cbc_once_bss_get, @function
EVP_aes_128_cbc_once_bss_get:
	leaq	.LEVP_aes_128_cbc_once_local_target(%rip), %rax
	ret
.type EVP_aes_128_cbc_storage_bss_get, @function
EVP_aes_128_cbc_storage_bss_get:
	leaq	.LEVP_aes_128_cbc_storage_local_target(%rip), %rax
	ret
.type EVP_aes_128_ccm_once_bss_get, @function
EVP_aes_128_ccm_once_bss_get:
	leaq	.LEVP_aes_128_ccm_once_local_target(%rip), %rax
	ret
.type EVP_aes_128_ccm_storage_bss_get, @function
EVP_aes_128_ccm_storage_bss_get:
	leaq	.LEVP_aes_128_ccm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_128_ctr_once_bss_get, @function
EVP_aes_128_ctr_once_bss_get:
	leaq	.LEVP_aes_128_ctr_once_local_target(%rip), %rax
	ret
.type EVP_aes_128_ctr_storage_bss_get, @function
EVP_aes_128_ctr_storage_bss_get:
	leaq	.LEVP_aes_128_ctr_storage_local_target(%rip), %rax
	ret
.type EVP_aes_128_gcm_once_bss_get, @function
EVP_aes_128_gcm_once_bss_get:
	leaq	.LEVP_aes_128_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aes_128_gcm_storage_bss_get, @function
EVP_aes_128_gcm_storage_bss_get:
	leaq	.LEVP_aes_128_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_128_ofb_once_bss_get, @function
EVP_aes_128_ofb_once_bss_get:
	leaq	.LEVP_aes_128_ofb_once_local_target(%rip), %rax
	ret
.type EVP_aes_128_ofb_storage_bss_get, @function
EVP_aes_128_ofb_storage_bss_get:
	leaq	.LEVP_aes_128_ofb_storage_local_target(%rip), %rax
	ret
.type EVP_aes_192_cbc_once_bss_get, @function
EVP_aes_192_cbc_once_bss_get:
	leaq	.LEVP_aes_192_cbc_once_local_target(%rip), %rax
	ret
.type EVP_aes_192_cbc_storage_bss_get, @function
EVP_aes_192_cbc_storage_bss_get:
	leaq	.LEVP_aes_192_cbc_storage_local_target(%rip), %rax
	ret
.type EVP_aes_192_ccm_once_bss_get, @function
EVP_aes_192_ccm_once_bss_get:
	leaq	.LEVP_aes_192_ccm_once_local_target(%rip), %rax
	ret
.type EVP_aes_192_ccm_storage_bss_get, @function
EVP_aes_192_ccm_storage_bss_get:
	leaq	.LEVP_aes_192_ccm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_192_ctr_once_bss_get, @function
EVP_aes_192_ctr_once_bss_get:
	leaq	.LEVP_aes_192_ctr_once_local_target(%rip), %rax
	ret
.type EVP_aes_192_ctr_storage_bss_get, @function
EVP_aes_192_ctr_storage_bss_get:
	leaq	.LEVP_aes_192_ctr_storage_local_target(%rip), %rax
	ret
.type EVP_aes_192_gcm_once_bss_get, @function
EVP_aes_192_gcm_once_bss_get:
	leaq	.LEVP_aes_192_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aes_192_gcm_storage_bss_get, @function
EVP_aes_192_gcm_storage_bss_get:
	leaq	.LEVP_aes_192_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_192_ofb_once_bss_get, @function
EVP_aes_192_ofb_once_bss_get:
	leaq	.LEVP_aes_192_ofb_once_local_target(%rip), %rax
	ret
.type EVP_aes_192_ofb_storage_bss_get, @function
EVP_aes_192_ofb_storage_bss_get:
	leaq	.LEVP_aes_192_ofb_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_cbc_once_bss_get, @function
EVP_aes_256_cbc_once_bss_get:
	leaq	.LEVP_aes_256_cbc_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_cbc_storage_bss_get, @function
EVP_aes_256_cbc_storage_bss_get:
	leaq	.LEVP_aes_256_cbc_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_ccm_once_bss_get, @function
EVP_aes_256_ccm_once_bss_get:
	leaq	.LEVP_aes_256_ccm_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_ccm_storage_bss_get, @function
EVP_aes_256_ccm_storage_bss_get:
	leaq	.LEVP_aes_256_ccm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_ctr_once_bss_get, @function
EVP_aes_256_ctr_once_bss_get:
	leaq	.LEVP_aes_256_ctr_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_ctr_storage_bss_get, @function
EVP_aes_256_ctr_storage_bss_get:
	leaq	.LEVP_aes_256_ctr_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_gcm_once_bss_get, @function
EVP_aes_256_gcm_once_bss_get:
	leaq	.LEVP_aes_256_gcm_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_gcm_storage_bss_get, @function
EVP_aes_256_gcm_storage_bss_get:
	leaq	.LEVP_aes_256_gcm_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_ofb_once_bss_get, @function
EVP_aes_256_ofb_once_bss_get:
	leaq	.LEVP_aes_256_ofb_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_ofb_storage_bss_get, @function
EVP_aes_256_ofb_storage_bss_get:
	leaq	.LEVP_aes_256_ofb_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_wrap_once_bss_get, @function
EVP_aes_256_wrap_once_bss_get:
	leaq	.LEVP_aes_256_wrap_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_wrap_storage_bss_get, @function
EVP_aes_256_wrap_storage_bss_get:
	leaq	.LEVP_aes_256_wrap_storage_local_target(%rip), %rax
	ret
.type EVP_aes_256_xts_once_bss_get, @function
EVP_aes_256_xts_once_bss_get:
	leaq	.LEVP_aes_256_xts_once_local_target(%rip), %rax
	ret
.type EVP_aes_256_xts_storage_bss_get, @function
EVP_aes_256_xts_storage_bss_get:
	leaq	.LEVP_aes_256_xts_storage_local_target(%rip), %rax
	ret
.type EVP_md4_once_bss_get, @function
EVP_md4_once_bss_get:
	leaq	.LEVP_md4_once_local_target(%rip), %rax
	ret
.type EVP_md4_storage_bss_get, @function
EVP_md4_storage_bss_get:
	leaq	.LEVP_md4_storage_local_target(%rip), %rax
	ret
.type EVP_md5_once_bss_get, @function
EVP_md5_once_bss_get:
	leaq	.LEVP_md5_once_local_target(%rip), %rax
	ret
.type EVP_md5_sha1_once_bss_get, @function
EVP_md5_sha1_once_bss_get:
	leaq	.LEVP_md5_sha1_once_local_target(%rip), %rax
	ret
.type EVP_md5_sha1_storage_bss_get, @function
EVP_md5_sha1_storage_bss_get:
	leaq	.LEVP_md5_sha1_storage_local_target(%rip), %rax
	ret
.type EVP_md5_storage_bss_get, @function
EVP_md5_storage_bss_get:
	leaq	.LEVP_md5_storage_local_target(%rip), %rax
	ret
.type EVP_ripemd160_once_bss_get, @function
EVP_ripemd160_once_bss_get:
	leaq	.LEVP_ripemd160_once_local_target(%rip), %rax
	ret
.type EVP_ripemd160_storage_bss_get, @function
EVP_ripemd160_storage_bss_get:
	leaq	.LEVP_ripemd160_storage_local_target(%rip), %rax
	ret
.type EVP_sha1_once_bss_get, @function
EVP_sha1_once_bss_get:
	leaq	.LEVP_sha1_once_local_target(%rip), %rax
	ret
.type EVP_sha1_storage_bss_get, @function
EVP_sha1_storage_bss_get:
	leaq	.LEVP_sha1_storage_local_target(%rip), %rax
	ret
.type EVP_sha224_once_bss_get, @function
EVP_sha224_once_bss_get:
	leaq	.LEVP_sha224_once_local_target(%rip), %rax
	ret
.type EVP_sha224_storage_bss_get, @function
EVP_sha224_storage_bss_get:
	leaq	.LEVP_sha224_storage_local_target(%rip), %rax
	ret
.type EVP_sha256_once_bss_get, @function
EVP_sha256_once_bss_get:
	leaq	.LEVP_sha256_once_local_target(%rip), %rax
	ret
.type EVP_sha256_storage_bss_get, @function
EVP_sha256_storage_bss_get:
	leaq	.LEVP_sha256_storage_local_target(%rip), %rax
	ret
.type EVP_sha384_once_bss_get, @function
EVP_sha384_once_bss_get:
	leaq	.LEVP_sha384_once_local_target(%rip), %rax
	ret
.type EVP_sha384_storage_bss_get, @function
EVP_sha384_storage_bss_get:
	leaq	.LEVP_sha384_storage_local_target(%rip), %rax
	ret
.type EVP_sha3_224_once_bss_get, @function
EVP_sha3_224_once_bss_get:
	leaq	.LEVP_sha3_224_once_local_target(%rip), %rax
	ret
.type EVP_sha3_224_storage_bss_get, @function
EVP_sha3_224_storage_bss_get:
	leaq	.LEVP_sha3_224_storage_local_target(%rip), %rax
	ret
.type EVP_sha3_256_once_bss_get, @function
EVP_sha3_256_once_bss_get:
	leaq	.LEVP_sha3_256_once_local_target(%rip), %rax
	ret
.type EVP_sha3_256_storage_bss_get, @function
EVP_sha3_256_storage_bss_get:
	leaq	.LEVP_sha3_256_storage_local_target(%rip), %rax
	ret
.type EVP_sha3_384_once_bss_get, @function
EVP_sha3_384_once_bss_get:
	leaq	.LEVP_sha3_384_once_local_target(%rip), %rax
	ret
.type EVP_sha3_384_storage_bss_get, @function
EVP_sha3_384_storage_bss_get:
	leaq	.LEVP_sha3_384_storage_local_target(%rip), %rax
	ret
.type EVP_sha3_512_once_bss_get, @function
EVP_sha3_512_once_bss_get:
	leaq	.LEVP_sha3_512_once_local_target(%rip), %rax
	ret
.type EVP_sha3_512_storage_bss_get, @function
EVP_sha3_512_storage_bss_get:
	leaq	.LEVP_sha3_512_storage_local_target(%rip), %rax
	ret
.type EVP_sha512_224_once_bss_get, @function
EVP_sha512_224_once_bss_get:
	leaq	.LEVP_sha512_224_once_local_target(%rip), %rax
	ret
.type EVP_sha512_224_storage_bss_get, @function
EVP_sha512_224_storage_bss_get:
	leaq	.LEVP_sha512_224_storage_local_target(%rip), %rax
	ret
.type EVP_sha512_256_once_bss_get, @function
EVP_sha512_256_once_bss_get:
	leaq	.LEVP_sha512_256_once_local_target(%rip), %rax
	ret
.type EVP_sha512_256_storage_bss_get, @function
EVP_sha512_256_storage_bss_get:
	leaq	.LEVP_sha512_256_storage_local_target(%rip), %rax
	ret
.type EVP_sha512_once_bss_get, @function
EVP_sha512_once_bss_get:
	leaq	.LEVP_sha512_once_local_target(%rip), %rax
	ret
.type EVP_sha512_storage_bss_get, @function
EVP_sha512_storage_bss_get:
	leaq	.LEVP_sha512_storage_local_target(%rip), %rax
	ret
.type EVP_shake128_once_bss_get, @function
EVP_shake128_once_bss_get:
	leaq	.LEVP_shake128_once_local_target(%rip), %rax
	ret
.type EVP_shake128_storage_bss_get, @function
EVP_shake128_storage_bss_get:
	leaq	.LEVP_shake128_storage_local_target(%rip), %rax
	ret
.type EVP_shake256_once_bss_get, @function
EVP_shake256_once_bss_get:
	leaq	.LEVP_shake256_once_local_target(%rip), %rax
	ret
.type EVP_shake256_storage_bss_get, @function
EVP_shake256_storage_bss_get:
	leaq	.LEVP_shake256_storage_local_target(%rip), %rax
	ret
.type KEM_ml_kem_1024_once_bss_get, @function
KEM_ml_kem_1024_once_bss_get:
	leaq	.LKEM_ml_kem_1024_once_local_target(%rip), %rax
	ret
.type KEM_ml_kem_1024_storage_bss_get, @function
KEM_ml_kem_1024_storage_bss_get:
	leaq	.LKEM_ml_kem_1024_storage_local_target(%rip), %rax
	ret
.type KEM_ml_kem_512_once_bss_get, @function
KEM_ml_kem_512_once_bss_get:
	leaq	.LKEM_ml_kem_512_once_local_target(%rip), %rax
	ret
.type KEM_ml_kem_512_storage_bss_get, @function
KEM_ml_kem_512_storage_bss_get:
	leaq	.LKEM_ml_kem_512_storage_local_target(%rip), %rax
	ret
.type KEM_ml_kem_768_once_bss_get, @function
KEM_ml_kem_768_once_bss_get:
	leaq	.LKEM_ml_kem_768_once_local_target(%rip), %rax
	ret
.type KEM_ml_kem_768_storage_bss_get, @function
KEM_ml_kem_768_storage_bss_get:
	leaq	.LKEM_ml_kem_768_storage_local_target(%rip), %rax
	ret
.type RSA_get_default_method_once_bss_get, @function
RSA_get_default_method_once_bss_get:
	leaq	.LRSA_get_default_method_once_local_target(%rip), %rax
	ret
.type RSA_get_default_method_storage_bss_get, @function
RSA_get_default_method_storage_bss_get:
	leaq	.LRSA_get_default_method_storage_local_target(%rip), %rax
	ret
.type aes_128_ecb_generic_once_bss_get, @function
aes_128_ecb_generic_once_bss_get:
	leaq	.Laes_128_ecb_generic_once_local_target(%rip), %rax
	ret
.type aes_128_ecb_generic_storage_bss_get, @function
aes_128_ecb_generic_storage_bss_get:
	leaq	.Laes_128_ecb_generic_storage_local_target(%rip), %rax
	ret
.type aes_192_ecb_generic_once_bss_get, @function
aes_192_ecb_generic_once_bss_get:
	leaq	.Laes_192_ecb_generic_once_local_target(%rip), %rax
	ret
.type aes_192_ecb_generic_storage_bss_get, @function
aes_192_ecb_generic_storage_bss_get:
	leaq	.Laes_192_ecb_generic_storage_local_target(%rip), %rax
	ret
.type aes_256_ecb_generic_once_bss_get, @function
aes_256_ecb_generic_once_bss_get:
	leaq	.Laes_256_ecb_generic_once_local_target(%rip), %rax
	ret
.type aes_256_ecb_generic_storage_bss_get, @function
aes_256_ecb_generic_storage_bss_get:
	leaq	.Laes_256_ecb_generic_storage_local_target(%rip), %rax
	ret
.type aes_hw_128_ecb_once_bss_get, @function
aes_hw_128_ecb_once_bss_get:
	leaq	.Laes_hw_128_ecb_once_local_target(%rip), %rax
	ret
.type aes_hw_128_ecb_storage_bss_get, @function
aes_hw_128_ecb_storage_bss_get:
	leaq	.Laes_hw_128_ecb_storage_local_target(%rip), %rax
	ret
.type aes_hw_192_ecb_once_bss_get, @function
aes_hw_192_ecb_once_bss_get:
	leaq	.Laes_hw_192_ecb_once_local_target(%rip), %rax
	ret
.type aes_hw_192_ecb_storage_bss_get, @function
aes_hw_192_ecb_storage_bss_get:
	leaq	.Laes_hw_192_ecb_storage_local_target(%rip), %rax
	ret
.type aes_hw_256_ecb_once_bss_get, @function
aes_hw_256_ecb_once_bss_get:
	leaq	.Laes_hw_256_ecb_once_local_target(%rip), %rax
	ret
.type aes_hw_256_ecb_storage_bss_get, @function
aes_hw_256_ecb_storage_bss_get:
	leaq	.Laes_hw_256_ecb_storage_local_target(%rip), %rax
	ret
.type aws_snapsafe_init_bss_get, @function
aws_snapsafe_init_bss_get:
	leaq	.Laws_snapsafe_init_local_target(%rip), %rax
	ret
.type bcc_init_once_bss_get, @function
bcc_init_once_bss_get:
	leaq	.Lbcc_init_once_local_target(%rip), %rax
	ret
.type bcc_key_bss_get, @function
bcc_key_bss_get:
	leaq	.Lbcc_key_local_target(%rip), %rax
	ret
.type extra_getrandom_flags_for_seed_bss_get, @function
extra_getrandom_flags_for_seed_bss_get:
	leaq	.Lextra_getrandom_flags_for_seed_local_target(%rip), %rax
	ret
.type g_ec_ex_data_class_bss_get, @function
g_ec_ex_data_class_bss_get:
	leaq	.Lg_ec_ex_data_class_local_target(%rip), %rax
	ret
.type g_fork_detect_addr_bss_get, @function
g_fork_detect_addr_bss_get:
	leaq	.Lg_fork_detect_addr_local_target(%rip), %rax
	ret
.type g_fork_detect_lock_bss_get, @function
g_fork_detect_lock_bss_get:
	leaq	.Lg_fork_detect_lock_local_target(%rip), %rax
	ret
.type g_fork_detect_once_bss_get, @function
g_fork_detect_once_bss_get:
	leaq	.Lg_fork_detect_once_local_target(%rip), %rax
	ret
.type g_fork_generation_bss_get, @function
g_fork_generation_bss_get:
	leaq	.Lg_fork_generation_local_target(%rip), %rax
	ret
.type g_ignore_madv_wipeonfork_bss_get, @function
g_ignore_madv_wipeonfork_bss_get:
	leaq	.Lg_ignore_madv_wipeonfork_local_target(%rip), %rax
	ret
.type g_rsa_ex_data_class_bss_get, @function
g_rsa_ex_data_class_bss_get:
	leaq	.Lg_rsa_ex_data_class_local_target(%rip), %rax
	ret
.type g_self_test_once_ecc_bss_get, @function
g_self_test_once_ecc_bss_get:
	leaq	.Lg_self_test_once_ecc_local_target(%rip), %rax
	ret
.type g_self_test_once_eddsa_bss_get, @function
g_self_test_once_eddsa_bss_get:
	leaq	.Lg_self_test_once_eddsa_local_target(%rip), %rax
	ret
.type g_self_test_once_ffdh_bss_get, @function
g_self_test_once_ffdh_bss_get:
	leaq	.Lg_self_test_once_ffdh_local_target(%rip), %rax
	ret
.type g_self_test_once_ml_kem_bss_get, @function
g_self_test_once_ml_kem_bss_get:
	leaq	.Lg_self_test_once_ml_kem_local_target(%rip), %rax
	ret
.type g_self_test_once_rsa_bss_get, @function
g_self_test_once_rsa_bss_get:
	leaq	.Lg_self_test_once_rsa_local_target(%rip), %rax
	ret
.type g_small_factors_once_bss_get, @function
g_small_factors_once_bss_get:
	leaq	.Lg_small_factors_once_local_target(%rip), %rax
	ret
.type g_small_factors_storage_bss_get, @function
g_small_factors_storage_bss_get:
	leaq	.Lg_small_factors_storage_local_target(%rip), %rax
	ret
.type generation_nonce_bss_get, @function
generation_nonce_bss_get:
	leaq	.Lgeneration_nonce_local_target(%rip), %rax
	ret
.type generation_nonce_lock_bss_get, @function
generation_nonce_lock_bss_get:
	leaq	.Lgeneration_nonce_lock_local_target(%rip), %rax
	ret
.type getrandom_ready_bss_get, @function
getrandom_ready_bss_get:
	leaq	.Lgetrandom_ready_local_target(%rip), %rax
	ret
.type kem_ml_kem_1024_method_once_bss_get, @function
kem_ml_kem_1024_method_once_bss_get:
	leaq	.Lkem_ml_kem_1024_method_once_local_target(%rip), %rax
	ret
.type kem_ml_kem_1024_method_storage_bss_get, @function
kem_ml_kem_1024_method_storage_bss_get:
	leaq	.Lkem_ml_kem_1024_method_storage_local_target(%rip), %rax
	ret
.type kem_ml_kem_512_method_once_bss_get, @function
kem_ml_kem_512_method_once_bss_get:
	leaq	.Lkem_ml_kem_512_method_once_local_target(%rip), %rax
	ret
.type kem_ml_kem_512_method_storage_bss_get, @function
kem_ml_kem_512_method_storage_bss_get:
	leaq	.Lkem_ml_kem_512_method_storage_local_target(%rip), %rax
	ret
.type kem_ml_kem_768_method_once_bss_get, @function
kem_ml_kem_768_method_once_bss_get:
	leaq	.Lkem_ml_kem_768_method_once_local_target(%rip), %rax
	ret
.type kem_ml_kem_768_method_storage_bss_get, @function
kem_ml_kem_768_method_storage_bss_get:
	leaq	.Lkem_ml_kem_768_method_storage_local_target(%rip), %rax
	ret
.type p256_methods_once_bss_get, @function
p256_methods_once_bss_get:
	leaq	.Lp256_methods_once_local_target(%rip), %rax
	ret
.type p256_methods_storage_bss_get, @function
p256_methods_storage_bss_get:
	leaq	.Lp256_methods_storage_local_target(%rip), %rax
	ret
.type p384_methods_once_bss_get, @function
p384_methods_once_bss_get:
	leaq	.Lp384_methods_once_local_target(%rip), %rax
	ret
.type p384_methods_storage_bss_get, @function
p384_methods_storage_bss_get:
	leaq	.Lp384_methods_storage_local_target(%rip), %rax
	ret
.type p521_methods_once_bss_get, @function
p521_methods_once_bss_get:
	leaq	.Lp521_methods_once_local_target(%rip), %rax
	ret
.type p521_methods_storage_bss_get, @function
p521_methods_storage_bss_get:
	leaq	.Lp521_methods_storage_local_target(%rip), %rax
	ret
.type rand_once_bss_get, @function
rand_once_bss_get:
	leaq	.Lrand_once_local_target(%rip), %rax
	ret
.type sgc_addr_bss_get, @function
sgc_addr_bss_get:
	leaq	.Lsgc_addr_local_target(%rip), %rax
	ret
.type snapsafety_state_bss_get, @function
snapsafety_state_bss_get:
	leaq	.Lsnapsafety_state_local_target(%rip), %rax
	ret
.type sskdf_variant_digest_once_bss_get, @function
sskdf_variant_digest_once_bss_get:
	leaq	.Lsskdf_variant_digest_once_local_target(%rip), %rax
	ret
.type sskdf_variant_digest_storage_bss_get, @function
sskdf_variant_digest_storage_bss_get:
	leaq	.Lsskdf_variant_digest_storage_local_target(%rip), %rax
	ret
.type sskdf_variant_hmac_once_bss_get, @function
sskdf_variant_hmac_once_bss_get:
	leaq	.Lsskdf_variant_hmac_once_local_target(%rip), %rax
	ret
.type sskdf_variant_hmac_storage_bss_get, @function
sskdf_variant_hmac_storage_bss_get:
	leaq	.Lsskdf_variant_hmac_storage_local_target(%rip), %rax
	ret
.type state_clear_all_lock_bss_get, @function
state_clear_all_lock_bss_get:
	leaq	.Lstate_clear_all_lock_local_target(%rip), %rax
	ret
.type thread_states_list_bss_get, @function
thread_states_list_bss_get:
	leaq	.Lthread_states_list_local_target(%rip), %rax
	ret
.type thread_states_list_lock_bss_get, @function
thread_states_list_lock_bss_get:
	leaq	.Lthread_states_list_lock_local_target(%rip), %rax
	ret
.type urandom_fd_bss_get, @function
urandom_fd_bss_get:
	leaq	.Lurandom_fd_local_target(%rip), %rax
	ret
.type wait_for_entropy_once_bss_get, @function
wait_for_entropy_once_bss_get:
	leaq	.Lwait_for_entropy_once_local_target(%rip), %rax
	ret
.type CRYPTO_chacha_20_GOTPCREL_external, @object
.size CRYPTO_chacha_20_GOTPCREL_external, 8
CRYPTO_chacha_20_GOTPCREL_external:
	.long CRYPTO_chacha_20@GOTPCREL
	.long 0
.type OPENSSL_cleanse_GOTPCREL_external, @object
.size OPENSSL_cleanse_GOTPCREL_external, 8
OPENSSL_cleanse_GOTPCREL_external:
	.long OPENSSL_cleanse@GOTPCREL
	.long 0
.type OPENSSL_cpucap_initialized_GOTPCREL_external, @object
.size OPENSSL_cpucap_initialized_GOTPCREL_external, 8
OPENSSL_cpucap_initialized_GOTPCREL_external:
	.long OPENSSL_cpucap_initialized@GOTPCREL
	.long 0
.type ed25519_asn1_meth_GOTPCREL_external, @object
.size ed25519_asn1_meth_GOTPCREL_external, 8
ed25519_asn1_meth_GOTPCREL_external:
	.long ed25519_asn1_meth@GOTPCREL
	.long 0
.type free_GOTPCREL_external, @object
.size free_GOTPCREL_external, 8
free_GOTPCREL_external:
	.long free@GOTPCREL
	.long 0
.type kem_asn1_meth_GOTPCREL_external, @object
.size kem_asn1_meth_GOTPCREL_external, 8
kem_asn1_meth_GOTPCREL_external:
	.long kem_asn1_meth@GOTPCREL
	.long 0
.type stderr_GOTPCREL_external, @object
.size stderr_GOTPCREL_external, 8
stderr_GOTPCREL_external:
	.long stderr@GOTPCREL
	.long 0
.type OPENSSL_ia32cap_get, @function
.globl OPENSSL_ia32cap_get
.LOPENSSL_ia32cap_get_local_target:
OPENSSL_ia32cap_get:
	leaq OPENSSL_ia32cap_P(%rip), %rax
	ret
.type LOPENSSL_ia32cap_P_rbp0, @function
LOPENSSL_ia32cap_P_rbp0:
	leaq OPENSSL_ia32cap_P(%rip), %rbp
	jmp LOPENSSL_ia32cap_P_rbp0_return
.type LOPENSSL_ia32cap_P_rdi1, @function
LOPENSSL_ia32cap_P_rdi1:
	leaq OPENSSL_ia32cap_P(%rip), %rdi
	jmp LOPENSSL_ia32cap_P_rdi1_return
.type LOPENSSL_ia32cap_P_r102, @function
LOPENSSL_ia32cap_P_r102:
	leaq OPENSSL_ia32cap_P(%rip), %r10
	jmp LOPENSSL_ia32cap_P_r102_return
.type LOPENSSL_ia32cap_P_rcx3, @function
LOPENSSL_ia32cap_P_rcx3:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx3_return
.type LOPENSSL_ia32cap_P_rcx4, @function
LOPENSSL_ia32cap_P_rcx4:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx4_return
.type LOPENSSL_ia32cap_P_rcx5, @function
LOPENSSL_ia32cap_P_rcx5:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx5_return
.type LOPENSSL_ia32cap_P_rcx6, @function
LOPENSSL_ia32cap_P_rcx6:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx6_return
.type LOPENSSL_ia32cap_P_rax7, @function
LOPENSSL_ia32cap_P_rax7:
	leaq OPENSSL_ia32cap_P(%rip), %rax
	jmp LOPENSSL_ia32cap_P_rax7_return
.type LOPENSSL_ia32cap_P_rax8, @function
LOPENSSL_ia32cap_P_rax8:
	leaq OPENSSL_ia32cap_P(%rip), %rax
	jmp LOPENSSL_ia32cap_P_rax8_return
.type LOPENSSL_ia32cap_P_rcx9, @function
LOPENSSL_ia32cap_P_rcx9:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx9_return
.type LOPENSSL_ia32cap_P_rcx10, @function
LOPENSSL_ia32cap_P_rcx10:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx10_return
.type LOPENSSL_ia32cap_P_rcx11, @function
LOPENSSL_ia32cap_P_rcx11:
	leaq OPENSSL_ia32cap_P(%rip), %rcx
	jmp LOPENSSL_ia32cap_P_rcx11_return
.type LOPENSSL_ia32cap_P_r1112, @function
LOPENSSL_ia32cap_P_r1112:
	leaq OPENSSL_ia32cap_P(%rip), %r11
	jmp LOPENSSL_ia32cap_P_r1112_return
.type LOPENSSL_ia32cap_P_r1113, @function
LOPENSSL_ia32cap_P_r1113:
	leaq OPENSSL_ia32cap_P(%rip), %r11
	jmp LOPENSSL_ia32cap_P_r1113_return
.type BORINGSSL_bcm_text_hash, @object
.size BORINGSSL_bcm_text_hash, 32
BORINGSSL_bcm_text_hash:
.byte 0xae
.byte 0x2c
.byte 0xea
.byte 0x2a
.byte 0xbd
.byte 0xa6
.byte 0xf3
.byte 0xec
.byte 0x97
.byte 0x7f
.byte 0x9b
.byte 0xf6
.byte 0x94
.byte 0x9a
.byte 0xfc
.byte 0x83
.byte 0x68
.byte 0x27
.byte 0xcb
.byte 0xa0
.byte 0xa0
.byte 0x9f
.byte 0x6b
.byte 0x6f
.byte 0xde
.byte 0x52
.byte 0xcd
.byte 0xe2
.byte 0xcd
.byte 0xff
.byte 0x31
.byte 0x80
